@decocms/mesh 2.55.0 → 2.56.0
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-DnrpASG2.js → AlertCircle-D0dYVV_C.js} +1 -1
- package/dist/client/assets/{ArrowLeft-CkGaUN6o.js → ArrowLeft-DaBwGT1h.js} +1 -1
- package/dist/client/assets/{ArrowUp-Cc09RZY4.js → ArrowUp-j0Zx2i-T.js} +1 -1
- package/dist/client/assets/{Check-BYHlfTQr.js → Check-DxEsBW6A.js} +1 -1
- package/dist/client/assets/{ChevronDown-Cyh9WMp0.js → ChevronDown-BLLsYwZi.js} +1 -1
- package/dist/client/assets/{Code01-B62YyryF.js → Code01-q6RjOjO2.js} +1 -1
- package/dist/client/assets/{Copy01-GHFquEvX.js → Copy01-CiRHbRil.js} +1 -1
- package/dist/client/assets/{DotsHorizontal-C6El5T66.js → DotsHorizontal-D_i29myt.js} +1 -1
- package/dist/client/assets/{DotsVertical-DtC1yLil.js → DotsVertical-YtFig9Al.js} +1 -1
- package/dist/client/assets/{Download01-C5tBRZHe.js → Download01-ColP9k0s.js} +1 -1
- package/dist/client/assets/{Edit01-CCTivbEj.js → Edit01-CvwEhkEB.js} +1 -1
- package/dist/client/assets/{File06-CDFdF5Nr.js → File06-VVEb2XPf.js} +1 -1
- package/dist/client/assets/{FilterLines-4yPP_gAU.js → FilterLines-C6u5hl0S.js} +1 -1
- package/dist/client/assets/{FlipBackward-Bb3ib1Bh.js → FlipBackward-Bwy_5A0g.js} +1 -1
- package/dist/client/assets/{Grid01-C4O4Aknh.js → Grid01-C2ELbDxI.js} +1 -1
- package/dist/client/assets/{Home02-D2riSlnv.js → Home02-D8O3gYg1.js} +1 -1
- package/dist/client/assets/{Image01-CYRE6pGN.js → Image01-BV4jTRkm.js} +1 -1
- package/dist/client/assets/{Inbox01-CV_5S91p.js → Inbox01-nY-CiFPV.js} +1 -1
- package/dist/client/assets/{InfoCircle-DnMMetUy.js → InfoCircle-BMyKDxax.js} +1 -1
- package/dist/client/assets/{Key01-CLADbyO4.js → Key01-BdALywUo.js} +1 -1
- package/dist/client/assets/{LinkExternal01-DgcGDmdL.js → LinkExternal01-CNdI9age.js} +1 -1
- package/dist/client/assets/{List-Cai2-K9Z.js → List-DALRRs8f.js} +1 -1
- package/dist/client/assets/{Loading01-B-TyaLAR.js → Loading01-Ck4DHeCz.js} +1 -1
- package/dist/client/assets/{Lock01-Blk8_ONM.js → Lock01-CTXkP_M4.js} +1 -1
- package/dist/client/assets/{Pin01-GbJJn2vw.js → Pin01-Dn3xisY_.js} +1 -1
- package/dist/client/assets/{Play-Bw-s0SW4.js → Play-BRWhqcey.js} +1 -1
- package/dist/client/assets/{Plus-Cxc7BtkQ.js → Plus-CWYnIbbQ.js} +1 -1
- package/dist/client/assets/{SearchMd-CpKLo2Zn.js → SearchMd-BwwEmX02.js} +1 -1
- package/dist/client/assets/{Share07-BB-7HQgT.js → Share07-BFonVbaA.js} +1 -1
- package/dist/client/assets/{Terminal-DF70HZ2S.js → Terminal-DBu0XX3z.js} +1 -1
- package/dist/client/assets/{Trash01-BvwhK6Vg.js → Trash01-O2qCmwMn.js} +1 -1
- package/dist/client/assets/{Upload01-B6Wi4Y6P.js → Upload01-DI7SlvsT.js} +1 -1
- package/dist/client/assets/{Users03-Ba_1xVKB.js → Users03-BmQGs7qi.js} +1 -1
- package/dist/client/assets/{X-CODbfs2H.js → X-DfKEMSAq.js} +1 -1
- package/dist/client/assets/{XClose-BaVIBBzB.js → XClose--VE6Uxj9.js} +1 -1
- package/dist/client/assets/{agent-detail-BwU_iOlG.js → agent-detail-z7HVUEos.js} +1 -1
- package/dist/client/assets/{agents-BIH6gREs.js → agents-BrJ8JJdU.js} +1 -1
- package/dist/client/assets/{alert-dialog-C_OXD-MA.js → alert-dialog-BehqkAiu.js} +1 -1
- package/dist/client/assets/{auth-catchall-BCQx1ruw.js → auth-catchall-D4TSd1Ye.js} +1 -1
- package/dist/client/assets/{avatar-D8AIxV6P.js → avatar-brRXoKvO.js} +1 -1
- package/dist/client/assets/{badge-CpVCYFMG.js → badge-CngTAfQv.js} +1 -1
- package/dist/client/assets/{binder-BEyDSNRs.js → binder-CIKIGv1N.js} +1 -1
- package/dist/client/assets/{button-B2KLvXEr.js → button-BHD-W54e.js} +1 -1
- package/dist/client/assets/{card-DlXZ7U9Z.js → card-CDL86Pnt.js} +1 -1
- package/dist/client/assets/{checkbox-DaoCFuj8.js → checkbox-CCyLipUT.js} +1 -1
- package/dist/client/assets/{circle-alert-Bm5Q_veV.js → circle-alert-DgFpoHtR.js} +1 -1
- package/dist/client/assets/{collection-detail-C1oHfNP9.js → collection-detail-13BCxPKs.js} +1 -1
- package/dist/client/assets/{collection-display-button-BTGoT8ci.js → collection-display-button-D7y47NmT.js} +1 -1
- package/dist/client/assets/{collection-header-Be7RY6CQ.js → collection-header-BH0hMpwH.js} +1 -1
- package/dist/client/assets/{collection-page-RrsDnv83.js → collection-page-D7qrDAdO.js} +1 -1
- package/dist/client/assets/{collection-search-DD9gszSV.js → collection-search-DriJZFj9.js} +1 -1
- package/dist/client/assets/{collection-tab-3ZZSVcZ8.js → collection-tab-CcL8qVIp.js} +1 -1
- package/dist/client/assets/{collection-table-wrapper-BSy03JYc.js → collection-table-wrapper-XQuXSlg_.js} +1 -1
- package/dist/client/assets/connect-BAmGV9_O.js +1 -0
- package/dist/client/assets/{connection-card-BJ8nkB6q.js → connection-card-DXxyylc0.js} +1 -1
- package/dist/client/assets/{connection-detail-DVHoUY1Q.js → connection-detail-D-r8wdLm.js} +1 -1
- package/dist/client/assets/{connections-B5_ch0b8.js → connections-u-2LGaVH.js} +1 -1
- package/dist/client/assets/constants--B4rZxpd.js +1 -0
- package/dist/client/assets/{constants-BecaK2Q7.js → constants-B-pBHHtD.js} +1 -1
- package/dist/client/assets/{create-organization-dialog-kmOZjs4K.js → create-organization-dialog-B9AunrOf.js} +1 -1
- package/dist/client/assets/{dialog-cWpa0tjW.js → dialog-pQaEse5h.js} +1 -1
- package/dist/client/assets/{dropdown-menu-DDACOXnG.js → dropdown-menu-D88t_1GY.js} +1 -1
- package/dist/client/assets/{dynamic-plugin-layout-nceYO9tV.js → dynamic-plugin-layout-D_WzC1mY.js} +1 -1
- package/dist/client/assets/{empty-state-CysqrplM.js → empty-state-NBwahr1o.js} +1 -1
- package/dist/client/assets/{empty-state-BRRevprM.js → empty-state-eAV0ZWF3.js} +1 -1
- package/dist/client/assets/{env-vars-editor-CyAPCgjC.js → env-vars-editor-B0hNi1Xe.js} +1 -1
- package/dist/client/assets/{error-boundary-D2FqiSoM.js → error-boundary-DVK1pLb7.js} +1 -1
- package/dist/client/assets/{extract-connection-data-DG_diqa3.js → extract-connection-data-BKsqjhg6.js} +1 -1
- package/dist/client/assets/{file-browser-BbtVlE62.js → file-browser-BAc2Lle0.js} +2 -2
- package/dist/client/assets/{form-ChHRavtv.js → form-CilxoLBx.js} +1 -1
- package/dist/client/assets/{grid-view-BPn6qgmX.js → grid-view-HgHaVP5u.js} +1 -1
- package/dist/client/assets/{home-hstgKRny.js → home-BplrQ6hr.js} +1 -1
- package/dist/client/assets/{index-DIxYn0kb.js → index-BAsk5kiO.js} +1 -1
- package/dist/client/assets/index-BE9VxaVK.js +1 -0
- package/dist/client/assets/{index-CKyh6XBg.js → index-BuKAiFTQ.js} +1 -1
- package/dist/client/assets/{index-DhY2K4tp.js → index-C1WEmg2h.js} +12 -12
- package/dist/client/assets/{index-mQwl56Q0.js → index-CmaBy21Y.js} +1 -1
- package/dist/client/assets/{index-rms_W4V6.js → index-DAh_kZ0g.js} +2 -2
- package/dist/client/assets/{infiniteQueryObserver-C_cEPa52.js → infiniteQueryObserver-C9HxWVU4.js} +1 -1
- package/dist/client/assets/{input-BkeUe06e.js → input-RCMmufsJ.js} +1 -1
- package/dist/client/assets/{layout-CdihDKq7.js → layout-DjRPo0f0.js} +1 -1
- package/dist/client/assets/{localstorage-keys-BkUFqNvo.js → localstorage-keys-DYY-WP6R.js} +1 -1
- package/dist/client/assets/{login-B4do1VXN.js → login-B66-dBlb.js} +1 -1
- package/dist/client/assets/mcp-oauth-BPHDdGDM.js +1 -0
- package/dist/client/assets/{mcp-server-card-ZLodfuxh.js → mcp-server-card-ClUnyTeG.js} +1 -1
- package/dist/client/assets/{mcp-server-detail-ChazypwB.js → mcp-server-detail-DjK313CG.js} +2 -2
- package/dist/client/assets/{members-DIUQDq49.js → members-BiBJtYHt.js} +1 -1
- package/dist/client/assets/{monaco-editor-CF8xOd0f.js → monaco-editor-Vlv3xLsL.js} +1 -1
- package/dist/client/assets/{monitoring-BXGU01Kc.js → monitoring-CFHx7vto.js} +1 -1
- package/dist/client/assets/{oauth-callback-CqnMpdvf.js → oauth-callback-CnDURlld.js} +1 -1
- package/dist/client/assets/{page-DcHPZKZc.js → page-C-5nFDs7.js} +1 -1
- package/dist/client/assets/{page-CLam7tfm.js → page-CuldkWOh.js} +1 -1
- package/dist/client/assets/{pin-to-sidebar-button-xde8P8_T.js → pin-to-sidebar-button-BqldlKO8.js} +1 -1
- package/dist/client/assets/{plugin-empty-state-DBQd886H.js → plugin-empty-state-Cvb8CkFY.js} +1 -1
- package/dist/client/assets/{plugin-header-BzN93bFk.js → plugin-header-CPf3xeql.js} +1 -1
- package/dist/client/assets/{plugins-DTGBld4c.js → plugins-CEjaHdFO.js} +1 -1
- package/dist/client/assets/{popover-BQ4fAaba.js → popover-CuFXrDp7.js} +1 -1
- package/dist/client/assets/{registry-utils-CubAr1ep.js → registry-utils-DQ7VA2Vu.js} +1 -1
- package/dist/client/assets/{resizable-CBbQ2mtO.js → resizable-DNHv_vEu.js} +1 -1
- package/dist/client/assets/{resource-tabs-PgIUUqJg.js → resource-tabs-B1t9TZZp.js} +1 -1
- package/dist/client/assets/{select-DtbOgYEp.js → select-C93bGKrw.js} +1 -1
- package/dist/client/assets/{settings-Bpg3bFrL.js → settings-DzBM5dB5.js} +1 -1
- package/dist/client/assets/{shell-layout-OPZoFrI9.js → shell-layout-Du03vu_F.js} +1 -1
- package/dist/client/assets/{spinner-BtXJc_eZ.js → spinner-ClVwh8PC.js} +1 -1
- package/dist/client/assets/{store-invite-BEl6VykZ.js → store-invite-DMm7m90Q.js} +1 -1
- package/dist/client/assets/{switch-DsnDxQXG.js → switch-CczEwfhr.js} +1 -1
- package/dist/client/assets/{textarea-BANZCPie.js → textarea-DkpJZOQj.js} +1 -1
- package/dist/client/assets/{tool-set-selector-CqX9WN4g.js → tool-set-selector-BcnjHVtB.js} +1 -1
- package/dist/client/assets/{tools-list-BRzmSp1i.js → tools-list-C2rBUSqb.js} +1 -1
- package/dist/client/assets/{tooltip-Dwcc1k71.js → tooltip-HFuN7GTj.js} +1 -1
- package/dist/client/assets/{typewriter-title-Bay0uuB9.js → typewriter-title-RQ8hypt2.js} +1 -1
- package/dist/client/assets/{use-binding--VZ7Y5Ef.js → use-binding-EEeU2eYF.js} +1 -1
- package/dist/client/assets/{use-collections-8Kj36wYP.js → use-collections-D-6KNpdU.js} +1 -1
- package/dist/client/assets/{use-connection-DfqjO6nz.js → use-connection-z2hJ-uqu.js} +1 -1
- package/dist/client/assets/{use-create-virtual-mcp-lWx9_XWS.js → use-create-virtual-mcp-0twT7MZg.js} +1 -1
- package/dist/client/assets/{use-list-state-vBhSzyur.js → use-list-state-BTo0-e9z.js} +1 -1
- package/dist/client/assets/{use-mcp-prompts-DioGpWDr.js → use-mcp-prompts-B8mueLey.js} +1 -1
- package/dist/client/assets/{use-members-E4uqx9v1.js → use-members-BEYt2fvB.js} +1 -1
- package/dist/client/assets/{use-mobile-C29nHXu6.js → use-mobile-DmEMdkp7.js} +1 -1
- package/dist/client/assets/{use-organization-settings-BSUJceGn.js → use-organization-settings-D0xJfqnQ.js} +1 -1
- package/dist/client/assets/{use-virtual-mcp-BsVUpxvH.js → use-virtual-mcp-BfKCjW0R.js} +1 -1
- package/dist/client/assets/useInfiniteQuery-Cq-2vEQG.js +1 -0
- package/dist/client/assets/{useMutation-5hMjZ_Ks.js → useMutation-D2ghwSsm.js} +1 -1
- package/dist/client/assets/useQuery-CiLTpy4Q.js +1 -0
- package/dist/client/assets/{view-mode-toggle-CLtTg2VY.js → view-mode-toggle-CAFyQEy3.js} +1 -1
- package/dist/client/assets/{workflow-Iz076qQ_.js → workflow-BCWkw-sy.js} +1 -1
- package/dist/client/index.html +1 -1
- package/dist/server/cli.js +10 -10
- package/dist/server/migrate.js +5 -5
- package/dist/server/server.js +109 -109
- package/package.json +1 -1
- package/dist/client/assets/connect-BXWPEVv8.js +0 -1
- package/dist/client/assets/constants-lBJFsDYc.js +0 -1
- package/dist/client/assets/index-B5YD-rJR.js +0 -1
- package/dist/client/assets/mcp-oauth-Z4D16Uoq.js +0 -1
- package/dist/client/assets/useInfiniteQuery-BTaBTa8y.js +0 -1
- package/dist/client/assets/useQuery-D0z2lKje.js +0 -1
package/dist/server/cli.js
CHANGED
|
@@ -1156,7 +1156,7 @@ ${G}
|
|
|
1156
1156
|
`;break;case"id":Z=L.includes("\x00")?void 0:L;break;case"retry":/^\d+$/.test(L)?J(parseInt(L,10)):Q(new Z50(`Invalid \`retry\` value: "${L}"`,{type:"invalid-retry",value:L,line:w}));break;default:Q(new Z50(`Unknown field "${O.length>20?`${O.slice(0,20)}\u2026`:O}"`,{type:"unknown-field",field:O,value:L,line:w}));break}}function B(){H.length>0&&X({id:Z,event:F||void 0,data:H.endsWith(`
|
|
1157
1157
|
`)?H.slice(0,-1):H}),Z=void 0,H="",F=""}function D(O={}){K&&O.consume&&$(K),W=!0,Z=void 0,H="",F="",K=""}return{feed:V,reset:D}}function UY1(Y){let X=[],Q="",J=0;for(;J<Y.length;){let G=Y.indexOf("\r",J),K=Y.indexOf(`
|
|
1158
1158
|
`,J),W=-1;if(G!==-1&&K!==-1?W=Math.min(G,K):G!==-1?G===Y.length-1?W=-1:W=G:K!==-1&&(W=K),W===-1){Q=Y.slice(J);break}else{let Z=Y.slice(J,W);X.push(Z),J=W+1,Y[J-1]==="\r"&&Y[J]===`
|
|
1159
|
-
`&&J++}}return[X,Q]}var Z50;var K50=S(()=>{Z50=class Z50 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}}});var cP;var H50=S(()=>{K50();cP=class cP extends TransformStream{constructor({onError:Y,onRetry:X,onComment:Q}={}){let J;super({start(G){J=_x({onEvent:(K)=>{G.enqueue(K)},onError(K){Y==="terminate"?G.error(K):typeof Y=="function"&&Y(K)},onRetry:X,onComment:Q})},transform(G){J.feed(G)}})}}});class PW{constructor(Y,X){this._hasCompletedAuthFlow=!1,this._url=Y,this._resourceMetadataUrl=void 0,this._scope=void 0,this._requestInit=X?.requestInit,this._authProvider=X?.authProvider,this._fetch=X?.fetch,this._fetchWithInit=Lx(X?.fetch,X?.requestInit),this._sessionId=X?.sessionId,this._reconnectionOptions=X?.reconnectionOptions??DY1}async _authThenStart(){if(!this._authProvider)throw new iQ("No auth provider");let Y;try{Y=await TW(this._authProvider,{serverUrl:this._url,resourceMetadataUrl:this._resourceMetadataUrl,scope:this._scope,fetchFn:this._fetchWithInit})}catch(X){throw this.onerror?.(X),X}if(Y!=="AUTHORIZED")throw new iQ;return await this._startOrAuthSse({resumptionToken:void 0})}async _commonHeaders(){let Y={};if(this._authProvider){let Q=await this._authProvider.tokens();if(Q)Y.Authorization=`Bearer ${Q.access_token}`}if(this._sessionId)Y["mcp-session-id"]=this._sessionId;if(this._protocolVersion)Y["mcp-protocol-version"]=this._protocolVersion;let X=_D(this._requestInit?.headers);return new Headers({...Y,...X})}async _startOrAuthSse(Y){let{resumptionToken:X}=Y;try{let Q=await this._commonHeaders();if(Q.set("Accept","text/event-stream"),X)Q.set("last-event-id",X);let J=await(this._fetch??fetch)(this._url,{method:"GET",headers:Q,signal:this._abortController?.signal});if(!J.ok){if(await J.body?.cancel(),J.status===401&&this._authProvider)return await this._authThenStart();if(J.status===405)return;throw new n$(J.status,`Failed to open SSE stream: ${J.statusText}`)}this._handleSseStream(J.body,Y,!0)}catch(Q){throw this.onerror?.(Q),Q}}_getNextReconnectionDelay(Y){if(this._serverRetryMs!==void 0)return this._serverRetryMs;let X=this._reconnectionOptions.initialReconnectionDelay,Q=this._reconnectionOptions.reconnectionDelayGrowFactor,J=this._reconnectionOptions.maxReconnectionDelay;return Math.min(X*Math.pow(Q,Y),J)}_scheduleReconnection(Y,X=0){let Q=this._reconnectionOptions.maxRetries;if(X>=Q){this.onerror?.(Error(`Maximum reconnection attempts (${Q}) exceeded.`));return}let J=this._getNextReconnectionDelay(X);this._reconnectionTimeout=setTimeout(()=>{this._startOrAuthSse(Y).catch((G)=>{this.onerror?.(Error(`Failed to reconnect SSE stream: ${G instanceof Error?G.message:String(G)}`)),this._scheduleReconnection(Y,X+1)})},J)}_handleSseStream(Y,X,Q){if(!Y)return;let{onresumptiontoken:J,replayMessageId:G}=X,K,W=!1,Z=!1;(async()=>{try{let F=Y.pipeThrough(new TextDecoderStream).pipeThrough(new cP({onRetry:(q)=>{this._serverRetryMs=q}})).getReader();while(!0){let{value:q,done:B}=await F.read();if(B)break;if(q.id)K=q.id,W=!0,J?.(q.id);if(!q.data)continue;if(!q.event||q.event==="message")try{let D=SJ.parse(JSON.parse(q.data));if(RG(D)){if(Z=!0,G!==void 0)D.id=G}this.onmessage?.(D)}catch(D){this.onerror?.(D)}}if((Q||W)&&!Z&&this._abortController&&!this._abortController.signal.aborted)this._scheduleReconnection({resumptionToken:K,onresumptiontoken:J,replayMessageId:G},0)}catch(F){if(this.onerror?.(Error(`SSE stream disconnected: ${F}`)),(Q||W)&&!Z&&this._abortController&&!this._abortController.signal.aborted)try{this._scheduleReconnection({resumptionToken:K,onresumptiontoken:J,replayMessageId:G},0)}catch(q){this.onerror?.(Error(`Failed to reconnect: ${q instanceof Error?q.message:String(q)}`))}}})()}async start(){if(this._abortController)throw Error("StreamableHTTPClientTransport already started! If using Client class, note that connect() calls start() automatically.");this._abortController=new AbortController}async finishAuth(Y){if(!this._authProvider)throw new iQ("No auth provider");if(await TW(this._authProvider,{serverUrl:this._url,authorizationCode:Y,resourceMetadataUrl:this._resourceMetadataUrl,scope:this._scope,fetchFn:this._fetchWithInit})!=="AUTHORIZED")throw new iQ("Failed to authorize")}async close(){if(this._reconnectionTimeout)clearTimeout(this._reconnectionTimeout),this._reconnectionTimeout=void 0;this._abortController?.abort(),this.onclose?.()}async send(Y,X){try{let{resumptionToken:Q,onresumptiontoken:J}=X||{};if(Q){this._startOrAuthSse({resumptionToken:Q,replayMessageId:OW(Y)?Y.id:void 0}).catch(($)=>this.onerror?.($));return}let G=await this._commonHeaders();G.set("content-type","application/json"),G.set("accept","application/json, text/event-stream");let K={...this._requestInit,method:"POST",headers:G,body:JSON.stringify(Y),signal:this._abortController?.signal},W=await(this._fetch??fetch)(this._url,K),Z=W.headers.get("mcp-session-id");if(Z)this._sessionId=Z;if(!W.ok){let $=await W.text().catch(()=>null);if(W.status===401&&this._authProvider){if(this._hasCompletedAuthFlow)throw new n$(401,"Server returned 401 after successful authentication");let{resourceMetadataUrl:q,scope:B}=xD(W);if(this._resourceMetadataUrl=q,this._scope=B,await TW(this._authProvider,{serverUrl:this._url,resourceMetadataUrl:this._resourceMetadataUrl,scope:this._scope,fetchFn:this._fetchWithInit})!=="AUTHORIZED")throw new iQ;return this._hasCompletedAuthFlow=!0,this.send(Y)}if(W.status===403&&this._authProvider){let{resourceMetadataUrl:q,scope:B,error:D}=xD(W);if(D==="insufficient_scope"){let O=W.headers.get("WWW-Authenticate");if(this._lastUpscopingHeader===O)throw new n$(403,"Server returned 403 after trying upscoping");if(B)this._scope=B;if(q)this._resourceMetadataUrl=q;if(this._lastUpscopingHeader=O??void 0,await TW(this._authProvider,{serverUrl:this._url,resourceMetadataUrl:this._resourceMetadataUrl,scope:this._scope,fetchFn:this._fetch})!=="AUTHORIZED")throw new iQ;return this.send(Y)}}throw new n$(W.status,`Error POSTing to endpoint: ${$}`)}if(this._hasCompletedAuthFlow=!1,this._lastUpscopingHeader=void 0,W.status===202){if(await W.body?.cancel(),TF6(Y))this._startOrAuthSse({resumptionToken:void 0}).catch(($)=>this.onerror?.($));return}let F=(Array.isArray(Y)?Y:[Y]).filter(($)=>("method"in $)&&("id"in $)&&$.id!==void 0).length>0,V=W.headers.get("content-type");if(F)if(V?.includes("text/event-stream"))this._handleSseStream(W.body,{onresumptiontoken:J},!1);else if(V?.includes("application/json")){let $=await W.json(),q=Array.isArray($)?$.map((B)=>SJ.parse(B)):[SJ.parse($)];for(let B of q)this.onmessage?.(B)}else throw await W.body?.cancel(),new n$(-1,`Unexpected content type: ${V}`);else await W.body?.cancel()}catch(Q){throw this.onerror?.(Q),Q}}get sessionId(){return this._sessionId}async terminateSession(){if(!this._sessionId)return;try{let Y=await this._commonHeaders(),X={...this._requestInit,method:"DELETE",headers:Y,signal:this._abortController?.signal},Q=await(this._fetch??fetch)(this._url,X);if(await Q.body?.cancel(),!Q.ok&&Q.status!==405)throw new n$(Q.status,`Failed to terminate session: ${Q.statusText}`);this._sessionId=void 0}catch(Y){throw this.onerror?.(Y),Y}}setProtocolVersion(Y){this._protocolVersion=Y}get protocolVersion(){return this._protocolVersion}async resumeStream(Y,X){await this._startOrAuthSse({resumptionToken:Y,onresumptiontoken:X?.onresumptiontoken})}}var DY1,n$;var uD=S(()=>{p9();vx();H50();DY1={initialReconnectionDelay:1000,maxReconnectionDelay:30000,reconnectionDelayGrowFactor:1.5,maxRetries:2};n$=class n$ extends Error{constructor(Y,X){super(`Streamable HTTP error: ${X}`);this.code=Y}}});var F50=S(()=>{uD()});var yx=S(()=>{c$();_$();F50()});function V50(Y){return{id:i$.REGISTRY(Y),title:"Deco Store",description:"Official deco MCP registry with curated integrations",connection_type:"HTTP",connection_url:"https://api.decocms.com/mcp/registry",icon:"https://assets.decocache.com/decocms/00ccf6c3-9e13-4517-83b0-75ab84554bb9/596364c63320075ca58483660156b6d9de9b526e.png",app_name:"deco-registry",app_id:null,connection_token:null,connection_headers:null,oauth_config:null,configuration_state:null,configuration_scopes:null,metadata:{isDefault:!0,type:"registry"}}}function $50(){return{id:"community-registry",title:"MCP Registry",description:"Community MCP registry with thousands of handy MCPs",connection_type:"HTTP",connection_url:"https://sites-registry.decocache.com/mcp",icon:"https://assets.decocache.com/decocms/cd7ca472-0f72-463a-b0de-6e44bdd0f9b4/mcp.png",app_name:"mcp-registry",app_id:null,connection_token:null,connection_headers:null,oauth_config:null,configuration_state:null,configuration_scopes:null,metadata:{isDefault:!0,type:"registry"}}}function q50(Y,X){return{id:i$.SELF(X),title:"Mesh MCP",description:"The MCP for the mesh API",connection_type:"HTTP",connection_url:`${Y}/mcp/self`,icon:"https://assets.decocache.com/mcp/09e44283-f47d-4046-955f-816d227c626f/app.png",app_name:"@deco/management-mcp",connection_token:null,connection_headers:null,oauth_config:null,configuration_state:null,configuration_scopes:null,metadata:{isDefault:!0,type:"self"}}}function z50(Y){return{id:`decopilot-${Y}`,organization_id:Y,title:"Decopilot",description:"Default agent that aggregates all organization connections",icon:"https://assets.decocache.com/decocms/fd07a578-6b1c-40f1-bc05-88a3b981695d/f7fc4ffa81aec04e37ae670c3cd4936643a7b269.png",tool_selection_mode:"exclusion",status:"active",created_at:new Date().toISOString(),updated_at:new Date().toISOString(),created_by:"system",updated_by:void 0,connections:[]}}var i$;var fx=S(()=>{i$={SELF:(Y)=>`${Y}_self`,REGISTRY:(Y)=>`${Y}_registry`,COMMUNITY_REGISTRY:(Y)=>`${Y}_community-registry`}});var $U6=S(()=>{PX0();nh();yx();fx()});var qU6=S(()=>{_$()});var zU6=S(()=>{_$()});var BU6=S(()=>{CX0();nh();yx();fx()});var UU6=S(()=>{nh();$U6();yx();jX0();qU6();zU6();BU6()});var uY1,gY1,mY1,lY1,hx,DU6,OU6;var NU6=S(()=>{s0();uY1=z.object({authorizationEndpoint:z.string().url(),tokenEndpoint:z.string().url(),introspectionEndpoint:z.string().url().optional(),clientId:z.string(),clientSecret:z.string().optional(),scopes:z.array(z.string()),grantType:z.enum(["authorization_code","client_credentials"])}),gY1=z.object({name:z.string(),description:z.string().optional(),inputSchema:z.record(z.string(),z.unknown()),outputSchema:z.record(z.string(),z.unknown()).optional()}),mY1=z.object({headers:z.record(z.string(),z.string()).optional()}),lY1=z.object({command:z.string().describe("Command to run (e.g., 'npx', 'node')"),args:z.array(z.string()).optional().describe("Command arguments"),cwd:z.string().optional().describe("Working directory"),envVars:z.record(z.string(),z.string()).optional().describe("Environment variables (encrypted in storage)")}),hx=z.object({id:z.string().describe("Unique identifier for the connection"),title:z.string().describe("Human-readable name for the connection"),created_at:z.string().describe("When the connection was created"),updated_at:z.string().describe("When the connection was last updated"),created_by:z.string().describe("User ID who created the connection"),updated_by:z.string().optional().describe("User ID who last updated the connection"),organization_id:z.string().describe("Organization ID this connection belongs to"),description:z.string().nullable().describe("Description of the connection"),icon:z.string().nullable().describe("Icon URL for the connection"),app_name:z.string().nullable().describe("Associated app name"),app_id:z.string().nullable().describe("Associated app ID"),connection_type:z.enum(["HTTP","SSE","Websocket","STDIO","VIRTUAL"]).describe("Type of connection"),connection_url:z.string().nullable().describe("URL for HTTP/SSE/WebSocket connections. virtual://$id for VIRTUAL. Null for STDIO."),connection_token:z.string().nullable().describe("Authentication token (for HTTP connections)"),connection_headers:z.union([lY1,mY1]).nullable().describe("Connection parameters. HTTP: { headers }. STDIO: { command, args, cwd, envVars }"),oauth_config:uY1.nullable().describe("OAuth configuration"),configuration_state:z.record(z.string(),z.unknown()).nullable().describe("Configuration state (decrypted)"),configuration_scopes:z.array(z.string()).nullable().optional().describe("Configuration scopes"),metadata:z.record(z.string(),z.unknown()).nullable().describe("Additional metadata (includes repository info)"),tools:z.array(gY1).nullable().describe("Discovered tools from MCP"),bindings:z.array(z.string()).nullable().describe("Detected bindings"),status:z.enum(["active","inactive","error"]).describe("Current status")}),DU6=hx.omit({created_at:!0,updated_at:!0,created_by:!0,updated_by:!0,organization_id:!0,tools:!0,bindings:!0,status:!0}).partial({id:!0,description:!0,icon:!0,app_name:!0,app_id:!0,connection_url:!0,connection_token:!0,connection_headers:!0,oauth_config:!0,configuration_state:!0,configuration_scopes:!0,metadata:!0}),OU6=hx.partial()});var N50,dY1,LU6,wU6,MU6;var AU6=S(()=>{s0();N50=z.enum(["inclusion","exclusion"]).describe("Tool selection mode: 'inclusion' = include selected (default), 'exclusion' = exclude selected"),dY1=z.object({connection_id:z.string().describe("Connection ID"),selected_tools:z.array(z.string()).nullable().describe("Selected tool names. With 'inclusion' mode: null = all tools included. With 'exclusion' mode: null = entire connection excluded"),selected_resources:z.array(z.string()).nullable().describe("Selected resource URIs or patterns. Supports * and ** wildcards for pattern matching. With 'inclusion' mode: null = all resources included."),selected_prompts:z.array(z.string()).nullable().describe("Selected prompt names. With 'inclusion' mode: null = all prompts included. With 'exclusion' mode: null = entire connection excluded.")}),LU6=z.object({id:z.string().describe("Unique identifier for the virtual MCP"),title:z.string().describe("Human-readable name for the virtual MCP"),description:z.string().nullable().describe("Description of the virtual MCP"),icon:z.string().nullable().optional().describe("Icon URL for the virtual MCP"),created_at:z.string().describe("When the virtual MCP was created"),updated_at:z.string().describe("When the virtual MCP was last updated"),created_by:z.string().describe("User ID who created the virtual MCP"),updated_by:z.string().optional().describe("User ID who last updated the virtual MCP"),organization_id:z.string().describe("Organization ID this virtual MCP belongs to"),tool_selection_mode:N50.describe("Tool selection mode: 'inclusion' = include selected, 'exclusion' = exclude selected"),status:z.enum(["active","inactive"]).describe("Current status"),metadata:z.object({instructions:z.string().optional().describe("MCP server instructions")}).nullable().optional().describe("Additional metadata including MCP server instructions"),connections:z.array(dY1).describe("Connections with their selected tools (behavior depends on tool_selection_mode)")}),wU6=z.object({title:z.string().min(1).max(255).describe("Name for the virtual MCP"),description:z.string().nullable().optional().describe("Optional description"),tool_selection_mode:N50.optional().default("inclusion").describe("Tool selection mode (defaults to 'inclusion')"),icon:z.string().nullable().optional().describe("Optional icon URL"),status:z.enum(["active","inactive"]).optional().default("active").describe("Initial status"),metadata:z.object({instructions:z.string().optional().describe("MCP server instructions")}).nullable().optional().describe("Additional metadata including MCP server instructions"),connections:z.array(z.object({connection_id:z.string().describe("Connection ID"),selected_tools:z.array(z.string()).nullable().optional().describe("Selected tool names (null/undefined = all tools or full exclusion)"),selected_resources:z.array(z.string()).nullable().optional().describe("Selected resource URIs or patterns with * and ** wildcards (null/undefined = all resources)"),selected_prompts:z.array(z.string()).nullable().optional().describe("Selected prompt names (null/undefined = all prompts or full exclusion)")})).describe("Connections to include/exclude (can be empty for exclusion mode)")}),MU6=z.object({title:z.string().min(1).max(255).optional().describe("New name"),description:z.string().nullable().optional().describe("New description (null to clear)"),tool_selection_mode:N50.optional().describe("New tool selection mode"),icon:z.string().nullable().optional().describe("New icon URL (null to clear)"),status:z.enum(["active","inactive"]).optional().describe("New status"),metadata:z.object({instructions:z.string().optional().describe("MCP server instructions")}).nullable().optional().describe("Additional metadata including MCP server instructions"),connections:z.array(z.object({connection_id:z.string().describe("Connection ID"),selected_tools:z.array(z.string()).nullable().optional().describe("Selected tool names (null/undefined = all tools or full exclusion)"),selected_resources:z.array(z.string()).nullable().optional().describe("Selected resource URIs or patterns with * and ** wildcards (null/undefined = all resources)"),selected_prompts:z.array(z.string()).nullable().optional().describe("Selected prompt names (null/undefined = all prompts or full exclusion)")})).optional().describe("New connections (replaces existing)")})});var TU6=S(()=>{NU6();AU6()});var PU6=S(()=>{vx()});var nP=S(()=>{CX0();UU6();TU6();F50();_$();PU6();fx()});import{createCipheriv as iY1,createDecipheriv as aY1,randomBytes as EU6}from"crypto";class a${key;constructor(Y){if(Buffer.from(Y,"base64").length===RU6)this.key=Buffer.from(Y,"base64");else{let X=F0("crypto");this.key=X.createHash("sha256").update(Y).digest()}}async encrypt(Y){let X=EU6(iP),Q=iY1(CU6,this.key,X),J=Q.update(Y,"utf8");J=Buffer.concat([J,Q.final()]);let G=Q.getAuthTag();return Buffer.concat([X,G,J]).toString("base64")}async decrypt(Y){let X=Buffer.from(Y,"base64"),Q=X.subarray(0,iP),J=X.subarray(iP,iP+IU6),G=X.subarray(iP+IU6),K=aY1(CU6,this.key,Q);K.setAuthTag(J);let W=K.update(G);return W=Buffer.concat([W,K.final()]),W.toString("utf8")}static generateKey(){return EU6(RU6).toString("base64")}}var CU6="aes-256-gcm",iP=16,IU6=16,RU6=32;var bx=()=>{};function r$(Y){return Y!==null&&Y!==void 0&&"command"in Y}function h3(Y){if(!Y||!Y.startsWith("virtual://"))return null;return Y.replace("virtual://","")}function xx(Y){return`virtual://${Y}`}var rY1,oY1,sY1,tY1,eY1,x5,jU6,SU6;var EW=S(()=>{s0();rY1=z.object({authorizationEndpoint:z.string().url(),tokenEndpoint:z.string().url(),introspectionEndpoint:z.string().url().optional(),clientId:z.string(),clientSecret:z.string().optional(),scopes:z.array(z.string()),grantType:z.enum(["authorization_code","client_credentials"])}),oY1=z.object({title:z.string().optional(),readOnlyHint:z.boolean().optional(),destructiveHint:z.boolean().optional(),idempotentHint:z.boolean().optional(),openWorldHint:z.boolean().optional()}),sY1=z.object({name:z.string(),description:z.string().optional(),inputSchema:z.record(z.string(),z.unknown()),outputSchema:z.record(z.string(),z.unknown()).optional(),annotations:oY1.optional(),_meta:z.record(z.string(),z.unknown()).optional()}),tY1=z.object({headers:z.record(z.string(),z.string()).optional()}),eY1=z.object({command:z.string().describe("Command to run (e.g., 'npx', 'node')"),args:z.array(z.string()).optional().describe("Command arguments"),cwd:z.string().optional().describe("Working directory"),envVars:z.record(z.string(),z.string()).optional().describe("Environment variables (encrypted in storage)")}),x5=z.object({id:z.string().describe("Unique identifier for the connection"),title:z.string().describe("Human-readable name for the connection"),created_at:z.string().describe("When the connection was created"),updated_at:z.string().describe("When the connection was last updated"),created_by:z.string().describe("User ID who created the connection"),updated_by:z.string().optional().describe("User ID who last updated the connection"),organization_id:z.string().describe("Organization ID this connection belongs to"),description:z.string().nullable().describe("Description of the connection"),icon:z.string().nullable().describe("Icon URL for the connection"),app_name:z.string().nullable().describe("Associated app name"),app_id:z.string().nullable().describe("Associated app ID"),connection_type:z.enum(["HTTP","SSE","Websocket","STDIO","VIRTUAL"]).describe("Type of connection"),connection_url:z.string().nullable().describe("URL for HTTP/SSE/WebSocket connections. virtual://$id for VIRTUAL. Null for STDIO."),connection_token:z.string().nullable().describe("Authentication token (for HTTP connections)"),connection_headers:z.union([eY1,tY1]).nullable().describe("Connection parameters. HTTP: { headers }. STDIO: { command, args, cwd, envVars }"),oauth_config:rY1.nullable().describe("OAuth configuration"),configuration_state:z.record(z.string(),z.unknown()).nullable().describe("Configuration state (decrypted)"),configuration_scopes:z.array(z.string()).nullable().optional().describe("Configuration scopes"),metadata:z.record(z.string(),z.unknown()).nullable().describe("Additional metadata (includes repository info)"),tools:z.array(sY1).nullable().describe("Discovered tools from MCP"),bindings:z.array(z.string()).nullable().describe("Detected bindings"),status:z.enum(["active","inactive","error"]).describe("Current status")}),jU6=x5.omit({created_at:!0,updated_at:!0,created_by:!0,updated_by:!0,organization_id:!0,tools:!0,bindings:!0,status:!0}).partial({id:!0,description:!0,icon:!0,app_name:!0,app_id:!0,connection_url:!0,connection_token:!0,connection_headers:!0,oauth_config:!0,configuration_state:!0,configuration_scopes:!0,metadata:!0}),SU6=x5.partial()});var kU6="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";import{webcrypto as vU6}from"crypto";function XX1(Y){if(!o$||o$.length<Y)o$=Buffer.allocUnsafe(Y*YX1),vU6.getRandomValues(o$),gD=0;else if(gD+Y>o$.length)vU6.getRandomValues(o$),gD=0;gD+=Y}function _U6(Y=21){XX1(Y|=0);let X="";for(let Q=gD-Y;Q<gD;Q++)X+=kU6[o$[Q]&63];return X}var YX1=128,o$,gD;var yU6=()=>{};function L9(Y){return`${Y}_${_U6()}`}var KK=S(()=>{yU6()});class aP{db;vault;constructor(Y,X){this.db=Y;this.vault=X}async create(Y){let X=Y.id??L9("conn"),Q=new Date().toISOString(),J=await this.findById(X);if(J){if(J.organization_id!==Y.organization_id)throw Error("Connection ID already exists");return this.update(X,Y)}let G=await this.serializeConnection({...Y,id:Y.id??X,status:"active",created_at:Q,updated_at:Q});await this.db.insertInto("connections").values(G).execute();let K=await this.findById(X);if(!K)throw Error(`Failed to create connection with id: ${X}`);return K}async findById(Y,X){let Q=this.db.selectFrom("connections").selectAll().where("id","=",Y);if(X)Q=Q.where("organization_id","=",X);let J=await Q.executeTakeFirst();return J?this.deserializeConnection(J):null}async list(Y){let X=await this.db.selectFrom("connections").selectAll().where("organization_id","=",Y).execute();return Promise.all(X.map((Q)=>this.deserializeConnection(Q)))}async update(Y,X){if(Object.keys(X).length===0){let G=await this.findById(Y);if(!G)throw Error("Connection not found");return G}let Q=await this.serializeConnection({...X,updated_at:new Date().toISOString()});await this.db.updateTable("connections").set(Q).where("id","=",Y).execute();let J=await this.findById(Y);if(!J)throw Error("Connection not found after update");return J}async delete(Y){await this.db.deleteFrom("connections").where("id","=",Y).execute()}async testConnection(Y,X){let Q=await this.findById(Y);if(!Q)throw Error("Connection not found");let J=Date.now();if(Q.connection_type==="STDIO")return{healthy:!0,latencyMs:Date.now()-J};if(!Q.connection_url)return{healthy:!1,latencyMs:Date.now()-J};try{let G=Q.connection_headers,K=await fetch(Q.connection_url,{method:"POST",headers:{"Content-Type":"application/json",...Q.connection_token&&{Authorization:`Bearer ${Q.connection_token}`},...G?.headers,...X},body:JSON.stringify({jsonrpc:"2.0",method:"ping",id:1})});return{healthy:K.ok||K.status===404,latencyMs:Date.now()-J}}catch{return{healthy:!1,latencyMs:Date.now()-J}}}async serializeConnection(Y){let X={};for(let[Q,J]of Object.entries(Y)){if(J===void 0)continue;if(Q==="connection_token"&&J)X[Q]=await this.vault.encrypt(J);else if(Q==="configuration_state"&&J){let G=JSON.stringify(J);X[Q]=await this.vault.encrypt(G)}else if(Q==="connection_headers"&&J){let G=J;if(r$(G)&&G.envVars){let K={};for(let[W,Z]of Object.entries(G.envVars))K[W]=await this.vault.encrypt(Z);X[Q]=JSON.stringify({...G,envVars:K})}else X[Q]=JSON.stringify(G)}else if(QX1.includes(Q))X[Q]=J?JSON.stringify(J):null;else X[Q]=J}return X}async deserializeConnection(Y){let X=null;if(Y.connection_token)try{X=await this.vault.decrypt(Y.connection_token)}catch(K){console.error("Failed to decrypt connection token:",K)}let Q=null;if(Y.configuration_state)try{let K=await this.vault.decrypt(Y.configuration_state);Q=JSON.parse(K)}catch(K){console.error("Failed to decrypt configuration state:",K)}let J=null;if(Y.connection_headers)try{let K=JSON.parse(Y.connection_headers);if(r$(K)&&K.envVars){let W={};for(let[Z,H]of Object.entries(K.envVars))try{W[Z]=await this.vault.decrypt(H)}catch{W[Z]=H}J={...K,envVars:W}}else J=K}catch(K){console.error("Failed to parse connection_headers:",K)}let G=(K)=>{if(K===null)return null;if(typeof K==="string")try{return JSON.parse(K)}catch{return null}return K};return{id:Y.id,organization_id:Y.organization_id,created_by:Y.created_by,title:Y.title,description:Y.description,icon:Y.icon,app_name:Y.app_name,app_id:Y.app_id,connection_type:Y.connection_type,connection_url:Y.connection_url,connection_token:X,connection_headers:J,oauth_config:G(Y.oauth_config),configuration_state:Q,configuration_scopes:G(Y.configuration_scopes),metadata:G(Y.metadata),tools:G(Y.tools),bindings:G(Y.bindings),status:Y.status,created_at:Y.created_at,updated_at:Y.updated_at}}}var QX1;var L50=S(()=>{EW();KK();QX1=["connection_headers","oauth_config","configuration_scopes","metadata","tools","bindings"]});function JX1(Y){let X=globalThis.DOMException;return typeof X=="function"?new X(Y,"SyntaxError"):SyntaxError(Y)}function M50(Y){return Y instanceof Error?"errors"in Y&&Array.isArray(Y.errors)?Y.errors.map(M50).join(", "):("cause"in Y)&&Y.cause instanceof Error?`${Y}: ${M50(Y.cause)}`:Y.message:`${Y}`}function fU6(Y){return{type:Y.type,message:Y.message,code:Y.code,defaultPrevented:Y.defaultPrevented,cancelable:Y.cancelable,timeStamp:Y.timeStamp}}function GX1(){let Y="document"in globalThis?globalThis.document:void 0;return Y&&typeof Y=="object"&&"baseURI"in Y&&typeof Y.baseURI=="string"?Y.baseURI:void 0}var w50,bU6=(Y)=>{throw TypeError(Y)},j50=(Y,X,Q)=>X.has(Y)||bU6("Cannot "+Q),g4=(Y,X,Q)=>(j50(Y,X,"read from private field"),Q?Q.call(Y):X.get(Y)),c9=(Y,X,Q)=>X.has(Y)?bU6("Cannot add the same private member more than once"):X instanceof WeakSet?X.add(Y):X.set(Y,Q),x8=(Y,X,Q,J)=>(j50(Y,X,"write to private field"),X.set(Y,Q),Q),HK=(Y,X,Q)=>(j50(Y,X,"access private method"),Q),aQ,s$,mD,ux,gx,sP,pD,tP,b3,lD,cD,dD,rP,bG,A50,T50,P50,hU6,E50,C50,oP,I50,R50,nD;var xU6=S(()=>{K50();w50=class w50 extends Event{constructor(Y,X){var Q,J;super(Y),this.code=(Q=X==null?void 0:X.code)!=null?Q:void 0,this.message=(J=X==null?void 0:X.message)!=null?J:void 0}[Symbol.for("nodejs.util.inspect.custom")](Y,X,Q){return Q(fU6(this),X)}[Symbol.for("Deno.customInspect")](Y,X){return Y(fU6(this),X)}};nD=class nD extends EventTarget{constructor(Y,X){var Q,J;super(),c9(this,bG),this.CONNECTING=0,this.OPEN=1,this.CLOSED=2,c9(this,aQ),c9(this,s$),c9(this,mD),c9(this,ux),c9(this,gx),c9(this,sP),c9(this,pD),c9(this,tP,null),c9(this,b3),c9(this,lD),c9(this,cD,null),c9(this,dD,null),c9(this,rP,null),c9(this,T50,async(G)=>{var K;g4(this,lD).reset();let{body:W,redirected:Z,status:H,headers:F}=G;if(H===204){HK(this,bG,oP).call(this,"Server sent HTTP 204, not reconnecting",204),this.close();return}if(Z?x8(this,mD,new URL(G.url)):x8(this,mD,void 0),H!==200){HK(this,bG,oP).call(this,`Non-200 status code (${H})`,H);return}if(!(F.get("content-type")||"").startsWith("text/event-stream")){HK(this,bG,oP).call(this,'Invalid content type, expected "text/event-stream"',H);return}if(g4(this,aQ)===this.CLOSED)return;x8(this,aQ,this.OPEN);let V=new Event("open");if((K=g4(this,rP))==null||K.call(this,V),this.dispatchEvent(V),typeof W!="object"||!W||!("getReader"in W)){HK(this,bG,oP).call(this,"Invalid response body, expected a web ReadableStream",H),this.close();return}let $=new TextDecoder,q=W.getReader(),B=!0;do{let{done:D,value:O}=await q.read();O&&g4(this,lD).feed($.decode(O,{stream:!D})),D&&(B=!1,g4(this,lD).reset(),HK(this,bG,I50).call(this))}while(B)}),c9(this,P50,(G)=>{x8(this,b3,void 0),!(G.name==="AbortError"||G.type==="aborted")&&HK(this,bG,I50).call(this,M50(G))}),c9(this,E50,(G)=>{typeof G.id=="string"&&x8(this,tP,G.id);let K=new MessageEvent(G.event||"message",{data:G.data,origin:g4(this,mD)?g4(this,mD).origin:g4(this,s$).origin,lastEventId:G.id||""});g4(this,dD)&&(!G.event||G.event==="message")&&g4(this,dD).call(this,K),this.dispatchEvent(K)}),c9(this,C50,(G)=>{x8(this,sP,G)}),c9(this,R50,()=>{x8(this,pD,void 0),g4(this,aQ)===this.CONNECTING&&HK(this,bG,A50).call(this)});try{if(Y instanceof URL)x8(this,s$,Y);else if(typeof Y=="string")x8(this,s$,new URL(Y,GX1()));else throw Error("Invalid URL")}catch{throw JX1("An invalid or illegal string was specified")}x8(this,lD,_x({onEvent:g4(this,E50),onRetry:g4(this,C50)})),x8(this,aQ,this.CONNECTING),x8(this,sP,3000),x8(this,gx,(Q=X==null?void 0:X.fetch)!=null?Q:globalThis.fetch),x8(this,ux,(J=X==null?void 0:X.withCredentials)!=null?J:!1),HK(this,bG,A50).call(this)}get readyState(){return g4(this,aQ)}get url(){return g4(this,s$).href}get withCredentials(){return g4(this,ux)}get onerror(){return g4(this,cD)}set onerror(Y){x8(this,cD,Y)}get onmessage(){return g4(this,dD)}set onmessage(Y){x8(this,dD,Y)}get onopen(){return g4(this,rP)}set onopen(Y){x8(this,rP,Y)}addEventListener(Y,X,Q){let J=X;super.addEventListener(Y,J,Q)}removeEventListener(Y,X,Q){let J=X;super.removeEventListener(Y,J,Q)}close(){g4(this,pD)&&clearTimeout(g4(this,pD)),g4(this,aQ)!==this.CLOSED&&(g4(this,b3)&&g4(this,b3).abort(),x8(this,aQ,this.CLOSED),x8(this,b3,void 0))}};aQ=new WeakMap,s$=new WeakMap,mD=new WeakMap,ux=new WeakMap,gx=new WeakMap,sP=new WeakMap,pD=new WeakMap,tP=new WeakMap,b3=new WeakMap,lD=new WeakMap,cD=new WeakMap,dD=new WeakMap,rP=new WeakMap,bG=new WeakSet,A50=function(){x8(this,aQ,this.CONNECTING),x8(this,b3,new AbortController),g4(this,gx)(g4(this,s$),HK(this,bG,hU6).call(this)).then(g4(this,T50)).catch(g4(this,P50))},T50=new WeakMap,P50=new WeakMap,hU6=function(){var Y;let X={mode:"cors",redirect:"follow",headers:{Accept:"text/event-stream",...g4(this,tP)?{"Last-Event-ID":g4(this,tP)}:void 0},cache:"no-store",signal:(Y=g4(this,b3))==null?void 0:Y.signal};return"window"in globalThis&&(X.credentials=this.withCredentials?"include":"same-origin"),X},E50=new WeakMap,C50=new WeakMap,oP=function(Y,X){var Q;g4(this,aQ)!==this.CLOSED&&x8(this,aQ,this.CLOSED);let J=new w50("error",{code:X,message:Y});(Q=g4(this,cD))==null||Q.call(this,J),this.dispatchEvent(J)},I50=function(Y,X){var Q;if(g4(this,aQ)===this.CLOSED)return;x8(this,aQ,this.CONNECTING);let J=new w50("error",{code:X,message:Y});(Q=g4(this,cD))==null||Q.call(this,J),this.dispatchEvent(J),x8(this,pD,setTimeout(g4(this,R50),g4(this,sP)))},R50=new WeakMap,nD.CONNECTING=0,nD.OPEN=1,nD.CLOSED=2});class t${constructor(Y,X){this._url=Y,this._resourceMetadataUrl=void 0,this._scope=void 0,this._eventSourceInit=X?.eventSourceInit,this._requestInit=X?.requestInit,this._authProvider=X?.authProvider,this._fetch=X?.fetch,this._fetchWithInit=Lx(X?.fetch,X?.requestInit)}async _authThenStart(){if(!this._authProvider)throw new iQ("No auth provider");let Y;try{Y=await TW(this._authProvider,{serverUrl:this._url,resourceMetadataUrl:this._resourceMetadataUrl,scope:this._scope,fetchFn:this._fetchWithInit})}catch(X){throw this.onerror?.(X),X}if(Y!=="AUTHORIZED")throw new iQ;return await this._startOrAuth()}async _commonHeaders(){let Y={};if(this._authProvider){let Q=await this._authProvider.tokens();if(Q)Y.Authorization=`Bearer ${Q.access_token}`}if(this._protocolVersion)Y["mcp-protocol-version"]=this._protocolVersion;let X=_D(this._requestInit?.headers);return new Headers({...Y,...X})}_startOrAuth(){let Y=this?._eventSourceInit?.fetch??this._fetch??fetch;return new Promise((X,Q)=>{this._eventSource=new nD(this._url.href,{...this._eventSourceInit,fetch:async(J,G)=>{let K=await this._commonHeaders();K.set("Accept","text/event-stream");let W=await Y(J,{...G,headers:K});if(W.status===401&&W.headers.has("www-authenticate")){let{resourceMetadataUrl:Z,scope:H}=xD(W);this._resourceMetadataUrl=Z,this._scope=H}return W}}),this._abortController=new AbortController,this._eventSource.onerror=(J)=>{if(J.code===401&&this._authProvider){this._authThenStart().then(X,Q);return}let G=new uU6(J.code,J.message,J);Q(G),this.onerror?.(G)},this._eventSource.onopen=()=>{},this._eventSource.addEventListener("endpoint",(J)=>{let G=J;try{if(this._endpoint=new URL(G.data,this._url),this._endpoint.origin!==this._url.origin)throw Error(`Endpoint origin does not match connection origin: ${this._endpoint.origin}`)}catch(K){Q(K),this.onerror?.(K),this.close();return}X()}),this._eventSource.onmessage=(J)=>{let G=J,K;try{K=SJ.parse(JSON.parse(G.data))}catch(W){this.onerror?.(W);return}this.onmessage?.(K)}})}async start(){if(this._eventSource)throw Error("SSEClientTransport already started! If using Client class, note that connect() calls start() automatically.");return await this._startOrAuth()}async finishAuth(Y){if(!this._authProvider)throw new iQ("No auth provider");if(await TW(this._authProvider,{serverUrl:this._url,authorizationCode:Y,resourceMetadataUrl:this._resourceMetadataUrl,scope:this._scope,fetchFn:this._fetchWithInit})!=="AUTHORIZED")throw new iQ("Failed to authorize")}async close(){this._abortController?.abort(),this._eventSource?.close(),this.onclose?.()}async send(Y){if(!this._endpoint)throw Error("Not connected");try{let X=await this._commonHeaders();X.set("content-type","application/json");let Q={...this._requestInit,method:"POST",headers:X,body:JSON.stringify(Y),signal:this._abortController?.signal},J=await(this._fetch??fetch)(this._endpoint,Q);if(!J.ok){let G=await J.text().catch(()=>null);if(J.status===401&&this._authProvider){let{resourceMetadataUrl:K,scope:W}=xD(J);if(this._resourceMetadataUrl=K,this._scope=W,await TW(this._authProvider,{serverUrl:this._url,resourceMetadataUrl:this._resourceMetadataUrl,scope:this._scope,fetchFn:this._fetchWithInit})!=="AUTHORIZED")throw new iQ;return this.send(Y)}throw Error(`Error POSTing to endpoint (HTTP ${J.status}): ${G}`)}await J.body?.cancel()}catch(X){throw this.onerror?.(X),X}}setProtocolVersion(Y){this._protocolVersion=Y}}var uU6;var mx=S(()=>{xU6();p9();vx();uU6=class uU6 extends Error{constructor(Y,X,Q){super(`SSE error: ${X}`);this.code=Y,this.event=Q}}});var pU6=E((jF8,dU6)=>{dU6.exports=lU6;lU6.sync=ZX1;var gU6=F0("fs");function WX1(Y,X){var Q=X.pathExt!==void 0?X.pathExt:process.env.PATHEXT;if(!Q)return!0;if(Q=Q.split(";"),Q.indexOf("")!==-1)return!0;for(var J=0;J<Q.length;J++){var G=Q[J].toLowerCase();if(G&&Y.substr(-G.length).toLowerCase()===G)return!0}return!1}function mU6(Y,X,Q){if(!Y.isSymbolicLink()&&!Y.isFile())return!1;return WX1(X,Q)}function lU6(Y,X,Q){gU6.stat(Y,function(J,G){Q(J,J?!1:mU6(G,Y,X))})}function ZX1(Y,X){return mU6(gU6.statSync(Y),Y,X)}});var rU6=E((SF8,aU6)=>{aU6.exports=nU6;nU6.sync=KX1;var cU6=F0("fs");function nU6(Y,X,Q){cU6.stat(Y,function(J,G){Q(J,J?!1:iU6(G,X))})}function KX1(Y,X){return iU6(cU6.statSync(Y),X)}function iU6(Y,X){return Y.isFile()&&HX1(Y,X)}function HX1(Y,X){var{mode:Q,uid:J,gid:G}=Y,K=X.uid!==void 0?X.uid:process.getuid&&process.getuid(),W=X.gid!==void 0?X.gid:process.getgid&&process.getgid(),Z=parseInt("100",8),H=parseInt("010",8),F=parseInt("001",8),V=Z|H,$=Q&F||Q&H&&G===W||Q&Z&&J===K||Q&V&&K===0;return $}});var sU6=E((vF8,oU6)=>{var kF8=F0("fs"),lx;if(process.platform==="win32"||global.TESTING_WINDOWS)lx=pU6();else lx=rU6();oU6.exports=S50;S50.sync=FX1;function S50(Y,X,Q){if(typeof X==="function")Q=X,X={};if(!Q){if(typeof Promise!=="function")throw TypeError("callback not provided");return new Promise(function(J,G){S50(Y,X||{},function(K,W){if(K)G(K);else J(W)})})}lx(Y,X||{},function(J,G){if(J){if(J.code==="EACCES"||X&&X.ignoreErrors)J=null,G=!1}Q(J,G)})}function FX1(Y,X){try{return lx.sync(Y,X||{})}catch(Q){if(X&&X.ignoreErrors||Q.code==="EACCES")return!1;else throw Q}}});var GD6=E((_F8,JD6)=>{var iD=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",tU6=F0("path"),VX1=iD?";":":",eU6=sU6(),YD6=(Y)=>Object.assign(Error(`not found: ${Y}`),{code:"ENOENT"}),XD6=(Y,X)=>{let Q=X.colon||VX1,J=Y.match(/\//)||iD&&Y.match(/\\/)?[""]:[...iD?[process.cwd()]:[],...(X.path||process.env.PATH||"").split(Q)],G=iD?X.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",K=iD?G.split(Q):[""];if(iD){if(Y.indexOf(".")!==-1&&K[0]!=="")K.unshift("")}return{pathEnv:J,pathExt:K,pathExtExe:G}},QD6=(Y,X,Q)=>{if(typeof X==="function")Q=X,X={};if(!X)X={};let{pathEnv:J,pathExt:G,pathExtExe:K}=XD6(Y,X),W=[],Z=(F)=>new Promise((V,$)=>{if(F===J.length)return X.all&&W.length?V(W):$(YD6(Y));let q=J[F],B=/^".*"$/.test(q)?q.slice(1,-1):q,D=tU6.join(B,Y),O=!B&&/^\.[\\\/]/.test(Y)?Y.slice(0,2)+D:D;V(H(O,F,0))}),H=(F,V,$)=>new Promise((q,B)=>{if($===G.length)return q(Z(V+1));let D=G[$];eU6(F+D,{pathExt:K},(O,L)=>{if(!O&&L)if(X.all)W.push(F+D);else return q(F+D);return q(H(F,V,$+1))})});return Q?Z(0).then((F)=>Q(null,F),Q):Z(0)},$X1=(Y,X)=>{X=X||{};let{pathEnv:Q,pathExt:J,pathExtExe:G}=XD6(Y,X),K=[];for(let W=0;W<Q.length;W++){let Z=Q[W],H=/^".*"$/.test(Z)?Z.slice(1,-1):Z,F=tU6.join(H,Y),V=!H&&/^\.[\\\/]/.test(Y)?Y.slice(0,2)+F:F;for(let $=0;$<J.length;$++){let q=V+J[$];try{if(eU6.sync(q,{pathExt:G}))if(X.all)K.push(q);else return q}catch(B){}}}if(X.all&&K.length)return K;if(X.nothrow)return null;throw YD6(Y)};JD6.exports=QD6;QD6.sync=$X1});var ZD6=E((yF8,k50)=>{var WD6=(Y={})=>{let X=Y.env||process.env;if((Y.platform||process.platform)!=="win32")return"PATH";return Object.keys(X).reverse().find((J)=>J.toUpperCase()==="PATH")||"Path"};k50.exports=WD6;k50.exports.default=WD6});var VD6=E((fF8,FD6)=>{var KD6=F0("path"),qX1=GD6(),zX1=ZD6();function HD6(Y,X){let Q=Y.options.env||process.env,J=process.cwd(),G=Y.options.cwd!=null,K=G&&process.chdir!==void 0&&!process.chdir.disabled;if(K)try{process.chdir(Y.options.cwd)}catch(Z){}let W;try{W=qX1.sync(Y.command,{path:Q[zX1({env:Q})],pathExt:X?KD6.delimiter:void 0})}catch(Z){}finally{if(K)process.chdir(J)}if(W)W=KD6.resolve(G?Y.options.cwd:"",W);return W}function BX1(Y){return HD6(Y)||HD6(Y,!0)}FD6.exports=BX1});var $D6=E((OX1,_50)=>{var v50=/([()\][%!^"`<>&|;, *?])/g;function UX1(Y){return Y=Y.replace(v50,"^$1"),Y}function DX1(Y,X){if(Y=`${Y}`,Y=Y.replace(/(?=(\\+?)?)\1"/g,"$1$1\\\""),Y=Y.replace(/(?=(\\+?)?)\1$/,"$1$1"),Y=`"${Y}"`,Y=Y.replace(v50,"^$1"),X)Y=Y.replace(v50,"^$1");return Y}OX1.command=UX1;OX1.argument=DX1});var zD6=E((hF8,qD6)=>{qD6.exports=/^#!(.*)/});var UD6=E((bF8,BD6)=>{var wX1=zD6();BD6.exports=(Y="")=>{let X=Y.match(wX1);if(!X)return null;let[Q,J]=X[0].replace(/#! ?/,"").split(" "),G=Q.split("/").pop();if(G==="env")return J;return J?`${G} ${J}`:G}});var OD6=E((xF8,DD6)=>{var y50=F0("fs"),MX1=UD6();function AX1(Y){let Q=Buffer.alloc(150),J;try{J=y50.openSync(Y,"r"),y50.readSync(J,Q,0,150,0),y50.closeSync(J)}catch(G){}return MX1(Q.toString())}DD6.exports=AX1});var MD6=E((uF8,wD6)=>{var TX1=F0("path"),ND6=VD6(),LD6=$D6(),PX1=OD6(),EX1=process.platform==="win32",CX1=/\.(?:com|exe)$/i,IX1=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function RX1(Y){Y.file=ND6(Y);let X=Y.file&&PX1(Y.file);if(X)return Y.args.unshift(Y.file),Y.command=X,ND6(Y);return Y.file}function jX1(Y){if(!EX1)return Y;let X=RX1(Y),Q=!CX1.test(X);if(Y.options.forceShell||Q){let J=IX1.test(X);Y.command=TX1.normalize(Y.command),Y.command=LD6.command(Y.command),Y.args=Y.args.map((K)=>LD6.argument(K,J));let G=[Y.command].concat(Y.args).join(" ");Y.args=["/d","/s","/c",`"${G}"`],Y.command=process.env.comspec||"cmd.exe",Y.options.windowsVerbatimArguments=!0}return Y}function SX1(Y,X,Q){if(X&&!Array.isArray(X))Q=X,X=null;X=X?X.slice(0):[],Q=Object.assign({},Q);let J={command:Y,args:X,options:Q,file:void 0,original:{command:Y,args:X}};return Q.shell?J:jX1(J)}wD6.exports=SX1});var PD6=E((gF8,TD6)=>{var f50=process.platform==="win32";function h50(Y,X){return Object.assign(Error(`${X} ${Y.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${X} ${Y.command}`,path:Y.command,spawnargs:Y.args})}function kX1(Y,X){if(!f50)return;let Q=Y.emit;Y.emit=function(J,G){if(J==="exit"){let K=AD6(G,X);if(K)return Q.call(Y,"error",K)}return Q.apply(Y,arguments)}}function AD6(Y,X){if(f50&&Y===1&&!X.file)return h50(X.original,"spawn");return null}function vX1(Y,X){if(f50&&Y===1&&!X.file)return h50(X.original,"spawnSync");return null}TD6.exports={hookChildProcess:kX1,verifyENOENT:AD6,verifyENOENTSync:vX1,notFoundError:h50}});var ID6=E((mF8,aD)=>{var ED6=F0("child_process"),b50=MD6(),x50=PD6();function CD6(Y,X,Q){let J=b50(Y,X,Q),G=ED6.spawn(J.command,J.args,J.options);return x50.hookChildProcess(G,J),G}function _X1(Y,X,Q){let J=b50(Y,X,Q),G=ED6.spawnSync(J.command,J.args,J.options);return G.error=G.error||x50.verifyENOENTSync(G.status,J),G}aD.exports=CD6;aD.exports.spawn=CD6;aD.exports.sync=_X1;aD.exports._parse=b50;aD.exports._enoent=x50});class u50{append(Y){this._buffer=this._buffer?Buffer.concat([this._buffer,Y]):Y}readMessage(){if(!this._buffer)return null;let Y=this._buffer.indexOf(`
|
|
1159
|
+
`&&J++}}return[X,Q]}var Z50;var K50=S(()=>{Z50=class Z50 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}}});var cP;var H50=S(()=>{K50();cP=class cP extends TransformStream{constructor({onError:Y,onRetry:X,onComment:Q}={}){let J;super({start(G){J=_x({onEvent:(K)=>{G.enqueue(K)},onError(K){Y==="terminate"?G.error(K):typeof Y=="function"&&Y(K)},onRetry:X,onComment:Q})},transform(G){J.feed(G)}})}}});class PW{constructor(Y,X){this._hasCompletedAuthFlow=!1,this._url=Y,this._resourceMetadataUrl=void 0,this._scope=void 0,this._requestInit=X?.requestInit,this._authProvider=X?.authProvider,this._fetch=X?.fetch,this._fetchWithInit=Lx(X?.fetch,X?.requestInit),this._sessionId=X?.sessionId,this._reconnectionOptions=X?.reconnectionOptions??DY1}async _authThenStart(){if(!this._authProvider)throw new iQ("No auth provider");let Y;try{Y=await TW(this._authProvider,{serverUrl:this._url,resourceMetadataUrl:this._resourceMetadataUrl,scope:this._scope,fetchFn:this._fetchWithInit})}catch(X){throw this.onerror?.(X),X}if(Y!=="AUTHORIZED")throw new iQ;return await this._startOrAuthSse({resumptionToken:void 0})}async _commonHeaders(){let Y={};if(this._authProvider){let Q=await this._authProvider.tokens();if(Q)Y.Authorization=`Bearer ${Q.access_token}`}if(this._sessionId)Y["mcp-session-id"]=this._sessionId;if(this._protocolVersion)Y["mcp-protocol-version"]=this._protocolVersion;let X=_D(this._requestInit?.headers);return new Headers({...Y,...X})}async _startOrAuthSse(Y){let{resumptionToken:X}=Y;try{let Q=await this._commonHeaders();if(Q.set("Accept","text/event-stream"),X)Q.set("last-event-id",X);let J=await(this._fetch??fetch)(this._url,{method:"GET",headers:Q,signal:this._abortController?.signal});if(!J.ok){if(await J.body?.cancel(),J.status===401&&this._authProvider)return await this._authThenStart();if(J.status===405)return;throw new n$(J.status,`Failed to open SSE stream: ${J.statusText}`)}this._handleSseStream(J.body,Y,!0)}catch(Q){throw this.onerror?.(Q),Q}}_getNextReconnectionDelay(Y){if(this._serverRetryMs!==void 0)return this._serverRetryMs;let X=this._reconnectionOptions.initialReconnectionDelay,Q=this._reconnectionOptions.reconnectionDelayGrowFactor,J=this._reconnectionOptions.maxReconnectionDelay;return Math.min(X*Math.pow(Q,Y),J)}_scheduleReconnection(Y,X=0){let Q=this._reconnectionOptions.maxRetries;if(X>=Q){this.onerror?.(Error(`Maximum reconnection attempts (${Q}) exceeded.`));return}let J=this._getNextReconnectionDelay(X);this._reconnectionTimeout=setTimeout(()=>{this._startOrAuthSse(Y).catch((G)=>{this.onerror?.(Error(`Failed to reconnect SSE stream: ${G instanceof Error?G.message:String(G)}`)),this._scheduleReconnection(Y,X+1)})},J)}_handleSseStream(Y,X,Q){if(!Y)return;let{onresumptiontoken:J,replayMessageId:G}=X,K,W=!1,Z=!1;(async()=>{try{let F=Y.pipeThrough(new TextDecoderStream).pipeThrough(new cP({onRetry:(q)=>{this._serverRetryMs=q}})).getReader();while(!0){let{value:q,done:B}=await F.read();if(B)break;if(q.id)K=q.id,W=!0,J?.(q.id);if(!q.data)continue;if(!q.event||q.event==="message")try{let D=SJ.parse(JSON.parse(q.data));if(RG(D)){if(Z=!0,G!==void 0)D.id=G}this.onmessage?.(D)}catch(D){this.onerror?.(D)}}if((Q||W)&&!Z&&this._abortController&&!this._abortController.signal.aborted)this._scheduleReconnection({resumptionToken:K,onresumptiontoken:J,replayMessageId:G},0)}catch(F){if(this.onerror?.(Error(`SSE stream disconnected: ${F}`)),(Q||W)&&!Z&&this._abortController&&!this._abortController.signal.aborted)try{this._scheduleReconnection({resumptionToken:K,onresumptiontoken:J,replayMessageId:G},0)}catch(q){this.onerror?.(Error(`Failed to reconnect: ${q instanceof Error?q.message:String(q)}`))}}})()}async start(){if(this._abortController)throw Error("StreamableHTTPClientTransport already started! If using Client class, note that connect() calls start() automatically.");this._abortController=new AbortController}async finishAuth(Y){if(!this._authProvider)throw new iQ("No auth provider");if(await TW(this._authProvider,{serverUrl:this._url,authorizationCode:Y,resourceMetadataUrl:this._resourceMetadataUrl,scope:this._scope,fetchFn:this._fetchWithInit})!=="AUTHORIZED")throw new iQ("Failed to authorize")}async close(){if(this._reconnectionTimeout)clearTimeout(this._reconnectionTimeout),this._reconnectionTimeout=void 0;this._abortController?.abort(),this.onclose?.()}async send(Y,X){try{let{resumptionToken:Q,onresumptiontoken:J}=X||{};if(Q){this._startOrAuthSse({resumptionToken:Q,replayMessageId:OW(Y)?Y.id:void 0}).catch(($)=>this.onerror?.($));return}let G=await this._commonHeaders();G.set("content-type","application/json"),G.set("accept","application/json, text/event-stream");let K={...this._requestInit,method:"POST",headers:G,body:JSON.stringify(Y),signal:this._abortController?.signal},W=await(this._fetch??fetch)(this._url,K),Z=W.headers.get("mcp-session-id");if(Z)this._sessionId=Z;if(!W.ok){let $=await W.text().catch(()=>null);if(W.status===401&&this._authProvider){if(this._hasCompletedAuthFlow)throw new n$(401,"Server returned 401 after successful authentication");let{resourceMetadataUrl:q,scope:B}=xD(W);if(this._resourceMetadataUrl=q,this._scope=B,await TW(this._authProvider,{serverUrl:this._url,resourceMetadataUrl:this._resourceMetadataUrl,scope:this._scope,fetchFn:this._fetchWithInit})!=="AUTHORIZED")throw new iQ;return this._hasCompletedAuthFlow=!0,this.send(Y)}if(W.status===403&&this._authProvider){let{resourceMetadataUrl:q,scope:B,error:D}=xD(W);if(D==="insufficient_scope"){let O=W.headers.get("WWW-Authenticate");if(this._lastUpscopingHeader===O)throw new n$(403,"Server returned 403 after trying upscoping");if(B)this._scope=B;if(q)this._resourceMetadataUrl=q;if(this._lastUpscopingHeader=O??void 0,await TW(this._authProvider,{serverUrl:this._url,resourceMetadataUrl:this._resourceMetadataUrl,scope:this._scope,fetchFn:this._fetch})!=="AUTHORIZED")throw new iQ;return this.send(Y)}}throw new n$(W.status,`Error POSTing to endpoint: ${$}`)}if(this._hasCompletedAuthFlow=!1,this._lastUpscopingHeader=void 0,W.status===202){if(await W.body?.cancel(),TF6(Y))this._startOrAuthSse({resumptionToken:void 0}).catch(($)=>this.onerror?.($));return}let F=(Array.isArray(Y)?Y:[Y]).filter(($)=>("method"in $)&&("id"in $)&&$.id!==void 0).length>0,V=W.headers.get("content-type");if(F)if(V?.includes("text/event-stream"))this._handleSseStream(W.body,{onresumptiontoken:J},!1);else if(V?.includes("application/json")){let $=await W.json(),q=Array.isArray($)?$.map((B)=>SJ.parse(B)):[SJ.parse($)];for(let B of q)this.onmessage?.(B)}else throw await W.body?.cancel(),new n$(-1,`Unexpected content type: ${V}`);else await W.body?.cancel()}catch(Q){throw this.onerror?.(Q),Q}}get sessionId(){return this._sessionId}async terminateSession(){if(!this._sessionId)return;try{let Y=await this._commonHeaders(),X={...this._requestInit,method:"DELETE",headers:Y,signal:this._abortController?.signal},Q=await(this._fetch??fetch)(this._url,X);if(await Q.body?.cancel(),!Q.ok&&Q.status!==405)throw new n$(Q.status,`Failed to terminate session: ${Q.statusText}`);this._sessionId=void 0}catch(Y){throw this.onerror?.(Y),Y}}setProtocolVersion(Y){this._protocolVersion=Y}get protocolVersion(){return this._protocolVersion}async resumeStream(Y,X){await this._startOrAuthSse({resumptionToken:Y,onresumptiontoken:X?.onresumptiontoken})}}var DY1,n$;var uD=S(()=>{p9();vx();H50();DY1={initialReconnectionDelay:1000,maxReconnectionDelay:30000,reconnectionDelayGrowFactor:1.5,maxRetries:2};n$=class n$ extends Error{constructor(Y,X){super(`Streamable HTTP error: ${X}`);this.code=Y}}});var F50=S(()=>{uD()});var yx=S(()=>{c$();_$();F50()});function V50(Y){return{id:i$.REGISTRY(Y),title:"Deco Store",description:"Official deco MCP registry with curated integrations",connection_type:"HTTP",connection_url:"https://api.decocms.com/mcp/registry",icon:"https://assets.decocache.com/decocms/00ccf6c3-9e13-4517-83b0-75ab84554bb9/596364c63320075ca58483660156b6d9de9b526e.png",app_name:"deco-registry",app_id:null,connection_token:null,connection_headers:null,oauth_config:null,configuration_state:null,configuration_scopes:null,metadata:{isDefault:!0,type:"registry"}}}function $50(){return{id:"community-registry",title:"MCP Registry",description:"Community MCP registry with thousands of handy MCPs",connection_type:"HTTP",connection_url:"https://sites-registry.decocache.com/mcp",icon:"https://assets.decocache.com/decocms/cd7ca472-0f72-463a-b0de-6e44bdd0f9b4/mcp.png",app_name:"mcp-registry",app_id:null,connection_token:null,connection_headers:null,oauth_config:null,configuration_state:null,configuration_scopes:null,metadata:{isDefault:!0,type:"registry"}}}function q50(Y,X){return{id:i$.SELF(X),title:"Mesh MCP",description:"The MCP for the mesh API",connection_type:"HTTP",connection_url:`${Y}/mcp/self`,icon:"https://assets.decocache.com/mcp/09e44283-f47d-4046-955f-816d227c626f/app.png",app_name:"@deco/management-mcp",connection_token:null,connection_headers:null,oauth_config:null,configuration_state:null,configuration_scopes:null,metadata:{isDefault:!0,type:"self"}}}function z50(Y){return{id:`decopilot-${Y}`,organization_id:Y,title:"Decopilot",description:"Default agent that aggregates all organization connections",icon:"https://assets.decocache.com/decocms/fd07a578-6b1c-40f1-bc05-88a3b981695d/f7fc4ffa81aec04e37ae670c3cd4936643a7b269.png",tool_selection_mode:"exclusion",status:"active",created_at:new Date().toISOString(),updated_at:new Date().toISOString(),created_by:"system",updated_by:void 0,connections:[]}}var i$;var fx=S(()=>{i$={SELF:(Y)=>`${Y}_self`,REGISTRY:(Y)=>`${Y}_registry`,COMMUNITY_REGISTRY:(Y)=>`${Y}_community-registry`}});var $U6=S(()=>{PX0();nh();yx();fx()});var qU6=S(()=>{_$()});var zU6=S(()=>{_$()});var BU6=S(()=>{CX0();nh();yx();fx()});var UU6=S(()=>{nh();$U6();yx();jX0();qU6();zU6();BU6()});var uY1,gY1,mY1,lY1,hx,DU6,OU6;var NU6=S(()=>{s0();uY1=z.object({authorizationEndpoint:z.string().url(),tokenEndpoint:z.string().url(),introspectionEndpoint:z.string().url().optional(),clientId:z.string(),clientSecret:z.string().optional(),scopes:z.array(z.string()),grantType:z.enum(["authorization_code","client_credentials"])}),gY1=z.object({name:z.string(),description:z.string().optional(),inputSchema:z.record(z.string(),z.unknown()),outputSchema:z.record(z.string(),z.unknown()).optional()}),mY1=z.object({headers:z.record(z.string(),z.string()).optional()}),lY1=z.object({command:z.string().describe("Command to run (e.g., 'npx', 'node')"),args:z.array(z.string()).optional().describe("Command arguments"),cwd:z.string().optional().describe("Working directory"),envVars:z.record(z.string(),z.string()).optional().describe("Environment variables (encrypted in storage)")}),hx=z.object({id:z.string().describe("Unique identifier for the connection"),title:z.string().describe("Human-readable name for the connection"),created_at:z.string().describe("When the connection was created"),updated_at:z.string().describe("When the connection was last updated"),created_by:z.string().describe("User ID who created the connection"),updated_by:z.string().optional().describe("User ID who last updated the connection"),organization_id:z.string().describe("Organization ID this connection belongs to"),description:z.string().nullable().describe("Description of the connection"),icon:z.string().nullable().describe("Icon URL for the connection"),app_name:z.string().nullable().describe("Associated app name"),app_id:z.string().nullable().describe("Associated app ID"),connection_type:z.enum(["HTTP","SSE","Websocket","STDIO","VIRTUAL"]).describe("Type of connection"),connection_url:z.string().nullable().describe("URL for HTTP/SSE/WebSocket connections. virtual://$id for VIRTUAL. Null for STDIO."),connection_token:z.string().nullable().describe("Authentication token (for HTTP connections)"),connection_headers:z.union([lY1,mY1]).nullable().describe("Connection parameters. HTTP: { headers }. STDIO: { command, args, cwd, envVars }"),oauth_config:uY1.nullable().describe("OAuth configuration"),configuration_state:z.record(z.string(),z.unknown()).nullable().describe("Configuration state (decrypted)"),configuration_scopes:z.array(z.string()).nullable().optional().describe("Configuration scopes"),metadata:z.record(z.string(),z.unknown()).nullable().describe("Additional metadata (includes repository info)"),tools:z.array(gY1).nullable().describe("Discovered tools from MCP"),bindings:z.array(z.string()).nullable().describe("Detected bindings"),status:z.enum(["active","inactive","error"]).describe("Current status")}),DU6=hx.omit({created_at:!0,updated_at:!0,created_by:!0,updated_by:!0,organization_id:!0,tools:!0,bindings:!0,status:!0}).partial({id:!0,description:!0,icon:!0,app_name:!0,app_id:!0,connection_url:!0,connection_token:!0,connection_headers:!0,oauth_config:!0,configuration_state:!0,configuration_scopes:!0,metadata:!0}),OU6=hx.partial()});var N50,dY1,LU6,wU6,MU6;var AU6=S(()=>{s0();N50=z.enum(["inclusion","exclusion"]).describe("Tool selection mode: 'inclusion' = include selected (default), 'exclusion' = exclude selected"),dY1=z.object({connection_id:z.string().describe("Connection ID"),selected_tools:z.array(z.string()).nullable().describe("Selected tool names. With 'inclusion' mode: null = all tools included. With 'exclusion' mode: null = entire connection excluded"),selected_resources:z.array(z.string()).nullable().describe("Selected resource URIs or patterns. Supports * and ** wildcards for pattern matching. With 'inclusion' mode: null = all resources included."),selected_prompts:z.array(z.string()).nullable().describe("Selected prompt names. With 'inclusion' mode: null = all prompts included. With 'exclusion' mode: null = entire connection excluded.")}),LU6=z.object({id:z.string().describe("Unique identifier for the virtual MCP"),title:z.string().describe("Human-readable name for the virtual MCP"),description:z.string().nullable().describe("Description of the virtual MCP"),icon:z.string().nullable().optional().describe("Icon URL for the virtual MCP"),created_at:z.string().describe("When the virtual MCP was created"),updated_at:z.string().describe("When the virtual MCP was last updated"),created_by:z.string().describe("User ID who created the virtual MCP"),updated_by:z.string().optional().describe("User ID who last updated the virtual MCP"),organization_id:z.string().describe("Organization ID this virtual MCP belongs to"),tool_selection_mode:N50.describe("Tool selection mode: 'inclusion' = include selected, 'exclusion' = exclude selected"),status:z.enum(["active","inactive"]).describe("Current status"),metadata:z.object({instructions:z.string().optional().describe("MCP server instructions")}).nullable().optional().describe("Additional metadata including MCP server instructions"),connections:z.array(dY1).describe("Connections with their selected tools (behavior depends on tool_selection_mode)")}),wU6=z.object({title:z.string().min(1).max(255).describe("Name for the virtual MCP"),description:z.string().nullable().optional().describe("Optional description"),tool_selection_mode:N50.optional().default("inclusion").describe("Tool selection mode (defaults to 'inclusion')"),icon:z.string().nullable().optional().describe("Optional icon URL"),status:z.enum(["active","inactive"]).optional().default("active").describe("Initial status"),metadata:z.object({instructions:z.string().optional().describe("MCP server instructions")}).nullable().optional().describe("Additional metadata including MCP server instructions"),connections:z.array(z.object({connection_id:z.string().describe("Connection ID"),selected_tools:z.array(z.string()).nullable().optional().describe("Selected tool names (null/undefined = all tools or full exclusion)"),selected_resources:z.array(z.string()).nullable().optional().describe("Selected resource URIs or patterns with * and ** wildcards (null/undefined = all resources)"),selected_prompts:z.array(z.string()).nullable().optional().describe("Selected prompt names (null/undefined = all prompts or full exclusion)")})).describe("Connections to include/exclude (can be empty for exclusion mode)")}),MU6=z.object({title:z.string().min(1).max(255).optional().describe("New name"),description:z.string().nullable().optional().describe("New description (null to clear)"),tool_selection_mode:N50.optional().describe("New tool selection mode"),icon:z.string().nullable().optional().describe("New icon URL (null to clear)"),status:z.enum(["active","inactive"]).optional().describe("New status"),metadata:z.object({instructions:z.string().optional().describe("MCP server instructions")}).nullable().optional().describe("Additional metadata including MCP server instructions"),connections:z.array(z.object({connection_id:z.string().describe("Connection ID"),selected_tools:z.array(z.string()).nullable().optional().describe("Selected tool names (null/undefined = all tools or full exclusion)"),selected_resources:z.array(z.string()).nullable().optional().describe("Selected resource URIs or patterns with * and ** wildcards (null/undefined = all resources)"),selected_prompts:z.array(z.string()).nullable().optional().describe("Selected prompt names (null/undefined = all prompts or full exclusion)")})).optional().describe("New connections (replaces existing)")})});var TU6=S(()=>{NU6();AU6()});var PU6=S(()=>{vx()});var nP=S(()=>{CX0();UU6();TU6();F50();_$();PU6();fx()});import{createCipheriv as iY1,createDecipheriv as aY1,randomBytes as EU6}from"crypto";class a${key;constructor(Y){if(Buffer.from(Y,"base64").length===RU6)this.key=Buffer.from(Y,"base64");else{let X=F0("crypto");this.key=X.createHash("sha256").update(Y).digest()}}async encrypt(Y){let X=EU6(iP),Q=iY1(CU6,this.key,X),J=Q.update(Y,"utf8");J=Buffer.concat([J,Q.final()]);let G=Q.getAuthTag();return Buffer.concat([X,G,J]).toString("base64")}async decrypt(Y){let X=Buffer.from(Y,"base64"),Q=X.subarray(0,iP),J=X.subarray(iP,iP+IU6),G=X.subarray(iP+IU6),K=aY1(CU6,this.key,Q);K.setAuthTag(J);let W=K.update(G);return W=Buffer.concat([W,K.final()]),W.toString("utf8")}static generateKey(){return EU6(RU6).toString("base64")}}var CU6="aes-256-gcm",iP=16,IU6=16,RU6=32;var bx=()=>{};function r$(Y){return Y!==null&&Y!==void 0&&"command"in Y}function h3(Y){if(!Y||!Y.startsWith("virtual://"))return null;return Y.replace("virtual://","")}function xx(Y){return`virtual://${Y}`}var rY1,oY1,sY1,tY1,eY1,x5,jU6,SU6;var EW=S(()=>{s0();rY1=z.object({authorizationEndpoint:z.string().url(),tokenEndpoint:z.string().url(),introspectionEndpoint:z.string().url().optional(),clientId:z.string(),clientSecret:z.string().optional(),scopes:z.array(z.string()),grantType:z.enum(["authorization_code","client_credentials"])}),oY1=z.object({title:z.string().optional(),readOnlyHint:z.boolean().optional(),destructiveHint:z.boolean().optional(),idempotentHint:z.boolean().optional(),openWorldHint:z.boolean().optional()}),sY1=z.object({name:z.string(),description:z.string().optional(),inputSchema:z.record(z.string(),z.unknown()),outputSchema:z.record(z.string(),z.unknown()).optional(),annotations:oY1.optional(),_meta:z.record(z.string(),z.unknown()).optional()}),tY1=z.object({headers:z.record(z.string(),z.string()).optional()}),eY1=z.object({command:z.string().describe("Command to run (e.g., 'npx', 'node')"),args:z.array(z.string()).optional().describe("Command arguments"),cwd:z.string().optional().describe("Working directory"),envVars:z.record(z.string(),z.string()).optional().describe("Environment variables (encrypted in storage)")}),x5=z.object({id:z.string().describe("Unique identifier for the connection"),title:z.string().describe("Human-readable name for the connection"),created_at:z.string().describe("When the connection was created"),updated_at:z.string().describe("When the connection was last updated"),created_by:z.string().describe("User ID who created the connection"),updated_by:z.string().optional().describe("User ID who last updated the connection"),organization_id:z.string().describe("Organization ID this connection belongs to"),description:z.string().nullable().describe("Description of the connection"),icon:z.string().nullable().describe("Icon URL for the connection"),app_name:z.string().nullable().describe("Associated app name"),app_id:z.string().nullable().describe("Associated app ID"),connection_type:z.enum(["HTTP","SSE","Websocket","STDIO","VIRTUAL"]).describe("Type of connection"),connection_url:z.string().nullable().describe("URL for HTTP/SSE/WebSocket connections. virtual://$id for VIRTUAL. Null for STDIO."),connection_token:z.string().nullable().describe("Authentication token (for HTTP connections)"),connection_headers:z.union([eY1,tY1]).nullable().describe("Connection parameters. HTTP: { headers }. STDIO: { command, args, cwd, envVars }"),oauth_config:rY1.nullable().describe("OAuth configuration"),configuration_state:z.record(z.string(),z.unknown()).nullable().describe("Configuration state (decrypted)"),configuration_scopes:z.array(z.string()).nullable().optional().describe("Configuration scopes"),metadata:z.record(z.string(),z.unknown()).nullable().describe("Additional metadata (includes repository info)"),tools:z.array(sY1).nullable().describe("Discovered tools from MCP"),bindings:z.array(z.string()).nullable().describe("Detected bindings"),status:z.enum(["active","inactive","error"]).describe("Current status")}),jU6=x5.omit({created_at:!0,updated_at:!0,created_by:!0,updated_by:!0,organization_id:!0,tools:!0,bindings:!0,status:!0}).partial({id:!0,description:!0,icon:!0,app_name:!0,app_id:!0,connection_url:!0,connection_token:!0,connection_headers:!0,oauth_config:!0,configuration_state:!0,configuration_scopes:!0,metadata:!0}),SU6=x5.partial()});var kU6="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";import{webcrypto as vU6}from"crypto";function XX1(Y){if(!o$||o$.length<Y)o$=Buffer.allocUnsafe(Y*YX1),vU6.getRandomValues(o$),gD=0;else if(gD+Y>o$.length)vU6.getRandomValues(o$),gD=0;gD+=Y}function _U6(Y=21){XX1(Y|=0);let X="";for(let Q=gD-Y;Q<gD;Q++)X+=kU6[o$[Q]&63];return X}var YX1=128,o$,gD;var yU6=()=>{};function L9(Y){return`${Y}_${_U6()}`}var KK=S(()=>{yU6()});class aP{db;vault;constructor(Y,X){this.db=Y;this.vault=X}async create(Y){let X=Y.id??L9("conn"),Q=new Date().toISOString(),J=await this.findById(X);if(J){if(J.organization_id!==Y.organization_id)throw Error("Connection ID already exists");return this.update(X,Y)}let G=await this.serializeConnection({...Y,id:Y.id??X,status:"active",created_at:Q,updated_at:Q});await this.db.insertInto("connections").values(G).execute();let K=await this.findById(X);if(!K)throw Error(`Failed to create connection with id: ${X}`);return K}async findById(Y,X){let Q=this.db.selectFrom("connections").selectAll().where("id","=",Y);if(X)Q=Q.where("organization_id","=",X);let J=await Q.executeTakeFirst();return J?this.deserializeConnection(J):null}async list(Y){let X=await this.db.selectFrom("connections").selectAll().where("organization_id","=",Y).execute();return Promise.all(X.map((Q)=>this.deserializeConnection(Q)))}async update(Y,X){if(Object.keys(X).length===0){let G=await this.findById(Y);if(!G)throw Error("Connection not found");return G}let Q=await this.serializeConnection({...X,updated_at:new Date().toISOString()});await this.db.updateTable("connections").set(Q).where("id","=",Y).execute();let J=await this.findById(Y);if(!J)throw Error("Connection not found after update");return J}async delete(Y){await this.db.deleteFrom("connections").where("id","=",Y).execute()}async testConnection(Y,X){let Q=await this.findById(Y);if(!Q)throw Error("Connection not found");let J=Date.now();if(Q.connection_type==="STDIO")return{healthy:!0,latencyMs:Date.now()-J};if(!Q.connection_url)return{healthy:!1,latencyMs:Date.now()-J};try{let G=Q.connection_headers,K=await fetch(Q.connection_url,{method:"POST",headers:{"Content-Type":"application/json",...Q.connection_token&&{Authorization:`Bearer ${Q.connection_token}`},...G?.headers,...X},body:JSON.stringify({jsonrpc:"2.0",method:"ping",id:1})});return{healthy:K.ok||K.status===404,latencyMs:Date.now()-J}}catch{return{healthy:!1,latencyMs:Date.now()-J}}}async serializeConnection(Y){let X={};for(let[Q,J]of Object.entries(Y)){if(J===void 0)continue;if(Q==="connection_token"&&J)X[Q]=await this.vault.encrypt(J);else if(Q==="configuration_state"&&J){let G=JSON.stringify(J);X[Q]=await this.vault.encrypt(G)}else if(Q==="connection_headers"&&J){let G=J;if(r$(G)&&G.envVars){let K={};for(let[W,Z]of Object.entries(G.envVars))K[W]=await this.vault.encrypt(Z);X[Q]=JSON.stringify({...G,envVars:K})}else X[Q]=JSON.stringify(G)}else if(QX1.includes(Q))X[Q]=J?JSON.stringify(J):null;else X[Q]=J}return X}async deserializeConnection(Y){let X=null;if(Y.connection_token)try{X=await this.vault.decrypt(Y.connection_token)}catch(K){console.error("Failed to decrypt connection token:",K)}let Q=null;if(Y.configuration_state)try{let K=await this.vault.decrypt(Y.configuration_state);Q=JSON.parse(K)}catch(K){console.error("Failed to decrypt configuration state:",K)}let J=null;if(Y.connection_headers)try{let K=JSON.parse(Y.connection_headers);if(r$(K)&&K.envVars){let W={};for(let[Z,H]of Object.entries(K.envVars))try{W[Z]=await this.vault.decrypt(H)}catch{W[Z]=H}J={...K,envVars:W}}else J=K}catch(K){console.error("Failed to parse connection_headers:",K)}let G=(K)=>{if(K===null)return null;if(typeof K==="string")try{return JSON.parse(K)}catch{return null}return K};return{id:Y.id,organization_id:Y.organization_id,created_by:Y.created_by,title:Y.title,description:Y.description,icon:Y.icon,app_name:Y.app_name,app_id:Y.app_id,connection_type:Y.connection_type,connection_url:Y.connection_url,connection_token:X,connection_headers:J,oauth_config:G(Y.oauth_config),configuration_state:Q,configuration_scopes:G(Y.configuration_scopes),metadata:G(Y.metadata),tools:G(Y.tools),bindings:G(Y.bindings),status:Y.status,created_at:Y.created_at,updated_at:Y.updated_at}}}var QX1;var L50=S(()=>{EW();KK();QX1=["connection_headers","oauth_config","configuration_scopes","metadata","tools","bindings"]});function JX1(Y){let X=globalThis.DOMException;return typeof X=="function"?new X(Y,"SyntaxError"):SyntaxError(Y)}function M50(Y){return Y instanceof Error?"errors"in Y&&Array.isArray(Y.errors)?Y.errors.map(M50).join(", "):("cause"in Y)&&Y.cause instanceof Error?`${Y}: ${M50(Y.cause)}`:Y.message:`${Y}`}function fU6(Y){return{type:Y.type,message:Y.message,code:Y.code,defaultPrevented:Y.defaultPrevented,cancelable:Y.cancelable,timeStamp:Y.timeStamp}}function GX1(){let Y="document"in globalThis?globalThis.document:void 0;return Y&&typeof Y=="object"&&"baseURI"in Y&&typeof Y.baseURI=="string"?Y.baseURI:void 0}var w50,bU6=(Y)=>{throw TypeError(Y)},j50=(Y,X,Q)=>X.has(Y)||bU6("Cannot "+Q),g4=(Y,X,Q)=>(j50(Y,X,"read from private field"),Q?Q.call(Y):X.get(Y)),c9=(Y,X,Q)=>X.has(Y)?bU6("Cannot add the same private member more than once"):X instanceof WeakSet?X.add(Y):X.set(Y,Q),x8=(Y,X,Q,J)=>(j50(Y,X,"write to private field"),X.set(Y,Q),Q),HK=(Y,X,Q)=>(j50(Y,X,"access private method"),Q),aQ,s$,mD,ux,gx,sP,pD,tP,b3,lD,cD,dD,rP,bG,A50,T50,P50,hU6,E50,C50,oP,I50,R50,nD;var xU6=S(()=>{K50();w50=class w50 extends Event{constructor(Y,X){var Q,J;super(Y),this.code=(Q=X==null?void 0:X.code)!=null?Q:void 0,this.message=(J=X==null?void 0:X.message)!=null?J:void 0}[Symbol.for("nodejs.util.inspect.custom")](Y,X,Q){return Q(fU6(this),X)}[Symbol.for("Deno.customInspect")](Y,X){return Y(fU6(this),X)}};nD=class nD extends EventTarget{constructor(Y,X){var Q,J;super(),c9(this,bG),this.CONNECTING=0,this.OPEN=1,this.CLOSED=2,c9(this,aQ),c9(this,s$),c9(this,mD),c9(this,ux),c9(this,gx),c9(this,sP),c9(this,pD),c9(this,tP,null),c9(this,b3),c9(this,lD),c9(this,cD,null),c9(this,dD,null),c9(this,rP,null),c9(this,T50,async(G)=>{var K;g4(this,lD).reset();let{body:W,redirected:Z,status:H,headers:F}=G;if(H===204){HK(this,bG,oP).call(this,"Server sent HTTP 204, not reconnecting",204),this.close();return}if(Z?x8(this,mD,new URL(G.url)):x8(this,mD,void 0),H!==200){HK(this,bG,oP).call(this,`Non-200 status code (${H})`,H);return}if(!(F.get("content-type")||"").startsWith("text/event-stream")){HK(this,bG,oP).call(this,'Invalid content type, expected "text/event-stream"',H);return}if(g4(this,aQ)===this.CLOSED)return;x8(this,aQ,this.OPEN);let V=new Event("open");if((K=g4(this,rP))==null||K.call(this,V),this.dispatchEvent(V),typeof W!="object"||!W||!("getReader"in W)){HK(this,bG,oP).call(this,"Invalid response body, expected a web ReadableStream",H),this.close();return}let $=new TextDecoder,q=W.getReader(),B=!0;do{let{done:D,value:O}=await q.read();O&&g4(this,lD).feed($.decode(O,{stream:!D})),D&&(B=!1,g4(this,lD).reset(),HK(this,bG,I50).call(this))}while(B)}),c9(this,P50,(G)=>{x8(this,b3,void 0),!(G.name==="AbortError"||G.type==="aborted")&&HK(this,bG,I50).call(this,M50(G))}),c9(this,E50,(G)=>{typeof G.id=="string"&&x8(this,tP,G.id);let K=new MessageEvent(G.event||"message",{data:G.data,origin:g4(this,mD)?g4(this,mD).origin:g4(this,s$).origin,lastEventId:G.id||""});g4(this,dD)&&(!G.event||G.event==="message")&&g4(this,dD).call(this,K),this.dispatchEvent(K)}),c9(this,C50,(G)=>{x8(this,sP,G)}),c9(this,R50,()=>{x8(this,pD,void 0),g4(this,aQ)===this.CONNECTING&&HK(this,bG,A50).call(this)});try{if(Y instanceof URL)x8(this,s$,Y);else if(typeof Y=="string")x8(this,s$,new URL(Y,GX1()));else throw Error("Invalid URL")}catch{throw JX1("An invalid or illegal string was specified")}x8(this,lD,_x({onEvent:g4(this,E50),onRetry:g4(this,C50)})),x8(this,aQ,this.CONNECTING),x8(this,sP,3000),x8(this,gx,(Q=X==null?void 0:X.fetch)!=null?Q:globalThis.fetch),x8(this,ux,(J=X==null?void 0:X.withCredentials)!=null?J:!1),HK(this,bG,A50).call(this)}get readyState(){return g4(this,aQ)}get url(){return g4(this,s$).href}get withCredentials(){return g4(this,ux)}get onerror(){return g4(this,cD)}set onerror(Y){x8(this,cD,Y)}get onmessage(){return g4(this,dD)}set onmessage(Y){x8(this,dD,Y)}get onopen(){return g4(this,rP)}set onopen(Y){x8(this,rP,Y)}addEventListener(Y,X,Q){let J=X;super.addEventListener(Y,J,Q)}removeEventListener(Y,X,Q){let J=X;super.removeEventListener(Y,J,Q)}close(){g4(this,pD)&&clearTimeout(g4(this,pD)),g4(this,aQ)!==this.CLOSED&&(g4(this,b3)&&g4(this,b3).abort(),x8(this,aQ,this.CLOSED),x8(this,b3,void 0))}};aQ=new WeakMap,s$=new WeakMap,mD=new WeakMap,ux=new WeakMap,gx=new WeakMap,sP=new WeakMap,pD=new WeakMap,tP=new WeakMap,b3=new WeakMap,lD=new WeakMap,cD=new WeakMap,dD=new WeakMap,rP=new WeakMap,bG=new WeakSet,A50=function(){x8(this,aQ,this.CONNECTING),x8(this,b3,new AbortController),g4(this,gx)(g4(this,s$),HK(this,bG,hU6).call(this)).then(g4(this,T50)).catch(g4(this,P50))},T50=new WeakMap,P50=new WeakMap,hU6=function(){var Y;let X={mode:"cors",redirect:"follow",headers:{Accept:"text/event-stream",...g4(this,tP)?{"Last-Event-ID":g4(this,tP)}:void 0},cache:"no-store",signal:(Y=g4(this,b3))==null?void 0:Y.signal};return"window"in globalThis&&(X.credentials=this.withCredentials?"include":"same-origin"),X},E50=new WeakMap,C50=new WeakMap,oP=function(Y,X){var Q;g4(this,aQ)!==this.CLOSED&&x8(this,aQ,this.CLOSED);let J=new w50("error",{code:X,message:Y});(Q=g4(this,cD))==null||Q.call(this,J),this.dispatchEvent(J)},I50=function(Y,X){var Q;if(g4(this,aQ)===this.CLOSED)return;x8(this,aQ,this.CONNECTING);let J=new w50("error",{code:X,message:Y});(Q=g4(this,cD))==null||Q.call(this,J),this.dispatchEvent(J),x8(this,pD,setTimeout(g4(this,R50),g4(this,sP)))},R50=new WeakMap,nD.CONNECTING=0,nD.OPEN=1,nD.CLOSED=2});class t${constructor(Y,X){this._url=Y,this._resourceMetadataUrl=void 0,this._scope=void 0,this._eventSourceInit=X?.eventSourceInit,this._requestInit=X?.requestInit,this._authProvider=X?.authProvider,this._fetch=X?.fetch,this._fetchWithInit=Lx(X?.fetch,X?.requestInit)}async _authThenStart(){if(!this._authProvider)throw new iQ("No auth provider");let Y;try{Y=await TW(this._authProvider,{serverUrl:this._url,resourceMetadataUrl:this._resourceMetadataUrl,scope:this._scope,fetchFn:this._fetchWithInit})}catch(X){throw this.onerror?.(X),X}if(Y!=="AUTHORIZED")throw new iQ;return await this._startOrAuth()}async _commonHeaders(){let Y={};if(this._authProvider){let Q=await this._authProvider.tokens();if(Q)Y.Authorization=`Bearer ${Q.access_token}`}if(this._protocolVersion)Y["mcp-protocol-version"]=this._protocolVersion;let X=_D(this._requestInit?.headers);return new Headers({...Y,...X})}_startOrAuth(){let Y=this?._eventSourceInit?.fetch??this._fetch??fetch;return new Promise((X,Q)=>{this._eventSource=new nD(this._url.href,{...this._eventSourceInit,fetch:async(J,G)=>{let K=await this._commonHeaders();K.set("Accept","text/event-stream");let W=await Y(J,{...G,headers:K});if(W.status===401&&W.headers.has("www-authenticate")){let{resourceMetadataUrl:Z,scope:H}=xD(W);this._resourceMetadataUrl=Z,this._scope=H}return W}}),this._abortController=new AbortController,this._eventSource.onerror=(J)=>{if(J.code===401&&this._authProvider){this._authThenStart().then(X,Q);return}let G=new uU6(J.code,J.message,J);Q(G),this.onerror?.(G)},this._eventSource.onopen=()=>{},this._eventSource.addEventListener("endpoint",(J)=>{let G=J;try{if(this._endpoint=new URL(G.data,this._url),this._endpoint.origin!==this._url.origin)throw Error(`Endpoint origin does not match connection origin: ${this._endpoint.origin}`)}catch(K){Q(K),this.onerror?.(K),this.close();return}X()}),this._eventSource.onmessage=(J)=>{let G=J,K;try{K=SJ.parse(JSON.parse(G.data))}catch(W){this.onerror?.(W);return}this.onmessage?.(K)}})}async start(){if(this._eventSource)throw Error("SSEClientTransport already started! If using Client class, note that connect() calls start() automatically.");return await this._startOrAuth()}async finishAuth(Y){if(!this._authProvider)throw new iQ("No auth provider");if(await TW(this._authProvider,{serverUrl:this._url,authorizationCode:Y,resourceMetadataUrl:this._resourceMetadataUrl,scope:this._scope,fetchFn:this._fetchWithInit})!=="AUTHORIZED")throw new iQ("Failed to authorize")}async close(){this._abortController?.abort(),this._eventSource?.close(),this.onclose?.()}async send(Y){if(!this._endpoint)throw Error("Not connected");try{let X=await this._commonHeaders();X.set("content-type","application/json");let Q={...this._requestInit,method:"POST",headers:X,body:JSON.stringify(Y),signal:this._abortController?.signal},J=await(this._fetch??fetch)(this._endpoint,Q);if(!J.ok){let G=await J.text().catch(()=>null);if(J.status===401&&this._authProvider){let{resourceMetadataUrl:K,scope:W}=xD(J);if(this._resourceMetadataUrl=K,this._scope=W,await TW(this._authProvider,{serverUrl:this._url,resourceMetadataUrl:this._resourceMetadataUrl,scope:this._scope,fetchFn:this._fetchWithInit})!=="AUTHORIZED")throw new iQ;return this.send(Y)}throw Error(`Error POSTing to endpoint (HTTP ${J.status}): ${G}`)}await J.body?.cancel()}catch(X){throw this.onerror?.(X),X}}setProtocolVersion(Y){this._protocolVersion=Y}}var uU6;var mx=S(()=>{xU6();p9();vx();uU6=class uU6 extends Error{constructor(Y,X,Q){super(`SSE error: ${X}`);this.code=Y,this.event=Q}}});var pU6=E((RF8,dU6)=>{dU6.exports=lU6;lU6.sync=ZX1;var gU6=F0("fs");function WX1(Y,X){var Q=X.pathExt!==void 0?X.pathExt:process.env.PATHEXT;if(!Q)return!0;if(Q=Q.split(";"),Q.indexOf("")!==-1)return!0;for(var J=0;J<Q.length;J++){var G=Q[J].toLowerCase();if(G&&Y.substr(-G.length).toLowerCase()===G)return!0}return!1}function mU6(Y,X,Q){if(!Y.isSymbolicLink()&&!Y.isFile())return!1;return WX1(X,Q)}function lU6(Y,X,Q){gU6.stat(Y,function(J,G){Q(J,J?!1:mU6(G,Y,X))})}function ZX1(Y,X){return mU6(gU6.statSync(Y),Y,X)}});var rU6=E((jF8,aU6)=>{aU6.exports=nU6;nU6.sync=KX1;var cU6=F0("fs");function nU6(Y,X,Q){cU6.stat(Y,function(J,G){Q(J,J?!1:iU6(G,X))})}function KX1(Y,X){return iU6(cU6.statSync(Y),X)}function iU6(Y,X){return Y.isFile()&&HX1(Y,X)}function HX1(Y,X){var{mode:Q,uid:J,gid:G}=Y,K=X.uid!==void 0?X.uid:process.getuid&&process.getuid(),W=X.gid!==void 0?X.gid:process.getgid&&process.getgid(),Z=parseInt("100",8),H=parseInt("010",8),F=parseInt("001",8),V=Z|H,$=Q&F||Q&H&&G===W||Q&Z&&J===K||Q&V&&K===0;return $}});var sU6=E((kF8,oU6)=>{var SF8=F0("fs"),lx;if(process.platform==="win32"||global.TESTING_WINDOWS)lx=pU6();else lx=rU6();oU6.exports=S50;S50.sync=FX1;function S50(Y,X,Q){if(typeof X==="function")Q=X,X={};if(!Q){if(typeof Promise!=="function")throw TypeError("callback not provided");return new Promise(function(J,G){S50(Y,X||{},function(K,W){if(K)G(K);else J(W)})})}lx(Y,X||{},function(J,G){if(J){if(J.code==="EACCES"||X&&X.ignoreErrors)J=null,G=!1}Q(J,G)})}function FX1(Y,X){try{return lx.sync(Y,X||{})}catch(Q){if(X&&X.ignoreErrors||Q.code==="EACCES")return!1;else throw Q}}});var GD6=E((vF8,JD6)=>{var iD=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",tU6=F0("path"),VX1=iD?";":":",eU6=sU6(),YD6=(Y)=>Object.assign(Error(`not found: ${Y}`),{code:"ENOENT"}),XD6=(Y,X)=>{let Q=X.colon||VX1,J=Y.match(/\//)||iD&&Y.match(/\\/)?[""]:[...iD?[process.cwd()]:[],...(X.path||process.env.PATH||"").split(Q)],G=iD?X.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",K=iD?G.split(Q):[""];if(iD){if(Y.indexOf(".")!==-1&&K[0]!=="")K.unshift("")}return{pathEnv:J,pathExt:K,pathExtExe:G}},QD6=(Y,X,Q)=>{if(typeof X==="function")Q=X,X={};if(!X)X={};let{pathEnv:J,pathExt:G,pathExtExe:K}=XD6(Y,X),W=[],Z=(F)=>new Promise((V,$)=>{if(F===J.length)return X.all&&W.length?V(W):$(YD6(Y));let q=J[F],B=/^".*"$/.test(q)?q.slice(1,-1):q,D=tU6.join(B,Y),O=!B&&/^\.[\\\/]/.test(Y)?Y.slice(0,2)+D:D;V(H(O,F,0))}),H=(F,V,$)=>new Promise((q,B)=>{if($===G.length)return q(Z(V+1));let D=G[$];eU6(F+D,{pathExt:K},(O,L)=>{if(!O&&L)if(X.all)W.push(F+D);else return q(F+D);return q(H(F,V,$+1))})});return Q?Z(0).then((F)=>Q(null,F),Q):Z(0)},$X1=(Y,X)=>{X=X||{};let{pathEnv:Q,pathExt:J,pathExtExe:G}=XD6(Y,X),K=[];for(let W=0;W<Q.length;W++){let Z=Q[W],H=/^".*"$/.test(Z)?Z.slice(1,-1):Z,F=tU6.join(H,Y),V=!H&&/^\.[\\\/]/.test(Y)?Y.slice(0,2)+F:F;for(let $=0;$<J.length;$++){let q=V+J[$];try{if(eU6.sync(q,{pathExt:G}))if(X.all)K.push(q);else return q}catch(B){}}}if(X.all&&K.length)return K;if(X.nothrow)return null;throw YD6(Y)};JD6.exports=QD6;QD6.sync=$X1});var ZD6=E((_F8,k50)=>{var WD6=(Y={})=>{let X=Y.env||process.env;if((Y.platform||process.platform)!=="win32")return"PATH";return Object.keys(X).reverse().find((J)=>J.toUpperCase()==="PATH")||"Path"};k50.exports=WD6;k50.exports.default=WD6});var VD6=E((yF8,FD6)=>{var KD6=F0("path"),qX1=GD6(),zX1=ZD6();function HD6(Y,X){let Q=Y.options.env||process.env,J=process.cwd(),G=Y.options.cwd!=null,K=G&&process.chdir!==void 0&&!process.chdir.disabled;if(K)try{process.chdir(Y.options.cwd)}catch(Z){}let W;try{W=qX1.sync(Y.command,{path:Q[zX1({env:Q})],pathExt:X?KD6.delimiter:void 0})}catch(Z){}finally{if(K)process.chdir(J)}if(W)W=KD6.resolve(G?Y.options.cwd:"",W);return W}function BX1(Y){return HD6(Y)||HD6(Y,!0)}FD6.exports=BX1});var $D6=E((OX1,_50)=>{var v50=/([()\][%!^"`<>&|;, *?])/g;function UX1(Y){return Y=Y.replace(v50,"^$1"),Y}function DX1(Y,X){if(Y=`${Y}`,Y=Y.replace(/(?=(\\+?)?)\1"/g,"$1$1\\\""),Y=Y.replace(/(?=(\\+?)?)\1$/,"$1$1"),Y=`"${Y}"`,Y=Y.replace(v50,"^$1"),X)Y=Y.replace(v50,"^$1");return Y}OX1.command=UX1;OX1.argument=DX1});var zD6=E((fF8,qD6)=>{qD6.exports=/^#!(.*)/});var UD6=E((hF8,BD6)=>{var wX1=zD6();BD6.exports=(Y="")=>{let X=Y.match(wX1);if(!X)return null;let[Q,J]=X[0].replace(/#! ?/,"").split(" "),G=Q.split("/").pop();if(G==="env")return J;return J?`${G} ${J}`:G}});var OD6=E((bF8,DD6)=>{var y50=F0("fs"),MX1=UD6();function AX1(Y){let Q=Buffer.alloc(150),J;try{J=y50.openSync(Y,"r"),y50.readSync(J,Q,0,150,0),y50.closeSync(J)}catch(G){}return MX1(Q.toString())}DD6.exports=AX1});var MD6=E((xF8,wD6)=>{var TX1=F0("path"),ND6=VD6(),LD6=$D6(),PX1=OD6(),EX1=process.platform==="win32",CX1=/\.(?:com|exe)$/i,IX1=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function RX1(Y){Y.file=ND6(Y);let X=Y.file&&PX1(Y.file);if(X)return Y.args.unshift(Y.file),Y.command=X,ND6(Y);return Y.file}function jX1(Y){if(!EX1)return Y;let X=RX1(Y),Q=!CX1.test(X);if(Y.options.forceShell||Q){let J=IX1.test(X);Y.command=TX1.normalize(Y.command),Y.command=LD6.command(Y.command),Y.args=Y.args.map((K)=>LD6.argument(K,J));let G=[Y.command].concat(Y.args).join(" ");Y.args=["/d","/s","/c",`"${G}"`],Y.command=process.env.comspec||"cmd.exe",Y.options.windowsVerbatimArguments=!0}return Y}function SX1(Y,X,Q){if(X&&!Array.isArray(X))Q=X,X=null;X=X?X.slice(0):[],Q=Object.assign({},Q);let J={command:Y,args:X,options:Q,file:void 0,original:{command:Y,args:X}};return Q.shell?J:jX1(J)}wD6.exports=SX1});var PD6=E((uF8,TD6)=>{var f50=process.platform==="win32";function h50(Y,X){return Object.assign(Error(`${X} ${Y.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${X} ${Y.command}`,path:Y.command,spawnargs:Y.args})}function kX1(Y,X){if(!f50)return;let Q=Y.emit;Y.emit=function(J,G){if(J==="exit"){let K=AD6(G,X);if(K)return Q.call(Y,"error",K)}return Q.apply(Y,arguments)}}function AD6(Y,X){if(f50&&Y===1&&!X.file)return h50(X.original,"spawn");return null}function vX1(Y,X){if(f50&&Y===1&&!X.file)return h50(X.original,"spawnSync");return null}TD6.exports={hookChildProcess:kX1,verifyENOENT:AD6,verifyENOENTSync:vX1,notFoundError:h50}});var ID6=E((gF8,aD)=>{var ED6=F0("child_process"),b50=MD6(),x50=PD6();function CD6(Y,X,Q){let J=b50(Y,X,Q),G=ED6.spawn(J.command,J.args,J.options);return x50.hookChildProcess(G,J),G}function _X1(Y,X,Q){let J=b50(Y,X,Q),G=ED6.spawnSync(J.command,J.args,J.options);return G.error=G.error||x50.verifyENOENTSync(G.status,J),G}aD.exports=CD6;aD.exports.spawn=CD6;aD.exports.sync=_X1;aD.exports._parse=b50;aD.exports._enoent=x50});class u50{append(Y){this._buffer=this._buffer?Buffer.concat([this._buffer,Y]):Y}readMessage(){if(!this._buffer)return null;let Y=this._buffer.indexOf(`
|
|
1160
1160
|
`);if(Y===-1)return null;let X=this._buffer.toString("utf8",0,Y).replace(/\r$/,"");return this._buffer=this._buffer.subarray(Y+1),yX1(X)}clear(){this._buffer=void 0}}function yX1(Y){return SJ.parse(JSON.parse(Y))}function RD6(Y){return JSON.stringify(Y)+`
|
|
1161
1161
|
`}var jD6=S(()=>{p9()});import dx from"process";import{PassThrough as fX1}from"stream";function bX1(){let Y={};for(let X of hX1){let Q=dx.env[X];if(Q===void 0)continue;if(Q.startsWith("()"))continue;Y[X]=Q}return Y}class eP{constructor(Y){if(this._readBuffer=new u50,this._stderrStream=null,this._serverParams=Y,Y.stderr==="pipe"||Y.stderr==="overlapped")this._stderrStream=new fX1}async start(){if(this._process)throw Error("StdioClientTransport already started! If using Client class, note that connect() calls start() automatically.");return new Promise((Y,X)=>{if(this._process=SD6.default(this._serverParams.command,this._serverParams.args??[],{env:{...bX1(),...this._serverParams.env},stdio:["pipe","pipe",this._serverParams.stderr??"inherit"],shell:!1,windowsHide:dx.platform==="win32"&&xX1(),cwd:this._serverParams.cwd}),this._process.on("error",(Q)=>{X(Q),this.onerror?.(Q)}),this._process.on("spawn",()=>{Y()}),this._process.on("close",(Q)=>{this._process=void 0,this.onclose?.()}),this._process.stdin?.on("error",(Q)=>{this.onerror?.(Q)}),this._process.stdout?.on("data",(Q)=>{this._readBuffer.append(Q),this.processReadBuffer()}),this._process.stdout?.on("error",(Q)=>{this.onerror?.(Q)}),this._stderrStream&&this._process.stderr)this._process.stderr.pipe(this._stderrStream)})}get stderr(){if(this._stderrStream)return this._stderrStream;return this._process?.stderr??null}get pid(){return this._process?.pid??null}processReadBuffer(){while(!0)try{let Y=this._readBuffer.readMessage();if(Y===null)break;this.onmessage?.(Y)}catch(Y){this.onerror?.(Y)}}async close(){if(this._process){let Y=this._process;this._process=void 0;let X=new Promise((Q)=>{Y.once("close",()=>{Q()})});try{Y.stdin?.end()}catch{}if(await Promise.race([X,new Promise((Q)=>setTimeout(Q,2000).unref())]),Y.exitCode===null){try{Y.kill("SIGTERM")}catch{}await Promise.race([X,new Promise((Q)=>setTimeout(Q,2000).unref())])}if(Y.exitCode===null)try{Y.kill("SIGKILL")}catch{}}this._readBuffer.clear()}send(Y){return new Promise((X)=>{if(!this._process?.stdin)throw Error("Not connected");let Q=RD6(Y);if(this._process.stdin.write(Q))X();else this._process.stdin.once("drain",X)})}}function xX1(){return"type"in dx}var SD6,hX1;var g50=S(()=>{jD6();SD6=O4(ID6(),1),hX1=dx.platform==="win32"?["APPDATA","HOMEDRIVE","HOMEPATH","LOCALAPPDATA","PATH","PROCESSOR_ARCHITECTURE","SYSTEMDRIVE","SYSTEMROOT","TEMP","USERNAME","USERPROFILE","PROGRAMFILES"]:["HOME","LOGNAME","PATH","SHELL","TERM","USER"]});async function rD(Y){switch(Y.connection_type){case"STDIO":return mX1(Y);case"HTTP":case"Websocket":return uX1(Y);case"SSE":return gX1(Y);case"VIRTUAL":return null;default:return null}}async function uX1(Y){if(!Y.connection_url)return console.error(`HTTP connection ${Y.id} missing URL`),null;let X=null;try{let Q={"Content-Type":"application/json"};if(Y.connection_token)Q.Authorization=`Bearer ${Y.connection_token}`;let J=Y.connection_headers;if(J?.headers)Object.assign(Q,J.headers);let G=new PW(new URL(Y.connection_url),{requestInit:{headers:Q}});X=new nQ({name:"mcp-mesh-tool-fetcher",version:"1.0.0"});let K=new Promise((Z,H)=>{setTimeout(()=>H(Error("Connection timeout")),1e4)});await Promise.race([X.connect(G),K]);let W=await Promise.race([X.listTools(),K]);if(!W.tools||W.tools.length===0)return null;return W.tools.map((Z)=>({name:Z.name,description:Z.description??void 0,inputSchema:Z.inputSchema??{},outputSchema:Z.outputSchema?{...Z.outputSchema,additionalProperties:!0}:void 0,annotations:Z.annotations??void 0,_meta:Z._meta??void 0}))}catch(Q){return console.error(`Failed to fetch tools from HTTP connection ${Y.id}:`,Q),null}finally{try{if(X&&typeof X.close==="function")await X.close()}catch(Q){console.warn(`Failed to close HTTP client for ${Y.id}:`,Q)}}}async function gX1(Y){if(!Y.connection_url)return console.error(`SSE connection ${Y.id} missing URL`),null;let X=null;try{let Q={"Content-Type":"application/json"};if(Y.connection_token)Q.Authorization=`Bearer ${Y.connection_token}`;let J=Y.connection_headers;if(J?.headers)Object.assign(Q,J.headers);let G=new t$(new URL(Y.connection_url),{requestInit:{headers:Q}});X=new nQ({name:"mcp-mesh-tool-fetcher",version:"1.0.0"});let K=new Promise((Z,H)=>{setTimeout(()=>H(Error("SSE connection timeout")),15000)});await Promise.race([X.connect(G),K]);let W=await Promise.race([X.listTools(),K]);if(!W.tools||W.tools.length===0)return null;return W.tools.map((Z)=>({name:Z.name,description:Z.description??void 0,inputSchema:Z.inputSchema??{},outputSchema:Z.outputSchema?{...Z.outputSchema,additionalProperties:!0}:void 0,annotations:Z.annotations??void 0,_meta:Z._meta??void 0}))}catch(Q){return console.error(`Failed to fetch tools from SSE connection ${Y.id}:`,Q),null}finally{try{await X?.close()}catch(Q){console.warn(`Failed to close SSE client for ${Y.id}:`,Q)}}}async function mX1(Y){let X=r$(Y.connection_headers)?Y.connection_headers:null;if(!X)return console.error(`STDIO connection ${Y.id} missing parameters`),null;let Q=null;try{let J=new eP({command:X.command,args:X.args,env:X.envVars,cwd:X.cwd});Q=new nQ({name:"mcp-mesh-tool-fetcher",version:"1.0.0"});let G=new Promise((W,Z)=>{setTimeout(()=>Z(Error("Tool fetch timeout")),1e4)});await Promise.race([Q.connect(J),G]);let K=await Promise.race([Q.listTools(),G]);if(!K.tools||K.tools.length===0)return null;return K.tools.map((W)=>({name:W.name,description:W.description??void 0,inputSchema:W.inputSchema??{},outputSchema:W.outputSchema??void 0,annotations:W.annotations??void 0,_meta:W._meta??void 0}))}catch(J){return console.error(`Failed to fetch tools from STDIO connection ${Y.id}:`,J),null}finally{try{if(Q&&typeof Q.close==="function")await Q.close()}catch(J){console.warn(`Failed to close STDIO client for ${Y.id}:`,J)}}}var px=S(()=>{c$();mx();g50();uD();EW()});class m50{constructor(Y){this._server=Y}requestStream(Y,X,Q){return this._server.requestStream(Y,X,Q)}async getTask(Y,X){return this._server.getTask({taskId:Y},X)}async getTaskResult(Y,X,Q){return this._server.getTaskResult({taskId:Y},X,Q)}async listTasks(Y,X){return this._server.listTasks(Y?{cursor:Y}:void 0,X)}async cancelTask(Y,X){return this._server.cancelTask({taskId:Y},X)}}var l50;var kD6=S(()=>{pQ0();p9();aJ0();OD();l50=class l50 extends wP{constructor(Y,X){super(X);if(this._serverInfo=Y,this._loggingLevels=new Map,this.LOG_LEVEL_SEVERITY=new Map(OP.options.map((Q,J)=>[Q,J])),this.isMessageIgnored=(Q,J)=>{let G=this._loggingLevels.get(J);return G?this.LOG_LEVEL_SEVERITY.get(Q)<this.LOG_LEVEL_SEVERITY.get(G):!1},this._capabilities=X?.capabilities??{},this._instructions=X?.instructions,this._jsonSchemaValidator=X?.jsonSchemaValidator??new pP,this.setRequestHandler($b,(Q)=>this._oninitialize(Q)),this.setNotificationHandler(qb,()=>this.oninitialized?.()),this._capabilities.logging)this.setRequestHandler(ZQ0,async(Q,J)=>{let G=J.sessionId||J.requestInfo?.headers["mcp-session-id"]||void 0,{level:K}=Q.params,W=OP.safeParse(K);if(W.success)this._loggingLevels.set(G,W.data);return{}})}get experimental(){if(!this._experimental)this._experimental={tasks:new m50(this)};return this._experimental}registerCapabilities(Y){if(this.transport)throw Error("Cannot register capabilities after connecting to transport");this._capabilities=kb(this._capabilities,Y)}setRequestHandler(Y,X){let J=DW(Y)?.method;if(!J)throw Error("Schema is missing a method literal");let G;if(mQ(J)){let W=J;G=W._zod?.def?.value??W.value}else{let W=J;G=W._def?.value??W.value}if(typeof G!=="string")throw Error("Schema method literal must be a string");if(G==="tools/call"){let W=async(Z,H)=>{let F=ZQ(LW,Z);if(!F.success){let B=F.error instanceof Error?F.error.message:String(F.error);throw new K6(q6.InvalidParams,`Invalid tools/call request: ${B}`)}let{params:V}=F.data,$=await Promise.resolve(X(Z,H));if(V.task){let B=ZQ(XK,$);if(!B.success){let D=B.error instanceof Error?B.error.message:String(B.error);throw new K6(q6.InvalidParams,`Invalid task creation result: ${D}`)}return B.data}let q=ZQ(NW,$);if(!q.success){let B=q.error instanceof Error?q.error.message:String(q.error);throw new K6(q6.InvalidParams,`Invalid tools/call result: ${B}`)}return q.data};return super.setRequestHandler(Y,W)}return super.setRequestHandler(Y,X)}assertCapabilityForMethod(Y){switch(Y){case"sampling/createMessage":if(!this._clientCapabilities?.sampling)throw Error(`Client does not support sampling (required for ${Y})`);break;case"elicitation/create":if(!this._clientCapabilities?.elicitation)throw Error(`Client does not support elicitation (required for ${Y})`);break;case"roots/list":if(!this._clientCapabilities?.roots)throw Error(`Client does not support listing roots (required for ${Y})`);break;case"ping":break}}assertNotificationCapability(Y){switch(Y){case"notifications/message":if(!this._capabilities.logging)throw Error(`Server does not support logging (required for ${Y})`);break;case"notifications/resources/updated":case"notifications/resources/list_changed":if(!this._capabilities.resources)throw Error(`Server does not support notifying about resources (required for ${Y})`);break;case"notifications/tools/list_changed":if(!this._capabilities.tools)throw Error(`Server does not support notifying of tool list changes (required for ${Y})`);break;case"notifications/prompts/list_changed":if(!this._capabilities.prompts)throw Error(`Server does not support notifying of prompt list changes (required for ${Y})`);break;case"notifications/elicitation/complete":if(!this._clientCapabilities?.elicitation?.url)throw Error(`Client does not support URL elicitation (required for ${Y})`);break;case"notifications/cancelled":break;case"notifications/progress":break}}assertRequestHandlerCapability(Y){if(!this._capabilities)return;switch(Y){case"completion/complete":if(!this._capabilities.completions)throw Error(`Server does not support completions (required for ${Y})`);break;case"logging/setLevel":if(!this._capabilities.logging)throw Error(`Server does not support logging (required for ${Y})`);break;case"prompts/get":case"prompts/list":if(!this._capabilities.prompts)throw Error(`Server does not support prompts (required for ${Y})`);break;case"resources/list":case"resources/templates/list":case"resources/read":if(!this._capabilities.resources)throw Error(`Server does not support resources (required for ${Y})`);break;case"tools/call":case"tools/list":if(!this._capabilities.tools)throw Error(`Server does not support tools (required for ${Y})`);break;case"tasks/get":case"tasks/list":case"tasks/result":case"tasks/cancel":if(!this._capabilities.tasks)throw Error(`Server does not support tasks capability (required for ${Y})`);break;case"ping":case"initialize":break}}assertTaskCapability(Y){Ox(this._clientCapabilities?.tasks?.requests,Y,"Client")}assertTaskHandlerCapability(Y){if(!this._capabilities)return;Dx(this._capabilities.tasks?.requests,Y,"Server")}async _oninitialize(Y){let X=Y.params.protocolVersion;return this._clientCapabilities=Y.params.capabilities,this._clientVersion=Y.params.clientInfo,{protocolVersion:x$.includes(X)?X:L3,capabilities:this.getCapabilities(),serverInfo:this._serverInfo,...this._instructions&&{instructions:this._instructions}}}getClientCapabilities(){return this._clientCapabilities}getClientVersion(){return this._clientVersion}getCapabilities(){return this._capabilities}async ping(){return this.request({method:"ping"},YK)}async createMessage(Y,X){if(Y.tools||Y.toolChoice){if(!this._clientCapabilities?.sampling?.tools)throw Error("Client does not support sampling tools capability.")}if(Y.messages.length>0){let Q=Y.messages[Y.messages.length-1],J=Array.isArray(Q.content)?Q.content:[Q.content],G=J.some((H)=>H.type==="tool_result"),K=Y.messages.length>1?Y.messages[Y.messages.length-2]:void 0,W=K?Array.isArray(K.content)?K.content:[K.content]:[],Z=W.some((H)=>H.type==="tool_use");if(G){if(J.some((H)=>H.type!=="tool_result"))throw Error("The last message must contain only tool_result content if any is present");if(!Z)throw Error("tool_result blocks are not matching any tool_use from the previous message")}if(Z){let H=new Set(W.filter((V)=>V.type==="tool_use").map((V)=>V.id)),F=new Set(J.filter((V)=>V.type==="tool_result").map((V)=>V.toolUseId));if(H.size!==F.size||![...H].every((V)=>F.has(V)))throw Error("ids of tool_result blocks and tool_use blocks from previous message do not match")}}if(Y.tools)return this.request({method:"sampling/createMessage",params:Y},HQ0,X);return this.request({method:"sampling/createMessage",params:Y},NP,X)}async elicitInput(Y,X){switch(Y.mode??"form"){case"url":{if(!this._clientCapabilities?.elicitation?.url)throw Error("Client does not support url elicitation.");let J=Y;return this.request({method:"elicitation/create",params:J},MD,X)}case"form":{if(!this._clientCapabilities?.elicitation?.form)throw Error("Client does not support form elicitation.");let J=Y.mode==="form"?Y:{...Y,mode:"form"},G=await this.request({method:"elicitation/create",params:J},MD,X);if(G.action==="accept"&&G.content&&J.requestedSchema)try{let W=this._jsonSchemaValidator.getValidator(J.requestedSchema)(G.content);if(!W.valid)throw new K6(q6.InvalidParams,`Elicitation response content does not match requested schema: ${W.errorMessage}`)}catch(K){if(K instanceof K6)throw K;throw new K6(q6.InternalError,`Error validating elicitation response: ${K instanceof Error?K.message:String(K)}`)}return G}}}createElicitationCompletionNotifier(Y,X){if(!this._clientCapabilities?.elicitation?.url)throw Error("Client does not support URL elicitation (required for notifications/elicitation/complete)");return()=>this.notification({method:"notifications/elicitation/complete",params:{elicitationId:Y}},X)}async listRoots(Y,X){return this.request({method:"roots/list",params:Y},$Q0,X)}async sendLoggingMessage(Y,X){if(this._capabilities.logging){if(!this.isMessageIgnored(Y.level,X))return this.notification({method:"notifications/message",params:Y})}}async sendResourceUpdated(Y){return this.notification({method:"notifications/resources/updated",params:Y})}async sendResourceListChanged(){return this.notification({method:"notifications/resources/list_changed"})}async sendToolListChanged(){return this.notification({method:"notifications/tools/list_changed"})}async sendPromptListChanged(){return this.notification({method:"notifications/prompts/list_changed"})}}});function d50(Y){return!!Y&&typeof Y==="object"&&_D6 in Y}function yD6(Y){return Y[_D6]?.complete}var _D6,vD6;var fD6=S(()=>{_D6=Symbol.for("mcp.completable");(function(Y){Y.Completable="McpCompletable"})(vD6||(vD6={}))});function dX1(Y){let X=[];if(Y.length===0)return{isValid:!1,warnings:["Tool name cannot be empty"]};if(Y.length>128)return{isValid:!1,warnings:[`Tool name exceeds maximum length of 128 characters (current: ${Y.length})`]};if(Y.includes(" "))X.push("Tool name contains spaces, which may cause parsing issues");if(Y.includes(","))X.push("Tool name contains commas, which may cause parsing issues");if(Y.startsWith("-")||Y.endsWith("-"))X.push("Tool name starts or ends with a dash, which may cause parsing issues in some contexts");if(Y.startsWith(".")||Y.endsWith("."))X.push("Tool name starts or ends with a dot, which may cause parsing issues in some contexts");if(!lX1.test(Y)){let Q=Y.split("").filter((J)=>!/[A-Za-z0-9._-]/.test(J)).filter((J,G,K)=>K.indexOf(J)===G);return X.push(`Tool name contains invalid characters: ${Q.map((J)=>`"${J}"`).join(", ")}`,"Allowed characters are: A-Z, a-z, 0-9, underscore (_), dash (-), and dot (.)"),{isValid:!1,warnings:X}}return{isValid:!0,warnings:X}}function pX1(Y,X){if(X.length>0){console.warn(`Tool name validation warning for "${Y}":`);for(let Q of X)console.warn(` - ${Q}`);console.warn("Tool registration will proceed, but this may cause compatibility issues."),console.warn("Consider updating the tool name to conform to the MCP tool naming standard."),console.warn("See SEP: Specify Format for Tool Names (https://github.com/modelcontextprotocol/modelcontextprotocol/issues/986) for more details.")}}function p50(Y){let X=dX1(Y);return pX1(Y,X.warnings),X.isValid}var lX1;var hD6=S(()=>{lX1=/^[A-Za-z0-9._-]{1,128}$/});class c50{constructor(Y){this._mcpServer=Y}registerToolTask(Y,X,Q){let J={taskSupport:"required",...X.execution};if(J.taskSupport==="forbidden")throw Error(`Cannot register task-based tool '${Y}' with taskSupport 'forbidden'. Use registerTool() instead.`);return this._mcpServer._createRegisteredTool(Y,X.title,X.description,X.inputSchema,X.outputSchema,X.annotations,J,X._meta,Q)}}class e${constructor(Y,X){this._registeredResources={},this._registeredResourceTemplates={},this._registeredTools={},this._registeredPrompts={},this._toolHandlersInitialized=!1,this._completionHandlerInitialized=!1,this._resourceHandlersInitialized=!1,this._promptHandlersInitialized=!1,this.server=new l50(Y,X)}get experimental(){if(!this._experimental)this._experimental={tasks:new c50(this)};return this._experimental}async connect(Y){return await this.server.connect(Y)}async close(){await this.server.close()}setToolRequestHandlers(){if(this._toolHandlersInitialized)return;this.server.assertCanSetRequestHandler(x3(C3)),this.server.assertCanSetRequestHandler(x3(LW)),this.server.registerCapabilities({tools:{listChanged:!0}}),this.server.setRequestHandler(C3,()=>({tools:Object.entries(this._registeredTools).filter(([,Y])=>Y.enabled).map(([Y,X])=>{let Q={name:Y,title:X.title,description:X.description,inputSchema:(()=>{let J=DD(X.inputSchema);return J?gQ0(J,{strictUnions:!0,pipeStrategy:"input"}):cX1})(),annotations:X.annotations,execution:X.execution,_meta:X._meta};if(X.outputSchema){let J=DD(X.outputSchema);if(J)Q.outputSchema=gQ0(J,{strictUnions:!0,pipeStrategy:"output"})}return Q})})),this.server.setRequestHandler(LW,async(Y,X)=>{try{let Q=this._registeredTools[Y.params.name];if(!Q)throw new K6(q6.InvalidParams,`Tool ${Y.params.name} not found`);if(!Q.enabled)throw new K6(q6.InvalidParams,`Tool ${Y.params.name} disabled`);let J=!!Y.params.task,G=Q.execution?.taskSupport,K="createTask"in Q.handler;if((G==="required"||G==="optional")&&!K)throw new K6(q6.InternalError,`Tool ${Y.params.name} has taskSupport '${G}' but was not registered with registerToolTask`);if(G==="required"&&!J)throw new K6(q6.MethodNotFound,`Tool ${Y.params.name} requires task augmentation (taskSupport: 'required')`);if(G==="optional"&&!J&&K)return await this.handleAutomaticTaskPolling(Q,Y,X);let W=await this.validateToolInput(Q,Y.params.arguments,Y.params.name),Z=await this.executeToolHandler(Q,W,X);if(J)return Z;return await this.validateToolOutput(Q,Z,Y.params.name),Z}catch(Q){if(Q instanceof K6){if(Q.code===q6.UrlElicitationRequired)throw Q}return this.createToolError(Q instanceof Error?Q.message:String(Q))}}),this._toolHandlersInitialized=!0}createToolError(Y){return{content:[{type:"text",text:Y}],isError:!0}}async validateToolInput(Y,X,Q){if(!Y.inputSchema)return;let G=DD(Y.inputSchema)??Y.inputSchema,K=await Gb(G,X);if(!K.success){let W="error"in K?K.error:"Unknown error",Z=Wb(W);throw new K6(q6.InvalidParams,`Input validation error: Invalid arguments for tool ${Q}: ${Z}`)}return K.data}async validateToolOutput(Y,X,Q){if(!Y.outputSchema)return;if(!("content"in X))return;if(X.isError)return;if(!X.structuredContent)throw new K6(q6.InvalidParams,`Output validation error: Tool ${Q} has an output schema but no structured content was provided`);let J=DD(Y.outputSchema),G=await Gb(J,X.structuredContent);if(!G.success){let K="error"in G?G.error:"Unknown error",W=Wb(K);throw new K6(q6.InvalidParams,`Output validation error: Invalid structured content for tool ${Q}: ${W}`)}}async executeToolHandler(Y,X,Q){let J=Y.handler;if("createTask"in J){if(!Q.taskStore)throw Error("No task store provided.");let K={...Q,taskStore:Q.taskStore};if(Y.inputSchema)return await Promise.resolve(J.createTask(X,K));else return await Promise.resolve(J.createTask(K))}if(Y.inputSchema)return await Promise.resolve(J(X,Q));else return await Promise.resolve(J(Q))}async handleAutomaticTaskPolling(Y,X,Q){if(!Q.taskStore)throw Error("No task store provided for task-capable tool.");let J=await this.validateToolInput(Y,X.params.arguments,X.params.name),G=Y.handler,K={...Q,taskStore:Q.taskStore},W=J?await Promise.resolve(G.createTask(J,K)):await Promise.resolve(G.createTask(K)),Z=W.task.taskId,H=W.task,F=H.pollInterval??5000;while(H.status!=="completed"&&H.status!=="failed"&&H.status!=="cancelled"){await new Promise(($)=>setTimeout($,F));let V=await Q.taskStore.getTask(Z);if(!V)throw new K6(q6.InternalError,`Task ${Z} not found during polling`);H=V}return await Q.taskStore.getTaskResult(Z)}setCompletionRequestHandler(){if(this._completionHandlerInitialized)return;this.server.assertCanSetRequestHandler(x3(Mb)),this.server.registerCapabilities({completions:{}}),this.server.setRequestHandler(Mb,async(Y)=>{switch(Y.params.ref.type){case"ref/prompt":return kF6(Y),this.handlePromptCompletion(Y,Y.params.ref);case"ref/resource":return vF6(Y),this.handleResourceCompletion(Y,Y.params.ref);default:throw new K6(q6.InvalidParams,`Invalid completion reference: ${Y.params.ref}`)}}),this._completionHandlerInitialized=!0}async handlePromptCompletion(Y,X){let Q=this._registeredPrompts[X.name];if(!Q)throw new K6(q6.InvalidParams,`Prompt ${X.name} not found`);if(!Q.enabled)throw new K6(q6.InvalidParams,`Prompt ${X.name} disabled`);if(!Q.argsSchema)return Y2;let G=DW(Q.argsSchema)?.[Y.params.argument.name];if(!d50(G))return Y2;let K=yD6(G);if(!K)return Y2;let W=await K(Y.params.argument.value,Y.params.context);return xD6(W)}async handleResourceCompletion(Y,X){let Q=Object.values(this._registeredResourceTemplates).find((K)=>K.resourceTemplate.uriTemplate.toString()===X.uri);if(!Q){if(this._registeredResources[X.uri])return Y2;throw new K6(q6.InvalidParams,`Resource template ${Y.params.ref.uri} not found`)}let J=Q.resourceTemplate.completeCallback(Y.params.argument.name);if(!J)return Y2;let G=await J(Y.params.argument.value,Y.params.context);return xD6(G)}setResourceRequestHandlers(){if(this._resourceHandlersInitialized)return;this.server.assertCanSetRequestHandler(x3(M3)),this.server.assertCanSetRequestHandler(x3(A3)),this.server.assertCanSetRequestHandler(x3(T3)),this.server.registerCapabilities({resources:{listChanged:!0}}),this.server.setRequestHandler(M3,async(Y,X)=>{let Q=Object.entries(this._registeredResources).filter(([G,K])=>K.enabled).map(([G,K])=>({uri:G,name:K.name,...K.metadata})),J=[];for(let G of Object.values(this._registeredResourceTemplates)){if(!G.resourceTemplate.listCallback)continue;let K=await G.resourceTemplate.listCallback(X);for(let W of K.resources)J.push({...G.metadata,...W})}return{resources:[...Q,...J]}}),this.server.setRequestHandler(A3,async()=>{return{resourceTemplates:Object.entries(this._registeredResourceTemplates).map(([X,Q])=>({name:X,uriTemplate:Q.resourceTemplate.uriTemplate.toString(),...Q.metadata}))}}),this.server.setRequestHandler(T3,async(Y,X)=>{let Q=new URL(Y.params.uri),J=this._registeredResources[Q.toString()];if(J){if(!J.enabled)throw new K6(q6.InvalidParams,`Resource ${Q} disabled`);return J.readCallback(Q,X)}for(let G of Object.values(this._registeredResourceTemplates)){let K=G.resourceTemplate.uriTemplate.match(Q.toString());if(K)return G.readCallback(Q,K,X)}throw new K6(q6.InvalidParams,`Resource ${Q} not found`)}),this._resourceHandlersInitialized=!0}setPromptRequestHandlers(){if(this._promptHandlersInitialized)return;this.server.assertCanSetRequestHandler(x3(P3)),this.server.assertCanSetRequestHandler(x3(E3)),this.server.registerCapabilities({prompts:{listChanged:!0}}),this.server.setRequestHandler(P3,()=>({prompts:Object.entries(this._registeredPrompts).filter(([,Y])=>Y.enabled).map(([Y,X])=>{return{name:Y,title:X.title,description:X.description,arguments:X.argsSchema?iX1(X.argsSchema):void 0}})})),this.server.setRequestHandler(E3,async(Y,X)=>{let Q=this._registeredPrompts[Y.params.name];if(!Q)throw new K6(q6.InvalidParams,`Prompt ${Y.params.name} not found`);if(!Q.enabled)throw new K6(q6.InvalidParams,`Prompt ${Y.params.name} disabled`);if(Q.argsSchema){let J=DD(Q.argsSchema),G=await Gb(J,Y.params.arguments);if(!G.success){let Z="error"in G?G.error:"Unknown error",H=Wb(Z);throw new K6(q6.InvalidParams,`Invalid arguments for prompt ${Y.params.name}: ${H}`)}let K=G.data,W=Q.callback;return await Promise.resolve(W(K,X))}else{let J=Q.callback;return await Promise.resolve(J(X))}}),this._promptHandlersInitialized=!0}resource(Y,X,...Q){let J;if(typeof Q[0]==="object")J=Q.shift();let G=Q[0];if(typeof X==="string"){if(this._registeredResources[X])throw Error(`Resource ${X} is already registered`);let K=this._createRegisteredResource(Y,void 0,X,J,G);return this.setResourceRequestHandlers(),this.sendResourceListChanged(),K}else{if(this._registeredResourceTemplates[Y])throw Error(`Resource template ${Y} is already registered`);let K=this._createRegisteredResourceTemplate(Y,void 0,X,J,G);return this.setResourceRequestHandlers(),this.sendResourceListChanged(),K}}registerResource(Y,X,Q,J){if(typeof X==="string"){if(this._registeredResources[X])throw Error(`Resource ${X} is already registered`);let G=this._createRegisteredResource(Y,Q.title,X,Q,J);return this.setResourceRequestHandlers(),this.sendResourceListChanged(),G}else{if(this._registeredResourceTemplates[Y])throw Error(`Resource template ${Y} is already registered`);let G=this._createRegisteredResourceTemplate(Y,Q.title,X,Q,J);return this.setResourceRequestHandlers(),this.sendResourceListChanged(),G}}_createRegisteredResource(Y,X,Q,J,G){let K={name:Y,title:X,metadata:J,readCallback:G,enabled:!0,disable:()=>K.update({enabled:!1}),enable:()=>K.update({enabled:!0}),remove:()=>K.update({uri:null}),update:(W)=>{if(typeof W.uri<"u"&&W.uri!==Q){if(delete this._registeredResources[Q],W.uri)this._registeredResources[W.uri]=K}if(typeof W.name<"u")K.name=W.name;if(typeof W.title<"u")K.title=W.title;if(typeof W.metadata<"u")K.metadata=W.metadata;if(typeof W.callback<"u")K.readCallback=W.callback;if(typeof W.enabled<"u")K.enabled=W.enabled;this.sendResourceListChanged()}};return this._registeredResources[Q]=K,K}_createRegisteredResourceTemplate(Y,X,Q,J,G){let K={resourceTemplate:Q,title:X,metadata:J,readCallback:G,enabled:!0,disable:()=>K.update({enabled:!1}),enable:()=>K.update({enabled:!0}),remove:()=>K.update({name:null}),update:(H)=>{if(typeof H.name<"u"&&H.name!==Y){if(delete this._registeredResourceTemplates[Y],H.name)this._registeredResourceTemplates[H.name]=K}if(typeof H.title<"u")K.title=H.title;if(typeof H.template<"u")K.resourceTemplate=H.template;if(typeof H.metadata<"u")K.metadata=H.metadata;if(typeof H.callback<"u")K.readCallback=H.callback;if(typeof H.enabled<"u")K.enabled=H.enabled;this.sendResourceListChanged()}};this._registeredResourceTemplates[Y]=K;let W=Q.uriTemplate.variableNames;if(Array.isArray(W)&&W.some((H)=>!!Q.completeCallback(H)))this.setCompletionRequestHandler();return K}_createRegisteredPrompt(Y,X,Q,J,G){let K={title:X,description:Q,argsSchema:J===void 0?void 0:b$(J),callback:G,enabled:!0,disable:()=>K.update({enabled:!1}),enable:()=>K.update({enabled:!0}),remove:()=>K.update({name:null}),update:(W)=>{if(typeof W.name<"u"&&W.name!==Y){if(delete this._registeredPrompts[Y],W.name)this._registeredPrompts[W.name]=K}if(typeof W.title<"u")K.title=W.title;if(typeof W.description<"u")K.description=W.description;if(typeof W.argsSchema<"u")K.argsSchema=b$(W.argsSchema);if(typeof W.callback<"u")K.callback=W.callback;if(typeof W.enabled<"u")K.enabled=W.enabled;this.sendPromptListChanged()}};if(this._registeredPrompts[Y]=K,J){if(Object.values(J).some((Z)=>{let H=Z instanceof IY?Z._def?.innerType:Z;return d50(H)}))this.setCompletionRequestHandler()}return K}_createRegisteredTool(Y,X,Q,J,G,K,W,Z,H){p50(Y);let F={title:X,description:Q,inputSchema:bD6(J),outputSchema:bD6(G),annotations:K,execution:W,_meta:Z,handler:H,enabled:!0,disable:()=>F.update({enabled:!1}),enable:()=>F.update({enabled:!0}),remove:()=>F.update({name:null}),update:(V)=>{if(typeof V.name<"u"&&V.name!==Y){if(typeof V.name==="string")p50(V.name);if(delete this._registeredTools[Y],V.name)this._registeredTools[V.name]=F}if(typeof V.title<"u")F.title=V.title;if(typeof V.description<"u")F.description=V.description;if(typeof V.paramsSchema<"u")F.inputSchema=b$(V.paramsSchema);if(typeof V.outputSchema<"u")F.outputSchema=b$(V.outputSchema);if(typeof V.callback<"u")F.handler=V.callback;if(typeof V.annotations<"u")F.annotations=V.annotations;if(typeof V._meta<"u")F._meta=V._meta;if(typeof V.enabled<"u")F.enabled=V.enabled;this.sendToolListChanged()}};return this._registeredTools[Y]=F,this.setToolRequestHandlers(),this.sendToolListChanged(),F}tool(Y,...X){if(this._registeredTools[Y])throw Error(`Tool ${Y} is already registered`);let Q,J,G,K;if(typeof X[0]==="string")Q=X.shift();if(X.length>1){let Z=X[0];if(n50(Z)){if(J=X.shift(),X.length>1&&typeof X[0]==="object"&&X[0]!==null&&!n50(X[0]))K=X.shift()}else if(typeof Z==="object"&&Z!==null)K=X.shift()}let W=X[0];return this._createRegisteredTool(Y,void 0,Q,J,G,K,{taskSupport:"forbidden"},void 0,W)}registerTool(Y,X,Q){if(this._registeredTools[Y])throw Error(`Tool ${Y} is already registered`);let{title:J,description:G,inputSchema:K,outputSchema:W,annotations:Z,_meta:H}=X;return this._createRegisteredTool(Y,J,G,K,W,Z,{taskSupport:"forbidden"},H,Q)}prompt(Y,...X){if(this._registeredPrompts[Y])throw Error(`Prompt ${Y} is already registered`);let Q;if(typeof X[0]==="string")Q=X.shift();let J;if(X.length>1)J=X.shift();let G=X[0],K=this._createRegisteredPrompt(Y,void 0,Q,J,G);return this.setPromptRequestHandlers(),this.sendPromptListChanged(),K}registerPrompt(Y,X,Q){if(this._registeredPrompts[Y])throw Error(`Prompt ${Y} is already registered`);let{title:J,description:G,argsSchema:K}=X,W=this._createRegisteredPrompt(Y,J,G,K,Q);return this.setPromptRequestHandlers(),this.sendPromptListChanged(),W}isConnected(){return this.server.transport!==void 0}async sendLoggingMessage(Y,X){return this.server.sendLoggingMessage(Y,X)}sendResourceListChanged(){if(this.isConnected())this.server.sendResourceListChanged()}sendToolListChanged(){if(this.isConnected())this.server.sendToolListChanged()}sendPromptListChanged(){if(this.isConnected())this.server.sendPromptListChanged()}}function uD6(Y){return Y!==null&&typeof Y==="object"&&"parse"in Y&&typeof Y.parse==="function"&&"safeParse"in Y&&typeof Y.safeParse==="function"}function nX1(Y){return"_def"in Y||"_zod"in Y||uD6(Y)}function n50(Y){if(typeof Y!=="object"||Y===null)return!1;if(nX1(Y))return!1;if(Object.keys(Y).length===0)return!0;return Object.values(Y).some(uD6)}function bD6(Y){if(!Y)return;if(n50(Y))return b$(Y);return Y}function iX1(Y){let X=DW(Y);if(!X)return[];return Object.entries(X).map(([Q,J])=>{let G=zF6(J),K=BF6(J);return{name:Q,description:G,required:!K}})}function x3(Y){let Q=DW(Y)?.method;if(!Q)throw Error("Schema is missing a method literal");let J=Zb(Q);if(typeof J==="string")return J;throw Error("Schema method literal must be a string")}function xD6(Y){return{completion:{values:Y.slice(0,100),total:Y.length,hasMore:Y.length>100}}}var cX1,Y2;var cx=S(()=>{kD6();OD();dQ0();p9();fD6();hD6();s0();cX1={type:"object",properties:{}};Y2={completion:{values:[],hasMore:!1}}});class Yq{constructor(Y={}){this._started=!1,this._streamMapping=new Map,this._requestToStreamMapping=new Map,this._requestResponseMap=new Map,this._initialized=!1,this._enableJsonResponse=!1,this._standaloneSseStreamId="_GET_stream",this.sessionIdGenerator=Y.sessionIdGenerator,this._enableJsonResponse=Y.enableJsonResponse??!1,this._eventStore=Y.eventStore,this._onsessioninitialized=Y.onsessioninitialized,this._onsessionclosed=Y.onsessionclosed,this._allowedHosts=Y.allowedHosts,this._allowedOrigins=Y.allowedOrigins,this._enableDnsRebindingProtection=Y.enableDnsRebindingProtection??!1,this._retryInterval=Y.retryInterval}async start(){if(this._started)throw Error("Transport already started");this._started=!0}createJsonErrorResponse(Y,X,Q,J){let G={code:X,message:Q};if(J?.data!==void 0)G.data=J.data;return new Response(JSON.stringify({jsonrpc:"2.0",error:G,id:null}),{status:Y,headers:{"Content-Type":"application/json",...J?.headers}})}validateRequestHeaders(Y){if(!this._enableDnsRebindingProtection)return;if(this._allowedHosts&&this._allowedHosts.length>0){let X=Y.headers.get("host");if(!X||!this._allowedHosts.includes(X)){let Q=`Invalid Host header: ${X}`;return this.onerror?.(Error(Q)),this.createJsonErrorResponse(403,-32000,Q)}}if(this._allowedOrigins&&this._allowedOrigins.length>0){let X=Y.headers.get("origin");if(X&&!this._allowedOrigins.includes(X)){let Q=`Invalid Origin header: ${X}`;return this.onerror?.(Error(Q)),this.createJsonErrorResponse(403,-32000,Q)}}return}async handleRequest(Y,X){let Q=this.validateRequestHeaders(Y);if(Q)return Q;switch(Y.method){case"POST":return this.handlePostRequest(Y,X);case"GET":return this.handleGetRequest(Y);case"DELETE":return this.handleDeleteRequest(Y);default:return this.handleUnsupportedRequest()}}async writePrimingEvent(Y,X,Q,J){if(!this._eventStore)return;if(J<"2025-11-25")return;let G=await this._eventStore.storeEvent(Q,{}),K=`id: ${G}
|
|
1162
1162
|
data:
|
|
@@ -1170,29 +1170,29 @@ data:
|
|
|
1170
1170
|
`;return G+=`data: ${JSON.stringify(Q)}
|
|
1171
1171
|
|
|
1172
1172
|
`,Y.enqueue(X.encode(G)),!0}catch{return!1}}handleUnsupportedRequest(){return new Response(JSON.stringify({jsonrpc:"2.0",error:{code:-32000,message:"Method not allowed."},id:null}),{status:405,headers:{Allow:"GET, POST, DELETE","Content-Type":"application/json"}})}async handlePostRequest(Y,X){try{let Q=Y.headers.get("accept");if(!Q?.includes("application/json")||!Q.includes("text/event-stream"))return this.createJsonErrorResponse(406,-32000,"Not Acceptable: Client must accept both application/json and text/event-stream");let J=Y.headers.get("content-type");if(!J||!J.includes("application/json"))return this.createJsonErrorResponse(415,-32000,"Unsupported Media Type: Content-Type must be application/json");let G={headers:Object.fromEntries(Y.headers.entries())},K;if(X?.parsedBody!==void 0)K=X.parsedBody;else try{K=await Y.json()}catch{return this.createJsonErrorResponse(400,-32700,"Parse error: Invalid JSON")}let W;try{if(Array.isArray(K))W=K.map((L)=>SJ.parse(L));else W=[SJ.parse(K)]}catch{return this.createJsonErrorResponse(400,-32700,"Parse error: Invalid JSON-RPC message")}let Z=W.some(pX0);if(Z){if(this._initialized&&this.sessionId!==void 0)return this.createJsonErrorResponse(400,-32600,"Invalid Request: Server already initialized");if(W.length>1)return this.createJsonErrorResponse(400,-32600,"Invalid Request: Only one initialization request is allowed");if(this.sessionId=this.sessionIdGenerator?.(),this._initialized=!0,this.sessionId&&this._onsessioninitialized)await Promise.resolve(this._onsessioninitialized(this.sessionId))}if(!Z){let L=this.validateSession(Y);if(L)return L;let w=this.validateProtocolVersion(Y);if(w)return w}if(!W.some(OW)){for(let L of W)this.onmessage?.(L,{authInfo:X?.authInfo,requestInfo:G});return new Response(null,{status:202})}let F=crypto.randomUUID(),V=W.find((L)=>pX0(L)),$=V?V.params.protocolVersion:Y.headers.get("mcp-protocol-version")??UF6;if(this._enableJsonResponse)return new Promise((L)=>{this._streamMapping.set(F,{resolveJson:L,cleanup:()=>{this._streamMapping.delete(F)}});for(let w of W)if(OW(w))this._requestToStreamMapping.set(w.id,F);for(let w of W)this.onmessage?.(w,{authInfo:X?.authInfo,requestInfo:G})});let q=new TextEncoder,B,D=new ReadableStream({start:(L)=>{B=L},cancel:()=>{this._streamMapping.delete(F)}}),O={"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"};if(this.sessionId!==void 0)O["mcp-session-id"]=this.sessionId;for(let L of W)if(OW(L))this._streamMapping.set(F,{controller:B,encoder:q,cleanup:()=>{this._streamMapping.delete(F);try{B.close()}catch{}}}),this._requestToStreamMapping.set(L.id,F);await this.writePrimingEvent(B,q,F,$);for(let L of W){let w,I;if(OW(L)&&this._eventStore&&$>="2025-11-25")w=()=>{this.closeSSEStream(L.id)},I=()=>{this.closeStandaloneSSEStream()};this.onmessage?.(L,{authInfo:X?.authInfo,requestInfo:G,closeSSEStream:w,closeStandaloneSSEStream:I})}return new Response(D,{status:200,headers:O})}catch(Q){return this.onerror?.(Q),this.createJsonErrorResponse(400,-32700,"Parse error",{data:String(Q)})}}async handleDeleteRequest(Y){let X=this.validateSession(Y);if(X)return X;let Q=this.validateProtocolVersion(Y);if(Q)return Q;return await Promise.resolve(this._onsessionclosed?.(this.sessionId)),await this.close(),new Response(null,{status:200})}validateSession(Y){if(this.sessionIdGenerator===void 0)return;if(!this._initialized)return this.createJsonErrorResponse(400,-32000,"Bad Request: Server not initialized");let X=Y.headers.get("mcp-session-id");if(!X)return this.createJsonErrorResponse(400,-32000,"Bad Request: Mcp-Session-Id header is required");if(X!==this.sessionId)return this.createJsonErrorResponse(404,-32001,"Session not found");return}validateProtocolVersion(Y){let X=Y.headers.get("mcp-protocol-version");if(X!==null&&!x$.includes(X))return this.createJsonErrorResponse(400,-32000,`Bad Request: Unsupported protocol version: ${X} (supported versions: ${x$.join(", ")})`);return}async close(){this._streamMapping.forEach(({cleanup:Y})=>{Y()}),this._streamMapping.clear(),this._requestResponseMap.clear(),this.onclose?.()}closeSSEStream(Y){let X=this._requestToStreamMapping.get(Y);if(!X)return;let Q=this._streamMapping.get(X);if(Q)Q.cleanup()}closeStandaloneSSEStream(){let Y=this._streamMapping.get(this._standaloneSseStreamId);if(Y)Y.cleanup()}async send(Y,X){let Q=X?.relatedRequestId;if(RG(Y)||LD(Y))Q=Y.id;if(Q===void 0){if(RG(Y)||LD(Y))throw Error("Cannot send a response on a standalone SSE stream unless resuming a previous client request");let K;if(this._eventStore)K=await this._eventStore.storeEvent(this._standaloneSseStreamId,Y);let W=this._streamMapping.get(this._standaloneSseStreamId);if(W===void 0)return;if(W.controller&&W.encoder)this.writeSSEEvent(W.controller,W.encoder,Y,K);return}let J=this._requestToStreamMapping.get(Q);if(!J)throw Error(`No connection established for request ID: ${String(Q)}`);let G=this._streamMapping.get(J);if(!this._enableJsonResponse&&G?.controller&&G?.encoder){let K;if(this._eventStore)K=await this._eventStore.storeEvent(J,Y);this.writeSSEEvent(G.controller,G.encoder,Y,K)}if(RG(Y)||LD(Y)){this._requestResponseMap.set(Q,Y);let K=Array.from(this._requestToStreamMapping.entries()).filter(([Z,H])=>H===J).map(([Z])=>Z);if(K.every((Z)=>this._requestResponseMap.has(Z))){if(!G)throw Error(`No connection established for request ID: ${String(Q)}`);if(this._enableJsonResponse&&G.resolveJson){let Z={"Content-Type":"application/json"};if(this.sessionId!==void 0)Z["mcp-session-id"]=this.sessionId;let H=K.map((F)=>this._requestResponseMap.get(F));if(H.length===1)G.resolveJson(new Response(JSON.stringify(H[0]),{status:200,headers:Z}));else G.resolveJson(new Response(JSON.stringify(H),{status:200,headers:Z}))}else G.cleanup();for(let Z of K)this._requestResponseMap.delete(Z),this._requestToStreamMapping.delete(Z)}}}}var nx=S(()=>{p9()});var X2=(...Y)=>{return function(Q,J){let G=(K)=>{let W=Y[K];if(!W)return J();return W(Q,()=>G(K+1))};return G(0)}};class gD6{config;tools=[];callToolMiddlewares=[];jsonSchemaCache=new Map;constructor(Y){this.config={...Y,capabilities:Y.capabilities??{tools:{}}}}getCachedJsonSchema(Y){let X=this.jsonSchemaCache.get(Y);if(!X)X=z.toJSONSchema(Y),this.jsonSchemaCache.set(Y,X);return X}withTool(Y){return this.tools.push(Y),this}withTools(Y){return this.tools.push(...Y),this}callToolMiddleware(...Y){return this.callToolMiddlewares.push(...Y),this}build(){let Y=this.callToolMiddlewares.length>0?X2(...this.callToolMiddlewares):null,X=()=>{let Q=new e$({name:this.config.name,version:this.config.version},{capabilities:this.config.capabilities});for(let J of this.tools){let G=async(H)=>{try{let F=await J.handler(H);return{content:[{type:"text",text:JSON.stringify(F)}],structuredContent:F}}catch(F){return{content:[{type:"text",text:`Error: ${F.message}`}],isError:!0}}},K=Y?async(H)=>{let F={method:"tools/call",params:{name:J.name,arguments:H}};return await Y(F,()=>G(H))}:G,W="shape"in J.inputSchema?J.inputSchema.shape:z.object({}).shape,Z=J.outputSchema&&"shape"in J.outputSchema?J.outputSchema.shape:z.object({}).shape;Q.registerTool(J.name,{annotations:J.annotations,description:J.description??"",inputSchema:W,outputSchema:Z},K)}return Q};return{callStreamableTool:async(Q,J)=>{let G=this.tools.find((W)=>W.name===Q);if(!G)throw Error(`Tool ${Q} not found`);let K=await G.handler(J);if(!(K instanceof Response))throw Error(`Tool ${Q} returned a non-response`);return K},client:{listTools:async()=>{return{tools:this.tools.map((Q)=>({name:Q.name,description:Q.description??"",inputSchema:this.getCachedJsonSchema(Q.inputSchema),outputSchema:Q.outputSchema?this.getCachedJsonSchema(Q.outputSchema):void 0}))}},callTool:async(Q)=>{let J=this.tools.find((G)=>G.name===Q.name);if(!J)return{content:[{type:"text",text:"Tool not found"}]};try{let G=await J?.handler(Q.arguments??{});return{content:[{type:"text",text:JSON.stringify(G)}],structuredContent:G}}catch(G){return{content:[{type:"text",text:`Error: ${G.message}`}]}}}},fetch:async(Q)=>{let J=new Yq({enableJsonResponse:Q.headers.get("Accept")?.includes("application/json")??!1});await X().connect(J);try{return await J.handleRequest(Q)}finally{try{await J.close?.()}catch{}}}}}}function mD6(Y){return new gD6(Y)}var lD6=S(()=>{cx();nx();s0()});function J6(Y){return{...Y,execute:async(X,Q)=>{let J=Date.now();return await Q.timings.measure(`tool.${Y.name}`,async()=>Q.tracer.startActiveSpan(`tool.${Y.name}`,{attributes:{"tool.name":Y.name,"organization.id":Q.organization?.id??"system","user.id":Q.auth.user?.id??Q.auth.apiKey?.userId??"anonymous"}},async(G)=>{try{Q.toolName=Y.name,Q.access.setToolName?.(Y.name);let K=await Y.handler(X,Q),W=Date.now()-J;return Q.meter.createHistogram("tool.execution.duration",{description:"Duration of tool executions in milliseconds",unit:"ms"}).record(W,{"tool.name":Y.name,"organization.id":Q.organization?.id??"system",status:"success"}),Q.meter.createCounter("tool.execution.count",{description:"Number of tool executions"}).add(1,{"tool.name":Y.name,status:"success"}),G.setStatus({code:i50.SpanStatusCode.OK}),K}catch(K){throw Q.meter.createCounter("tool.execution.errors",{description:"Number of tool execution errors"}).add(1,{"tool.name":Y.name,"error.type":K.constructor.name}),G.setStatus({code:i50.SpanStatusCode.ERROR,message:K.message}),G.recordException(K),K}finally{G.end()}}))}}}var i50;var z4=S(()=>{i50=O4(x0(),1)});function h6(Y){if(!Y.organization)throw Error("This operation requires organization scope");return Y.organization}function Q9(Y){return Y.auth.user?.id??Y.auth.apiKey?.userId}function aX1(Y){return!!(Y.auth.user||Y.auth.apiKey)}function O6(Y){if(!aX1(Y))throw Error("Authentication required")}var ix,dD6,pD6,cD6,nD6,iD6,aD6,rD6,oD6,sD6;var oD=S(()=>{s0();ix=z.record(z.string(),z.array(z.string())),dD6=z.object({id:z.string().describe("Unique identifier for the API key"),name:z.string().describe("Human-readable name for the API key"),userId:z.string().describe("ID of the user who owns this API key"),permissions:ix.describe('Permissions granted to this API key. Format: { resource: [actions] } where resource is "self" for management tools or "conn_<UUID>" for connection-specific tools. Example: { "self": ["API_KEY_CREATE"], "conn_abc123": ["SEND_MESSAGE"] }'),expiresAt:z.string().datetime().nullable().optional().describe("Expiration date of the API key (ISO 8601)"),createdAt:z.string().datetime().describe("When the API key was created (ISO 8601)")}),pD6=z.object({name:z.string().min(1).max(64).describe("Human-readable name for the API key"),permissions:ix.optional().describe('Permissions to grant. Format: { resource: [actions] }. Resource is "self" for management tools or "conn_<UUID>" for connection-specific tools. Actions are tool names (e.g., ["API_KEY_CREATE"]) or ["*"] for all. Example: { "self": ["API_KEY_CREATE", "COLLECTION_CONNECTIONS_LIST"] }. Defaults to read-only permissions.'),expiresIn:z.number().positive().optional().describe("Expiration time in seconds. If not provided, key never expires."),metadata:z.record(z.string(),z.unknown()).optional().describe("Additional metadata to store with the API key")}),cD6=z.object({id:z.string().describe("Unique identifier for the API key"),name:z.string().describe("Human-readable name for the API key"),key:z.string().describe("The actual API key value. STORE THIS SECURELY - it will not be shown again!"),permissions:ix.describe('Permissions granted to this API key. Format: { resource: [actions] } where resource is "self" for management tools or "conn_<UUID>" for connection-specific tools'),expiresAt:z.string().datetime().nullable().optional().describe("Expiration date of the API key (ISO 8601)"),createdAt:z.string().datetime().describe("When the API key was created (ISO 8601)")}),nD6=z.object({}),iD6=z.object({items:z.array(dD6).describe("List of API keys (without key values)")}),aD6=z.object({keyId:z.string().describe("ID of the API key to update"),name:z.string().min(1).max(64).optional().describe("New name for the API key"),permissions:ix.optional().describe('New permissions. Format: { resource: [actions] } where resource is "self" for management tools or "conn_<UUID>" for connection-specific tools. Actions are tool names or "*" for all. Example: { "self": ["API_KEY_CREATE"] }. Replaces existing permissions.'),metadata:z.record(z.string(),z.unknown()).optional().describe("New metadata. Replaces existing metadata.")}),rD6=z.object({item:dD6.describe("The updated API key (without key value)")}),oD6=z.object({keyId:z.string().describe("ID of the API key to delete")}),sD6=z.object({success:z.boolean().describe("Whether the deletion was successful"),keyId:z.string().describe("ID of the deleted API key")})});var a50;var tD6=S(()=>{z4();oD();a50=J6({name:"API_KEY_CREATE",description:"Create a new API key with specified permissions. The key value is only returned once - store it securely!",inputSchema:pD6,outputSchema:cD6,handler:async(Y,X)=>{O6(X),await X.access.check();let Q=await X.boundAuth.apiKey.create({name:Y.name,permissions:Y.permissions,expiresIn:Y.expiresIn,metadata:{...Y.metadata,organization:X.organization}}),J=Q.expiresAt?Q.expiresAt instanceof Date?Q.expiresAt.toISOString():Q.expiresAt:null,G=Q.createdAt instanceof Date?Q.createdAt.toISOString():Q.createdAt;return{id:Q.id,name:Q.name??Y.name,key:Q.key,permissions:Q.permissions??{},expiresAt:J,createdAt:G}}})});var r50;var eD6=S(()=>{z4();oD();r50=J6({name:"API_KEY_DELETE",description:"Delete an API key. This instantly revokes the key - it can no longer be used for authentication.",inputSchema:oD6,outputSchema:sD6,handler:async(Y,X)=>{if(O6(X),await X.access.check(),!Q9(X))throw Error("User ID required to delete API key");let G=(await X.boundAuth.apiKey.list())?.find((H)=>H.id===Y.keyId);if(!G)throw Error("API key not found");let W=G.metadata?.organization?.id,Z=X.organization?.id;if(W!==Z)throw Error("Cannot delete API key from another organization");return await X.boundAuth.apiKey.delete(Y.keyId),{success:!0,keyId:Y.keyId}}})});var o50;var YO6=S(()=>{z4();oD();o50=J6({name:"API_KEY_LIST",description:"List all API keys for the current user in the current organization. Returns metadata only - key values are never shown after creation.",inputSchema:nD6,outputSchema:iD6,handler:async(Y,X)=>{O6(X),await X.access.check();let Q=await X.boundAuth.apiKey.list(),J=X.organization?.id;return{items:(Q??[]).filter((K)=>{return K.metadata?.organization?.id===J}).map((K)=>({id:K.id,name:K.name??"Unnamed Key",userId:K.userId,permissions:K.permissions??{},expiresAt:K.expiresAt?K.expiresAt instanceof Date?K.expiresAt.toISOString():K.expiresAt:null,createdAt:K.createdAt instanceof Date?K.createdAt.toISOString():K.createdAt}))}}})});var s50;var XO6=S(()=>{z4();oD();s50=J6({name:"API_KEY_UPDATE",description:"Update an existing API key's name, permissions, or metadata. Note: Key value cannot be changed or retrieved.",inputSchema:aD6,outputSchema:rD6,handler:async(Y,X)=>{if(O6(X),await X.access.check(),!Q9(X))throw Error("User ID required to update API key");let G=(await X.boundAuth.apiKey.list())?.find((F)=>F.id===Y.keyId);if(!G)throw Error(`API key not found: ${Y.keyId}`);let W=G.metadata?.organization?.id,Z=X.organization?.id;if(W!==Z)throw Error("Cannot update API key from another organization");let H=await X.boundAuth.apiKey.update({keyId:Y.keyId,name:Y.name,permissions:Y.permissions,metadata:{...Y.metadata,organization:X.organization}});if(!H)throw Error(`Failed to update API key: ${Y.keyId}`);return{item:{id:H.id,name:H.name??Y.name??"Unnamed Key",userId:H.userId,permissions:H.permissions??{},expiresAt:H.expiresAt?H.expiresAt instanceof Date?H.expiresAt.toISOString():H.expiresAt:null,createdAt:H.createdAt instanceof Date?H.createdAt.toISOString():H.createdAt}}}})});var QO6=S(()=>{tD6();eD6();YO6();XO6();oD()});var JO6,GO6,WO6,ZO6,KO6,HO6;var Q2=S(()=>{s0();JO6=z.object({query:z.string().describe("Natural language search query (e.g., 'send email', 'create order')"),limit:z.number().default(10).describe("Maximum results to return (default: 10)")}),GO6=z.object({query:z.string(),results:z.array(z.object({name:z.string(),description:z.string().optional(),connection:z.string()})),totalAvailable:z.number()}),WO6=z.object({tools:z.array(z.string()).min(1).describe("Array of tool names to get detailed schemas for")}),ZO6=z.object({tools:z.array(z.object({name:z.string(),description:z.string().optional(),connection:z.string(),inputSchema:z.unknown(),outputSchema:z.unknown().optional()})),notFound:z.array(z.string())}),KO6=z.object({code:z.string().min(1).describe("JavaScript code to execute. It runs as an async function body; you can use top-level `return` and `await`."),timeoutMs:z.number().default(3000).describe("Max execution time in milliseconds (default: 3000).")}),HO6=z.object({returnValue:z.unknown().optional(),error:z.string().optional(),consoleLogs:z.array(z.object({type:z.enum(["log","warn","error"]),content:z.string()}))})});class sD{proxies=new Map;constructor(){}static async create(Y,X){let Q=new sD,J=await Promise.allSettled(Y.map(async({connection:G,selectedTools:K,selectedResources:W,selectedPrompts:Z})=>{try{let H=await X.createMCPProxy(G);return{connection:G,proxy:H,selectedTools:K,selectedResources:W,selectedPrompts:Z}}catch(H){return console.error(`[aggregator] Failed to create proxy for connection ${G.id}:`,H),null}}));for(let G of J)if(G.status==="fulfilled"&&G.value)Q.proxies.set(G.value.connection.id,G.value);return Q}get(Y){return this.proxies.get(Y)}entries(){return this.proxies.entries()}forEach(Y){this.proxies.forEach((X,Q)=>Y(X,Q))}async mapAsync(Y){let X=[];for(let[Q,J]of this.proxies.entries())X.push(Y(J,Q));return await Promise.all(X)}async mapSettled(Y){return Promise.allSettled(Array.from(this.proxies.entries()).map(([X,Q])=>Y(Q,X)))}get size(){return this.proxies.size}}function FO6(Y){let X=[],Q=[],J=(H)=>{let F=Y.newFunction(H,(...V)=>{try{let $=V.map((q)=>Y.dump(q));X.push({type:H??"log",content:$.map(String).join(" ")})}finally{V.forEach(($)=>$.dispose())}return Y.undefined});return Q.push(F),F},G=Y.newObject();Q.push(G);let K=J("log"),W=J("warn"),Z=J("error");return Y.setProp(G,"log",K),Y.setProp(G,"warn",W),Y.setProp(G,"error",Z),Y.setProp(Y.global,"console",G),{logs:X,[Symbol.dispose](){Q.forEach((H)=>H.dispose())}}}var Xq,t50,ax,Qq,J2;var rx=S(()=>{Xq={JS_EVAL_TYPE_GLOBAL:0,JS_EVAL_TYPE_MODULE:1,JS_EVAL_TYPE_DIRECT:2,JS_EVAL_TYPE_INDIRECT:3,JS_EVAL_TYPE_MASK:3,JS_EVAL_FLAG_STRICT:8,JS_EVAL_FLAG_STRIP:16,JS_EVAL_FLAG_COMPILE_ONLY:32,JS_EVAL_FLAG_BACKTRACE_BARRIER:64},t50={BaseObjects:1,Date:2,Eval:4,StringNormalize:8,RegExp:16,RegExpCompiler:32,JSON:64,Proxy:128,MapSet:256,TypedArrays:512,Promise:1024,BigInt:2048,BigFloat:4096,BigDecimal:8192,OperatorOverloading:16384,BignumExt:32768},ax={Pending:0,Fulfilled:1,Rejected:2},Qq={JS_GPN_STRING_MASK:1,JS_GPN_SYMBOL_MASK:2,JS_GPN_PRIVATE_MASK:4,JS_GPN_ENUM_ONLY:16,JS_GPN_SET_ENUM:32,QTS_GPN_NUMBER_MASK:64,QTS_STANDARD_COMPLIANT_NUMBER:128},J2={IsStrictlyEqual:0,IsSameValue:1,IsSameValueZero:2}});function tD(...Y){GG0&&console.log("quickjs-emscripten:",...Y)}function*AO6(Y){return yield Y}function tX1(Y){return AO6(ZG0(Y))}function VO6(Y,X){return(...Q)=>{let J=X.call(Y,WG0,...Q);return ZG0(J)}}function eX1(Y,X){let Q=X.call(Y,WG0);return ZG0(Q)}function ZG0(Y){function X(Q){return Q.done?Q.value:Q.value instanceof Promise?Q.value.then((J)=>X(Y.next(J)),(J)=>X(Y.throw(J))):X(Y.next(Q.value))}return X(Y.next())}function e50(Y,X){let Q;try{Y.dispose()}catch(J){Q=J}if(X&&Q)throw Object.assign(X,{message:`${X.message}
|
|
1173
|
-
Then, failed to dispose scope: ${Q.message}`,disposeError:Q}),X;if(X||Q)throw X||Q}function TO6(Y){let X=Y?Array.from(Y):[];function Q(){return X.forEach((G)=>G.alive?G.dispose():void 0)}function J(){return X.some((G)=>G.alive)}return Object.defineProperty(X,QG0,{configurable:!0,enumerable:!1,value:Q}),Object.defineProperty(X,"dispose",{configurable:!0,enumerable:!1,value:Q}),Object.defineProperty(X,"alive",{configurable:!0,enumerable:!1,get:J}),X}function ox(Y){return!!(Y&&(typeof Y=="object"||typeof Y=="function")&&("alive"in Y)&&typeof Y.alive=="boolean"&&("dispose"in Y)&&typeof Y.dispose=="function")}function YQ1(Y){if(!Y)return 0;let X=0;for(let[Q,J]of Object.entries(Y)){if(!(Q in t50))throw new LO6(Q);J&&(X|=t50[Q])}return X}function XQ1(Y){if(typeof Y=="number")return Y;if(Y===void 0)return 0;let{type:X,strict:Q,strip:J,compileOnly:G,backtraceBarrier:K}=Y,W=0;return X==="global"&&(W|=Xq.JS_EVAL_TYPE_GLOBAL),X==="module"&&(W|=Xq.JS_EVAL_TYPE_MODULE),Q&&(W|=Xq.JS_EVAL_FLAG_STRICT),J&&(W|=Xq.JS_EVAL_FLAG_STRIP),G&&(W|=Xq.JS_EVAL_FLAG_COMPILE_ONLY),K&&(W|=Xq.JS_EVAL_FLAG_BACKTRACE_BARRIER),W}function QQ1(Y){if(typeof Y=="number")return Y;if(Y===void 0)return 0;let{strings:X,symbols:Q,quickjsPrivate:J,onlyEnumerable:G,numbers:K,numbersAsStrings:W}=Y,Z=0;return X&&(Z|=Qq.JS_GPN_STRING_MASK),Q&&(Z|=Qq.JS_GPN_SYMBOL_MASK),J&&(Z|=Qq.JS_GPN_PRIVATE_MASK),G&&(Z|=Qq.JS_GPN_ENUM_ONLY),K&&(Z|=Qq.QTS_GPN_NUMBER_MASK),W&&(Z|=Qq.QTS_STANDARD_COMPLIANT_NUMBER),Z}function JQ1(...Y){let X=[];for(let Q of Y)Q!==void 0&&(X=X.concat(Q));return X}function VG0(Y,X){X.interruptHandler&&Y.setInterruptHandler(X.interruptHandler),X.maxStackSizeBytes!==void 0&&Y.setMaxStackSize(X.maxStackSizeBytes),X.memoryLimitBytes!==void 0&&Y.setMemoryLimit(X.memoryLimitBytes)}function $G0(Y,X){X.moduleLoader&&Y.setModuleLoader(X.moduleLoader),X.shouldInterrupt&&Y.setInterruptHandler(X.shouldInterrupt),X.memoryLimitBytes!==void 0&&Y.setMemoryLimit(X.memoryLimitBytes),X.maxStackSizeBytes!==void 0&&Y.setMaxStackSize(X.maxStackSizeBytes)}var oX1,sX1=(Y,X)=>{for(var Q in X)oX1(Y,Q,{get:X[Q],enumerable:!0})},GG0=!1,qO6,YG0,zO6,XG0,BO6,UO6,DO6,OO6,NO6,LO6,wO6,MO6,WG0,FK,QG0,$O6,CX,u3,JG0,xG,KG0,PO6,EO6,Jq,CO6,IO6=class{constructor(Y){this.module=Y}toPointerArray(Y){let X=new Int32Array(Y.map((G)=>G.value)),Q=X.length*X.BYTES_PER_ELEMENT,J=this.module._malloc(Q);return new Uint8Array(this.module.HEAPU8.buffer,J,Q).set(new Uint8Array(X.buffer)),new CX(J,void 0,(G)=>this.module._free(G))}newTypedArray(Y,X){let Q=new Y(Array(X).fill(0)),J=Q.length*Q.BYTES_PER_ELEMENT,G=this.module._malloc(J),K=new Y(this.module.HEAPU8.buffer,G,X);return K.set(Q),new CX({typedArray:K,ptr:G},void 0,(W)=>this.module._free(W.ptr))}newMutablePointerArray(Y){return this.newTypedArray(Int32Array,Y)}newHeapCharPointer(Y){let X=this.module.lengthBytesUTF8(Y),Q=X+1,J=this.module._malloc(Q);return this.module.stringToUTF8(Y,J,Q),new CX({ptr:J,strlen:X},void 0,(G)=>this.module._free(G.ptr))}newHeapBufferPointer(Y){let X=Y.byteLength,Q=this.module._malloc(X);return this.module.HEAPU8.set(Y,Q),new CX({pointer:Q,numBytes:X},void 0,(J)=>this.module._free(J.pointer))}consumeHeapCharPointer(Y){let X=this.module.UTF8ToString(Y);return this.module._free(Y),X}},
|
|
1173
|
+
Then, failed to dispose scope: ${Q.message}`,disposeError:Q}),X;if(X||Q)throw X||Q}function TO6(Y){let X=Y?Array.from(Y):[];function Q(){return X.forEach((G)=>G.alive?G.dispose():void 0)}function J(){return X.some((G)=>G.alive)}return Object.defineProperty(X,QG0,{configurable:!0,enumerable:!1,value:Q}),Object.defineProperty(X,"dispose",{configurable:!0,enumerable:!1,value:Q}),Object.defineProperty(X,"alive",{configurable:!0,enumerable:!1,get:J}),X}function ox(Y){return!!(Y&&(typeof Y=="object"||typeof Y=="function")&&("alive"in Y)&&typeof Y.alive=="boolean"&&("dispose"in Y)&&typeof Y.dispose=="function")}function YQ1(Y){if(!Y)return 0;let X=0;for(let[Q,J]of Object.entries(Y)){if(!(Q in t50))throw new LO6(Q);J&&(X|=t50[Q])}return X}function XQ1(Y){if(typeof Y=="number")return Y;if(Y===void 0)return 0;let{type:X,strict:Q,strip:J,compileOnly:G,backtraceBarrier:K}=Y,W=0;return X==="global"&&(W|=Xq.JS_EVAL_TYPE_GLOBAL),X==="module"&&(W|=Xq.JS_EVAL_TYPE_MODULE),Q&&(W|=Xq.JS_EVAL_FLAG_STRICT),J&&(W|=Xq.JS_EVAL_FLAG_STRIP),G&&(W|=Xq.JS_EVAL_FLAG_COMPILE_ONLY),K&&(W|=Xq.JS_EVAL_FLAG_BACKTRACE_BARRIER),W}function QQ1(Y){if(typeof Y=="number")return Y;if(Y===void 0)return 0;let{strings:X,symbols:Q,quickjsPrivate:J,onlyEnumerable:G,numbers:K,numbersAsStrings:W}=Y,Z=0;return X&&(Z|=Qq.JS_GPN_STRING_MASK),Q&&(Z|=Qq.JS_GPN_SYMBOL_MASK),J&&(Z|=Qq.JS_GPN_PRIVATE_MASK),G&&(Z|=Qq.JS_GPN_ENUM_ONLY),K&&(Z|=Qq.QTS_GPN_NUMBER_MASK),W&&(Z|=Qq.QTS_STANDARD_COMPLIANT_NUMBER),Z}function JQ1(...Y){let X=[];for(let Q of Y)Q!==void 0&&(X=X.concat(Q));return X}function VG0(Y,X){X.interruptHandler&&Y.setInterruptHandler(X.interruptHandler),X.maxStackSizeBytes!==void 0&&Y.setMaxStackSize(X.maxStackSizeBytes),X.memoryLimitBytes!==void 0&&Y.setMemoryLimit(X.memoryLimitBytes)}function $G0(Y,X){X.moduleLoader&&Y.setModuleLoader(X.moduleLoader),X.shouldInterrupt&&Y.setInterruptHandler(X.shouldInterrupt),X.memoryLimitBytes!==void 0&&Y.setMemoryLimit(X.memoryLimitBytes),X.maxStackSizeBytes!==void 0&&Y.setMaxStackSize(X.maxStackSizeBytes)}var oX1,sX1=(Y,X)=>{for(var Q in X)oX1(Y,Q,{get:X[Q],enumerable:!0})},GG0=!1,qO6,YG0,zO6,XG0,BO6,UO6,DO6,OO6,NO6,LO6,wO6,MO6,WG0,FK,QG0,$O6,CX,u3,JG0,xG,KG0,PO6,EO6,Jq,CO6,IO6=class{constructor(Y){this.module=Y}toPointerArray(Y){let X=new Int32Array(Y.map((G)=>G.value)),Q=X.length*X.BYTES_PER_ELEMENT,J=this.module._malloc(Q);return new Uint8Array(this.module.HEAPU8.buffer,J,Q).set(new Uint8Array(X.buffer)),new CX(J,void 0,(G)=>this.module._free(G))}newTypedArray(Y,X){let Q=new Y(Array(X).fill(0)),J=Q.length*Q.BYTES_PER_ELEMENT,G=this.module._malloc(J),K=new Y(this.module.HEAPU8.buffer,G,X);return K.set(Q),new CX({typedArray:K,ptr:G},void 0,(W)=>this.module._free(W.ptr))}newMutablePointerArray(Y){return this.newTypedArray(Int32Array,Y)}newHeapCharPointer(Y){let X=this.module.lengthBytesUTF8(Y),Q=X+1,J=this.module._malloc(Q);return this.module.stringToUTF8(Y,J,Q),new CX({ptr:J,strlen:X},void 0,(G)=>this.module._free(G.ptr))}newHeapBufferPointer(Y){let X=Y.byteLength,Q=this.module._malloc(X);return this.module.HEAPU8.set(Y,Q),new CX({pointer:Q,numBytes:X},void 0,(J)=>this.module._free(J.pointer))}consumeHeapCharPointer(Y){let X=this.module.UTF8ToString(Y);return this.module._free(Y),X}},H$8,HG0,GQ1,WQ1,RO6,jO6,ZQ1=class{constructor(Y){this.callFunction=Y.callFunction,this.shouldInterrupt=Y.shouldInterrupt,this.loadModuleSource=Y.loadModuleSource,this.normalizeModule=Y.normalizeModule}},FG0=class{constructor(Y){this.contextCallbacks=new Map,this.runtimeCallbacks=new Map,this.suspendedCount=0,this.cToHostCallbacks=new ZQ1({callFunction:(X,Q,J,G,K,W)=>this.handleAsyncify(X,()=>{try{let Z=this.contextCallbacks.get(Q);if(!Z)throw Error(`QuickJSContext(ctx = ${Q}) not found for C function call "${W}"`);return Z.callFunction(Q,J,G,K,W)}catch(Z){return console.error("[C to host error: returning null]",Z),0}}),shouldInterrupt:(X,Q)=>this.handleAsyncify(X,()=>{try{let J=this.runtimeCallbacks.get(Q);if(!J)throw Error(`QuickJSRuntime(rt = ${Q}) not found for C interrupt`);return J.shouldInterrupt(Q)}catch(J){return console.error("[C to host interrupt: returning error]",J),1}}),loadModuleSource:(X,Q,J,G)=>this.handleAsyncify(X,()=>{try{let K=this.runtimeCallbacks.get(Q);if(!K)throw Error(`QuickJSRuntime(rt = ${Q}) not found for C module loader`);let W=K.loadModuleSource;if(!W)throw Error(`QuickJSRuntime(rt = ${Q}) does not support module loading`);return W(Q,J,G)}catch(K){return console.error("[C to host module loader error: returning null]",K),0}}),normalizeModule:(X,Q,J,G,K)=>this.handleAsyncify(X,()=>{try{let W=this.runtimeCallbacks.get(Q);if(!W)throw Error(`QuickJSRuntime(rt = ${Q}) not found for C module loader`);let Z=W.normalizeModule;if(!Z)throw Error(`QuickJSRuntime(rt = ${Q}) does not support module loading`);return Z(Q,J,G,K)}catch(W){return console.error("[C to host module loader error: returning null]",W),0}})}),this.module=Y,this.module.callbacks=this.cToHostCallbacks}setRuntimeCallbacks(Y,X){this.runtimeCallbacks.set(Y,X)}deleteRuntime(Y){this.runtimeCallbacks.delete(Y)}setContextCallbacks(Y,X){this.contextCallbacks.set(Y,X)}deleteContext(Y){this.contextCallbacks.delete(Y)}handleAsyncify(Y,X){if(Y)return Y.handleSleep((J)=>{try{let G=X();if(!(G instanceof Promise)){tD("asyncify.handleSleep: not suspending:",G),J(G);return}if(this.suspended)throw new UO6(`Already suspended at: ${this.suspended.stack}
|
|
1174
1174
|
Attempted to suspend at:`);this.suspended=new DO6(`(${this.suspendedCount++})`),tD("asyncify.handleSleep: suspending:",this.suspended),G.then((K)=>{this.suspended=void 0,tD("asyncify.handleSleep: resolved:",K),J(K)},(K)=>{tD("asyncify.handleSleep: rejected:",K),console.error("QuickJS: cannot handle error in suspended function",K),this.suspended=void 0})}catch(G){throw tD("asyncify.handleSleep: error:",G),this.suspended=void 0,G}});let Q=X();if(Q instanceof Promise)throw Error("Promise return value not supported in non-asyncify context.");return Q}},qG0=class{constructor(Y,X){this.module=Y,this.ffi=X,this.callbacks=new FG0(Y)}newRuntime(Y={}){let X=new CX(this.ffi.QTS_NewRuntime(),void 0,(J)=>{this.callbacks.deleteRuntime(J),this.ffi.QTS_FreeRuntime(J)}),Q=new jO6({module:this.module,callbacks:this.callbacks,ffi:this.ffi,rt:X});return VG0(Q,Y),Y.moduleLoader&&Q.setModuleLoader(Y.moduleLoader),Q}newContext(Y={}){let X=this.newRuntime(),Q=X.newContext({...Y,ownedLifetimes:JQ1(X,Y.ownedLifetimes)});return X.context=Q,Q}evalCode(Y,X={}){return xG.withScope((Q)=>{let J=Q.manage(this.newContext());$G0(J.runtime,X);let G=J.evalCode(Y,"eval.js");if(X.memoryLimitBytes!==void 0&&J.runtime.setMemoryLimit(-1),G.error)throw J.dump(Q.manage(G.error));return J.dump(Q.manage(G.value))})}getWasmMemory(){let Y=this.module.quickjsEmscriptenInit?.(()=>{})?.getWasmMemory?.();if(!Y)throw Error("Variant does not support getting WebAssembly.Memory");return Y}getFFI(){return this.ffi}};var zG0=S(()=>{rx();rx();oX1=Object.defineProperty;qO6={};sX1(qO6,{QuickJSAsyncifyError:()=>UO6,QuickJSAsyncifySuspended:()=>DO6,QuickJSEmptyGetOwnPropertyNames:()=>MO6,QuickJSEmscriptenModuleError:()=>NO6,QuickJSMemoryLeakDetected:()=>OO6,QuickJSNotImplemented:()=>BO6,QuickJSPromisePending:()=>wO6,QuickJSUnknownIntrinsic:()=>LO6,QuickJSUnwrapError:()=>YG0,QuickJSUseAfterFree:()=>XG0,QuickJSWrongOwner:()=>zO6});YG0=class extends Error{constructor(Y,X){let Q=typeof Y=="object"&&Y&&"message"in Y?String(Y.message):String(Y);super(Q);this.cause=Y,this.context=X,this.name="QuickJSUnwrapError"}},zO6=class extends Error{constructor(){super(...arguments);this.name="QuickJSWrongOwner"}},XG0=class extends Error{constructor(){super(...arguments);this.name="QuickJSUseAfterFree"}},BO6=class extends Error{constructor(){super(...arguments);this.name="QuickJSNotImplemented"}},UO6=class extends Error{constructor(){super(...arguments);this.name="QuickJSAsyncifyError"}},DO6=class extends Error{constructor(){super(...arguments);this.name="QuickJSAsyncifySuspended"}},OO6=class extends Error{constructor(){super(...arguments);this.name="QuickJSMemoryLeakDetected"}},NO6=class extends Error{constructor(){super(...arguments);this.name="QuickJSEmscriptenModuleError"}},LO6=class extends TypeError{constructor(){super(...arguments);this.name="QuickJSUnknownIntrinsic"}},wO6=class extends Error{constructor(){super(...arguments);this.name="QuickJSPromisePending"}},MO6=class extends Error{constructor(){super(...arguments);this.name="QuickJSEmptyGetOwnPropertyNames"}};WG0=AO6;WG0.of=tX1;FK=class{[Symbol.dispose](){return this.dispose()}},QG0=Symbol.dispose??Symbol.for("Symbol.dispose"),$O6=FK.prototype;$O6[QG0]||($O6[QG0]=function(){return this.dispose()});CX=class Y extends FK{constructor(X,Q,J,G){super();this._value=X,this.copier=Q,this.disposer=J,this._owner=G,this._alive=!0,this._constructorStack=GG0?Error("Lifetime constructed").stack:void 0}get alive(){return this._alive}get value(){return this.assertAlive(),this._value}get owner(){return this._owner}get dupable(){return!!this.copier}dup(){if(this.assertAlive(),!this.copier)throw Error("Non-dupable lifetime");return new Y(this.copier(this._value),this.copier,this.disposer,this._owner)}consume(X){this.assertAlive();let Q=X(this);return this.dispose(),Q}map(X){return this.assertAlive(),X(this)}tap(X){return X(this),this}dispose(){this.assertAlive(),this.disposer&&this.disposer(this._value),this._alive=!1}assertAlive(){if(!this.alive)throw this._constructorStack?new XG0(`Lifetime not alive
|
|
1175
1175
|
${this._constructorStack}
|
|
1176
|
-
Lifetime used`):new XG0("Lifetime not alive")}},u3=class extends CX{constructor(Y,X){super(Y,void 0,void 0,X)}get dupable(){return!0}dup(){return this}dispose(){}},JG0=class extends CX{constructor(Y,X,Q,J){super(Y,X,Q,J)}dispose(){this._alive=!1}};xG=class Y extends FK{constructor(){super(...arguments);this._disposables=new CX(new Set),this.manage=(X)=>(this._disposables.value.add(X),X)}static withScope(X){let Q=new Y,J;try{return X(Q)}catch(G){throw J=G,G}finally{e50(Q,J)}}static withScopeMaybeAsync(X,Q){return eX1(void 0,function*(J){let G=new Y,K;try{return yield*J.of(Q.call(X,J,G))}catch(W){throw K=W,W}finally{e50(G,K)}})}static async withScopeAsync(X){let Q=new Y,J;try{return await X(Q)}catch(G){throw J=G,G}finally{e50(Q,J)}}get alive(){return this._disposables.alive}dispose(){let X=Array.from(this._disposables.value.values()).reverse();for(let Q of X)Q.alive&&Q.dispose();this._disposables.dispose()}};KG0=class Y extends FK{static success(X){return new PO6(X)}static fail(X,Q){return new EO6(X,Q)}static is(X){return X instanceof Y}},PO6=class extends KG0{constructor(Y){super();this.value=Y}get alive(){return ox(this.value)?this.value.alive:!0}dispose(){ox(this.value)&&this.value.dispose()}unwrap(){return this.value}unwrapOr(Y){return this.value}},EO6=class extends KG0{constructor(Y,X){super();this.error=Y,this.onUnwrap=X}get alive(){return ox(this.error)?this.error.alive:!0}dispose(){ox(this.error)&&this.error.dispose()}unwrap(){throw this.onUnwrap(this),this.error}unwrapOr(Y){return Y}},Jq=KG0,CO6=class extends FK{constructor(Y){super();this.resolve=(X)=>{this.resolveHandle.alive&&(this.context.unwrapResult(this.context.callFunction(this.resolveHandle,this.context.undefined,X||this.context.undefined)).dispose(),this.disposeResolvers(),this.onSettled())},this.reject=(X)=>{this.rejectHandle.alive&&(this.context.unwrapResult(this.context.callFunction(this.rejectHandle,this.context.undefined,X||this.context.undefined)).dispose(),this.disposeResolvers(),this.onSettled())},this.dispose=()=>{this.handle.alive&&this.handle.dispose(),this.disposeResolvers()},this.context=Y.context,this.owner=Y.context.runtime,this.handle=Y.promiseHandle,this.settled=new Promise((X)=>{this.onSettled=X}),this.resolveHandle=Y.resolveHandle,this.rejectHandle=Y.rejectHandle}get alive(){return this.handle.alive||this.resolveHandle.alive||this.rejectHandle.alive}disposeResolvers(){this.resolveHandle.alive&&this.resolveHandle.dispose(),this.rejectHandle.alive&&this.rejectHandle.dispose()}},F$8=Symbol("Unstable"),HG0=Object.freeze({BaseObjects:!0,Date:!0,Eval:!0,StringNormalize:!0,RegExp:!0,JSON:!0,Proxy:!0,MapSet:!0,TypedArrays:!0,Promise:!0});GQ1=class extends FK{constructor(Y,X){super();this.handle=Y,this.context=X,this._isDone=!1,this.owner=X.runtime}[Symbol.iterator](){return this}next(Y){if(!this.alive||this._isDone)return{done:!0,value:void 0};let X=this._next??(this._next=this.context.getProp(this.handle,"next"));return this.callIteratorMethod(X,Y)}return(Y){if(!this.alive)return{done:!0,value:void 0};let X=this.context.getProp(this.handle,"return");if(X===this.context.undefined&&Y===void 0)return this.dispose(),{done:!0,value:void 0};let Q=this.callIteratorMethod(X,Y);return X.dispose(),this.dispose(),Q}throw(Y){if(!this.alive)return{done:!0,value:void 0};let X=Y instanceof CX?Y:this.context.newError(Y),Q=this.context.getProp(this.handle,"throw"),J=this.callIteratorMethod(Q,Y);return X.alive&&X.dispose(),Q.dispose(),this.dispose(),J}get alive(){return this.handle.alive}dispose(){this._isDone=!0,this.handle.dispose(),this._next?.dispose()}callIteratorMethod(Y,X){let Q=X?this.context.callFunction(Y,this.handle,X):this.context.callFunction(Y,this.handle);if(Q.error)return this.dispose(),{value:Q};let J=this.context.getProp(Q.value,"done").consume((K)=>this.context.dump(K));if(J)return Q.value.dispose(),this.dispose(),{done:J,value:void 0};let G=this.context.getProp(Q.value,"value");return Q.value.dispose(),{value:Jq.success(G),done:J}}},WQ1=class extends IO6{constructor(Y){super(Y.module);this.scope=new xG,this.copyJSValue=(X)=>this.ffi.QTS_DupValuePointer(this.ctx.value,X),this.freeJSValue=(X)=>{this.ffi.QTS_FreeValuePointer(this.ctx.value,X)},Y.ownedLifetimes?.forEach((X)=>this.scope.manage(X)),this.owner=Y.owner,this.module=Y.module,this.ffi=Y.ffi,this.rt=Y.rt,this.ctx=this.scope.manage(Y.ctx)}get alive(){return this.scope.alive}dispose(){return this.scope.dispose()}[Symbol.dispose](){return this.dispose()}manage(Y){return this.scope.manage(Y)}consumeJSCharPointer(Y){let X=this.module.UTF8ToString(Y);return this.ffi.QTS_FreeCString(this.ctx.value,Y),X}heapValueHandle(Y){return new CX(Y,this.copyJSValue,this.freeJSValue,this.owner)}staticHeapValueHandle(Y){return this.manage(this.heapValueHandle(Y)),new u3(Y,this.owner)}},RO6=class extends FK{constructor(Y){super();this._undefined=void 0,this._null=void 0,this._false=void 0,this._true=void 0,this._global=void 0,this._BigInt=void 0,this._Symbol=void 0,this._SymbolIterator=void 0,this._SymbolAsyncIterator=void 0,this.fnNextId=-32768,this.fnMaps=new Map,this.cToHostCallbacks={callFunction:(X,Q,J,G,K)=>{if(X!==this.ctx.value)throw Error("QuickJSContext instance received C -> JS call with mismatched ctx");let W=this.getFunction(K);if(!W)throw Error(`QuickJSContext had no callback with id ${K}`);return xG.withScopeMaybeAsync(this,function*(Z,H){let F=H.manage(new JG0(Q,this.memory.copyJSValue,this.memory.freeJSValue,this.runtime)),V=Array(J);for(let $=0;$<J;$++){let q=this.ffi.QTS_ArgvGetJSValueConstPointer(G,$);V[$]=H.manage(new JG0(q,this.memory.copyJSValue,this.memory.freeJSValue,this.runtime))}try{let $=yield*Z(W.apply(F,V));if($){if("error"in $&&$.error)throw this.runtime.debugLog("throw error",$.error),$.error;let q=H.manage($ instanceof CX?$:$.value);return this.ffi.QTS_DupValuePointer(this.ctx.value,q.value)}return 0}catch($){return this.errorToHandle($).consume((q)=>this.ffi.QTS_Throw(this.ctx.value,q.value))}})}},this.runtime=Y.runtime,this.module=Y.module,this.ffi=Y.ffi,this.rt=Y.rt,this.ctx=Y.ctx,this.memory=new WQ1({...Y,owner:this.runtime}),Y.callbacks.setContextCallbacks(this.ctx.value,this.cToHostCallbacks),this.dump=this.dump.bind(this),this.getString=this.getString.bind(this),this.getNumber=this.getNumber.bind(this),this.resolvePromise=this.resolvePromise.bind(this),this.uint32Out=this.memory.manage(this.memory.newTypedArray(Uint32Array,1))}get alive(){return this.memory.alive}dispose(){this.memory.dispose()}get undefined(){if(this._undefined)return this._undefined;let Y=this.ffi.QTS_GetUndefined();return this._undefined=new u3(Y)}get null(){if(this._null)return this._null;let Y=this.ffi.QTS_GetNull();return this._null=new u3(Y)}get true(){if(this._true)return this._true;let Y=this.ffi.QTS_GetTrue();return this._true=new u3(Y)}get false(){if(this._false)return this._false;let Y=this.ffi.QTS_GetFalse();return this._false=new u3(Y)}get global(){if(this._global)return this._global;let Y=this.ffi.QTS_GetGlobalObject(this.ctx.value);return this._global=this.memory.staticHeapValueHandle(Y),this._global}newNumber(Y){return this.memory.heapValueHandle(this.ffi.QTS_NewFloat64(this.ctx.value,Y))}newString(Y){let X=this.memory.newHeapCharPointer(Y).consume((Q)=>this.ffi.QTS_NewString(this.ctx.value,Q.value.ptr));return this.memory.heapValueHandle(X)}newUniqueSymbol(Y){let X=(typeof Y=="symbol"?Y.description:Y)??"",Q=this.memory.newHeapCharPointer(X).consume((J)=>this.ffi.QTS_NewSymbol(this.ctx.value,J.value.ptr,0));return this.memory.heapValueHandle(Q)}newSymbolFor(Y){let X=(typeof Y=="symbol"?Y.description:Y)??"",Q=this.memory.newHeapCharPointer(X).consume((J)=>this.ffi.QTS_NewSymbol(this.ctx.value,J.value.ptr,1));return this.memory.heapValueHandle(Q)}getWellKnownSymbol(Y){return this._Symbol??(this._Symbol=this.memory.manage(this.getProp(this.global,"Symbol"))),this.getProp(this._Symbol,Y)}newBigInt(Y){if(!this._BigInt){let J=this.getProp(this.global,"BigInt");this.memory.manage(J),this._BigInt=new u3(J.value,this.runtime)}let X=this._BigInt,Q=String(Y);return this.newString(Q).consume((J)=>this.unwrapResult(this.callFunction(X,this.undefined,J)))}newObject(Y){Y&&this.runtime.assertOwned(Y);let X=Y?this.ffi.QTS_NewObjectProto(this.ctx.value,Y.value):this.ffi.QTS_NewObject(this.ctx.value);return this.memory.heapValueHandle(X)}newArray(){let Y=this.ffi.QTS_NewArray(this.ctx.value);return this.memory.heapValueHandle(Y)}newArrayBuffer(Y){let X=new Uint8Array(Y),Q=this.memory.newHeapBufferPointer(X),J=this.ffi.QTS_NewArrayBuffer(this.ctx.value,Q.value.pointer,X.length);return this.memory.heapValueHandle(J)}newPromise(Y){let X=xG.withScope((Q)=>{let J=Q.manage(this.memory.newMutablePointerArray(2)),G=this.ffi.QTS_NewPromiseCapability(this.ctx.value,J.value.ptr),K=this.memory.heapValueHandle(G),[W,Z]=Array.from(J.value.typedArray).map((H)=>this.memory.heapValueHandle(H));return new CO6({context:this,promiseHandle:K,resolveHandle:W,rejectHandle:Z})});return Y&&typeof Y=="function"&&(Y=new Promise(Y)),Y&&Promise.resolve(Y).then(X.resolve,(Q)=>Q instanceof CX?X.reject(Q):this.newError(Q).consume(X.reject)),X}newFunction(Y,X){let Q=++this.fnNextId;return this.setFunction(Q,X),this.memory.heapValueHandle(this.ffi.QTS_NewFunction(this.ctx.value,Q,Y))}newError(Y){let X=this.memory.heapValueHandle(this.ffi.QTS_NewError(this.ctx.value));return Y&&typeof Y=="object"?(Y.name!==void 0&&this.newString(Y.name).consume((Q)=>this.setProp(X,"name",Q)),Y.message!==void 0&&this.newString(Y.message).consume((Q)=>this.setProp(X,"message",Q))):typeof Y=="string"?this.newString(Y).consume((Q)=>this.setProp(X,"message",Q)):Y!==void 0&&this.newString(String(Y)).consume((Q)=>this.setProp(X,"message",Q)),X}typeof(Y){return this.runtime.assertOwned(Y),this.memory.consumeHeapCharPointer(this.ffi.QTS_Typeof(this.ctx.value,Y.value))}getNumber(Y){return this.runtime.assertOwned(Y),this.ffi.QTS_GetFloat64(this.ctx.value,Y.value)}getString(Y){return this.runtime.assertOwned(Y),this.memory.consumeJSCharPointer(this.ffi.QTS_GetString(this.ctx.value,Y.value))}getSymbol(Y){this.runtime.assertOwned(Y);let X=this.memory.consumeJSCharPointer(this.ffi.QTS_GetSymbolDescriptionOrKey(this.ctx.value,Y.value));return this.ffi.QTS_IsGlobalSymbol(this.ctx.value,Y.value)?Symbol.for(X):Symbol(X)}getBigInt(Y){this.runtime.assertOwned(Y);let X=this.getString(Y);return BigInt(X)}getArrayBuffer(Y){this.runtime.assertOwned(Y);let X=this.ffi.QTS_GetArrayBufferLength(this.ctx.value,Y.value),Q=this.ffi.QTS_GetArrayBuffer(this.ctx.value,Y.value);if(!Q)throw Error("Couldn't allocate memory to get ArrayBuffer");return new CX(this.module.HEAPU8.subarray(Q,Q+X),void 0,()=>this.module._free(Q))}getPromiseState(Y){this.runtime.assertOwned(Y);let X=this.ffi.QTS_PromiseState(this.ctx.value,Y.value);if(X<0)return{type:"fulfilled",value:Y,notAPromise:!0};if(X===ax.Pending)return{type:"pending",get error(){return new wO6("Cannot unwrap a pending promise")}};let Q=this.ffi.QTS_PromiseResult(this.ctx.value,Y.value),J=this.memory.heapValueHandle(Q);if(X===ax.Fulfilled)return{type:"fulfilled",value:J};if(X===ax.Rejected)return{type:"rejected",error:J};throw J.dispose(),Error(`Unknown JSPromiseStateEnum: ${X}`)}resolvePromise(Y){this.runtime.assertOwned(Y);let X=xG.withScope((Q)=>{let J=Q.manage(this.getProp(this.global,"Promise")),G=Q.manage(this.getProp(J,"resolve"));return this.callFunction(G,J,Y)});return X.error?Promise.resolve(X):new Promise((Q)=>{xG.withScope((J)=>{let G=J.manage(this.newFunction("resolve",(H)=>{Q(this.success(H&&H.dup()))})),K=J.manage(this.newFunction("reject",(H)=>{Q(this.fail(H&&H.dup()))})),W=J.manage(X.value),Z=J.manage(this.getProp(W,"then"));this.callFunction(Z,W,G,K).unwrap().dispose()})})}isEqual(Y,X,Q=J2.IsStrictlyEqual){if(Y===X)return!0;this.runtime.assertOwned(Y),this.runtime.assertOwned(X);let J=this.ffi.QTS_IsEqual(this.ctx.value,Y.value,X.value,Q);if(J===-1)throw new BO6("WASM variant does not expose equality");return!!J}eq(Y,X){return this.isEqual(Y,X,J2.IsStrictlyEqual)}sameValue(Y,X){return this.isEqual(Y,X,J2.IsSameValue)}sameValueZero(Y,X){return this.isEqual(Y,X,J2.IsSameValueZero)}getProp(Y,X){this.runtime.assertOwned(Y);let Q;return typeof X=="number"&&X>=0?Q=this.ffi.QTS_GetPropNumber(this.ctx.value,Y.value,X):Q=this.borrowPropertyKey(X).consume((J)=>this.ffi.QTS_GetProp(this.ctx.value,Y.value,J.value)),this.memory.heapValueHandle(Q)}getLength(Y){if(this.runtime.assertOwned(Y),!(this.ffi.QTS_GetLength(this.ctx.value,this.uint32Out.value.ptr,Y.value)<0))return this.uint32Out.value.typedArray[0]}getOwnPropertyNames(Y,X={strings:!0,numbersAsStrings:!0}){this.runtime.assertOwned(Y),Y.value;let Q=QQ1(X);if(Q===0)throw new MO6("No options set, will return an empty array");return xG.withScope((J)=>{let G=J.manage(this.memory.newMutablePointerArray(1)),K=this.ffi.QTS_GetOwnPropertyNames(this.ctx.value,G.value.ptr,this.uint32Out.value.ptr,Y.value,Q);if(K)return this.fail(this.memory.heapValueHandle(K));let W=this.uint32Out.value.typedArray[0],Z=G.value.typedArray[0],H=new Uint32Array(this.module.HEAP8.buffer,Z,W),F=Array.from(H).map((V)=>this.memory.heapValueHandle(V));return this.ffi.QTS_FreeVoidPointer(this.ctx.value,Z),this.success(TO6(F))})}getIterator(Y){let X=this._SymbolIterator??(this._SymbolIterator=this.memory.manage(this.getWellKnownSymbol("iterator")));return xG.withScope((Q)=>{let J=Q.manage(this.getProp(Y,X)),G=this.callFunction(J,Y);return G.error?G:this.success(new GQ1(G.value,this))})}setProp(Y,X,Q){this.runtime.assertOwned(Y),this.borrowPropertyKey(X).consume((J)=>this.ffi.QTS_SetProp(this.ctx.value,Y.value,J.value,Q.value))}defineProp(Y,X,Q){this.runtime.assertOwned(Y),xG.withScope((J)=>{let G=J.manage(this.borrowPropertyKey(X)),K=Q.value||this.undefined,W=!!Q.configurable,Z=!!Q.enumerable,H=!!Q.value,F=Q.get?J.manage(this.newFunction(Q.get.name,Q.get)):this.undefined,V=Q.set?J.manage(this.newFunction(Q.set.name,Q.set)):this.undefined;this.ffi.QTS_DefineProp(this.ctx.value,Y.value,G.value,K.value,F.value,V.value,W,Z,H)})}callFunction(Y,X,...Q){this.runtime.assertOwned(Y);let J,G=Q[0];G===void 0||Array.isArray(G)?J=G??[]:J=Q;let K=this.memory.toPointerArray(J).consume((Z)=>this.ffi.QTS_Call(this.ctx.value,Y.value,X.value,J.length,Z.value)),W=this.ffi.QTS_ResolveException(this.ctx.value,K);return W?(this.ffi.QTS_FreeValuePointer(this.ctx.value,K),this.fail(this.memory.heapValueHandle(W))):this.success(this.memory.heapValueHandle(K))}callMethod(Y,X,Q=[]){return this.getProp(Y,X).consume((J)=>this.callFunction(J,Y,Q))}evalCode(Y,X="eval.js",Q){let J=Q===void 0?1:0,G=XQ1(Q),K=this.memory.newHeapCharPointer(Y).consume((Z)=>this.ffi.QTS_Eval(this.ctx.value,Z.value.ptr,Z.value.strlen,X,J,G)),W=this.ffi.QTS_ResolveException(this.ctx.value,K);return W?(this.ffi.QTS_FreeValuePointer(this.ctx.value,K),this.fail(this.memory.heapValueHandle(W))):this.success(this.memory.heapValueHandle(K))}throw(Y){return this.errorToHandle(Y).consume((X)=>this.ffi.QTS_Throw(this.ctx.value,X.value))}borrowPropertyKey(Y){return typeof Y=="number"?this.newNumber(Y):typeof Y=="string"?this.newString(Y):new u3(Y.value,this.runtime)}getMemory(Y){if(Y===this.rt.value)return this.memory;throw Error("Private API. Cannot get memory from a different runtime")}dump(Y){this.runtime.assertOwned(Y);let X=this.typeof(Y);if(X==="string")return this.getString(Y);if(X==="number")return this.getNumber(Y);if(X==="bigint")return this.getBigInt(Y);if(X==="undefined")return;if(X==="symbol")return this.getSymbol(Y);let Q=this.getPromiseState(Y);if(Q.type==="fulfilled"&&!Q.notAPromise)return Y.dispose(),{type:Q.type,value:Q.value.consume(this.dump)};if(Q.type==="pending")return Y.dispose(),{type:Q.type};if(Q.type==="rejected")return Y.dispose(),{type:Q.type,error:Q.error.consume(this.dump)};let J=this.memory.consumeJSCharPointer(this.ffi.QTS_Dump(this.ctx.value,Y.value));try{return JSON.parse(J)}catch{return J}}unwrapResult(Y){if(Y.error){let X="context"in Y.error?Y.error.context:this,Q=Y.error.consume((J)=>this.dump(J));if(Q&&typeof Q=="object"&&typeof Q.message=="string"){let{message:J,name:G,stack:K,...W}=Q,Z=new YG0(Q,X);typeof G=="string"&&(Z.name=Q.name),Z.message=J;let H=Z.stack;throw typeof K=="string"&&(Z.stack=`${G}: ${J}
|
|
1176
|
+
Lifetime used`):new XG0("Lifetime not alive")}},u3=class extends CX{constructor(Y,X){super(Y,void 0,void 0,X)}get dupable(){return!0}dup(){return this}dispose(){}},JG0=class extends CX{constructor(Y,X,Q,J){super(Y,X,Q,J)}dispose(){this._alive=!1}};xG=class Y extends FK{constructor(){super(...arguments);this._disposables=new CX(new Set),this.manage=(X)=>(this._disposables.value.add(X),X)}static withScope(X){let Q=new Y,J;try{return X(Q)}catch(G){throw J=G,G}finally{e50(Q,J)}}static withScopeMaybeAsync(X,Q){return eX1(void 0,function*(J){let G=new Y,K;try{return yield*J.of(Q.call(X,J,G))}catch(W){throw K=W,W}finally{e50(G,K)}})}static async withScopeAsync(X){let Q=new Y,J;try{return await X(Q)}catch(G){throw J=G,G}finally{e50(Q,J)}}get alive(){return this._disposables.alive}dispose(){let X=Array.from(this._disposables.value.values()).reverse();for(let Q of X)Q.alive&&Q.dispose();this._disposables.dispose()}};KG0=class Y extends FK{static success(X){return new PO6(X)}static fail(X,Q){return new EO6(X,Q)}static is(X){return X instanceof Y}},PO6=class extends KG0{constructor(Y){super();this.value=Y}get alive(){return ox(this.value)?this.value.alive:!0}dispose(){ox(this.value)&&this.value.dispose()}unwrap(){return this.value}unwrapOr(Y){return this.value}},EO6=class extends KG0{constructor(Y,X){super();this.error=Y,this.onUnwrap=X}get alive(){return ox(this.error)?this.error.alive:!0}dispose(){ox(this.error)&&this.error.dispose()}unwrap(){throw this.onUnwrap(this),this.error}unwrapOr(Y){return Y}},Jq=KG0,CO6=class extends FK{constructor(Y){super();this.resolve=(X)=>{this.resolveHandle.alive&&(this.context.unwrapResult(this.context.callFunction(this.resolveHandle,this.context.undefined,X||this.context.undefined)).dispose(),this.disposeResolvers(),this.onSettled())},this.reject=(X)=>{this.rejectHandle.alive&&(this.context.unwrapResult(this.context.callFunction(this.rejectHandle,this.context.undefined,X||this.context.undefined)).dispose(),this.disposeResolvers(),this.onSettled())},this.dispose=()=>{this.handle.alive&&this.handle.dispose(),this.disposeResolvers()},this.context=Y.context,this.owner=Y.context.runtime,this.handle=Y.promiseHandle,this.settled=new Promise((X)=>{this.onSettled=X}),this.resolveHandle=Y.resolveHandle,this.rejectHandle=Y.rejectHandle}get alive(){return this.handle.alive||this.resolveHandle.alive||this.rejectHandle.alive}disposeResolvers(){this.resolveHandle.alive&&this.resolveHandle.dispose(),this.rejectHandle.alive&&this.rejectHandle.dispose()}},H$8=Symbol("Unstable"),HG0=Object.freeze({BaseObjects:!0,Date:!0,Eval:!0,StringNormalize:!0,RegExp:!0,JSON:!0,Proxy:!0,MapSet:!0,TypedArrays:!0,Promise:!0});GQ1=class extends FK{constructor(Y,X){super();this.handle=Y,this.context=X,this._isDone=!1,this.owner=X.runtime}[Symbol.iterator](){return this}next(Y){if(!this.alive||this._isDone)return{done:!0,value:void 0};let X=this._next??(this._next=this.context.getProp(this.handle,"next"));return this.callIteratorMethod(X,Y)}return(Y){if(!this.alive)return{done:!0,value:void 0};let X=this.context.getProp(this.handle,"return");if(X===this.context.undefined&&Y===void 0)return this.dispose(),{done:!0,value:void 0};let Q=this.callIteratorMethod(X,Y);return X.dispose(),this.dispose(),Q}throw(Y){if(!this.alive)return{done:!0,value:void 0};let X=Y instanceof CX?Y:this.context.newError(Y),Q=this.context.getProp(this.handle,"throw"),J=this.callIteratorMethod(Q,Y);return X.alive&&X.dispose(),Q.dispose(),this.dispose(),J}get alive(){return this.handle.alive}dispose(){this._isDone=!0,this.handle.dispose(),this._next?.dispose()}callIteratorMethod(Y,X){let Q=X?this.context.callFunction(Y,this.handle,X):this.context.callFunction(Y,this.handle);if(Q.error)return this.dispose(),{value:Q};let J=this.context.getProp(Q.value,"done").consume((K)=>this.context.dump(K));if(J)return Q.value.dispose(),this.dispose(),{done:J,value:void 0};let G=this.context.getProp(Q.value,"value");return Q.value.dispose(),{value:Jq.success(G),done:J}}},WQ1=class extends IO6{constructor(Y){super(Y.module);this.scope=new xG,this.copyJSValue=(X)=>this.ffi.QTS_DupValuePointer(this.ctx.value,X),this.freeJSValue=(X)=>{this.ffi.QTS_FreeValuePointer(this.ctx.value,X)},Y.ownedLifetimes?.forEach((X)=>this.scope.manage(X)),this.owner=Y.owner,this.module=Y.module,this.ffi=Y.ffi,this.rt=Y.rt,this.ctx=this.scope.manage(Y.ctx)}get alive(){return this.scope.alive}dispose(){return this.scope.dispose()}[Symbol.dispose](){return this.dispose()}manage(Y){return this.scope.manage(Y)}consumeJSCharPointer(Y){let X=this.module.UTF8ToString(Y);return this.ffi.QTS_FreeCString(this.ctx.value,Y),X}heapValueHandle(Y){return new CX(Y,this.copyJSValue,this.freeJSValue,this.owner)}staticHeapValueHandle(Y){return this.manage(this.heapValueHandle(Y)),new u3(Y,this.owner)}},RO6=class extends FK{constructor(Y){super();this._undefined=void 0,this._null=void 0,this._false=void 0,this._true=void 0,this._global=void 0,this._BigInt=void 0,this._Symbol=void 0,this._SymbolIterator=void 0,this._SymbolAsyncIterator=void 0,this.fnNextId=-32768,this.fnMaps=new Map,this.cToHostCallbacks={callFunction:(X,Q,J,G,K)=>{if(X!==this.ctx.value)throw Error("QuickJSContext instance received C -> JS call with mismatched ctx");let W=this.getFunction(K);if(!W)throw Error(`QuickJSContext had no callback with id ${K}`);return xG.withScopeMaybeAsync(this,function*(Z,H){let F=H.manage(new JG0(Q,this.memory.copyJSValue,this.memory.freeJSValue,this.runtime)),V=Array(J);for(let $=0;$<J;$++){let q=this.ffi.QTS_ArgvGetJSValueConstPointer(G,$);V[$]=H.manage(new JG0(q,this.memory.copyJSValue,this.memory.freeJSValue,this.runtime))}try{let $=yield*Z(W.apply(F,V));if($){if("error"in $&&$.error)throw this.runtime.debugLog("throw error",$.error),$.error;let q=H.manage($ instanceof CX?$:$.value);return this.ffi.QTS_DupValuePointer(this.ctx.value,q.value)}return 0}catch($){return this.errorToHandle($).consume((q)=>this.ffi.QTS_Throw(this.ctx.value,q.value))}})}},this.runtime=Y.runtime,this.module=Y.module,this.ffi=Y.ffi,this.rt=Y.rt,this.ctx=Y.ctx,this.memory=new WQ1({...Y,owner:this.runtime}),Y.callbacks.setContextCallbacks(this.ctx.value,this.cToHostCallbacks),this.dump=this.dump.bind(this),this.getString=this.getString.bind(this),this.getNumber=this.getNumber.bind(this),this.resolvePromise=this.resolvePromise.bind(this),this.uint32Out=this.memory.manage(this.memory.newTypedArray(Uint32Array,1))}get alive(){return this.memory.alive}dispose(){this.memory.dispose()}get undefined(){if(this._undefined)return this._undefined;let Y=this.ffi.QTS_GetUndefined();return this._undefined=new u3(Y)}get null(){if(this._null)return this._null;let Y=this.ffi.QTS_GetNull();return this._null=new u3(Y)}get true(){if(this._true)return this._true;let Y=this.ffi.QTS_GetTrue();return this._true=new u3(Y)}get false(){if(this._false)return this._false;let Y=this.ffi.QTS_GetFalse();return this._false=new u3(Y)}get global(){if(this._global)return this._global;let Y=this.ffi.QTS_GetGlobalObject(this.ctx.value);return this._global=this.memory.staticHeapValueHandle(Y),this._global}newNumber(Y){return this.memory.heapValueHandle(this.ffi.QTS_NewFloat64(this.ctx.value,Y))}newString(Y){let X=this.memory.newHeapCharPointer(Y).consume((Q)=>this.ffi.QTS_NewString(this.ctx.value,Q.value.ptr));return this.memory.heapValueHandle(X)}newUniqueSymbol(Y){let X=(typeof Y=="symbol"?Y.description:Y)??"",Q=this.memory.newHeapCharPointer(X).consume((J)=>this.ffi.QTS_NewSymbol(this.ctx.value,J.value.ptr,0));return this.memory.heapValueHandle(Q)}newSymbolFor(Y){let X=(typeof Y=="symbol"?Y.description:Y)??"",Q=this.memory.newHeapCharPointer(X).consume((J)=>this.ffi.QTS_NewSymbol(this.ctx.value,J.value.ptr,1));return this.memory.heapValueHandle(Q)}getWellKnownSymbol(Y){return this._Symbol??(this._Symbol=this.memory.manage(this.getProp(this.global,"Symbol"))),this.getProp(this._Symbol,Y)}newBigInt(Y){if(!this._BigInt){let J=this.getProp(this.global,"BigInt");this.memory.manage(J),this._BigInt=new u3(J.value,this.runtime)}let X=this._BigInt,Q=String(Y);return this.newString(Q).consume((J)=>this.unwrapResult(this.callFunction(X,this.undefined,J)))}newObject(Y){Y&&this.runtime.assertOwned(Y);let X=Y?this.ffi.QTS_NewObjectProto(this.ctx.value,Y.value):this.ffi.QTS_NewObject(this.ctx.value);return this.memory.heapValueHandle(X)}newArray(){let Y=this.ffi.QTS_NewArray(this.ctx.value);return this.memory.heapValueHandle(Y)}newArrayBuffer(Y){let X=new Uint8Array(Y),Q=this.memory.newHeapBufferPointer(X),J=this.ffi.QTS_NewArrayBuffer(this.ctx.value,Q.value.pointer,X.length);return this.memory.heapValueHandle(J)}newPromise(Y){let X=xG.withScope((Q)=>{let J=Q.manage(this.memory.newMutablePointerArray(2)),G=this.ffi.QTS_NewPromiseCapability(this.ctx.value,J.value.ptr),K=this.memory.heapValueHandle(G),[W,Z]=Array.from(J.value.typedArray).map((H)=>this.memory.heapValueHandle(H));return new CO6({context:this,promiseHandle:K,resolveHandle:W,rejectHandle:Z})});return Y&&typeof Y=="function"&&(Y=new Promise(Y)),Y&&Promise.resolve(Y).then(X.resolve,(Q)=>Q instanceof CX?X.reject(Q):this.newError(Q).consume(X.reject)),X}newFunction(Y,X){let Q=++this.fnNextId;return this.setFunction(Q,X),this.memory.heapValueHandle(this.ffi.QTS_NewFunction(this.ctx.value,Q,Y))}newError(Y){let X=this.memory.heapValueHandle(this.ffi.QTS_NewError(this.ctx.value));return Y&&typeof Y=="object"?(Y.name!==void 0&&this.newString(Y.name).consume((Q)=>this.setProp(X,"name",Q)),Y.message!==void 0&&this.newString(Y.message).consume((Q)=>this.setProp(X,"message",Q))):typeof Y=="string"?this.newString(Y).consume((Q)=>this.setProp(X,"message",Q)):Y!==void 0&&this.newString(String(Y)).consume((Q)=>this.setProp(X,"message",Q)),X}typeof(Y){return this.runtime.assertOwned(Y),this.memory.consumeHeapCharPointer(this.ffi.QTS_Typeof(this.ctx.value,Y.value))}getNumber(Y){return this.runtime.assertOwned(Y),this.ffi.QTS_GetFloat64(this.ctx.value,Y.value)}getString(Y){return this.runtime.assertOwned(Y),this.memory.consumeJSCharPointer(this.ffi.QTS_GetString(this.ctx.value,Y.value))}getSymbol(Y){this.runtime.assertOwned(Y);let X=this.memory.consumeJSCharPointer(this.ffi.QTS_GetSymbolDescriptionOrKey(this.ctx.value,Y.value));return this.ffi.QTS_IsGlobalSymbol(this.ctx.value,Y.value)?Symbol.for(X):Symbol(X)}getBigInt(Y){this.runtime.assertOwned(Y);let X=this.getString(Y);return BigInt(X)}getArrayBuffer(Y){this.runtime.assertOwned(Y);let X=this.ffi.QTS_GetArrayBufferLength(this.ctx.value,Y.value),Q=this.ffi.QTS_GetArrayBuffer(this.ctx.value,Y.value);if(!Q)throw Error("Couldn't allocate memory to get ArrayBuffer");return new CX(this.module.HEAPU8.subarray(Q,Q+X),void 0,()=>this.module._free(Q))}getPromiseState(Y){this.runtime.assertOwned(Y);let X=this.ffi.QTS_PromiseState(this.ctx.value,Y.value);if(X<0)return{type:"fulfilled",value:Y,notAPromise:!0};if(X===ax.Pending)return{type:"pending",get error(){return new wO6("Cannot unwrap a pending promise")}};let Q=this.ffi.QTS_PromiseResult(this.ctx.value,Y.value),J=this.memory.heapValueHandle(Q);if(X===ax.Fulfilled)return{type:"fulfilled",value:J};if(X===ax.Rejected)return{type:"rejected",error:J};throw J.dispose(),Error(`Unknown JSPromiseStateEnum: ${X}`)}resolvePromise(Y){this.runtime.assertOwned(Y);let X=xG.withScope((Q)=>{let J=Q.manage(this.getProp(this.global,"Promise")),G=Q.manage(this.getProp(J,"resolve"));return this.callFunction(G,J,Y)});return X.error?Promise.resolve(X):new Promise((Q)=>{xG.withScope((J)=>{let G=J.manage(this.newFunction("resolve",(H)=>{Q(this.success(H&&H.dup()))})),K=J.manage(this.newFunction("reject",(H)=>{Q(this.fail(H&&H.dup()))})),W=J.manage(X.value),Z=J.manage(this.getProp(W,"then"));this.callFunction(Z,W,G,K).unwrap().dispose()})})}isEqual(Y,X,Q=J2.IsStrictlyEqual){if(Y===X)return!0;this.runtime.assertOwned(Y),this.runtime.assertOwned(X);let J=this.ffi.QTS_IsEqual(this.ctx.value,Y.value,X.value,Q);if(J===-1)throw new BO6("WASM variant does not expose equality");return!!J}eq(Y,X){return this.isEqual(Y,X,J2.IsStrictlyEqual)}sameValue(Y,X){return this.isEqual(Y,X,J2.IsSameValue)}sameValueZero(Y,X){return this.isEqual(Y,X,J2.IsSameValueZero)}getProp(Y,X){this.runtime.assertOwned(Y);let Q;return typeof X=="number"&&X>=0?Q=this.ffi.QTS_GetPropNumber(this.ctx.value,Y.value,X):Q=this.borrowPropertyKey(X).consume((J)=>this.ffi.QTS_GetProp(this.ctx.value,Y.value,J.value)),this.memory.heapValueHandle(Q)}getLength(Y){if(this.runtime.assertOwned(Y),!(this.ffi.QTS_GetLength(this.ctx.value,this.uint32Out.value.ptr,Y.value)<0))return this.uint32Out.value.typedArray[0]}getOwnPropertyNames(Y,X={strings:!0,numbersAsStrings:!0}){this.runtime.assertOwned(Y),Y.value;let Q=QQ1(X);if(Q===0)throw new MO6("No options set, will return an empty array");return xG.withScope((J)=>{let G=J.manage(this.memory.newMutablePointerArray(1)),K=this.ffi.QTS_GetOwnPropertyNames(this.ctx.value,G.value.ptr,this.uint32Out.value.ptr,Y.value,Q);if(K)return this.fail(this.memory.heapValueHandle(K));let W=this.uint32Out.value.typedArray[0],Z=G.value.typedArray[0],H=new Uint32Array(this.module.HEAP8.buffer,Z,W),F=Array.from(H).map((V)=>this.memory.heapValueHandle(V));return this.ffi.QTS_FreeVoidPointer(this.ctx.value,Z),this.success(TO6(F))})}getIterator(Y){let X=this._SymbolIterator??(this._SymbolIterator=this.memory.manage(this.getWellKnownSymbol("iterator")));return xG.withScope((Q)=>{let J=Q.manage(this.getProp(Y,X)),G=this.callFunction(J,Y);return G.error?G:this.success(new GQ1(G.value,this))})}setProp(Y,X,Q){this.runtime.assertOwned(Y),this.borrowPropertyKey(X).consume((J)=>this.ffi.QTS_SetProp(this.ctx.value,Y.value,J.value,Q.value))}defineProp(Y,X,Q){this.runtime.assertOwned(Y),xG.withScope((J)=>{let G=J.manage(this.borrowPropertyKey(X)),K=Q.value||this.undefined,W=!!Q.configurable,Z=!!Q.enumerable,H=!!Q.value,F=Q.get?J.manage(this.newFunction(Q.get.name,Q.get)):this.undefined,V=Q.set?J.manage(this.newFunction(Q.set.name,Q.set)):this.undefined;this.ffi.QTS_DefineProp(this.ctx.value,Y.value,G.value,K.value,F.value,V.value,W,Z,H)})}callFunction(Y,X,...Q){this.runtime.assertOwned(Y);let J,G=Q[0];G===void 0||Array.isArray(G)?J=G??[]:J=Q;let K=this.memory.toPointerArray(J).consume((Z)=>this.ffi.QTS_Call(this.ctx.value,Y.value,X.value,J.length,Z.value)),W=this.ffi.QTS_ResolveException(this.ctx.value,K);return W?(this.ffi.QTS_FreeValuePointer(this.ctx.value,K),this.fail(this.memory.heapValueHandle(W))):this.success(this.memory.heapValueHandle(K))}callMethod(Y,X,Q=[]){return this.getProp(Y,X).consume((J)=>this.callFunction(J,Y,Q))}evalCode(Y,X="eval.js",Q){let J=Q===void 0?1:0,G=XQ1(Q),K=this.memory.newHeapCharPointer(Y).consume((Z)=>this.ffi.QTS_Eval(this.ctx.value,Z.value.ptr,Z.value.strlen,X,J,G)),W=this.ffi.QTS_ResolveException(this.ctx.value,K);return W?(this.ffi.QTS_FreeValuePointer(this.ctx.value,K),this.fail(this.memory.heapValueHandle(W))):this.success(this.memory.heapValueHandle(K))}throw(Y){return this.errorToHandle(Y).consume((X)=>this.ffi.QTS_Throw(this.ctx.value,X.value))}borrowPropertyKey(Y){return typeof Y=="number"?this.newNumber(Y):typeof Y=="string"?this.newString(Y):new u3(Y.value,this.runtime)}getMemory(Y){if(Y===this.rt.value)return this.memory;throw Error("Private API. Cannot get memory from a different runtime")}dump(Y){this.runtime.assertOwned(Y);let X=this.typeof(Y);if(X==="string")return this.getString(Y);if(X==="number")return this.getNumber(Y);if(X==="bigint")return this.getBigInt(Y);if(X==="undefined")return;if(X==="symbol")return this.getSymbol(Y);let Q=this.getPromiseState(Y);if(Q.type==="fulfilled"&&!Q.notAPromise)return Y.dispose(),{type:Q.type,value:Q.value.consume(this.dump)};if(Q.type==="pending")return Y.dispose(),{type:Q.type};if(Q.type==="rejected")return Y.dispose(),{type:Q.type,error:Q.error.consume(this.dump)};let J=this.memory.consumeJSCharPointer(this.ffi.QTS_Dump(this.ctx.value,Y.value));try{return JSON.parse(J)}catch{return J}}unwrapResult(Y){if(Y.error){let X="context"in Y.error?Y.error.context:this,Q=Y.error.consume((J)=>this.dump(J));if(Q&&typeof Q=="object"&&typeof Q.message=="string"){let{message:J,name:G,stack:K,...W}=Q,Z=new YG0(Q,X);typeof G=="string"&&(Z.name=Q.name),Z.message=J;let H=Z.stack;throw typeof K=="string"&&(Z.stack=`${G}: ${J}
|
|
1177
1177
|
${Q.stack}Host: ${H}`),Object.assign(Z,W),Z}throw new YG0(Q)}return Y.value}[Symbol.for("nodejs.util.inspect.custom")](){return this.alive?`${this.constructor.name} { ctx: ${this.ctx.value} rt: ${this.rt.value} }`:`${this.constructor.name} { disposed }`}getFunction(Y){let X=Y>>8,Q=this.fnMaps.get(X);if(Q)return Q.get(Y)}setFunction(Y,X){let Q=Y>>8,J=this.fnMaps.get(Q);return J||(J=new Map,this.fnMaps.set(Q,J)),J.set(Y,X)}errorToHandle(Y){return Y instanceof CX?Y:this.newError(Y)}encodeBinaryJSON(Y){let X=this.ffi.QTS_bjson_encode(this.ctx.value,Y.value);return this.memory.heapValueHandle(X)}decodeBinaryJSON(Y){let X=this.ffi.QTS_bjson_decode(this.ctx.value,Y.value);return this.memory.heapValueHandle(X)}success(Y){return Jq.success(Y)}fail(Y){return Jq.fail(Y,(X)=>this.unwrapResult(X))}},jO6=class extends FK{constructor(Y){super();this.scope=new xG,this.contextMap=new Map,this._debugMode=!1,this.cToHostCallbacks={shouldInterrupt:(X)=>{if(X!==this.rt.value)throw Error("QuickJSContext instance received C -> JS interrupt with mismatched rt");let Q=this.interruptHandler;if(!Q)throw Error("QuickJSContext had no interrupt handler");return Q(this)?1:0},loadModuleSource:VO6(this,function*(X,Q,J,G){let K=this.moduleLoader;if(!K)throw Error("Runtime has no module loader");if(Q!==this.rt.value)throw Error("Runtime pointer mismatch");let W=this.contextMap.get(J)??this.newContext({contextPointer:J});try{let Z=yield*X(K(G,W));if(typeof Z=="object"&&"error"in Z&&Z.error)throw this.debugLog("cToHostLoadModule: loader returned error",Z.error),Z.error;let H=typeof Z=="string"?Z:("value"in Z)?Z.value:Z;return this.memory.newHeapCharPointer(H).value.ptr}catch(Z){return this.debugLog("cToHostLoadModule: caught error",Z),W.throw(Z),0}}),normalizeModule:VO6(this,function*(X,Q,J,G,K){let W=this.moduleNormalizer;if(!W)throw Error("Runtime has no module normalizer");if(Q!==this.rt.value)throw Error("Runtime pointer mismatch");let Z=this.contextMap.get(J)??this.newContext({contextPointer:J});try{let H=yield*X(W(G,K,Z));if(typeof H=="object"&&"error"in H&&H.error)throw this.debugLog("cToHostNormalizeModule: normalizer returned error",H.error),H.error;let F=typeof H=="string"?H:H.value;return Z.getMemory(this.rt.value).newHeapCharPointer(F).value.ptr}catch(H){return this.debugLog("normalizeModule: caught error",H),Z.throw(H),0}})},Y.ownedLifetimes?.forEach((X)=>this.scope.manage(X)),this.module=Y.module,this.memory=new IO6(this.module),this.ffi=Y.ffi,this.rt=Y.rt,this.callbacks=Y.callbacks,this.scope.manage(this.rt),this.callbacks.setRuntimeCallbacks(this.rt.value,this.cToHostCallbacks),this.executePendingJobs=this.executePendingJobs.bind(this),GG0&&this.setDebugMode(!0)}get alive(){return this.scope.alive}dispose(){return this.scope.dispose()}newContext(Y={}){let X=YQ1(Y.intrinsics),Q=new CX(Y.contextPointer||this.ffi.QTS_NewContext(this.rt.value,X),void 0,(G)=>{this.contextMap.delete(G),this.callbacks.deleteContext(G),this.ffi.QTS_FreeContext(G)}),J=new RO6({module:this.module,ctx:Q,ffi:this.ffi,rt:this.rt,ownedLifetimes:Y.ownedLifetimes,runtime:this,callbacks:this.callbacks});return this.contextMap.set(Q.value,J),J}setModuleLoader(Y,X){this.moduleLoader=Y,this.moduleNormalizer=X,this.ffi.QTS_RuntimeEnableModuleLoader(this.rt.value,this.moduleNormalizer?1:0)}removeModuleLoader(){this.moduleLoader=void 0,this.ffi.QTS_RuntimeDisableModuleLoader(this.rt.value)}hasPendingJob(){return!!this.ffi.QTS_IsJobPending(this.rt.value)}setInterruptHandler(Y){let X=this.interruptHandler;this.interruptHandler=Y,X||this.ffi.QTS_RuntimeEnableInterruptHandler(this.rt.value)}removeInterruptHandler(){this.interruptHandler&&(this.ffi.QTS_RuntimeDisableInterruptHandler(this.rt.value),this.interruptHandler=void 0)}executePendingJobs(Y=-1){let X=this.memory.newMutablePointerArray(1),Q=this.ffi.QTS_ExecutePendingJob(this.rt.value,Y??-1,X.value.ptr),J=X.value.typedArray[0];if(X.dispose(),J===0)return this.ffi.QTS_FreeValuePointerRuntime(this.rt.value,Q),Jq.success(0);let G=this.contextMap.get(J)??this.newContext({contextPointer:J}),K=G.getMemory(this.rt.value).heapValueHandle(Q);if(G.typeof(K)==="number"){let W=G.getNumber(K);return K.dispose(),Jq.success(W)}else{let W=Object.assign(K,{context:G});return Jq.fail(W,(Z)=>G.unwrapResult(Z))}}setMemoryLimit(Y){if(Y<0&&Y!==-1)throw Error("Cannot set memory limit to negative number. To unset, pass -1");this.ffi.QTS_RuntimeSetMemoryLimit(this.rt.value,Y)}computeMemoryUsage(){let Y=this.getSystemContext().getMemory(this.rt.value);return Y.heapValueHandle(this.ffi.QTS_RuntimeComputeMemoryUsage(this.rt.value,Y.ctx.value))}dumpMemoryUsage(){return this.memory.consumeHeapCharPointer(this.ffi.QTS_RuntimeDumpMemoryUsage(this.rt.value))}setMaxStackSize(Y){if(Y<0)throw Error("Cannot set memory limit to negative number. To unset, pass 0.");this.ffi.QTS_RuntimeSetMaxStackSize(this.rt.value,Y)}assertOwned(Y){if(Y.owner&&Y.owner.rt!==this.rt)throw new zO6(`Handle is not owned by this runtime: ${Y.owner.rt.value} != ${this.rt.value}`)}setDebugMode(Y){this._debugMode=Y,this.ffi.DEBUG&&this.rt.alive&&this.ffi.QTS_SetDebugLogEnabled(this.rt.value,Y?1:0)}isDebugMode(){return this._debugMode}debugLog(...Y){this._debugMode&&console.log("quickjs-emscripten:",...Y)}[Symbol.for("nodejs.util.inspect.custom")](){return this.alive?`${this.constructor.name} { rt: ${this.rt.value} }`:`${this.constructor.name} { disposed }`}getSystemContext(){return this.context||(this.context=this.scope.manage(this.newContext())),this.context}}});var SO6={};o6(SO6,{applyModuleEvalRuntimeOptions:()=>$G0,applyBaseRuntimeOptions:()=>VG0,QuickJSWASMModule:()=>qG0,QuickJSModuleCallbacks:()=>FG0});var kO6=S(()=>{zG0()});async function vO6(Y){let X=BG0(await Y),[Q,J,{QuickJSWASMModule:G}]=await Promise.all([X.importModuleLoader().then(BG0),X.importFFI(),Promise.resolve().then(() => (kO6(),SO6)).then(BG0)]),K=await Q();K.type="sync";let W=new J(K);return new G(K,W)}function BG0(Y){return Y&&"default"in Y&&Y.default?Y.default&&"default"in Y.default&&Y.default.default?Y.default.default:Y.default:Y}var UG0=S(()=>{zG0();rx()});import KQ1 from"@jitl/quickjs-wasmfile-release-sync";function yO6(){return _O6??=vO6(KQ1),_O6}var _O6;var fO6=S(()=>{UG0()});async function hO6(Y={}){let Q=(await yO6()).newRuntime({maxStackSizeBytes:Y.stackSizeBytes,memoryLimitBytes:Y.memoryLimitBytes});return{newContext:({interruptAfterMs:G,...K}={})=>{let W=Q.newContext({intrinsics:{...HG0,...K}}),Z=0,H=(F)=>{Z=F?Date.now()+F:0};if(Q.setInterruptHandler(()=>{let F=Date.now(),V=Z>0&&F>Z;return V}),G)H(G);return W},dispose:()=>{Q.dispose()},[Symbol.dispose](){Q.dispose()}}}var bO6=S(()=>{UG0();fO6()});function eD(Y){if(Y===null)return"null";if(Y===void 0)return"undefined";if(Y instanceof Error){let X=Y.message||Y.name||"Error";if(Y.stack&&Y.stack.length<2000)return`${X}
|
|
1178
1178
|
${Y.stack}`;return X}if(typeof Y==="object"&&Y!==null){let X=Y,Q="";if(typeof X.message==="string"&&X.message)Q=X.message;else if(typeof X.error==="string"&&X.error)Q=X.error;else if(typeof X.description==="string"&&X.description)Q=X.description;else if(typeof X.reason==="string"&&X.reason)Q=X.reason;if(Q){if(typeof X.stack==="string"&&X.stack&&X.stack.length<2000)return`${Q}
|
|
1179
1179
|
${X.stack}`;return Q}try{let G=JSON.stringify(X,null,2);if(G!=="{}"&&G.length<1000){if(typeof X.stack==="string"&&X.stack&&X.stack.length<2000)return`${G}
|
|
1180
1180
|
|
|
1181
1181
|
Stack trace:
|
|
1182
|
-
${X.stack}`;return G}}catch{}if(typeof X.toString==="function")try{let G=X.toString();if(G!=="[object Object]")return G}catch{}let J=Object.keys(X);if(J.length>0)return`Object with keys: ${J.join(", ")}`;return"[object Object]"}if(typeof Y==="string")return Y;if(typeof Y==="number"||typeof Y==="boolean")return String(Y);if(typeof Y==="function")return`[Function: ${Y.name||"anon"}]`;if(typeof Y==="symbol")return Y.toString();if(typeof Y==="bigint")return Y.toString();try{return String(Y)}catch{return"Unknown value (could not convert to string)"}}function YO(Y,X){switch(typeof X){case"string":return Y.newString(X);case"number":return Y.newNumber(X);case"boolean":return X?Y.true:Y.false;case"undefined":return Y.undefined;case"object":{if(X===null)return Y.null;if(Array.isArray(X)){let J=Y.newArray();return X.forEach((G,K)=>{let W=YO(Y,G);try{Y.setProp(J,String(K),W)}finally{W.dispose?.()}}),J}let Q=Y.newObject();for(let[J,G]of Object.entries(X)){let K=YO(Y,G);try{Y.setProp(Q,J,K)}finally{K.dispose?.()}}return Q}case"function":{let Q=`__hostFn_${Date.now()}_${Math.random().toString(36).substr(2,9)}`;return Y.newFunction(Q,(...G)=>{try{let K=G.map((Z)=>Y.dump(Z)),W=X(...K);if(W&&typeof W.then==="function"){let Z=Y.newPromise();return W.then((H)=>{try{let F=YO(Y,H);Z.resolve(F),F.dispose(),Y.runtime.executePendingJobs()}catch(F){let V=eD(F),$=Y.newString(`Promise resolution error: ${V}`);Z.reject($),$.dispose(),Y.runtime.executePendingJobs()}}).catch((H)=>{let F=eD(H),V=Y.newString(`Promise rejection: ${F}`);Z.reject(V),V.dispose(),Y.runtime.executePendingJobs()}),Z.handle}return YO(Y,W)}catch(K){let W=eD(K);return Y.newString(`HostFunctionError: ${W}`)}finally{G.forEach((K)=>K.dispose())}})}case"bigint":return Y.newString(X.toString());case"symbol":return Y.newString(X.toString());default:try{return Y.newString(String(X))}catch{return Y.undefined}}}var xO6=()=>{};function gO6(Y){let X=Y.runtime.executePendingJobs(100);try{if("unwrap"in X&&typeof X.unwrap==="function")X.unwrap()}finally{if("dispose"in X&&typeof X.dispose==="function")X.dispose()}}async function uO6(Y,X,Q){let J=Date.now(),G=Y.resolvePromise(X);while(!0){gO6(Y);let K=await Promise.race([G,HQ1(0).then(()=>null)]);if(K!==null)return K;if(Date.now()-J>Q)throw Error(`Timed out after ${Q}ms while awaiting a QuickJS promise`)}}async function DG0({tools:Y,code:X,timeoutMs:Q}){let W=[];try{let J=await hO6({memoryLimitBytes:33554432,stackSizeBytes:524288});const G=Hg(W,J.newContext({interruptAfterMs:Q}),0);const K=Hg(W,FO6(G),0);try{let V=G.evalCode(X,"index.mjs",{strip:!0,strict:!0,type:"module"}),$=G.unwrapResult(V),q=YO(G,Y);G.setProp(G.global,"tools",q);let B=G.runtime.hasPendingJob()?G.unwrapResult(await uO6(G,$,Q)):$;if(B!==$)$.dispose();let D=G.getProp(B,"default"),O=G.typeof(D);if(O!=="function")return{error:`Code must export default a function (tools). Got ${O}. Example: export default async (tools) => { /* ... */ }`,consoleLogs:K.logs};let L=G.callFunction(D,G.undefined,q),w=G.unwrapResult(L),I=await uO6(G,w,Q),T=G.unwrapResult(I);if(G.runtime.hasPendingJob())gO6(G);return{returnValue:G.dump(T),consoleLogs:K.logs}}catch(V){return console.log(V),{error:eD(V),consoleLogs:K.logs}}}catch(Z){var H=Z,F=1}finally{GZ0(W,H,F)}}var HQ1=(Y)=>new Promise((X)=>setTimeout(X,Y));var mO6=S(()=>{bO6();xO6()});var lO6=S(()=>{mO6()});async function FQ1(Y,X){let Q;if(Y.tool_selection_mode==="exclusion"){let G=(await X.storage.connections.list(Y.organization_id)).filter((W)=>W.status==="active"),K=new Map;for(let W of Y.connections)K.set(W.connection_id,{selectedTools:W.selected_tools,selectedResources:W.selected_resources,selectedPrompts:W.selected_prompts});Q=[];for(let W of G){let Z=K.get(W.id);if(Z===void 0)Q.push({connection:W,selectedTools:null,selectedResources:null,selectedPrompts:null});else if((Z.selectedTools===null||Z.selectedTools.length===0)&&(Z.selectedResources===null||Z.selectedResources.length===0)&&(Z.selectedPrompts===null||Z.selectedPrompts.length===0));else Q.push({connection:W,selectedTools:Z.selectedTools,selectedResources:Z.selectedResources,selectedPrompts:Z.selectedPrompts})}}else{let J=Y.connections.map((K)=>K.connection_id),G=[];for(let K of J){let W=await X.storage.connections.findById(K);if(W&&W.status==="active")G.push(W)}Q=G.map((K)=>{let W=Y.connections.find((Z)=>Z.connection_id===K.id);return{connection:K,selectedTools:W?.selected_tools??null,selectedResources:W?.selected_resources??null,selectedPrompts:W?.selected_prompts??null}})}return Q}async function dO6(Y,X){return(await X.storage.connections.list(Y)).filter((J)=>J.status==="active").map((J)=>({connection:J,selectedTools:null,selectedResources:null,selectedPrompts:null}))}async function VQ1(Y,X,Q){let J=await sD.create(Y,Q),G=await J.mapSettled(async(V,$)=>{try{let B=(await V.proxy.client.listTools()).tools;if(X==="exclusion"){if(V.selectedTools&&V.selectedTools.length>0){let D=new Set(V.selectedTools);B=B.filter((O)=>!D.has(O.name))}}else if(V.selectedTools&&V.selectedTools.length>0){let D=new Set(V.selectedTools);B=B.filter((O)=>D.has(O.name))}return{connectionId:$,connectionTitle:V.connection.title,tools:B}}catch(q){return console.error(`[code-execution] Failed to list tools for connection ${$}:`,q),null}}),K=new Set,W=[],Z=new Map,H=new Set;for(let V of G){if(V.status!=="fulfilled"||!V.value)continue;let{connectionId:$,connectionTitle:q,tools:B}=V.value;H.add(q);for(let D of B){if(K.has(D.name))continue;K.add(D.name),W.push({...D,_meta:{connectionId:$,connectionTitle:q}}),Z.set(D.name,{connectionId:$,originalName:D.name})}}return{tools:W,callTool:async(V,$)=>{let q=Z.get(V);if(!q)return{content:[{type:"text",text:`Tool not found: ${V}`}],isError:!0};let B=J.get(q.connectionId);if(!B)return{content:[{type:"text",text:`Connection not found for tool: ${V}`}],isError:!0};return await B.proxy.client.callTool({name:q.originalName,arguments:$})},categories:Array.from(H).sort()}}async function XO(Y){let X=h6(Y),Q,J="inclusion";if(Y.connectionId){let G=await Y.storage.virtualMcps.findById(Y.connectionId);if(G)Q=await FQ1(G,Y),J=G.tool_selection_mode;else Q=await dO6(X.id,Y)}else Q=await dO6(X.id,Y);return VQ1(Q,J,Y)}function $Q1(Y){return Y.toLowerCase().split(/[\s_\-./]+/).filter((X)=>X.length>=2)}function qQ1(Y,X){let Q=0,J=X.name.toLowerCase(),G=(X.description??"").toLowerCase(),K=X._meta.connectionTitle.toLowerCase();for(let W of Y){if(J===W)Q+=10;else if(J.includes(W))Q+=3;if(G.includes(W))Q+=2;if(K.includes(W))Q+=1}return Q}function sx(Y,X,Q){let J=$Q1(Y);if(J.length===0)return X.slice(0,Q);return X.map((G)=>({tool:G,score:qQ1(J,G)})).filter((G)=>G.score>0).sort((G,K)=>K.score-G.score).slice(0,Q).map((G)=>G.tool)}function tx(Y,X){let Q=new Map(X.map((G)=>[G.name,G]));return{tools:Y.map((G)=>Q.get(G)).filter((G)=>G!==void 0).map((G)=>({name:G.name,description:G.description,connection:G._meta.connectionTitle,inputSchema:G.inputSchema,outputSchema:G.outputSchema})),notFound:Y.filter((G)=>!Q.has(G))}}async function ex(Y,X,Q){let J=Object.fromEntries(X.tools.map((G)=>[G.name,async(K)=>X.callTool(G.name,K??{})]));return DG0({code:Y,tools:J,timeoutMs:Q})}function Yu(Y){return{content:[{type:"text",text:JSON.stringify(Y,null,2)}]}}function QO(Y){return{content:[{type:"text",text:JSON.stringify(Y,null,2)}],isError:!0}}function G2(Y){let X=new Set(zQ1);return Y.filter((Q)=>!X.has(Q.name))}var zQ1;var W2=S(()=>{lO6();zQ1=["CODE_EXECUTION_SEARCH_TOOLS","CODE_EXECUTION_DESCRIBE_TOOLS","CODE_EXECUTION_RUN_CODE"]});var OG0;var pO6=S(()=>{z4();Q2();W2();OG0=J6({name:"CODE_EXECUTION_SEARCH_TOOLS",description:"Search for available tools by name or description. Returns tool names and brief descriptions without full schemas. Use this to discover tools before calling CODE_EXECUTION_DESCRIBE_TOOLS for detailed schemas.",inputSchema:JO6,outputSchema:GO6,handler:async(Y,X)=>{O6(X),h6(X),await X.access.check();let Q=await XO(X),J=sx(Y.query,Q.tools,Y.limit);return{query:Y.query,results:J.map((G)=>({name:G.name,description:G.description,connection:G._meta.connectionTitle})),totalAvailable:Q.tools.length}}})});var NG0;var cO6=S(()=>{z4();Q2();W2();NG0=J6({name:"CODE_EXECUTION_DESCRIBE_TOOLS",description:"Get detailed schemas for specific tools. Call after CODE_EXECUTION_SEARCH_TOOLS to get full input/output schemas before executing code.",inputSchema:WO6,outputSchema:ZO6,handler:async(Y,X)=>{O6(X),h6(X),await X.access.check();let Q=await XO(X);return tx(Y.tools,Q.tools)}})});var LG0;var nO6=S(()=>{z4();Q2();W2();LG0=J6({name:"CODE_EXECUTION_RUN_CODE",description:'Run JavaScript code in a sandbox. Code must be an ES module that `export default`s an async function that receives (tools) as its first parameter. Use CODE_EXECUTION_DESCRIBE_TOOLS to understand the input/output schemas for a tool before calling it. Use `await tools.toolName(args)` or `await tools["tool-name"](args)` to call tools.',inputSchema:KO6,outputSchema:HO6,handler:async(Y,X)=>{O6(X),h6(X),await X.access.check();let Q=await XO(X);return await ex(Y.code,Q,Y.timeoutMs)}})});var iO6=S(()=>{pO6();cO6();nO6();Q2()});var UQ1,DQ1,wG0;var aO6=S(()=>{nP();s0();z4();px();EW();UQ1=z.object({data:jU6.describe("Data for the new connection (id is auto-generated if not provided)")}),DQ1=z.object({item:x5.describe("The created connection entity")}),wG0=J6({name:"COLLECTION_CONNECTIONS_CREATE",description:"Create a new MCP connection in the organization",inputSchema:UQ1,outputSchema:DQ1,handler:async(Y,X)=>{O6(X);let Q=h6(X);await X.access.check();let J=Q9(X);if(!J)throw Error("User ID required to create connection");let G={...Y.data,organization_id:Q.id,created_by:J};if(G.connection_type==="VIRTUAL"){let H=h3(G.connection_url);if(!H)throw Error("VIRTUAL connection requires connection_url in format: virtual://$virtual_mcp_id");let F=await X.storage.virtualMcps.findById(H);if(!F)throw Error(`Virtual MCP not found: ${H}`);if(F.organization_id!==Q.id)throw Error("Virtual MCP does not belong to the current organization");G.connection_url=xx(H)}let K=await rD({id:`pending-${Date.now()}`,title:G.title,connection_type:G.connection_type,connection_url:G.connection_url,connection_token:G.connection_token,connection_headers:G.connection_headers}).catch(()=>null),W=K?.length?K:null,Z=await X.storage.connections.create({...G,tools:W});return await X.eventBus.publish(Q.id,i$.SELF(Q.id),{type:"connection.created",data:Z}),{item:Z}}})});function Z2(Y,X){if(Y===X)return!0;if(Y==null||X==null)return Y===X;if(typeof Y!==typeof X)return!1;if(Array.isArray(Y)&&Array.isArray(X)){if(Y.length!==X.length)return!1;return Y.every((Q,J)=>Z2(Q,X[J]))}if(typeof Y==="object"&&typeof X==="object"){let Q=Object.keys(Y),J=Object.keys(X);if(Q.length!==J.length)return!1;return Q.every((G)=>J.includes(G)&&Z2(Y[G],X[G]))}return!1}function uQ1(){return(Y)=>{if(!Array.isArray(Y))return!0;let X=[];return Y.every((Q)=>{if(X.some((G)=>Z2(Q,G)))return!1;return X.push(Q),!0})}}function Xu(Y,X){return Y.safeParse(X).success}function eY(Y){if(typeof Y==="boolean")return Y?z.any():z.never();let X={};for(let G of eQ1)G.apply(X,Y);let Q=[];if(X.string!==!1)Q.push(X.string||z.string());if(X.number!==!1)Q.push(X.number||z.number());if(X.boolean!==!1)Q.push(X.boolean||z.boolean());if(X.null!==!1)Q.push(X.null||z.null());if(X.array!==!1)Q.push(X.array||z.array(z.any()));if(X.tuple!==!1&&X.tuple!==void 0)Q.push(X.tuple);if(X.object!==!1)if(X.object)Q.push(X.object);else{let G=z.custom((K)=>{return typeof K==="object"&&K!==null&&!Array.isArray(K)},"Must be an object, not an array");Q.push(G)}if(X.file!==!1&&X.file!==void 0)Q.push(X.file);let J;if(Q.length===0)J=z.never();else if(Q.length===1)J=Q[0];else if(!Object.keys(Y).some((K)=>K!=="$schema"&&K!=="title"&&K!=="description"))J=z.any();else J=z.union(Q);for(let G of YJ1)J=G.apply(J,Y);return J}var OQ1=class{apply(Y,X){if(!X.type)return;let Q=Array.isArray(X.type)?X.type:[X.type],J=new Set(Q);if(!J.has("string"))Y.string=!1;if(!J.has("number")&&!J.has("integer"))Y.number=!1;if(!J.has("boolean"))Y.boolean=!1;if(!J.has("null"))Y.null=!1;if(!J.has("array"))Y.array=!1;if(!J.has("object"))Y.object=!1;if(J.has("integer")&&Y.number!==!1){let G=Y.number||z.number();if(G instanceof z.ZodNumber)Y.number=G.int()}}},NQ1=class{apply(Y,X){if(X.const===void 0)return;let Q=X.const;if(Y.string=!1,Y.number=!1,Y.boolean=!1,Y.null=!1,Y.array=!1,Y.object=!1,typeof Q==="string")Y.string=z.literal(Q);else if(typeof Q==="number")Y.number=z.literal(Q);else if(typeof Q==="boolean")Y.boolean=z.literal(Q);else if(Q===null)Y.null=z.null();else if(Array.isArray(Q))Y.array=void 0;else if(typeof Q==="object")Y.object=void 0}},LQ1=class{apply(Y,X){if(!X.enum)return;if(X.enum.length===0){if(!X.type)Y.string=!1,Y.number=!1,Y.boolean=!1,Y.null=!1,Y.array=!1,Y.object=!1;return}let Q={string:X.enum.filter((J)=>typeof J==="string"),number:X.enum.filter((J)=>typeof J==="number"),boolean:X.enum.filter((J)=>typeof J==="boolean"),null:X.enum.filter((J)=>J===null),array:X.enum.filter((J)=>Array.isArray(J)),object:X.enum.filter((J)=>typeof J==="object"&&J!==null&&!Array.isArray(J))};Y.string=this.createTypeSchema(Q.string,"string"),Y.number=this.createTypeSchema(Q.number,"number"),Y.boolean=this.createTypeSchema(Q.boolean,"boolean"),Y.null=Q.null.length>0?z.null():!1,Y.array=Q.array.length>0?void 0:!1,Y.object=Q.object.length>0?void 0:!1}createTypeSchema(Y,X){if(Y.length===0)return!1;if(Y.length===1)return z.literal(Y[0]);if(X==="string")return z.enum(Y);if(X==="number"){let[Q,J,...G]=Y;return z.union([z.literal(Q),z.literal(J),...G.map((K)=>z.literal(K))])}if(X==="boolean")return z.union([z.literal(!0),z.literal(!1)]);return!1}},wQ1=class{apply(Y,X){let Q=X;if(Q.type==="string"&&Q.format==="binary"&&Q.contentEncoding==="binary"){let J=z.file();if(Q.minLength!==void 0)J=J.min(Q.minLength);if(Q.maxLength!==void 0)J=J.max(Q.maxLength);if(Q.contentMediaType!==void 0)J=J.mime(Q.contentMediaType);Y.file=J,Y.string=!1}}},MQ1=class{apply(Y,X){let Q=X;if(X.type===void 0&&(Q.minLength!==void 0||Q.maxLength!==void 0||Q.pattern!==void 0)){if(Y.string===void 0)Y.string=z.string()}}},AQ1=class{apply(Y,X){let Q=X;if(Q.minLength===void 0)return;if(Y.string!==!1){let J=Y.string||z.string();if(J instanceof z.ZodString)Y.string=J.refine((G)=>{return Array.from(G).length>=Q.minLength},{message:`String must be at least ${Q.minLength} characters long`})}}},TQ1=class{apply(Y,X){let Q=X;if(Q.maxLength===void 0)return;if(Y.string!==!1){let J=Y.string||z.string();if(J instanceof z.ZodString)Y.string=J.refine((G)=>{return Array.from(G).length<=Q.maxLength},{message:`String must be at most ${Q.maxLength} characters long`})}}},PQ1=class{apply(Y,X){let Q=X;if(!Q.pattern)return;if(Y.string!==!1){let J=Y.string||z.string();if(J instanceof z.ZodString){let G=new RegExp(Q.pattern);Y.string=J.regex(G)}}}},EQ1=class{apply(Y,X){let Q=X;if(Q.minimum===void 0)return;if(Y.number!==!1){let J=Y.number||z.number();if(J instanceof z.ZodNumber)Y.number=J.min(Q.minimum)}}},CQ1=class{apply(Y,X){let Q=X;if(Q.maximum===void 0)return;if(Y.number!==!1){let J=Y.number||z.number();if(J instanceof z.ZodNumber)Y.number=J.max(Q.maximum)}}},IQ1=class{apply(Y,X){let Q=X;if(Q.exclusiveMinimum===void 0)return;if(Y.number!==!1){let J=Y.number||z.number();if(J instanceof z.ZodNumber)if(typeof Q.exclusiveMinimum==="number")Y.number=J.gt(Q.exclusiveMinimum);else Y.number=!1}}},RQ1=class{apply(Y,X){let Q=X;if(Q.exclusiveMaximum===void 0)return;if(Y.number!==!1){let J=Y.number||z.number();if(J instanceof z.ZodNumber)if(typeof Q.exclusiveMaximum==="number")Y.number=J.lt(Q.exclusiveMaximum);else Y.number=!1}}},jQ1=class{apply(Y,X){let Q=X;if(Q.multipleOf===void 0)return;if(Y.number!==!1){let J=Y.number||z.number();if(J instanceof z.ZodNumber)Y.number=J.refine((G)=>{if(Q.multipleOf===0)return!1;let K=G/Q.multipleOf,W=Math.round(K),Z=Math.min(Math.abs(G)*Number.EPSILON*10,Math.abs(Q.multipleOf)*Number.EPSILON*10);return Math.abs(K-W)<=Z/Math.abs(Q.multipleOf)},{message:`Must be a multiple of ${Q.multipleOf}`})}}},SQ1=class{apply(Y,X){let Q=X;if(X.type===void 0&&(Q.minItems!==void 0||Q.maxItems!==void 0||Q.items!==void 0||Q.prefixItems!==void 0)){if(Y.array===void 0)Y.array=z.array(z.any())}}},kQ1=class{apply(Y,X){let Q=X;if(Q.minItems===void 0)return;if(Y.array!==!1)Y.array=(Y.array||z.array(z.any())).min(Q.minItems)}},vQ1=class{apply(Y,X){let Q=X;if(Q.maxItems===void 0)return;if(Y.array!==!1)Y.array=(Y.array||z.array(z.any())).max(Q.maxItems)}},_Q1=class{apply(Y,X){let Q=X;if(Y.array===!1)return;if(Array.isArray(Q.items))Y.array=Y.array||z.array(z.any());else if(Q.items&&typeof Q.items!=="boolean"&&!Q.prefixItems){let J=eY(Q.items),G=z.array(J);if(Y.array&&Y.array instanceof z.ZodArray){let K=Y.array._def;if(K.checks)K.checks.forEach((W)=>{if(W._zod&&W._zod.def){let Z=W._zod.def;if(Z.check==="min_length"&&Z.minimum!==void 0)G=G.min(Z.minimum);else if(Z.check==="max_length"&&Z.maximum!==void 0)G=G.max(Z.maximum)}})}Y.array=G}else if(typeof Q.items==="boolean"&&Q.items===!1)if(!Q.prefixItems)Y.array=z.array(z.any()).max(0);else Y.array=Y.array||z.array(z.any());else if(typeof Q.items==="boolean"&&Q.items===!0)Y.array=Y.array||z.array(z.any());else if(Q.prefixItems)Y.array=Y.array||z.array(z.any())}},yQ1=class{apply(Y,X){if(X.type!=="array")return;let Q=X;if(!Array.isArray(Q.items))return;if(Y.array===!1)return;let J=Q.items.map((K)=>eY(K)),G;if(J.length===0)G=z.tuple([]);else G=z.tuple(J);if(Q.minItems!==void 0&&Q.minItems>J.length)G=!1;if(Q.maxItems!==void 0&&Q.maxItems<J.length)G=!1;Y.tuple=G,Y.array=!1}},fQ1=class{apply(Y,X){let Q=X;if(Y.object===!1)return;if(Q.properties||Q.required||Q.additionalProperties!==void 0)Y.object=Y.object||z.object({}).passthrough()}},hQ1=class{apply(Y,X){let Q=X;if(X.type===void 0&&(Q.maxProperties!==void 0||Q.minProperties!==void 0)){if(Y.object===void 0)Y.object=z.object({}).passthrough()}}},bQ1=class{apply(Y,X){let Q=X;if(Q.maxProperties===void 0)return;if(Y.object!==!1){let J=Y.object||z.object({}).passthrough();Y.object=J.refine((G)=>Object.keys(G).length<=Q.maxProperties,{message:`Object must have at most ${Q.maxProperties} properties`})}}},xQ1=class{apply(Y,X){let Q=X;if(Q.minProperties===void 0)return;if(Y.object!==!1){let J=Y.object||z.object({}).passthrough();Y.object=J.refine((G)=>Object.keys(G).length>=Q.minProperties,{message:`Object must have at least ${Q.minProperties} properties`})}}},gQ1=class{apply(Y,X){if(!X.not)return Y;let Q=eY(X.not);return Y.refine((J)=>!Xu(Q,J),{message:"Value must not match the 'not' schema"})}},mQ1=class{apply(Y,X){if(X.uniqueItems!==!0)return Y;return Y.refine(uQ1(),{message:"Array items must be unique"})}},lQ1=class{apply(Y,X){if(!X.allOf||X.allOf.length===0)return Y;return X.allOf.map((J)=>eY(J)).reduce((J,G)=>z.intersection(J,G),Y)}},dQ1=class{apply(Y,X){if(!X.anyOf||X.anyOf.length===0)return Y;let Q=X.anyOf.length===1?eY(X.anyOf[0]):z.union([eY(X.anyOf[0]),eY(X.anyOf[1]),...X.anyOf.slice(2).map((J)=>eY(J))]);return z.intersection(Y,Q)}},pQ1=class{apply(Y,X){if(!X.oneOf||X.oneOf.length===0)return Y;let Q=X.oneOf.map((J)=>eY(J));return Y.refine((J)=>{let G=0;for(let K of Q)if(K.safeParse(J).success){if(G++,G>1)return!1}return G===1},{message:"Value must match exactly one of the oneOf schemas"})}},cQ1=class{apply(Y,X){let Q=X;if(Q.prefixItems&&Array.isArray(Q.prefixItems)){let G=Q.prefixItems.map((K)=>eY(K));return Y.refine((K)=>{if(!Array.isArray(K))return!0;for(let W=0;W<Math.min(K.length,G.length);W++)if(!Xu(G[W],K[W]))return!1;if(K.length>G.length){if(typeof Q.items==="boolean"&&Q.items===!1)return!1;else if(Q.items&&typeof Q.items==="object"&&!Array.isArray(Q.items)){let W=eY(Q.items);for(let Z=G.length;Z<K.length;Z++)if(!Xu(W,K[Z]))return!1}}return!0},{message:"Array does not match prefixItems schema"})}return Y}},nQ1=class{apply(Y,X){let Q=X;if(!Q.properties&&!Q.required&&Q.additionalProperties!==!1)return Y;if(Y instanceof z.ZodObject||Y instanceof z.ZodRecord){let J={};if(Q.properties){for(let[G,K]of Object.entries(Q.properties))if(K!==void 0)J[G]=eY(K)}if(Q.required&&Array.isArray(Q.required)){let G=new Set(Q.required);for(let K of Object.keys(J))if(!G.has(K))J[K]=J[K].optional()}else for(let G of Object.keys(J))J[G]=J[G].optional();if(Q.additionalProperties===!1)return z.object(J);else return z.object(J).passthrough()}return Y.refine((J)=>{if(typeof J!=="object"||J===null||Array.isArray(J))return!0;if(Q.properties){for(let[G,K]of Object.entries(Q.properties))if(K!==void 0){if(Object.getOwnPropertyDescriptor(J,G)!==void 0){if(!eY(K).safeParse(J[G]).success)return!1}}}if(Q.required&&Array.isArray(Q.required)){for(let G of Q.required)if(Object.getOwnPropertyDescriptor(J,G)===void 0)return!1}if(Q.additionalProperties===!1&&Q.properties){let G=new Set(Object.keys(Q.properties));for(let K in J)if(!G.has(K))return!1}return!0},{message:"Object constraints validation failed"})}},iQ1=class{apply(Y,X){if(!X.enum||X.enum.length===0)return Y;let Q=X.enum.filter((J)=>Array.isArray(J)||typeof J==="object"&&J!==null);if(Q.length===0)return Y;return Y.refine((J)=>{if(typeof J!=="object"||J===null)return!0;return Q.some((G)=>Z2(J,G))},{message:"Value must match one of the enum values"})}},aQ1=class{apply(Y,X){if(X.const===void 0)return Y;let Q=X.const;if(typeof Q!=="object"||Q===null)return Y;return Y.refine((J)=>Z2(J,Q),{message:"Value must equal the const value"})}},rQ1=class{apply(Y,X){if(X.description)Y=Y.describe(X.description);return Y}},oQ1=class{apply(Y,X){var Q;let J=X;if(!((Q=J.required)==null?void 0:Q.includes("__proto__"))||X.type!==void 0)return Y;return z.any().refine((G)=>this.validateRequired(G,J.required),{message:"Missing required properties"})}validateRequired(Y,X){if(typeof Y!=="object"||Y===null||Array.isArray(Y))return!0;return X.every((Q)=>Object.prototype.hasOwnProperty.call(Y,Q))}},sQ1=class{apply(Y,X){var Q;let J=X;if(J.contains===void 0)return Y;let G=eY(J.contains),K=(Q=J.minContains)!=null?Q:1,W=J.maxContains;return Y.refine((Z)=>{if(!Array.isArray(Z))return!0;let H=0;for(let F of Z)if(Xu(G,F))H++;if(H<K)return!1;if(W!==void 0&&H>W)return!1;return!0},{message:"Array must contain required items matching the schema"})}},tQ1=class{apply(Y,X){let{default:Q}=X;if(Q===void 0)return Y;if(!Y.safeParse(Q).success)return Y;return Y.default(Q)}},eQ1,YJ1;var rO6=S(()=>{Q1();Q1();Q1();Q1();Q1();Q1();Q1();Q1();Q1();Q1();Q1();Q1();Q1();Q1();eQ1=[new NQ1,new LQ1,new OQ1,new wQ1,new MQ1,new SQ1,new hQ1,new AQ1,new TQ1,new PQ1,new EQ1,new CQ1,new IQ1,new RQ1,new jQ1,new yQ1,new kQ1,new vQ1,new _Q1,new bQ1,new xQ1,new fQ1],YJ1=[new oQ1,new iQ1,new aQ1,new lQ1,new dQ1,new pQ1,new cQ1,new nQ1,new sQ1,new gQ1,new mQ1,new tQ1,new rQ1]});class MG0{constructor(Y){this._url=Y}start(){if(this._socket)throw Error("WebSocketClientTransport already started! If using Client class, note that connect() calls start() automatically.");return new Promise((Y,X)=>{this._socket=new WebSocket(this._url,XJ1),this._socket.onerror=(Q)=>{let J="error"in Q?Q.error:Error(`WebSocket error: ${JSON.stringify(Q)}`);X(J),this.onerror?.(J)},this._socket.onopen=()=>{Y()},this._socket.onclose=()=>{this.onclose?.()},this._socket.onmessage=(Q)=>{let J;try{J=SJ.parse(JSON.parse(Q.data))}catch(G){this.onerror?.(G);return}this.onmessage?.(J)}})}async close(){this._socket?.close()}send(Y){return new Promise((X,Q)=>{if(!this._socket){Q(Error("Not connected"));return}this._socket?.send(JSON.stringify(Y)),X()})}}var XJ1="mcp";var oO6=S(()=>{p9()});function QJ1(Y){let X=Y;if(!X||typeof X!=="object"||!("method"in X))return null;switch(X.method){case"initialize":{let Q=X?.params?.protocolVersion;if(!Q)return null;return{type:"emit",message:{result:{protocolVersion:Q,capabilities:{tools:{}},serverInfo:{name:"deco-chat-server",version:"1.0.0"}},jsonrpc:X.jsonrpc??"2.0",id:X.id}}}case"notifications/roots/list_changed":case"notifications/initialized":case"notifications/cancelled":case"notifications/progress":return{type:"suppress"};default:return null}}var AG0;var sO6=S(()=>{uD();AG0=class AG0 extends PW{constructor(Y,X){super(Y,X)}send(Y,X){let Q=QJ1(Y);if(Q?.type==="emit")return this.onmessage?.(Q.message),Promise.resolve();if(Q?.type==="suppress")return Promise.resolve();return super.send(Y,X)}}});var tO6,eO6=async(Y,X,Q)=>{let J=JJ1(Y.connection,X,Q);if(!J)throw Error("Unknown MCP connection type");let G=new tO6({name:Y?.name??"MCP Client",version:"1.0.0"});return await G.connect(J),{client:G,callStreamableTool:(K,W,Z)=>{if(Y.connection.type!=="HTTP")throw Error("HTTP connection required");let H=new Headers(Q);if(!H.has("Authorization"))H.set("Authorization",`Bearer ${Y.connection.token}`);for(let[$,q]of Object.entries(Y.connection.headers??{}))H.set($,q);let F=new URL(Y.connection.url),V=F.pathname.replace(/\/+$/,"")||"/";return F.pathname=`${V}/call-tool/${encodeURIComponent(K)}`,fetch(F.href,{method:"POST",redirect:"manual",body:JSON.stringify(W),headers:H,signal:Z})}}},JJ1=(Y,X,Q)=>{if(Y.type==="Websocket")return new MG0(new URL(Y.url));if(Y.type!=="SSE"&&Y.type!=="HTTP")return null;let G={...Y.token?{authorization:`Bearer ${Y.token}`}:{},...Q??{},..."headers"in Y?Y.headers||{}:{}};if(Y.type==="SSE"){let K={requestInit:{headers:G,signal:X}};if(Y.token)K.eventSourceInit={fetch:(W,Z)=>{return fetch(W,{...Z,headers:{...G,Accept:"text/event-stream"},signal:X})}};return new t$(new URL(Y.url),K)}return new AG0(new URL(Y.url),{requestInit:{headers:G,signal:X,credentials:"include"}})};var YN6=S(()=>{c$();mx();oO6();p9();sO6();tO6=class tO6 extends nQ{constructor(Y,X){super(Y,X)}async listTools(Y,X){return await this.request({method:"tools/list",params:Y},DP,X)}}});function QN6(Y){let X=(Q)=>{if("connection"in Y)return eO6({connection:Y.connection},void 0,Q);return Y.client};return new Proxy({},{get(Q,J){if(J==="toJSON")return null;if(typeof J!=="string")throw Error("Name must be a string");if(J==="listTools")return Z;async function G(H,F=J){let V=Y?.debugId?.(),$=V?{"x-trace-debug-id":V}:void 0,{client:q,callStreamableTool:B}=await X($);if(Y?.streamable?.[String(F)])return B(String(F),H);let{structuredContent:D,isError:O,content:L}=await q.callTool({name:String(F),arguments:H});if(O){let w=L?.[0]?.text,I=typeof w==="string"?GJ1(w):null,T=I?.code&&typeof Y?.getErrorByStatusCode==="function"?Y.getErrorByStatusCode(I.code,I.message,I.traceId):null;if(T)throw T;throw Error(`Tool ${String(F)} returned an error: ${JSON.stringify(D??L)}`)}return D}async function K(){let{client:H}=await X(),{tools:F}=await H.listTools();return F}async function W(){if(!("connection"in Y))return K();let H=Y.connection,F=JSON.stringify(H);try{if(!Qu.has(F))Qu.set(F,K());return await Qu.get(F)}catch(V){console.error("Failed to list tools",V),Qu.delete(F);return}}async function Z(){return(await W()??[]).map((F)=>XN6(F,G))}return G.asTool=async()=>{let F=(await W()??[]).find((V)=>V.name===J);if(!F)throw Error(`Tool ${J} not found`);return XN6(F,G)},G}})}var GJ1=(Y)=>{try{return JSON.parse(Y)}catch{return Y}},Qu,XN6=(Y,X)=>{return{...Y,id:Y.name,inputSchema:Y.inputSchema?eY(Y.inputSchema):void 0,outputSchema:Y.outputSchema?eY(Y.outputSchema):void 0,execute:(Q)=>{return X(Q.context,Y.name)}}};var JN6=S(()=>{rO6();YN6();Qu=new Map});function Ju(Y){return QN6(Y)}var rz8;var GN6=S(()=>{JN6();rz8=new Proxy({},{get(Y,X){if(X==="toJSON")return null;if(X==="forConnection")return(Q)=>Ju({connection:Q});return global[X]}})});function Gu(Y){return{isImplementedBy:(X)=>{for(let Q of Y){let J=typeof Q.name==="string"?new RegExp(`^${Q.name}$`):Q.name,G=X.find((K)=>J.test(K.name));if(!G&&Q.opt)continue;if(!G)return!1}return!0}}}var Gq=(Y)=>{return{...Gu(Y),forClient:(X)=>{return Ju({client:X,streamable:Y.reduce((Q,J)=>{return Q[J.name]=J.streamable===!0,Q},{})})},forConnection:(X)=>{return Ju({connection:X,streamable:Y.reduce((Q,J)=>{return Q[J.name]=J.streamable===!0,Q},{})})}}};var K2=S(()=>{GN6()});var TG0,YB8;var WN6=S(()=>{cT();TG0=O4(pT(),1),YB8=TG0.createContext(null)});function $K(Y){return z.object({items:z.array(Y).describe("Array of collection items"),totalCount:z.number().int().min(0).optional().describe("Total number of matching items (if available)"),hasMore:z.boolean().optional().describe("Whether there are more items available")})}function F2(Y){return z.object({item:Y.nullable().describe("The retrieved item, or null if not found")})}function KJ1(Y){return z.object({data:Y.partial().describe("Data for the new entity (id may be auto-generated)")})}function HJ1(Y){return z.object({item:Y.describe("The created entity with generated id")})}function FJ1(Y){return z.object({id:z.string().describe("ID of the entity to update"),data:Y.partial().describe("Partial entity data to update")})}function VJ1(Y){return z.object({item:Y.describe("The updated entity")})}function $2(Y){return z.object({item:Y.describe("The deleted entity")})}function GO(Y,X,Q){let J=Y.toUpperCase(),G=Q?.readOnly??!1,K=[{name:`COLLECTION_${J}_LIST`,inputSchema:VK,outputSchema:$K(X)},{name:`COLLECTION_${J}_GET`,inputSchema:H2,outputSchema:F2(X)}];if(!G)K.push({name:`COLLECTION_${J}_CREATE`,inputSchema:KJ1(X),outputSchema:HJ1(X),opt:!0},{name:`COLLECTION_${J}_UPDATE`,inputSchema:FJ1(X),outputSchema:VJ1(X),opt:!0},{name:`COLLECTION_${J}_DELETE`,inputSchema:V2,outputSchema:$2(X),opt:!0});return K}var JO,WJ1,ZN6,ZJ1,VK,H2,V2;var u5=S(()=>{s0();JO=z.object({id:z.string().describe("Unique identifier for the entity"),title:z.string().describe("Human-readable title for the entity"),description:z.string().nullish().describe("Description of the entity"),created_at:z.string().datetime(),updated_at:z.string().datetime(),created_by:z.string().optional(),updated_by:z.string().optional()}),WJ1=z.object({field:z.array(z.string()),operator:z.enum(["eq","gt","gte","lt","lte","in","like","contains"]),value:z.unknown()}),ZN6=z.lazy(()=>z.union([WJ1,z.object({operator:z.enum(["and","or","not"]),conditions:z.array(ZN6)})])),ZJ1=z.object({field:z.array(z.string()),direction:z.enum(["asc","desc"]),nulls:z.enum(["first","last"]).optional()}),VK=z.object({where:ZN6.optional().describe("Filter expression"),orderBy:z.array(ZJ1).optional().describe("Sort expressions"),limit:z.number().int().min(1).max(1000).optional().describe("Maximum number of items to return"),offset:z.number().int().min(0).optional().describe("Number of items to skip")});H2=z.object({id:z.string().describe("ID of the entity to retrieve")});V2=z.object({id:z.string().describe("ID of the entity to delete")})});var $J1,KN6,KB8;var HN6=S(()=>{s0();u5();$J1=z.object({id:z.string(),name:z.string(),description:z.string().optional(),inputSchema:z.record(z.string(),z.unknown()),outputSchema:z.record(z.string(),z.unknown()).optional()}),KN6=JO.extend({_meta:z.object({"io.decocms":z.object({id:z.string(),verified:z.boolean(),scopeName:z.string(),appName:z.string(),friendlyName:z.string().nullable().optional(),metadata:z.record(z.string(),z.unknown()).nullable().optional(),publishedAt:z.string().datetime().optional(),updatedAt:z.string().datetime().optional(),tools:z.array($J1).nullable().optional().describe("Available tools exposed by this app")}).optional()}).optional(),server:z.object({$schema:z.string().optional(),_meta:z.record(z.string(),z.unknown()).optional(),name:z.string().describe("The server name (scope/app)"),title:z.string().optional().describe("User-friendly title"),description:z.string().optional().describe("Server description"),icons:z.array(z.object({src:z.string(),mimeType:z.string().optional(),sizes:z.array(z.string()).optional(),theme:z.enum(["light","dark"]).optional()})).optional(),remotes:z.array(z.object({type:z.enum(["http","stdio","sse"]),url:z.string().optional(),headers:z.array(z.unknown()).optional()})).optional(),packages:z.array(z.unknown()).optional(),repository:z.object({url:z.string(),source:z.string().optional(),subfolder:z.string().optional()}).optional(),version:z.string().optional(),websiteUrl:z.string().optional()})}),KB8=GO("registry_app",KN6,{readOnly:!0})});var FN6,VN6,$N6,qN6,zN6,PG0;var BN6=S(()=>{s0();K2();FN6=z.object({specversion:z.literal("1.0").describe("CloudEvents specification version"),id:z.string().describe("Unique identifier for this event (UUID recommended)"),source:z.string().describe("Connection ID of the event publisher"),type:z.string().describe("Event type (e.g., 'order.created', 'user.signup')"),time:z.string().datetime().optional().describe("Timestamp of when the event occurred (ISO 8601)"),subject:z.string().optional().describe("Subject/resource identifier (e.g., order ID, user ID)"),datacontenttype:z.string().optional().default("application/json").describe("Content type of the data attribute"),dataschema:z.string().url().optional().describe("URI to the schema for the data attribute"),data:z.unknown().optional().describe("Event payload (any JSON value)")}),VN6=z.object({events:z.array(FN6).min(1).describe("Batch of CloudEvents to process")}),$N6=z.object({success:z.boolean().optional().describe("Whether this event was processed successfully"),error:z.string().optional().describe("Error message for this event"),retryAfter:z.number().int().positive().optional().describe("Re-deliver this event after this many ms")}),qN6=z.object({success:z.boolean().optional().describe("Batch success - applies to events not in results"),error:z.string().optional().describe("Batch error message - applies to events not in results"),processedCount:z.number().int().min(0).optional().describe("Number of events successfully processed"),retryAfter:z.number().int().positive().optional().describe("Batch retryAfter - applies to events not in results"),results:z.record(z.string(),$N6).optional().describe("Per-event results keyed by event ID")}),zN6=[{name:"ON_EVENTS",inputSchema:VN6,outputSchema:qN6}],PG0=Gq(zN6)});var q2,z2,B2,U2,UN6,DN6,D2,O2,N2,L2,w2,M2,A2,T2,ON6,qJ1;var NN6=S(()=>{s0();K2();q2=z.object({type:z.string().min(1).max(255).describe("Event type identifier"),subject:z.string().max(255).optional().describe("Subject/resource identifier (e.g., order ID)"),data:z.unknown().optional().describe("Event payload"),deliverAt:z.string().datetime().optional().describe("Scheduled delivery time (ISO 8601). Omit for immediate delivery."),cron:z.string().max(100).optional().describe("Cron expression for recurring delivery. Use EVENT_CANCEL to stop.")}),z2=z.object({id:z.string().describe("Unique event ID"),type:z.string().describe("Event type"),source:z.string().describe("Source connection ID"),time:z.string().describe("Event timestamp")}),B2=z.object({eventType:z.string().min(1).max(255).describe("Event type to subscribe to"),publisher:z.string().optional().describe("Filter events by publisher connection ID"),filter:z.string().max(1000).optional().describe("JSONPath filter expression on event data")}),U2=z.object({subscription:z.object({id:z.string().describe("Subscription ID"),connectionId:z.string().describe("Subscriber connection ID"),eventType:z.string().describe("Event type pattern"),publisher:z.string().nullable().describe("Publisher connection filter"),filter:z.string().nullable().describe("JSONPath filter expression"),enabled:z.boolean().describe("Whether subscription is enabled"),createdAt:z.string().datetime().describe("Created timestamp (ISO 8601)"),updatedAt:z.string().datetime().describe("Updated timestamp (ISO 8601)")})}),UN6=z.object({eventType:z.string().min(1).max(255).describe("Event type to subscribe to"),publisher:z.string().optional().describe("Filter events by publisher connection ID"),filter:z.string().max(1000).optional().describe("JSONPath filter expression on event data")}),DN6=z.object({id:z.string().describe("Subscription ID"),connectionId:z.string().describe("Subscriber connection ID"),eventType:z.string().describe("Event type pattern"),publisher:z.string().nullable().describe("Publisher connection filter"),filter:z.string().nullable().describe("JSONPath filter expression"),enabled:z.boolean().describe("Whether subscription is enabled"),createdAt:z.string().datetime().describe("Created timestamp (ISO 8601)"),updatedAt:z.string().datetime().describe("Updated timestamp (ISO 8601)")}),D2=z.object({subscriptions:z.array(UN6).describe("Desired subscriptions - system will create/update/delete to match")}),O2=z.object({created:z.number().int().min(0).describe("Number of subscriptions created"),updated:z.number().int().min(0).describe("Number of subscriptions with filter updated"),deleted:z.number().int().min(0).describe("Number of subscriptions removed"),unchanged:z.number().int().min(0).describe("Number of subscriptions unchanged"),subscriptions:z.array(DN6).describe("Current subscriptions after sync")}),N2=z.object({subscriptionId:z.string().describe("Subscription ID to remove")}),L2=z.object({success:z.boolean().describe("Whether unsubscribe was successful"),subscriptionId:z.string().describe("Subscription ID that was removed")}),w2=z.object({eventId:z.string().describe("Event ID to cancel")}),M2=z.object({success:z.boolean().describe("Whether cancellation was successful"),eventId:z.string().describe("Event ID that was cancelled")}),A2=z.object({eventId:z.string().describe("Event ID to acknowledge")}),T2=z.object({success:z.boolean().describe("Whether ACK was successful"),eventId:z.string().describe("Event ID that was acknowledged")}),ON6=[{name:"EVENT_PUBLISH",inputSchema:q2,outputSchema:z2},{name:"EVENT_SUBSCRIBE",inputSchema:B2,outputSchema:U2},{name:"EVENT_UNSUBSCRIBE",inputSchema:N2,outputSchema:L2},{name:"EVENT_CANCEL",inputSchema:w2,outputSchema:M2},{name:"EVENT_ACK",inputSchema:A2,outputSchema:T2},{name:"EVENT_SYNC_SUBSCRIPTIONS",inputSchema:D2,outputSchema:O2}],qJ1=Gq(ON6)});var DB8,OB8,NB8,LB8,wB8,MB8,AB8,TB8,PB8,EB8,CB8,IB8;var LN6=S(()=>{s0();DB8=z.object({prefix:z.string().optional().describe("Filter objects by prefix (e.g., 'folder/' for folder contents)"),maxKeys:z.number().optional().default(1000).describe("Maximum number of keys to return (default: 1000)"),continuationToken:z.string().optional().describe("Token for pagination from previous response"),delimiter:z.string().optional().describe("Delimiter for grouping keys (typically '/'). When set, commonPrefixes returns folder paths.")}),OB8=z.object({objects:z.array(z.object({key:z.string().describe("Object key/path"),size:z.number().describe("Object size in bytes"),lastModified:z.string().describe("Last modified timestamp"),etag:z.string().describe("Entity tag for the object")})),nextContinuationToken:z.string().optional().describe("Token for fetching next page of results"),isTruncated:z.boolean().describe("Whether there are more results available"),commonPrefixes:z.array(z.string()).optional().describe("Folder paths when delimiter is used (e.g., ['photos/2024/', 'photos/2025/'])")}),NB8=z.object({key:z.string().describe("Object key/path to get metadata for")}),LB8=z.object({contentType:z.string().optional().describe("MIME type of the object"),contentLength:z.number().describe("Size of the object in bytes"),lastModified:z.string().describe("Last modified timestamp"),etag:z.string().describe("Entity tag for the object"),metadata:z.record(z.string(),z.string()).optional().describe("Custom metadata key-value pairs")}),wB8=z.object({key:z.string().describe("Object key/path to generate URL for"),expiresIn:z.number().optional().describe("URL expiration time in seconds (default: from state config or 3600)")}),MB8=z.object({url:z.string().describe("Presigned URL for downloading the object"),expiresIn:z.number().describe("Expiration time in seconds that was used")}),AB8=z.object({key:z.string().describe("Object key/path for the upload"),expiresIn:z.number().optional().describe("URL expiration time in seconds (default: from state config or 3600)"),contentType:z.string().optional().describe("MIME type for the object being uploaded")}),TB8=z.object({url:z.string().describe("Presigned URL for uploading the object"),expiresIn:z.number().describe("Expiration time in seconds that was used")}),PB8=z.object({key:z.string().describe("Object key/path to delete")}),EB8=z.object({success:z.boolean().describe("Whether the deletion was successful"),key:z.string().describe("The key that was deleted")}),CB8=z.object({keys:z.array(z.string()).max(1000).describe("Array of object keys/paths to delete (max 1000)")}),IB8=z.object({deleted:z.array(z.string()).describe("Array of successfully deleted keys"),errors:z.array(z.object({key:z.string(),message:z.string()})).describe("Array of errors for failed deletions")})});var Wu=S(()=>{K2();WN6();HN6();BN6();NN6();LN6()});var zJ1,BJ1,wN6;var MN6=S(()=>{s0();u5();zJ1=JO.extend({avatar:z.string().describe("URL or data URI to the assistant's avatar image"),system_prompt:z.string().describe("System prompt that defines the assistant's behavior"),virtual_mcp_id:z.string().describe("Virtual MCP ID to use for this assistant"),model:z.object({id:z.string().describe("Model ID"),connectionId:z.string().describe("Connection ID that provides the model")}).describe("Selected model reference for this assistant")}),BJ1=GO("assistant",zJ1),wN6=[...BJ1]});var P2,qK,TN6,UJ1,DJ1,PN6,OJ1,NJ1,LJ1,wJ1,MJ1,AJ1,EN6,TJ1,PJ1,EJ1,CJ1,IJ1,RJ1,jJ1,SJ1,kJ1,vJ1,iB8,_J1,aB8,AN6,yJ1,fJ1,EG0,Zu;var Ku=S(()=>{s0();K2();u5();P2=z.lazy(()=>z.union([z.null(),z.string(),z.number(),z.boolean(),z.record(z.string(),P2),z.array(P2)])),qK=z.record(z.string(),z.record(z.string(),P2)).optional().describe("Additional provider-specific options. Outer record keyed by provider name, inner by option key"),TN6=z.object({type:z.literal("text"),text:z.string().describe("The text content"),providerOptions:qK}),UJ1=z.object({type:z.literal("text"),text:z.string().describe("The text content"),providerMetadata:z.any().optional().describe("Additional provider-specific metadata")}),DJ1=z.string().describe("File data as URL string"),PN6=z.object({type:z.literal("file"),filename:z.string().optional().describe("Optional filename of the file"),data:DJ1,mediaType:z.string().describe("IANA media type of the file (e.g., image/png, audio/mp3)"),providerOptions:qK}),OJ1=z.object({type:z.literal("file"),mediaType:z.string().describe("IANA media type of the file (e.g., image/png, audio/mp3)"),data:z.string().describe("Generated file data as base64 encoded string")}),NJ1=z.object({type:z.literal("reasoning"),text:z.string().describe("The reasoning text"),providerOptions:qK}),LJ1=z.object({type:z.literal("reasoning"),text:z.string().describe("The reasoning text"),providerMetadata:z.any().optional().describe("Additional provider-specific metadata")}),wJ1=z.object({type:z.literal("tool-call"),toolCallId:z.string().describe("ID of the tool call, used to match with tool result"),toolName:z.string().describe("Name of the tool being called"),input:z.string().describe("Arguments of the tool call (JSON-serializable object matching tool input schema)"),providerExecuted:z.boolean().optional().describe("Whether the tool call will be executed by the provider"),providerOptions:qK}),MJ1=z.object({type:z.literal("tool-call"),toolCallId:z.string().describe("ID of the tool call"),toolName:z.string().describe("Name of the tool being called"),input:z.string().describe("Stringified JSON object with the tool call arguments"),providerExecuted:z.boolean().optional().describe("Whether the tool call will be executed by the provider"),providerMetadata:z.any().optional().describe("Additional provider-specific metadata")}),AJ1=z.union([z.object({type:z.literal("text"),value:z.string()}),z.object({type:z.literal("json"),value:P2}),z.object({type:z.literal("error-text"),value:z.string()}),z.object({type:z.literal("error-json"),value:P2}),z.object({type:z.literal("content"),value:z.array(z.union([z.object({type:z.literal("text"),text:z.string().describe("Text content")}),z.object({type:z.literal("media"),data:z.string().describe("Base-64 encoded media data"),mediaType:z.string().describe("IANA media type")})]))})]),EN6=z.object({type:z.literal("tool-result"),toolCallId:z.string().describe("ID of the tool call that this result is associated with"),toolName:z.string().describe("Name of the tool that generated this result"),output:AJ1.describe("Result of the tool call"),result:z.unknown().describe("Unknown result of the tool call"),providerOptions:qK}),TJ1=z.object({type:z.literal("tool-result"),toolCallId:z.string().describe("ID of the tool call that this result is associated with"),toolName:z.string().describe("Name of the tool that generated this result"),result:z.any().describe("Result of the tool call (JSON-serializable)"),isError:z.boolean().optional().describe("Whether the result is an error or error message"),providerExecuted:z.boolean().optional().describe("Whether the tool result was generated by the provider"),providerMetadata:z.any().optional().describe("Additional provider-specific metadata")}),PJ1=z.union([z.object({type:z.literal("source"),sourceType:z.literal("url"),id:z.string().describe("The ID of the source"),url:z.string().describe("The URL of the source"),title:z.string().optional().describe("The title of the source"),providerMetadata:z.any().optional().describe("Additional provider-specific metadata")}),z.object({type:z.literal("source"),sourceType:z.literal("document"),id:z.string().describe("The ID of the source"),mediaType:z.string().describe("IANA media type of the document (e.g., application/pdf)"),title:z.string().describe("The title of the document"),filename:z.string().optional().describe("Optional filename of the document"),providerMetadata:z.any().optional().describe("Additional provider-specific metadata")})]),EJ1=z.object({role:z.literal("system"),content:z.string().describe("System message content"),providerOptions:qK}),CJ1=z.object({role:z.literal("user"),content:z.array(z.union([TN6,PN6])).describe("User message content parts (text or file)"),providerOptions:qK}),IJ1=z.object({role:z.literal("assistant"),content:z.array(z.union([TN6,PN6,NJ1,wJ1,EN6])).describe("Assistant message content parts (text, file, reasoning, tool-call, or tool-result)"),providerOptions:qK}),RJ1=z.object({role:z.literal("tool"),content:z.array(EN6).describe("Tool message content (tool results)"),providerOptions:qK}),jJ1=z.union([EJ1,CJ1,IJ1,RJ1]),SJ1=z.array(jJ1).describe("A list of messages forming the prompt"),kJ1=z.object({prompt:SJ1.describe("A language model prompt is a standardized prompt type (array of messages with roles: system, user, assistant, tool)"),maxOutputTokens:z.number().optional().describe("Maximum number of tokens to generate"),temperature:z.number().optional().describe("Temperature setting. The range depends on the provider and model"),topP:z.number().optional().describe("Nucleus sampling parameter"),topK:z.number().optional().describe("Only sample from the top K options for each subsequent token. Used to remove long tail low probability responses"),presencePenalty:z.number().optional().describe("Presence penalty setting. It affects the likelihood of the model to repeat information that is already in the prompt"),frequencyPenalty:z.number().optional().describe("Frequency penalty setting. It affects the likelihood of the model to repeatedly use the same words or phrases"),seed:z.number().optional().describe("The seed (integer) to use for random sampling. If set and supported by the model, calls will generate deterministic results"),stopSequences:z.array(z.string()).optional().describe("Stop sequences. If set, the model will stop generating text when one of the stop sequences is generated"),responseFormat:z.union([z.object({type:z.literal("text")}),z.object({type:z.literal("json"),schema:z.any().optional().describe("JSON schema that the generated output should conform to"),name:z.string().optional().describe("Name of output that should be generated"),description:z.string().optional().describe("Description of the output that should be generated")})]).optional().describe("Response format. The output can either be text or JSON. Default is text"),tools:z.array(z.any()).optional().describe("The tools that are available for the model"),toolChoice:z.any().optional().describe("Specifies how the tool should be selected. Defaults to 'auto'"),includeRawChunks:z.boolean().optional().describe("Include raw chunks in the stream. Only applicable for streaming calls"),abortSignal:z.any().optional().describe("Abort signal for cancelling the operation"),providerOptions:z.any().optional().describe("Additional provider-specific options")}),vJ1=z.object({content:z.array(z.union([UJ1,OJ1,LJ1,MJ1,TJ1,PJ1])).describe("Ordered content that the model has generated (text, tool-calls, reasoning, files, sources)"),finishReason:z.enum(["stop","length","content-filter","tool-calls","error","other","unknown"]).describe("Reason why generation stopped"),usage:z.looseObject({inputTokens:z.number().optional(),outputTokens:z.number().optional(),totalTokens:z.number().optional(),reasoningTokens:z.number().optional()}).describe("Usage information for the language model call"),providerMetadata:z.any().optional().describe("Additional provider-specific metadata"),request:z.object({body:z.any().optional().describe("Request HTTP body sent to the provider API")}).optional().describe("Optional request information for telemetry and debugging"),response:z.object({id:z.string().optional().describe("ID for the generated response"),timestamp:z.iso.datetime().optional().describe("Timestamp for the start of the generated response"),modelId:z.string().optional().describe("The ID of the response model that was used"),headers:z.record(z.string(),z.string()).optional().describe("Response headers"),body:z.any().optional().describe("Response HTTP body")}).optional().describe("Optional response information for telemetry and debugging"),warnings:z.array(z.any()).describe("Warnings for the call, e.g. unsupported settings")}),iB8=z.object({stream:z.any().describe("ReadableStream of LanguageModelV2StreamPart"),request:z.object({body:z.any().optional().describe("Request HTTP body sent to the provider API")}).optional().describe("Optional request information for telemetry and debugging"),response:z.object({headers:z.record(z.string(),z.string()).optional().describe("Response headers")}).optional().describe("Optional response data")}),_J1=z.object({supportedUrls:z.record(z.string(),z.array(z.string())).describe("Supported URL patterns by media type for the provider")}),aB8=z.object({modelId:z.string().describe("The ID of the model"),logo:z.string().nullable(),description:z.string().nullable(),capabilities:z.array(z.string()),limits:z.object({contextWindow:z.number(),maxOutputTokens:z.number()}).nullable(),costs:z.object({input:z.number(),output:z.number()}).nullable(),provider:z.enum(["openai","anthropic","google","x-ai","deepseek","openai-compatible","openrouter"]).nullable()}),AN6=z.object({modelId:z.string().describe("The ID of the model"),callOptions:kJ1}),yJ1=JO.extend({logo:z.string().nullable(),description:z.string().nullable(),capabilities:z.array(z.string()),limits:z.object({contextWindow:z.number(),maxOutputTokens:z.number()}).nullable(),costs:z.object({input:z.number(),output:z.number()}).nullable(),provider:z.enum(["openai","anthropic","google","xai","deepseek","openai-compatible","openrouter"]).nullable()}),fJ1=GO("llm",yJ1,{readOnly:!0}),EG0=[{name:"LLM_METADATA",inputSchema:z.object({modelId:z.string().describe("The ID of the model")}),outputSchema:_J1},{name:"LLM_DO_STREAM",inputSchema:AN6,streamable:!0},{name:"LLM_DO_GENERATE",inputSchema:AN6,outputSchema:vJ1},...fJ1],Zu=Gq(EG0)});function bJ1(Y){let X=[],Q=0;while(Q<Y.length){let J=Y[Q];if(J==="%")X.push(".*");else if(J==="_")X.push(".");else if(/[.*+?^${}()|[\]\\]/.test(J))X.push("\\"+J);else X.push(J);Q++}return X.join("")}function g3(Y){return typeof Y==="string"||typeof Y==="number"}function Hu(Y,X){if("conditions"in X){let{operator:Z,conditions:H}=X;switch(Z){case"and":return H.every((F)=>Hu(Y,F));case"or":return H.some((F)=>Hu(Y,F));case"not":return!H.every((F)=>Hu(Y,F));default:return!0}}let{field:Q,operator:J,value:G}=X,K=Q.join("."),W=CG0(Y,K);switch(J){case"eq":return W===G;case"gt":return g3(W)&&g3(G)&&W>G;case"gte":return g3(W)&&g3(G)&&W>=G;case"lt":return g3(W)&&g3(G)&&W<G;case"lte":return g3(W)&&g3(G)&&W<=G;case"in":return Array.isArray(G)&&G.includes(W);case"like":if(typeof W!=="string"||typeof G!=="string")return!1;if(G.length>100)return!1;let Z=bJ1(G);return new RegExp(`^${Z}$`,"i").test(W);case"contains":if(typeof W!=="string"||typeof G!=="string")return!1;return W.toLowerCase().includes(G.toLowerCase());default:return!0}}function CG0(Y,X){let Q=X.split("."),J=Y;for(let G of Q){if(J==null||typeof J!=="object")return;J=J[G]}return J}function xJ1(Y,X){return[...Y].sort((Q,J)=>{for(let G of X){let K=G.field.join("."),W=CG0(Q,K),Z=CG0(J,K),H=0;if(W==null&&Z==null)continue;if(W==null)H=G.nulls==="first"?-1:1;else if(Z==null)H=G.nulls==="first"?1:-1;else if(typeof W==="string"&&typeof Z==="string")H=W.localeCompare(Z);else if(typeof W==="number"&&typeof Z==="number")H=W-Z;else H=String(W).localeCompare(String(Z));if(H!==0)return G.direction==="desc"?-H:H}return 0})}var hJ1,uJ1,gJ1,IG0;var CN6=S(()=>{Wu();MN6();u5();Ku();s0();z4();EW();hJ1={LLM:EG0,ASSISTANTS:wN6};uJ1=VK.extend({binding:z.union([z.object({}).passthrough(),z.string()]).optional()}),gJ1=$K(x5),IG0=J6({name:"COLLECTION_CONNECTIONS_LIST",description:"List all connections in the organization with filtering, sorting, and pagination",inputSchema:uJ1,outputSchema:gJ1,handler:async(Y,X)=>{await X.access.check();let Q=h6(X),J=Y.binding?typeof Y.binding==="string"?(()=>{let B=hJ1[Y.binding.toUpperCase()];if(!B)throw Error(`Unknown binding: ${Y.binding}`);return B})():Y.binding:void 0,G=J?Gu(J):void 0,W=(await X.storage.connections.list(Q.id)).filter((B)=>B.connection_type!=="VIRTUAL"),Z=G?await Promise.all(W.map(async(B)=>{if(!B.tools||B.tools.length===0)return null;return G.isImplementedBy(B.tools.map((O)=>({name:O.name,inputSchema:O.inputSchema,outputSchema:O.outputSchema})))?B:null})).then((B)=>B.filter((D)=>D!==null)):W;if(Y.where)Z=Z.filter((B)=>Hu(B,Y.where));if(Y.orderBy&&Y.orderBy.length>0)Z=xJ1(Z,Y.orderBy);let H=Z.length,F=Y.offset??0,V=Y.limit??100,$=Z.slice(F,F+V),q=F+V<H;return{items:$,totalCount:H,hasMore:q}}})});var mJ1,RG0;var IN6=S(()=>{u5();z4();EW();mJ1=F2(x5),RG0=J6({name:"COLLECTION_CONNECTIONS_GET",description:"Get connection details by ID",inputSchema:H2,outputSchema:mJ1,handler:async(Y,X)=>{let Q=h6(X);await X.access.check();let J=await X.storage.connections.findById(Y.id);if(!J||J.organization_id!==Q.id)return{item:null};return{item:J}}})});var Fu=(Y,X)=>{if(X===null||X===void 0)return;let Q=Y.replace(/\[(\w+)\]/g,".$1").split(".").filter(Boolean),J=X;for(let G of Q){if(J===null||J===void 0||typeof J!=="object")return;J=J[G]}return J};function RN6(Y){let X=Y.split("::");if(X.length!==2||!X[0]||!X[1])throw Error(`Invalid scope format: ${Y}. Expected format: "KEY::SCOPE"`);return X}function lJ1(Y){let X=Y.split("::");if(X.length!==2||!X[0]||!X[1])return null;return X}function dJ1(Y){if(typeof Y==="object"&&Y!==null&&"value"in Y){let X=Y.value;if(typeof X==="string")return X}return null}function jG0(Y,X){let Q={};if(!Y||!X)return Q;for(let J of X){if(J==="*"){Q["*"]=["*"];continue}let G=lJ1(J);if(!G)continue;let[K,W]=G,Z=Fu(K,Y),H=dJ1(Z);if(H){if(!Q[H])Q[H]=[];Q[H].push(W)}}return Q}function jN6(Y,X){let Q=jG0(Y,X);return new Set(Object.keys(Q).filter((J)=>J!=="*"))}var SG0=()=>{};class zK{db;vault;constructor(Y,X){this.db=Y;this.vault=X}async get(Y){let X=await this.db.selectFrom("downstream_tokens").selectAll().where("connectionId","=",Y).executeTakeFirst();if(!X)return null;return this.decryptToken(X)}async upsert(Y){let X=new Date().toISOString(),Q=await this.vault.encrypt(Y.accessToken),J=Y.refreshToken?await this.vault.encrypt(Y.refreshToken):null,G=Y.clientSecret?await this.vault.encrypt(Y.clientSecret):null;return await this.db.transaction().execute(async(K)=>{let W=await K.selectFrom("downstream_tokens").select(["id","createdAt"]).where("connectionId","=",Y.connectionId).executeTakeFirst();if(W)return await K.updateTable("downstream_tokens").set({accessToken:Q,refreshToken:J,scope:Y.scope,expiresAt:Y.expiresAt?.toISOString()??null,clientId:Y.clientId,clientSecret:G,tokenEndpoint:Y.tokenEndpoint,updatedAt:X}).where("id","=",W.id).execute(),{id:W.id,connectionId:Y.connectionId,accessToken:Y.accessToken,refreshToken:Y.refreshToken,scope:Y.scope,expiresAt:Y.expiresAt,createdAt:W.createdAt,updatedAt:X,clientId:Y.clientId,clientSecret:Y.clientSecret,tokenEndpoint:Y.tokenEndpoint};let Z=L9("dtok");return await K.insertInto("downstream_tokens").values({id:Z,connectionId:Y.connectionId,accessToken:Q,refreshToken:J,scope:Y.scope,expiresAt:Y.expiresAt?.toISOString()??null,clientId:Y.clientId,clientSecret:G,tokenEndpoint:Y.tokenEndpoint,createdAt:X,updatedAt:X}).execute(),{id:Z,connectionId:Y.connectionId,accessToken:Y.accessToken,refreshToken:Y.refreshToken,scope:Y.scope,expiresAt:Y.expiresAt,createdAt:X,updatedAt:X,clientId:Y.clientId,clientSecret:Y.clientSecret,tokenEndpoint:Y.tokenEndpoint}})}async delete(Y){await this.db.deleteFrom("downstream_tokens").where("connectionId","=",Y).execute()}isExpired(Y,X=0){if(!Y.expiresAt)return!1;let J=(Y.expiresAt instanceof Date?Y.expiresAt:new Date(Y.expiresAt)).getTime();if(Number.isNaN(J))return!0;return J-X<Date.now()}async decryptToken(Y){let X=await this.vault.decrypt(Y.accessToken),Q=Y.refreshToken?await this.vault.decrypt(Y.refreshToken):null,J=Y.clientSecret?await this.vault.decrypt(Y.clientSecret):null;return{id:Y.id,connectionId:Y.connectionId,accessToken:X,refreshToken:Q,scope:Y.scope,expiresAt:Y.expiresAt,createdAt:Y.createdAt,updatedAt:Y.updatedAt,clientId:Y.clientId,clientSecret:J,tokenEndpoint:Y.tokenEndpoint}}}var Vu=S(()=>{KK()});async function nJ1(Y,X,Q,J){for(let K of X){if(K==="*")continue;let[W]=RN6(K),Z=Fu(W,Y);if(Z===void 0||Z===null)throw Error(`Scope references key "${W}" but it's not present in state`)}let G=jN6(Y,X);for(let K of G){if(K.endsWith("_self"))continue;let W=await J.storage.connections.findById(K);if(!W||W.organization_id!==Q)throw Error(`Referenced connection not found: ${K}`);try{await J.access.check(K)}catch(Z){throw Error(`Access denied to referenced connection: ${K}. ${Z.message}`)}}}var pJ1,cJ1,kG0;var SN6=S(()=>{SG0();Vu();s0();z4();px();EW();pJ1=z.object({id:z.string().describe("ID of the connection to update"),data:SU6.describe("Partial connection data to update")}),cJ1=z.object({item:x5.describe("The updated connection entity")});kG0=J6({name:"COLLECTION_CONNECTIONS_UPDATE",description:"Update an existing MCP connection in the organization",inputSchema:pJ1,outputSchema:cJ1,handler:async(Y,X)=>{O6(X);let Q=h6(X);if(await X.access.check(),!Q9(X))throw Error("User ID required to update connection");let{id:G,data:K}=Y,W=await X.storage.connections.findById(G);if(!W||W.organization_id!==Q.id)throw Error("Connection not found in organization");let Z=K.connection_type??W.connection_type,H=K.connection_url??W.connection_url;if(Z==="VIRTUAL"){let L=h3(H);if(!L)throw Error("VIRTUAL connection requires connection_url in format: virtual://$virtual_mcp_id");let w=await X.storage.virtualMcps.findById(L);if(!w)throw Error(`Virtual MCP not found: ${L}`);if(w.organization_id!==Q.id)throw Error("Virtual MCP does not belong to the current organization");H=xx(L)}let F=K.configuration_state??W.configuration_state,V=K.configuration_scopes??W.configuration_scopes??[];if(K.configuration_state!==void 0||K.configuration_scopes!==void 0){if(K.configuration_state!==void 0)F=K.configuration_state;else if(F===null)F={};if(K.configuration_scopes!==void 0)V=K.configuration_scopes??[];if(V.length>0&&F)await nJ1(F,V,Q.id,X)}let $=K.connection_token??W.connection_token;if(!$)try{let w=await new zK(X.db,X.vault).get(G);if(w?.accessToken)$=w.accessToken}catch{}let q=await rD({id:W.id,title:K.title??W.title,connection_type:Z,connection_url:H,connection_token:$,connection_headers:K.connection_headers??W.connection_headers}).catch(()=>null),B=q?.length?q:null,D={...K,connection_url:H,tools:B,configuration_state:F,configuration_scopes:V},O=await X.storage.connections.update(G,D);if((K.configuration_state!==void 0||K.configuration_scopes!==void 0)&&F&&V.length>0)try{await(await X.createMCPProxy(G)).client.callTool({name:"ON_MCP_CONFIGURATION",arguments:{state:F,scopes:V}})}catch(L){console.error("Failed to invoke ON_MCP_CONFIGURATION callback",L)}return{item:O}}})});var vG0;var kN6=S(()=>{u5();z4();EW();vG0=J6({name:"COLLECTION_CONNECTIONS_DELETE",description:"Delete a connection",inputSchema:V2,outputSchema:$2(x5),handler:async(Y,X)=>{O6(X);let Q=h6(X);await X.access.check();let J=await X.storage.connections.findById(Y.id);if(!J)throw Error(`Connection not found: ${Y.id}`);if(J.organization_id!==Q.id)throw Error("Connection not found in organization");return await X.storage.connections.delete(Y.id),{item:J}}})});var _G0;var vN6=S(()=>{s0();z4();_G0=J6({name:"CONNECTION_TEST",description:"Test connection health and latency",inputSchema:z.object({id:z.string()}),outputSchema:z.object({id:z.string(),healthy:z.boolean(),latencyMs:z.number()}),handler:async(Y,X)=>{let Q=h6(X);await X.access.check();let J=await X.storage.connections.findById(Y.id);if(!J||J.organization_id!==Q.id)throw Error("Connection not found");let G=await X.storage.connections.testConnection(Y.id);return{id:Y.id,...G}}})});var _N6=S(()=>{aO6();CN6();IN6();SN6();kN6();vN6()});import{sql as K1}from"kysely";function yN6(Y){if(Y===null||Y===void 0)return"NULL";if(typeof Y==="number")return String(Y);if(typeof Y==="boolean")return Y?"TRUE":"FALSE";if(typeof Y==="string")return`'${Y.replace(/'/g,"''")}'`;if(Y instanceof Date)return`'${Y.toISOString()}'`;return`'${JSON.stringify(Y).replace(/'/g,"''")}'`}function rJ1(Y,X){let Q=Y;for(let G=X.length;G>=1;G--){let K=`$${G}`;if(Q.includes(K))Q=Q.replaceAll(K,yN6(X[G-1]))}let J=[];for(let G=0;G<Q.length;G++)if(Q[G]==="?")J.push(G);for(let G=Math.min(J.length,X.length)-1;G>=0;G--){let K=J[G],W=yN6(X[G]);Q=Q.slice(0,K)+W+Q.slice(K+1)}return Q}function fN6(Y){return Y.replace(/-/g,"_")}function sJ1(Y){return`app_${fN6(Y)}`}function tJ1(Y){return`app_role_${fN6(Y)}`}function eJ1(Y){if(Y instanceof Error){let X=Y.message.toLowerCase(),Q=Y.code;return Q==="3F000"||Q==="42704"||X.includes("schema")&&X.includes("does not exist")||X.includes("role")&&X.includes("does not exist")}return!1}async function Y51(Y,X,Q){if(await K1`CREATE SCHEMA IF NOT EXISTS ${K1.id(X)}`.execute(Y),!(await K1`
|
|
1182
|
+
${X.stack}`;return G}}catch{}if(typeof X.toString==="function")try{let G=X.toString();if(G!=="[object Object]")return G}catch{}let J=Object.keys(X);if(J.length>0)return`Object with keys: ${J.join(", ")}`;return"[object Object]"}if(typeof Y==="string")return Y;if(typeof Y==="number"||typeof Y==="boolean")return String(Y);if(typeof Y==="function")return`[Function: ${Y.name||"anon"}]`;if(typeof Y==="symbol")return Y.toString();if(typeof Y==="bigint")return Y.toString();try{return String(Y)}catch{return"Unknown value (could not convert to string)"}}function YO(Y,X){switch(typeof X){case"string":return Y.newString(X);case"number":return Y.newNumber(X);case"boolean":return X?Y.true:Y.false;case"undefined":return Y.undefined;case"object":{if(X===null)return Y.null;if(Array.isArray(X)){let J=Y.newArray();return X.forEach((G,K)=>{let W=YO(Y,G);try{Y.setProp(J,String(K),W)}finally{W.dispose?.()}}),J}let Q=Y.newObject();for(let[J,G]of Object.entries(X)){let K=YO(Y,G);try{Y.setProp(Q,J,K)}finally{K.dispose?.()}}return Q}case"function":{let Q=`__hostFn_${Date.now()}_${Math.random().toString(36).substr(2,9)}`;return Y.newFunction(Q,(...G)=>{try{let K=G.map((Z)=>Y.dump(Z)),W=X(...K);if(W&&typeof W.then==="function"){let Z=Y.newPromise();return W.then((H)=>{try{let F=YO(Y,H);Z.resolve(F),F.dispose(),Y.runtime.executePendingJobs()}catch(F){let V=eD(F),$=Y.newString(`Promise resolution error: ${V}`);Z.reject($),$.dispose(),Y.runtime.executePendingJobs()}}).catch((H)=>{let F=eD(H),V=Y.newString(`Promise rejection: ${F}`);Z.reject(V),V.dispose(),Y.runtime.executePendingJobs()}),Z.handle}return YO(Y,W)}catch(K){let W=eD(K);return Y.newString(`HostFunctionError: ${W}`)}finally{G.forEach((K)=>K.dispose())}})}case"bigint":return Y.newString(X.toString());case"symbol":return Y.newString(X.toString());default:try{return Y.newString(String(X))}catch{return Y.undefined}}}var xO6=()=>{};function gO6(Y){let X=Y.runtime.executePendingJobs(100);try{if("unwrap"in X&&typeof X.unwrap==="function")X.unwrap()}finally{if("dispose"in X&&typeof X.dispose==="function")X.dispose()}}async function uO6(Y,X,Q){let J=Date.now(),G=Y.resolvePromise(X);while(!0){gO6(Y);let K=await Promise.race([G,HQ1(0).then(()=>null)]);if(K!==null)return K;if(Date.now()-J>Q)throw Error(`Timed out after ${Q}ms while awaiting a QuickJS promise`)}}async function DG0({tools:Y,code:X,timeoutMs:Q}){let W=[];try{let J=await hO6({memoryLimitBytes:33554432,stackSizeBytes:524288});const G=Hg(W,J.newContext({interruptAfterMs:Q}),0);const K=Hg(W,FO6(G),0);try{let V=G.evalCode(X,"index.mjs",{strip:!0,strict:!0,type:"module"}),$=G.unwrapResult(V),q=YO(G,Y);G.setProp(G.global,"tools",q);let B=G.runtime.hasPendingJob()?G.unwrapResult(await uO6(G,$,Q)):$;if(B!==$)$.dispose();let D=G.getProp(B,"default"),O=G.typeof(D);if(O!=="function")return{error:`Code must export default a function (tools). Got ${O}. Example: export default async (tools) => { /* ... */ }`,consoleLogs:K.logs};let L=G.callFunction(D,G.undefined,q),w=G.unwrapResult(L),I=await uO6(G,w,Q),T=G.unwrapResult(I);if(G.runtime.hasPendingJob())gO6(G);return{returnValue:G.dump(T),consoleLogs:K.logs}}catch(V){return console.log(V),{error:eD(V),consoleLogs:K.logs}}}catch(Z){var H=Z,F=1}finally{GZ0(W,H,F)}}var HQ1=(Y)=>new Promise((X)=>setTimeout(X,Y));var mO6=S(()=>{bO6();xO6()});var lO6=S(()=>{mO6()});async function FQ1(Y,X){let Q;if(Y.tool_selection_mode==="exclusion"){let G=(await X.storage.connections.list(Y.organization_id)).filter((W)=>W.status==="active"),K=new Map;for(let W of Y.connections)K.set(W.connection_id,{selectedTools:W.selected_tools,selectedResources:W.selected_resources,selectedPrompts:W.selected_prompts});Q=[];for(let W of G){let Z=K.get(W.id);if(Z===void 0)Q.push({connection:W,selectedTools:null,selectedResources:null,selectedPrompts:null});else if((Z.selectedTools===null||Z.selectedTools.length===0)&&(Z.selectedResources===null||Z.selectedResources.length===0)&&(Z.selectedPrompts===null||Z.selectedPrompts.length===0));else Q.push({connection:W,selectedTools:Z.selectedTools,selectedResources:Z.selectedResources,selectedPrompts:Z.selectedPrompts})}}else{let J=Y.connections.map((K)=>K.connection_id),G=[];for(let K of J){let W=await X.storage.connections.findById(K);if(W&&W.status==="active")G.push(W)}Q=G.map((K)=>{let W=Y.connections.find((Z)=>Z.connection_id===K.id);return{connection:K,selectedTools:W?.selected_tools??null,selectedResources:W?.selected_resources??null,selectedPrompts:W?.selected_prompts??null}})}return Q}async function dO6(Y,X){return(await X.storage.connections.list(Y)).filter((J)=>J.status==="active").map((J)=>({connection:J,selectedTools:null,selectedResources:null,selectedPrompts:null}))}async function VQ1(Y,X,Q){let J=await sD.create(Y,Q),G=await J.mapSettled(async(V,$)=>{try{let B=(await V.proxy.client.listTools()).tools;if(X==="exclusion"){if(V.selectedTools&&V.selectedTools.length>0){let D=new Set(V.selectedTools);B=B.filter((O)=>!D.has(O.name))}}else if(V.selectedTools&&V.selectedTools.length>0){let D=new Set(V.selectedTools);B=B.filter((O)=>D.has(O.name))}return{connectionId:$,connectionTitle:V.connection.title,tools:B}}catch(q){return console.error(`[code-execution] Failed to list tools for connection ${$}:`,q),null}}),K=new Set,W=[],Z=new Map,H=new Set;for(let V of G){if(V.status!=="fulfilled"||!V.value)continue;let{connectionId:$,connectionTitle:q,tools:B}=V.value;H.add(q);for(let D of B){if(K.has(D.name))continue;K.add(D.name),W.push({...D,_meta:{connectionId:$,connectionTitle:q}}),Z.set(D.name,{connectionId:$,originalName:D.name})}}return{tools:W,callTool:async(V,$)=>{let q=Z.get(V);if(!q)return{content:[{type:"text",text:`Tool not found: ${V}`}],isError:!0};let B=J.get(q.connectionId);if(!B)return{content:[{type:"text",text:`Connection not found for tool: ${V}`}],isError:!0};return await B.proxy.client.callTool({name:q.originalName,arguments:$})},categories:Array.from(H).sort()}}async function XO(Y){let X=h6(Y),Q,J="inclusion";if(Y.connectionId){let G=await Y.storage.virtualMcps.findById(Y.connectionId);if(G)Q=await FQ1(G,Y),J=G.tool_selection_mode;else Q=await dO6(X.id,Y)}else Q=await dO6(X.id,Y);return VQ1(Q,J,Y)}function $Q1(Y){return Y.toLowerCase().split(/[\s_\-./]+/).filter((X)=>X.length>=2)}function qQ1(Y,X){let Q=0,J=X.name.toLowerCase(),G=(X.description??"").toLowerCase(),K=X._meta.connectionTitle.toLowerCase();for(let W of Y){if(J===W)Q+=10;else if(J.includes(W))Q+=3;if(G.includes(W))Q+=2;if(K.includes(W))Q+=1}return Q}function sx(Y,X,Q){let J=$Q1(Y);if(J.length===0)return X.slice(0,Q);return X.map((G)=>({tool:G,score:qQ1(J,G)})).filter((G)=>G.score>0).sort((G,K)=>K.score-G.score).slice(0,Q).map((G)=>G.tool)}function tx(Y,X){let Q=new Map(X.map((G)=>[G.name,G]));return{tools:Y.map((G)=>Q.get(G)).filter((G)=>G!==void 0).map((G)=>({name:G.name,description:G.description,connection:G._meta.connectionTitle,inputSchema:G.inputSchema,outputSchema:G.outputSchema})),notFound:Y.filter((G)=>!Q.has(G))}}async function ex(Y,X,Q){let J=Object.fromEntries(X.tools.map((G)=>[G.name,async(K)=>X.callTool(G.name,K??{})]));return DG0({code:Y,tools:J,timeoutMs:Q})}function Yu(Y){return{content:[{type:"text",text:JSON.stringify(Y,null,2)}]}}function QO(Y){return{content:[{type:"text",text:JSON.stringify(Y,null,2)}],isError:!0}}function G2(Y){let X=new Set(zQ1);return Y.filter((Q)=>!X.has(Q.name))}var zQ1;var W2=S(()=>{lO6();zQ1=["CODE_EXECUTION_SEARCH_TOOLS","CODE_EXECUTION_DESCRIBE_TOOLS","CODE_EXECUTION_RUN_CODE"]});var OG0;var pO6=S(()=>{z4();Q2();W2();OG0=J6({name:"CODE_EXECUTION_SEARCH_TOOLS",description:"Search for available tools by name or description. Returns tool names and brief descriptions without full schemas. Use this to discover tools before calling CODE_EXECUTION_DESCRIBE_TOOLS for detailed schemas.",inputSchema:JO6,outputSchema:GO6,handler:async(Y,X)=>{O6(X),h6(X),await X.access.check();let Q=await XO(X),J=sx(Y.query,Q.tools,Y.limit);return{query:Y.query,results:J.map((G)=>({name:G.name,description:G.description,connection:G._meta.connectionTitle})),totalAvailable:Q.tools.length}}})});var NG0;var cO6=S(()=>{z4();Q2();W2();NG0=J6({name:"CODE_EXECUTION_DESCRIBE_TOOLS",description:"Get detailed schemas for specific tools. Call after CODE_EXECUTION_SEARCH_TOOLS to get full input/output schemas before executing code.",inputSchema:WO6,outputSchema:ZO6,handler:async(Y,X)=>{O6(X),h6(X),await X.access.check();let Q=await XO(X);return tx(Y.tools,Q.tools)}})});var LG0;var nO6=S(()=>{z4();Q2();W2();LG0=J6({name:"CODE_EXECUTION_RUN_CODE",description:'Run JavaScript code in a sandbox. Code must be an ES module that `export default`s an async function that receives (tools) as its first parameter. Use CODE_EXECUTION_DESCRIBE_TOOLS to understand the input/output schemas for a tool before calling it. Use `await tools.toolName(args)` or `await tools["tool-name"](args)` to call tools.',inputSchema:KO6,outputSchema:HO6,handler:async(Y,X)=>{O6(X),h6(X),await X.access.check();let Q=await XO(X);return await ex(Y.code,Q,Y.timeoutMs)}})});var iO6=S(()=>{pO6();cO6();nO6();Q2()});var UQ1,DQ1,wG0;var aO6=S(()=>{nP();s0();z4();px();EW();UQ1=z.object({data:jU6.describe("Data for the new connection (id is auto-generated if not provided)")}),DQ1=z.object({item:x5.describe("The created connection entity")}),wG0=J6({name:"COLLECTION_CONNECTIONS_CREATE",description:"Create a new MCP connection in the organization",inputSchema:UQ1,outputSchema:DQ1,handler:async(Y,X)=>{O6(X);let Q=h6(X);await X.access.check();let J=Q9(X);if(!J)throw Error("User ID required to create connection");let G={...Y.data,organization_id:Q.id,created_by:J};if(G.connection_type==="VIRTUAL"){let H=h3(G.connection_url);if(!H)throw Error("VIRTUAL connection requires connection_url in format: virtual://$virtual_mcp_id");let F=await X.storage.virtualMcps.findById(H);if(!F)throw Error(`Virtual MCP not found: ${H}`);if(F.organization_id!==Q.id)throw Error("Virtual MCP does not belong to the current organization");G.connection_url=xx(H)}let K=await rD({id:`pending-${Date.now()}`,title:G.title,connection_type:G.connection_type,connection_url:G.connection_url,connection_token:G.connection_token,connection_headers:G.connection_headers}).catch(()=>null),W=K?.length?K:null,Z=await X.storage.connections.create({...G,tools:W});return await X.eventBus.publish(Q.id,i$.SELF(Q.id),{type:"connection.created",data:Z}),{item:Z}}})});function Z2(Y,X){if(Y===X)return!0;if(Y==null||X==null)return Y===X;if(typeof Y!==typeof X)return!1;if(Array.isArray(Y)&&Array.isArray(X)){if(Y.length!==X.length)return!1;return Y.every((Q,J)=>Z2(Q,X[J]))}if(typeof Y==="object"&&typeof X==="object"){let Q=Object.keys(Y),J=Object.keys(X);if(Q.length!==J.length)return!1;return Q.every((G)=>J.includes(G)&&Z2(Y[G],X[G]))}return!1}function uQ1(){return(Y)=>{if(!Array.isArray(Y))return!0;let X=[];return Y.every((Q)=>{if(X.some((G)=>Z2(Q,G)))return!1;return X.push(Q),!0})}}function Xu(Y,X){return Y.safeParse(X).success}function eY(Y){if(typeof Y==="boolean")return Y?z.any():z.never();let X={};for(let G of eQ1)G.apply(X,Y);let Q=[];if(X.string!==!1)Q.push(X.string||z.string());if(X.number!==!1)Q.push(X.number||z.number());if(X.boolean!==!1)Q.push(X.boolean||z.boolean());if(X.null!==!1)Q.push(X.null||z.null());if(X.array!==!1)Q.push(X.array||z.array(z.any()));if(X.tuple!==!1&&X.tuple!==void 0)Q.push(X.tuple);if(X.object!==!1)if(X.object)Q.push(X.object);else{let G=z.custom((K)=>{return typeof K==="object"&&K!==null&&!Array.isArray(K)},"Must be an object, not an array");Q.push(G)}if(X.file!==!1&&X.file!==void 0)Q.push(X.file);let J;if(Q.length===0)J=z.never();else if(Q.length===1)J=Q[0];else if(!Object.keys(Y).some((K)=>K!=="$schema"&&K!=="title"&&K!=="description"))J=z.any();else J=z.union(Q);for(let G of YJ1)J=G.apply(J,Y);return J}var OQ1=class{apply(Y,X){if(!X.type)return;let Q=Array.isArray(X.type)?X.type:[X.type],J=new Set(Q);if(!J.has("string"))Y.string=!1;if(!J.has("number")&&!J.has("integer"))Y.number=!1;if(!J.has("boolean"))Y.boolean=!1;if(!J.has("null"))Y.null=!1;if(!J.has("array"))Y.array=!1;if(!J.has("object"))Y.object=!1;if(J.has("integer")&&Y.number!==!1){let G=Y.number||z.number();if(G instanceof z.ZodNumber)Y.number=G.int()}}},NQ1=class{apply(Y,X){if(X.const===void 0)return;let Q=X.const;if(Y.string=!1,Y.number=!1,Y.boolean=!1,Y.null=!1,Y.array=!1,Y.object=!1,typeof Q==="string")Y.string=z.literal(Q);else if(typeof Q==="number")Y.number=z.literal(Q);else if(typeof Q==="boolean")Y.boolean=z.literal(Q);else if(Q===null)Y.null=z.null();else if(Array.isArray(Q))Y.array=void 0;else if(typeof Q==="object")Y.object=void 0}},LQ1=class{apply(Y,X){if(!X.enum)return;if(X.enum.length===0){if(!X.type)Y.string=!1,Y.number=!1,Y.boolean=!1,Y.null=!1,Y.array=!1,Y.object=!1;return}let Q={string:X.enum.filter((J)=>typeof J==="string"),number:X.enum.filter((J)=>typeof J==="number"),boolean:X.enum.filter((J)=>typeof J==="boolean"),null:X.enum.filter((J)=>J===null),array:X.enum.filter((J)=>Array.isArray(J)),object:X.enum.filter((J)=>typeof J==="object"&&J!==null&&!Array.isArray(J))};Y.string=this.createTypeSchema(Q.string,"string"),Y.number=this.createTypeSchema(Q.number,"number"),Y.boolean=this.createTypeSchema(Q.boolean,"boolean"),Y.null=Q.null.length>0?z.null():!1,Y.array=Q.array.length>0?void 0:!1,Y.object=Q.object.length>0?void 0:!1}createTypeSchema(Y,X){if(Y.length===0)return!1;if(Y.length===1)return z.literal(Y[0]);if(X==="string")return z.enum(Y);if(X==="number"){let[Q,J,...G]=Y;return z.union([z.literal(Q),z.literal(J),...G.map((K)=>z.literal(K))])}if(X==="boolean")return z.union([z.literal(!0),z.literal(!1)]);return!1}},wQ1=class{apply(Y,X){let Q=X;if(Q.type==="string"&&Q.format==="binary"&&Q.contentEncoding==="binary"){let J=z.file();if(Q.minLength!==void 0)J=J.min(Q.minLength);if(Q.maxLength!==void 0)J=J.max(Q.maxLength);if(Q.contentMediaType!==void 0)J=J.mime(Q.contentMediaType);Y.file=J,Y.string=!1}}},MQ1=class{apply(Y,X){let Q=X;if(X.type===void 0&&(Q.minLength!==void 0||Q.maxLength!==void 0||Q.pattern!==void 0)){if(Y.string===void 0)Y.string=z.string()}}},AQ1=class{apply(Y,X){let Q=X;if(Q.minLength===void 0)return;if(Y.string!==!1){let J=Y.string||z.string();if(J instanceof z.ZodString)Y.string=J.refine((G)=>{return Array.from(G).length>=Q.minLength},{message:`String must be at least ${Q.minLength} characters long`})}}},TQ1=class{apply(Y,X){let Q=X;if(Q.maxLength===void 0)return;if(Y.string!==!1){let J=Y.string||z.string();if(J instanceof z.ZodString)Y.string=J.refine((G)=>{return Array.from(G).length<=Q.maxLength},{message:`String must be at most ${Q.maxLength} characters long`})}}},PQ1=class{apply(Y,X){let Q=X;if(!Q.pattern)return;if(Y.string!==!1){let J=Y.string||z.string();if(J instanceof z.ZodString){let G=new RegExp(Q.pattern);Y.string=J.regex(G)}}}},EQ1=class{apply(Y,X){let Q=X;if(Q.minimum===void 0)return;if(Y.number!==!1){let J=Y.number||z.number();if(J instanceof z.ZodNumber)Y.number=J.min(Q.minimum)}}},CQ1=class{apply(Y,X){let Q=X;if(Q.maximum===void 0)return;if(Y.number!==!1){let J=Y.number||z.number();if(J instanceof z.ZodNumber)Y.number=J.max(Q.maximum)}}},IQ1=class{apply(Y,X){let Q=X;if(Q.exclusiveMinimum===void 0)return;if(Y.number!==!1){let J=Y.number||z.number();if(J instanceof z.ZodNumber)if(typeof Q.exclusiveMinimum==="number")Y.number=J.gt(Q.exclusiveMinimum);else Y.number=!1}}},RQ1=class{apply(Y,X){let Q=X;if(Q.exclusiveMaximum===void 0)return;if(Y.number!==!1){let J=Y.number||z.number();if(J instanceof z.ZodNumber)if(typeof Q.exclusiveMaximum==="number")Y.number=J.lt(Q.exclusiveMaximum);else Y.number=!1}}},jQ1=class{apply(Y,X){let Q=X;if(Q.multipleOf===void 0)return;if(Y.number!==!1){let J=Y.number||z.number();if(J instanceof z.ZodNumber)Y.number=J.refine((G)=>{if(Q.multipleOf===0)return!1;let K=G/Q.multipleOf,W=Math.round(K),Z=Math.min(Math.abs(G)*Number.EPSILON*10,Math.abs(Q.multipleOf)*Number.EPSILON*10);return Math.abs(K-W)<=Z/Math.abs(Q.multipleOf)},{message:`Must be a multiple of ${Q.multipleOf}`})}}},SQ1=class{apply(Y,X){let Q=X;if(X.type===void 0&&(Q.minItems!==void 0||Q.maxItems!==void 0||Q.items!==void 0||Q.prefixItems!==void 0)){if(Y.array===void 0)Y.array=z.array(z.any())}}},kQ1=class{apply(Y,X){let Q=X;if(Q.minItems===void 0)return;if(Y.array!==!1)Y.array=(Y.array||z.array(z.any())).min(Q.minItems)}},vQ1=class{apply(Y,X){let Q=X;if(Q.maxItems===void 0)return;if(Y.array!==!1)Y.array=(Y.array||z.array(z.any())).max(Q.maxItems)}},_Q1=class{apply(Y,X){let Q=X;if(Y.array===!1)return;if(Array.isArray(Q.items))Y.array=Y.array||z.array(z.any());else if(Q.items&&typeof Q.items!=="boolean"&&!Q.prefixItems){let J=eY(Q.items),G=z.array(J);if(Y.array&&Y.array instanceof z.ZodArray){let K=Y.array._def;if(K.checks)K.checks.forEach((W)=>{if(W._zod&&W._zod.def){let Z=W._zod.def;if(Z.check==="min_length"&&Z.minimum!==void 0)G=G.min(Z.minimum);else if(Z.check==="max_length"&&Z.maximum!==void 0)G=G.max(Z.maximum)}})}Y.array=G}else if(typeof Q.items==="boolean"&&Q.items===!1)if(!Q.prefixItems)Y.array=z.array(z.any()).max(0);else Y.array=Y.array||z.array(z.any());else if(typeof Q.items==="boolean"&&Q.items===!0)Y.array=Y.array||z.array(z.any());else if(Q.prefixItems)Y.array=Y.array||z.array(z.any())}},yQ1=class{apply(Y,X){if(X.type!=="array")return;let Q=X;if(!Array.isArray(Q.items))return;if(Y.array===!1)return;let J=Q.items.map((K)=>eY(K)),G;if(J.length===0)G=z.tuple([]);else G=z.tuple(J);if(Q.minItems!==void 0&&Q.minItems>J.length)G=!1;if(Q.maxItems!==void 0&&Q.maxItems<J.length)G=!1;Y.tuple=G,Y.array=!1}},fQ1=class{apply(Y,X){let Q=X;if(Y.object===!1)return;if(Q.properties||Q.required||Q.additionalProperties!==void 0)Y.object=Y.object||z.object({}).passthrough()}},hQ1=class{apply(Y,X){let Q=X;if(X.type===void 0&&(Q.maxProperties!==void 0||Q.minProperties!==void 0)){if(Y.object===void 0)Y.object=z.object({}).passthrough()}}},bQ1=class{apply(Y,X){let Q=X;if(Q.maxProperties===void 0)return;if(Y.object!==!1){let J=Y.object||z.object({}).passthrough();Y.object=J.refine((G)=>Object.keys(G).length<=Q.maxProperties,{message:`Object must have at most ${Q.maxProperties} properties`})}}},xQ1=class{apply(Y,X){let Q=X;if(Q.minProperties===void 0)return;if(Y.object!==!1){let J=Y.object||z.object({}).passthrough();Y.object=J.refine((G)=>Object.keys(G).length>=Q.minProperties,{message:`Object must have at least ${Q.minProperties} properties`})}}},gQ1=class{apply(Y,X){if(!X.not)return Y;let Q=eY(X.not);return Y.refine((J)=>!Xu(Q,J),{message:"Value must not match the 'not' schema"})}},mQ1=class{apply(Y,X){if(X.uniqueItems!==!0)return Y;return Y.refine(uQ1(),{message:"Array items must be unique"})}},lQ1=class{apply(Y,X){if(!X.allOf||X.allOf.length===0)return Y;return X.allOf.map((J)=>eY(J)).reduce((J,G)=>z.intersection(J,G),Y)}},dQ1=class{apply(Y,X){if(!X.anyOf||X.anyOf.length===0)return Y;let Q=X.anyOf.length===1?eY(X.anyOf[0]):z.union([eY(X.anyOf[0]),eY(X.anyOf[1]),...X.anyOf.slice(2).map((J)=>eY(J))]);return z.intersection(Y,Q)}},pQ1=class{apply(Y,X){if(!X.oneOf||X.oneOf.length===0)return Y;let Q=X.oneOf.map((J)=>eY(J));return Y.refine((J)=>{let G=0;for(let K of Q)if(K.safeParse(J).success){if(G++,G>1)return!1}return G===1},{message:"Value must match exactly one of the oneOf schemas"})}},cQ1=class{apply(Y,X){let Q=X;if(Q.prefixItems&&Array.isArray(Q.prefixItems)){let G=Q.prefixItems.map((K)=>eY(K));return Y.refine((K)=>{if(!Array.isArray(K))return!0;for(let W=0;W<Math.min(K.length,G.length);W++)if(!Xu(G[W],K[W]))return!1;if(K.length>G.length){if(typeof Q.items==="boolean"&&Q.items===!1)return!1;else if(Q.items&&typeof Q.items==="object"&&!Array.isArray(Q.items)){let W=eY(Q.items);for(let Z=G.length;Z<K.length;Z++)if(!Xu(W,K[Z]))return!1}}return!0},{message:"Array does not match prefixItems schema"})}return Y}},nQ1=class{apply(Y,X){let Q=X;if(!Q.properties&&!Q.required&&Q.additionalProperties!==!1)return Y;if(Y instanceof z.ZodObject||Y instanceof z.ZodRecord){let J={};if(Q.properties){for(let[G,K]of Object.entries(Q.properties))if(K!==void 0)J[G]=eY(K)}if(Q.required&&Array.isArray(Q.required)){let G=new Set(Q.required);for(let K of Object.keys(J))if(!G.has(K))J[K]=J[K].optional()}else for(let G of Object.keys(J))J[G]=J[G].optional();if(Q.additionalProperties===!1)return z.object(J);else return z.object(J).passthrough()}return Y.refine((J)=>{if(typeof J!=="object"||J===null||Array.isArray(J))return!0;if(Q.properties){for(let[G,K]of Object.entries(Q.properties))if(K!==void 0){if(Object.getOwnPropertyDescriptor(J,G)!==void 0){if(!eY(K).safeParse(J[G]).success)return!1}}}if(Q.required&&Array.isArray(Q.required)){for(let G of Q.required)if(Object.getOwnPropertyDescriptor(J,G)===void 0)return!1}if(Q.additionalProperties===!1&&Q.properties){let G=new Set(Object.keys(Q.properties));for(let K in J)if(!G.has(K))return!1}return!0},{message:"Object constraints validation failed"})}},iQ1=class{apply(Y,X){if(!X.enum||X.enum.length===0)return Y;let Q=X.enum.filter((J)=>Array.isArray(J)||typeof J==="object"&&J!==null);if(Q.length===0)return Y;return Y.refine((J)=>{if(typeof J!=="object"||J===null)return!0;return Q.some((G)=>Z2(J,G))},{message:"Value must match one of the enum values"})}},aQ1=class{apply(Y,X){if(X.const===void 0)return Y;let Q=X.const;if(typeof Q!=="object"||Q===null)return Y;return Y.refine((J)=>Z2(J,Q),{message:"Value must equal the const value"})}},rQ1=class{apply(Y,X){if(X.description)Y=Y.describe(X.description);return Y}},oQ1=class{apply(Y,X){var Q;let J=X;if(!((Q=J.required)==null?void 0:Q.includes("__proto__"))||X.type!==void 0)return Y;return z.any().refine((G)=>this.validateRequired(G,J.required),{message:"Missing required properties"})}validateRequired(Y,X){if(typeof Y!=="object"||Y===null||Array.isArray(Y))return!0;return X.every((Q)=>Object.prototype.hasOwnProperty.call(Y,Q))}},sQ1=class{apply(Y,X){var Q;let J=X;if(J.contains===void 0)return Y;let G=eY(J.contains),K=(Q=J.minContains)!=null?Q:1,W=J.maxContains;return Y.refine((Z)=>{if(!Array.isArray(Z))return!0;let H=0;for(let F of Z)if(Xu(G,F))H++;if(H<K)return!1;if(W!==void 0&&H>W)return!1;return!0},{message:"Array must contain required items matching the schema"})}},tQ1=class{apply(Y,X){let{default:Q}=X;if(Q===void 0)return Y;if(!Y.safeParse(Q).success)return Y;return Y.default(Q)}},eQ1,YJ1;var rO6=S(()=>{Q1();Q1();Q1();Q1();Q1();Q1();Q1();Q1();Q1();Q1();Q1();Q1();Q1();Q1();eQ1=[new NQ1,new LQ1,new OQ1,new wQ1,new MQ1,new SQ1,new hQ1,new AQ1,new TQ1,new PQ1,new EQ1,new CQ1,new IQ1,new RQ1,new jQ1,new yQ1,new kQ1,new vQ1,new _Q1,new bQ1,new xQ1,new fQ1],YJ1=[new oQ1,new iQ1,new aQ1,new lQ1,new dQ1,new pQ1,new cQ1,new nQ1,new sQ1,new gQ1,new mQ1,new tQ1,new rQ1]});class MG0{constructor(Y){this._url=Y}start(){if(this._socket)throw Error("WebSocketClientTransport already started! If using Client class, note that connect() calls start() automatically.");return new Promise((Y,X)=>{this._socket=new WebSocket(this._url,XJ1),this._socket.onerror=(Q)=>{let J="error"in Q?Q.error:Error(`WebSocket error: ${JSON.stringify(Q)}`);X(J),this.onerror?.(J)},this._socket.onopen=()=>{Y()},this._socket.onclose=()=>{this.onclose?.()},this._socket.onmessage=(Q)=>{let J;try{J=SJ.parse(JSON.parse(Q.data))}catch(G){this.onerror?.(G);return}this.onmessage?.(J)}})}async close(){this._socket?.close()}send(Y){return new Promise((X,Q)=>{if(!this._socket){Q(Error("Not connected"));return}this._socket?.send(JSON.stringify(Y)),X()})}}var XJ1="mcp";var oO6=S(()=>{p9()});function QJ1(Y){let X=Y;if(!X||typeof X!=="object"||!("method"in X))return null;switch(X.method){case"initialize":{let Q=X?.params?.protocolVersion;if(!Q)return null;return{type:"emit",message:{result:{protocolVersion:Q,capabilities:{tools:{}},serverInfo:{name:"deco-chat-server",version:"1.0.0"}},jsonrpc:X.jsonrpc??"2.0",id:X.id}}}case"notifications/roots/list_changed":case"notifications/initialized":case"notifications/cancelled":case"notifications/progress":return{type:"suppress"};default:return null}}var AG0;var sO6=S(()=>{uD();AG0=class AG0 extends PW{constructor(Y,X){super(Y,X)}send(Y,X){let Q=QJ1(Y);if(Q?.type==="emit")return this.onmessage?.(Q.message),Promise.resolve();if(Q?.type==="suppress")return Promise.resolve();return super.send(Y,X)}}});var tO6,eO6=async(Y,X,Q)=>{let J=JJ1(Y.connection,X,Q);if(!J)throw Error("Unknown MCP connection type");let G=new tO6({name:Y?.name??"MCP Client",version:"1.0.0"});return await G.connect(J),{client:G,callStreamableTool:(K,W,Z)=>{if(Y.connection.type!=="HTTP")throw Error("HTTP connection required");let H=new Headers(Q);if(!H.has("Authorization"))H.set("Authorization",`Bearer ${Y.connection.token}`);for(let[$,q]of Object.entries(Y.connection.headers??{}))H.set($,q);let F=new URL(Y.connection.url),V=F.pathname.replace(/\/+$/,"")||"/";return F.pathname=`${V}/call-tool/${encodeURIComponent(K)}`,fetch(F.href,{method:"POST",redirect:"manual",body:JSON.stringify(W),headers:H,signal:Z})}}},JJ1=(Y,X,Q)=>{if(Y.type==="Websocket")return new MG0(new URL(Y.url));if(Y.type!=="SSE"&&Y.type!=="HTTP")return null;let G={...Y.token?{authorization:`Bearer ${Y.token}`}:{},...Q??{},..."headers"in Y?Y.headers||{}:{}};if(Y.type==="SSE"){let K={requestInit:{headers:G,signal:X}};if(Y.token)K.eventSourceInit={fetch:(W,Z)=>{return fetch(W,{...Z,headers:{...G,Accept:"text/event-stream"},signal:X})}};return new t$(new URL(Y.url),K)}return new AG0(new URL(Y.url),{requestInit:{headers:G,signal:X,credentials:"include"}})};var YN6=S(()=>{c$();mx();oO6();p9();sO6();tO6=class tO6 extends nQ{constructor(Y,X){super(Y,X)}async listTools(Y,X){return await this.request({method:"tools/list",params:Y},DP,X)}}});function QN6(Y){let X=(Q)=>{if("connection"in Y)return eO6({connection:Y.connection},void 0,Q);return Y.client};return new Proxy({},{get(Q,J){if(J==="toJSON")return null;if(typeof J!=="string")throw Error("Name must be a string");if(J==="listTools")return Z;async function G(H,F=J){let V=Y?.debugId?.(),$=V?{"x-trace-debug-id":V}:void 0,{client:q,callStreamableTool:B}=await X($);if(Y?.streamable?.[String(F)])return B(String(F),H);let{structuredContent:D,isError:O,content:L}=await q.callTool({name:String(F),arguments:H});if(O){let w=L?.[0]?.text,I=typeof w==="string"?GJ1(w):null,T=I?.code&&typeof Y?.getErrorByStatusCode==="function"?Y.getErrorByStatusCode(I.code,I.message,I.traceId):null;if(T)throw T;throw Error(`Tool ${String(F)} returned an error: ${JSON.stringify(D??L)}`)}return D}async function K(){let{client:H}=await X(),{tools:F}=await H.listTools();return F}async function W(){if(!("connection"in Y))return K();let H=Y.connection,F=JSON.stringify(H);try{if(!Qu.has(F))Qu.set(F,K());return await Qu.get(F)}catch(V){console.error("Failed to list tools",V),Qu.delete(F);return}}async function Z(){return(await W()??[]).map((F)=>XN6(F,G))}return G.asTool=async()=>{let F=(await W()??[]).find((V)=>V.name===J);if(!F)throw Error(`Tool ${J} not found`);return XN6(F,G)},G}})}var GJ1=(Y)=>{try{return JSON.parse(Y)}catch{return Y}},Qu,XN6=(Y,X)=>{return{...Y,id:Y.name,inputSchema:Y.inputSchema?eY(Y.inputSchema):void 0,outputSchema:Y.outputSchema?eY(Y.outputSchema):void 0,execute:(Q)=>{return X(Q.context,Y.name)}}};var JN6=S(()=>{rO6();YN6();Qu=new Map});function Ju(Y){return QN6(Y)}var az8;var GN6=S(()=>{JN6();az8=new Proxy({},{get(Y,X){if(X==="toJSON")return null;if(X==="forConnection")return(Q)=>Ju({connection:Q});return global[X]}})});function Gu(Y){return{isImplementedBy:(X)=>{for(let Q of Y){let J=typeof Q.name==="string"?new RegExp(`^${Q.name}$`):Q.name,G=X.find((K)=>J.test(K.name));if(!G&&Q.opt)continue;if(!G)return!1}return!0}}}var Gq=(Y)=>{return{...Gu(Y),forClient:(X)=>{return Ju({client:X,streamable:Y.reduce((Q,J)=>{return Q[J.name]=J.streamable===!0,Q},{})})},forConnection:(X)=>{return Ju({connection:X,streamable:Y.reduce((Q,J)=>{return Q[J.name]=J.streamable===!0,Q},{})})}}};var K2=S(()=>{GN6()});var TG0,ez8;var WN6=S(()=>{cT();TG0=O4(pT(),1),ez8=TG0.createContext(null)});function $K(Y){return z.object({items:z.array(Y).describe("Array of collection items"),totalCount:z.number().int().min(0).optional().describe("Total number of matching items (if available)"),hasMore:z.boolean().optional().describe("Whether there are more items available")})}function F2(Y){return z.object({item:Y.nullable().describe("The retrieved item, or null if not found")})}function KJ1(Y){return z.object({data:Y.partial().describe("Data for the new entity (id may be auto-generated)")})}function HJ1(Y){return z.object({item:Y.describe("The created entity with generated id")})}function FJ1(Y){return z.object({id:z.string().describe("ID of the entity to update"),data:Y.partial().describe("Partial entity data to update")})}function VJ1(Y){return z.object({item:Y.describe("The updated entity")})}function $2(Y){return z.object({item:Y.describe("The deleted entity")})}function GO(Y,X,Q){let J=Y.toUpperCase(),G=Q?.readOnly??!1,K=[{name:`COLLECTION_${J}_LIST`,inputSchema:VK,outputSchema:$K(X)},{name:`COLLECTION_${J}_GET`,inputSchema:H2,outputSchema:F2(X)}];if(!G)K.push({name:`COLLECTION_${J}_CREATE`,inputSchema:KJ1(X),outputSchema:HJ1(X),opt:!0},{name:`COLLECTION_${J}_UPDATE`,inputSchema:FJ1(X),outputSchema:VJ1(X),opt:!0},{name:`COLLECTION_${J}_DELETE`,inputSchema:V2,outputSchema:$2(X),opt:!0});return K}var JO,WJ1,ZN6,ZJ1,VK,H2,V2;var u5=S(()=>{s0();JO=z.object({id:z.string().describe("Unique identifier for the entity"),title:z.string().describe("Human-readable title for the entity"),description:z.string().nullish().describe("Description of the entity"),created_at:z.string().datetime(),updated_at:z.string().datetime(),created_by:z.string().optional(),updated_by:z.string().optional()}),WJ1=z.object({field:z.array(z.string()),operator:z.enum(["eq","gt","gte","lt","lte","in","like","contains"]),value:z.unknown()}),ZN6=z.lazy(()=>z.union([WJ1,z.object({operator:z.enum(["and","or","not"]),conditions:z.array(ZN6)})])),ZJ1=z.object({field:z.array(z.string()),direction:z.enum(["asc","desc"]),nulls:z.enum(["first","last"]).optional()}),VK=z.object({where:ZN6.optional().describe("Filter expression"),orderBy:z.array(ZJ1).optional().describe("Sort expressions"),limit:z.number().int().min(1).max(1000).optional().describe("Maximum number of items to return"),offset:z.number().int().min(0).optional().describe("Number of items to skip")});H2=z.object({id:z.string().describe("ID of the entity to retrieve")});V2=z.object({id:z.string().describe("ID of the entity to delete")})});var $J1,KN6,ZB8;var HN6=S(()=>{s0();u5();$J1=z.object({id:z.string(),name:z.string(),description:z.string().optional(),inputSchema:z.record(z.string(),z.unknown()),outputSchema:z.record(z.string(),z.unknown()).optional()}),KN6=JO.extend({_meta:z.object({"io.decocms":z.object({id:z.string(),verified:z.boolean(),scopeName:z.string(),appName:z.string(),friendlyName:z.string().nullable().optional(),metadata:z.record(z.string(),z.unknown()).nullable().optional(),publishedAt:z.string().datetime().optional(),updatedAt:z.string().datetime().optional(),tools:z.array($J1).nullable().optional().describe("Available tools exposed by this app")}).optional()}).optional(),server:z.object({$schema:z.string().optional(),_meta:z.record(z.string(),z.unknown()).optional(),name:z.string().describe("The server name (scope/app)"),title:z.string().optional().describe("User-friendly title"),description:z.string().optional().describe("Server description"),icons:z.array(z.object({src:z.string(),mimeType:z.string().optional(),sizes:z.array(z.string()).optional(),theme:z.enum(["light","dark"]).optional()})).optional(),remotes:z.array(z.object({type:z.enum(["http","stdio","sse"]),url:z.string().optional(),headers:z.array(z.unknown()).optional()})).optional(),packages:z.array(z.unknown()).optional(),repository:z.object({url:z.string(),source:z.string().optional(),subfolder:z.string().optional()}).optional(),version:z.string().optional(),websiteUrl:z.string().optional()})}),ZB8=GO("registry_app",KN6,{readOnly:!0})});var FN6,VN6,$N6,qN6,zN6,PG0;var BN6=S(()=>{s0();K2();FN6=z.object({specversion:z.literal("1.0").describe("CloudEvents specification version"),id:z.string().describe("Unique identifier for this event (UUID recommended)"),source:z.string().describe("Connection ID of the event publisher"),type:z.string().describe("Event type (e.g., 'order.created', 'user.signup')"),time:z.string().datetime().optional().describe("Timestamp of when the event occurred (ISO 8601)"),subject:z.string().optional().describe("Subject/resource identifier (e.g., order ID, user ID)"),datacontenttype:z.string().optional().default("application/json").describe("Content type of the data attribute"),dataschema:z.string().url().optional().describe("URI to the schema for the data attribute"),data:z.unknown().optional().describe("Event payload (any JSON value)")}),VN6=z.object({events:z.array(FN6).min(1).describe("Batch of CloudEvents to process")}),$N6=z.object({success:z.boolean().optional().describe("Whether this event was processed successfully"),error:z.string().optional().describe("Error message for this event"),retryAfter:z.number().int().positive().optional().describe("Re-deliver this event after this many ms")}),qN6=z.object({success:z.boolean().optional().describe("Batch success - applies to events not in results"),error:z.string().optional().describe("Batch error message - applies to events not in results"),processedCount:z.number().int().min(0).optional().describe("Number of events successfully processed"),retryAfter:z.number().int().positive().optional().describe("Batch retryAfter - applies to events not in results"),results:z.record(z.string(),$N6).optional().describe("Per-event results keyed by event ID")}),zN6=[{name:"ON_EVENTS",inputSchema:VN6,outputSchema:qN6}],PG0=Gq(zN6)});var q2,z2,B2,U2,UN6,DN6,D2,O2,N2,L2,w2,M2,A2,T2,ON6,qJ1;var NN6=S(()=>{s0();K2();q2=z.object({type:z.string().min(1).max(255).describe("Event type identifier"),subject:z.string().max(255).optional().describe("Subject/resource identifier (e.g., order ID)"),data:z.unknown().optional().describe("Event payload"),deliverAt:z.string().datetime().optional().describe("Scheduled delivery time (ISO 8601). Omit for immediate delivery."),cron:z.string().max(100).optional().describe("Cron expression for recurring delivery. Use EVENT_CANCEL to stop.")}),z2=z.object({id:z.string().describe("Unique event ID"),type:z.string().describe("Event type"),source:z.string().describe("Source connection ID"),time:z.string().describe("Event timestamp")}),B2=z.object({eventType:z.string().min(1).max(255).describe("Event type to subscribe to"),publisher:z.string().optional().describe("Filter events by publisher connection ID"),filter:z.string().max(1000).optional().describe("JSONPath filter expression on event data")}),U2=z.object({subscription:z.object({id:z.string().describe("Subscription ID"),connectionId:z.string().describe("Subscriber connection ID"),eventType:z.string().describe("Event type pattern"),publisher:z.string().nullable().describe("Publisher connection filter"),filter:z.string().nullable().describe("JSONPath filter expression"),enabled:z.boolean().describe("Whether subscription is enabled"),createdAt:z.string().datetime().describe("Created timestamp (ISO 8601)"),updatedAt:z.string().datetime().describe("Updated timestamp (ISO 8601)")})}),UN6=z.object({eventType:z.string().min(1).max(255).describe("Event type to subscribe to"),publisher:z.string().optional().describe("Filter events by publisher connection ID"),filter:z.string().max(1000).optional().describe("JSONPath filter expression on event data")}),DN6=z.object({id:z.string().describe("Subscription ID"),connectionId:z.string().describe("Subscriber connection ID"),eventType:z.string().describe("Event type pattern"),publisher:z.string().nullable().describe("Publisher connection filter"),filter:z.string().nullable().describe("JSONPath filter expression"),enabled:z.boolean().describe("Whether subscription is enabled"),createdAt:z.string().datetime().describe("Created timestamp (ISO 8601)"),updatedAt:z.string().datetime().describe("Updated timestamp (ISO 8601)")}),D2=z.object({subscriptions:z.array(UN6).describe("Desired subscriptions - system will create/update/delete to match")}),O2=z.object({created:z.number().int().min(0).describe("Number of subscriptions created"),updated:z.number().int().min(0).describe("Number of subscriptions with filter updated"),deleted:z.number().int().min(0).describe("Number of subscriptions removed"),unchanged:z.number().int().min(0).describe("Number of subscriptions unchanged"),subscriptions:z.array(DN6).describe("Current subscriptions after sync")}),N2=z.object({subscriptionId:z.string().describe("Subscription ID to remove")}),L2=z.object({success:z.boolean().describe("Whether unsubscribe was successful"),subscriptionId:z.string().describe("Subscription ID that was removed")}),w2=z.object({eventId:z.string().describe("Event ID to cancel")}),M2=z.object({success:z.boolean().describe("Whether cancellation was successful"),eventId:z.string().describe("Event ID that was cancelled")}),A2=z.object({eventId:z.string().describe("Event ID to acknowledge")}),T2=z.object({success:z.boolean().describe("Whether ACK was successful"),eventId:z.string().describe("Event ID that was acknowledged")}),ON6=[{name:"EVENT_PUBLISH",inputSchema:q2,outputSchema:z2},{name:"EVENT_SUBSCRIBE",inputSchema:B2,outputSchema:U2},{name:"EVENT_UNSUBSCRIBE",inputSchema:N2,outputSchema:L2},{name:"EVENT_CANCEL",inputSchema:w2,outputSchema:M2},{name:"EVENT_ACK",inputSchema:A2,outputSchema:T2},{name:"EVENT_SYNC_SUBSCRIPTIONS",inputSchema:D2,outputSchema:O2}],qJ1=Gq(ON6)});var UB8,DB8,OB8,NB8,LB8,wB8,MB8,AB8,TB8,PB8,EB8,CB8;var LN6=S(()=>{s0();UB8=z.object({prefix:z.string().optional().describe("Filter objects by prefix (e.g., 'folder/' for folder contents)"),maxKeys:z.number().optional().default(1000).describe("Maximum number of keys to return (default: 1000)"),continuationToken:z.string().optional().describe("Token for pagination from previous response"),delimiter:z.string().optional().describe("Delimiter for grouping keys (typically '/'). When set, commonPrefixes returns folder paths.")}),DB8=z.object({objects:z.array(z.object({key:z.string().describe("Object key/path"),size:z.number().describe("Object size in bytes"),lastModified:z.string().describe("Last modified timestamp"),etag:z.string().describe("Entity tag for the object")})),nextContinuationToken:z.string().optional().describe("Token for fetching next page of results"),isTruncated:z.boolean().describe("Whether there are more results available"),commonPrefixes:z.array(z.string()).optional().describe("Folder paths when delimiter is used (e.g., ['photos/2024/', 'photos/2025/'])")}),OB8=z.object({key:z.string().describe("Object key/path to get metadata for")}),NB8=z.object({contentType:z.string().optional().describe("MIME type of the object"),contentLength:z.number().describe("Size of the object in bytes"),lastModified:z.string().describe("Last modified timestamp"),etag:z.string().describe("Entity tag for the object"),metadata:z.record(z.string(),z.string()).optional().describe("Custom metadata key-value pairs")}),LB8=z.object({key:z.string().describe("Object key/path to generate URL for"),expiresIn:z.number().optional().describe("URL expiration time in seconds (default: from state config or 3600)")}),wB8=z.object({url:z.string().describe("Presigned URL for downloading the object"),expiresIn:z.number().describe("Expiration time in seconds that was used")}),MB8=z.object({key:z.string().describe("Object key/path for the upload"),expiresIn:z.number().optional().describe("URL expiration time in seconds (default: from state config or 3600)"),contentType:z.string().optional().describe("MIME type for the object being uploaded")}),AB8=z.object({url:z.string().describe("Presigned URL for uploading the object"),expiresIn:z.number().describe("Expiration time in seconds that was used")}),TB8=z.object({key:z.string().describe("Object key/path to delete")}),PB8=z.object({success:z.boolean().describe("Whether the deletion was successful"),key:z.string().describe("The key that was deleted")}),EB8=z.object({keys:z.array(z.string()).max(1000).describe("Array of object keys/paths to delete (max 1000)")}),CB8=z.object({deleted:z.array(z.string()).describe("Array of successfully deleted keys"),errors:z.array(z.object({key:z.string(),message:z.string()})).describe("Array of errors for failed deletions")})});var Wu=S(()=>{K2();WN6();HN6();BN6();NN6();LN6()});var zJ1,BJ1,wN6;var MN6=S(()=>{s0();u5();zJ1=JO.extend({avatar:z.string().describe("URL or data URI to the assistant's avatar image"),system_prompt:z.string().describe("System prompt that defines the assistant's behavior"),virtual_mcp_id:z.string().describe("Virtual MCP ID to use for this assistant"),model:z.object({id:z.string().describe("Model ID"),connectionId:z.string().describe("Connection ID that provides the model")}).describe("Selected model reference for this assistant")}),BJ1=GO("assistant",zJ1),wN6=[...BJ1]});var P2,qK,TN6,UJ1,DJ1,PN6,OJ1,NJ1,LJ1,wJ1,MJ1,AJ1,EN6,TJ1,PJ1,EJ1,CJ1,IJ1,RJ1,jJ1,SJ1,kJ1,vJ1,nB8,_J1,iB8,AN6,yJ1,fJ1,EG0,Zu;var Ku=S(()=>{s0();K2();u5();P2=z.lazy(()=>z.union([z.null(),z.string(),z.number(),z.boolean(),z.record(z.string(),P2),z.array(P2)])),qK=z.record(z.string(),z.record(z.string(),P2)).optional().describe("Additional provider-specific options. Outer record keyed by provider name, inner by option key"),TN6=z.object({type:z.literal("text"),text:z.string().describe("The text content"),providerOptions:qK}),UJ1=z.object({type:z.literal("text"),text:z.string().describe("The text content"),providerMetadata:z.any().optional().describe("Additional provider-specific metadata")}),DJ1=z.string().describe("File data as URL string"),PN6=z.object({type:z.literal("file"),filename:z.string().optional().describe("Optional filename of the file"),data:DJ1,mediaType:z.string().describe("IANA media type of the file (e.g., image/png, audio/mp3)"),providerOptions:qK}),OJ1=z.object({type:z.literal("file"),mediaType:z.string().describe("IANA media type of the file (e.g., image/png, audio/mp3)"),data:z.string().describe("Generated file data as base64 encoded string")}),NJ1=z.object({type:z.literal("reasoning"),text:z.string().describe("The reasoning text"),providerOptions:qK}),LJ1=z.object({type:z.literal("reasoning"),text:z.string().describe("The reasoning text"),providerMetadata:z.any().optional().describe("Additional provider-specific metadata")}),wJ1=z.object({type:z.literal("tool-call"),toolCallId:z.string().describe("ID of the tool call, used to match with tool result"),toolName:z.string().describe("Name of the tool being called"),input:z.string().describe("Arguments of the tool call (JSON-serializable object matching tool input schema)"),providerExecuted:z.boolean().optional().describe("Whether the tool call will be executed by the provider"),providerOptions:qK}),MJ1=z.object({type:z.literal("tool-call"),toolCallId:z.string().describe("ID of the tool call"),toolName:z.string().describe("Name of the tool being called"),input:z.string().describe("Stringified JSON object with the tool call arguments"),providerExecuted:z.boolean().optional().describe("Whether the tool call will be executed by the provider"),providerMetadata:z.any().optional().describe("Additional provider-specific metadata")}),AJ1=z.union([z.object({type:z.literal("text"),value:z.string()}),z.object({type:z.literal("json"),value:P2}),z.object({type:z.literal("error-text"),value:z.string()}),z.object({type:z.literal("error-json"),value:P2}),z.object({type:z.literal("content"),value:z.array(z.union([z.object({type:z.literal("text"),text:z.string().describe("Text content")}),z.object({type:z.literal("media"),data:z.string().describe("Base-64 encoded media data"),mediaType:z.string().describe("IANA media type")})]))})]),EN6=z.object({type:z.literal("tool-result"),toolCallId:z.string().describe("ID of the tool call that this result is associated with"),toolName:z.string().describe("Name of the tool that generated this result"),output:AJ1.describe("Result of the tool call"),result:z.unknown().describe("Unknown result of the tool call"),providerOptions:qK}),TJ1=z.object({type:z.literal("tool-result"),toolCallId:z.string().describe("ID of the tool call that this result is associated with"),toolName:z.string().describe("Name of the tool that generated this result"),result:z.any().describe("Result of the tool call (JSON-serializable)"),isError:z.boolean().optional().describe("Whether the result is an error or error message"),providerExecuted:z.boolean().optional().describe("Whether the tool result was generated by the provider"),providerMetadata:z.any().optional().describe("Additional provider-specific metadata")}),PJ1=z.union([z.object({type:z.literal("source"),sourceType:z.literal("url"),id:z.string().describe("The ID of the source"),url:z.string().describe("The URL of the source"),title:z.string().optional().describe("The title of the source"),providerMetadata:z.any().optional().describe("Additional provider-specific metadata")}),z.object({type:z.literal("source"),sourceType:z.literal("document"),id:z.string().describe("The ID of the source"),mediaType:z.string().describe("IANA media type of the document (e.g., application/pdf)"),title:z.string().describe("The title of the document"),filename:z.string().optional().describe("Optional filename of the document"),providerMetadata:z.any().optional().describe("Additional provider-specific metadata")})]),EJ1=z.object({role:z.literal("system"),content:z.string().describe("System message content"),providerOptions:qK}),CJ1=z.object({role:z.literal("user"),content:z.array(z.union([TN6,PN6])).describe("User message content parts (text or file)"),providerOptions:qK}),IJ1=z.object({role:z.literal("assistant"),content:z.array(z.union([TN6,PN6,NJ1,wJ1,EN6])).describe("Assistant message content parts (text, file, reasoning, tool-call, or tool-result)"),providerOptions:qK}),RJ1=z.object({role:z.literal("tool"),content:z.array(EN6).describe("Tool message content (tool results)"),providerOptions:qK}),jJ1=z.union([EJ1,CJ1,IJ1,RJ1]),SJ1=z.array(jJ1).describe("A list of messages forming the prompt"),kJ1=z.object({prompt:SJ1.describe("A language model prompt is a standardized prompt type (array of messages with roles: system, user, assistant, tool)"),maxOutputTokens:z.number().optional().describe("Maximum number of tokens to generate"),temperature:z.number().optional().describe("Temperature setting. The range depends on the provider and model"),topP:z.number().optional().describe("Nucleus sampling parameter"),topK:z.number().optional().describe("Only sample from the top K options for each subsequent token. Used to remove long tail low probability responses"),presencePenalty:z.number().optional().describe("Presence penalty setting. It affects the likelihood of the model to repeat information that is already in the prompt"),frequencyPenalty:z.number().optional().describe("Frequency penalty setting. It affects the likelihood of the model to repeatedly use the same words or phrases"),seed:z.number().optional().describe("The seed (integer) to use for random sampling. If set and supported by the model, calls will generate deterministic results"),stopSequences:z.array(z.string()).optional().describe("Stop sequences. If set, the model will stop generating text when one of the stop sequences is generated"),responseFormat:z.union([z.object({type:z.literal("text")}),z.object({type:z.literal("json"),schema:z.any().optional().describe("JSON schema that the generated output should conform to"),name:z.string().optional().describe("Name of output that should be generated"),description:z.string().optional().describe("Description of the output that should be generated")})]).optional().describe("Response format. The output can either be text or JSON. Default is text"),tools:z.array(z.any()).optional().describe("The tools that are available for the model"),toolChoice:z.any().optional().describe("Specifies how the tool should be selected. Defaults to 'auto'"),includeRawChunks:z.boolean().optional().describe("Include raw chunks in the stream. Only applicable for streaming calls"),abortSignal:z.any().optional().describe("Abort signal for cancelling the operation"),providerOptions:z.any().optional().describe("Additional provider-specific options")}),vJ1=z.object({content:z.array(z.union([UJ1,OJ1,LJ1,MJ1,TJ1,PJ1])).describe("Ordered content that the model has generated (text, tool-calls, reasoning, files, sources)"),finishReason:z.enum(["stop","length","content-filter","tool-calls","error","other","unknown"]).describe("Reason why generation stopped"),usage:z.looseObject({inputTokens:z.number().optional(),outputTokens:z.number().optional(),totalTokens:z.number().optional(),reasoningTokens:z.number().optional()}).describe("Usage information for the language model call"),providerMetadata:z.any().optional().describe("Additional provider-specific metadata"),request:z.object({body:z.any().optional().describe("Request HTTP body sent to the provider API")}).optional().describe("Optional request information for telemetry and debugging"),response:z.object({id:z.string().optional().describe("ID for the generated response"),timestamp:z.iso.datetime().optional().describe("Timestamp for the start of the generated response"),modelId:z.string().optional().describe("The ID of the response model that was used"),headers:z.record(z.string(),z.string()).optional().describe("Response headers"),body:z.any().optional().describe("Response HTTP body")}).optional().describe("Optional response information for telemetry and debugging"),warnings:z.array(z.any()).describe("Warnings for the call, e.g. unsupported settings")}),nB8=z.object({stream:z.any().describe("ReadableStream of LanguageModelV2StreamPart"),request:z.object({body:z.any().optional().describe("Request HTTP body sent to the provider API")}).optional().describe("Optional request information for telemetry and debugging"),response:z.object({headers:z.record(z.string(),z.string()).optional().describe("Response headers")}).optional().describe("Optional response data")}),_J1=z.object({supportedUrls:z.record(z.string(),z.array(z.string())).describe("Supported URL patterns by media type for the provider")}),iB8=z.object({modelId:z.string().describe("The ID of the model"),logo:z.string().nullable(),description:z.string().nullable(),capabilities:z.array(z.string()),limits:z.object({contextWindow:z.number(),maxOutputTokens:z.number()}).nullable(),costs:z.object({input:z.number(),output:z.number()}).nullable(),provider:z.enum(["openai","anthropic","google","x-ai","deepseek","openai-compatible","openrouter"]).nullable()}),AN6=z.object({modelId:z.string().describe("The ID of the model"),callOptions:kJ1}),yJ1=JO.extend({logo:z.string().nullable(),description:z.string().nullable(),capabilities:z.array(z.string()),limits:z.object({contextWindow:z.number(),maxOutputTokens:z.number()}).nullable(),costs:z.object({input:z.number(),output:z.number()}).nullable(),provider:z.enum(["openai","anthropic","google","xai","deepseek","openai-compatible","openrouter"]).nullable()}),fJ1=GO("llm",yJ1,{readOnly:!0}),EG0=[{name:"LLM_METADATA",inputSchema:z.object({modelId:z.string().describe("The ID of the model")}),outputSchema:_J1},{name:"LLM_DO_STREAM",inputSchema:AN6,streamable:!0},{name:"LLM_DO_GENERATE",inputSchema:AN6,outputSchema:vJ1},...fJ1],Zu=Gq(EG0)});function bJ1(Y){let X=[],Q=0;while(Q<Y.length){let J=Y[Q];if(J==="%")X.push(".*");else if(J==="_")X.push(".");else if(/[.*+?^${}()|[\]\\]/.test(J))X.push("\\"+J);else X.push(J);Q++}return X.join("")}function g3(Y){return typeof Y==="string"||typeof Y==="number"}function Hu(Y,X){if("conditions"in X){let{operator:Z,conditions:H}=X;switch(Z){case"and":return H.every((F)=>Hu(Y,F));case"or":return H.some((F)=>Hu(Y,F));case"not":return!H.every((F)=>Hu(Y,F));default:return!0}}let{field:Q,operator:J,value:G}=X,K=Q.join("."),W=CG0(Y,K);switch(J){case"eq":return W===G;case"gt":return g3(W)&&g3(G)&&W>G;case"gte":return g3(W)&&g3(G)&&W>=G;case"lt":return g3(W)&&g3(G)&&W<G;case"lte":return g3(W)&&g3(G)&&W<=G;case"in":return Array.isArray(G)&&G.includes(W);case"like":if(typeof W!=="string"||typeof G!=="string")return!1;if(G.length>100)return!1;let Z=bJ1(G);return new RegExp(`^${Z}$`,"i").test(W);case"contains":if(typeof W!=="string"||typeof G!=="string")return!1;return W.toLowerCase().includes(G.toLowerCase());default:return!0}}function CG0(Y,X){let Q=X.split("."),J=Y;for(let G of Q){if(J==null||typeof J!=="object")return;J=J[G]}return J}function xJ1(Y,X){return[...Y].sort((Q,J)=>{for(let G of X){let K=G.field.join("."),W=CG0(Q,K),Z=CG0(J,K),H=0;if(W==null&&Z==null)continue;if(W==null)H=G.nulls==="first"?-1:1;else if(Z==null)H=G.nulls==="first"?1:-1;else if(typeof W==="string"&&typeof Z==="string")H=W.localeCompare(Z);else if(typeof W==="number"&&typeof Z==="number")H=W-Z;else H=String(W).localeCompare(String(Z));if(H!==0)return G.direction==="desc"?-H:H}return 0})}var hJ1,uJ1,gJ1,IG0;var CN6=S(()=>{Wu();MN6();u5();Ku();s0();z4();EW();hJ1={LLM:EG0,ASSISTANTS:wN6};uJ1=VK.extend({binding:z.union([z.object({}).passthrough(),z.string()]).optional()}),gJ1=$K(x5),IG0=J6({name:"COLLECTION_CONNECTIONS_LIST",description:"List all connections in the organization with filtering, sorting, and pagination",inputSchema:uJ1,outputSchema:gJ1,handler:async(Y,X)=>{await X.access.check();let Q=h6(X),J=Y.binding?typeof Y.binding==="string"?(()=>{let B=hJ1[Y.binding.toUpperCase()];if(!B)throw Error(`Unknown binding: ${Y.binding}`);return B})():Y.binding:void 0,G=J?Gu(J):void 0,W=(await X.storage.connections.list(Q.id)).filter((B)=>B.connection_type!=="VIRTUAL"),Z=G?await Promise.all(W.map(async(B)=>{if(!B.tools||B.tools.length===0)return null;return G.isImplementedBy(B.tools.map((O)=>({name:O.name,inputSchema:O.inputSchema,outputSchema:O.outputSchema})))?B:null})).then((B)=>B.filter((D)=>D!==null)):W;if(Y.where)Z=Z.filter((B)=>Hu(B,Y.where));if(Y.orderBy&&Y.orderBy.length>0)Z=xJ1(Z,Y.orderBy);let H=Z.length,F=Y.offset??0,V=Y.limit??100,$=Z.slice(F,F+V),q=F+V<H;return{items:$,totalCount:H,hasMore:q}}})});var mJ1,RG0;var IN6=S(()=>{u5();z4();EW();mJ1=F2(x5),RG0=J6({name:"COLLECTION_CONNECTIONS_GET",description:"Get connection details by ID",inputSchema:H2,outputSchema:mJ1,handler:async(Y,X)=>{let Q=h6(X);await X.access.check();let J=await X.storage.connections.findById(Y.id);if(!J||J.organization_id!==Q.id)return{item:null};return{item:J}}})});var Fu=(Y,X)=>{if(X===null||X===void 0)return;let Q=Y.replace(/\[(\w+)\]/g,".$1").split(".").filter(Boolean),J=X;for(let G of Q){if(J===null||J===void 0||typeof J!=="object")return;J=J[G]}return J};function RN6(Y){let X=Y.split("::");if(X.length!==2||!X[0]||!X[1])throw Error(`Invalid scope format: ${Y}. Expected format: "KEY::SCOPE"`);return X}function lJ1(Y){let X=Y.split("::");if(X.length!==2||!X[0]||!X[1])return null;return X}function dJ1(Y){if(typeof Y==="object"&&Y!==null&&"value"in Y){let X=Y.value;if(typeof X==="string")return X}return null}function jG0(Y,X){let Q={};if(!Y||!X)return Q;for(let J of X){if(J==="*"){Q["*"]=["*"];continue}let G=lJ1(J);if(!G)continue;let[K,W]=G,Z=Fu(K,Y),H=dJ1(Z);if(H){if(!Q[H])Q[H]=[];Q[H].push(W)}}return Q}function jN6(Y,X){let Q=jG0(Y,X);return new Set(Object.keys(Q).filter((J)=>J!=="*"))}var SG0=()=>{};class zK{db;vault;constructor(Y,X){this.db=Y;this.vault=X}async get(Y){let X=await this.db.selectFrom("downstream_tokens").selectAll().where("connectionId","=",Y).executeTakeFirst();if(!X)return null;return this.decryptToken(X)}async upsert(Y){let X=new Date().toISOString(),Q=await this.vault.encrypt(Y.accessToken),J=Y.refreshToken?await this.vault.encrypt(Y.refreshToken):null,G=Y.clientSecret?await this.vault.encrypt(Y.clientSecret):null;return await this.db.transaction().execute(async(K)=>{let W=await K.selectFrom("downstream_tokens").select(["id","createdAt"]).where("connectionId","=",Y.connectionId).executeTakeFirst();if(W)return await K.updateTable("downstream_tokens").set({accessToken:Q,refreshToken:J,scope:Y.scope,expiresAt:Y.expiresAt?.toISOString()??null,clientId:Y.clientId,clientSecret:G,tokenEndpoint:Y.tokenEndpoint,updatedAt:X}).where("id","=",W.id).execute(),{id:W.id,connectionId:Y.connectionId,accessToken:Y.accessToken,refreshToken:Y.refreshToken,scope:Y.scope,expiresAt:Y.expiresAt,createdAt:W.createdAt,updatedAt:X,clientId:Y.clientId,clientSecret:Y.clientSecret,tokenEndpoint:Y.tokenEndpoint};let Z=L9("dtok");return await K.insertInto("downstream_tokens").values({id:Z,connectionId:Y.connectionId,accessToken:Q,refreshToken:J,scope:Y.scope,expiresAt:Y.expiresAt?.toISOString()??null,clientId:Y.clientId,clientSecret:G,tokenEndpoint:Y.tokenEndpoint,createdAt:X,updatedAt:X}).execute(),{id:Z,connectionId:Y.connectionId,accessToken:Y.accessToken,refreshToken:Y.refreshToken,scope:Y.scope,expiresAt:Y.expiresAt,createdAt:X,updatedAt:X,clientId:Y.clientId,clientSecret:Y.clientSecret,tokenEndpoint:Y.tokenEndpoint}})}async delete(Y){await this.db.deleteFrom("downstream_tokens").where("connectionId","=",Y).execute()}isExpired(Y,X=0){if(!Y.expiresAt)return!1;let J=(Y.expiresAt instanceof Date?Y.expiresAt:new Date(Y.expiresAt)).getTime();if(Number.isNaN(J))return!0;return J-X<Date.now()}async decryptToken(Y){let X=await this.vault.decrypt(Y.accessToken),Q=Y.refreshToken?await this.vault.decrypt(Y.refreshToken):null,J=Y.clientSecret?await this.vault.decrypt(Y.clientSecret):null;return{id:Y.id,connectionId:Y.connectionId,accessToken:X,refreshToken:Q,scope:Y.scope,expiresAt:Y.expiresAt,createdAt:Y.createdAt,updatedAt:Y.updatedAt,clientId:Y.clientId,clientSecret:J,tokenEndpoint:Y.tokenEndpoint}}}var Vu=S(()=>{KK()});async function nJ1(Y,X,Q,J){for(let K of X){if(K==="*")continue;let[W]=RN6(K),Z=Fu(W,Y);if(Z===void 0||Z===null)throw Error(`Scope references key "${W}" but it's not present in state`)}let G=jN6(Y,X);for(let K of G){if(K.endsWith("_self"))continue;let W=await J.storage.connections.findById(K);if(!W||W.organization_id!==Q)throw Error(`Referenced connection not found: ${K}`);try{await J.access.check(K)}catch(Z){throw Error(`Access denied to referenced connection: ${K}. ${Z.message}`)}}}var pJ1,cJ1,kG0;var SN6=S(()=>{SG0();Vu();s0();z4();px();EW();pJ1=z.object({id:z.string().describe("ID of the connection to update"),data:SU6.describe("Partial connection data to update")}),cJ1=z.object({item:x5.describe("The updated connection entity")});kG0=J6({name:"COLLECTION_CONNECTIONS_UPDATE",description:"Update an existing MCP connection in the organization",inputSchema:pJ1,outputSchema:cJ1,handler:async(Y,X)=>{O6(X);let Q=h6(X);if(await X.access.check(),!Q9(X))throw Error("User ID required to update connection");let{id:G,data:K}=Y,W=await X.storage.connections.findById(G);if(!W||W.organization_id!==Q.id)throw Error("Connection not found in organization");let Z=K.connection_type??W.connection_type,H=K.connection_url??W.connection_url;if(Z==="VIRTUAL"){let L=h3(H);if(!L)throw Error("VIRTUAL connection requires connection_url in format: virtual://$virtual_mcp_id");let w=await X.storage.virtualMcps.findById(L);if(!w)throw Error(`Virtual MCP not found: ${L}`);if(w.organization_id!==Q.id)throw Error("Virtual MCP does not belong to the current organization");H=xx(L)}let F=K.configuration_state??W.configuration_state,V=K.configuration_scopes??W.configuration_scopes??[];if(K.configuration_state!==void 0||K.configuration_scopes!==void 0){if(K.configuration_state!==void 0)F=K.configuration_state;else if(F===null)F={};if(K.configuration_scopes!==void 0)V=K.configuration_scopes??[];if(V.length>0&&F)await nJ1(F,V,Q.id,X)}let $=K.connection_token??W.connection_token;if(!$)try{let w=await new zK(X.db,X.vault).get(G);if(w?.accessToken)$=w.accessToken}catch{}let q=await rD({id:W.id,title:K.title??W.title,connection_type:Z,connection_url:H,connection_token:$,connection_headers:K.connection_headers??W.connection_headers}).catch(()=>null),B=q?.length?q:null,D={...K,connection_url:H,tools:B,configuration_state:F,configuration_scopes:V},O=await X.storage.connections.update(G,D);if((K.configuration_state!==void 0||K.configuration_scopes!==void 0)&&F&&V.length>0)try{await(await X.createMCPProxy(G)).client.callTool({name:"ON_MCP_CONFIGURATION",arguments:{state:F,scopes:V}})}catch(L){console.error("Failed to invoke ON_MCP_CONFIGURATION callback",L)}return{item:O}}})});var vG0;var kN6=S(()=>{u5();z4();EW();vG0=J6({name:"COLLECTION_CONNECTIONS_DELETE",description:"Delete a connection",inputSchema:V2,outputSchema:$2(x5),handler:async(Y,X)=>{O6(X);let Q=h6(X);await X.access.check();let J=await X.storage.connections.findById(Y.id);if(!J)throw Error(`Connection not found: ${Y.id}`);if(J.organization_id!==Q.id)throw Error("Connection not found in organization");return await X.storage.connections.delete(Y.id),{item:J}}})});var _G0;var vN6=S(()=>{s0();z4();_G0=J6({name:"CONNECTION_TEST",description:"Test connection health and latency",inputSchema:z.object({id:z.string()}),outputSchema:z.object({id:z.string(),healthy:z.boolean(),latencyMs:z.number()}),handler:async(Y,X)=>{let Q=h6(X);await X.access.check();let J=await X.storage.connections.findById(Y.id);if(!J||J.organization_id!==Q.id)throw Error("Connection not found");let G=await X.storage.connections.testConnection(Y.id);return{id:Y.id,...G}}})});var _N6=S(()=>{aO6();CN6();IN6();SN6();kN6();vN6()});import{sql as K1}from"kysely";function yN6(Y){if(Y===null||Y===void 0)return"NULL";if(typeof Y==="number")return String(Y);if(typeof Y==="boolean")return Y?"TRUE":"FALSE";if(typeof Y==="string")return`'${Y.replace(/'/g,"''")}'`;if(Y instanceof Date)return`'${Y.toISOString()}'`;return`'${JSON.stringify(Y).replace(/'/g,"''")}'`}function rJ1(Y,X){let Q=Y;for(let G=X.length;G>=1;G--){let K=`$${G}`;if(Q.includes(K))Q=Q.replaceAll(K,yN6(X[G-1]))}let J=[];for(let G=0;G<Q.length;G++)if(Q[G]==="?")J.push(G);for(let G=Math.min(J.length,X.length)-1;G>=0;G--){let K=J[G],W=yN6(X[G]);Q=Q.slice(0,K)+W+Q.slice(K+1)}return Q}function fN6(Y){return Y.replace(/-/g,"_")}function sJ1(Y){return`app_${fN6(Y)}`}function tJ1(Y){return`app_role_${fN6(Y)}`}function eJ1(Y){if(Y instanceof Error){let X=Y.message.toLowerCase(),Q=Y.code;return Q==="3F000"||Q==="42704"||X.includes("schema")&&X.includes("does not exist")||X.includes("role")&&X.includes("does not exist")}return!1}async function Y51(Y,X,Q){if(await K1`CREATE SCHEMA IF NOT EXISTS ${K1.id(X)}`.execute(Y),!(await K1`
|
|
1183
1183
|
SELECT EXISTS (SELECT 1 FROM pg_roles WHERE rolname = ${Q}) as exists
|
|
1184
1184
|
`.execute(Y)).rows[0]?.exists)await K1`CREATE ROLE ${K1.id(Q)} NOLOGIN`.execute(Y);await K1`GRANT ${K1.id(Q)} TO CURRENT_USER`.execute(Y),await K1`GRANT USAGE, CREATE ON SCHEMA ${K1.id(X)} TO ${K1.id(Q)}`.execute(Y),await K1`GRANT ALL ON ALL TABLES IN SCHEMA ${K1.id(X)} TO ${K1.id(Q)}`.execute(Y),await K1`GRANT ALL ON ALL SEQUENCES IN SCHEMA ${K1.id(X)} TO ${K1.id(Q)}`.execute(Y),await K1`ALTER DEFAULT PRIVILEGES IN SCHEMA ${K1.id(X)} GRANT ALL ON TABLES TO ${K1.id(Q)}`.execute(Y),await K1`ALTER DEFAULT PRIVILEGES IN SCHEMA ${K1.id(X)} GRANT ALL ON SEQUENCES TO ${K1.id(Q)}`.execute(Y),await K1`REVOKE ALL ON SCHEMA public FROM ${K1.id(Q)}`.execute(Y)}async function X51(Y,X,Q,J){try{return await Y.transaction().execute(async(G)=>{return await K1`SET LOCAL ROLE ${K1.id(Q)}`.execute(G),await K1`SET LOCAL search_path TO ${K1.id(X)}`.execute(G),await K1.raw(J).execute(G)})}catch(G){if(eJ1(G))return await Y51(Y,X,Q),await Y.transaction().execute(async(K)=>{return await K1`SET LOCAL ROLE ${K1.id(Q)}`.execute(K),await K1`SET LOCAL search_path TO ${K1.id(X)}`.execute(K),await K1.raw(J).execute(K)});throw G}}var aJ1,oJ1,hN6;var bN6=S(()=>{s0();z4();aJ1=z.object({results:z.array(z.unknown()).optional(),success:z.boolean().optional()});oJ1=z.object({sql:z.string().describe("The SQL query to run"),params:z.array(z.any()).describe("The parameters to pass to the SQL query").optional()});hN6=J6({name:"DATABASES_RUN_SQL",description:"Run a SQL query against the database",inputSchema:oJ1,outputSchema:z.object({result:z.array(aJ1)}),handler:async(Y,X)=>{O6(X),await X.access.check();let Q=rJ1(Y.sql,Y.params||[]);if(!X.connectionId)throw Error("Connection context required for database access");let J=sJ1(X.connectionId),G=tJ1(X.connectionId);return{result:[{results:(await X51(X.db,J,G,Q)).rows,success:!0}]}}})});var xN6,J51,uN6;var BK=S(()=>{s0();Wu();xN6=z.object({connectionId:z.string().optional().describe("Filter subscriptions by connection ID (optional)")}),J51=z.object({id:z.string().describe("Subscription ID"),connectionId:z.string().describe("Subscriber connection ID"),eventType:z.string().describe("Event type pattern"),publisher:z.string().nullable().describe("Publisher connection filter (null = all publishers)"),filter:z.string().nullable().describe("JSONPath filter expression"),enabled:z.boolean().describe("Whether subscription is enabled"),createdAt:z.string().datetime().describe("Created timestamp (ISO 8601)"),updatedAt:z.string().datetime().describe("Updated timestamp (ISO 8601)")}),uN6=z.object({subscriptions:z.array(J51).describe("List of subscriptions")})});var yG0;var gN6=S(()=>{z4();BK();yG0=J6({name:"EVENT_PUBLISH",description:"Publish an event to the event bus. Supports immediate, scheduled (deliverAt), and recurring (cron) delivery. The source is automatically set to the caller's connection ID.",inputSchema:q2,outputSchema:z2,handler:async(Y,X)=>{O6(X);let Q=h6(X);await X.access.check();let J=X.connectionId;if(!J)throw Error("Connection ID required to publish events. Use a connection-scoped token.");let G=await X.eventBus.publish(Q.id,J,{type:Y.type,subject:Y.subject,data:Y.data,deliverAt:Y.deliverAt,cron:Y.cron});return{id:G.id,type:G.type,source:G.source,time:G.time}}})});var fG0;var mN6=S(()=>{z4();BK();fG0=J6({name:"EVENT_SUBSCRIBE",description:"Subscribe to events of a specific type. The subscriber is automatically set to the caller's connection.",inputSchema:B2,outputSchema:U2,handler:async(Y,X)=>{O6(X);let Q=h6(X);await X.access.check();let J=X.connectionId;if(!J)throw Error("Connection ID required to subscribe. Use a connection-scoped token.");let G=await X.eventBus.subscribe(Q.id,{connectionId:J,eventType:Y.eventType,publisher:Y.publisher,filter:Y.filter});return{subscription:{id:G.id,connectionId:G.connectionId,eventType:G.eventType,publisher:G.publisher,filter:G.filter,enabled:G.enabled,createdAt:G.createdAt instanceof Date?G.createdAt.toISOString():G.createdAt,updatedAt:G.updatedAt instanceof Date?G.updatedAt.toISOString():G.updatedAt}}}})});var hG0;var lN6=S(()=>{z4();BK();hG0=J6({name:"EVENT_UNSUBSCRIBE",description:"Unsubscribe from events by removing a subscription.",inputSchema:N2,outputSchema:L2,handler:async(Y,X)=>{O6(X);let Q=h6(X);await X.access.check();let J=X.connectionId;if(!J)throw Error("Connection ID required to unsubscribe. Use a connection-scoped token.");let G=await X.eventBus.getSubscription(Q.id,Y.subscriptionId);if(!G)throw Error(`Subscription not found: ${Y.subscriptionId}`);if(G.connectionId!==J)throw Error("Cannot unsubscribe from a subscription owned by another connection");return{success:(await X.eventBus.unsubscribe(Q.id,Y.subscriptionId)).success,subscriptionId:Y.subscriptionId}}})});var bG0;var dN6=S(()=>{z4();BK();bG0=J6({name:"EVENT_CANCEL",description:"Cancel a recurring event to stop future deliveries. Only the publisher can cancel their own events.",inputSchema:w2,outputSchema:M2,handler:async(Y,X)=>{O6(X);let Q=h6(X);await X.access.check();let J=X.connectionId;if(!J)throw Error("Connection ID required to cancel events. Use a connection-scoped token.");if(!await X.eventBus.getEvent(Q.id,Y.eventId))throw Error(`Event not found: ${Y.eventId}`);if(!(await X.eventBus.cancelEvent(Q.id,Y.eventId,J)).success)throw Error("Failed to cancel event. Either the event is already completed/failed, or you are not the publisher.");return{success:!0,eventId:Y.eventId}}})});var xG0;var pN6=S(()=>{z4();BK();xG0=J6({name:"EVENT_ACK",description:"Acknowledge delivery of an event. Call after successfully processing an event received via ON_EVENTS with retryAfter.",inputSchema:A2,outputSchema:T2,handler:async(Y,X)=>{O6(X);let Q=h6(X);await X.access.check();let J=X.connectionId;if(!J)throw Error("Connection ID required to acknowledge events. Use a connection-scoped token.");if(!(await X.eventBus.ackEvent(Q.id,Y.eventId,J)).success)throw Error("Failed to acknowledge event. Either the event was not found, already delivered, or you are not a subscriber.");return{success:!0,eventId:Y.eventId}}})});var uG0;var cN6=S(()=>{z4();BK();uG0=J6({name:"EVENT_SUBSCRIPTION_LIST",description:"List event subscriptions, optionally filtered by connection ID.",inputSchema:xN6,outputSchema:uN6,handler:async(Y,X)=>{O6(X);let Q=h6(X);return await X.access.check(),{subscriptions:(await X.eventBus.listSubscriptions(Q.id,Y.connectionId)).map((G)=>({id:G.id,connectionId:G.connectionId,eventType:G.eventType,publisher:G.publisher,filter:G.filter,enabled:G.enabled,createdAt:G.createdAt instanceof Date?G.createdAt.toISOString():G.createdAt,updatedAt:G.updatedAt instanceof Date?G.updatedAt.toISOString():G.updatedAt}))}}})});var gG0;var nN6=S(()=>{z4();BK();gG0=J6({name:"EVENT_SYNC_SUBSCRIPTIONS",description:"Sync subscriptions to desired state. Creates new, deletes removed, updates changed filters. Subscriptions are identified by (eventType, publisher).",inputSchema:D2,outputSchema:O2,handler:async(Y,X)=>{O6(X);let Q=h6(X);await X.access.check();let J=X.connectionId;if(!J)throw Error("Connection ID required to sync subscriptions. Use a connection-scoped token.");let G=await X.eventBus.syncSubscriptions(Q.id,{connectionId:J,subscriptions:Y.subscriptions});return{created:G.created,updated:G.updated,deleted:G.deleted,unchanged:G.unchanged,subscriptions:G.subscriptions.map((K)=>({id:K.id,connectionId:K.connectionId,eventType:K.eventType,publisher:K.publisher,filter:K.filter,enabled:K.enabled,createdAt:K.createdAt instanceof Date?K.createdAt.toISOString():K.createdAt,updatedAt:K.updatedAt instanceof Date?K.updatedAt.toISOString():K.updatedAt}))}}})});var iN6=S(()=>{gN6();mN6();lN6();dN6();pN6();cN6();nN6();BK()});var mG0,W51,CW,aN6,rN6;var WO=S(()=>{s0();mG0=z.enum(["inclusion","exclusion"]).describe("Tool selection mode: 'inclusion' = include selected (default), 'exclusion' = exclude selected"),W51=z.object({connection_id:z.string().describe("Connection ID"),selected_tools:z.array(z.string()).nullable().describe("Selected tool names. With 'inclusion' mode: null = all tools included. With 'exclusion' mode: null = entire connection excluded"),selected_resources:z.array(z.string()).nullable().describe("Selected resource URIs or patterns. Supports * and ** wildcards for pattern matching. With 'inclusion' mode: null = all resources included."),selected_prompts:z.array(z.string()).nullable().describe("Selected prompt names. With 'inclusion' mode: null = all prompts included. With 'exclusion' mode: null = entire connection excluded.")}),CW=z.object({id:z.string().describe("Unique identifier for the virtual MCP"),title:z.string().describe("Human-readable name for the virtual MCP"),description:z.string().nullable().describe("Description of the virtual MCP"),icon:z.string().nullable().optional().describe("Icon URL for the virtual MCP"),created_at:z.string().describe("When the virtual MCP was created"),updated_at:z.string().describe("When the virtual MCP was last updated"),created_by:z.string().describe("User ID who created the virtual MCP"),updated_by:z.string().optional().describe("User ID who last updated the virtual MCP"),organization_id:z.string().describe("Organization ID this virtual MCP belongs to"),tool_selection_mode:mG0.describe("Tool selection mode: 'inclusion' = include selected, 'exclusion' = exclude selected"),status:z.enum(["active","inactive"]).describe("Current status"),metadata:z.object({instructions:z.string().optional().describe("MCP server instructions")}).nullable().optional().describe("Additional metadata including MCP server instructions"),connections:z.array(W51).describe("Connections with their selected tools (behavior depends on tool_selection_mode)")}),aN6=z.object({title:z.string().min(1).max(255).describe("Name for the virtual MCP"),description:z.string().nullable().optional().describe("Optional description"),tool_selection_mode:mG0.optional().default("inclusion").describe("Tool selection mode (defaults to 'inclusion')"),icon:z.string().nullable().optional().describe("Optional icon URL"),status:z.enum(["active","inactive"]).optional().default("active").describe("Initial status"),metadata:z.object({instructions:z.string().optional().describe("MCP server instructions")}).nullable().optional().describe("Additional metadata including MCP server instructions"),connections:z.array(z.object({connection_id:z.string().describe("Connection ID"),selected_tools:z.array(z.string()).nullable().optional().describe("Selected tool names (null/undefined = all tools or full exclusion)"),selected_resources:z.array(z.string()).nullable().optional().describe("Selected resource URIs or patterns with * and ** wildcards (null/undefined = all resources)"),selected_prompts:z.array(z.string()).nullable().optional().describe("Selected prompt names (null/undefined = all prompts or full exclusion)")})).describe("Connections to include/exclude (can be empty for exclusion mode)")}),rN6=z.object({title:z.string().min(1).max(255).optional().describe("New name"),description:z.string().nullable().optional().describe("New description (null to clear)"),tool_selection_mode:mG0.optional().describe("New tool selection mode"),icon:z.string().nullable().optional().describe("New icon URL (null to clear)"),status:z.enum(["active","inactive"]).optional().describe("New status"),metadata:z.object({instructions:z.string().optional().describe("MCP server instructions")}).nullable().optional().describe("Additional metadata including MCP server instructions"),connections:z.array(z.object({connection_id:z.string().describe("Connection ID"),selected_tools:z.array(z.string()).nullable().optional().describe("Selected tool names (null/undefined = all tools or full exclusion)"),selected_resources:z.array(z.string()).nullable().optional().describe("Selected resource URIs or patterns with * and ** wildcards (null/undefined = all resources)"),selected_prompts:z.array(z.string()).nullable().optional().describe("Selected prompt names (null/undefined = all prompts or full exclusion)")})).optional().describe("New connections (replaces existing)")})});var Z51,K51,lG0;var oN6=S(()=>{s0();z4();WO();Z51=z.object({data:aN6.describe("Data for the new virtual MCP")}),K51=z.object({item:CW.describe("The created virtual MCP entity")}),lG0=J6({name:"COLLECTION_VIRTUAL_MCP_CREATE",description:"Create a new MCP virtual MCP in the organization",inputSchema:Z51,outputSchema:K51,handler:async(Y,X)=>{O6(X);let Q=h6(X);await X.access.check();let J=Q9(X);if(!J)throw Error("User ID required to create virtual MCP");return{item:await X.storage.virtualMcps.create(Q.id,J,Y.data)}}})});function H51(Y){let X=[],Q=0;while(Q<Y.length){let J=Y[Q];if(J==="%")X.push(".*");else if(J==="_")X.push(".");else if(/[.*+?^${}()|[\]\\]/.test(J))X.push("\\"+J);else X.push(J);Q++}return X.join("")}function m3(Y){return typeof Y==="string"||typeof Y==="number"}function dG0(Y,X){let Q=X.split("."),J=Y;for(let G of Q){if(J==null||typeof J!=="object")return;J=J[G]}return J}function F51(Y,X){return Y.connections.some((Q)=>Q.connection_id===X)}function $u(Y,X){if("conditions"in X){let{operator:Z,conditions:H}=X;switch(Z){case"and":return H.every((F)=>$u(Y,F));case"or":return H.some((F)=>$u(Y,F));case"not":return!H.every((F)=>$u(Y,F));default:return!0}}let{field:Q,operator:J,value:G}=X,K=Q.join(".");if(K==="connection_id"){if(J!=="eq"||typeof G!=="string")return!1;return F51(Y,G)}let W=dG0(Y,K);switch(J){case"eq":return W===G;case"gt":return m3(W)&&m3(G)&&W>G;case"gte":return m3(W)&&m3(G)&&W>=G;case"lt":return m3(W)&&m3(G)&&W<G;case"lte":return m3(W)&&m3(G)&&W<=G;case"in":return Array.isArray(G)&&G.includes(W);case"like":if(typeof W!=="string"||typeof G!=="string")return!1;if(G.length>100)return!1;let Z=H51(G);return new RegExp(`^${Z}$`,"i").test(W);case"contains":if(typeof W!=="string"||typeof G!=="string")return!1;return W.toLowerCase().includes(G.toLowerCase());default:return!0}}function V51(Y,X){return[...Y].sort((Q,J)=>{for(let G of X){let K=G.field.join("."),W=dG0(Q,K),Z=dG0(J,K),H=0;if(W==null&&Z==null)continue;if(W==null)H=G.nulls==="first"?-1:1;else if(Z==null)H=G.nulls==="first"?1:-1;else if(typeof W==="string"&&typeof Z==="string")H=W.localeCompare(Z);else if(typeof W==="number"&&typeof Z==="number")H=W-Z;else H=String(W).localeCompare(String(Z));if(H!==0)return G.direction==="desc"?-H:H}return 0})}var $51,q51,pG0;var sN6=S(()=>{u5();z4();WO();$51=VK,q51=$K(CW),pG0=J6({name:"COLLECTION_VIRTUAL_MCP_LIST",description:"List all MCP virtual MCPs in the organization",inputSchema:$51,outputSchema:q51,handler:async(Y,X)=>{await X.access.check();let Q=h6(X),J=Y.where&&!("conditions"in Y.where)&&Y.where.field.join(".")==="connection_id"&&Y.where.operator==="eq"&&typeof Y.where.value==="string"?Y.where.value:void 0,K=J?await X.storage.virtualMcps.listByConnectionId(Q.id,J):await X.storage.virtualMcps.list(Q.id);if(Y.where)K=K.filter(($)=>$u($,Y.where));if(Y.orderBy&&Y.orderBy.length>0)K=V51(K,Y.orderBy);let W=K.length,Z=Y.offset??0,H=Y.limit??100,F=K.slice(Z,Z+H),V=Z+H<W;return{items:F,totalCount:W,hasMore:V}}})});var z51,B51,cG0;var tN6=S(()=>{s0();z4();WO();z51=z.object({id:z.string().describe("ID of the virtual MCP to retrieve")}),B51=z.object({item:CW.nullable().describe("The retrieved virtual MCP, or null if not found")}),cG0=J6({name:"COLLECTION_VIRTUAL_MCP_GET",description:"Get an MCP virtual MCP by ID",inputSchema:z51,outputSchema:B51,handler:async(Y,X)=>{O6(X);let Q=h6(X);await X.access.check();let J=await X.storage.virtualMcps.findById(Y.id);if(J&&J.organization_id!==Q.id)return{item:null};if(!J)return{item:null};return{item:J}}})});var U51,D51,nG0;var eN6=S(()=>{s0();z4();WO();U51=z.object({id:z.string().describe("ID of the virtual MCP to update"),data:rN6.describe("Partial virtual MCP data to update")}),D51=z.object({item:CW.describe("The updated virtual MCP entity")}),nG0=J6({name:"COLLECTION_VIRTUAL_MCP_UPDATE",description:"Update an MCP virtual MCP",inputSchema:U51,outputSchema:D51,handler:async(Y,X)=>{O6(X);let Q=h6(X);await X.access.check();let J=Q9(X);if(!J)throw Error("User ID required to update virtual MCP");let G=await X.storage.virtualMcps.findById(Y.id);if(!G)throw Error(`Virtual MCP not found: ${Y.id}`);if(G.organization_id!==Q.id)throw Error(`Virtual MCP not found: ${Y.id}`);return{item:await X.storage.virtualMcps.update(Y.id,J,Y.data)}}})});var O51,N51,iG0;var YL6=S(()=>{s0();z4();WO();O51=z.object({id:z.string().describe("ID of the virtual MCP to delete")}),N51=z.object({item:CW.describe("The deleted virtual MCP entity")}),iG0=J6({name:"COLLECTION_VIRTUAL_MCP_DELETE",description:"Delete an MCP virtual MCP",inputSchema:O51,outputSchema:N51,handler:async(Y,X)=>{O6(X);let Q=h6(X);await X.access.check();let J=await X.storage.virtualMcps.findById(Y.id);if(!J)throw Error(`Virtual MCP not found: ${Y.id}`);if(J.organization_id!==Q.id)throw Error(`Virtual MCP not found: ${Y.id}`);return await X.storage.virtualMcps.delete(Y.id),{item:J}}})});var XL6=S(()=>{oN6();sN6();tN6();eN6();YL6()});var w51,aG0;var QL6=S(()=>{z4();s0();w51=z.object({id:z.string().optional().describe("Unique log identifier"),organizationId:z.string().describe("Organization ID"),connectionId:z.string().describe("Connection ID"),connectionTitle:z.string().describe("Connection display name"),toolName:z.string().describe("Name of the tool that was called"),input:z.record(z.string(),z.unknown()).describe("Redacted tool input"),output:z.record(z.string(),z.unknown()).describe("Redacted tool output"),isError:z.boolean().describe("Whether the call resulted in an error"),errorMessage:z.string().nullish().describe("Error message if applicable"),durationMs:z.number().describe("Call duration in milliseconds"),timestamp:z.string().describe("ISO 8601 timestamp of the call"),userId:z.string().nullish().describe("User who triggered the call"),requestId:z.string().describe("Unique request identifier"),userAgent:z.string().nullish().describe("Client identifier (x-mesh-client header)"),virtualMcpId:z.string().nullish().describe("Virtual MCP (Agent) ID if routed through an agent"),properties:z.record(z.string(),z.string()).nullish().describe("Custom key-value metadata attached to the log")}),aG0=J6({name:"MONITORING_LOGS_LIST",description:"List monitoring logs for tool calls in the organization",inputSchema:z.object({connectionId:z.string().optional().describe("Filter by connection ID"),virtualMcpId:z.string().optional().describe("Filter by Virtual MCP (Agent) ID"),toolName:z.string().optional().describe("Filter by tool name"),isError:z.boolean().optional().describe("Filter by error status"),startDate:z.string().datetime().optional().describe("Filter by start date (ISO 8601 datetime string)"),endDate:z.string().datetime().optional().describe("Filter by end date (ISO 8601 datetime string)"),limit:z.number().default(10).describe("Maximum number of results"),offset:z.number().default(0).describe("Offset for pagination"),properties:z.record(z.string(),z.string()).optional().describe("Filter by exact property key=value matches"),propertyKeys:z.array(z.string()).optional().describe("Filter by logs that have these property keys"),propertyPatterns:z.record(z.string(),z.string()).optional().describe("Filter by property value patterns (SQL LIKE, use % as wildcard)")}),outputSchema:z.object({logs:z.array(w51).describe("Array of monitoring logs"),total:z.number().describe("Total number of logs matching filters"),offset:z.number().describe("Current offset for pagination"),limit:z.number().describe("Current limit for pagination")}),handler:async(Y,X)=>{let Q=h6(X),G=Y.properties||Y.propertyKeys||Y.propertyPatterns?{properties:Y.properties,propertyKeys:Y.propertyKeys,propertyPatterns:Y.propertyPatterns}:void 0,K={organizationId:Q.id,connectionId:Y.connectionId,virtualMcpId:Y.virtualMcpId,toolName:Y.toolName,isError:Y.isError,startDate:Y.startDate?new Date(Y.startDate):void 0,endDate:Y.endDate?new Date(Y.endDate):void 0,limit:Y.limit,offset:Y.offset,propertyFilters:G},W=await X.storage.monitoring.query(K);return{logs:W.logs.map((Z)=>({...Z,timestamp:Z.timestamp instanceof Date?Z.timestamp.toISOString():Z.timestamp})),total:W.total,offset:Y.offset,limit:Y.limit}}})});var rG0;var JL6=S(()=>{z4();s0();rG0=J6({name:"MONITORING_STATS",description:"Get aggregated statistics for tool call monitoring",inputSchema:z.object({startDate:z.string().datetime().optional().describe("Filter by start date (ISO 8601 datetime string)"),endDate:z.string().datetime().optional().describe("Filter by end date (ISO 8601 datetime string)")}),outputSchema:z.object({totalCalls:z.number().describe("Total number of tool calls"),errorRate:z.number().describe("Error rate as a decimal (0 to 1)"),avgDurationMs:z.number().describe("Average call duration in milliseconds"),errorRatePercent:z.string().describe("Error rate as a percentage string")}),handler:async(Y,X)=>{let J={organizationId:h6(X).id,startDate:Y.startDate?new Date(Y.startDate):void 0,endDate:Y.endDate?new Date(Y.endDate):void 0},G=await X.storage.monitoring.getStats(J);return{...G,errorRatePercent:(G.errorRate*100).toFixed(2)}}})});var GL6=S(()=>{QL6();JL6()});var oG0;var WL6=S(()=>{s0();z4();oG0=J6({name:"ORGANIZATION_CREATE",description:"Create a new organization",inputSchema:z.object({slug:z.string().min(1).max(50).regex(/^[a-z0-9-]+$/,"Slug must be lowercase alphanumeric with hyphens"),name:z.string().min(1).max(255),description:z.string().optional()}),outputSchema:z.object({id:z.string(),name:z.string(),slug:z.string(),logo:z.string().nullable().optional(),metadata:z.any().optional(),createdAt:z.string().datetime().describe("ISO 8601 timestamp"),members:z.array(z.any()).optional()}),handler:async(Y,X)=>{O6(X),await X.access.check();let Q=Q9(X);if(!Q)throw Error("User ID required to create organization");let J=await X.boundAuth.organization.create({name:Y.name,slug:Y.slug,metadata:Y.description?{description:Y.description}:void 0,userId:Q});if(!J)throw Error("Failed to create organization");return{...J,createdAt:J.createdAt instanceof Date?J.createdAt.toISOString():J.createdAt}}})});var sG0;var ZL6=S(()=>{s0();z4();sG0=J6({name:"ORGANIZATION_LIST",description:"List all organizations user has access to",inputSchema:z.object({userId:z.string().optional()}),outputSchema:z.object({organizations:z.array(z.object({id:z.string(),name:z.string(),slug:z.string(),logo:z.string().nullable().optional(),metadata:z.any().optional(),createdAt:z.string().datetime().describe("ISO 8601 timestamp")}))}),handler:async(Y,X)=>{O6(X),await X.access.check();let Q=Q9(X),J=Y.userId||Q;if(!J)throw Error("User ID required to list organizations");return{organizations:(await X.boundAuth.organization.list(J)).map((K)=>({...K,createdAt:K.createdAt instanceof Date?K.createdAt.toISOString():K.createdAt}))}}})});var tG0;var KL6=S(()=>{s0();z4();tG0=J6({name:"ORGANIZATION_GET",description:"Get organization details by slug or ID",inputSchema:z.object({}),outputSchema:z.object({id:z.string(),name:z.string(),slug:z.string(),logo:z.string().nullable().optional(),metadata:z.any().optional(),createdAt:z.string().datetime().describe("ISO 8601 timestamp"),members:z.array(z.any()).optional(),invitations:z.array(z.any()).optional()}),handler:async(Y,X)=>{O6(X),await X.access.check();let Q=await X.boundAuth.organization.get();if(!Q)throw Error("No active organization found");let J=new Date,G=Q.invitations?.filter((K)=>new Date(K.expiresAt)>J);return{...Q,invitations:G,createdAt:Q.createdAt instanceof Date?Q.createdAt.toISOString():Q.createdAt}}})});var eG0;var HL6=S(()=>{s0();z4();eG0=J6({name:"ORGANIZATION_UPDATE",description:"Update an existing organization",inputSchema:z.object({id:z.string(),slug:z.string().min(1).max(50).regex(/^[a-z0-9-]+$/).optional(),name:z.string().min(1).max(255).optional(),description:z.string().optional()}),outputSchema:z.object({id:z.string(),name:z.string(),slug:z.string(),logo:z.string().nullable().optional(),metadata:z.any().optional(),createdAt:z.string().datetime().describe("ISO 8601 timestamp")}),handler:async(Y,X)=>{O6(X),await X.access.check();let Q={};if(Y.name)Q.name=Y.name;if(Y.slug)Q.slug=Y.slug;if(Y.description)Q.metadata={description:Y.description};let J=await X.boundAuth.organization.update({organizationId:Y.id,data:Q});if(!J)throw Error("Failed to update organization");return{...J,createdAt:J.createdAt instanceof Date?J.createdAt.toISOString():J.createdAt}}})});var Y70;var FL6=S(()=>{s0();z4();Y70=J6({name:"ORGANIZATION_DELETE",description:"Delete an organization",inputSchema:z.object({id:z.string()}),outputSchema:z.object({success:z.boolean(),id:z.string()}),handler:async(Y,X)=>{return O6(X),await X.access.check(),await X.boundAuth.organization.delete(Y.id),{success:!0,id:Y.id}}})});var E2;var X70=S(()=>{s0();E2=z.object({title:z.string(),url:z.string(),icon:z.string()})});var Q70;var VL6=S(()=>{s0();z4();X70();Q70=J6({name:"ORGANIZATION_SETTINGS_GET",description:"Get organization-level settings",inputSchema:z.object({}),outputSchema:z.object({organizationId:z.string(),sidebar_items:z.array(E2).nullable().optional(),enabled_plugins:z.array(z.string()).nullable().optional(),createdAt:z.string().datetime().optional().describe("ISO 8601 timestamp"),updatedAt:z.string().datetime().optional().describe("ISO 8601 timestamp")}),handler:async(Y,X)=>{O6(X),await X.access.check();let Q=X.organization?.id;if(!Q)throw Error("Organization ID required (no active organization in context)");let J=await X.storage.organizationSettings.get(Q);if(!J)return{organizationId:Q};return{...J,createdAt:J.createdAt instanceof Date?J.createdAt.toISOString():J.createdAt,updatedAt:J.updatedAt instanceof Date?J.updatedAt.toISOString():J.updatedAt}}})});var J70;var $L6=S(()=>{s0();z4();X70();J70=J6({name:"ORGANIZATION_SETTINGS_UPDATE",description:"Update organization-level settings",inputSchema:z.object({organizationId:z.string(),sidebar_items:z.array(E2).optional(),enabled_plugins:z.array(z.string()).optional()}),outputSchema:z.object({organizationId:z.string(),sidebar_items:z.array(E2).nullable().optional(),enabled_plugins:z.array(z.string()).nullable().optional(),createdAt:z.string().datetime().describe("ISO 8601 timestamp"),updatedAt:z.string().datetime().describe("ISO 8601 timestamp")}),handler:async(Y,X)=>{if(O6(X),await X.access.check(),X.organization&&X.organization.id!==Y.organizationId)throw Error("Cannot update settings for a different organization");let Q=await X.storage.organizationSettings.upsert(Y.organizationId,{sidebar_items:Y.sidebar_items,enabled_plugins:Y.enabled_plugins});return{...Q,createdAt:Q.createdAt instanceof Date?Q.createdAt.toISOString():Q.createdAt,updatedAt:Q.updatedAt instanceof Date?Q.updatedAt.toISOString():Q.updatedAt}}})});var G70;var qL6=S(()=>{s0();z4();G70=J6({name:"ORGANIZATION_MEMBER_ADD",description:"Add a member to an organization",inputSchema:z.object({organizationId:z.string().optional(),userId:z.string(),role:z.array(z.string())}),outputSchema:z.object({id:z.string(),organizationId:z.string(),userId:z.string(),role:z.union([z.string(),z.array(z.string())]),createdAt:z.string().datetime().describe("ISO 8601 timestamp")}),handler:async(Y,X)=>{O6(X),await X.access.check();let Q=Y.organizationId||X.organization?.id;if(!Q)throw Error("Organization ID required (no active organization in context)");let J=await X.boundAuth.organization.addMember({organizationId:Q,userId:Y.userId,role:Y.role});if(!J)throw Error("Failed to add member");return{...J,role:J.role,createdAt:J.createdAt instanceof Date?J.createdAt.toISOString():J.createdAt}}})});var W70;var zL6=S(()=>{s0();z4();W70=J6({name:"ORGANIZATION_MEMBER_REMOVE",description:"Remove a member from an organization",inputSchema:z.object({organizationId:z.string().optional(),memberIdOrEmail:z.string()}),outputSchema:z.object({success:z.boolean(),memberIdOrEmail:z.string()}),handler:async(Y,X)=>{O6(X),await X.access.check();let Q=Y.organizationId||X.organization?.id;if(!Q)throw Error("Organization ID required (no active organization in context)");return await X.boundAuth.organization.removeMember({organizationId:Q,memberIdOrEmail:Y.memberIdOrEmail}),{success:!0,memberIdOrEmail:Y.memberIdOrEmail}}})});var Z70;var BL6=S(()=>{s0();z4();Z70=J6({name:"ORGANIZATION_MEMBER_LIST",description:"List all members in an organization",inputSchema:z.object({limit:z.number().optional(),offset:z.number().optional()}),outputSchema:z.object({members:z.array(z.object({id:z.string(),organizationId:z.string(),userId:z.string(),role:z.string(),createdAt:z.string().datetime().describe("ISO 8601 timestamp"),user:z.object({id:z.string(),name:z.string(),email:z.string(),image:z.string().optional()}).optional()}))}),handler:async(Y,X)=>{O6(X),await X.access.check();let Q=X.organization?.id;if(!Q)throw Error("Organization ID required (no active organization in context)");let J=await X.boundAuth.organization.listMembers({organizationId:Q,limit:Y.limit,offset:Y.offset});return{members:(Array.isArray(J)?J:[]).map((K)=>({...K,createdAt:K.createdAt instanceof Date?K.createdAt.toISOString():K.createdAt}))}}})});var K70;var UL6=S(()=>{s0();z4();K70=J6({name:"ORGANIZATION_MEMBER_UPDATE_ROLE",description:"Update a member's role in an organization",inputSchema:z.object({organizationId:z.string().optional(),memberId:z.string(),role:z.array(z.string())}),outputSchema:z.object({id:z.string(),organizationId:z.string(),userId:z.string(),role:z.union([z.literal("admin"),z.literal("member"),z.literal("owner")]),createdAt:z.string().datetime().describe("ISO 8601 timestamp"),user:z.object({email:z.string(),name:z.string(),image:z.string().optional()})}),handler:async(Y,X)=>{O6(X),await X.access.check();let Q=Y.organizationId||X.organization?.id;if(!Q)throw Error("Organization ID required (no active organization in context)");let J=await X.boundAuth.organization.updateMemberRole({organizationId:Q,memberId:Y.memberId,role:Y.role});if(!J)throw Error("Failed to update member role");return{...J,createdAt:J.createdAt instanceof Date?J.createdAt.toISOString():J.createdAt}}})});var DL6=S(()=>{WL6();ZL6();KL6();HL6();FL6();VL6();$L6();qL6();zL6();BL6();UL6()});var OL6,IW,NL6,LL6;var Wq=S(()=>{s0();OL6=z.object({id:z.string().describe("Unique message ID"),threadId:z.string().describe("ID of the parent thread"),metadata:z.unknown().optional().describe("Optional message metadata"),parts:z.array(z.record(z.string(),z.unknown())).describe("Message content parts (AI SDK UIMessagePart format)"),role:z.enum(["user","assistant","system"]).describe("Message role"),createdAt:z.string().datetime().describe("Timestamp of creation"),updatedAt:z.string().datetime().describe("Timestamp of last update")}),IW=z.object({id:z.string().describe("Unique thread ID"),organizationId:z.string().describe("Organization this thread belongs to"),title:z.string().describe("Thread title"),description:z.string().nullable().describe("Thread description"),createdAt:z.string().datetime().describe("Timestamp of creation"),updatedAt:z.string().datetime().describe("Timestamp of last update"),hidden:z.boolean().optional().describe("Whether the thread is hidden"),createdBy:z.string().describe("User ID who created the thread"),updatedBy:z.string().nullable().describe("User ID who last updated the thread")}),NL6=z.object({id:z.string().optional().describe("Optional custom ID for the thread"),title:z.string().describe("Thread title"),description:z.string().nullish().describe("Thread description")}),LL6=z.object({title:z.string().optional().describe("New thread title"),description:z.string().nullish().describe("New thread description"),hidden:z.boolean().optional().describe("Whether the thread is hidden")})});var T51,P51,H70;var wL6=S(()=>{s0();z4();Wq();KK();T51=z.object({data:NL6.describe("Data for the new thread (id is auto-generated if not provided)")}),P51=z.object({item:IW.describe("The created thread entity")}),H70=J6({name:"COLLECTION_THREADS_CREATE",description:"Create a new thread in the organization",inputSchema:T51,outputSchema:P51,handler:async(Y,X)=>{O6(X);let Q=h6(X);await X.access.check();let J=Q9(X);if(!J)throw Error("User ID required to create thread");let G=Y.data.id??L9("thrd"),K=await X.storage.threads.create({id:G,organizationId:Q.id,title:Y.data.title,description:Y.data.description,createdBy:J});return{item:{...K,hidden:K.hidden??!1}}}})});var E51,C51,F70;var ML6=S(()=>{u5();z4();Wq();s0();E51=VK.extend({where:z.object({created_by:z.string().optional()}).optional()}),C51=$K(IW),F70=J6({name:"COLLECTION_THREADS_LIST",description:"List all threads in the organization with filtering, sorting, and pagination",inputSchema:E51,outputSchema:C51,handler:async(Y,X)=>{await X.access.check();let Q=X.auth.user?.id;if(!Q)throw Error("User ID required to list threads");let J=h6(X),G=Y.offset??0,K=Y.limit??100,{threads:W,total:Z}=await X.storage.threads.list(J.id,Q,{limit:K,offset:G}),H=G+K<Z;return{items:W.map((F)=>({...F,hidden:F.hidden??!1})),totalCount:Z,hasMore:H}}})});var I51,V70;var AL6=S(()=>{u5();z4();Wq();I51=F2(IW),V70=J6({name:"COLLECTION_THREADS_GET",description:"Get thread details by ID",inputSchema:H2,outputSchema:I51,handler:async(Y,X)=>{O6(X);let Q=h6(X);await X.access.check();let J=await X.storage.threads.get(Y.id);if(!J||J.organizationId!==Q.id)return{item:null};return{item:{...J,hidden:J.hidden??!1}}}})});var R51,j51,$70;var TL6=S(()=>{s0();z4();Wq();R51=z.object({id:z.string().describe("ID of the thread to update"),data:LL6.describe("Partial thread data to update")}),j51=z.object({item:IW.describe("The updated thread entity")}),$70=J6({name:"COLLECTION_THREADS_UPDATE",description:"Update an existing thread in the organization",inputSchema:R51,outputSchema:j51,handler:async(Y,X)=>{O6(X);let Q=h6(X);await X.access.check();let J=Q9(X);if(!J)throw Error("User ID required to update thread");let{id:G,data:K}=Y,W=await X.storage.threads.get(G);if(!W||W.organizationId!==Q.id)throw Error("Thread not found in organization");let Z=await X.storage.threads.update(G,{title:K.title,description:K.description,hidden:K.hidden,updatedBy:J});return{item:{...Z,hidden:Z.hidden??!1}}}})});var q70;var PL6=S(()=>{u5();z4();Wq();q70=J6({name:"COLLECTION_THREADS_DELETE",description:"Delete a thread",inputSchema:V2,outputSchema:$2(IW),handler:async(Y,X)=>{O6(X);let Q=h6(X);await X.access.check();let J=await X.storage.threads.get(Y.id);if(!J)throw Error(`Thread not found: ${Y.id}`);if(J.organizationId!==Q.id)throw Error(`Thread not found: ${Y.id}`);return await X.storage.threads.delete(Y.id),{item:{...J,hidden:J.hidden??!1}}}})});function EL6(Y){if(!Y)return null;if("field"in Y&&Y.field[0]==="threadId"&&Y.operator==="eq")return String(Y.value);if("conditions"in Y)for(let X of Y.conditions){let Q=EL6(X);if(Q)return Q}return null}var S51,z70;var CL6=S(()=>{u5();z4();Wq();S51=$K(OL6),z70=J6({name:"COLLECTION_THREAD_MESSAGES_LIST",description:"List all messages for a specific thread",inputSchema:VK,outputSchema:S51,handler:async(Y,X)=>{let Q=h6(X);await X.access.check();let J=EL6(Y.where);if(!J)throw Error("threadId filter is required in where clause");let G=await X.storage.threads.get(J);if(!G||G.organizationId!==Q.id)throw Error("Thread not found in organization");let K=Y.offset??0,W=Y.limit??100,{messages:Z,total:H}=await X.storage.threads.listMessages(J,{limit:W,offset:K}),F=K+W<H;return{items:Z,totalCount:H,hasMore:F}}})});var IL6=S(()=>{wL6();ML6();AL6();TL6();PL6();CL6()});var v51,_51,B70;var RL6=S(()=>{s0();z4();v51=z.object({id:z.string().min(1)}),_51=z.object({user:z.object({id:z.string(),name:z.string(),email:z.string(),image:z.string().nullable()}).nullable()}),B70=J6({name:"USER_GET",description:"Get a user by id (restricted to shared organizations)",inputSchema:v51,outputSchema:_51,handler:async(Y,X)=>{await X.access.check(),O6(X);let Q=Q9(X);if(!Q)throw Error("Authentication required");let J=await X.storage.users.findById(Y.id,Q);if(!J)return{user:null};return{user:{id:J.id,name:J.name,email:J.email,image:J.image??null}}}})});var jL6=S(()=>{RL6()});var kL6={};o6(kL6,{managementMCP:()=>U70,ALL_TOOLS:()=>SL6});var f51,h51,SL6,U70=async(Y)=>{let X=null;if(Y.organization)X=(await Y.storage.organizationSettings.get(Y.organization.id))?.enabled_plugins??null;let J=tH0(SL6,X).map((K)=>({name:K.name,description:K.description,inputSchema:K.inputSchema,outputSchema:K.outputSchema,handler:async(W)=>{return Y.access.setToolName(K.name),await K.execute(W,Y)}}));return mD6({name:"mcp-mesh-management",version:"1.0.0"}).withTools(J).build()};var D70=S(()=>{lD6();DR();QO6();iO6();_N6();bN6();iN6();XL6();GL6();DL6();IL6();jL6();f51=[oG0,sG0,tG0,eG0,Y70,Q70,J70,G70,W70,Z70,K70,wG0,IG0,RG0,kG0,vG0,_G0,lG0,pG0,cG0,nG0,iG0,hN6,aG0,rG0,a50,o50,s50,r50,yG0,fG0,hG0,bG0,xG0,uG0,gG0,B70,OG0,NG0,LG0,H70,F70,V70,$70,q70,z70],h51=eH0(),SL6=[...f51,...h51]});function b51(Y){return[{permissions:{self:["*"]},getTools:async()=>{let{ALL_TOOLS:X}=await Promise.resolve().then(() => (D70(),kL6));return X.map((Q)=>{return{name:Q.name,inputSchema:z.toJSONSchema(Q.inputSchema,{unrepresentable:"any"}),outputSchema:Q.outputSchema?z.toJSONSchema(Q.outputSchema,{unrepresentable:"any"}):void 0,description:Q.description}})},data:q50(process.env.BASE_URL||"http://localhost:3000",Y)},{data:$50()},{data:V50(Y)}]}async function vL6(Y,X){try{let Q=v$(),J=new a$(process.env.ENCRYPTION_KEY||""),G=new aP(Q.db,J),K=b51(Y);await Promise.all(K.map(async(W)=>{let Z=null;if(W.permissions)Z=(await uG.api.createApiKey({body:{name:`${W.data.app_name??crypto.randomUUID()}-mcp`,userId:X,permissions:W.permissions,rateLimitEnabled:!1,metadata:{organization:{id:Y},purpose:"default-org-connections"}}}))?.key;let H=await W.getTools?.()??await rD({id:"pending",title:W.data.title,connection_type:W.data.connection_type,connection_url:W.data.connection_url,connection_token:W.data.connection_token,connection_headers:W.data.connection_headers}).catch(()=>null),F=W.data.id?W.data.id.startsWith(`${Y}_`)?W.data.id:`${Y}_${W.data.id}`:void 0;await G.create({...W.data,id:F,tools:H,organization_id:Y,created_by:X,connection_token:W.data.connection_token??Z})}))}catch(Q){console.error("Error creating default MCP connections:",Q)}}var _L6=S(()=>{nP();dT();bx();L50();px();s0();ZO()});var O70,yL6;var N70=S(()=>{O70=["owner","admin","user"],yL6=["owner","admin"]});var x51=(Y)=>{return{defaultSSO:[{domain:Y.domain,providerId:Y.providerId,oidcConfig:{issuer:`https://login.microsoftonline.com/${Y.MS_TENANT_ID}/v2.0`,pkce:!0,clientId:Y.MS_CLIENT_ID,clientSecret:Y.MS_CLIENT_SECRET,discoveryEndpoint:`https://login.microsoftonline.com/${Y.MS_TENANT_ID}/v2.0/.well-known/openid-configuration`,authorizationEndpoint:`https://login.microsoftonline.com/${Y.MS_TENANT_ID}/oauth2/v2.0/authorize`,tokenEndpoint:`https://login.microsoftonline.com/${Y.MS_TENANT_ID}/oauth2/v2.0/token`,jwksEndpoint:`https://login.microsoftonline.com/${Y.MS_TENANT_ID}/discovery/v2.0/keys`,userInfoEndpoint:"https://graph.microsoft.com/oidc/userinfo",tokenEndpointAuthentication:"client_secret_post",scopes:Y.scopes,mapping:{id:"sub",email:"email",emailVerified:"email_verified",name:"name",image:"picture",extraFields:{emailVerified:"email_verified"}}}}]}},fL6=(Y)=>{if(Y.providerId==="microsoft")return x51(Y);throw Error(`Unsupported provider: ${Y.providerId}`)};function u51(Y){return Y.toLowerCase().trim().replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function g51(){let Y=Math.floor(Math.random()*bL6.length),X=Math.floor(Math.random()*hL6.length),Q=bL6[Y]??"deco",J=hL6[X]??"studio";return`${Q}-${J}`}var hL6,bL6,m51,l51,qu,d51,p51,c51,xL6,w9,uL6=void 0,n51,i51,a51,uG;var ZO=S(()=>{yn();hM0();AT0();To();is();BP0();Sv();AP0();dT();UX0();O36();_L6();N70();hL6=["labs","agent","studio","workspace","systems","core","cloud","works"],bL6=["capybara","guarana","deco","samba","feijoada","capoeira","carnival"];m51=Object.values(fL()).map((Y)=>Y.map((X)=>X.name)).flat(),l51={...Bv,self:["*",...m51]},qu=g7(l51),d51=qu.newRole({self:["*"],...zM.statements}),p51=qu.newRole({self:["*"],...zM.statements}),c51=qu.newRole({self:["*"],...zM.statements}),xL6=Object.values(fL()).map((Y)=>Y.map((X)=>`self:${X.name}`)).flat(),w9=AM.auth;if(w9.inviteEmailProviderId&&w9.emailProviders&&w9.emailProviders.length>0){let Y=dh(w9.emailProviders,w9.inviteEmailProviderId);if(Y){let X=lh(Y);uL6=async(Q)=>{let J=Q.inviter.user?.name||Q.inviter.user?.email,G=`${process.env.BASE_URL||"http://localhost:3000"}/auth/accept-invitation?invitationId=${Q.invitation.id}`;await X({to:Q.email,subject:`Invitation to join ${Q.organization.name}`,html:`
|
|
1185
1185
|
<h2>You've been invited!</h2>
|
|
1186
1186
|
<p>${J} has invited you to join <strong>${Q.organization.name}</strong>.</p>
|
|
1187
1187
|
<p><a href="${G}">Click here to accept the invitation</a></p>
|
|
1188
|
-
`})}}}n51=[Ms({organizationCreation:{afterCreate:async(Y)=>{await vL6(Y.organization.id,Y.member.userId)}},ac:qu,creatorRole:"owner",allowUserToCreateOrganization:!0,dynamicAccessControl:{enabled:!0,maximumRolesPerOrganization:500,enableCustomResources:!0,allowedRolesToCreateResources:yL6,resourceNameValidation:(Y)=>{return{valid:/^[a-zA-Z0-9-_]+$/.test(Y)}}},roles:{user:d51,admin:p51,owner:c51},sendInvitationEmail:uL6}),ls({loginPage:"/login",oidcConfig:{scopes:xL6,metadata:{scopes_supported:xL6},loginPage:"/login"}}),ms({enableMetadata:!0,maximumNameLength:64,keyExpiration:{minExpiresIn:0.003472222222222222},enableSessionForAPIKeys:!0,customAPIKeyGetter:(Y)=>{if(Y.headers?.get("X-MCP-Session-Auth")==="true")return null;let Q=Y.headers?.get("Authorization");if(Q?.startsWith("Bearer "))return Q.replace("Bearer ","").trim();return null},permissions:{defaultPermissions:{self:["ORGANIZATION_LIST","ORGANIZATION_GET","ORGANIZATION_MEMBER_LIST","COLLECTION_CONNECTIONS_LIST","COLLECTION_CONNECTIONS_GET","API_KEY_CREATE","API_KEY_LIST"]}},rateLimit:{enabled:!1}}),Rs({defaultRole:"user",adminRoles:["admin","owner"]}),ns(),ks({jwt:{expirationTime:"5m"}}),fM0(w9.ssoConfig?fL6(w9.ssoConfig):void 0),...w9.magicLinkConfig&&w9.emailProviders&&w9.emailProviders.length>0?[cs(D36(w9.magicLinkConfig,w9.emailProviders))]:[]],i51=qX0(),a51=B36(i51),uG=Ao({baseURL:process.env.BASE_URL||"http://localhost:3000",database:a51,emailAndPassword:{enabled:!0},...w9,rateLimit:{enabled:process.env.DISABLE_RATE_LIMIT!=="true",window:60,max:1e4},plugins:n51,databaseHooks:{user:{create:{after:async(Y)=>{if(AM.autoCreateOrganizationOnSignup===!1)return;let X=Y.name?Y.name.split(" ")[0]:Y.email.split("@")[0],Q=3;for(let J=0;J<Q;J++){let G=`${X} ${g51()}`,K=u51(G);try{await uG.api.createOrganization({body:{name:G,slug:K,userId:Y.id}});return}catch(W){if(!(W instanceof Error&&("body"in W)&&W.body?.code==="ORGANIZATION_ALREADY_EXISTS")||J===Q-1){console.error("Failed to create default organization:",W);return}}}}}}}})});async function gL6(){console.log("\uD83D\uDD10 Running Better Auth migrations...");try{let{toBeAdded:Y,toBeCreated:X,runMigrations:Q}=await yL(uG.options);if(!Y.length&&!X.length){console.log("\u2705 Better Auth schema is up to date (no migrations needed)");return}console.log("\uD83D\uDCCB Better Auth will create/update the following tables:");for(let J of[...X,...Y])console.log(` - ${J.table}`);await Q(),console.log("\u2705 Better Auth migrations completed successfully")}catch(Y){console.warn("\u26A0\uFE0F Better Auth migration failed (tables may be created on first use):",Y)}}var mL6=S(()=>{z$0();ZO()});var pL6={};o6(pL6,{runSeed:()=>Zc,runKyselyMigrations:()=>dL6,migrateToLatest:()=>r51,migrateDown:()=>o51});import{Migrator as lL6}from"kysely";async function dL6(Y){let X=new lL6({db:Y,provider:{getMigrations:()=>Promise.resolve(wR)}}),{error:Q,results:J}=await X.migrateToLatest();if(J?.forEach((G)=>{if(G.status==="Success")console.log(`\u2705 Migration "${G.migrationName}" executed successfully`);else if(G.status==="Error")console.error(`\u274C Failed to execute migration "${G.migrationName}"`)}),Q)throw console.error("Failed to migrate"),console.error(Q),Q}async function r51(Y){let{keepOpen:X=!1,database:Q,skipBetterAuth:J=!1,seed:G}=Y??{};if(!J&&!Q)await gL6();let K=Q??v$(),W=async()=>{if(!X&&!Q)console.log("\uD83D\uDD12 Closing database connection..."),await U36(K).catch((Z)=>{console.warn("Warning: Error closing database:",Z)})};try{console.log("\uD83D\uDCCA Running Kysely migrations..."),await dL6(K.db),console.log("\uD83C\uDF89 All Kysely migrations completed successfully");let Z;if(G)Z=await Zc(K.db,G);return await W(),{seedResult:Z}}catch(Z){throw await W(),Z}}async function o51(){let Y=v$(),X=new lL6({db:Y.db,provider:{getMigrations:()=>Promise.resolve(wR)}}),{error:Q,results:J}=await X.migrateDown();if(J?.forEach((G)=>{if(G.status==="Success")console.log(`\u2705 Migration "${G.migrationName}" rolled back successfully`);else if(G.status==="Error")console.error(`\u274C Failed to rollback migration "${G.migrationName}"`)}),Q)throw console.error("Failed to rollback migration"),console.error(Q),Q}var cL6=S(()=>{Wc();E30();mL6();dT()});var l3;var C2=S(()=>{l3=class extends Error{res;status;constructor(Y=500,X){super(X?.message,{cause:X?.cause});this.res=X?.res,this.status=Y}getResponse(){if(this.res)return new Response(this.res.body,{status:this.status,headers:this.res.headers});return new Response(this.message,{status:this.status})}}});var nL6,s51,t51=(Y,X)=>{if(!Y)return{};let Q=new Headers(Y.headers);if(X){let J=Q.get("connection");if(J){let G=J.split(",").map((W)=>W.trim()),K=G.filter((W)=>!s51.test(W));if(K.length>0)throw new l3(400,{message:`Invalid Connection header value: ${K.join(", ")}`});G.forEach((W)=>{Q.delete(W)})}}return nL6.forEach((J)=>{Q.delete(J)}),{method:Y.method,body:Y.body,duplex:Y.body?"half":void 0,headers:Q,signal:Y.signal}},e51=(Y)=>{if(!Y.headers||Array.isArray(Y.headers)||Y.headers instanceof Headers)return Y;let X=new Headers;for(let[Q,J]of Object.entries(Y.headers))if(J==null)X.delete(Q);else X.set(Q,J);return Y.headers=X,Y},iL6=async(Y,X)=>{let{raw:Q,customFetch:J,strictConnectionProcessing:G=!1,...K}=X instanceof Request?{raw:X}:X??{},W=new Request(Y,{...t51(Q,G),...e51(K)});W.headers.delete("accept-encoding");let Z=await(J||fetch)(W),H=new Headers(Z.headers);if(nL6.forEach((F)=>{H.delete(F)}),H.has("content-encoding"))H.delete("content-encoding"),H.delete("content-length");return new Response(Z.body,{status:Z.status,statusText:Z.statusText,headers:H})};var aL6=S(()=>{C2();nL6=["connection","keep-alive","proxy-authenticate","proxy-authorization","te","trailer","transfer-encoding","upgrade"],s51=/^[!#$%&'*+\-.0-9A-Z^_`a-z|~]+$/});var rL6=(Y)=>(X)=>{let Q=new URL(X.req.raw.url),J=new URL(Y);return J.pathname=Q.pathname,J.search=Q.search,iL6(J,{raw:X.req.raw,headers:{...X.req.raw.headers}})};var oL6=S(()=>{aL6()});import{resolve as I2,dirname as YG1,join as XG1,extname as QG1}from"path";function WG1(Y,X){let Q=I2(X),J=I2(Y);return J===Q||J.startsWith(Q+"/")}function ZG1({requestPath:Y,clientDir:X}){let Q=Y.startsWith("/")?Y.slice(1):Y,J=I2(X,Q);if(!WG1(J,X))return null;return J}function sL6(Y,X="../client"){let Q=new URL(Y),J=YG1(Q.pathname);return I2(J,X)}function tL6(Y={}){let{env:X="production",devServerUrl:Q=JG1,clientDir:J=GG1,isServerPath:G=()=>!1}=Y;if(X==="development"){let K=rL6(Q);return async function(Z){let H=new URL(Z.url);if(G(H.pathname))return null;let F={req:{raw:Z,url:Z.url}};return K(F)}}return async function(W){if(W.method!=="GET")return null;let Z=new URL(W.url),H;try{H=decodeURIComponent(Z.pathname)}catch{return null}if(G(H))return null;let F=ZG1({requestPath:H,clientDir:J});if(!F)return null;let V=XG1(F,"index.html"),$=I2(J,"index.html"),q=W.headers.get("accept"),D=q?.includes("text/html")||q?.includes("*/*")&&["",".html"].includes(QG1(F))?[V,$]:[];for(let O of[F,...D])try{let L=Bun.file(O);if(await L.exists())return new Response(L)}catch{}return null}}var JG1="http://localhost:4000",GG1="./dist/client";var eL6=S(()=>{oL6()});function Xw6(Y){if(!Y)return!1;try{return new URL(Y).host==="api.decocms.com"&&Y!=="https://api.decocms.com/mcp/registry"}catch{return!1}}var Yw6="https://api.decocms.com/mcp/registry";var L70=(Y,X,Q)=>{return(J,G)=>{let K=-1;return W(0);async function W(Z){if(Z<=K)throw Error("next() called multiple times");K=Z;let H,F=!1,V;if(Y[Z])V=Y[Z][0][0],J.req.routeIndex=Z;else V=Z===Y.length&&G||void 0;if(V)try{H=await V(J,()=>W(Z+1))}catch($){if($ instanceof Error&&X)J.error=$,H=await X($,J),F=!0;else throw $}else if(J.finalized===!1&&Q)H=await Q(J);if(H&&(J.finalized===!1||F))J.res=H;return J}}};var Qw6=()=>{};var Jw6;var Gw6=S(()=>{Jw6=Symbol()});async function KG1(Y,X){let Q=await Y.formData();if(Q)return HG1(Q,X);return{}}function HG1(Y,X){let Q=Object.create(null);if(Y.forEach((J,G)=>{if(!(X.all||G.endsWith("[]")))Q[G]=J;else FG1(Q,G,J)}),X.dot)Object.entries(Q).forEach(([J,G])=>{if(J.includes("."))VG1(Q,J,G),delete Q[J]});return Q}var Ww6=async(Y,X=Object.create(null))=>{let{all:Q=!1,dot:J=!1}=X,K=(Y instanceof zu?Y.raw.headers:Y.headers).get("Content-Type");if(K?.startsWith("multipart/form-data")||K?.startsWith("application/x-www-form-urlencoded"))return KG1(Y,{all:Q,dot:J});return{}},FG1=(Y,X,Q)=>{if(Y[X]!==void 0)if(Array.isArray(Y[X]))Y[X].push(Q);else Y[X]=[Y[X],Q];else if(!X.endsWith("[]"))Y[X]=Q;else Y[X]=[Q]},VG1=(Y,X,Q)=>{let J=Y,G=X.split(".");G.forEach((K,W)=>{if(W===G.length-1)J[K]=Q;else{if(!J[K]||typeof J[K]!=="object"||Array.isArray(J[K])||J[K]instanceof File)J[K]=Object.create(null);J=J[K]}})};var Zw6=S(()=>{w70()});var A70=(Y)=>{let X=Y.split("/");if(X[0]==="")X.shift();return X},Kw6=(Y)=>{let{groups:X,path:Q}=$G1(Y),J=A70(Q);return qG1(J,X)},$G1=(Y)=>{let X=[];return Y=Y.replace(/\{[^}]+\}/g,(Q,J)=>{let G=`@${J}`;return X.push([G,Q]),G}),{groups:X,path:Y}},qG1=(Y,X)=>{for(let Q=X.length-1;Q>=0;Q--){let[J]=X[Q];for(let G=Y.length-1;G>=0;G--)if(Y[G].includes(J)){Y[G]=Y[G].replace(J,X[Q][1]);break}}return Y},Bu,Hw6=(Y,X)=>{if(Y==="*")return"*";let Q=Y.match(/^\:([^\{\}]+)(?:\{(.+)\})?$/);if(Q){let J=`${Y}#${X}`;if(!Bu[J])if(Q[2])Bu[J]=X&&X[0]!==":"&&X[0]!=="*"?[J,Q[1],new RegExp(`^${Q[2]}(?=/${X})`)]:[Y,Q[1],new RegExp(`^${Q[2]}$`)];else Bu[J]=[Y,Q[1],!0];return Bu[J]}return null},KO=(Y,X)=>{try{return X(Y)}catch{return Y.replace(/(?:%[0-9A-Fa-f]{2})+/g,(Q)=>{try{return X(Q)}catch{return Q}})}},zG1=(Y)=>KO(Y,decodeURI),T70=(Y)=>{let X=Y.url,Q=X.indexOf("/",X.indexOf(":")+4),J=Q;for(;J<X.length;J++){let G=X.charCodeAt(J);if(G===37){let K=X.indexOf("?",J),W=X.slice(Q,K===-1?void 0:K);return zG1(W.includes("%25")?W.replace(/%25/g,"%2525"):W)}else if(G===63)break}return X.slice(Q,J)},Fw6=(Y)=>{let X=T70(Y);return X.length>1&&X.at(-1)==="/"?X.slice(0,-1):X},Zq=(Y,X,...Q)=>{if(Q.length)X=Zq(X,...Q);return`${Y?.[0]==="/"?"":"/"}${Y}${X==="/"?"":`${Y?.at(-1)==="/"?"":"/"}${X?.[0]==="/"?X.slice(1):X}`}`},Uu=(Y)=>{if(Y.charCodeAt(Y.length-1)!==63||!Y.includes(":"))return null;let X=Y.split("/"),Q=[],J="";return X.forEach((G)=>{if(G!==""&&!/\:/.test(G))J+="/"+G;else if(/\:/.test(G))if(/\?/.test(G)){if(Q.length===0&&J==="")Q.push("/");else Q.push(J);let K=G.replace("?","");J+="/"+K,Q.push(J)}else J+="/"+G}),Q.filter((G,K,W)=>W.indexOf(G)===K)},M70=(Y)=>{if(!/[%+]/.test(Y))return Y;if(Y.indexOf("+")!==-1)Y=Y.replace(/\+/g," ");return Y.indexOf("%")!==-1?KO(Y,R2):Y},Vw6=(Y,X,Q)=>{let J;if(!Q&&X&&!/[%+]/.test(X)){let W=Y.indexOf("?",8);if(W===-1)return;if(!Y.startsWith(X,W+1))W=Y.indexOf(`&${X}`,W+1);while(W!==-1){let Z=Y.charCodeAt(W+X.length+1);if(Z===61){let H=W+X.length+2,F=Y.indexOf("&",H);return M70(Y.slice(H,F===-1?void 0:F))}else if(Z==38||isNaN(Z))return"";W=Y.indexOf(`&${X}`,W+1)}if(J=/[%+]/.test(Y),!J)return}let G={};J??=/[%+]/.test(Y);let K=Y.indexOf("?",8);while(K!==-1){let W=Y.indexOf("&",K+1),Z=Y.indexOf("=",K);if(Z>W&&W!==-1)Z=-1;let H=Y.slice(K+1,Z===-1?W===-1?void 0:W:Z);if(J)H=M70(H);if(K=W,H==="")continue;let F;if(Z===-1)F="";else if(F=Y.slice(Z+1,W===-1?void 0:W),J)F=M70(F);if(Q){if(!(G[H]&&Array.isArray(G[H])))G[H]=[];G[H].push(F)}else G[H]??=F}return X?G[X]:G},$w6,qw6=(Y,X)=>{return Vw6(Y,X,!0)},R2;var Kq=S(()=>{Bu={},$w6=Vw6,R2=decodeURIComponent});var zw6=(Y)=>KO(Y,R2),zu;var w70=S(()=>{C2();Gw6();Zw6();Kq();zu=class{raw;#Y;#X;routeIndex=0;path;bodyCache={};constructor(Y,X="/",Q=[[]]){this.raw=Y,this.path=X,this.#X=Q,this.#Y={}}param(Y){return Y?this.#Q(Y):this.#J()}#Q(Y){let X=this.#X[0][this.routeIndex][1][Y],Q=this.#W(X);return Q&&/\%/.test(Q)?zw6(Q):Q}#J(){let Y={},X=Object.keys(this.#X[0][this.routeIndex][1]);for(let Q of X){let J=this.#W(this.#X[0][this.routeIndex][1][Q]);if(J!==void 0)Y[Q]=/\%/.test(J)?zw6(J):J}return Y}#W(Y){return this.#X[1]?this.#X[1][Y]:Y}query(Y){return $w6(this.url,Y)}queries(Y){return qw6(this.url,Y)}header(Y){if(Y)return this.raw.headers.get(Y)??void 0;let X={};return this.raw.headers.forEach((Q,J)=>{X[J]=Q}),X}async parseBody(Y){return this.bodyCache.parsedBody??=await Ww6(this,Y)}#G=(Y)=>{let{bodyCache:X,raw:Q}=this,J=X[Y];if(J)return J;let G=Object.keys(X)[0];if(G)return X[G].then((K)=>{if(G==="json")K=JSON.stringify(K);return new Response(K)[Y]()});return X[Y]=Q[Y]()};json(){return this.#G("text").then((Y)=>JSON.parse(Y))}text(){return this.#G("text")}arrayBuffer(){return this.#G("arrayBuffer")}blob(){return this.#G("blob")}formData(){return this.#G("formData")}addValidatedData(Y,X){this.#Y[Y]=X}valid(Y){return this.#Y[Y]}get url(){return this.raw.url}get method(){return this.raw.method}get[Jw6](){return this.#X}get matchedRoutes(){return this.#X[0].map(([[,Y]])=>Y)}get routePath(){return this.#X[0].map(([[,Y]])=>Y)[this.routeIndex].path}}});var Du,BG1=(Y,X)=>{let Q=new String(Y);return Q.isEscaped=!0,Q.callbacks=X,Q},j2=async(Y,X,Q,J,G)=>{if(typeof Y==="object"&&!(Y instanceof String)){if(!(Y instanceof Promise))Y=Y.toString();if(Y instanceof Promise)Y=await Y}let K=Y.callbacks;if(!K?.length)return Promise.resolve(Y);if(G)G[0]+=Y;else G=[Y];let W=Promise.all(K.map((Z)=>Z({phase:X,buffer:G,context:J}))).then((Z)=>Promise.all(Z.filter(Boolean).map((H)=>j2(H,X,!1,J,G))).then(()=>G[0]));if(Q)return BG1(await W,K);else return W};var P70=S(()=>{Du={Stringify:1,BeforeStream:2,Stream:3}});var Bw6="text/plain; charset=UTF-8",E70=(Y,X)=>{return{"Content-Type":Y,...X}},Uw6=class{#Y;#X;env={};#Q;finalized=!1;error;#J;#W;#G;#K;#Z;#F;#H;#$;#q;constructor(Y,X){if(this.#Y=Y,X)this.#W=X.executionCtx,this.env=X.env,this.#F=X.notFoundHandler,this.#q=X.path,this.#$=X.matchResult}get req(){return this.#X??=new zu(this.#Y,this.#q,this.#$),this.#X}get event(){if(this.#W&&"respondWith"in this.#W)return this.#W;else throw Error("This context has no FetchEvent")}get executionCtx(){if(this.#W)return this.#W;else throw Error("This context has no ExecutionContext")}get res(){return this.#G||=new Response(null,{headers:this.#H??=new Headers})}set res(Y){if(this.#G&&Y){Y=new Response(Y.body,Y);for(let[X,Q]of this.#G.headers.entries()){if(X==="content-type")continue;if(X==="set-cookie"){let J=this.#G.headers.getSetCookie();Y.headers.delete("set-cookie");for(let G of J)Y.headers.append("set-cookie",G)}else Y.headers.set(X,Q)}}this.#G=Y,this.finalized=!0}render=(...Y)=>{return this.#Z??=(X)=>this.html(X),this.#Z(...Y)};setLayout=(Y)=>this.#K=Y;getLayout=()=>this.#K;setRenderer=(Y)=>{this.#Z=Y};header=(Y,X,Q)=>{if(this.finalized)this.#G=new Response(this.#G.body,this.#G);let J=this.#G?this.#G.headers:this.#H??=new Headers;if(X===void 0)J.delete(Y);else if(Q?.append)J.append(Y,X);else J.set(Y,X)};status=(Y)=>{this.#J=Y};set=(Y,X)=>{this.#Q??=new Map,this.#Q.set(Y,X)};get=(Y)=>{return this.#Q?this.#Q.get(Y):void 0};get var(){if(!this.#Q)return{};return Object.fromEntries(this.#Q)}#V(Y,X,Q){let J=this.#G?new Headers(this.#G.headers):this.#H??new Headers;if(typeof X==="object"&&"headers"in X){let K=X.headers instanceof Headers?X.headers:new Headers(X.headers);for(let[W,Z]of K)if(W.toLowerCase()==="set-cookie")J.append(W,Z);else J.set(W,Z)}if(Q)for(let[K,W]of Object.entries(Q))if(typeof W==="string")J.set(K,W);else{J.delete(K);for(let Z of W)J.append(K,Z)}let G=typeof X==="number"?X:X?.status??this.#J;return new Response(Y,{status:G,headers:J})}newResponse=(...Y)=>this.#V(...Y);body=(Y,X,Q)=>this.#V(Y,X,Q);text=(Y,X,Q)=>{return!this.#H&&!this.#J&&!X&&!Q&&!this.finalized?new Response(Y):this.#V(Y,X,E70(Bw6,Q))};json=(Y,X,Q)=>{return this.#V(JSON.stringify(Y),X,E70("application/json",Q))};html=(Y,X,Q)=>{let J=(G)=>this.#V(G,X,E70("text/html; charset=UTF-8",Q));return typeof Y==="object"?j2(Y,Du.Stringify,!1,{}).then(J):J(Y)};redirect=(Y,X)=>{let Q=String(Y);return this.header("Location",!/[^\x00-\xFF]/.test(Q)?Q:encodeURI(Q)),this.newResponse(null,X??302)};notFound=()=>{return this.#F??=()=>new Response,this.#F(this)}};var Ou=S(()=>{w70();P70()});var V8="ALL",Dw6="all",Ow6,Nu="Can not add a route since the matcher is already built.",Lu;var Hq=S(()=>{Ow6=["get","post","put","delete","options","patch"],Lu=class extends Error{}});var Nw6="__COMPOSED_HANDLER";var Lw6=()=>{};var UG1=(Y)=>{return Y.text("404 Not Found",404)},ww6=(Y,X)=>{if("getResponse"in Y){let Q=Y.getResponse();return X.newResponse(Q.body,Q)}return console.error(Y),X.text("Internal Server Error",500)},Mw6=class Y{get;post;put;delete;options;patch;all;on;use;router;getPath;_basePath="/";#Y="/";routes=[];constructor(X={}){[...Ow6,Dw6].forEach((K)=>{this[K]=(W,...Z)=>{if(typeof W==="string")this.#Y=W;else this.#J(K,this.#Y,W);return Z.forEach((H)=>{this.#J(K,this.#Y,H)}),this}}),this.on=(K,W,...Z)=>{for(let H of[W].flat()){this.#Y=H;for(let F of[K].flat())Z.map((V)=>{this.#J(F.toUpperCase(),this.#Y,V)})}return this},this.use=(K,...W)=>{if(typeof K==="string")this.#Y=K;else this.#Y="*",W.unshift(K);return W.forEach((Z)=>{this.#J(V8,this.#Y,Z)}),this};let{strict:J,...G}=X;Object.assign(this,G),this.getPath=J??!0?X.getPath??T70:Fw6}#X(){let X=new Y({router:this.router,getPath:this.getPath});return X.errorHandler=this.errorHandler,X.#Q=this.#Q,X.routes=this.routes,X}#Q=UG1;errorHandler=ww6;route(X,Q){let J=this.basePath(X);return Q.routes.map((G)=>{let K;if(Q.errorHandler===ww6)K=G.handler;else K=async(W,Z)=>(await L70([],Q.errorHandler)(W,()=>G.handler(W,Z))).res,K[Nw6]=G.handler;J.#J(G.method,G.path,K)}),this}basePath(X){let Q=this.#X();return Q._basePath=Zq(this._basePath,X),Q}onError=(X)=>{return this.errorHandler=X,this};notFound=(X)=>{return this.#Q=X,this};mount(X,Q,J){let G,K;if(J)if(typeof J==="function")K=J;else if(K=J.optionHandler,J.replaceRequest===!1)G=(H)=>H;else G=J.replaceRequest;let W=K?(H)=>{let F=K(H);return Array.isArray(F)?F:[F]}:(H)=>{let F=void 0;try{F=H.executionCtx}catch{}return[H.env,F]};G||=(()=>{let H=Zq(this._basePath,X),F=H==="/"?0:H.length;return(V)=>{let $=new URL(V.url);return $.pathname=$.pathname.slice(F)||"/",new Request($,V)}})();let Z=async(H,F)=>{let V=await Q(G(H.req.raw),...W(H));if(V)return V;await F()};return this.#J(V8,Zq(X,"*"),Z),this}#J(X,Q,J){X=X.toUpperCase(),Q=Zq(this._basePath,Q);let G={basePath:this._basePath,path:Q,method:X,handler:J};this.router.add(X,Q,[J,G]),this.routes.push(G)}#W(X,Q){if(X instanceof Error)return this.errorHandler(X,Q);throw X}#G(X,Q,J,G){if(G==="HEAD")return(async()=>new Response(null,await this.#G(X,Q,J,"GET")))();let K=this.getPath(X,{env:J}),W=this.router.match(G,K),Z=new Uw6(X,{path:K,matchResult:W,env:J,executionCtx:Q,notFoundHandler:this.#Q});if(W[0].length===1){let F;try{F=W[0][0][0][0](Z,async()=>{Z.res=await this.#Q(Z)})}catch(V){return this.#W(V,Z)}return F instanceof Promise?F.then((V)=>V||(Z.finalized?Z.res:this.#Q(Z))).catch((V)=>this.#W(V,Z)):F??this.#Q(Z)}let H=L70(W[0],this.errorHandler,this.#Q);return(async()=>{try{let F=await H(Z);if(!F.finalized)throw Error("Context is not finalized. Did you forget to return a Response object or `await next()`?");return F.res}catch(F){return this.#W(F,Z)}})()}fetch=(X,...Q)=>{return this.#G(X,Q[1],Q[0],X.method)};request=(X,Q,J,G)=>{if(X instanceof Request)return this.fetch(Q?new Request(X,Q):X,J,G);return X=X.toString(),this.fetch(new Request(/^https?:\/\//.test(X)?X:`http://localhost${Zq("/",X)}`,Q),J,G)};fire=()=>{addEventListener("fetch",(X)=>{X.respondWith(this.#G(X.request,X,void 0,X.request.method))})}};var Aw6=S(()=>{Qw6();Ou();Hq();Lw6();Kq()});function wu(Y,X){let Q=this.buildAllMatchers(),J=(G,K)=>{let W=Q[G]||Q[V8],Z=W[2][K];if(Z)return Z;let H=K.match(W[0]);if(!H)return[[],S2];let F=H.indexOf("",1);return[W[1][F],H]};return this.match=J,J(Y,X)}var S2;var C70=S(()=>{Hq();S2=[]});function OG1(Y,X){if(Y.length===1)return X.length===1?Y<X?-1:1:-1;if(X.length===1)return 1;if(Y===k2||Y===v2)return 1;else if(X===k2||X===v2)return-1;if(Y===Mu)return 1;else if(X===Mu)return-1;return Y.length===X.length?Y<X?-1:1:X.length-Y.length}var Mu="[^/]+",k2=".*",v2="(?:|/.*)",Fq,DG1,Tw6=class Y{#Y;#X;#Q=Object.create(null);insert(X,Q,J,G,K){if(X.length===0){if(this.#Y!==void 0)throw Fq;if(K)return;this.#Y=Q;return}let[W,...Z]=X,H=W==="*"?Z.length===0?["","",k2]:["","",Mu]:W==="/*"?["","",v2]:W.match(/^\:([^\{\}]+)(?:\{(.+)\})?$/),F;if(H){let V=H[1],$=H[2]||Mu;if(V&&H[2]){if($===".*")throw Fq;if($=$.replace(/^\((?!\?:)(?=[^)]+\)$)/,"(?:"),/\((?!\?:)/.test($))throw Fq}if(F=this.#Q[$],!F){if(Object.keys(this.#Q).some((q)=>q!==k2&&q!==v2))throw Fq;if(K)return;if(F=this.#Q[$]=new Y,V!=="")F.#X=G.varIndex++}if(!K&&V!=="")J.push([V,F.#X])}else if(F=this.#Q[W],!F){if(Object.keys(this.#Q).some((V)=>V.length>1&&V!==k2&&V!==v2))throw Fq;if(K)return;F=this.#Q[W]=new Y}F.insert(Z,Q,J,G,K)}buildRegExpStr(){let Q=Object.keys(this.#Q).sort(OG1).map((J)=>{let G=this.#Q[J];return(typeof G.#X==="number"?`(${J})@${G.#X}`:DG1.has(J)?`\\${J}`:J)+G.buildRegExpStr()});if(typeof this.#Y==="number")Q.unshift(`#${this.#Y}`);if(Q.length===0)return"";if(Q.length===1)return Q[0];return"(?:"+Q.join("|")+")"}};var I70=S(()=>{Fq=Symbol(),DG1=new Set(".\\+*[^]$()")});var Pw6=class{#Y={varIndex:0};#X=new Tw6;insert(Y,X,Q){let J=[],G=[];for(let W=0;;){let Z=!1;if(Y=Y.replace(/\{[^}]+\}/g,(H)=>{let F=`@\\${W}`;return G[W]=[F,H],W++,Z=!0,F}),!Z)break}let K=Y.match(/(?::[^\/]+)|(?:\/\*$)|./g)||[];for(let W=G.length-1;W>=0;W--){let[Z]=G[W];for(let H=K.length-1;H>=0;H--)if(K[H].indexOf(Z)!==-1){K[H]=K[H].replace(Z,G[W][1]);break}}return this.#X.insert(K,X,J,this.#Y,Q),J}buildRegExp(){let Y=this.#X.buildRegExpStr();if(Y==="")return[/^$/,[],[]];let X=0,Q=[],J=[];return Y=Y.replace(/#(\d+)|@(\d+)|\.\*\$/g,(G,K,W)=>{if(K!==void 0)return Q[++X]=Number(K),"$()";if(W!==void 0)return J[Number(W)]=++X,"";return""}),[new RegExp(`^${Y}`),Q,J]}};var Ew6=S(()=>{I70()});function Iw6(Y){return Cw6[Y]??=new RegExp(Y==="*"?"":`^${Y.replace(/\/\*$|([.\\+*[^\]$()])/g,(X,Q)=>Q?`\\${Q}`:"(?:|/.*)")}$`)}function LG1(){Cw6=Object.create(null)}function wG1(Y){let X=new Pw6,Q=[];if(Y.length===0)return NG1;let J=Y.map((F)=>[!/\*|\/:/.test(F[0]),...F]).sort(([F,V],[$,q])=>F?1:$?-1:V.length-q.length),G=Object.create(null);for(let F=0,V=-1,$=J.length;F<$;F++){let[q,B,D]=J[F];if(q)G[B]=[D.map(([L])=>[L,Object.create(null)]),S2];else V++;let O;try{O=X.insert(B,V,q)}catch(L){throw L===Fq?new Lu(B):L}if(q)continue;Q[V]=D.map(([L,w])=>{let I=Object.create(null);w-=1;for(;w>=0;w--){let[T,P]=O[w];I[T]=P}return[L,I]})}let[K,W,Z]=X.buildRegExp();for(let F=0,V=Q.length;F<V;F++)for(let $=0,q=Q[F].length;$<q;$++){let B=Q[F][$]?.[1];if(!B)continue;let D=Object.keys(B);for(let O=0,L=D.length;O<L;O++)B[D[O]]=Z[B[D[O]]]}let H=[];for(let F in W)H[F]=Q[W[F]];return[K,H,G]}function HO(Y,X){if(!Y)return;for(let Q of Object.keys(Y).sort((J,G)=>G.length-J.length))if(Iw6(Q).test(X))return[...Y[Q]];return}var NG1,Cw6,Au=class{name="RegExpRouter";#Y;#X;constructor(){this.#Y={[V8]:Object.create(null)},this.#X={[V8]:Object.create(null)}}add(Y,X,Q){let J=this.#Y,G=this.#X;if(!J||!G)throw Error(Nu);if(!J[Y])[J,G].forEach((Z)=>{Z[Y]=Object.create(null),Object.keys(Z[V8]).forEach((H)=>{Z[Y][H]=[...Z[V8][H]]})});if(X==="/*")X="*";let K=(X.match(/\/:/g)||[]).length;if(/\*$/.test(X)){let Z=Iw6(X);if(Y===V8)Object.keys(J).forEach((H)=>{J[H][X]||=HO(J[H],X)||HO(J[V8],X)||[]});else J[Y][X]||=HO(J[Y],X)||HO(J[V8],X)||[];Object.keys(J).forEach((H)=>{if(Y===V8||Y===H)Object.keys(J[H]).forEach((F)=>{Z.test(F)&&J[H][F].push([Q,K])})}),Object.keys(G).forEach((H)=>{if(Y===V8||Y===H)Object.keys(G[H]).forEach((F)=>Z.test(F)&&G[H][F].push([Q,K]))});return}let W=Uu(X)||[X];for(let Z=0,H=W.length;Z<H;Z++){let F=W[Z];Object.keys(G).forEach((V)=>{if(Y===V8||Y===V)G[V][F]||=[...HO(J[V],F)||HO(J[V8],F)||[]],G[V][F].push([Q,K-H+Z+1])})}}match=wu;buildAllMatchers(){let Y=Object.create(null);return Object.keys(this.#X).concat(Object.keys(this.#Y)).forEach((X)=>{Y[X]||=this.#Q(X)}),this.#Y=this.#X=void 0,LG1(),Y}#Q(Y){let X=[],Q=Y===V8;if([this.#Y,this.#X].forEach((J)=>{let G=J[Y]?Object.keys(J[Y]).map((K)=>[K,J[Y][K]]):[];if(G.length!==0)Q||=!0,X.push(...G);else if(Y!==V8)X.push(...Object.keys(J[V8]).map((K)=>[K,J[V8][K]]))}),!Q)return null;else return wG1(X)}};var R70=S(()=>{Hq();Kq();C70();I70();Ew6();NG1=[/^$/,[],Object.create(null)],Cw6=Object.create(null)});var MG1=class{name="PreparedRegExpRouter";#Y;#X;constructor(Y,X){this.#Y=Y,this.#X=X}#Q(Y,X){let Q=this.#Y[Y];Q[1].forEach((J)=>J&&J.push(X)),Object.values(Q[2]).forEach((J)=>J[0].push(X))}#J(Y,X,Q,J,G){let K=this.#Y[Y];if(!G)K[2][X][0].push([Q,{}]);else J.forEach((W)=>{if(typeof W==="number")K[1][W].push([Q,G]);else K[2][W||X][0].push([Q,G])})}add(Y,X,Q){if(!this.#Y[Y]){let G=this.#Y[V8],K={};for(let W in G[2])K[W]=[G[2][W][0].slice(),S2];this.#Y[Y]=[G[0],G[1].map((W)=>Array.isArray(W)?W.slice():0),K]}if(X==="/*"||X==="*"){let G=[Q,{}];if(Y===V8)for(let K in this.#Y)this.#Q(K,G);else this.#Q(Y,G);return}let J=this.#X[X];if(!J)throw Error(`Path ${X} is not registered`);for(let[G,K]of J)if(Y===V8)for(let W in this.#Y)this.#J(W,X,Q,G,K);else this.#J(Y,X,Q,G,K)}buildAllMatchers(){return this.#Y}match=wu};var Rw6=S(()=>{Hq();C70();R70()});var jw6=S(()=>{R70();Rw6()});var j70=class{name="SmartRouter";#Y=[];#X=[];constructor(Y){this.#Y=Y.routers}add(Y,X,Q){if(!this.#X)throw Error(Nu);this.#X.push([Y,X,Q])}match(Y,X){if(!this.#X)throw Error("Fatal error");let Q=this.#Y,J=this.#X,G=Q.length,K=0,W;for(;K<G;K++){let Z=Q[K];try{for(let H=0,F=J.length;H<F;H++)Z.add(...J[H]);W=Z.match(Y,X)}catch(H){if(H instanceof Lu)continue;throw H}this.match=Z.match.bind(Z),this.#Y=[Z],this.#X=void 0;break}if(K===G)throw Error("Fatal error");return this.name=`SmartRouter + ${this.activeRouter.name}`,W}get activeRouter(){if(this.#X||this.#Y.length!==1)throw Error("No active router has been determined yet.");return this.#Y[0]}};var Sw6=S(()=>{Hq()});var kw6=S(()=>{Sw6()});var _2,vw6=class Y{#Y;#X;#Q;#J=0;#W=_2;constructor(X,Q,J){if(this.#X=J||Object.create(null),this.#Y=[],X&&Q){let G=Object.create(null);G[X]={handler:Q,possibleKeys:[],score:0},this.#Y=[G]}this.#Q=[]}insert(X,Q,J){this.#J=++this.#J;let G=this,K=Kw6(Q),W=[];for(let Z=0,H=K.length;Z<H;Z++){let F=K[Z],V=K[Z+1],$=Hw6(F,V),q=Array.isArray($)?$[0]:F;if(q in G.#X){if(G=G.#X[q],$)W.push($[1]);continue}if(G.#X[q]=new Y,$)G.#Q.push($),W.push($[1]);G=G.#X[q]}return G.#Y.push({[X]:{handler:J,possibleKeys:W.filter((Z,H,F)=>F.indexOf(Z)===H),score:this.#J}}),G}#G(X,Q,J,G){let K=[];for(let W=0,Z=X.#Y.length;W<Z;W++){let H=X.#Y[W],F=H[Q]||H[V8],V={};if(F!==void 0){if(F.params=Object.create(null),K.push(F),J!==_2||G&&G!==_2)for(let $=0,q=F.possibleKeys.length;$<q;$++){let B=F.possibleKeys[$],D=V[F.score];F.params[B]=G?.[B]&&!D?G[B]:J[B]??G?.[B],V[F.score]=!0}}}return K}search(X,Q){let J=[];this.#W=_2;let K=[this],W=A70(Q),Z=[];for(let H=0,F=W.length;H<F;H++){let V=W[H],$=H===F-1,q=[];for(let B=0,D=K.length;B<D;B++){let O=K[B],L=O.#X[V];if(L)if(L.#W=O.#W,$){if(L.#X["*"])J.push(...this.#G(L.#X["*"],X,O.#W));J.push(...this.#G(L,X,O.#W))}else q.push(L);for(let w=0,I=O.#Q.length;w<I;w++){let T=O.#Q[w],P=O.#W===_2?{}:{...O.#W};if(T==="*"){let f=O.#X["*"];if(f)J.push(...this.#G(f,X,O.#W)),f.#W=P,q.push(f);continue}let[A,R,j]=T;if(!V&&!(j instanceof RegExp))continue;let v=O.#X[A],y=W.slice(H).join("/");if(j instanceof RegExp){let f=j.exec(y);if(f){if(P[R]=f[0],J.push(...this.#G(v,X,O.#W,P)),Object.keys(v.#X).length){v.#W=P;let h=f[0].match(/\//)?.length??0;(Z[h]||=[]).push(v)}continue}}if(j===!0||j.test(V))if(P[R]=V,$){if(J.push(...this.#G(v,X,P,O.#W)),v.#X["*"])J.push(...this.#G(v.#X["*"],X,P,O.#W))}else v.#W=P,q.push(v)}}K=q.concat(Z.shift()??[])}if(J.length>1)J.sort((H,F)=>{return H.score-F.score});return[J.map(({handler:H,params:F})=>[H,F])]}};var _w6=S(()=>{Hq();Kq();_2=Object.create(null)});var S70=class{name="TrieRouter";#Y;constructor(){this.#Y=new vw6}add(Y,X,Q){let J=Uu(X);if(J){for(let G=0,K=J.length;G<K;G++)this.#Y.insert(Y,J[G],Q);return}this.#Y.insert(Y,X,Q)}match(Y,X){return this.#Y.search(Y,X)}};var yw6=S(()=>{Kq();_w6()});var fw6=S(()=>{yw6()});var M9;var hw6=S(()=>{Aw6();jw6();kw6();fw6();M9=class extends Mw6{constructor(Y={}){super(Y);this.router=Y.router??new j70({routers:[new Au,new S70]})}}});var gG=S(()=>{hw6()});var AG1,TG1,k70=(Y,X)=>{if(X&&Y.indexOf(X)===-1)return{};let Q=Y.trim().split(";"),J={};for(let G of Q){G=G.trim();let K=G.indexOf("=");if(K===-1)continue;let W=G.substring(0,K).trim();if(X&&X!==W||!AG1.test(W))continue;let Z=G.substring(K+1).trim();if(Z.startsWith('"')&&Z.endsWith('"'))Z=Z.slice(1,-1);if(TG1.test(Z)){if(J[W]=Z.indexOf("%")!==-1?KO(Z,R2):Z,X)break}}return J};var bw6=S(()=>{Kq();AG1=/^[\w!#$%&'*.^`|~+-]+$/,TG1=/^[ !#-:<-[\]-~]*$/});var xw6=(Y,X,Q)=>{let J=Y.req.raw.headers.get("Cookie");if(typeof X==="string"){if(!J)return;let K=X;if(Q==="secure")K="__Secure-"+X;else if(Q==="host")K="__Host-"+X;return k70(J,K)[K]}if(!J)return{};return k70(J)};var uw6=S(()=>{bw6()});var gw6=(Y)=>{let Q={...{origin:"*",allowMethods:["GET","HEAD","PUT","POST","DELETE","PATCH"],allowHeaders:[],exposeHeaders:[]},...Y},J=((K)=>{if(typeof K==="string")if(K==="*")return()=>K;else return(W)=>K===W?W:null;else if(typeof K==="function")return K;else return(W)=>K.includes(W)?W:null})(Q.origin),G=((K)=>{if(typeof K==="function")return K;else if(Array.isArray(K))return()=>K;else return()=>[]})(Q.allowMethods);return async function(W,Z){function H(V,$){W.res.headers.set(V,$)}let F=await J(W.req.header("origin")||"",W);if(F)H("Access-Control-Allow-Origin",F);if(Q.credentials)H("Access-Control-Allow-Credentials","true");if(Q.exposeHeaders?.length)H("Access-Control-Expose-Headers",Q.exposeHeaders.join(","));if(W.req.method==="OPTIONS"){if(Q.origin!=="*")H("Vary","Origin");if(Q.maxAge!=null)H("Access-Control-Max-Age",Q.maxAge.toString());let V=await G(W.req.header("origin")||"",W);if(V.length)H("Access-Control-Allow-Methods",V.join(","));let $=Q.allowHeaders;if(!$?.length){let q=W.req.header("Access-Control-Request-Headers");if(q)$=q.split(/\s*,\s*/)}if($?.length)H("Access-Control-Allow-Headers",$.join(",")),W.res.headers.append("Vary","Access-Control-Request-Headers");return W.res.headers.delete("Content-Length"),W.res.headers.delete("Content-Type"),new Response(null,{headers:W.res.headers,status:204,statusText:"No Content"})}if(await Z(),Q.origin!=="*")W.header("Vary","Origin",{append:!0})}};var mw6=()=>{};function PG1(){let{process:Y,Deno:X}=globalThis;return!(typeof X?.noColor==="boolean"?X.noColor:Y!==void 0?"NO_COLOR"in Y?.env:!1)}async function lw6(){let{navigator:Y}=globalThis,X="cloudflare:workers";return!(Y!==void 0&&Y.userAgent==="Cloudflare-Workers"?await(async()=>{try{return"NO_COLOR"in((await import("cloudflare:workers")).env??{})}catch{return!1}})():!PG1())}var dw6=()=>{};async function pw6(Y,X,Q,J,G=0,K){let W=X==="<--"?`${X} ${Q} ${J}`:`${X} ${Q} ${J} ${await IG1(G)} ${K}`;Y(W)}var EG1=(Y)=>{let[X,Q]=[",","."];return Y.map((G)=>G.replace(/(\d)(?=(\d\d\d)+(?!\d))/g,"$1"+X)).join(Q)},CG1=(Y)=>{let X=Date.now()-Y;return EG1([X<1000?X+"ms":Math.round(X/1000)+"s"])},IG1=async(Y)=>{if(await lw6())switch(Y/100|0){case 5:return`\x1B[31m${Y}\x1B[0m`;case 4:return`\x1B[33m${Y}\x1B[0m`;case 3:return`\x1B[36m${Y}\x1B[0m`;case 2:return`\x1B[32m${Y}\x1B[0m`}return`${Y}`},cw6=(Y=console.log)=>{return async function(Q,J){let{method:G,url:K}=Q.req,W=K.slice(K.indexOf("/",8));await pw6(Y,"<--",G,W);let Z=Date.now();await J(),await pw6(Y,"-->",G,W,Q.res.status,CG1(Z))}};var nw6=S(()=>{dw6()});var iw6=()=>{try{return performance.now()}catch{}return Date.now()},v70=(Y)=>{let X={total:!0,enabled:!0,totalDescription:"Total Response Time",autoEnd:!0,crossOrigin:!1,...Y};return async function(J,G){let K=[],W=new Map;if(J.get("metric"))return await G();if(J.set("metric",{headers:K,timers:W}),X.total)FO(J,"total",X.totalDescription);if(await G(),X.total)Vq(J,"total");if(X.autoEnd)W.forEach((H,F)=>Vq(J,F));if(typeof X.enabled==="function"?X.enabled(J):X.enabled){J.res.headers.append("Server-Timing",K.join(","));let H=typeof X.crossOrigin==="function"?X.crossOrigin(J):X.crossOrigin;if(H)J.res.headers.append("Timing-Allow-Origin",typeof H==="string"?H:"*")}}},aw6=(Y,X,Q,J,G)=>{let K=Y.get("metric");if(!K){console.warn("Metrics not initialized! Please add the `timing()` middleware to this route!");return}if(typeof Q==="number"){let W=Q.toFixed(G||1),Z=J?`${X};dur=${W};desc="${J}"`:`${X};dur=${W}`;K.headers.push(Z)}else{let W=Q?`${X};desc="${Q}"`:`${X}`;K.headers.push(W)}},FO=(Y,X,Q)=>{let J=Y.get("metric");if(!J){console.warn("Metrics not initialized! Please add the `timing()` middleware to this route!");return}J.timers.set(X,{description:Q,start:iw6()})},Vq=(Y,X,Q)=>{let J=Y.get("metric");if(!J){console.warn("Metrics not initialized! Please add the `timing()` middleware to this route!");return}let G=J.timers.get(X);if(!G){console.warn(`Timer "${X}" does not exist!`);return}let{description:K,start:W}=G,Z=iw6()-W;aw6(Y,X,Z,K,Q),J.timers.delete(X)};var rw6=S(()=>{Ou()});var ow6=S(()=>{rw6()});import{randomBytes as RG1}from"crypto";function sw6(){if(y2)return y2;let Y=process.env.MESH_JWT_SECRET??w9.jwt?.secret??process.env.BETTER_AUTH_SECRET;if(Y)y2=new TextEncoder().encode(Y);else console.warn("MESH_JWT_SECRET not set - generating random secret (not persistent)"),y2=new Uint8Array(RG1(32));return y2}async function tw6(Y,X="5m"){let Q=sw6();return await new NQ(Y).setProtectedHeader({alg:"HS256",typ:"JWT"}).setIssuedAt().setExpirationTime(X).sign(Q)}async function ew6(Y){try{let X=sw6(),{payload:Q}=await O8(Y,X);return Q}catch{return}}var y2=null;var _70=S(()=>{QJ();ZO()});class y70{db;constructor(Y){this.db=Y}async create(Y,X,Q){let J=L9("vir"),G=new Date().toISOString();if(await this.db.insertInto("connections").values({id:J,organization_id:Y,created_by:X,title:Q.title,description:Q.description??null,icon:Q.icon??null,app_name:null,app_id:null,connection_type:"VIRTUAL",connection_url:`virtual://${J}`,connection_token:null,connection_headers:null,oauth_config:null,configuration_state:null,configuration_scopes:null,metadata:Q.metadata?JSON.stringify(Q.metadata):null,tools:null,bindings:null,status:Q.status??"active",created_at:G,updated_at:G}).execute(),Q.connections.length>0)await this.db.insertInto("connection_aggregations").values(Q.connections.map((W)=>({id:L9("agg"),parent_connection_id:J,child_connection_id:W.connection_id,selected_tools:W.selected_tools?JSON.stringify(W.selected_tools):null,selected_resources:W.selected_resources?JSON.stringify(W.selected_resources):null,selected_prompts:W.selected_prompts?JSON.stringify(W.selected_prompts):null,created_at:G}))).execute();let K=await this.findById(J);if(!K)throw Error(`Failed to create virtual MCP with id: ${J}`);return K}async findById(Y){return this.findByIdInternal(this.db,Y)}async findByIdInternal(Y,X){let Q=await Y.selectFrom("connections").selectAll().where("id","=",X).where("connection_type","=","VIRTUAL").executeTakeFirst();if(!Q)return null;let J=await Y.selectFrom("connection_aggregations").selectAll().where("parent_connection_id","=",X).execute();return this.deserializeVirtualMCPEntity(Q,J)}async list(Y){let X=await this.db.selectFrom("connections").selectAll().where("organization_id","=",Y).where("connection_type","=","VIRTUAL").execute(),Q=X.map((K)=>K.id);if(Q.length===0)return[];let J=await this.db.selectFrom("connection_aggregations").selectAll().where("parent_connection_id","in",Q).execute(),G=new Map;for(let K of J){let W=G.get(K.parent_connection_id)??[];W.push(K),G.set(K.parent_connection_id,W)}return X.map((K)=>this.deserializeVirtualMCPEntity(K,G.get(K.id)??[]))}async listByConnectionId(Y,X){let J=(await this.db.selectFrom("connection_aggregations").select("parent_connection_id").where("child_connection_id","=",X).execute()).map((H)=>H.parent_connection_id);if(J.length===0)return[];let G=await this.db.selectFrom("connections").selectAll().where("id","in",J).where("organization_id","=",Y).where("connection_type","=","VIRTUAL").execute();if(G.length===0)return[];let K=G.map((H)=>H.id),W=await this.db.selectFrom("connection_aggregations").selectAll().where("parent_connection_id","in",K).execute(),Z=new Map;for(let H of W){let F=Z.get(H.parent_connection_id)??[];F.push(H),Z.set(H.parent_connection_id,F)}return G.map((H)=>this.deserializeVirtualMCPEntity(H,Z.get(H.id)??[]))}async update(Y,X,Q){let J=new Date().toISOString(),G={updated_at:J};if(Q.title!==void 0)G.title=Q.title;if(Q.description!==void 0)G.description=Q.description;if(Q.icon!==void 0)G.icon=Q.icon;if(Q.status!==void 0)G.status=Q.status;if(Q.metadata!==void 0)G.metadata=Q.metadata?JSON.stringify(Q.metadata):null;if(await this.db.updateTable("connections").set(G).where("id","=",Y).where("connection_type","=","VIRTUAL").execute(),Q.connections!==void 0){if(await this.db.deleteFrom("connection_aggregations").where("parent_connection_id","=",Y).execute(),Q.connections.length>0)await this.db.insertInto("connection_aggregations").values(Q.connections.map((W)=>({id:L9("agg"),parent_connection_id:Y,child_connection_id:W.connection_id,selected_tools:W.selected_tools?JSON.stringify(W.selected_tools):null,selected_resources:W.selected_resources?JSON.stringify(W.selected_resources):null,selected_prompts:W.selected_prompts?JSON.stringify(W.selected_prompts):null,created_at:J}))).execute()}let K=await this.findById(Y);if(!K)throw Error("Virtual MCP not found after update");return K}async delete(Y){await this.db.deleteFrom("connection_aggregations").where("parent_connection_id","=",Y).execute(),await this.db.deleteFrom("connections").where("id","=",Y).where("connection_type","=","VIRTUAL").execute()}deserializeVirtualMCPEntity(Y,X){let Q=Y.created_at instanceof Date?Y.created_at.toISOString():Y.created_at,J=Y.updated_at instanceof Date?Y.updated_at.toISOString():Y.updated_at,G=Y.status==="active"?"active":"inactive";return{id:Y.id,organization_id:Y.organization_id,title:Y.title,description:Y.description,tool_selection_mode:"inclusion",icon:Y.icon,status:G,created_at:Q,updated_at:J,created_by:Y.created_by,updated_by:void 0,metadata:this.parseJson(Y.metadata),connections:X.map((K)=>({connection_id:K.child_connection_id,selected_tools:this.parseJson(K.selected_tools),selected_resources:this.parseJson(K.selected_resources),selected_prompts:this.parseJson(K.selected_prompts)}))}}parseJson(Y){if(Y===null)return null;if(typeof Y==="string")try{return JSON.parse(Y)}catch{return null}return Y}}var YM6=S(()=>{KK()});class f70{patterns=[{type:"email",regex:/[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}/g},{type:"api_key",regex:/(?:api[_-]?key|token|secret|password|bearer)\s*[:=]\s*['"]?[\w-]{16,}['"]?/gi},{type:"jwt",regex:/eyJ[A-Za-z0-9-_]+\.eyJ[A-Za-z0-9-_]+\.[A-Za-z0-9-_.+/=]*/g},{type:"credit_card",regex:/\b\d{4}[- ]?\d{4}[- ]?\d{4}[- ]?\d{4}\b/g},{type:"ssn",regex:/\b\d{3}-\d{2}-\d{4}\b/g}];redact(Y){if(Y===null||Y===void 0)return Y;if(typeof Y==="string")return this.redactString(Y);if(Array.isArray(Y))return Y.map((X)=>this.redact(X));if(typeof Y==="object"){let X={};for(let[Q,J]of Object.entries(Y)){let G=this.redactString(Q);X[G]=this.redact(J)}return X}return Y}redactString(Y){let X=Y;for(let Q of this.patterns)X=X.replace(Q.regex,`[REDACTED:${Q.type}]`);return X}}import{sql as Tu}from"kysely";class h70{db;redactor;databaseType;constructor(Y,X="sqlite"){this.db=Y;this.redactor=new f70,this.databaseType=X}jsonExtract(Y,X){if(this.databaseType==="postgres")return Tu`(${Tu.ref(Y)}::jsonb)->>${X}`;let Q=`$.${X}`;return Tu`json_extract(${Tu.ref(Y)}, ${Q})`}async log(Y){await this.logBatch([Y])}async logBatch(Y){if(Y.length===0)return;let X=Y.map((Q)=>({...Q,input:this.redactor.redact(Q.input),output:this.redactor.redact(Q.output)}));await this.db.transaction().execute(async(Q)=>{await Q.insertInto("monitoring_logs").values(X.map((J)=>this.toDbRow(J))).execute()})}async query(Y){let X=this.db.selectFrom("monitoring_logs").selectAll(),Q=this.db.selectFrom("monitoring_logs").select((Z)=>Z.fn.count("id").as("count"));if(Y.organizationId)X=X.where("organization_id","=",Y.organizationId),Q=Q.where("organization_id","=",Y.organizationId);if(Y.connectionId)X=X.where("connection_id","=",Y.connectionId),Q=Q.where("connection_id","=",Y.connectionId);if(Y.virtualMcpId)X=X.where("virtual_mcp_id","=",Y.virtualMcpId),Q=Q.where("virtual_mcp_id","=",Y.virtualMcpId);if(Y.toolName)X=X.where("tool_name","=",Y.toolName),Q=Q.where("tool_name","=",Y.toolName);if(Y.isError!==void 0)X=X.where("is_error","=",Y.isError?1:0),Q=Q.where("is_error","=",Y.isError?1:0);if(Y.startDate)X=X.where("timestamp",">=",Y.startDate.toISOString()),Q=Q.where("timestamp",">=",Y.startDate.toISOString());if(Y.endDate)X=X.where("timestamp","<=",Y.endDate.toISOString()),Q=Q.where("timestamp","<=",Y.endDate.toISOString());if(Y.propertyFilters){let{properties:Z,propertyKeys:H,propertyPatterns:F}=Y.propertyFilters;if(Z)for(let[V,$]of Object.entries(Z)){let q=this.jsonExtract("properties",V);X=X.where(q,"=",$),Q=Q.where(q,"=",$)}if(H&&H.length>0)for(let V of H){let $=this.jsonExtract("properties",V);X=X.where($,"is not",null),Q=Q.where($,"is not",null)}if(F)for(let[V,$]of Object.entries(F)){let q=this.jsonExtract("properties",V),B=this.databaseType==="postgres"?"ilike":"like";X=X.where(q,B,$),Q=Q.where(q,B,$)}}if(X=X.orderBy("timestamp","desc"),Y.limit)X=X.limit(Y.limit);if(Y.offset)X=X.offset(Y.offset);let[J,G]=await Promise.all([X.execute(),Q.executeTakeFirst()]),K=Number(G?.count||0);return{logs:J.map((Z)=>this.fromDbRow(Z)),total:K}}async getStats(Y){let X=this.db.selectFrom("monitoring_logs").where("organization_id","=",Y.organizationId);if(Y.startDate)X=X.where("timestamp",">=",Y.startDate.toISOString());if(Y.endDate)X=X.where("timestamp","<=",Y.endDate.toISOString());let Q=await X.select([(W)=>W.fn.count("id").as("total_count"),(W)=>W.fn.sum(W.ref("is_error")).as("error_count"),(W)=>W.fn.avg("duration_ms").as("avg_duration")]).executeTakeFirst(),J=Number(Q?.total_count||0),G=Number(Q?.error_count||0),K=Number(Q?.avg_duration||0);return{totalCalls:J,errorRate:J>0?G/J:0,avgDurationMs:K}}toDbRow(Y){return{id:Y.id||L9("log"),organization_id:Y.organizationId,connection_id:Y.connectionId,connection_title:Y.connectionTitle,tool_name:Y.toolName,input:JSON.stringify(Y.input),output:JSON.stringify(Y.output),is_error:Y.isError?1:0,error_message:Y.errorMessage||null,duration_ms:Y.durationMs,timestamp:Y.timestamp instanceof Date?Y.timestamp.toISOString():Y.timestamp,user_id:Y.userId||null,request_id:Y.requestId,user_agent:Y.userAgent||null,virtual_mcp_id:Y.virtualMcpId||null,properties:Y.properties?JSON.stringify(Y.properties):null}}fromDbRow(Y){let X=typeof Y.input==="string"?JSON.parse(Y.input):Y.input,Q=typeof Y.output==="string"?JSON.parse(Y.output):Y.output,J=typeof Y.timestamp==="string"?new Date(Y.timestamp):Y.timestamp,G=Y.properties?typeof Y.properties==="string"?JSON.parse(Y.properties):Y.properties:null;return{id:Y.id,organizationId:Y.organization_id,connectionId:Y.connection_id,connectionTitle:Y.connection_title,toolName:Y.tool_name,input:X,output:Q,isError:Y.is_error===1,errorMessage:Y.error_message,durationMs:Y.duration_ms,timestamp:J,userId:Y.user_id,requestId:Y.request_id,userAgent:Y.user_agent,virtualMcpId:Y.virtual_mcp_id,properties:G}}}var XM6=S(()=>{KK()});class b70{db;constructor(Y){this.db=Y}async get(Y){let X=await this.db.selectFrom("organization_settings").selectAll().where("organizationId","=",Y).executeTakeFirst();if(!X)return null;return{organizationId:X.organizationId,sidebar_items:X.sidebar_items?typeof X.sidebar_items==="string"?JSON.parse(X.sidebar_items):X.sidebar_items:null,enabled_plugins:X.enabled_plugins?typeof X.enabled_plugins==="string"?JSON.parse(X.enabled_plugins):X.enabled_plugins:null,createdAt:X.createdAt,updatedAt:X.updatedAt}}async upsert(Y,X){let Q=new Date().toISOString(),J=X?.sidebar_items?JSON.stringify(X.sidebar_items):null,G=X?.enabled_plugins?JSON.stringify(X.enabled_plugins):null;await this.db.insertInto("organization_settings").values({organizationId:Y,sidebar_items:J,enabled_plugins:G,createdAt:Q,updatedAt:Q}).onConflict((W)=>W.column("organizationId").doUpdateSet({sidebar_items:J?J:void 0,enabled_plugins:G?G:void 0,updatedAt:Q})).execute();let K=await this.get(Y);if(!K)return{organizationId:Y,sidebar_items:X?.sidebar_items??null,enabled_plugins:X?.enabled_plugins??null,createdAt:Q,updatedAt:Q};return K}}class x70{db;constructor(Y){this.db=Y}async findById(Y,X){let Q=await this.db.selectFrom("user").select(["user.id","user.name","user.email","user.image","user.createdAt","user.updatedAt"]).where("user.id","=",Y).where((J)=>J.exists(J.selectFrom("member as m1").innerJoin("member as m2","m1.organizationId","m2.organizationId").select("m1.id").where("m1.userId","=",Y).where("m2.userId","=",X))).executeTakeFirst();if(!Q)return null;return{id:Q.id,name:Q.name,email:Q.email,role:"",createdAt:Q.createdAt,updatedAt:Q.updatedAt,image:Q.image??void 0}}}var QM6="mcp.mesh";var JM6,u70,d3;var Pu=S(()=>{JM6=class JM6 extends Error{constructor(Y){super(Y);this.name="UnauthorizedError"}};u70=class u70 extends Error{constructor(Y){super(Y);this.name="ForbiddenError"}};d3=class d3{userId;toolName;boundAuth;role;connectionId;getToolMeta;_granted=!1;constructor(Y,X,Q,J,G,K="self",W){this.userId=X;this.toolName=Q;this.boundAuth=J;this.role=G;this.connectionId=K;this.getToolMeta=W}[Symbol.dispose](){this._granted=!1}setToolName(Y){this.toolName=Y}grant(){return this._granted=!0,{[Symbol.dispose]:()=>{this._granted=!1}}}async check(...Y){if(this._granted)return;if(this.toolName?.startsWith("MESH_PUBLIC_")){this.grant();return}if(!this.userId&&!this.boundAuth){if(this.getToolMeta&&await this.isToolPublic()){this.grant();return}throw new JM6("Authentication required. Please provide a valid OAuth token or API key.")}let X=Y.length>0?Y:this.toolName?[this.toolName]:[];if(X.length===0)throw new u70("No resources specified for access check");for(let Q of X)if(await this.checkResource(Q)){this.grant();return}throw new u70(`Access denied to: ${X.join(", ")}`)}async checkResource(Y){if(!this.userId&&!this.boundAuth)return!1;if(this.role==="admin"||this.role==="owner")return!0;if(!this.boundAuth)return!1;let X={};if(this.connectionId)X[this.connectionId]=[Y];return this.boundAuth.hasPermission(X)}async isToolPublic(){if(this.toolName?.startsWith("MESH_PUBLIC_"))return!0;if(!this.getToolMeta)return!1;try{let Y=await this.getToolMeta();if(!Y)return!1;let Q=Y[QM6]?.public_tool;return Q===!0||Q==="true"}catch{return!1}}granted(){return this._granted}}});function GM6(Y){let X=null;return()=>{if(X)return X;return X=Y().catch((Q)=>{throw X=null,Q}),X}}class WM6{factory;promise=null;constructor(Y){this.factory=Y}getOrCreatePromise(){if(!this.promise)this.promise=this.factory();return this.promise}then(Y,X){return this.getOrCreatePromise().then(Y,X)}catch(Y){return this.getOrCreatePromise().catch(Y)}finally(Y){return this.getOrCreatePromise().finally(Y)}}function RW(Y){return new WM6(Y)}class g70{proxies;options;cache;constructor(Y,X){this.proxies=Y;this.options=X;this.cache=RW(()=>this.loadPrompts())}async loadPrompts(){let Y=await this.proxies.mapSettled(async(G,K)=>{try{let Z=(await G.proxy.client.listPrompts()).prompts;if(this.options.selectionMode==="exclusion"){if(G.selectedPrompts&&G.selectedPrompts.length>0){let H=new Set(G.selectedPrompts);Z=Z.filter((F)=>!H.has(F.name))}}else if(!G.selectedPrompts||G.selectedPrompts.length===0)Z=[];else{let H=new Set(G.selectedPrompts);Z=Z.filter((F)=>H.has(F.name))}return{connectionId:K,prompts:Z}}catch(W){return console.error(`[PromptAggregator] Failed to list prompts for connection ${K}:`,W),{connectionId:K,prompts:[]}}}),X=new Set,Q=[],J=new Map;for(let G of Y){if(G.status!=="fulfilled")continue;let{connectionId:K,prompts:W}=G.value;for(let Z of W){if(X.has(Z.name))continue;X.add(Z.name),Q.push(Z),J.set(Z.name,K)}}return{prompts:Q,mappings:J}}async list(){return{prompts:(await this.cache).prompts}}async get(Y){let Q=(await this.cache).mappings.get(Y.name);if(!Q)throw Error(`Prompt not found: ${Y.name}`);let J=this.proxies.get(Q);if(!J)throw Error(`Connection not found for prompt: ${Y.name}`);return await J.proxy.client.getPrompt(Y)}}var ZM6=()=>{};function jG1(Y,X){if(Y===X)return!0;if(!X.includes("*"))return!1;let Q=X.replace(/[.+?^${}()|[\]\\]/g,"\\$&").replace(/\*\*/g,"<<<DOUBLE_STAR>>>").replace(/\*/g,"[^/]*").replace(/<<<DOUBLE_STAR>>>/g,".*");Q=`^${Q}$`;try{return new RegExp(Q).test(Y)}catch{return!1}}function KM6(Y,X){return X.some((Q)=>jG1(Y,Q))}class m70{proxies;options;cache;constructor(Y,X){this.proxies=Y;this.options=X;this.cache=RW(()=>this.loadResources())}async loadResources(){let Y=await this.proxies.mapSettled(async(G,K)=>{try{let Z=(await G.proxy.client.listResources()).resources;if(this.options.selectionMode==="exclusion"){if(G.selectedResources&&G.selectedResources.length>0)Z=Z.filter((H)=>!KM6(H.uri,G.selectedResources))}else if(!G.selectedResources||G.selectedResources.length===0)Z=[];else Z=Z.filter((H)=>KM6(H.uri,G.selectedResources));return{connectionId:K,resources:Z}}catch(W){if(!(W instanceof K6)||W.code!==q6.MethodNotFound)console.error(`[aggregator] Failed to list resources for connection ${K}: (defaulting to empty array)`,W);return{connectionId:K,resources:[]}}}),X=new Set,Q=[],J=new Map;for(let G of Y){if(G.status!=="fulfilled")continue;let{connectionId:K,resources:W}=G.value;for(let Z of W){if(X.has(Z.uri))continue;X.add(Z.uri),Q.push(Z),J.set(Z.uri,K)}}return{resources:Q,mappings:J}}async list(){return{resources:(await this.cache).resources}}async read(Y){let Q=(await this.cache).mappings.get(Y.uri);if(!Q)throw Error(`Resource not found: ${Y.uri}`);let J=this.proxies.get(Q);if(!J)throw Error(`Connection not found for resource: ${Y.uri}`);return await J.proxy.client.readResource(Y)}}var HM6=S(()=>{p9()});class l70{proxies;cache;constructor(Y){this.proxies=Y;this.cache=RW(()=>this.loadResourceTemplates())}async loadResourceTemplates(){let Y=await this.proxies.mapSettled(async(Q,J)=>{try{let G=await Q.proxy.client.listResourceTemplates();return{connectionId:J,templates:G.resourceTemplates}}catch(G){if(!(G instanceof K6)||G.code!==q6.MethodNotFound)console.error(`[aggregator] Failed to list resource templates for connection ${J}: (defaulting to empty array)`,G);return{connectionId:J,templates:[]}}}),X=[];for(let Q of Y){if(Q.status!=="fulfilled")continue;let{templates:J}=Q.value;for(let G of J)X.push(G)}return{templates:X}}async list(){return{resourceTemplates:(await this.cache).templates}}}var FM6=S(()=>{p9()});function _G1(Y){let X=Y.slice().sort().join(","),Q=VM6.get(X);if(!Q){let J=z.object({name:(Y.length>0?z.enum(Y):z.string()).describe("The name of the tool to execute"),arguments:z.record(z.string(),z.unknown()).default({}).describe("Arguments to pass to the tool")});Q={schema:J,jsonSchema:z.toJSONSchema(J)},VM6.set(X,Q)}return Q}function BM6(Y){let X=G2(Y.tools);return{tool:{name:"GATEWAY_SEARCH_TOOLS",description:`Search for available tools by name or description. Returns tool names and brief descriptions without full schemas. Use this to discover tools before calling GATEWAY_DESCRIBE_TOOLS for detailed schemas.${Y.categories.length>0?` Available categories: ${Y.categories.join(", ")}.`:""} Total tools: ${X.length}.`,inputSchema:SG1},handler:async(J)=>{let G=$M6.safeParse(J);if(!G.success)return QO({error:G.error.flatten()});let K=sx(G.data.query,X,G.data.limit);return Yu({query:G.data.query,results:K.map((W)=>({name:W.name,description:W.description,connection:W._meta.connectionTitle})),totalAvailable:X.length})}}}function UM6(Y){let X=G2(Y.tools);return{tool:{name:"GATEWAY_DESCRIBE_TOOLS",description:"Get detailed schemas for specific tools. Call after GATEWAY_SEARCH_TOOLS to get full input/output schemas.",inputSchema:kG1},handler:async(Q)=>{let J=qM6.safeParse(Q);if(!J.success)return QO({error:J.error.flatten()});let G=tx(J.data.tools,X);return Yu({tools:G.tools,notFound:G.notFound})}}}function yG1(Y){let X=G2(Y.tools),Q=X.map((W)=>W.name),J=new Map(X.map((W)=>[W.name,W])),{schema:G,jsonSchema:K}=_G1(Q);return{tool:{name:"GATEWAY_CALL_TOOL",description:"Execute a tool by name. Use GATEWAY_DESCRIBE_TOOLS first to understand the input schema.",inputSchema:K},handler:async(W)=>{let Z=G.safeParse(W);if(!Z.success)return QO({error:Z.error.flatten()});let{name:H,arguments:F}=Z.data;if(!J.has(H))return{content:[{type:"text",text:`Tool not found: ${H}. Use GATEWAY_SEARCH_TOOLS to find available tools.`}],isError:!0};return Y.callTool(H,F)}}}function fG1(Y){let X=G2(Y.tools);return{tool:{name:"GATEWAY_RUN_CODE",description:'Run JavaScript code in a sandbox. Code must be an ES module that `export default`s an async function that receives (tools) as its first parameter. Use GATEWAY_DESCRIBE_TOOLS to understand the input/output schemas for a tool before calling it. Use `await tools.toolName(args)` or `await tools["tool-name"](args)` to call tools.',inputSchema:vG1},handler:async(Q)=>{let J=zM6.safeParse(Q);if(!J.success)return QO({error:J.error.flatten()});let G={...Y,tools:X},K=await ex(J.data.code,G,J.data.timeoutMs);if(K.error)return QO(K);return Yu(K)}}}function DM6(Y){let X=new Map(Y.map((J)=>[J.tool.name,J.handler])),Q=Y.map((J)=>J.tool.name);return{tools:Y.map((J)=>J.tool),callTool:async(J,G)=>{let K=X.get(J);if(!K)return{content:[{type:"text",text:`Unknown meta-tool: ${J}. Available: ${Q.join(", ")}`}],isError:!0};return K(G)}}}function OM6(Y){switch(Y){case"smart_tool_selection":return xG1;case"code_execution":return bG1;case"passthrough":default:return hG1}}function NM6(Y){switch(Y){case"smart_tool_selection":return"smart_tool_selection";case"code_execution":return"code_execution";case"passthrough":default:return"passthrough"}}var $M6,SG1,qM6,kG1,zM6,vG1,VM6,hG1=(Y)=>({tools:Y.tools,callTool:(X,Q)=>Y.callTool(X,Q)}),bG1=(Y)=>DM6([BM6(Y),UM6(Y),fG1(Y)]),xG1=(Y)=>DM6([BM6(Y),UM6(Y),yG1(Y)]);var d70=S(()=>{s0();W2();$M6=z.object({query:z.string().min(1).describe("Search query to find tools by name or description"),limit:z.number().default(10).describe("Maximum number of results to return")}),SG1=z.toJSONSchema($M6),qM6=z.object({tools:z.array(z.string()).min(1).describe("Array of tool names to get detailed schemas for")}),kG1=z.toJSONSchema(qM6),zM6=z.object({code:z.string().min(1).describe("JavaScript code to execute. It runs as an async function body; you can use top-level `return` and `await`."),timeoutMs:z.number().default(3000).describe("Max execution time in milliseconds (default: 3000).")}),vG1=z.toJSONSchema(zM6),VM6=new Map});class p70{proxies;options;cache;constructor(Y,X){this.proxies=Y;this.options=X;this.cache=RW(()=>this.loadTools())}async loadTools(){let Y=await this.proxies.mapSettled(async(H,F)=>{try{let $=(await H.proxy.client.listTools()).tools;if(this.options.selectionMode==="exclusion"){if(H.selectedTools&&H.selectedTools.length>0){let q=new Set(H.selectedTools);$=$.filter((B)=>!q.has(B.name))}}else if(H.selectedTools&&H.selectedTools.length>0){let q=new Set(H.selectedTools);$=$.filter((B)=>q.has(B.name))}return{connectionId:F,connectionTitle:H.connection.title,tools:$}}catch(V){if(!(V instanceof K6)||V.code!==q6.MethodNotFound)console.error(`[aggregator] Failed to list tools ${F}: (defaulting to null)`,V);return null}}),X=new Set,Q=[],J=new Map,G=new Set;for(let H of Y){if(H.status!=="fulfilled"||!H.value)continue;let{connectionId:F,connectionTitle:V,tools:$}=H.value;G.add(V);for(let q of $){if(X.has(q.name))continue;X.add(q.name),Q.push({...q,_meta:{connectionId:F,connectionTitle:V}}),J.set(q.name,{connectionId:F,originalName:q.name})}}let K=async(H,F)=>{let V=J.get(H);if(!V)return{content:[{type:"text",text:`Tool not found: ${H}`}],isError:!0};let $=this.proxies.get(V.connectionId);if(!$)return{content:[{type:"text",text:`Connection not found for tool: ${H}`}],isError:!0};return await $.proxy.client.callTool({name:V.originalName,arguments:F})},Z=OM6(this.options.strategy)({tools:Q,callTool:K,categories:Array.from(G).sort()});return{tools:Q,mappings:J,strategyResult:Z}}async list(){return{tools:(await this.cache).strategyResult.tools}}async call(Y){return(await this.cache).strategyResult.callTool(Y.name,Y.arguments??{})}async callStreamable(Y,X){let Q=await this.cache,J=Q.mappings.get(Y);if(J){let K=this.proxies.get(J.connectionId);if(K)return K.proxy.callStreamableTool(J.originalName,X)}let G=await Q.strategyResult.callTool(Y,X);return new Response(JSON.stringify(G),{headers:{"Content-Type":"application/json"}})}}var LM6=S(()=>{p9();d70()});function wM6(Y,X){if(Y.connection_type!=="VIRTUAL")return!1;return h3(Y.connection_url)===X}async function uG1(Y,X){let Q=await sD.create(Y.connections,X),J=new p70(Q,{selectionMode:Y.toolSelectionMode,strategy:Y.toolSelectionStrategy}),G=new m70(Q,{selectionMode:Y.toolSelectionMode}),K=new l70(Q),W=new g70(Q,{selectionMode:Y.toolSelectionMode});return{client:{listTools:J.list.bind(J),callTool:J.call.bind(J),listResources:G.list.bind(G),readResource:G.read.bind(G),listResourceTemplates:K.list.bind(K),listPrompts:W.list.bind(W),getPrompt:W.get.bind(W)},callStreamableTool:J.callStreamable.bind(J)}}async function f2(Y,X,Q){let J;if(Y.tool_selection_mode==="exclusion"){let W=(await X.storage.connections.list(Y.organization_id)).filter((H)=>H.status==="active"&&!wM6(H,Y.id)),Z=new Map;for(let H of Y.connections)Z.set(H.connection_id,{selectedTools:H.selected_tools,selectedResources:H.selected_resources,selectedPrompts:H.selected_prompts});J=[];for(let H of W){let F=Z.get(H.id);if(F===void 0)J.push({connection:H,selectedTools:null,selectedResources:null,selectedPrompts:null});else if((F.selectedTools===null||F.selectedTools.length===0)&&(F.selectedResources===null||F.selectedResources.length===0)&&(F.selectedPrompts===null||F.selectedPrompts.length===0));else J.push({connection:H,selectedTools:F.selectedTools,selectedResources:F.selectedResources,selectedPrompts:F.selectedPrompts})}}else{let K=Y.connections.map((Z)=>Z.connection_id),W=[];for(let Z of K){let H=await X.storage.connections.findById(Z);if(H&&H.status==="active"&&!wM6(H,Y.id))W.push(H)}J=W.map((Z)=>{let H=Y.connections.find((F)=>F.connection_id===Z.id);return{connection:Z,selectedTools:H?.selected_tools??null,selectedResources:H?.selected_resources??null,selectedPrompts:H?.selected_prompts??null}})}let G={connections:J,toolSelectionMode:Y.tool_selection_mode,toolSelectionStrategy:Q};return uG1(G,X)}var MM6=S(()=>{EW();ZM6();HM6();FM6();LM6()});var c70=S(()=>{MM6()});async function AM6(Y){if(!Y.refreshToken)return{success:!1,error:"No refresh token available"};if(!Y.tokenEndpoint)return{success:!1,error:"No token endpoint available"};if(!Y.clientId)return{success:!1,error:"No client ID available"};try{let X=new URLSearchParams({grant_type:"refresh_token",refresh_token:Y.refreshToken,client_id:Y.clientId});if(Y.clientSecret)X.set("client_secret",Y.clientSecret);if(Y.scope)X.set("scope",Y.scope);let Q=await fetch(Y.tokenEndpoint,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:X.toString()});if(!Q.ok){let G=await Q.text();console.error(`[TokenRefresh] Failed to refresh token: ${Q.status}`,G);try{let K=JSON.parse(G);return{success:!1,error:K.error_description||K.error||`Token refresh failed: ${Q.status}`}}catch{return{success:!1,error:`Token refresh failed: ${Q.status}`}}}let J=await Q.json();return{success:!0,accessToken:J.access_token,refreshToken:J.refresh_token||Y.refreshToken,expiresIn:J.expires_in,scope:J.scope}}catch(X){return console.error("[TokenRefresh] Error refreshing token:",X),{success:!1,error:X instanceof Error?X.message:"Token refresh failed"}}}function gG1(Y){return new Proxy(Y,{get(Q,J,G){if(J==="close")return async()=>{};if(J==="__actualClient")return Q;return Reflect.get(Q,J,G)}})}async function EM6(Y,X){let Q=$q.get(Y.id);if(Q?.status==="connected"&&Q.stableClient)return Q.stableClient;if(Q?.connectPromise&&(Q.status==="connecting"||Q.status==="reconnecting"))return Q.connectPromise;let J=Q?.status==="failed",G=Q??{transport:null,client:null,stableClient:null,config:Y,status:"connecting",connectPromise:null};if(!Q)$q.set(Y.id,G);return G.status=J?"reconnecting":"connecting",G.connectPromise=(async()=>{try{console.log(`[StableStdio] ${J?"Respawning":"Spawning"}: ${Y.id} (${Y.command} ${Y.args?.join(" ")??""})`);let K=new eP({command:Y.command,args:Y.args,env:Y.env,cwd:Y.cwd,stderr:"pipe"});G.transport=K;let W=X??new nQ({name:`mesh-stdio-${Y.id}`,version:"1.0.0"});G.client=W,G.stableClient=gG1(W),W.onclose=()=>{console.log(`[StableStdio] Connection closed unexpectedly: ${Y.id}`),G.status="failed",G.connectPromise=null};let Z=Y.name||Y.id,H="\x1B[2m",F="\x1B[0m";K.stderr?.on("data",(q)=>{let B=q.toString().trimEnd();if(B)console.error(`${B} ${H}[${Z}]${F}`)});let V=new AbortController,$=setTimeout(()=>V.abort(),30000);try{await Promise.race([W.connect(K),new Promise((q,B)=>{V.signal.addEventListener("abort",()=>{B(Error("Stdio connection timeout after 30s"))})})])}finally{clearTimeout($)}return G.status="connected",console.log(`[StableStdio] Connected: ${Y.id}`),G.stableClient}catch(K){console.error(`[StableStdio] Failed to connect ${Y.id}:`,K),G.status="failed",G.connectPromise=null;try{await G.transport?.close()}catch{}throw K}})(),G.connectPromise}async function mG1(Y){let X=$q.get(Y);if(!X)return;console.log(`[StableStdio] Force closing: ${Y}`);try{if(X.client)X.client.onclose=void 0;await X.client?.close()}catch{}$q.delete(Y)}async function lG1(){console.log(`[StableStdio] Closing all connections (${$q.size})`);let Y=Array.from($q.keys()).map((X)=>mG1(X));await Promise.allSettled(Y),$q.clear()}var TM6="__mesh_stable_stdio_pool__",$q,PM6="__mesh_stable_stdio_shutdown_registered__";var CM6=S(()=>{c$();g50();$q=globalThis[TM6]??(globalThis[TM6]=new Map);if(!globalThis[PM6]){globalThis[PM6]=!0;let Y=async(X)=>{await lG1(),process.exit(X==="SIGINT"?130:143)};process.on("SIGINT",()=>Y("SIGINT")),process.on("SIGTERM",()=>Y("SIGTERM"))}});async function Eu(Y,X){let Q=Y.get("meshContext");try{let J=Y.req.header("x-org-id"),G=Y.req.header("x-org-slug"),K=J?J:G?await Q.db.selectFrom("organization").select("id").where("slug","=",G).executeTakeFirst().then((B)=>B?.id):null,W=X?await Q.storage.virtualMcps.findById(X):K?z50(K):null;if(!W)return Y.json({error:"Agent not found"},404);if(K&&W.organization_id!==K)return Y.json({error:"Agent not found"},404);if(W.status!=="active")return Y.json({error:`Agent is inactive: ${W.id}`},503);Q.connectionId=W.id;let Z=await Q.db.selectFrom("organization").select(["id","slug","name"]).where("id","=",W.organization_id).executeTakeFirst();if(Z)Q.organization={id:Z.id,slug:Z.slug,name:Z.name};let H=Y.req.query("mode"),F=NM6(H),V=await f2(W,Q,F),$=new e$({name:`mcp-virtual-mcp-${W.title}`,version:"1.0.0"},{capabilities:{tools:{},resources:{},prompts:{}},instructions:W.metadata?.instructions??void 0}),q=new Yq({enableJsonResponse:Y.req.header("Accept")?.includes("application/json")??!1});await $.connect(q),$.server.setRequestHandler(C3,async(B)=>{return V.client.listTools()}),$.server.setRequestHandler(LW,async(B)=>{return await V.client.callTool(B.params)}),$.server.setRequestHandler(M3,async()=>{return V.client.listResources()}),$.server.setRequestHandler(T3,async(B)=>{return V.client.readResource(B.params)}),$.server.setRequestHandler(A3,async()=>{return V.client.listResourceTemplates()}),$.server.setRequestHandler(P3,async()=>{return V.client.listPrompts()}),$.server.setRequestHandler(E3,async(B)=>{return V.client.getPrompt(B.params)});try{return await q.handleRequest(Y.req.raw)}finally{try{await q.close?.()}catch{}}}catch(J){let G=J;return console.error("[virtual-mcp] Error handling virtual MCP request:",G),Y.json({error:"Internal server error",message:G.message},500)}}var n70,IM6;var i70=S(()=>{cx();nx();p9();gG();c70();d70();nP();n70=new M9;n70.all("/gateway/:virtualMcpId?",async(Y)=>{let X=Y.req.param("virtualMcpId")||Y.req.header("x-virtual-mcp-id");return Eu(Y,X)});n70.all("/virtual-mcp/:virtualMcpId?",async(Y)=>{let X=Y.req.param("virtualMcpId")||Y.req.header("x-virtual-mcp-id");return Eu(Y,X)});IM6=n70});async function RM6(Y,X){return(await X.storage.connections.findById(Y))?.connection_url??null}function dG1(Y){let X=Y.toLowerCase();return X.includes("resource_metadata=")||X.includes("invalid_token")||X.includes("oauth")}async function jM6(Y,X={}){try{let Q=await fetch(Y,{method:"POST",headers:{...X,"Content-Type":"application/json",Accept:"application/json, text/event-stream"},body:JSON.stringify({jsonrpc:"2.0",id:0,method:"initialize",params:{protocolVersion:"2025-06-18",capabilities:{},clientInfo:{name:"mcp-mesh-proxy",version:"1.0.0"}}})});if(Q.status===401){let J=Q.headers.get("WWW-Authenticate");if(J){if(dG1(J))return J}}return null}catch{return null}}async function Iu(Y){let Q=new URL(Y).pathname;if(Q.endsWith("/"))Q=Q.slice(0,-1);let J=new URL(Y);J.pathname=`${Q}/.well-known/oauth-protected-resource`;let G=await fetch(J.toString(),{method:"GET",headers:{Accept:"application/json"}});if(G.ok)return G;if(!a70.includes(G.status))return G;let K=new URL(Y);if(K.pathname=`/.well-known/oauth-protected-resource${Q}`,G=await fetch(K.toString(),{method:"GET",headers:{Accept:"application/json"}}),!a70.includes(G.status))return G;let W=new URL(Y);return W.pathname="/.well-known/oauth-protected-resource",G=await fetch(W.toString(),{method:"GET",headers:{Accept:"application/json"}}),G}async function pG1(Y,X){let Q=await RM6(Y,X);if(!Q)return null;let J;try{J=new URL(Q).origin}catch{return null}try{let G=await Iu(Q);if(G.ok){let K=await G.json();if(K.authorization_servers?.[0])return K.authorization_servers[0]}}catch{}return J}async function SM6(Y){let X=Y.get("meshContext");if(!X)X=await p3.create(Y.req.raw),Y.set("meshContext",X);return X}async function kM6({error:Y,reqUrl:X,connectionId:Q,connectionUrl:J,headers:G}){let K=Y.message?.toLowerCase()??"";if(!(Y.status===401||Y.code===401||Y.message?.includes("401")||K.includes("unauthorized")||K.includes("invalid_token")||K.includes("api key required")||K.includes("api-key required")))return null;if(Boolean(await jM6(J,G)))return new Response(null,{status:401,headers:{"WWW-Authenticate":`Bearer realm="mcp",resource_metadata="${X.origin}/mcp/${Q}/.well-known/oauth-protected-resource"`}});return new Response(JSON.stringify({error:"unauthorized",message:"Authentication required but server does not support OAuth"}),{status:401,headers:{"Content-Type":"application/json"}})}async function r70(Y){let Q=new URL(Y).pathname;if(Q.endsWith("/"))Q=Q.slice(0,-1);let J=Q!==""&&Q!=="/",G=[];if(J){let W=new URL(Y);W.pathname=`/.well-known/oauth-authorization-server${Q}`,G.push(W);let Z=new URL(Y);Z.pathname=`/.well-known/openid-configuration${Q}`,G.push(Z);let H=new URL(Y);H.pathname=`${Q}/.well-known/openid-configuration`,G.push(H)}else{let W=new URL(Y);W.pathname="/.well-known/oauth-authorization-server",G.push(W);let Z=new URL(Y);Z.pathname="/.well-known/openid-configuration",G.push(Z)}let K=null;for(let W of G){if(K=await fetch(W.toString(),{method:"GET",headers:{Accept:"application/json"}}),K.ok)return K;if(K.status!==404&&K.status!==401)return K}return K}var Cu,a70,Ru=(Y)=>{if(!(Y.hostname==="localhost"||Y.hostname==="127.0.0.1"))Y.protocol="https:";return Y},vM6=async(Y)=>{let X=Y.req.param("connectionId"),Q=await SM6(Y),J=await RM6(X,Q);if(!J)return Y.json({error:"Connection not found"},404);let G=Ru(new URL(Y.req.url)),K=`${G.origin}/mcp/${X}`,W=`${G.origin}/oauth-proxy/${X}`;try{let Z=await Iu(J);if(!Z.ok&&a70.includes(Z.status)){if(await jM6(J))return new Response(JSON.stringify({resource:K,authorization_servers:[W],bearer_methods_supported:["header"],scopes_supported:["*"]}),{status:200,headers:{"Content-Type":"application/json"}});return new Response(Z.body,{status:Z.status,statusText:Z.statusText,headers:{"Content-Type":"application/json"}})}if(!Z.ok)return new Response(Z.body,{status:Z.status,statusText:Z.statusText,headers:{"Content-Type":"application/json"}});let F={...await Z.json(),resource:K,authorization_servers:[W]};return new Response(JSON.stringify(F),{status:Z.status,statusText:Z.statusText,headers:{"Content-Type":"application/json"}})}catch(Z){let H=Z;return console.error("[oauth-proxy] Failed to proxy OAuth protected resource metadata:",H),Y.json({error:"Failed to proxy OAuth metadata",message:H.message},502)}},_M6;var ju=S(()=>{gG();Su();Cu=new M9,a70=[404,401,406];Cu.get("/.well-known/oauth-protected-resource/mcp/:connectionId",(Y)=>vM6(Y));Cu.get("/mcp/:connectionId/.well-known/oauth-protected-resource",(Y)=>vM6(Y));Cu.get("/.well-known/oauth-authorization-server/oauth-proxy/:connectionId",async(Y)=>{let X=Y.req.param("connectionId"),Q=await SM6(Y),J=await pG1(X,Q);if(!J)return Y.json({error:"Connection not found or no auth server"},404);try{let G=await r70(J);if(!G.ok)return new Response(G.body,{status:G.status,statusText:G.statusText,headers:{"Content-Type":"application/json"}});let K=await G.json(),Z=`${Ru(new URL(Y.req.url)).origin}/oauth-proxy/${X}`,H={...K,authorization_endpoint:K.authorization_endpoint?`${Z}/authorize`:void 0,token_endpoint:K.token_endpoint?`${Z}/token`:void 0,registration_endpoint:K.registration_endpoint?`${Z}/register`:void 0};return new Response(JSON.stringify(H),{status:200,headers:{"Content-Type":"application/json"}})}catch(G){let K=G;return console.error("[oauth-proxy] Failed to proxy auth server metadata:",K),Y.json({error:"Failed to proxy auth server metadata",message:K.message},502)}});_M6=Cu});function cG1(Y){if(!Y.isError)return;let X=Y.content;if(!Array.isArray(X))return;for(let Q of X)if(Q&&typeof Q==="object"&&"type"in Q&&Q.type==="text"&&"text"in Q&&typeof Q.text==="string")return Q.text;return}function nG1(Y){if(!Y)return;let X=Y._meta;if(!X||typeof X!=="object"||Array.isArray(X))return;let Q=X.properties;if(!Q||typeof Q!=="object"||Array.isArray(Q))return;let J={};for(let[G,K]of Object.entries(Q))if(typeof K==="string")J[G]=K;return Object.keys(J).length>0?J:void 0}function iG1(Y,X){if(!Y&&!X)return;if(!Y)return X;if(!X)return Y;return{...X,...Y}}function yM6(Y){if(Y&&typeof Y==="object"&&!Array.isArray(Y)){let X=Y,Q=X.structuredContent;if(Q&&typeof Q==="object"&&!Array.isArray(Q))return Q;return X}return{value:Y}}async function aG1(Y,X){let Q=Y.body;if(!Q)return{text:"",truncated:!1};let J=Q.getReader(),G=new TextDecoder,K=!1,W=0,Z=[];try{while(!0){let{value:H,done:F}=await J.read();if(F)break;if(H){if(W+=H.byteLength,W>X){K=!0;let V=X-(W-H.byteLength);if(V>0)Z.push(G.decode(H.slice(0,V),{stream:!0}));break}Z.push(G.decode(H,{stream:!0}))}}}finally{J.releaseLock()}return Z.push(G.decode()),{text:Z.join(""),truncated:K}}async function h2(Y){let{ctx:X,enabled:Q}=Y,J=Y.organizationId??X.organization?.id;if(!Q||!J)return;let G=nG1(Y.request.params.arguments),K=iG1(X.metadata.properties,G);await X.storage.monitoring.log({organizationId:J,connectionId:Y.connectionId,connectionTitle:Y.connectionTitle,toolName:Y.request.params.name,input:Y.request.params.arguments??{},output:Y.output,isError:Y.isError,errorMessage:Y.errorMessage,durationMs:Y.durationMs,timestamp:new Date,userId:X.auth.user?.id||X.auth.apiKey?.userId||null,requestId:X.metadata.requestId,userAgent:X.metadata.userAgent,virtualMcpId:Y.virtualMcpId,properties:K})}function fM6(Y){let{ctx:X,enabled:Q,connectionId:J,connectionTitle:G,virtualMcpId:K}=Y;return async(W,Z)=>{let H=Date.now();try{let F=await Z(),V=Date.now()-H;return await h2({ctx:X,enabled:Q,connectionId:J,connectionTitle:G,virtualMcpId:K,request:W,output:yM6(F),isError:Boolean(F.isError),errorMessage:cG1(F),durationMs:V}),F}catch(F){let V=F,$=Date.now()-H;throw await h2({ctx:X,enabled:Q,connectionId:J,connectionTitle:G,virtualMcpId:K,request:W,output:{},isError:!0,errorMessage:V.message,durationMs:$}),F}}}function hM6(Y){let{ctx:X,enabled:Q,connectionId:J,connectionTitle:G,virtualMcpId:K}=Y;return async(W,Z)=>{let H=Date.now();try{let F=await Z(),V=X.organization?.id;if(Q&&V){let $=F.clone();(async()=>{try{let{text:q,truncated:B}=await aG1($,262144),D=Date.now()-H,O=$.headers.get("content-type")??"",L=q;if(O.includes("application/json"))try{L=q.length?JSON.parse(q):null}catch{L=q}let w=F.status>=400,I=w&&L&&typeof L==="object"&&"error"in L?L.error:void 0,T=typeof I==="string"&&I?I:w&&typeof L==="string"&&L.trim()?L.slice(0,500):w?`HTTP ${F.status} ${F.statusText}`.trim():B?"Response body truncated to 262144 bytes":void 0;await h2({ctx:X,enabled:Q,organizationId:V,connectionId:J,connectionTitle:G,virtualMcpId:K,request:W,output:yM6(L),isError:w,errorMessage:T,durationMs:D})}catch(q){let B=Date.now()-H;await h2({ctx:X,enabled:Q,organizationId:V,connectionId:J,connectionTitle:G,virtualMcpId:K,request:W,output:{},isError:!0,errorMessage:`Failed to read streamable response body: ${q.message}`,durationMs:B})}})()}return F}catch(F){let V=F,$=Date.now()-H;throw await h2({ctx:X,enabled:Q,connectionId:J,connectionTitle:G,virtualMcpId:K,request:W,output:{},isError:!0,errorMessage:V.message,durationMs:$}),F}}}function rG1(Y,X,Q){return async(J,G)=>{try{let K=J.params.name,W=async()=>{let{tools:H}=await Q();return H.find((V)=>V.name===K)?._meta};return await new d3(Y.authInstance,Y.auth.user?.id??Y.auth.apiKey?.userId,K,Y.boundAuth,Y.auth.user?.role,X,W).check(K),await G()}catch(K){return{content:[{type:"text",text:`Authorization failed: ${K.message}`}],isError:!0}}}}function oG1(Y,X,Q){return async(J,G)=>{try{let K=J.params.name,W=async()=>{let{tools:H}=await Q();return H.find((V)=>V.name===K)?._meta};return await new d3(Y.authInstance,Y.auth.user?.id??Y.auth.apiKey?.userId,K,Y.boundAuth,Y.auth.user?.role,X,W).check(K),await G()}catch(K){return new Response(JSON.stringify({error:`Authorization failed: ${K.message}`}),{status:403,headers:{"Content-Type":"application/json"}})}}}async function bM6(Y,X,{superUser:Q}){let J=typeof Y==="string"?await X.storage.connections.findById(Y,X.organization?.id):Y;if(!J)throw Error("Connection not found");let G=J?.id;if(X.organization&&J.organization_id!==X.organization.id)throw Error("Connection does not belong to the active organization");if(X.organization??={id:J.organization_id},J.status!=="active")throw Error(`Connection inactive: ${J.status}`);let K,W=X.auth.user?.connectionId,Z=GM6(async()=>{let k=jG0(J.configuration_state,J.configuration_scopes),b=X.auth.user?.id??X.auth.apiKey?.userId??(Q?J.created_by:void 0);if(!b){console.error("User ID required to issue configuration token");return}try{K=await tw6({sub:b,user:{id:b},metadata:{state:J.configuration_state??void 0,meshUrl:process.env.MESH_URL??X.baseUrl,connectionId:G,organizationId:X.organization?.id},permissions:k})}catch(Y0){console.error("Failed to issue configuration token:",Y0)}}),H=async()=>{await Z();let k={...W?{"x-caller-id":W}:{},...X.metadata.wellKnownForwardableHeaders??{},"x-request-id":X.metadata.requestId},b=null,Y0=new zK(X.db,X.vault),p=await Y0.get(G);if(p){let W0=!!p.refreshToken&&!!p.tokenEndpoint;if(Y0.isExpired(p,W0?300000:0))if(W0){console.log(`[Proxy] Token expired for ${G}, attempting refresh`);let J0=await AM6(p);if(J0.success&&J0.accessToken)await Y0.upsert({connectionId:G,accessToken:J0.accessToken,refreshToken:J0.refreshToken??p.refreshToken,scope:J0.scope??p.scope,expiresAt:J0.expiresIn?new Date(Date.now()+J0.expiresIn*1000):null,clientId:p.clientId,clientSecret:p.clientSecret,tokenEndpoint:p.tokenEndpoint}),b=J0.accessToken,console.log(`[Proxy] Token refreshed for ${G}`);else await Y0.delete(G),console.error(`[Proxy] Token refresh failed for ${G}: ${J0.error}`)}else await Y0.delete(G),console.log(`[Proxy] Token expired without refresh capability for ${G}`);else b=p.accessToken}if(!b&&J.connection_token)b=J.connection_token;if(b)k.Authorization=`Bearer ${b}`;if(K)k["x-mesh-token"]=K;return k},F=J.connection_type==="STDIO",V=r$(J.connection_headers)?J.connection_headers:null,$=!F?J.connection_headers:null,q=async()=>{let k=new nQ({name:"mcp-mesh-proxy",version:"1.0.0"},{capabilities:{tasks:{list:{},cancel:{},requests:{tool:{call:{}}}}}});switch(J.connection_type){case"STDIO":{if(process.env.UNSAFE_ALLOW_STDIO_TRANSPORT!=="true")throw Error("STDIO connections are disabled in production. Set UNSAFE_ALLOW_STDIO_TRANSPORT=true to enable.");if(!V)throw Error("STDIO connection missing parameters");return EM6({id:G,name:J.title,command:V.command,args:V.args,env:V.envVars,cwd:V.cwd},k)}case"HTTP":case"Websocket":{if(!J.connection_url)throw Error(`${J.connection_type} connection missing URL`);let b=await H();if($?.headers)Object.assign(b,$.headers);let Y0=new PW(new URL(J.connection_url),{requestInit:{headers:b}});return await k.connect(Y0),k}case"SSE":{if(!J.connection_url)throw Error("SSE connection missing URL");let b=await H();if($?.headers)Object.assign(b,$.headers);let Y0=new t$(new URL(J.connection_url),{requestInit:{headers:b}});return await k.connect(Y0),k}case"VIRTUAL":{let b=h3(J.connection_url);if(!b)throw Error("VIRTUAL connection missing virtual MCP ID in connection_url");let Y0=await X.storage.virtualMcps.findById(b);if(!Y0)throw Error(`Virtual MCP not found: ${b}`);let p=await f2(Y0,X,"passthrough");return{callTool:(W0)=>p.client.callTool(W0),listTools:()=>p.client.listTools(),listResources:()=>p.client.listResources(),readResource:(W0)=>p.client.readResource(W0),listResourceTemplates:()=>p.client.listResourceTemplates(),listPrompts:()=>p.client.listPrompts(),getPrompt:(W0)=>p.client.getPrompt(W0),close:async()=>{},getServerCapabilities:()=>({tools:{},resources:{},prompts:{}}),getInstructions:()=>Y0.metadata?.instructions??void 0}}default:throw Error(`Unknown connection type: ${J.connection_type}`)}},B=async()=>{if(J.tools&&J.tools.length>0)return{tools:J.tools.map((b)=>({name:b.name,description:b.description,inputSchema:b.inputSchema,outputSchema:b.outputSchema,annotations:b.annotations,_meta:b._meta}))};let k;try{return k=await q(),await k.listTools()}finally{k?.close().catch(console.error)}},D=Q?async(k,b)=>await b():rG1(X,G,B),O=Q?async(k,b)=>await b():oG1(X,G,B),L=X.connectionId&&X.connectionId!==G?X.connectionId:void 0,w={enabled:wP0().enabled,connectionId:G,connectionTitle:J.title,virtualMcpId:L,ctx:X},I=fM6(w),T=hM6(w),P=X2(I,D),A=X2(T,O),R=async(k)=>{return P(k,async()=>{let b=await q(),Y0=Date.now(),p={...k.params};if(p.arguments&&"_meta"in p.arguments){let{_meta:W0,...B0}=p.arguments;p.arguments=B0}return await X.tracer.startActiveSpan("mcp.proxy.callTool",{attributes:{"connection.id":G,"tool.name":k.params.name,"request.id":X.metadata.requestId}},async(W0)=>{try{let B0=await b.callTool(p,void 0,{timeout:o70}),J0=Date.now()-Y0;return X.meter.createHistogram("connection.proxy.duration").record(J0,{"connection.id":G,"tool.name":k.params.name,status:"success"}),X.meter.createCounter("connection.proxy.requests").add(1,{"connection.id":G,"tool.name":k.params.name,status:"success"}),W0.end(),B0}catch(B0){let J0=B0,D0=Date.now()-Y0;throw X.meter.createHistogram("connection.proxy.duration").record(D0,{"connection.id":G,"tool.name":k.params.name,status:"error"}),X.meter.createCounter("connection.proxy.errors").add(1,{"connection.id":G,"tool.name":k.params.name,error:J0.message}),W0.recordException(J0),W0.end(),B0}finally{b.close().catch(console.error)}})})};return{fetch:async(k)=>{let b=new URL(k.url),Y0;try{Y0=await q()}catch(E0){let h0=J.connection_url?await kM6({error:E0,reqUrl:b,connectionId:G,connectionUrl:J.connection_url,headers:await H()}):null;if(h0)return h0;throw E0}let p=Y0.getServerCapabilities(),W0=Y0.getInstructions(),B0=p??{tools:{},resources:{},prompts:{}},J0=new e$({name:"mcp-mesh",version:"1.0.0"},{capabilities:B0,instructions:W0}),D0=new Yq({enableJsonResponse:k.headers.get("Accept")?.includes("application/json")??!1});if(await J0.connect(D0),J0.server.setRequestHandler(C3,()=>Y0.listTools()),J0.server.setRequestHandler(LW,R),B0.resources)J0.server.setRequestHandler(M3,()=>Y0.listResources()),J0.server.setRequestHandler(T3,(E0)=>Y0.readResource(E0.params)),J0.server.setRequestHandler(A3,()=>Y0.listResourceTemplates());if(B0.prompts)J0.server.setRequestHandler(P3,()=>Y0.listPrompts()),J0.server.setRequestHandler(E3,(E0)=>Y0.getPrompt(E0.params));try{return await D0.handleRequest(k)}finally{try{await Y0.close()}catch{}try{await D0.close?.()}catch{}}},client:{callTool:(k)=>{return R({method:"tools/call",params:k})},listTools:B,listResources:async()=>{let k;try{return k=await q(),await k.listResources()}catch(b){if(b instanceof K6&&b.code===q6.MethodNotFound)return{resources:[]};throw b}finally{k?.close().catch(console.error)}},readResource:async(k)=>{let b;try{return b=await q(),await b.readResource(k)}finally{b?.close().catch(console.error)}},listResourceTemplates:async()=>{let k;try{return k=await q(),await k.listResourceTemplates()}catch(b){if(b instanceof K6&&b.code===q6.MethodNotFound)return{resourceTemplates:[]};throw b}finally{k?.close().catch(console.error)}},listPrompts:async()=>{let k;try{return k=await q(),await k.listPrompts()}catch(b){if(b instanceof K6&&b.code===q6.MethodNotFound)return{prompts:[]};throw b}finally{k?.close().catch(console.error)}},getPrompt:async(k)=>{let b;try{return b=await q(),await b.getPrompt(k)}finally{b?.close().catch(console.error)}}},callStreamableTool:async(k,b)=>{if(J.connection_type==="VIRTUAL"){let W0=await R({method:"tools/call",params:{name:k,arguments:b}});return new Response(JSON.stringify(W0),{headers:{"Content-Type":"application/json"}})}if(!J.connection_url)throw Error("Streamable tools require HTTP connection with URL");let Y0=J.connection_url,p={method:"tools/call",params:{name:k,arguments:b}};return A(p,async()=>{let W0=await H();if($?.headers)Object.assign(W0,$.headers);let B0=new URL(Y0);return B0.pathname=B0.pathname.replace(/\/$/,"")+`/call-tool/${p.params.name}`,await X.tracer.startActiveSpan("mcp.proxy.callStreamableTool",{attributes:{"connection.id":G,"tool.name":p.params.name,"request.id":X.metadata.requestId}},async(J0)=>{let D0=Date.now();try{let E0=await fetch(B0.toString(),{method:"POST",redirect:"manual",body:JSON.stringify(p.params.arguments),headers:{...W0,"Content-Type":"application/json"}}),h0=Date.now()-D0;return X.meter.createHistogram("connection.proxy.streamable.duration").record(h0,{"connection.id":G,"tool.name":p.params.name,status:E0.ok?"success":"error"}),X.meter.createCounter("connection.proxy.streamable.requests").add(1,{"connection.id":G,"tool.name":p.params.name,status:E0.ok?"success":"error"}),J0.end(),E0}catch(E0){let h0=E0,F6=Date.now()-D0;throw X.meter.createHistogram("connection.proxy.streamable.duration").record(F6,{"connection.id":G,"tool.name":p.params.name,status:"error"}),X.meter.createCounter("connection.proxy.streamable.errors").add(1,{"connection.id":G,"tool.name":p.params.name,error:h0.message}),J0.recordException(h0),J0.end(),E0}})})}}}async function xM6(Y,X){return bM6(Y,X,{superUser:!1})}async function uM6(Y,X){return bM6(Y,X,{superUser:!0})}var ku,o70=300000,gM6=(Y,X)=>{if(Y.message.includes("not found"))return X.json({error:Y.message},404);if(Y.message.includes("does not belong to the active organization"))return X.json({error:"Connection not found"},404);if(Y.message.includes("inactive"))return X.json({error:Y.message},503);return X.json({error:"Internal server error",message:Y.message},500)},mM6;var b2=S(()=>{c70();SG0();Sv();CM6();Vu();EW();c$();mx();uD();cx();nx();p9();gG();_70();Pu();i70();ju();ku=new M9;ku.all("/",async(Y)=>{return Eu(Y,void 0)});ku.all("/:connectionId",async(Y)=>{let X=Y.req.param("connectionId"),Q=Y.get("meshContext");try{return await(await Q.createMCPProxy(X)).fetch(Y.req.raw)}catch(J){return gM6(J,Y)}});ku.all("/:connectionId/call-tool/:toolName",async(Y)=>{let X=Y.req.param("connectionId"),Q=Y.req.param("toolName"),J=Y.get("meshContext");try{let K=await(await J.createMCPProxy(X)).client.callTool({name:Q,arguments:await Y.req.json()});if(K instanceof Response)return K;if(K.isError)return new Response(JSON.stringify(K.content),{headers:{"Content-Type":"application/json"},status:500});return new Response(JSON.stringify(K.structuredContent??K.content),{headers:{"Content-Type":"application/json"}})}catch(G){return gM6(G,Y)}});mM6=ku});class s70{db;constructor(Y){this.db=Y}async create(Y){let X=Y.id??L9("thrd"),Q=new Date().toISOString();if(!Y.organizationId)throw Error("organizationId is required");if(!Y.createdBy)throw Error("createdBy is required");if(!Y.title)Y.title="New Thread - "+Q;let J={id:X,organization_id:Y.organizationId,title:Y.title,description:Y.description??null,created_at:Q,updated_at:Q,created_by:Y.createdBy,updated_by:Y.updatedBy??null},G=await this.db.insertInto("threads").values(J).returningAll().executeTakeFirstOrThrow();return this.threadFromDbRow(G)}async get(Y){let X=await this.db.selectFrom("threads").selectAll().where("id","=",Y).executeTakeFirst();return X?this.threadFromDbRow(X):null}async update(Y,X){let J={updated_at:new Date().toISOString()};if(X.title!==void 0)J.title=X.title;if(X.description!==void 0)J.description=X.description;if(X.updatedBy!==void 0)J.updated_by=X.updatedBy;if(X.hidden!==void 0)J.hidden=X.hidden;await this.db.updateTable("threads").set(J).where("id","=",Y).execute();let G=await this.get(Y);if(!G)throw Error("Thread not found after update");return G}async delete(Y){await this.db.deleteFrom("threads").where("id","=",Y).execute()}async list(Y,X,Q){let J=this.db.selectFrom("threads").selectAll().where("organization_id","=",Y).where("hidden","=",!1).orderBy("updated_at","desc");if(X)J=J.where("created_by","=",X);let G=this.db.selectFrom("threads").select((Z)=>Z.fn.count("id").as("count")).where("organization_id","=",Y).where("hidden","=",!1);if(X)G=G.where("created_by","=",X);if(Q?.limit)J=J.limit(Q.limit);if(Q?.offset)J=J.offset(Q.offset);let[K,W]=await Promise.all([J.execute(),G.executeTakeFirst()]);return{threads:K.map((Z)=>this.threadFromDbRow(Z)),total:Number(W?.count||0)}}async saveMessages(Y){let X=new Date().toISOString(),Q=Y[0]?.threadId;if(!Q)throw Error("threadId is required when creating multiple messages");let J=Y.find((K)=>K.threadId!==Q);if(J)throw Error(`All messages must target the same thread. Expected threadId "${Q}", but message "${J.id}" has threadId "${J.threadId}"`);let G=Y.map((K)=>({id:K.id,thread_id:Q,metadata:K.metadata?JSON.stringify(K.metadata):null,parts:JSON.stringify(K.parts),role:K.role,created_at:K.createdAt??X,updated_at:X}));await this.db.transaction().execute(async(K)=>{await K.insertInto("thread_messages").values(G).execute(),await K.updateTable("threads").set({updated_at:X}).where("id","=",Q).execute()})}async listMessages(Y,X){let Q=this.db.selectFrom("thread_messages").selectAll().where("thread_id","=",Y).orderBy("created_at","asc").orderBy("id","asc"),J=this.db.selectFrom("thread_messages").select((W)=>W.fn.count("id").as("count")).where("thread_id","=",Y);if(X?.limit)Q=Q.limit(X.limit);if(X?.offset)Q=Q.offset(X.offset);let[G,K]=await Promise.all([Q.execute(),J.executeTakeFirst()]);return{messages:G.map((W)=>this.messageFromDbRow(W)),total:Number(K?.count||0)}}threadFromDbRow(Y){return{id:Y.id,organizationId:Y.organization_id,title:Y.title,description:Y.description,createdAt:typeof Y.created_at==="string"?Y.created_at:Y.created_at.toISOString(),updatedAt:typeof Y.updated_at==="string"?Y.updated_at:Y.updated_at.toISOString(),createdBy:Y.created_by,updatedBy:Y.updated_by,hidden:!!Y.hidden}}messageFromDbRow(Y){let X,Q;try{X=Y.metadata?JSON.parse(Y.metadata):void 0}catch(J){console.error(`Failed to parse metadata for message ${Y.id}:`,Y.metadata,J),X=void 0}try{Q=typeof Y.parts==="string"?JSON.parse(Y.parts):Y.parts}catch(J){console.error(`Failed to parse parts for message ${Y.id}:`,Y.parts,J),Q=[]}return{id:Y.id,threadId:Y.thread_id,metadata:X,parts:Q,role:Y.role,createdAt:typeof Y.created_at==="string"?Y.created_at:Y.created_at.toISOString(),updatedAt:typeof Y.updated_at==="string"?Y.updated_at:Y.updated_at.toISOString()}}}var lM6=S(()=>{KK()});function sG1(Y){if(!Y)return;try{let X=JSON.parse(Y);if(typeof X!=="object"||X===null||Array.isArray(X))return;let Q={};for(let[J,G]of Object.entries(X))if(typeof G==="string")Q[J]=G;return Object.keys(Q).length>0?Q:void 0}catch{return}}function tG1(Y,X){for(let[Q,J]of Object.entries(X)){let G=Y[Q];if(!G||G.length===0){let K=Y["*"];if(!K||K.length===0)return!1;if(K.includes("*"))continue;for(let W of J)if(!K.includes(W))return!1;continue}if(G.includes("*"))continue;for(let K of J)if(!G.includes(K))return!1}return!0}function eG1(Y){let{auth:X,headers:Q,role:J,permissions:G,userId:K}=Y,W=X.api.hasPermission;return{hasPermission:async(Z)=>{if(J&&O70.includes(J))return!0;if(G)return tG1(G,Z);if(!W)return console.error("[Auth] hasPermission API not available"),!1;try{if((await W({headers:Q,body:{permission:Z}}))?.success===!0)return!0;let F={};for(let $ of Object.keys(Z))F[$]=["*"];return(await W({headers:Q,body:{permission:F}}))?.success===!0}catch(H){return console.error("[Auth] Permission check failed:",H),!1}},organization:{create:async(Z)=>{return X.api.createOrganization({headers:Q,body:Z})},update:async(Z)=>{return X.api.updateOrganization({headers:Q,body:Z})},delete:async(Z)=>{await X.api.deleteOrganization({headers:Q,body:{organizationId:Z}})},get:async(Z)=>{return X.api.getFullOrganization({headers:Q,query:Z?{organizationId:Z}:void 0})},list:async(Z)=>{return X.api.listOrganizations({headers:Q,query:Z?{userId:Z}:void 0})},addMember:async(Z)=>{return X.api.addMember({headers:Q,body:Z})},removeMember:async(Z)=>{await X.api.removeMember({headers:Q,body:Z})},listMembers:async(Z)=>{return X.api.listMembers({headers:Q,query:Z?{organizationId:Z.organizationId,limit:Z.limit,offset:Z.offset}:void 0})},updateMemberRole:async(Z)=>{return X.api.updateMemberRole({headers:Q,body:Z})}},apiKey:{create:async(Z)=>{return X.api.createApiKey({body:{...Z,userId:K}})},list:async()=>{return X.api.listApiKeys({headers:Q})},update:async(Z)=>{return X.api.updateApiKey({body:{...Z,userId:K}})},delete:async(Z)=>{await X.api.deleteApiKey({headers:Q,body:{keyId:Z}})}}}}async function Y71(Y,X,Q){if(O70.includes(Q))return;let J=await Y.selectFrom("organizationRole").select(["permission"]).where("organizationId","=",X).where("role","=",Q).executeTakeFirst();if(!J?.permission)return;try{return JSON.parse(J.permission)}catch{console.error(`[Auth] Failed to parse permissions for role: ${Q}`);return}}async function X71(Y,X,Q,J=pM6){let G=Y.headers.get("Authorization");try{let K=new Headers(Y.headers);K.set("X-MCP-Session-Auth","true");let W=await J.measure("auth_get_mcp_session",()=>X.api.getMcpSession({headers:K}));if(W){let Z=W.userId,H=await J.measure("auth_query_membership",()=>Q.selectFrom("member").innerJoin("organization","organization.id","member.organizationId").select(["member.role","member.organizationId","organization.id as orgId","organization.slug as orgSlug","organization.name as orgName"]).where("member.userId","=",Z).executeTakeFirst()),F=H?.role,V=H?{id:H.orgId,slug:H.orgSlug,name:H.orgName}:void 0,$;if(H&&F)$=await J.measure("auth_fetch_role_permissions",()=>Y71(Q,H.organizationId,F));return{user:{id:Z,role:F},role:F,permissions:$,organization:V}}}catch(K){console.error("[Auth] OAuth session check failed:",K)}if(G?.startsWith("Bearer ")){let K=G.replace("Bearer ","").trim();try{let W=await J.measure("auth_verify_mesh_jwt",()=>ew6(K));if(W){let Z,H=W.metadata?.organizationId;if(W.sub&&H)Z=(await J.measure("auth_query_membership",()=>Q.selectFrom("member").select(["member.role"]).where("member.userId","=",W.sub).where("member.organizationId","=",H).executeTakeFirst()))?.role;return{user:{id:W.sub,connectionId:W.metadata?.connectionId,role:Z},role:Z,permissions:W.permissions,organization:W.metadata?.organizationId?{id:W.metadata?.organizationId}:void 0}}}catch{}try{let W=await J.measure("auth_verify_api_key",()=>X.api.verifyApiKey({body:{key:K}}));if(W?.valid&&W.key){let Z=W.key.metadata?.organization,H=W.key.permissions,F,V=W.key.userId;if(V&&Z?.id)F=(await J.measure("auth_query_membership",()=>Q.selectFrom("member").select(["member.role"]).where("member.userId","=",V).where("member.organizationId","=",Z.id).executeTakeFirst()))?.role;return{apiKeyId:W.key.id,user:{id:W.key.userId,role:F},role:F,permissions:H,organization:Z?{id:Z.id,slug:Z.slug,name:Z.name}:void 0}}}catch(W){console.error("[Auth] API key check failed:",W)}}try{let K=await J.measure("auth_get_session",()=>X.api.getSession({headers:Y.headers}));if(K){let W,Z;if(K.session.activeOrganizationId){let H=await J.measure("auth_get_full_organization",()=>X.api.getFullOrganization({headers:Y.headers}).catch(()=>null));if(H)W={id:H.id,slug:H.slug,name:H.name},Z=H.members?.find((V)=>V.userId===K.user.id)?.role;else W={id:K.session.activeOrganizationId,slug:"",name:""}}return{user:{id:K.user.id,email:K.user.email,role:Z},role:Z,organization:W}}}catch(K){let W=K;console.error("[Auth] Session check failed:",JSON.stringify({message:W.message,body:W.body,stack:W.stack},null,2))}return{user:void 0}}function cM6(Y){let X=new a$(Y.encryption.key),Q={connections:new aP(Y.db,X),organizationSettings:new b70(Y.db),monitoring:new h70(Y.db,Y.databaseType),virtualMcps:new y70(Y.db),users:new x70(Y.db),threads:new s70(Y.db)};return async(J,G)=>{let K=G?.timings??pM6,W=J?.headers.get("x-caller-id")??void 0,Z=J?await X71(J,Y.auth,Y.db,K):{user:void 0},H=eG1({auth:Y.auth,headers:J?.headers??new Headers,role:Z.role,permissions:Z.permissions,userId:Z.user?.id}),F={user:Z.user};if(Z.apiKeyId)F.apiKey={id:Z.apiKeyId,name:"",userId:""};let V=Z.organization,$=J?new URL(J.url):new URL("http://localhost:3000"),q=process.env.BASE_URL??`${$.protocol}//${$.host}`,B=new d3(Y.auth,F.user?.id,void 0,H,Z.role,"self"),D={timings:K,auth:F,connectionId:W,organization:V,storage:Q,vault:X,authInstance:Y.auth,boundAuth:H,access:B,db:Y.db,tracer:Y.observability.tracer,meter:Y.observability.meter,baseUrl:q,metadata:{requestId:crypto.randomUUID(),timestamp:new Date,wellKnownForwardableHeaders:Object.fromEntries(Q71.map((O)=>[O,J?.headers.get(O)??null]).filter(([O,L])=>L!==null)),userAgent:J?.headers.get("x-mesh-client")||J?.headers.get("User-Agent")||void 0,ipAddress:(J?.headers.get("CF-Connecting-IP")||J?.headers.get("X-Forwarded-For"))??void 0,properties:sG1(J?.headers.get("x-mesh-properties"))},eventBus:Y.eventBus,createMCPProxy:async(O)=>{return await xM6(O,D)}};return D}}var dM6,p3,pM6,Q71;var Su=S(()=>{_70();bx();L50();YM6();XM6();Pu();b2();N70();lM6();p3={set:(Y)=>{dM6=Y},create:async(Y,X)=>{return await dM6(Y,X)}},pM6={measure:async(Y,X)=>{return await X()}},Q71=["x-hub-signature-256"]});class nM6{db;constructor(Y){this.db=Y}async publishEvent(Y){let X=new Date().toISOString();return await this.db.insertInto("events").values({id:Y.id,organization_id:Y.organizationId,type:Y.type,source:Y.source,specversion:"1.0",subject:Y.subject??null,time:Y.time,datacontenttype:Y.datacontenttype??"application/json",dataschema:Y.dataschema??null,data:Y.data?JSON.stringify(Y.data):null,cron:Y.cron??null,status:"pending",attempts:0,last_error:null,next_retry_at:null,created_at:X,updated_at:X}).execute(),{id:Y.id,organizationId:Y.organizationId,type:Y.type,source:Y.source,specversion:"1.0",subject:Y.subject??null,time:Y.time,datacontenttype:Y.datacontenttype??"application/json",dataschema:Y.dataschema??null,data:Y.data??null,cron:Y.cron??null,status:"pending",attempts:0,lastError:null,nextRetryAt:null,createdAt:X,updatedAt:X}}async subscribe(Y){let X=this.db.selectFrom("event_subscriptions").selectAll().where("organization_id","=",Y.organizationId).where("connection_id","=",Y.connectionId).where("event_type","=",Y.eventType);if(Y.publisher)X=X.where("publisher","=",Y.publisher);else X=X.where("publisher","is",null);if(Y.filter)X=X.where("filter","=",Y.filter);else X=X.where("filter","is",null);let Q=await X.executeTakeFirst();if(Q)return{id:Q.id,organizationId:Q.organization_id,connectionId:Q.connection_id,publisher:Q.publisher,eventType:Q.event_type,filter:Q.filter,enabled:Q.enabled===1,createdAt:Q.created_at,updatedAt:Q.updated_at};let J=new Date().toISOString();return await this.db.insertInto("event_subscriptions").values({id:Y.id,organization_id:Y.organizationId,connection_id:Y.connectionId,publisher:Y.publisher??null,event_type:Y.eventType,filter:Y.filter??null,enabled:1,created_at:J,updated_at:J}).execute(),{id:Y.id,organizationId:Y.organizationId,connectionId:Y.connectionId,publisher:Y.publisher??null,eventType:Y.eventType,filter:Y.filter??null,enabled:!0,createdAt:J,updatedAt:J}}async unsubscribe(Y,X){return{success:((await this.db.deleteFrom("event_subscriptions").where("id","=",Y).where("organization_id","=",X).executeTakeFirst()).numDeletedRows??0n)>0n}}async listSubscriptions(Y,X){let Q=this.db.selectFrom("event_subscriptions").selectAll().where("organization_id","=",Y);if(X)Q=Q.where("connection_id","=",X);return(await Q.execute()).map((G)=>({id:G.id,organizationId:G.organization_id,connectionId:G.connection_id,publisher:G.publisher,eventType:G.event_type,filter:G.filter,enabled:G.enabled===1,createdAt:G.created_at,updatedAt:G.updated_at}))}async getSubscription(Y,X){let Q=await this.db.selectFrom("event_subscriptions").selectAll().where("id","=",Y).where("organization_id","=",X).executeTakeFirst();if(!Q)return null;return{id:Q.id,organizationId:Q.organization_id,connectionId:Q.connection_id,publisher:Q.publisher,eventType:Q.event_type,filter:Q.filter,enabled:Q.enabled===1,createdAt:Q.created_at,updatedAt:Q.updated_at}}async getMatchingSubscriptions(Y){return(await this.db.selectFrom("event_subscriptions").selectAll().where("organization_id","=",Y.organizationId).where("enabled","=",1).where("event_type","=",Y.type).where((Q)=>Q.or([Q("publisher","is",null),Q("publisher","=",Y.source)])).execute()).map((Q)=>({id:Q.id,organizationId:Q.organization_id,connectionId:Q.connection_id,publisher:Q.publisher,eventType:Q.event_type,filter:Q.filter,enabled:Q.enabled===1,createdAt:Q.created_at,updatedAt:Q.updated_at}))}async createDeliveries(Y,X,Q){if(X.length===0)return;let J=new Date().toISOString(),G=Q??null,K=X.map((W)=>({id:crypto.randomUUID(),event_id:Y,subscription_id:W,status:"pending",attempts:0,last_error:null,delivered_at:null,next_retry_at:G,created_at:J}));await this.db.insertInto("event_deliveries").values(K).execute()}async claimPendingDeliveries(Y){let X=new Date().toISOString(),Q;try{Q=(await this.db.updateTable("event_deliveries").set({status:"processing"}).where("id","in",(K)=>K.selectFrom("event_deliveries as d").innerJoin("event_subscriptions as s","s.id","d.subscription_id").select("d.id").where("d.status","=","pending").where("s.enabled","=",1).where((W)=>W.or([W("d.next_retry_at","is",null),W("d.next_retry_at","<=",X)])).orderBy("d.created_at","asc").limit(Y)).where("status","=","pending").returning(["id"]).execute()).map((K)=>K.id)}catch{let G=await this.db.selectFrom("event_deliveries as d").innerJoin("event_subscriptions as s","s.id","d.subscription_id").select(["d.id"]).where("d.status","=","pending").where("s.enabled","=",1).where((K)=>K.or([K("d.next_retry_at","is",null),K("d.next_retry_at","<=",X)])).orderBy("d.created_at","asc").limit(Y).execute();if(G.length===0)return[];Q=G.map((K)=>K.id),await this.db.updateTable("event_deliveries").set({status:"processing"}).where("id","in",Q).where("status","=","pending").execute()}if(Q.length===0)return[];return(await this.db.selectFrom("event_deliveries as d").innerJoin("events as e","e.id","d.event_id").innerJoin("event_subscriptions as s","s.id","d.subscription_id").select(["d.id as delivery_id","d.event_id","d.subscription_id","d.status as delivery_status","d.attempts as delivery_attempts","d.last_error as delivery_last_error","d.delivered_at","d.next_retry_at as delivery_next_retry_at","d.created_at as delivery_created_at","e.organization_id","e.type","e.source","e.specversion","e.subject","e.time","e.datacontenttype","e.dataschema","e.data","e.cron","e.status as event_status","e.attempts as event_attempts","e.last_error as event_last_error","e.next_retry_at","e.created_at as event_created_at","e.updated_at as event_updated_at","s.connection_id","s.publisher","s.event_type","s.filter","s.enabled","s.created_at as subscription_created_at","s.updated_at as subscription_updated_at"]).where("d.id","in",Q).where("d.status","=","processing").execute()).map((G)=>({delivery:{id:G.delivery_id,eventId:G.event_id,subscriptionId:G.subscription_id,status:G.delivery_status,attempts:G.delivery_attempts,lastError:G.delivery_last_error,deliveredAt:G.delivered_at,nextRetryAt:G.delivery_next_retry_at,createdAt:G.delivery_created_at},event:{id:G.event_id,organizationId:G.organization_id,type:G.type,source:G.source,specversion:G.specversion,subject:G.subject,time:G.time,datacontenttype:G.datacontenttype,dataschema:G.dataschema,data:G.data?JSON.parse(G.data):null,cron:G.cron,status:G.event_status,attempts:G.event_attempts,lastError:G.event_last_error,nextRetryAt:G.next_retry_at,createdAt:G.event_created_at,updatedAt:G.event_updated_at},subscription:{id:G.subscription_id,organizationId:G.organization_id,connectionId:G.connection_id,publisher:G.publisher,eventType:G.event_type,filter:G.filter,enabled:G.enabled===1,createdAt:G.subscription_created_at,updatedAt:G.subscription_updated_at}}))}async markDeliveriesDelivered(Y){if(Y.length===0)return;let X=new Date().toISOString();await this.db.updateTable("event_deliveries").set({status:"delivered",delivered_at:X}).where("id","in",Y).execute()}async markDeliveriesFailed(Y,X,Q=20,J=1000,G=3600000){if(Y.length===0)return;for(let K of Y){let W=await this.db.selectFrom("event_deliveries").select(["attempts"]).where("id","=",K).executeTakeFirst();if(!W)continue;let Z=W.attempts+1;if(Z>=Q)await this.db.updateTable("event_deliveries").set({attempts:Z,last_error:X,status:"failed",next_retry_at:null}).where("id","=",K).execute();else{let H=Math.min(J*Math.pow(2,Z-1),G),F=new Date(Date.now()+H).toISOString();await this.db.updateTable("event_deliveries").set({attempts:Z,last_error:X,status:"pending",next_retry_at:F}).where("id","=",K).execute()}}}async updateEventStatus(Y){let X=await this.db.selectFrom("event_deliveries").select(["status"]).where("event_id","=",Y).execute();if(X.length===0)return;let Q=X.every((K)=>K.status==="delivered"),J=X.some((K)=>K.status==="failed"),G=X.some((K)=>K.status==="pending"||K.status==="processing");if(Q)await this.db.updateTable("events").set({status:"delivered",updated_at:new Date().toISOString()}).where("id","=",Y).execute();else if(J&&!G)await this.db.updateTable("events").set({status:"failed",updated_at:new Date().toISOString()}).where("id","=",Y).execute()}async resetStuckDeliveries(){let Y=await this.db.updateTable("event_deliveries").set({status:"pending"}).where("status","=","processing").executeTakeFirst();return Number(Y.numUpdatedRows??0)}async getEvent(Y,X){let Q=await this.db.selectFrom("events").selectAll().where("id","=",Y).where("organization_id","=",X).executeTakeFirst();if(!Q)return null;return{id:Q.id,organizationId:Q.organization_id,type:Q.type,source:Q.source,specversion:Q.specversion,subject:Q.subject,time:Q.time,datacontenttype:Q.datacontenttype,dataschema:Q.dataschema,data:Q.data?JSON.parse(Q.data):null,cron:Q.cron,status:Q.status,attempts:Q.attempts,lastError:Q.last_error,nextRetryAt:Q.next_retry_at,createdAt:Q.created_at,updatedAt:Q.updated_at}}async findActiveCronEvent(Y,X,Q,J){let G=await this.db.selectFrom("events").selectAll().where("organization_id","=",Y).where("type","=",X).where("source","=",Q).where("cron","=",J).where("status","in",["pending","processing","delivered"]).orderBy("created_at","desc").executeTakeFirst();if(!G)return null;return{id:G.id,organizationId:G.organization_id,type:G.type,source:G.source,specversion:G.specversion,subject:G.subject,time:G.time,datacontenttype:G.datacontenttype,dataschema:G.dataschema,data:G.data?JSON.parse(G.data):null,cron:G.cron,status:G.status,attempts:G.attempts,lastError:G.last_error,nextRetryAt:G.next_retry_at,createdAt:G.created_at,updatedAt:G.updated_at}}async cancelEvent(Y,X,Q){let J=await this.db.updateTable("events").set({status:"failed",last_error:"Cancelled by publisher",updated_at:new Date().toISOString()}).where("id","=",Y).where("organization_id","=",X).where("source","=",Q).where("status","in",["pending","processing"]).executeTakeFirst();if((J.numUpdatedRows??0n)>0n)await this.db.updateTable("event_deliveries").set({status:"failed",last_error:"Event cancelled by publisher"}).where("event_id","=",Y).where("status","in",["pending","processing"]).execute();return{success:(J.numUpdatedRows??0n)>0n}}async scheduleRetryWithoutAttemptIncrement(Y,X){if(Y.length===0)return;let Q=new Date(Date.now()+X).toISOString();await this.db.updateTable("event_deliveries").set({status:"pending",next_retry_at:Q}).where("id","in",Y).execute()}async ackDelivery(Y,X,Q){if(!await this.db.selectFrom("events").select(["id"]).where("id","=",Y).where("organization_id","=",X).executeTakeFirst())return{success:!1};let K=((await this.db.updateTable("event_deliveries").set({status:"delivered",delivered_at:new Date().toISOString()}).where("event_id","=",Y).where("status","in",["pending","processing"]).where((W)=>W.exists(W.selectFrom("event_subscriptions").select("id").whereRef("event_subscriptions.id","=","event_deliveries.subscription_id").where("event_subscriptions.connection_id","=",Q).where("event_subscriptions.organization_id","=",X))).executeTakeFirst()).numUpdatedRows??0n)>0n;if(K)await this.updateEventStatus(Y);return{success:K}}async syncSubscriptions(Y){let{organizationId:X,connectionId:Q,subscriptions:J}=Y,G=(w,I)=>{return`${w}::${I??""}`},K=await this.listSubscriptions(X,Q),W=new Map;for(let w of K)W.set(G(w.eventType,w.publisher),w);let Z=new Map;for(let w of J)Z.set(G(w.eventType,w.publisher),w);let H=new Date().toISOString(),F=[],V=[],$=[],q=0;for(let[w,I]of Z){let T=W.get(w);if(!T)F.push({id:crypto.randomUUID(),organization_id:X,connection_id:Q,event_type:I.eventType,publisher:I.publisher??null,filter:I.filter??null,enabled:1,created_at:H,updated_at:H});else{let P=T.filter??null,A=I.filter??null;if(P!==A)V.push({id:T.id,filter:A});else q++}}for(let[w,I]of W)if(!Z.has(w))$.push(I.id);if(F.length>0)await this.db.insertInto("event_subscriptions").values(F).execute();if(V.length>0)await Promise.all(V.map((w)=>this.db.updateTable("event_subscriptions").set({filter:w.filter,updated_at:H}).where("id","=",w.id).execute()));if($.length>0)await this.db.deleteFrom("event_subscriptions").where("id","in",$).execute();let B=F.length,D=V.length,O=$.length,L=await this.listSubscriptions(X,Q);return{created:B,updated:D,deleted:O,unchanged:q,subscriptions:L}}}function iM6(Y){return new nM6(Y)}function IX(Y,X,Q,J,G,K,W,Z){return IX.fromTZ(IX.tp(Y,X,Q,J,G,K,W),Z)}function t70(Y,X=new Date){let Q=X.toLocaleString("en-US",{timeZone:Y,timeZoneName:"shortOffset"}).split(" ").slice(-1)[0],J=X.toLocaleString("en-US").replace(/[\u202f]/," ");return Date.parse(`${J} GMT`)-Date.parse(`${J} ${Q}`)}function J71(Y,X){let Q=new Date(Date.parse(Y));if(isNaN(Q))throw Error("minitz: Invalid ISO8601 passed to parser.");let J=Y.substring(9);return Y.includes("Z")||J.includes("-")||J.includes("+")?IX.tp(Q.getUTCFullYear(),Q.getUTCMonth()+1,Q.getUTCDate(),Q.getUTCHours(),Q.getUTCMinutes(),Q.getUTCSeconds(),"Etc/UTC"):IX.tp(Q.getFullYear(),Q.getMonth()+1,Q.getDate(),Q.getHours(),Q.getMinutes(),Q.getSeconds(),X)}function G71(Y){if(Y===void 0&&(Y={}),delete Y.name,Y.legacyMode=Y.legacyMode===void 0?!0:Y.legacyMode,Y.paused=Y.paused===void 0?!1:Y.paused,Y.maxRuns=Y.maxRuns===void 0?1/0:Y.maxRuns,Y.catch=Y.catch===void 0?!1:Y.catch,Y.interval=Y.interval===void 0?0:parseInt(Y.interval.toString(),10),Y.utcOffset=Y.utcOffset===void 0?void 0:parseInt(Y.utcOffset.toString(),10),Y.unref=Y.unref===void 0?!1:Y.unref,Y.startAt&&(Y.startAt=new g5(Y.startAt,Y.timezone)),Y.stopAt&&(Y.stopAt=new g5(Y.stopAt,Y.timezone)),Y.interval!==null){if(isNaN(Y.interval))throw Error("CronOptions: Supplied value for interval is not a number");if(Y.interval<0)throw Error("CronOptions: Supplied value for interval can not be negative")}if(Y.utcOffset!==void 0){if(isNaN(Y.utcOffset))throw Error("CronOptions: Invalid value passed for utcOffset, should be number representing minutes offset from UTC.");if(Y.utcOffset<-870||Y.utcOffset>870)throw Error("CronOptions: utcOffset out of bounds.");if(Y.utcOffset!==void 0&&Y.timezone)throw Error("CronOptions: Combining 'utcOffset' with 'timezone' is not allowed.")}if(Y.unref!==!0&&Y.unref!==!1)throw Error("CronOptions: Unref should be either true, false or undefined(false).");return Y}function x2(Y){return Object.prototype.toString.call(Y)==="[object Function]"||typeof Y=="function"||Y instanceof Function}function W71(Y){return x2(Y)}function Z71(Y){typeof Deno<"u"&&typeof Deno.unrefTimer<"u"?Deno.unrefTimer(Y):Y&&typeof Y.unref<"u"&&Y.unref()}var e70=32,u2,sM6,aM6=class{pattern;timezone;second;minute;hour;day;month;dayOfWeek;lastDayOfMonth;starDOM;starDOW;constructor(Y,X){this.pattern=Y,this.timezone=X,this.second=Array(60).fill(0),this.minute=Array(60).fill(0),this.hour=Array(24).fill(0),this.day=Array(31).fill(0),this.month=Array(12).fill(0),this.dayOfWeek=Array(7).fill(0),this.lastDayOfMonth=!1,this.starDOM=!1,this.starDOW=!1,this.parse()}parse(){if(!(typeof this.pattern=="string"||this.pattern instanceof String))throw TypeError("CronPattern: Pattern has to be of type string.");this.pattern.indexOf("@")>=0&&(this.pattern=this.handleNicknames(this.pattern).trim());let Y=this.pattern.replace(/\s+/g," ").split(" ");if(Y.length<5||Y.length>6)throw TypeError("CronPattern: invalid configuration format ('"+this.pattern+"'), exactly five or six space separated parts are required.");if(Y.length===5&&Y.unshift("0"),Y[3].indexOf("L")>=0&&(Y[3]=Y[3].replace("L",""),this.lastDayOfMonth=!0),Y[3]=="*"&&(this.starDOM=!0),Y[4].length>=3&&(Y[4]=this.replaceAlphaMonths(Y[4])),Y[5].length>=3&&(Y[5]=this.replaceAlphaDays(Y[5])),Y[5]=="*"&&(this.starDOW=!0),this.pattern.indexOf("?")>=0){let X=new g5(new Date,this.timezone).getDate(!0);Y[0]=Y[0].replace("?",X.getSeconds().toString()),Y[1]=Y[1].replace("?",X.getMinutes().toString()),Y[2]=Y[2].replace("?",X.getHours().toString()),this.starDOM||(Y[3]=Y[3].replace("?",X.getDate().toString())),Y[4]=Y[4].replace("?",(X.getMonth()+1).toString()),this.starDOW||(Y[5]=Y[5].replace("?",X.getDay().toString()))}this.throwAtIllegalCharacters(Y),this.partToArray("second",Y[0],0,1),this.partToArray("minute",Y[1],0,1),this.partToArray("hour",Y[2],0,1),this.partToArray("day",Y[3],-1,1),this.partToArray("month",Y[4],-1,1),this.partToArray("dayOfWeek",Y[5],0,u2),this.dayOfWeek[7]&&(this.dayOfWeek[0]=this.dayOfWeek[7])}partToArray(Y,X,Q,J){let G=this[Y],K=Y==="day"&&this.lastDayOfMonth;if(X===""&&!K)throw TypeError("CronPattern: configuration entry "+Y+" ("+X+") is empty, check for trailing spaces.");if(X==="*")return G.fill(J);let W=X.split(",");if(W.length>1)for(let Z=0;Z<W.length;Z++)this.partToArray(Y,W[Z],Q,J);else X.indexOf("-")!==-1&&X.indexOf("/")!==-1?this.handleRangeWithStepping(X,Y,Q,J):X.indexOf("-")!==-1?this.handleRange(X,Y,Q,J):X.indexOf("/")!==-1?this.handleStepping(X,Y,Q,J):X!==""&&this.handleNumber(X,Y,Q,J)}throwAtIllegalCharacters(Y){for(let X=0;X<Y.length;X++)if((X===5?/[^/*0-9,\-#L]+/:/[^/*0-9,-]+/).test(Y[X]))throw TypeError("CronPattern: configuration entry "+X+" ("+Y[X]+") contains illegal characters.")}handleNumber(Y,X,Q,J){let G=this.extractNth(Y,X),K=parseInt(G[0],10)+Q;if(isNaN(K))throw TypeError("CronPattern: "+X+" is not a number: '"+Y+"'");this.setPart(X,K,G[1]||J)}setPart(Y,X,Q){if(!Object.prototype.hasOwnProperty.call(this,Y))throw TypeError("CronPattern: Invalid part specified: "+Y);if(Y==="dayOfWeek"){if(X===7&&(X=0),X<0||X>6)throw RangeError("CronPattern: Invalid value for dayOfWeek: "+X);this.setNthWeekdayOfMonth(X,Q);return}if(Y==="second"||Y==="minute"){if(X<0||X>=60)throw RangeError("CronPattern: Invalid value for "+Y+": "+X)}else if(Y==="hour"){if(X<0||X>=24)throw RangeError("CronPattern: Invalid value for "+Y+": "+X)}else if(Y==="day"){if(X<0||X>=31)throw RangeError("CronPattern: Invalid value for "+Y+": "+X)}else if(Y==="month"&&(X<0||X>=12))throw RangeError("CronPattern: Invalid value for "+Y+": "+X);this[Y][X]=Q}handleRangeWithStepping(Y,X,Q,J){let G=this.extractNth(Y,X),K=G[0].match(/^(\d+)-(\d+)\/(\d+)$/);if(K===null)throw TypeError("CronPattern: Syntax error, illegal range with stepping: '"+Y+"'");let[,W,Z,H]=K,F=parseInt(W,10)+Q,V=parseInt(Z,10)+Q,$=parseInt(H,10);if(isNaN(F))throw TypeError("CronPattern: Syntax error, illegal lower range (NaN)");if(isNaN(V))throw TypeError("CronPattern: Syntax error, illegal upper range (NaN)");if(isNaN($))throw TypeError("CronPattern: Syntax error, illegal stepping: (NaN)");if($===0)throw TypeError("CronPattern: Syntax error, illegal stepping: 0");if($>this[X].length)throw TypeError("CronPattern: Syntax error, steps cannot be greater than maximum value of part ("+this[X].length+")");if(F>V)throw TypeError("CronPattern: From value is larger than to value: '"+Y+"'");for(let q=F;q<=V;q+=$)this.setPart(X,q,G[1]||J)}extractNth(Y,X){let Q=Y,J;if(Q.includes("#")){if(X!=="dayOfWeek")throw Error("CronPattern: nth (#) only allowed in day-of-week field");J=Q.split("#")[1],Q=Q.split("#")[0]}return[Q,J]}handleRange(Y,X,Q,J){let G=this.extractNth(Y,X),K=G[0].split("-");if(K.length!==2)throw TypeError("CronPattern: Syntax error, illegal range: '"+Y+"'");let W=parseInt(K[0],10)+Q,Z=parseInt(K[1],10)+Q;if(isNaN(W))throw TypeError("CronPattern: Syntax error, illegal lower range (NaN)");if(isNaN(Z))throw TypeError("CronPattern: Syntax error, illegal upper range (NaN)");if(W>Z)throw TypeError("CronPattern: From value is larger than to value: '"+Y+"'");for(let H=W;H<=Z;H++)this.setPart(X,H,G[1]||J)}handleStepping(Y,X,Q,J){let G=this.extractNth(Y,X),K=G[0].split("/");if(K.length!==2)throw TypeError("CronPattern: Syntax error, illegal stepping: '"+Y+"'");K[0]===""&&(K[0]="*");let W=0;K[0]!=="*"&&(W=parseInt(K[0],10)+Q);let Z=parseInt(K[1],10);if(isNaN(Z))throw TypeError("CronPattern: Syntax error, illegal stepping: (NaN)");if(Z===0)throw TypeError("CronPattern: Syntax error, illegal stepping: 0");if(Z>this[X].length)throw TypeError("CronPattern: Syntax error, max steps for part is ("+this[X].length+")");for(let H=W;H<this[X].length;H+=Z)this.setPart(X,H,G[1]||J)}replaceAlphaDays(Y){return Y.replace(/-sun/gi,"-7").replace(/sun/gi,"0").replace(/mon/gi,"1").replace(/tue/gi,"2").replace(/wed/gi,"3").replace(/thu/gi,"4").replace(/fri/gi,"5").replace(/sat/gi,"6")}replaceAlphaMonths(Y){return Y.replace(/jan/gi,"1").replace(/feb/gi,"2").replace(/mar/gi,"3").replace(/apr/gi,"4").replace(/may/gi,"5").replace(/jun/gi,"6").replace(/jul/gi,"7").replace(/aug/gi,"8").replace(/sep/gi,"9").replace(/oct/gi,"10").replace(/nov/gi,"11").replace(/dec/gi,"12")}handleNicknames(Y){let X=Y.trim().toLowerCase();return X==="@yearly"||X==="@annually"?"0 0 1 1 *":X==="@monthly"?"0 0 1 * *":X==="@weekly"?"0 0 * * 0":X==="@daily"?"0 0 * * *":X==="@hourly"?"0 * * * *":Y}setNthWeekdayOfMonth(Y,X){if(typeof X!="number"&&X==="L")this.dayOfWeek[Y]=this.dayOfWeek[Y]|e70;else if(X===u2)this.dayOfWeek[Y]=u2;else if(X<6&&X>0)this.dayOfWeek[Y]=this.dayOfWeek[Y]|sM6[X-1];else throw TypeError(`CronPattern: nth weekday out of range, should be 1-5 or L. Value: ${X}, Type: ${typeof X}`)}},rM6,UK,g5=class Y{tz;ms;second;minute;hour;day;month;year;constructor(X,Q){if(this.tz=Q,X&&X instanceof Date)if(!isNaN(X))this.fromDate(X);else throw TypeError("CronDate: Invalid date passed to CronDate constructor");else if(X===void 0)this.fromDate(new Date);else if(X&&typeof X=="string")this.fromString(X);else if(X instanceof Y)this.fromCronDate(X);else throw TypeError("CronDate: Invalid type ("+typeof X+") passed to CronDate constructor")}isNthWeekdayOfMonth(X,Q,J,G){let K=new Date(Date.UTC(X,Q,J)).getUTCDay(),W=0;for(let Z=1;Z<=J;Z++)new Date(Date.UTC(X,Q,Z)).getUTCDay()===K&&W++;if(G&u2&&sM6[W-1]&G)return!0;if(G&e70){let Z=new Date(Date.UTC(X,Q+1,0)).getUTCDate();for(let H=J+1;H<=Z;H++)if(new Date(Date.UTC(X,Q,H)).getUTCDay()===K)return!1;return!0}return!1}fromDate(X){if(this.tz!==void 0)if(typeof this.tz=="number")this.ms=X.getUTCMilliseconds(),this.second=X.getUTCSeconds(),this.minute=X.getUTCMinutes()+this.tz,this.hour=X.getUTCHours(),this.day=X.getUTCDate(),this.month=X.getUTCMonth(),this.year=X.getUTCFullYear(),this.apply();else{let Q=IX.toTZ(X,this.tz);this.ms=X.getMilliseconds(),this.second=Q.s,this.minute=Q.i,this.hour=Q.h,this.day=Q.d,this.month=Q.m-1,this.year=Q.y}else this.ms=X.getMilliseconds(),this.second=X.getSeconds(),this.minute=X.getMinutes(),this.hour=X.getHours(),this.day=X.getDate(),this.month=X.getMonth(),this.year=X.getFullYear()}fromCronDate(X){this.tz=X.tz,this.year=X.year,this.month=X.month,this.day=X.day,this.hour=X.hour,this.minute=X.minute,this.second=X.second,this.ms=X.ms}apply(){if(this.month>11||this.day>rM6[this.month]||this.hour>59||this.minute>59||this.second>59||this.hour<0||this.minute<0||this.second<0){let X=new Date(Date.UTC(this.year,this.month,this.day,this.hour,this.minute,this.second,this.ms));return this.ms=X.getUTCMilliseconds(),this.second=X.getUTCSeconds(),this.minute=X.getUTCMinutes(),this.hour=X.getUTCHours(),this.day=X.getUTCDate(),this.month=X.getUTCMonth(),this.year=X.getUTCFullYear(),!0}else return!1}fromString(X){if(typeof this.tz=="number"){let Q=IX.fromTZISO(X);this.ms=Q.getUTCMilliseconds(),this.second=Q.getUTCSeconds(),this.minute=Q.getUTCMinutes(),this.hour=Q.getUTCHours(),this.day=Q.getUTCDate(),this.month=Q.getUTCMonth(),this.year=Q.getUTCFullYear(),this.apply()}else return this.fromDate(IX.fromTZISO(X,this.tz))}findNext(X,Q,J,G){let K=this[Q],W;J.lastDayOfMonth&&(this.month!==1?W=rM6[this.month]:W=new Date(Date.UTC(this.year,this.month+1,0,0,0,0,0)).getUTCDate());let Z=!J.starDOW&&Q=="day"?new Date(Date.UTC(this.year,this.month,1,0,0,0,0)).getUTCDay():void 0;for(let H=this[Q]+G;H<J[Q].length;H++){let F=J[Q][H];if(Q==="day"&&J.lastDayOfMonth&&H-G==W&&(F=1),Q==="day"&&!J.starDOW){let V=J.dayOfWeek[(Z+(H-G-1))%7];if(V&&V&u2)V=this.isNthWeekdayOfMonth(this.year,this.month,H-G,V)?1:0;else if(V)throw Error(`CronDate: Invalid value for dayOfWeek encountered. ${V}`);X.legacyMode&&!J.starDOM?F=F||V:F=F&&V}if(F)return this[Q]=H-G,K!==this[Q]?2:1}return 3}recurse(X,Q,J){let G=this.findNext(Q,UK[J][0],X,UK[J][2]);if(G>1){let K=J+1;for(;K<UK.length;)this[UK[K][0]]=-UK[K][2],K++;if(G===3)return this[UK[J][1]]++,this[UK[J][0]]=-UK[J][2],this.apply(),this.recurse(X,Q,0);if(this.apply())return this.recurse(X,Q,J-1)}return J+=1,J>=UK.length?this:this.year>=3000?null:this.recurse(X,Q,J)}increment(X,Q,J){return this.second+=Q.interval!==void 0&&Q.interval>1&&J?Q.interval:1,this.ms=0,this.apply(),this.recurse(X,Q,0)}getDate(X){return X||this.tz===void 0?new Date(this.year,this.month,this.day,this.hour,this.minute,this.second,this.ms):typeof this.tz=="number"?new Date(Date.UTC(this.year,this.month,this.day,this.hour,this.minute-this.tz,this.second,this.ms)):IX.fromTZ(IX.tp(this.year,this.month+1,this.day,this.hour,this.minute,this.second,this.tz),!1)}getTime(){return this.getDate(!1).getTime()}},oM6=30000,vu,_u=class{name;options;_states;fn;constructor(Y,X,Q){let J,G;if(x2(X))G=X;else if(typeof X=="object")J=X;else if(X!==void 0)throw Error("Cron: Invalid argument passed for optionsIn. Should be one of function, or object (options).");if(x2(Q))G=Q;else if(typeof Q=="object")J=Q;else if(Q!==void 0)throw Error("Cron: Invalid argument passed for funcIn. Should be one of function, or object (options).");if(this.name=J?.name,this.options=G71(J),this._states={kill:!1,blocking:!1,previousRun:void 0,currentRun:void 0,once:void 0,currentTimeout:void 0,maxRuns:J?J.maxRuns:void 0,paused:J?J.paused:!1,pattern:new aM6("* * * * *")},Y&&(Y instanceof Date||typeof Y=="string"&&Y.indexOf(":")>0)?this._states.once=new g5(Y,this.options.timezone||this.options.utcOffset):this._states.pattern=new aM6(Y,this.options.timezone),this.name){if(vu.find((K)=>K.name===this.name))throw Error("Cron: Tried to initialize new named job '"+this.name+"', but name already taken.");vu.push(this)}return G!==void 0&&W71(G)&&(this.fn=G,this.schedule()),this}nextRun(Y){let X=this._next(Y);return X?X.getDate(!1):null}nextRuns(Y,X){this._states.maxRuns!==void 0&&Y>this._states.maxRuns&&(Y=this._states.maxRuns);let Q=[],J=X||this._states.currentRun||void 0;for(;Y--&&(J=this.nextRun(J));)Q.push(J);return Q}getPattern(){return this._states.pattern?this._states.pattern.pattern:void 0}isRunning(){let Y=this.nextRun(this._states.currentRun),X=!this._states.paused,Q=this.fn!==void 0,J=!this._states.kill;return X&&Q&&J&&Y!==null}isStopped(){return this._states.kill}isBusy(){return this._states.blocking}currentRun(){return this._states.currentRun?this._states.currentRun.getDate():null}previousRun(){return this._states.previousRun?this._states.previousRun.getDate():null}msToNext(Y){let X=this._next(Y);return X?Y instanceof g5||Y instanceof Date?X.getTime()-Y.getTime():X.getTime()-new g5(Y).getTime():null}stop(){this._states.kill=!0,this._states.currentTimeout&&clearTimeout(this._states.currentTimeout);let Y=vu.indexOf(this);Y>=0&&vu.splice(Y,1)}pause(){return this._states.paused=!0,!this._states.kill}resume(){return this._states.paused=!1,!this._states.kill}schedule(Y){if(Y&&this.fn)throw Error("Cron: It is not allowed to schedule two functions using the same Croner instance.");Y&&(this.fn=Y);let X=this.msToNext(),Q=this.nextRun(this._states.currentRun);return X==null||isNaN(X)||Q===null?this:(X>oM6&&(X=oM6),this._states.currentTimeout=setTimeout(()=>this._checkTrigger(Q),X),this._states.currentTimeout&&this.options.unref&&Z71(this._states.currentTimeout),this)}async _trigger(Y){if(this._states.blocking=!0,this._states.currentRun=new g5(void 0,this.options.timezone||this.options.utcOffset),this.options.catch)try{this.fn!==void 0&&await this.fn(this,this.options.context)}catch(X){x2(this.options.catch)&&this.options.catch(X,this)}else this.fn!==void 0&&await this.fn(this,this.options.context);this._states.previousRun=new g5(Y,this.options.timezone||this.options.utcOffset),this._states.blocking=!1}async trigger(){await this._trigger()}runsLeft(){return this._states.maxRuns}_checkTrigger(Y){let X=new Date,Q=!this._states.paused&&X.getTime()>=Y.getTime(),J=this._states.blocking&&this.options.protect;Q&&!J?(this._states.maxRuns!==void 0&&this._states.maxRuns--,this._trigger()):Q&&J&&x2(this.options.protect)&&setTimeout(()=>this.options.protect(this),0),this.schedule()}_next(Y){let X=!!(Y||this._states.currentRun),Q=!1;!Y&&this.options.startAt&&this.options.interval&&([Y,X]=this._calculatePreviousRun(Y,X),Q=!Y),Y=new g5(Y,this.options.timezone||this.options.utcOffset),this.options.startAt&&Y&&Y.getTime()<this.options.startAt.getTime()&&(Y=this.options.startAt);let J=this._states.once||new g5(Y,this.options.timezone||this.options.utcOffset);return!Q&&J!==this._states.once&&(J=J.increment(this._states.pattern,this.options,X)),this._states.once&&this._states.once.getTime()<=Y.getTime()||J===null||this._states.maxRuns!==void 0&&this._states.maxRuns<=0||this._states.kill||this.options.stopAt&&J.getTime()>=this.options.stopAt.getTime()?null:J}_calculatePreviousRun(Y,X){let Q=new g5(void 0,this.options.timezone||this.options.utcOffset),J=Y;if(this.options.startAt.getTime()<=Q.getTime()){J=this.options.startAt;let G=J.getTime()+this.options.interval*1000;for(;G<=Q.getTime();)J=new g5(J,this.options.timezone||this.options.utcOffset).increment(this._states.pattern,this.options,!0),G=J.getTime()+this.options.interval*1000;X=!0}return J===null&&(J=void 0),[J,X]}};var YW0=S(()=>{IX.fromTZISO=(Y,X,Q)=>IX.fromTZ(J71(Y,X),Q);IX.fromTZ=function(Y,X){let Q=new Date(Date.UTC(Y.y,Y.m-1,Y.d,Y.h,Y.i,Y.s)),J=t70(Y.tz,Q),G=new Date(Q.getTime()-J),K=t70(Y.tz,G);if(K-J===0)return G;{let W=new Date(Q.getTime()-K),Z=t70(Y.tz,W);if(Z-K===0)return W;if(!X&&Z-K>0)return W;if(X)throw Error("Invalid date passed to fromTZ()");return G}};IX.toTZ=function(Y,X){let Q=Y.toLocaleString("en-US",{timeZone:X}).replace(/[\u202f]/," "),J=new Date(Q);return{y:J.getFullYear(),m:J.getMonth()+1,d:J.getDate(),h:J.getHours(),i:J.getMinutes(),s:J.getSeconds(),tz:X}};IX.tp=(Y,X,Q,J,G,K,W)=>({y:Y,m:X,d:Q,h:J,i:G,s:K,tz:W});IX.minitz=IX;u2=31|e70,sM6=[1,2,4,8,16],rM6=[31,28,31,30,31,30,31,31,30,31,30,31],UK=[["month","year",0],["day","month",-1],["hour","day",0],["minute","hour",0],["second","minute",0]];vu=[]});var yu;var XW0=S(()=>{yu={pollIntervalMs:5000,batchSize:100,maxAttempts:20,retryDelayMs:1000,maxDelayMs:3600000}});function tM6(){return async(Y,X)=>{try{let Q=await p3.create(),J=await uM6(Y,Q),K=await PG0.forClient(J).ON_EVENTS({events:X});return{success:K.success,error:K.error,retryAfter:K.retryAfter,results:K.results}}catch(Q){let J=Q instanceof Error?Q.message:String(Q);return console.error(`[EventBus] Failed to notify connection ${Y}:`,J),{success:!1,error:J}}}}var eM6=S(()=>{Su();Wu();b2()});function YA6(Y){return{specversion:"1.0",id:Y.id,source:Y.source,type:Y.type,time:Y.time,subject:Y.subject??void 0,datacontenttype:Y.datacontenttype,dataschema:Y.dataschema??void 0,data:Y.data??void 0}}function K71(Y){let X=new Map;for(let J of Y){let G=J.subscription.connectionId,K=X.get(G);if(K){if(K.deliveryIds.push(J.delivery.id),!K.seenEventIds.has(J.event.id))K.seenEventIds.add(J.event.id),K.events.push(YA6(J.event))}else X.set(G,{connectionId:J.subscription.connectionId,deliveryIds:[J.delivery.id],events:[YA6(J.event)],seenEventIds:new Set([J.event.id])})}let Q=new Map;for(let[J,G]of X)Q.set(J,{connectionId:G.connectionId,deliveryIds:G.deliveryIds,events:G.events});return Q}class QW0{storage;notifySubscriber;running=!1;processing=!1;config;constructor(Y,X){this.storage=Y;this.notifySubscriber=tM6(),this.config={...yu,...X}}async start(){if(this.running)return;let Y=await this.storage.resetStuckDeliveries();if(Y>0)console.log(`[EventBus] Reset ${Y} stuck deliveries from previous shutdown`);this.running=!0}stop(){this.running=!1,console.log("[EventBus] Worker stopped")}isRunning(){return this.running}async processNow(){if(!this.running)return;if(this.processing)return;this.processing=!0;try{await this.processEvents()}catch(Y){console.error("[EventBus] Error processing events:",Y)}finally{this.processing=!1}}async processEvents(){let Y=await this.storage.claimPendingDeliveries(this.config.batchSize);if(Y.length===0)return;let X=K71(Y),Q=new Set;for(let[J,G]of X){try{let K=await this.notifySubscriber(G.connectionId,G.events);if(K.results&&Object.keys(K.results).length>0)await this.processPerEventResults(G,K);else if(K.success)await this.storage.markDeliveriesDelivered(G.deliveryIds);else if(K.retryAfter&&K.retryAfter>0)await this.storage.scheduleRetryWithoutAttemptIncrement(G.deliveryIds,K.retryAfter);else await this.storage.markDeliveriesFailed(G.deliveryIds,K.error||"Subscriber returned success=false",this.config.maxAttempts,this.config.retryDelayMs,this.config.maxDelayMs)}catch(K){let W=K instanceof Error?K.message:String(K);console.error(`[EventBus] Failed to notify subscription ${J}:`,W),await this.storage.markDeliveriesFailed(G.deliveryIds,W,this.config.maxAttempts,this.config.retryDelayMs,this.config.maxDelayMs)}for(let K of Y)if(G.deliveryIds.includes(K.delivery.id))Q.add(K.event.id)}for(let J of Q)try{await this.storage.updateEventStatus(J);let G=Y.find((K)=>K.event.id===J)?.event;if(G?.cron)await this.scheduleNextCronDelivery(G)}catch(G){console.error(`[EventBus] Failed to update event status ${J}:`,G)}}async processPerEventResults(Y,X){let Q=[],J=new Map,G=[],K=new Map;for(let W=0;W<Y.events.length;W++){let Z=Y.events?.[W];if(!Z)continue;let H=Y.deliveryIds?.[W];if(!H)continue;K.set(Z.id,H)}for(let W of Y.events){let Z=K.get(W.id);if(!Z)continue;let H=X.results?.[W.id];if(H)if(H.success)Q.push(Z);else if(H.retryAfter&&H.retryAfter>0){let F=J.get(H.retryAfter)||[];F.push(Z),J.set(H.retryAfter,F)}else G.push({deliveryId:Z,error:H.error||"Event processing failed"});else if(X.success)Q.push(Z);else if(X.retryAfter&&X.retryAfter>0){let F=J.get(X.retryAfter)||[];F.push(Z),J.set(X.retryAfter,F)}else G.push({deliveryId:Z,error:X.error||"Batch processing failed"})}if(Q.length>0)await this.storage.markDeliveriesDelivered(Q);for(let[W,Z]of J)await this.storage.scheduleRetryWithoutAttemptIncrement(Z,W);if(G.length>0){let W=new Map;for(let{deliveryId:Z,error:H}of G){let F=W.get(H)||[];F.push(Z),W.set(H,F)}for(let[Z,H]of W)await this.storage.markDeliveriesFailed(H,Z,this.config.maxAttempts,this.config.retryDelayMs,this.config.maxDelayMs)}}async scheduleNextCronDelivery(Y){if(!Y.cron)return;try{let Q=new _u(Y.cron).nextRun();if(!Q){console.log(`[EventBus] Cron expression for event ${Y.id} has no more runs`);return}let J=Q.toISOString(),G=await this.storage.getMatchingSubscriptions(Y);if(G.length===0){console.log(`[EventBus] No subscriptions for cron event ${Y.id}, skipping next delivery`);return}await this.storage.createDeliveries(Y.id,G.map((K)=>K.id),J),console.log(`[EventBus] Scheduled next cron delivery for event ${Y.id} at ${J}`)}catch(X){console.error(`[EventBus] Failed to schedule next cron delivery for event ${Y.id}:`,X)}}}var XA6=S(()=>{YW0();XW0();eM6()});class JW0{storage;worker;notifyStrategy;running=!1;constructor(Y){this.storage=Y.storage,this.notifyStrategy=Y.notifyStrategy,this.worker=new QW0(this.storage,Y.config)}async publish(Y,X,Q){if(Q.deliverAt&&Q.cron)throw Error("Cannot set both deliverAt and cron. Use one or the other.");let J;if(Q.cron){try{let V=new _u(Q.cron).nextRun();if(!V)throw Error("Cron expression does not produce a next run time");J=V.toISOString()}catch(F){throw Error(`Invalid cron expression: ${F instanceof Error?F.message:String(F)}`)}let H=await this.storage.findActiveCronEvent(Y,Q.type,X,Q.cron);if(H)return H}let G=crypto.randomUUID(),K=new Date().toISOString(),W=await this.storage.publishEvent({id:G,organizationId:Y,type:Q.type,source:X,subject:Q.subject,time:K,data:Q.data,cron:Q.cron}),Z=await this.storage.getMatchingSubscriptions(W);if(Z.length>0){let H=Q.deliverAt??J;if(await this.storage.createDeliveries(G,Z.map((F)=>F.id),H),this.notifyStrategy&&!H)await this.notifyStrategy.notify(G).catch((F)=>{console.warn("[EventBus] Notify failed (non-critical):",F)})}return W}async subscribe(Y,X){return this.storage.subscribe({id:crypto.randomUUID(),organizationId:Y,connectionId:X.connectionId,publisher:X.publisher,eventType:X.eventType,filter:X.filter})}async unsubscribe(Y,X){return this.storage.unsubscribe(X,Y)}async listSubscriptions(Y,X){return this.storage.listSubscriptions(Y,X)}async getSubscription(Y,X){return this.storage.getSubscription(X,Y)}async getEvent(Y,X){return this.storage.getEvent(X,Y)}async cancelEvent(Y,X,Q){return this.storage.cancelEvent(X,Y,Q)}async ackEvent(Y,X,Q){return this.storage.ackDelivery(X,Y,Q)}async syncSubscriptions(Y,X){return this.storage.syncSubscriptions({organizationId:Y,...X})}async start(){if(this.running)return;if(this.running=!0,await this.worker.start(),this.notifyStrategy)await this.notifyStrategy.start(()=>{this.worker.processNow().catch((Y)=>{console.error("[EventBus] Error processing after notify:",Y)})});await this.worker.processNow().catch((Y)=>{console.error("[EventBus] Error processing pending events on startup:",Y)})}async stop(){if(!this.running)return;if(this.running=!1,this.worker.stop(),this.notifyStrategy)try{await this.notifyStrategy.stop()}catch(Y){console.error("[EventBus] Error stopping notify strategy:",Y)}console.log("[EventBus] Stopped")}isRunning(){return this.running}}var QA6=S(()=>{YW0();XA6()});function JA6(...Y){return{async start(X){await Promise.all(Y.map((Q)=>Q.start(X)))},async stop(){await Promise.all(Y.map((X)=>X.stop().catch((Q)=>{console.error("[NotifyStrategy] Error stopping strategy:",Q)})))},async notify(X){await Promise.all(Y.map((Q)=>Q.notify(X).catch((J)=>{console.warn("[NotifyStrategy] Notify failed (non-critical):",J)})))}}}class fu{intervalMs;timer=null;onNotify=null;constructor(Y){this.intervalMs=Y}async start(Y){if(this.timer)return;this.onNotify=Y,this.scheduleNext(),console.log(`[Polling] Started polling every ${this.intervalMs}ms`)}async stop(){if(this.timer)clearTimeout(this.timer),this.timer=null,console.log("[Polling] Stopped polling");this.onNotify=null}async notify(Y){if(this.onNotify)this.onNotify()}scheduleNext(){this.timer=setTimeout(()=>{if(this.onNotify)this.onNotify();if(this.timer)this.scheduleNext()},this.intervalMs)}}import{sql as H71}from"kysely";class GW0{db;pool;listenClient=null;onNotify=null;constructor(Y,X){this.db=Y;this.pool=X}async start(Y){if(this.listenClient)return;this.onNotify=Y;try{this.listenClient=await this.pool.connect(),this.listenClient.on("notification",(X)=>{if(X.channel===VO&&this.onNotify)this.onNotify()}),this.listenClient.on("error",(X)=>{console.error("[PostgresNotify] Connection error:",X),this.cleanup()}),await this.listenClient.query(`LISTEN ${VO}`),console.log("[PostgresNotify] Started LISTEN on",VO)}catch(X){console.error("[PostgresNotify] Failed to start LISTEN:",X),this.cleanup()}}async stop(){if(this.listenClient){try{await this.listenClient.query(`UNLISTEN ${VO}`),console.log("[PostgresNotify] Stopped LISTEN on",VO)}catch{}this.cleanup()}}async notify(Y){try{await H71`SELECT pg_notify(${VO}, ${Y})`.execute(this.db)}catch(X){console.warn("[PostgresNotify] Failed to send NOTIFY:",X)}}cleanup(){if(this.listenClient)this.listenClient.release(),this.listenClient=null;this.onNotify=null}}var VO="mesh_events";var GA6=()=>{};function WA6(Y,X){let Q=iM6(Y.db),J=X?.pollIntervalMs??yu.pollIntervalMs,G=Y.type==="postgres"?JA6(new fu(J),new GW0(Y.db,Y.pool)):new fu(J);return new JW0({storage:Q,config:X,notifyStrategy:G})}var ZA6=S(()=>{QA6();XW0();GA6()});var KA6;var HA6=S(()=>{KA6={google:{name:"Google",icon:"https://assets.decocache.com/webdraw/eb7480aa-a68b-4ce4-98ff-36aa121762a7/google.svg"},github:{name:"GitHub",icon:"https://assets.decocache.com/webdraw/5f999dcb-c8a6-4572-948c-9996ef1d502f/github.svg"},microsoft:{name:"Microsoft",icon:"https://assets.decocache.com/mcp/aa6f6e1a-6526-4bca-99cc-82e2ec38b0e4/microsoft.png"}}});var FA6,VA6;var $A6=S(()=>{gG();ZO();HA6();FA6=new M9;FA6.get("/config",async(Y)=>{try{let X=Object.keys(w9.socialProviders??{}),Q=X.length>0,J=X.map((W)=>({name:W,icon:KA6[W].icon})),G=process.env.UNSAFE_ALLOW_STDIO_TRANSPORT==="true",K={emailAndPassword:{enabled:w9.emailAndPassword?.enabled??!1},magicLink:{enabled:w9.magicLinkConfig?.enabled??!1},socialProviders:{enabled:Q,providers:J},sso:w9.ssoConfig?{enabled:!0,providerId:w9.ssoConfig.providerId}:{enabled:!1},stdioEnabled:G};return Y.json({success:!0,config:K})}catch(X){let Q=X instanceof Error?X.message:"Failed to load auth config";return Y.json({success:!1,error:Q},500)}});VA6=FA6});function mG(Y){if(Y==null)return"unknown error";if(typeof Y==="string")return Y;if(Y instanceof Error)return Y.message;return JSON.stringify(Y)}var gA6="vercel.ai.error",F71,qA6,zA6,M6,mA6="AI_APICallError",lA6,V71,BA6,UA6,J9,dA6="AI_EmptyResponseBodyError",pA6,$71,DA6,OA6,cA6,nA6="AI_InvalidArgumentError",iA6,q71,NA6,LA6,aA6,rA6="AI_InvalidPromptError",oA6,z71,wA6,MA6,qq,sA6="AI_InvalidResponseDataError",tA6,B71,AA6,TA6,GP8,eA6="AI_JSONParseError",YT6,U71,PA6,EA6,g2,XT6="AI_LoadAPIKeyError",QT6,D71,CA6,IA6,WP8,JT6="AI_LoadSettingError",GT6,O71,RA6,jA6,ZP8,WT6="AI_NoContentGeneratedError",ZT6,N71,SA6,kA6,KP8,KT6="AI_NoSuchModelError",HT6,L71,vA6,_A6,HP8,FT6="AI_TooManyEmbeddingValuesForCallError",VT6,w71,yA6,fA6,FP8,$T6="AI_TypeValidationError",qT6,M71,hA6,bA6,rQ,zT6="AI_UnsupportedFunctionalityError",BT6,A71,xA6,uA6,UT6;var w1=S(()=>{F71=Symbol.for(gA6),M6=class Y extends(zA6=Error,qA6=F71,zA6){constructor({name:X,message:Q,cause:J}){super(Q);this[qA6]=!0,this.name=X,this.cause=J}static isInstance(X){return Y.hasMarker(X,gA6)}static hasMarker(X,Q){let J=Symbol.for(Q);return X!=null&&typeof X==="object"&&J in X&&typeof X[J]==="boolean"&&X[J]===!0}},lA6=`vercel.ai.error.${mA6}`,V71=Symbol.for(lA6),J9=class extends(UA6=M6,BA6=V71,UA6){constructor({message:Y,url:X,requestBodyValues:Q,statusCode:J,responseHeaders:G,responseBody:K,cause:W,isRetryable:Z=J!=null&&(J===408||J===409||J===429||J>=500),data:H}){super({name:mA6,message:Y,cause:W});this[BA6]=!0,this.url=X,this.requestBodyValues=Q,this.statusCode=J,this.responseHeaders=G,this.responseBody=K,this.isRetryable=Z,this.data=H}static isInstance(Y){return M6.hasMarker(Y,lA6)}},pA6=`vercel.ai.error.${dA6}`,$71=Symbol.for(pA6),cA6=class extends(OA6=M6,DA6=$71,OA6){constructor({message:Y="Empty response body"}={}){super({name:dA6,message:Y});this[DA6]=!0}static isInstance(Y){return M6.hasMarker(Y,pA6)}};iA6=`vercel.ai.error.${nA6}`,q71=Symbol.for(iA6),aA6=class extends(LA6=M6,NA6=q71,LA6){constructor({message:Y,cause:X,argument:Q}){super({name:nA6,message:Y,cause:X});this[NA6]=!0,this.argument=Q}static isInstance(Y){return M6.hasMarker(Y,iA6)}},oA6=`vercel.ai.error.${rA6}`,z71=Symbol.for(oA6),qq=class extends(MA6=M6,wA6=z71,MA6){constructor({prompt:Y,message:X,cause:Q}){super({name:rA6,message:`Invalid prompt: ${X}`,cause:Q});this[wA6]=!0,this.prompt=Y}static isInstance(Y){return M6.hasMarker(Y,oA6)}},tA6=`vercel.ai.error.${sA6}`,B71=Symbol.for(tA6),GP8=class extends(TA6=M6,AA6=B71,TA6){constructor({data:Y,message:X=`Invalid response data: ${JSON.stringify(Y)}.`}){super({name:sA6,message:X});this[AA6]=!0,this.data=Y}static isInstance(Y){return M6.hasMarker(Y,tA6)}},YT6=`vercel.ai.error.${eA6}`,U71=Symbol.for(YT6),g2=class extends(EA6=M6,PA6=U71,EA6){constructor({text:Y,cause:X}){super({name:eA6,message:`JSON parsing failed: Text: ${Y}.
|
|
1189
|
-
Error message: ${mG(X)}`,cause:X});this[PA6]=!0,this.text=Y}static isInstance(Y){return M6.hasMarker(Y,YT6)}},QT6=`vercel.ai.error.${XT6}`,D71=Symbol.for(QT6),
|
|
1188
|
+
`})}}}n51=[Ms({organizationCreation:{afterCreate:async(Y)=>{await vL6(Y.organization.id,Y.member.userId)}},ac:qu,creatorRole:"owner",allowUserToCreateOrganization:!0,dynamicAccessControl:{enabled:!0,maximumRolesPerOrganization:500,enableCustomResources:!0,allowedRolesToCreateResources:yL6,resourceNameValidation:(Y)=>{return{valid:/^[a-zA-Z0-9-_]+$/.test(Y)}}},roles:{user:d51,admin:p51,owner:c51},sendInvitationEmail:uL6}),ls({loginPage:"/login",oidcConfig:{scopes:xL6,metadata:{scopes_supported:xL6},loginPage:"/login"}}),ms({enableMetadata:!0,maximumNameLength:64,keyExpiration:{minExpiresIn:0.003472222222222222},enableSessionForAPIKeys:!0,customAPIKeyGetter:(Y)=>{if(Y.headers?.get("X-MCP-Session-Auth")==="true")return null;let Q=Y.headers?.get("Authorization");if(Q?.startsWith("Bearer "))return Q.replace("Bearer ","").trim();return null},permissions:{defaultPermissions:{self:["ORGANIZATION_LIST","ORGANIZATION_GET","ORGANIZATION_MEMBER_LIST","COLLECTION_CONNECTIONS_LIST","COLLECTION_CONNECTIONS_GET","API_KEY_CREATE","API_KEY_LIST"]}},rateLimit:{enabled:!1}}),Rs({defaultRole:"user",adminRoles:["admin","owner"]}),ns(),ks({jwt:{expirationTime:"5m"}}),fM0(w9.ssoConfig?fL6(w9.ssoConfig):void 0),...w9.magicLinkConfig&&w9.emailProviders&&w9.emailProviders.length>0?[cs(D36(w9.magicLinkConfig,w9.emailProviders))]:[]],i51=qX0(),a51=B36(i51),uG=Ao({baseURL:process.env.BASE_URL||"http://localhost:3000",database:a51,emailAndPassword:{enabled:!0},...w9,rateLimit:{enabled:process.env.DISABLE_RATE_LIMIT!=="true",window:60,max:1e4},plugins:n51,databaseHooks:{user:{create:{after:async(Y)=>{if(AM.autoCreateOrganizationOnSignup===!1)return;let X=Y.name?Y.name.split(" ")[0]:Y.email.split("@")[0],Q=3;for(let J=0;J<Q;J++){let G=`${X} ${g51()}`,K=u51(G);try{await uG.api.createOrganization({body:{name:G,slug:K,userId:Y.id}});return}catch(W){if(!(W instanceof Error&&("body"in W)&&W.body?.code==="ORGANIZATION_ALREADY_EXISTS")||J===Q-1){console.error("Failed to create default organization:",W);return}}}}}}}})});async function gL6(){console.log("\uD83D\uDD10 Running Better Auth migrations...");try{let{toBeAdded:Y,toBeCreated:X,runMigrations:Q}=await yL(uG.options);if(!Y.length&&!X.length){console.log("\u2705 Better Auth schema is up to date (no migrations needed)");return}console.log("\uD83D\uDCCB Better Auth will create/update the following tables:");for(let J of[...X,...Y])console.log(` - ${J.table}`);await Q(),console.log("\u2705 Better Auth migrations completed successfully")}catch(Y){console.warn("\u26A0\uFE0F Better Auth migration failed (tables may be created on first use):",Y)}}var mL6=S(()=>{z$0();ZO()});var pL6={};o6(pL6,{runSeed:()=>Zc,runKyselyMigrations:()=>dL6,migrateToLatest:()=>r51,migrateDown:()=>o51});import{Migrator as lL6}from"kysely";async function dL6(Y){let X=new lL6({db:Y,provider:{getMigrations:()=>Promise.resolve(wR)}}),{error:Q,results:J}=await X.migrateToLatest();if(J?.forEach((G)=>{if(G.status==="Success")console.log(`\u2705 Migration "${G.migrationName}" executed successfully`);else if(G.status==="Error")console.error(`\u274C Failed to execute migration "${G.migrationName}"`)}),Q)throw console.error("Failed to migrate"),console.error(Q),Q}async function r51(Y){let{keepOpen:X=!1,database:Q,skipBetterAuth:J=!1,seed:G}=Y??{};if(!J&&!Q)await gL6();let K=Q??v$(),W=async()=>{if(!X&&!Q)console.log("\uD83D\uDD12 Closing database connection..."),await U36(K).catch((Z)=>{console.warn("Warning: Error closing database:",Z)})};try{console.log("\uD83D\uDCCA Running Kysely migrations..."),await dL6(K.db),console.log("\uD83C\uDF89 All Kysely migrations completed successfully");let Z;if(G)Z=await Zc(K.db,G);return await W(),{seedResult:Z}}catch(Z){throw await W(),Z}}async function o51(){let Y=v$(),X=new lL6({db:Y.db,provider:{getMigrations:()=>Promise.resolve(wR)}}),{error:Q,results:J}=await X.migrateDown();if(J?.forEach((G)=>{if(G.status==="Success")console.log(`\u2705 Migration "${G.migrationName}" rolled back successfully`);else if(G.status==="Error")console.error(`\u274C Failed to rollback migration "${G.migrationName}"`)}),Q)throw console.error("Failed to rollback migration"),console.error(Q),Q}var cL6=S(()=>{Wc();E30();mL6();dT()});var l3;var C2=S(()=>{l3=class extends Error{res;status;constructor(Y=500,X){super(X?.message,{cause:X?.cause});this.res=X?.res,this.status=Y}getResponse(){if(this.res)return new Response(this.res.body,{status:this.status,headers:this.res.headers});return new Response(this.message,{status:this.status})}}});var nL6,s51,t51=(Y,X)=>{if(!Y)return{};let Q=new Headers(Y.headers);if(X){let J=Q.get("connection");if(J){let G=J.split(",").map((W)=>W.trim()),K=G.filter((W)=>!s51.test(W));if(K.length>0)throw new l3(400,{message:`Invalid Connection header value: ${K.join(", ")}`});G.forEach((W)=>{Q.delete(W)})}}return nL6.forEach((J)=>{Q.delete(J)}),{method:Y.method,body:Y.body,duplex:Y.body?"half":void 0,headers:Q,signal:Y.signal}},e51=(Y)=>{if(!Y.headers||Array.isArray(Y.headers)||Y.headers instanceof Headers)return Y;let X=new Headers;for(let[Q,J]of Object.entries(Y.headers))if(J==null)X.delete(Q);else X.set(Q,J);return Y.headers=X,Y},iL6=async(Y,X)=>{let{raw:Q,customFetch:J,strictConnectionProcessing:G=!1,...K}=X instanceof Request?{raw:X}:X??{},W=new Request(Y,{...t51(Q,G),...e51(K)});W.headers.delete("accept-encoding");let Z=await(J||fetch)(W),H=new Headers(Z.headers);if(nL6.forEach((F)=>{H.delete(F)}),H.has("content-encoding"))H.delete("content-encoding"),H.delete("content-length");return new Response(Z.body,{status:Z.status,statusText:Z.statusText,headers:H})};var aL6=S(()=>{C2();nL6=["connection","keep-alive","proxy-authenticate","proxy-authorization","te","trailer","transfer-encoding","upgrade"],s51=/^[!#$%&'*+\-.0-9A-Z^_`a-z|~]+$/});var rL6=(Y)=>(X)=>{let Q=new URL(X.req.raw.url),J=new URL(Y);return J.pathname=Q.pathname,J.search=Q.search,iL6(J,{raw:X.req.raw,headers:{...X.req.raw.headers}})};var oL6=S(()=>{aL6()});import{resolve as I2,dirname as YG1,join as XG1,extname as QG1}from"path";function WG1(Y,X){let Q=I2(X),J=I2(Y);return J===Q||J.startsWith(Q+"/")}function ZG1({requestPath:Y,clientDir:X}){let Q=Y.startsWith("/")?Y.slice(1):Y,J=I2(X,Q);if(!WG1(J,X))return null;return J}function sL6(Y,X="../client"){let Q=new URL(Y),J=YG1(Q.pathname);return I2(J,X)}function tL6(Y={}){let{env:X="production",devServerUrl:Q=JG1,clientDir:J=GG1,isServerPath:G=()=>!1}=Y;if(X==="development"){let K=rL6(Q);return async function(Z){let H=new URL(Z.url);if(G(H.pathname))return null;let F={req:{raw:Z,url:Z.url}};return K(F)}}return async function(W){if(W.method!=="GET")return null;let Z=new URL(W.url),H;try{H=decodeURIComponent(Z.pathname)}catch{return null}if(G(H))return null;let F=ZG1({requestPath:H,clientDir:J});if(!F)return null;let V=XG1(F,"index.html"),$=I2(J,"index.html"),q=W.headers.get("accept"),D=q?.includes("text/html")||q?.includes("*/*")&&["",".html"].includes(QG1(F))?[V,$]:[];for(let O of[F,...D])try{let L=Bun.file(O);if(await L.exists())return new Response(L)}catch{}return null}}var JG1="http://localhost:4000",GG1="./dist/client";var eL6=S(()=>{oL6()});function Xw6(Y){if(!Y)return!1;try{return new URL(Y).host==="api.decocms.com"&&Y!=="https://api.decocms.com/mcp/registry"}catch{return!1}}var Yw6="https://api.decocms.com/mcp/registry";var L70=(Y,X,Q)=>{return(J,G)=>{let K=-1;return W(0);async function W(Z){if(Z<=K)throw Error("next() called multiple times");K=Z;let H,F=!1,V;if(Y[Z])V=Y[Z][0][0],J.req.routeIndex=Z;else V=Z===Y.length&&G||void 0;if(V)try{H=await V(J,()=>W(Z+1))}catch($){if($ instanceof Error&&X)J.error=$,H=await X($,J),F=!0;else throw $}else if(J.finalized===!1&&Q)H=await Q(J);if(H&&(J.finalized===!1||F))J.res=H;return J}}};var Qw6=()=>{};var Jw6;var Gw6=S(()=>{Jw6=Symbol()});async function KG1(Y,X){let Q=await Y.formData();if(Q)return HG1(Q,X);return{}}function HG1(Y,X){let Q=Object.create(null);if(Y.forEach((J,G)=>{if(!(X.all||G.endsWith("[]")))Q[G]=J;else FG1(Q,G,J)}),X.dot)Object.entries(Q).forEach(([J,G])=>{if(J.includes("."))VG1(Q,J,G),delete Q[J]});return Q}var Ww6=async(Y,X=Object.create(null))=>{let{all:Q=!1,dot:J=!1}=X,K=(Y instanceof zu?Y.raw.headers:Y.headers).get("Content-Type");if(K?.startsWith("multipart/form-data")||K?.startsWith("application/x-www-form-urlencoded"))return KG1(Y,{all:Q,dot:J});return{}},FG1=(Y,X,Q)=>{if(Y[X]!==void 0)if(Array.isArray(Y[X]))Y[X].push(Q);else Y[X]=[Y[X],Q];else if(!X.endsWith("[]"))Y[X]=Q;else Y[X]=[Q]},VG1=(Y,X,Q)=>{let J=Y,G=X.split(".");G.forEach((K,W)=>{if(W===G.length-1)J[K]=Q;else{if(!J[K]||typeof J[K]!=="object"||Array.isArray(J[K])||J[K]instanceof File)J[K]=Object.create(null);J=J[K]}})};var Zw6=S(()=>{w70()});var A70=(Y)=>{let X=Y.split("/");if(X[0]==="")X.shift();return X},Kw6=(Y)=>{let{groups:X,path:Q}=$G1(Y),J=A70(Q);return qG1(J,X)},$G1=(Y)=>{let X=[];return Y=Y.replace(/\{[^}]+\}/g,(Q,J)=>{let G=`@${J}`;return X.push([G,Q]),G}),{groups:X,path:Y}},qG1=(Y,X)=>{for(let Q=X.length-1;Q>=0;Q--){let[J]=X[Q];for(let G=Y.length-1;G>=0;G--)if(Y[G].includes(J)){Y[G]=Y[G].replace(J,X[Q][1]);break}}return Y},Bu,Hw6=(Y,X)=>{if(Y==="*")return"*";let Q=Y.match(/^\:([^\{\}]+)(?:\{(.+)\})?$/);if(Q){let J=`${Y}#${X}`;if(!Bu[J])if(Q[2])Bu[J]=X&&X[0]!==":"&&X[0]!=="*"?[J,Q[1],new RegExp(`^${Q[2]}(?=/${X})`)]:[Y,Q[1],new RegExp(`^${Q[2]}$`)];else Bu[J]=[Y,Q[1],!0];return Bu[J]}return null},KO=(Y,X)=>{try{return X(Y)}catch{return Y.replace(/(?:%[0-9A-Fa-f]{2})+/g,(Q)=>{try{return X(Q)}catch{return Q}})}},zG1=(Y)=>KO(Y,decodeURI),T70=(Y)=>{let X=Y.url,Q=X.indexOf("/",X.indexOf(":")+4),J=Q;for(;J<X.length;J++){let G=X.charCodeAt(J);if(G===37){let K=X.indexOf("?",J),W=X.slice(Q,K===-1?void 0:K);return zG1(W.includes("%25")?W.replace(/%25/g,"%2525"):W)}else if(G===63)break}return X.slice(Q,J)},Fw6=(Y)=>{let X=T70(Y);return X.length>1&&X.at(-1)==="/"?X.slice(0,-1):X},Zq=(Y,X,...Q)=>{if(Q.length)X=Zq(X,...Q);return`${Y?.[0]==="/"?"":"/"}${Y}${X==="/"?"":`${Y?.at(-1)==="/"?"":"/"}${X?.[0]==="/"?X.slice(1):X}`}`},Uu=(Y)=>{if(Y.charCodeAt(Y.length-1)!==63||!Y.includes(":"))return null;let X=Y.split("/"),Q=[],J="";return X.forEach((G)=>{if(G!==""&&!/\:/.test(G))J+="/"+G;else if(/\:/.test(G))if(/\?/.test(G)){if(Q.length===0&&J==="")Q.push("/");else Q.push(J);let K=G.replace("?","");J+="/"+K,Q.push(J)}else J+="/"+G}),Q.filter((G,K,W)=>W.indexOf(G)===K)},M70=(Y)=>{if(!/[%+]/.test(Y))return Y;if(Y.indexOf("+")!==-1)Y=Y.replace(/\+/g," ");return Y.indexOf("%")!==-1?KO(Y,R2):Y},Vw6=(Y,X,Q)=>{let J;if(!Q&&X&&!/[%+]/.test(X)){let W=Y.indexOf("?",8);if(W===-1)return;if(!Y.startsWith(X,W+1))W=Y.indexOf(`&${X}`,W+1);while(W!==-1){let Z=Y.charCodeAt(W+X.length+1);if(Z===61){let H=W+X.length+2,F=Y.indexOf("&",H);return M70(Y.slice(H,F===-1?void 0:F))}else if(Z==38||isNaN(Z))return"";W=Y.indexOf(`&${X}`,W+1)}if(J=/[%+]/.test(Y),!J)return}let G={};J??=/[%+]/.test(Y);let K=Y.indexOf("?",8);while(K!==-1){let W=Y.indexOf("&",K+1),Z=Y.indexOf("=",K);if(Z>W&&W!==-1)Z=-1;let H=Y.slice(K+1,Z===-1?W===-1?void 0:W:Z);if(J)H=M70(H);if(K=W,H==="")continue;let F;if(Z===-1)F="";else if(F=Y.slice(Z+1,W===-1?void 0:W),J)F=M70(F);if(Q){if(!(G[H]&&Array.isArray(G[H])))G[H]=[];G[H].push(F)}else G[H]??=F}return X?G[X]:G},$w6,qw6=(Y,X)=>{return Vw6(Y,X,!0)},R2;var Kq=S(()=>{Bu={},$w6=Vw6,R2=decodeURIComponent});var zw6=(Y)=>KO(Y,R2),zu;var w70=S(()=>{C2();Gw6();Zw6();Kq();zu=class{raw;#Y;#X;routeIndex=0;path;bodyCache={};constructor(Y,X="/",Q=[[]]){this.raw=Y,this.path=X,this.#X=Q,this.#Y={}}param(Y){return Y?this.#Q(Y):this.#J()}#Q(Y){let X=this.#X[0][this.routeIndex][1][Y],Q=this.#W(X);return Q&&/\%/.test(Q)?zw6(Q):Q}#J(){let Y={},X=Object.keys(this.#X[0][this.routeIndex][1]);for(let Q of X){let J=this.#W(this.#X[0][this.routeIndex][1][Q]);if(J!==void 0)Y[Q]=/\%/.test(J)?zw6(J):J}return Y}#W(Y){return this.#X[1]?this.#X[1][Y]:Y}query(Y){return $w6(this.url,Y)}queries(Y){return qw6(this.url,Y)}header(Y){if(Y)return this.raw.headers.get(Y)??void 0;let X={};return this.raw.headers.forEach((Q,J)=>{X[J]=Q}),X}async parseBody(Y){return this.bodyCache.parsedBody??=await Ww6(this,Y)}#G=(Y)=>{let{bodyCache:X,raw:Q}=this,J=X[Y];if(J)return J;let G=Object.keys(X)[0];if(G)return X[G].then((K)=>{if(G==="json")K=JSON.stringify(K);return new Response(K)[Y]()});return X[Y]=Q[Y]()};json(){return this.#G("text").then((Y)=>JSON.parse(Y))}text(){return this.#G("text")}arrayBuffer(){return this.#G("arrayBuffer")}blob(){return this.#G("blob")}formData(){return this.#G("formData")}addValidatedData(Y,X){this.#Y[Y]=X}valid(Y){return this.#Y[Y]}get url(){return this.raw.url}get method(){return this.raw.method}get[Jw6](){return this.#X}get matchedRoutes(){return this.#X[0].map(([[,Y]])=>Y)}get routePath(){return this.#X[0].map(([[,Y]])=>Y)[this.routeIndex].path}}});var Du,BG1=(Y,X)=>{let Q=new String(Y);return Q.isEscaped=!0,Q.callbacks=X,Q},j2=async(Y,X,Q,J,G)=>{if(typeof Y==="object"&&!(Y instanceof String)){if(!(Y instanceof Promise))Y=Y.toString();if(Y instanceof Promise)Y=await Y}let K=Y.callbacks;if(!K?.length)return Promise.resolve(Y);if(G)G[0]+=Y;else G=[Y];let W=Promise.all(K.map((Z)=>Z({phase:X,buffer:G,context:J}))).then((Z)=>Promise.all(Z.filter(Boolean).map((H)=>j2(H,X,!1,J,G))).then(()=>G[0]));if(Q)return BG1(await W,K);else return W};var P70=S(()=>{Du={Stringify:1,BeforeStream:2,Stream:3}});var Bw6="text/plain; charset=UTF-8",E70=(Y,X)=>{return{"Content-Type":Y,...X}},Uw6=class{#Y;#X;env={};#Q;finalized=!1;error;#J;#W;#G;#K;#Z;#F;#H;#$;#q;constructor(Y,X){if(this.#Y=Y,X)this.#W=X.executionCtx,this.env=X.env,this.#F=X.notFoundHandler,this.#q=X.path,this.#$=X.matchResult}get req(){return this.#X??=new zu(this.#Y,this.#q,this.#$),this.#X}get event(){if(this.#W&&"respondWith"in this.#W)return this.#W;else throw Error("This context has no FetchEvent")}get executionCtx(){if(this.#W)return this.#W;else throw Error("This context has no ExecutionContext")}get res(){return this.#G||=new Response(null,{headers:this.#H??=new Headers})}set res(Y){if(this.#G&&Y){Y=new Response(Y.body,Y);for(let[X,Q]of this.#G.headers.entries()){if(X==="content-type")continue;if(X==="set-cookie"){let J=this.#G.headers.getSetCookie();Y.headers.delete("set-cookie");for(let G of J)Y.headers.append("set-cookie",G)}else Y.headers.set(X,Q)}}this.#G=Y,this.finalized=!0}render=(...Y)=>{return this.#Z??=(X)=>this.html(X),this.#Z(...Y)};setLayout=(Y)=>this.#K=Y;getLayout=()=>this.#K;setRenderer=(Y)=>{this.#Z=Y};header=(Y,X,Q)=>{if(this.finalized)this.#G=new Response(this.#G.body,this.#G);let J=this.#G?this.#G.headers:this.#H??=new Headers;if(X===void 0)J.delete(Y);else if(Q?.append)J.append(Y,X);else J.set(Y,X)};status=(Y)=>{this.#J=Y};set=(Y,X)=>{this.#Q??=new Map,this.#Q.set(Y,X)};get=(Y)=>{return this.#Q?this.#Q.get(Y):void 0};get var(){if(!this.#Q)return{};return Object.fromEntries(this.#Q)}#V(Y,X,Q){let J=this.#G?new Headers(this.#G.headers):this.#H??new Headers;if(typeof X==="object"&&"headers"in X){let K=X.headers instanceof Headers?X.headers:new Headers(X.headers);for(let[W,Z]of K)if(W.toLowerCase()==="set-cookie")J.append(W,Z);else J.set(W,Z)}if(Q)for(let[K,W]of Object.entries(Q))if(typeof W==="string")J.set(K,W);else{J.delete(K);for(let Z of W)J.append(K,Z)}let G=typeof X==="number"?X:X?.status??this.#J;return new Response(Y,{status:G,headers:J})}newResponse=(...Y)=>this.#V(...Y);body=(Y,X,Q)=>this.#V(Y,X,Q);text=(Y,X,Q)=>{return!this.#H&&!this.#J&&!X&&!Q&&!this.finalized?new Response(Y):this.#V(Y,X,E70(Bw6,Q))};json=(Y,X,Q)=>{return this.#V(JSON.stringify(Y),X,E70("application/json",Q))};html=(Y,X,Q)=>{let J=(G)=>this.#V(G,X,E70("text/html; charset=UTF-8",Q));return typeof Y==="object"?j2(Y,Du.Stringify,!1,{}).then(J):J(Y)};redirect=(Y,X)=>{let Q=String(Y);return this.header("Location",!/[^\x00-\xFF]/.test(Q)?Q:encodeURI(Q)),this.newResponse(null,X??302)};notFound=()=>{return this.#F??=()=>new Response,this.#F(this)}};var Ou=S(()=>{w70();P70()});var V8="ALL",Dw6="all",Ow6,Nu="Can not add a route since the matcher is already built.",Lu;var Hq=S(()=>{Ow6=["get","post","put","delete","options","patch"],Lu=class extends Error{}});var Nw6="__COMPOSED_HANDLER";var Lw6=()=>{};var UG1=(Y)=>{return Y.text("404 Not Found",404)},ww6=(Y,X)=>{if("getResponse"in Y){let Q=Y.getResponse();return X.newResponse(Q.body,Q)}return console.error(Y),X.text("Internal Server Error",500)},Mw6=class Y{get;post;put;delete;options;patch;all;on;use;router;getPath;_basePath="/";#Y="/";routes=[];constructor(X={}){[...Ow6,Dw6].forEach((K)=>{this[K]=(W,...Z)=>{if(typeof W==="string")this.#Y=W;else this.#J(K,this.#Y,W);return Z.forEach((H)=>{this.#J(K,this.#Y,H)}),this}}),this.on=(K,W,...Z)=>{for(let H of[W].flat()){this.#Y=H;for(let F of[K].flat())Z.map((V)=>{this.#J(F.toUpperCase(),this.#Y,V)})}return this},this.use=(K,...W)=>{if(typeof K==="string")this.#Y=K;else this.#Y="*",W.unshift(K);return W.forEach((Z)=>{this.#J(V8,this.#Y,Z)}),this};let{strict:J,...G}=X;Object.assign(this,G),this.getPath=J??!0?X.getPath??T70:Fw6}#X(){let X=new Y({router:this.router,getPath:this.getPath});return X.errorHandler=this.errorHandler,X.#Q=this.#Q,X.routes=this.routes,X}#Q=UG1;errorHandler=ww6;route(X,Q){let J=this.basePath(X);return Q.routes.map((G)=>{let K;if(Q.errorHandler===ww6)K=G.handler;else K=async(W,Z)=>(await L70([],Q.errorHandler)(W,()=>G.handler(W,Z))).res,K[Nw6]=G.handler;J.#J(G.method,G.path,K)}),this}basePath(X){let Q=this.#X();return Q._basePath=Zq(this._basePath,X),Q}onError=(X)=>{return this.errorHandler=X,this};notFound=(X)=>{return this.#Q=X,this};mount(X,Q,J){let G,K;if(J)if(typeof J==="function")K=J;else if(K=J.optionHandler,J.replaceRequest===!1)G=(H)=>H;else G=J.replaceRequest;let W=K?(H)=>{let F=K(H);return Array.isArray(F)?F:[F]}:(H)=>{let F=void 0;try{F=H.executionCtx}catch{}return[H.env,F]};G||=(()=>{let H=Zq(this._basePath,X),F=H==="/"?0:H.length;return(V)=>{let $=new URL(V.url);return $.pathname=$.pathname.slice(F)||"/",new Request($,V)}})();let Z=async(H,F)=>{let V=await Q(G(H.req.raw),...W(H));if(V)return V;await F()};return this.#J(V8,Zq(X,"*"),Z),this}#J(X,Q,J){X=X.toUpperCase(),Q=Zq(this._basePath,Q);let G={basePath:this._basePath,path:Q,method:X,handler:J};this.router.add(X,Q,[J,G]),this.routes.push(G)}#W(X,Q){if(X instanceof Error)return this.errorHandler(X,Q);throw X}#G(X,Q,J,G){if(G==="HEAD")return(async()=>new Response(null,await this.#G(X,Q,J,"GET")))();let K=this.getPath(X,{env:J}),W=this.router.match(G,K),Z=new Uw6(X,{path:K,matchResult:W,env:J,executionCtx:Q,notFoundHandler:this.#Q});if(W[0].length===1){let F;try{F=W[0][0][0][0](Z,async()=>{Z.res=await this.#Q(Z)})}catch(V){return this.#W(V,Z)}return F instanceof Promise?F.then((V)=>V||(Z.finalized?Z.res:this.#Q(Z))).catch((V)=>this.#W(V,Z)):F??this.#Q(Z)}let H=L70(W[0],this.errorHandler,this.#Q);return(async()=>{try{let F=await H(Z);if(!F.finalized)throw Error("Context is not finalized. Did you forget to return a Response object or `await next()`?");return F.res}catch(F){return this.#W(F,Z)}})()}fetch=(X,...Q)=>{return this.#G(X,Q[1],Q[0],X.method)};request=(X,Q,J,G)=>{if(X instanceof Request)return this.fetch(Q?new Request(X,Q):X,J,G);return X=X.toString(),this.fetch(new Request(/^https?:\/\//.test(X)?X:`http://localhost${Zq("/",X)}`,Q),J,G)};fire=()=>{addEventListener("fetch",(X)=>{X.respondWith(this.#G(X.request,X,void 0,X.request.method))})}};var Aw6=S(()=>{Qw6();Ou();Hq();Lw6();Kq()});function wu(Y,X){let Q=this.buildAllMatchers(),J=(G,K)=>{let W=Q[G]||Q[V8],Z=W[2][K];if(Z)return Z;let H=K.match(W[0]);if(!H)return[[],S2];let F=H.indexOf("",1);return[W[1][F],H]};return this.match=J,J(Y,X)}var S2;var C70=S(()=>{Hq();S2=[]});function OG1(Y,X){if(Y.length===1)return X.length===1?Y<X?-1:1:-1;if(X.length===1)return 1;if(Y===k2||Y===v2)return 1;else if(X===k2||X===v2)return-1;if(Y===Mu)return 1;else if(X===Mu)return-1;return Y.length===X.length?Y<X?-1:1:X.length-Y.length}var Mu="[^/]+",k2=".*",v2="(?:|/.*)",Fq,DG1,Tw6=class Y{#Y;#X;#Q=Object.create(null);insert(X,Q,J,G,K){if(X.length===0){if(this.#Y!==void 0)throw Fq;if(K)return;this.#Y=Q;return}let[W,...Z]=X,H=W==="*"?Z.length===0?["","",k2]:["","",Mu]:W==="/*"?["","",v2]:W.match(/^\:([^\{\}]+)(?:\{(.+)\})?$/),F;if(H){let V=H[1],$=H[2]||Mu;if(V&&H[2]){if($===".*")throw Fq;if($=$.replace(/^\((?!\?:)(?=[^)]+\)$)/,"(?:"),/\((?!\?:)/.test($))throw Fq}if(F=this.#Q[$],!F){if(Object.keys(this.#Q).some((q)=>q!==k2&&q!==v2))throw Fq;if(K)return;if(F=this.#Q[$]=new Y,V!=="")F.#X=G.varIndex++}if(!K&&V!=="")J.push([V,F.#X])}else if(F=this.#Q[W],!F){if(Object.keys(this.#Q).some((V)=>V.length>1&&V!==k2&&V!==v2))throw Fq;if(K)return;F=this.#Q[W]=new Y}F.insert(Z,Q,J,G,K)}buildRegExpStr(){let Q=Object.keys(this.#Q).sort(OG1).map((J)=>{let G=this.#Q[J];return(typeof G.#X==="number"?`(${J})@${G.#X}`:DG1.has(J)?`\\${J}`:J)+G.buildRegExpStr()});if(typeof this.#Y==="number")Q.unshift(`#${this.#Y}`);if(Q.length===0)return"";if(Q.length===1)return Q[0];return"(?:"+Q.join("|")+")"}};var I70=S(()=>{Fq=Symbol(),DG1=new Set(".\\+*[^]$()")});var Pw6=class{#Y={varIndex:0};#X=new Tw6;insert(Y,X,Q){let J=[],G=[];for(let W=0;;){let Z=!1;if(Y=Y.replace(/\{[^}]+\}/g,(H)=>{let F=`@\\${W}`;return G[W]=[F,H],W++,Z=!0,F}),!Z)break}let K=Y.match(/(?::[^\/]+)|(?:\/\*$)|./g)||[];for(let W=G.length-1;W>=0;W--){let[Z]=G[W];for(let H=K.length-1;H>=0;H--)if(K[H].indexOf(Z)!==-1){K[H]=K[H].replace(Z,G[W][1]);break}}return this.#X.insert(K,X,J,this.#Y,Q),J}buildRegExp(){let Y=this.#X.buildRegExpStr();if(Y==="")return[/^$/,[],[]];let X=0,Q=[],J=[];return Y=Y.replace(/#(\d+)|@(\d+)|\.\*\$/g,(G,K,W)=>{if(K!==void 0)return Q[++X]=Number(K),"$()";if(W!==void 0)return J[Number(W)]=++X,"";return""}),[new RegExp(`^${Y}`),Q,J]}};var Ew6=S(()=>{I70()});function Iw6(Y){return Cw6[Y]??=new RegExp(Y==="*"?"":`^${Y.replace(/\/\*$|([.\\+*[^\]$()])/g,(X,Q)=>Q?`\\${Q}`:"(?:|/.*)")}$`)}function LG1(){Cw6=Object.create(null)}function wG1(Y){let X=new Pw6,Q=[];if(Y.length===0)return NG1;let J=Y.map((F)=>[!/\*|\/:/.test(F[0]),...F]).sort(([F,V],[$,q])=>F?1:$?-1:V.length-q.length),G=Object.create(null);for(let F=0,V=-1,$=J.length;F<$;F++){let[q,B,D]=J[F];if(q)G[B]=[D.map(([L])=>[L,Object.create(null)]),S2];else V++;let O;try{O=X.insert(B,V,q)}catch(L){throw L===Fq?new Lu(B):L}if(q)continue;Q[V]=D.map(([L,w])=>{let I=Object.create(null);w-=1;for(;w>=0;w--){let[T,P]=O[w];I[T]=P}return[L,I]})}let[K,W,Z]=X.buildRegExp();for(let F=0,V=Q.length;F<V;F++)for(let $=0,q=Q[F].length;$<q;$++){let B=Q[F][$]?.[1];if(!B)continue;let D=Object.keys(B);for(let O=0,L=D.length;O<L;O++)B[D[O]]=Z[B[D[O]]]}let H=[];for(let F in W)H[F]=Q[W[F]];return[K,H,G]}function HO(Y,X){if(!Y)return;for(let Q of Object.keys(Y).sort((J,G)=>G.length-J.length))if(Iw6(Q).test(X))return[...Y[Q]];return}var NG1,Cw6,Au=class{name="RegExpRouter";#Y;#X;constructor(){this.#Y={[V8]:Object.create(null)},this.#X={[V8]:Object.create(null)}}add(Y,X,Q){let J=this.#Y,G=this.#X;if(!J||!G)throw Error(Nu);if(!J[Y])[J,G].forEach((Z)=>{Z[Y]=Object.create(null),Object.keys(Z[V8]).forEach((H)=>{Z[Y][H]=[...Z[V8][H]]})});if(X==="/*")X="*";let K=(X.match(/\/:/g)||[]).length;if(/\*$/.test(X)){let Z=Iw6(X);if(Y===V8)Object.keys(J).forEach((H)=>{J[H][X]||=HO(J[H],X)||HO(J[V8],X)||[]});else J[Y][X]||=HO(J[Y],X)||HO(J[V8],X)||[];Object.keys(J).forEach((H)=>{if(Y===V8||Y===H)Object.keys(J[H]).forEach((F)=>{Z.test(F)&&J[H][F].push([Q,K])})}),Object.keys(G).forEach((H)=>{if(Y===V8||Y===H)Object.keys(G[H]).forEach((F)=>Z.test(F)&&G[H][F].push([Q,K]))});return}let W=Uu(X)||[X];for(let Z=0,H=W.length;Z<H;Z++){let F=W[Z];Object.keys(G).forEach((V)=>{if(Y===V8||Y===V)G[V][F]||=[...HO(J[V],F)||HO(J[V8],F)||[]],G[V][F].push([Q,K-H+Z+1])})}}match=wu;buildAllMatchers(){let Y=Object.create(null);return Object.keys(this.#X).concat(Object.keys(this.#Y)).forEach((X)=>{Y[X]||=this.#Q(X)}),this.#Y=this.#X=void 0,LG1(),Y}#Q(Y){let X=[],Q=Y===V8;if([this.#Y,this.#X].forEach((J)=>{let G=J[Y]?Object.keys(J[Y]).map((K)=>[K,J[Y][K]]):[];if(G.length!==0)Q||=!0,X.push(...G);else if(Y!==V8)X.push(...Object.keys(J[V8]).map((K)=>[K,J[V8][K]]))}),!Q)return null;else return wG1(X)}};var R70=S(()=>{Hq();Kq();C70();I70();Ew6();NG1=[/^$/,[],Object.create(null)],Cw6=Object.create(null)});var MG1=class{name="PreparedRegExpRouter";#Y;#X;constructor(Y,X){this.#Y=Y,this.#X=X}#Q(Y,X){let Q=this.#Y[Y];Q[1].forEach((J)=>J&&J.push(X)),Object.values(Q[2]).forEach((J)=>J[0].push(X))}#J(Y,X,Q,J,G){let K=this.#Y[Y];if(!G)K[2][X][0].push([Q,{}]);else J.forEach((W)=>{if(typeof W==="number")K[1][W].push([Q,G]);else K[2][W||X][0].push([Q,G])})}add(Y,X,Q){if(!this.#Y[Y]){let G=this.#Y[V8],K={};for(let W in G[2])K[W]=[G[2][W][0].slice(),S2];this.#Y[Y]=[G[0],G[1].map((W)=>Array.isArray(W)?W.slice():0),K]}if(X==="/*"||X==="*"){let G=[Q,{}];if(Y===V8)for(let K in this.#Y)this.#Q(K,G);else this.#Q(Y,G);return}let J=this.#X[X];if(!J)throw Error(`Path ${X} is not registered`);for(let[G,K]of J)if(Y===V8)for(let W in this.#Y)this.#J(W,X,Q,G,K);else this.#J(Y,X,Q,G,K)}buildAllMatchers(){return this.#Y}match=wu};var Rw6=S(()=>{Hq();C70();R70()});var jw6=S(()=>{R70();Rw6()});var j70=class{name="SmartRouter";#Y=[];#X=[];constructor(Y){this.#Y=Y.routers}add(Y,X,Q){if(!this.#X)throw Error(Nu);this.#X.push([Y,X,Q])}match(Y,X){if(!this.#X)throw Error("Fatal error");let Q=this.#Y,J=this.#X,G=Q.length,K=0,W;for(;K<G;K++){let Z=Q[K];try{for(let H=0,F=J.length;H<F;H++)Z.add(...J[H]);W=Z.match(Y,X)}catch(H){if(H instanceof Lu)continue;throw H}this.match=Z.match.bind(Z),this.#Y=[Z],this.#X=void 0;break}if(K===G)throw Error("Fatal error");return this.name=`SmartRouter + ${this.activeRouter.name}`,W}get activeRouter(){if(this.#X||this.#Y.length!==1)throw Error("No active router has been determined yet.");return this.#Y[0]}};var Sw6=S(()=>{Hq()});var kw6=S(()=>{Sw6()});var _2,vw6=class Y{#Y;#X;#Q;#J=0;#W=_2;constructor(X,Q,J){if(this.#X=J||Object.create(null),this.#Y=[],X&&Q){let G=Object.create(null);G[X]={handler:Q,possibleKeys:[],score:0},this.#Y=[G]}this.#Q=[]}insert(X,Q,J){this.#J=++this.#J;let G=this,K=Kw6(Q),W=[];for(let Z=0,H=K.length;Z<H;Z++){let F=K[Z],V=K[Z+1],$=Hw6(F,V),q=Array.isArray($)?$[0]:F;if(q in G.#X){if(G=G.#X[q],$)W.push($[1]);continue}if(G.#X[q]=new Y,$)G.#Q.push($),W.push($[1]);G=G.#X[q]}return G.#Y.push({[X]:{handler:J,possibleKeys:W.filter((Z,H,F)=>F.indexOf(Z)===H),score:this.#J}}),G}#G(X,Q,J,G){let K=[];for(let W=0,Z=X.#Y.length;W<Z;W++){let H=X.#Y[W],F=H[Q]||H[V8],V={};if(F!==void 0){if(F.params=Object.create(null),K.push(F),J!==_2||G&&G!==_2)for(let $=0,q=F.possibleKeys.length;$<q;$++){let B=F.possibleKeys[$],D=V[F.score];F.params[B]=G?.[B]&&!D?G[B]:J[B]??G?.[B],V[F.score]=!0}}}return K}search(X,Q){let J=[];this.#W=_2;let K=[this],W=A70(Q),Z=[];for(let H=0,F=W.length;H<F;H++){let V=W[H],$=H===F-1,q=[];for(let B=0,D=K.length;B<D;B++){let O=K[B],L=O.#X[V];if(L)if(L.#W=O.#W,$){if(L.#X["*"])J.push(...this.#G(L.#X["*"],X,O.#W));J.push(...this.#G(L,X,O.#W))}else q.push(L);for(let w=0,I=O.#Q.length;w<I;w++){let T=O.#Q[w],P=O.#W===_2?{}:{...O.#W};if(T==="*"){let f=O.#X["*"];if(f)J.push(...this.#G(f,X,O.#W)),f.#W=P,q.push(f);continue}let[A,R,j]=T;if(!V&&!(j instanceof RegExp))continue;let v=O.#X[A],y=W.slice(H).join("/");if(j instanceof RegExp){let f=j.exec(y);if(f){if(P[R]=f[0],J.push(...this.#G(v,X,O.#W,P)),Object.keys(v.#X).length){v.#W=P;let h=f[0].match(/\//)?.length??0;(Z[h]||=[]).push(v)}continue}}if(j===!0||j.test(V))if(P[R]=V,$){if(J.push(...this.#G(v,X,P,O.#W)),v.#X["*"])J.push(...this.#G(v.#X["*"],X,P,O.#W))}else v.#W=P,q.push(v)}}K=q.concat(Z.shift()??[])}if(J.length>1)J.sort((H,F)=>{return H.score-F.score});return[J.map(({handler:H,params:F})=>[H,F])]}};var _w6=S(()=>{Hq();Kq();_2=Object.create(null)});var S70=class{name="TrieRouter";#Y;constructor(){this.#Y=new vw6}add(Y,X,Q){let J=Uu(X);if(J){for(let G=0,K=J.length;G<K;G++)this.#Y.insert(Y,J[G],Q);return}this.#Y.insert(Y,X,Q)}match(Y,X){return this.#Y.search(Y,X)}};var yw6=S(()=>{Kq();_w6()});var fw6=S(()=>{yw6()});var M9;var hw6=S(()=>{Aw6();jw6();kw6();fw6();M9=class extends Mw6{constructor(Y={}){super(Y);this.router=Y.router??new j70({routers:[new Au,new S70]})}}});var gG=S(()=>{hw6()});var AG1,TG1,k70=(Y,X)=>{if(X&&Y.indexOf(X)===-1)return{};let Q=Y.trim().split(";"),J={};for(let G of Q){G=G.trim();let K=G.indexOf("=");if(K===-1)continue;let W=G.substring(0,K).trim();if(X&&X!==W||!AG1.test(W))continue;let Z=G.substring(K+1).trim();if(Z.startsWith('"')&&Z.endsWith('"'))Z=Z.slice(1,-1);if(TG1.test(Z)){if(J[W]=Z.indexOf("%")!==-1?KO(Z,R2):Z,X)break}}return J};var bw6=S(()=>{Kq();AG1=/^[\w!#$%&'*.^`|~+-]+$/,TG1=/^[ !#-:<-[\]-~]*$/});var xw6=(Y,X,Q)=>{let J=Y.req.raw.headers.get("Cookie");if(typeof X==="string"){if(!J)return;let K=X;if(Q==="secure")K="__Secure-"+X;else if(Q==="host")K="__Host-"+X;return k70(J,K)[K]}if(!J)return{};return k70(J)};var uw6=S(()=>{bw6()});var gw6=(Y)=>{let Q={...{origin:"*",allowMethods:["GET","HEAD","PUT","POST","DELETE","PATCH"],allowHeaders:[],exposeHeaders:[]},...Y},J=((K)=>{if(typeof K==="string")if(K==="*")return()=>K;else return(W)=>K===W?W:null;else if(typeof K==="function")return K;else return(W)=>K.includes(W)?W:null})(Q.origin),G=((K)=>{if(typeof K==="function")return K;else if(Array.isArray(K))return()=>K;else return()=>[]})(Q.allowMethods);return async function(W,Z){function H(V,$){W.res.headers.set(V,$)}let F=await J(W.req.header("origin")||"",W);if(F)H("Access-Control-Allow-Origin",F);if(Q.credentials)H("Access-Control-Allow-Credentials","true");if(Q.exposeHeaders?.length)H("Access-Control-Expose-Headers",Q.exposeHeaders.join(","));if(W.req.method==="OPTIONS"){if(Q.origin!=="*")H("Vary","Origin");if(Q.maxAge!=null)H("Access-Control-Max-Age",Q.maxAge.toString());let V=await G(W.req.header("origin")||"",W);if(V.length)H("Access-Control-Allow-Methods",V.join(","));let $=Q.allowHeaders;if(!$?.length){let q=W.req.header("Access-Control-Request-Headers");if(q)$=q.split(/\s*,\s*/)}if($?.length)H("Access-Control-Allow-Headers",$.join(",")),W.res.headers.append("Vary","Access-Control-Request-Headers");return W.res.headers.delete("Content-Length"),W.res.headers.delete("Content-Type"),new Response(null,{headers:W.res.headers,status:204,statusText:"No Content"})}if(await Z(),Q.origin!=="*")W.header("Vary","Origin",{append:!0})}};var mw6=()=>{};function PG1(){let{process:Y,Deno:X}=globalThis;return!(typeof X?.noColor==="boolean"?X.noColor:Y!==void 0?"NO_COLOR"in Y?.env:!1)}async function lw6(){let{navigator:Y}=globalThis,X="cloudflare:workers";return!(Y!==void 0&&Y.userAgent==="Cloudflare-Workers"?await(async()=>{try{return"NO_COLOR"in((await import("cloudflare:workers")).env??{})}catch{return!1}})():!PG1())}var dw6=()=>{};async function pw6(Y,X,Q,J,G=0,K){let W=X==="<--"?`${X} ${Q} ${J}`:`${X} ${Q} ${J} ${await IG1(G)} ${K}`;Y(W)}var EG1=(Y)=>{let[X,Q]=[",","."];return Y.map((G)=>G.replace(/(\d)(?=(\d\d\d)+(?!\d))/g,"$1"+X)).join(Q)},CG1=(Y)=>{let X=Date.now()-Y;return EG1([X<1000?X+"ms":Math.round(X/1000)+"s"])},IG1=async(Y)=>{if(await lw6())switch(Y/100|0){case 5:return`\x1B[31m${Y}\x1B[0m`;case 4:return`\x1B[33m${Y}\x1B[0m`;case 3:return`\x1B[36m${Y}\x1B[0m`;case 2:return`\x1B[32m${Y}\x1B[0m`}return`${Y}`},cw6=(Y=console.log)=>{return async function(Q,J){let{method:G,url:K}=Q.req,W=K.slice(K.indexOf("/",8));await pw6(Y,"<--",G,W);let Z=Date.now();await J(),await pw6(Y,"-->",G,W,Q.res.status,CG1(Z))}};var nw6=S(()=>{dw6()});var iw6=()=>{try{return performance.now()}catch{}return Date.now()},v70=(Y)=>{let X={total:!0,enabled:!0,totalDescription:"Total Response Time",autoEnd:!0,crossOrigin:!1,...Y};return async function(J,G){let K=[],W=new Map;if(J.get("metric"))return await G();if(J.set("metric",{headers:K,timers:W}),X.total)FO(J,"total",X.totalDescription);if(await G(),X.total)Vq(J,"total");if(X.autoEnd)W.forEach((H,F)=>Vq(J,F));if(typeof X.enabled==="function"?X.enabled(J):X.enabled){J.res.headers.append("Server-Timing",K.join(","));let H=typeof X.crossOrigin==="function"?X.crossOrigin(J):X.crossOrigin;if(H)J.res.headers.append("Timing-Allow-Origin",typeof H==="string"?H:"*")}}},aw6=(Y,X,Q,J,G)=>{let K=Y.get("metric");if(!K){console.warn("Metrics not initialized! Please add the `timing()` middleware to this route!");return}if(typeof Q==="number"){let W=Q.toFixed(G||1),Z=J?`${X};dur=${W};desc="${J}"`:`${X};dur=${W}`;K.headers.push(Z)}else{let W=Q?`${X};desc="${Q}"`:`${X}`;K.headers.push(W)}},FO=(Y,X,Q)=>{let J=Y.get("metric");if(!J){console.warn("Metrics not initialized! Please add the `timing()` middleware to this route!");return}J.timers.set(X,{description:Q,start:iw6()})},Vq=(Y,X,Q)=>{let J=Y.get("metric");if(!J){console.warn("Metrics not initialized! Please add the `timing()` middleware to this route!");return}let G=J.timers.get(X);if(!G){console.warn(`Timer "${X}" does not exist!`);return}let{description:K,start:W}=G,Z=iw6()-W;aw6(Y,X,Z,K,Q),J.timers.delete(X)};var rw6=S(()=>{Ou()});var ow6=S(()=>{rw6()});import{randomBytes as RG1}from"crypto";function sw6(){if(y2)return y2;let Y=process.env.MESH_JWT_SECRET??w9.jwt?.secret??process.env.BETTER_AUTH_SECRET;if(Y)y2=new TextEncoder().encode(Y);else console.warn("MESH_JWT_SECRET not set - generating random secret (not persistent)"),y2=new Uint8Array(RG1(32));return y2}async function tw6(Y,X="5m"){let Q=sw6();return await new NQ(Y).setProtectedHeader({alg:"HS256",typ:"JWT"}).setIssuedAt().setExpirationTime(X).sign(Q)}async function ew6(Y){try{let X=sw6(),{payload:Q}=await O8(Y,X);return Q}catch{return}}var y2=null;var _70=S(()=>{QJ();ZO()});class y70{db;constructor(Y){this.db=Y}async create(Y,X,Q){let J=L9("vir"),G=new Date().toISOString();if(await this.db.insertInto("connections").values({id:J,organization_id:Y,created_by:X,title:Q.title,description:Q.description??null,icon:Q.icon??null,app_name:null,app_id:null,connection_type:"VIRTUAL",connection_url:`virtual://${J}`,connection_token:null,connection_headers:null,oauth_config:null,configuration_state:null,configuration_scopes:null,metadata:Q.metadata?JSON.stringify(Q.metadata):null,tools:null,bindings:null,status:Q.status??"active",created_at:G,updated_at:G}).execute(),Q.connections.length>0)await this.db.insertInto("connection_aggregations").values(Q.connections.map((W)=>({id:L9("agg"),parent_connection_id:J,child_connection_id:W.connection_id,selected_tools:W.selected_tools?JSON.stringify(W.selected_tools):null,selected_resources:W.selected_resources?JSON.stringify(W.selected_resources):null,selected_prompts:W.selected_prompts?JSON.stringify(W.selected_prompts):null,created_at:G}))).execute();let K=await this.findById(J);if(!K)throw Error(`Failed to create virtual MCP with id: ${J}`);return K}async findById(Y){return this.findByIdInternal(this.db,Y)}async findByIdInternal(Y,X){let Q=await Y.selectFrom("connections").selectAll().where("id","=",X).where("connection_type","=","VIRTUAL").executeTakeFirst();if(!Q)return null;let J=await Y.selectFrom("connection_aggregations").selectAll().where("parent_connection_id","=",X).execute();return this.deserializeVirtualMCPEntity(Q,J)}async list(Y){let X=await this.db.selectFrom("connections").selectAll().where("organization_id","=",Y).where("connection_type","=","VIRTUAL").execute(),Q=X.map((K)=>K.id);if(Q.length===0)return[];let J=await this.db.selectFrom("connection_aggregations").selectAll().where("parent_connection_id","in",Q).execute(),G=new Map;for(let K of J){let W=G.get(K.parent_connection_id)??[];W.push(K),G.set(K.parent_connection_id,W)}return X.map((K)=>this.deserializeVirtualMCPEntity(K,G.get(K.id)??[]))}async listByConnectionId(Y,X){let J=(await this.db.selectFrom("connection_aggregations").select("parent_connection_id").where("child_connection_id","=",X).execute()).map((H)=>H.parent_connection_id);if(J.length===0)return[];let G=await this.db.selectFrom("connections").selectAll().where("id","in",J).where("organization_id","=",Y).where("connection_type","=","VIRTUAL").execute();if(G.length===0)return[];let K=G.map((H)=>H.id),W=await this.db.selectFrom("connection_aggregations").selectAll().where("parent_connection_id","in",K).execute(),Z=new Map;for(let H of W){let F=Z.get(H.parent_connection_id)??[];F.push(H),Z.set(H.parent_connection_id,F)}return G.map((H)=>this.deserializeVirtualMCPEntity(H,Z.get(H.id)??[]))}async update(Y,X,Q){let J=new Date().toISOString(),G={updated_at:J};if(Q.title!==void 0)G.title=Q.title;if(Q.description!==void 0)G.description=Q.description;if(Q.icon!==void 0)G.icon=Q.icon;if(Q.status!==void 0)G.status=Q.status;if(Q.metadata!==void 0)G.metadata=Q.metadata?JSON.stringify(Q.metadata):null;if(await this.db.updateTable("connections").set(G).where("id","=",Y).where("connection_type","=","VIRTUAL").execute(),Q.connections!==void 0){if(await this.db.deleteFrom("connection_aggregations").where("parent_connection_id","=",Y).execute(),Q.connections.length>0)await this.db.insertInto("connection_aggregations").values(Q.connections.map((W)=>({id:L9("agg"),parent_connection_id:Y,child_connection_id:W.connection_id,selected_tools:W.selected_tools?JSON.stringify(W.selected_tools):null,selected_resources:W.selected_resources?JSON.stringify(W.selected_resources):null,selected_prompts:W.selected_prompts?JSON.stringify(W.selected_prompts):null,created_at:J}))).execute()}let K=await this.findById(Y);if(!K)throw Error("Virtual MCP not found after update");return K}async delete(Y){await this.db.deleteFrom("connection_aggregations").where("parent_connection_id","=",Y).execute(),await this.db.deleteFrom("connections").where("id","=",Y).where("connection_type","=","VIRTUAL").execute()}deserializeVirtualMCPEntity(Y,X){let Q=Y.created_at instanceof Date?Y.created_at.toISOString():Y.created_at,J=Y.updated_at instanceof Date?Y.updated_at.toISOString():Y.updated_at,G=Y.status==="active"?"active":"inactive";return{id:Y.id,organization_id:Y.organization_id,title:Y.title,description:Y.description,tool_selection_mode:"inclusion",icon:Y.icon,status:G,created_at:Q,updated_at:J,created_by:Y.created_by,updated_by:void 0,metadata:this.parseJson(Y.metadata),connections:X.map((K)=>({connection_id:K.child_connection_id,selected_tools:this.parseJson(K.selected_tools),selected_resources:this.parseJson(K.selected_resources),selected_prompts:this.parseJson(K.selected_prompts)}))}}parseJson(Y){if(Y===null)return null;if(typeof Y==="string")try{return JSON.parse(Y)}catch{return null}return Y}}var YM6=S(()=>{KK()});class f70{patterns=[{type:"email",regex:/[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}/g},{type:"api_key",regex:/(?:api[_-]?key|token|secret|password|bearer)\s*[:=]\s*['"]?[\w-]{16,}['"]?/gi},{type:"jwt",regex:/eyJ[A-Za-z0-9-_]+\.eyJ[A-Za-z0-9-_]+\.[A-Za-z0-9-_.+/=]*/g},{type:"credit_card",regex:/\b\d{4}[- ]?\d{4}[- ]?\d{4}[- ]?\d{4}\b/g},{type:"ssn",regex:/\b\d{3}-\d{2}-\d{4}\b/g}];redact(Y){if(Y===null||Y===void 0)return Y;if(typeof Y==="string")return this.redactString(Y);if(Array.isArray(Y))return Y.map((X)=>this.redact(X));if(typeof Y==="object"){let X={};for(let[Q,J]of Object.entries(Y)){let G=this.redactString(Q);X[G]=this.redact(J)}return X}return Y}redactString(Y){let X=Y;for(let Q of this.patterns)X=X.replace(Q.regex,`[REDACTED:${Q.type}]`);return X}}import{sql as Tu}from"kysely";class h70{db;redactor;databaseType;constructor(Y,X="sqlite"){this.db=Y;this.redactor=new f70,this.databaseType=X}jsonExtract(Y,X){if(this.databaseType==="postgres")return Tu`(${Tu.ref(Y)}::jsonb)->>${X}`;let Q=`$.${X}`;return Tu`json_extract(${Tu.ref(Y)}, ${Q})`}async log(Y){await this.logBatch([Y])}async logBatch(Y){if(Y.length===0)return;let X=Y.map((Q)=>({...Q,input:this.redactor.redact(Q.input),output:this.redactor.redact(Q.output)}));await this.db.transaction().execute(async(Q)=>{await Q.insertInto("monitoring_logs").values(X.map((J)=>this.toDbRow(J))).execute()})}async query(Y){let X=this.db.selectFrom("monitoring_logs").selectAll(),Q=this.db.selectFrom("monitoring_logs").select((Z)=>Z.fn.count("id").as("count"));if(Y.organizationId)X=X.where("organization_id","=",Y.organizationId),Q=Q.where("organization_id","=",Y.organizationId);if(Y.connectionId)X=X.where("connection_id","=",Y.connectionId),Q=Q.where("connection_id","=",Y.connectionId);if(Y.virtualMcpId)X=X.where("virtual_mcp_id","=",Y.virtualMcpId),Q=Q.where("virtual_mcp_id","=",Y.virtualMcpId);if(Y.toolName)X=X.where("tool_name","=",Y.toolName),Q=Q.where("tool_name","=",Y.toolName);if(Y.isError!==void 0)X=X.where("is_error","=",Y.isError?1:0),Q=Q.where("is_error","=",Y.isError?1:0);if(Y.startDate)X=X.where("timestamp",">=",Y.startDate.toISOString()),Q=Q.where("timestamp",">=",Y.startDate.toISOString());if(Y.endDate)X=X.where("timestamp","<=",Y.endDate.toISOString()),Q=Q.where("timestamp","<=",Y.endDate.toISOString());if(Y.propertyFilters){let{properties:Z,propertyKeys:H,propertyPatterns:F}=Y.propertyFilters;if(Z)for(let[V,$]of Object.entries(Z)){let q=this.jsonExtract("properties",V);X=X.where(q,"=",$),Q=Q.where(q,"=",$)}if(H&&H.length>0)for(let V of H){let $=this.jsonExtract("properties",V);X=X.where($,"is not",null),Q=Q.where($,"is not",null)}if(F)for(let[V,$]of Object.entries(F)){let q=this.jsonExtract("properties",V),B=this.databaseType==="postgres"?"ilike":"like";X=X.where(q,B,$),Q=Q.where(q,B,$)}}if(X=X.orderBy("timestamp","desc"),Y.limit)X=X.limit(Y.limit);if(Y.offset)X=X.offset(Y.offset);let[J,G]=await Promise.all([X.execute(),Q.executeTakeFirst()]),K=Number(G?.count||0);return{logs:J.map((Z)=>this.fromDbRow(Z)),total:K}}async getStats(Y){let X=this.db.selectFrom("monitoring_logs").where("organization_id","=",Y.organizationId);if(Y.startDate)X=X.where("timestamp",">=",Y.startDate.toISOString());if(Y.endDate)X=X.where("timestamp","<=",Y.endDate.toISOString());let Q=await X.select([(W)=>W.fn.count("id").as("total_count"),(W)=>W.fn.sum(W.ref("is_error")).as("error_count"),(W)=>W.fn.avg("duration_ms").as("avg_duration")]).executeTakeFirst(),J=Number(Q?.total_count||0),G=Number(Q?.error_count||0),K=Number(Q?.avg_duration||0);return{totalCalls:J,errorRate:J>0?G/J:0,avgDurationMs:K}}toDbRow(Y){return{id:Y.id||L9("log"),organization_id:Y.organizationId,connection_id:Y.connectionId,connection_title:Y.connectionTitle,tool_name:Y.toolName,input:JSON.stringify(Y.input),output:JSON.stringify(Y.output),is_error:Y.isError?1:0,error_message:Y.errorMessage||null,duration_ms:Y.durationMs,timestamp:Y.timestamp instanceof Date?Y.timestamp.toISOString():Y.timestamp,user_id:Y.userId||null,request_id:Y.requestId,user_agent:Y.userAgent||null,virtual_mcp_id:Y.virtualMcpId||null,properties:Y.properties?JSON.stringify(Y.properties):null}}fromDbRow(Y){let X=typeof Y.input==="string"?JSON.parse(Y.input):Y.input,Q=typeof Y.output==="string"?JSON.parse(Y.output):Y.output,J=typeof Y.timestamp==="string"?new Date(Y.timestamp):Y.timestamp,G=Y.properties?typeof Y.properties==="string"?JSON.parse(Y.properties):Y.properties:null;return{id:Y.id,organizationId:Y.organization_id,connectionId:Y.connection_id,connectionTitle:Y.connection_title,toolName:Y.tool_name,input:X,output:Q,isError:Y.is_error===1,errorMessage:Y.error_message,durationMs:Y.duration_ms,timestamp:J,userId:Y.user_id,requestId:Y.request_id,userAgent:Y.user_agent,virtualMcpId:Y.virtual_mcp_id,properties:G}}}var XM6=S(()=>{KK()});class b70{db;constructor(Y){this.db=Y}async get(Y){let X=await this.db.selectFrom("organization_settings").selectAll().where("organizationId","=",Y).executeTakeFirst();if(!X)return null;return{organizationId:X.organizationId,sidebar_items:X.sidebar_items?typeof X.sidebar_items==="string"?JSON.parse(X.sidebar_items):X.sidebar_items:null,enabled_plugins:X.enabled_plugins?typeof X.enabled_plugins==="string"?JSON.parse(X.enabled_plugins):X.enabled_plugins:null,createdAt:X.createdAt,updatedAt:X.updatedAt}}async upsert(Y,X){let Q=new Date().toISOString(),J=X?.sidebar_items?JSON.stringify(X.sidebar_items):null,G=X?.enabled_plugins?JSON.stringify(X.enabled_plugins):null;await this.db.insertInto("organization_settings").values({organizationId:Y,sidebar_items:J,enabled_plugins:G,createdAt:Q,updatedAt:Q}).onConflict((W)=>W.column("organizationId").doUpdateSet({sidebar_items:J?J:void 0,enabled_plugins:G?G:void 0,updatedAt:Q})).execute();let K=await this.get(Y);if(!K)return{organizationId:Y,sidebar_items:X?.sidebar_items??null,enabled_plugins:X?.enabled_plugins??null,createdAt:Q,updatedAt:Q};return K}}class x70{db;constructor(Y){this.db=Y}async findById(Y,X){let Q=await this.db.selectFrom("user").select(["user.id","user.name","user.email","user.image","user.createdAt","user.updatedAt"]).where("user.id","=",Y).where((J)=>J.exists(J.selectFrom("member as m1").innerJoin("member as m2","m1.organizationId","m2.organizationId").select("m1.id").where("m1.userId","=",Y).where("m2.userId","=",X))).executeTakeFirst();if(!Q)return null;return{id:Q.id,name:Q.name,email:Q.email,role:"",createdAt:Q.createdAt,updatedAt:Q.updatedAt,image:Q.image??void 0}}}var QM6="mcp.mesh";var JM6,u70,d3;var Pu=S(()=>{JM6=class JM6 extends Error{constructor(Y){super(Y);this.name="UnauthorizedError"}};u70=class u70 extends Error{constructor(Y){super(Y);this.name="ForbiddenError"}};d3=class d3{userId;toolName;boundAuth;role;connectionId;getToolMeta;_granted=!1;constructor(Y,X,Q,J,G,K="self",W){this.userId=X;this.toolName=Q;this.boundAuth=J;this.role=G;this.connectionId=K;this.getToolMeta=W}[Symbol.dispose](){this._granted=!1}setToolName(Y){this.toolName=Y}grant(){return this._granted=!0,{[Symbol.dispose]:()=>{this._granted=!1}}}async check(...Y){if(this._granted)return;if(this.toolName?.startsWith("MESH_PUBLIC_")){this.grant();return}if(!this.userId&&!this.boundAuth){if(this.getToolMeta&&await this.isToolPublic()){this.grant();return}throw new JM6("Authentication required. Please provide a valid OAuth token or API key.")}let X=Y.length>0?Y:this.toolName?[this.toolName]:[];if(X.length===0)throw new u70("No resources specified for access check");for(let Q of X)if(await this.checkResource(Q)){this.grant();return}throw new u70(`Access denied to: ${X.join(", ")}`)}async checkResource(Y){if(!this.userId&&!this.boundAuth)return!1;if(this.role==="admin"||this.role==="owner")return!0;if(!this.boundAuth)return!1;let X={};if(this.connectionId)X[this.connectionId]=[Y];return this.boundAuth.hasPermission(X)}async isToolPublic(){if(this.toolName?.startsWith("MESH_PUBLIC_"))return!0;if(!this.getToolMeta)return!1;try{let Y=await this.getToolMeta();if(!Y)return!1;let Q=Y[QM6]?.public_tool;return Q===!0||Q==="true"}catch{return!1}}granted(){return this._granted}}});function GM6(Y){let X=null;return()=>{if(X)return X;return X=Y().catch((Q)=>{throw X=null,Q}),X}}class WM6{factory;promise=null;constructor(Y){this.factory=Y}getOrCreatePromise(){if(!this.promise)this.promise=this.factory();return this.promise}then(Y,X){return this.getOrCreatePromise().then(Y,X)}catch(Y){return this.getOrCreatePromise().catch(Y)}finally(Y){return this.getOrCreatePromise().finally(Y)}}function RW(Y){return new WM6(Y)}class g70{proxies;options;cache;constructor(Y,X){this.proxies=Y;this.options=X;this.cache=RW(()=>this.loadPrompts())}async loadPrompts(){let Y=await this.proxies.mapSettled(async(G,K)=>{try{let Z=(await G.proxy.client.listPrompts()).prompts;if(this.options.selectionMode==="exclusion"){if(G.selectedPrompts&&G.selectedPrompts.length>0){let H=new Set(G.selectedPrompts);Z=Z.filter((F)=>!H.has(F.name))}}else if(!G.selectedPrompts||G.selectedPrompts.length===0)Z=[];else{let H=new Set(G.selectedPrompts);Z=Z.filter((F)=>H.has(F.name))}return{connectionId:K,prompts:Z}}catch(W){return console.error(`[PromptAggregator] Failed to list prompts for connection ${K}:`,W),{connectionId:K,prompts:[]}}}),X=new Set,Q=[],J=new Map;for(let G of Y){if(G.status!=="fulfilled")continue;let{connectionId:K,prompts:W}=G.value;for(let Z of W){if(X.has(Z.name))continue;X.add(Z.name),Q.push(Z),J.set(Z.name,K)}}return{prompts:Q,mappings:J}}async list(){return{prompts:(await this.cache).prompts}}async get(Y){let Q=(await this.cache).mappings.get(Y.name);if(!Q)throw Error(`Prompt not found: ${Y.name}`);let J=this.proxies.get(Q);if(!J)throw Error(`Connection not found for prompt: ${Y.name}`);return await J.proxy.client.getPrompt(Y)}}var ZM6=()=>{};function jG1(Y,X){if(Y===X)return!0;if(!X.includes("*"))return!1;let Q=X.replace(/[.+?^${}()|[\]\\]/g,"\\$&").replace(/\*\*/g,"<<<DOUBLE_STAR>>>").replace(/\*/g,"[^/]*").replace(/<<<DOUBLE_STAR>>>/g,".*");Q=`^${Q}$`;try{return new RegExp(Q).test(Y)}catch{return!1}}function KM6(Y,X){return X.some((Q)=>jG1(Y,Q))}class m70{proxies;options;cache;constructor(Y,X){this.proxies=Y;this.options=X;this.cache=RW(()=>this.loadResources())}async loadResources(){let Y=await this.proxies.mapSettled(async(G,K)=>{try{let Z=(await G.proxy.client.listResources()).resources;if(this.options.selectionMode==="exclusion"){if(G.selectedResources&&G.selectedResources.length>0)Z=Z.filter((H)=>!KM6(H.uri,G.selectedResources))}else if(!G.selectedResources||G.selectedResources.length===0)Z=[];else Z=Z.filter((H)=>KM6(H.uri,G.selectedResources));return{connectionId:K,resources:Z}}catch(W){if(!(W instanceof K6)||W.code!==q6.MethodNotFound)console.error(`[aggregator] Failed to list resources for connection ${K}: (defaulting to empty array)`,W);return{connectionId:K,resources:[]}}}),X=new Set,Q=[],J=new Map;for(let G of Y){if(G.status!=="fulfilled")continue;let{connectionId:K,resources:W}=G.value;for(let Z of W){if(X.has(Z.uri))continue;X.add(Z.uri),Q.push(Z),J.set(Z.uri,K)}}return{resources:Q,mappings:J}}async list(){return{resources:(await this.cache).resources}}async read(Y){let Q=(await this.cache).mappings.get(Y.uri);if(!Q)throw Error(`Resource not found: ${Y.uri}`);let J=this.proxies.get(Q);if(!J)throw Error(`Connection not found for resource: ${Y.uri}`);return await J.proxy.client.readResource(Y)}}var HM6=S(()=>{p9()});class l70{proxies;cache;constructor(Y){this.proxies=Y;this.cache=RW(()=>this.loadResourceTemplates())}async loadResourceTemplates(){let Y=await this.proxies.mapSettled(async(Q,J)=>{try{let G=await Q.proxy.client.listResourceTemplates();return{connectionId:J,templates:G.resourceTemplates}}catch(G){if(!(G instanceof K6)||G.code!==q6.MethodNotFound)console.error(`[aggregator] Failed to list resource templates for connection ${J}: (defaulting to empty array)`,G);return{connectionId:J,templates:[]}}}),X=[];for(let Q of Y){if(Q.status!=="fulfilled")continue;let{templates:J}=Q.value;for(let G of J)X.push(G)}return{templates:X}}async list(){return{resourceTemplates:(await this.cache).templates}}}var FM6=S(()=>{p9()});function _G1(Y){let X=Y.slice().sort().join(","),Q=VM6.get(X);if(!Q){let J=z.object({name:(Y.length>0?z.enum(Y):z.string()).describe("The name of the tool to execute"),arguments:z.record(z.string(),z.unknown()).default({}).describe("Arguments to pass to the tool")});Q={schema:J,jsonSchema:z.toJSONSchema(J)},VM6.set(X,Q)}return Q}function BM6(Y){let X=G2(Y.tools);return{tool:{name:"GATEWAY_SEARCH_TOOLS",description:`Search for available tools by name or description. Returns tool names and brief descriptions without full schemas. Use this to discover tools before calling GATEWAY_DESCRIBE_TOOLS for detailed schemas.${Y.categories.length>0?` Available categories: ${Y.categories.join(", ")}.`:""} Total tools: ${X.length}.`,inputSchema:SG1},handler:async(J)=>{let G=$M6.safeParse(J);if(!G.success)return QO({error:G.error.flatten()});let K=sx(G.data.query,X,G.data.limit);return Yu({query:G.data.query,results:K.map((W)=>({name:W.name,description:W.description,connection:W._meta.connectionTitle})),totalAvailable:X.length})}}}function UM6(Y){let X=G2(Y.tools);return{tool:{name:"GATEWAY_DESCRIBE_TOOLS",description:"Get detailed schemas for specific tools. Call after GATEWAY_SEARCH_TOOLS to get full input/output schemas.",inputSchema:kG1},handler:async(Q)=>{let J=qM6.safeParse(Q);if(!J.success)return QO({error:J.error.flatten()});let G=tx(J.data.tools,X);return Yu({tools:G.tools,notFound:G.notFound})}}}function yG1(Y){let X=G2(Y.tools),Q=X.map((W)=>W.name),J=new Map(X.map((W)=>[W.name,W])),{schema:G,jsonSchema:K}=_G1(Q);return{tool:{name:"GATEWAY_CALL_TOOL",description:"Execute a tool by name. Use GATEWAY_DESCRIBE_TOOLS first to understand the input schema.",inputSchema:K},handler:async(W)=>{let Z=G.safeParse(W);if(!Z.success)return QO({error:Z.error.flatten()});let{name:H,arguments:F}=Z.data;if(!J.has(H))return{content:[{type:"text",text:`Tool not found: ${H}. Use GATEWAY_SEARCH_TOOLS to find available tools.`}],isError:!0};return Y.callTool(H,F)}}}function fG1(Y){let X=G2(Y.tools);return{tool:{name:"GATEWAY_RUN_CODE",description:'Run JavaScript code in a sandbox. Code must be an ES module that `export default`s an async function that receives (tools) as its first parameter. Use GATEWAY_DESCRIBE_TOOLS to understand the input/output schemas for a tool before calling it. Use `await tools.toolName(args)` or `await tools["tool-name"](args)` to call tools.',inputSchema:vG1},handler:async(Q)=>{let J=zM6.safeParse(Q);if(!J.success)return QO({error:J.error.flatten()});let G={...Y,tools:X},K=await ex(J.data.code,G,J.data.timeoutMs);if(K.error)return QO(K);return Yu(K)}}}function DM6(Y){let X=new Map(Y.map((J)=>[J.tool.name,J.handler])),Q=Y.map((J)=>J.tool.name);return{tools:Y.map((J)=>J.tool),callTool:async(J,G)=>{let K=X.get(J);if(!K)return{content:[{type:"text",text:`Unknown meta-tool: ${J}. Available: ${Q.join(", ")}`}],isError:!0};return K(G)}}}function OM6(Y){switch(Y){case"smart_tool_selection":return xG1;case"code_execution":return bG1;case"passthrough":default:return hG1}}function NM6(Y){switch(Y){case"smart_tool_selection":return"smart_tool_selection";case"code_execution":return"code_execution";case"passthrough":default:return"passthrough"}}var $M6,SG1,qM6,kG1,zM6,vG1,VM6,hG1=(Y)=>({tools:Y.tools,callTool:(X,Q)=>Y.callTool(X,Q)}),bG1=(Y)=>DM6([BM6(Y),UM6(Y),fG1(Y)]),xG1=(Y)=>DM6([BM6(Y),UM6(Y),yG1(Y)]);var d70=S(()=>{s0();W2();$M6=z.object({query:z.string().min(1).describe("Search query to find tools by name or description"),limit:z.number().default(10).describe("Maximum number of results to return")}),SG1=z.toJSONSchema($M6),qM6=z.object({tools:z.array(z.string()).min(1).describe("Array of tool names to get detailed schemas for")}),kG1=z.toJSONSchema(qM6),zM6=z.object({code:z.string().min(1).describe("JavaScript code to execute. It runs as an async function body; you can use top-level `return` and `await`."),timeoutMs:z.number().default(3000).describe("Max execution time in milliseconds (default: 3000).")}),vG1=z.toJSONSchema(zM6),VM6=new Map});class p70{proxies;options;cache;constructor(Y,X){this.proxies=Y;this.options=X;this.cache=RW(()=>this.loadTools())}async loadTools(){let Y=await this.proxies.mapSettled(async(H,F)=>{try{let $=(await H.proxy.client.listTools()).tools;if(this.options.selectionMode==="exclusion"){if(H.selectedTools&&H.selectedTools.length>0){let q=new Set(H.selectedTools);$=$.filter((B)=>!q.has(B.name))}}else if(H.selectedTools&&H.selectedTools.length>0){let q=new Set(H.selectedTools);$=$.filter((B)=>q.has(B.name))}return{connectionId:F,connectionTitle:H.connection.title,tools:$}}catch(V){if(!(V instanceof K6)||V.code!==q6.MethodNotFound)console.error(`[aggregator] Failed to list tools ${F}: (defaulting to null)`,V);return null}}),X=new Set,Q=[],J=new Map,G=new Set;for(let H of Y){if(H.status!=="fulfilled"||!H.value)continue;let{connectionId:F,connectionTitle:V,tools:$}=H.value;G.add(V);for(let q of $){if(X.has(q.name))continue;X.add(q.name),Q.push({...q,_meta:{connectionId:F,connectionTitle:V}}),J.set(q.name,{connectionId:F,originalName:q.name})}}let K=async(H,F)=>{let V=J.get(H);if(!V)return{content:[{type:"text",text:`Tool not found: ${H}`}],isError:!0};let $=this.proxies.get(V.connectionId);if(!$)return{content:[{type:"text",text:`Connection not found for tool: ${H}`}],isError:!0};return await $.proxy.client.callTool({name:V.originalName,arguments:F})},Z=OM6(this.options.strategy)({tools:Q,callTool:K,categories:Array.from(G).sort()});return{tools:Q,mappings:J,strategyResult:Z}}async list(){return{tools:(await this.cache).strategyResult.tools}}async call(Y){return(await this.cache).strategyResult.callTool(Y.name,Y.arguments??{})}async callStreamable(Y,X){let Q=await this.cache,J=Q.mappings.get(Y);if(J){let K=this.proxies.get(J.connectionId);if(K)return K.proxy.callStreamableTool(J.originalName,X)}let G=await Q.strategyResult.callTool(Y,X);return new Response(JSON.stringify(G),{headers:{"Content-Type":"application/json"}})}}var LM6=S(()=>{p9();d70()});function wM6(Y,X){if(Y.connection_type!=="VIRTUAL")return!1;return h3(Y.connection_url)===X}async function uG1(Y,X){let Q=await sD.create(Y.connections,X),J=new p70(Q,{selectionMode:Y.toolSelectionMode,strategy:Y.toolSelectionStrategy}),G=new m70(Q,{selectionMode:Y.toolSelectionMode}),K=new l70(Q),W=new g70(Q,{selectionMode:Y.toolSelectionMode});return{client:{listTools:J.list.bind(J),callTool:J.call.bind(J),listResources:G.list.bind(G),readResource:G.read.bind(G),listResourceTemplates:K.list.bind(K),listPrompts:W.list.bind(W),getPrompt:W.get.bind(W)},callStreamableTool:J.callStreamable.bind(J)}}async function f2(Y,X,Q){let J;if(Y.tool_selection_mode==="exclusion"){let W=(await X.storage.connections.list(Y.organization_id)).filter((H)=>H.status==="active"&&!wM6(H,Y.id)),Z=new Map;for(let H of Y.connections)Z.set(H.connection_id,{selectedTools:H.selected_tools,selectedResources:H.selected_resources,selectedPrompts:H.selected_prompts});J=[];for(let H of W){let F=Z.get(H.id);if(F===void 0)J.push({connection:H,selectedTools:null,selectedResources:null,selectedPrompts:null});else if((F.selectedTools===null||F.selectedTools.length===0)&&(F.selectedResources===null||F.selectedResources.length===0)&&(F.selectedPrompts===null||F.selectedPrompts.length===0));else J.push({connection:H,selectedTools:F.selectedTools,selectedResources:F.selectedResources,selectedPrompts:F.selectedPrompts})}}else{let K=Y.connections.map((Z)=>Z.connection_id),W=[];for(let Z of K){let H=await X.storage.connections.findById(Z);if(H&&H.status==="active"&&!wM6(H,Y.id))W.push(H)}J=W.map((Z)=>{let H=Y.connections.find((F)=>F.connection_id===Z.id);return{connection:Z,selectedTools:H?.selected_tools??null,selectedResources:H?.selected_resources??null,selectedPrompts:H?.selected_prompts??null}})}let G={connections:J,toolSelectionMode:Y.tool_selection_mode,toolSelectionStrategy:Q};return uG1(G,X)}var MM6=S(()=>{EW();ZM6();HM6();FM6();LM6()});var c70=S(()=>{MM6()});async function AM6(Y){if(!Y.refreshToken)return{success:!1,error:"No refresh token available"};if(!Y.tokenEndpoint)return{success:!1,error:"No token endpoint available"};if(!Y.clientId)return{success:!1,error:"No client ID available"};try{let X=new URLSearchParams({grant_type:"refresh_token",refresh_token:Y.refreshToken,client_id:Y.clientId});if(Y.clientSecret)X.set("client_secret",Y.clientSecret);if(Y.scope)X.set("scope",Y.scope);let Q=await fetch(Y.tokenEndpoint,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:X.toString()});if(!Q.ok){let G=await Q.text();console.error(`[TokenRefresh] Failed to refresh token: ${Q.status}`,G);try{let K=JSON.parse(G);return{success:!1,error:K.error_description||K.error||`Token refresh failed: ${Q.status}`}}catch{return{success:!1,error:`Token refresh failed: ${Q.status}`}}}let J=await Q.json();return{success:!0,accessToken:J.access_token,refreshToken:J.refresh_token||Y.refreshToken,expiresIn:J.expires_in,scope:J.scope}}catch(X){return console.error("[TokenRefresh] Error refreshing token:",X),{success:!1,error:X instanceof Error?X.message:"Token refresh failed"}}}function gG1(Y){return new Proxy(Y,{get(Q,J,G){if(J==="close")return async()=>{};if(J==="__actualClient")return Q;return Reflect.get(Q,J,G)}})}async function EM6(Y,X){let Q=$q.get(Y.id);if(Q?.status==="connected"&&Q.stableClient)return Q.stableClient;if(Q?.connectPromise&&(Q.status==="connecting"||Q.status==="reconnecting"))return Q.connectPromise;let J=Q?.status==="failed",G=Q??{transport:null,client:null,stableClient:null,config:Y,status:"connecting",connectPromise:null};if(!Q)$q.set(Y.id,G);return G.status=J?"reconnecting":"connecting",G.connectPromise=(async()=>{try{console.log(`[StableStdio] ${J?"Respawning":"Spawning"}: ${Y.id} (${Y.command} ${Y.args?.join(" ")??""})`);let K=new eP({command:Y.command,args:Y.args,env:Y.env,cwd:Y.cwd,stderr:"pipe"});G.transport=K;let W=X??new nQ({name:`mesh-stdio-${Y.id}`,version:"1.0.0"});G.client=W,G.stableClient=gG1(W),W.onclose=()=>{console.log(`[StableStdio] Connection closed unexpectedly: ${Y.id}`),G.status="failed",G.connectPromise=null};let Z=Y.name||Y.id,H="\x1B[2m",F="\x1B[0m";K.stderr?.on("data",(q)=>{let B=q.toString().trimEnd();if(B)console.error(`${B} ${H}[${Z}]${F}`)});let V=new AbortController,$=setTimeout(()=>V.abort(),30000);try{await Promise.race([W.connect(K),new Promise((q,B)=>{V.signal.addEventListener("abort",()=>{B(Error("Stdio connection timeout after 30s"))})})])}finally{clearTimeout($)}return G.status="connected",console.log(`[StableStdio] Connected: ${Y.id}`),G.stableClient}catch(K){console.error(`[StableStdio] Failed to connect ${Y.id}:`,K),G.status="failed",G.connectPromise=null;try{await G.transport?.close()}catch{}throw K}})(),G.connectPromise}async function mG1(Y){let X=$q.get(Y);if(!X)return;console.log(`[StableStdio] Force closing: ${Y}`);try{if(X.client)X.client.onclose=void 0;await X.client?.close()}catch{}$q.delete(Y)}async function lG1(){console.log(`[StableStdio] Closing all connections (${$q.size})`);let Y=Array.from($q.keys()).map((X)=>mG1(X));await Promise.allSettled(Y),$q.clear()}var TM6="__mesh_stable_stdio_pool__",$q,PM6="__mesh_stable_stdio_shutdown_registered__";var CM6=S(()=>{c$();g50();$q=globalThis[TM6]??(globalThis[TM6]=new Map);if(!globalThis[PM6]){globalThis[PM6]=!0;let Y=async(X)=>{await lG1(),process.exit(X==="SIGINT"?130:143)};process.on("SIGINT",()=>Y("SIGINT")),process.on("SIGTERM",()=>Y("SIGTERM"))}});async function Eu(Y,X){let Q=Y.get("meshContext");try{let J=Y.req.header("x-org-id"),G=Y.req.header("x-org-slug"),K=J?J:G?await Q.db.selectFrom("organization").select("id").where("slug","=",G).executeTakeFirst().then((B)=>B?.id):null,W=X?await Q.storage.virtualMcps.findById(X):K?z50(K):null;if(!W)return Y.json({error:"Agent not found"},404);if(K&&W.organization_id!==K)return Y.json({error:"Agent not found"},404);if(W.status!=="active")return Y.json({error:`Agent is inactive: ${W.id}`},503);Q.connectionId=W.id;let Z=await Q.db.selectFrom("organization").select(["id","slug","name"]).where("id","=",W.organization_id).executeTakeFirst();if(Z)Q.organization={id:Z.id,slug:Z.slug,name:Z.name};let H=Y.req.query("mode"),F=NM6(H),V=await f2(W,Q,F),$=new e$({name:`mcp-virtual-mcp-${W.title}`,version:"1.0.0"},{capabilities:{tools:{},resources:{},prompts:{}},instructions:W.metadata?.instructions??void 0}),q=new Yq({enableJsonResponse:Y.req.header("Accept")?.includes("application/json")??!1});await $.connect(q),$.server.setRequestHandler(C3,async(B)=>{return V.client.listTools()}),$.server.setRequestHandler(LW,async(B)=>{return await V.client.callTool(B.params)}),$.server.setRequestHandler(M3,async()=>{return V.client.listResources()}),$.server.setRequestHandler(T3,async(B)=>{return V.client.readResource(B.params)}),$.server.setRequestHandler(A3,async()=>{return V.client.listResourceTemplates()}),$.server.setRequestHandler(P3,async()=>{return V.client.listPrompts()}),$.server.setRequestHandler(E3,async(B)=>{return V.client.getPrompt(B.params)});try{return await q.handleRequest(Y.req.raw)}finally{try{await q.close?.()}catch{}}}catch(J){let G=J;return console.error("[virtual-mcp] Error handling virtual MCP request:",G),Y.json({error:"Internal server error",message:G.message},500)}}var n70,IM6;var i70=S(()=>{cx();nx();p9();gG();c70();d70();nP();n70=new M9;n70.all("/gateway/:virtualMcpId?",async(Y)=>{let X=Y.req.param("virtualMcpId")||Y.req.header("x-virtual-mcp-id");return Eu(Y,X)});n70.all("/virtual-mcp/:virtualMcpId?",async(Y)=>{let X=Y.req.param("virtualMcpId")||Y.req.header("x-virtual-mcp-id");return Eu(Y,X)});IM6=n70});async function RM6(Y,X){return(await X.storage.connections.findById(Y))?.connection_url??null}function dG1(Y){let X=Y.toLowerCase();return X.includes("resource_metadata=")||X.includes("invalid_token")||X.includes("oauth")}async function jM6(Y,X={}){try{let Q=await fetch(Y,{method:"POST",headers:{...X,"Content-Type":"application/json",Accept:"application/json, text/event-stream"},body:JSON.stringify({jsonrpc:"2.0",id:0,method:"initialize",params:{protocolVersion:"2025-06-18",capabilities:{},clientInfo:{name:"mcp-mesh-proxy",version:"1.0.0"}}})});if(Q.status===401){let J=Q.headers.get("WWW-Authenticate");if(J){if(dG1(J))return J}}return null}catch{return null}}async function Iu(Y){let Q=new URL(Y).pathname;if(Q.endsWith("/"))Q=Q.slice(0,-1);let J=new URL(Y);J.pathname=`${Q}/.well-known/oauth-protected-resource`;let G=await fetch(J.toString(),{method:"GET",headers:{Accept:"application/json"}});if(G.ok)return G;if(!a70.includes(G.status))return G;let K=new URL(Y);if(K.pathname=`/.well-known/oauth-protected-resource${Q}`,G=await fetch(K.toString(),{method:"GET",headers:{Accept:"application/json"}}),!a70.includes(G.status))return G;let W=new URL(Y);return W.pathname="/.well-known/oauth-protected-resource",G=await fetch(W.toString(),{method:"GET",headers:{Accept:"application/json"}}),G}async function pG1(Y,X){let Q=await RM6(Y,X);if(!Q)return null;let J;try{J=new URL(Q).origin}catch{return null}try{let G=await Iu(Q);if(G.ok){let K=await G.json();if(K.authorization_servers?.[0])return K.authorization_servers[0]}}catch{}return J}async function SM6(Y){let X=Y.get("meshContext");if(!X)X=await p3.create(Y.req.raw),Y.set("meshContext",X);return X}async function kM6({error:Y,reqUrl:X,connectionId:Q,connectionUrl:J,headers:G}){let K=Y.message?.toLowerCase()??"";if(!(Y.status===401||Y.code===401||Y.message?.includes("401")||K.includes("unauthorized")||K.includes("invalid_token")||K.includes("api key required")||K.includes("api-key required")))return null;if(Boolean(await jM6(J,G)))return new Response(null,{status:401,headers:{"WWW-Authenticate":`Bearer realm="mcp",resource_metadata="${X.origin}/mcp/${Q}/.well-known/oauth-protected-resource"`}});return new Response(JSON.stringify({error:"unauthorized",message:"Authentication required but server does not support OAuth"}),{status:401,headers:{"Content-Type":"application/json"}})}async function r70(Y){let Q=new URL(Y).pathname;if(Q.endsWith("/"))Q=Q.slice(0,-1);let J=Q!==""&&Q!=="/",G=[];if(J){let W=new URL(Y);W.pathname=`/.well-known/oauth-authorization-server${Q}`,G.push(W);let Z=new URL(Y);Z.pathname=`/.well-known/openid-configuration${Q}`,G.push(Z);let H=new URL(Y);H.pathname=`${Q}/.well-known/openid-configuration`,G.push(H)}else{let W=new URL(Y);W.pathname="/.well-known/oauth-authorization-server",G.push(W);let Z=new URL(Y);Z.pathname="/.well-known/openid-configuration",G.push(Z)}let K=null;for(let W of G){if(K=await fetch(W.toString(),{method:"GET",headers:{Accept:"application/json"}}),K.ok)return K;if(K.status!==404&&K.status!==401)return K}return K}var Cu,a70,Ru=(Y)=>{if(!(Y.hostname==="localhost"||Y.hostname==="127.0.0.1"))Y.protocol="https:";return Y},vM6=async(Y)=>{let X=Y.req.param("connectionId"),Q=await SM6(Y),J=await RM6(X,Q);if(!J)return Y.json({error:"Connection not found"},404);let G=Ru(new URL(Y.req.url)),K=`${G.origin}/mcp/${X}`,W=`${G.origin}/oauth-proxy/${X}`;try{let Z=await Iu(J);if(!Z.ok&&a70.includes(Z.status)){if(await jM6(J))return new Response(JSON.stringify({resource:K,authorization_servers:[W],bearer_methods_supported:["header"],scopes_supported:["*"]}),{status:200,headers:{"Content-Type":"application/json"}});return new Response(Z.body,{status:Z.status,statusText:Z.statusText,headers:{"Content-Type":"application/json"}})}if(!Z.ok)return new Response(Z.body,{status:Z.status,statusText:Z.statusText,headers:{"Content-Type":"application/json"}});let F={...await Z.json(),resource:K,authorization_servers:[W]};return new Response(JSON.stringify(F),{status:Z.status,statusText:Z.statusText,headers:{"Content-Type":"application/json"}})}catch(Z){let H=Z;return console.error("[oauth-proxy] Failed to proxy OAuth protected resource metadata:",H),Y.json({error:"Failed to proxy OAuth metadata",message:H.message},502)}},_M6;var ju=S(()=>{gG();Su();Cu=new M9,a70=[404,401,406];Cu.get("/.well-known/oauth-protected-resource/mcp/:connectionId",(Y)=>vM6(Y));Cu.get("/mcp/:connectionId/.well-known/oauth-protected-resource",(Y)=>vM6(Y));Cu.get("/.well-known/oauth-authorization-server/oauth-proxy/:connectionId",async(Y)=>{let X=Y.req.param("connectionId"),Q=await SM6(Y),J=await pG1(X,Q);if(!J)return Y.json({error:"Connection not found or no auth server"},404);try{let G=await r70(J);if(!G.ok)return new Response(G.body,{status:G.status,statusText:G.statusText,headers:{"Content-Type":"application/json"}});let K=await G.json(),Z=`${Ru(new URL(Y.req.url)).origin}/oauth-proxy/${X}`,H={...K,authorization_endpoint:K.authorization_endpoint?`${Z}/authorize`:void 0,token_endpoint:K.token_endpoint?`${Z}/token`:void 0,registration_endpoint:K.registration_endpoint?`${Z}/register`:void 0};return new Response(JSON.stringify(H),{status:200,headers:{"Content-Type":"application/json"}})}catch(G){let K=G;return console.error("[oauth-proxy] Failed to proxy auth server metadata:",K),Y.json({error:"Failed to proxy auth server metadata",message:K.message},502)}});_M6=Cu});function cG1(Y){if(!Y.isError)return;let X=Y.content;if(!Array.isArray(X))return;for(let Q of X)if(Q&&typeof Q==="object"&&"type"in Q&&Q.type==="text"&&"text"in Q&&typeof Q.text==="string")return Q.text;return}function nG1(Y){if(!Y)return;let X=Y._meta;if(!X||typeof X!=="object"||Array.isArray(X))return;let Q=X.properties;if(!Q||typeof Q!=="object"||Array.isArray(Q))return;let J={};for(let[G,K]of Object.entries(Q))if(typeof K==="string")J[G]=K;return Object.keys(J).length>0?J:void 0}function iG1(Y,X){if(!Y&&!X)return;if(!Y)return X;if(!X)return Y;return{...X,...Y}}function yM6(Y){if(Y&&typeof Y==="object"&&!Array.isArray(Y)){let X=Y,Q=X.structuredContent;if(Q&&typeof Q==="object"&&!Array.isArray(Q))return Q;return X}return{value:Y}}async function aG1(Y,X){let Q=Y.body;if(!Q)return{text:"",truncated:!1};let J=Q.getReader(),G=new TextDecoder,K=!1,W=0,Z=[];try{while(!0){let{value:H,done:F}=await J.read();if(F)break;if(H){if(W+=H.byteLength,W>X){K=!0;let V=X-(W-H.byteLength);if(V>0)Z.push(G.decode(H.slice(0,V),{stream:!0}));break}Z.push(G.decode(H,{stream:!0}))}}}finally{J.releaseLock()}return Z.push(G.decode()),{text:Z.join(""),truncated:K}}async function h2(Y){let{ctx:X,enabled:Q}=Y,J=Y.organizationId??X.organization?.id;if(!Q||!J)return;let G=nG1(Y.request.params.arguments),K=iG1(X.metadata.properties,G);await X.storage.monitoring.log({organizationId:J,connectionId:Y.connectionId,connectionTitle:Y.connectionTitle,toolName:Y.request.params.name,input:Y.request.params.arguments??{},output:Y.output,isError:Y.isError,errorMessage:Y.errorMessage,durationMs:Y.durationMs,timestamp:new Date,userId:X.auth.user?.id||X.auth.apiKey?.userId||null,requestId:X.metadata.requestId,userAgent:X.metadata.userAgent,virtualMcpId:Y.virtualMcpId,properties:K})}function fM6(Y){let{ctx:X,enabled:Q,connectionId:J,connectionTitle:G,virtualMcpId:K}=Y;return async(W,Z)=>{let H=Date.now();try{let F=await Z(),V=Date.now()-H;return await h2({ctx:X,enabled:Q,connectionId:J,connectionTitle:G,virtualMcpId:K,request:W,output:yM6(F),isError:Boolean(F.isError),errorMessage:cG1(F),durationMs:V}),F}catch(F){let V=F,$=Date.now()-H;throw await h2({ctx:X,enabled:Q,connectionId:J,connectionTitle:G,virtualMcpId:K,request:W,output:{},isError:!0,errorMessage:V.message,durationMs:$}),F}}}function hM6(Y){let{ctx:X,enabled:Q,connectionId:J,connectionTitle:G,virtualMcpId:K}=Y;return async(W,Z)=>{let H=Date.now();try{let F=await Z(),V=X.organization?.id;if(Q&&V){let $=F.clone();(async()=>{try{let{text:q,truncated:B}=await aG1($,262144),D=Date.now()-H,O=$.headers.get("content-type")??"",L=q;if(O.includes("application/json"))try{L=q.length?JSON.parse(q):null}catch{L=q}let w=F.status>=400,I=w&&L&&typeof L==="object"&&"error"in L?L.error:void 0,T=typeof I==="string"&&I?I:w&&typeof L==="string"&&L.trim()?L.slice(0,500):w?`HTTP ${F.status} ${F.statusText}`.trim():B?"Response body truncated to 262144 bytes":void 0;await h2({ctx:X,enabled:Q,organizationId:V,connectionId:J,connectionTitle:G,virtualMcpId:K,request:W,output:yM6(L),isError:w,errorMessage:T,durationMs:D})}catch(q){let B=Date.now()-H;await h2({ctx:X,enabled:Q,organizationId:V,connectionId:J,connectionTitle:G,virtualMcpId:K,request:W,output:{},isError:!0,errorMessage:`Failed to read streamable response body: ${q.message}`,durationMs:B})}})()}return F}catch(F){let V=F,$=Date.now()-H;throw await h2({ctx:X,enabled:Q,connectionId:J,connectionTitle:G,virtualMcpId:K,request:W,output:{},isError:!0,errorMessage:V.message,durationMs:$}),F}}}function rG1(Y,X,Q){return async(J,G)=>{try{let K=J.params.name,W=async()=>{let{tools:H}=await Q();return H.find((V)=>V.name===K)?._meta};return await new d3(Y.authInstance,Y.auth.user?.id??Y.auth.apiKey?.userId,K,Y.boundAuth,Y.auth.user?.role,X,W).check(K),await G()}catch(K){return{content:[{type:"text",text:`Authorization failed: ${K.message}`}],isError:!0}}}}function oG1(Y,X,Q){return async(J,G)=>{try{let K=J.params.name,W=async()=>{let{tools:H}=await Q();return H.find((V)=>V.name===K)?._meta};return await new d3(Y.authInstance,Y.auth.user?.id??Y.auth.apiKey?.userId,K,Y.boundAuth,Y.auth.user?.role,X,W).check(K),await G()}catch(K){return new Response(JSON.stringify({error:`Authorization failed: ${K.message}`}),{status:403,headers:{"Content-Type":"application/json"}})}}}async function bM6(Y,X,{superUser:Q}){let J=typeof Y==="string"?await X.storage.connections.findById(Y,X.organization?.id):Y;if(!J)throw Error("Connection not found");let G=J?.id;if(X.organization&&J.organization_id!==X.organization.id)throw Error("Connection does not belong to the active organization");if(X.organization??={id:J.organization_id},J.status!=="active")throw Error(`Connection inactive: ${J.status}`);let K,W=X.auth.user?.connectionId,Z=GM6(async()=>{let k=jG0(J.configuration_state,J.configuration_scopes),b=X.auth.user?.id??X.auth.apiKey?.userId??(Q?J.created_by:void 0);if(!b){console.error("User ID required to issue configuration token");return}try{K=await tw6({sub:b,user:{id:b},metadata:{state:J.configuration_state??void 0,meshUrl:process.env.MESH_URL??X.baseUrl,connectionId:G,organizationId:X.organization?.id},permissions:k})}catch(Y0){console.error("Failed to issue configuration token:",Y0)}}),H=async()=>{await Z();let k={...W?{"x-caller-id":W}:{},...X.metadata.wellKnownForwardableHeaders??{},"x-request-id":X.metadata.requestId},b=null,Y0=new zK(X.db,X.vault),p=await Y0.get(G);if(p){let W0=!!p.refreshToken&&!!p.tokenEndpoint;if(Y0.isExpired(p,W0?300000:0))if(W0){console.log(`[Proxy] Token expired for ${G}, attempting refresh`);let J0=await AM6(p);if(J0.success&&J0.accessToken)await Y0.upsert({connectionId:G,accessToken:J0.accessToken,refreshToken:J0.refreshToken??p.refreshToken,scope:J0.scope??p.scope,expiresAt:J0.expiresIn?new Date(Date.now()+J0.expiresIn*1000):null,clientId:p.clientId,clientSecret:p.clientSecret,tokenEndpoint:p.tokenEndpoint}),b=J0.accessToken,console.log(`[Proxy] Token refreshed for ${G}`);else await Y0.delete(G),console.error(`[Proxy] Token refresh failed for ${G}: ${J0.error}`)}else await Y0.delete(G),console.log(`[Proxy] Token expired without refresh capability for ${G}`);else b=p.accessToken}if(!b&&J.connection_token)b=J.connection_token;if(b)k.Authorization=`Bearer ${b}`;if(K)k["x-mesh-token"]=K;return k},F=J.connection_type==="STDIO",V=r$(J.connection_headers)?J.connection_headers:null,$=!F?J.connection_headers:null,q=async()=>{let k=new nQ({name:"mcp-mesh-proxy",version:"1.0.0"},{capabilities:{tasks:{list:{},cancel:{},requests:{tool:{call:{}}}}}});switch(J.connection_type){case"STDIO":{if(process.env.UNSAFE_ALLOW_STDIO_TRANSPORT!=="true")throw Error("STDIO connections are disabled in production. Set UNSAFE_ALLOW_STDIO_TRANSPORT=true to enable.");if(!V)throw Error("STDIO connection missing parameters");return EM6({id:G,name:J.title,command:V.command,args:V.args,env:V.envVars,cwd:V.cwd},k)}case"HTTP":case"Websocket":{if(!J.connection_url)throw Error(`${J.connection_type} connection missing URL`);let b=await H();if($?.headers)Object.assign(b,$.headers);let Y0=new PW(new URL(J.connection_url),{requestInit:{headers:b}});return await k.connect(Y0),k}case"SSE":{if(!J.connection_url)throw Error("SSE connection missing URL");let b=await H();if($?.headers)Object.assign(b,$.headers);let Y0=new t$(new URL(J.connection_url),{requestInit:{headers:b}});return await k.connect(Y0),k}case"VIRTUAL":{let b=h3(J.connection_url);if(!b)throw Error("VIRTUAL connection missing virtual MCP ID in connection_url");let Y0=await X.storage.virtualMcps.findById(b);if(!Y0)throw Error(`Virtual MCP not found: ${b}`);let p=await f2(Y0,X,"passthrough");return{callTool:(W0)=>p.client.callTool(W0),listTools:()=>p.client.listTools(),listResources:()=>p.client.listResources(),readResource:(W0)=>p.client.readResource(W0),listResourceTemplates:()=>p.client.listResourceTemplates(),listPrompts:()=>p.client.listPrompts(),getPrompt:(W0)=>p.client.getPrompt(W0),close:async()=>{},getServerCapabilities:()=>({tools:{},resources:{},prompts:{}}),getInstructions:()=>Y0.metadata?.instructions??void 0}}default:throw Error(`Unknown connection type: ${J.connection_type}`)}},B=async()=>{if(J.tools&&J.tools.length>0)return{tools:J.tools.map((b)=>({name:b.name,description:b.description,inputSchema:b.inputSchema,outputSchema:b.outputSchema,annotations:b.annotations,_meta:b._meta}))};let k;try{return k=await q(),await k.listTools()}finally{k?.close().catch(console.error)}},D=Q?async(k,b)=>await b():rG1(X,G,B),O=Q?async(k,b)=>await b():oG1(X,G,B),L=X.connectionId&&X.connectionId!==G?X.connectionId:void 0,w={enabled:wP0().enabled,connectionId:G,connectionTitle:J.title,virtualMcpId:L,ctx:X},I=fM6(w),T=hM6(w),P=X2(I,D),A=X2(T,O),R=async(k)=>{return P(k,async()=>{let b=await q(),Y0=Date.now(),p={...k.params};if(p.arguments&&"_meta"in p.arguments){let{_meta:W0,...B0}=p.arguments;p.arguments=B0}return await X.tracer.startActiveSpan("mcp.proxy.callTool",{attributes:{"connection.id":G,"tool.name":k.params.name,"request.id":X.metadata.requestId}},async(W0)=>{try{let B0=await b.callTool(p,void 0,{timeout:o70}),J0=Date.now()-Y0;return X.meter.createHistogram("connection.proxy.duration").record(J0,{"connection.id":G,"tool.name":k.params.name,status:"success"}),X.meter.createCounter("connection.proxy.requests").add(1,{"connection.id":G,"tool.name":k.params.name,status:"success"}),W0.end(),B0}catch(B0){let J0=B0,D0=Date.now()-Y0;throw X.meter.createHistogram("connection.proxy.duration").record(D0,{"connection.id":G,"tool.name":k.params.name,status:"error"}),X.meter.createCounter("connection.proxy.errors").add(1,{"connection.id":G,"tool.name":k.params.name,error:J0.message}),W0.recordException(J0),W0.end(),B0}finally{b.close().catch(console.error)}})})};return{fetch:async(k)=>{let b=new URL(k.url),Y0;try{Y0=await q()}catch(E0){let h0=J.connection_url?await kM6({error:E0,reqUrl:b,connectionId:G,connectionUrl:J.connection_url,headers:await H()}):null;if(h0)return h0;throw E0}let p=Y0.getServerCapabilities(),W0=Y0.getInstructions(),B0=p??{tools:{},resources:{},prompts:{}},J0=new e$({name:"mcp-mesh",version:"1.0.0"},{capabilities:B0,instructions:W0}),D0=new Yq({enableJsonResponse:k.headers.get("Accept")?.includes("application/json")??!1});if(await J0.connect(D0),J0.server.setRequestHandler(C3,()=>Y0.listTools()),J0.server.setRequestHandler(LW,R),B0.resources)J0.server.setRequestHandler(M3,()=>Y0.listResources()),J0.server.setRequestHandler(T3,(E0)=>Y0.readResource(E0.params)),J0.server.setRequestHandler(A3,()=>Y0.listResourceTemplates());if(B0.prompts)J0.server.setRequestHandler(P3,()=>Y0.listPrompts()),J0.server.setRequestHandler(E3,(E0)=>Y0.getPrompt(E0.params));try{return await D0.handleRequest(k)}finally{try{await Y0.close()}catch{}try{await D0.close?.()}catch{}}},client:{callTool:(k)=>{return R({method:"tools/call",params:k})},listTools:B,listResources:async()=>{let k;try{return k=await q(),await k.listResources()}catch(b){if(b instanceof K6&&b.code===q6.MethodNotFound)return{resources:[]};throw b}finally{k?.close().catch(console.error)}},readResource:async(k)=>{let b;try{return b=await q(),await b.readResource(k)}finally{b?.close().catch(console.error)}},listResourceTemplates:async()=>{let k;try{return k=await q(),await k.listResourceTemplates()}catch(b){if(b instanceof K6&&b.code===q6.MethodNotFound)return{resourceTemplates:[]};throw b}finally{k?.close().catch(console.error)}},listPrompts:async()=>{let k;try{return k=await q(),await k.listPrompts()}catch(b){if(b instanceof K6&&b.code===q6.MethodNotFound)return{prompts:[]};throw b}finally{k?.close().catch(console.error)}},getPrompt:async(k)=>{let b;try{return b=await q(),await b.getPrompt(k)}finally{b?.close().catch(console.error)}}},callStreamableTool:async(k,b)=>{if(J.connection_type==="VIRTUAL"){let W0=await R({method:"tools/call",params:{name:k,arguments:b}});return new Response(JSON.stringify(W0),{headers:{"Content-Type":"application/json"}})}if(!J.connection_url)throw Error("Streamable tools require HTTP connection with URL");let Y0=J.connection_url,p={method:"tools/call",params:{name:k,arguments:b}};return A(p,async()=>{let W0=await H();if($?.headers)Object.assign(W0,$.headers);let B0=new URL(Y0);return B0.pathname=B0.pathname.replace(/\/$/,"")+`/call-tool/${p.params.name}`,await X.tracer.startActiveSpan("mcp.proxy.callStreamableTool",{attributes:{"connection.id":G,"tool.name":p.params.name,"request.id":X.metadata.requestId}},async(J0)=>{let D0=Date.now();try{let E0=await fetch(B0.toString(),{method:"POST",redirect:"manual",body:JSON.stringify(p.params.arguments),headers:{...W0,"Content-Type":"application/json"}}),h0=Date.now()-D0;return X.meter.createHistogram("connection.proxy.streamable.duration").record(h0,{"connection.id":G,"tool.name":p.params.name,status:E0.ok?"success":"error"}),X.meter.createCounter("connection.proxy.streamable.requests").add(1,{"connection.id":G,"tool.name":p.params.name,status:E0.ok?"success":"error"}),J0.end(),E0}catch(E0){let h0=E0,F6=Date.now()-D0;throw X.meter.createHistogram("connection.proxy.streamable.duration").record(F6,{"connection.id":G,"tool.name":p.params.name,status:"error"}),X.meter.createCounter("connection.proxy.streamable.errors").add(1,{"connection.id":G,"tool.name":p.params.name,error:h0.message}),J0.recordException(h0),J0.end(),E0}})})}}}async function xM6(Y,X){return bM6(Y,X,{superUser:!1})}async function uM6(Y,X){return bM6(Y,X,{superUser:!0})}var ku,o70=300000,gM6=(Y,X)=>{if(Y.message.includes("not found"))return X.json({error:Y.message},404);if(Y.message.includes("does not belong to the active organization"))return X.json({error:"Connection not found"},404);if(Y.message.includes("inactive"))return X.json({error:Y.message},503);return X.json({error:"Internal server error",message:Y.message},500)},mM6;var b2=S(()=>{c70();SG0();Sv();CM6();Vu();EW();c$();mx();uD();cx();nx();p9();gG();_70();Pu();i70();ju();ku=new M9;ku.all("/",async(Y)=>{return Eu(Y,void 0)});ku.all("/:connectionId",async(Y)=>{let X=Y.req.param("connectionId"),Q=Y.get("meshContext");try{return await(await Q.createMCPProxy(X)).fetch(Y.req.raw)}catch(J){return gM6(J,Y)}});ku.all("/:connectionId/call-tool/:toolName",async(Y)=>{let X=Y.req.param("connectionId"),Q=Y.req.param("toolName"),J=Y.get("meshContext");try{let K=await(await J.createMCPProxy(X)).client.callTool({name:Q,arguments:await Y.req.json()});if(K instanceof Response)return K;if(K.isError)return new Response(JSON.stringify(K.content),{headers:{"Content-Type":"application/json"},status:500});return new Response(JSON.stringify(K.structuredContent??K.content),{headers:{"Content-Type":"application/json"}})}catch(G){return gM6(G,Y)}});mM6=ku});class s70{db;constructor(Y){this.db=Y}async create(Y){let X=Y.id??L9("thrd"),Q=new Date().toISOString();if(!Y.organizationId)throw Error("organizationId is required");if(!Y.createdBy)throw Error("createdBy is required");if(!Y.title)Y.title="New Thread - "+Q;let J={id:X,organization_id:Y.organizationId,title:Y.title,description:Y.description??null,created_at:Q,updated_at:Q,created_by:Y.createdBy,updated_by:Y.updatedBy??null},G=await this.db.insertInto("threads").values(J).returningAll().executeTakeFirstOrThrow();return this.threadFromDbRow(G)}async get(Y){let X=await this.db.selectFrom("threads").selectAll().where("id","=",Y).executeTakeFirst();return X?this.threadFromDbRow(X):null}async update(Y,X){let J={updated_at:new Date().toISOString()};if(X.title!==void 0)J.title=X.title;if(X.description!==void 0)J.description=X.description;if(X.updatedBy!==void 0)J.updated_by=X.updatedBy;if(X.hidden!==void 0)J.hidden=X.hidden;await this.db.updateTable("threads").set(J).where("id","=",Y).execute();let G=await this.get(Y);if(!G)throw Error("Thread not found after update");return G}async delete(Y){await this.db.deleteFrom("threads").where("id","=",Y).execute()}async list(Y,X,Q){let J=this.db.selectFrom("threads").selectAll().where("organization_id","=",Y).where("hidden","=",!1).orderBy("updated_at","desc");if(X)J=J.where("created_by","=",X);let G=this.db.selectFrom("threads").select((Z)=>Z.fn.count("id").as("count")).where("organization_id","=",Y).where("hidden","=",!1);if(X)G=G.where("created_by","=",X);if(Q?.limit)J=J.limit(Q.limit);if(Q?.offset)J=J.offset(Q.offset);let[K,W]=await Promise.all([J.execute(),G.executeTakeFirst()]);return{threads:K.map((Z)=>this.threadFromDbRow(Z)),total:Number(W?.count||0)}}async saveMessages(Y){let X=new Date().toISOString(),Q=Y[0]?.threadId;if(!Q)throw Error("threadId is required when creating multiple messages");let J=Y.find((K)=>K.threadId!==Q);if(J)throw Error(`All messages must target the same thread. Expected threadId "${Q}", but message "${J.id}" has threadId "${J.threadId}"`);let G=Y.map((K)=>({id:K.id,thread_id:Q,metadata:K.metadata?JSON.stringify(K.metadata):null,parts:JSON.stringify(K.parts),role:K.role,created_at:K.createdAt??X,updated_at:X}));await this.db.transaction().execute(async(K)=>{await K.insertInto("thread_messages").values(G).execute(),await K.updateTable("threads").set({updated_at:X}).where("id","=",Q).execute()})}async listMessages(Y,X){let Q=this.db.selectFrom("thread_messages").selectAll().where("thread_id","=",Y).orderBy("created_at","asc").orderBy("id","asc"),J=this.db.selectFrom("thread_messages").select((W)=>W.fn.count("id").as("count")).where("thread_id","=",Y);if(X?.limit)Q=Q.limit(X.limit);if(X?.offset)Q=Q.offset(X.offset);let[G,K]=await Promise.all([Q.execute(),J.executeTakeFirst()]);return{messages:G.map((W)=>this.messageFromDbRow(W)),total:Number(K?.count||0)}}threadFromDbRow(Y){return{id:Y.id,organizationId:Y.organization_id,title:Y.title,description:Y.description,createdAt:typeof Y.created_at==="string"?Y.created_at:Y.created_at.toISOString(),updatedAt:typeof Y.updated_at==="string"?Y.updated_at:Y.updated_at.toISOString(),createdBy:Y.created_by,updatedBy:Y.updated_by,hidden:!!Y.hidden}}messageFromDbRow(Y){let X,Q;try{X=Y.metadata?JSON.parse(Y.metadata):void 0}catch(J){console.error(`Failed to parse metadata for message ${Y.id}:`,Y.metadata,J),X=void 0}try{Q=typeof Y.parts==="string"?JSON.parse(Y.parts):Y.parts}catch(J){console.error(`Failed to parse parts for message ${Y.id}:`,Y.parts,J),Q=[]}return{id:Y.id,threadId:Y.thread_id,metadata:X,parts:Q,role:Y.role,createdAt:typeof Y.created_at==="string"?Y.created_at:Y.created_at.toISOString(),updatedAt:typeof Y.updated_at==="string"?Y.updated_at:Y.updated_at.toISOString()}}}var lM6=S(()=>{KK()});function sG1(Y){if(!Y)return;try{let X=JSON.parse(Y);if(typeof X!=="object"||X===null||Array.isArray(X))return;let Q={};for(let[J,G]of Object.entries(X))if(typeof G==="string")Q[J]=G;return Object.keys(Q).length>0?Q:void 0}catch{return}}function tG1(Y,X){for(let[Q,J]of Object.entries(X)){let G=Y[Q];if(!G||G.length===0){let K=Y["*"];if(!K||K.length===0)return!1;if(K.includes("*"))continue;for(let W of J)if(!K.includes(W))return!1;continue}if(G.includes("*"))continue;for(let K of J)if(!G.includes(K))return!1}return!0}function eG1(Y){let{auth:X,headers:Q,role:J,permissions:G,userId:K}=Y,W=X.api.hasPermission;return{hasPermission:async(Z)=>{if(J&&O70.includes(J))return!0;if(G)return tG1(G,Z);if(!W)return console.error("[Auth] hasPermission API not available"),!1;try{if((await W({headers:Q,body:{permission:Z}}))?.success===!0)return!0;let F={};for(let $ of Object.keys(Z))F[$]=["*"];return(await W({headers:Q,body:{permission:F}}))?.success===!0}catch(H){return console.error("[Auth] Permission check failed:",H),!1}},organization:{create:async(Z)=>{return X.api.createOrganization({headers:Q,body:Z})},update:async(Z)=>{return X.api.updateOrganization({headers:Q,body:Z})},delete:async(Z)=>{await X.api.deleteOrganization({headers:Q,body:{organizationId:Z}})},get:async(Z)=>{return X.api.getFullOrganization({headers:Q,query:Z?{organizationId:Z}:void 0})},list:async(Z)=>{return X.api.listOrganizations({headers:Q,query:Z?{userId:Z}:void 0})},addMember:async(Z)=>{return X.api.addMember({headers:Q,body:Z})},removeMember:async(Z)=>{await X.api.removeMember({headers:Q,body:Z})},listMembers:async(Z)=>{return X.api.listMembers({headers:Q,query:Z?{organizationId:Z.organizationId,limit:Z.limit,offset:Z.offset}:void 0})},updateMemberRole:async(Z)=>{return X.api.updateMemberRole({headers:Q,body:Z})}},apiKey:{create:async(Z)=>{return X.api.createApiKey({body:{...Z,userId:K}})},list:async()=>{return X.api.listApiKeys({headers:Q})},update:async(Z)=>{return X.api.updateApiKey({body:{...Z,userId:K}})},delete:async(Z)=>{await X.api.deleteApiKey({headers:Q,body:{keyId:Z}})}}}}async function Y71(Y,X,Q){if(O70.includes(Q))return;let J=await Y.selectFrom("organizationRole").select(["permission"]).where("organizationId","=",X).where("role","=",Q).executeTakeFirst();if(!J?.permission)return;try{return JSON.parse(J.permission)}catch{console.error(`[Auth] Failed to parse permissions for role: ${Q}`);return}}async function X71(Y,X,Q,J=pM6){let G=Y.headers.get("Authorization");try{let K=new Headers(Y.headers);K.set("X-MCP-Session-Auth","true");let W=await J.measure("auth_get_mcp_session",()=>X.api.getMcpSession({headers:K}));if(W){let Z=W.userId,H=await J.measure("auth_query_membership",()=>Q.selectFrom("member").innerJoin("organization","organization.id","member.organizationId").select(["member.role","member.organizationId","organization.id as orgId","organization.slug as orgSlug","organization.name as orgName"]).where("member.userId","=",Z).executeTakeFirst()),F=H?.role,V=H?{id:H.orgId,slug:H.orgSlug,name:H.orgName}:void 0,$;if(H&&F)$=await J.measure("auth_fetch_role_permissions",()=>Y71(Q,H.organizationId,F));return{user:{id:Z,role:F},role:F,permissions:$,organization:V}}}catch(K){console.error("[Auth] OAuth session check failed:",K)}if(G?.startsWith("Bearer ")){let K=G.replace("Bearer ","").trim();try{let W=await J.measure("auth_verify_mesh_jwt",()=>ew6(K));if(W){let Z,H=W.metadata?.organizationId;if(W.sub&&H)Z=(await J.measure("auth_query_membership",()=>Q.selectFrom("member").select(["member.role"]).where("member.userId","=",W.sub).where("member.organizationId","=",H).executeTakeFirst()))?.role;return{user:{id:W.sub,connectionId:W.metadata?.connectionId,role:Z},role:Z,permissions:W.permissions,organization:W.metadata?.organizationId?{id:W.metadata?.organizationId}:void 0}}}catch{}try{let W=await J.measure("auth_verify_api_key",()=>X.api.verifyApiKey({body:{key:K}}));if(W?.valid&&W.key){let Z=W.key.metadata?.organization,H=W.key.permissions,F,V=W.key.userId;if(V&&Z?.id)F=(await J.measure("auth_query_membership",()=>Q.selectFrom("member").select(["member.role"]).where("member.userId","=",V).where("member.organizationId","=",Z.id).executeTakeFirst()))?.role;return{apiKeyId:W.key.id,user:{id:W.key.userId,role:F},role:F,permissions:H,organization:Z?{id:Z.id,slug:Z.slug,name:Z.name}:void 0}}}catch(W){console.error("[Auth] API key check failed:",W)}}try{let K=await J.measure("auth_get_session",()=>X.api.getSession({headers:Y.headers}));if(K){let W,Z;if(K.session.activeOrganizationId){let H=await J.measure("auth_get_full_organization",()=>X.api.getFullOrganization({headers:Y.headers}).catch(()=>null));if(H)W={id:H.id,slug:H.slug,name:H.name},Z=H.members?.find((V)=>V.userId===K.user.id)?.role;else W={id:K.session.activeOrganizationId,slug:"",name:""}}return{user:{id:K.user.id,email:K.user.email,role:Z},role:Z,organization:W}}}catch(K){let W=K;console.error("[Auth] Session check failed:",JSON.stringify({message:W.message,body:W.body,stack:W.stack},null,2))}return{user:void 0}}function cM6(Y){let X=new a$(Y.encryption.key),Q={connections:new aP(Y.db,X),organizationSettings:new b70(Y.db),monitoring:new h70(Y.db,Y.databaseType),virtualMcps:new y70(Y.db),users:new x70(Y.db),threads:new s70(Y.db)};return async(J,G)=>{let K=G?.timings??pM6,W=J?.headers.get("x-caller-id")??void 0,Z=J?await X71(J,Y.auth,Y.db,K):{user:void 0},H=eG1({auth:Y.auth,headers:J?.headers??new Headers,role:Z.role,permissions:Z.permissions,userId:Z.user?.id}),F={user:Z.user};if(Z.apiKeyId)F.apiKey={id:Z.apiKeyId,name:"",userId:""};let V=Z.organization,$=J?new URL(J.url):new URL("http://localhost:3000"),q=process.env.BASE_URL??`${$.protocol}//${$.host}`,B=new d3(Y.auth,F.user?.id,void 0,H,Z.role,"self"),D={timings:K,auth:F,connectionId:W,organization:V,storage:Q,vault:X,authInstance:Y.auth,boundAuth:H,access:B,db:Y.db,tracer:Y.observability.tracer,meter:Y.observability.meter,baseUrl:q,metadata:{requestId:crypto.randomUUID(),timestamp:new Date,wellKnownForwardableHeaders:Object.fromEntries(Q71.map((O)=>[O,J?.headers.get(O)??null]).filter(([O,L])=>L!==null)),userAgent:J?.headers.get("x-mesh-client")||J?.headers.get("User-Agent")||void 0,ipAddress:(J?.headers.get("CF-Connecting-IP")||J?.headers.get("X-Forwarded-For"))??void 0,properties:sG1(J?.headers.get("x-mesh-properties"))},eventBus:Y.eventBus,createMCPProxy:async(O)=>{return await xM6(O,D)}};return D}}var dM6,p3,pM6,Q71;var Su=S(()=>{_70();bx();L50();YM6();XM6();Pu();b2();N70();lM6();p3={set:(Y)=>{dM6=Y},create:async(Y,X)=>{return await dM6(Y,X)}},pM6={measure:async(Y,X)=>{return await X()}},Q71=["x-hub-signature-256"]});class nM6{db;constructor(Y){this.db=Y}async publishEvent(Y){let X=new Date().toISOString();return await this.db.insertInto("events").values({id:Y.id,organization_id:Y.organizationId,type:Y.type,source:Y.source,specversion:"1.0",subject:Y.subject??null,time:Y.time,datacontenttype:Y.datacontenttype??"application/json",dataschema:Y.dataschema??null,data:Y.data?JSON.stringify(Y.data):null,cron:Y.cron??null,status:"pending",attempts:0,last_error:null,next_retry_at:null,created_at:X,updated_at:X}).execute(),{id:Y.id,organizationId:Y.organizationId,type:Y.type,source:Y.source,specversion:"1.0",subject:Y.subject??null,time:Y.time,datacontenttype:Y.datacontenttype??"application/json",dataschema:Y.dataschema??null,data:Y.data??null,cron:Y.cron??null,status:"pending",attempts:0,lastError:null,nextRetryAt:null,createdAt:X,updatedAt:X}}async subscribe(Y){let X=this.db.selectFrom("event_subscriptions").selectAll().where("organization_id","=",Y.organizationId).where("connection_id","=",Y.connectionId).where("event_type","=",Y.eventType);if(Y.publisher)X=X.where("publisher","=",Y.publisher);else X=X.where("publisher","is",null);if(Y.filter)X=X.where("filter","=",Y.filter);else X=X.where("filter","is",null);let Q=await X.executeTakeFirst();if(Q)return{id:Q.id,organizationId:Q.organization_id,connectionId:Q.connection_id,publisher:Q.publisher,eventType:Q.event_type,filter:Q.filter,enabled:Q.enabled===1,createdAt:Q.created_at,updatedAt:Q.updated_at};let J=new Date().toISOString();return await this.db.insertInto("event_subscriptions").values({id:Y.id,organization_id:Y.organizationId,connection_id:Y.connectionId,publisher:Y.publisher??null,event_type:Y.eventType,filter:Y.filter??null,enabled:1,created_at:J,updated_at:J}).execute(),{id:Y.id,organizationId:Y.organizationId,connectionId:Y.connectionId,publisher:Y.publisher??null,eventType:Y.eventType,filter:Y.filter??null,enabled:!0,createdAt:J,updatedAt:J}}async unsubscribe(Y,X){return{success:((await this.db.deleteFrom("event_subscriptions").where("id","=",Y).where("organization_id","=",X).executeTakeFirst()).numDeletedRows??0n)>0n}}async listSubscriptions(Y,X){let Q=this.db.selectFrom("event_subscriptions").selectAll().where("organization_id","=",Y);if(X)Q=Q.where("connection_id","=",X);return(await Q.execute()).map((G)=>({id:G.id,organizationId:G.organization_id,connectionId:G.connection_id,publisher:G.publisher,eventType:G.event_type,filter:G.filter,enabled:G.enabled===1,createdAt:G.created_at,updatedAt:G.updated_at}))}async getSubscription(Y,X){let Q=await this.db.selectFrom("event_subscriptions").selectAll().where("id","=",Y).where("organization_id","=",X).executeTakeFirst();if(!Q)return null;return{id:Q.id,organizationId:Q.organization_id,connectionId:Q.connection_id,publisher:Q.publisher,eventType:Q.event_type,filter:Q.filter,enabled:Q.enabled===1,createdAt:Q.created_at,updatedAt:Q.updated_at}}async getMatchingSubscriptions(Y){return(await this.db.selectFrom("event_subscriptions").selectAll().where("organization_id","=",Y.organizationId).where("enabled","=",1).where("event_type","=",Y.type).where((Q)=>Q.or([Q("publisher","is",null),Q("publisher","=",Y.source)])).execute()).map((Q)=>({id:Q.id,organizationId:Q.organization_id,connectionId:Q.connection_id,publisher:Q.publisher,eventType:Q.event_type,filter:Q.filter,enabled:Q.enabled===1,createdAt:Q.created_at,updatedAt:Q.updated_at}))}async createDeliveries(Y,X,Q){if(X.length===0)return;let J=new Date().toISOString(),G=Q??null,K=X.map((W)=>({id:crypto.randomUUID(),event_id:Y,subscription_id:W,status:"pending",attempts:0,last_error:null,delivered_at:null,next_retry_at:G,created_at:J}));await this.db.insertInto("event_deliveries").values(K).execute()}async claimPendingDeliveries(Y){let X=new Date().toISOString(),Q;try{Q=(await this.db.updateTable("event_deliveries").set({status:"processing"}).where("id","in",(K)=>K.selectFrom("event_deliveries as d").innerJoin("event_subscriptions as s","s.id","d.subscription_id").select("d.id").where("d.status","=","pending").where("s.enabled","=",1).where((W)=>W.or([W("d.next_retry_at","is",null),W("d.next_retry_at","<=",X)])).orderBy("d.created_at","asc").limit(Y)).where("status","=","pending").returning(["id"]).execute()).map((K)=>K.id)}catch{let G=await this.db.selectFrom("event_deliveries as d").innerJoin("event_subscriptions as s","s.id","d.subscription_id").select(["d.id"]).where("d.status","=","pending").where("s.enabled","=",1).where((K)=>K.or([K("d.next_retry_at","is",null),K("d.next_retry_at","<=",X)])).orderBy("d.created_at","asc").limit(Y).execute();if(G.length===0)return[];Q=G.map((K)=>K.id),await this.db.updateTable("event_deliveries").set({status:"processing"}).where("id","in",Q).where("status","=","pending").execute()}if(Q.length===0)return[];return(await this.db.selectFrom("event_deliveries as d").innerJoin("events as e","e.id","d.event_id").innerJoin("event_subscriptions as s","s.id","d.subscription_id").select(["d.id as delivery_id","d.event_id","d.subscription_id","d.status as delivery_status","d.attempts as delivery_attempts","d.last_error as delivery_last_error","d.delivered_at","d.next_retry_at as delivery_next_retry_at","d.created_at as delivery_created_at","e.organization_id","e.type","e.source","e.specversion","e.subject","e.time","e.datacontenttype","e.dataschema","e.data","e.cron","e.status as event_status","e.attempts as event_attempts","e.last_error as event_last_error","e.next_retry_at","e.created_at as event_created_at","e.updated_at as event_updated_at","s.connection_id","s.publisher","s.event_type","s.filter","s.enabled","s.created_at as subscription_created_at","s.updated_at as subscription_updated_at"]).where("d.id","in",Q).where("d.status","=","processing").execute()).map((G)=>({delivery:{id:G.delivery_id,eventId:G.event_id,subscriptionId:G.subscription_id,status:G.delivery_status,attempts:G.delivery_attempts,lastError:G.delivery_last_error,deliveredAt:G.delivered_at,nextRetryAt:G.delivery_next_retry_at,createdAt:G.delivery_created_at},event:{id:G.event_id,organizationId:G.organization_id,type:G.type,source:G.source,specversion:G.specversion,subject:G.subject,time:G.time,datacontenttype:G.datacontenttype,dataschema:G.dataschema,data:G.data?JSON.parse(G.data):null,cron:G.cron,status:G.event_status,attempts:G.event_attempts,lastError:G.event_last_error,nextRetryAt:G.next_retry_at,createdAt:G.event_created_at,updatedAt:G.event_updated_at},subscription:{id:G.subscription_id,organizationId:G.organization_id,connectionId:G.connection_id,publisher:G.publisher,eventType:G.event_type,filter:G.filter,enabled:G.enabled===1,createdAt:G.subscription_created_at,updatedAt:G.subscription_updated_at}}))}async markDeliveriesDelivered(Y){if(Y.length===0)return;let X=new Date().toISOString();await this.db.updateTable("event_deliveries").set({status:"delivered",delivered_at:X}).where("id","in",Y).execute()}async markDeliveriesFailed(Y,X,Q=20,J=1000,G=3600000){if(Y.length===0)return;for(let K of Y){let W=await this.db.selectFrom("event_deliveries").select(["attempts"]).where("id","=",K).executeTakeFirst();if(!W)continue;let Z=W.attempts+1;if(Z>=Q)await this.db.updateTable("event_deliveries").set({attempts:Z,last_error:X,status:"failed",next_retry_at:null}).where("id","=",K).execute();else{let H=Math.min(J*Math.pow(2,Z-1),G),F=new Date(Date.now()+H).toISOString();await this.db.updateTable("event_deliveries").set({attempts:Z,last_error:X,status:"pending",next_retry_at:F}).where("id","=",K).execute()}}}async updateEventStatus(Y){let X=await this.db.selectFrom("event_deliveries").select(["status"]).where("event_id","=",Y).execute();if(X.length===0)return;let Q=X.every((K)=>K.status==="delivered"),J=X.some((K)=>K.status==="failed"),G=X.some((K)=>K.status==="pending"||K.status==="processing");if(Q)await this.db.updateTable("events").set({status:"delivered",updated_at:new Date().toISOString()}).where("id","=",Y).execute();else if(J&&!G)await this.db.updateTable("events").set({status:"failed",updated_at:new Date().toISOString()}).where("id","=",Y).execute()}async resetStuckDeliveries(){let Y=await this.db.updateTable("event_deliveries").set({status:"pending"}).where("status","=","processing").executeTakeFirst();return Number(Y.numUpdatedRows??0)}async getEvent(Y,X){let Q=await this.db.selectFrom("events").selectAll().where("id","=",Y).where("organization_id","=",X).executeTakeFirst();if(!Q)return null;return{id:Q.id,organizationId:Q.organization_id,type:Q.type,source:Q.source,specversion:Q.specversion,subject:Q.subject,time:Q.time,datacontenttype:Q.datacontenttype,dataschema:Q.dataschema,data:Q.data?JSON.parse(Q.data):null,cron:Q.cron,status:Q.status,attempts:Q.attempts,lastError:Q.last_error,nextRetryAt:Q.next_retry_at,createdAt:Q.created_at,updatedAt:Q.updated_at}}async findActiveCronEvent(Y,X,Q,J){let G=await this.db.selectFrom("events").selectAll().where("organization_id","=",Y).where("type","=",X).where("source","=",Q).where("cron","=",J).where("status","in",["pending","processing","delivered"]).orderBy("created_at","desc").executeTakeFirst();if(!G)return null;return{id:G.id,organizationId:G.organization_id,type:G.type,source:G.source,specversion:G.specversion,subject:G.subject,time:G.time,datacontenttype:G.datacontenttype,dataschema:G.dataschema,data:G.data?JSON.parse(G.data):null,cron:G.cron,status:G.status,attempts:G.attempts,lastError:G.last_error,nextRetryAt:G.next_retry_at,createdAt:G.created_at,updatedAt:G.updated_at}}async cancelEvent(Y,X,Q){let J=await this.db.updateTable("events").set({status:"failed",last_error:"Cancelled by publisher",updated_at:new Date().toISOString()}).where("id","=",Y).where("organization_id","=",X).where("source","=",Q).where("status","in",["pending","processing"]).executeTakeFirst();if((J.numUpdatedRows??0n)>0n)await this.db.updateTable("event_deliveries").set({status:"failed",last_error:"Event cancelled by publisher"}).where("event_id","=",Y).where("status","in",["pending","processing"]).execute();return{success:(J.numUpdatedRows??0n)>0n}}async scheduleRetryWithoutAttemptIncrement(Y,X){if(Y.length===0)return;let Q=new Date(Date.now()+X).toISOString();await this.db.updateTable("event_deliveries").set({status:"pending",next_retry_at:Q}).where("id","in",Y).execute()}async ackDelivery(Y,X,Q){if(!await this.db.selectFrom("events").select(["id"]).where("id","=",Y).where("organization_id","=",X).executeTakeFirst())return{success:!1};let K=((await this.db.updateTable("event_deliveries").set({status:"delivered",delivered_at:new Date().toISOString()}).where("event_id","=",Y).where("status","in",["pending","processing"]).where((W)=>W.exists(W.selectFrom("event_subscriptions").select("id").whereRef("event_subscriptions.id","=","event_deliveries.subscription_id").where("event_subscriptions.connection_id","=",Q).where("event_subscriptions.organization_id","=",X))).executeTakeFirst()).numUpdatedRows??0n)>0n;if(K)await this.updateEventStatus(Y);return{success:K}}async syncSubscriptions(Y){let{organizationId:X,connectionId:Q,subscriptions:J}=Y,G=(w,I)=>{return`${w}::${I??""}`},K=await this.listSubscriptions(X,Q),W=new Map;for(let w of K)W.set(G(w.eventType,w.publisher),w);let Z=new Map;for(let w of J)Z.set(G(w.eventType,w.publisher),w);let H=new Date().toISOString(),F=[],V=[],$=[],q=0;for(let[w,I]of Z){let T=W.get(w);if(!T)F.push({id:crypto.randomUUID(),organization_id:X,connection_id:Q,event_type:I.eventType,publisher:I.publisher??null,filter:I.filter??null,enabled:1,created_at:H,updated_at:H});else{let P=T.filter??null,A=I.filter??null;if(P!==A)V.push({id:T.id,filter:A});else q++}}for(let[w,I]of W)if(!Z.has(w))$.push(I.id);if(F.length>0)await this.db.insertInto("event_subscriptions").values(F).execute();if(V.length>0)await Promise.all(V.map((w)=>this.db.updateTable("event_subscriptions").set({filter:w.filter,updated_at:H}).where("id","=",w.id).execute()));if($.length>0)await this.db.deleteFrom("event_subscriptions").where("id","in",$).execute();let B=F.length,D=V.length,O=$.length,L=await this.listSubscriptions(X,Q);return{created:B,updated:D,deleted:O,unchanged:q,subscriptions:L}}}function iM6(Y){return new nM6(Y)}function IX(Y,X,Q,J,G,K,W,Z){return IX.fromTZ(IX.tp(Y,X,Q,J,G,K,W),Z)}function t70(Y,X=new Date){let Q=X.toLocaleString("en-US",{timeZone:Y,timeZoneName:"shortOffset"}).split(" ").slice(-1)[0],J=X.toLocaleString("en-US").replace(/[\u202f]/," ");return Date.parse(`${J} GMT`)-Date.parse(`${J} ${Q}`)}function J71(Y,X){let Q=new Date(Date.parse(Y));if(isNaN(Q))throw Error("minitz: Invalid ISO8601 passed to parser.");let J=Y.substring(9);return Y.includes("Z")||J.includes("-")||J.includes("+")?IX.tp(Q.getUTCFullYear(),Q.getUTCMonth()+1,Q.getUTCDate(),Q.getUTCHours(),Q.getUTCMinutes(),Q.getUTCSeconds(),"Etc/UTC"):IX.tp(Q.getFullYear(),Q.getMonth()+1,Q.getDate(),Q.getHours(),Q.getMinutes(),Q.getSeconds(),X)}function G71(Y){if(Y===void 0&&(Y={}),delete Y.name,Y.legacyMode=Y.legacyMode===void 0?!0:Y.legacyMode,Y.paused=Y.paused===void 0?!1:Y.paused,Y.maxRuns=Y.maxRuns===void 0?1/0:Y.maxRuns,Y.catch=Y.catch===void 0?!1:Y.catch,Y.interval=Y.interval===void 0?0:parseInt(Y.interval.toString(),10),Y.utcOffset=Y.utcOffset===void 0?void 0:parseInt(Y.utcOffset.toString(),10),Y.unref=Y.unref===void 0?!1:Y.unref,Y.startAt&&(Y.startAt=new g5(Y.startAt,Y.timezone)),Y.stopAt&&(Y.stopAt=new g5(Y.stopAt,Y.timezone)),Y.interval!==null){if(isNaN(Y.interval))throw Error("CronOptions: Supplied value for interval is not a number");if(Y.interval<0)throw Error("CronOptions: Supplied value for interval can not be negative")}if(Y.utcOffset!==void 0){if(isNaN(Y.utcOffset))throw Error("CronOptions: Invalid value passed for utcOffset, should be number representing minutes offset from UTC.");if(Y.utcOffset<-870||Y.utcOffset>870)throw Error("CronOptions: utcOffset out of bounds.");if(Y.utcOffset!==void 0&&Y.timezone)throw Error("CronOptions: Combining 'utcOffset' with 'timezone' is not allowed.")}if(Y.unref!==!0&&Y.unref!==!1)throw Error("CronOptions: Unref should be either true, false or undefined(false).");return Y}function x2(Y){return Object.prototype.toString.call(Y)==="[object Function]"||typeof Y=="function"||Y instanceof Function}function W71(Y){return x2(Y)}function Z71(Y){typeof Deno<"u"&&typeof Deno.unrefTimer<"u"?Deno.unrefTimer(Y):Y&&typeof Y.unref<"u"&&Y.unref()}var e70=32,u2,sM6,aM6=class{pattern;timezone;second;minute;hour;day;month;dayOfWeek;lastDayOfMonth;starDOM;starDOW;constructor(Y,X){this.pattern=Y,this.timezone=X,this.second=Array(60).fill(0),this.minute=Array(60).fill(0),this.hour=Array(24).fill(0),this.day=Array(31).fill(0),this.month=Array(12).fill(0),this.dayOfWeek=Array(7).fill(0),this.lastDayOfMonth=!1,this.starDOM=!1,this.starDOW=!1,this.parse()}parse(){if(!(typeof this.pattern=="string"||this.pattern instanceof String))throw TypeError("CronPattern: Pattern has to be of type string.");this.pattern.indexOf("@")>=0&&(this.pattern=this.handleNicknames(this.pattern).trim());let Y=this.pattern.replace(/\s+/g," ").split(" ");if(Y.length<5||Y.length>6)throw TypeError("CronPattern: invalid configuration format ('"+this.pattern+"'), exactly five or six space separated parts are required.");if(Y.length===5&&Y.unshift("0"),Y[3].indexOf("L")>=0&&(Y[3]=Y[3].replace("L",""),this.lastDayOfMonth=!0),Y[3]=="*"&&(this.starDOM=!0),Y[4].length>=3&&(Y[4]=this.replaceAlphaMonths(Y[4])),Y[5].length>=3&&(Y[5]=this.replaceAlphaDays(Y[5])),Y[5]=="*"&&(this.starDOW=!0),this.pattern.indexOf("?")>=0){let X=new g5(new Date,this.timezone).getDate(!0);Y[0]=Y[0].replace("?",X.getSeconds().toString()),Y[1]=Y[1].replace("?",X.getMinutes().toString()),Y[2]=Y[2].replace("?",X.getHours().toString()),this.starDOM||(Y[3]=Y[3].replace("?",X.getDate().toString())),Y[4]=Y[4].replace("?",(X.getMonth()+1).toString()),this.starDOW||(Y[5]=Y[5].replace("?",X.getDay().toString()))}this.throwAtIllegalCharacters(Y),this.partToArray("second",Y[0],0,1),this.partToArray("minute",Y[1],0,1),this.partToArray("hour",Y[2],0,1),this.partToArray("day",Y[3],-1,1),this.partToArray("month",Y[4],-1,1),this.partToArray("dayOfWeek",Y[5],0,u2),this.dayOfWeek[7]&&(this.dayOfWeek[0]=this.dayOfWeek[7])}partToArray(Y,X,Q,J){let G=this[Y],K=Y==="day"&&this.lastDayOfMonth;if(X===""&&!K)throw TypeError("CronPattern: configuration entry "+Y+" ("+X+") is empty, check for trailing spaces.");if(X==="*")return G.fill(J);let W=X.split(",");if(W.length>1)for(let Z=0;Z<W.length;Z++)this.partToArray(Y,W[Z],Q,J);else X.indexOf("-")!==-1&&X.indexOf("/")!==-1?this.handleRangeWithStepping(X,Y,Q,J):X.indexOf("-")!==-1?this.handleRange(X,Y,Q,J):X.indexOf("/")!==-1?this.handleStepping(X,Y,Q,J):X!==""&&this.handleNumber(X,Y,Q,J)}throwAtIllegalCharacters(Y){for(let X=0;X<Y.length;X++)if((X===5?/[^/*0-9,\-#L]+/:/[^/*0-9,-]+/).test(Y[X]))throw TypeError("CronPattern: configuration entry "+X+" ("+Y[X]+") contains illegal characters.")}handleNumber(Y,X,Q,J){let G=this.extractNth(Y,X),K=parseInt(G[0],10)+Q;if(isNaN(K))throw TypeError("CronPattern: "+X+" is not a number: '"+Y+"'");this.setPart(X,K,G[1]||J)}setPart(Y,X,Q){if(!Object.prototype.hasOwnProperty.call(this,Y))throw TypeError("CronPattern: Invalid part specified: "+Y);if(Y==="dayOfWeek"){if(X===7&&(X=0),X<0||X>6)throw RangeError("CronPattern: Invalid value for dayOfWeek: "+X);this.setNthWeekdayOfMonth(X,Q);return}if(Y==="second"||Y==="minute"){if(X<0||X>=60)throw RangeError("CronPattern: Invalid value for "+Y+": "+X)}else if(Y==="hour"){if(X<0||X>=24)throw RangeError("CronPattern: Invalid value for "+Y+": "+X)}else if(Y==="day"){if(X<0||X>=31)throw RangeError("CronPattern: Invalid value for "+Y+": "+X)}else if(Y==="month"&&(X<0||X>=12))throw RangeError("CronPattern: Invalid value for "+Y+": "+X);this[Y][X]=Q}handleRangeWithStepping(Y,X,Q,J){let G=this.extractNth(Y,X),K=G[0].match(/^(\d+)-(\d+)\/(\d+)$/);if(K===null)throw TypeError("CronPattern: Syntax error, illegal range with stepping: '"+Y+"'");let[,W,Z,H]=K,F=parseInt(W,10)+Q,V=parseInt(Z,10)+Q,$=parseInt(H,10);if(isNaN(F))throw TypeError("CronPattern: Syntax error, illegal lower range (NaN)");if(isNaN(V))throw TypeError("CronPattern: Syntax error, illegal upper range (NaN)");if(isNaN($))throw TypeError("CronPattern: Syntax error, illegal stepping: (NaN)");if($===0)throw TypeError("CronPattern: Syntax error, illegal stepping: 0");if($>this[X].length)throw TypeError("CronPattern: Syntax error, steps cannot be greater than maximum value of part ("+this[X].length+")");if(F>V)throw TypeError("CronPattern: From value is larger than to value: '"+Y+"'");for(let q=F;q<=V;q+=$)this.setPart(X,q,G[1]||J)}extractNth(Y,X){let Q=Y,J;if(Q.includes("#")){if(X!=="dayOfWeek")throw Error("CronPattern: nth (#) only allowed in day-of-week field");J=Q.split("#")[1],Q=Q.split("#")[0]}return[Q,J]}handleRange(Y,X,Q,J){let G=this.extractNth(Y,X),K=G[0].split("-");if(K.length!==2)throw TypeError("CronPattern: Syntax error, illegal range: '"+Y+"'");let W=parseInt(K[0],10)+Q,Z=parseInt(K[1],10)+Q;if(isNaN(W))throw TypeError("CronPattern: Syntax error, illegal lower range (NaN)");if(isNaN(Z))throw TypeError("CronPattern: Syntax error, illegal upper range (NaN)");if(W>Z)throw TypeError("CronPattern: From value is larger than to value: '"+Y+"'");for(let H=W;H<=Z;H++)this.setPart(X,H,G[1]||J)}handleStepping(Y,X,Q,J){let G=this.extractNth(Y,X),K=G[0].split("/");if(K.length!==2)throw TypeError("CronPattern: Syntax error, illegal stepping: '"+Y+"'");K[0]===""&&(K[0]="*");let W=0;K[0]!=="*"&&(W=parseInt(K[0],10)+Q);let Z=parseInt(K[1],10);if(isNaN(Z))throw TypeError("CronPattern: Syntax error, illegal stepping: (NaN)");if(Z===0)throw TypeError("CronPattern: Syntax error, illegal stepping: 0");if(Z>this[X].length)throw TypeError("CronPattern: Syntax error, max steps for part is ("+this[X].length+")");for(let H=W;H<this[X].length;H+=Z)this.setPart(X,H,G[1]||J)}replaceAlphaDays(Y){return Y.replace(/-sun/gi,"-7").replace(/sun/gi,"0").replace(/mon/gi,"1").replace(/tue/gi,"2").replace(/wed/gi,"3").replace(/thu/gi,"4").replace(/fri/gi,"5").replace(/sat/gi,"6")}replaceAlphaMonths(Y){return Y.replace(/jan/gi,"1").replace(/feb/gi,"2").replace(/mar/gi,"3").replace(/apr/gi,"4").replace(/may/gi,"5").replace(/jun/gi,"6").replace(/jul/gi,"7").replace(/aug/gi,"8").replace(/sep/gi,"9").replace(/oct/gi,"10").replace(/nov/gi,"11").replace(/dec/gi,"12")}handleNicknames(Y){let X=Y.trim().toLowerCase();return X==="@yearly"||X==="@annually"?"0 0 1 1 *":X==="@monthly"?"0 0 1 * *":X==="@weekly"?"0 0 * * 0":X==="@daily"?"0 0 * * *":X==="@hourly"?"0 * * * *":Y}setNthWeekdayOfMonth(Y,X){if(typeof X!="number"&&X==="L")this.dayOfWeek[Y]=this.dayOfWeek[Y]|e70;else if(X===u2)this.dayOfWeek[Y]=u2;else if(X<6&&X>0)this.dayOfWeek[Y]=this.dayOfWeek[Y]|sM6[X-1];else throw TypeError(`CronPattern: nth weekday out of range, should be 1-5 or L. Value: ${X}, Type: ${typeof X}`)}},rM6,UK,g5=class Y{tz;ms;second;minute;hour;day;month;year;constructor(X,Q){if(this.tz=Q,X&&X instanceof Date)if(!isNaN(X))this.fromDate(X);else throw TypeError("CronDate: Invalid date passed to CronDate constructor");else if(X===void 0)this.fromDate(new Date);else if(X&&typeof X=="string")this.fromString(X);else if(X instanceof Y)this.fromCronDate(X);else throw TypeError("CronDate: Invalid type ("+typeof X+") passed to CronDate constructor")}isNthWeekdayOfMonth(X,Q,J,G){let K=new Date(Date.UTC(X,Q,J)).getUTCDay(),W=0;for(let Z=1;Z<=J;Z++)new Date(Date.UTC(X,Q,Z)).getUTCDay()===K&&W++;if(G&u2&&sM6[W-1]&G)return!0;if(G&e70){let Z=new Date(Date.UTC(X,Q+1,0)).getUTCDate();for(let H=J+1;H<=Z;H++)if(new Date(Date.UTC(X,Q,H)).getUTCDay()===K)return!1;return!0}return!1}fromDate(X){if(this.tz!==void 0)if(typeof this.tz=="number")this.ms=X.getUTCMilliseconds(),this.second=X.getUTCSeconds(),this.minute=X.getUTCMinutes()+this.tz,this.hour=X.getUTCHours(),this.day=X.getUTCDate(),this.month=X.getUTCMonth(),this.year=X.getUTCFullYear(),this.apply();else{let Q=IX.toTZ(X,this.tz);this.ms=X.getMilliseconds(),this.second=Q.s,this.minute=Q.i,this.hour=Q.h,this.day=Q.d,this.month=Q.m-1,this.year=Q.y}else this.ms=X.getMilliseconds(),this.second=X.getSeconds(),this.minute=X.getMinutes(),this.hour=X.getHours(),this.day=X.getDate(),this.month=X.getMonth(),this.year=X.getFullYear()}fromCronDate(X){this.tz=X.tz,this.year=X.year,this.month=X.month,this.day=X.day,this.hour=X.hour,this.minute=X.minute,this.second=X.second,this.ms=X.ms}apply(){if(this.month>11||this.day>rM6[this.month]||this.hour>59||this.minute>59||this.second>59||this.hour<0||this.minute<0||this.second<0){let X=new Date(Date.UTC(this.year,this.month,this.day,this.hour,this.minute,this.second,this.ms));return this.ms=X.getUTCMilliseconds(),this.second=X.getUTCSeconds(),this.minute=X.getUTCMinutes(),this.hour=X.getUTCHours(),this.day=X.getUTCDate(),this.month=X.getUTCMonth(),this.year=X.getUTCFullYear(),!0}else return!1}fromString(X){if(typeof this.tz=="number"){let Q=IX.fromTZISO(X);this.ms=Q.getUTCMilliseconds(),this.second=Q.getUTCSeconds(),this.minute=Q.getUTCMinutes(),this.hour=Q.getUTCHours(),this.day=Q.getUTCDate(),this.month=Q.getUTCMonth(),this.year=Q.getUTCFullYear(),this.apply()}else return this.fromDate(IX.fromTZISO(X,this.tz))}findNext(X,Q,J,G){let K=this[Q],W;J.lastDayOfMonth&&(this.month!==1?W=rM6[this.month]:W=new Date(Date.UTC(this.year,this.month+1,0,0,0,0,0)).getUTCDate());let Z=!J.starDOW&&Q=="day"?new Date(Date.UTC(this.year,this.month,1,0,0,0,0)).getUTCDay():void 0;for(let H=this[Q]+G;H<J[Q].length;H++){let F=J[Q][H];if(Q==="day"&&J.lastDayOfMonth&&H-G==W&&(F=1),Q==="day"&&!J.starDOW){let V=J.dayOfWeek[(Z+(H-G-1))%7];if(V&&V&u2)V=this.isNthWeekdayOfMonth(this.year,this.month,H-G,V)?1:0;else if(V)throw Error(`CronDate: Invalid value for dayOfWeek encountered. ${V}`);X.legacyMode&&!J.starDOM?F=F||V:F=F&&V}if(F)return this[Q]=H-G,K!==this[Q]?2:1}return 3}recurse(X,Q,J){let G=this.findNext(Q,UK[J][0],X,UK[J][2]);if(G>1){let K=J+1;for(;K<UK.length;)this[UK[K][0]]=-UK[K][2],K++;if(G===3)return this[UK[J][1]]++,this[UK[J][0]]=-UK[J][2],this.apply(),this.recurse(X,Q,0);if(this.apply())return this.recurse(X,Q,J-1)}return J+=1,J>=UK.length?this:this.year>=3000?null:this.recurse(X,Q,J)}increment(X,Q,J){return this.second+=Q.interval!==void 0&&Q.interval>1&&J?Q.interval:1,this.ms=0,this.apply(),this.recurse(X,Q,0)}getDate(X){return X||this.tz===void 0?new Date(this.year,this.month,this.day,this.hour,this.minute,this.second,this.ms):typeof this.tz=="number"?new Date(Date.UTC(this.year,this.month,this.day,this.hour,this.minute-this.tz,this.second,this.ms)):IX.fromTZ(IX.tp(this.year,this.month+1,this.day,this.hour,this.minute,this.second,this.tz),!1)}getTime(){return this.getDate(!1).getTime()}},oM6=30000,vu,_u=class{name;options;_states;fn;constructor(Y,X,Q){let J,G;if(x2(X))G=X;else if(typeof X=="object")J=X;else if(X!==void 0)throw Error("Cron: Invalid argument passed for optionsIn. Should be one of function, or object (options).");if(x2(Q))G=Q;else if(typeof Q=="object")J=Q;else if(Q!==void 0)throw Error("Cron: Invalid argument passed for funcIn. Should be one of function, or object (options).");if(this.name=J?.name,this.options=G71(J),this._states={kill:!1,blocking:!1,previousRun:void 0,currentRun:void 0,once:void 0,currentTimeout:void 0,maxRuns:J?J.maxRuns:void 0,paused:J?J.paused:!1,pattern:new aM6("* * * * *")},Y&&(Y instanceof Date||typeof Y=="string"&&Y.indexOf(":")>0)?this._states.once=new g5(Y,this.options.timezone||this.options.utcOffset):this._states.pattern=new aM6(Y,this.options.timezone),this.name){if(vu.find((K)=>K.name===this.name))throw Error("Cron: Tried to initialize new named job '"+this.name+"', but name already taken.");vu.push(this)}return G!==void 0&&W71(G)&&(this.fn=G,this.schedule()),this}nextRun(Y){let X=this._next(Y);return X?X.getDate(!1):null}nextRuns(Y,X){this._states.maxRuns!==void 0&&Y>this._states.maxRuns&&(Y=this._states.maxRuns);let Q=[],J=X||this._states.currentRun||void 0;for(;Y--&&(J=this.nextRun(J));)Q.push(J);return Q}getPattern(){return this._states.pattern?this._states.pattern.pattern:void 0}isRunning(){let Y=this.nextRun(this._states.currentRun),X=!this._states.paused,Q=this.fn!==void 0,J=!this._states.kill;return X&&Q&&J&&Y!==null}isStopped(){return this._states.kill}isBusy(){return this._states.blocking}currentRun(){return this._states.currentRun?this._states.currentRun.getDate():null}previousRun(){return this._states.previousRun?this._states.previousRun.getDate():null}msToNext(Y){let X=this._next(Y);return X?Y instanceof g5||Y instanceof Date?X.getTime()-Y.getTime():X.getTime()-new g5(Y).getTime():null}stop(){this._states.kill=!0,this._states.currentTimeout&&clearTimeout(this._states.currentTimeout);let Y=vu.indexOf(this);Y>=0&&vu.splice(Y,1)}pause(){return this._states.paused=!0,!this._states.kill}resume(){return this._states.paused=!1,!this._states.kill}schedule(Y){if(Y&&this.fn)throw Error("Cron: It is not allowed to schedule two functions using the same Croner instance.");Y&&(this.fn=Y);let X=this.msToNext(),Q=this.nextRun(this._states.currentRun);return X==null||isNaN(X)||Q===null?this:(X>oM6&&(X=oM6),this._states.currentTimeout=setTimeout(()=>this._checkTrigger(Q),X),this._states.currentTimeout&&this.options.unref&&Z71(this._states.currentTimeout),this)}async _trigger(Y){if(this._states.blocking=!0,this._states.currentRun=new g5(void 0,this.options.timezone||this.options.utcOffset),this.options.catch)try{this.fn!==void 0&&await this.fn(this,this.options.context)}catch(X){x2(this.options.catch)&&this.options.catch(X,this)}else this.fn!==void 0&&await this.fn(this,this.options.context);this._states.previousRun=new g5(Y,this.options.timezone||this.options.utcOffset),this._states.blocking=!1}async trigger(){await this._trigger()}runsLeft(){return this._states.maxRuns}_checkTrigger(Y){let X=new Date,Q=!this._states.paused&&X.getTime()>=Y.getTime(),J=this._states.blocking&&this.options.protect;Q&&!J?(this._states.maxRuns!==void 0&&this._states.maxRuns--,this._trigger()):Q&&J&&x2(this.options.protect)&&setTimeout(()=>this.options.protect(this),0),this.schedule()}_next(Y){let X=!!(Y||this._states.currentRun),Q=!1;!Y&&this.options.startAt&&this.options.interval&&([Y,X]=this._calculatePreviousRun(Y,X),Q=!Y),Y=new g5(Y,this.options.timezone||this.options.utcOffset),this.options.startAt&&Y&&Y.getTime()<this.options.startAt.getTime()&&(Y=this.options.startAt);let J=this._states.once||new g5(Y,this.options.timezone||this.options.utcOffset);return!Q&&J!==this._states.once&&(J=J.increment(this._states.pattern,this.options,X)),this._states.once&&this._states.once.getTime()<=Y.getTime()||J===null||this._states.maxRuns!==void 0&&this._states.maxRuns<=0||this._states.kill||this.options.stopAt&&J.getTime()>=this.options.stopAt.getTime()?null:J}_calculatePreviousRun(Y,X){let Q=new g5(void 0,this.options.timezone||this.options.utcOffset),J=Y;if(this.options.startAt.getTime()<=Q.getTime()){J=this.options.startAt;let G=J.getTime()+this.options.interval*1000;for(;G<=Q.getTime();)J=new g5(J,this.options.timezone||this.options.utcOffset).increment(this._states.pattern,this.options,!0),G=J.getTime()+this.options.interval*1000;X=!0}return J===null&&(J=void 0),[J,X]}};var YW0=S(()=>{IX.fromTZISO=(Y,X,Q)=>IX.fromTZ(J71(Y,X),Q);IX.fromTZ=function(Y,X){let Q=new Date(Date.UTC(Y.y,Y.m-1,Y.d,Y.h,Y.i,Y.s)),J=t70(Y.tz,Q),G=new Date(Q.getTime()-J),K=t70(Y.tz,G);if(K-J===0)return G;{let W=new Date(Q.getTime()-K),Z=t70(Y.tz,W);if(Z-K===0)return W;if(!X&&Z-K>0)return W;if(X)throw Error("Invalid date passed to fromTZ()");return G}};IX.toTZ=function(Y,X){let Q=Y.toLocaleString("en-US",{timeZone:X}).replace(/[\u202f]/," "),J=new Date(Q);return{y:J.getFullYear(),m:J.getMonth()+1,d:J.getDate(),h:J.getHours(),i:J.getMinutes(),s:J.getSeconds(),tz:X}};IX.tp=(Y,X,Q,J,G,K,W)=>({y:Y,m:X,d:Q,h:J,i:G,s:K,tz:W});IX.minitz=IX;u2=31|e70,sM6=[1,2,4,8,16],rM6=[31,28,31,30,31,30,31,31,30,31,30,31],UK=[["month","year",0],["day","month",-1],["hour","day",0],["minute","hour",0],["second","minute",0]];vu=[]});var yu;var XW0=S(()=>{yu={pollIntervalMs:5000,batchSize:100,maxAttempts:20,retryDelayMs:1000,maxDelayMs:3600000}});function tM6(){return async(Y,X)=>{try{let Q=await p3.create(),J=await uM6(Y,Q),K=await PG0.forClient(J).ON_EVENTS({events:X});return{success:K.success,error:K.error,retryAfter:K.retryAfter,results:K.results}}catch(Q){let J=Q instanceof Error?Q.message:String(Q);return console.error(`[EventBus] Failed to notify connection ${Y}:`,J),{success:!1,error:J}}}}var eM6=S(()=>{Su();Wu();b2()});function YA6(Y){return{specversion:"1.0",id:Y.id,source:Y.source,type:Y.type,time:Y.time,subject:Y.subject??void 0,datacontenttype:Y.datacontenttype,dataschema:Y.dataschema??void 0,data:Y.data??void 0}}function K71(Y){let X=new Map;for(let J of Y){let G=J.subscription.connectionId,K=X.get(G);if(K){if(K.deliveryIds.push(J.delivery.id),!K.seenEventIds.has(J.event.id))K.seenEventIds.add(J.event.id),K.events.push(YA6(J.event))}else X.set(G,{connectionId:J.subscription.connectionId,deliveryIds:[J.delivery.id],events:[YA6(J.event)],seenEventIds:new Set([J.event.id])})}let Q=new Map;for(let[J,G]of X)Q.set(J,{connectionId:G.connectionId,deliveryIds:G.deliveryIds,events:G.events});return Q}class QW0{storage;notifySubscriber;running=!1;processing=!1;config;constructor(Y,X){this.storage=Y;this.notifySubscriber=tM6(),this.config={...yu,...X}}async start(){if(this.running)return;let Y=await this.storage.resetStuckDeliveries();if(Y>0)console.log(`[EventBus] Reset ${Y} stuck deliveries from previous shutdown`);this.running=!0}stop(){this.running=!1,console.log("[EventBus] Worker stopped")}isRunning(){return this.running}async processNow(){if(!this.running)return;if(this.processing)return;this.processing=!0;try{await this.processEvents()}catch(Y){console.error("[EventBus] Error processing events:",Y)}finally{this.processing=!1}}async processEvents(){let Y=await this.storage.claimPendingDeliveries(this.config.batchSize);if(Y.length===0)return;let X=K71(Y),Q=new Set;for(let[J,G]of X){try{let K=await this.notifySubscriber(G.connectionId,G.events);if(K.results&&Object.keys(K.results).length>0)await this.processPerEventResults(G,K);else if(K.success)await this.storage.markDeliveriesDelivered(G.deliveryIds);else if(K.retryAfter&&K.retryAfter>0)await this.storage.scheduleRetryWithoutAttemptIncrement(G.deliveryIds,K.retryAfter);else await this.storage.markDeliveriesFailed(G.deliveryIds,K.error||"Subscriber returned success=false",this.config.maxAttempts,this.config.retryDelayMs,this.config.maxDelayMs)}catch(K){let W=K instanceof Error?K.message:String(K);console.error(`[EventBus] Failed to notify subscription ${J}:`,W),await this.storage.markDeliveriesFailed(G.deliveryIds,W,this.config.maxAttempts,this.config.retryDelayMs,this.config.maxDelayMs)}for(let K of Y)if(G.deliveryIds.includes(K.delivery.id))Q.add(K.event.id)}for(let J of Q)try{await this.storage.updateEventStatus(J);let G=Y.find((K)=>K.event.id===J)?.event;if(G?.cron)await this.scheduleNextCronDelivery(G)}catch(G){console.error(`[EventBus] Failed to update event status ${J}:`,G)}}async processPerEventResults(Y,X){let Q=[],J=new Map,G=[],K=new Map;for(let W=0;W<Y.events.length;W++){let Z=Y.events?.[W];if(!Z)continue;let H=Y.deliveryIds?.[W];if(!H)continue;K.set(Z.id,H)}for(let W of Y.events){let Z=K.get(W.id);if(!Z)continue;let H=X.results?.[W.id];if(H)if(H.success)Q.push(Z);else if(H.retryAfter&&H.retryAfter>0){let F=J.get(H.retryAfter)||[];F.push(Z),J.set(H.retryAfter,F)}else G.push({deliveryId:Z,error:H.error||"Event processing failed"});else if(X.success)Q.push(Z);else if(X.retryAfter&&X.retryAfter>0){let F=J.get(X.retryAfter)||[];F.push(Z),J.set(X.retryAfter,F)}else G.push({deliveryId:Z,error:X.error||"Batch processing failed"})}if(Q.length>0)await this.storage.markDeliveriesDelivered(Q);for(let[W,Z]of J)await this.storage.scheduleRetryWithoutAttemptIncrement(Z,W);if(G.length>0){let W=new Map;for(let{deliveryId:Z,error:H}of G){let F=W.get(H)||[];F.push(Z),W.set(H,F)}for(let[Z,H]of W)await this.storage.markDeliveriesFailed(H,Z,this.config.maxAttempts,this.config.retryDelayMs,this.config.maxDelayMs)}}async scheduleNextCronDelivery(Y){if(!Y.cron)return;try{let Q=new _u(Y.cron).nextRun();if(!Q){console.log(`[EventBus] Cron expression for event ${Y.id} has no more runs`);return}let J=Q.toISOString(),G=await this.storage.getMatchingSubscriptions(Y);if(G.length===0){console.log(`[EventBus] No subscriptions for cron event ${Y.id}, skipping next delivery`);return}await this.storage.createDeliveries(Y.id,G.map((K)=>K.id),J),console.log(`[EventBus] Scheduled next cron delivery for event ${Y.id} at ${J}`)}catch(X){console.error(`[EventBus] Failed to schedule next cron delivery for event ${Y.id}:`,X)}}}var XA6=S(()=>{YW0();XW0();eM6()});class JW0{storage;worker;notifyStrategy;running=!1;constructor(Y){this.storage=Y.storage,this.notifyStrategy=Y.notifyStrategy,this.worker=new QW0(this.storage,Y.config)}async publish(Y,X,Q){if(Q.deliverAt&&Q.cron)throw Error("Cannot set both deliverAt and cron. Use one or the other.");let J;if(Q.cron){try{let V=new _u(Q.cron).nextRun();if(!V)throw Error("Cron expression does not produce a next run time");J=V.toISOString()}catch(F){throw Error(`Invalid cron expression: ${F instanceof Error?F.message:String(F)}`)}let H=await this.storage.findActiveCronEvent(Y,Q.type,X,Q.cron);if(H)return H}let G=crypto.randomUUID(),K=new Date().toISOString(),W=await this.storage.publishEvent({id:G,organizationId:Y,type:Q.type,source:X,subject:Q.subject,time:K,data:Q.data,cron:Q.cron}),Z=await this.storage.getMatchingSubscriptions(W);if(Z.length>0){let H=Q.deliverAt??J;if(await this.storage.createDeliveries(G,Z.map((F)=>F.id),H),this.notifyStrategy&&!H)await this.notifyStrategy.notify(G).catch((F)=>{console.warn("[EventBus] Notify failed (non-critical):",F)})}return W}async subscribe(Y,X){return this.storage.subscribe({id:crypto.randomUUID(),organizationId:Y,connectionId:X.connectionId,publisher:X.publisher,eventType:X.eventType,filter:X.filter})}async unsubscribe(Y,X){return this.storage.unsubscribe(X,Y)}async listSubscriptions(Y,X){return this.storage.listSubscriptions(Y,X)}async getSubscription(Y,X){return this.storage.getSubscription(X,Y)}async getEvent(Y,X){return this.storage.getEvent(X,Y)}async cancelEvent(Y,X,Q){return this.storage.cancelEvent(X,Y,Q)}async ackEvent(Y,X,Q){return this.storage.ackDelivery(X,Y,Q)}async syncSubscriptions(Y,X){return this.storage.syncSubscriptions({organizationId:Y,...X})}async start(){if(this.running)return;if(this.running=!0,await this.worker.start(),this.notifyStrategy)await this.notifyStrategy.start(()=>{this.worker.processNow().catch((Y)=>{console.error("[EventBus] Error processing after notify:",Y)})});await this.worker.processNow().catch((Y)=>{console.error("[EventBus] Error processing pending events on startup:",Y)})}async stop(){if(!this.running)return;if(this.running=!1,this.worker.stop(),this.notifyStrategy)try{await this.notifyStrategy.stop()}catch(Y){console.error("[EventBus] Error stopping notify strategy:",Y)}console.log("[EventBus] Stopped")}isRunning(){return this.running}}var QA6=S(()=>{YW0();XA6()});function JA6(...Y){return{async start(X){await Promise.all(Y.map((Q)=>Q.start(X)))},async stop(){await Promise.all(Y.map((X)=>X.stop().catch((Q)=>{console.error("[NotifyStrategy] Error stopping strategy:",Q)})))},async notify(X){await Promise.all(Y.map((Q)=>Q.notify(X).catch((J)=>{console.warn("[NotifyStrategy] Notify failed (non-critical):",J)})))}}}class fu{intervalMs;timer=null;onNotify=null;constructor(Y){this.intervalMs=Y}async start(Y){if(this.timer)return;this.onNotify=Y,this.scheduleNext(),console.log(`[Polling] Started polling every ${this.intervalMs}ms`)}async stop(){if(this.timer)clearTimeout(this.timer),this.timer=null,console.log("[Polling] Stopped polling");this.onNotify=null}async notify(Y){if(this.onNotify)this.onNotify()}scheduleNext(){this.timer=setTimeout(()=>{if(this.onNotify)this.onNotify();if(this.timer)this.scheduleNext()},this.intervalMs)}}import{sql as H71}from"kysely";class GW0{db;pool;listenClient=null;onNotify=null;constructor(Y,X){this.db=Y;this.pool=X}async start(Y){if(this.listenClient)return;this.onNotify=Y;try{this.listenClient=await this.pool.connect(),this.listenClient.on("notification",(X)=>{if(X.channel===VO&&this.onNotify)this.onNotify()}),this.listenClient.on("error",(X)=>{console.error("[PostgresNotify] Connection error:",X),this.cleanup()}),await this.listenClient.query(`LISTEN ${VO}`),console.log("[PostgresNotify] Started LISTEN on",VO)}catch(X){console.error("[PostgresNotify] Failed to start LISTEN:",X),this.cleanup()}}async stop(){if(this.listenClient){try{await this.listenClient.query(`UNLISTEN ${VO}`),console.log("[PostgresNotify] Stopped LISTEN on",VO)}catch{}this.cleanup()}}async notify(Y){try{await H71`SELECT pg_notify(${VO}, ${Y})`.execute(this.db)}catch(X){console.warn("[PostgresNotify] Failed to send NOTIFY:",X)}}cleanup(){if(this.listenClient)this.listenClient.release(),this.listenClient=null;this.onNotify=null}}var VO="mesh_events";var GA6=()=>{};function WA6(Y,X){let Q=iM6(Y.db),J=X?.pollIntervalMs??yu.pollIntervalMs,G=Y.type==="postgres"?JA6(new fu(J),new GW0(Y.db,Y.pool)):new fu(J);return new JW0({storage:Q,config:X,notifyStrategy:G})}var ZA6=S(()=>{QA6();XW0();GA6()});var KA6;var HA6=S(()=>{KA6={google:{name:"Google",icon:"https://assets.decocache.com/webdraw/eb7480aa-a68b-4ce4-98ff-36aa121762a7/google.svg"},github:{name:"GitHub",icon:"https://assets.decocache.com/webdraw/5f999dcb-c8a6-4572-948c-9996ef1d502f/github.svg"},microsoft:{name:"Microsoft",icon:"https://assets.decocache.com/mcp/aa6f6e1a-6526-4bca-99cc-82e2ec38b0e4/microsoft.png"}}});var FA6,VA6;var $A6=S(()=>{gG();ZO();HA6();FA6=new M9;FA6.get("/config",async(Y)=>{try{let X=Object.keys(w9.socialProviders??{}),Q=X.length>0,J=X.map((W)=>({name:W,icon:KA6[W].icon})),G=process.env.UNSAFE_ALLOW_STDIO_TRANSPORT==="true",K={emailAndPassword:{enabled:w9.emailAndPassword?.enabled??!1},magicLink:{enabled:w9.magicLinkConfig?.enabled??!1},socialProviders:{enabled:Q,providers:J},sso:w9.ssoConfig?{enabled:!0,providerId:w9.ssoConfig.providerId}:{enabled:!1},stdioEnabled:G};return Y.json({success:!0,config:K})}catch(X){let Q=X instanceof Error?X.message:"Failed to load auth config";return Y.json({success:!1,error:Q},500)}});VA6=FA6});function mG(Y){if(Y==null)return"unknown error";if(typeof Y==="string")return Y;if(Y instanceof Error)return Y.message;return JSON.stringify(Y)}var gA6="vercel.ai.error",F71,qA6,zA6,M6,mA6="AI_APICallError",lA6,V71,BA6,UA6,J9,dA6="AI_EmptyResponseBodyError",pA6,$71,DA6,OA6,cA6,nA6="AI_InvalidArgumentError",iA6,q71,NA6,LA6,aA6,rA6="AI_InvalidPromptError",oA6,z71,wA6,MA6,qq,sA6="AI_InvalidResponseDataError",tA6,B71,AA6,TA6,JP8,eA6="AI_JSONParseError",YT6,U71,PA6,EA6,g2,XT6="AI_LoadAPIKeyError",QT6,D71,CA6,IA6,GP8,JT6="AI_LoadSettingError",GT6,O71,RA6,jA6,WP8,WT6="AI_NoContentGeneratedError",ZT6,N71,SA6,kA6,ZP8,KT6="AI_NoSuchModelError",HT6,L71,vA6,_A6,KP8,FT6="AI_TooManyEmbeddingValuesForCallError",VT6,w71,yA6,fA6,HP8,$T6="AI_TypeValidationError",qT6,M71,hA6,bA6,rQ,zT6="AI_UnsupportedFunctionalityError",BT6,A71,xA6,uA6,UT6;var w1=S(()=>{F71=Symbol.for(gA6),M6=class Y extends(zA6=Error,qA6=F71,zA6){constructor({name:X,message:Q,cause:J}){super(Q);this[qA6]=!0,this.name=X,this.cause=J}static isInstance(X){return Y.hasMarker(X,gA6)}static hasMarker(X,Q){let J=Symbol.for(Q);return X!=null&&typeof X==="object"&&J in X&&typeof X[J]==="boolean"&&X[J]===!0}},lA6=`vercel.ai.error.${mA6}`,V71=Symbol.for(lA6),J9=class extends(UA6=M6,BA6=V71,UA6){constructor({message:Y,url:X,requestBodyValues:Q,statusCode:J,responseHeaders:G,responseBody:K,cause:W,isRetryable:Z=J!=null&&(J===408||J===409||J===429||J>=500),data:H}){super({name:mA6,message:Y,cause:W});this[BA6]=!0,this.url=X,this.requestBodyValues=Q,this.statusCode=J,this.responseHeaders=G,this.responseBody=K,this.isRetryable=Z,this.data=H}static isInstance(Y){return M6.hasMarker(Y,lA6)}},pA6=`vercel.ai.error.${dA6}`,$71=Symbol.for(pA6),cA6=class extends(OA6=M6,DA6=$71,OA6){constructor({message:Y="Empty response body"}={}){super({name:dA6,message:Y});this[DA6]=!0}static isInstance(Y){return M6.hasMarker(Y,pA6)}};iA6=`vercel.ai.error.${nA6}`,q71=Symbol.for(iA6),aA6=class extends(LA6=M6,NA6=q71,LA6){constructor({message:Y,cause:X,argument:Q}){super({name:nA6,message:Y,cause:X});this[NA6]=!0,this.argument=Q}static isInstance(Y){return M6.hasMarker(Y,iA6)}},oA6=`vercel.ai.error.${rA6}`,z71=Symbol.for(oA6),qq=class extends(MA6=M6,wA6=z71,MA6){constructor({prompt:Y,message:X,cause:Q}){super({name:rA6,message:`Invalid prompt: ${X}`,cause:Q});this[wA6]=!0,this.prompt=Y}static isInstance(Y){return M6.hasMarker(Y,oA6)}},tA6=`vercel.ai.error.${sA6}`,B71=Symbol.for(tA6),JP8=class extends(TA6=M6,AA6=B71,TA6){constructor({data:Y,message:X=`Invalid response data: ${JSON.stringify(Y)}.`}){super({name:sA6,message:X});this[AA6]=!0,this.data=Y}static isInstance(Y){return M6.hasMarker(Y,tA6)}},YT6=`vercel.ai.error.${eA6}`,U71=Symbol.for(YT6),g2=class extends(EA6=M6,PA6=U71,EA6){constructor({text:Y,cause:X}){super({name:eA6,message:`JSON parsing failed: Text: ${Y}.
|
|
1189
|
+
Error message: ${mG(X)}`,cause:X});this[PA6]=!0,this.text=Y}static isInstance(Y){return M6.hasMarker(Y,YT6)}},QT6=`vercel.ai.error.${XT6}`,D71=Symbol.for(QT6),GP8=class extends(IA6=M6,CA6=D71,IA6){constructor({message:Y}){super({name:XT6,message:Y});this[CA6]=!0}static isInstance(Y){return M6.hasMarker(Y,QT6)}},GT6=`vercel.ai.error.${JT6}`,O71=Symbol.for(GT6),WP8=class extends(jA6=M6,RA6=O71,jA6){constructor({message:Y}){super({name:JT6,message:Y});this[RA6]=!0}static isInstance(Y){return M6.hasMarker(Y,GT6)}},ZT6=`vercel.ai.error.${WT6}`,N71=Symbol.for(ZT6),ZP8=class extends(kA6=M6,SA6=N71,kA6){constructor({message:Y="No content generated."}={}){super({name:WT6,message:Y});this[SA6]=!0}static isInstance(Y){return M6.hasMarker(Y,ZT6)}},HT6=`vercel.ai.error.${KT6}`,L71=Symbol.for(HT6),KP8=class extends(_A6=M6,vA6=L71,_A6){constructor({errorName:Y=KT6,modelId:X,modelType:Q,message:J=`No such ${Q}: ${X}`}){super({name:Y,message:J});this[vA6]=!0,this.modelId=X,this.modelType=Q}static isInstance(Y){return M6.hasMarker(Y,HT6)}},VT6=`vercel.ai.error.${FT6}`,w71=Symbol.for(VT6),HP8=class extends(fA6=M6,yA6=w71,fA6){constructor(Y){super({name:FT6,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[yA6]=!0,this.provider=Y.provider,this.modelId=Y.modelId,this.maxEmbeddingsPerCall=Y.maxEmbeddingsPerCall,this.values=Y.values}static isInstance(Y){return M6.hasMarker(Y,VT6)}},qT6=`vercel.ai.error.${$T6}`,M71=Symbol.for(qT6),rQ=class Y extends(bA6=M6,hA6=M71,bA6){constructor({value:X,cause:Q}){super({name:$T6,message:`Type validation failed: Value: ${JSON.stringify(X)}.
|
|
1190
1190
|
Error message: ${mG(Q)}`,cause:Q});this[hA6]=!0,this.value=X}static isInstance(X){return M6.hasMarker(X,qT6)}static wrap({value:X,cause:Q}){return Y.isInstance(Q)&&Q.value===X?Q:new Y({value:X,cause:Q})}},BT6=`vercel.ai.error.${zT6}`,A71=Symbol.for(BT6),UT6=class extends(uA6=M6,xA6=A71,uA6){constructor({functionality:Y,message:X=`'${Y}' functionality not supported.`}){super({name:zT6,message:X});this[xA6]=!0,this.functionality=Y}static isInstance(Y){return M6.hasMarker(Y,BT6)}}});var DT6=()=>{};function Bq(...Y){return Y.reduce((X,Q)=>({...X,...Q!=null?Q:{}}),{})}async function TT6(Y,X){if(Y==null)return Promise.resolve();let Q=X==null?void 0:X.abortSignal;return new Promise((J,G)=>{if(Q==null?void 0:Q.aborted){G(OT6());return}let K=setTimeout(()=>{W(),J()},Y),W=()=>{clearTimeout(K),Q==null||Q.removeEventListener("abort",Z)},Z=()=>{W(),G(OT6())};Q==null||Q.addEventListener("abort",Z)})}function OT6(){return new DOMException("Delay was aborted","AbortError")}function m2(Y){return Object.fromEntries([...Y.headers])}function $O(Y){let X=Y.replace(/-/g,"+").replace(/_/g,"/"),Q=P71(X);return Uint8Array.from(Q,(J)=>J.codePointAt(0))}function Dq(Y){let X="";for(let Q=0;Q<Y.length;Q++)X+=String.fromCodePoint(Y[Q]);return T71(X)}function qO(Y){if(Y==null)return"unknown error";if(typeof Y==="string")return Y;if(Y instanceof Error)return Y.message;return JSON.stringify(Y)}function DK(Y){return(Y instanceof Error||Y instanceof DOMException)&&(Y.name==="AbortError"||Y.name==="ResponseAborted"||Y.name==="TimeoutError")}function j71(Y){if(!(Y instanceof Error))return!1;let X=Y.code;if(typeof X==="string"&&R71.includes(X))return!0;return!1}function CT6({error:Y,url:X,requestBodyValues:Q}){if(DK(Y))return Y;if(Y instanceof TypeError&&I71.includes(Y.message.toLowerCase())){let J=Y.cause;if(J!=null)return new J9({message:`Cannot connect to API: ${J.message}`,cause:J,url:X,requestBodyValues:Q,isRetryable:!0})}if(j71(Y))return new J9({message:`Cannot connect to API: ${Y.message}`,cause:Y,url:X,requestBodyValues:Q,isRetryable:!0});return Y}function bu(Y=globalThis){var X,Q,J;if(Y.window)return"runtime/browser";if((X=Y.navigator)==null?void 0:X.userAgent)return`runtime/${Y.navigator.userAgent.toLowerCase()}`;if((J=(Q=Y.process)==null?void 0:Q.versions)==null?void 0:J.node)return`runtime/node.js/${Y.process.version.substring(0)}`;if(Y.EdgeRuntime)return"runtime/vercel-edge";return"runtime/unknown"}function S71(Y){if(Y==null)return{};let X={};if(Y instanceof Headers)Y.forEach((Q,J)=>{X[J.toLowerCase()]=Q});else{if(!Array.isArray(Y))Y=Object.entries(Y);for(let[Q,J]of Y)if(J!=null)X[Q.toLowerCase()]=J}return X}function OK(Y,...X){let Q=new Headers(S71(Y)),J=Q.get("user-agent")||"";return Q.set("user-agent",[J,...X].filter(Boolean).join(" ")),Object.fromEntries(Q.entries())}function RT6(Y){return Y!=null}function jT6({mediaType:Y,url:X,supportedUrls:Q}){return X=X.toLowerCase(),Y=Y.toLowerCase(),Object.entries(Q).map(([J,G])=>{let K=J.toLowerCase();return K==="*"||K==="*/*"?{mediaTypePrefix:"",regexes:G}:{mediaTypePrefix:K.replace(/\*/,""),regexes:G}}).filter(({mediaTypePrefix:J})=>Y.startsWith(J)).flatMap(({regexes:J})=>J).some((J)=>J.test(X))}function l2({settingValue:Y,environmentVariableName:X}){if(typeof Y==="string")return Y;if(Y!=null||typeof process>"u")return;if(Y=process.env[X],Y==null||typeof Y!=="string")return;return Y}function wT6(Y){let X=JSON.parse(Y);if(X===null||typeof X!=="object")return X;if(v71.test(Y)===!1&&_71.test(Y)===!1)return X;return y71(X)}function y71(Y){let X=[Y];while(X.length){let Q=X;X=[];for(let J of Q){if(Object.prototype.hasOwnProperty.call(J,"__proto__"))throw SyntaxError("Object contains forbidden prototype property");if(Object.prototype.hasOwnProperty.call(J,"constructor")&&Object.prototype.hasOwnProperty.call(J.constructor,"prototype"))throw SyntaxError("Object contains forbidden prototype property");for(let G in J){let K=J[G];if(K&&typeof K==="object")X.push(K)}}}return Y}function ST6(Y){let{stackTraceLimit:X}=Error;try{Error.stackTraceLimit=0}catch(Q){return wT6(Y)}try{return wT6(Y)}finally{Error.stackTraceLimit=X}}function VW0(Y){if(Y.type==="object"||Array.isArray(Y.type)&&Y.type.includes("object")){Y.additionalProperties=!1;let{properties:Q}=Y;if(Q!=null)for(let J of Object.keys(Q))Q[J]=zq(Q[J])}if(Y.items!=null)Y.items=Array.isArray(Y.items)?Y.items.map(zq):zq(Y.items);if(Y.anyOf!=null)Y.anyOf=Y.anyOf.map(zq);if(Y.allOf!=null)Y.allOf=Y.allOf.map(zq);if(Y.oneOf!=null)Y.oneOf=Y.oneOf.map(zq);let{definitions:X}=Y;if(X!=null)for(let Q of Object.keys(X))X[Q]=zq(X[Q]);return Y}function zq(Y){if(typeof Y==="boolean")return Y;return VW0(Y)}function kJ(){return{}}function b71(Y,X){var Q,J,G;let K={type:"array"};if(((Q=Y.type)==null?void 0:Q._def)&&((G=(J=Y.type)==null?void 0:J._def)==null?void 0:G.typeName)!==j0.ZodAny)K.items=a1(Y.type._def,{...X,currentPath:[...X.currentPath,"items"]});if(Y.minLength)K.minItems=Y.minLength.value;if(Y.maxLength)K.maxItems=Y.maxLength.value;if(Y.exactLength)K.minItems=Y.exactLength.value,K.maxItems=Y.exactLength.value;return K}function x71(Y){let X={type:"integer",format:"int64"};if(!Y.checks)return X;for(let Q of Y.checks)switch(Q.kind){case"min":if(Q.inclusive)X.minimum=Q.value;else X.exclusiveMinimum=Q.value;break;case"max":if(Q.inclusive)X.maximum=Q.value;else X.exclusiveMaximum=Q.value;break;case"multipleOf":X.multipleOf=Q.value;break}return X}function u71(){return{type:"boolean"}}function kT6(Y,X){return a1(Y.type._def,X)}function vT6(Y,X,Q){let J=Q!=null?Q:X.dateStrategy;if(Array.isArray(J))return{anyOf:J.map((G,K)=>vT6(Y,X,G))};switch(J){case"string":case"format:date-time":return{type:"string",format:"date-time"};case"format:date":return{type:"string",format:"date"};case"integer":return m71(Y)}}function l71(Y,X){return{...a1(Y.innerType._def,X),default:Y.defaultValue()}}function d71(Y,X){return X.effectStrategy==="input"?a1(Y.schema._def,X):kJ()}function p71(Y){return{type:"string",enum:Array.from(Y.values)}}function n71(Y,X){let Q=[a1(Y.left._def,{...X,currentPath:[...X.currentPath,"allOf","0"]}),a1(Y.right._def,{...X,currentPath:[...X.currentPath,"allOf","1"]})].filter((G)=>!!G),J=[];return Q.forEach((G)=>{if(c71(G))J.push(...G.allOf);else{let K=G;if("additionalProperties"in G&&G.additionalProperties===!1){let{additionalProperties:W,...Z}=G;K=Z}J.push(K)}}),J.length?{allOf:J}:void 0}function i71(Y){let X=typeof Y.value;if(X!=="bigint"&&X!=="number"&&X!=="boolean"&&X!=="string")return{type:Array.isArray(Y.value)?"array":"object"};return{type:X==="bigint"?"integer":X,const:Y.value}}function _T6(Y,X){let Q={type:"string"};if(Y.checks)for(let J of Y.checks)switch(J.kind){case"min":Q.minLength=typeof Q.minLength==="number"?Math.max(Q.minLength,J.value):J.value;break;case"max":Q.maxLength=typeof Q.maxLength==="number"?Math.min(Q.maxLength,J.value):J.value;break;case"email":switch(X.emailStrategy){case"format:email":dG(Q,"email",J.message,X);break;case"format:idn-email":dG(Q,"idn-email",J.message,X);break;case"pattern:zod":VQ(Q,lG.email,J.message,X);break}break;case"url":dG(Q,"uri",J.message,X);break;case"uuid":dG(Q,"uuid",J.message,X);break;case"regex":VQ(Q,J.regex,J.message,X);break;case"cuid":VQ(Q,lG.cuid,J.message,X);break;case"cuid2":VQ(Q,lG.cuid2,J.message,X);break;case"startsWith":VQ(Q,RegExp(`^${ZW0(J.value,X)}`),J.message,X);break;case"endsWith":VQ(Q,RegExp(`${ZW0(J.value,X)}$`),J.message,X);break;case"datetime":dG(Q,"date-time",J.message,X);break;case"date":dG(Q,"date",J.message,X);break;case"time":dG(Q,"time",J.message,X);break;case"duration":dG(Q,"duration",J.message,X);break;case"length":Q.minLength=typeof Q.minLength==="number"?Math.max(Q.minLength,J.value):J.value,Q.maxLength=typeof Q.maxLength==="number"?Math.min(Q.maxLength,J.value):J.value;break;case"includes":{VQ(Q,RegExp(ZW0(J.value,X)),J.message,X);break}case"ip":{if(J.version!=="v6")dG(Q,"ipv4",J.message,X);if(J.version!=="v4")dG(Q,"ipv6",J.message,X);break}case"base64url":VQ(Q,lG.base64url,J.message,X);break;case"jwt":VQ(Q,lG.jwt,J.message,X);break;case"cidr":{if(J.version!=="v6")VQ(Q,lG.ipv4Cidr,J.message,X);if(J.version!=="v4")VQ(Q,lG.ipv6Cidr,J.message,X);break}case"emoji":VQ(Q,lG.emoji(),J.message,X);break;case"ulid":{VQ(Q,lG.ulid,J.message,X);break}case"base64":{switch(X.base64Strategy){case"format:binary":{dG(Q,"binary",J.message,X);break}case"contentEncoding:base64":{Q.contentEncoding="base64";break}case"pattern:zod":{VQ(Q,lG.base64,J.message,X);break}}break}case"nanoid":VQ(Q,lG.nanoid,J.message,X);case"toLowerCase":case"toUpperCase":case"trim":break;default:}return Q}function ZW0(Y,X){return X.patternStrategy==="escape"?r71(Y):Y}function r71(Y){let X="";for(let Q=0;Q<Y.length;Q++){if(!a71.has(Y[Q]))X+="\\";X+=Y[Q]}return X}function dG(Y,X,Q,J){var G;if(Y.format||((G=Y.anyOf)==null?void 0:G.some((K)=>K.format))){if(!Y.anyOf)Y.anyOf=[];if(Y.format)Y.anyOf.push({format:Y.format}),delete Y.format;Y.anyOf.push({format:X,...Q&&J.errorMessages&&{errorMessage:{format:Q}}})}else Y.format=X}function VQ(Y,X,Q,J){var G;if(Y.pattern||((G=Y.allOf)==null?void 0:G.some((K)=>K.pattern))){if(!Y.allOf)Y.allOf=[];if(Y.pattern)Y.allOf.push({pattern:Y.pattern}),delete Y.pattern;Y.allOf.push({pattern:AT6(X,J),...Q&&J.errorMessages&&{errorMessage:{pattern:Q}}})}else Y.pattern=AT6(X,J)}function AT6(Y,X){var Q;if(!X.applyRegexFlags||!Y.flags)return Y.source;let J={i:Y.flags.includes("i"),m:Y.flags.includes("m"),s:Y.flags.includes("s")},G=J.i?Y.source.toLowerCase():Y.source,K="",W=!1,Z=!1,H=!1;for(let F=0;F<G.length;F++){if(W){K+=G[F],W=!1;continue}if(J.i){if(Z){if(G[F].match(/[a-z]/)){if(H)K+=G[F],K+=`${G[F-2]}-${G[F]}`.toUpperCase(),H=!1;else if(G[F+1]==="-"&&((Q=G[F+2])==null?void 0:Q.match(/[a-z]/)))K+=G[F],H=!0;else K+=`${G[F]}${G[F].toUpperCase()}`;continue}}else if(G[F].match(/[a-z]/)){K+=`[${G[F]}${G[F].toUpperCase()}]`;continue}}if(J.m){if(G[F]==="^"){K+=`(^|(?<=[\r
|
|
1191
1191
|
]))`;continue}else if(G[F]==="$"){K+=`($|(?=[\r
|
|
1192
1192
|
]))`;continue}}if(J.s&&G[F]==="."){K+=Z?`${G[F]}\r
|
|
1193
1193
|
`:`[${G[F]}\r
|
|
1194
|
-
]`;continue}if(K+=G[F],G[F]==="\\")W=!0;else if(Z&&G[F]==="]")Z=!1;else if(!Z&&G[F]==="[")Z=!0}try{new RegExp(K)}catch(F){return console.warn(`Could not convert regex pattern at ${X.currentPath.join("/")} to a flag-independent form! Falling back to the flag-ignorant source`),Y.source}return K}function yT6(Y,X){var Q,J,G,K,W,Z;let H={type:"object",additionalProperties:(Q=a1(Y.valueType._def,{...X,currentPath:[...X.currentPath,"additionalProperties"]}))!=null?Q:X.allowedAdditionalProperties};if(((J=Y.keyType)==null?void 0:J._def.typeName)===j0.ZodString&&((G=Y.keyType._def.checks)==null?void 0:G.length)){let{type:F,...V}=_T6(Y.keyType._def,X);return{...H,propertyNames:V}}else if(((K=Y.keyType)==null?void 0:K._def.typeName)===j0.ZodEnum)return{...H,propertyNames:{enum:Y.keyType._def.values}};else if(((W=Y.keyType)==null?void 0:W._def.typeName)===j0.ZodBranded&&Y.keyType._def.type._def.typeName===j0.ZodString&&((Z=Y.keyType._def.type._def.checks)==null?void 0:Z.length)){let{type:F,...V}=kT6(Y.keyType._def,X);return{...H,propertyNames:V}}return H}function o71(Y,X){if(X.mapStrategy==="record")return yT6(Y,X);let Q=a1(Y.keyType._def,{...X,currentPath:[...X.currentPath,"items","items","0"]})||kJ(),J=a1(Y.valueType._def,{...X,currentPath:[...X.currentPath,"items","items","1"]})||kJ();return{type:"array",maxItems:125,items:{type:"array",items:[Q,J],minItems:2,maxItems:2}}}function s71(Y){let X=Y.values,J=Object.keys(Y.values).filter((K)=>{return typeof X[X[K]]!=="number"}).map((K)=>X[K]),G=Array.from(new Set(J.map((K)=>typeof K)));return{type:G.length===1?G[0]==="string"?"string":"number":["string","number"],enum:J}}function t71(){return{not:kJ()}}function e71(){return{type:"null"}}function YW1(Y,X){let Q=Y.options instanceof Map?Array.from(Y.options.values()):Y.options;if(Q.every((J)=>(J._def.typeName in KW0)&&(!J._def.checks||!J._def.checks.length))){let J=Q.reduce((G,K)=>{let W=KW0[K._def.typeName];return W&&!G.includes(W)?[...G,W]:G},[]);return{type:J.length>1?J:J[0]}}else if(Q.every((J)=>J._def.typeName==="ZodLiteral"&&!J.description)){let J=Q.reduce((G,K)=>{let W=typeof K._def.value;switch(W){case"string":case"number":case"boolean":return[...G,W];case"bigint":return[...G,"integer"];case"object":if(K._def.value===null)return[...G,"null"];case"symbol":case"undefined":case"function":default:return G}},[]);if(J.length===Q.length){let G=J.filter((K,W,Z)=>Z.indexOf(K)===W);return{type:G.length>1?G:G[0],enum:Q.reduce((K,W)=>{return K.includes(W._def.value)?K:[...K,W._def.value]},[])}}}else if(Q.every((J)=>J._def.typeName==="ZodEnum"))return{type:"string",enum:Q.reduce((J,G)=>[...J,...G._def.values.filter((K)=>!J.includes(K))],[])};return XW1(Y,X)}function QW1(Y,X){if(["ZodString","ZodNumber","ZodBigInt","ZodBoolean","ZodNull"].includes(Y.innerType._def.typeName)&&(!Y.innerType._def.checks||!Y.innerType._def.checks.length))return{type:[KW0[Y.innerType._def.typeName],"null"]};let Q=a1(Y.innerType._def,{...X,currentPath:[...X.currentPath,"anyOf","0"]});return Q&&{anyOf:[Q,{type:"null"}]}}function JW1(Y){let X={type:"number"};if(!Y.checks)return X;for(let Q of Y.checks)switch(Q.kind){case"int":X.type="integer";break;case"min":if(Q.inclusive)X.minimum=Q.value;else X.exclusiveMinimum=Q.value;break;case"max":if(Q.inclusive)X.maximum=Q.value;else X.exclusiveMaximum=Q.value;break;case"multipleOf":X.multipleOf=Q.value;break}return X}function GW1(Y,X){let Q={type:"object",properties:{}},J=[],G=Y.shape();for(let W in G){let Z=G[W];if(Z===void 0||Z._def===void 0)continue;let H=ZW1(Z),F=a1(Z._def,{...X,currentPath:[...X.currentPath,"properties",W],propertyPath:[...X.currentPath,"properties",W]});if(F===void 0)continue;if(Q.properties[W]=F,!H)J.push(W)}if(J.length)Q.required=J;let K=WW1(Y,X);if(K!==void 0)Q.additionalProperties=K;return Q}function WW1(Y,X){if(Y.catchall._def.typeName!=="ZodNever")return a1(Y.catchall._def,{...X,currentPath:[...X.currentPath,"additionalProperties"]});switch(Y.unknownKeys){case"passthrough":return X.allowedAdditionalProperties;case"strict":return X.rejectedAdditionalProperties;case"strip":return X.removeAdditionalStrategy==="strict"?X.allowedAdditionalProperties:X.rejectedAdditionalProperties}}function ZW1(Y){try{return Y.isOptional()}catch(X){return!0}}function FW1(Y,X){return a1(Y.type._def,X)}function VW1(Y,X){let J={type:"array",uniqueItems:!0,items:a1(Y.valueType._def,{...X,currentPath:[...X.currentPath,"items"]})};if(Y.minSize)J.minItems=Y.minSize.value;if(Y.maxSize)J.maxItems=Y.maxSize.value;return J}function $W1(Y,X){if(Y.rest)return{type:"array",minItems:Y.items.length,items:Y.items.map((Q,J)=>a1(Q._def,{...X,currentPath:[...X.currentPath,"items",`${J}`]})).reduce((Q,J)=>J===void 0?Q:[...Q,J],[]),additionalItems:a1(Y.rest._def,{...X,currentPath:[...X.currentPath,"additionalItems"]})};else return{type:"array",minItems:Y.items.length,maxItems:Y.items.length,items:Y.items.map((Q,J)=>a1(Q._def,{...X,currentPath:[...X.currentPath,"items",`${J}`]})).reduce((Q,J)=>J===void 0?Q:[...Q,J],[])}}function qW1(){return{not:kJ()}}function zW1(){return kJ()}function a1(Y,X,Q=!1){var J;let G=X.seen.get(Y);if(X.override){let H=(J=X.override)==null?void 0:J.call(X,Y,X,G,Q);if(H!==f71)return H}if(G&&!Q){let H=OW1(G,X);if(H!==void 0)return H}let K={def:Y,path:X.currentPath,jsonSchema:void 0};X.seen.set(Y,K);let W=UW1(Y,Y.typeName,X),Z=typeof W==="function"?a1(W(),X):W;if(Z)NW1(Y,X,Z);if(X.postProcess){let H=X.postProcess(Z,Y,X);return K.jsonSchema=Z,H}return K.jsonSchema=Z,Z}function PY(Y){let X;return()=>{if(X==null)X=Y();return X}}function pG(Y,{validate:X}={}){return{[HW0]:!0,_type:void 0,get jsonSchema(){if(typeof Y==="function")Y=Y();return Y},validate:X}}function MW1(Y){return typeof Y==="object"&&Y!==null&&HW0 in Y&&Y[HW0]===!0&&"jsonSchema"in Y&&"validate"in Y}function SW(Y){return Y==null?pG({properties:{},additionalProperties:!1}):MW1(Y)?Y:("~standard"in Y)?Y["~standard"].vendor==="zod"?k9(Y):AW1(Y):Y()}function AW1(Y){return pG(()=>VW0(Y["~standard"].jsonSchema.input({target:"draft-07"})),{validate:async(X)=>{let Q=await Y["~standard"].validate(X);return"value"in Q?{success:!0,value:Q.value}:{success:!1,error:new rQ({value:X,cause:Q.issues})}}})}function TW1(Y,X){var Q;let J=(Q=X==null?void 0:X.useReferences)!=null?Q:!1;return pG(()=>wW1(Y,{$refStrategy:J?"root":"none"}),{validate:async(G)=>{let K=await Y.safeParseAsync(G);return K.success?{success:!0,value:K.data}:{success:!1,error:K.error}}})}function PW1(Y,X){var Q;let J=(Q=X==null?void 0:X.useReferences)!=null?Q:!1;return pG(()=>VW0(sG(Y,{target:"draft-7",io:"input",reused:J?"ref":"inline"})),{validate:async(G)=>{let K=await lq(Y,G);return K.success?{success:!0,value:K.data}:{success:!1,error:K.error}}})}function EW1(Y){return"_zod"in Y}function k9(Y,X){if(EW1(Y))return PW1(Y,X);else return TW1(Y,X)}async function kW({value:Y,schema:X}){let Q=await $Q({value:Y,schema:X});if(!Q.success)throw rQ.wrap({value:Y,cause:Q.error});return Q.value}async function $Q({value:Y,schema:X}){let Q=SW(X);try{if(Q.validate==null)return{success:!0,value:Y,rawValue:Y};let J=await Q.validate(Y);if(J.success)return{success:!0,value:J.value,rawValue:Y};return{success:!1,error:rQ.wrap({value:Y,cause:J.error}),rawValue:Y}}catch(J){return{success:!1,error:rQ.wrap({value:Y,cause:J}),rawValue:Y}}}async function CW1({text:Y,schema:X}){try{let Q=ST6(Y);if(X==null)return Q;return kW({value:Q,schema:X})}catch(Q){if(g2.isInstance(Q)||rQ.isInstance(Q))throw Q;throw new g2({text:Y,cause:Q})}}async function oQ({text:Y,schema:X}){try{let Q=ST6(Y);if(X==null)return{success:!0,value:Q,rawValue:Q};return await $Q({value:Q,schema:X})}catch(Q){return{success:!1,error:g2.isInstance(Q)?Q:new g2({text:Y,cause:Q}),rawValue:void 0}}}function fT6({stream:Y,schema:X}){return Y.pipeThrough(new TextDecoderStream).pipeThrough(new cP).pipeThrough(new TransformStream({async transform({data:Q},J){if(Q==="[DONE]")return;J.enqueue(await oQ({text:Q,schema:X}))}}))}function zO(Y){return Y}function hT6({id:Y,inputSchema:X,outputSchema:Q,supportsDeferredResults:J}){return({execute:G,needsApproval:K,toModelOutput:W,onInputStart:Z,onInputDelta:H,onInputAvailable:F,...V})=>zO({type:"provider",id:Y,args:V,inputSchema:X,outputSchema:Q,execute:G,needsApproval:K,toModelOutput:W,onInputStart:Z,onInputDelta:H,onInputAvailable:F,supportsDeferredResults:J})}async function YX(Y){if(typeof Y==="function")Y=Y();return Promise.resolve(Y)}function xT6(Y){return Y==null?void 0:Y.replace(/\/$/,"")}function jW1(Y){return Y!=null&&typeof Y[Symbol.asyncIterator]==="function"}async function*uT6({execute:Y,input:X,options:Q}){let J=Y(X,Q);if(jW1(J)){let G;for await(let K of J)G=K,yield{type:"preliminary",output:K};yield{type:"final",output:G}}else yield{type:"final",output:await J}}var Uq=class{constructor(){this.status={type:"pending"},this._resolve=void 0,this._reject=void 0}get promise(){if(this._promise)return this._promise;return this._promise=new Promise((Y,X)=>{if(this.status.type==="resolved")Y(this.status.value);else if(this.status.type==="rejected")X(this.status.error);this._resolve=Y,this._reject=X}),this._promise}resolve(Y){var X;if(this.status={type:"resolved",value:Y},this._promise)(X=this._resolve)==null||X.call(this,Y)}reject(Y){var X;if(this.status={type:"rejected",error:Y},this._promise)(X=this._reject)==null||X.call(this,Y)}isResolved(){return this.status.type==="resolved"}isRejected(){return this.status.type==="rejected"}isPending(){return this.status.type==="pending"}},T71,P71,PT6="AI_DownloadError",ET6,E71,NT6,LT6,hu,jW=({prefix:Y,size:X=16,alphabet:Q="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",separator:J="-"}={})=>{let G=()=>{let K=Q.length,W=Array(X);for(let Z=0;Z<X;Z++)W[Z]=Q[Math.random()*K|0];return W.join("")};if(Y==null)return G;if(Q.includes(J))throw new aA6({argument:"separator",message:`The separator "${J}" must not be part of the alphabet "${Q}".`});return()=>`${Y}${J}${G()}`},C71,I71,R71,IT6="4.0.10",k71=()=>globalThis.fetch,FW0=async({url:Y,headers:X={},successfulResponseHandler:Q,failedResponseHandler:J,abortSignal:G,fetch:K=k71()})=>{try{let W=await K(Y,{method:"GET",headers:OK(X,`ai-sdk/provider-utils/${IT6}`,bu()),signal:G}),Z=m2(W);if(!W.ok){let H;try{H=await J({response:W,url:Y,requestBodyValues:{}})}catch(F){if(DK(F)||J9.isInstance(F))throw F;throw new J9({message:"Failed to process error response",cause:F,statusCode:W.status,url:Y,responseHeaders:Z,requestBodyValues:{}})}throw H.value}try{return await Q({response:W,url:Y,requestBodyValues:{}})}catch(H){if(H instanceof Error){if(DK(H)||J9.isInstance(H))throw H}throw new J9({message:"Failed to process successful response",cause:H,statusCode:W.status,url:Y,responseHeaders:Z,requestBodyValues:{}})}}catch(W){throw CT6({error:W,url:Y,requestBodyValues:{}})}},v71,_71,f71,MT6,h71=(Y)=>typeof Y==="string"?{...MT6,name:Y}:{...MT6,...Y},g71=(Y,X)=>{return a1(Y.innerType._def,X)},m71=(Y)=>{let X={type:"integer",format:"unix-time"};for(let Q of Y.checks)switch(Q.kind){case"min":X.minimum=Q.value;break;case"max":X.maximum=Q.value;break}return X},c71=(Y)=>{if("type"in Y&&Y.type==="string")return!1;return"allOf"in Y},WW0=void 0,lG,a71,KW0,XW1=(Y,X)=>{let Q=(Y.options instanceof Map?Array.from(Y.options.values()):Y.options).map((J,G)=>a1(J._def,{...X,currentPath:[...X.currentPath,"anyOf",`${G}`]})).filter((J)=>!!J&&(!X.strictUnions||typeof J==="object"&&Object.keys(J).length>0));return Q.length?{anyOf:Q}:void 0},KW1=(Y,X)=>{var Q;if(X.currentPath.toString()===((Q=X.propertyPath)==null?void 0:Q.toString()))return a1(Y.innerType._def,X);let J=a1(Y.innerType._def,{...X,currentPath:[...X.currentPath,"anyOf","1"]});return J?{anyOf:[{not:kJ()},J]}:kJ()},HW1=(Y,X)=>{if(X.pipeStrategy==="input")return a1(Y.in._def,X);else if(X.pipeStrategy==="output")return a1(Y.out._def,X);let Q=a1(Y.in._def,{...X,currentPath:[...X.currentPath,"allOf","0"]}),J=a1(Y.out._def,{...X,currentPath:[...X.currentPath,"allOf",Q?"1":"0"]});return{allOf:[Q,J].filter((G)=>G!==void 0)}},BW1=(Y,X)=>{return a1(Y.innerType._def,X)},UW1=(Y,X,Q)=>{switch(X){case j0.ZodString:return _T6(Y,Q);case j0.ZodNumber:return JW1(Y);case j0.ZodObject:return GW1(Y,Q);case j0.ZodBigInt:return x71(Y);case j0.ZodBoolean:return u71();case j0.ZodDate:return vT6(Y,Q);case j0.ZodUndefined:return qW1();case j0.ZodNull:return e71();case j0.ZodArray:return b71(Y,Q);case j0.ZodUnion:case j0.ZodDiscriminatedUnion:return YW1(Y,Q);case j0.ZodIntersection:return n71(Y,Q);case j0.ZodTuple:return $W1(Y,Q);case j0.ZodRecord:return yT6(Y,Q);case j0.ZodLiteral:return i71(Y);case j0.ZodEnum:return p71(Y);case j0.ZodNativeEnum:return s71(Y);case j0.ZodNullable:return QW1(Y,Q);case j0.ZodOptional:return KW1(Y,Q);case j0.ZodMap:return o71(Y,Q);case j0.ZodSet:return VW1(Y,Q);case j0.ZodLazy:return()=>Y.getter()._def;case j0.ZodPromise:return FW1(Y,Q);case j0.ZodNaN:case j0.ZodNever:return t71();case j0.ZodEffects:return d71(Y,Q);case j0.ZodAny:return kJ();case j0.ZodUnknown:return zW1();case j0.ZodDefault:return l71(Y,Q);case j0.ZodBranded:return kT6(Y,Q);case j0.ZodReadonly:return BW1(Y,Q);case j0.ZodCatch:return g71(Y,Q);case j0.ZodPipeline:return HW1(Y,Q);case j0.ZodFunction:case j0.ZodVoid:case j0.ZodSymbol:return;default:return((J)=>{return})(X)}},DW1=(Y,X)=>{let Q=0;for(;Q<Y.length&&Q<X.length;Q++)if(Y[Q]!==X[Q])break;return[(Y.length-Q).toString(),...X.slice(Q)].join("/")},OW1=(Y,X)=>{switch(X.$refStrategy){case"root":return{$ref:Y.path.join("/")};case"relative":return{$ref:DW1(X.currentPath,Y.path)};case"none":case"seen":{if(Y.path.length<X.currentPath.length&&Y.path.every((Q,J)=>X.currentPath[J]===Q))return console.warn(`Recursive reference detected at ${X.currentPath.join("/")}! Defaulting to any`),kJ();return X.$refStrategy==="seen"?kJ():void 0}}},NW1=(Y,X,Q)=>{if(Y.description)Q.description=Y.description;return Q},LW1=(Y)=>{let X=h71(Y),Q=X.name!==void 0?[...X.basePath,X.definitionPath,X.name]:X.basePath;return{...X,currentPath:Q,propertyPath:void 0,seen:new Map(Object.entries(X.definitions).map(([J,G])=>[G._def,{def:G._def,path:[...X.basePath,X.definitionPath,J],jsonSchema:void 0}]))}},wW1=(Y,X)=>{var Q;let J=LW1(X),G=typeof X==="object"&&X.definitions?Object.entries(X.definitions).reduce((F,[V,$])=>{var q;return{...F,[V]:(q=a1($._def,{...J,currentPath:[...J.basePath,J.definitionPath,V]},!0))!=null?q:kJ()}},{}):void 0,K=typeof X==="string"?X:(X==null?void 0:X.nameStrategy)==="title"?void 0:X==null?void 0:X.name,W=(Q=a1(Y._def,K===void 0?J:{...J,currentPath:[...J.basePath,J.definitionPath,K]},!1))!=null?Q:kJ(),Z=typeof X==="object"&&X.name!==void 0&&X.nameStrategy==="title"?X.name:void 0;if(Z!==void 0)W.title=Z;let H=K===void 0?G?{...W,[J.definitionPath]:G}:W:{$ref:[...J.$refStrategy==="relative"?[]:J.basePath,J.definitionPath,K].join("/"),[J.definitionPath]:{...G,[K]:W}};return H.$schema="http://json-schema.org/draft-07/schema#",H},HW0,IW1=()=>globalThis.fetch,Oq=async({url:Y,headers:X,body:Q,failedResponseHandler:J,successfulResponseHandler:G,abortSignal:K,fetch:W})=>RW1({url:Y,headers:{"Content-Type":"application/json",...X},body:{content:JSON.stringify(Q),values:Q},failedResponseHandler:J,successfulResponseHandler:G,abortSignal:K,fetch:W}),RW1=async({url:Y,headers:X={},body:Q,successfulResponseHandler:J,failedResponseHandler:G,abortSignal:K,fetch:W=IW1()})=>{try{let Z=await W(Y,{method:"POST",headers:OK(X,`ai-sdk/provider-utils/${IT6}`,bu()),body:Q.content,signal:K}),H=m2(Z);if(!Z.ok){let F;try{F=await G({response:Z,url:Y,requestBodyValues:Q.values})}catch(V){if(DK(V)||J9.isInstance(V))throw V;throw new J9({message:"Failed to process error response",cause:V,statusCode:Z.status,url:Y,responseHeaders:H,requestBodyValues:Q.values})}throw F.value}try{return await J({response:Z,url:Y,requestBodyValues:Q.values})}catch(F){if(F instanceof Error){if(DK(F)||J9.isInstance(F))throw F}throw new J9({message:"Failed to process successful response",cause:F,statusCode:Z.status,url:Y,responseHeaders:H,requestBodyValues:Q.values})}}catch(Z){throw CT6({error:Z,url:Y,requestBodyValues:Q.values})}},vW=({errorSchema:Y,errorToMessage:X,isRetryable:Q})=>async({response:J,url:G,requestBodyValues:K})=>{let W=await J.text(),Z=m2(J);if(W.trim()==="")return{responseHeaders:Z,value:new J9({message:J.statusText,url:G,requestBodyValues:K,statusCode:J.status,responseHeaders:Z,responseBody:W,isRetryable:Q==null?void 0:Q(J)})};try{let H=await CW1({text:W,schema:Y});return{responseHeaders:Z,value:new J9({message:X(H),url:G,requestBodyValues:K,statusCode:J.status,responseHeaders:Z,responseBody:W,data:H,isRetryable:Q==null?void 0:Q(J,H)})}}catch(H){return{responseHeaders:Z,value:new J9({message:J.statusText,url:G,requestBodyValues:K,statusCode:J.status,responseHeaders:Z,responseBody:W,isRetryable:Q==null?void 0:Q(J)})}}},bT6=(Y)=>async({response:X})=>{let Q=m2(X);if(X.body==null)throw new cA6({});return{responseHeaders:Q,value:fT6({stream:X.body,schema:Y})}},NK=(Y)=>async({response:X,url:Q,requestBodyValues:J})=>{let G=await X.text(),K=await oQ({text:G,schema:Y}),W=m2(X);if(!K.success)throw new J9({message:"Invalid JSON response",cause:K.error,statusCode:X.status,responseHeaders:W,responseBody:G,url:Q,requestBodyValues:J});return{responseHeaders:W,value:K.value,rawValue:K.rawValue}};var H1=S(()=>{w1();w1();w1();w1();w1();w1();w1();Q1();N3();N3();N3();H50();w1();w1();DT6();({btoa:T71,atob:P71}=globalThis);ET6=`vercel.ai.error.${PT6}`,E71=Symbol.for(ET6),hu=class extends(LT6=M6,NT6=E71,LT6){constructor({url:Y,statusCode:X,statusText:Q,cause:J,message:G=J==null?`Failed to download ${Y}: ${X} ${Q}`:`Failed to download ${Y}: ${J}`}){super({name:PT6,message:G,cause:J});this[NT6]=!0,this.url=Y,this.statusCode=X,this.statusText=Q}static isInstance(Y){return M6.hasMarker(Y,ET6)}},C71=jW();I71=["fetch failed","failed to fetch"],R71=["ConnectionRefused","ConnectionClosed","FailedToOpenSocket","ECONNRESET","ECONNREFUSED","ETIMEDOUT","EPIPE"];v71=/"__proto__"\s*:/,_71=/"constructor"\s*:/;f71=Symbol("Let zodToJsonSchema decide on which parser to use"),MT6={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"};lG={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(WW0===void 0)WW0=RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u");return WW0},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-_]*$/};a71=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");KW0={ZodString:"string",ZodNumber:"number",ZodBigInt:"integer",ZodBoolean:"boolean",ZodNull:"null"};HW0=Symbol.for("vercel.ai.schema")});var qW0=E((lP8,lT6)=>{var{defineProperty:$W0,getOwnPropertyDescriptor:SW1,getOwnPropertyNames:kW1}=Object,vW1=Object.prototype.hasOwnProperty,_W1=(Y,X)=>{for(var Q in X)$W0(Y,Q,{get:X[Q],enumerable:!0})},yW1=(Y,X,Q,J)=>{if(X&&typeof X==="object"||typeof X==="function"){for(let G of kW1(X))if(!vW1.call(Y,G)&&G!==Q)$W0(Y,G,{get:()=>X[G],enumerable:!(J=SW1(X,G))||J.enumerable})}return Y},fW1=(Y)=>yW1($W0({},"__esModule",{value:!0}),Y),gT6={};_W1(gT6,{SYMBOL_FOR_REQ_CONTEXT:()=>mT6,getContext:()=>hW1});lT6.exports=fW1(gT6);var mT6=Symbol.for("@vercel/request-context");function hW1(){return globalThis[mT6]?.get?.()??{}}});var d2=E((dP8,cT6)=>{var{defineProperty:zW0,getOwnPropertyDescriptor:bW1,getOwnPropertyNames:xW1}=Object,uW1=Object.prototype.hasOwnProperty,gW1=(Y,X)=>{for(var Q in X)zW0(Y,Q,{get:X[Q],enumerable:!0})},mW1=(Y,X,Q,J)=>{if(X&&typeof X==="object"||typeof X==="function"){for(let G of xW1(X))if(!uW1.call(Y,G)&&G!==Q)zW0(Y,G,{get:()=>X[G],enumerable:!(J=bW1(X,G))||J.enumerable})}return Y},lW1=(Y)=>mW1(zW0({},"__esModule",{value:!0}),Y),dT6={};gW1(dT6,{VercelOidcTokenError:()=>pT6});cT6.exports=lW1(dT6);class pT6 extends Error{constructor(Y,X){super(Y);this.name="VercelOidcTokenError",this.cause=X}toString(){if(this.cause)return`${this.name}: ${this.message}: ${this.cause}`;return`${this.name}: ${this.message}`}}});var rT6=E((pP8,aT6)=>{var{create:dW1,defineProperty:xu,getOwnPropertyDescriptor:pW1,getOwnPropertyNames:cW1,getPrototypeOf:nW1}=Object,iW1=Object.prototype.hasOwnProperty,aW1=(Y,X)=>{for(var Q in X)xu(Y,Q,{get:X[Q],enumerable:!0})},nT6=(Y,X,Q,J)=>{if(X&&typeof X==="object"||typeof X==="function"){for(let G of cW1(X))if(!iW1.call(Y,G)&&G!==Q)xu(Y,G,{get:()=>X[G],enumerable:!(J=pW1(X,G))||J.enumerable})}return Y},UW0=(Y,X,Q)=>(Q=Y!=null?dW1(nW1(Y)):{},nT6(X||!Y||!Y.__esModule?xu(Q,"default",{value:Y,enumerable:!0}):Q,Y)),rW1=(Y)=>nT6(xu({},"__esModule",{value:!0}),Y),iT6={};aW1(iT6,{findRootDir:()=>tW1,getUserDataDir:()=>eW1});aT6.exports=rW1(iT6);var p2=UW0(F0("path")),oW1=UW0(F0("fs")),BW0=UW0(F0("os")),sW1=d2();function tW1(){try{let Y=process.cwd();while(Y!==p2.default.dirname(Y)){let X=p2.default.join(Y,".vercel");if(oW1.default.existsSync(X))return Y;Y=p2.default.dirname(Y)}}catch(Y){throw new sW1.VercelOidcTokenError("Token refresh only supported in node server environments")}return null}function eW1(){if(process.env.XDG_DATA_HOME)return process.env.XDG_DATA_HOME;switch(BW0.default.platform()){case"darwin":return p2.default.join(BW0.default.homedir(),"Library/Application Support");case"linux":return p2.default.join(BW0.default.homedir(),".local/share");case"win32":if(process.env.LOCALAPPDATA)return process.env.LOCALAPPDATA;return null;default:return null}}});var QP6=E((cP8,XP6)=>{var{create:YZ1,defineProperty:uu,getOwnPropertyDescriptor:XZ1,getOwnPropertyNames:QZ1,getPrototypeOf:JZ1}=Object,GZ1=Object.prototype.hasOwnProperty,WZ1=(Y,X)=>{for(var Q in X)uu(Y,Q,{get:X[Q],enumerable:!0})},oT6=(Y,X,Q,J)=>{if(X&&typeof X==="object"||typeof X==="function"){for(let G of QZ1(X))if(!GZ1.call(Y,G)&&G!==Q)uu(Y,G,{get:()=>X[G],enumerable:!(J=XZ1(X,G))||J.enumerable})}return Y},sT6=(Y,X,Q)=>(Q=Y!=null?YZ1(JZ1(Y)):{},oT6(X||!Y||!Y.__esModule?uu(Q,"default",{value:Y,enumerable:!0}):Q,Y)),ZZ1=(Y)=>oT6(uu({},"__esModule",{value:!0}),Y),tT6={};WZ1(tT6,{isValidAccessToken:()=>VZ1,readAuthConfig:()=>HZ1,writeAuthConfig:()=>FZ1});XP6.exports=ZZ1(tT6);var c2=sT6(F0("fs")),eT6=sT6(F0("path")),KZ1=gu();function YP6(){let Y=(0,KZ1.getVercelDataDir)();if(!Y)throw Error(`Unable to find Vercel CLI data directory. Your platform: ${process.platform}. Supported: darwin, linux, win32.`);return eT6.join(Y,"auth.json")}function HZ1(){try{let Y=YP6();if(!c2.existsSync(Y))return null;let X=c2.readFileSync(Y,"utf8");if(!X)return null;return JSON.parse(X)}catch(Y){return null}}function FZ1(Y){let X=YP6(),Q=eT6.dirname(X);if(!c2.existsSync(Q))c2.mkdirSync(Q,{mode:504,recursive:!0});c2.writeFileSync(X,JSON.stringify(Y,null,2),{mode:384})}function VZ1(Y){if(!Y.token)return!1;if(typeof Y.expiresAt!=="number")return!0;let X=Math.floor(Date.now()/1000);return Y.expiresAt>=X}});var ZP6=E((nP8,WP6)=>{var{defineProperty:NW0,getOwnPropertyDescriptor:$Z1,getOwnPropertyNames:qZ1}=Object,zZ1=Object.prototype.hasOwnProperty,BZ1=(Y,X)=>{for(var Q in X)NW0(Y,Q,{get:X[Q],enumerable:!0})},UZ1=(Y,X,Q,J)=>{if(X&&typeof X==="object"||typeof X==="function"){for(let G of qZ1(X))if(!zZ1.call(Y,G)&&G!==Q)NW0(Y,G,{get:()=>X[G],enumerable:!(J=$Z1(X,G))||J.enumerable})}return Y},DZ1=(Y)=>UZ1(NW0({},"__esModule",{value:!0}),Y),JP6={};BZ1(JP6,{processTokenResponse:()=>MZ1,refreshTokenRequest:()=>wZ1});WP6.exports=DZ1(JP6);var DW0=F0("os"),OZ1="https://vercel.com",NZ1="cl_HYyOPBNtFMfHhaUn9L4QPfTZz6TP47bp",GP6=`@vercel/oidc node-${process.version} ${(0,DW0.platform)()} (${(0,DW0.arch)()}) ${(0,DW0.hostname)()}`,OW0=null;async function LZ1(){if(OW0)return OW0;let Y=`${OZ1}/.well-known/openid-configuration`,X=await fetch(Y,{headers:{"user-agent":GP6}});if(!X.ok)throw Error("Failed to discover OAuth endpoints");let Q=await X.json();if(!Q||typeof Q.token_endpoint!=="string")throw Error("Invalid OAuth discovery response");let J=Q.token_endpoint;return OW0=J,J}async function wZ1(Y){let X=await LZ1();return await fetch(X,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded","user-agent":GP6},body:new URLSearchParams({client_id:NZ1,grant_type:"refresh_token",...Y})})}async function MZ1(Y){let X=await Y.json();if(!Y.ok){let Q=typeof X==="object"&&X&&"error"in X?String(X.error):"Token refresh failed";return[Error(Q)]}if(typeof X!=="object"||X===null)return[Error("Invalid token response")];if(typeof X.access_token!=="string")return[Error("Missing access_token in response")];if(X.token_type!=="Bearer")return[Error("Invalid token_type in response")];if(typeof X.expires_in!=="number")return[Error("Missing expires_in in response")];return[null,X]}});var gu=E((iP8,$P6)=>{var{create:AZ1,defineProperty:mu,getOwnPropertyDescriptor:TZ1,getOwnPropertyNames:PZ1,getPrototypeOf:EZ1}=Object,CZ1=Object.prototype.hasOwnProperty,IZ1=(Y,X)=>{for(var Q in X)mu(Y,Q,{get:X[Q],enumerable:!0})},HP6=(Y,X,Q,J)=>{if(X&&typeof X==="object"||typeof X==="function"){for(let G of PZ1(X))if(!CZ1.call(Y,G)&&G!==Q)mu(Y,G,{get:()=>X[G],enumerable:!(J=TZ1(X,G))||J.enumerable})}return Y},FP6=(Y,X,Q)=>(Q=Y!=null?AZ1(EZ1(Y)):{},HP6(X||!Y||!Y.__esModule?mu(Q,"default",{value:Y,enumerable:!0}):Q,Y)),RZ1=(Y)=>HP6(mu({},"__esModule",{value:!0}),Y),VP6={};IZ1(VP6,{assertVercelOidcTokenResponse:()=>LW0,findProjectInfo:()=>vZ1,getTokenPayload:()=>fZ1,getVercelCliToken:()=>SZ1,getVercelDataDir:()=>jZ1,getVercelOidcToken:()=>kZ1,isExpired:()=>hZ1,loadToken:()=>yZ1,saveToken:()=>_Z1});$P6.exports=RZ1(VP6);var n2=FP6(F0("path")),Nq=FP6(F0("fs")),UO=d2(),lu=rT6(),BO=QP6(),KP6=ZP6();function jZ1(){let X=(0,lu.getUserDataDir)();if(!X)return null;return n2.join(X,"com.vercel.cli")}async function SZ1(){let Y=(0,BO.readAuthConfig)();if(!Y)return null;if((0,BO.isValidAccessToken)(Y))return Y.token||null;if(!Y.refreshToken)return(0,BO.writeAuthConfig)({}),null;try{let X=await(0,KP6.refreshTokenRequest)({refresh_token:Y.refreshToken}),[Q,J]=await(0,KP6.processTokenResponse)(X);if(Q||!J)return(0,BO.writeAuthConfig)({}),null;let G={token:J.access_token,expiresAt:Math.floor(Date.now()/1000)+J.expires_in};if(J.refresh_token)G.refreshToken=J.refresh_token;return(0,BO.writeAuthConfig)(G),G.token??null}catch(X){return(0,BO.writeAuthConfig)({}),null}}async function kZ1(Y,X,Q){let J=`https://api.vercel.com/v1/projects/${X}/token?source=vercel-oidc-refresh${Q?`&teamId=${Q}`:""}`,G=await fetch(J,{method:"POST",headers:{Authorization:`Bearer ${Y}`}});if(!G.ok)throw new UO.VercelOidcTokenError(`Failed to refresh OIDC token: ${G.statusText}`);let K=await G.json();return LW0(K),K}function LW0(Y){if(!Y||typeof Y!=="object")throw TypeError("Vercel OIDC token is malformed. Expected an object. Please run `vc env pull` and try again");if(!("token"in Y)||typeof Y.token!=="string")throw TypeError("Vercel OIDC token is malformed. Expected a string-valued token property. Please run `vc env pull` and try again")}function vZ1(){let Y=(0,lu.findRootDir)();if(!Y)throw new UO.VercelOidcTokenError("Unable to find project root directory. Have you linked your project with `vc link?`");let X=n2.join(Y,".vercel","project.json");if(!Nq.existsSync(X))throw new UO.VercelOidcTokenError("project.json not found, have you linked your project with `vc link?`");let Q=JSON.parse(Nq.readFileSync(X,"utf8"));if(typeof Q.projectId!=="string"&&typeof Q.orgId!=="string")throw TypeError("Expected a string-valued projectId property. Try running `vc link` to re-link your project.");return{projectId:Q.projectId,teamId:Q.orgId}}function _Z1(Y,X){let Q=(0,lu.getUserDataDir)();if(!Q)throw new UO.VercelOidcTokenError("Unable to find user data directory. Please reach out to Vercel support.");let J=n2.join(Q,"com.vercel.token",`${X}.json`),G=JSON.stringify(Y);Nq.mkdirSync(n2.dirname(J),{mode:504,recursive:!0}),Nq.writeFileSync(J,G),Nq.chmodSync(J,432);return}function yZ1(Y){let X=(0,lu.getUserDataDir)();if(!X)throw new UO.VercelOidcTokenError("Unable to find user data directory. Please reach out to Vercel support.");let Q=n2.join(X,"com.vercel.token",`${Y}.json`);if(!Nq.existsSync(Q))return null;let J=JSON.parse(Nq.readFileSync(Q,"utf8"));return LW0(J),J}function fZ1(Y){let X=Y.split(".");if(X.length!==3)throw new UO.VercelOidcTokenError("Invalid token. Please run `vc env pull` and try again");let Q=X[1].replace(/-/g,"+").replace(/_/g,"/"),J=Q.padEnd(Q.length+(4-Q.length%4)%4,"=");return JSON.parse(Buffer.from(J,"base64").toString("utf8"))}function hZ1(Y){return Y.exp*1000<Date.now()}});var BP6=E((aP8,zP6)=>{var{defineProperty:MW0,getOwnPropertyDescriptor:bZ1,getOwnPropertyNames:xZ1}=Object,uZ1=Object.prototype.hasOwnProperty,gZ1=(Y,X)=>{for(var Q in X)MW0(Y,Q,{get:X[Q],enumerable:!0})},mZ1=(Y,X,Q,J)=>{if(X&&typeof X==="object"||typeof X==="function"){for(let G of xZ1(X))if(!uZ1.call(Y,G)&&G!==Q)MW0(Y,G,{get:()=>X[G],enumerable:!(J=bZ1(X,G))||J.enumerable})}return Y},lZ1=(Y)=>mZ1(MW0({},"__esModule",{value:!0}),Y),qP6={};gZ1(qP6,{refreshToken:()=>dZ1});zP6.exports=lZ1(qP6);var wW0=d2(),Lq=gu();async function dZ1(){let{projectId:Y,teamId:X}=(0,Lq.findProjectInfo)(),Q=(0,Lq.loadToken)(Y);if(!Q||(0,Lq.isExpired)((0,Lq.getTokenPayload)(Q.token))){let J=await(0,Lq.getVercelCliToken)();if(!J)throw new wW0.VercelOidcTokenError("Failed to refresh OIDC token: Log in to Vercel CLI and link your project with `vc link`");if(!Y)throw new wW0.VercelOidcTokenError("Failed to refresh OIDC token: Try re-linking your project with `vc link`");if(Q=await(0,Lq.getVercelOidcToken)(J,Y,X),!Q)throw new wW0.VercelOidcTokenError("Failed to refresh OIDC token");(0,Lq.saveToken)(Q,Y)}process.env.VERCEL_OIDC_TOKEN=Q.token;return}});var OP6=E((rP8,DP6)=>{var{defineProperty:TW0,getOwnPropertyDescriptor:pZ1,getOwnPropertyNames:cZ1}=Object,nZ1=Object.prototype.hasOwnProperty,iZ1=(Y,X)=>{for(var Q in X)TW0(Y,Q,{get:X[Q],enumerable:!0})},aZ1=(Y,X,Q,J)=>{if(X&&typeof X==="object"||typeof X==="function"){for(let G of cZ1(X))if(!nZ1.call(Y,G)&&G!==Q)TW0(Y,G,{get:()=>X[G],enumerable:!(J=pZ1(X,G))||J.enumerable})}return Y},rZ1=(Y)=>aZ1(TW0({},"__esModule",{value:!0}),Y),UP6={};iZ1(UP6,{getVercelOidcToken:()=>tZ1,getVercelOidcTokenSync:()=>AW0});DP6.exports=rZ1(UP6);var oZ1=qW0(),sZ1=d2();async function tZ1(){let Y="",X;try{Y=AW0()}catch(Q){X=Q}try{let[{getTokenPayload:Q,isExpired:J},{refreshToken:G}]=await Promise.all([await Promise.resolve().then(() => O4(gu())),await Promise.resolve().then(() => O4(BP6()))]);if(!Y||J(Q(Y)))await G(),Y=AW0()}catch(Q){let J=X instanceof Error?X.message:"";if(Q instanceof Error)J=`${J}
|
|
1195
|
-
${Q.message}`;if(J)throw new sZ1.VercelOidcTokenError(J);throw Q}return Y}function AW0(){let Y=(0,oZ1.getContext)().headers?.["x-vercel-oidc-token"]??process.env.VERCEL_OIDC_TOKEN;if(!Y)throw Error("The 'x-vercel-oidc-token' header is missing from the request. Do you have the OIDC option enabled in the Vercel project settings?");return Y}});var EW0=E((oP8,wP6)=>{var{defineProperty:PW0,getOwnPropertyDescriptor:eZ1,getOwnPropertyNames:YK1}=Object,XK1=Object.prototype.hasOwnProperty,QK1=(Y,X)=>{for(var Q in X)PW0(Y,Q,{get:X[Q],enumerable:!0})},JK1=(Y,X,Q,J)=>{if(X&&typeof X==="object"||typeof X==="function"){for(let G of YK1(X))if(!XK1.call(Y,G)&&G!==Q)PW0(Y,G,{get:()=>X[G],enumerable:!(J=eZ1(X,G))||J.enumerable})}return Y},GK1=(Y)=>JK1(PW0({},"__esModule",{value:!0}),Y),LP6={};QK1(LP6,{getContext:()=>WK1.getContext,getVercelOidcToken:()=>NP6.getVercelOidcToken,getVercelOidcTokenSync:()=>NP6.getVercelOidcTokenSync});wP6.exports=GK1(LP6);var NP6=OP6(),WK1=qW0()});async function lP6({response:Y,statusCode:X,defaultMessage:Q="Gateway request failed",cause:J,authMethod:G}){var K;let W=await $Q({value:Y,schema:NK1});if(!W.success){let $=typeof Y==="object"&&Y!==null&&"generationId"in Y?Y.generationId:void 0;return new OK1({message:`Invalid error response format: ${Q}`,statusCode:X,response:Y,validationError:W.error,cause:J,generationId:$})}let Z=W.value,H=Z.error.type,F=Z.error.message,V=(K=Z.generationId)!=null?K:void 0;switch(H){case"authentication_error":return du.createContextualError({apiKeyProvided:G==="api-key",oidcTokenProvided:G==="oidc",statusCode:X,cause:J,generationId:V});case"invalid_request_error":return new FK1({message:F,statusCode:X,cause:J,generationId:V});case"rate_limit_exceeded":return new $K1({message:F,statusCode:X,cause:J,generationId:V});case"model_not_found":{let $=await $Q({value:Z.error.param,schema:zK1});return new BK1({message:F,statusCode:X,modelId:$.success?$.value.modelId:void 0,cause:J,generationId:V})}case"internal_server_error":return new xP6({message:F,statusCode:X,cause:J,generationId:V});default:return new xP6({message:F,statusCode:X,cause:J,generationId:V})}}function c3(Y,X){var Q;if(vJ.isInstance(Y))return Y;if(J9.isInstance(Y))return lP6({response:LK1(Y),statusCode:(Q=Y.statusCode)!=null?Q:500,defaultMessage:"Gateway request failed",cause:Y,authMethod:X});return lP6({response:{},statusCode:500,defaultMessage:Y instanceof Error?`Gateway request failed: ${Y.message}`:"Unknown Gateway error",cause:Y,authMethod:X})}function LK1(Y){if(Y.data!==void 0)return Y.data;if(Y.responseBody!=null)try{return JSON.parse(Y.responseBody)}catch(X){return Y.responseBody}return{}}async function DO(Y){let X=await $Q({value:Y[sP6],schema:wK1});return X.success?X.value:void 0}function pP6(Y){if(Y.type==="file"&&Y.data instanceof Uint8Array)return{...Y,data:Dq(Y.data)};return Y}async function yK1(){var Y;return(Y=tP6.getContext().headers)==null?void 0:Y["x-vercel-id"]}function bK1(Y={}){var X,Q;let J=null,G=null,K=(X=Y.metadataCacheRefreshMillis)!=null?X:300000,W=0,Z=(Q=xT6(Y.baseURL))!=null?Q:"https://ai-gateway.vercel.sh/v3/ai",H=async()=>{try{let O=await xK1(Y);return OK({Authorization:`Bearer ${O.token}`,"ai-gateway-protocol-version":hK1,[sP6]:O.authMethod,...Y.headers},`ai-sdk/gateway/${fK1}`)}catch(O){throw du.createContextualError({apiKeyProvided:!1,oidcTokenProvided:!1,statusCode:401,cause:O})}},F=()=>{let O=l2({settingValue:void 0,environmentVariableName:"VERCEL_DEPLOYMENT_ID"}),L=l2({settingValue:void 0,environmentVariableName:"VERCEL_ENV"}),w=l2({settingValue:void 0,environmentVariableName:"VERCEL_REGION"});return async()=>{let I=await yK1();return{...O&&{"ai-o11y-deployment-id":O},...L&&{"ai-o11y-environment":L},...w&&{"ai-o11y-region":w},...I&&{"ai-o11y-request-id":I}}}},V=(O)=>{return new TK1(O,{provider:"gateway",baseURL:Z,headers:H,fetch:Y.fetch,o11yHeaders:F()})},$=async()=>{var O,L,w;let I=(w=(L=(O=Y._internal)==null?void 0:O.currentDate)==null?void 0:L.call(O).getTime())!=null?w:Date.now();if(!J||I-W>K)W=I,J=new dP6({baseURL:Z,headers:H,fetch:Y.fetch}).getAvailableModels().then((T)=>{return G=T,T}).catch(async(T)=>{throw await c3(T,await DO(await H()))});return G?Promise.resolve(G):J},q=async()=>{return new dP6({baseURL:Z,headers:H,fetch:Y.fetch}).getCredits().catch(async(O)=>{throw await c3(O,await DO(await H()))})},B=function(O){if(new.target)throw Error("The Gateway Provider model function cannot be called with the new keyword.");return V(O)};B.specificationVersion="v3",B.getAvailableModels=$,B.getCredits=q,B.imageModel=(O)=>{return new CK1(O,{provider:"gateway",baseURL:Z,headers:H,fetch:Y.fetch,o11yHeaders:F()})},B.languageModel=V;let D=(O)=>{return new PK1(O,{provider:"gateway",baseURL:Z,headers:H,fetch:Y.fetch,o11yHeaders:F()})};return B.embeddingModel=D,B.textEmbeddingModel=D,B.tools=_K1,B}async function xK1(Y){let X=l2({settingValue:Y.apiKey,environmentVariableName:"AI_GATEWAY_API_KEY"});if(X)return{token:X,authMethod:"api-key"};return{token:await eP6.getVercelOidcToken(),authMethod:"oidc"}}var tP6,eP6,ZK1="vercel.ai.gateway.error",CW0,MP6,AP6,vJ,cP6="GatewayAuthenticationError",KK1,TP6,PP6,EP6,du,nP6="GatewayInvalidRequestError",HK1,CP6,IP6,RP6,FK1,iP6="GatewayRateLimitError",VK1,jP6,SP6,kP6,$K1,aP6="GatewayModelNotFoundError",qK1,vP6,zK1,_P6,yP6,BK1,rP6="GatewayInternalServerError",UK1,fP6,hP6,bP6,xP6,oP6="GatewayResponseError",DK1,uP6,gP6,mP6,OK1,NK1,sP6="ai-gateway-auth-method",wK1,dP6=class{constructor(Y){this.config=Y}async getAvailableModels(){try{let{value:Y}=await FW0({url:`${this.config.baseURL}/config`,headers:await YX(this.config.headers()),successfulResponseHandler:NK(MK1),failedResponseHandler:vW({errorSchema:z.any(),errorToMessage:(X)=>X}),fetch:this.config.fetch});return Y}catch(Y){throw await c3(Y)}}async getCredits(){try{let Y=new URL(this.config.baseURL),{value:X}=await FW0({url:`${Y.origin}/v1/credits`,headers:await YX(this.config.headers()),successfulResponseHandler:NK(AK1),failedResponseHandler:vW({errorSchema:z.any(),errorToMessage:(Q)=>Q}),fetch:this.config.fetch});return X}catch(Y){throw await c3(Y)}}},MK1,AK1,TK1=class{constructor(Y,X){this.modelId=Y,this.config=X,this.specificationVersion="v3",this.supportedUrls={"*/*":[/.*/]}}get provider(){return this.config.provider}async getArgs(Y){let{abortSignal:X,...Q}=Y;return{args:this.maybeEncodeFileParts(Q),warnings:[]}}async doGenerate(Y){let{args:X,warnings:Q}=await this.getArgs(Y),{abortSignal:J}=Y,G=await YX(this.config.headers());try{let{responseHeaders:K,value:W,rawValue:Z}=await Oq({url:this.getUrl(),headers:Bq(G,Y.headers,this.getModelConfigHeaders(this.modelId,!1),await YX(this.config.o11yHeaders)),body:X,successfulResponseHandler:NK(z.any()),failedResponseHandler:vW({errorSchema:z.any(),errorToMessage:(H)=>H}),...J&&{abortSignal:J},fetch:this.config.fetch});return{...W,request:{body:X},response:{headers:K,body:Z},warnings:Q}}catch(K){throw await c3(K,await DO(G))}}async doStream(Y){let{args:X,warnings:Q}=await this.getArgs(Y),{abortSignal:J}=Y,G=await YX(this.config.headers());try{let{value:K,responseHeaders:W}=await Oq({url:this.getUrl(),headers:Bq(G,Y.headers,this.getModelConfigHeaders(this.modelId,!0),await YX(this.config.o11yHeaders)),body:X,successfulResponseHandler:bT6(z.any()),failedResponseHandler:vW({errorSchema:z.any(),errorToMessage:(Z)=>Z}),...J&&{abortSignal:J},fetch:this.config.fetch});return{stream:K.pipeThrough(new TransformStream({start(Z){if(Q.length>0)Z.enqueue({type:"stream-start",warnings:Q})},transform(Z,H){if(Z.success){let F=Z.value;if(F.type==="raw"&&!Y.includeRawChunks)return;if(F.type==="response-metadata"&&F.timestamp&&typeof F.timestamp==="string")F.timestamp=new Date(F.timestamp);H.enqueue(F)}else H.error(Z.error)}})),request:{body:X},response:{headers:W}}}catch(K){throw await c3(K,await DO(G))}}isFilePart(Y){return Y&&typeof Y==="object"&&"type"in Y&&Y.type==="file"}maybeEncodeFileParts(Y){for(let X of Y.prompt)for(let Q of X.content)if(this.isFilePart(Q)){let J=Q;if(J.data instanceof Uint8Array){let G=Uint8Array.from(J.data),K=Buffer.from(G).toString("base64");J.data=new URL(`data:${J.mediaType||"application/octet-stream"};base64,${K}`)}}return Y}getUrl(){return`${this.config.baseURL}/language-model`}getModelConfigHeaders(Y,X){return{"ai-language-model-specification-version":"3","ai-language-model-id":Y,"ai-language-model-streaming":String(X)}}},PK1=class{constructor(Y,X){this.modelId=Y,this.config=X,this.specificationVersion="v3",this.maxEmbeddingsPerCall=2048,this.supportsParallelCalls=!0}get provider(){return this.config.provider}async doEmbed({values:Y,headers:X,abortSignal:Q,providerOptions:J}){var G;let K=await YX(this.config.headers());try{let{responseHeaders:W,value:Z,rawValue:H}=await Oq({url:this.getUrl(),headers:Bq(K,X!=null?X:{},this.getModelConfigHeaders(),await YX(this.config.o11yHeaders)),body:{values:Y,...J?{providerOptions:J}:{}},successfulResponseHandler:NK(EK1),failedResponseHandler:vW({errorSchema:z.any(),errorToMessage:(F)=>F}),...Q&&{abortSignal:Q},fetch:this.config.fetch});return{embeddings:Z.embeddings,usage:(G=Z.usage)!=null?G:void 0,providerMetadata:Z.providerMetadata,response:{headers:W,body:H},warnings:[]}}catch(W){throw await c3(W,await DO(K))}}getUrl(){return`${this.config.baseURL}/embedding-model`}getModelConfigHeaders(){return{"ai-embedding-model-specification-version":"3","ai-model-id":this.modelId}}},EK1,CK1=class{constructor(Y,X){this.modelId=Y,this.config=X,this.specificationVersion="v3",this.maxImagesPerCall=Number.MAX_SAFE_INTEGER}get provider(){return this.config.provider}async doGenerate({prompt:Y,n:X,size:Q,aspectRatio:J,seed:G,files:K,mask:W,providerOptions:Z,headers:H,abortSignal:F}){var V;let $=await YX(this.config.headers());try{let{responseHeaders:q,value:B,rawValue:D}=await Oq({url:this.getUrl(),headers:Bq($,H!=null?H:{},this.getModelConfigHeaders(),await YX(this.config.o11yHeaders)),body:{prompt:Y,n:X,...Q&&{size:Q},...J&&{aspectRatio:J},...G&&{seed:G},...Z&&{providerOptions:Z},...K&&{files:K.map((O)=>pP6(O))},...W&&{mask:pP6(W)}},successfulResponseHandler:NK(RK1),failedResponseHandler:vW({errorSchema:z.any(),errorToMessage:(O)=>O}),...F&&{abortSignal:F},fetch:this.config.fetch});return{images:B.images,warnings:(V=B.warnings)!=null?V:[],providerMetadata:B.providerMetadata,response:{timestamp:new Date,modelId:this.modelId,headers:q}}}catch(q){throw c3(q,await DO($))}}getUrl(){return`${this.config.baseURL}/image-model`}getModelConfigHeaders(){return{"ai-image-model-specification-version":"3","ai-model-id":this.modelId}}},IK1,RK1,jK1,SK1,kK1,vK1=(Y={})=>kK1(Y),_K1,fK1="3.0.24",hK1="0.0.1",Y26;var IW0=S(()=>{H1();w1();Q1();Q1();H1();H1();Q1();H1();H1();Q1();H1();Q1();H1();Q1();H1();Q1();H1();s0();H1();tP6=O4(EW0(),1),eP6=O4(EW0(),1),CW0=Symbol.for(ZK1),vJ=class Y extends(AP6=Error,MP6=CW0,AP6){constructor({message:X,statusCode:Q=500,cause:J,generationId:G}){super(G?`${X} [${G}]`:X);this[MP6]=!0,this.statusCode=Q,this.cause=J,this.generationId=G}static isInstance(X){return Y.hasMarker(X)}static hasMarker(X){return typeof X==="object"&&X!==null&&CW0 in X&&X[CW0]===!0}},KK1=`vercel.ai.gateway.error.${cP6}`,TP6=Symbol.for(KK1),du=class Y extends(EP6=vJ,PP6=TP6,EP6){constructor({message:X="Authentication failed",statusCode:Q=401,cause:J,generationId:G}={}){super({message:X,statusCode:Q,cause:J,generationId:G});this[PP6]=!0,this.name=cP6,this.type="authentication_error"}static isInstance(X){return vJ.hasMarker(X)&&TP6 in X}static createContextualError({apiKeyProvided:X,oidcTokenProvided:Q,message:J="Authentication failed",statusCode:G=401,cause:K,generationId:W}){let Z;if(X)Z=`AI Gateway authentication failed: Invalid API key.
|
|
1194
|
+
]`;continue}if(K+=G[F],G[F]==="\\")W=!0;else if(Z&&G[F]==="]")Z=!1;else if(!Z&&G[F]==="[")Z=!0}try{new RegExp(K)}catch(F){return console.warn(`Could not convert regex pattern at ${X.currentPath.join("/")} to a flag-independent form! Falling back to the flag-ignorant source`),Y.source}return K}function yT6(Y,X){var Q,J,G,K,W,Z;let H={type:"object",additionalProperties:(Q=a1(Y.valueType._def,{...X,currentPath:[...X.currentPath,"additionalProperties"]}))!=null?Q:X.allowedAdditionalProperties};if(((J=Y.keyType)==null?void 0:J._def.typeName)===j0.ZodString&&((G=Y.keyType._def.checks)==null?void 0:G.length)){let{type:F,...V}=_T6(Y.keyType._def,X);return{...H,propertyNames:V}}else if(((K=Y.keyType)==null?void 0:K._def.typeName)===j0.ZodEnum)return{...H,propertyNames:{enum:Y.keyType._def.values}};else if(((W=Y.keyType)==null?void 0:W._def.typeName)===j0.ZodBranded&&Y.keyType._def.type._def.typeName===j0.ZodString&&((Z=Y.keyType._def.type._def.checks)==null?void 0:Z.length)){let{type:F,...V}=kT6(Y.keyType._def,X);return{...H,propertyNames:V}}return H}function o71(Y,X){if(X.mapStrategy==="record")return yT6(Y,X);let Q=a1(Y.keyType._def,{...X,currentPath:[...X.currentPath,"items","items","0"]})||kJ(),J=a1(Y.valueType._def,{...X,currentPath:[...X.currentPath,"items","items","1"]})||kJ();return{type:"array",maxItems:125,items:{type:"array",items:[Q,J],minItems:2,maxItems:2}}}function s71(Y){let X=Y.values,J=Object.keys(Y.values).filter((K)=>{return typeof X[X[K]]!=="number"}).map((K)=>X[K]),G=Array.from(new Set(J.map((K)=>typeof K)));return{type:G.length===1?G[0]==="string"?"string":"number":["string","number"],enum:J}}function t71(){return{not:kJ()}}function e71(){return{type:"null"}}function YW1(Y,X){let Q=Y.options instanceof Map?Array.from(Y.options.values()):Y.options;if(Q.every((J)=>(J._def.typeName in KW0)&&(!J._def.checks||!J._def.checks.length))){let J=Q.reduce((G,K)=>{let W=KW0[K._def.typeName];return W&&!G.includes(W)?[...G,W]:G},[]);return{type:J.length>1?J:J[0]}}else if(Q.every((J)=>J._def.typeName==="ZodLiteral"&&!J.description)){let J=Q.reduce((G,K)=>{let W=typeof K._def.value;switch(W){case"string":case"number":case"boolean":return[...G,W];case"bigint":return[...G,"integer"];case"object":if(K._def.value===null)return[...G,"null"];case"symbol":case"undefined":case"function":default:return G}},[]);if(J.length===Q.length){let G=J.filter((K,W,Z)=>Z.indexOf(K)===W);return{type:G.length>1?G:G[0],enum:Q.reduce((K,W)=>{return K.includes(W._def.value)?K:[...K,W._def.value]},[])}}}else if(Q.every((J)=>J._def.typeName==="ZodEnum"))return{type:"string",enum:Q.reduce((J,G)=>[...J,...G._def.values.filter((K)=>!J.includes(K))],[])};return XW1(Y,X)}function QW1(Y,X){if(["ZodString","ZodNumber","ZodBigInt","ZodBoolean","ZodNull"].includes(Y.innerType._def.typeName)&&(!Y.innerType._def.checks||!Y.innerType._def.checks.length))return{type:[KW0[Y.innerType._def.typeName],"null"]};let Q=a1(Y.innerType._def,{...X,currentPath:[...X.currentPath,"anyOf","0"]});return Q&&{anyOf:[Q,{type:"null"}]}}function JW1(Y){let X={type:"number"};if(!Y.checks)return X;for(let Q of Y.checks)switch(Q.kind){case"int":X.type="integer";break;case"min":if(Q.inclusive)X.minimum=Q.value;else X.exclusiveMinimum=Q.value;break;case"max":if(Q.inclusive)X.maximum=Q.value;else X.exclusiveMaximum=Q.value;break;case"multipleOf":X.multipleOf=Q.value;break}return X}function GW1(Y,X){let Q={type:"object",properties:{}},J=[],G=Y.shape();for(let W in G){let Z=G[W];if(Z===void 0||Z._def===void 0)continue;let H=ZW1(Z),F=a1(Z._def,{...X,currentPath:[...X.currentPath,"properties",W],propertyPath:[...X.currentPath,"properties",W]});if(F===void 0)continue;if(Q.properties[W]=F,!H)J.push(W)}if(J.length)Q.required=J;let K=WW1(Y,X);if(K!==void 0)Q.additionalProperties=K;return Q}function WW1(Y,X){if(Y.catchall._def.typeName!=="ZodNever")return a1(Y.catchall._def,{...X,currentPath:[...X.currentPath,"additionalProperties"]});switch(Y.unknownKeys){case"passthrough":return X.allowedAdditionalProperties;case"strict":return X.rejectedAdditionalProperties;case"strip":return X.removeAdditionalStrategy==="strict"?X.allowedAdditionalProperties:X.rejectedAdditionalProperties}}function ZW1(Y){try{return Y.isOptional()}catch(X){return!0}}function FW1(Y,X){return a1(Y.type._def,X)}function VW1(Y,X){let J={type:"array",uniqueItems:!0,items:a1(Y.valueType._def,{...X,currentPath:[...X.currentPath,"items"]})};if(Y.minSize)J.minItems=Y.minSize.value;if(Y.maxSize)J.maxItems=Y.maxSize.value;return J}function $W1(Y,X){if(Y.rest)return{type:"array",minItems:Y.items.length,items:Y.items.map((Q,J)=>a1(Q._def,{...X,currentPath:[...X.currentPath,"items",`${J}`]})).reduce((Q,J)=>J===void 0?Q:[...Q,J],[]),additionalItems:a1(Y.rest._def,{...X,currentPath:[...X.currentPath,"additionalItems"]})};else return{type:"array",minItems:Y.items.length,maxItems:Y.items.length,items:Y.items.map((Q,J)=>a1(Q._def,{...X,currentPath:[...X.currentPath,"items",`${J}`]})).reduce((Q,J)=>J===void 0?Q:[...Q,J],[])}}function qW1(){return{not:kJ()}}function zW1(){return kJ()}function a1(Y,X,Q=!1){var J;let G=X.seen.get(Y);if(X.override){let H=(J=X.override)==null?void 0:J.call(X,Y,X,G,Q);if(H!==f71)return H}if(G&&!Q){let H=OW1(G,X);if(H!==void 0)return H}let K={def:Y,path:X.currentPath,jsonSchema:void 0};X.seen.set(Y,K);let W=UW1(Y,Y.typeName,X),Z=typeof W==="function"?a1(W(),X):W;if(Z)NW1(Y,X,Z);if(X.postProcess){let H=X.postProcess(Z,Y,X);return K.jsonSchema=Z,H}return K.jsonSchema=Z,Z}function PY(Y){let X;return()=>{if(X==null)X=Y();return X}}function pG(Y,{validate:X}={}){return{[HW0]:!0,_type:void 0,get jsonSchema(){if(typeof Y==="function")Y=Y();return Y},validate:X}}function MW1(Y){return typeof Y==="object"&&Y!==null&&HW0 in Y&&Y[HW0]===!0&&"jsonSchema"in Y&&"validate"in Y}function SW(Y){return Y==null?pG({properties:{},additionalProperties:!1}):MW1(Y)?Y:("~standard"in Y)?Y["~standard"].vendor==="zod"?k9(Y):AW1(Y):Y()}function AW1(Y){return pG(()=>VW0(Y["~standard"].jsonSchema.input({target:"draft-07"})),{validate:async(X)=>{let Q=await Y["~standard"].validate(X);return"value"in Q?{success:!0,value:Q.value}:{success:!1,error:new rQ({value:X,cause:Q.issues})}}})}function TW1(Y,X){var Q;let J=(Q=X==null?void 0:X.useReferences)!=null?Q:!1;return pG(()=>wW1(Y,{$refStrategy:J?"root":"none"}),{validate:async(G)=>{let K=await Y.safeParseAsync(G);return K.success?{success:!0,value:K.data}:{success:!1,error:K.error}}})}function PW1(Y,X){var Q;let J=(Q=X==null?void 0:X.useReferences)!=null?Q:!1;return pG(()=>VW0(sG(Y,{target:"draft-7",io:"input",reused:J?"ref":"inline"})),{validate:async(G)=>{let K=await lq(Y,G);return K.success?{success:!0,value:K.data}:{success:!1,error:K.error}}})}function EW1(Y){return"_zod"in Y}function k9(Y,X){if(EW1(Y))return PW1(Y,X);else return TW1(Y,X)}async function kW({value:Y,schema:X}){let Q=await $Q({value:Y,schema:X});if(!Q.success)throw rQ.wrap({value:Y,cause:Q.error});return Q.value}async function $Q({value:Y,schema:X}){let Q=SW(X);try{if(Q.validate==null)return{success:!0,value:Y,rawValue:Y};let J=await Q.validate(Y);if(J.success)return{success:!0,value:J.value,rawValue:Y};return{success:!1,error:rQ.wrap({value:Y,cause:J.error}),rawValue:Y}}catch(J){return{success:!1,error:rQ.wrap({value:Y,cause:J}),rawValue:Y}}}async function CW1({text:Y,schema:X}){try{let Q=ST6(Y);if(X==null)return Q;return kW({value:Q,schema:X})}catch(Q){if(g2.isInstance(Q)||rQ.isInstance(Q))throw Q;throw new g2({text:Y,cause:Q})}}async function oQ({text:Y,schema:X}){try{let Q=ST6(Y);if(X==null)return{success:!0,value:Q,rawValue:Q};return await $Q({value:Q,schema:X})}catch(Q){return{success:!1,error:g2.isInstance(Q)?Q:new g2({text:Y,cause:Q}),rawValue:void 0}}}function fT6({stream:Y,schema:X}){return Y.pipeThrough(new TextDecoderStream).pipeThrough(new cP).pipeThrough(new TransformStream({async transform({data:Q},J){if(Q==="[DONE]")return;J.enqueue(await oQ({text:Q,schema:X}))}}))}function zO(Y){return Y}function hT6({id:Y,inputSchema:X,outputSchema:Q,supportsDeferredResults:J}){return({execute:G,needsApproval:K,toModelOutput:W,onInputStart:Z,onInputDelta:H,onInputAvailable:F,...V})=>zO({type:"provider",id:Y,args:V,inputSchema:X,outputSchema:Q,execute:G,needsApproval:K,toModelOutput:W,onInputStart:Z,onInputDelta:H,onInputAvailable:F,supportsDeferredResults:J})}async function YX(Y){if(typeof Y==="function")Y=Y();return Promise.resolve(Y)}function xT6(Y){return Y==null?void 0:Y.replace(/\/$/,"")}function jW1(Y){return Y!=null&&typeof Y[Symbol.asyncIterator]==="function"}async function*uT6({execute:Y,input:X,options:Q}){let J=Y(X,Q);if(jW1(J)){let G;for await(let K of J)G=K,yield{type:"preliminary",output:K};yield{type:"final",output:G}}else yield{type:"final",output:await J}}var Uq=class{constructor(){this.status={type:"pending"},this._resolve=void 0,this._reject=void 0}get promise(){if(this._promise)return this._promise;return this._promise=new Promise((Y,X)=>{if(this.status.type==="resolved")Y(this.status.value);else if(this.status.type==="rejected")X(this.status.error);this._resolve=Y,this._reject=X}),this._promise}resolve(Y){var X;if(this.status={type:"resolved",value:Y},this._promise)(X=this._resolve)==null||X.call(this,Y)}reject(Y){var X;if(this.status={type:"rejected",error:Y},this._promise)(X=this._reject)==null||X.call(this,Y)}isResolved(){return this.status.type==="resolved"}isRejected(){return this.status.type==="rejected"}isPending(){return this.status.type==="pending"}},T71,P71,PT6="AI_DownloadError",ET6,E71,NT6,LT6,hu,jW=({prefix:Y,size:X=16,alphabet:Q="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",separator:J="-"}={})=>{let G=()=>{let K=Q.length,W=Array(X);for(let Z=0;Z<X;Z++)W[Z]=Q[Math.random()*K|0];return W.join("")};if(Y==null)return G;if(Q.includes(J))throw new aA6({argument:"separator",message:`The separator "${J}" must not be part of the alphabet "${Q}".`});return()=>`${Y}${J}${G()}`},C71,I71,R71,IT6="4.0.10",k71=()=>globalThis.fetch,FW0=async({url:Y,headers:X={},successfulResponseHandler:Q,failedResponseHandler:J,abortSignal:G,fetch:K=k71()})=>{try{let W=await K(Y,{method:"GET",headers:OK(X,`ai-sdk/provider-utils/${IT6}`,bu()),signal:G}),Z=m2(W);if(!W.ok){let H;try{H=await J({response:W,url:Y,requestBodyValues:{}})}catch(F){if(DK(F)||J9.isInstance(F))throw F;throw new J9({message:"Failed to process error response",cause:F,statusCode:W.status,url:Y,responseHeaders:Z,requestBodyValues:{}})}throw H.value}try{return await Q({response:W,url:Y,requestBodyValues:{}})}catch(H){if(H instanceof Error){if(DK(H)||J9.isInstance(H))throw H}throw new J9({message:"Failed to process successful response",cause:H,statusCode:W.status,url:Y,responseHeaders:Z,requestBodyValues:{}})}}catch(W){throw CT6({error:W,url:Y,requestBodyValues:{}})}},v71,_71,f71,MT6,h71=(Y)=>typeof Y==="string"?{...MT6,name:Y}:{...MT6,...Y},g71=(Y,X)=>{return a1(Y.innerType._def,X)},m71=(Y)=>{let X={type:"integer",format:"unix-time"};for(let Q of Y.checks)switch(Q.kind){case"min":X.minimum=Q.value;break;case"max":X.maximum=Q.value;break}return X},c71=(Y)=>{if("type"in Y&&Y.type==="string")return!1;return"allOf"in Y},WW0=void 0,lG,a71,KW0,XW1=(Y,X)=>{let Q=(Y.options instanceof Map?Array.from(Y.options.values()):Y.options).map((J,G)=>a1(J._def,{...X,currentPath:[...X.currentPath,"anyOf",`${G}`]})).filter((J)=>!!J&&(!X.strictUnions||typeof J==="object"&&Object.keys(J).length>0));return Q.length?{anyOf:Q}:void 0},KW1=(Y,X)=>{var Q;if(X.currentPath.toString()===((Q=X.propertyPath)==null?void 0:Q.toString()))return a1(Y.innerType._def,X);let J=a1(Y.innerType._def,{...X,currentPath:[...X.currentPath,"anyOf","1"]});return J?{anyOf:[{not:kJ()},J]}:kJ()},HW1=(Y,X)=>{if(X.pipeStrategy==="input")return a1(Y.in._def,X);else if(X.pipeStrategy==="output")return a1(Y.out._def,X);let Q=a1(Y.in._def,{...X,currentPath:[...X.currentPath,"allOf","0"]}),J=a1(Y.out._def,{...X,currentPath:[...X.currentPath,"allOf",Q?"1":"0"]});return{allOf:[Q,J].filter((G)=>G!==void 0)}},BW1=(Y,X)=>{return a1(Y.innerType._def,X)},UW1=(Y,X,Q)=>{switch(X){case j0.ZodString:return _T6(Y,Q);case j0.ZodNumber:return JW1(Y);case j0.ZodObject:return GW1(Y,Q);case j0.ZodBigInt:return x71(Y);case j0.ZodBoolean:return u71();case j0.ZodDate:return vT6(Y,Q);case j0.ZodUndefined:return qW1();case j0.ZodNull:return e71();case j0.ZodArray:return b71(Y,Q);case j0.ZodUnion:case j0.ZodDiscriminatedUnion:return YW1(Y,Q);case j0.ZodIntersection:return n71(Y,Q);case j0.ZodTuple:return $W1(Y,Q);case j0.ZodRecord:return yT6(Y,Q);case j0.ZodLiteral:return i71(Y);case j0.ZodEnum:return p71(Y);case j0.ZodNativeEnum:return s71(Y);case j0.ZodNullable:return QW1(Y,Q);case j0.ZodOptional:return KW1(Y,Q);case j0.ZodMap:return o71(Y,Q);case j0.ZodSet:return VW1(Y,Q);case j0.ZodLazy:return()=>Y.getter()._def;case j0.ZodPromise:return FW1(Y,Q);case j0.ZodNaN:case j0.ZodNever:return t71();case j0.ZodEffects:return d71(Y,Q);case j0.ZodAny:return kJ();case j0.ZodUnknown:return zW1();case j0.ZodDefault:return l71(Y,Q);case j0.ZodBranded:return kT6(Y,Q);case j0.ZodReadonly:return BW1(Y,Q);case j0.ZodCatch:return g71(Y,Q);case j0.ZodPipeline:return HW1(Y,Q);case j0.ZodFunction:case j0.ZodVoid:case j0.ZodSymbol:return;default:return((J)=>{return})(X)}},DW1=(Y,X)=>{let Q=0;for(;Q<Y.length&&Q<X.length;Q++)if(Y[Q]!==X[Q])break;return[(Y.length-Q).toString(),...X.slice(Q)].join("/")},OW1=(Y,X)=>{switch(X.$refStrategy){case"root":return{$ref:Y.path.join("/")};case"relative":return{$ref:DW1(X.currentPath,Y.path)};case"none":case"seen":{if(Y.path.length<X.currentPath.length&&Y.path.every((Q,J)=>X.currentPath[J]===Q))return console.warn(`Recursive reference detected at ${X.currentPath.join("/")}! Defaulting to any`),kJ();return X.$refStrategy==="seen"?kJ():void 0}}},NW1=(Y,X,Q)=>{if(Y.description)Q.description=Y.description;return Q},LW1=(Y)=>{let X=h71(Y),Q=X.name!==void 0?[...X.basePath,X.definitionPath,X.name]:X.basePath;return{...X,currentPath:Q,propertyPath:void 0,seen:new Map(Object.entries(X.definitions).map(([J,G])=>[G._def,{def:G._def,path:[...X.basePath,X.definitionPath,J],jsonSchema:void 0}]))}},wW1=(Y,X)=>{var Q;let J=LW1(X),G=typeof X==="object"&&X.definitions?Object.entries(X.definitions).reduce((F,[V,$])=>{var q;return{...F,[V]:(q=a1($._def,{...J,currentPath:[...J.basePath,J.definitionPath,V]},!0))!=null?q:kJ()}},{}):void 0,K=typeof X==="string"?X:(X==null?void 0:X.nameStrategy)==="title"?void 0:X==null?void 0:X.name,W=(Q=a1(Y._def,K===void 0?J:{...J,currentPath:[...J.basePath,J.definitionPath,K]},!1))!=null?Q:kJ(),Z=typeof X==="object"&&X.name!==void 0&&X.nameStrategy==="title"?X.name:void 0;if(Z!==void 0)W.title=Z;let H=K===void 0?G?{...W,[J.definitionPath]:G}:W:{$ref:[...J.$refStrategy==="relative"?[]:J.basePath,J.definitionPath,K].join("/"),[J.definitionPath]:{...G,[K]:W}};return H.$schema="http://json-schema.org/draft-07/schema#",H},HW0,IW1=()=>globalThis.fetch,Oq=async({url:Y,headers:X,body:Q,failedResponseHandler:J,successfulResponseHandler:G,abortSignal:K,fetch:W})=>RW1({url:Y,headers:{"Content-Type":"application/json",...X},body:{content:JSON.stringify(Q),values:Q},failedResponseHandler:J,successfulResponseHandler:G,abortSignal:K,fetch:W}),RW1=async({url:Y,headers:X={},body:Q,successfulResponseHandler:J,failedResponseHandler:G,abortSignal:K,fetch:W=IW1()})=>{try{let Z=await W(Y,{method:"POST",headers:OK(X,`ai-sdk/provider-utils/${IT6}`,bu()),body:Q.content,signal:K}),H=m2(Z);if(!Z.ok){let F;try{F=await G({response:Z,url:Y,requestBodyValues:Q.values})}catch(V){if(DK(V)||J9.isInstance(V))throw V;throw new J9({message:"Failed to process error response",cause:V,statusCode:Z.status,url:Y,responseHeaders:H,requestBodyValues:Q.values})}throw F.value}try{return await J({response:Z,url:Y,requestBodyValues:Q.values})}catch(F){if(F instanceof Error){if(DK(F)||J9.isInstance(F))throw F}throw new J9({message:"Failed to process successful response",cause:F,statusCode:Z.status,url:Y,responseHeaders:H,requestBodyValues:Q.values})}}catch(Z){throw CT6({error:Z,url:Y,requestBodyValues:Q.values})}},vW=({errorSchema:Y,errorToMessage:X,isRetryable:Q})=>async({response:J,url:G,requestBodyValues:K})=>{let W=await J.text(),Z=m2(J);if(W.trim()==="")return{responseHeaders:Z,value:new J9({message:J.statusText,url:G,requestBodyValues:K,statusCode:J.status,responseHeaders:Z,responseBody:W,isRetryable:Q==null?void 0:Q(J)})};try{let H=await CW1({text:W,schema:Y});return{responseHeaders:Z,value:new J9({message:X(H),url:G,requestBodyValues:K,statusCode:J.status,responseHeaders:Z,responseBody:W,data:H,isRetryable:Q==null?void 0:Q(J,H)})}}catch(H){return{responseHeaders:Z,value:new J9({message:J.statusText,url:G,requestBodyValues:K,statusCode:J.status,responseHeaders:Z,responseBody:W,isRetryable:Q==null?void 0:Q(J)})}}},bT6=(Y)=>async({response:X})=>{let Q=m2(X);if(X.body==null)throw new cA6({});return{responseHeaders:Q,value:fT6({stream:X.body,schema:Y})}},NK=(Y)=>async({response:X,url:Q,requestBodyValues:J})=>{let G=await X.text(),K=await oQ({text:G,schema:Y}),W=m2(X);if(!K.success)throw new J9({message:"Invalid JSON response",cause:K.error,statusCode:X.status,responseHeaders:W,responseBody:G,url:Q,requestBodyValues:J});return{responseHeaders:W,value:K.value,rawValue:K.rawValue}};var H1=S(()=>{w1();w1();w1();w1();w1();w1();w1();Q1();N3();N3();N3();H50();w1();w1();DT6();({btoa:T71,atob:P71}=globalThis);ET6=`vercel.ai.error.${PT6}`,E71=Symbol.for(ET6),hu=class extends(LT6=M6,NT6=E71,LT6){constructor({url:Y,statusCode:X,statusText:Q,cause:J,message:G=J==null?`Failed to download ${Y}: ${X} ${Q}`:`Failed to download ${Y}: ${J}`}){super({name:PT6,message:G,cause:J});this[NT6]=!0,this.url=Y,this.statusCode=X,this.statusText=Q}static isInstance(Y){return M6.hasMarker(Y,ET6)}},C71=jW();I71=["fetch failed","failed to fetch"],R71=["ConnectionRefused","ConnectionClosed","FailedToOpenSocket","ECONNRESET","ECONNREFUSED","ETIMEDOUT","EPIPE"];v71=/"__proto__"\s*:/,_71=/"constructor"\s*:/;f71=Symbol("Let zodToJsonSchema decide on which parser to use"),MT6={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"};lG={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(WW0===void 0)WW0=RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u");return WW0},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-_]*$/};a71=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");KW0={ZodString:"string",ZodNumber:"number",ZodBigInt:"integer",ZodBoolean:"boolean",ZodNull:"null"};HW0=Symbol.for("vercel.ai.schema")});var qW0=E((mP8,lT6)=>{var{defineProperty:$W0,getOwnPropertyDescriptor:SW1,getOwnPropertyNames:kW1}=Object,vW1=Object.prototype.hasOwnProperty,_W1=(Y,X)=>{for(var Q in X)$W0(Y,Q,{get:X[Q],enumerable:!0})},yW1=(Y,X,Q,J)=>{if(X&&typeof X==="object"||typeof X==="function"){for(let G of kW1(X))if(!vW1.call(Y,G)&&G!==Q)$W0(Y,G,{get:()=>X[G],enumerable:!(J=SW1(X,G))||J.enumerable})}return Y},fW1=(Y)=>yW1($W0({},"__esModule",{value:!0}),Y),gT6={};_W1(gT6,{SYMBOL_FOR_REQ_CONTEXT:()=>mT6,getContext:()=>hW1});lT6.exports=fW1(gT6);var mT6=Symbol.for("@vercel/request-context");function hW1(){return globalThis[mT6]?.get?.()??{}}});var d2=E((lP8,cT6)=>{var{defineProperty:zW0,getOwnPropertyDescriptor:bW1,getOwnPropertyNames:xW1}=Object,uW1=Object.prototype.hasOwnProperty,gW1=(Y,X)=>{for(var Q in X)zW0(Y,Q,{get:X[Q],enumerable:!0})},mW1=(Y,X,Q,J)=>{if(X&&typeof X==="object"||typeof X==="function"){for(let G of xW1(X))if(!uW1.call(Y,G)&&G!==Q)zW0(Y,G,{get:()=>X[G],enumerable:!(J=bW1(X,G))||J.enumerable})}return Y},lW1=(Y)=>mW1(zW0({},"__esModule",{value:!0}),Y),dT6={};gW1(dT6,{VercelOidcTokenError:()=>pT6});cT6.exports=lW1(dT6);class pT6 extends Error{constructor(Y,X){super(Y);this.name="VercelOidcTokenError",this.cause=X}toString(){if(this.cause)return`${this.name}: ${this.message}: ${this.cause}`;return`${this.name}: ${this.message}`}}});var rT6=E((dP8,aT6)=>{var{create:dW1,defineProperty:xu,getOwnPropertyDescriptor:pW1,getOwnPropertyNames:cW1,getPrototypeOf:nW1}=Object,iW1=Object.prototype.hasOwnProperty,aW1=(Y,X)=>{for(var Q in X)xu(Y,Q,{get:X[Q],enumerable:!0})},nT6=(Y,X,Q,J)=>{if(X&&typeof X==="object"||typeof X==="function"){for(let G of cW1(X))if(!iW1.call(Y,G)&&G!==Q)xu(Y,G,{get:()=>X[G],enumerable:!(J=pW1(X,G))||J.enumerable})}return Y},UW0=(Y,X,Q)=>(Q=Y!=null?dW1(nW1(Y)):{},nT6(X||!Y||!Y.__esModule?xu(Q,"default",{value:Y,enumerable:!0}):Q,Y)),rW1=(Y)=>nT6(xu({},"__esModule",{value:!0}),Y),iT6={};aW1(iT6,{findRootDir:()=>tW1,getUserDataDir:()=>eW1});aT6.exports=rW1(iT6);var p2=UW0(F0("path")),oW1=UW0(F0("fs")),BW0=UW0(F0("os")),sW1=d2();function tW1(){try{let Y=process.cwd();while(Y!==p2.default.dirname(Y)){let X=p2.default.join(Y,".vercel");if(oW1.default.existsSync(X))return Y;Y=p2.default.dirname(Y)}}catch(Y){throw new sW1.VercelOidcTokenError("Token refresh only supported in node server environments")}return null}function eW1(){if(process.env.XDG_DATA_HOME)return process.env.XDG_DATA_HOME;switch(BW0.default.platform()){case"darwin":return p2.default.join(BW0.default.homedir(),"Library/Application Support");case"linux":return p2.default.join(BW0.default.homedir(),".local/share");case"win32":if(process.env.LOCALAPPDATA)return process.env.LOCALAPPDATA;return null;default:return null}}});var QP6=E((pP8,XP6)=>{var{create:YZ1,defineProperty:uu,getOwnPropertyDescriptor:XZ1,getOwnPropertyNames:QZ1,getPrototypeOf:JZ1}=Object,GZ1=Object.prototype.hasOwnProperty,WZ1=(Y,X)=>{for(var Q in X)uu(Y,Q,{get:X[Q],enumerable:!0})},oT6=(Y,X,Q,J)=>{if(X&&typeof X==="object"||typeof X==="function"){for(let G of QZ1(X))if(!GZ1.call(Y,G)&&G!==Q)uu(Y,G,{get:()=>X[G],enumerable:!(J=XZ1(X,G))||J.enumerable})}return Y},sT6=(Y,X,Q)=>(Q=Y!=null?YZ1(JZ1(Y)):{},oT6(X||!Y||!Y.__esModule?uu(Q,"default",{value:Y,enumerable:!0}):Q,Y)),ZZ1=(Y)=>oT6(uu({},"__esModule",{value:!0}),Y),tT6={};WZ1(tT6,{isValidAccessToken:()=>VZ1,readAuthConfig:()=>HZ1,writeAuthConfig:()=>FZ1});XP6.exports=ZZ1(tT6);var c2=sT6(F0("fs")),eT6=sT6(F0("path")),KZ1=gu();function YP6(){let Y=(0,KZ1.getVercelDataDir)();if(!Y)throw Error(`Unable to find Vercel CLI data directory. Your platform: ${process.platform}. Supported: darwin, linux, win32.`);return eT6.join(Y,"auth.json")}function HZ1(){try{let Y=YP6();if(!c2.existsSync(Y))return null;let X=c2.readFileSync(Y,"utf8");if(!X)return null;return JSON.parse(X)}catch(Y){return null}}function FZ1(Y){let X=YP6(),Q=eT6.dirname(X);if(!c2.existsSync(Q))c2.mkdirSync(Q,{mode:504,recursive:!0});c2.writeFileSync(X,JSON.stringify(Y,null,2),{mode:384})}function VZ1(Y){if(!Y.token)return!1;if(typeof Y.expiresAt!=="number")return!0;let X=Math.floor(Date.now()/1000);return Y.expiresAt>=X}});var ZP6=E((cP8,WP6)=>{var{defineProperty:NW0,getOwnPropertyDescriptor:$Z1,getOwnPropertyNames:qZ1}=Object,zZ1=Object.prototype.hasOwnProperty,BZ1=(Y,X)=>{for(var Q in X)NW0(Y,Q,{get:X[Q],enumerable:!0})},UZ1=(Y,X,Q,J)=>{if(X&&typeof X==="object"||typeof X==="function"){for(let G of qZ1(X))if(!zZ1.call(Y,G)&&G!==Q)NW0(Y,G,{get:()=>X[G],enumerable:!(J=$Z1(X,G))||J.enumerable})}return Y},DZ1=(Y)=>UZ1(NW0({},"__esModule",{value:!0}),Y),JP6={};BZ1(JP6,{processTokenResponse:()=>MZ1,refreshTokenRequest:()=>wZ1});WP6.exports=DZ1(JP6);var DW0=F0("os"),OZ1="https://vercel.com",NZ1="cl_HYyOPBNtFMfHhaUn9L4QPfTZz6TP47bp",GP6=`@vercel/oidc node-${process.version} ${(0,DW0.platform)()} (${(0,DW0.arch)()}) ${(0,DW0.hostname)()}`,OW0=null;async function LZ1(){if(OW0)return OW0;let Y=`${OZ1}/.well-known/openid-configuration`,X=await fetch(Y,{headers:{"user-agent":GP6}});if(!X.ok)throw Error("Failed to discover OAuth endpoints");let Q=await X.json();if(!Q||typeof Q.token_endpoint!=="string")throw Error("Invalid OAuth discovery response");let J=Q.token_endpoint;return OW0=J,J}async function wZ1(Y){let X=await LZ1();return await fetch(X,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded","user-agent":GP6},body:new URLSearchParams({client_id:NZ1,grant_type:"refresh_token",...Y})})}async function MZ1(Y){let X=await Y.json();if(!Y.ok){let Q=typeof X==="object"&&X&&"error"in X?String(X.error):"Token refresh failed";return[Error(Q)]}if(typeof X!=="object"||X===null)return[Error("Invalid token response")];if(typeof X.access_token!=="string")return[Error("Missing access_token in response")];if(X.token_type!=="Bearer")return[Error("Invalid token_type in response")];if(typeof X.expires_in!=="number")return[Error("Missing expires_in in response")];return[null,X]}});var gu=E((nP8,$P6)=>{var{create:AZ1,defineProperty:mu,getOwnPropertyDescriptor:TZ1,getOwnPropertyNames:PZ1,getPrototypeOf:EZ1}=Object,CZ1=Object.prototype.hasOwnProperty,IZ1=(Y,X)=>{for(var Q in X)mu(Y,Q,{get:X[Q],enumerable:!0})},HP6=(Y,X,Q,J)=>{if(X&&typeof X==="object"||typeof X==="function"){for(let G of PZ1(X))if(!CZ1.call(Y,G)&&G!==Q)mu(Y,G,{get:()=>X[G],enumerable:!(J=TZ1(X,G))||J.enumerable})}return Y},FP6=(Y,X,Q)=>(Q=Y!=null?AZ1(EZ1(Y)):{},HP6(X||!Y||!Y.__esModule?mu(Q,"default",{value:Y,enumerable:!0}):Q,Y)),RZ1=(Y)=>HP6(mu({},"__esModule",{value:!0}),Y),VP6={};IZ1(VP6,{assertVercelOidcTokenResponse:()=>LW0,findProjectInfo:()=>vZ1,getTokenPayload:()=>fZ1,getVercelCliToken:()=>SZ1,getVercelDataDir:()=>jZ1,getVercelOidcToken:()=>kZ1,isExpired:()=>hZ1,loadToken:()=>yZ1,saveToken:()=>_Z1});$P6.exports=RZ1(VP6);var n2=FP6(F0("path")),Nq=FP6(F0("fs")),UO=d2(),lu=rT6(),BO=QP6(),KP6=ZP6();function jZ1(){let X=(0,lu.getUserDataDir)();if(!X)return null;return n2.join(X,"com.vercel.cli")}async function SZ1(){let Y=(0,BO.readAuthConfig)();if(!Y)return null;if((0,BO.isValidAccessToken)(Y))return Y.token||null;if(!Y.refreshToken)return(0,BO.writeAuthConfig)({}),null;try{let X=await(0,KP6.refreshTokenRequest)({refresh_token:Y.refreshToken}),[Q,J]=await(0,KP6.processTokenResponse)(X);if(Q||!J)return(0,BO.writeAuthConfig)({}),null;let G={token:J.access_token,expiresAt:Math.floor(Date.now()/1000)+J.expires_in};if(J.refresh_token)G.refreshToken=J.refresh_token;return(0,BO.writeAuthConfig)(G),G.token??null}catch(X){return(0,BO.writeAuthConfig)({}),null}}async function kZ1(Y,X,Q){let J=`https://api.vercel.com/v1/projects/${X}/token?source=vercel-oidc-refresh${Q?`&teamId=${Q}`:""}`,G=await fetch(J,{method:"POST",headers:{Authorization:`Bearer ${Y}`}});if(!G.ok)throw new UO.VercelOidcTokenError(`Failed to refresh OIDC token: ${G.statusText}`);let K=await G.json();return LW0(K),K}function LW0(Y){if(!Y||typeof Y!=="object")throw TypeError("Vercel OIDC token is malformed. Expected an object. Please run `vc env pull` and try again");if(!("token"in Y)||typeof Y.token!=="string")throw TypeError("Vercel OIDC token is malformed. Expected a string-valued token property. Please run `vc env pull` and try again")}function vZ1(){let Y=(0,lu.findRootDir)();if(!Y)throw new UO.VercelOidcTokenError("Unable to find project root directory. Have you linked your project with `vc link?`");let X=n2.join(Y,".vercel","project.json");if(!Nq.existsSync(X))throw new UO.VercelOidcTokenError("project.json not found, have you linked your project with `vc link?`");let Q=JSON.parse(Nq.readFileSync(X,"utf8"));if(typeof Q.projectId!=="string"&&typeof Q.orgId!=="string")throw TypeError("Expected a string-valued projectId property. Try running `vc link` to re-link your project.");return{projectId:Q.projectId,teamId:Q.orgId}}function _Z1(Y,X){let Q=(0,lu.getUserDataDir)();if(!Q)throw new UO.VercelOidcTokenError("Unable to find user data directory. Please reach out to Vercel support.");let J=n2.join(Q,"com.vercel.token",`${X}.json`),G=JSON.stringify(Y);Nq.mkdirSync(n2.dirname(J),{mode:504,recursive:!0}),Nq.writeFileSync(J,G),Nq.chmodSync(J,432);return}function yZ1(Y){let X=(0,lu.getUserDataDir)();if(!X)throw new UO.VercelOidcTokenError("Unable to find user data directory. Please reach out to Vercel support.");let Q=n2.join(X,"com.vercel.token",`${Y}.json`);if(!Nq.existsSync(Q))return null;let J=JSON.parse(Nq.readFileSync(Q,"utf8"));return LW0(J),J}function fZ1(Y){let X=Y.split(".");if(X.length!==3)throw new UO.VercelOidcTokenError("Invalid token. Please run `vc env pull` and try again");let Q=X[1].replace(/-/g,"+").replace(/_/g,"/"),J=Q.padEnd(Q.length+(4-Q.length%4)%4,"=");return JSON.parse(Buffer.from(J,"base64").toString("utf8"))}function hZ1(Y){return Y.exp*1000<Date.now()}});var BP6=E((iP8,zP6)=>{var{defineProperty:MW0,getOwnPropertyDescriptor:bZ1,getOwnPropertyNames:xZ1}=Object,uZ1=Object.prototype.hasOwnProperty,gZ1=(Y,X)=>{for(var Q in X)MW0(Y,Q,{get:X[Q],enumerable:!0})},mZ1=(Y,X,Q,J)=>{if(X&&typeof X==="object"||typeof X==="function"){for(let G of xZ1(X))if(!uZ1.call(Y,G)&&G!==Q)MW0(Y,G,{get:()=>X[G],enumerable:!(J=bZ1(X,G))||J.enumerable})}return Y},lZ1=(Y)=>mZ1(MW0({},"__esModule",{value:!0}),Y),qP6={};gZ1(qP6,{refreshToken:()=>dZ1});zP6.exports=lZ1(qP6);var wW0=d2(),Lq=gu();async function dZ1(){let{projectId:Y,teamId:X}=(0,Lq.findProjectInfo)(),Q=(0,Lq.loadToken)(Y);if(!Q||(0,Lq.isExpired)((0,Lq.getTokenPayload)(Q.token))){let J=await(0,Lq.getVercelCliToken)();if(!J)throw new wW0.VercelOidcTokenError("Failed to refresh OIDC token: Log in to Vercel CLI and link your project with `vc link`");if(!Y)throw new wW0.VercelOidcTokenError("Failed to refresh OIDC token: Try re-linking your project with `vc link`");if(Q=await(0,Lq.getVercelOidcToken)(J,Y,X),!Q)throw new wW0.VercelOidcTokenError("Failed to refresh OIDC token");(0,Lq.saveToken)(Q,Y)}process.env.VERCEL_OIDC_TOKEN=Q.token;return}});var OP6=E((aP8,DP6)=>{var{defineProperty:TW0,getOwnPropertyDescriptor:pZ1,getOwnPropertyNames:cZ1}=Object,nZ1=Object.prototype.hasOwnProperty,iZ1=(Y,X)=>{for(var Q in X)TW0(Y,Q,{get:X[Q],enumerable:!0})},aZ1=(Y,X,Q,J)=>{if(X&&typeof X==="object"||typeof X==="function"){for(let G of cZ1(X))if(!nZ1.call(Y,G)&&G!==Q)TW0(Y,G,{get:()=>X[G],enumerable:!(J=pZ1(X,G))||J.enumerable})}return Y},rZ1=(Y)=>aZ1(TW0({},"__esModule",{value:!0}),Y),UP6={};iZ1(UP6,{getVercelOidcToken:()=>tZ1,getVercelOidcTokenSync:()=>AW0});DP6.exports=rZ1(UP6);var oZ1=qW0(),sZ1=d2();async function tZ1(){let Y="",X;try{Y=AW0()}catch(Q){X=Q}try{let[{getTokenPayload:Q,isExpired:J},{refreshToken:G}]=await Promise.all([await Promise.resolve().then(() => O4(gu())),await Promise.resolve().then(() => O4(BP6()))]);if(!Y||J(Q(Y)))await G(),Y=AW0()}catch(Q){let J=X instanceof Error?X.message:"";if(Q instanceof Error)J=`${J}
|
|
1195
|
+
${Q.message}`;if(J)throw new sZ1.VercelOidcTokenError(J);throw Q}return Y}function AW0(){let Y=(0,oZ1.getContext)().headers?.["x-vercel-oidc-token"]??process.env.VERCEL_OIDC_TOKEN;if(!Y)throw Error("The 'x-vercel-oidc-token' header is missing from the request. Do you have the OIDC option enabled in the Vercel project settings?");return Y}});var EW0=E((rP8,wP6)=>{var{defineProperty:PW0,getOwnPropertyDescriptor:eZ1,getOwnPropertyNames:YK1}=Object,XK1=Object.prototype.hasOwnProperty,QK1=(Y,X)=>{for(var Q in X)PW0(Y,Q,{get:X[Q],enumerable:!0})},JK1=(Y,X,Q,J)=>{if(X&&typeof X==="object"||typeof X==="function"){for(let G of YK1(X))if(!XK1.call(Y,G)&&G!==Q)PW0(Y,G,{get:()=>X[G],enumerable:!(J=eZ1(X,G))||J.enumerable})}return Y},GK1=(Y)=>JK1(PW0({},"__esModule",{value:!0}),Y),LP6={};QK1(LP6,{getContext:()=>WK1.getContext,getVercelOidcToken:()=>NP6.getVercelOidcToken,getVercelOidcTokenSync:()=>NP6.getVercelOidcTokenSync});wP6.exports=GK1(LP6);var NP6=OP6(),WK1=qW0()});async function lP6({response:Y,statusCode:X,defaultMessage:Q="Gateway request failed",cause:J,authMethod:G}){var K;let W=await $Q({value:Y,schema:NK1});if(!W.success){let $=typeof Y==="object"&&Y!==null&&"generationId"in Y?Y.generationId:void 0;return new OK1({message:`Invalid error response format: ${Q}`,statusCode:X,response:Y,validationError:W.error,cause:J,generationId:$})}let Z=W.value,H=Z.error.type,F=Z.error.message,V=(K=Z.generationId)!=null?K:void 0;switch(H){case"authentication_error":return du.createContextualError({apiKeyProvided:G==="api-key",oidcTokenProvided:G==="oidc",statusCode:X,cause:J,generationId:V});case"invalid_request_error":return new FK1({message:F,statusCode:X,cause:J,generationId:V});case"rate_limit_exceeded":return new $K1({message:F,statusCode:X,cause:J,generationId:V});case"model_not_found":{let $=await $Q({value:Z.error.param,schema:zK1});return new BK1({message:F,statusCode:X,modelId:$.success?$.value.modelId:void 0,cause:J,generationId:V})}case"internal_server_error":return new xP6({message:F,statusCode:X,cause:J,generationId:V});default:return new xP6({message:F,statusCode:X,cause:J,generationId:V})}}function c3(Y,X){var Q;if(vJ.isInstance(Y))return Y;if(J9.isInstance(Y))return lP6({response:LK1(Y),statusCode:(Q=Y.statusCode)!=null?Q:500,defaultMessage:"Gateway request failed",cause:Y,authMethod:X});return lP6({response:{},statusCode:500,defaultMessage:Y instanceof Error?`Gateway request failed: ${Y.message}`:"Unknown Gateway error",cause:Y,authMethod:X})}function LK1(Y){if(Y.data!==void 0)return Y.data;if(Y.responseBody!=null)try{return JSON.parse(Y.responseBody)}catch(X){return Y.responseBody}return{}}async function DO(Y){let X=await $Q({value:Y[sP6],schema:wK1});return X.success?X.value:void 0}function pP6(Y){if(Y.type==="file"&&Y.data instanceof Uint8Array)return{...Y,data:Dq(Y.data)};return Y}async function yK1(){var Y;return(Y=tP6.getContext().headers)==null?void 0:Y["x-vercel-id"]}function bK1(Y={}){var X,Q;let J=null,G=null,K=(X=Y.metadataCacheRefreshMillis)!=null?X:300000,W=0,Z=(Q=xT6(Y.baseURL))!=null?Q:"https://ai-gateway.vercel.sh/v3/ai",H=async()=>{try{let O=await xK1(Y);return OK({Authorization:`Bearer ${O.token}`,"ai-gateway-protocol-version":hK1,[sP6]:O.authMethod,...Y.headers},`ai-sdk/gateway/${fK1}`)}catch(O){throw du.createContextualError({apiKeyProvided:!1,oidcTokenProvided:!1,statusCode:401,cause:O})}},F=()=>{let O=l2({settingValue:void 0,environmentVariableName:"VERCEL_DEPLOYMENT_ID"}),L=l2({settingValue:void 0,environmentVariableName:"VERCEL_ENV"}),w=l2({settingValue:void 0,environmentVariableName:"VERCEL_REGION"});return async()=>{let I=await yK1();return{...O&&{"ai-o11y-deployment-id":O},...L&&{"ai-o11y-environment":L},...w&&{"ai-o11y-region":w},...I&&{"ai-o11y-request-id":I}}}},V=(O)=>{return new TK1(O,{provider:"gateway",baseURL:Z,headers:H,fetch:Y.fetch,o11yHeaders:F()})},$=async()=>{var O,L,w;let I=(w=(L=(O=Y._internal)==null?void 0:O.currentDate)==null?void 0:L.call(O).getTime())!=null?w:Date.now();if(!J||I-W>K)W=I,J=new dP6({baseURL:Z,headers:H,fetch:Y.fetch}).getAvailableModels().then((T)=>{return G=T,T}).catch(async(T)=>{throw await c3(T,await DO(await H()))});return G?Promise.resolve(G):J},q=async()=>{return new dP6({baseURL:Z,headers:H,fetch:Y.fetch}).getCredits().catch(async(O)=>{throw await c3(O,await DO(await H()))})},B=function(O){if(new.target)throw Error("The Gateway Provider model function cannot be called with the new keyword.");return V(O)};B.specificationVersion="v3",B.getAvailableModels=$,B.getCredits=q,B.imageModel=(O)=>{return new CK1(O,{provider:"gateway",baseURL:Z,headers:H,fetch:Y.fetch,o11yHeaders:F()})},B.languageModel=V;let D=(O)=>{return new PK1(O,{provider:"gateway",baseURL:Z,headers:H,fetch:Y.fetch,o11yHeaders:F()})};return B.embeddingModel=D,B.textEmbeddingModel=D,B.tools=_K1,B}async function xK1(Y){let X=l2({settingValue:Y.apiKey,environmentVariableName:"AI_GATEWAY_API_KEY"});if(X)return{token:X,authMethod:"api-key"};return{token:await eP6.getVercelOidcToken(),authMethod:"oidc"}}var tP6,eP6,ZK1="vercel.ai.gateway.error",CW0,MP6,AP6,vJ,cP6="GatewayAuthenticationError",KK1,TP6,PP6,EP6,du,nP6="GatewayInvalidRequestError",HK1,CP6,IP6,RP6,FK1,iP6="GatewayRateLimitError",VK1,jP6,SP6,kP6,$K1,aP6="GatewayModelNotFoundError",qK1,vP6,zK1,_P6,yP6,BK1,rP6="GatewayInternalServerError",UK1,fP6,hP6,bP6,xP6,oP6="GatewayResponseError",DK1,uP6,gP6,mP6,OK1,NK1,sP6="ai-gateway-auth-method",wK1,dP6=class{constructor(Y){this.config=Y}async getAvailableModels(){try{let{value:Y}=await FW0({url:`${this.config.baseURL}/config`,headers:await YX(this.config.headers()),successfulResponseHandler:NK(MK1),failedResponseHandler:vW({errorSchema:z.any(),errorToMessage:(X)=>X}),fetch:this.config.fetch});return Y}catch(Y){throw await c3(Y)}}async getCredits(){try{let Y=new URL(this.config.baseURL),{value:X}=await FW0({url:`${Y.origin}/v1/credits`,headers:await YX(this.config.headers()),successfulResponseHandler:NK(AK1),failedResponseHandler:vW({errorSchema:z.any(),errorToMessage:(Q)=>Q}),fetch:this.config.fetch});return X}catch(Y){throw await c3(Y)}}},MK1,AK1,TK1=class{constructor(Y,X){this.modelId=Y,this.config=X,this.specificationVersion="v3",this.supportedUrls={"*/*":[/.*/]}}get provider(){return this.config.provider}async getArgs(Y){let{abortSignal:X,...Q}=Y;return{args:this.maybeEncodeFileParts(Q),warnings:[]}}async doGenerate(Y){let{args:X,warnings:Q}=await this.getArgs(Y),{abortSignal:J}=Y,G=await YX(this.config.headers());try{let{responseHeaders:K,value:W,rawValue:Z}=await Oq({url:this.getUrl(),headers:Bq(G,Y.headers,this.getModelConfigHeaders(this.modelId,!1),await YX(this.config.o11yHeaders)),body:X,successfulResponseHandler:NK(z.any()),failedResponseHandler:vW({errorSchema:z.any(),errorToMessage:(H)=>H}),...J&&{abortSignal:J},fetch:this.config.fetch});return{...W,request:{body:X},response:{headers:K,body:Z},warnings:Q}}catch(K){throw await c3(K,await DO(G))}}async doStream(Y){let{args:X,warnings:Q}=await this.getArgs(Y),{abortSignal:J}=Y,G=await YX(this.config.headers());try{let{value:K,responseHeaders:W}=await Oq({url:this.getUrl(),headers:Bq(G,Y.headers,this.getModelConfigHeaders(this.modelId,!0),await YX(this.config.o11yHeaders)),body:X,successfulResponseHandler:bT6(z.any()),failedResponseHandler:vW({errorSchema:z.any(),errorToMessage:(Z)=>Z}),...J&&{abortSignal:J},fetch:this.config.fetch});return{stream:K.pipeThrough(new TransformStream({start(Z){if(Q.length>0)Z.enqueue({type:"stream-start",warnings:Q})},transform(Z,H){if(Z.success){let F=Z.value;if(F.type==="raw"&&!Y.includeRawChunks)return;if(F.type==="response-metadata"&&F.timestamp&&typeof F.timestamp==="string")F.timestamp=new Date(F.timestamp);H.enqueue(F)}else H.error(Z.error)}})),request:{body:X},response:{headers:W}}}catch(K){throw await c3(K,await DO(G))}}isFilePart(Y){return Y&&typeof Y==="object"&&"type"in Y&&Y.type==="file"}maybeEncodeFileParts(Y){for(let X of Y.prompt)for(let Q of X.content)if(this.isFilePart(Q)){let J=Q;if(J.data instanceof Uint8Array){let G=Uint8Array.from(J.data),K=Buffer.from(G).toString("base64");J.data=new URL(`data:${J.mediaType||"application/octet-stream"};base64,${K}`)}}return Y}getUrl(){return`${this.config.baseURL}/language-model`}getModelConfigHeaders(Y,X){return{"ai-language-model-specification-version":"3","ai-language-model-id":Y,"ai-language-model-streaming":String(X)}}},PK1=class{constructor(Y,X){this.modelId=Y,this.config=X,this.specificationVersion="v3",this.maxEmbeddingsPerCall=2048,this.supportsParallelCalls=!0}get provider(){return this.config.provider}async doEmbed({values:Y,headers:X,abortSignal:Q,providerOptions:J}){var G;let K=await YX(this.config.headers());try{let{responseHeaders:W,value:Z,rawValue:H}=await Oq({url:this.getUrl(),headers:Bq(K,X!=null?X:{},this.getModelConfigHeaders(),await YX(this.config.o11yHeaders)),body:{values:Y,...J?{providerOptions:J}:{}},successfulResponseHandler:NK(EK1),failedResponseHandler:vW({errorSchema:z.any(),errorToMessage:(F)=>F}),...Q&&{abortSignal:Q},fetch:this.config.fetch});return{embeddings:Z.embeddings,usage:(G=Z.usage)!=null?G:void 0,providerMetadata:Z.providerMetadata,response:{headers:W,body:H},warnings:[]}}catch(W){throw await c3(W,await DO(K))}}getUrl(){return`${this.config.baseURL}/embedding-model`}getModelConfigHeaders(){return{"ai-embedding-model-specification-version":"3","ai-model-id":this.modelId}}},EK1,CK1=class{constructor(Y,X){this.modelId=Y,this.config=X,this.specificationVersion="v3",this.maxImagesPerCall=Number.MAX_SAFE_INTEGER}get provider(){return this.config.provider}async doGenerate({prompt:Y,n:X,size:Q,aspectRatio:J,seed:G,files:K,mask:W,providerOptions:Z,headers:H,abortSignal:F}){var V;let $=await YX(this.config.headers());try{let{responseHeaders:q,value:B,rawValue:D}=await Oq({url:this.getUrl(),headers:Bq($,H!=null?H:{},this.getModelConfigHeaders(),await YX(this.config.o11yHeaders)),body:{prompt:Y,n:X,...Q&&{size:Q},...J&&{aspectRatio:J},...G&&{seed:G},...Z&&{providerOptions:Z},...K&&{files:K.map((O)=>pP6(O))},...W&&{mask:pP6(W)}},successfulResponseHandler:NK(RK1),failedResponseHandler:vW({errorSchema:z.any(),errorToMessage:(O)=>O}),...F&&{abortSignal:F},fetch:this.config.fetch});return{images:B.images,warnings:(V=B.warnings)!=null?V:[],providerMetadata:B.providerMetadata,response:{timestamp:new Date,modelId:this.modelId,headers:q}}}catch(q){throw c3(q,await DO($))}}getUrl(){return`${this.config.baseURL}/image-model`}getModelConfigHeaders(){return{"ai-image-model-specification-version":"3","ai-model-id":this.modelId}}},IK1,RK1,jK1,SK1,kK1,vK1=(Y={})=>kK1(Y),_K1,fK1="3.0.24",hK1="0.0.1",Y26;var IW0=S(()=>{H1();w1();Q1();Q1();H1();H1();Q1();H1();H1();Q1();H1();Q1();H1();Q1();H1();Q1();H1();s0();H1();tP6=O4(EW0(),1),eP6=O4(EW0(),1),CW0=Symbol.for(ZK1),vJ=class Y extends(AP6=Error,MP6=CW0,AP6){constructor({message:X,statusCode:Q=500,cause:J,generationId:G}){super(G?`${X} [${G}]`:X);this[MP6]=!0,this.statusCode=Q,this.cause=J,this.generationId=G}static isInstance(X){return Y.hasMarker(X)}static hasMarker(X){return typeof X==="object"&&X!==null&&CW0 in X&&X[CW0]===!0}},KK1=`vercel.ai.gateway.error.${cP6}`,TP6=Symbol.for(KK1),du=class Y extends(EP6=vJ,PP6=TP6,EP6){constructor({message:X="Authentication failed",statusCode:Q=401,cause:J,generationId:G}={}){super({message:X,statusCode:Q,cause:J,generationId:G});this[PP6]=!0,this.name=cP6,this.type="authentication_error"}static isInstance(X){return vJ.hasMarker(X)&&TP6 in X}static createContextualError({apiKeyProvided:X,oidcTokenProvided:Q,message:J="Authentication failed",statusCode:G=401,cause:K,generationId:W}){let Z;if(X)Z=`AI Gateway authentication failed: Invalid API key.
|
|
1196
1196
|
|
|
1197
1197
|
Create a new API key: https://vercel.com/d?to=%2F%5Bteam%5D%2F%7E%2Fai%2Fapi-keys
|
|
1198
1198
|
|
|
@@ -1215,11 +1215,11 @@ Alternatively, you can use a provider module instead of the AI Gateway.
|
|
|
1215
1215
|
|
|
1216
1216
|
Learn more: \x1B[34m${Q}\x1B[0m
|
|
1217
1217
|
|
|
1218
|
-
`),{name:"GatewayAuthenticationError"})}function s2({operationId:Y,telemetry:X}){return{"operation.name":`${Y}${(X==null?void 0:X.functionId)!=null?` ${X.functionId}`:""}`,"resource.name":X==null?void 0:X.functionId,"ai.operationId":Y,"ai.telemetry.functionId":X==null?void 0:X.functionId}}function $E6({model:Y,settings:X,telemetry:Q,headers:J}){var G;return{"ai.model.provider":Y.provider,"ai.model.id":Y.modelId,...Object.entries(X).reduce((K,[W,Z])=>{if(W==="timeout"){let H=mW0(Z);if(H!=null)K[`ai.settings.${W}`]=H}else K[`ai.settings.${W}`]=Z;return K},{}),...Object.entries((G=Q==null?void 0:Q.metadata)!=null?G:{}).reduce((K,[W,Z])=>{return K[`ai.telemetry.metadata.${W}`]=Z,K},{}),...Object.entries(J!=null?J:{}).reduce((K,[W,Z])=>{if(Z!==void 0)K[`ai.request.headers.${W}`]=Z;return K},{})}}function zE6({isEnabled:Y=!1,tracer:X}={}){if(!Y)return X31;if(X)return X;return qE6.trace.getTracer("ai")}async function t2({name:Y,tracer:X,attributes:Q,fn:J,endWhenDone:G=!0}){return X.startActiveSpan(Y,{attributes:await Q},async(K)=>{let W=NO.context.active();try{let Z=await NO.context.with(W,()=>J(K));if(G)K.end();return Z}catch(Z){try{BE6(K,Z)}finally{K.end()}throw Z}})}function BE6(Y,X){if(X instanceof Error)Y.recordException({name:X.name,message:X.message,stack:X.stack}),Y.setStatus({code:NO.SpanStatusCode.ERROR,message:X.message});else Y.setStatus({code:NO.SpanStatusCode.ERROR})}async function _W({telemetry:Y,attributes:X}){if((Y==null?void 0:Y.isEnabled)!==!0)return{};let Q={};for(let[J,G]of Object.entries(X)){if(G==null)continue;if(typeof G==="object"&&"input"in G&&typeof G.input==="function"){if((Y==null?void 0:Y.recordInputs)===!1)continue;let K=await G.input();if(K!=null)Q[J]=K;continue}if(typeof G==="object"&&"output"in G&&typeof G.output==="function"){if((Y==null?void 0:Y.recordOutputs)===!1)continue;let K=await G.output();if(K!=null)Q[J]=K;continue}Q[J]=G}return Q}function UE6(Y){return JSON.stringify(Y.map((X)=>({...X,content:typeof X.content==="string"?X.content:X.content.map((Q)=>Q.type==="file"?{...Q,data:Q.data instanceof Uint8Array?uH1(Q.data):Q.data}:Q)})))}function DE6(Y){return{inputTokens:Y.inputTokens.total,inputTokenDetails:{noCacheTokens:Y.inputTokens.noCache,cacheReadTokens:Y.inputTokens.cacheRead,cacheWriteTokens:Y.inputTokens.cacheWrite},outputTokens:Y.outputTokens.total,outputTokenDetails:{textTokens:Y.outputTokens.text,reasoningTokens:Y.outputTokens.reasoning},totalTokens:cG(Y.inputTokens.total,Y.outputTokens.total),raw:Y.raw,reasoningTokens:Y.outputTokens.reasoning,cachedInputTokens:Y.inputTokens.cacheRead}}function RW0(){return{inputTokens:void 0,inputTokenDetails:{noCacheTokens:void 0,cacheReadTokens:void 0,cacheWriteTokens:void 0},outputTokens:void 0,outputTokenDetails:{textTokens:void 0,reasoningTokens:void 0},totalTokens:void 0,raw:void 0}}function OE6(Y,X){var Q,J,G,K,W,Z,H,F,V,$;return{inputTokens:cG(Y.inputTokens,X.inputTokens),inputTokenDetails:{noCacheTokens:cG((Q=Y.inputTokenDetails)==null?void 0:Q.noCacheTokens,(J=X.inputTokenDetails)==null?void 0:J.noCacheTokens),cacheReadTokens:cG((G=Y.inputTokenDetails)==null?void 0:G.cacheReadTokens,(K=X.inputTokenDetails)==null?void 0:K.cacheReadTokens),cacheWriteTokens:cG((W=Y.inputTokenDetails)==null?void 0:W.cacheWriteTokens,(Z=X.inputTokenDetails)==null?void 0:Z.cacheWriteTokens)},outputTokens:cG(Y.outputTokens,X.outputTokens),outputTokenDetails:{textTokens:cG((H=Y.outputTokenDetails)==null?void 0:H.textTokens,(F=X.outputTokenDetails)==null?void 0:F.textTokens),reasoningTokens:cG((V=Y.outputTokenDetails)==null?void 0:V.reasoningTokens,($=X.outputTokenDetails)==null?void 0:$.reasoningTokens)},totalTokens:cG(Y.totalTokens,X.totalTokens),reasoningTokens:cG(Y.reasoningTokens,X.reasoningTokens),cachedInputTokens:cG(Y.cachedInputTokens,X.cachedInputTokens)}}function cG(Y,X){return Y==null&&X==null?void 0:(Y!=null?Y:0)+(X!=null?X:0)}function iu(Y,X){if(Y===void 0&&X===void 0)return;if(Y===void 0)return X;if(X===void 0)return Y;let Q={...Y};for(let J in X)if(Object.prototype.hasOwnProperty.call(X,J)){let G=X[J];if(G===void 0)continue;let K=J in Y?Y[J]:void 0,W=G!==null&&typeof G==="object"&&!Array.isArray(G)&&!(G instanceof Date)&&!(G instanceof RegExp),Z=K!==null&&K!==void 0&&typeof K==="object"&&!Array.isArray(K)&&!(K instanceof Date)&&!(K instanceof RegExp);if(W&&Z)Q[J]=iu(K,G);else Q[J]=G}return Q}function J31({error:Y,exponentialBackoffDelay:X}){let Q=Y.responseHeaders;if(!Q)return X;let J,G=Q["retry-after-ms"];if(G){let W=parseFloat(G);if(!Number.isNaN(W))J=W}let K=Q["retry-after"];if(K&&J===void 0){let W=parseFloat(K);if(!Number.isNaN(W))J=W*1000;else J=Date.parse(K)-Date.now()}if(J!=null&&!Number.isNaN(J)&&0<=J&&(J<60000||J<X))return J;return X}async function NE6(Y,{maxRetries:X,delayInMs:Q,backoffFactor:J,abortSignal:G},K=[]){try{return await Y()}catch(W){if(DK(W))throw W;if(X===0)throw W;let Z=qO(W),H=[...K,W],F=H.length;if(F>X)throw new Q26({message:`Failed after ${F} attempts. Last error: ${Z}`,reason:"maxRetriesExceeded",errors:H});if(W instanceof Error&&J9.isInstance(W)&&W.isRetryable===!0&&F<=X)return await TT6(J31({error:W,exponentialBackoffDelay:Q}),{abortSignal:G}),NE6(Y,{maxRetries:X,delayInMs:J*Q,backoffFactor:J,abortSignal:G},H);if(F===1)throw W;throw new Q26({message:`Failed after ${F} attempts with non-retryable error: '${Z}'`,reason:"errorNotRetryable",errors:H})}}function LE6({maxRetries:Y,abortSignal:X}){if(Y!=null){if(!Number.isInteger(Y))throw new nG({parameter:"maxRetries",value:Y,message:"maxRetries must be an integer"});if(Y<0)throw new nG({parameter:"maxRetries",value:Y,message:"maxRetries must be >= 0"})}let Q=Y!=null?Y:2;return{maxRetries:Q,retry:G31({maxRetries:Q,abortSignal:X})}}function wE6({messages:Y}){let X=Y.at(-1);if((X==null?void 0:X.role)!="tool")return{approvedToolApprovals:[],deniedToolApprovals:[]};let Q={};for(let H of Y)if(H.role==="assistant"&&typeof H.content!=="string"){let F=H.content;for(let V of F)if(V.type==="tool-call")Q[V.toolCallId]=V}let J={};for(let H of Y)if(H.role==="assistant"&&typeof H.content!=="string"){let F=H.content;for(let V of F)if(V.type==="tool-approval-request")J[V.approvalId]=V}let G={};for(let H of X.content)if(H.type==="tool-result")G[H.toolCallId]=H;let K=[],W=[],Z=X.content.filter((H)=>H.type==="tool-approval-response");for(let H of Z){let F=J[H.approvalId];if(F==null)throw new iK1({approvalId:H.approvalId});if(G[F.toolCallId]!=null)continue;let V=Q[F.toolCallId];if(V==null)throw new uW0({toolCallId:F.toolCallId,approvalId:F.approvalId});let $={approvalRequest:F,approvalResponse:H,toolCall:V};if(H.approved)K.push($);else W.push($)}return{approvedToolApprovals:K,deniedToolApprovals:W}}async function lW0({toolCall:Y,tools:X,tracer:Q,telemetry:J,messages:G,abortSignal:K,experimental_context:W,onPreliminaryToolResult:Z}){let{toolName:H,toolCallId:F,input:V}=Y,$=X==null?void 0:X[H];if(($==null?void 0:$.execute)==null)return;return t2({name:"ai.toolCall",attributes:_W({telemetry:J,attributes:{...s2({operationId:"ai.toolCall",telemetry:J}),"ai.toolCall.name":H,"ai.toolCall.id":F,"ai.toolCall.args":{output:()=>JSON.stringify(V)}}}),tracer:Q,fn:async(q)=>{let B;try{let D=uT6({execute:$.execute.bind($),input:V,options:{toolCallId:F,messages:G,abortSignal:K,experimental_context:W}});for await(let O of D)if(O.type==="preliminary")Z==null||Z({...Y,type:"tool-result",output:O.output,preliminary:!0});else B=O.output}catch(D){return BE6(q,D),{type:"tool-error",toolCallId:F,toolName:H,input:V,error:D,dynamic:$.type==="dynamic",...Y.providerMetadata!=null?{providerMetadata:Y.providerMetadata}:{}}}try{q.setAttributes(await _W({telemetry:J,attributes:{"ai.toolCall.result":{output:()=>JSON.stringify(B)}}}))}catch(D){}return{type:"tool-result",toolCallId:F,toolName:H,input:V,output:B,dynamic:$.type==="dynamic",...Y.providerMetadata!=null?{providerMetadata:Y.providerMetadata}:{}}}})}function Z26(Y){let X=Y.filter((Q)=>Q.type==="text");if(X.length===0)return;return X.map((Q)=>Q.text).join("")}async function AE6({tool:Y,toolCall:X,messages:Q,experimental_context:J}){if(Y.needsApproval==null)return!1;if(typeof Y.needsApproval==="boolean")return Y.needsApproval;return await Y.needsApproval(X.input,{toolCallId:X.toolCallId,messages:Q,experimental_context:J})}function K31(Y){let X=["ROOT"],Q=-1,J=null;function G(H,F,V){switch(H){case'"':{Q=F,X.pop(),X.push(V),X.push("INSIDE_STRING");break}case"f":case"t":case"n":{Q=F,J=F,X.pop(),X.push(V),X.push("INSIDE_LITERAL");break}case"-":{X.pop(),X.push(V),X.push("INSIDE_NUMBER");break}case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":{Q=F,X.pop(),X.push(V),X.push("INSIDE_NUMBER");break}case"{":{Q=F,X.pop(),X.push(V),X.push("INSIDE_OBJECT_START");break}case"[":{Q=F,X.pop(),X.push(V),X.push("INSIDE_ARRAY_START");break}}}function K(H,F){switch(H){case",":{X.pop(),X.push("INSIDE_OBJECT_AFTER_COMMA");break}case"}":{Q=F,X.pop();break}}}function W(H,F){switch(H){case",":{X.pop(),X.push("INSIDE_ARRAY_AFTER_COMMA");break}case"]":{Q=F,X.pop();break}}}for(let H=0;H<Y.length;H++){let F=Y[H];switch(X[X.length-1]){case"ROOT":G(F,H,"FINISH");break;case"INSIDE_OBJECT_START":{switch(F){case'"':{X.pop(),X.push("INSIDE_OBJECT_KEY");break}case"}":{Q=H,X.pop();break}}break}case"INSIDE_OBJECT_AFTER_COMMA":{switch(F){case'"':{X.pop(),X.push("INSIDE_OBJECT_KEY");break}}break}case"INSIDE_OBJECT_KEY":{switch(F){case'"':{X.pop(),X.push("INSIDE_OBJECT_AFTER_KEY");break}}break}case"INSIDE_OBJECT_AFTER_KEY":{switch(F){case":":{X.pop(),X.push("INSIDE_OBJECT_BEFORE_VALUE");break}}break}case"INSIDE_OBJECT_BEFORE_VALUE":{G(F,H,"INSIDE_OBJECT_AFTER_VALUE");break}case"INSIDE_OBJECT_AFTER_VALUE":{K(F,H);break}case"INSIDE_STRING":{switch(F){case'"':{X.pop(),Q=H;break}case"\\":{X.push("INSIDE_STRING_ESCAPE");break}default:Q=H}break}case"INSIDE_ARRAY_START":{switch(F){case"]":{Q=H,X.pop();break}default:{Q=H,G(F,H,"INSIDE_ARRAY_AFTER_VALUE");break}}break}case"INSIDE_ARRAY_AFTER_VALUE":{switch(F){case",":{X.pop(),X.push("INSIDE_ARRAY_AFTER_COMMA");break}case"]":{Q=H,X.pop();break}default:{Q=H;break}}break}case"INSIDE_ARRAY_AFTER_COMMA":{G(F,H,"INSIDE_ARRAY_AFTER_VALUE");break}case"INSIDE_STRING_ESCAPE":{X.pop(),Q=H;break}case"INSIDE_NUMBER":{switch(F){case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":{Q=H;break}case"e":case"E":case"-":case".":break;case",":{if(X.pop(),X[X.length-1]==="INSIDE_ARRAY_AFTER_VALUE")W(F,H);if(X[X.length-1]==="INSIDE_OBJECT_AFTER_VALUE")K(F,H);break}case"}":{if(X.pop(),X[X.length-1]==="INSIDE_OBJECT_AFTER_VALUE")K(F,H);break}case"]":{if(X.pop(),X[X.length-1]==="INSIDE_ARRAY_AFTER_VALUE")W(F,H);break}default:{X.pop();break}}break}case"INSIDE_LITERAL":{let $=Y.substring(J,H+1);if(!"false".startsWith($)&&!"true".startsWith($)&&!"null".startsWith($)){if(X.pop(),X[X.length-1]==="INSIDE_OBJECT_AFTER_VALUE")K(F,H);else if(X[X.length-1]==="INSIDE_ARRAY_AFTER_VALUE")W(F,H)}else Q=H;break}}}let Z=Y.slice(0,Q+1);for(let H=X.length-1;H>=0;H--)switch(X[H]){case"INSIDE_STRING":{Z+='"';break}case"INSIDE_OBJECT_KEY":case"INSIDE_OBJECT_AFTER_KEY":case"INSIDE_OBJECT_AFTER_COMMA":case"INSIDE_OBJECT_START":case"INSIDE_OBJECT_BEFORE_VALUE":case"INSIDE_OBJECT_AFTER_VALUE":{Z+="}";break}case"INSIDE_ARRAY_START":case"INSIDE_ARRAY_AFTER_COMMA":case"INSIDE_ARRAY_AFTER_VALUE":{Z+="]";break}case"INSIDE_LITERAL":{let V=Y.substring(J,Y.length);if("true".startsWith(V))Z+="true".slice(V.length);else if("false".startsWith(V))Z+="false".slice(V.length);else if("null".startsWith(V))Z+="null".slice(V.length)}}return Z}async function e2(Y){if(Y===void 0)return{value:void 0,state:"undefined-input"};let X=await oQ({text:Y});if(X.success)return{value:X.value,state:"successful-parse"};if(X=await oQ({text:K31(Y)}),X.success)return{value:X.value,state:"repaired-parse"};return{value:void 0,state:"failed-parse"}}async function TE6({toolCall:Y,tools:X,repairToolCall:Q,system:J,messages:G}){var K;try{if(X==null){if(Y.providerExecuted&&Y.dynamic)return await PE6(Y);throw new _W0({toolName:Y.toolName})}try{return await K26({toolCall:Y,tools:X})}catch(W){if(Q==null||!(_W0.isInstance(W)||xW0.isInstance(W)))throw W;let Z=null;try{Z=await Q({toolCall:Y,tools:X,inputSchema:async({toolName:H})=>{let{inputSchema:F}=X[H];return await SW(F).jsonSchema},system:J,messages:G,error:W})}catch(H){throw new zH1({cause:H,originalError:W})}if(Z==null)throw W;return await K26({toolCall:Z,tools:X})}}catch(W){let Z=await oQ({text:Y.input}),H=Z.success?Z.value:Y.input;return{type:"tool-call",toolCallId:Y.toolCallId,toolName:Y.toolName,input:H,dynamic:!0,invalid:!0,error:W,title:(K=X==null?void 0:X[Y.toolName])==null?void 0:K.title,providerExecuted:Y.providerExecuted,providerMetadata:Y.providerMetadata}}}async function PE6(Y){let X=Y.input.trim()===""?{success:!0,value:{}}:await oQ({text:Y.input});if(X.success===!1)throw new xW0({toolName:Y.toolName,toolInput:Y.input,cause:X.error});return{type:"tool-call",toolCallId:Y.toolCallId,toolName:Y.toolName,input:X.value,providerExecuted:!0,dynamic:!0,providerMetadata:Y.providerMetadata}}async function K26({toolCall:Y,tools:X}){let Q=Y.toolName,J=X[Q];if(J==null){if(Y.providerExecuted&&Y.dynamic)return await PE6(Y);throw new _W0({toolName:Y.toolName,availableTools:Object.keys(X)})}let G=SW(J.inputSchema),K=Y.input.trim()===""?await $Q({value:{},schema:G}):await oQ({text:Y.input,schema:G});if(K.success===!1)throw new xW0({toolName:Q,toolInput:Y.input,cause:K.error});return J.type==="dynamic"?{type:"tool-call",toolCallId:Y.toolCallId,toolName:Y.toolName,input:K.value,providerExecuted:Y.providerExecuted,providerMetadata:Y.providerMetadata,dynamic:!0,title:J.title}:{type:"tool-call",toolCallId:Y.toolCallId,toolName:Q,input:K.value,providerExecuted:Y.providerExecuted,providerMetadata:Y.providerMetadata,title:J.title}}function au(Y){return({steps:X})=>X.length===Y}async function CE6({stopConditions:Y,steps:X}){return(await Promise.all(Y.map((Q)=>Q({steps:X})))).some((Q)=>Q)}async function fW0({content:Y,tools:X}){let Q=[],J=[];for(let K of Y){if(K.type==="source")continue;if((K.type==="tool-result"||K.type==="tool-error")&&!K.providerExecuted)continue;if(K.type==="text"&&K.text.length===0)continue;switch(K.type){case"text":J.push({type:"text",text:K.text,providerOptions:K.providerMetadata});break;case"reasoning":J.push({type:"reasoning",text:K.text,providerOptions:K.providerMetadata});break;case"file":J.push({type:"file",data:K.file.base64,mediaType:K.file.mediaType,providerOptions:K.providerMetadata});break;case"tool-call":J.push({type:"tool-call",toolCallId:K.toolCallId,toolName:K.toolName,input:K.input,providerExecuted:K.providerExecuted,providerOptions:K.providerMetadata});break;case"tool-result":{let W=await wq({toolCallId:K.toolCallId,input:K.input,tool:X==null?void 0:X[K.toolName],output:K.output,errorMode:"none"});J.push({type:"tool-result",toolCallId:K.toolCallId,toolName:K.toolName,output:W,providerOptions:K.providerMetadata});break}case"tool-error":{let W=await wq({toolCallId:K.toolCallId,input:K.input,tool:X==null?void 0:X[K.toolName],output:K.error,errorMode:"json"});J.push({type:"tool-result",toolCallId:K.toolCallId,toolName:K.toolName,output:W,providerOptions:K.providerMetadata});break}case"tool-approval-request":J.push({type:"tool-approval-request",approvalId:K.approvalId,toolCallId:K.toolCall.toolCallId});break}}if(J.length>0)Q.push({role:"assistant",content:J});let G=[];for(let K of Y){if(!(K.type==="tool-result"||K.type==="tool-error")||K.providerExecuted)continue;let W=await wq({toolCallId:K.toolCallId,input:K.input,tool:X==null?void 0:X[K.toolName],output:K.type==="tool-result"?K.output:K.error,errorMode:K.type==="tool-error"?"text":"none"});G.push({type:"tool-result",toolCallId:K.toolCallId,toolName:K.toolName,output:W,...K.providerMetadata!=null?{providerOptions:K.providerMetadata}:{}})}if(G.length>0)Q.push({role:"tool",content:G});return Q}function IE6(...Y){let X=Y.filter((J)=>J!=null);if(X.length===0)return;if(X.length===1)return X[0];let Q=new AbortController;for(let J of X){if(J.aborted)return Q.abort(J.reason),Q.signal;J.addEventListener("abort",()=>{Q.abort(J.reason)},{once:!0})}return Q.signal}async function ru({model:Y,tools:X,toolChoice:Q,system:J,prompt:G,messages:K,maxRetries:W,abortSignal:Z,timeout:H,headers:F,stopWhen:V=au(1),experimental_output:$,output:q=$,experimental_telemetry:B,providerOptions:D,experimental_activeTools:O,activeTools:L=O,experimental_prepareStep:w,prepareStep:I=w,experimental_repairToolCall:T,experimental_download:P,experimental_context:A,_internal:{generateId:R=q31}={},onStepFinish:j,onFinish:v,...y}){let f=cu(Y),h=r2(V),s=mW0(H),g=YE6(H),k=g!=null?new AbortController:void 0,b=IE6(Z,s!=null?AbortSignal.timeout(s):void 0,k==null?void 0:k.signal),{maxRetries:Y0,retry:p}=LE6({maxRetries:W,abortSignal:b}),W0=yW0(y),B0=OK(F!=null?F:{},`ai/${XE6}`),J0=$E6({model:f,telemetry:B,headers:B0,settings:{...W0,maxRetries:Y0}}),D0=await FE6({system:J,prompt:G,messages:K}),E0=zE6(B);try{return await t2({name:"ai.generateText",attributes:_W({telemetry:B,attributes:{...s2({operationId:"ai.generateText",telemetry:B}),...J0,"ai.model.provider":f.provider,"ai.model.id":f.modelId,"ai.prompt":{input:()=>JSON.stringify({system:J,prompt:G,messages:K})}}}),tracer:E0,fn:async(h0)=>{var F6,w0,K0,v0,u6,m6,b0,A0;let V0=D0.messages,R0=[],{approvedToolApprovals:q0,deniedToolApprovals:L0}=wE6({messages:V0}),Y6=q0.filter((B4)=>!B4.toolCall.providerExecuted);if(L0.length>0||Y6.length>0){let B4=await H26({toolCalls:Y6.map((H6)=>H6.toolCall),tools:X,tracer:E0,telemetry:B,messages:V0,abortSignal:b,experimental_context:A}),M1=[];for(let H6 of B4){let P6=await wq({toolCallId:H6.toolCallId,input:H6.input,tool:X==null?void 0:X[H6.toolName],output:H6.type==="tool-result"?H6.output:H6.error,errorMode:H6.type==="tool-error"?"json":"none"});M1.push({type:"tool-result",toolCallId:H6.toolCallId,toolName:H6.toolName,output:P6})}for(let H6 of L0)M1.push({type:"tool-result",toolCallId:H6.toolCall.toolCallId,toolName:H6.toolCall.toolName,output:{type:"execution-denied",reason:H6.approvalResponse.reason,...H6.toolCall.providerExecuted&&{providerOptions:{openai:{approvalId:H6.approvalResponse.approvalId}}}}});R0.push({role:"tool",content:M1})}let f0=[...q0,...L0].filter((B4)=>B4.toolCall.providerExecuted);if(f0.length>0)R0.push({role:"tool",content:f0.map((B4)=>({type:"tool-approval-response",approvalId:B4.approvalResponse.approvalId,approved:B4.approvalResponse.approved,reason:B4.approvalResponse.reason,providerExecuted:!0}))});let y0=yW0(y),z6,y6=[],t6=[],E6=[],Z6=new Map;do{let B4=g!=null?setTimeout(()=>k.abort(),g):void 0;try{let M1=[...V0,...R0],H6=await(I==null?void 0:I({model:f,steps:E6,stepNumber:E6.length,messages:M1,experimental_context:A})),P6=cu((F6=H6==null?void 0:H6.model)!=null?F6:f),sQ=await GE6({prompt:{system:(w0=H6==null?void 0:H6.system)!=null?w0:D0.system,messages:(K0=H6==null?void 0:H6.messages)!=null?K0:M1},supportedUrls:await P6.supportedUrls,download:P});A=(v0=H6==null?void 0:H6.experimental_context)!=null?v0:A;let{toolChoice:N,tools:_}=await WE6({tools:X,toolChoice:(u6=H6==null?void 0:H6.toolChoice)!=null?u6:Q,activeTools:(m6=H6==null?void 0:H6.activeTools)!=null?m6:L});z6=await p(()=>{var X0;return t2({name:"ai.generateText.doGenerate",attributes:_W({telemetry:B,attributes:{...s2({operationId:"ai.generateText.doGenerate",telemetry:B}),...J0,"ai.model.provider":P6.provider,"ai.model.id":P6.modelId,"ai.prompt.messages":{input:()=>UE6(sQ)},"ai.prompt.tools":{input:()=>_==null?void 0:_.map((Q0)=>JSON.stringify(Q0))},"ai.prompt.toolChoice":{input:()=>N!=null?JSON.stringify(N):void 0},"gen_ai.system":P6.provider,"gen_ai.request.model":P6.modelId,"gen_ai.request.frequency_penalty":y.frequencyPenalty,"gen_ai.request.max_tokens":y.maxOutputTokens,"gen_ai.request.presence_penalty":y.presencePenalty,"gen_ai.request.stop_sequences":y.stopSequences,"gen_ai.request.temperature":(X0=y.temperature)!=null?X0:void 0,"gen_ai.request.top_k":y.topK,"gen_ai.request.top_p":y.topP}}),tracer:E0,fn:async(Q0)=>{var a,k0,C6,e6,g0,b6,c8,n9;let m4=iu(D,H6==null?void 0:H6.providerOptions),g1=await P6.doGenerate({...y0,tools:_,toolChoice:N,responseFormat:await(q==null?void 0:q.responseFormat),prompt:sQ,providerOptions:m4,abortSignal:b,headers:B0}),EY={id:(k0=(a=g1.response)==null?void 0:a.id)!=null?k0:R(),timestamp:(e6=(C6=g1.response)==null?void 0:C6.timestamp)!=null?e6:new Date,modelId:(b6=(g0=g1.response)==null?void 0:g0.modelId)!=null?b6:P6.modelId,headers:(c8=g1.response)==null?void 0:c8.headers,body:(n9=g1.response)==null?void 0:n9.body};return Q0.setAttributes(await _W({telemetry:B,attributes:{"ai.response.finishReason":g1.finishReason.unified,"ai.response.text":{output:()=>Z26(g1.content)},"ai.response.toolCalls":{output:()=>{let iG=F26(g1.content);return iG==null?void 0:JSON.stringify(iG)}},"ai.response.id":EY.id,"ai.response.model":EY.modelId,"ai.response.timestamp":EY.timestamp.toISOString(),"ai.response.providerMetadata":JSON.stringify(g1.providerMetadata),"ai.usage.promptTokens":g1.usage.inputTokens.total,"ai.usage.completionTokens":g1.usage.outputTokens.total,"gen_ai.response.finish_reasons":[g1.finishReason.unified],"gen_ai.response.id":EY.id,"gen_ai.response.model":EY.modelId,"gen_ai.usage.input_tokens":g1.usage.inputTokens.total,"gen_ai.usage.output_tokens":g1.usage.outputTokens.total}})),{...g1,response:EY}}})});let t=await Promise.all(z6.content.filter((X0)=>X0.type==="tool-call").map((X0)=>TE6({toolCall:X0,tools:X,repairToolCall:T,system:J,messages:M1}))),Z0={};for(let X0 of t){if(X0.invalid)continue;let Q0=X==null?void 0:X[X0.toolName];if(Q0==null)continue;if((Q0==null?void 0:Q0.onInputAvailable)!=null)await Q0.onInputAvailable({input:X0.input,toolCallId:X0.toolCallId,messages:M1,abortSignal:b,experimental_context:A});if(await AE6({tool:Q0,toolCall:X0,messages:M1,experimental_context:A}))Z0[X0.toolCallId]={type:"tool-approval-request",approvalId:R(),toolCall:X0}}let U=t.filter((X0)=>X0.invalid&&X0.dynamic);t6=[];for(let X0 of U)t6.push({type:"tool-error",toolCallId:X0.toolCallId,toolName:X0.toolName,input:X0.input,error:qO(X0.error),dynamic:!0});if(y6=t.filter((X0)=>!X0.providerExecuted),X!=null)t6.push(...await H26({toolCalls:y6.filter((X0)=>!X0.invalid&&Z0[X0.toolCallId]==null),tools:X,tracer:E0,telemetry:B,messages:M1,abortSignal:b,experimental_context:A}));for(let X0 of t){if(!X0.providerExecuted)continue;let Q0=X==null?void 0:X[X0.toolName];if((Q0==null?void 0:Q0.type)==="provider"&&Q0.supportsDeferredResults){if(!z6.content.some((k0)=>k0.type==="tool-result"&&k0.toolCallId===X0.toolCallId))Z6.set(X0.toolCallId,{toolName:X0.toolName})}}for(let X0 of z6.content)if(X0.type==="tool-result")Z6.delete(X0.toolCallId);let C=B31({content:z6.content,toolCalls:t,toolOutputs:t6,toolApprovalRequests:Object.values(Z0),tools:X});R0.push(...await fW0({content:C,tools:X}));let i=new EE6({content:C,finishReason:z6.finishReason.unified,rawFinishReason:z6.finishReason.raw,usage:DE6(z6.usage),warnings:z6.warnings,providerMetadata:z6.providerMetadata,request:(b0=z6.request)!=null?b0:{},response:{...z6.response,messages:structuredClone(R0)}});gW0({warnings:(A0=z6.warnings)!=null?A0:[],provider:P6.provider,model:P6.modelId}),E6.push(i),await(j==null?void 0:j(i))}finally{if(B4!=null)clearTimeout(B4)}}while((y6.length>0&&t6.length===y6.length||Z6.size>0)&&!await CE6({stopConditions:h,steps:E6}));h0.setAttributes(await _W({telemetry:B,attributes:{"ai.response.finishReason":z6.finishReason.unified,"ai.response.text":{output:()=>Z26(z6.content)},"ai.response.toolCalls":{output:()=>{let B4=F26(z6.content);return B4==null?void 0:JSON.stringify(B4)}},"ai.response.providerMetadata":JSON.stringify(z6.providerMetadata),"ai.usage.promptTokens":z6.usage.inputTokens.total,"ai.usage.completionTokens":z6.usage.outputTokens.total}}));let T0=E6[E6.length-1],C0=E6.reduce((B4,M1)=>{return OE6(B4,M1.usage)},{inputTokens:void 0,outputTokens:void 0,totalTokens:void 0,reasoningTokens:void 0,cachedInputTokens:void 0});await(v==null?void 0:v({finishReason:T0.finishReason,rawFinishReason:T0.rawFinishReason,usage:T0.usage,content:T0.content,text:T0.text,reasoningText:T0.reasoningText,reasoning:T0.reasoning,files:T0.files,sources:T0.sources,toolCalls:T0.toolCalls,staticToolCalls:T0.staticToolCalls,dynamicToolCalls:T0.dynamicToolCalls,toolResults:T0.toolResults,staticToolResults:T0.staticToolResults,dynamicToolResults:T0.dynamicToolResults,request:T0.request,response:T0.response,warnings:T0.warnings,providerMetadata:T0.providerMetadata,steps:E6,totalUsage:C0,experimental_context:A}));let Y4;if(T0.finishReason==="stop")Y4=await(q!=null?q:nu()).parseCompleteOutput({text:T0.text},{response:T0.response,usage:T0.usage,finishReason:T0.finishReason});return new z31({steps:E6,totalUsage:C0,output:Y4})}})}catch(h0){throw VE6(h0)}}async function H26({toolCalls:Y,tools:X,tracer:Q,telemetry:J,messages:G,abortSignal:K,experimental_context:W}){return(await Promise.all(Y.map(async(H)=>lW0({toolCall:H,tools:X,tracer:Q,telemetry:J,messages:G,abortSignal:K,experimental_context:W})))).filter((H)=>H!=null)}function F26(Y){let X=Y.filter((Q)=>Q.type==="tool-call");if(X.length===0)return;return X.map((Q)=>({toolCallId:Q.toolCallId,toolName:Q.toolName,input:Q.input}))}function B31({content:Y,toolCalls:X,toolOutputs:Q,toolApprovalRequests:J,tools:G}){let K=[];for(let W of Y)switch(W.type){case"text":case"reasoning":case"source":K.push(W);break;case"file":{K.push({type:"file",file:new ME6(W),...W.providerMetadata!=null?{providerMetadata:W.providerMetadata}:{}});break}case"tool-call":{K.push(X.find((Z)=>Z.toolCallId===W.toolCallId));break}case"tool-result":{let Z=X.find((H)=>H.toolCallId===W.toolCallId);if(Z==null){let H=G==null?void 0:G[W.toolName];if(!((H==null?void 0:H.type)==="provider"&&H.supportsDeferredResults))throw Error(`Tool call ${W.toolCallId} not found.`);if(W.isError)K.push({type:"tool-error",toolCallId:W.toolCallId,toolName:W.toolName,input:void 0,error:W.result,providerExecuted:!0,dynamic:W.dynamic});else K.push({type:"tool-result",toolCallId:W.toolCallId,toolName:W.toolName,input:void 0,output:W.result,providerExecuted:!0,dynamic:W.dynamic});break}if(W.isError)K.push({type:"tool-error",toolCallId:W.toolCallId,toolName:W.toolName,input:Z.input,error:W.result,providerExecuted:!0,dynamic:Z.dynamic});else K.push({type:"tool-result",toolCallId:W.toolCallId,toolName:W.toolName,input:Z.input,output:W.result,providerExecuted:!0,dynamic:Z.dynamic});break}case"tool-approval-request":{let Z=X.find((H)=>H.toolCallId===W.toolCallId);if(Z==null)throw new uW0({toolCallId:W.toolCallId,approvalId:W.approvalId});K.push({type:"tool-approval-request",approvalId:W.approvalId,toolCall:Z});break}}return[...K,...Q,...J]}function ou(Y,X){let Q=new Headers(Y!=null?Y:{});for(let[J,G]of Object.entries(X))if(!Q.has(J))Q.set(J,G);return Q}function U31({status:Y,statusText:X,headers:Q,textStream:J}){return new Response(J.pipeThrough(new TextEncoderStream),{status:Y!=null?Y:200,statusText:X,headers:ou(Q,{"content-type":"text/plain; charset=utf-8"})})}function RE6({response:Y,status:X,statusText:Q,headers:J,stream:G}){let K=X!=null?X:200;if(Q!==void 0)Y.writeHead(K,Q,J);else Y.writeHead(K,J);let W=G.getReader();(async()=>{try{while(!0){let{done:H,value:F}=await W.read();if(H)break;if(!Y.write(F))await new Promise(($)=>{Y.once("drain",$)})}}catch(H){throw H}finally{Y.end()}})()}function D31({response:Y,status:X,statusText:Q,headers:J,textStream:G}){RE6({response:Y,status:X,statusText:Q,headers:Object.fromEntries(ou(J,{"content-type":"text/plain; charset=utf-8"}).entries()),stream:G.pipeThrough(new TextEncoderStream)})}function O31({status:Y,statusText:X,headers:Q,stream:J,consumeSseStream:G}){let K=J.pipeThrough(new jE6);if(G){let[W,Z]=K.tee();K=W,G({stream:Z})}return new Response(K.pipeThrough(new TextEncoderStream),{status:Y,statusText:X,headers:ou(Q,SE6)})}function N31({originalMessages:Y,responseMessageId:X}){if(Y==null)return;let Q=Y[Y.length-1];return(Q==null?void 0:Q.role)==="assistant"?Q.id:typeof X==="function"?X():X}function L31(Y){return Y.type.startsWith("data-")}function jW0(Y){return Y.type.startsWith("data-")}function SW0(Y){return Y.type==="text"}function kW0(Y){return Y.type==="file"}function V26(Y){return Y.type==="reasoning"}function hW0(Y){return Y.type.startsWith("tool-")}function kE6(Y){return Y.type==="dynamic-tool"}function a2(Y){return hW0(Y)||kE6(Y)}function bW0(Y){return Y.type.split("-").slice(1).join("-")}function vW0(Y){return kE6(Y)?Y.toolName:bW0(Y)}function w31({lastMessage:Y,messageId:X}){return{message:(Y==null?void 0:Y.role)==="assistant"?Y:{id:X,metadata:void 0,role:"assistant",parts:[]},activeTextParts:{},activeReasoningParts:{},partialToolCalls:{}}}function M31({stream:Y,messageMetadataSchema:X,dataPartSchemas:Q,runUpdateMessageJob:J,onError:G,onToolCall:K,onData:W}){return Y.pipeThrough(new TransformStream({async transform(Z,H){await J(async({state:F,write:V})=>{var $,q,B,D;function O(T){let A=F.message.parts.filter(a2).find((R)=>R.toolCallId===T);if(A==null)throw new OO({chunkType:"tool-invocation",chunkId:T,message:`No tool invocation found for tool call ID "${T}".`});return A}function L(T){var P;let A=F.message.parts.find((v)=>hW0(v)&&v.toolCallId===T.toolCallId),R=T,j=A;if(A!=null){if(A.state=T.state,j.input=R.input,j.output=R.output,j.errorText=R.errorText,j.rawInput=R.rawInput,j.preliminary=R.preliminary,T.title!==void 0)j.title=T.title;if(j.providerExecuted=(P=R.providerExecuted)!=null?P:A.providerExecuted,R.providerMetadata!=null)A.callProviderMetadata=R.providerMetadata}else F.message.parts.push({type:`tool-${T.toolName}`,toolCallId:T.toolCallId,state:T.state,title:T.title,input:R.input,output:R.output,rawInput:R.rawInput,errorText:R.errorText,providerExecuted:R.providerExecuted,preliminary:R.preliminary,...R.providerMetadata!=null?{callProviderMetadata:R.providerMetadata}:{}})}function w(T){var P,A;let R=F.message.parts.find((y)=>y.type==="dynamic-tool"&&y.toolCallId===T.toolCallId),j=T,v=R;if(R!=null){if(R.state=T.state,v.toolName=T.toolName,v.input=j.input,v.output=j.output,v.errorText=j.errorText,v.rawInput=(P=j.rawInput)!=null?P:v.rawInput,v.preliminary=j.preliminary,T.title!==void 0)v.title=T.title;if(v.providerExecuted=(A=j.providerExecuted)!=null?A:R.providerExecuted,j.providerMetadata!=null)R.callProviderMetadata=j.providerMetadata}else F.message.parts.push({type:"dynamic-tool",toolName:T.toolName,toolCallId:T.toolCallId,state:T.state,input:j.input,output:j.output,errorText:j.errorText,preliminary:j.preliminary,providerExecuted:j.providerExecuted,title:T.title,...j.providerMetadata!=null?{callProviderMetadata:j.providerMetadata}:{}})}async function I(T){if(T!=null){let P=F.message.metadata!=null?iu(F.message.metadata,T):T;if(X!=null)await kW({value:P,schema:X});F.message.metadata=P}}switch(Z.type){case"text-start":{let T={type:"text",text:"",providerMetadata:Z.providerMetadata,state:"streaming"};F.activeTextParts[Z.id]=T,F.message.parts.push(T),V();break}case"text-delta":{let T=F.activeTextParts[Z.id];if(T==null)throw new OO({chunkType:"text-delta",chunkId:Z.id,message:`Received text-delta for missing text part with ID "${Z.id}". Ensure a "text-start" chunk is sent before any "text-delta" chunks.`});T.text+=Z.delta,T.providerMetadata=($=Z.providerMetadata)!=null?$:T.providerMetadata,V();break}case"text-end":{let T=F.activeTextParts[Z.id];if(T==null)throw new OO({chunkType:"text-end",chunkId:Z.id,message:`Received text-end for missing text part with ID "${Z.id}". Ensure a "text-start" chunk is sent before any "text-end" chunks.`});T.state="done",T.providerMetadata=(q=Z.providerMetadata)!=null?q:T.providerMetadata,delete F.activeTextParts[Z.id],V();break}case"reasoning-start":{let T={type:"reasoning",text:"",providerMetadata:Z.providerMetadata,state:"streaming"};F.activeReasoningParts[Z.id]=T,F.message.parts.push(T),V();break}case"reasoning-delta":{let T=F.activeReasoningParts[Z.id];if(T==null)throw new OO({chunkType:"reasoning-delta",chunkId:Z.id,message:`Received reasoning-delta for missing reasoning part with ID "${Z.id}". Ensure a "reasoning-start" chunk is sent before any "reasoning-delta" chunks.`});T.text+=Z.delta,T.providerMetadata=(B=Z.providerMetadata)!=null?B:T.providerMetadata,V();break}case"reasoning-end":{let T=F.activeReasoningParts[Z.id];if(T==null)throw new OO({chunkType:"reasoning-end",chunkId:Z.id,message:`Received reasoning-end for missing reasoning part with ID "${Z.id}". Ensure a "reasoning-start" chunk is sent before any "reasoning-end" chunks.`});T.providerMetadata=(D=Z.providerMetadata)!=null?D:T.providerMetadata,T.state="done",delete F.activeReasoningParts[Z.id],V();break}case"file":{F.message.parts.push({type:"file",mediaType:Z.mediaType,url:Z.url}),V();break}case"source-url":{F.message.parts.push({type:"source-url",sourceId:Z.sourceId,url:Z.url,title:Z.title,providerMetadata:Z.providerMetadata}),V();break}case"source-document":{F.message.parts.push({type:"source-document",sourceId:Z.sourceId,mediaType:Z.mediaType,title:Z.title,filename:Z.filename,providerMetadata:Z.providerMetadata}),V();break}case"tool-input-start":{let T=F.message.parts.filter(hW0);if(F.partialToolCalls[Z.toolCallId]={text:"",toolName:Z.toolName,index:T.length,dynamic:Z.dynamic,title:Z.title},Z.dynamic)w({toolCallId:Z.toolCallId,toolName:Z.toolName,state:"input-streaming",input:void 0,providerExecuted:Z.providerExecuted,title:Z.title,providerMetadata:Z.providerMetadata});else L({toolCallId:Z.toolCallId,toolName:Z.toolName,state:"input-streaming",input:void 0,providerExecuted:Z.providerExecuted,title:Z.title,providerMetadata:Z.providerMetadata});V();break}case"tool-input-delta":{let T=F.partialToolCalls[Z.toolCallId];if(T==null)throw new OO({chunkType:"tool-input-delta",chunkId:Z.toolCallId,message:`Received tool-input-delta for missing tool call with ID "${Z.toolCallId}". Ensure a "tool-input-start" chunk is sent before any "tool-input-delta" chunks.`});T.text+=Z.inputTextDelta;let{value:P}=await e2(T.text);if(T.dynamic)w({toolCallId:Z.toolCallId,toolName:T.toolName,state:"input-streaming",input:P,title:T.title});else L({toolCallId:Z.toolCallId,toolName:T.toolName,state:"input-streaming",input:P,title:T.title});V();break}case"tool-input-available":{if(Z.dynamic)w({toolCallId:Z.toolCallId,toolName:Z.toolName,state:"input-available",input:Z.input,providerExecuted:Z.providerExecuted,providerMetadata:Z.providerMetadata,title:Z.title});else L({toolCallId:Z.toolCallId,toolName:Z.toolName,state:"input-available",input:Z.input,providerExecuted:Z.providerExecuted,providerMetadata:Z.providerMetadata,title:Z.title});if(V(),K&&!Z.providerExecuted)await K({toolCall:Z});break}case"tool-input-error":{if(Z.dynamic)w({toolCallId:Z.toolCallId,toolName:Z.toolName,state:"output-error",input:Z.input,errorText:Z.errorText,providerExecuted:Z.providerExecuted,providerMetadata:Z.providerMetadata});else L({toolCallId:Z.toolCallId,toolName:Z.toolName,state:"output-error",input:void 0,rawInput:Z.input,errorText:Z.errorText,providerExecuted:Z.providerExecuted,providerMetadata:Z.providerMetadata});V();break}case"tool-approval-request":{let T=O(Z.toolCallId);T.state="approval-requested",T.approval={id:Z.approvalId},V();break}case"tool-output-denied":{let T=O(Z.toolCallId);T.state="output-denied",V();break}case"tool-output-available":{let T=O(Z.toolCallId);if(T.type==="dynamic-tool")w({toolCallId:Z.toolCallId,toolName:T.toolName,state:"output-available",input:T.input,output:Z.output,preliminary:Z.preliminary,providerExecuted:Z.providerExecuted,title:T.title});else L({toolCallId:Z.toolCallId,toolName:bW0(T),state:"output-available",input:T.input,output:Z.output,providerExecuted:Z.providerExecuted,preliminary:Z.preliminary,title:T.title});V();break}case"tool-output-error":{let T=O(Z.toolCallId);if(T.type==="dynamic-tool")w({toolCallId:Z.toolCallId,toolName:T.toolName,state:"output-error",input:T.input,errorText:Z.errorText,providerExecuted:Z.providerExecuted,title:T.title});else L({toolCallId:Z.toolCallId,toolName:bW0(T),state:"output-error",input:T.input,rawInput:T.rawInput,errorText:Z.errorText,providerExecuted:Z.providerExecuted,title:T.title});V();break}case"start-step":{F.message.parts.push({type:"step-start"});break}case"finish-step":{F.activeTextParts={},F.activeReasoningParts={};break}case"start":{if(Z.messageId!=null)F.message.id=Z.messageId;if(await I(Z.messageMetadata),Z.messageId!=null||Z.messageMetadata!=null)V();break}case"finish":{if(Z.finishReason!=null)F.finishReason=Z.finishReason;if(await I(Z.messageMetadata),Z.messageMetadata!=null)V();break}case"message-metadata":{if(await I(Z.messageMetadata),Z.messageMetadata!=null)V();break}case"error":{G==null||G(Error(Z.errorText));break}default:if(L31(Z)){if((Q==null?void 0:Q[Z.type])!=null)await kW({value:Z.data,schema:Q[Z.type]});let T=Z;if(T.transient){W==null||W(T);break}let P=T.id!=null?F.message.parts.find((A)=>T.type===A.type&&T.id===A.id):void 0;if(P!=null)P.data=T.data;else F.message.parts.push(T);W==null||W(T),V()}}H.enqueue(Z)})}}))}function A31({messageId:Y,originalMessages:X=[],onFinish:Q,onError:J,stream:G}){let K=X==null?void 0:X[X.length-1];if((K==null?void 0:K.role)!=="assistant")K=void 0;else Y=K.id;let W=!1,Z=G.pipeThrough(new TransformStream({transform(q,B){if(q.type==="start"){let D=q;if(D.messageId==null&&Y!=null)D.messageId=Y}if(q.type==="abort")W=!0;B.enqueue(q)}}));if(Q==null)return Z;let H=w31({lastMessage:K?structuredClone(K):void 0,messageId:Y!=null?Y:""}),F=async(q)=>{await q({state:H,write:()=>{}})},V=!1,$=async()=>{if(V||!Q)return;V=!0;let q=H.message.id===(K==null?void 0:K.id);await Q({isAborted:W,isContinuation:q,responseMessage:H.message,messages:[...q?X.slice(0,-1):X,H.message],finishReason:H.finishReason})};return M31({stream:Z,runUpdateMessageJob:F,onError:J}).pipeThrough(new TransformStream({transform(q,B){B.enqueue(q)},async cancel(){await $()},async flush(){await $()}}))}function T31({response:Y,status:X,statusText:Q,headers:J,stream:G,consumeSseStream:K}){let W=G.pipeThrough(new jE6);if(K){let[Z,H]=W.tee();W=Z,K({stream:H})}RE6({response:Y,status:X,statusText:Q,headers:Object.fromEntries(ou(J,SE6).entries()),stream:W.pipeThrough(new TextEncoderStream)})}function i2(Y){let X=Y.pipeThrough(new TransformStream);return X[Symbol.asyncIterator]=function(){let Q=this.getReader(),J=!1;async function G(K){var W;if(J)return;J=!0;try{if(K)await((W=Q.cancel)==null?void 0:W.call(Q))}finally{try{Q.releaseLock()}catch(Z){}}}return{async next(){if(J)return{done:!0,value:void 0};let{done:K,value:W}=await Q.read();if(K)return await G(!0),{done:!0,value:void 0};return{done:!1,value:W}},async return(){return await G(!0),{done:!0,value:void 0}},async throw(K){throw await G(!0),K}}},X}async function dW0({stream:Y,onError:X}){let Q=Y.getReader();try{while(!0){let{done:J}=await Q.read();if(J)break}}catch(J){X==null||X(J)}finally{Q.releaseLock()}}function $26(){let Y,X;return{promise:new Promise((J,G)=>{Y=J,X=G}),resolve:Y,reject:X}}function P31(){let Y=[],X=null,Q=!1,J=$26(),G=()=>{Q=!0,J.resolve(),Y.forEach((W)=>W.cancel()),Y=[],X==null||X.close()},K=async()=>{if(Q&&Y.length===0){X==null||X.close();return}if(Y.length===0)return J=$26(),await J.promise,K();try{let{value:W,done:Z}=await Y[0].read();if(Z)if(Y.shift(),Y.length===0&&Q)X==null||X.close();else await K();else X==null||X.enqueue(W)}catch(W){X==null||X.error(W),Y.shift(),G()}};return{stream:new ReadableStream({start(W){X=W},pull:K,async cancel(){for(let W of Y)await W.cancel();Y=[],Q=!0}}),addStream:(W)=>{if(Q)throw Error("Cannot add inner stream: outer stream is closed");Y.push(W.getReader()),J.resolve()},close:()=>{if(Q=!0,J.resolve(),Y.length===0)X==null||X.close()},terminate:G}}function E31(){var Y,X;return(X=(Y=globalThis==null?void 0:globalThis.performance)==null?void 0:Y.now())!=null?X:Date.now()}function C31({tools:Y,generatorStream:X,tracer:Q,telemetry:J,system:G,messages:K,abortSignal:W,repairToolCall:Z,experimental_context:H,generateId:F}){let V=null,$=new ReadableStream({start(T){V=T}}),q=new Set,B=new Map,D=new Map,O=!1,L=void 0;function w(){if(O&&q.size===0){if(L!=null)V.enqueue(L);V.close()}}let I=new TransformStream({async transform(T,P){let A=T.type;switch(A){case"stream-start":case"text-start":case"text-delta":case"text-end":case"reasoning-start":case"reasoning-delta":case"reasoning-end":case"tool-input-start":case"tool-input-delta":case"tool-input-end":case"source":case"response-metadata":case"error":case"raw":{P.enqueue(T);break}case"file":{P.enqueue({type:"file",file:new W31({data:T.data,mediaType:T.mediaType})});break}case"finish":{L={type:"finish",finishReason:T.finishReason.unified,rawFinishReason:T.finishReason.raw,usage:DE6(T.usage),providerMetadata:T.providerMetadata};break}case"tool-approval-request":{let R=D.get(T.toolCallId);if(R==null){V.enqueue({type:"error",error:new uW0({toolCallId:T.toolCallId,approvalId:T.approvalId})});break}P.enqueue({type:"tool-approval-request",approvalId:T.approvalId,toolCall:R});break}case"tool-call":{try{let R=await TE6({toolCall:T,tools:Y,repairToolCall:Z,system:G,messages:K});if(D.set(R.toolCallId,R),P.enqueue(R),R.invalid){V.enqueue({type:"tool-error",toolCallId:R.toolCallId,toolName:R.toolName,input:R.input,error:qO(R.error),dynamic:!0,title:R.title});break}let j=Y==null?void 0:Y[R.toolName];if(j==null)break;if(j.onInputAvailable!=null)await j.onInputAvailable({input:R.input,toolCallId:R.toolCallId,messages:K,abortSignal:W,experimental_context:H});if(await AE6({tool:j,toolCall:R,messages:K,experimental_context:H})){V.enqueue({type:"tool-approval-request",approvalId:F(),toolCall:R});break}if(B.set(R.toolCallId,R.input),j.execute!=null&&R.providerExecuted!==!0){let v=F();q.add(v),lW0({toolCall:R,tools:Y,tracer:Q,telemetry:J,messages:K,abortSignal:W,experimental_context:H,onPreliminaryToolResult:(y)=>{V.enqueue(y)}}).then((y)=>{V.enqueue(y)}).catch((y)=>{V.enqueue({type:"error",error:y})}).finally(()=>{q.delete(v),w()})}}catch(R){V.enqueue({type:"error",error:R})}break}case"tool-result":{let R=T.toolName;if(T.isError)V.enqueue({type:"tool-error",toolCallId:T.toolCallId,toolName:R,input:B.get(T.toolCallId),providerExecuted:!0,error:T.result,dynamic:T.dynamic});else P.enqueue({type:"tool-result",toolCallId:T.toolCallId,toolName:R,input:B.get(T.toolCallId),output:T.result,providerExecuted:!0,dynamic:T.dynamic});break}default:throw Error(`Unhandled chunk type: ${A}`)}},flush(){O=!0,w()}});return new ReadableStream({async start(T){return Promise.all([X.pipeThrough(I).pipeTo(new WritableStream({write(P){T.enqueue(P)},close(){}})),$.pipeTo(new WritableStream({write(P){T.enqueue(P)},close(){T.close()}}))])}})}function su({model:Y,tools:X,toolChoice:Q,system:J,prompt:G,messages:K,maxRetries:W,abortSignal:Z,timeout:H,headers:F,stopWhen:V=au(1),experimental_output:$,output:q=$,experimental_telemetry:B,prepareStep:D,providerOptions:O,experimental_activeTools:L,activeTools:w=L,experimental_repairToolCall:I,experimental_transform:T,experimental_download:P,includeRawChunks:A=!1,onChunk:R,onError:j=({error:b})=>{console.error(b)},onFinish:v,onAbort:y,onStepFinish:f,experimental_context:h,_internal:{now:s=E31,generateId:g=I31}={},...k}){let b=mW0(H),Y0=YE6(H),p=kH1(H),W0=Y0!=null?new AbortController:void 0,B0=p!=null?new AbortController:void 0;return new j31({model:cu(Y),telemetry:B,headers:F,settings:k,maxRetries:W,abortSignal:IE6(Z,b!=null?AbortSignal.timeout(b):void 0,W0==null?void 0:W0.signal,B0==null?void 0:B0.signal),stepTimeoutMs:Y0,stepAbortController:W0,chunkTimeoutMs:p,chunkAbortController:B0,system:J,prompt:G,messages:K,tools:X,toolChoice:Q,transforms:r2(T),activeTools:w,repairToolCall:I,stopConditions:r2(V),output:q,providerOptions:O,prepareStep:D,includeRawChunks:A,onChunk:R,onError:j,onFinish:v,onAbort:y,onStepFinish:f,now:s,generateId:g,experimental_context:h,download:P})}function R31(Y){let X=void 0,Q="",J="",G=void 0,K="";function W({controller:Z,partialOutput:H=void 0}){Z.enqueue({part:{type:"text-delta",id:X,text:J,providerMetadata:G},partialOutput:H}),J=""}return new TransformStream({async transform(Z,H){var F;if(Z.type==="finish-step"&&J.length>0)W({controller:H});if(Z.type!=="text-delta"&&Z.type!=="text-start"&&Z.type!=="text-end"){H.enqueue({part:Z,partialOutput:void 0});return}if(X==null)X=Z.id;else if(Z.id!==X){H.enqueue({part:Z,partialOutput:void 0});return}if(Z.type==="text-start"){H.enqueue({part:Z,partialOutput:void 0});return}if(Z.type==="text-end"){if(J.length>0)W({controller:H});H.enqueue({part:Z,partialOutput:void 0});return}Q+=Z.text,J+=Z.text,G=(F=Z.providerMetadata)!=null?F:G;let V=await Y.parsePartialOutput({text:Q});if(V!==void 0){let $=JSON.stringify(V.partial);if($!==K)W({controller:H,partialOutput:V.partial}),K=$}}})}async function vE6(Y,X){let Q=[];if(X==null?void 0:X.ignoreIncompleteToolCalls)Y=Y.map((J)=>({...J,parts:J.parts.filter((G)=>!a2(G)||G.state!=="input-streaming"&&G.state!=="input-available")}));for(let J of Y)switch(J.role){case"system":{let G=J.parts.filter((W)=>W.type==="text"),K=G.reduce((W,Z)=>{if(Z.providerMetadata!=null)return{...W,...Z.providerMetadata};return W},{});Q.push({role:"system",content:G.map((W)=>W.text).join(""),...Object.keys(K).length>0?{providerOptions:K}:{}});break}case"user":{Q.push({role:"user",content:J.parts.map((G)=>{var K;if(SW0(G))return{type:"text",text:G.text,...G.providerMetadata!=null?{providerOptions:G.providerMetadata}:{}};if(kW0(G))return{type:"file",mediaType:G.mediaType,filename:G.filename,data:G.url,...G.providerMetadata!=null?{providerOptions:G.providerMetadata}:{}};if(jW0(G))return(K=X==null?void 0:X.convertDataPart)==null?void 0:K.call(X,G)}).filter(RT6)});break}case"assistant":{if(J.parts!=null){let G=[];async function K(){var W,Z,H,F,V,$;if(G.length===0)return;let q=[];for(let D of G)if(SW0(D))q.push({type:"text",text:D.text,...D.providerMetadata!=null?{providerOptions:D.providerMetadata}:{}});else if(kW0(D))q.push({type:"file",mediaType:D.mediaType,filename:D.filename,data:D.url});else if(V26(D))q.push({type:"reasoning",text:D.text,providerOptions:D.providerMetadata});else if(a2(D)){let O=vW0(D);if(D.state!=="input-streaming"){if(q.push({type:"tool-call",toolCallId:D.toolCallId,toolName:O,input:D.state==="output-error"?(W=D.input)!=null?W:("rawInput"in D)?D.rawInput:void 0:D.input,providerExecuted:D.providerExecuted,...D.callProviderMetadata!=null?{providerOptions:D.callProviderMetadata}:{}}),D.approval!=null)q.push({type:"tool-approval-request",approvalId:D.approval.id,toolCallId:D.toolCallId});if(D.providerExecuted===!0&&D.state!=="approval-responded"&&(D.state==="output-available"||D.state==="output-error"))q.push({type:"tool-result",toolCallId:D.toolCallId,toolName:O,output:await wq({toolCallId:D.toolCallId,input:D.input,output:D.state==="output-error"?D.errorText:D.output,tool:(Z=X==null?void 0:X.tools)==null?void 0:Z[O],errorMode:D.state==="output-error"?"json":"none"}),...D.callProviderMetadata!=null?{providerOptions:D.callProviderMetadata}:{}})}}else if(jW0(D)){let O=(H=X==null?void 0:X.convertDataPart)==null?void 0:H.call(X,D);if(O!=null)q.push(O)}else throw Error(`Unsupported part: ${D}`);Q.push({role:"assistant",content:q});let B=G.filter((D)=>{var O;return a2(D)&&(D.providerExecuted!==!0||((O=D.approval)==null?void 0:O.approved)!=null)});if(B.length>0){let D=[];for(let O of B){if(((F=O.approval)==null?void 0:F.approved)!=null)D.push({type:"tool-approval-response",approvalId:O.approval.id,approved:O.approval.approved,reason:O.approval.reason,providerExecuted:O.providerExecuted});if(O.providerExecuted===!0)continue;switch(O.state){case"output-denied":{D.push({type:"tool-result",toolCallId:O.toolCallId,toolName:vW0(O),output:{type:"error-text",value:(V=O.approval.reason)!=null?V:"Tool execution denied."},...O.callProviderMetadata!=null?{providerOptions:O.callProviderMetadata}:{}});break}case"output-error":case"output-available":{let L=vW0(O);D.push({type:"tool-result",toolCallId:O.toolCallId,toolName:L,output:await wq({toolCallId:O.toolCallId,input:O.input,output:O.state==="output-error"?O.errorText:O.output,tool:($=X==null?void 0:X.tools)==null?void 0:$[L],errorMode:O.state==="output-error"?"text":"none"}),...O.callProviderMetadata!=null?{providerOptions:O.callProviderMetadata}:{}});break}}}if(D.length>0)Q.push({role:"tool",content:D})}G=[]}for(let W of J.parts)if(SW0(W)||V26(W)||kW0(W)||a2(W)||jW0(W))G.push(W);else if(W.type==="step-start")await K();await K();break}break}default:{let G=J.role;throw new TH1({originalMessage:J,message:`Unsupported role: ${G}`})}}return Q}async function k31({messages:Y,metadataSchema:X,dataSchemas:Q,tools:J}){try{if(Y==null)return{success:!1,error:new nG({parameter:"messages",value:Y,message:"messages parameter must be provided"})};let G=await kW({value:Y,schema:S31});if(X)for(let K of G)await kW({value:K.metadata,schema:X});if(Q)for(let K of G){let W=K.parts.filter((Z)=>Z.type.startsWith("data-"));for(let Z of W){let H=Z.type.slice(5),F=Q[H];if(!F)return{success:!1,error:new rQ({value:Z.data,cause:`No data schema found for data part ${H}`})};await kW({value:Z.data,schema:F})}}if(J)for(let K of G){let W=K.parts.filter((Z)=>Z.type.startsWith("tool-"));for(let Z of W){let H=Z.type.slice(5),F=J[H];if(!F)return{success:!1,error:new rQ({value:Z.input,cause:`No tool schema found for tool part ${H}`})};if(Z.state==="input-available"||Z.state==="output-available"||Z.state==="output-error"&&Z.input!==void 0)await kW({value:Z.input,schema:F.inputSchema});if(Z.state==="output-available"&&F.outputSchema)await kW({value:Z.output,schema:F.outputSchema})}}return{success:!0,data:G}}catch(G){return{success:!1,error:G}}}async function _E6({messages:Y,metadataSchema:X,dataSchemas:Q,tools:J}){let G=await k31({messages:Y,metadataSchema:X,dataSchemas:Q,tools:J});if(!G.success)throw G.error;return G.data}function yE6({messages:Y,reasoning:X="none",toolCalls:Q=[],emptyMessages:J="remove"}){if(X==="all"||X==="before-last-message")Y=Y.map((G,K)=>{if(G.role!=="assistant"||typeof G.content==="string"||X==="before-last-message"&&K===Y.length-1)return G;return{...G,content:G.content.filter((W)=>W.type!=="reasoning")}});if(Q==="none")Q=[];else if(Q==="all")Q=[{type:"all"}];else if(Q==="before-last-message")Q=[{type:"before-last-message"}];else if(typeof Q==="string")Q=[{type:Q}];for(let G of Q){let K=G.type==="all"?void 0:G.type==="before-last-message"?1:Number(G.type.slice(12).slice(0,-9)),W=new Set,Z=new Set;if(K!=null){for(let H of Y.slice(-K))if((H.role==="assistant"||H.role==="tool")&&typeof H.content!=="string"){for(let F of H.content)if(F.type==="tool-call"||F.type==="tool-result")W.add(F.toolCallId);else if(F.type==="tool-approval-request"||F.type==="tool-approval-response")Z.add(F.approvalId)}}Y=Y.map((H,F)=>{if(H.role!=="assistant"&&H.role!=="tool"||typeof H.content==="string"||K&&F>=Y.length-K)return H;let V={},$={};return{...H,content:H.content.filter((q)=>{if(q.type!=="tool-call"&&q.type!=="tool-result"&&q.type!=="tool-approval-request"&&q.type!=="tool-approval-response")return!0;if(q.type==="tool-call")V[q.toolCallId]=q.toolName;else if(q.type==="tool-approval-request")$[q.approvalId]=V[q.toolCallId];if((q.type==="tool-call"||q.type==="tool-result")&&W.has(q.toolCallId)||(q.type==="tool-approval-request"||q.type==="tool-approval-response")&&Z.has(q.approvalId))return!0;return G.tools!=null&&!G.tools.includes(q.type==="tool-call"||q.type==="tool-result"?q.toolName:$[q.approvalId])})}})}if(J==="remove")Y=Y.filter((G)=>G.content.length>0);return Y}var qE6,NO,uK1,gK1=(Y,X)=>{for(var Q in X)uK1(Y,Q,{get:X[Q],enumerable:!0})},q26="AI_InvalidArgumentError",z26,mK1,B26,nG,lK1="AI_InvalidStreamPartError",dK1,pK1,cK1,U26="AI_InvalidToolApprovalError",D26,nK1,O26,iK1,N26="AI_InvalidToolInputError",L26,aK1,w26,xW0,M26="AI_ToolCallNotFoundForApprovalError",A26,rK1,T26,uW0,P26="AI_MissingToolResultsError",E26,oK1,C26,X26,sK1="AI_NoImageGeneratedError",tK1,eK1,YH1,I26="AI_NoObjectGeneratedError",R26,XH1,j26,n3,S26="AI_NoOutputGeneratedError",k26,QH1,v26,_26,JH1="AI_NoSpeechGeneratedError",GH1,WH1,ZH1,KH1="AI_NoTranscriptGeneratedError",HH1,FH1,VH1,y26="AI_NoSuchToolError",f26,$H1,h26,_W0,b26="AI_ToolCallRepairError",x26,qH1,u26,zH1,BH1,g26="AI_UIMessageStreamError",m26,UH1,l26,OO,DH1="AI_InvalidDataContentError",OH1,NH1,LH1,d26="AI_InvalidMessageRoleError",p26,wH1,c26,MH1,n26="AI_MessageConversionError",i26,AH1,a26,TH1,r26="AI_RetryError",o26,PH1,s26,Q26,CH1="AI SDK Warning System: To turn off warning logging, set the AI_SDK_LOG_WARNINGS global to false.",J26=!1,gW0=(Y)=>{if(Y.warnings.length===0)return;let X=globalThis.AI_SDK_LOG_WARNINGS;if(X===!1)return;if(typeof X==="function"){X(Y);return}if(!J26)J26=!0,console.info(CH1);for(let Q of Y.warnings)console.warn(EH1({warning:Q,provider:Y.provider,model:Y.model}))},vH1,_H1=(Y)=>{let X=typeof Y==="string"?$O(Y):Y,Q=(X[6]&127)<<21|(X[7]&127)<<14|(X[8]&127)<<7|X[9]&127;return X.slice(Q+10)},XE6="6.0.55",hH1=async({url:Y})=>{var X;let Q=Y.toString();try{let J=await fetch(Q,{headers:OK({},`ai-sdk/${XE6}`,bu())});if(!J.ok)throw new hu({url:Q,statusCode:J.status,statusText:J.statusText});return{data:new Uint8Array(await J.arrayBuffer()),mediaType:(X=J.headers.get("content-type"))!=null?X:void 0}}catch(J){if(hu.isInstance(J))throw J;throw new hu({url:Q,cause:J})}},bH1=(Y=hH1)=>(X)=>Promise.all(X.map(async(Q)=>Q.isUrlSupportedByModel?null:Y(Q))),QE6,o2,r6,ZE6,pH1,KE6,cH1,nH1,iH1,HE6,aH1,rH1,oH1,sH1,tH1,eH1,Y31,X31,pu,Q31,G31=({maxRetries:Y=2,initialDelayInMs:X=2000,backoffFactor:Q=2,abortSignal:J}={})=>async(G)=>NE6(G,{maxRetries:Y,delayInMs:X,backoffFactor:Q,abortSignal:J}),ME6=class{constructor({data:Y,mediaType:X}){let Q=Y instanceof Uint8Array;this.base64Data=Q?void 0:Y,this.uint8ArrayData=Q?Y:void 0,this.mediaType=X}get base64(){if(this.base64Data==null)this.base64Data=Dq(this.uint8ArrayData);return this.base64Data}get uint8Array(){if(this.uint8ArrayData==null)this.uint8ArrayData=$O(this.base64Data);return this.uint8ArrayData}},W31,Z31,nu=()=>({name:"text",responseFormat:Promise.resolve({type:"text"}),async parseCompleteOutput({text:Y}){return Y},async parsePartialOutput({text:Y}){return{partial:Y}},createElementStreamTransform(){return}}),H31=({schema:Y,name:X,description:Q})=>{let J=SW(Y);return{name:"object",responseFormat:YX(J.jsonSchema).then((G)=>({type:"json",schema:G,...X!=null&&{name:X},...Q!=null&&{description:Q}})),async parseCompleteOutput({text:G},K){let W=await oQ({text:G});if(!W.success)throw new n3({message:"No object generated: could not parse the response.",cause:W.error,text:G,response:K.response,usage:K.usage,finishReason:K.finishReason});let Z=await $Q({value:W.value,schema:J});if(!Z.success)throw new n3({message:"No object generated: response did not match schema.",cause:Z.error,text:G,response:K.response,usage:K.usage,finishReason:K.finishReason});return Z.value},async parsePartialOutput({text:G}){let K=await e2(G);switch(K.state){case"failed-parse":case"undefined-input":return;case"repaired-parse":case"successful-parse":return{partial:K.value}}},createElementStreamTransform(){return}}},F31=({element:Y,name:X,description:Q})=>{let J=SW(Y);return{name:"array",responseFormat:YX(J.jsonSchema).then((G)=>{let{$schema:K,...W}=G;return{type:"json",schema:{$schema:"http://json-schema.org/draft-07/schema#",type:"object",properties:{elements:{type:"array",items:W}},required:["elements"],additionalProperties:!1},...X!=null&&{name:X},...Q!=null&&{description:Q}}}),async parseCompleteOutput({text:G},K){let W=await oQ({text:G});if(!W.success)throw new n3({message:"No object generated: could not parse the response.",cause:W.error,text:G,response:K.response,usage:K.usage,finishReason:K.finishReason});let Z=W.value;if(Z==null||typeof Z!=="object"||!("elements"in Z)||!Array.isArray(Z.elements))throw new n3({message:"No object generated: response did not match schema.",cause:new rQ({value:Z,cause:"response must be an object with an elements array"}),text:G,response:K.response,usage:K.usage,finishReason:K.finishReason});for(let H of Z.elements){let F=await $Q({value:H,schema:J});if(!F.success)throw new n3({message:"No object generated: response did not match schema.",cause:F.error,text:G,response:K.response,usage:K.usage,finishReason:K.finishReason})}return Z.elements},async parsePartialOutput({text:G}){let K=await e2(G);switch(K.state){case"failed-parse":case"undefined-input":return;case"repaired-parse":case"successful-parse":{let W=K.value;if(W==null||typeof W!=="object"||!("elements"in W)||!Array.isArray(W.elements))return;let Z=K.state==="repaired-parse"&&W.elements.length>0?W.elements.slice(0,-1):W.elements,H=[];for(let F of Z){let V=await $Q({value:F,schema:J});if(V.success)H.push(V.value)}return{partial:H}}}},createElementStreamTransform(){let G=0;return new TransformStream({transform({partialOutput:K},W){if(K!=null)for(;G<K.length;G++)W.enqueue(K[G])}})}}},V31=({options:Y,name:X,description:Q})=>{return{name:"choice",responseFormat:Promise.resolve({type:"json",schema:{$schema:"http://json-schema.org/draft-07/schema#",type:"object",properties:{result:{type:"string",enum:Y}},required:["result"],additionalProperties:!1},...X!=null&&{name:X},...Q!=null&&{description:Q}}),async parseCompleteOutput({text:J},G){let K=await oQ({text:J});if(!K.success)throw new n3({message:"No object generated: could not parse the response.",cause:K.error,text:J,response:G.response,usage:G.usage,finishReason:G.finishReason});let W=K.value;if(W==null||typeof W!=="object"||!("result"in W)||typeof W.result!=="string"||!Y.includes(W.result))throw new n3({message:"No object generated: response did not match schema.",cause:new rQ({value:W,cause:"response must be an object that contains a choice value."}),text:J,response:G.response,usage:G.usage,finishReason:G.finishReason});return W.result},async parsePartialOutput({text:J}){let G=await e2(J);switch(G.state){case"failed-parse":case"undefined-input":return;case"repaired-parse":case"successful-parse":{let K=G.value;if(K==null||typeof K!=="object"||!("result"in K)||typeof K.result!=="string")return;let W=Y.filter((Z)=>Z.startsWith(K.result));if(G.state==="successful-parse")return W.includes(K.result)?{partial:K.result}:void 0;else return W.length===1?{partial:W[0]}:void 0}}},createElementStreamTransform(){return}}},$31=({name:Y,description:X}={})=>{return{name:"json",responseFormat:Promise.resolve({type:"json",...Y!=null&&{name:Y},...X!=null&&{description:X}}),async parseCompleteOutput({text:Q},J){let G=await oQ({text:Q});if(!G.success)throw new n3({message:"No object generated: could not parse the response.",cause:G.error,text:Q,response:J.response,usage:J.usage,finishReason:J.finishReason});return G.value},async parsePartialOutput({text:Q}){let J=await e2(Q);switch(J.state){case"failed-parse":case"undefined-input":return;case"repaired-parse":case"successful-parse":return J.value===void 0?void 0:{partial:J.value}}},createElementStreamTransform(){return}}},EE6=class{constructor({content:Y,finishReason:X,rawFinishReason:Q,usage:J,warnings:G,request:K,response:W,providerMetadata:Z}){this.content=Y,this.finishReason=X,this.rawFinishReason=Q,this.usage=J,this.warnings=G,this.request=K,this.response=W,this.providerMetadata=Z}get text(){return this.content.filter((Y)=>Y.type==="text").map((Y)=>Y.text).join("")}get reasoning(){return this.content.filter((Y)=>Y.type==="reasoning")}get reasoningText(){return this.reasoning.length===0?void 0:this.reasoning.map((Y)=>Y.text).join("")}get files(){return this.content.filter((Y)=>Y.type==="file").map((Y)=>Y.file)}get sources(){return this.content.filter((Y)=>Y.type==="source")}get toolCalls(){return this.content.filter((Y)=>Y.type==="tool-call")}get staticToolCalls(){return this.toolCalls.filter((Y)=>Y.dynamic!==!0)}get dynamicToolCalls(){return this.toolCalls.filter((Y)=>Y.dynamic===!0)}get toolResults(){return this.content.filter((Y)=>Y.type==="tool-result")}get staticToolResults(){return this.toolResults.filter((Y)=>Y.dynamic!==!0)}get dynamicToolResults(){return this.toolResults.filter((Y)=>Y.dynamic===!0)}},q31,z31=class{constructor(Y){this.steps=Y.steps,this._output=Y.output,this.totalUsage=Y.totalUsage}get finalStep(){return this.steps[this.steps.length-1]}get content(){return this.finalStep.content}get text(){return this.finalStep.text}get files(){return this.finalStep.files}get reasoningText(){return this.finalStep.reasoningText}get reasoning(){return this.finalStep.reasoning}get toolCalls(){return this.finalStep.toolCalls}get staticToolCalls(){return this.finalStep.staticToolCalls}get dynamicToolCalls(){return this.finalStep.dynamicToolCalls}get toolResults(){return this.finalStep.toolResults}get staticToolResults(){return this.finalStep.staticToolResults}get dynamicToolResults(){return this.finalStep.dynamicToolResults}get sources(){return this.finalStep.sources}get finishReason(){return this.finalStep.finishReason}get rawFinishReason(){return this.finalStep.rawFinishReason}get warnings(){return this.finalStep.warnings}get providerMetadata(){return this.finalStep.providerMetadata}get response(){return this.finalStep.response}get request(){return this.finalStep.request}get usage(){return this.finalStep.usage}get experimental_output(){return this.output}get output(){if(this._output==null)throw new _26;return this._output}},jE6,SE6,ME8,I31,j31=class{constructor({model:Y,telemetry:X,headers:Q,settings:J,maxRetries:G,abortSignal:K,stepTimeoutMs:W,stepAbortController:Z,chunkTimeoutMs:H,chunkAbortController:F,system:V,prompt:$,messages:q,tools:B,toolChoice:D,transforms:O,activeTools:L,repairToolCall:w,stopConditions:I,output:T,providerOptions:P,prepareStep:A,includeRawChunks:R,now:j,generateId:v,onChunk:y,onError:f,onFinish:h,onAbort:s,onStepFinish:g,experimental_context:k,download:b}){this._totalUsage=new Uq,this._finishReason=new Uq,this._rawFinishReason=new Uq,this._steps=new Uq,this.outputSpecification=T,this.includeRawChunks=R,this.tools=B;let Y0,p=[],W0=[],B0=void 0,J0=void 0,D0=void 0,E0={},h0=[],F6=[],w0=new Map,K0,v0={},u6={},m6=new TransformStream({async transform(z6,y6){var t6,E6,Z6,T0;y6.enqueue(z6);let{part:C0}=z6;if(C0.type==="text-delta"||C0.type==="reasoning-delta"||C0.type==="source"||C0.type==="tool-call"||C0.type==="tool-result"||C0.type==="tool-input-start"||C0.type==="tool-input-delta"||C0.type==="raw")await(y==null?void 0:y({chunk:C0}));if(C0.type==="error")await f({error:VE6(C0.error)});if(C0.type==="text-start")v0[C0.id]={type:"text",text:"",providerMetadata:C0.providerMetadata},p.push(v0[C0.id]);if(C0.type==="text-delta"){let Y4=v0[C0.id];if(Y4==null){y6.enqueue({part:{type:"error",error:`text part ${C0.id} not found`},partialOutput:void 0});return}Y4.text+=C0.text,Y4.providerMetadata=(t6=C0.providerMetadata)!=null?t6:Y4.providerMetadata}if(C0.type==="text-end"){let Y4=v0[C0.id];if(Y4==null){y6.enqueue({part:{type:"error",error:`text part ${C0.id} not found`},partialOutput:void 0});return}Y4.providerMetadata=(E6=C0.providerMetadata)!=null?E6:Y4.providerMetadata,delete v0[C0.id]}if(C0.type==="reasoning-start")u6[C0.id]={type:"reasoning",text:"",providerMetadata:C0.providerMetadata},p.push(u6[C0.id]);if(C0.type==="reasoning-delta"){let Y4=u6[C0.id];if(Y4==null){y6.enqueue({part:{type:"error",error:`reasoning part ${C0.id} not found`},partialOutput:void 0});return}Y4.text+=C0.text,Y4.providerMetadata=(Z6=C0.providerMetadata)!=null?Z6:Y4.providerMetadata}if(C0.type==="reasoning-end"){let Y4=u6[C0.id];if(Y4==null){y6.enqueue({part:{type:"error",error:`reasoning part ${C0.id} not found`},partialOutput:void 0});return}Y4.providerMetadata=(T0=C0.providerMetadata)!=null?T0:Y4.providerMetadata,delete u6[C0.id]}if(C0.type==="file")p.push({type:"file",file:C0.file});if(C0.type==="source")p.push(C0);if(C0.type==="tool-call")p.push(C0);if(C0.type==="tool-result"&&!C0.preliminary)p.push(C0);if(C0.type==="tool-approval-request")p.push(C0);if(C0.type==="tool-error")p.push(C0);if(C0.type==="start-step")p=[],u6={},v0={},E0=C0.request,h0=C0.warnings;if(C0.type==="finish-step"){let Y4=await fW0({content:p,tools:B}),B4=new EE6({content:p,finishReason:C0.finishReason,rawFinishReason:C0.rawFinishReason,usage:C0.usage,warnings:h0,request:E0,response:{...C0.response,messages:[...W0,...Y4]},providerMetadata:C0.providerMetadata});await(g==null?void 0:g(B4)),gW0({warnings:h0,provider:Y.provider,model:Y.modelId}),F6.push(B4),W0.push(...Y4),Y0.resolve()}if(C0.type==="finish")D0=C0.totalUsage,B0=C0.finishReason,J0=C0.rawFinishReason},async flush(z6){try{if(F6.length===0){let Z6=(K==null?void 0:K.aborted)?K.reason:new _26({message:"No output generated. Check the stream for errors."});y0._finishReason.reject(Z6),y0._rawFinishReason.reject(Z6),y0._totalUsage.reject(Z6),y0._steps.reject(Z6);return}let y6=B0!=null?B0:"other",t6=D0!=null?D0:RW0();y0._finishReason.resolve(y6),y0._rawFinishReason.resolve(J0),y0._totalUsage.resolve(t6),y0._steps.resolve(F6);let E6=F6[F6.length-1];await(h==null?void 0:h({finishReason:E6.finishReason,rawFinishReason:E6.rawFinishReason,totalUsage:t6,usage:E6.usage,content:E6.content,text:E6.text,reasoningText:E6.reasoningText,reasoning:E6.reasoning,files:E6.files,sources:E6.sources,toolCalls:E6.toolCalls,staticToolCalls:E6.staticToolCalls,dynamicToolCalls:E6.dynamicToolCalls,toolResults:E6.toolResults,staticToolResults:E6.staticToolResults,dynamicToolResults:E6.dynamicToolResults,request:E6.request,response:E6.response,warnings:E6.warnings,providerMetadata:E6.providerMetadata,steps:F6,experimental_context:k})),K0.setAttributes(await _W({telemetry:X,attributes:{"ai.response.finishReason":y6,"ai.response.text":{output:()=>E6.text},"ai.response.toolCalls":{output:()=>{var Z6;return((Z6=E6.toolCalls)==null?void 0:Z6.length)?JSON.stringify(E6.toolCalls):void 0}},"ai.response.providerMetadata":JSON.stringify(E6.providerMetadata),"ai.usage.inputTokens":t6.inputTokens,"ai.usage.outputTokens":t6.outputTokens,"ai.usage.totalTokens":t6.totalTokens,"ai.usage.reasoningTokens":t6.reasoningTokens,"ai.usage.cachedInputTokens":t6.cachedInputTokens}}))}catch(y6){z6.error(y6)}finally{K0.end()}}}),b0=P31();this.addStream=b0.addStream,this.closeStream=b0.close;let A0=b0.stream.getReader(),V0=new ReadableStream({async start(z6){z6.enqueue({type:"start"})},async pull(z6){function y6(){s==null||s({steps:F6}),z6.enqueue({type:"abort",...(K==null?void 0:K.reason)!==void 0?{reason:mG(K.reason)}:{}}),z6.close()}try{let{done:t6,value:E6}=await A0.read();if(t6){z6.close();return}if(K==null?void 0:K.aborted){y6();return}z6.enqueue(E6)}catch(t6){if(DK(t6)&&(K==null?void 0:K.aborted))y6();else z6.error(t6)}},cancel(z6){return b0.stream.cancel(z6)}});for(let z6 of O)V0=V0.pipeThrough(z6({tools:B,stopStream(){b0.terminate()}}));this.baseStream=V0.pipeThrough(R31(T!=null?T:nu())).pipeThrough(m6);let{maxRetries:R0,retry:q0}=LE6({maxRetries:G,abortSignal:K}),L0=zE6(X),Y6=yW0(J),f0=$E6({model:Y,telemetry:X,headers:Q,settings:{...Y6,maxRetries:R0}}),y0=this;t2({name:"ai.streamText",attributes:_W({telemetry:X,attributes:{...s2({operationId:"ai.streamText",telemetry:X}),...f0,"ai.prompt":{input:()=>JSON.stringify({system:V,prompt:$,messages:q})}}}),tracer:L0,endWhenDone:!1,fn:async(z6)=>{K0=z6;let y6=await FE6({system:V,prompt:$,messages:q}),t6=y6.messages,E6=[],{approvedToolApprovals:Z6,deniedToolApprovals:T0}=wE6({messages:t6});if(T0.length>0||Z6.length>0){let Y4=[...Z6,...T0].filter((N)=>N.toolCall.providerExecuted),B4=Z6.filter((N)=>!N.toolCall.providerExecuted),M1=T0.filter((N)=>!N.toolCall.providerExecuted),H6=T0.filter((N)=>N.toolCall.providerExecuted),P6,sQ=new ReadableStream({start(N){P6=N}});y0.addStream(sQ);try{for(let _ of[...M1,...H6])P6==null||P6.enqueue({type:"tool-output-denied",toolCallId:_.toolCall.toolCallId,toolName:_.toolCall.toolName});let N=[];if(await Promise.all(B4.map(async(_)=>{let t=await lW0({toolCall:_.toolCall,tools:B,tracer:L0,telemetry:X,messages:t6,abortSignal:K,experimental_context:k,onPreliminaryToolResult:(Z0)=>{P6==null||P6.enqueue(Z0)}});if(t!=null)P6==null||P6.enqueue(t),N.push(t)})),Y4.length>0)E6.push({role:"tool",content:Y4.map((_)=>({type:"tool-approval-response",approvalId:_.approvalResponse.approvalId,approved:_.approvalResponse.approved,reason:_.approvalResponse.reason,providerExecuted:!0}))});if(N.length>0||M1.length>0){let _=[];for(let t of N)_.push({type:"tool-result",toolCallId:t.toolCallId,toolName:t.toolName,output:await wq({toolCallId:t.toolCallId,input:t.input,tool:B==null?void 0:B[t.toolName],output:t.type==="tool-result"?t.output:t.error,errorMode:t.type==="tool-error"?"json":"none"})});for(let t of M1)_.push({type:"tool-result",toolCallId:t.toolCall.toolCallId,toolName:t.toolCall.toolName,output:{type:"execution-denied",reason:t.approvalResponse.reason}});E6.push({role:"tool",content:_})}}finally{P6==null||P6.close()}}W0.push(...E6);async function C0({currentStep:Y4,responseMessages:B4,usage:M1}){var H6,P6,sQ,N,_,t;let Z0=y0.includeRawChunks,U=W!=null?setTimeout(()=>Z.abort(),W):void 0,C=void 0;function i(){if(H!=null){if(C!=null)clearTimeout(C);C=setTimeout(()=>F.abort(),H)}}function X0(){if(C!=null)clearTimeout(C),C=void 0}function Q0(){if(U!=null)clearTimeout(U)}try{Y0=new Uq;let a=[...t6,...B4],k0=await(A==null?void 0:A({model:Y,steps:F6,stepNumber:F6.length,messages:a,experimental_context:k})),C6=cu((H6=k0==null?void 0:k0.model)!=null?H6:Y),e6=await GE6({prompt:{system:(P6=k0==null?void 0:k0.system)!=null?P6:y6.system,messages:(sQ=k0==null?void 0:k0.messages)!=null?sQ:a},supportedUrls:await C6.supportedUrls,download:b}),{toolChoice:g0,tools:b6}=await WE6({tools:B,toolChoice:(N=k0==null?void 0:k0.toolChoice)!=null?N:D,activeTools:(_=k0==null?void 0:k0.activeTools)!=null?_:L});k=(t=k0==null?void 0:k0.experimental_context)!=null?t:k;let c8=iu(P,k0==null?void 0:k0.providerOptions),{result:{stream:n9,response:m4,request:g1},doStreamSpan:EY,startTimestampMs:iG}=await q0(()=>t2({name:"ai.streamText.doStream",attributes:_W({telemetry:X,attributes:{...s2({operationId:"ai.streamText.doStream",telemetry:X}),...f0,"ai.model.provider":C6.provider,"ai.model.id":C6.modelId,"ai.prompt.messages":{input:()=>UE6(e6)},"ai.prompt.tools":{input:()=>b6==null?void 0:b6.map((X4)=>JSON.stringify(X4))},"ai.prompt.toolChoice":{input:()=>g0!=null?JSON.stringify(g0):void 0},"gen_ai.system":C6.provider,"gen_ai.request.model":C6.modelId,"gen_ai.request.frequency_penalty":Y6.frequencyPenalty,"gen_ai.request.max_tokens":Y6.maxOutputTokens,"gen_ai.request.presence_penalty":Y6.presencePenalty,"gen_ai.request.stop_sequences":Y6.stopSequences,"gen_ai.request.temperature":Y6.temperature,"gen_ai.request.top_k":Y6.topK,"gen_ai.request.top_p":Y6.topP}}),tracer:L0,endWhenDone:!1,fn:async(X4)=>({startTimestampMs:j(),doStreamSpan:X4,result:await C6.doStream({...Y6,tools:b6,toolChoice:g0,responseFormat:await(T==null?void 0:T.responseFormat),prompt:e6,providerOptions:c8,abortSignal:K,headers:Q,includeRawChunks:Z0})})})),W6=C31({tools:B,generatorStream:n9,tracer:L0,telemetry:X,system:V,messages:a,repairToolCall:w,abortSignal:K,experimental_context:k,generateId:v}),v4=g1!=null?g1:{},n8=[],XX=[],G6,_4={},G9="other",_J=void 0,tQ=RW0(),Gg,QZ0=!0,aG={id:v(),timestamp:new Date,modelId:Y.modelId},JZ0="";y0.addStream(W6.pipeThrough(new TransformStream({async transform(X4,CY){var TO,PO,XE,i9,Mq;if(i(),X4.type==="stream-start"){G6=X4.warnings;return}if(QZ0){let v9=j()-iG;QZ0=!1,EY.addEvent("ai.stream.firstChunk",{"ai.response.msToFirstChunk":v9}),EY.setAttributes({"ai.response.msToFirstChunk":v9}),CY.enqueue({type:"start-step",request:v4,warnings:G6!=null?G6:[]})}let Wg=X4.type;switch(Wg){case"tool-approval-request":case"text-start":case"text-end":{CY.enqueue(X4);break}case"text-delta":{if(X4.delta.length>0)CY.enqueue({type:"text-delta",id:X4.id,text:X4.delta,providerMetadata:X4.providerMetadata}),JZ0+=X4.delta;break}case"reasoning-start":case"reasoning-end":{CY.enqueue(X4);break}case"reasoning-delta":{CY.enqueue({type:"reasoning-delta",id:X4.id,text:X4.delta,providerMetadata:X4.providerMetadata});break}case"tool-call":{CY.enqueue(X4),n8.push(X4);break}case"tool-result":{if(CY.enqueue(X4),!X4.preliminary)XX.push(X4);break}case"tool-error":{CY.enqueue(X4),XX.push(X4);break}case"response-metadata":{aG={id:(TO=X4.id)!=null?TO:aG.id,timestamp:(PO=X4.timestamp)!=null?PO:aG.timestamp,modelId:(XE=X4.modelId)!=null?XE:aG.modelId};break}case"finish":{tQ=X4.usage,G9=X4.finishReason,_J=X4.rawFinishReason,Gg=X4.providerMetadata;let v9=j()-iG;EY.addEvent("ai.stream.finish"),EY.setAttributes({"ai.response.msToFinish":v9,"ai.response.avgOutputTokensPerSecond":1000*((i9=tQ.outputTokens)!=null?i9:0)/v9});break}case"file":{CY.enqueue(X4);break}case"source":{CY.enqueue(X4);break}case"tool-input-start":{_4[X4.id]=X4.toolName;let v9=B==null?void 0:B[X4.toolName];if((v9==null?void 0:v9.onInputStart)!=null)await v9.onInputStart({toolCallId:X4.id,messages:a,abortSignal:K,experimental_context:k});CY.enqueue({...X4,dynamic:(Mq=X4.dynamic)!=null?Mq:(v9==null?void 0:v9.type)==="dynamic",title:v9==null?void 0:v9.title});break}case"tool-input-end":{delete _4[X4.id],CY.enqueue(X4);break}case"tool-input-delta":{let v9=_4[X4.id],Zg=B==null?void 0:B[v9];if((Zg==null?void 0:Zg.onInputDelta)!=null)await Zg.onInputDelta({inputTextDelta:X4.delta,toolCallId:X4.id,messages:a,abortSignal:K,experimental_context:k});CY.enqueue(X4);break}case"error":{CY.enqueue(X4),G9="error";break}case"raw":{if(Z0)CY.enqueue(X4);break}default:throw Error(`Unknown chunk type: ${Wg}`)}},async flush(X4){let CY=n8.length>0?JSON.stringify(n8):void 0;try{EY.setAttributes(await _W({telemetry:X,attributes:{"ai.response.finishReason":G9,"ai.response.text":{output:()=>JZ0},"ai.response.toolCalls":{output:()=>CY},"ai.response.id":aG.id,"ai.response.model":aG.modelId,"ai.response.timestamp":aG.timestamp.toISOString(),"ai.response.providerMetadata":JSON.stringify(Gg),"ai.usage.inputTokens":tQ.inputTokens,"ai.usage.outputTokens":tQ.outputTokens,"ai.usage.totalTokens":tQ.totalTokens,"ai.usage.reasoningTokens":tQ.reasoningTokens,"ai.usage.cachedInputTokens":tQ.cachedInputTokens,"gen_ai.response.finish_reasons":[G9],"gen_ai.response.id":aG.id,"gen_ai.response.model":aG.modelId,"gen_ai.usage.input_tokens":tQ.inputTokens,"gen_ai.usage.output_tokens":tQ.outputTokens}}))}catch(i9){}finally{EY.end()}X4.enqueue({type:"finish-step",finishReason:G9,rawFinishReason:_J,usage:tQ,providerMetadata:Gg,response:{...aG,headers:m4==null?void 0:m4.headers}});let TO=OE6(M1,tQ);await Y0.promise;let PO=n8.filter((i9)=>i9.providerExecuted!==!0),XE=XX.filter((i9)=>i9.providerExecuted!==!0);for(let i9 of n8){if(i9.providerExecuted!==!0)continue;let Mq=B==null?void 0:B[i9.toolName];if((Mq==null?void 0:Mq.type)==="provider"&&Mq.supportsDeferredResults){if(!XX.some((v9)=>v9.type==="tool-result"&&v9.toolCallId===i9.toolCallId))w0.set(i9.toolCallId,{toolName:i9.toolName})}}for(let i9 of XX)if(i9.type==="tool-result")w0.delete(i9.toolCallId);if(Q0(),X0(),(PO.length>0&&XE.length===PO.length||w0.size>0)&&!await CE6({stopConditions:I,steps:F6})){B4.push(...await fW0({content:F6[F6.length-1].content,tools:B}));try{await C0({currentStep:Y4+1,responseMessages:B4,usage:TO})}catch(i9){X4.enqueue({type:"error",error:i9}),y0.closeStream()}}else X4.enqueue({type:"finish",finishReason:G9,rawFinishReason:_J,totalUsage:TO}),y0.closeStream()}})))}finally{Q0(),X0()}}await C0({currentStep:0,responseMessages:E6,usage:RW0()})}}).catch((z6)=>{y0.addStream(new ReadableStream({start(y6){y6.enqueue({type:"error",error:z6}),y6.close()}})),y0.closeStream()})}get steps(){return this.consumeStream(),this._steps.promise}get finalStep(){return this.steps.then((Y)=>Y[Y.length-1])}get content(){return this.finalStep.then((Y)=>Y.content)}get warnings(){return this.finalStep.then((Y)=>Y.warnings)}get providerMetadata(){return this.finalStep.then((Y)=>Y.providerMetadata)}get text(){return this.finalStep.then((Y)=>Y.text)}get reasoningText(){return this.finalStep.then((Y)=>Y.reasoningText)}get reasoning(){return this.finalStep.then((Y)=>Y.reasoning)}get sources(){return this.finalStep.then((Y)=>Y.sources)}get files(){return this.finalStep.then((Y)=>Y.files)}get toolCalls(){return this.finalStep.then((Y)=>Y.toolCalls)}get staticToolCalls(){return this.finalStep.then((Y)=>Y.staticToolCalls)}get dynamicToolCalls(){return this.finalStep.then((Y)=>Y.dynamicToolCalls)}get toolResults(){return this.finalStep.then((Y)=>Y.toolResults)}get staticToolResults(){return this.finalStep.then((Y)=>Y.staticToolResults)}get dynamicToolResults(){return this.finalStep.then((Y)=>Y.dynamicToolResults)}get usage(){return this.finalStep.then((Y)=>Y.usage)}get request(){return this.finalStep.then((Y)=>Y.request)}get response(){return this.finalStep.then((Y)=>Y.response)}get totalUsage(){return this.consumeStream(),this._totalUsage.promise}get finishReason(){return this.consumeStream(),this._finishReason.promise}get rawFinishReason(){return this.consumeStream(),this._rawFinishReason.promise}teeStream(){let[Y,X]=this.baseStream.tee();return this.baseStream=X,Y}get textStream(){return i2(this.teeStream().pipeThrough(new TransformStream({transform({part:Y},X){if(Y.type==="text-delta")X.enqueue(Y.text)}})))}get fullStream(){return i2(this.teeStream().pipeThrough(new TransformStream({transform({part:Y},X){X.enqueue(Y)}})))}async consumeStream(Y){var X;try{await dW0({stream:this.fullStream,onError:Y==null?void 0:Y.onError})}catch(Q){(X=Y==null?void 0:Y.onError)==null||X.call(Y,Q)}}get experimental_partialOutputStream(){return this.partialOutputStream}get partialOutputStream(){return i2(this.teeStream().pipeThrough(new TransformStream({transform({partialOutput:Y},X){if(Y!=null)X.enqueue(Y)}})))}get elementStream(){var Y,X,Q;let J=(Y=this.outputSpecification)==null?void 0:Y.createElementStreamTransform();if(J==null)throw new UT6({functionality:`element streams in ${(Q=(X=this.outputSpecification)==null?void 0:X.name)!=null?Q:"text"} mode`});return i2(this.teeStream().pipeThrough(J))}get output(){return this.finalStep.then((Y)=>{var X;return((X=this.outputSpecification)!=null?X:nu()).parseCompleteOutput({text:Y.text},{response:Y.response,usage:Y.usage,finishReason:Y.finishReason})})}toUIMessageStream({originalMessages:Y,generateMessageId:X,onFinish:Q,messageMetadata:J,sendReasoning:G=!0,sendSources:K=!1,sendStart:W=!0,sendFinish:Z=!0,onError:H=mG}={}){let F=X!=null?N31({originalMessages:Y,responseMessageId:X}):void 0,V=(q)=>{var B;let D=(B=this.tools)==null?void 0:B[q.toolName];if(D==null)return q.dynamic;return(D==null?void 0:D.type)==="dynamic"?!0:void 0},$=this.fullStream.pipeThrough(new TransformStream({transform:async(q,B)=>{let D=J==null?void 0:J({part:q}),O=q.type;switch(O){case"text-start":{B.enqueue({type:"text-start",id:q.id,...q.providerMetadata!=null?{providerMetadata:q.providerMetadata}:{}});break}case"text-delta":{B.enqueue({type:"text-delta",id:q.id,delta:q.text,...q.providerMetadata!=null?{providerMetadata:q.providerMetadata}:{}});break}case"text-end":{B.enqueue({type:"text-end",id:q.id,...q.providerMetadata!=null?{providerMetadata:q.providerMetadata}:{}});break}case"reasoning-start":{B.enqueue({type:"reasoning-start",id:q.id,...q.providerMetadata!=null?{providerMetadata:q.providerMetadata}:{}});break}case"reasoning-delta":{if(G)B.enqueue({type:"reasoning-delta",id:q.id,delta:q.text,...q.providerMetadata!=null?{providerMetadata:q.providerMetadata}:{}});break}case"reasoning-end":{B.enqueue({type:"reasoning-end",id:q.id,...q.providerMetadata!=null?{providerMetadata:q.providerMetadata}:{}});break}case"file":{B.enqueue({type:"file",mediaType:q.file.mediaType,url:`data:${q.file.mediaType};base64,${q.file.base64}`});break}case"source":{if(K&&q.sourceType==="url")B.enqueue({type:"source-url",sourceId:q.id,url:q.url,title:q.title,...q.providerMetadata!=null?{providerMetadata:q.providerMetadata}:{}});if(K&&q.sourceType==="document")B.enqueue({type:"source-document",sourceId:q.id,mediaType:q.mediaType,title:q.title,filename:q.filename,...q.providerMetadata!=null?{providerMetadata:q.providerMetadata}:{}});break}case"tool-input-start":{let L=V(q);B.enqueue({type:"tool-input-start",toolCallId:q.id,toolName:q.toolName,...q.providerExecuted!=null?{providerExecuted:q.providerExecuted}:{},...q.providerMetadata!=null?{providerMetadata:q.providerMetadata}:{},...L!=null?{dynamic:L}:{},...q.title!=null?{title:q.title}:{}});break}case"tool-input-delta":{B.enqueue({type:"tool-input-delta",toolCallId:q.id,inputTextDelta:q.delta});break}case"tool-call":{let L=V(q);if(q.invalid)B.enqueue({type:"tool-input-error",toolCallId:q.toolCallId,toolName:q.toolName,input:q.input,...q.providerExecuted!=null?{providerExecuted:q.providerExecuted}:{},...q.providerMetadata!=null?{providerMetadata:q.providerMetadata}:{},...L!=null?{dynamic:L}:{},errorText:H(q.error),...q.title!=null?{title:q.title}:{}});else B.enqueue({type:"tool-input-available",toolCallId:q.toolCallId,toolName:q.toolName,input:q.input,...q.providerExecuted!=null?{providerExecuted:q.providerExecuted}:{},...q.providerMetadata!=null?{providerMetadata:q.providerMetadata}:{},...L!=null?{dynamic:L}:{},...q.title!=null?{title:q.title}:{}});break}case"tool-approval-request":{B.enqueue({type:"tool-approval-request",approvalId:q.approvalId,toolCallId:q.toolCall.toolCallId});break}case"tool-result":{let L=V(q);B.enqueue({type:"tool-output-available",toolCallId:q.toolCallId,output:q.output,...q.providerExecuted!=null?{providerExecuted:q.providerExecuted}:{},...q.preliminary!=null?{preliminary:q.preliminary}:{},...L!=null?{dynamic:L}:{}});break}case"tool-error":{let L=V(q);B.enqueue({type:"tool-output-error",toolCallId:q.toolCallId,errorText:H(q.error),...q.providerExecuted!=null?{providerExecuted:q.providerExecuted}:{},...L!=null?{dynamic:L}:{}});break}case"tool-output-denied":{B.enqueue({type:"tool-output-denied",toolCallId:q.toolCallId});break}case"error":{B.enqueue({type:"error",errorText:H(q.error)});break}case"start-step":{B.enqueue({type:"start-step"});break}case"finish-step":{B.enqueue({type:"finish-step"});break}case"start":{if(W)B.enqueue({type:"start",...D!=null?{messageMetadata:D}:{},...F!=null?{messageId:F}:{}});break}case"finish":{if(Z)B.enqueue({type:"finish",finishReason:q.finishReason,...D!=null?{messageMetadata:D}:{}});break}case"abort":{B.enqueue(q);break}case"tool-input-end":break;case"raw":break;default:throw Error(`Unknown chunk type: ${O}`)}if(D!=null&&O!=="start"&&O!=="finish")B.enqueue({type:"message-metadata",messageMetadata:D})}}));return i2(A31({stream:$,messageId:F!=null?F:X==null?void 0:X(),originalMessages:Y,onFinish:Q,onError:H}))}pipeUIMessageStreamToResponse(Y,{originalMessages:X,generateMessageId:Q,onFinish:J,messageMetadata:G,sendReasoning:K,sendSources:W,sendFinish:Z,sendStart:H,onError:F,...V}={}){T31({response:Y,stream:this.toUIMessageStream({originalMessages:X,generateMessageId:Q,onFinish:J,messageMetadata:G,sendReasoning:K,sendSources:W,sendFinish:Z,sendStart:H,onError:F}),...V})}pipeTextStreamToResponse(Y,X){D31({response:Y,textStream:this.textStream,...X})}toUIMessageStreamResponse({originalMessages:Y,generateMessageId:X,onFinish:Q,messageMetadata:J,sendReasoning:G,sendSources:K,sendFinish:W,sendStart:Z,onError:H,...F}={}){return O31({stream:this.toUIMessageStream({originalMessages:Y,generateMessageId:X,onFinish:Q,messageMetadata:J,sendReasoning:G,sendSources:K,sendFinish:W,sendStart:Z,onError:H}),...F})}toTextStreamResponse(Y){return U31({textStream:this.textStream,...Y})}},S31,RE8,SE8,v31="AI_NoSuchProviderError",_31,y31,f31;var LO=S(()=>{H1();H1();w1();w1();w1();w1();w1();w1();w1();w1();w1();w1();w1();w1();w1();w1();IW0();H1();H1();H1();H1();w1();H1();Q1();w1();H1();w1();H1();Q1();Q1();Q1();Q1();Q1();IW0();w1();w1();H1();H1();H1();w1();H1();H1();H1();w1();H1();H1();Q1();H1();H1();H1();w1();H1();Q1();H1();H1();qE6=O4(x0(),1),NO=O4(x0(),1),uK1=Object.defineProperty,z26=`vercel.ai.error.${q26}`,mK1=Symbol.for(z26),nG=class extends M6{constructor({parameter:Y,value:X,message:Q}){super({name:q26,message:`Invalid argument for parameter ${Y}: ${Q}`});this[B26]=!0,this.parameter=Y,this.value=X}static isInstance(Y){return M6.hasMarker(Y,z26)}};B26=mK1;dK1=`vercel.ai.error.${lK1}`,pK1=Symbol.for(dK1);cK1=pK1;D26=`vercel.ai.error.${U26}`,nK1=Symbol.for(D26),iK1=class extends M6{constructor({approvalId:Y}){super({name:U26,message:`Tool approval response references unknown approvalId: "${Y}". No matching tool-approval-request found in message history.`});this[O26]=!0,this.approvalId=Y}static isInstance(Y){return M6.hasMarker(Y,D26)}};O26=nK1;L26=`vercel.ai.error.${N26}`,aK1=Symbol.for(L26),xW0=class extends M6{constructor({toolInput:Y,toolName:X,cause:Q,message:J=`Invalid input for tool ${X}: ${mG(Q)}`}){super({name:N26,message:J,cause:Q});this[w26]=!0,this.toolInput=Y,this.toolName=X}static isInstance(Y){return M6.hasMarker(Y,L26)}};w26=aK1;A26=`vercel.ai.error.${M26}`,rK1=Symbol.for(A26),uW0=class extends M6{constructor({toolCallId:Y,approvalId:X}){super({name:M26,message:`Tool call "${Y}" not found for approval request "${X}".`});this[T26]=!0,this.toolCallId=Y,this.approvalId=X}static isInstance(Y){return M6.hasMarker(Y,A26)}};T26=rK1;E26=`vercel.ai.error.${P26}`,oK1=Symbol.for(E26),X26=class extends M6{constructor({toolCallIds:Y}){super({name:P26,message:`Tool result${Y.length>1?"s are":" is"} missing for tool call${Y.length>1?"s":""} ${Y.join(", ")}.`});this[C26]=!0,this.toolCallIds=Y}static isInstance(Y){return M6.hasMarker(Y,E26)}};C26=oK1;tK1=`vercel.ai.error.${sK1}`,eK1=Symbol.for(tK1);YH1=eK1;R26=`vercel.ai.error.${I26}`,XH1=Symbol.for(R26),n3=class extends M6{constructor({message:Y="No object generated.",cause:X,text:Q,response:J,usage:G,finishReason:K}){super({name:I26,message:Y,cause:X});this[j26]=!0,this.text=Q,this.response=J,this.usage=G,this.finishReason=K}static isInstance(Y){return M6.hasMarker(Y,R26)}};j26=XH1;k26=`vercel.ai.error.${S26}`,QH1=Symbol.for(k26),_26=class extends M6{constructor({message:Y="No output generated.",cause:X}={}){super({name:S26,message:Y,cause:X});this[v26]=!0}static isInstance(Y){return M6.hasMarker(Y,k26)}};v26=QH1;GH1=`vercel.ai.error.${JH1}`,WH1=Symbol.for(GH1);ZH1=WH1;HH1=`vercel.ai.error.${KH1}`,FH1=Symbol.for(HH1);VH1=FH1;f26=`vercel.ai.error.${y26}`,$H1=Symbol.for(f26),_W0=class extends M6{constructor({toolName:Y,availableTools:X=void 0,message:Q=`Model tried to call unavailable tool '${Y}'. ${X===void 0?"No tools are available.":`Available tools: ${X.join(", ")}.`}`}){super({name:y26,message:Q});this[h26]=!0,this.toolName=Y,this.availableTools=X}static isInstance(Y){return M6.hasMarker(Y,f26)}};h26=$H1;x26=`vercel.ai.error.${b26}`,qH1=Symbol.for(x26),zH1=class extends M6{constructor({cause:Y,originalError:X,message:Q=`Error repairing tool call: ${mG(Y)}`}){super({name:b26,message:Q,cause:Y});this[u26]=!0,this.originalError=X}static isInstance(Y){return M6.hasMarker(Y,x26)}};u26=qH1;BH1=class extends M6{constructor(Y){super({name:"AI_UnsupportedModelVersionError",message:`Unsupported model version ${Y.version} for provider "${Y.provider}" and model "${Y.modelId}". AI SDK 5 only supports models that implement specification version "v2".`});this.version=Y.version,this.provider=Y.provider,this.modelId=Y.modelId}},m26=`vercel.ai.error.${g26}`,UH1=Symbol.for(m26),OO=class extends M6{constructor({chunkType:Y,chunkId:X,message:Q}){super({name:g26,message:Q});this[l26]=!0,this.chunkType=Y,this.chunkId=X}static isInstance(Y){return M6.hasMarker(Y,m26)}};l26=UH1;OH1=`vercel.ai.error.${DH1}`,NH1=Symbol.for(OH1);LH1=NH1;p26=`vercel.ai.error.${d26}`,wH1=Symbol.for(p26),MH1=class extends M6{constructor({role:Y,message:X=`Invalid message role: '${Y}'. Must be one of: "system", "user", "assistant", "tool".`}){super({name:d26,message:X});this[c26]=!0,this.role=Y}static isInstance(Y){return M6.hasMarker(Y,p26)}};c26=wH1;i26=`vercel.ai.error.${n26}`,AH1=Symbol.for(i26),TH1=class extends M6{constructor({originalMessage:Y,message:X}){super({name:n26,message:X});this[a26]=!0,this.originalMessage=Y}static isInstance(Y){return M6.hasMarker(Y,i26)}};a26=AH1;o26=`vercel.ai.error.${r26}`,PH1=Symbol.for(o26),Q26=class extends M6{constructor({message:Y,reason:X,errors:Q}){super({name:r26,message:Y});this[s26]=!0,this.reason=X,this.errors=Q,this.lastError=Q[Q.length-1]}static isInstance(Y){return M6.hasMarker(Y,o26)}};s26=PH1;vH1=[{mediaType:"image/gif",bytesPrefix:[71,73,70]},{mediaType:"image/png",bytesPrefix:[137,80,78,71]},{mediaType:"image/jpeg",bytesPrefix:[255,216]},{mediaType:"image/webp",bytesPrefix:[82,73,70,70,null,null,null,null,87,69,66,80]},{mediaType:"image/bmp",bytesPrefix:[66,77]},{mediaType:"image/tiff",bytesPrefix:[73,73,42,0]},{mediaType:"image/tiff",bytesPrefix:[77,77,0,42]},{mediaType:"image/avif",bytesPrefix:[0,0,0,32,102,116,121,112,97,118,105,102]},{mediaType:"image/heic",bytesPrefix:[0,0,0,32,102,116,121,112,104,101,105,99]}];QE6=z.union([z.string(),z.instanceof(Uint8Array),z.instanceof(ArrayBuffer),z.custom((Y)=>{var X,Q;return(Q=(X=globalThis.Buffer)==null?void 0:X.isBuffer(Y))!=null?Q:!1},{message:"Must be a Buffer"})]);o2=z.lazy(()=>z.union([z.null(),z.string(),z.number(),z.boolean(),z.record(z.string(),o2.optional()),z.array(o2)])),r6=z.record(z.string(),z.record(z.string(),o2.optional())),ZE6=z.object({type:z.literal("text"),text:z.string(),providerOptions:r6.optional()}),pH1=z.object({type:z.literal("image"),image:z.union([QE6,z.instanceof(URL)]),mediaType:z.string().optional(),providerOptions:r6.optional()}),KE6=z.object({type:z.literal("file"),data:z.union([QE6,z.instanceof(URL)]),filename:z.string().optional(),mediaType:z.string(),providerOptions:r6.optional()}),cH1=z.object({type:z.literal("reasoning"),text:z.string(),providerOptions:r6.optional()}),nH1=z.object({type:z.literal("tool-call"),toolCallId:z.string(),toolName:z.string(),input:z.unknown(),providerOptions:r6.optional(),providerExecuted:z.boolean().optional()}),iH1=z.discriminatedUnion("type",[z.object({type:z.literal("text"),value:z.string(),providerOptions:r6.optional()}),z.object({type:z.literal("json"),value:o2,providerOptions:r6.optional()}),z.object({type:z.literal("execution-denied"),reason:z.string().optional(),providerOptions:r6.optional()}),z.object({type:z.literal("error-text"),value:z.string(),providerOptions:r6.optional()}),z.object({type:z.literal("error-json"),value:o2,providerOptions:r6.optional()}),z.object({type:z.literal("content"),value:z.array(z.union([z.object({type:z.literal("text"),text:z.string(),providerOptions:r6.optional()}),z.object({type:z.literal("media"),data:z.string(),mediaType:z.string()}),z.object({type:z.literal("file-data"),data:z.string(),mediaType:z.string(),filename:z.string().optional(),providerOptions:r6.optional()}),z.object({type:z.literal("file-url"),url:z.string(),providerOptions:r6.optional()}),z.object({type:z.literal("file-id"),fileId:z.union([z.string(),z.record(z.string(),z.string())]),providerOptions:r6.optional()}),z.object({type:z.literal("image-data"),data:z.string(),mediaType:z.string(),providerOptions:r6.optional()}),z.object({type:z.literal("image-url"),url:z.string(),providerOptions:r6.optional()}),z.object({type:z.literal("image-file-id"),fileId:z.union([z.string(),z.record(z.string(),z.string())]),providerOptions:r6.optional()}),z.object({type:z.literal("custom"),providerOptions:r6.optional()})]))})]),HE6=z.object({type:z.literal("tool-result"),toolCallId:z.string(),toolName:z.string(),output:iH1,providerOptions:r6.optional()}),aH1=z.object({type:z.literal("tool-approval-request"),approvalId:z.string(),toolCallId:z.string()}),rH1=z.object({type:z.literal("tool-approval-response"),approvalId:z.string(),approved:z.boolean(),reason:z.string().optional()}),oH1=z.object({role:z.literal("system"),content:z.string(),providerOptions:r6.optional()}),sH1=z.object({role:z.literal("user"),content:z.union([z.string(),z.array(z.union([ZE6,pH1,KE6]))]),providerOptions:r6.optional()}),tH1=z.object({role:z.literal("assistant"),content:z.union([z.string(),z.array(z.union([ZE6,KE6,cH1,nH1,HE6,aH1]))]),providerOptions:r6.optional()}),eH1=z.object({role:z.literal("tool"),content:z.array(z.union([HE6,rH1])),providerOptions:r6.optional()}),Y31=z.union([oH1,sH1,tH1,eH1]);X31={startSpan(){return pu},startActiveSpan(Y,X,Q,J){if(typeof X==="function")return X(pu);if(typeof Q==="function")return Q(pu);if(typeof J==="function")return J(pu)}},pu={spanContext(){return Q31},setAttribute(){return this},setAttributes(){return this},addEvent(){return this},addLink(){return this},addLinks(){return this},setStatus(){return this},updateName(){return this},end(){return this},isRecording(){return!1},recordException(){return this}},Q31={traceId:"",spanId:"",traceFlags:0};W31=class extends ME6{constructor(Y){super(Y);this.type="file"}};Z31={};gK1(Z31,{array:()=>F31,choice:()=>V31,json:()=>$31,object:()=>H31,text:()=>nu});q31=jW({prefix:"aitxt",size:24});jE6=class extends TransformStream{constructor(){super({transform(Y,X){X.enqueue(`data: ${JSON.stringify(Y)}
|
|
1218
|
+
`),{name:"GatewayAuthenticationError"})}function s2({operationId:Y,telemetry:X}){return{"operation.name":`${Y}${(X==null?void 0:X.functionId)!=null?` ${X.functionId}`:""}`,"resource.name":X==null?void 0:X.functionId,"ai.operationId":Y,"ai.telemetry.functionId":X==null?void 0:X.functionId}}function $E6({model:Y,settings:X,telemetry:Q,headers:J}){var G;return{"ai.model.provider":Y.provider,"ai.model.id":Y.modelId,...Object.entries(X).reduce((K,[W,Z])=>{if(W==="timeout"){let H=mW0(Z);if(H!=null)K[`ai.settings.${W}`]=H}else K[`ai.settings.${W}`]=Z;return K},{}),...Object.entries((G=Q==null?void 0:Q.metadata)!=null?G:{}).reduce((K,[W,Z])=>{return K[`ai.telemetry.metadata.${W}`]=Z,K},{}),...Object.entries(J!=null?J:{}).reduce((K,[W,Z])=>{if(Z!==void 0)K[`ai.request.headers.${W}`]=Z;return K},{})}}function zE6({isEnabled:Y=!1,tracer:X}={}){if(!Y)return X31;if(X)return X;return qE6.trace.getTracer("ai")}async function t2({name:Y,tracer:X,attributes:Q,fn:J,endWhenDone:G=!0}){return X.startActiveSpan(Y,{attributes:await Q},async(K)=>{let W=NO.context.active();try{let Z=await NO.context.with(W,()=>J(K));if(G)K.end();return Z}catch(Z){try{BE6(K,Z)}finally{K.end()}throw Z}})}function BE6(Y,X){if(X instanceof Error)Y.recordException({name:X.name,message:X.message,stack:X.stack}),Y.setStatus({code:NO.SpanStatusCode.ERROR,message:X.message});else Y.setStatus({code:NO.SpanStatusCode.ERROR})}async function _W({telemetry:Y,attributes:X}){if((Y==null?void 0:Y.isEnabled)!==!0)return{};let Q={};for(let[J,G]of Object.entries(X)){if(G==null)continue;if(typeof G==="object"&&"input"in G&&typeof G.input==="function"){if((Y==null?void 0:Y.recordInputs)===!1)continue;let K=await G.input();if(K!=null)Q[J]=K;continue}if(typeof G==="object"&&"output"in G&&typeof G.output==="function"){if((Y==null?void 0:Y.recordOutputs)===!1)continue;let K=await G.output();if(K!=null)Q[J]=K;continue}Q[J]=G}return Q}function UE6(Y){return JSON.stringify(Y.map((X)=>({...X,content:typeof X.content==="string"?X.content:X.content.map((Q)=>Q.type==="file"?{...Q,data:Q.data instanceof Uint8Array?uH1(Q.data):Q.data}:Q)})))}function DE6(Y){return{inputTokens:Y.inputTokens.total,inputTokenDetails:{noCacheTokens:Y.inputTokens.noCache,cacheReadTokens:Y.inputTokens.cacheRead,cacheWriteTokens:Y.inputTokens.cacheWrite},outputTokens:Y.outputTokens.total,outputTokenDetails:{textTokens:Y.outputTokens.text,reasoningTokens:Y.outputTokens.reasoning},totalTokens:cG(Y.inputTokens.total,Y.outputTokens.total),raw:Y.raw,reasoningTokens:Y.outputTokens.reasoning,cachedInputTokens:Y.inputTokens.cacheRead}}function RW0(){return{inputTokens:void 0,inputTokenDetails:{noCacheTokens:void 0,cacheReadTokens:void 0,cacheWriteTokens:void 0},outputTokens:void 0,outputTokenDetails:{textTokens:void 0,reasoningTokens:void 0},totalTokens:void 0,raw:void 0}}function OE6(Y,X){var Q,J,G,K,W,Z,H,F,V,$;return{inputTokens:cG(Y.inputTokens,X.inputTokens),inputTokenDetails:{noCacheTokens:cG((Q=Y.inputTokenDetails)==null?void 0:Q.noCacheTokens,(J=X.inputTokenDetails)==null?void 0:J.noCacheTokens),cacheReadTokens:cG((G=Y.inputTokenDetails)==null?void 0:G.cacheReadTokens,(K=X.inputTokenDetails)==null?void 0:K.cacheReadTokens),cacheWriteTokens:cG((W=Y.inputTokenDetails)==null?void 0:W.cacheWriteTokens,(Z=X.inputTokenDetails)==null?void 0:Z.cacheWriteTokens)},outputTokens:cG(Y.outputTokens,X.outputTokens),outputTokenDetails:{textTokens:cG((H=Y.outputTokenDetails)==null?void 0:H.textTokens,(F=X.outputTokenDetails)==null?void 0:F.textTokens),reasoningTokens:cG((V=Y.outputTokenDetails)==null?void 0:V.reasoningTokens,($=X.outputTokenDetails)==null?void 0:$.reasoningTokens)},totalTokens:cG(Y.totalTokens,X.totalTokens),reasoningTokens:cG(Y.reasoningTokens,X.reasoningTokens),cachedInputTokens:cG(Y.cachedInputTokens,X.cachedInputTokens)}}function cG(Y,X){return Y==null&&X==null?void 0:(Y!=null?Y:0)+(X!=null?X:0)}function iu(Y,X){if(Y===void 0&&X===void 0)return;if(Y===void 0)return X;if(X===void 0)return Y;let Q={...Y};for(let J in X)if(Object.prototype.hasOwnProperty.call(X,J)){let G=X[J];if(G===void 0)continue;let K=J in Y?Y[J]:void 0,W=G!==null&&typeof G==="object"&&!Array.isArray(G)&&!(G instanceof Date)&&!(G instanceof RegExp),Z=K!==null&&K!==void 0&&typeof K==="object"&&!Array.isArray(K)&&!(K instanceof Date)&&!(K instanceof RegExp);if(W&&Z)Q[J]=iu(K,G);else Q[J]=G}return Q}function J31({error:Y,exponentialBackoffDelay:X}){let Q=Y.responseHeaders;if(!Q)return X;let J,G=Q["retry-after-ms"];if(G){let W=parseFloat(G);if(!Number.isNaN(W))J=W}let K=Q["retry-after"];if(K&&J===void 0){let W=parseFloat(K);if(!Number.isNaN(W))J=W*1000;else J=Date.parse(K)-Date.now()}if(J!=null&&!Number.isNaN(J)&&0<=J&&(J<60000||J<X))return J;return X}async function NE6(Y,{maxRetries:X,delayInMs:Q,backoffFactor:J,abortSignal:G},K=[]){try{return await Y()}catch(W){if(DK(W))throw W;if(X===0)throw W;let Z=qO(W),H=[...K,W],F=H.length;if(F>X)throw new Q26({message:`Failed after ${F} attempts. Last error: ${Z}`,reason:"maxRetriesExceeded",errors:H});if(W instanceof Error&&J9.isInstance(W)&&W.isRetryable===!0&&F<=X)return await TT6(J31({error:W,exponentialBackoffDelay:Q}),{abortSignal:G}),NE6(Y,{maxRetries:X,delayInMs:J*Q,backoffFactor:J,abortSignal:G},H);if(F===1)throw W;throw new Q26({message:`Failed after ${F} attempts with non-retryable error: '${Z}'`,reason:"errorNotRetryable",errors:H})}}function LE6({maxRetries:Y,abortSignal:X}){if(Y!=null){if(!Number.isInteger(Y))throw new nG({parameter:"maxRetries",value:Y,message:"maxRetries must be an integer"});if(Y<0)throw new nG({parameter:"maxRetries",value:Y,message:"maxRetries must be >= 0"})}let Q=Y!=null?Y:2;return{maxRetries:Q,retry:G31({maxRetries:Q,abortSignal:X})}}function wE6({messages:Y}){let X=Y.at(-1);if((X==null?void 0:X.role)!="tool")return{approvedToolApprovals:[],deniedToolApprovals:[]};let Q={};for(let H of Y)if(H.role==="assistant"&&typeof H.content!=="string"){let F=H.content;for(let V of F)if(V.type==="tool-call")Q[V.toolCallId]=V}let J={};for(let H of Y)if(H.role==="assistant"&&typeof H.content!=="string"){let F=H.content;for(let V of F)if(V.type==="tool-approval-request")J[V.approvalId]=V}let G={};for(let H of X.content)if(H.type==="tool-result")G[H.toolCallId]=H;let K=[],W=[],Z=X.content.filter((H)=>H.type==="tool-approval-response");for(let H of Z){let F=J[H.approvalId];if(F==null)throw new iK1({approvalId:H.approvalId});if(G[F.toolCallId]!=null)continue;let V=Q[F.toolCallId];if(V==null)throw new uW0({toolCallId:F.toolCallId,approvalId:F.approvalId});let $={approvalRequest:F,approvalResponse:H,toolCall:V};if(H.approved)K.push($);else W.push($)}return{approvedToolApprovals:K,deniedToolApprovals:W}}async function lW0({toolCall:Y,tools:X,tracer:Q,telemetry:J,messages:G,abortSignal:K,experimental_context:W,onPreliminaryToolResult:Z}){let{toolName:H,toolCallId:F,input:V}=Y,$=X==null?void 0:X[H];if(($==null?void 0:$.execute)==null)return;return t2({name:"ai.toolCall",attributes:_W({telemetry:J,attributes:{...s2({operationId:"ai.toolCall",telemetry:J}),"ai.toolCall.name":H,"ai.toolCall.id":F,"ai.toolCall.args":{output:()=>JSON.stringify(V)}}}),tracer:Q,fn:async(q)=>{let B;try{let D=uT6({execute:$.execute.bind($),input:V,options:{toolCallId:F,messages:G,abortSignal:K,experimental_context:W}});for await(let O of D)if(O.type==="preliminary")Z==null||Z({...Y,type:"tool-result",output:O.output,preliminary:!0});else B=O.output}catch(D){return BE6(q,D),{type:"tool-error",toolCallId:F,toolName:H,input:V,error:D,dynamic:$.type==="dynamic",...Y.providerMetadata!=null?{providerMetadata:Y.providerMetadata}:{}}}try{q.setAttributes(await _W({telemetry:J,attributes:{"ai.toolCall.result":{output:()=>JSON.stringify(B)}}}))}catch(D){}return{type:"tool-result",toolCallId:F,toolName:H,input:V,output:B,dynamic:$.type==="dynamic",...Y.providerMetadata!=null?{providerMetadata:Y.providerMetadata}:{}}}})}function Z26(Y){let X=Y.filter((Q)=>Q.type==="text");if(X.length===0)return;return X.map((Q)=>Q.text).join("")}async function AE6({tool:Y,toolCall:X,messages:Q,experimental_context:J}){if(Y.needsApproval==null)return!1;if(typeof Y.needsApproval==="boolean")return Y.needsApproval;return await Y.needsApproval(X.input,{toolCallId:X.toolCallId,messages:Q,experimental_context:J})}function K31(Y){let X=["ROOT"],Q=-1,J=null;function G(H,F,V){switch(H){case'"':{Q=F,X.pop(),X.push(V),X.push("INSIDE_STRING");break}case"f":case"t":case"n":{Q=F,J=F,X.pop(),X.push(V),X.push("INSIDE_LITERAL");break}case"-":{X.pop(),X.push(V),X.push("INSIDE_NUMBER");break}case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":{Q=F,X.pop(),X.push(V),X.push("INSIDE_NUMBER");break}case"{":{Q=F,X.pop(),X.push(V),X.push("INSIDE_OBJECT_START");break}case"[":{Q=F,X.pop(),X.push(V),X.push("INSIDE_ARRAY_START");break}}}function K(H,F){switch(H){case",":{X.pop(),X.push("INSIDE_OBJECT_AFTER_COMMA");break}case"}":{Q=F,X.pop();break}}}function W(H,F){switch(H){case",":{X.pop(),X.push("INSIDE_ARRAY_AFTER_COMMA");break}case"]":{Q=F,X.pop();break}}}for(let H=0;H<Y.length;H++){let F=Y[H];switch(X[X.length-1]){case"ROOT":G(F,H,"FINISH");break;case"INSIDE_OBJECT_START":{switch(F){case'"':{X.pop(),X.push("INSIDE_OBJECT_KEY");break}case"}":{Q=H,X.pop();break}}break}case"INSIDE_OBJECT_AFTER_COMMA":{switch(F){case'"':{X.pop(),X.push("INSIDE_OBJECT_KEY");break}}break}case"INSIDE_OBJECT_KEY":{switch(F){case'"':{X.pop(),X.push("INSIDE_OBJECT_AFTER_KEY");break}}break}case"INSIDE_OBJECT_AFTER_KEY":{switch(F){case":":{X.pop(),X.push("INSIDE_OBJECT_BEFORE_VALUE");break}}break}case"INSIDE_OBJECT_BEFORE_VALUE":{G(F,H,"INSIDE_OBJECT_AFTER_VALUE");break}case"INSIDE_OBJECT_AFTER_VALUE":{K(F,H);break}case"INSIDE_STRING":{switch(F){case'"':{X.pop(),Q=H;break}case"\\":{X.push("INSIDE_STRING_ESCAPE");break}default:Q=H}break}case"INSIDE_ARRAY_START":{switch(F){case"]":{Q=H,X.pop();break}default:{Q=H,G(F,H,"INSIDE_ARRAY_AFTER_VALUE");break}}break}case"INSIDE_ARRAY_AFTER_VALUE":{switch(F){case",":{X.pop(),X.push("INSIDE_ARRAY_AFTER_COMMA");break}case"]":{Q=H,X.pop();break}default:{Q=H;break}}break}case"INSIDE_ARRAY_AFTER_COMMA":{G(F,H,"INSIDE_ARRAY_AFTER_VALUE");break}case"INSIDE_STRING_ESCAPE":{X.pop(),Q=H;break}case"INSIDE_NUMBER":{switch(F){case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":{Q=H;break}case"e":case"E":case"-":case".":break;case",":{if(X.pop(),X[X.length-1]==="INSIDE_ARRAY_AFTER_VALUE")W(F,H);if(X[X.length-1]==="INSIDE_OBJECT_AFTER_VALUE")K(F,H);break}case"}":{if(X.pop(),X[X.length-1]==="INSIDE_OBJECT_AFTER_VALUE")K(F,H);break}case"]":{if(X.pop(),X[X.length-1]==="INSIDE_ARRAY_AFTER_VALUE")W(F,H);break}default:{X.pop();break}}break}case"INSIDE_LITERAL":{let $=Y.substring(J,H+1);if(!"false".startsWith($)&&!"true".startsWith($)&&!"null".startsWith($)){if(X.pop(),X[X.length-1]==="INSIDE_OBJECT_AFTER_VALUE")K(F,H);else if(X[X.length-1]==="INSIDE_ARRAY_AFTER_VALUE")W(F,H)}else Q=H;break}}}let Z=Y.slice(0,Q+1);for(let H=X.length-1;H>=0;H--)switch(X[H]){case"INSIDE_STRING":{Z+='"';break}case"INSIDE_OBJECT_KEY":case"INSIDE_OBJECT_AFTER_KEY":case"INSIDE_OBJECT_AFTER_COMMA":case"INSIDE_OBJECT_START":case"INSIDE_OBJECT_BEFORE_VALUE":case"INSIDE_OBJECT_AFTER_VALUE":{Z+="}";break}case"INSIDE_ARRAY_START":case"INSIDE_ARRAY_AFTER_COMMA":case"INSIDE_ARRAY_AFTER_VALUE":{Z+="]";break}case"INSIDE_LITERAL":{let V=Y.substring(J,Y.length);if("true".startsWith(V))Z+="true".slice(V.length);else if("false".startsWith(V))Z+="false".slice(V.length);else if("null".startsWith(V))Z+="null".slice(V.length)}}return Z}async function e2(Y){if(Y===void 0)return{value:void 0,state:"undefined-input"};let X=await oQ({text:Y});if(X.success)return{value:X.value,state:"successful-parse"};if(X=await oQ({text:K31(Y)}),X.success)return{value:X.value,state:"repaired-parse"};return{value:void 0,state:"failed-parse"}}async function TE6({toolCall:Y,tools:X,repairToolCall:Q,system:J,messages:G}){var K;try{if(X==null){if(Y.providerExecuted&&Y.dynamic)return await PE6(Y);throw new _W0({toolName:Y.toolName})}try{return await K26({toolCall:Y,tools:X})}catch(W){if(Q==null||!(_W0.isInstance(W)||xW0.isInstance(W)))throw W;let Z=null;try{Z=await Q({toolCall:Y,tools:X,inputSchema:async({toolName:H})=>{let{inputSchema:F}=X[H];return await SW(F).jsonSchema},system:J,messages:G,error:W})}catch(H){throw new zH1({cause:H,originalError:W})}if(Z==null)throw W;return await K26({toolCall:Z,tools:X})}}catch(W){let Z=await oQ({text:Y.input}),H=Z.success?Z.value:Y.input;return{type:"tool-call",toolCallId:Y.toolCallId,toolName:Y.toolName,input:H,dynamic:!0,invalid:!0,error:W,title:(K=X==null?void 0:X[Y.toolName])==null?void 0:K.title,providerExecuted:Y.providerExecuted,providerMetadata:Y.providerMetadata}}}async function PE6(Y){let X=Y.input.trim()===""?{success:!0,value:{}}:await oQ({text:Y.input});if(X.success===!1)throw new xW0({toolName:Y.toolName,toolInput:Y.input,cause:X.error});return{type:"tool-call",toolCallId:Y.toolCallId,toolName:Y.toolName,input:X.value,providerExecuted:!0,dynamic:!0,providerMetadata:Y.providerMetadata}}async function K26({toolCall:Y,tools:X}){let Q=Y.toolName,J=X[Q];if(J==null){if(Y.providerExecuted&&Y.dynamic)return await PE6(Y);throw new _W0({toolName:Y.toolName,availableTools:Object.keys(X)})}let G=SW(J.inputSchema),K=Y.input.trim()===""?await $Q({value:{},schema:G}):await oQ({text:Y.input,schema:G});if(K.success===!1)throw new xW0({toolName:Q,toolInput:Y.input,cause:K.error});return J.type==="dynamic"?{type:"tool-call",toolCallId:Y.toolCallId,toolName:Y.toolName,input:K.value,providerExecuted:Y.providerExecuted,providerMetadata:Y.providerMetadata,dynamic:!0,title:J.title}:{type:"tool-call",toolCallId:Y.toolCallId,toolName:Q,input:K.value,providerExecuted:Y.providerExecuted,providerMetadata:Y.providerMetadata,title:J.title}}function au(Y){return({steps:X})=>X.length===Y}async function CE6({stopConditions:Y,steps:X}){return(await Promise.all(Y.map((Q)=>Q({steps:X})))).some((Q)=>Q)}async function fW0({content:Y,tools:X}){let Q=[],J=[];for(let K of Y){if(K.type==="source")continue;if((K.type==="tool-result"||K.type==="tool-error")&&!K.providerExecuted)continue;if(K.type==="text"&&K.text.length===0)continue;switch(K.type){case"text":J.push({type:"text",text:K.text,providerOptions:K.providerMetadata});break;case"reasoning":J.push({type:"reasoning",text:K.text,providerOptions:K.providerMetadata});break;case"file":J.push({type:"file",data:K.file.base64,mediaType:K.file.mediaType,providerOptions:K.providerMetadata});break;case"tool-call":J.push({type:"tool-call",toolCallId:K.toolCallId,toolName:K.toolName,input:K.input,providerExecuted:K.providerExecuted,providerOptions:K.providerMetadata});break;case"tool-result":{let W=await wq({toolCallId:K.toolCallId,input:K.input,tool:X==null?void 0:X[K.toolName],output:K.output,errorMode:"none"});J.push({type:"tool-result",toolCallId:K.toolCallId,toolName:K.toolName,output:W,providerOptions:K.providerMetadata});break}case"tool-error":{let W=await wq({toolCallId:K.toolCallId,input:K.input,tool:X==null?void 0:X[K.toolName],output:K.error,errorMode:"json"});J.push({type:"tool-result",toolCallId:K.toolCallId,toolName:K.toolName,output:W,providerOptions:K.providerMetadata});break}case"tool-approval-request":J.push({type:"tool-approval-request",approvalId:K.approvalId,toolCallId:K.toolCall.toolCallId});break}}if(J.length>0)Q.push({role:"assistant",content:J});let G=[];for(let K of Y){if(!(K.type==="tool-result"||K.type==="tool-error")||K.providerExecuted)continue;let W=await wq({toolCallId:K.toolCallId,input:K.input,tool:X==null?void 0:X[K.toolName],output:K.type==="tool-result"?K.output:K.error,errorMode:K.type==="tool-error"?"text":"none"});G.push({type:"tool-result",toolCallId:K.toolCallId,toolName:K.toolName,output:W,...K.providerMetadata!=null?{providerOptions:K.providerMetadata}:{}})}if(G.length>0)Q.push({role:"tool",content:G});return Q}function IE6(...Y){let X=Y.filter((J)=>J!=null);if(X.length===0)return;if(X.length===1)return X[0];let Q=new AbortController;for(let J of X){if(J.aborted)return Q.abort(J.reason),Q.signal;J.addEventListener("abort",()=>{Q.abort(J.reason)},{once:!0})}return Q.signal}async function ru({model:Y,tools:X,toolChoice:Q,system:J,prompt:G,messages:K,maxRetries:W,abortSignal:Z,timeout:H,headers:F,stopWhen:V=au(1),experimental_output:$,output:q=$,experimental_telemetry:B,providerOptions:D,experimental_activeTools:O,activeTools:L=O,experimental_prepareStep:w,prepareStep:I=w,experimental_repairToolCall:T,experimental_download:P,experimental_context:A,_internal:{generateId:R=q31}={},onStepFinish:j,onFinish:v,...y}){let f=cu(Y),h=r2(V),s=mW0(H),g=YE6(H),k=g!=null?new AbortController:void 0,b=IE6(Z,s!=null?AbortSignal.timeout(s):void 0,k==null?void 0:k.signal),{maxRetries:Y0,retry:p}=LE6({maxRetries:W,abortSignal:b}),W0=yW0(y),B0=OK(F!=null?F:{},`ai/${XE6}`),J0=$E6({model:f,telemetry:B,headers:B0,settings:{...W0,maxRetries:Y0}}),D0=await FE6({system:J,prompt:G,messages:K}),E0=zE6(B);try{return await t2({name:"ai.generateText",attributes:_W({telemetry:B,attributes:{...s2({operationId:"ai.generateText",telemetry:B}),...J0,"ai.model.provider":f.provider,"ai.model.id":f.modelId,"ai.prompt":{input:()=>JSON.stringify({system:J,prompt:G,messages:K})}}}),tracer:E0,fn:async(h0)=>{var F6,w0,K0,v0,u6,m6,b0,A0;let V0=D0.messages,R0=[],{approvedToolApprovals:q0,deniedToolApprovals:L0}=wE6({messages:V0}),Y6=q0.filter((B4)=>!B4.toolCall.providerExecuted);if(L0.length>0||Y6.length>0){let B4=await H26({toolCalls:Y6.map((H6)=>H6.toolCall),tools:X,tracer:E0,telemetry:B,messages:V0,abortSignal:b,experimental_context:A}),M1=[];for(let H6 of B4){let P6=await wq({toolCallId:H6.toolCallId,input:H6.input,tool:X==null?void 0:X[H6.toolName],output:H6.type==="tool-result"?H6.output:H6.error,errorMode:H6.type==="tool-error"?"json":"none"});M1.push({type:"tool-result",toolCallId:H6.toolCallId,toolName:H6.toolName,output:P6})}for(let H6 of L0)M1.push({type:"tool-result",toolCallId:H6.toolCall.toolCallId,toolName:H6.toolCall.toolName,output:{type:"execution-denied",reason:H6.approvalResponse.reason,...H6.toolCall.providerExecuted&&{providerOptions:{openai:{approvalId:H6.approvalResponse.approvalId}}}}});R0.push({role:"tool",content:M1})}let f0=[...q0,...L0].filter((B4)=>B4.toolCall.providerExecuted);if(f0.length>0)R0.push({role:"tool",content:f0.map((B4)=>({type:"tool-approval-response",approvalId:B4.approvalResponse.approvalId,approved:B4.approvalResponse.approved,reason:B4.approvalResponse.reason,providerExecuted:!0}))});let y0=yW0(y),z6,y6=[],t6=[],E6=[],Z6=new Map;do{let B4=g!=null?setTimeout(()=>k.abort(),g):void 0;try{let M1=[...V0,...R0],H6=await(I==null?void 0:I({model:f,steps:E6,stepNumber:E6.length,messages:M1,experimental_context:A})),P6=cu((F6=H6==null?void 0:H6.model)!=null?F6:f),sQ=await GE6({prompt:{system:(w0=H6==null?void 0:H6.system)!=null?w0:D0.system,messages:(K0=H6==null?void 0:H6.messages)!=null?K0:M1},supportedUrls:await P6.supportedUrls,download:P});A=(v0=H6==null?void 0:H6.experimental_context)!=null?v0:A;let{toolChoice:N,tools:_}=await WE6({tools:X,toolChoice:(u6=H6==null?void 0:H6.toolChoice)!=null?u6:Q,activeTools:(m6=H6==null?void 0:H6.activeTools)!=null?m6:L});z6=await p(()=>{var X0;return t2({name:"ai.generateText.doGenerate",attributes:_W({telemetry:B,attributes:{...s2({operationId:"ai.generateText.doGenerate",telemetry:B}),...J0,"ai.model.provider":P6.provider,"ai.model.id":P6.modelId,"ai.prompt.messages":{input:()=>UE6(sQ)},"ai.prompt.tools":{input:()=>_==null?void 0:_.map((Q0)=>JSON.stringify(Q0))},"ai.prompt.toolChoice":{input:()=>N!=null?JSON.stringify(N):void 0},"gen_ai.system":P6.provider,"gen_ai.request.model":P6.modelId,"gen_ai.request.frequency_penalty":y.frequencyPenalty,"gen_ai.request.max_tokens":y.maxOutputTokens,"gen_ai.request.presence_penalty":y.presencePenalty,"gen_ai.request.stop_sequences":y.stopSequences,"gen_ai.request.temperature":(X0=y.temperature)!=null?X0:void 0,"gen_ai.request.top_k":y.topK,"gen_ai.request.top_p":y.topP}}),tracer:E0,fn:async(Q0)=>{var a,k0,C6,e6,g0,b6,c8,n9;let m4=iu(D,H6==null?void 0:H6.providerOptions),g1=await P6.doGenerate({...y0,tools:_,toolChoice:N,responseFormat:await(q==null?void 0:q.responseFormat),prompt:sQ,providerOptions:m4,abortSignal:b,headers:B0}),EY={id:(k0=(a=g1.response)==null?void 0:a.id)!=null?k0:R(),timestamp:(e6=(C6=g1.response)==null?void 0:C6.timestamp)!=null?e6:new Date,modelId:(b6=(g0=g1.response)==null?void 0:g0.modelId)!=null?b6:P6.modelId,headers:(c8=g1.response)==null?void 0:c8.headers,body:(n9=g1.response)==null?void 0:n9.body};return Q0.setAttributes(await _W({telemetry:B,attributes:{"ai.response.finishReason":g1.finishReason.unified,"ai.response.text":{output:()=>Z26(g1.content)},"ai.response.toolCalls":{output:()=>{let iG=F26(g1.content);return iG==null?void 0:JSON.stringify(iG)}},"ai.response.id":EY.id,"ai.response.model":EY.modelId,"ai.response.timestamp":EY.timestamp.toISOString(),"ai.response.providerMetadata":JSON.stringify(g1.providerMetadata),"ai.usage.promptTokens":g1.usage.inputTokens.total,"ai.usage.completionTokens":g1.usage.outputTokens.total,"gen_ai.response.finish_reasons":[g1.finishReason.unified],"gen_ai.response.id":EY.id,"gen_ai.response.model":EY.modelId,"gen_ai.usage.input_tokens":g1.usage.inputTokens.total,"gen_ai.usage.output_tokens":g1.usage.outputTokens.total}})),{...g1,response:EY}}})});let t=await Promise.all(z6.content.filter((X0)=>X0.type==="tool-call").map((X0)=>TE6({toolCall:X0,tools:X,repairToolCall:T,system:J,messages:M1}))),Z0={};for(let X0 of t){if(X0.invalid)continue;let Q0=X==null?void 0:X[X0.toolName];if(Q0==null)continue;if((Q0==null?void 0:Q0.onInputAvailable)!=null)await Q0.onInputAvailable({input:X0.input,toolCallId:X0.toolCallId,messages:M1,abortSignal:b,experimental_context:A});if(await AE6({tool:Q0,toolCall:X0,messages:M1,experimental_context:A}))Z0[X0.toolCallId]={type:"tool-approval-request",approvalId:R(),toolCall:X0}}let U=t.filter((X0)=>X0.invalid&&X0.dynamic);t6=[];for(let X0 of U)t6.push({type:"tool-error",toolCallId:X0.toolCallId,toolName:X0.toolName,input:X0.input,error:qO(X0.error),dynamic:!0});if(y6=t.filter((X0)=>!X0.providerExecuted),X!=null)t6.push(...await H26({toolCalls:y6.filter((X0)=>!X0.invalid&&Z0[X0.toolCallId]==null),tools:X,tracer:E0,telemetry:B,messages:M1,abortSignal:b,experimental_context:A}));for(let X0 of t){if(!X0.providerExecuted)continue;let Q0=X==null?void 0:X[X0.toolName];if((Q0==null?void 0:Q0.type)==="provider"&&Q0.supportsDeferredResults){if(!z6.content.some((k0)=>k0.type==="tool-result"&&k0.toolCallId===X0.toolCallId))Z6.set(X0.toolCallId,{toolName:X0.toolName})}}for(let X0 of z6.content)if(X0.type==="tool-result")Z6.delete(X0.toolCallId);let C=B31({content:z6.content,toolCalls:t,toolOutputs:t6,toolApprovalRequests:Object.values(Z0),tools:X});R0.push(...await fW0({content:C,tools:X}));let i=new EE6({content:C,finishReason:z6.finishReason.unified,rawFinishReason:z6.finishReason.raw,usage:DE6(z6.usage),warnings:z6.warnings,providerMetadata:z6.providerMetadata,request:(b0=z6.request)!=null?b0:{},response:{...z6.response,messages:structuredClone(R0)}});gW0({warnings:(A0=z6.warnings)!=null?A0:[],provider:P6.provider,model:P6.modelId}),E6.push(i),await(j==null?void 0:j(i))}finally{if(B4!=null)clearTimeout(B4)}}while((y6.length>0&&t6.length===y6.length||Z6.size>0)&&!await CE6({stopConditions:h,steps:E6}));h0.setAttributes(await _W({telemetry:B,attributes:{"ai.response.finishReason":z6.finishReason.unified,"ai.response.text":{output:()=>Z26(z6.content)},"ai.response.toolCalls":{output:()=>{let B4=F26(z6.content);return B4==null?void 0:JSON.stringify(B4)}},"ai.response.providerMetadata":JSON.stringify(z6.providerMetadata),"ai.usage.promptTokens":z6.usage.inputTokens.total,"ai.usage.completionTokens":z6.usage.outputTokens.total}}));let T0=E6[E6.length-1],C0=E6.reduce((B4,M1)=>{return OE6(B4,M1.usage)},{inputTokens:void 0,outputTokens:void 0,totalTokens:void 0,reasoningTokens:void 0,cachedInputTokens:void 0});await(v==null?void 0:v({finishReason:T0.finishReason,rawFinishReason:T0.rawFinishReason,usage:T0.usage,content:T0.content,text:T0.text,reasoningText:T0.reasoningText,reasoning:T0.reasoning,files:T0.files,sources:T0.sources,toolCalls:T0.toolCalls,staticToolCalls:T0.staticToolCalls,dynamicToolCalls:T0.dynamicToolCalls,toolResults:T0.toolResults,staticToolResults:T0.staticToolResults,dynamicToolResults:T0.dynamicToolResults,request:T0.request,response:T0.response,warnings:T0.warnings,providerMetadata:T0.providerMetadata,steps:E6,totalUsage:C0,experimental_context:A}));let Y4;if(T0.finishReason==="stop")Y4=await(q!=null?q:nu()).parseCompleteOutput({text:T0.text},{response:T0.response,usage:T0.usage,finishReason:T0.finishReason});return new z31({steps:E6,totalUsage:C0,output:Y4})}})}catch(h0){throw VE6(h0)}}async function H26({toolCalls:Y,tools:X,tracer:Q,telemetry:J,messages:G,abortSignal:K,experimental_context:W}){return(await Promise.all(Y.map(async(H)=>lW0({toolCall:H,tools:X,tracer:Q,telemetry:J,messages:G,abortSignal:K,experimental_context:W})))).filter((H)=>H!=null)}function F26(Y){let X=Y.filter((Q)=>Q.type==="tool-call");if(X.length===0)return;return X.map((Q)=>({toolCallId:Q.toolCallId,toolName:Q.toolName,input:Q.input}))}function B31({content:Y,toolCalls:X,toolOutputs:Q,toolApprovalRequests:J,tools:G}){let K=[];for(let W of Y)switch(W.type){case"text":case"reasoning":case"source":K.push(W);break;case"file":{K.push({type:"file",file:new ME6(W),...W.providerMetadata!=null?{providerMetadata:W.providerMetadata}:{}});break}case"tool-call":{K.push(X.find((Z)=>Z.toolCallId===W.toolCallId));break}case"tool-result":{let Z=X.find((H)=>H.toolCallId===W.toolCallId);if(Z==null){let H=G==null?void 0:G[W.toolName];if(!((H==null?void 0:H.type)==="provider"&&H.supportsDeferredResults))throw Error(`Tool call ${W.toolCallId} not found.`);if(W.isError)K.push({type:"tool-error",toolCallId:W.toolCallId,toolName:W.toolName,input:void 0,error:W.result,providerExecuted:!0,dynamic:W.dynamic});else K.push({type:"tool-result",toolCallId:W.toolCallId,toolName:W.toolName,input:void 0,output:W.result,providerExecuted:!0,dynamic:W.dynamic});break}if(W.isError)K.push({type:"tool-error",toolCallId:W.toolCallId,toolName:W.toolName,input:Z.input,error:W.result,providerExecuted:!0,dynamic:Z.dynamic});else K.push({type:"tool-result",toolCallId:W.toolCallId,toolName:W.toolName,input:Z.input,output:W.result,providerExecuted:!0,dynamic:Z.dynamic});break}case"tool-approval-request":{let Z=X.find((H)=>H.toolCallId===W.toolCallId);if(Z==null)throw new uW0({toolCallId:W.toolCallId,approvalId:W.approvalId});K.push({type:"tool-approval-request",approvalId:W.approvalId,toolCall:Z});break}}return[...K,...Q,...J]}function ou(Y,X){let Q=new Headers(Y!=null?Y:{});for(let[J,G]of Object.entries(X))if(!Q.has(J))Q.set(J,G);return Q}function U31({status:Y,statusText:X,headers:Q,textStream:J}){return new Response(J.pipeThrough(new TextEncoderStream),{status:Y!=null?Y:200,statusText:X,headers:ou(Q,{"content-type":"text/plain; charset=utf-8"})})}function RE6({response:Y,status:X,statusText:Q,headers:J,stream:G}){let K=X!=null?X:200;if(Q!==void 0)Y.writeHead(K,Q,J);else Y.writeHead(K,J);let W=G.getReader();(async()=>{try{while(!0){let{done:H,value:F}=await W.read();if(H)break;if(!Y.write(F))await new Promise(($)=>{Y.once("drain",$)})}}catch(H){throw H}finally{Y.end()}})()}function D31({response:Y,status:X,statusText:Q,headers:J,textStream:G}){RE6({response:Y,status:X,statusText:Q,headers:Object.fromEntries(ou(J,{"content-type":"text/plain; charset=utf-8"}).entries()),stream:G.pipeThrough(new TextEncoderStream)})}function O31({status:Y,statusText:X,headers:Q,stream:J,consumeSseStream:G}){let K=J.pipeThrough(new jE6);if(G){let[W,Z]=K.tee();K=W,G({stream:Z})}return new Response(K.pipeThrough(new TextEncoderStream),{status:Y,statusText:X,headers:ou(Q,SE6)})}function N31({originalMessages:Y,responseMessageId:X}){if(Y==null)return;let Q=Y[Y.length-1];return(Q==null?void 0:Q.role)==="assistant"?Q.id:typeof X==="function"?X():X}function L31(Y){return Y.type.startsWith("data-")}function jW0(Y){return Y.type.startsWith("data-")}function SW0(Y){return Y.type==="text"}function kW0(Y){return Y.type==="file"}function V26(Y){return Y.type==="reasoning"}function hW0(Y){return Y.type.startsWith("tool-")}function kE6(Y){return Y.type==="dynamic-tool"}function a2(Y){return hW0(Y)||kE6(Y)}function bW0(Y){return Y.type.split("-").slice(1).join("-")}function vW0(Y){return kE6(Y)?Y.toolName:bW0(Y)}function w31({lastMessage:Y,messageId:X}){return{message:(Y==null?void 0:Y.role)==="assistant"?Y:{id:X,metadata:void 0,role:"assistant",parts:[]},activeTextParts:{},activeReasoningParts:{},partialToolCalls:{}}}function M31({stream:Y,messageMetadataSchema:X,dataPartSchemas:Q,runUpdateMessageJob:J,onError:G,onToolCall:K,onData:W}){return Y.pipeThrough(new TransformStream({async transform(Z,H){await J(async({state:F,write:V})=>{var $,q,B,D;function O(T){let A=F.message.parts.filter(a2).find((R)=>R.toolCallId===T);if(A==null)throw new OO({chunkType:"tool-invocation",chunkId:T,message:`No tool invocation found for tool call ID "${T}".`});return A}function L(T){var P;let A=F.message.parts.find((v)=>hW0(v)&&v.toolCallId===T.toolCallId),R=T,j=A;if(A!=null){if(A.state=T.state,j.input=R.input,j.output=R.output,j.errorText=R.errorText,j.rawInput=R.rawInput,j.preliminary=R.preliminary,T.title!==void 0)j.title=T.title;if(j.providerExecuted=(P=R.providerExecuted)!=null?P:A.providerExecuted,R.providerMetadata!=null)A.callProviderMetadata=R.providerMetadata}else F.message.parts.push({type:`tool-${T.toolName}`,toolCallId:T.toolCallId,state:T.state,title:T.title,input:R.input,output:R.output,rawInput:R.rawInput,errorText:R.errorText,providerExecuted:R.providerExecuted,preliminary:R.preliminary,...R.providerMetadata!=null?{callProviderMetadata:R.providerMetadata}:{}})}function w(T){var P,A;let R=F.message.parts.find((y)=>y.type==="dynamic-tool"&&y.toolCallId===T.toolCallId),j=T,v=R;if(R!=null){if(R.state=T.state,v.toolName=T.toolName,v.input=j.input,v.output=j.output,v.errorText=j.errorText,v.rawInput=(P=j.rawInput)!=null?P:v.rawInput,v.preliminary=j.preliminary,T.title!==void 0)v.title=T.title;if(v.providerExecuted=(A=j.providerExecuted)!=null?A:R.providerExecuted,j.providerMetadata!=null)R.callProviderMetadata=j.providerMetadata}else F.message.parts.push({type:"dynamic-tool",toolName:T.toolName,toolCallId:T.toolCallId,state:T.state,input:j.input,output:j.output,errorText:j.errorText,preliminary:j.preliminary,providerExecuted:j.providerExecuted,title:T.title,...j.providerMetadata!=null?{callProviderMetadata:j.providerMetadata}:{}})}async function I(T){if(T!=null){let P=F.message.metadata!=null?iu(F.message.metadata,T):T;if(X!=null)await kW({value:P,schema:X});F.message.metadata=P}}switch(Z.type){case"text-start":{let T={type:"text",text:"",providerMetadata:Z.providerMetadata,state:"streaming"};F.activeTextParts[Z.id]=T,F.message.parts.push(T),V();break}case"text-delta":{let T=F.activeTextParts[Z.id];if(T==null)throw new OO({chunkType:"text-delta",chunkId:Z.id,message:`Received text-delta for missing text part with ID "${Z.id}". Ensure a "text-start" chunk is sent before any "text-delta" chunks.`});T.text+=Z.delta,T.providerMetadata=($=Z.providerMetadata)!=null?$:T.providerMetadata,V();break}case"text-end":{let T=F.activeTextParts[Z.id];if(T==null)throw new OO({chunkType:"text-end",chunkId:Z.id,message:`Received text-end for missing text part with ID "${Z.id}". Ensure a "text-start" chunk is sent before any "text-end" chunks.`});T.state="done",T.providerMetadata=(q=Z.providerMetadata)!=null?q:T.providerMetadata,delete F.activeTextParts[Z.id],V();break}case"reasoning-start":{let T={type:"reasoning",text:"",providerMetadata:Z.providerMetadata,state:"streaming"};F.activeReasoningParts[Z.id]=T,F.message.parts.push(T),V();break}case"reasoning-delta":{let T=F.activeReasoningParts[Z.id];if(T==null)throw new OO({chunkType:"reasoning-delta",chunkId:Z.id,message:`Received reasoning-delta for missing reasoning part with ID "${Z.id}". Ensure a "reasoning-start" chunk is sent before any "reasoning-delta" chunks.`});T.text+=Z.delta,T.providerMetadata=(B=Z.providerMetadata)!=null?B:T.providerMetadata,V();break}case"reasoning-end":{let T=F.activeReasoningParts[Z.id];if(T==null)throw new OO({chunkType:"reasoning-end",chunkId:Z.id,message:`Received reasoning-end for missing reasoning part with ID "${Z.id}". Ensure a "reasoning-start" chunk is sent before any "reasoning-end" chunks.`});T.providerMetadata=(D=Z.providerMetadata)!=null?D:T.providerMetadata,T.state="done",delete F.activeReasoningParts[Z.id],V();break}case"file":{F.message.parts.push({type:"file",mediaType:Z.mediaType,url:Z.url}),V();break}case"source-url":{F.message.parts.push({type:"source-url",sourceId:Z.sourceId,url:Z.url,title:Z.title,providerMetadata:Z.providerMetadata}),V();break}case"source-document":{F.message.parts.push({type:"source-document",sourceId:Z.sourceId,mediaType:Z.mediaType,title:Z.title,filename:Z.filename,providerMetadata:Z.providerMetadata}),V();break}case"tool-input-start":{let T=F.message.parts.filter(hW0);if(F.partialToolCalls[Z.toolCallId]={text:"",toolName:Z.toolName,index:T.length,dynamic:Z.dynamic,title:Z.title},Z.dynamic)w({toolCallId:Z.toolCallId,toolName:Z.toolName,state:"input-streaming",input:void 0,providerExecuted:Z.providerExecuted,title:Z.title,providerMetadata:Z.providerMetadata});else L({toolCallId:Z.toolCallId,toolName:Z.toolName,state:"input-streaming",input:void 0,providerExecuted:Z.providerExecuted,title:Z.title,providerMetadata:Z.providerMetadata});V();break}case"tool-input-delta":{let T=F.partialToolCalls[Z.toolCallId];if(T==null)throw new OO({chunkType:"tool-input-delta",chunkId:Z.toolCallId,message:`Received tool-input-delta for missing tool call with ID "${Z.toolCallId}". Ensure a "tool-input-start" chunk is sent before any "tool-input-delta" chunks.`});T.text+=Z.inputTextDelta;let{value:P}=await e2(T.text);if(T.dynamic)w({toolCallId:Z.toolCallId,toolName:T.toolName,state:"input-streaming",input:P,title:T.title});else L({toolCallId:Z.toolCallId,toolName:T.toolName,state:"input-streaming",input:P,title:T.title});V();break}case"tool-input-available":{if(Z.dynamic)w({toolCallId:Z.toolCallId,toolName:Z.toolName,state:"input-available",input:Z.input,providerExecuted:Z.providerExecuted,providerMetadata:Z.providerMetadata,title:Z.title});else L({toolCallId:Z.toolCallId,toolName:Z.toolName,state:"input-available",input:Z.input,providerExecuted:Z.providerExecuted,providerMetadata:Z.providerMetadata,title:Z.title});if(V(),K&&!Z.providerExecuted)await K({toolCall:Z});break}case"tool-input-error":{if(Z.dynamic)w({toolCallId:Z.toolCallId,toolName:Z.toolName,state:"output-error",input:Z.input,errorText:Z.errorText,providerExecuted:Z.providerExecuted,providerMetadata:Z.providerMetadata});else L({toolCallId:Z.toolCallId,toolName:Z.toolName,state:"output-error",input:void 0,rawInput:Z.input,errorText:Z.errorText,providerExecuted:Z.providerExecuted,providerMetadata:Z.providerMetadata});V();break}case"tool-approval-request":{let T=O(Z.toolCallId);T.state="approval-requested",T.approval={id:Z.approvalId},V();break}case"tool-output-denied":{let T=O(Z.toolCallId);T.state="output-denied",V();break}case"tool-output-available":{let T=O(Z.toolCallId);if(T.type==="dynamic-tool")w({toolCallId:Z.toolCallId,toolName:T.toolName,state:"output-available",input:T.input,output:Z.output,preliminary:Z.preliminary,providerExecuted:Z.providerExecuted,title:T.title});else L({toolCallId:Z.toolCallId,toolName:bW0(T),state:"output-available",input:T.input,output:Z.output,providerExecuted:Z.providerExecuted,preliminary:Z.preliminary,title:T.title});V();break}case"tool-output-error":{let T=O(Z.toolCallId);if(T.type==="dynamic-tool")w({toolCallId:Z.toolCallId,toolName:T.toolName,state:"output-error",input:T.input,errorText:Z.errorText,providerExecuted:Z.providerExecuted,title:T.title});else L({toolCallId:Z.toolCallId,toolName:bW0(T),state:"output-error",input:T.input,rawInput:T.rawInput,errorText:Z.errorText,providerExecuted:Z.providerExecuted,title:T.title});V();break}case"start-step":{F.message.parts.push({type:"step-start"});break}case"finish-step":{F.activeTextParts={},F.activeReasoningParts={};break}case"start":{if(Z.messageId!=null)F.message.id=Z.messageId;if(await I(Z.messageMetadata),Z.messageId!=null||Z.messageMetadata!=null)V();break}case"finish":{if(Z.finishReason!=null)F.finishReason=Z.finishReason;if(await I(Z.messageMetadata),Z.messageMetadata!=null)V();break}case"message-metadata":{if(await I(Z.messageMetadata),Z.messageMetadata!=null)V();break}case"error":{G==null||G(Error(Z.errorText));break}default:if(L31(Z)){if((Q==null?void 0:Q[Z.type])!=null)await kW({value:Z.data,schema:Q[Z.type]});let T=Z;if(T.transient){W==null||W(T);break}let P=T.id!=null?F.message.parts.find((A)=>T.type===A.type&&T.id===A.id):void 0;if(P!=null)P.data=T.data;else F.message.parts.push(T);W==null||W(T),V()}}H.enqueue(Z)})}}))}function A31({messageId:Y,originalMessages:X=[],onFinish:Q,onError:J,stream:G}){let K=X==null?void 0:X[X.length-1];if((K==null?void 0:K.role)!=="assistant")K=void 0;else Y=K.id;let W=!1,Z=G.pipeThrough(new TransformStream({transform(q,B){if(q.type==="start"){let D=q;if(D.messageId==null&&Y!=null)D.messageId=Y}if(q.type==="abort")W=!0;B.enqueue(q)}}));if(Q==null)return Z;let H=w31({lastMessage:K?structuredClone(K):void 0,messageId:Y!=null?Y:""}),F=async(q)=>{await q({state:H,write:()=>{}})},V=!1,$=async()=>{if(V||!Q)return;V=!0;let q=H.message.id===(K==null?void 0:K.id);await Q({isAborted:W,isContinuation:q,responseMessage:H.message,messages:[...q?X.slice(0,-1):X,H.message],finishReason:H.finishReason})};return M31({stream:Z,runUpdateMessageJob:F,onError:J}).pipeThrough(new TransformStream({transform(q,B){B.enqueue(q)},async cancel(){await $()},async flush(){await $()}}))}function T31({response:Y,status:X,statusText:Q,headers:J,stream:G,consumeSseStream:K}){let W=G.pipeThrough(new jE6);if(K){let[Z,H]=W.tee();W=Z,K({stream:H})}RE6({response:Y,status:X,statusText:Q,headers:Object.fromEntries(ou(J,SE6).entries()),stream:W.pipeThrough(new TextEncoderStream)})}function i2(Y){let X=Y.pipeThrough(new TransformStream);return X[Symbol.asyncIterator]=function(){let Q=this.getReader(),J=!1;async function G(K){var W;if(J)return;J=!0;try{if(K)await((W=Q.cancel)==null?void 0:W.call(Q))}finally{try{Q.releaseLock()}catch(Z){}}}return{async next(){if(J)return{done:!0,value:void 0};let{done:K,value:W}=await Q.read();if(K)return await G(!0),{done:!0,value:void 0};return{done:!1,value:W}},async return(){return await G(!0),{done:!0,value:void 0}},async throw(K){throw await G(!0),K}}},X}async function dW0({stream:Y,onError:X}){let Q=Y.getReader();try{while(!0){let{done:J}=await Q.read();if(J)break}}catch(J){X==null||X(J)}finally{Q.releaseLock()}}function $26(){let Y,X;return{promise:new Promise((J,G)=>{Y=J,X=G}),resolve:Y,reject:X}}function P31(){let Y=[],X=null,Q=!1,J=$26(),G=()=>{Q=!0,J.resolve(),Y.forEach((W)=>W.cancel()),Y=[],X==null||X.close()},K=async()=>{if(Q&&Y.length===0){X==null||X.close();return}if(Y.length===0)return J=$26(),await J.promise,K();try{let{value:W,done:Z}=await Y[0].read();if(Z)if(Y.shift(),Y.length===0&&Q)X==null||X.close();else await K();else X==null||X.enqueue(W)}catch(W){X==null||X.error(W),Y.shift(),G()}};return{stream:new ReadableStream({start(W){X=W},pull:K,async cancel(){for(let W of Y)await W.cancel();Y=[],Q=!0}}),addStream:(W)=>{if(Q)throw Error("Cannot add inner stream: outer stream is closed");Y.push(W.getReader()),J.resolve()},close:()=>{if(Q=!0,J.resolve(),Y.length===0)X==null||X.close()},terminate:G}}function E31(){var Y,X;return(X=(Y=globalThis==null?void 0:globalThis.performance)==null?void 0:Y.now())!=null?X:Date.now()}function C31({tools:Y,generatorStream:X,tracer:Q,telemetry:J,system:G,messages:K,abortSignal:W,repairToolCall:Z,experimental_context:H,generateId:F}){let V=null,$=new ReadableStream({start(T){V=T}}),q=new Set,B=new Map,D=new Map,O=!1,L=void 0;function w(){if(O&&q.size===0){if(L!=null)V.enqueue(L);V.close()}}let I=new TransformStream({async transform(T,P){let A=T.type;switch(A){case"stream-start":case"text-start":case"text-delta":case"text-end":case"reasoning-start":case"reasoning-delta":case"reasoning-end":case"tool-input-start":case"tool-input-delta":case"tool-input-end":case"source":case"response-metadata":case"error":case"raw":{P.enqueue(T);break}case"file":{P.enqueue({type:"file",file:new W31({data:T.data,mediaType:T.mediaType})});break}case"finish":{L={type:"finish",finishReason:T.finishReason.unified,rawFinishReason:T.finishReason.raw,usage:DE6(T.usage),providerMetadata:T.providerMetadata};break}case"tool-approval-request":{let R=D.get(T.toolCallId);if(R==null){V.enqueue({type:"error",error:new uW0({toolCallId:T.toolCallId,approvalId:T.approvalId})});break}P.enqueue({type:"tool-approval-request",approvalId:T.approvalId,toolCall:R});break}case"tool-call":{try{let R=await TE6({toolCall:T,tools:Y,repairToolCall:Z,system:G,messages:K});if(D.set(R.toolCallId,R),P.enqueue(R),R.invalid){V.enqueue({type:"tool-error",toolCallId:R.toolCallId,toolName:R.toolName,input:R.input,error:qO(R.error),dynamic:!0,title:R.title});break}let j=Y==null?void 0:Y[R.toolName];if(j==null)break;if(j.onInputAvailable!=null)await j.onInputAvailable({input:R.input,toolCallId:R.toolCallId,messages:K,abortSignal:W,experimental_context:H});if(await AE6({tool:j,toolCall:R,messages:K,experimental_context:H})){V.enqueue({type:"tool-approval-request",approvalId:F(),toolCall:R});break}if(B.set(R.toolCallId,R.input),j.execute!=null&&R.providerExecuted!==!0){let v=F();q.add(v),lW0({toolCall:R,tools:Y,tracer:Q,telemetry:J,messages:K,abortSignal:W,experimental_context:H,onPreliminaryToolResult:(y)=>{V.enqueue(y)}}).then((y)=>{V.enqueue(y)}).catch((y)=>{V.enqueue({type:"error",error:y})}).finally(()=>{q.delete(v),w()})}}catch(R){V.enqueue({type:"error",error:R})}break}case"tool-result":{let R=T.toolName;if(T.isError)V.enqueue({type:"tool-error",toolCallId:T.toolCallId,toolName:R,input:B.get(T.toolCallId),providerExecuted:!0,error:T.result,dynamic:T.dynamic});else P.enqueue({type:"tool-result",toolCallId:T.toolCallId,toolName:R,input:B.get(T.toolCallId),output:T.result,providerExecuted:!0,dynamic:T.dynamic});break}default:throw Error(`Unhandled chunk type: ${A}`)}},flush(){O=!0,w()}});return new ReadableStream({async start(T){return Promise.all([X.pipeThrough(I).pipeTo(new WritableStream({write(P){T.enqueue(P)},close(){}})),$.pipeTo(new WritableStream({write(P){T.enqueue(P)},close(){T.close()}}))])}})}function su({model:Y,tools:X,toolChoice:Q,system:J,prompt:G,messages:K,maxRetries:W,abortSignal:Z,timeout:H,headers:F,stopWhen:V=au(1),experimental_output:$,output:q=$,experimental_telemetry:B,prepareStep:D,providerOptions:O,experimental_activeTools:L,activeTools:w=L,experimental_repairToolCall:I,experimental_transform:T,experimental_download:P,includeRawChunks:A=!1,onChunk:R,onError:j=({error:b})=>{console.error(b)},onFinish:v,onAbort:y,onStepFinish:f,experimental_context:h,_internal:{now:s=E31,generateId:g=I31}={},...k}){let b=mW0(H),Y0=YE6(H),p=kH1(H),W0=Y0!=null?new AbortController:void 0,B0=p!=null?new AbortController:void 0;return new j31({model:cu(Y),telemetry:B,headers:F,settings:k,maxRetries:W,abortSignal:IE6(Z,b!=null?AbortSignal.timeout(b):void 0,W0==null?void 0:W0.signal,B0==null?void 0:B0.signal),stepTimeoutMs:Y0,stepAbortController:W0,chunkTimeoutMs:p,chunkAbortController:B0,system:J,prompt:G,messages:K,tools:X,toolChoice:Q,transforms:r2(T),activeTools:w,repairToolCall:I,stopConditions:r2(V),output:q,providerOptions:O,prepareStep:D,includeRawChunks:A,onChunk:R,onError:j,onFinish:v,onAbort:y,onStepFinish:f,now:s,generateId:g,experimental_context:h,download:P})}function R31(Y){let X=void 0,Q="",J="",G=void 0,K="";function W({controller:Z,partialOutput:H=void 0}){Z.enqueue({part:{type:"text-delta",id:X,text:J,providerMetadata:G},partialOutput:H}),J=""}return new TransformStream({async transform(Z,H){var F;if(Z.type==="finish-step"&&J.length>0)W({controller:H});if(Z.type!=="text-delta"&&Z.type!=="text-start"&&Z.type!=="text-end"){H.enqueue({part:Z,partialOutput:void 0});return}if(X==null)X=Z.id;else if(Z.id!==X){H.enqueue({part:Z,partialOutput:void 0});return}if(Z.type==="text-start"){H.enqueue({part:Z,partialOutput:void 0});return}if(Z.type==="text-end"){if(J.length>0)W({controller:H});H.enqueue({part:Z,partialOutput:void 0});return}Q+=Z.text,J+=Z.text,G=(F=Z.providerMetadata)!=null?F:G;let V=await Y.parsePartialOutput({text:Q});if(V!==void 0){let $=JSON.stringify(V.partial);if($!==K)W({controller:H,partialOutput:V.partial}),K=$}}})}async function vE6(Y,X){let Q=[];if(X==null?void 0:X.ignoreIncompleteToolCalls)Y=Y.map((J)=>({...J,parts:J.parts.filter((G)=>!a2(G)||G.state!=="input-streaming"&&G.state!=="input-available")}));for(let J of Y)switch(J.role){case"system":{let G=J.parts.filter((W)=>W.type==="text"),K=G.reduce((W,Z)=>{if(Z.providerMetadata!=null)return{...W,...Z.providerMetadata};return W},{});Q.push({role:"system",content:G.map((W)=>W.text).join(""),...Object.keys(K).length>0?{providerOptions:K}:{}});break}case"user":{Q.push({role:"user",content:J.parts.map((G)=>{var K;if(SW0(G))return{type:"text",text:G.text,...G.providerMetadata!=null?{providerOptions:G.providerMetadata}:{}};if(kW0(G))return{type:"file",mediaType:G.mediaType,filename:G.filename,data:G.url,...G.providerMetadata!=null?{providerOptions:G.providerMetadata}:{}};if(jW0(G))return(K=X==null?void 0:X.convertDataPart)==null?void 0:K.call(X,G)}).filter(RT6)});break}case"assistant":{if(J.parts!=null){let G=[];async function K(){var W,Z,H,F,V,$;if(G.length===0)return;let q=[];for(let D of G)if(SW0(D))q.push({type:"text",text:D.text,...D.providerMetadata!=null?{providerOptions:D.providerMetadata}:{}});else if(kW0(D))q.push({type:"file",mediaType:D.mediaType,filename:D.filename,data:D.url});else if(V26(D))q.push({type:"reasoning",text:D.text,providerOptions:D.providerMetadata});else if(a2(D)){let O=vW0(D);if(D.state!=="input-streaming"){if(q.push({type:"tool-call",toolCallId:D.toolCallId,toolName:O,input:D.state==="output-error"?(W=D.input)!=null?W:("rawInput"in D)?D.rawInput:void 0:D.input,providerExecuted:D.providerExecuted,...D.callProviderMetadata!=null?{providerOptions:D.callProviderMetadata}:{}}),D.approval!=null)q.push({type:"tool-approval-request",approvalId:D.approval.id,toolCallId:D.toolCallId});if(D.providerExecuted===!0&&D.state!=="approval-responded"&&(D.state==="output-available"||D.state==="output-error"))q.push({type:"tool-result",toolCallId:D.toolCallId,toolName:O,output:await wq({toolCallId:D.toolCallId,input:D.input,output:D.state==="output-error"?D.errorText:D.output,tool:(Z=X==null?void 0:X.tools)==null?void 0:Z[O],errorMode:D.state==="output-error"?"json":"none"}),...D.callProviderMetadata!=null?{providerOptions:D.callProviderMetadata}:{}})}}else if(jW0(D)){let O=(H=X==null?void 0:X.convertDataPart)==null?void 0:H.call(X,D);if(O!=null)q.push(O)}else throw Error(`Unsupported part: ${D}`);Q.push({role:"assistant",content:q});let B=G.filter((D)=>{var O;return a2(D)&&(D.providerExecuted!==!0||((O=D.approval)==null?void 0:O.approved)!=null)});if(B.length>0){let D=[];for(let O of B){if(((F=O.approval)==null?void 0:F.approved)!=null)D.push({type:"tool-approval-response",approvalId:O.approval.id,approved:O.approval.approved,reason:O.approval.reason,providerExecuted:O.providerExecuted});if(O.providerExecuted===!0)continue;switch(O.state){case"output-denied":{D.push({type:"tool-result",toolCallId:O.toolCallId,toolName:vW0(O),output:{type:"error-text",value:(V=O.approval.reason)!=null?V:"Tool execution denied."},...O.callProviderMetadata!=null?{providerOptions:O.callProviderMetadata}:{}});break}case"output-error":case"output-available":{let L=vW0(O);D.push({type:"tool-result",toolCallId:O.toolCallId,toolName:L,output:await wq({toolCallId:O.toolCallId,input:O.input,output:O.state==="output-error"?O.errorText:O.output,tool:($=X==null?void 0:X.tools)==null?void 0:$[L],errorMode:O.state==="output-error"?"text":"none"}),...O.callProviderMetadata!=null?{providerOptions:O.callProviderMetadata}:{}});break}}}if(D.length>0)Q.push({role:"tool",content:D})}G=[]}for(let W of J.parts)if(SW0(W)||V26(W)||kW0(W)||a2(W)||jW0(W))G.push(W);else if(W.type==="step-start")await K();await K();break}break}default:{let G=J.role;throw new TH1({originalMessage:J,message:`Unsupported role: ${G}`})}}return Q}async function k31({messages:Y,metadataSchema:X,dataSchemas:Q,tools:J}){try{if(Y==null)return{success:!1,error:new nG({parameter:"messages",value:Y,message:"messages parameter must be provided"})};let G=await kW({value:Y,schema:S31});if(X)for(let K of G)await kW({value:K.metadata,schema:X});if(Q)for(let K of G){let W=K.parts.filter((Z)=>Z.type.startsWith("data-"));for(let Z of W){let H=Z.type.slice(5),F=Q[H];if(!F)return{success:!1,error:new rQ({value:Z.data,cause:`No data schema found for data part ${H}`})};await kW({value:Z.data,schema:F})}}if(J)for(let K of G){let W=K.parts.filter((Z)=>Z.type.startsWith("tool-"));for(let Z of W){let H=Z.type.slice(5),F=J[H];if(!F)return{success:!1,error:new rQ({value:Z.input,cause:`No tool schema found for tool part ${H}`})};if(Z.state==="input-available"||Z.state==="output-available"||Z.state==="output-error"&&Z.input!==void 0)await kW({value:Z.input,schema:F.inputSchema});if(Z.state==="output-available"&&F.outputSchema)await kW({value:Z.output,schema:F.outputSchema})}}return{success:!0,data:G}}catch(G){return{success:!1,error:G}}}async function _E6({messages:Y,metadataSchema:X,dataSchemas:Q,tools:J}){let G=await k31({messages:Y,metadataSchema:X,dataSchemas:Q,tools:J});if(!G.success)throw G.error;return G.data}function yE6({messages:Y,reasoning:X="none",toolCalls:Q=[],emptyMessages:J="remove"}){if(X==="all"||X==="before-last-message")Y=Y.map((G,K)=>{if(G.role!=="assistant"||typeof G.content==="string"||X==="before-last-message"&&K===Y.length-1)return G;return{...G,content:G.content.filter((W)=>W.type!=="reasoning")}});if(Q==="none")Q=[];else if(Q==="all")Q=[{type:"all"}];else if(Q==="before-last-message")Q=[{type:"before-last-message"}];else if(typeof Q==="string")Q=[{type:Q}];for(let G of Q){let K=G.type==="all"?void 0:G.type==="before-last-message"?1:Number(G.type.slice(12).slice(0,-9)),W=new Set,Z=new Set;if(K!=null){for(let H of Y.slice(-K))if((H.role==="assistant"||H.role==="tool")&&typeof H.content!=="string"){for(let F of H.content)if(F.type==="tool-call"||F.type==="tool-result")W.add(F.toolCallId);else if(F.type==="tool-approval-request"||F.type==="tool-approval-response")Z.add(F.approvalId)}}Y=Y.map((H,F)=>{if(H.role!=="assistant"&&H.role!=="tool"||typeof H.content==="string"||K&&F>=Y.length-K)return H;let V={},$={};return{...H,content:H.content.filter((q)=>{if(q.type!=="tool-call"&&q.type!=="tool-result"&&q.type!=="tool-approval-request"&&q.type!=="tool-approval-response")return!0;if(q.type==="tool-call")V[q.toolCallId]=q.toolName;else if(q.type==="tool-approval-request")$[q.approvalId]=V[q.toolCallId];if((q.type==="tool-call"||q.type==="tool-result")&&W.has(q.toolCallId)||(q.type==="tool-approval-request"||q.type==="tool-approval-response")&&Z.has(q.approvalId))return!0;return G.tools!=null&&!G.tools.includes(q.type==="tool-call"||q.type==="tool-result"?q.toolName:$[q.approvalId])})}})}if(J==="remove")Y=Y.filter((G)=>G.content.length>0);return Y}var qE6,NO,uK1,gK1=(Y,X)=>{for(var Q in X)uK1(Y,Q,{get:X[Q],enumerable:!0})},q26="AI_InvalidArgumentError",z26,mK1,B26,nG,lK1="AI_InvalidStreamPartError",dK1,pK1,cK1,U26="AI_InvalidToolApprovalError",D26,nK1,O26,iK1,N26="AI_InvalidToolInputError",L26,aK1,w26,xW0,M26="AI_ToolCallNotFoundForApprovalError",A26,rK1,T26,uW0,P26="AI_MissingToolResultsError",E26,oK1,C26,X26,sK1="AI_NoImageGeneratedError",tK1,eK1,YH1,I26="AI_NoObjectGeneratedError",R26,XH1,j26,n3,S26="AI_NoOutputGeneratedError",k26,QH1,v26,_26,JH1="AI_NoSpeechGeneratedError",GH1,WH1,ZH1,KH1="AI_NoTranscriptGeneratedError",HH1,FH1,VH1,y26="AI_NoSuchToolError",f26,$H1,h26,_W0,b26="AI_ToolCallRepairError",x26,qH1,u26,zH1,BH1,g26="AI_UIMessageStreamError",m26,UH1,l26,OO,DH1="AI_InvalidDataContentError",OH1,NH1,LH1,d26="AI_InvalidMessageRoleError",p26,wH1,c26,MH1,n26="AI_MessageConversionError",i26,AH1,a26,TH1,r26="AI_RetryError",o26,PH1,s26,Q26,CH1="AI SDK Warning System: To turn off warning logging, set the AI_SDK_LOG_WARNINGS global to false.",J26=!1,gW0=(Y)=>{if(Y.warnings.length===0)return;let X=globalThis.AI_SDK_LOG_WARNINGS;if(X===!1)return;if(typeof X==="function"){X(Y);return}if(!J26)J26=!0,console.info(CH1);for(let Q of Y.warnings)console.warn(EH1({warning:Q,provider:Y.provider,model:Y.model}))},vH1,_H1=(Y)=>{let X=typeof Y==="string"?$O(Y):Y,Q=(X[6]&127)<<21|(X[7]&127)<<14|(X[8]&127)<<7|X[9]&127;return X.slice(Q+10)},XE6="6.0.55",hH1=async({url:Y})=>{var X;let Q=Y.toString();try{let J=await fetch(Q,{headers:OK({},`ai-sdk/${XE6}`,bu())});if(!J.ok)throw new hu({url:Q,statusCode:J.status,statusText:J.statusText});return{data:new Uint8Array(await J.arrayBuffer()),mediaType:(X=J.headers.get("content-type"))!=null?X:void 0}}catch(J){if(hu.isInstance(J))throw J;throw new hu({url:Q,cause:J})}},bH1=(Y=hH1)=>(X)=>Promise.all(X.map(async(Q)=>Q.isUrlSupportedByModel?null:Y(Q))),QE6,o2,r6,ZE6,pH1,KE6,cH1,nH1,iH1,HE6,aH1,rH1,oH1,sH1,tH1,eH1,Y31,X31,pu,Q31,G31=({maxRetries:Y=2,initialDelayInMs:X=2000,backoffFactor:Q=2,abortSignal:J}={})=>async(G)=>NE6(G,{maxRetries:Y,delayInMs:X,backoffFactor:Q,abortSignal:J}),ME6=class{constructor({data:Y,mediaType:X}){let Q=Y instanceof Uint8Array;this.base64Data=Q?void 0:Y,this.uint8ArrayData=Q?Y:void 0,this.mediaType=X}get base64(){if(this.base64Data==null)this.base64Data=Dq(this.uint8ArrayData);return this.base64Data}get uint8Array(){if(this.uint8ArrayData==null)this.uint8ArrayData=$O(this.base64Data);return this.uint8ArrayData}},W31,Z31,nu=()=>({name:"text",responseFormat:Promise.resolve({type:"text"}),async parseCompleteOutput({text:Y}){return Y},async parsePartialOutput({text:Y}){return{partial:Y}},createElementStreamTransform(){return}}),H31=({schema:Y,name:X,description:Q})=>{let J=SW(Y);return{name:"object",responseFormat:YX(J.jsonSchema).then((G)=>({type:"json",schema:G,...X!=null&&{name:X},...Q!=null&&{description:Q}})),async parseCompleteOutput({text:G},K){let W=await oQ({text:G});if(!W.success)throw new n3({message:"No object generated: could not parse the response.",cause:W.error,text:G,response:K.response,usage:K.usage,finishReason:K.finishReason});let Z=await $Q({value:W.value,schema:J});if(!Z.success)throw new n3({message:"No object generated: response did not match schema.",cause:Z.error,text:G,response:K.response,usage:K.usage,finishReason:K.finishReason});return Z.value},async parsePartialOutput({text:G}){let K=await e2(G);switch(K.state){case"failed-parse":case"undefined-input":return;case"repaired-parse":case"successful-parse":return{partial:K.value}}},createElementStreamTransform(){return}}},F31=({element:Y,name:X,description:Q})=>{let J=SW(Y);return{name:"array",responseFormat:YX(J.jsonSchema).then((G)=>{let{$schema:K,...W}=G;return{type:"json",schema:{$schema:"http://json-schema.org/draft-07/schema#",type:"object",properties:{elements:{type:"array",items:W}},required:["elements"],additionalProperties:!1},...X!=null&&{name:X},...Q!=null&&{description:Q}}}),async parseCompleteOutput({text:G},K){let W=await oQ({text:G});if(!W.success)throw new n3({message:"No object generated: could not parse the response.",cause:W.error,text:G,response:K.response,usage:K.usage,finishReason:K.finishReason});let Z=W.value;if(Z==null||typeof Z!=="object"||!("elements"in Z)||!Array.isArray(Z.elements))throw new n3({message:"No object generated: response did not match schema.",cause:new rQ({value:Z,cause:"response must be an object with an elements array"}),text:G,response:K.response,usage:K.usage,finishReason:K.finishReason});for(let H of Z.elements){let F=await $Q({value:H,schema:J});if(!F.success)throw new n3({message:"No object generated: response did not match schema.",cause:F.error,text:G,response:K.response,usage:K.usage,finishReason:K.finishReason})}return Z.elements},async parsePartialOutput({text:G}){let K=await e2(G);switch(K.state){case"failed-parse":case"undefined-input":return;case"repaired-parse":case"successful-parse":{let W=K.value;if(W==null||typeof W!=="object"||!("elements"in W)||!Array.isArray(W.elements))return;let Z=K.state==="repaired-parse"&&W.elements.length>0?W.elements.slice(0,-1):W.elements,H=[];for(let F of Z){let V=await $Q({value:F,schema:J});if(V.success)H.push(V.value)}return{partial:H}}}},createElementStreamTransform(){let G=0;return new TransformStream({transform({partialOutput:K},W){if(K!=null)for(;G<K.length;G++)W.enqueue(K[G])}})}}},V31=({options:Y,name:X,description:Q})=>{return{name:"choice",responseFormat:Promise.resolve({type:"json",schema:{$schema:"http://json-schema.org/draft-07/schema#",type:"object",properties:{result:{type:"string",enum:Y}},required:["result"],additionalProperties:!1},...X!=null&&{name:X},...Q!=null&&{description:Q}}),async parseCompleteOutput({text:J},G){let K=await oQ({text:J});if(!K.success)throw new n3({message:"No object generated: could not parse the response.",cause:K.error,text:J,response:G.response,usage:G.usage,finishReason:G.finishReason});let W=K.value;if(W==null||typeof W!=="object"||!("result"in W)||typeof W.result!=="string"||!Y.includes(W.result))throw new n3({message:"No object generated: response did not match schema.",cause:new rQ({value:W,cause:"response must be an object that contains a choice value."}),text:J,response:G.response,usage:G.usage,finishReason:G.finishReason});return W.result},async parsePartialOutput({text:J}){let G=await e2(J);switch(G.state){case"failed-parse":case"undefined-input":return;case"repaired-parse":case"successful-parse":{let K=G.value;if(K==null||typeof K!=="object"||!("result"in K)||typeof K.result!=="string")return;let W=Y.filter((Z)=>Z.startsWith(K.result));if(G.state==="successful-parse")return W.includes(K.result)?{partial:K.result}:void 0;else return W.length===1?{partial:W[0]}:void 0}}},createElementStreamTransform(){return}}},$31=({name:Y,description:X}={})=>{return{name:"json",responseFormat:Promise.resolve({type:"json",...Y!=null&&{name:Y},...X!=null&&{description:X}}),async parseCompleteOutput({text:Q},J){let G=await oQ({text:Q});if(!G.success)throw new n3({message:"No object generated: could not parse the response.",cause:G.error,text:Q,response:J.response,usage:J.usage,finishReason:J.finishReason});return G.value},async parsePartialOutput({text:Q}){let J=await e2(Q);switch(J.state){case"failed-parse":case"undefined-input":return;case"repaired-parse":case"successful-parse":return J.value===void 0?void 0:{partial:J.value}}},createElementStreamTransform(){return}}},EE6=class{constructor({content:Y,finishReason:X,rawFinishReason:Q,usage:J,warnings:G,request:K,response:W,providerMetadata:Z}){this.content=Y,this.finishReason=X,this.rawFinishReason=Q,this.usage=J,this.warnings=G,this.request=K,this.response=W,this.providerMetadata=Z}get text(){return this.content.filter((Y)=>Y.type==="text").map((Y)=>Y.text).join("")}get reasoning(){return this.content.filter((Y)=>Y.type==="reasoning")}get reasoningText(){return this.reasoning.length===0?void 0:this.reasoning.map((Y)=>Y.text).join("")}get files(){return this.content.filter((Y)=>Y.type==="file").map((Y)=>Y.file)}get sources(){return this.content.filter((Y)=>Y.type==="source")}get toolCalls(){return this.content.filter((Y)=>Y.type==="tool-call")}get staticToolCalls(){return this.toolCalls.filter((Y)=>Y.dynamic!==!0)}get dynamicToolCalls(){return this.toolCalls.filter((Y)=>Y.dynamic===!0)}get toolResults(){return this.content.filter((Y)=>Y.type==="tool-result")}get staticToolResults(){return this.toolResults.filter((Y)=>Y.dynamic!==!0)}get dynamicToolResults(){return this.toolResults.filter((Y)=>Y.dynamic===!0)}},q31,z31=class{constructor(Y){this.steps=Y.steps,this._output=Y.output,this.totalUsage=Y.totalUsage}get finalStep(){return this.steps[this.steps.length-1]}get content(){return this.finalStep.content}get text(){return this.finalStep.text}get files(){return this.finalStep.files}get reasoningText(){return this.finalStep.reasoningText}get reasoning(){return this.finalStep.reasoning}get toolCalls(){return this.finalStep.toolCalls}get staticToolCalls(){return this.finalStep.staticToolCalls}get dynamicToolCalls(){return this.finalStep.dynamicToolCalls}get toolResults(){return this.finalStep.toolResults}get staticToolResults(){return this.finalStep.staticToolResults}get dynamicToolResults(){return this.finalStep.dynamicToolResults}get sources(){return this.finalStep.sources}get finishReason(){return this.finalStep.finishReason}get rawFinishReason(){return this.finalStep.rawFinishReason}get warnings(){return this.finalStep.warnings}get providerMetadata(){return this.finalStep.providerMetadata}get response(){return this.finalStep.response}get request(){return this.finalStep.request}get usage(){return this.finalStep.usage}get experimental_output(){return this.output}get output(){if(this._output==null)throw new _26;return this._output}},jE6,SE6,wE8,I31,j31=class{constructor({model:Y,telemetry:X,headers:Q,settings:J,maxRetries:G,abortSignal:K,stepTimeoutMs:W,stepAbortController:Z,chunkTimeoutMs:H,chunkAbortController:F,system:V,prompt:$,messages:q,tools:B,toolChoice:D,transforms:O,activeTools:L,repairToolCall:w,stopConditions:I,output:T,providerOptions:P,prepareStep:A,includeRawChunks:R,now:j,generateId:v,onChunk:y,onError:f,onFinish:h,onAbort:s,onStepFinish:g,experimental_context:k,download:b}){this._totalUsage=new Uq,this._finishReason=new Uq,this._rawFinishReason=new Uq,this._steps=new Uq,this.outputSpecification=T,this.includeRawChunks=R,this.tools=B;let Y0,p=[],W0=[],B0=void 0,J0=void 0,D0=void 0,E0={},h0=[],F6=[],w0=new Map,K0,v0={},u6={},m6=new TransformStream({async transform(z6,y6){var t6,E6,Z6,T0;y6.enqueue(z6);let{part:C0}=z6;if(C0.type==="text-delta"||C0.type==="reasoning-delta"||C0.type==="source"||C0.type==="tool-call"||C0.type==="tool-result"||C0.type==="tool-input-start"||C0.type==="tool-input-delta"||C0.type==="raw")await(y==null?void 0:y({chunk:C0}));if(C0.type==="error")await f({error:VE6(C0.error)});if(C0.type==="text-start")v0[C0.id]={type:"text",text:"",providerMetadata:C0.providerMetadata},p.push(v0[C0.id]);if(C0.type==="text-delta"){let Y4=v0[C0.id];if(Y4==null){y6.enqueue({part:{type:"error",error:`text part ${C0.id} not found`},partialOutput:void 0});return}Y4.text+=C0.text,Y4.providerMetadata=(t6=C0.providerMetadata)!=null?t6:Y4.providerMetadata}if(C0.type==="text-end"){let Y4=v0[C0.id];if(Y4==null){y6.enqueue({part:{type:"error",error:`text part ${C0.id} not found`},partialOutput:void 0});return}Y4.providerMetadata=(E6=C0.providerMetadata)!=null?E6:Y4.providerMetadata,delete v0[C0.id]}if(C0.type==="reasoning-start")u6[C0.id]={type:"reasoning",text:"",providerMetadata:C0.providerMetadata},p.push(u6[C0.id]);if(C0.type==="reasoning-delta"){let Y4=u6[C0.id];if(Y4==null){y6.enqueue({part:{type:"error",error:`reasoning part ${C0.id} not found`},partialOutput:void 0});return}Y4.text+=C0.text,Y4.providerMetadata=(Z6=C0.providerMetadata)!=null?Z6:Y4.providerMetadata}if(C0.type==="reasoning-end"){let Y4=u6[C0.id];if(Y4==null){y6.enqueue({part:{type:"error",error:`reasoning part ${C0.id} not found`},partialOutput:void 0});return}Y4.providerMetadata=(T0=C0.providerMetadata)!=null?T0:Y4.providerMetadata,delete u6[C0.id]}if(C0.type==="file")p.push({type:"file",file:C0.file});if(C0.type==="source")p.push(C0);if(C0.type==="tool-call")p.push(C0);if(C0.type==="tool-result"&&!C0.preliminary)p.push(C0);if(C0.type==="tool-approval-request")p.push(C0);if(C0.type==="tool-error")p.push(C0);if(C0.type==="start-step")p=[],u6={},v0={},E0=C0.request,h0=C0.warnings;if(C0.type==="finish-step"){let Y4=await fW0({content:p,tools:B}),B4=new EE6({content:p,finishReason:C0.finishReason,rawFinishReason:C0.rawFinishReason,usage:C0.usage,warnings:h0,request:E0,response:{...C0.response,messages:[...W0,...Y4]},providerMetadata:C0.providerMetadata});await(g==null?void 0:g(B4)),gW0({warnings:h0,provider:Y.provider,model:Y.modelId}),F6.push(B4),W0.push(...Y4),Y0.resolve()}if(C0.type==="finish")D0=C0.totalUsage,B0=C0.finishReason,J0=C0.rawFinishReason},async flush(z6){try{if(F6.length===0){let Z6=(K==null?void 0:K.aborted)?K.reason:new _26({message:"No output generated. Check the stream for errors."});y0._finishReason.reject(Z6),y0._rawFinishReason.reject(Z6),y0._totalUsage.reject(Z6),y0._steps.reject(Z6);return}let y6=B0!=null?B0:"other",t6=D0!=null?D0:RW0();y0._finishReason.resolve(y6),y0._rawFinishReason.resolve(J0),y0._totalUsage.resolve(t6),y0._steps.resolve(F6);let E6=F6[F6.length-1];await(h==null?void 0:h({finishReason:E6.finishReason,rawFinishReason:E6.rawFinishReason,totalUsage:t6,usage:E6.usage,content:E6.content,text:E6.text,reasoningText:E6.reasoningText,reasoning:E6.reasoning,files:E6.files,sources:E6.sources,toolCalls:E6.toolCalls,staticToolCalls:E6.staticToolCalls,dynamicToolCalls:E6.dynamicToolCalls,toolResults:E6.toolResults,staticToolResults:E6.staticToolResults,dynamicToolResults:E6.dynamicToolResults,request:E6.request,response:E6.response,warnings:E6.warnings,providerMetadata:E6.providerMetadata,steps:F6,experimental_context:k})),K0.setAttributes(await _W({telemetry:X,attributes:{"ai.response.finishReason":y6,"ai.response.text":{output:()=>E6.text},"ai.response.toolCalls":{output:()=>{var Z6;return((Z6=E6.toolCalls)==null?void 0:Z6.length)?JSON.stringify(E6.toolCalls):void 0}},"ai.response.providerMetadata":JSON.stringify(E6.providerMetadata),"ai.usage.inputTokens":t6.inputTokens,"ai.usage.outputTokens":t6.outputTokens,"ai.usage.totalTokens":t6.totalTokens,"ai.usage.reasoningTokens":t6.reasoningTokens,"ai.usage.cachedInputTokens":t6.cachedInputTokens}}))}catch(y6){z6.error(y6)}finally{K0.end()}}}),b0=P31();this.addStream=b0.addStream,this.closeStream=b0.close;let A0=b0.stream.getReader(),V0=new ReadableStream({async start(z6){z6.enqueue({type:"start"})},async pull(z6){function y6(){s==null||s({steps:F6}),z6.enqueue({type:"abort",...(K==null?void 0:K.reason)!==void 0?{reason:mG(K.reason)}:{}}),z6.close()}try{let{done:t6,value:E6}=await A0.read();if(t6){z6.close();return}if(K==null?void 0:K.aborted){y6();return}z6.enqueue(E6)}catch(t6){if(DK(t6)&&(K==null?void 0:K.aborted))y6();else z6.error(t6)}},cancel(z6){return b0.stream.cancel(z6)}});for(let z6 of O)V0=V0.pipeThrough(z6({tools:B,stopStream(){b0.terminate()}}));this.baseStream=V0.pipeThrough(R31(T!=null?T:nu())).pipeThrough(m6);let{maxRetries:R0,retry:q0}=LE6({maxRetries:G,abortSignal:K}),L0=zE6(X),Y6=yW0(J),f0=$E6({model:Y,telemetry:X,headers:Q,settings:{...Y6,maxRetries:R0}}),y0=this;t2({name:"ai.streamText",attributes:_W({telemetry:X,attributes:{...s2({operationId:"ai.streamText",telemetry:X}),...f0,"ai.prompt":{input:()=>JSON.stringify({system:V,prompt:$,messages:q})}}}),tracer:L0,endWhenDone:!1,fn:async(z6)=>{K0=z6;let y6=await FE6({system:V,prompt:$,messages:q}),t6=y6.messages,E6=[],{approvedToolApprovals:Z6,deniedToolApprovals:T0}=wE6({messages:t6});if(T0.length>0||Z6.length>0){let Y4=[...Z6,...T0].filter((N)=>N.toolCall.providerExecuted),B4=Z6.filter((N)=>!N.toolCall.providerExecuted),M1=T0.filter((N)=>!N.toolCall.providerExecuted),H6=T0.filter((N)=>N.toolCall.providerExecuted),P6,sQ=new ReadableStream({start(N){P6=N}});y0.addStream(sQ);try{for(let _ of[...M1,...H6])P6==null||P6.enqueue({type:"tool-output-denied",toolCallId:_.toolCall.toolCallId,toolName:_.toolCall.toolName});let N=[];if(await Promise.all(B4.map(async(_)=>{let t=await lW0({toolCall:_.toolCall,tools:B,tracer:L0,telemetry:X,messages:t6,abortSignal:K,experimental_context:k,onPreliminaryToolResult:(Z0)=>{P6==null||P6.enqueue(Z0)}});if(t!=null)P6==null||P6.enqueue(t),N.push(t)})),Y4.length>0)E6.push({role:"tool",content:Y4.map((_)=>({type:"tool-approval-response",approvalId:_.approvalResponse.approvalId,approved:_.approvalResponse.approved,reason:_.approvalResponse.reason,providerExecuted:!0}))});if(N.length>0||M1.length>0){let _=[];for(let t of N)_.push({type:"tool-result",toolCallId:t.toolCallId,toolName:t.toolName,output:await wq({toolCallId:t.toolCallId,input:t.input,tool:B==null?void 0:B[t.toolName],output:t.type==="tool-result"?t.output:t.error,errorMode:t.type==="tool-error"?"json":"none"})});for(let t of M1)_.push({type:"tool-result",toolCallId:t.toolCall.toolCallId,toolName:t.toolCall.toolName,output:{type:"execution-denied",reason:t.approvalResponse.reason}});E6.push({role:"tool",content:_})}}finally{P6==null||P6.close()}}W0.push(...E6);async function C0({currentStep:Y4,responseMessages:B4,usage:M1}){var H6,P6,sQ,N,_,t;let Z0=y0.includeRawChunks,U=W!=null?setTimeout(()=>Z.abort(),W):void 0,C=void 0;function i(){if(H!=null){if(C!=null)clearTimeout(C);C=setTimeout(()=>F.abort(),H)}}function X0(){if(C!=null)clearTimeout(C),C=void 0}function Q0(){if(U!=null)clearTimeout(U)}try{Y0=new Uq;let a=[...t6,...B4],k0=await(A==null?void 0:A({model:Y,steps:F6,stepNumber:F6.length,messages:a,experimental_context:k})),C6=cu((H6=k0==null?void 0:k0.model)!=null?H6:Y),e6=await GE6({prompt:{system:(P6=k0==null?void 0:k0.system)!=null?P6:y6.system,messages:(sQ=k0==null?void 0:k0.messages)!=null?sQ:a},supportedUrls:await C6.supportedUrls,download:b}),{toolChoice:g0,tools:b6}=await WE6({tools:B,toolChoice:(N=k0==null?void 0:k0.toolChoice)!=null?N:D,activeTools:(_=k0==null?void 0:k0.activeTools)!=null?_:L});k=(t=k0==null?void 0:k0.experimental_context)!=null?t:k;let c8=iu(P,k0==null?void 0:k0.providerOptions),{result:{stream:n9,response:m4,request:g1},doStreamSpan:EY,startTimestampMs:iG}=await q0(()=>t2({name:"ai.streamText.doStream",attributes:_W({telemetry:X,attributes:{...s2({operationId:"ai.streamText.doStream",telemetry:X}),...f0,"ai.model.provider":C6.provider,"ai.model.id":C6.modelId,"ai.prompt.messages":{input:()=>UE6(e6)},"ai.prompt.tools":{input:()=>b6==null?void 0:b6.map((X4)=>JSON.stringify(X4))},"ai.prompt.toolChoice":{input:()=>g0!=null?JSON.stringify(g0):void 0},"gen_ai.system":C6.provider,"gen_ai.request.model":C6.modelId,"gen_ai.request.frequency_penalty":Y6.frequencyPenalty,"gen_ai.request.max_tokens":Y6.maxOutputTokens,"gen_ai.request.presence_penalty":Y6.presencePenalty,"gen_ai.request.stop_sequences":Y6.stopSequences,"gen_ai.request.temperature":Y6.temperature,"gen_ai.request.top_k":Y6.topK,"gen_ai.request.top_p":Y6.topP}}),tracer:L0,endWhenDone:!1,fn:async(X4)=>({startTimestampMs:j(),doStreamSpan:X4,result:await C6.doStream({...Y6,tools:b6,toolChoice:g0,responseFormat:await(T==null?void 0:T.responseFormat),prompt:e6,providerOptions:c8,abortSignal:K,headers:Q,includeRawChunks:Z0})})})),W6=C31({tools:B,generatorStream:n9,tracer:L0,telemetry:X,system:V,messages:a,repairToolCall:w,abortSignal:K,experimental_context:k,generateId:v}),v4=g1!=null?g1:{},n8=[],XX=[],G6,_4={},G9="other",_J=void 0,tQ=RW0(),Gg,QZ0=!0,aG={id:v(),timestamp:new Date,modelId:Y.modelId},JZ0="";y0.addStream(W6.pipeThrough(new TransformStream({async transform(X4,CY){var TO,PO,XE,i9,Mq;if(i(),X4.type==="stream-start"){G6=X4.warnings;return}if(QZ0){let v9=j()-iG;QZ0=!1,EY.addEvent("ai.stream.firstChunk",{"ai.response.msToFirstChunk":v9}),EY.setAttributes({"ai.response.msToFirstChunk":v9}),CY.enqueue({type:"start-step",request:v4,warnings:G6!=null?G6:[]})}let Wg=X4.type;switch(Wg){case"tool-approval-request":case"text-start":case"text-end":{CY.enqueue(X4);break}case"text-delta":{if(X4.delta.length>0)CY.enqueue({type:"text-delta",id:X4.id,text:X4.delta,providerMetadata:X4.providerMetadata}),JZ0+=X4.delta;break}case"reasoning-start":case"reasoning-end":{CY.enqueue(X4);break}case"reasoning-delta":{CY.enqueue({type:"reasoning-delta",id:X4.id,text:X4.delta,providerMetadata:X4.providerMetadata});break}case"tool-call":{CY.enqueue(X4),n8.push(X4);break}case"tool-result":{if(CY.enqueue(X4),!X4.preliminary)XX.push(X4);break}case"tool-error":{CY.enqueue(X4),XX.push(X4);break}case"response-metadata":{aG={id:(TO=X4.id)!=null?TO:aG.id,timestamp:(PO=X4.timestamp)!=null?PO:aG.timestamp,modelId:(XE=X4.modelId)!=null?XE:aG.modelId};break}case"finish":{tQ=X4.usage,G9=X4.finishReason,_J=X4.rawFinishReason,Gg=X4.providerMetadata;let v9=j()-iG;EY.addEvent("ai.stream.finish"),EY.setAttributes({"ai.response.msToFinish":v9,"ai.response.avgOutputTokensPerSecond":1000*((i9=tQ.outputTokens)!=null?i9:0)/v9});break}case"file":{CY.enqueue(X4);break}case"source":{CY.enqueue(X4);break}case"tool-input-start":{_4[X4.id]=X4.toolName;let v9=B==null?void 0:B[X4.toolName];if((v9==null?void 0:v9.onInputStart)!=null)await v9.onInputStart({toolCallId:X4.id,messages:a,abortSignal:K,experimental_context:k});CY.enqueue({...X4,dynamic:(Mq=X4.dynamic)!=null?Mq:(v9==null?void 0:v9.type)==="dynamic",title:v9==null?void 0:v9.title});break}case"tool-input-end":{delete _4[X4.id],CY.enqueue(X4);break}case"tool-input-delta":{let v9=_4[X4.id],Zg=B==null?void 0:B[v9];if((Zg==null?void 0:Zg.onInputDelta)!=null)await Zg.onInputDelta({inputTextDelta:X4.delta,toolCallId:X4.id,messages:a,abortSignal:K,experimental_context:k});CY.enqueue(X4);break}case"error":{CY.enqueue(X4),G9="error";break}case"raw":{if(Z0)CY.enqueue(X4);break}default:throw Error(`Unknown chunk type: ${Wg}`)}},async flush(X4){let CY=n8.length>0?JSON.stringify(n8):void 0;try{EY.setAttributes(await _W({telemetry:X,attributes:{"ai.response.finishReason":G9,"ai.response.text":{output:()=>JZ0},"ai.response.toolCalls":{output:()=>CY},"ai.response.id":aG.id,"ai.response.model":aG.modelId,"ai.response.timestamp":aG.timestamp.toISOString(),"ai.response.providerMetadata":JSON.stringify(Gg),"ai.usage.inputTokens":tQ.inputTokens,"ai.usage.outputTokens":tQ.outputTokens,"ai.usage.totalTokens":tQ.totalTokens,"ai.usage.reasoningTokens":tQ.reasoningTokens,"ai.usage.cachedInputTokens":tQ.cachedInputTokens,"gen_ai.response.finish_reasons":[G9],"gen_ai.response.id":aG.id,"gen_ai.response.model":aG.modelId,"gen_ai.usage.input_tokens":tQ.inputTokens,"gen_ai.usage.output_tokens":tQ.outputTokens}}))}catch(i9){}finally{EY.end()}X4.enqueue({type:"finish-step",finishReason:G9,rawFinishReason:_J,usage:tQ,providerMetadata:Gg,response:{...aG,headers:m4==null?void 0:m4.headers}});let TO=OE6(M1,tQ);await Y0.promise;let PO=n8.filter((i9)=>i9.providerExecuted!==!0),XE=XX.filter((i9)=>i9.providerExecuted!==!0);for(let i9 of n8){if(i9.providerExecuted!==!0)continue;let Mq=B==null?void 0:B[i9.toolName];if((Mq==null?void 0:Mq.type)==="provider"&&Mq.supportsDeferredResults){if(!XX.some((v9)=>v9.type==="tool-result"&&v9.toolCallId===i9.toolCallId))w0.set(i9.toolCallId,{toolName:i9.toolName})}}for(let i9 of XX)if(i9.type==="tool-result")w0.delete(i9.toolCallId);if(Q0(),X0(),(PO.length>0&&XE.length===PO.length||w0.size>0)&&!await CE6({stopConditions:I,steps:F6})){B4.push(...await fW0({content:F6[F6.length-1].content,tools:B}));try{await C0({currentStep:Y4+1,responseMessages:B4,usage:TO})}catch(i9){X4.enqueue({type:"error",error:i9}),y0.closeStream()}}else X4.enqueue({type:"finish",finishReason:G9,rawFinishReason:_J,totalUsage:TO}),y0.closeStream()}})))}finally{Q0(),X0()}}await C0({currentStep:0,responseMessages:E6,usage:RW0()})}}).catch((z6)=>{y0.addStream(new ReadableStream({start(y6){y6.enqueue({type:"error",error:z6}),y6.close()}})),y0.closeStream()})}get steps(){return this.consumeStream(),this._steps.promise}get finalStep(){return this.steps.then((Y)=>Y[Y.length-1])}get content(){return this.finalStep.then((Y)=>Y.content)}get warnings(){return this.finalStep.then((Y)=>Y.warnings)}get providerMetadata(){return this.finalStep.then((Y)=>Y.providerMetadata)}get text(){return this.finalStep.then((Y)=>Y.text)}get reasoningText(){return this.finalStep.then((Y)=>Y.reasoningText)}get reasoning(){return this.finalStep.then((Y)=>Y.reasoning)}get sources(){return this.finalStep.then((Y)=>Y.sources)}get files(){return this.finalStep.then((Y)=>Y.files)}get toolCalls(){return this.finalStep.then((Y)=>Y.toolCalls)}get staticToolCalls(){return this.finalStep.then((Y)=>Y.staticToolCalls)}get dynamicToolCalls(){return this.finalStep.then((Y)=>Y.dynamicToolCalls)}get toolResults(){return this.finalStep.then((Y)=>Y.toolResults)}get staticToolResults(){return this.finalStep.then((Y)=>Y.staticToolResults)}get dynamicToolResults(){return this.finalStep.then((Y)=>Y.dynamicToolResults)}get usage(){return this.finalStep.then((Y)=>Y.usage)}get request(){return this.finalStep.then((Y)=>Y.request)}get response(){return this.finalStep.then((Y)=>Y.response)}get totalUsage(){return this.consumeStream(),this._totalUsage.promise}get finishReason(){return this.consumeStream(),this._finishReason.promise}get rawFinishReason(){return this.consumeStream(),this._rawFinishReason.promise}teeStream(){let[Y,X]=this.baseStream.tee();return this.baseStream=X,Y}get textStream(){return i2(this.teeStream().pipeThrough(new TransformStream({transform({part:Y},X){if(Y.type==="text-delta")X.enqueue(Y.text)}})))}get fullStream(){return i2(this.teeStream().pipeThrough(new TransformStream({transform({part:Y},X){X.enqueue(Y)}})))}async consumeStream(Y){var X;try{await dW0({stream:this.fullStream,onError:Y==null?void 0:Y.onError})}catch(Q){(X=Y==null?void 0:Y.onError)==null||X.call(Y,Q)}}get experimental_partialOutputStream(){return this.partialOutputStream}get partialOutputStream(){return i2(this.teeStream().pipeThrough(new TransformStream({transform({partialOutput:Y},X){if(Y!=null)X.enqueue(Y)}})))}get elementStream(){var Y,X,Q;let J=(Y=this.outputSpecification)==null?void 0:Y.createElementStreamTransform();if(J==null)throw new UT6({functionality:`element streams in ${(Q=(X=this.outputSpecification)==null?void 0:X.name)!=null?Q:"text"} mode`});return i2(this.teeStream().pipeThrough(J))}get output(){return this.finalStep.then((Y)=>{var X;return((X=this.outputSpecification)!=null?X:nu()).parseCompleteOutput({text:Y.text},{response:Y.response,usage:Y.usage,finishReason:Y.finishReason})})}toUIMessageStream({originalMessages:Y,generateMessageId:X,onFinish:Q,messageMetadata:J,sendReasoning:G=!0,sendSources:K=!1,sendStart:W=!0,sendFinish:Z=!0,onError:H=mG}={}){let F=X!=null?N31({originalMessages:Y,responseMessageId:X}):void 0,V=(q)=>{var B;let D=(B=this.tools)==null?void 0:B[q.toolName];if(D==null)return q.dynamic;return(D==null?void 0:D.type)==="dynamic"?!0:void 0},$=this.fullStream.pipeThrough(new TransformStream({transform:async(q,B)=>{let D=J==null?void 0:J({part:q}),O=q.type;switch(O){case"text-start":{B.enqueue({type:"text-start",id:q.id,...q.providerMetadata!=null?{providerMetadata:q.providerMetadata}:{}});break}case"text-delta":{B.enqueue({type:"text-delta",id:q.id,delta:q.text,...q.providerMetadata!=null?{providerMetadata:q.providerMetadata}:{}});break}case"text-end":{B.enqueue({type:"text-end",id:q.id,...q.providerMetadata!=null?{providerMetadata:q.providerMetadata}:{}});break}case"reasoning-start":{B.enqueue({type:"reasoning-start",id:q.id,...q.providerMetadata!=null?{providerMetadata:q.providerMetadata}:{}});break}case"reasoning-delta":{if(G)B.enqueue({type:"reasoning-delta",id:q.id,delta:q.text,...q.providerMetadata!=null?{providerMetadata:q.providerMetadata}:{}});break}case"reasoning-end":{B.enqueue({type:"reasoning-end",id:q.id,...q.providerMetadata!=null?{providerMetadata:q.providerMetadata}:{}});break}case"file":{B.enqueue({type:"file",mediaType:q.file.mediaType,url:`data:${q.file.mediaType};base64,${q.file.base64}`});break}case"source":{if(K&&q.sourceType==="url")B.enqueue({type:"source-url",sourceId:q.id,url:q.url,title:q.title,...q.providerMetadata!=null?{providerMetadata:q.providerMetadata}:{}});if(K&&q.sourceType==="document")B.enqueue({type:"source-document",sourceId:q.id,mediaType:q.mediaType,title:q.title,filename:q.filename,...q.providerMetadata!=null?{providerMetadata:q.providerMetadata}:{}});break}case"tool-input-start":{let L=V(q);B.enqueue({type:"tool-input-start",toolCallId:q.id,toolName:q.toolName,...q.providerExecuted!=null?{providerExecuted:q.providerExecuted}:{},...q.providerMetadata!=null?{providerMetadata:q.providerMetadata}:{},...L!=null?{dynamic:L}:{},...q.title!=null?{title:q.title}:{}});break}case"tool-input-delta":{B.enqueue({type:"tool-input-delta",toolCallId:q.id,inputTextDelta:q.delta});break}case"tool-call":{let L=V(q);if(q.invalid)B.enqueue({type:"tool-input-error",toolCallId:q.toolCallId,toolName:q.toolName,input:q.input,...q.providerExecuted!=null?{providerExecuted:q.providerExecuted}:{},...q.providerMetadata!=null?{providerMetadata:q.providerMetadata}:{},...L!=null?{dynamic:L}:{},errorText:H(q.error),...q.title!=null?{title:q.title}:{}});else B.enqueue({type:"tool-input-available",toolCallId:q.toolCallId,toolName:q.toolName,input:q.input,...q.providerExecuted!=null?{providerExecuted:q.providerExecuted}:{},...q.providerMetadata!=null?{providerMetadata:q.providerMetadata}:{},...L!=null?{dynamic:L}:{},...q.title!=null?{title:q.title}:{}});break}case"tool-approval-request":{B.enqueue({type:"tool-approval-request",approvalId:q.approvalId,toolCallId:q.toolCall.toolCallId});break}case"tool-result":{let L=V(q);B.enqueue({type:"tool-output-available",toolCallId:q.toolCallId,output:q.output,...q.providerExecuted!=null?{providerExecuted:q.providerExecuted}:{},...q.preliminary!=null?{preliminary:q.preliminary}:{},...L!=null?{dynamic:L}:{}});break}case"tool-error":{let L=V(q);B.enqueue({type:"tool-output-error",toolCallId:q.toolCallId,errorText:H(q.error),...q.providerExecuted!=null?{providerExecuted:q.providerExecuted}:{},...L!=null?{dynamic:L}:{}});break}case"tool-output-denied":{B.enqueue({type:"tool-output-denied",toolCallId:q.toolCallId});break}case"error":{B.enqueue({type:"error",errorText:H(q.error)});break}case"start-step":{B.enqueue({type:"start-step"});break}case"finish-step":{B.enqueue({type:"finish-step"});break}case"start":{if(W)B.enqueue({type:"start",...D!=null?{messageMetadata:D}:{},...F!=null?{messageId:F}:{}});break}case"finish":{if(Z)B.enqueue({type:"finish",finishReason:q.finishReason,...D!=null?{messageMetadata:D}:{}});break}case"abort":{B.enqueue(q);break}case"tool-input-end":break;case"raw":break;default:throw Error(`Unknown chunk type: ${O}`)}if(D!=null&&O!=="start"&&O!=="finish")B.enqueue({type:"message-metadata",messageMetadata:D})}}));return i2(A31({stream:$,messageId:F!=null?F:X==null?void 0:X(),originalMessages:Y,onFinish:Q,onError:H}))}pipeUIMessageStreamToResponse(Y,{originalMessages:X,generateMessageId:Q,onFinish:J,messageMetadata:G,sendReasoning:K,sendSources:W,sendFinish:Z,sendStart:H,onError:F,...V}={}){T31({response:Y,stream:this.toUIMessageStream({originalMessages:X,generateMessageId:Q,onFinish:J,messageMetadata:G,sendReasoning:K,sendSources:W,sendFinish:Z,sendStart:H,onError:F}),...V})}pipeTextStreamToResponse(Y,X){D31({response:Y,textStream:this.textStream,...X})}toUIMessageStreamResponse({originalMessages:Y,generateMessageId:X,onFinish:Q,messageMetadata:J,sendReasoning:G,sendSources:K,sendFinish:W,sendStart:Z,onError:H,...F}={}){return O31({stream:this.toUIMessageStream({originalMessages:Y,generateMessageId:X,onFinish:Q,messageMetadata:J,sendReasoning:G,sendSources:K,sendFinish:W,sendStart:Z,onError:H}),...F})}toTextStreamResponse(Y){return U31({textStream:this.textStream,...Y})}},S31,IE8,jE8,v31="AI_NoSuchProviderError",_31,y31,f31;var LO=S(()=>{H1();H1();w1();w1();w1();w1();w1();w1();w1();w1();w1();w1();w1();w1();w1();w1();IW0();H1();H1();H1();H1();w1();H1();Q1();w1();H1();w1();H1();Q1();Q1();Q1();Q1();Q1();IW0();w1();w1();H1();H1();H1();w1();H1();H1();H1();w1();H1();H1();Q1();H1();H1();H1();w1();H1();Q1();H1();H1();qE6=O4(x0(),1),NO=O4(x0(),1),uK1=Object.defineProperty,z26=`vercel.ai.error.${q26}`,mK1=Symbol.for(z26),nG=class extends M6{constructor({parameter:Y,value:X,message:Q}){super({name:q26,message:`Invalid argument for parameter ${Y}: ${Q}`});this[B26]=!0,this.parameter=Y,this.value=X}static isInstance(Y){return M6.hasMarker(Y,z26)}};B26=mK1;dK1=`vercel.ai.error.${lK1}`,pK1=Symbol.for(dK1);cK1=pK1;D26=`vercel.ai.error.${U26}`,nK1=Symbol.for(D26),iK1=class extends M6{constructor({approvalId:Y}){super({name:U26,message:`Tool approval response references unknown approvalId: "${Y}". No matching tool-approval-request found in message history.`});this[O26]=!0,this.approvalId=Y}static isInstance(Y){return M6.hasMarker(Y,D26)}};O26=nK1;L26=`vercel.ai.error.${N26}`,aK1=Symbol.for(L26),xW0=class extends M6{constructor({toolInput:Y,toolName:X,cause:Q,message:J=`Invalid input for tool ${X}: ${mG(Q)}`}){super({name:N26,message:J,cause:Q});this[w26]=!0,this.toolInput=Y,this.toolName=X}static isInstance(Y){return M6.hasMarker(Y,L26)}};w26=aK1;A26=`vercel.ai.error.${M26}`,rK1=Symbol.for(A26),uW0=class extends M6{constructor({toolCallId:Y,approvalId:X}){super({name:M26,message:`Tool call "${Y}" not found for approval request "${X}".`});this[T26]=!0,this.toolCallId=Y,this.approvalId=X}static isInstance(Y){return M6.hasMarker(Y,A26)}};T26=rK1;E26=`vercel.ai.error.${P26}`,oK1=Symbol.for(E26),X26=class extends M6{constructor({toolCallIds:Y}){super({name:P26,message:`Tool result${Y.length>1?"s are":" is"} missing for tool call${Y.length>1?"s":""} ${Y.join(", ")}.`});this[C26]=!0,this.toolCallIds=Y}static isInstance(Y){return M6.hasMarker(Y,E26)}};C26=oK1;tK1=`vercel.ai.error.${sK1}`,eK1=Symbol.for(tK1);YH1=eK1;R26=`vercel.ai.error.${I26}`,XH1=Symbol.for(R26),n3=class extends M6{constructor({message:Y="No object generated.",cause:X,text:Q,response:J,usage:G,finishReason:K}){super({name:I26,message:Y,cause:X});this[j26]=!0,this.text=Q,this.response=J,this.usage=G,this.finishReason=K}static isInstance(Y){return M6.hasMarker(Y,R26)}};j26=XH1;k26=`vercel.ai.error.${S26}`,QH1=Symbol.for(k26),_26=class extends M6{constructor({message:Y="No output generated.",cause:X}={}){super({name:S26,message:Y,cause:X});this[v26]=!0}static isInstance(Y){return M6.hasMarker(Y,k26)}};v26=QH1;GH1=`vercel.ai.error.${JH1}`,WH1=Symbol.for(GH1);ZH1=WH1;HH1=`vercel.ai.error.${KH1}`,FH1=Symbol.for(HH1);VH1=FH1;f26=`vercel.ai.error.${y26}`,$H1=Symbol.for(f26),_W0=class extends M6{constructor({toolName:Y,availableTools:X=void 0,message:Q=`Model tried to call unavailable tool '${Y}'. ${X===void 0?"No tools are available.":`Available tools: ${X.join(", ")}.`}`}){super({name:y26,message:Q});this[h26]=!0,this.toolName=Y,this.availableTools=X}static isInstance(Y){return M6.hasMarker(Y,f26)}};h26=$H1;x26=`vercel.ai.error.${b26}`,qH1=Symbol.for(x26),zH1=class extends M6{constructor({cause:Y,originalError:X,message:Q=`Error repairing tool call: ${mG(Y)}`}){super({name:b26,message:Q,cause:Y});this[u26]=!0,this.originalError=X}static isInstance(Y){return M6.hasMarker(Y,x26)}};u26=qH1;BH1=class extends M6{constructor(Y){super({name:"AI_UnsupportedModelVersionError",message:`Unsupported model version ${Y.version} for provider "${Y.provider}" and model "${Y.modelId}". AI SDK 5 only supports models that implement specification version "v2".`});this.version=Y.version,this.provider=Y.provider,this.modelId=Y.modelId}},m26=`vercel.ai.error.${g26}`,UH1=Symbol.for(m26),OO=class extends M6{constructor({chunkType:Y,chunkId:X,message:Q}){super({name:g26,message:Q});this[l26]=!0,this.chunkType=Y,this.chunkId=X}static isInstance(Y){return M6.hasMarker(Y,m26)}};l26=UH1;OH1=`vercel.ai.error.${DH1}`,NH1=Symbol.for(OH1);LH1=NH1;p26=`vercel.ai.error.${d26}`,wH1=Symbol.for(p26),MH1=class extends M6{constructor({role:Y,message:X=`Invalid message role: '${Y}'. Must be one of: "system", "user", "assistant", "tool".`}){super({name:d26,message:X});this[c26]=!0,this.role=Y}static isInstance(Y){return M6.hasMarker(Y,p26)}};c26=wH1;i26=`vercel.ai.error.${n26}`,AH1=Symbol.for(i26),TH1=class extends M6{constructor({originalMessage:Y,message:X}){super({name:n26,message:X});this[a26]=!0,this.originalMessage=Y}static isInstance(Y){return M6.hasMarker(Y,i26)}};a26=AH1;o26=`vercel.ai.error.${r26}`,PH1=Symbol.for(o26),Q26=class extends M6{constructor({message:Y,reason:X,errors:Q}){super({name:r26,message:Y});this[s26]=!0,this.reason=X,this.errors=Q,this.lastError=Q[Q.length-1]}static isInstance(Y){return M6.hasMarker(Y,o26)}};s26=PH1;vH1=[{mediaType:"image/gif",bytesPrefix:[71,73,70]},{mediaType:"image/png",bytesPrefix:[137,80,78,71]},{mediaType:"image/jpeg",bytesPrefix:[255,216]},{mediaType:"image/webp",bytesPrefix:[82,73,70,70,null,null,null,null,87,69,66,80]},{mediaType:"image/bmp",bytesPrefix:[66,77]},{mediaType:"image/tiff",bytesPrefix:[73,73,42,0]},{mediaType:"image/tiff",bytesPrefix:[77,77,0,42]},{mediaType:"image/avif",bytesPrefix:[0,0,0,32,102,116,121,112,97,118,105,102]},{mediaType:"image/heic",bytesPrefix:[0,0,0,32,102,116,121,112,104,101,105,99]}];QE6=z.union([z.string(),z.instanceof(Uint8Array),z.instanceof(ArrayBuffer),z.custom((Y)=>{var X,Q;return(Q=(X=globalThis.Buffer)==null?void 0:X.isBuffer(Y))!=null?Q:!1},{message:"Must be a Buffer"})]);o2=z.lazy(()=>z.union([z.null(),z.string(),z.number(),z.boolean(),z.record(z.string(),o2.optional()),z.array(o2)])),r6=z.record(z.string(),z.record(z.string(),o2.optional())),ZE6=z.object({type:z.literal("text"),text:z.string(),providerOptions:r6.optional()}),pH1=z.object({type:z.literal("image"),image:z.union([QE6,z.instanceof(URL)]),mediaType:z.string().optional(),providerOptions:r6.optional()}),KE6=z.object({type:z.literal("file"),data:z.union([QE6,z.instanceof(URL)]),filename:z.string().optional(),mediaType:z.string(),providerOptions:r6.optional()}),cH1=z.object({type:z.literal("reasoning"),text:z.string(),providerOptions:r6.optional()}),nH1=z.object({type:z.literal("tool-call"),toolCallId:z.string(),toolName:z.string(),input:z.unknown(),providerOptions:r6.optional(),providerExecuted:z.boolean().optional()}),iH1=z.discriminatedUnion("type",[z.object({type:z.literal("text"),value:z.string(),providerOptions:r6.optional()}),z.object({type:z.literal("json"),value:o2,providerOptions:r6.optional()}),z.object({type:z.literal("execution-denied"),reason:z.string().optional(),providerOptions:r6.optional()}),z.object({type:z.literal("error-text"),value:z.string(),providerOptions:r6.optional()}),z.object({type:z.literal("error-json"),value:o2,providerOptions:r6.optional()}),z.object({type:z.literal("content"),value:z.array(z.union([z.object({type:z.literal("text"),text:z.string(),providerOptions:r6.optional()}),z.object({type:z.literal("media"),data:z.string(),mediaType:z.string()}),z.object({type:z.literal("file-data"),data:z.string(),mediaType:z.string(),filename:z.string().optional(),providerOptions:r6.optional()}),z.object({type:z.literal("file-url"),url:z.string(),providerOptions:r6.optional()}),z.object({type:z.literal("file-id"),fileId:z.union([z.string(),z.record(z.string(),z.string())]),providerOptions:r6.optional()}),z.object({type:z.literal("image-data"),data:z.string(),mediaType:z.string(),providerOptions:r6.optional()}),z.object({type:z.literal("image-url"),url:z.string(),providerOptions:r6.optional()}),z.object({type:z.literal("image-file-id"),fileId:z.union([z.string(),z.record(z.string(),z.string())]),providerOptions:r6.optional()}),z.object({type:z.literal("custom"),providerOptions:r6.optional()})]))})]),HE6=z.object({type:z.literal("tool-result"),toolCallId:z.string(),toolName:z.string(),output:iH1,providerOptions:r6.optional()}),aH1=z.object({type:z.literal("tool-approval-request"),approvalId:z.string(),toolCallId:z.string()}),rH1=z.object({type:z.literal("tool-approval-response"),approvalId:z.string(),approved:z.boolean(),reason:z.string().optional()}),oH1=z.object({role:z.literal("system"),content:z.string(),providerOptions:r6.optional()}),sH1=z.object({role:z.literal("user"),content:z.union([z.string(),z.array(z.union([ZE6,pH1,KE6]))]),providerOptions:r6.optional()}),tH1=z.object({role:z.literal("assistant"),content:z.union([z.string(),z.array(z.union([ZE6,KE6,cH1,nH1,HE6,aH1]))]),providerOptions:r6.optional()}),eH1=z.object({role:z.literal("tool"),content:z.array(z.union([HE6,rH1])),providerOptions:r6.optional()}),Y31=z.union([oH1,sH1,tH1,eH1]);X31={startSpan(){return pu},startActiveSpan(Y,X,Q,J){if(typeof X==="function")return X(pu);if(typeof Q==="function")return Q(pu);if(typeof J==="function")return J(pu)}},pu={spanContext(){return Q31},setAttribute(){return this},setAttributes(){return this},addEvent(){return this},addLink(){return this},addLinks(){return this},setStatus(){return this},updateName(){return this},end(){return this},isRecording(){return!1},recordException(){return this}},Q31={traceId:"",spanId:"",traceFlags:0};W31=class extends ME6{constructor(Y){super(Y);this.type="file"}};Z31={};gK1(Z31,{array:()=>F31,choice:()=>V31,json:()=>$31,object:()=>H31,text:()=>nu});q31=jW({prefix:"aitxt",size:24});jE6=class extends TransformStream{constructor(){super({transform(Y,X){X.enqueue(`data: ${JSON.stringify(Y)}
|
|
1219
1219
|
|
|
1220
1220
|
`)},flush(Y){Y.enqueue(`data: [DONE]
|
|
1221
1221
|
|
|
1222
|
-
`)}})}},SE6={"content-type":"text/event-stream","cache-control":"no-cache",connection:"keep-alive","x-vercel-ai-ui-message-stream":"v1","x-accel-buffering":"no"};
|
|
1222
|
+
`)}})}},SE6={"content-type":"text/event-stream","cache-control":"no-cache",connection:"keep-alive","x-vercel-ai-ui-message-stream":"v1","x-accel-buffering":"no"};wE8=PY(()=>k9(z.union([z.strictObject({type:z.literal("text-start"),id:z.string(),providerMetadata:r6.optional()}),z.strictObject({type:z.literal("text-delta"),id:z.string(),delta:z.string(),providerMetadata:r6.optional()}),z.strictObject({type:z.literal("text-end"),id:z.string(),providerMetadata:r6.optional()}),z.strictObject({type:z.literal("error"),errorText:z.string()}),z.strictObject({type:z.literal("tool-input-start"),toolCallId:z.string(),toolName:z.string(),providerExecuted:z.boolean().optional(),providerMetadata:r6.optional(),dynamic:z.boolean().optional(),title:z.string().optional()}),z.strictObject({type:z.literal("tool-input-delta"),toolCallId:z.string(),inputTextDelta:z.string()}),z.strictObject({type:z.literal("tool-input-available"),toolCallId:z.string(),toolName:z.string(),input:z.unknown(),providerExecuted:z.boolean().optional(),providerMetadata:r6.optional(),dynamic:z.boolean().optional(),title:z.string().optional()}),z.strictObject({type:z.literal("tool-input-error"),toolCallId:z.string(),toolName:z.string(),input:z.unknown(),providerExecuted:z.boolean().optional(),providerMetadata:r6.optional(),dynamic:z.boolean().optional(),errorText:z.string(),title:z.string().optional()}),z.strictObject({type:z.literal("tool-approval-request"),approvalId:z.string(),toolCallId:z.string()}),z.strictObject({type:z.literal("tool-output-available"),toolCallId:z.string(),output:z.unknown(),providerExecuted:z.boolean().optional(),dynamic:z.boolean().optional(),preliminary:z.boolean().optional()}),z.strictObject({type:z.literal("tool-output-error"),toolCallId:z.string(),errorText:z.string(),providerExecuted:z.boolean().optional(),dynamic:z.boolean().optional()}),z.strictObject({type:z.literal("tool-output-denied"),toolCallId:z.string()}),z.strictObject({type:z.literal("reasoning-start"),id:z.string(),providerMetadata:r6.optional()}),z.strictObject({type:z.literal("reasoning-delta"),id:z.string(),delta:z.string(),providerMetadata:r6.optional()}),z.strictObject({type:z.literal("reasoning-end"),id:z.string(),providerMetadata:r6.optional()}),z.strictObject({type:z.literal("source-url"),sourceId:z.string(),url:z.string(),title:z.string().optional(),providerMetadata:r6.optional()}),z.strictObject({type:z.literal("source-document"),sourceId:z.string(),mediaType:z.string(),title:z.string(),filename:z.string().optional(),providerMetadata:r6.optional()}),z.strictObject({type:z.literal("file"),url:z.string(),mediaType:z.string(),providerMetadata:r6.optional()}),z.strictObject({type:z.custom((Y)=>typeof Y==="string"&&Y.startsWith("data-"),{message:'Type must start with "data-"'}),id:z.string().optional(),data:z.unknown(),transient:z.boolean().optional()}),z.strictObject({type:z.literal("start-step")}),z.strictObject({type:z.literal("finish-step")}),z.strictObject({type:z.literal("start"),messageId:z.string().optional(),messageMetadata:z.unknown().optional()}),z.strictObject({type:z.literal("finish"),finishReason:z.enum(["stop","length","content-filter","tool-calls","error","other"]).optional(),messageMetadata:z.unknown().optional()}),z.strictObject({type:z.literal("abort"),reason:z.string().optional()}),z.strictObject({type:z.literal("message-metadata"),messageMetadata:z.unknown()})])));I31=jW({prefix:"aitxt",size:24});S31=PY(()=>k9(z.array(z.object({id:z.string(),role:z.enum(["system","user","assistant"]),metadata:z.unknown().optional(),parts:z.array(z.union([z.object({type:z.literal("text"),text:z.string(),state:z.enum(["streaming","done"]).optional(),providerMetadata:r6.optional()}),z.object({type:z.literal("reasoning"),text:z.string(),state:z.enum(["streaming","done"]).optional(),providerMetadata:r6.optional()}),z.object({type:z.literal("source-url"),sourceId:z.string(),url:z.string(),title:z.string().optional(),providerMetadata:r6.optional()}),z.object({type:z.literal("source-document"),sourceId:z.string(),mediaType:z.string(),title:z.string(),filename:z.string().optional(),providerMetadata:r6.optional()}),z.object({type:z.literal("file"),mediaType:z.string(),filename:z.string().optional(),url:z.string(),providerMetadata:r6.optional()}),z.object({type:z.literal("step-start")}),z.object({type:z.string().startsWith("data-"),id:z.string().optional(),data:z.unknown()}),z.object({type:z.literal("dynamic-tool"),toolName:z.string(),toolCallId:z.string(),state:z.literal("input-streaming"),input:z.unknown().optional(),providerExecuted:z.boolean().optional(),callProviderMetadata:r6.optional(),output:z.never().optional(),errorText:z.never().optional(),approval:z.never().optional()}),z.object({type:z.literal("dynamic-tool"),toolName:z.string(),toolCallId:z.string(),state:z.literal("input-available"),input:z.unknown(),providerExecuted:z.boolean().optional(),output:z.never().optional(),errorText:z.never().optional(),callProviderMetadata:r6.optional(),approval:z.never().optional()}),z.object({type:z.literal("dynamic-tool"),toolName:z.string(),toolCallId:z.string(),state:z.literal("approval-requested"),input:z.unknown(),providerExecuted:z.boolean().optional(),output:z.never().optional(),errorText:z.never().optional(),callProviderMetadata:r6.optional(),approval:z.object({id:z.string(),approved:z.never().optional(),reason:z.never().optional()})}),z.object({type:z.literal("dynamic-tool"),toolName:z.string(),toolCallId:z.string(),state:z.literal("approval-responded"),input:z.unknown(),providerExecuted:z.boolean().optional(),output:z.never().optional(),errorText:z.never().optional(),callProviderMetadata:r6.optional(),approval:z.object({id:z.string(),approved:z.boolean(),reason:z.string().optional()})}),z.object({type:z.literal("dynamic-tool"),toolName:z.string(),toolCallId:z.string(),state:z.literal("output-available"),input:z.unknown(),providerExecuted:z.boolean().optional(),output:z.unknown(),errorText:z.never().optional(),callProviderMetadata:r6.optional(),preliminary:z.boolean().optional(),approval:z.object({id:z.string(),approved:z.literal(!0),reason:z.string().optional()}).optional()}),z.object({type:z.literal("dynamic-tool"),toolName:z.string(),toolCallId:z.string(),state:z.literal("output-error"),input:z.unknown(),rawInput:z.unknown().optional(),providerExecuted:z.boolean().optional(),output:z.never().optional(),errorText:z.string(),callProviderMetadata:r6.optional(),approval:z.object({id:z.string(),approved:z.literal(!0),reason:z.string().optional()}).optional()}),z.object({type:z.literal("dynamic-tool"),toolName:z.string(),toolCallId:z.string(),state:z.literal("output-denied"),input:z.unknown(),providerExecuted:z.boolean().optional(),output:z.never().optional(),errorText:z.never().optional(),callProviderMetadata:r6.optional(),approval:z.object({id:z.string(),approved:z.literal(!1),reason:z.string().optional()})}),z.object({type:z.string().startsWith("tool-"),toolCallId:z.string(),state:z.literal("input-streaming"),providerExecuted:z.boolean().optional(),callProviderMetadata:r6.optional(),input:z.unknown().optional(),output:z.never().optional(),errorText:z.never().optional(),approval:z.never().optional()}),z.object({type:z.string().startsWith("tool-"),toolCallId:z.string(),state:z.literal("input-available"),providerExecuted:z.boolean().optional(),input:z.unknown(),output:z.never().optional(),errorText:z.never().optional(),callProviderMetadata:r6.optional(),approval:z.never().optional()}),z.object({type:z.string().startsWith("tool-"),toolCallId:z.string(),state:z.literal("approval-requested"),input:z.unknown(),providerExecuted:z.boolean().optional(),output:z.never().optional(),errorText:z.never().optional(),callProviderMetadata:r6.optional(),approval:z.object({id:z.string(),approved:z.never().optional(),reason:z.never().optional()})}),z.object({type:z.string().startsWith("tool-"),toolCallId:z.string(),state:z.literal("approval-responded"),input:z.unknown(),providerExecuted:z.boolean().optional(),output:z.never().optional(),errorText:z.never().optional(),callProviderMetadata:r6.optional(),approval:z.object({id:z.string(),approved:z.boolean(),reason:z.string().optional()})}),z.object({type:z.string().startsWith("tool-"),toolCallId:z.string(),state:z.literal("output-available"),providerExecuted:z.boolean().optional(),input:z.unknown(),output:z.unknown(),errorText:z.never().optional(),callProviderMetadata:r6.optional(),preliminary:z.boolean().optional(),approval:z.object({id:z.string(),approved:z.literal(!0),reason:z.string().optional()}).optional()}),z.object({type:z.string().startsWith("tool-"),toolCallId:z.string(),state:z.literal("output-error"),providerExecuted:z.boolean().optional(),input:z.unknown(),rawInput:z.unknown().optional(),output:z.never().optional(),errorText:z.string(),callProviderMetadata:r6.optional(),approval:z.object({id:z.string(),approved:z.literal(!0),reason:z.string().optional()}).optional()}),z.object({type:z.string().startsWith("tool-"),toolCallId:z.string(),state:z.literal("output-denied"),providerExecuted:z.boolean().optional(),input:z.unknown(),output:z.never().optional(),errorText:z.never().optional(),callProviderMetadata:r6.optional(),approval:z.object({id:z.string(),approved:z.literal(!1),reason:z.string().optional()})})])).nonempty("Message must contain at least one part")})).nonempty("Messages array must not be empty")));IE8=jW({prefix:"aiobj",size:24}),jE8=jW({prefix:"aiobj",size:24});_31=`vercel.ai.error.${v31}`,y31=Symbol.for(_31);f31=y31});function bE6(Y){if(!Y?.trim())return`You are an AI assistant running in an MCP Mesh environment.
|
|
1223
1223
|
|
|
1224
1224
|
## About MCP Mesh
|
|
1225
1225
|
|