@decocms/mesh 2.1.2 → 2.3.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-DiqlNboz.js → AlertCircle-DXeUBMMV.js} +1 -1
- package/dist/client/assets/{ArrowLeft-C4VtVMs2.js → ArrowLeft-CHms5IDZ.js} +1 -1
- package/dist/client/assets/{ChevronDown-CcUg3X_Y.js → ChevronDown-D_RI3QId.js} +1 -1
- package/dist/client/assets/{ChevronRight-DoX6pxYj.js → ChevronRight-Co0CYybf.js} +1 -1
- package/dist/client/assets/{Copy01-BJql3T8w.js → Copy01-DtEmhPRy.js} +1 -1
- package/dist/client/assets/{DotsHorizontal-wWvFFsxa.js → DotsHorizontal-D6tnU4x3.js} +1 -1
- package/dist/client/assets/{DotsVertical-C_psDJy3.js → DotsVertical-0cxI0bL1.js} +1 -1
- package/dist/client/assets/{File06-CfmzgkCD.js → File06-CHljse_4.js} +1 -1
- package/dist/client/assets/{FilterLines-MNaVyood.js → FilterLines-D8f3CcdV.js} +1 -1
- package/dist/client/assets/{FlipBackward-qa1GrgeQ.js → FlipBackward-D5554Tq0.js} +1 -1
- package/dist/client/assets/{GitBranch01-Cy-aTD__.js → GitBranch01-ifZx3q2P.js} +1 -1
- package/dist/client/assets/{Grid01-400pwqps.js → Grid01-BkXNUPKP.js} +1 -1
- package/dist/client/assets/{Inbox01-DQ40if0u.js → Inbox01-BRnObBvE.js} +1 -1
- package/dist/client/assets/{InfoCircle-DbgHopMm.js → InfoCircle-BQcqprrb.js} +1 -1
- package/dist/client/assets/{Key01-CXPRpQE9.js → Key01--k0ZWk6W.js} +1 -1
- package/dist/client/assets/{LinkExternal01-BJZvPGF2.js → LinkExternal01-CV73epA_.js} +1 -1
- package/dist/client/assets/{Loading01-DSWhKp36.js → Loading01-DyUXwwJo.js} +1 -1
- package/dist/client/assets/{Lock01-Cw5Gl3NV.js → Lock01-BfCui4kz.js} +1 -1
- package/dist/client/assets/{Play-18tBEZWZ.js → Play-DJJ8PlRK.js} +1 -1
- package/dist/client/assets/{Plus-SMn8MQ-H.js → Plus-E2WzURUp.js} +1 -1
- package/dist/client/assets/{Terminal-yR92omIF.js → Terminal-Cw-4-lMB.js} +1 -1
- package/dist/client/assets/{Trash01-DaFJSHZu.js → Trash01-D-P4V3G1.js} +1 -1
- package/dist/client/assets/{X-q_t7ZUi-.js → X-BF3Sfcyb.js} +1 -1
- package/dist/client/assets/{XClose-2lFeEEkz.js → XClose-CpcBqir3.js} +1 -1
- package/dist/client/assets/{alert-dialog-BOjS3GrS.js → alert-dialog-CSRg3DKa.js} +2 -2
- package/dist/client/assets/{auth-BvEfLR40.js → auth-JzdxV-fu.js} +1 -1
- package/dist/client/assets/{auth-catchall-qnrnPCT6.js → auth-catchall-BBBJeiu3.js} +1 -1
- package/dist/client/assets/{avatar-D8KYLrun.js → avatar-Dsh5Wbtz.js} +1 -1
- package/dist/client/assets/{badge-DHFuTJNA.js → badge-LSkW7opb.js} +1 -1
- package/dist/client/assets/{card-CSWNwOPv.js → card-QPxgCFPw.js} +1 -1
- package/dist/client/assets/{checkbox-D6eJScSi.js → checkbox-BUUCBZC2.js} +1 -1
- package/dist/client/assets/{collection-detail-cLR1iiCF.js → collection-detail-CVh1YqGQ.js} +18 -18
- package/dist/client/assets/{collection-display-button-DWBgVnY5.js → collection-display-button-DfZy-2Bx.js} +1 -1
- package/dist/client/assets/{collection-header-BYkZ9Trb.js → collection-header-Dx4LZkvi.js} +1 -1
- package/dist/client/assets/{collection-page-BjyL0NfT.js → collection-page-TcKt3kdO.js} +1 -1
- package/dist/client/assets/{collection-search-BhTsTIQF.js → collection-search-vEteyDuS.js} +1 -1
- package/dist/client/assets/{collection-tab-ByD_c7B5.js → collection-tab-DeVla0MQ.js} +1 -1
- package/dist/client/assets/{collection-table-wrapper-G4nlfvjF.js → collection-table-wrapper-CsQn07sV.js} +1 -1
- package/dist/client/assets/{connection-card-BRub-GLZ.js → connection-card-K0ovfTEr.js} +1 -1
- package/dist/client/assets/connection-detail-CLXDg7pJ.js +1 -0
- package/dist/client/assets/{connections-BEv7u43V.js → connections-dNJZz5jG.js} +1 -1
- package/dist/client/assets/constants-C_avdhXZ.js +1 -0
- package/dist/client/assets/{create-organization-dialog-CahJq4TL.js → create-organization-dialog-DN0lzByn.js} +1 -1
- package/dist/client/assets/{dialog-Ay6PD9W0.js → dialog-D8S6-YZF.js} +1 -1
- package/dist/client/assets/{dropdown-menu-CX0_ej-t.js → dropdown-menu-CGafPORa.js} +1 -1
- package/dist/client/assets/{empty-state-DOXYCllo.js → empty-state-CqggnC_o.js} +1 -1
- package/dist/client/assets/{env-vars-editor-DB_yBian.js → env-vars-editor-CEAoKeQ2.js} +1 -1
- package/dist/client/assets/{error-boundary-BITgBYMF.js → error-boundary-Ck-lRN3L.js} +1 -1
- package/dist/client/assets/{extract-connection-data-CaZ0wil0.js → extract-connection-data-BteJtgZS.js} +1 -1
- package/dist/client/assets/{form-CTm5F5lc.js → form-dTqSUime.js} +1 -1
- package/dist/client/assets/gateway-detail-humgpum1.js +1 -0
- package/dist/client/assets/gateway-selector-CODNjgnA.js +1 -0
- package/dist/client/assets/gateways-DD-gvv9O.js +1 -0
- package/dist/client/assets/{home-BCE1FamF.js → home-D_lVda9v.js} +1 -1
- package/dist/client/assets/{index-DU53zBhA.css → index-BV_tzcZC.css} +1 -1
- package/dist/client/assets/index-CFeSKF3l.js +25 -0
- package/dist/client/assets/{index-DskbBe5h.js → index-ChnT3fBd.js} +1 -1
- package/dist/client/assets/{index-Tg8Sdg8t.js → index-DiF8CL3u.js} +33 -25
- package/dist/client/assets/{input-DZxsngZP.js → input-BuOiQGOu.js} +1 -1
- package/dist/client/assets/{layout-Brqmaefj.js → layout-BOjqfwmO.js} +1 -1
- package/dist/client/assets/{lazy-highlighter-CiDPKksG.js → lazy-highlighter-btnhhrYU.js} +1 -1
- package/dist/client/assets/localstorage-keys-USoCnJIa.js +1 -0
- package/dist/client/assets/{login-DTvg0d0e.js → login-CuBnBZEe.js} +1 -1
- package/dist/client/assets/{mcp-oauth-SMi_MNm0.js → mcp-oauth-CskLeoO3.js} +1 -1
- package/dist/client/assets/{mcp-server-detail-Dp4c82jn.js → mcp-server-detail-B7s5noI4.js} +1 -1
- package/dist/client/assets/{members-Antj9sp8.js → members-Cvuy2JCh.js} +1 -1
- package/dist/client/assets/{monaco-editor-DzF_l7qF.js → monaco-editor-CiJfhzbq.js} +1 -1
- package/dist/client/assets/{monitoring-CFWL1rLz.js → monitoring-DwzHbwJg.js} +3 -3
- package/dist/client/assets/{oauth-callback-CG8hLD-b.js → oauth-callback-BGIzmsev.js} +1 -1
- package/dist/client/assets/page-BtiZ3n2f.js +35 -0
- package/dist/client/assets/{page-BvT1wvbD.js → page-DoOrIVVb.js} +1 -1
- package/dist/client/assets/{pin-to-sidebar-button-fGogNndB.js → pin-to-sidebar-button-CYEDWqzI.js} +1 -1
- package/dist/client/assets/{popover-D8pPVQL_.js → popover-pQgQXOgc.js} +1 -1
- package/dist/client/assets/{project-context-provider-DzGl09z5.js → project-context-provider-voulb09J.js} +1 -1
- package/dist/client/assets/{resizable-RYzDqksM.js → resizable-CztH1weh.js} +1 -1
- package/dist/client/assets/{resource-tabs-Dx00akPb.js → resource-tabs-C1QVVa2Y.js} +1 -1
- package/dist/client/assets/{select-DXarH3zI.js → select-PyI6qoPK.js} +1 -1
- package/dist/client/assets/{settings-CppuOJKP.js → settings-D4bz3IoM.js} +1 -1
- package/dist/client/assets/shell-layout-DrqEi5GX.js +1 -0
- package/dist/client/assets/{spinner-BlgPNYJ_.js → spinner-CUjWMJ25.js} +1 -1
- package/dist/client/assets/{switch-D8JX4qkY.js → switch-BUrs1zGT.js} +1 -1
- package/dist/client/assets/{textarea-B4gwvsMJ.js → textarea-C-SMKRrf.js} +1 -1
- package/dist/client/assets/{thread-history-popover-BGdJj9Uf.js → thread-history-popover-CUoC6RkH.js} +82 -45
- package/dist/client/assets/{tools-list-PNSOJy0p.js → tools-list-2AMuZ71A.js} +1 -1
- package/dist/client/assets/{use-binding-BrFwEM85.js → use-binding-wgni7p1R.js} +1 -1
- package/dist/client/assets/use-connection-resources-B6jBT5WO.js +1 -0
- package/dist/client/assets/{use-connection-C0rtvbAv.js → use-connection-vXncoL0L.js} +1 -1
- package/dist/client/assets/{use-gateway-XK2Ec2c7.js → use-gateway-DQcKtw3G.js} +1 -1
- package/dist/client/assets/use-gateway-system-prompt-Kvvj3--r.js +1 -0
- package/dist/client/assets/{use-list-state-CaOiitHv.js → use-list-state-9iOh08du.js} +1 -1
- package/dist/client/assets/{use-mcp-DP2e7Pak.js → use-mcp-wA-EhDqK.js} +1 -1
- package/dist/client/assets/{use-members-BZIlp51_.js → use-members-DIGeamzW.js} +1 -1
- package/dist/client/assets/{use-mobile-C9ZrGbF1.js → use-mobile-CmuJQOTA.js} +1 -1
- package/dist/client/assets/{use-organization-settings-CpuYghUf.js → use-organization-settings-DXtjOgpc.js} +1 -1
- package/dist/client/assets/{use-tool-call-BLCuCQA5.js → use-tool-call-lEejD5mF.js} +1 -1
- package/dist/client/assets/useQueries-B9u0Cgcd.js +1 -0
- package/dist/client/assets/useQuery-BvwrcAMt.js +1 -0
- package/dist/client/assets/{value-C6pOmVvH.js → value-D-1VHoAx.js} +1 -1
- package/dist/client/assets/{view-mode-toggle-BegVAMeC.js → view-mode-toggle-CPI0yzzQ.js} +1 -1
- package/dist/client/assets/{workflow-ChKb4zdL.js → workflow-DkAjbOiU.js} +1 -1
- package/dist/client/index.html +2 -2
- package/dist/server/cli.js +132 -132
- package/dist/server/migrate.js +2 -2
- package/dist/server/server.js +125 -125
- package/package.json +1 -1
- package/dist/client/assets/connection-detail-DgCsw2FN.js +0 -1
- package/dist/client/assets/constants-CxNag89_.js +0 -1
- package/dist/client/assets/formatDistanceToNow-Da1WFNC1.js +0 -1
- package/dist/client/assets/gateway-detail-ZvOmrysO.js +0 -1
- package/dist/client/assets/gateway-selector-zAzGBjF_.js +0 -1
- package/dist/client/assets/gateways-JihiLKrE.js +0 -1
- package/dist/client/assets/index-DOV_cVSz.js +0 -25
- package/dist/client/assets/localstorage-keys-Bmzia9Ql.js +0 -1
- package/dist/client/assets/page-CBEZJuHw.js +0 -35
- package/dist/client/assets/shell-layout-9hZXlinq.js +0 -19
- package/dist/client/assets/use-connection-resources-85AsmF-4.js +0 -1
- package/dist/client/assets/useQuery-CDC7rIFj.js +0 -1
package/dist/server/migrate.js
CHANGED
|
@@ -211,7 +211,7 @@ data:
|
|
|
211
211
|
|
|
212
212
|
`,X.enqueue(Q.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(X,Q){try{let J=X.headers.get("accept");if(!J?.includes("application/json")||!J.includes("text/event-stream"))return this.createJsonErrorResponse(406,-32000,"Not Acceptable: Client must accept both application/json and text/event-stream");let Y=X.headers.get("content-type");if(!Y||!Y.includes("application/json"))return this.createJsonErrorResponse(415,-32000,"Unsupported Media Type: Content-Type must be application/json");let G={headers:Object.fromEntries(X.headers.entries())},$;if(Q?.parsedBody!==void 0)$=Q.parsedBody;else try{$=await X.json()}catch{return this.createJsonErrorResponse(400,-32700,"Parse error: Invalid JSON")}let W;try{if(Array.isArray($))W=$.map((j)=>YJ.parse(j));else W=[YJ.parse($)]}catch{return this.createJsonErrorResponse(400,-32700,"Parse error: Invalid JSON-RPC message")}let H=W.some(Ib);if(H){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(!H){let j=this.validateSession(X);if(j)return j;let O=this.validateProtocolVersion(X);if(O)return O}if(!W.some(LY)){for(let j of W)this.onmessage?.(j,{authInfo:Q?.authInfo,requestInfo:G});return new Response(null,{status:202})}let Z=crypto.randomUUID(),F=W.find((j)=>Ib(j)),V=F?F.params.protocolVersion:X.headers.get("mcp-protocol-version")??AX0;if(this._enableJsonResponse)return new Promise((j)=>{this._streamMapping.set(Z,{resolveJson:j,cleanup:()=>{this._streamMapping.delete(Z)}});for(let O of W)if(LY(O))this._requestToStreamMapping.set(O.id,Z);for(let O of W)this.onmessage?.(O,{authInfo:Q?.authInfo,requestInfo:G})});let q=new TextEncoder,B,L=new ReadableStream({start:(j)=>{B=j},cancel:()=>{this._streamMapping.delete(Z)}}),D={"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"};if(this.sessionId!==void 0)D["mcp-session-id"]=this.sessionId;for(let j of W)if(LY(j))this._streamMapping.set(Z,{controller:B,encoder:q,cleanup:()=>{this._streamMapping.delete(Z);try{B.close()}catch{}}}),this._requestToStreamMapping.set(j.id,Z);await this.writePrimingEvent(B,q,Z,V);for(let j of W){let O,T;if(LY(j)&&this._eventStore&&V>="2025-11-25")O=()=>{this.closeSSEStream(j.id)},T=()=>{this.closeStandaloneSSEStream()};this.onmessage?.(j,{authInfo:Q?.authInfo,requestInfo:G,closeSSEStream:O,closeStandaloneSSEStream:T})}return new Response(L,{status:200,headers:D})}catch(J){return this.onerror?.(J),this.createJsonErrorResponse(400,-32700,"Parse error",{data:String(J)})}}async handleDeleteRequest(X){let Q=this.validateSession(X);if(Q)return Q;let J=this.validateProtocolVersion(X);if(J)return J;return await Promise.resolve(this._onsessionclosed?.(this.sessionId)),await this.close(),new Response(null,{status:200})}validateSession(X){if(this.sessionIdGenerator===void 0)return;if(!this._initialized)return this.createJsonErrorResponse(400,-32000,"Bad Request: Server not initialized");let Q=X.headers.get("mcp-session-id");if(!Q)return this.createJsonErrorResponse(400,-32000,"Bad Request: Mcp-Session-Id header is required");if(Q!==this.sessionId)return this.createJsonErrorResponse(404,-32001,"Session not found");return}validateProtocolVersion(X){let Q=X.headers.get("mcp-protocol-version");if(Q!==null&&!dW.includes(Q))return this.createJsonErrorResponse(400,-32000,`Bad Request: Unsupported protocol version: ${Q} (supported versions: ${dW.join(", ")})`);return}async close(){this._streamMapping.forEach(({cleanup:X})=>{X()}),this._streamMapping.clear(),this._requestResponseMap.clear(),this.onclose?.()}closeSSEStream(X){let Q=this._requestToStreamMapping.get(X);if(!Q)return;let J=this._streamMapping.get(Q);if(J)J.cleanup()}closeStandaloneSSEStream(){let X=this._streamMapping.get(this._standaloneSseStreamId);if(X)X.cleanup()}async send(X,Q){let J=Q?.relatedRequestId;if(q9(X)||SK(X))J=X.id;if(J===void 0){if(q9(X)||SK(X))throw Error("Cannot send a response on a standalone SSE stream unless resuming a previous client request");let $;if(this._eventStore)$=await this._eventStore.storeEvent(this._standaloneSseStreamId,X);let W=this._streamMapping.get(this._standaloneSseStreamId);if(W===void 0)return;if(W.controller&&W.encoder)this.writeSSEEvent(W.controller,W.encoder,X,$);return}let Y=this._requestToStreamMapping.get(J);if(!Y)throw Error(`No connection established for request ID: ${String(J)}`);let G=this._streamMapping.get(Y);if(!this._enableJsonResponse&&G?.controller&&G?.encoder){let $;if(this._eventStore)$=await this._eventStore.storeEvent(Y,X);this.writeSSEEvent(G.controller,G.encoder,X,$)}if(q9(X)||SK(X)){this._requestResponseMap.set(J,X);let $=Array.from(this._requestToStreamMapping.entries()).filter(([H,K])=>K===Y).map(([H])=>H);if($.every((H)=>this._requestResponseMap.has(H))){if(!G)throw Error(`No connection established for request ID: ${String(J)}`);if(this._enableJsonResponse&&G.resolveJson){let H={"Content-Type":"application/json"};if(this.sessionId!==void 0)H["mcp-session-id"]=this.sessionId;let K=$.map((Z)=>this._requestResponseMap.get(Z));if(K.length===1)G.resolveJson(new Response(JSON.stringify(K[0]),{status:200,headers:H}));else G.resolveJson(new Response(JSON.stringify(K),{status:200,headers:H}))}else G.cleanup();for(let H of $)this._requestResponseMap.delete(H),this._requestToStreamMapping.delete(H)}}}}var M50=m(()=>{GJ()});var w50=(...X)=>{return function(J,Y){let G=($)=>{let W=X[$];if(!W)return Y();return W(J,()=>G($+1))};return G(0)}};class P50{config;tools=[];callToolMiddlewares=[];constructor(X){this.config={...X,capabilities:X.capabilities??{tools:{}}}}withTool(X){return this.tools.push(X),this}withTools(X){return this.tools.push(...X),this}callToolMiddleware(...X){return this.callToolMiddlewares.push(...X),this}build(){let X=this.callToolMiddlewares.length>0?w50(...this.callToolMiddlewares):null,Q=()=>{let J=new Bh({name:this.config.name,version:this.config.version},{capabilities:this.config.capabilities});for(let Y of this.tools){let G=async(K)=>{try{let Z=await Y.handler(K);return{content:[{type:"text",text:JSON.stringify(Z)}],structuredContent:Z}}catch(Z){return{content:[{type:"text",text:`Error: ${Z.message}`}],isError:!0}}},$=X?async(K)=>{let Z={method:"tools/call",params:{name:Y.name,arguments:K}};return await X(Z,()=>G(K))}:G,W="shape"in Y.inputSchema?Y.inputSchema.shape:N.object({}).shape,H=Y.outputSchema&&"shape"in Y.outputSchema?Y.outputSchema.shape:N.object({}).shape;J.registerTool(Y.name,{annotations:Y.annotations,description:Y.description??"",inputSchema:W,outputSchema:H},$)}return J};return{callStreamableTool:async(J,Y)=>{let G=this.tools.find((W)=>W.name===J);if(!G)throw Error(`Tool ${J} not found`);let $=await G.handler(Y);if(!($ instanceof Response))throw Error(`Tool ${J} returned a non-response`);return $},client:{listTools:async()=>{return{tools:this.tools.map((J)=>({name:J.name,description:J.description??"",inputSchema:N.toJSONSchema(J.inputSchema),outputSchema:J.outputSchema?N.toJSONSchema(J.outputSchema):void 0}))}},callTool:async(J)=>{let Y=this.tools.find((G)=>G.name===J.name);if(!Y)return{content:[{type:"text",text:"Tool not found"}]};try{let G=await Y?.handler(J.arguments??{});return{content:[{type:"text",text:JSON.stringify(G)}],structuredContent:G}}catch(G){return{content:[{type:"text",text:`Error: ${G.message}`}]}}}},fetch:async(J)=>{let Y=new Lh({enableJsonResponse:J.headers.get("Accept")?.includes("application/json")??!1});return await Q().connect(Y),await Y.handleRequest(J)}}}}function T50(X){return new P50(X)}var A50=m(()=>{O50();M50();d0()});var R50=l((E50)=>{Object.defineProperty(E50,"__esModule",{value:!0});E50._globalThis=void 0;E50._globalThis=typeof globalThis==="object"?globalThis:global});var I50=l((sW)=>{var gs0=sW&&sW.__createBinding||(Object.create?function(X,Q,J,Y){if(Y===void 0)Y=J;Object.defineProperty(X,Y,{enumerable:!0,get:function(){return Q[J]}})}:function(X,Q,J,Y){if(Y===void 0)Y=J;X[Y]=Q[J]}),xs0=sW&&sW.__exportStar||function(X,Q){for(var J in X)if(J!=="default"&&!Object.prototype.hasOwnProperty.call(Q,J))gs0(Q,X,J)};Object.defineProperty(sW,"__esModule",{value:!0});xs0(R50(),sW)});var S50=l((tW)=>{var us0=tW&&tW.__createBinding||(Object.create?function(X,Q,J,Y){if(Y===void 0)Y=J;Object.defineProperty(X,Y,{enumerable:!0,get:function(){return Q[J]}})}:function(X,Q,J,Y){if(Y===void 0)Y=J;X[Y]=Q[J]}),ms0=tW&&tW.__exportStar||function(X,Q){for(var J in X)if(J!=="default"&&!Object.prototype.hasOwnProperty.call(Q,J))us0(Q,X,J)};Object.defineProperty(tW,"__esModule",{value:!0});ms0(I50(),tW)});var Dh=l((v50)=>{Object.defineProperty(v50,"__esModule",{value:!0});v50.VERSION=void 0;v50.VERSION="1.9.0"});var h50=l((y50)=>{Object.defineProperty(y50,"__esModule",{value:!0});y50.isCompatible=y50._makeCompatibilityCheck=void 0;var ls0=Dh(),_50=/^(\d+)\.(\d+)\.(\d+)(-(.+))?$/;function b50(X){let Q=new Set([X]),J=new Set,Y=X.match(_50);if(!Y)return()=>!1;let G={major:+Y[1],minor:+Y[2],patch:+Y[3],prerelease:Y[4]};if(G.prerelease!=null)return function(K){return K===X};function $(H){return J.add(H),!1}function W(H){return Q.add(H),!0}return function(K){if(Q.has(K))return!0;if(J.has(K))return!1;let Z=K.match(_50);if(!Z)return $(K);let F={major:+Z[1],minor:+Z[2],patch:+Z[3],prerelease:Z[4]};if(F.prerelease!=null)return $(K);if(G.major!==F.major)return $(K);if(G.major===0){if(G.minor===F.minor&&G.patch<=F.patch)return W(K);return $(K)}if(G.minor<=F.minor)return W(K);return $(K)}}y50._makeCompatibilityCheck=b50;y50.isCompatible=b50(ls0.VERSION)});var eW=l((g50)=>{Object.defineProperty(g50,"__esModule",{value:!0});g50.unregisterGlobal=g50.getGlobal=g50.registerGlobal=void 0;var ps0=S50(),QZ=Dh(),cs0=h50(),ns0=QZ.VERSION.split(".")[0],LU=Symbol.for(`opentelemetry.js.api.${ns0}`),DU=ps0._globalThis;function is0(X,Q,J,Y=!1){var G;let $=DU[LU]=(G=DU[LU])!==null&&G!==void 0?G:{version:QZ.VERSION};if(!Y&&$[X]){let W=Error(`@opentelemetry/api: Attempted duplicate registration of API: ${X}`);return J.error(W.stack||W.message),!1}if($.version!==QZ.VERSION){let W=Error(`@opentelemetry/api: Registration of version v${$.version} for ${X} does not match previously registered API v${QZ.VERSION}`);return J.error(W.stack||W.message),!1}return $[X]=Q,J.debug(`@opentelemetry/api: Registered a global for ${X} v${QZ.VERSION}.`),!0}g50.registerGlobal=is0;function rs0(X){var Q,J;let Y=(Q=DU[LU])===null||Q===void 0?void 0:Q.version;if(!Y||!(0,cs0.isCompatible)(Y))return;return(J=DU[LU])===null||J===void 0?void 0:J[X]}g50.getGlobal=rs0;function as0(X,Q){Q.debug(`@opentelemetry/api: Unregistering a global for ${X} v${QZ.VERSION}.`);let J=DU[LU];if(J)delete J[X]}g50.unregisterGlobal=as0});var d50=l((m50)=>{Object.defineProperty(m50,"__esModule",{value:!0});m50.DiagComponentLogger=void 0;var ts0=eW();class u50{constructor(X){this._namespace=X.namespace||"DiagComponentLogger"}debug(...X){return jU("debug",this._namespace,X)}error(...X){return jU("error",this._namespace,X)}info(...X){return jU("info",this._namespace,X)}warn(...X){return jU("warn",this._namespace,X)}verbose(...X){return jU("verbose",this._namespace,X)}}m50.DiagComponentLogger=u50;function jU(X,Q,J){let Y=(0,ts0.getGlobal)("diag");if(!Y)return;return J.unshift(Q),Y[X](...J)}});var jP=l((p50)=>{Object.defineProperty(p50,"__esModule",{value:!0});p50.DiagLogLevel=void 0;var es0;(function(X){X[X.NONE=0]="NONE",X[X.ERROR=30]="ERROR",X[X.WARN=50]="WARN",X[X.INFO=60]="INFO",X[X.DEBUG=70]="DEBUG",X[X.VERBOSE=80]="VERBOSE",X[X.ALL=9999]="ALL"})(es0=p50.DiagLogLevel||(p50.DiagLogLevel={}))});var i50=l((c50)=>{Object.defineProperty(c50,"__esModule",{value:!0});c50.createLogLevelDiagLogger=void 0;var wG=jP();function Xt0(X,Q){if(X<wG.DiagLogLevel.NONE)X=wG.DiagLogLevel.NONE;else if(X>wG.DiagLogLevel.ALL)X=wG.DiagLogLevel.ALL;Q=Q||{};function J(Y,G){let $=Q[Y];if(typeof $==="function"&&X>=G)return $.bind(Q);return function(){}}return{error:J("error",wG.DiagLogLevel.ERROR),warn:J("warn",wG.DiagLogLevel.WARN),info:J("info",wG.DiagLogLevel.INFO),debug:J("debug",wG.DiagLogLevel.DEBUG),verbose:J("verbose",wG.DiagLogLevel.VERBOSE)}}c50.createLogLevelDiagLogger=Xt0});var X7=l((a50)=>{Object.defineProperty(a50,"__esModule",{value:!0});a50.DiagAPI=void 0;var Qt0=d50(),Jt0=i50(),r50=jP(),NP=eW(),Yt0="diag";class Nh{constructor(){function X(Y){return function(...G){let $=(0,NP.getGlobal)("diag");if(!$)return;return $[Y](...G)}}let Q=this,J=(Y,G={logLevel:r50.DiagLogLevel.INFO})=>{var $,W,H;if(Y===Q){let F=Error("Cannot use diag as the logger for itself. Please use a DiagLogger implementation like ConsoleDiagLogger or a custom implementation");return Q.error(($=F.stack)!==null&&$!==void 0?$:F.message),!1}if(typeof G==="number")G={logLevel:G};let K=(0,NP.getGlobal)("diag"),Z=(0,Jt0.createLogLevelDiagLogger)((W=G.logLevel)!==null&&W!==void 0?W:r50.DiagLogLevel.INFO,Y);if(K&&!G.suppressOverrideMessage){let F=(H=Error().stack)!==null&&H!==void 0?H:"<failed to generate stacktrace>";K.warn(`Current logger will be overwritten from ${F}`),Z.warn(`Current logger will overwrite one already registered from ${F}`)}return(0,NP.registerGlobal)("diag",Z,Q,!0)};Q.setLogger=J,Q.disable=()=>{(0,NP.unregisterGlobal)(Yt0,Q)},Q.createComponentLogger=(Y)=>{return new Qt0.DiagComponentLogger(Y)},Q.verbose=X("verbose"),Q.debug=X("debug"),Q.info=X("info"),Q.warn=X("warn"),Q.error=X("error")}static instance(){if(!this._instance)this._instance=new Nh;return this._instance}}a50.DiagAPI=Nh});var e50=l((s50)=>{Object.defineProperty(s50,"__esModule",{value:!0});s50.BaggageImpl=void 0;class JZ{constructor(X){this._entries=X?new Map(X):new Map}getEntry(X){let Q=this._entries.get(X);if(!Q)return;return Object.assign({},Q)}getAllEntries(){return Array.from(this._entries.entries()).map(([X,Q])=>[X,Q])}setEntry(X,Q){let J=new JZ(this._entries);return J._entries.set(X,Q),J}removeEntry(X){let Q=new JZ(this._entries);return Q._entries.delete(X),Q}removeEntries(...X){let Q=new JZ(this._entries);for(let J of X)Q._entries.delete(J);return Q}clear(){return new JZ}}s50.BaggageImpl=JZ});var JW0=l((XW0)=>{Object.defineProperty(XW0,"__esModule",{value:!0});XW0.baggageEntryMetadataSymbol=void 0;XW0.baggageEntryMetadataSymbol=Symbol("BaggageEntryMetadata")});var Oh=l((YW0)=>{Object.defineProperty(YW0,"__esModule",{value:!0});YW0.baggageEntryMetadataFromString=YW0.createBaggage=void 0;var Gt0=X7(),$t0=e50(),Wt0=JW0(),Ht0=Gt0.DiagAPI.instance();function Kt0(X={}){return new $t0.BaggageImpl(new Map(Object.entries(X)))}YW0.createBaggage=Kt0;function Zt0(X){if(typeof X!=="string")Ht0.error(`Cannot create baggage metadata from unknown type: ${typeof X}`),X="";return{__TYPE__:Wt0.baggageEntryMetadataSymbol,toString(){return X}}}YW0.baggageEntryMetadataFromString=Zt0});var NU=l(($W0)=>{Object.defineProperty($W0,"__esModule",{value:!0});$W0.ROOT_CONTEXT=$W0.createContextKey=void 0;function Vt0(X){return Symbol.for(X)}$W0.createContextKey=Vt0;class OP{constructor(X){let Q=this;Q._currentContext=X?new Map(X):new Map,Q.getValue=(J)=>Q._currentContext.get(J),Q.setValue=(J,Y)=>{let G=new OP(Q._currentContext);return G._currentContext.set(J,Y),G},Q.deleteValue=(J)=>{let Y=new OP(Q._currentContext);return Y._currentContext.delete(J),Y}}}$W0.ROOT_CONTEXT=new OP});var FW0=l((KW0)=>{Object.defineProperty(KW0,"__esModule",{value:!0});KW0.DiagConsoleLogger=void 0;var Mh=[{n:"error",c:"error"},{n:"warn",c:"warn"},{n:"info",c:"info"},{n:"debug",c:"debug"},{n:"verbose",c:"trace"}];class HW0{constructor(){function X(Q){return function(...J){if(console){let Y=console[Q];if(typeof Y!=="function")Y=console.log;if(typeof Y==="function")return Y.apply(console,J)}}}for(let Q=0;Q<Mh.length;Q++)this[Mh[Q].n]=X(Mh[Q].c)}}KW0.DiagConsoleLogger=HW0});var Sh=l((VW0)=>{Object.defineProperty(VW0,"__esModule",{value:!0});VW0.createNoopMeter=VW0.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC=VW0.NOOP_OBSERVABLE_GAUGE_METRIC=VW0.NOOP_OBSERVABLE_COUNTER_METRIC=VW0.NOOP_UP_DOWN_COUNTER_METRIC=VW0.NOOP_HISTOGRAM_METRIC=VW0.NOOP_GAUGE_METRIC=VW0.NOOP_COUNTER_METRIC=VW0.NOOP_METER=VW0.NoopObservableUpDownCounterMetric=VW0.NoopObservableGaugeMetric=VW0.NoopObservableCounterMetric=VW0.NoopObservableMetric=VW0.NoopHistogramMetric=VW0.NoopGaugeMetric=VW0.NoopUpDownCounterMetric=VW0.NoopCounterMetric=VW0.NoopMetric=VW0.NoopMeter=void 0;class wh{constructor(){}createGauge(X,Q){return VW0.NOOP_GAUGE_METRIC}createHistogram(X,Q){return VW0.NOOP_HISTOGRAM_METRIC}createCounter(X,Q){return VW0.NOOP_COUNTER_METRIC}createUpDownCounter(X,Q){return VW0.NOOP_UP_DOWN_COUNTER_METRIC}createObservableGauge(X,Q){return VW0.NOOP_OBSERVABLE_GAUGE_METRIC}createObservableCounter(X,Q){return VW0.NOOP_OBSERVABLE_COUNTER_METRIC}createObservableUpDownCounter(X,Q){return VW0.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC}addBatchObservableCallback(X,Q){}removeBatchObservableCallback(X){}}VW0.NoopMeter=wh;class YZ{}VW0.NoopMetric=YZ;class Ph extends YZ{add(X,Q){}}VW0.NoopCounterMetric=Ph;class Th extends YZ{add(X,Q){}}VW0.NoopUpDownCounterMetric=Th;class Ah extends YZ{record(X,Q){}}VW0.NoopGaugeMetric=Ah;class Eh extends YZ{record(X,Q){}}VW0.NoopHistogramMetric=Eh;class OU{addCallback(X){}removeCallback(X){}}VW0.NoopObservableMetric=OU;class Ch extends OU{}VW0.NoopObservableCounterMetric=Ch;class Rh extends OU{}VW0.NoopObservableGaugeMetric=Rh;class Ih extends OU{}VW0.NoopObservableUpDownCounterMetric=Ih;VW0.NOOP_METER=new wh;VW0.NOOP_COUNTER_METRIC=new Ph;VW0.NOOP_GAUGE_METRIC=new Ah;VW0.NOOP_HISTOGRAM_METRIC=new Eh;VW0.NOOP_UP_DOWN_COUNTER_METRIC=new Th;VW0.NOOP_OBSERVABLE_COUNTER_METRIC=new Ch;VW0.NOOP_OBSERVABLE_GAUGE_METRIC=new Rh;VW0.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC=new Ih;function Ut0(){return VW0.NOOP_METER}VW0.createNoopMeter=Ut0});var wW0=l((MW0)=>{Object.defineProperty(MW0,"__esModule",{value:!0});MW0.ValueType=void 0;var Tt0;(function(X){X[X.INT=0]="INT",X[X.DOUBLE=1]="DOUBLE"})(Tt0=MW0.ValueType||(MW0.ValueType={}))});var kh=l((PW0)=>{Object.defineProperty(PW0,"__esModule",{value:!0});PW0.defaultTextMapSetter=PW0.defaultTextMapGetter=void 0;PW0.defaultTextMapGetter={get(X,Q){if(X==null)return;return X[Q]},keys(X){if(X==null)return[];return Object.keys(X)}};PW0.defaultTextMapSetter={set(X,Q,J){if(X==null)return;X[Q]=J}}});var RW0=l((EW0)=>{Object.defineProperty(EW0,"__esModule",{value:!0});EW0.NoopContextManager=void 0;var Et0=NU();class AW0{active(){return Et0.ROOT_CONTEXT}with(X,Q,J,...Y){return Q.call(J,...Y)}bind(X,Q){return Q}enable(){return this}disable(){return this}}EW0.NoopContextManager=AW0});var MU=l((SW0)=>{Object.defineProperty(SW0,"__esModule",{value:!0});SW0.ContextAPI=void 0;var Ct0=RW0(),_h=eW(),IW0=X7(),bh="context",Rt0=new Ct0.NoopContextManager;class yh{constructor(){}static getInstance(){if(!this._instance)this._instance=new yh;return this._instance}setGlobalContextManager(X){return(0,_h.registerGlobal)(bh,X,IW0.DiagAPI.instance())}active(){return this._getContextManager().active()}with(X,Q,J,...Y){return this._getContextManager().with(X,Q,J,...Y)}bind(X,Q){return this._getContextManager().bind(X,Q)}_getContextManager(){return(0,_h.getGlobal)(bh)||Rt0}disable(){this._getContextManager().disable(),(0,_h.unregisterGlobal)(bh,IW0.DiagAPI.instance())}}SW0.ContextAPI=yh});var hh=l((kW0)=>{Object.defineProperty(kW0,"__esModule",{value:!0});kW0.TraceFlags=void 0;var It0;(function(X){X[X.NONE=0]="NONE",X[X.SAMPLED=1]="SAMPLED"})(It0=kW0.TraceFlags||(kW0.TraceFlags={}))});var MP=l((_W0)=>{Object.defineProperty(_W0,"__esModule",{value:!0});_W0.INVALID_SPAN_CONTEXT=_W0.INVALID_TRACEID=_W0.INVALID_SPANID=void 0;var St0=hh();_W0.INVALID_SPANID="0000000000000000";_W0.INVALID_TRACEID="00000000000000000000000000000000";_W0.INVALID_SPAN_CONTEXT={traceId:_W0.INVALID_TRACEID,spanId:_W0.INVALID_SPANID,traceFlags:St0.TraceFlags.NONE}});var wP=l((gW0)=>{Object.defineProperty(gW0,"__esModule",{value:!0});gW0.NonRecordingSpan=void 0;var vt0=MP();class hW0{constructor(X=vt0.INVALID_SPAN_CONTEXT){this._spanContext=X}spanContext(){return this._spanContext}setAttribute(X,Q){return this}setAttributes(X){return this}addEvent(X,Q){return this}addLink(X){return this}addLinks(X){return this}setStatus(X){return this}updateName(X){return this}end(X){}isRecording(){return!1}recordException(X,Q){}}gW0.NonRecordingSpan=hW0});var uh=l((mW0)=>{Object.defineProperty(mW0,"__esModule",{value:!0});mW0.getSpanContext=mW0.setSpanContext=mW0.deleteSpan=mW0.setSpan=mW0.getActiveSpan=mW0.getSpan=void 0;var kt0=NU(),_t0=wP(),bt0=MU(),gh=(0,kt0.createContextKey)("OpenTelemetry Context Key SPAN");function xh(X){return X.getValue(gh)||void 0}mW0.getSpan=xh;function yt0(){return xh(bt0.ContextAPI.getInstance().active())}mW0.getActiveSpan=yt0;function uW0(X,Q){return X.setValue(gh,Q)}mW0.setSpan=uW0;function ft0(X){return X.deleteValue(gh)}mW0.deleteSpan=ft0;function ht0(X,Q){return uW0(X,new _t0.NonRecordingSpan(Q))}mW0.setSpanContext=ht0;function gt0(X){var Q;return(Q=xh(X))===null||Q===void 0?void 0:Q.spanContext()}mW0.getSpanContext=gt0});var PP=l((nW0)=>{Object.defineProperty(nW0,"__esModule",{value:!0});nW0.wrapSpanContext=nW0.isSpanContextValid=nW0.isValidSpanId=nW0.isValidTraceId=void 0;var dW0=MP(),pt0=wP(),ct0=/^([0-9a-f]{32})$/i,nt0=/^[0-9a-f]{16}$/i;function pW0(X){return ct0.test(X)&&X!==dW0.INVALID_TRACEID}nW0.isValidTraceId=pW0;function cW0(X){return nt0.test(X)&&X!==dW0.INVALID_SPANID}nW0.isValidSpanId=cW0;function it0(X){return pW0(X.traceId)&&cW0(X.spanId)}nW0.isSpanContextValid=it0;function rt0(X){return new pt0.NonRecordingSpan(X)}nW0.wrapSpanContext=rt0});var dh=l((oW0)=>{Object.defineProperty(oW0,"__esModule",{value:!0});oW0.NoopTracer=void 0;var tt0=MU(),rW0=uh(),mh=wP(),et0=PP(),lh=tt0.ContextAPI.getInstance();class aW0{startSpan(X,Q,J=lh.active()){if(Boolean(Q===null||Q===void 0?void 0:Q.root))return new mh.NonRecordingSpan;let G=J&&(0,rW0.getSpanContext)(J);if(Xe0(G)&&(0,et0.isSpanContextValid)(G))return new mh.NonRecordingSpan(G);else return new mh.NonRecordingSpan}startActiveSpan(X,Q,J,Y){let G,$,W;if(arguments.length<2)return;else if(arguments.length===2)W=Q;else if(arguments.length===3)G=Q,W=J;else G=Q,$=J,W=Y;let H=$!==null&&$!==void 0?$:lh.active(),K=this.startSpan(X,G,H),Z=(0,rW0.setSpan)(H,K);return lh.with(Z,W,void 0,K)}}oW0.NoopTracer=aW0;function Xe0(X){return typeof X==="object"&&typeof X.spanId==="string"&&typeof X.traceId==="string"&&typeof X.traceFlags==="number"}});var ph=l((eW0)=>{Object.defineProperty(eW0,"__esModule",{value:!0});eW0.ProxyTracer=void 0;var Qe0=dh(),Je0=new Qe0.NoopTracer;class tW0{constructor(X,Q,J,Y){this._provider=X,this.name=Q,this.version=J,this.options=Y}startSpan(X,Q,J){return this._getTracer().startSpan(X,Q,J)}startActiveSpan(X,Q,J,Y){let G=this._getTracer();return Reflect.apply(G.startActiveSpan,G,arguments)}_getTracer(){if(this._delegate)return this._delegate;let X=this._provider.getDelegateTracer(this.name,this.version,this.options);if(!X)return Je0;return this._delegate=X,this._delegate}}eW0.ProxyTracer=tW0});var G70=l((J70)=>{Object.defineProperty(J70,"__esModule",{value:!0});J70.NoopTracerProvider=void 0;var Ye0=dh();class Q70{getTracer(X,Q,J){return new Ye0.NoopTracer}}J70.NoopTracerProvider=Q70});var ch=l((W70)=>{Object.defineProperty(W70,"__esModule",{value:!0});W70.ProxyTracerProvider=void 0;var Ge0=ph(),$e0=G70(),We0=new $e0.NoopTracerProvider;class $70{getTracer(X,Q,J){var Y;return(Y=this.getDelegateTracer(X,Q,J))!==null&&Y!==void 0?Y:new Ge0.ProxyTracer(this,X,Q,J)}getDelegate(){var X;return(X=this._delegate)!==null&&X!==void 0?X:We0}setDelegate(X){this._delegate=X}getDelegateTracer(X,Q,J){var Y;return(Y=this._delegate)===null||Y===void 0?void 0:Y.getTracer(X,Q,J)}}W70.ProxyTracerProvider=$70});var Z70=l((K70)=>{Object.defineProperty(K70,"__esModule",{value:!0});K70.SamplingDecision=void 0;var He0;(function(X){X[X.NOT_RECORD=0]="NOT_RECORD",X[X.RECORD=1]="RECORD",X[X.RECORD_AND_SAMPLED=2]="RECORD_AND_SAMPLED"})(He0=K70.SamplingDecision||(K70.SamplingDecision={}))});var V70=l((F70)=>{Object.defineProperty(F70,"__esModule",{value:!0});F70.SpanKind=void 0;var Ke0;(function(X){X[X.INTERNAL=0]="INTERNAL",X[X.SERVER=1]="SERVER",X[X.CLIENT=2]="CLIENT",X[X.PRODUCER=3]="PRODUCER",X[X.CONSUMER=4]="CONSUMER"})(Ke0=F70.SpanKind||(F70.SpanKind={}))});var U70=l((q70)=>{Object.defineProperty(q70,"__esModule",{value:!0});q70.SpanStatusCode=void 0;var Ze0;(function(X){X[X.UNSET=0]="UNSET",X[X.OK=1]="OK",X[X.ERROR=2]="ERROR"})(Ze0=q70.SpanStatusCode||(q70.SpanStatusCode={}))});var L70=l((z70)=>{Object.defineProperty(z70,"__esModule",{value:!0});z70.validateValue=z70.validateKey=void 0;var ah="[_0-9a-z-*/]",Fe0=`[a-z]${ah}{0,255}`,Ve0=`[a-z0-9]${ah}{0,240}@[a-z]${ah}{0,13}`,qe0=new RegExp(`^(?:${Fe0}|${Ve0})$`),Ue0=/^[ -~]{0,255}[!-~]$/,ze0=/,|=/;function Be0(X){return qe0.test(X)}z70.validateKey=Be0;function Le0(X){return Ue0.test(X)&&!ze0.test(X)}z70.validateValue=Le0});var P70=l((M70)=>{Object.defineProperty(M70,"__esModule",{value:!0});M70.TraceStateImpl=void 0;var D70=L70(),j70=32,je0=512,N70=",",O70="=";class oh{constructor(X){if(this._internalState=new Map,X)this._parse(X)}set(X,Q){let J=this._clone();if(J._internalState.has(X))J._internalState.delete(X);return J._internalState.set(X,Q),J}unset(X){let Q=this._clone();return Q._internalState.delete(X),Q}get(X){return this._internalState.get(X)}serialize(){return this._keys().reduce((X,Q)=>{return X.push(Q+O70+this.get(Q)),X},[]).join(N70)}_parse(X){if(X.length>je0)return;if(this._internalState=X.split(N70).reverse().reduce((Q,J)=>{let Y=J.trim(),G=Y.indexOf(O70);if(G!==-1){let $=Y.slice(0,G),W=Y.slice(G+1,J.length);if((0,D70.validateKey)($)&&(0,D70.validateValue)(W))Q.set($,W)}return Q},new Map),this._internalState.size>j70)this._internalState=new Map(Array.from(this._internalState.entries()).reverse().slice(0,j70))}_keys(){return Array.from(this._internalState.keys()).reverse()}_clone(){let X=new oh;return X._internalState=new Map(this._internalState),X}}M70.TraceStateImpl=oh});var E70=l((T70)=>{Object.defineProperty(T70,"__esModule",{value:!0});T70.createTraceState=void 0;var Ne0=P70();function Oe0(X){return new Ne0.TraceStateImpl(X)}T70.createTraceState=Oe0});var I70=l((C70)=>{Object.defineProperty(C70,"__esModule",{value:!0});C70.context=void 0;var Me0=MU();C70.context=Me0.ContextAPI.getInstance()});var k70=l((S70)=>{Object.defineProperty(S70,"__esModule",{value:!0});S70.diag=void 0;var we0=X7();S70.diag=we0.DiagAPI.instance()});var y70=l((_70)=>{Object.defineProperty(_70,"__esModule",{value:!0});_70.NOOP_METER_PROVIDER=_70.NoopMeterProvider=void 0;var Pe0=Sh();class sh{getMeter(X,Q,J){return Pe0.NOOP_METER}}_70.NoopMeterProvider=sh;_70.NOOP_METER_PROVIDER=new sh});var x70=l((h70)=>{Object.defineProperty(h70,"__esModule",{value:!0});h70.MetricsAPI=void 0;var Ae0=y70(),th=eW(),f70=X7(),eh="metrics";class Xg{constructor(){}static getInstance(){if(!this._instance)this._instance=new Xg;return this._instance}setGlobalMeterProvider(X){return(0,th.registerGlobal)(eh,X,f70.DiagAPI.instance())}getMeterProvider(){return(0,th.getGlobal)(eh)||Ae0.NOOP_METER_PROVIDER}getMeter(X,Q,J){return this.getMeterProvider().getMeter(X,Q,J)}disable(){(0,th.unregisterGlobal)(eh,f70.DiagAPI.instance())}}h70.MetricsAPI=Xg});var l70=l((u70)=>{Object.defineProperty(u70,"__esModule",{value:!0});u70.metrics=void 0;var Ee0=x70();u70.metrics=Ee0.MetricsAPI.getInstance()});var n70=l((p70)=>{Object.defineProperty(p70,"__esModule",{value:!0});p70.NoopTextMapPropagator=void 0;class d70{inject(X,Q){}extract(X,Q){return X}fields(){return[]}}p70.NoopTextMapPropagator=d70});var o70=l((r70)=>{Object.defineProperty(r70,"__esModule",{value:!0});r70.deleteBaggage=r70.setBaggage=r70.getActiveBaggage=r70.getBaggage=void 0;var Ce0=MU(),Re0=NU(),Qg=(0,Re0.createContextKey)("OpenTelemetry Baggage Key");function i70(X){return X.getValue(Qg)||void 0}r70.getBaggage=i70;function Ie0(){return i70(Ce0.ContextAPI.getInstance().active())}r70.getActiveBaggage=Ie0;function Se0(X,Q){return X.setValue(Qg,Q)}r70.setBaggage=Se0;function ve0(X){return X.deleteValue(Qg)}r70.deleteBaggage=ve0});var QH0=l((e70)=>{Object.defineProperty(e70,"__esModule",{value:!0});e70.PropagationAPI=void 0;var Jg=eW(),ye0=n70(),s70=kh(),TP=o70(),fe0=Oh(),t70=X7(),Yg="propagation",he0=new ye0.NoopTextMapPropagator;class Gg{constructor(){this.createBaggage=fe0.createBaggage,this.getBaggage=TP.getBaggage,this.getActiveBaggage=TP.getActiveBaggage,this.setBaggage=TP.setBaggage,this.deleteBaggage=TP.deleteBaggage}static getInstance(){if(!this._instance)this._instance=new Gg;return this._instance}setGlobalPropagator(X){return(0,Jg.registerGlobal)(Yg,X,t70.DiagAPI.instance())}inject(X,Q,J=s70.defaultTextMapSetter){return this._getGlobalPropagator().inject(X,Q,J)}extract(X,Q,J=s70.defaultTextMapGetter){return this._getGlobalPropagator().extract(X,Q,J)}fields(){return this._getGlobalPropagator().fields()}disable(){(0,Jg.unregisterGlobal)(Yg,t70.DiagAPI.instance())}_getGlobalPropagator(){return(0,Jg.getGlobal)(Yg)||he0}}e70.PropagationAPI=Gg});var GH0=l((JH0)=>{Object.defineProperty(JH0,"__esModule",{value:!0});JH0.propagation=void 0;var ge0=QH0();JH0.propagation=ge0.PropagationAPI.getInstance()});var FH0=l((KH0)=>{Object.defineProperty(KH0,"__esModule",{value:!0});KH0.TraceAPI=void 0;var $g=eW(),$H0=ch(),WH0=PP(),GZ=uh(),HH0=X7(),Wg="trace";class Hg{constructor(){this._proxyTracerProvider=new $H0.ProxyTracerProvider,this.wrapSpanContext=WH0.wrapSpanContext,this.isSpanContextValid=WH0.isSpanContextValid,this.deleteSpan=GZ.deleteSpan,this.getSpan=GZ.getSpan,this.getActiveSpan=GZ.getActiveSpan,this.getSpanContext=GZ.getSpanContext,this.setSpan=GZ.setSpan,this.setSpanContext=GZ.setSpanContext}static getInstance(){if(!this._instance)this._instance=new Hg;return this._instance}setGlobalTracerProvider(X){let Q=(0,$g.registerGlobal)(Wg,this._proxyTracerProvider,HH0.DiagAPI.instance());if(Q)this._proxyTracerProvider.setDelegate(X);return Q}getTracerProvider(){return(0,$g.getGlobal)(Wg)||this._proxyTracerProvider}getTracer(X,Q){return this.getTracerProvider().getTracer(X,Q)}disable(){(0,$g.unregisterGlobal)(Wg,HH0.DiagAPI.instance()),this._proxyTracerProvider=new $H0.ProxyTracerProvider}}KH0.TraceAPI=Hg});var UH0=l((VH0)=>{Object.defineProperty(VH0,"__esModule",{value:!0});VH0.trace=void 0;var xe0=FH0();VH0.trace=xe0.TraceAPI.getInstance()});var MH0=l(($8)=>{Object.defineProperty($8,"__esModule",{value:!0});$8.trace=$8.propagation=$8.metrics=$8.diag=$8.context=$8.INVALID_SPAN_CONTEXT=$8.INVALID_TRACEID=$8.INVALID_SPANID=$8.isValidSpanId=$8.isValidTraceId=$8.isSpanContextValid=$8.createTraceState=$8.TraceFlags=$8.SpanStatusCode=$8.SpanKind=$8.SamplingDecision=$8.ProxyTracerProvider=$8.ProxyTracer=$8.defaultTextMapSetter=$8.defaultTextMapGetter=$8.ValueType=$8.createNoopMeter=$8.DiagLogLevel=$8.DiagConsoleLogger=$8.ROOT_CONTEXT=$8.createContextKey=$8.baggageEntryMetadataFromString=void 0;var ue0=Oh();Object.defineProperty($8,"baggageEntryMetadataFromString",{enumerable:!0,get:function(){return ue0.baggageEntryMetadataFromString}});var zH0=NU();Object.defineProperty($8,"createContextKey",{enumerable:!0,get:function(){return zH0.createContextKey}});Object.defineProperty($8,"ROOT_CONTEXT",{enumerable:!0,get:function(){return zH0.ROOT_CONTEXT}});var me0=FW0();Object.defineProperty($8,"DiagConsoleLogger",{enumerable:!0,get:function(){return me0.DiagConsoleLogger}});var le0=jP();Object.defineProperty($8,"DiagLogLevel",{enumerable:!0,get:function(){return le0.DiagLogLevel}});var de0=Sh();Object.defineProperty($8,"createNoopMeter",{enumerable:!0,get:function(){return de0.createNoopMeter}});var pe0=wW0();Object.defineProperty($8,"ValueType",{enumerable:!0,get:function(){return pe0.ValueType}});var BH0=kh();Object.defineProperty($8,"defaultTextMapGetter",{enumerable:!0,get:function(){return BH0.defaultTextMapGetter}});Object.defineProperty($8,"defaultTextMapSetter",{enumerable:!0,get:function(){return BH0.defaultTextMapSetter}});var ce0=ph();Object.defineProperty($8,"ProxyTracer",{enumerable:!0,get:function(){return ce0.ProxyTracer}});var ne0=ch();Object.defineProperty($8,"ProxyTracerProvider",{enumerable:!0,get:function(){return ne0.ProxyTracerProvider}});var ie0=Z70();Object.defineProperty($8,"SamplingDecision",{enumerable:!0,get:function(){return ie0.SamplingDecision}});var re0=V70();Object.defineProperty($8,"SpanKind",{enumerable:!0,get:function(){return re0.SpanKind}});var ae0=U70();Object.defineProperty($8,"SpanStatusCode",{enumerable:!0,get:function(){return ae0.SpanStatusCode}});var oe0=hh();Object.defineProperty($8,"TraceFlags",{enumerable:!0,get:function(){return oe0.TraceFlags}});var se0=E70();Object.defineProperty($8,"createTraceState",{enumerable:!0,get:function(){return se0.createTraceState}});var Kg=PP();Object.defineProperty($8,"isSpanContextValid",{enumerable:!0,get:function(){return Kg.isSpanContextValid}});Object.defineProperty($8,"isValidTraceId",{enumerable:!0,get:function(){return Kg.isValidTraceId}});Object.defineProperty($8,"isValidSpanId",{enumerable:!0,get:function(){return Kg.isValidSpanId}});var Zg=MP();Object.defineProperty($8,"INVALID_SPANID",{enumerable:!0,get:function(){return Zg.INVALID_SPANID}});Object.defineProperty($8,"INVALID_TRACEID",{enumerable:!0,get:function(){return Zg.INVALID_TRACEID}});Object.defineProperty($8,"INVALID_SPAN_CONTEXT",{enumerable:!0,get:function(){return Zg.INVALID_SPAN_CONTEXT}});var LH0=I70();Object.defineProperty($8,"context",{enumerable:!0,get:function(){return LH0.context}});var DH0=k70();Object.defineProperty($8,"diag",{enumerable:!0,get:function(){return DH0.diag}});var jH0=l70();Object.defineProperty($8,"metrics",{enumerable:!0,get:function(){return jH0.metrics}});var NH0=GH0();Object.defineProperty($8,"propagation",{enumerable:!0,get:function(){return NH0.propagation}});var OH0=UH0();Object.defineProperty($8,"trace",{enumerable:!0,get:function(){return OH0.trace}});$8.default={context:LH0.context,diag:DH0.diag,metrics:jH0.metrics,propagation:NH0.propagation,trace:OH0.trace}});function Q4(X){return{...X,execute:async(Q,J)=>{let Y=Date.now();return await J.tracer.startActiveSpan(`tool.${X.name}`,{attributes:{"tool.name":X.name,"organization.id":J.organization?.id??"system","user.id":J.auth.user?.id??J.auth.apiKey?.userId??"anonymous"}},async(G)=>{try{J.toolName=X.name,J.access.setToolName?.(X.name);let $=await X.handler(Q,J),W=Date.now()-Y;return J.meter.createHistogram("tool.execution.duration",{description:"Duration of tool executions in milliseconds",unit:"ms"}).record(W,{"tool.name":X.name,"organization.id":J.organization?.id??"system",status:"success"}),J.meter.createCounter("tool.execution.count",{description:"Number of tool executions"}).add(1,{"tool.name":X.name,status:"success"}),G.setStatus({code:Fg.SpanStatusCode.OK}),$}catch($){throw J.meter.createCounter("tool.execution.errors",{description:"Number of tool execution errors"}).add(1,{"tool.name":X.name,"error.type":$.constructor.name}),G.setStatus({code:Fg.SpanStatusCode.ERROR,message:$.message}),G.recordException($),$}finally{G.end()}})}}}var Fg;var Y6=m(()=>{Fg=WJ(MH0(),1)});function e4(X){if(!X.organization)throw Error("This operation requires organization scope");return X.organization}function p1(X){return X.auth.user?.id??X.auth.apiKey?.userId}function X04(X){return!!(X.auth.user||X.auth.apiKey)}function B4(X){if(!X04(X))throw Error("Authentication required")}var AP,wH0,PH0,TH0,AH0,EH0,CH0,RH0,IH0,SH0;var $Z=m(()=>{d0();AP=N.record(N.string(),N.array(N.string())),wH0=N.object({id:N.string().describe("Unique identifier for the API key"),name:N.string().describe("Human-readable name for the API key"),userId:N.string().describe("ID of the user who owns this API key"),permissions:AP.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:N.union([N.string(),N.date()]).nullable().optional().describe("Expiration date of the API key"),createdAt:N.union([N.string(),N.date()]).describe("When the API key was created")}),PH0=N.object({name:N.string().min(1).max(64).describe("Human-readable name for the API key"),permissions:AP.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:N.number().positive().optional().describe("Expiration time in seconds. If not provided, key never expires."),metadata:N.record(N.string(),N.unknown()).optional().describe("Additional metadata to store with the API key")}),TH0=N.object({id:N.string().describe("Unique identifier for the API key"),name:N.string().describe("Human-readable name for the API key"),key:N.string().describe("The actual API key value. STORE THIS SECURELY - it will not be shown again!"),permissions:AP.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:N.union([N.string(),N.date()]).nullable().optional().describe("Expiration date of the API key"),createdAt:N.union([N.string(),N.date()]).describe("When the API key was created")}),AH0=N.object({}),EH0=N.object({items:N.array(wH0).describe("List of API keys (without key values)")}),CH0=N.object({keyId:N.string().describe("ID of the API key to update"),name:N.string().min(1).max(64).optional().describe("New name for the API key"),permissions:AP.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:N.record(N.string(),N.unknown()).optional().describe("New metadata. Replaces existing metadata.")}),RH0=N.object({item:wH0.describe("The updated API key (without key value)")}),IH0=N.object({keyId:N.string().describe("ID of the API key to delete")}),SH0=N.object({success:N.boolean().describe("Whether the deletion was successful"),keyId:N.string().describe("ID of the deleted API key")})});var Vg;var vH0=m(()=>{Y6();$Z();Vg=Q4({name:"API_KEY_CREATE",description:"Create a new API key with specified permissions. The key value is only returned once - store it securely!",inputSchema:PH0,outputSchema:TH0,handler:async(X,Q)=>{B4(Q),await Q.access.check();let J=await Q.boundAuth.apiKey.create({name:X.name,permissions:X.permissions,expiresIn:X.expiresIn,metadata:{...X.metadata,organization:Q.organization}});return{id:J.id,name:J.name??X.name,key:J.key,permissions:J.permissions??{},expiresAt:J.expiresAt??null,createdAt:J.createdAt}}})});var qg;var kH0=m(()=>{Y6();$Z();qg=Q4({name:"API_KEY_DELETE",description:"Delete an API key. This instantly revokes the key - it can no longer be used for authentication.",inputSchema:IH0,outputSchema:SH0,handler:async(X,Q)=>{if(B4(Q),await Q.access.check(),!p1(Q))throw Error("User ID required to delete API key");let G=(await Q.boundAuth.apiKey.list())?.find((K)=>K.id===X.keyId);if(!G)throw Error("API key not found");let W=G.metadata?.organization?.id,H=Q.organization?.id;if(W!==H)throw Error("Cannot delete API key from another organization");return await Q.boundAuth.apiKey.delete(X.keyId),{success:!0,keyId:X.keyId}}})});var Ug;var _H0=m(()=>{Y6();$Z();Ug=Q4({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:AH0,outputSchema:EH0,handler:async(X,Q)=>{B4(Q),await Q.access.check();let J=await Q.boundAuth.apiKey.list(),Y=Q.organization?.id;return{items:(J??[]).filter(($)=>{return $.metadata?.organization?.id===Y}).map(($)=>({id:$.id,name:$.name??"Unnamed Key",userId:$.userId,permissions:$.permissions??{},expiresAt:$.expiresAt??null,createdAt:$.createdAt}))}}})});var zg;var bH0=m(()=>{Y6();$Z();zg=Q4({name:"API_KEY_UPDATE",description:"Update an existing API key's name, permissions, or metadata. Note: Key value cannot be changed or retrieved.",inputSchema:CH0,outputSchema:RH0,handler:async(X,Q)=>{if(B4(Q),await Q.access.check(),!p1(Q))throw Error("User ID required to update API key");let G=(await Q.boundAuth.apiKey.list())?.find((Z)=>Z.id===X.keyId);if(!G)throw Error(`API key not found: ${X.keyId}`);let W=G.metadata?.organization?.id,H=Q.organization?.id;if(W!==H)throw Error("Cannot update API key from another organization");let K=await Q.boundAuth.apiKey.update({keyId:X.keyId,name:X.name,permissions:X.permissions,metadata:{...X.metadata,organization:Q.organization}});if(!K)throw Error(`Failed to update API key: ${X.keyId}`);return{item:{id:K.id,name:K.name??X.name??"Unnamed Key",userId:K.userId,permissions:K.permissions??{},expiresAt:K.expiresAt??null,createdAt:K.createdAt}}}})});var yH0=m(()=>{vH0();kH0();_H0();bH0();$Z()});var J04,Y04,Bg;var fH0=m(()=>{MM();d0();Y6();DP();u$();J04=N.object({data:XX0.describe("Data for the new connection (id is auto-generated if not provided)")}),Y04=N.object({item:mJ.describe("The created connection entity")}),Bg=Q4({name:"COLLECTION_CONNECTIONS_CREATE",description:"Create a new MCP connection in the organization",inputSchema:J04,outputSchema:Y04,handler:async(X,Q)=>{B4(Q);let J=e4(Q);await Q.access.check();let Y=p1(Q);if(!Y)throw Error("User ID required to create connection");let G={...X.data,organization_id:J.id,created_by:Y},$=await XZ({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=$?.length?$:null,H=await Q.storage.connections.create({...G,tools:W});return await Q.eventBus.publish(J.id,OM.SELF(J.id),{type:"connection.created",data:H}),{item:H}}})});function wU(X,Q){if(X===Q)return!0;if(X==null||Q==null)return X===Q;if(typeof X!==typeof Q)return!1;if(Array.isArray(X)&&Array.isArray(Q)){if(X.length!==Q.length)return!1;return X.every((J,Y)=>wU(J,Q[Y]))}if(typeof X==="object"&&typeof Q==="object"){let J=Object.keys(X),Y=Object.keys(Q);if(J.length!==Y.length)return!1;return J.every((G)=>Y.includes(G)&&wU(X[G],Q[G]))}return!1}function E04(){return(X)=>{if(!Array.isArray(X))return!0;let Q=[];return X.every((J)=>{if(Q.some((G)=>wU(J,G)))return!1;return Q.push(J),!0})}}function EP(X,Q){return X.safeParse(Q).success}function UX(X){if(typeof X==="boolean")return X?N.any():N.never();let Q={};for(let G of u04)G.apply(Q,X);let J=[];if(Q.string!==!1)J.push(Q.string||N.string());if(Q.number!==!1)J.push(Q.number||N.number());if(Q.boolean!==!1)J.push(Q.boolean||N.boolean());if(Q.null!==!1)J.push(Q.null||N.null());if(Q.array!==!1)J.push(Q.array||N.array(N.any()));if(Q.tuple!==!1&&Q.tuple!==void 0)J.push(Q.tuple);if(Q.object!==!1)if(Q.object)J.push(Q.object);else{let G=N.custom(($)=>{return typeof $==="object"&&$!==null&&!Array.isArray($)},"Must be an object, not an array");J.push(G)}if(Q.file!==!1&&Q.file!==void 0)J.push(Q.file);let Y;if(J.length===0)Y=N.never();else if(J.length===1)Y=J[0];else if(!Object.keys(X).some(($)=>$!=="$schema"&&$!=="title"&&$!=="description"))Y=N.any();else Y=N.union(J);for(let G of m04)Y=G.apply(Y,X);return Y}var G04=class{apply(X,Q){if(!Q.type)return;let J=Array.isArray(Q.type)?Q.type:[Q.type],Y=new Set(J);if(!Y.has("string"))X.string=!1;if(!Y.has("number")&&!Y.has("integer"))X.number=!1;if(!Y.has("boolean"))X.boolean=!1;if(!Y.has("null"))X.null=!1;if(!Y.has("array"))X.array=!1;if(!Y.has("object"))X.object=!1;if(Y.has("integer")&&X.number!==!1){let G=X.number||N.number();if(G instanceof N.ZodNumber)X.number=G.int()}}},$04=class{apply(X,Q){if(Q.const===void 0)return;let J=Q.const;if(X.string=!1,X.number=!1,X.boolean=!1,X.null=!1,X.array=!1,X.object=!1,typeof J==="string")X.string=N.literal(J);else if(typeof J==="number")X.number=N.literal(J);else if(typeof J==="boolean")X.boolean=N.literal(J);else if(J===null)X.null=N.null();else if(Array.isArray(J))X.array=void 0;else if(typeof J==="object")X.object=void 0}},W04=class{apply(X,Q){if(!Q.enum)return;if(Q.enum.length===0){if(!Q.type)X.string=!1,X.number=!1,X.boolean=!1,X.null=!1,X.array=!1,X.object=!1;return}let J={string:Q.enum.filter((Y)=>typeof Y==="string"),number:Q.enum.filter((Y)=>typeof Y==="number"),boolean:Q.enum.filter((Y)=>typeof Y==="boolean"),null:Q.enum.filter((Y)=>Y===null),array:Q.enum.filter((Y)=>Array.isArray(Y)),object:Q.enum.filter((Y)=>typeof Y==="object"&&Y!==null&&!Array.isArray(Y))};X.string=this.createTypeSchema(J.string,"string"),X.number=this.createTypeSchema(J.number,"number"),X.boolean=this.createTypeSchema(J.boolean,"boolean"),X.null=J.null.length>0?N.null():!1,X.array=J.array.length>0?void 0:!1,X.object=J.object.length>0?void 0:!1}createTypeSchema(X,Q){if(X.length===0)return!1;if(X.length===1)return N.literal(X[0]);if(Q==="string")return N.enum(X);if(Q==="number"){let[J,Y,...G]=X;return N.union([N.literal(J),N.literal(Y),...G.map(($)=>N.literal($))])}if(Q==="boolean")return N.union([N.literal(!0),N.literal(!1)]);return!1}},H04=class{apply(X,Q){let J=Q;if(J.type==="string"&&J.format==="binary"&&J.contentEncoding==="binary"){let Y=N.file();if(J.minLength!==void 0)Y=Y.min(J.minLength);if(J.maxLength!==void 0)Y=Y.max(J.maxLength);if(J.contentMediaType!==void 0)Y=Y.mime(J.contentMediaType);X.file=Y,X.string=!1}}},K04=class{apply(X,Q){let J=Q;if(Q.type===void 0&&(J.minLength!==void 0||J.maxLength!==void 0||J.pattern!==void 0)){if(X.string===void 0)X.string=N.string()}}},Z04=class{apply(X,Q){let J=Q;if(J.minLength===void 0)return;if(X.string!==!1){let Y=X.string||N.string();if(Y instanceof N.ZodString)X.string=Y.refine((G)=>{return Array.from(G).length>=J.minLength},{message:`String must be at least ${J.minLength} characters long`})}}},F04=class{apply(X,Q){let J=Q;if(J.maxLength===void 0)return;if(X.string!==!1){let Y=X.string||N.string();if(Y instanceof N.ZodString)X.string=Y.refine((G)=>{return Array.from(G).length<=J.maxLength},{message:`String must be at most ${J.maxLength} characters long`})}}},V04=class{apply(X,Q){let J=Q;if(!J.pattern)return;if(X.string!==!1){let Y=X.string||N.string();if(Y instanceof N.ZodString){let G=new RegExp(J.pattern);X.string=Y.regex(G)}}}},q04=class{apply(X,Q){let J=Q;if(J.minimum===void 0)return;if(X.number!==!1){let Y=X.number||N.number();if(Y instanceof N.ZodNumber)X.number=Y.min(J.minimum)}}},U04=class{apply(X,Q){let J=Q;if(J.maximum===void 0)return;if(X.number!==!1){let Y=X.number||N.number();if(Y instanceof N.ZodNumber)X.number=Y.max(J.maximum)}}},z04=class{apply(X,Q){let J=Q;if(J.exclusiveMinimum===void 0)return;if(X.number!==!1){let Y=X.number||N.number();if(Y instanceof N.ZodNumber)if(typeof J.exclusiveMinimum==="number")X.number=Y.gt(J.exclusiveMinimum);else X.number=!1}}},B04=class{apply(X,Q){let J=Q;if(J.exclusiveMaximum===void 0)return;if(X.number!==!1){let Y=X.number||N.number();if(Y instanceof N.ZodNumber)if(typeof J.exclusiveMaximum==="number")X.number=Y.lt(J.exclusiveMaximum);else X.number=!1}}},L04=class{apply(X,Q){let J=Q;if(J.multipleOf===void 0)return;if(X.number!==!1){let Y=X.number||N.number();if(Y instanceof N.ZodNumber)X.number=Y.refine((G)=>{if(J.multipleOf===0)return!1;let $=G/J.multipleOf,W=Math.round($),H=Math.min(Math.abs(G)*Number.EPSILON*10,Math.abs(J.multipleOf)*Number.EPSILON*10);return Math.abs($-W)<=H/Math.abs(J.multipleOf)},{message:`Must be a multiple of ${J.multipleOf}`})}}},D04=class{apply(X,Q){let J=Q;if(Q.type===void 0&&(J.minItems!==void 0||J.maxItems!==void 0||J.items!==void 0||J.prefixItems!==void 0)){if(X.array===void 0)X.array=N.array(N.any())}}},j04=class{apply(X,Q){let J=Q;if(J.minItems===void 0)return;if(X.array!==!1)X.array=(X.array||N.array(N.any())).min(J.minItems)}},N04=class{apply(X,Q){let J=Q;if(J.maxItems===void 0)return;if(X.array!==!1)X.array=(X.array||N.array(N.any())).max(J.maxItems)}},O04=class{apply(X,Q){let J=Q;if(X.array===!1)return;if(Array.isArray(J.items))X.array=X.array||N.array(N.any());else if(J.items&&typeof J.items!=="boolean"&&!J.prefixItems){let Y=UX(J.items),G=N.array(Y);if(X.array&&X.array instanceof N.ZodArray){let $=X.array._def;if($.checks)$.checks.forEach((W)=>{if(W._zod&&W._zod.def){let H=W._zod.def;if(H.check==="min_length"&&H.minimum!==void 0)G=G.min(H.minimum);else if(H.check==="max_length"&&H.maximum!==void 0)G=G.max(H.maximum)}})}X.array=G}else if(typeof J.items==="boolean"&&J.items===!1)if(!J.prefixItems)X.array=N.array(N.any()).max(0);else X.array=X.array||N.array(N.any());else if(typeof J.items==="boolean"&&J.items===!0)X.array=X.array||N.array(N.any());else if(J.prefixItems)X.array=X.array||N.array(N.any())}},M04=class{apply(X,Q){if(Q.type!=="array")return;let J=Q;if(!Array.isArray(J.items))return;if(X.array===!1)return;let Y=J.items.map(($)=>UX($)),G;if(Y.length===0)G=N.tuple([]);else G=N.tuple(Y);if(J.minItems!==void 0&&J.minItems>Y.length)G=!1;if(J.maxItems!==void 0&&J.maxItems<Y.length)G=!1;X.tuple=G,X.array=!1}},w04=class{apply(X,Q){let J=Q;if(X.object===!1)return;if(J.properties||J.required||J.additionalProperties!==void 0)X.object=X.object||N.object({}).passthrough()}},P04=class{apply(X,Q){let J=Q;if(Q.type===void 0&&(J.maxProperties!==void 0||J.minProperties!==void 0)){if(X.object===void 0)X.object=N.object({}).passthrough()}}},T04=class{apply(X,Q){let J=Q;if(J.maxProperties===void 0)return;if(X.object!==!1){let Y=X.object||N.object({}).passthrough();X.object=Y.refine((G)=>Object.keys(G).length<=J.maxProperties,{message:`Object must have at most ${J.maxProperties} properties`})}}},A04=class{apply(X,Q){let J=Q;if(J.minProperties===void 0)return;if(X.object!==!1){let Y=X.object||N.object({}).passthrough();X.object=Y.refine((G)=>Object.keys(G).length>=J.minProperties,{message:`Object must have at least ${J.minProperties} properties`})}}},C04=class{apply(X,Q){if(!Q.not)return X;let J=UX(Q.not);return X.refine((Y)=>!EP(J,Y),{message:"Value must not match the 'not' schema"})}},R04=class{apply(X,Q){if(Q.uniqueItems!==!0)return X;return X.refine(E04(),{message:"Array items must be unique"})}},I04=class{apply(X,Q){if(!Q.allOf||Q.allOf.length===0)return X;return Q.allOf.map((Y)=>UX(Y)).reduce((Y,G)=>N.intersection(Y,G),X)}},S04=class{apply(X,Q){if(!Q.anyOf||Q.anyOf.length===0)return X;let J=Q.anyOf.length===1?UX(Q.anyOf[0]):N.union([UX(Q.anyOf[0]),UX(Q.anyOf[1]),...Q.anyOf.slice(2).map((Y)=>UX(Y))]);return N.intersection(X,J)}},v04=class{apply(X,Q){if(!Q.oneOf||Q.oneOf.length===0)return X;let J=Q.oneOf.map((Y)=>UX(Y));return X.refine((Y)=>{let G=0;for(let $ of J)if($.safeParse(Y).success){if(G++,G>1)return!1}return G===1},{message:"Value must match exactly one of the oneOf schemas"})}},k04=class{apply(X,Q){let J=Q;if(J.prefixItems&&Array.isArray(J.prefixItems)){let G=J.prefixItems.map(($)=>UX($));return X.refine(($)=>{if(!Array.isArray($))return!0;for(let W=0;W<Math.min($.length,G.length);W++)if(!EP(G[W],$[W]))return!1;if($.length>G.length){if(typeof J.items==="boolean"&&J.items===!1)return!1;else if(J.items&&typeof J.items==="object"&&!Array.isArray(J.items)){let W=UX(J.items);for(let H=G.length;H<$.length;H++)if(!EP(W,$[H]))return!1}}return!0},{message:"Array does not match prefixItems schema"})}return X}},_04=class{apply(X,Q){let J=Q;if(!J.properties&&!J.required&&J.additionalProperties!==!1)return X;if(X instanceof N.ZodObject||X instanceof N.ZodRecord){let Y={};if(J.properties){for(let[G,$]of Object.entries(J.properties))if($!==void 0)Y[G]=UX($)}if(J.required&&Array.isArray(J.required)){let G=new Set(J.required);for(let $ of Object.keys(Y))if(!G.has($))Y[$]=Y[$].optional()}else for(let G of Object.keys(Y))Y[G]=Y[G].optional();if(J.additionalProperties===!1)return N.object(Y);else return N.object(Y).passthrough()}return X.refine((Y)=>{if(typeof Y!=="object"||Y===null||Array.isArray(Y))return!0;if(J.properties){for(let[G,$]of Object.entries(J.properties))if($!==void 0){if(Object.getOwnPropertyDescriptor(Y,G)!==void 0){if(!UX($).safeParse(Y[G]).success)return!1}}}if(J.required&&Array.isArray(J.required)){for(let G of J.required)if(Object.getOwnPropertyDescriptor(Y,G)===void 0)return!1}if(J.additionalProperties===!1&&J.properties){let G=new Set(Object.keys(J.properties));for(let $ in Y)if(!G.has($))return!1}return!0},{message:"Object constraints validation failed"})}},b04=class{apply(X,Q){if(!Q.enum||Q.enum.length===0)return X;let J=Q.enum.filter((Y)=>Array.isArray(Y)||typeof Y==="object"&&Y!==null);if(J.length===0)return X;return X.refine((Y)=>{if(typeof Y!=="object"||Y===null)return!0;return J.some((G)=>wU(Y,G))},{message:"Value must match one of the enum values"})}},y04=class{apply(X,Q){if(Q.const===void 0)return X;let J=Q.const;if(typeof J!=="object"||J===null)return X;return X.refine((Y)=>wU(Y,J),{message:"Value must equal the const value"})}},f04=class{apply(X,Q){if(Q.description)X=X.describe(Q.description);return X}},h04=class{apply(X,Q){var J;let Y=Q;if(!((J=Y.required)==null?void 0:J.includes("__proto__"))||Q.type!==void 0)return X;return N.any().refine((G)=>this.validateRequired(G,Y.required),{message:"Missing required properties"})}validateRequired(X,Q){if(typeof X!=="object"||X===null||Array.isArray(X))return!0;return Q.every((J)=>Object.prototype.hasOwnProperty.call(X,J))}},g04=class{apply(X,Q){var J;let Y=Q;if(Y.contains===void 0)return X;let G=UX(Y.contains),$=(J=Y.minContains)!=null?J:1,W=Y.maxContains;return X.refine((H)=>{if(!Array.isArray(H))return!0;let K=0;for(let Z of H)if(EP(G,Z))K++;if(K<$)return!1;if(W!==void 0&&K>W)return!1;return!0},{message:"Array must contain required items matching the schema"})}},x04=class{apply(X,Q){let{default:J}=Q;if(J===void 0)return X;if(!X.safeParse(J).success)return X;return X.default(J)}},u04,m04;var hH0=m(()=>{u1();u1();u1();u1();u1();u1();u1();u1();u1();u1();u1();u1();u1();u1();u04=[new $04,new W04,new G04,new H04,new K04,new D04,new P04,new Z04,new F04,new V04,new q04,new U04,new z04,new B04,new L04,new M04,new j04,new N04,new O04,new T04,new A04,new w04],m04=[new h04,new b04,new y04,new I04,new S04,new v04,new k04,new _04,new g04,new C04,new R04,new x04,new f04]});function l04(X){let Q=globalThis.DOMException;return typeof Q=="function"?new Q(X,"SyntaxError"):SyntaxError(X)}function Dg(X){return X instanceof Error?"errors"in X&&Array.isArray(X.errors)?X.errors.map(Dg).join(", "):("cause"in X)&&X.cause instanceof Error?`${X}: ${Dg(X.cause)}`:X.message:`${X}`}function gH0(X){return{type:X.type,message:X.message,code:X.code,defaultPrevented:X.defaultPrevented,cancelable:X.cancelable,timeStamp:X.timeStamp}}function d04(){let X="document"in globalThis?globalThis.document:void 0;return X&&typeof X=="object"&&"baseURI"in X&&typeof X.baseURI=="string"?X.baseURI:void 0}var Lg,uH0=(X)=>{throw TypeError(X)},Ag=(X,Q,J)=>Q.has(X)||uH0("Cannot "+J),H6=(X,Q,J)=>(Ag(X,Q,"read from private field"),J?J.call(X):Q.get(X)),P1=(X,Q,J)=>Q.has(X)?uH0("Cannot add the same private member more than once"):Q instanceof WeakSet?Q.add(X):Q.set(X,J),h8=(X,Q,J,Y)=>(Ag(X,Q,"write to private field"),Q.set(X,J),J),PG=(X,Q,J)=>(Ag(X,Q,"access private method"),J),kQ,Q7,WZ,CP,RP,AU,ZZ,EU,J5,HZ,FZ,KZ,PU,M9,jg,Ng,Og,xH0,Mg,wg,TU,Pg,Tg,VZ;var mH0=m(()=>{Wh();Lg=class Lg extends Event{constructor(X,Q){var J,Y;super(X),this.code=(J=Q==null?void 0:Q.code)!=null?J:void 0,this.message=(Y=Q==null?void 0:Q.message)!=null?Y:void 0}[Symbol.for("nodejs.util.inspect.custom")](X,Q,J){return J(gH0(this),Q)}[Symbol.for("Deno.customInspect")](X,Q){return X(gH0(this),Q)}};VZ=class VZ extends EventTarget{constructor(X,Q){var J,Y;super(),P1(this,M9),this.CONNECTING=0,this.OPEN=1,this.CLOSED=2,P1(this,kQ),P1(this,Q7),P1(this,WZ),P1(this,CP),P1(this,RP),P1(this,AU),P1(this,ZZ),P1(this,EU,null),P1(this,J5),P1(this,HZ),P1(this,FZ,null),P1(this,KZ,null),P1(this,PU,null),P1(this,Ng,async(G)=>{var $;H6(this,HZ).reset();let{body:W,redirected:H,status:K,headers:Z}=G;if(K===204){PG(this,M9,TU).call(this,"Server sent HTTP 204, not reconnecting",204),this.close();return}if(H?h8(this,WZ,new URL(G.url)):h8(this,WZ,void 0),K!==200){PG(this,M9,TU).call(this,`Non-200 status code (${K})`,K);return}if(!(Z.get("content-type")||"").startsWith("text/event-stream")){PG(this,M9,TU).call(this,'Invalid content type, expected "text/event-stream"',K);return}if(H6(this,kQ)===this.CLOSED)return;h8(this,kQ,this.OPEN);let F=new Event("open");if(($=H6(this,PU))==null||$.call(this,F),this.dispatchEvent(F),typeof W!="object"||!W||!("getReader"in W)){PG(this,M9,TU).call(this,"Invalid response body, expected a web ReadableStream",K),this.close();return}let V=new TextDecoder,q=W.getReader(),B=!0;do{let{done:L,value:D}=await q.read();D&&H6(this,HZ).feed(V.decode(D,{stream:!L})),L&&(B=!1,H6(this,HZ).reset(),PG(this,M9,Pg).call(this))}while(B)}),P1(this,Og,(G)=>{h8(this,J5,void 0),!(G.name==="AbortError"||G.type==="aborted")&&PG(this,M9,Pg).call(this,Dg(G))}),P1(this,Mg,(G)=>{typeof G.id=="string"&&h8(this,EU,G.id);let $=new MessageEvent(G.event||"message",{data:G.data,origin:H6(this,WZ)?H6(this,WZ).origin:H6(this,Q7).origin,lastEventId:G.id||""});H6(this,KZ)&&(!G.event||G.event==="message")&&H6(this,KZ).call(this,$),this.dispatchEvent($)}),P1(this,wg,(G)=>{h8(this,AU,G)}),P1(this,Tg,()=>{h8(this,ZZ,void 0),H6(this,kQ)===this.CONNECTING&&PG(this,M9,jg).call(this)});try{if(X instanceof URL)h8(this,Q7,X);else if(typeof X=="string")h8(this,Q7,new URL(X,d04()));else throw Error("Invalid URL")}catch{throw l04("An invalid or illegal string was specified")}h8(this,HZ,LP({onEvent:H6(this,Mg),onRetry:H6(this,wg)})),h8(this,kQ,this.CONNECTING),h8(this,AU,3000),h8(this,RP,(J=Q==null?void 0:Q.fetch)!=null?J:globalThis.fetch),h8(this,CP,(Y=Q==null?void 0:Q.withCredentials)!=null?Y:!1),PG(this,M9,jg).call(this)}get readyState(){return H6(this,kQ)}get url(){return H6(this,Q7).href}get withCredentials(){return H6(this,CP)}get onerror(){return H6(this,FZ)}set onerror(X){h8(this,FZ,X)}get onmessage(){return H6(this,KZ)}set onmessage(X){h8(this,KZ,X)}get onopen(){return H6(this,PU)}set onopen(X){h8(this,PU,X)}addEventListener(X,Q,J){let Y=Q;super.addEventListener(X,Y,J)}removeEventListener(X,Q,J){let Y=Q;super.removeEventListener(X,Y,J)}close(){H6(this,ZZ)&&clearTimeout(H6(this,ZZ)),H6(this,kQ)!==this.CLOSED&&(H6(this,J5)&&H6(this,J5).abort(),h8(this,kQ,this.CLOSED),h8(this,J5,void 0))}};kQ=new WeakMap,Q7=new WeakMap,WZ=new WeakMap,CP=new WeakMap,RP=new WeakMap,AU=new WeakMap,ZZ=new WeakMap,EU=new WeakMap,J5=new WeakMap,HZ=new WeakMap,FZ=new WeakMap,KZ=new WeakMap,PU=new WeakMap,M9=new WeakSet,jg=function(){h8(this,kQ,this.CONNECTING),h8(this,J5,new AbortController),H6(this,RP)(H6(this,Q7),PG(this,M9,xH0).call(this)).then(H6(this,Ng)).catch(H6(this,Og))},Ng=new WeakMap,Og=new WeakMap,xH0=function(){var X;let Q={mode:"cors",redirect:"follow",headers:{Accept:"text/event-stream",...H6(this,EU)?{"Last-Event-ID":H6(this,EU)}:void 0},cache:"no-store",signal:(X=H6(this,J5))==null?void 0:X.signal};return"window"in globalThis&&(Q.credentials=this.withCredentials?"include":"same-origin"),Q},Mg=new WeakMap,wg=new WeakMap,TU=function(X,Q){var J;H6(this,kQ)!==this.CLOSED&&h8(this,kQ,this.CLOSED);let Y=new Lg("error",{code:Q,message:X});(J=H6(this,FZ))==null||J.call(this,Y),this.dispatchEvent(Y)},Pg=function(X,Q){var J;if(H6(this,kQ)===this.CLOSED)return;h8(this,kQ,this.CONNECTING);let Y=new Lg("error",{code:Q,message:X});(J=H6(this,FZ))==null||J.call(this,Y),this.dispatchEvent(Y),h8(this,ZZ,setTimeout(H6(this,Tg),H6(this,AU)))},Tg=new WeakMap,VZ.CONNECTING=0,VZ.OPEN=1,VZ.CLOSED=2});class Eg{constructor(X,Q){this._url=X,this._resourceMetadataUrl=void 0,this._scope=void 0,this._eventSourceInit=Q?.eventSourceInit,this._requestInit=Q?.requestInit,this._authProvider=Q?.authProvider,this._fetch=Q?.fetch,this._fetchWithInit=YP(Q?.fetch,Q?.requestInit)}async _authThenStart(){if(!this._authProvider)throw new vQ("No auth provider");let X;try{X=await MG(this._authProvider,{serverUrl:this._url,resourceMetadataUrl:this._resourceMetadataUrl,scope:this._scope,fetchFn:this._fetchWithInit})}catch(Q){throw this.onerror?.(Q),Q}if(X!=="AUTHORIZED")throw new vQ;return await this._startOrAuth()}async _commonHeaders(){let X={};if(this._authProvider){let J=await this._authProvider.tokens();if(J)X.Authorization=`Bearer ${J.access_token}`}if(this._protocolVersion)X["mcp-protocol-version"]=this._protocolVersion;let Q=rK(this._requestInit?.headers);return new Headers({...X,...Q})}_startOrAuth(){let X=this?._eventSourceInit?.fetch??this._fetch??fetch;return new Promise((Q,J)=>{this._eventSource=new VZ(this._url.href,{...this._eventSourceInit,fetch:async(Y,G)=>{let $=await this._commonHeaders();$.set("Accept","text/event-stream");let W=await X(Y,{...G,headers:$});if(W.status===401&&W.headers.has("www-authenticate")){let{resourceMetadataUrl:H,scope:K}=eK(W);this._resourceMetadataUrl=H,this._scope=K}return W}}),this._abortController=new AbortController,this._eventSource.onerror=(Y)=>{if(Y.code===401&&this._authProvider){this._authThenStart().then(Q,J);return}let G=new lH0(Y.code,Y.message,Y);J(G),this.onerror?.(G)},this._eventSource.onopen=()=>{},this._eventSource.addEventListener("endpoint",(Y)=>{let G=Y;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($){J($),this.onerror?.($),this.close();return}Q()}),this._eventSource.onmessage=(Y)=>{let G=Y,$;try{$=YJ.parse(JSON.parse(G.data))}catch(W){this.onerror?.(W);return}this.onmessage?.($)}})}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(X){if(!this._authProvider)throw new vQ("No auth provider");if(await MG(this._authProvider,{serverUrl:this._url,authorizationCode:X,resourceMetadataUrl:this._resourceMetadataUrl,scope:this._scope,fetchFn:this._fetchWithInit})!=="AUTHORIZED")throw new vQ("Failed to authorize")}async close(){this._abortController?.abort(),this._eventSource?.close(),this.onclose?.()}async send(X){if(!this._endpoint)throw Error("Not connected");try{let Q=await this._commonHeaders();Q.set("content-type","application/json");let J={...this._requestInit,method:"POST",headers:Q,body:JSON.stringify(X),signal:this._abortController?.signal},Y=await(this._fetch??fetch)(this._endpoint,J);if(!Y.ok){let G=await Y.text().catch(()=>null);if(Y.status===401&&this._authProvider){let{resourceMetadataUrl:$,scope:W}=eK(Y);if(this._resourceMetadataUrl=$,this._scope=W,await MG(this._authProvider,{serverUrl:this._url,resourceMetadataUrl:this._resourceMetadataUrl,scope:this._scope,fetchFn:this._fetchWithInit})!=="AUTHORIZED")throw new vQ;return this.send(X)}throw Error(`Error POSTing to endpoint (HTTP ${Y.status}): ${G}`)}await Y.body?.cancel()}catch(Q){throw this.onerror?.(Q),Q}}setProtocolVersion(X){this._protocolVersion=X}}var lH0;var dH0=m(()=>{mH0();GJ();Yh();lH0=class lH0 extends Error{constructor(X,Q,J){super(`SSE error: ${Q}`);this.code=X,this.event=J}}});class Cg{constructor(X){this._url=X}start(){if(this._socket)throw Error("WebSocketClientTransport already started! If using Client class, note that connect() calls start() automatically.");return new Promise((X,Q)=>{this._socket=new WebSocket(this._url,p04),this._socket.onerror=(J)=>{let Y="error"in J?J.error:Error(`WebSocket error: ${JSON.stringify(J)}`);Q(Y),this.onerror?.(Y)},this._socket.onopen=()=>{X()},this._socket.onclose=()=>{this.onclose?.()},this._socket.onmessage=(J)=>{let Y;try{Y=YJ.parse(JSON.parse(J.data))}catch(G){this.onerror?.(G);return}this.onmessage?.(Y)}})}async close(){this._socket?.close()}send(X){return new Promise((Q,J)=>{if(!this._socket){J(Error("Not connected"));return}this._socket?.send(JSON.stringify(X)),Q()})}}var p04="mcp";var pH0=m(()=>{GJ()});function c04(X){let Q=X;if(!Q||typeof Q!=="object"||!("method"in Q))return null;switch(Q.method){case"initialize":{let J=Q?.params?.protocolVersion;if(!J)return null;return{type:"emit",message:{result:{protocolVersion:J,capabilities:{tools:{}},serverInfo:{name:"deco-chat-server",version:"1.0.0"}},jsonrpc:Q.jsonrpc??"2.0",id:Q.id}}}case"notifications/roots/list_changed":case"notifications/initialized":case"notifications/cancelled":case"notifications/progress":return{type:"suppress"};default:return null}}var Rg;var cH0=m(()=>{Kh();Rg=class Rg extends zU{constructor(X,Q){super(X,Q)}send(X,Q){let J=c04(X);if(J?.type==="emit")return this.onmessage?.(J.message),Promise.resolve();if(J?.type==="suppress")return Promise.resolve();return super.send(X,Q)}}});var nH0,iH0=async(X,Q,J)=>{let Y=n04(X.connection,Q,J);if(!Y)throw Error("Unknown MCP connection type");let G=new nH0({name:X?.name??"MCP Client",version:"1.0.0"});return await G.connect(Y),{client:G,callStreamableTool:($,W)=>{if(X.connection.type!=="HTTP")throw Error("HTTP connection required");let H=new Headers(J);if(!H.has("Authorization"))H.set("Authorization",`Bearer ${X.connection.token}`);for(let[F,V]of Object.entries(X.connection.headers??{}))H.set(F,V);let K=new URL(X.connection.url),Z=K.pathname.replace(/\/+$/,"")||"/";return K.pathname=`${Z}/call-tool/${encodeURIComponent($)}`,fetch(K.href,{method:"POST",redirect:"manual",body:JSON.stringify(W),headers:H})}}},n04=(X,Q,J)=>{if(X.type==="Websocket")return new Cg(new URL(X.url));if(X.type!=="SSE"&&X.type!=="HTTP")return null;let G={...X.token?{authorization:`Bearer ${X.token}`}:{},...J??{},..."headers"in X?X.headers||{}:{}};if(X.type==="SSE"){let $={requestInit:{headers:G,signal:Q}};if(X.token)$.eventSourceInit={fetch:(W,H)=>{return fetch(W,{...H,headers:{...G,Accept:"text/event-stream"},signal:Q})}};return new Eg(new URL(X.url),$)}return new Rg(new URL(X.url),{requestInit:{headers:G,signal:Q,credentials:"include"}})};var rH0=m(()=>{yf();dH0();pH0();GJ();cH0();nH0=class nH0 extends cK{constructor(X,Q){super(X,Q)}async listTools(X,Q){return await this.request({method:"tools/list",params:X},xq,Q)}}});function oH0(X){let Q=(J)=>{if("connection"in X)return iH0({connection:X.connection},void 0,J);return X.client};return new Proxy({},{get(J,Y){if(Y==="toJSON")return null;if(typeof Y!=="string")throw Error("Name must be a string");if(Y==="listTools")return H;async function G(K,Z=Y){let F=X?.debugId?.(),V=F?{"x-trace-debug-id":F}:void 0,{client:q,callStreamableTool:B}=await Q(V);if(X?.streamable?.[String(Z)])return B(String(Z),K);let{structuredContent:L,isError:D,content:j}=await q.callTool({name:String(Z),arguments:K});if(D){let O=j?.[0]?.text,T=typeof O==="string"?i04(O):null,C=T?.code&&typeof X?.getErrorByStatusCode==="function"?X.getErrorByStatusCode(T.code,T.message,T.traceId):null;if(C)throw C;throw Error(`Tool ${String(Z)} returned an error: ${JSON.stringify(L??j)}`)}return L}async function $(){let{client:K}=await Q(),{tools:Z}=await K.listTools();return Z}async function W(){if(!("connection"in X))return $();let K=X.connection,Z=JSON.stringify(K);try{if(!IP.has(Z))IP.set(Z,$());return await IP.get(Z)}catch(F){console.error("Failed to list tools",F),IP.delete(Z);return}}async function H(){return(await W()??[]).map((Z)=>aH0(Z,G))}return G.asTool=async()=>{let Z=(await W()??[]).find((F)=>F.name===Y);if(!Z)throw Error(`Tool ${Y} not found`);return aH0(Z,G)},G}})}var i04=(X)=>{try{return JSON.parse(X)}catch{return X}},IP,aH0=(X,Q)=>{return{...X,id:X.name,inputSchema:X.inputSchema?UX(X.inputSchema):void 0,outputSchema:X.outputSchema?UX(X.outputSchema):void 0,execute:(J)=>{return Q(J.context,X.name)}}};var sH0=m(()=>{hH0();rH0();IP=new Map});function SP(X){return oH0(X)}var wx4;var tH0=m(()=>{sH0();wx4=new Proxy({},{get(X,Q){if(Q==="toJSON")return null;if(Q==="forConnection")return(J)=>SP({connection:J});return global[Q]}})});function vP(X){return{isImplementedBy:(Q)=>{for(let J of X){let Y=typeof J.name==="string"?new RegExp(`^${J.name}$`):J.name,G=Q.find(($)=>Y.test($.name));if(!G&&J.opt)continue;if(!G)return!1}return!0}}}var qZ=(X)=>{return{...vP(X),forClient:(Q)=>{return SP({client:Q,streamable:X.reduce((J,Y)=>{return J[Y.name]=Y.streamable===!0,J},{})})},forConnection:(Q)=>{return SP({connection:Q,streamable:X.reduce((J,Y)=>{return J[Y.name]=Y.streamable===!0,J},{})})}}};var CU=m(()=>{tH0()});function IU(X){return N.object({items:N.array(X).describe("Array of collection items"),totalCount:N.number().int().min(0).optional().describe("Total number of matching items (if available)"),hasMore:N.boolean().optional().describe("Whether there are more items available")})}function Sg(X){return N.object({item:X.nullable().describe("The retrieved item, or null if not found")})}function o04(X){return N.object({data:X.partial().describe("Data for the new entity (id may be auto-generated)")})}function s04(X){return N.object({item:X.describe("The created entity with generated id")})}function t04(X){return N.object({id:N.string().describe("ID of the entity to update"),data:X.partial().describe("Partial entity data to update")})}function e04(X){return N.object({item:X.describe("The updated entity")})}function kg(X){return N.object({item:X.describe("The deleted entity")})}function zZ(X,Q,J){let Y=X.toUpperCase(),G=J?.readOnly??!1,$=[{name:`COLLECTION_${Y}_LIST`,inputSchema:RU,outputSchema:IU(Q)},{name:`COLLECTION_${Y}_GET`,inputSchema:Ig,outputSchema:Sg(Q)}];if(!G)$.push({name:`COLLECTION_${Y}_CREATE`,inputSchema:o04(Q),outputSchema:s04(Q),opt:!0},{name:`COLLECTION_${Y}_UPDATE`,inputSchema:t04(Q),outputSchema:e04(Q),opt:!0},{name:`COLLECTION_${Y}_DELETE`,inputSchema:vg,outputSchema:kg(Q),opt:!0});return $}var UZ,r04,eH0,a04,RU,Ig,vg;var Y5=m(()=>{d0();UZ=N.object({id:N.string().describe("Unique identifier for the entity"),title:N.string().describe("Human-readable title for the entity"),description:N.string().nullish().describe("Description of the entity"),created_at:N.string().datetime(),updated_at:N.string().datetime(),created_by:N.string().optional(),updated_by:N.string().optional()}),r04=N.object({field:N.array(N.string()),operator:N.enum(["eq","gt","gte","lt","lte","in","like","contains"]),value:N.unknown()}),eH0=N.lazy(()=>N.union([r04,N.object({operator:N.enum(["and","or","not"]),conditions:N.array(eH0)})])),a04=N.object({field:N.array(N.string()),direction:N.enum(["asc","desc"]),nulls:N.enum(["first","last"]).optional()}),RU=N.object({where:eH0.optional().describe("Filter expression"),orderBy:N.array(a04).optional().describe("Sort expressions"),limit:N.number().int().min(1).max(1000).optional().describe("Maximum number of items to return"),offset:N.number().int().min(0).optional().describe("Number of items to skip")});Ig=N.object({id:N.string().describe("ID of the entity to retrieve")});vg=N.object({id:N.string().describe("ID of the entity to delete")})});var X44,XK0,vx4;var QK0=m(()=>{d0();Y5();X44=N.object({id:N.string(),name:N.string(),description:N.string().optional(),inputSchema:N.record(N.string(),N.unknown()),outputSchema:N.record(N.string(),N.unknown()).optional()}),XK0=UZ.extend({_meta:N.object({"io.decocms":N.object({id:N.string(),verified:N.boolean(),scopeName:N.string(),appName:N.string(),friendlyName:N.string().nullable().optional(),metadata:N.record(N.string(),N.unknown()).nullable().optional(),publishedAt:N.string().datetime().optional(),updatedAt:N.string().datetime().optional(),tools:N.array(X44).nullable().optional().describe("Available tools exposed by this app")}).optional()}).optional(),server:N.object({$schema:N.string().optional(),_meta:N.record(N.string(),N.unknown()).optional(),name:N.string().describe("The server name (scope/app)"),title:N.string().optional().describe("User-friendly title"),description:N.string().optional().describe("Server description"),icons:N.array(N.object({src:N.string(),mimeType:N.string().optional(),sizes:N.array(N.string()).optional(),theme:N.enum(["light","dark"]).optional()})).optional(),remotes:N.array(N.object({type:N.enum(["http","stdio","sse"]),url:N.string().optional(),headers:N.array(N.unknown()).optional()})).optional(),packages:N.array(N.unknown()).optional(),repository:N.object({url:N.string(),source:N.string().optional(),subfolder:N.string().optional()}).optional(),version:N.string().optional(),websiteUrl:N.string().optional()})}),vx4=zZ("registry_app",XK0,{readOnly:!0})});var JK0,YK0,GK0,$K0,WK0,Q44;var HK0=m(()=>{d0();CU();JK0=N.object({specversion:N.literal("1.0").describe("CloudEvents specification version"),id:N.string().describe("Unique identifier for this event (UUID recommended)"),source:N.string().describe("Connection ID of the event publisher"),type:N.string().describe("Event type (e.g., 'order.created', 'user.signup')"),time:N.string().datetime().optional().describe("Timestamp of when the event occurred (ISO 8601)"),subject:N.string().optional().describe("Subject/resource identifier (e.g., order ID, user ID)"),datacontenttype:N.string().optional().default("application/json").describe("Content type of the data attribute"),dataschema:N.string().url().optional().describe("URI to the schema for the data attribute"),data:N.unknown().optional().describe("Event payload (any JSON value)")}),YK0=N.object({events:N.array(JK0).min(1).describe("Batch of CloudEvents to process")}),GK0=N.object({success:N.boolean().optional().describe("Whether this event was processed successfully"),error:N.string().optional().describe("Error message for this event"),retryAfter:N.number().int().positive().optional().describe("Re-deliver this event after this many ms")}),$K0=N.object({success:N.boolean().optional().describe("Batch success - applies to events not in results"),error:N.string().optional().describe("Batch error message - applies to events not in results"),processedCount:N.number().int().min(0).optional().describe("Number of events successfully processed"),retryAfter:N.number().int().positive().optional().describe("Batch retryAfter - applies to events not in results"),results:N.record(N.string(),GK0).optional().describe("Per-event results keyed by event ID")}),WK0=[{name:"ON_EVENTS",inputSchema:YK0,outputSchema:$K0}],Q44=qZ(WK0)});var SU,vU,kU,_U,KK0,ZK0,bU,yU,fU,hU,gU,xU,uU,mU,FK0,J44;var VK0=m(()=>{d0();CU();SU=N.object({type:N.string().min(1).max(255).describe("Event type identifier"),subject:N.string().max(255).optional().describe("Subject/resource identifier (e.g., order ID)"),data:N.unknown().optional().describe("Event payload"),deliverAt:N.string().datetime().optional().describe("Scheduled delivery time (ISO 8601). Omit for immediate delivery."),cron:N.string().max(100).optional().describe("Cron expression for recurring delivery. Use EVENT_CANCEL to stop.")}),vU=N.object({id:N.string().describe("Unique event ID"),type:N.string().describe("Event type"),source:N.string().describe("Source connection ID"),time:N.string().describe("Event timestamp")}),kU=N.object({eventType:N.string().min(1).max(255).describe("Event type to subscribe to"),publisher:N.string().optional().describe("Filter events by publisher connection ID"),filter:N.string().max(1000).optional().describe("JSONPath filter expression on event data")}),_U=N.object({subscription:N.object({id:N.string().describe("Subscription ID"),connectionId:N.string().describe("Subscriber connection ID"),eventType:N.string().describe("Event type pattern"),publisher:N.string().nullable().describe("Publisher connection filter"),filter:N.string().nullable().describe("JSONPath filter expression"),enabled:N.boolean().describe("Whether subscription is enabled"),createdAt:N.union([N.string(),N.date()]).describe("Created timestamp"),updatedAt:N.union([N.string(),N.date()]).describe("Updated timestamp")})}),KK0=N.object({eventType:N.string().min(1).max(255).describe("Event type to subscribe to"),publisher:N.string().optional().describe("Filter events by publisher connection ID"),filter:N.string().max(1000).optional().describe("JSONPath filter expression on event data")}),ZK0=N.object({id:N.string().describe("Subscription ID"),connectionId:N.string().describe("Subscriber connection ID"),eventType:N.string().describe("Event type pattern"),publisher:N.string().nullable().describe("Publisher connection filter"),filter:N.string().nullable().describe("JSONPath filter expression"),enabled:N.boolean().describe("Whether subscription is enabled"),createdAt:N.union([N.string(),N.date()]).describe("Created timestamp"),updatedAt:N.union([N.string(),N.date()]).describe("Updated timestamp")}),bU=N.object({subscriptions:N.array(KK0).describe("Desired subscriptions - system will create/update/delete to match")}),yU=N.object({created:N.number().int().min(0).describe("Number of subscriptions created"),updated:N.number().int().min(0).describe("Number of subscriptions with filter updated"),deleted:N.number().int().min(0).describe("Number of subscriptions removed"),unchanged:N.number().int().min(0).describe("Number of subscriptions unchanged"),subscriptions:N.array(ZK0).describe("Current subscriptions after sync")}),fU=N.object({subscriptionId:N.string().describe("Subscription ID to remove")}),hU=N.object({success:N.boolean().describe("Whether unsubscribe was successful"),subscriptionId:N.string().describe("Subscription ID that was removed")}),gU=N.object({eventId:N.string().describe("Event ID to cancel")}),xU=N.object({success:N.boolean().describe("Whether cancellation was successful"),eventId:N.string().describe("Event ID that was cancelled")}),uU=N.object({eventId:N.string().describe("Event ID to acknowledge")}),mU=N.object({success:N.boolean().describe("Whether ACK was successful"),eventId:N.string().describe("Event ID that was acknowledged")}),FK0=[{name:"EVENT_PUBLISH",inputSchema:SU,outputSchema:vU},{name:"EVENT_SUBSCRIBE",inputSchema:kU,outputSchema:_U},{name:"EVENT_UNSUBSCRIBE",inputSchema:fU,outputSchema:hU},{name:"EVENT_CANCEL",inputSchema:gU,outputSchema:xU},{name:"EVENT_ACK",inputSchema:uU,outputSchema:mU},{name:"EVENT_SYNC_SUBSCRIPTIONS",inputSchema:bU,outputSchema:yU}],J44=qZ(FK0)});var _g=m(()=>{CU();QK0();HK0();VK0()});var Y44,G44,qK0;var UK0=m(()=>{d0();Y5();Y44=UZ.extend({avatar:N.string().describe("URL or data URI to the assistant's avatar image"),system_prompt:N.string().describe("System prompt that defines the assistant's behavior"),gateway_id:N.string().describe("Gateway ID to use for this assistant"),model:N.object({id:N.string().describe("Model ID"),connectionId:N.string().describe("Connection ID that provides the model")}).describe("Selected model reference for this assistant")}),G44=zZ("assistant",Y44),qK0=[...G44]});var lU,TG,BK0,$44,W44,LK0,H44,K44,Z44,F44,V44,q44,DK0,U44,z44,B44,L44,D44,j44,N44,O44,M44,w44,sx4,P44,tx4,zK0,T44,A44,bg,ex4;var jK0=m(()=>{d0();CU();Y5();lU=N.lazy(()=>N.union([N.null(),N.string(),N.number(),N.boolean(),N.record(N.string(),lU),N.array(lU)])),TG=N.record(N.string(),N.record(N.string(),lU)).optional().describe("Additional provider-specific options. Outer record keyed by provider name, inner by option key"),BK0=N.object({type:N.literal("text"),text:N.string().describe("The text content"),providerOptions:TG}),$44=N.object({type:N.literal("text"),text:N.string().describe("The text content"),providerMetadata:N.any().optional().describe("Additional provider-specific metadata")}),W44=N.string().describe("File data as URL string"),LK0=N.object({type:N.literal("file"),filename:N.string().optional().describe("Optional filename of the file"),data:W44,mediaType:N.string().describe("IANA media type of the file (e.g., image/png, audio/mp3)"),providerOptions:TG}),H44=N.object({type:N.literal("file"),mediaType:N.string().describe("IANA media type of the file (e.g., image/png, audio/mp3)"),data:N.string().describe("Generated file data as base64 encoded string")}),K44=N.object({type:N.literal("reasoning"),text:N.string().describe("The reasoning text"),providerOptions:TG}),Z44=N.object({type:N.literal("reasoning"),text:N.string().describe("The reasoning text"),providerMetadata:N.any().optional().describe("Additional provider-specific metadata")}),F44=N.object({type:N.literal("tool-call"),toolCallId:N.string().describe("ID of the tool call, used to match with tool result"),toolName:N.string().describe("Name of the tool being called"),input:N.string().describe("Arguments of the tool call (JSON-serializable object matching tool input schema)"),providerExecuted:N.boolean().optional().describe("Whether the tool call will be executed by the provider"),providerOptions:TG}),V44=N.object({type:N.literal("tool-call"),toolCallId:N.string().describe("ID of the tool call"),toolName:N.string().describe("Name of the tool being called"),input:N.string().describe("Stringified JSON object with the tool call arguments"),providerExecuted:N.boolean().optional().describe("Whether the tool call will be executed by the provider"),providerMetadata:N.any().optional().describe("Additional provider-specific metadata")}),q44=N.union([N.object({type:N.literal("text"),value:N.string()}),N.object({type:N.literal("json"),value:lU}),N.object({type:N.literal("error-text"),value:N.string()}),N.object({type:N.literal("error-json"),value:lU}),N.object({type:N.literal("content"),value:N.array(N.union([N.object({type:N.literal("text"),text:N.string().describe("Text content")}),N.object({type:N.literal("media"),data:N.string().describe("Base-64 encoded media data"),mediaType:N.string().describe("IANA media type")})]))})]),DK0=N.object({type:N.literal("tool-result"),toolCallId:N.string().describe("ID of the tool call that this result is associated with"),toolName:N.string().describe("Name of the tool that generated this result"),output:q44.describe("Result of the tool call"),result:N.unknown().describe("Unknown result of the tool call"),providerOptions:TG}),U44=N.object({type:N.literal("tool-result"),toolCallId:N.string().describe("ID of the tool call that this result is associated with"),toolName:N.string().describe("Name of the tool that generated this result"),result:N.any().describe("Result of the tool call (JSON-serializable)"),isError:N.boolean().optional().describe("Whether the result is an error or error message"),providerExecuted:N.boolean().optional().describe("Whether the tool result was generated by the provider"),providerMetadata:N.any().optional().describe("Additional provider-specific metadata")}),z44=N.union([N.object({type:N.literal("source"),sourceType:N.literal("url"),id:N.string().describe("The ID of the source"),url:N.string().describe("The URL of the source"),title:N.string().optional().describe("The title of the source"),providerMetadata:N.any().optional().describe("Additional provider-specific metadata")}),N.object({type:N.literal("source"),sourceType:N.literal("document"),id:N.string().describe("The ID of the source"),mediaType:N.string().describe("IANA media type of the document (e.g., application/pdf)"),title:N.string().describe("The title of the document"),filename:N.string().optional().describe("Optional filename of the document"),providerMetadata:N.any().optional().describe("Additional provider-specific metadata")})]),B44=N.object({role:N.literal("system"),content:N.string().describe("System message content"),providerOptions:TG}),L44=N.object({role:N.literal("user"),content:N.array(N.union([BK0,LK0])).describe("User message content parts (text or file)"),providerOptions:TG}),D44=N.object({role:N.literal("assistant"),content:N.array(N.union([BK0,LK0,K44,F44,DK0])).describe("Assistant message content parts (text, file, reasoning, tool-call, or tool-result)"),providerOptions:TG}),j44=N.object({role:N.literal("tool"),content:N.array(DK0).describe("Tool message content (tool results)"),providerOptions:TG}),N44=N.union([B44,L44,D44,j44]),O44=N.array(N44).describe("A list of messages forming the prompt"),M44=N.object({prompt:O44.describe("A language model prompt is a standardized prompt type (array of messages with roles: system, user, assistant, tool)"),maxOutputTokens:N.number().optional().describe("Maximum number of tokens to generate"),temperature:N.number().optional().describe("Temperature setting. The range depends on the provider and model"),topP:N.number().optional().describe("Nucleus sampling parameter"),topK:N.number().optional().describe("Only sample from the top K options for each subsequent token. Used to remove long tail low probability responses"),presencePenalty:N.number().optional().describe("Presence penalty setting. It affects the likelihood of the model to repeat information that is already in the prompt"),frequencyPenalty:N.number().optional().describe("Frequency penalty setting. It affects the likelihood of the model to repeatedly use the same words or phrases"),seed:N.number().optional().describe("The seed (integer) to use for random sampling. If set and supported by the model, calls will generate deterministic results"),stopSequences:N.array(N.string()).optional().describe("Stop sequences. If set, the model will stop generating text when one of the stop sequences is generated"),responseFormat:N.union([N.object({type:N.literal("text")}),N.object({type:N.literal("json"),schema:N.any().optional().describe("JSON schema that the generated output should conform to"),name:N.string().optional().describe("Name of output that should be generated"),description:N.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:N.array(N.any()).optional().describe("The tools that are available for the model"),toolChoice:N.any().optional().describe("Specifies how the tool should be selected. Defaults to 'auto'"),includeRawChunks:N.boolean().optional().describe("Include raw chunks in the stream. Only applicable for streaming calls"),abortSignal:N.any().optional().describe("Abort signal for cancelling the operation"),providerOptions:N.any().optional().describe("Additional provider-specific options")}),w44=N.object({content:N.array(N.union([$44,H44,Z44,V44,U44,z44])).describe("Ordered content that the model has generated (text, tool-calls, reasoning, files, sources)"),finishReason:N.enum(["stop","length","content-filter","tool-calls","error","other","unknown"]).describe("Reason why generation stopped"),usage:N.looseObject({inputTokens:N.number().optional(),outputTokens:N.number().optional(),totalTokens:N.number().optional(),reasoningTokens:N.number().optional()}).describe("Usage information for the language model call"),providerMetadata:N.any().optional().describe("Additional provider-specific metadata"),request:N.object({body:N.any().optional().describe("Request HTTP body sent to the provider API")}).optional().describe("Optional request information for telemetry and debugging"),response:N.object({id:N.string().optional().describe("ID for the generated response"),timestamp:N.iso.datetime().optional().describe("Timestamp for the start of the generated response"),modelId:N.string().optional().describe("The ID of the response model that was used"),headers:N.record(N.string(),N.string()).optional().describe("Response headers"),body:N.any().optional().describe("Response HTTP body")}).optional().describe("Optional response information for telemetry and debugging"),warnings:N.array(N.any()).describe("Warnings for the call, e.g. unsupported settings")}),sx4=N.object({stream:N.any().describe("ReadableStream of LanguageModelV2StreamPart"),request:N.object({body:N.any().optional().describe("Request HTTP body sent to the provider API")}).optional().describe("Optional request information for telemetry and debugging"),response:N.object({headers:N.record(N.string(),N.string()).optional().describe("Response headers")}).optional().describe("Optional response data")}),P44=N.object({supportedUrls:N.record(N.string(),N.array(N.string())).describe("Supported URL patterns by media type for the provider")}),tx4=N.object({modelId:N.string().describe("The ID of the model"),logo:N.string().nullable(),description:N.string().nullable(),capabilities:N.array(N.string()),limits:N.object({contextWindow:N.number(),maxOutputTokens:N.number()}).nullable(),costs:N.object({input:N.number(),output:N.number()}).nullable(),provider:N.enum(["openai","anthropic","google","x-ai","deepseek","openai-compatible","openrouter"]).nullable()}),zK0=N.object({modelId:N.string().describe("The ID of the model"),callOptions:M44}),T44=UZ.extend({logo:N.string().nullable(),description:N.string().nullable(),capabilities:N.array(N.string()),limits:N.object({contextWindow:N.number(),maxOutputTokens:N.number()}).nullable(),costs:N.object({input:N.number(),output:N.number()}).nullable(),provider:N.enum(["openai","anthropic","google","xai","deepseek","openai-compatible","openrouter"]).nullable()}),A44=zZ("llm",T44,{readOnly:!0}),bg=[{name:"LLM_METADATA",inputSchema:N.object({modelId:N.string().describe("The ID of the model")}),outputSchema:P44},{name:"LLM_DO_STREAM",inputSchema:zK0,streamable:!0},{name:"LLM_DO_GENERATE",inputSchema:zK0,outputSchema:w44},...A44],ex4=qZ(bg)});function C44(X){let Q=[],J=0;while(J<X.length){let Y=X[J];if(Y==="%")Q.push(".*");else if(Y==="_")Q.push(".");else if(/[.*+?^${}()|[\]\\]/.test(Y))Q.push("\\"+Y);else Q.push(Y);J++}return Q.join("")}function G5(X){return typeof X==="string"||typeof X==="number"}function kP(X,Q){if("conditions"in Q){let{operator:H,conditions:K}=Q;switch(H){case"and":return K.every((Z)=>kP(X,Z));case"or":return K.some((Z)=>kP(X,Z));case"not":return!K.every((Z)=>kP(X,Z));default:return!0}}let{field:J,operator:Y,value:G}=Q,$=J.join("."),W=yg(X,$);switch(Y){case"eq":return W===G;case"gt":return G5(W)&&G5(G)&&W>G;case"gte":return G5(W)&&G5(G)&&W>=G;case"lt":return G5(W)&&G5(G)&&W<G;case"lte":return G5(W)&&G5(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 H=C44(G);return new RegExp(`^${H}$`,"i").test(W);case"contains":if(typeof W!=="string"||typeof G!=="string")return!1;return W.toLowerCase().includes(G.toLowerCase());default:return!0}}function yg(X,Q){let J=Q.split("."),Y=X;for(let G of J){if(Y==null||typeof Y!=="object")return;Y=Y[G]}return Y}function R44(X,Q){return[...X].sort((J,Y)=>{for(let G of Q){let $=G.field.join("."),W=yg(J,$),H=yg(Y,$),K=0;if(W==null&&H==null)continue;if(W==null)K=G.nulls==="first"?-1:1;else if(H==null)K=G.nulls==="first"?1:-1;else if(typeof W==="string"&&typeof H==="string")K=W.localeCompare(H);else if(typeof W==="number"&&typeof H==="number")K=W-H;else K=String(W).localeCompare(String(H));if(K!==0)return G.direction==="desc"?-K:K}return 0})}var E44,I44,S44,fg;var NK0=m(()=>{_g();UK0();Y5();jK0();d0();Y6();u$();E44={LLM:bg,ASSISTANTS:qK0};I44=RU.extend({binding:N.union([N.object({}).passthrough(),N.string()]).optional()}),S44=IU(mJ),fg=Q4({name:"COLLECTION_CONNECTIONS_LIST",description:"List all connections in the organization with filtering, sorting, and pagination",inputSchema:I44,outputSchema:S44,handler:async(X,Q)=>{await Q.access.check();let J=e4(Q),Y=X.binding?typeof X.binding==="string"?(()=>{let q=E44[X.binding.toUpperCase()];if(!q)throw Error(`Unknown binding: ${X.binding}`);return q})():X.binding:void 0,G=Y?vP(Y):void 0,$=await Q.storage.connections.list(J.id),W=G?await Promise.all($.map(async(q)=>{if(!q.tools||q.tools.length===0)return null;return G.isImplementedBy(q.tools.map((L)=>({name:L.name,inputSchema:L.inputSchema,outputSchema:L.outputSchema})))?q:null})).then((q)=>q.filter((B)=>B!==null)):$;if(X.where)W=W.filter((q)=>kP(q,X.where));if(X.orderBy&&X.orderBy.length>0)W=R44(W,X.orderBy);let H=W.length,K=X.offset??0,Z=X.limit??100,F=W.slice(K,K+Z),V=K+Z<H;return{items:F,totalCount:H,hasMore:V}}})});var v44,hg;var OK0=m(()=>{Y5();Y6();u$();v44=Sg(mJ),hg=Q4({name:"COLLECTION_CONNECTIONS_GET",description:"Get connection details by ID",inputSchema:Ig,outputSchema:v44,handler:async(X,Q)=>{let J=e4(Q);await Q.access.check();let Y=await Q.storage.connections.findById(X.id);if(!Y||Y.organization_id!==J.id)return{item:null};return{item:Y}}})});var _P=(X,Q)=>{if(Q===null||Q===void 0)return;let J=X.replace(/\[(\w+)\]/g,".$1").split(".").filter(Boolean),Y=Q;for(let G of J){if(Y===null||Y===void 0||typeof Y!=="object")return;Y=Y[G]}return Y};function MK0(X){let Q=X.split("::");if(Q.length!==2||!Q[0]||!Q[1])throw Error(`Invalid scope format: ${X}. Expected format: "KEY::SCOPE"`);return Q}function k44(X){let Q=X.split("::");if(Q.length!==2||!Q[0]||!Q[1])return null;return Q}function _44(X){if(typeof X==="object"&&X!==null&&"value"in X){let Q=X.value;if(typeof Q==="string")return Q}return null}function b44(X,Q){let J={};if(!X||!Q)return J;for(let Y of Q){if(Y==="*"){J["*"]=["*"];continue}let G=k44(Y);if(!G)continue;let[$,W]=G,H=_P($,X),K=_44(H);if(K){if(!J[K])J[K]=[];J[K].push(W)}}return J}function wK0(X,Q){let J=b44(X,Q);return new Set(Object.keys(J).filter((Y)=>Y!=="*"))}var PK0=()=>{};class gg{db;vault;constructor(X,Q){this.db=X;this.vault=Q}async get(X,Q){let J=this.db.selectFrom("downstream_tokens").selectAll().where("connectionId","=",X),Y=await(Q?J.where("userId","=",Q):J.where("userId","is",null)).executeTakeFirst();if(!Y)return null;return this.decryptToken(Y)}async upsert(X){let Q=new Date().toISOString(),J=await this.vault.encrypt(X.accessToken),Y=X.refreshToken?await this.vault.encrypt(X.refreshToken):null,G=X.clientSecret?await this.vault.encrypt(X.clientSecret):null;return await this.db.transaction().execute(async($)=>{let W=$.selectFrom("downstream_tokens").select(["id","createdAt"]).where("connectionId","=",X.connectionId),H=await(X.userId?W.where("userId","=",X.userId):W.where("userId","is",null)).executeTakeFirst();if(H)return await $.updateTable("downstream_tokens").set({accessToken:J,refreshToken:Y,scope:X.scope,expiresAt:X.expiresAt?.toISOString()??null,clientId:X.clientId,clientSecret:G,tokenEndpoint:X.tokenEndpoint,updatedAt:Q}).where("id","=",H.id).execute(),{id:H.id,connectionId:X.connectionId,userId:X.userId,accessToken:X.accessToken,refreshToken:X.refreshToken,scope:X.scope,expiresAt:X.expiresAt,createdAt:H.createdAt,updatedAt:Q,clientId:X.clientId,clientSecret:X.clientSecret,tokenEndpoint:X.tokenEndpoint};let K=VY("dtok");return await $.insertInto("downstream_tokens").values({id:K,connectionId:X.connectionId,userId:X.userId,accessToken:J,refreshToken:Y,scope:X.scope,expiresAt:X.expiresAt?.toISOString()??null,clientId:X.clientId,clientSecret:G,tokenEndpoint:X.tokenEndpoint,createdAt:Q,updatedAt:Q}).execute(),{id:K,connectionId:X.connectionId,userId:X.userId,accessToken:X.accessToken,refreshToken:X.refreshToken,scope:X.scope,expiresAt:X.expiresAt,createdAt:Q,updatedAt:Q,clientId:X.clientId,clientSecret:X.clientSecret,tokenEndpoint:X.tokenEndpoint}})}async delete(X,Q){let J=this.db.deleteFrom("downstream_tokens").where("connectionId","=",X);await(Q?J.where("userId","=",Q):J.where("userId","is",null)).execute()}async deleteByConnection(X){await this.db.deleteFrom("downstream_tokens").where("connectionId","=",X).execute()}isExpired(X,Q=0){if(!X.expiresAt)return!1;let Y=(X.expiresAt instanceof Date?X.expiresAt:new Date(X.expiresAt)).getTime();if(Number.isNaN(Y))return!0;return Y-Q<Date.now()}async decryptToken(X){let Q=await this.vault.decrypt(X.accessToken),J=X.refreshToken?await this.vault.decrypt(X.refreshToken):null,Y=X.clientSecret?await this.vault.decrypt(X.clientSecret):null;return{id:X.id,connectionId:X.connectionId,userId:X.userId,accessToken:Q,refreshToken:J,scope:X.scope,expiresAt:X.expiresAt,createdAt:X.createdAt,updatedAt:X.updatedAt,clientId:X.clientId,clientSecret:Y,tokenEndpoint:X.tokenEndpoint}}}var TK0=m(()=>{wM()});async function h44(X,Q,J,Y){for(let $ of Q){if($==="*")continue;let[W]=MK0($),H=_P(W,X);if(H===void 0||H===null)throw Error(`Scope references key "${W}" but it's not present in state`)}let G=wK0(X,Q);for(let $ of G){if($===hW.SELF)continue;let W=await Y.storage.connections.findById($);if(!W||W.organization_id!==J)throw Error(`Referenced connection not found: ${$}`);try{await Y.access.check($)}catch(H){throw Error(`Access denied to referenced connection: ${$}. ${H.message}`)}}}var y44,f44,xg;var AK0=m(()=>{PK0();MM();TK0();d0();Y6();DP();u$();y44=N.object({id:N.string().describe("ID of the connection to update"),data:QX0.describe("Partial connection data to update")}),f44=N.object({item:mJ.describe("The updated connection entity")});xg=Q4({name:"COLLECTION_CONNECTIONS_UPDATE",description:"Update an existing MCP connection in the organization",inputSchema:y44,outputSchema:f44,handler:async(X,Q)=>{B4(Q);let J=e4(Q);await Q.access.check();let Y=p1(Q);if(!Y)throw Error("User ID required to update connection");let{id:G,data:$}=X,W=await Q.storage.connections.findById(G);if(!W||W.organization_id!==J.id)throw Error("Connection not found in organization");let H=$.configuration_state??W.configuration_state,K=$.configuration_scopes??W.configuration_scopes??[];if($.configuration_state!==void 0||$.configuration_scopes!==void 0){if($.configuration_state!==void 0)H=$.configuration_state;else if(H===null)H={};if($.configuration_scopes!==void 0)K=$.configuration_scopes??[];if(K.length>0&&H)await h44(H,K,J.id,Q)}let Z=$.connection_token??W.connection_token;if(!Z)try{let D=await new gg(Q.db,Q.vault).get(G,Y);if(D?.accessToken)Z=D.accessToken}catch{}let F=await XZ({id:W.id,title:$.title??W.title,connection_type:$.connection_type??W.connection_type,connection_url:$.connection_url??W.connection_url,connection_token:Z,connection_headers:$.connection_headers??W.connection_headers}).catch(()=>null),V=F?.length?F:null,q={...$,tools:V,configuration_state:H,configuration_scopes:K},B=await Q.storage.connections.update(G,q);if(($.configuration_state!==void 0||$.configuration_scopes!==void 0)&&H&&K.length>0)try{await(await Q.createMCPProxy(G)).client.callTool({name:"ON_MCP_CONFIGURATION",arguments:{state:H,scopes:K}})}catch(L){console.error("Failed to invoke ON_MCP_CONFIGURATION callback",L)}return{item:B}}})});var ug;var EK0=m(()=>{Y5();Y6();u$();ug=Q4({name:"COLLECTION_CONNECTIONS_DELETE",description:"Delete a connection",inputSchema:vg,outputSchema:kg(mJ),handler:async(X,Q)=>{B4(Q);let J=e4(Q);await Q.access.check();let Y=await Q.storage.connections.findById(X.id);if(!Y)throw Error(`Connection not found: ${X.id}`);if(Y.organization_id!==J.id)throw Error("Connection not found in organization");return await Q.storage.connections.delete(X.id),{item:Y}}})});var mg;var CK0=m(()=>{d0();Y6();mg=Q4({name:"CONNECTION_TEST",description:"Test connection health and latency",inputSchema:N.object({id:N.string()}),outputSchema:N.object({id:N.string(),healthy:N.boolean(),latencyMs:N.number()}),handler:async(X,Q)=>{let J=e4(Q);await Q.access.check();let Y=await Q.storage.connections.findById(X.id);if(!Y||Y.organization_id!==J.id)throw Error("Connection not found");let G=await Q.storage.connections.testConnection(X.id);return{id:X.id,...G}}})});var RK0=m(()=>{fH0();NK0();OK0();AK0();EK0();CK0()});import{sql as E6}from"kysely";function IK0(X){if(X===null||X===void 0)return"NULL";if(typeof X==="number")return String(X);if(typeof X==="boolean")return X?"TRUE":"FALSE";if(typeof X==="string")return`'${X.replace(/'/g,"''")}'`;if(X instanceof Date)return`'${X.toISOString()}'`;return`'${JSON.stringify(X).replace(/'/g,"''")}'`}function u44(X,Q){let J=X;for(let G=Q.length;G>=1;G--){let $=`$${G}`;if(J.includes($))J=J.replaceAll($,IK0(Q[G-1]))}let Y=[];for(let G=0;G<J.length;G++)if(J[G]==="?")Y.push(G);for(let G=Math.min(Y.length,Q.length)-1;G>=0;G--){let $=Y[G],W=IK0(Q[G]);J=J.slice(0,$)+W+J.slice($+1)}return J}function SK0(X){return X.replace(/-/g,"_")}function l44(X){return`app_${SK0(X)}`}function d44(X){return`app_role_${SK0(X)}`}function p44(X){if(X instanceof Error){let Q=X.message.toLowerCase(),J=X.code;return J==="3F000"||J==="42704"||Q.includes("schema")&&Q.includes("does not exist")||Q.includes("role")&&Q.includes("does not exist")}return!1}async function c44(X,Q,J){if(await E6`CREATE SCHEMA IF NOT EXISTS ${E6.id(Q)}`.execute(X),!(await E6`
|
|
213
213
|
SELECT EXISTS (SELECT 1 FROM pg_roles WHERE rolname = ${J}) as exists
|
|
214
|
-
`.execute(X)).rows[0]?.exists)await E6`CREATE ROLE ${E6.id(J)} NOLOGIN`.execute(X);await E6`GRANT ${E6.id(J)} TO CURRENT_USER`.execute(X),await E6`GRANT USAGE, CREATE ON SCHEMA ${E6.id(Q)} TO ${E6.id(J)}`.execute(X),await E6`GRANT ALL ON ALL TABLES IN SCHEMA ${E6.id(Q)} TO ${E6.id(J)}`.execute(X),await E6`GRANT ALL ON ALL SEQUENCES IN SCHEMA ${E6.id(Q)} TO ${E6.id(J)}`.execute(X),await E6`ALTER DEFAULT PRIVILEGES IN SCHEMA ${E6.id(Q)} GRANT ALL ON TABLES TO ${E6.id(J)}`.execute(X),await E6`ALTER DEFAULT PRIVILEGES IN SCHEMA ${E6.id(Q)} GRANT ALL ON SEQUENCES TO ${E6.id(J)}`.execute(X),await E6`REVOKE ALL ON SCHEMA public FROM ${E6.id(J)}`.execute(X)}async function n44(X,Q,J,Y){try{return await X.transaction().execute(async(G)=>{return await E6`SET LOCAL ROLE ${E6.id(J)}`.execute(G),await E6`SET LOCAL search_path TO ${E6.id(Q)}`.execute(G),await E6.raw(Y).execute(G)})}catch(G){if(p44(G))return await c44(X,Q,J),await X.transaction().execute(async($)=>{return await E6`SET LOCAL ROLE ${E6.id(J)}`.execute($),await E6`SET LOCAL search_path TO ${E6.id(Q)}`.execute($),await E6.raw(Y).execute($)});throw G}}var x44,m44,vK0;var kK0=m(()=>{d0();Y6();x44=N.object({results:N.array(N.unknown()).optional(),success:N.boolean().optional()});m44=N.object({sql:N.string().describe("The SQL query to run"),params:N.array(N.any()).describe("The parameters to pass to the SQL query").optional()});vK0=Q4({name:"DATABASES_RUN_SQL",description:"Run a SQL query against the database",inputSchema:m44,outputSchema:N.object({result:N.array(x44)}),handler:async(X,Q)=>{B4(Q),await Q.access.check();let J=u44(X.sql,X.params||[]);if(!Q.connectionId)throw Error("Connection context required for database access");let Y=l44(Q.connectionId),G=d44(Q.connectionId);return{result:[{results:(await n44(Q.db,Y,G,J)).rows,success:!0}]}}})});var _K0,r44,bK0;var AG=m(()=>{d0();_g();_K0=N.object({connectionId:N.string().optional().describe("Filter subscriptions by connection ID (optional)")}),r44=N.object({id:N.string().describe("Subscription ID"),connectionId:N.string().describe("Subscriber connection ID"),eventType:N.string().describe("Event type pattern"),publisher:N.string().nullable().describe("Publisher connection filter (null = all publishers)"),filter:N.string().nullable().describe("JSONPath filter expression"),enabled:N.boolean().describe("Whether subscription is enabled"),createdAt:N.union([N.string(),N.date()]).describe("Created timestamp"),updatedAt:N.union([N.string(),N.date()]).describe("Updated timestamp")}),bK0=N.object({subscriptions:N.array(r44).describe("List of subscriptions")})});var lg;var yK0=m(()=>{Y6();AG();lg=Q4({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:SU,outputSchema:vU,handler:async(X,Q)=>{B4(Q);let J=e4(Q);await Q.access.check();let Y=Q.connectionId;if(!Y)throw Error("Connection ID required to publish events. Use a connection-scoped token.");let G=await Q.eventBus.publish(J.id,Y,{type:X.type,subject:X.subject,data:X.data,deliverAt:X.deliverAt,cron:X.cron});return{id:G.id,type:G.type,source:G.source,time:G.time}}})});var dg;var fK0=m(()=>{Y6();AG();dg=Q4({name:"EVENT_SUBSCRIBE",description:"Subscribe to events of a specific type. The subscriber is automatically set to the caller's connection.",inputSchema:kU,outputSchema:_U,handler:async(X,Q)=>{B4(Q);let J=e4(Q);await Q.access.check();let Y=Q.connectionId;if(!Y)throw Error("Connection ID required to subscribe. Use a connection-scoped token.");let G=await Q.eventBus.subscribe(J.id,{connectionId:Y,eventType:X.eventType,publisher:X.publisher,filter:X.filter});return{subscription:{id:G.id,connectionId:G.connectionId,eventType:G.eventType,publisher:G.publisher,filter:G.filter,enabled:G.enabled,createdAt:G.createdAt,updatedAt:G.updatedAt}}}})});var pg;var hK0=m(()=>{Y6();AG();pg=Q4({name:"EVENT_UNSUBSCRIBE",description:"Unsubscribe from events by removing a subscription.",inputSchema:fU,outputSchema:hU,handler:async(X,Q)=>{B4(Q);let J=e4(Q);await Q.access.check();let Y=Q.connectionId;if(!Y)throw Error("Connection ID required to unsubscribe. Use a connection-scoped token.");let G=await Q.eventBus.getSubscription(J.id,X.subscriptionId);if(!G)throw Error(`Subscription not found: ${X.subscriptionId}`);if(G.connectionId!==Y)throw Error("Cannot unsubscribe from a subscription owned by another connection");return{success:(await Q.eventBus.unsubscribe(J.id,X.subscriptionId)).success,subscriptionId:X.subscriptionId}}})});var cg;var gK0=m(()=>{Y6();AG();cg=Q4({name:"EVENT_CANCEL",description:"Cancel a recurring event to stop future deliveries. Only the publisher can cancel their own events.",inputSchema:gU,outputSchema:xU,handler:async(X,Q)=>{B4(Q);let J=e4(Q);await Q.access.check();let Y=Q.connectionId;if(!Y)throw Error("Connection ID required to cancel events. Use a connection-scoped token.");if(!await Q.eventBus.getEvent(J.id,X.eventId))throw Error(`Event not found: ${X.eventId}`);if(!(await Q.eventBus.cancelEvent(J.id,X.eventId,Y)).success)throw Error("Failed to cancel event. Either the event is already completed/failed, or you are not the publisher.");return{success:!0,eventId:X.eventId}}})});var ng;var xK0=m(()=>{Y6();AG();ng=Q4({name:"EVENT_ACK",description:"Acknowledge delivery of an event. Call after successfully processing an event received via ON_EVENTS with retryAfter.",inputSchema:uU,outputSchema:mU,handler:async(X,Q)=>{B4(Q);let J=e4(Q);await Q.access.check();let Y=Q.connectionId;if(!Y)throw Error("Connection ID required to acknowledge events. Use a connection-scoped token.");if(!(await Q.eventBus.ackEvent(J.id,X.eventId,Y)).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:X.eventId}}})});var ig;var uK0=m(()=>{Y6();AG();ig=Q4({name:"EVENT_SUBSCRIPTION_LIST",description:"List event subscriptions, optionally filtered by connection ID.",inputSchema:_K0,outputSchema:bK0,handler:async(X,Q)=>{B4(Q);let J=e4(Q);return await Q.access.check(),{subscriptions:(await Q.eventBus.listSubscriptions(J.id,X.connectionId)).map((G)=>({id:G.id,connectionId:G.connectionId,eventType:G.eventType,publisher:G.publisher,filter:G.filter,enabled:G.enabled,createdAt:G.createdAt,updatedAt:G.updatedAt}))}}})});var rg;var mK0=m(()=>{Y6();AG();rg=Q4({name:"EVENT_SYNC_SUBSCRIPTIONS",description:"Sync subscriptions to desired state. Creates new, deletes removed, updates changed filters. Subscriptions are identified by (eventType, publisher).",inputSchema:bU,outputSchema:yU,handler:async(X,Q)=>{B4(Q);let J=e4(Q);await Q.access.check();let Y=Q.connectionId;if(!Y)throw Error("Connection ID required to sync subscriptions. Use a connection-scoped token.");let G=await Q.eventBus.syncSubscriptions(J.id,{connectionId:Y,subscriptions:X.subscriptions});return{created:G.created,updated:G.updated,deleted:G.deleted,unchanged:G.unchanged,subscriptions:G.subscriptions.map(($)=>({id:$.id,connectionId:$.connectionId,eventType:$.eventType,publisher:$.publisher,filter:$.filter,enabled:$.enabled,createdAt:$.createdAt,updatedAt:$.updatedAt}))}}})});var lK0=m(()=>{yK0();fK0();hK0();gK0();xK0();uK0();mK0();AG()});var ag,og,o44,OY,dK0,pK0;var BZ=m(()=>{d0();ag=N.enum(["inclusion","exclusion"]).describe("Tool selection mode: 'inclusion' = include selected (default), 'exclusion' = exclude selected"),og=N.enum(["passthrough","smart_tool_selection","code_execution"]).describe("Gateway tool selection strategy: 'passthrough' (default), 'smart_tool_selection', or 'code_execution'"),o44=N.object({connection_id:N.string().describe("Connection ID"),selected_tools:N.array(N.string()).nullable().describe("Selected tool names. With 'inclusion' mode: null = all tools included. With 'exclusion' mode: null = entire connection excluded"),selected_resources:N.array(N.string()).nullable().describe("Selected resource URIs or patterns. Supports * and ** wildcards for pattern matching. With 'inclusion' mode: null = all resources included."),selected_prompts:N.array(N.string()).nullable().describe("Selected prompt names. With 'inclusion' mode: null = all prompts included. With 'exclusion' mode: null = entire connection excluded.")}),OY=N.object({id:N.string().describe("Unique identifier for the gateway"),title:N.string().describe("Human-readable name for the gateway"),description:N.string().nullable().describe("Description of the gateway"),icon:N.string().nullable().optional().describe("Icon URL for the gateway"),created_at:N.string().describe("When the gateway was created"),updated_at:N.string().describe("When the gateway was last updated"),created_by:N.string().describe("User ID who created the gateway"),updated_by:N.string().optional().describe("User ID who last updated the gateway"),organization_id:N.string().describe("Organization ID this gateway belongs to"),tool_selection_strategy:og.describe("Gateway behavior strategy (metadata for now): 'passthrough', 'smart_tool_selection', or 'code_execution'"),tool_selection_mode:ag.describe("Tool selection mode: 'inclusion' = include selected, 'exclusion' = exclude selected"),status:N.enum(["active","inactive"]).describe("Current status"),is_default:N.boolean().describe("Whether this is the default Hub for the organization"),connections:N.array(o44).describe("Connections with their selected tools (behavior depends on tool_selection_mode)")}),dK0=N.object({title:N.string().min(1).max(255).describe("Name for the gateway"),description:N.string().nullable().optional().describe("Optional description"),tool_selection_strategy:og.optional().default("passthrough").describe("Gateway behavior strategy (defaults to 'passthrough')"),tool_selection_mode:ag.optional().default("inclusion").describe("Tool selection mode (defaults to 'inclusion')"),icon:N.string().nullable().optional().describe("Optional icon URL"),status:N.enum(["active","inactive"]).optional().default("active").describe("Initial status"),is_default:N.boolean().optional().default(!1).describe("Whether this is the default Hub for the organization"),connections:N.array(N.object({connection_id:N.string().describe("Connection ID"),selected_tools:N.array(N.string()).nullable().optional().describe("Selected tool names (null/undefined = all tools or full exclusion)"),selected_resources:N.array(N.string()).nullable().optional().describe("Selected resource URIs or patterns with * and ** wildcards (null/undefined = all resources)"),selected_prompts:N.array(N.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)")}),pK0=N.object({title:N.string().min(1).max(255).optional().describe("New name"),description:N.string().nullable().optional().describe("New description (null to clear)"),tool_selection_strategy:og.optional().describe("New gateway behavior strategy"),tool_selection_mode:ag.optional().describe("New tool selection mode"),icon:N.string().nullable().optional().describe("New icon URL (null to clear)"),status:N.enum(["active","inactive"]).optional().describe("New status"),is_default:N.boolean().optional().describe("Set as default Hub for the organization"),connections:N.array(N.object({connection_id:N.string().describe("Connection ID"),selected_tools:N.array(N.string()).nullable().optional().describe("Selected tool names (null/undefined = all tools or full exclusion)"),selected_resources:N.array(N.string()).nullable().optional().describe("Selected resource URIs or patterns with * and ** wildcards (null/undefined = all resources)"),selected_prompts:N.array(N.string()).nullable().optional().describe("Selected prompt names (null/undefined = all prompts or full exclusion)")})).optional().describe("New connections (replaces existing)")})});var s44,t44,sg;var cK0=m(()=>{d0();Y6();BZ();s44=N.object({data:dK0.describe("Data for the new gateway")}),t44=N.object({item:OY.describe("The created gateway entity")}),sg=Q4({name:"COLLECTION_GATEWAY_CREATE",description:"Create a new MCP gateway in the organization",inputSchema:s44,outputSchema:t44,handler:async(X,Q)=>{B4(Q);let J=e4(Q);await Q.access.check();let Y=p1(Q);if(!Y)throw Error("User ID required to create gateway");let G={title:X.data.title,description:X.data.description??null,toolSelectionStrategy:X.data.tool_selection_strategy??"passthrough",toolSelectionMode:X.data.tool_selection_mode??"inclusion",icon:X.data.icon??null,status:X.data.status,isDefault:X.data.is_default??!1,connections:X.data.connections.map((W)=>({connectionId:W.connection_id,selectedTools:W.selected_tools??null,selectedResources:W.selected_resources??null,selectedPrompts:W.selected_prompts??null}))},$=await Q.storage.gateways.create(J.id,Y,G);return{item:{id:$.id,title:$.title,description:$.description,icon:$.icon,organization_id:$.organizationId,tool_selection_strategy:$.toolSelectionStrategy,tool_selection_mode:$.toolSelectionMode,status:$.status,is_default:$.isDefault,connections:$.connections.map((W)=>({connection_id:W.connectionId,selected_tools:W.selectedTools,selected_resources:W.selectedResources,selected_prompts:W.selectedPrompts})),created_at:$.createdAt,updated_at:$.updatedAt,created_by:$.createdBy,updated_by:$.updatedBy??void 0}}}})});function e44(X){let Q=[],J=0;while(J<X.length){let Y=X[J];if(Y==="%")Q.push(".*");else if(Y==="_")Q.push(".");else if(/[.*+?^${}()|[\]\\]/.test(Y))Q.push("\\"+Y);else Q.push(Y);J++}return Q.join("")}function $5(X){return typeof X==="string"||typeof X==="number"}function tg(X,Q){let J=Q.split("."),Y=X;for(let G of J){if(Y==null||typeof Y!=="object")return;Y=Y[G]}return Y}function X64(X,Q){return X.connections.some((J)=>J.connection_id===Q)}function bP(X,Q){if("conditions"in Q){let{operator:H,conditions:K}=Q;switch(H){case"and":return K.every((Z)=>bP(X,Z));case"or":return K.some((Z)=>bP(X,Z));case"not":return!K.every((Z)=>bP(X,Z));default:return!0}}let{field:J,operator:Y,value:G}=Q,$=J.join(".");if($==="connection_id"){if(Y!=="eq"||typeof G!=="string")return!1;return X64(X,G)}let W=tg(X,$);switch(Y){case"eq":return W===G;case"gt":return $5(W)&&$5(G)&&W>G;case"gte":return $5(W)&&$5(G)&&W>=G;case"lt":return $5(W)&&$5(G)&&W<G;case"lte":return $5(W)&&$5(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 H=e44(G);return new RegExp(`^${H}$`,"i").test(W);case"contains":if(typeof W!=="string"||typeof G!=="string")return!1;return W.toLowerCase().includes(G.toLowerCase());default:return!0}}function Q64(X,Q){return[...X].sort((J,Y)=>{for(let G of Q){let $=G.field.join("."),W=tg(J,$),H=tg(Y,$),K=0;if(W==null&&H==null)continue;if(W==null)K=G.nulls==="first"?-1:1;else if(H==null)K=G.nulls==="first"?1:-1;else if(typeof W==="string"&&typeof H==="string")K=W.localeCompare(H);else if(typeof W==="number"&&typeof H==="number")K=W-H;else K=String(W).localeCompare(String(H));if(K!==0)return G.direction==="desc"?-K:K}return 0})}var J64,Y64,eg;var nK0=m(()=>{Y5();Y6();BZ();J64=RU,Y64=IU(OY),eg=Q4({name:"COLLECTION_GATEWAY_LIST",description:"List all MCP gateways in the organization",inputSchema:J64,outputSchema:Y64,handler:async(X,Q)=>{await Q.access.check();let J=e4(Q),Y=X.where&&!("conditions"in X.where)&&X.where.field.join(".")==="connection_id"&&X.where.operator==="eq"&&typeof X.where.value==="string"?X.where.value:void 0,$=(Y?await Q.storage.gateways.listByConnectionId(J.id,Y):await Q.storage.gateways.list(J.id)).map((V)=>({id:V.id,title:V.title,description:V.description,icon:V.icon,is_default:V.isDefault,organization_id:V.organizationId,tool_selection_strategy:V.toolSelectionStrategy,tool_selection_mode:V.toolSelectionMode,status:V.status,connections:V.connections.map((q)=>({connection_id:q.connectionId,selected_tools:q.selectedTools,selected_resources:q.selectedResources,selected_prompts:q.selectedPrompts})),created_at:V.createdAt,updated_at:V.updatedAt,created_by:V.createdBy,updated_by:V.updatedBy??void 0}));if(X.where)$=$.filter((V)=>bP(V,X.where));if(X.orderBy&&X.orderBy.length>0)$=Q64($,X.orderBy);let W=$.length,H=X.offset??0,K=X.limit??100,Z=$.slice(H,H+K),F=H+K<W;return{items:Z,totalCount:W,hasMore:F}}})});var G64,$64,Xx;var iK0=m(()=>{d0();Y6();BZ();G64=N.object({id:N.string().describe("ID of the gateway to retrieve")}),$64=N.object({item:OY.nullable().describe("The retrieved gateway, or null if not found")}),Xx=Q4({name:"COLLECTION_GATEWAY_GET",description:"Get an MCP gateway by ID",inputSchema:G64,outputSchema:$64,handler:async(X,Q)=>{B4(Q);let J=e4(Q);await Q.access.check();let Y=await Q.storage.gateways.findById(X.id);if(Y&&Y.organizationId!==J.id)return{item:null};if(!Y)return{item:null};return{item:{id:Y.id,title:Y.title,description:Y.description,icon:Y.icon,organization_id:Y.organizationId,tool_selection_strategy:Y.toolSelectionStrategy,tool_selection_mode:Y.toolSelectionMode,status:Y.status,is_default:Y.isDefault,connections:Y.connections.map((G)=>({connection_id:G.connectionId,selected_tools:G.selectedTools,selected_resources:G.selectedResources,selected_prompts:G.selectedPrompts})),created_at:Y.createdAt,updated_at:Y.updatedAt,created_by:Y.createdBy,updated_by:Y.updatedBy??void 0}}}})});var W64,H64,Qx;var rK0=m(()=>{d0();Y6();BZ();W64=N.object({id:N.string().describe("ID of the gateway to update"),data:pK0.describe("Partial gateway data to update")}),H64=N.object({item:OY.describe("The updated gateway entity")}),Qx=Q4({name:"COLLECTION_GATEWAY_UPDATE",description:"Update an MCP gateway",inputSchema:W64,outputSchema:H64,handler:async(X,Q)=>{B4(Q);let J=e4(Q);await Q.access.check();let Y=p1(Q);if(!Y)throw Error("User ID required to update gateway");let G=await Q.storage.gateways.findById(X.id);if(!G)throw Error(`Gateway not found: ${X.id}`);if(G.organizationId!==J.id)throw Error(`Gateway not found: ${X.id}`);let $={};if(X.data.title!==void 0)$.title=X.data.title;if(X.data.description!==void 0)$.description=X.data.description;if(X.data.tool_selection_strategy!==void 0)$.toolSelectionStrategy=X.data.tool_selection_strategy;if(X.data.tool_selection_mode!==void 0)$.toolSelectionMode=X.data.tool_selection_mode;if(X.data.icon!==void 0)$.icon=X.data.icon;if(X.data.status!==void 0)$.status=X.data.status;if(X.data.is_default!==void 0)$.isDefault=X.data.is_default;if(X.data.connections!==void 0)$.connections=X.data.connections.map((H)=>({connectionId:H.connection_id,selectedTools:H.selected_tools??null,selectedResources:H.selected_resources??null,selectedPrompts:H.selected_prompts??null}));let W=await Q.storage.gateways.update(X.id,Y,$);return{item:{id:W.id,title:W.title,description:W.description,icon:W.icon,organization_id:W.organizationId,tool_selection_strategy:W.toolSelectionStrategy,tool_selection_mode:W.toolSelectionMode,status:W.status,is_default:W.isDefault,connections:W.connections.map((H)=>({connection_id:H.connectionId,selected_tools:H.selectedTools,selected_resources:H.selectedResources,selected_prompts:H.selectedPrompts})),created_at:W.createdAt,updated_at:W.updatedAt,created_by:W.createdBy,updated_by:W.updatedBy??void 0}}}})});var K64,Z64,Jx;var aK0=m(()=>{d0();Y6();BZ();K64=N.object({id:N.string().describe("ID of the gateway to delete")}),Z64=N.object({item:OY.describe("The deleted gateway entity")}),Jx=Q4({name:"COLLECTION_GATEWAY_DELETE",description:"Delete an MCP gateway",inputSchema:K64,outputSchema:Z64,handler:async(X,Q)=>{B4(Q);let J=e4(Q);await Q.access.check();let Y=await Q.storage.gateways.findById(X.id);if(!Y)throw Error(`Gateway not found: ${X.id}`);if(Y.organizationId!==J.id)throw Error(`Gateway not found: ${X.id}`);if(Y.isDefault)throw Error("Cannot delete the default Hub. Set another Hub as default first.");return await Q.storage.gateways.delete(X.id),{item:{id:Y.id,title:Y.title,description:Y.description,icon:Y.icon,organization_id:Y.organizationId,tool_selection_strategy:Y.toolSelectionStrategy,tool_selection_mode:Y.toolSelectionMode,status:Y.status,is_default:Y.isDefault,connections:Y.connections.map((G)=>({connection_id:G.connectionId,selected_tools:G.selectedTools,selected_resources:G.selectedResources,selected_prompts:G.selectedPrompts})),created_at:Y.createdAt instanceof Date?Y.createdAt.toISOString():Y.createdAt,updated_at:Y.updatedAt instanceof Date?Y.updatedAt.toISOString():Y.updatedAt,created_by:Y.createdBy,updated_by:Y.updatedBy??void 0}}}})});var oK0=m(()=>{cK0();nK0();iK0();rK0();aK0()});var V64,Yx;var sK0=m(()=>{Y6();d0();V64=N.object({id:N.string().optional().describe("Unique log identifier"),organizationId:N.string().describe("Organization ID"),connectionId:N.string().describe("Connection ID"),connectionTitle:N.string().describe("Connection display name"),toolName:N.string().describe("Name of the tool that was called"),input:N.record(N.string(),N.unknown()).describe("Redacted tool input"),output:N.record(N.string(),N.unknown()).describe("Redacted tool output"),isError:N.boolean().describe("Whether the call resulted in an error"),errorMessage:N.string().nullish().describe("Error message if applicable"),durationMs:N.number().describe("Call duration in milliseconds"),timestamp:N.string().describe("ISO 8601 timestamp of the call"),userId:N.string().nullish().describe("User who triggered the call"),requestId:N.string().describe("Unique request identifier"),userAgent:N.string().nullish().describe("Client identifier (x-mesh-client header)"),gatewayId:N.string().nullish().describe("Gateway ID if routed through a gateway"),properties:N.record(N.string(),N.string()).nullish().describe("Custom key-value metadata attached to the log")}),Yx=Q4({name:"MONITORING_LOGS_LIST",description:"List monitoring logs for tool calls in the organization",inputSchema:N.object({connectionId:N.string().optional().describe("Filter by connection ID"),gatewayId:N.string().optional().describe("Filter by gateway ID"),toolName:N.string().optional().describe("Filter by tool name"),isError:N.boolean().optional().describe("Filter by error status"),startDate:N.string().datetime().optional().describe("Filter by start date (ISO 8601 datetime string)"),endDate:N.string().datetime().optional().describe("Filter by end date (ISO 8601 datetime string)"),limit:N.number().default(100).describe("Maximum number of results"),offset:N.number().default(0).describe("Offset for pagination"),properties:N.record(N.string(),N.string()).optional().describe("Filter by exact property key=value matches"),propertyKeys:N.array(N.string()).optional().describe("Filter by logs that have these property keys"),propertyPatterns:N.record(N.string(),N.string()).optional().describe("Filter by property value patterns (SQL LIKE, use % as wildcard)")}),outputSchema:N.object({logs:N.array(V64).describe("Array of monitoring logs"),total:N.number().describe("Total number of logs matching filters"),offset:N.number().describe("Current offset for pagination"),limit:N.number().describe("Current limit for pagination")}),handler:async(X,Q)=>{let J=e4(Q),G=X.properties||X.propertyKeys||X.propertyPatterns?{properties:X.properties,propertyKeys:X.propertyKeys,propertyPatterns:X.propertyPatterns}:void 0,$={organizationId:J.id,connectionId:X.connectionId,gatewayId:X.gatewayId,toolName:X.toolName,isError:X.isError,startDate:X.startDate?new Date(X.startDate):void 0,endDate:X.endDate?new Date(X.endDate):void 0,limit:X.limit,offset:X.offset,propertyFilters:G},W=await Q.storage.monitoring.query($);return{logs:W.logs.map((H)=>({...H,timestamp:H.timestamp instanceof Date?H.timestamp.toISOString():H.timestamp})),total:W.total,offset:X.offset,limit:X.limit}}})});var Gx;var tK0=m(()=>{Y6();d0();Gx=Q4({name:"MONITORING_STATS",description:"Get aggregated statistics for tool call monitoring",inputSchema:N.object({startDate:N.string().datetime().optional().describe("Filter by start date (ISO 8601 datetime string)"),endDate:N.string().datetime().optional().describe("Filter by end date (ISO 8601 datetime string)")}),outputSchema:N.object({totalCalls:N.number().describe("Total number of tool calls"),errorRate:N.number().describe("Error rate as a decimal (0 to 1)"),avgDurationMs:N.number().describe("Average call duration in milliseconds"),errorRatePercent:N.string().describe("Error rate as a percentage string")}),handler:async(X,Q)=>{let Y={organizationId:e4(Q).id,startDate:X.startDate?new Date(X.startDate):void 0,endDate:X.endDate?new Date(X.endDate):void 0},G=await Q.storage.monitoring.getStats(Y);return{...G,errorRatePercent:(G.errorRate*100).toFixed(2)}}})});var eK0=m(()=>{sK0();tK0()});var $x;var XZ0=m(()=>{d0();Y6();$x=Q4({name:"ORGANIZATION_CREATE",description:"Create a new organization",inputSchema:N.object({slug:N.string().min(1).max(50).regex(/^[a-z0-9-]+$/,"Slug must be lowercase alphanumeric with hyphens"),name:N.string().min(1).max(255),description:N.string().optional()}),outputSchema:N.object({id:N.string(),name:N.string(),slug:N.string(),logo:N.string().nullable().optional(),metadata:N.any().optional(),createdAt:N.union([N.date(),N.string()]),members:N.array(N.any()).optional()}),handler:async(X,Q)=>{B4(Q),await Q.access.check();let J=p1(Q);if(!J)throw Error("User ID required to create organization");let Y=await Q.boundAuth.organization.create({name:X.name,slug:X.slug,metadata:X.description?{description:X.description}:void 0,userId:J});if(!Y)throw Error("Failed to create organization");return Y}})});var Wx;var QZ0=m(()=>{d0();Y6();Wx=Q4({name:"ORGANIZATION_LIST",description:"List all organizations user has access to",inputSchema:N.object({userId:N.string().optional()}),outputSchema:N.object({organizations:N.array(N.object({id:N.string(),name:N.string(),slug:N.string(),logo:N.string().nullable().optional(),metadata:N.any().optional(),createdAt:N.union([N.date(),N.string()])}))}),handler:async(X,Q)=>{B4(Q),await Q.access.check();let J=p1(Q),Y=X.userId||J;if(!Y)throw Error("User ID required to list organizations");return{organizations:await Q.boundAuth.organization.list(Y)}}})});var Hx;var JZ0=m(()=>{d0();Y6();Hx=Q4({name:"ORGANIZATION_GET",description:"Get organization details by slug or ID",inputSchema:N.object({}),outputSchema:N.object({id:N.string(),name:N.string(),slug:N.string(),logo:N.string().nullable().optional(),metadata:N.any().optional(),createdAt:N.union([N.date(),N.string()]),members:N.array(N.any()).optional(),invitations:N.array(N.any()).optional()}),handler:async(X,Q)=>{B4(Q),await Q.access.check();let J=await Q.boundAuth.organization.get();if(!J)throw Error("No active organization found");return J}})});var Kx;var YZ0=m(()=>{d0();Y6();Kx=Q4({name:"ORGANIZATION_UPDATE",description:"Update an existing organization",inputSchema:N.object({id:N.string(),slug:N.string().min(1).max(50).regex(/^[a-z0-9-]+$/).optional(),name:N.string().min(1).max(255).optional(),description:N.string().optional()}),outputSchema:N.object({id:N.string(),name:N.string(),slug:N.string(),logo:N.string().nullable().optional(),metadata:N.any().optional(),createdAt:N.union([N.date(),N.string()])}),handler:async(X,Q)=>{B4(Q),await Q.access.check();let J={};if(X.name)J.name=X.name;if(X.slug)J.slug=X.slug;if(X.description)J.metadata={description:X.description};let Y=await Q.boundAuth.organization.update({organizationId:X.id,data:J});if(!Y)throw Error("Failed to update organization");return Y}})});var Zx;var GZ0=m(()=>{d0();Y6();Zx=Q4({name:"ORGANIZATION_DELETE",description:"Delete an organization",inputSchema:N.object({id:N.string()}),outputSchema:N.object({success:N.boolean(),id:N.string()}),handler:async(X,Q)=>{return B4(Q),await Q.access.check(),await Q.boundAuth.organization.delete(X.id),{success:!0,id:X.id}}})});var dU;var Fx=m(()=>{d0();dU=N.object({title:N.string(),url:N.string(),icon:N.string()})});var Vx;var $Z0=m(()=>{d0();Y6();Fx();Vx=Q4({name:"ORGANIZATION_SETTINGS_GET",description:"Get organization-level settings",inputSchema:N.object({}),outputSchema:N.object({organizationId:N.string(),sidebar_items:N.array(dU).nullable().optional(),createdAt:N.union([N.date(),N.string()]).optional(),updatedAt:N.union([N.date(),N.string()]).optional()}),handler:async(X,Q)=>{B4(Q),await Q.access.check();let J=Q.organization?.id;if(!J)throw Error("Organization ID required (no active organization in context)");let Y=await Q.storage.organizationSettings.get(J);if(!Y)return{organizationId:J};return Y}})});var qx;var WZ0=m(()=>{d0();Y6();Fx();qx=Q4({name:"ORGANIZATION_SETTINGS_UPDATE",description:"Update organization-level settings",inputSchema:N.object({organizationId:N.string(),sidebar_items:N.array(dU).optional()}),outputSchema:N.object({organizationId:N.string(),sidebar_items:N.array(dU).nullable().optional(),createdAt:N.union([N.date(),N.string()]),updatedAt:N.union([N.date(),N.string()])}),handler:async(X,Q)=>{if(B4(Q),await Q.access.check(),Q.organization&&Q.organization.id!==X.organizationId)throw Error("Cannot update settings for a different organization");return await Q.storage.organizationSettings.upsert(X.organizationId,{sidebar_items:X.sidebar_items})}})});var Ux;var HZ0=m(()=>{d0();Y6();Ux=Q4({name:"ORGANIZATION_MEMBER_ADD",description:"Add a member to an organization",inputSchema:N.object({organizationId:N.string().optional(),userId:N.string(),role:N.array(N.string())}),outputSchema:N.object({id:N.string(),organizationId:N.string(),userId:N.string(),role:N.union([N.string(),N.array(N.string())]),createdAt:N.union([N.date(),N.string()])}),handler:async(X,Q)=>{B4(Q),await Q.access.check();let J=X.organizationId||Q.organization?.id;if(!J)throw Error("Organization ID required (no active organization in context)");let Y=await Q.boundAuth.organization.addMember({organizationId:J,userId:X.userId,role:X.role});if(!Y)throw Error("Failed to add member");return Y}})});var zx;var KZ0=m(()=>{d0();Y6();zx=Q4({name:"ORGANIZATION_MEMBER_REMOVE",description:"Remove a member from an organization",inputSchema:N.object({organizationId:N.string().optional(),memberIdOrEmail:N.string()}),outputSchema:N.object({success:N.boolean(),memberIdOrEmail:N.string()}),handler:async(X,Q)=>{B4(Q),await Q.access.check();let J=X.organizationId||Q.organization?.id;if(!J)throw Error("Organization ID required (no active organization in context)");return await Q.boundAuth.organization.removeMember({organizationId:J,memberIdOrEmail:X.memberIdOrEmail}),{success:!0,memberIdOrEmail:X.memberIdOrEmail}}})});var Bx;var ZZ0=m(()=>{d0();Y6();Bx=Q4({name:"ORGANIZATION_MEMBER_LIST",description:"List all members in an organization",inputSchema:N.object({limit:N.number().optional(),offset:N.number().optional()}),outputSchema:N.object({members:N.array(N.object({id:N.string(),organizationId:N.string(),userId:N.string(),role:N.string(),createdAt:N.union([N.date(),N.string()]),user:N.object({id:N.string(),name:N.string(),email:N.string(),image:N.string().optional()}).optional()}))}),handler:async(X,Q)=>{B4(Q),await Q.access.check();let J=Q.organization?.id;if(!J)throw Error("Organization ID required (no active organization in context)");let Y=await Q.boundAuth.organization.listMembers({organizationId:J,limit:X.limit,offset:X.offset});return{members:Array.isArray(Y)?Y:[]}}})});var Lx;var FZ0=m(()=>{d0();Y6();Lx=Q4({name:"ORGANIZATION_MEMBER_UPDATE_ROLE",description:"Update a member's role in an organization",inputSchema:N.object({organizationId:N.string().optional(),memberId:N.string(),role:N.array(N.string())}),outputSchema:N.object({id:N.string(),organizationId:N.string(),userId:N.string(),role:N.union([N.literal("admin"),N.literal("member"),N.literal("owner")]),createdAt:N.union([N.date(),N.string()]),user:N.object({email:N.string(),name:N.string(),image:N.string().optional()})}),handler:async(X,Q)=>{B4(Q),await Q.access.check();let J=X.organizationId||Q.organization?.id;if(!J)throw Error("Organization ID required (no active organization in context)");let Y=await Q.boundAuth.organization.updateMemberRole({organizationId:J,memberId:X.memberId,role:X.role});if(!Y)throw Error("Failed to update member role");return Y}})});var VZ0=m(()=>{XZ0();QZ0();JZ0();YZ0();GZ0();$Z0();WZ0();HZ0();KZ0();ZZ0();FZ0()});var z64,B64,Dx;var qZ0=m(()=>{d0();Y6();z64=N.object({id:N.string().min(1)}),B64=N.object({user:N.object({id:N.string(),name:N.string(),email:N.string(),image:N.string().nullable()}).nullable()}),Dx=Q4({name:"USER_GET",description:"Get a user by id (restricted to shared organizations)",inputSchema:z64,outputSchema:B64,handler:async(X,Q)=>{await Q.access.check(),B4(Q);let J=p1(Q);if(!J)throw Error("Authentication required");let Y=await Q.storage.users.findById(X.id,J);if(!Y)return{user:null};return{user:{id:Y.id,name:Y.name,email:Y.email,image:Y.image??null}}}})});var UZ0=m(()=>{qZ0()});var BZ0={};X6(BZ0,{managementMCP:()=>D64,ALL_TOOLS:()=>zZ0});var zZ0,D64=(X)=>{let Q=zZ0.map((Y)=>({name:Y.name,description:Y.description,inputSchema:Y.inputSchema,outputSchema:Y.outputSchema,handler:async(G)=>{return X.access.setToolName(Y.name),await Y.execute(G,X)}}));return T50({name:"mcp-mesh-management",version:"1.0.0"}).withTools(Q).build()};var LZ0=m(()=>{A50();yH0();RK0();kK0();lK0();oK0();eK0();VZ0();UZ0();zZ0=[$x,Wx,Hx,Kx,Zx,Vx,qx,Ux,zx,Bx,Lx,Bg,fg,hg,xg,ug,mg,sg,eg,Xx,Qx,Jx,vK0,Yx,Gx,Vg,Ug,zg,qg,lg,dg,pg,cg,ng,ig,rg,Dx]});XT();import{Migrator as AZ0}from"kysely";var Sx={benchmark:()=>Promise.resolve().then(() => (Ix(),Rx)).then((X)=>X.seed)};async function vx(X,Q){let J=Sx[Q];if(!J)throw Error(`Unknown seed: ${Q}. Available: ${Object.keys(Sx).join(", ")}`);let Y=await J();console.log(`\uD83C\uDF31 Running seed: ${Q}`);let G=await Y(X);return console.log(`\u2705 Seed "${Q}" completed`),G}MY();HJ();MY();HJ();TX();v1();var u8=(X,Q="ms")=>{return new Date(Date.now()+(Q==="sec"?X*1000:X))},rD=new WeakMap;function Hp(X,Q){let J=Q.fields,Y={};for(let G in X){let $=J[G];if(!$){Y[G]=X[G];continue}if($.returned===!1)continue;Y[G]=X[G]}return Y}function aD(X,Q){if(!rD.has(X))rD.set(X,new Map);let J=rD.get(X);if(J.has(Q))return J.get(Q);let Y={...Q==="user"?X.user?.additionalFields:{},...Q==="session"?X.session?.additionalFields:{}};for(let G of X.plugins||[])if(G.schema&&G.schema[Q])Y={...Y,...G.schema[Q].fields};return rD.get(X).set(Q,Y),Y}function k1(X,Q){return{...Hp(Q,{fields:aD(X,"user")}),id:Q.id}}function f9(X,Q){return Hp(Q,{fields:aD(X,"session")})}function RR(X,Q){let J=Q.action||"create",Y=Q.fields,G=Object.assign(Object.create(null),null);for(let $ in Y){if($ in X){if(Y[$].input===!1){if(Y[$].defaultValue!==void 0){if(J!=="update"){G[$]=Y[$].defaultValue;continue}}if(X[$])throw new h("BAD_REQUEST",{message:`${$} is not allowed to be set`});continue}if(Y[$].validator?.input&&X[$]!==void 0){G[$]=Y[$].validator.input["~standard"].validate(X[$]);continue}if(Y[$].transform?.input&&X[$]!==void 0){G[$]=Y[$].transform?.input(X[$]);continue}G[$]=X[$];continue}if(Y[$].defaultValue!==void 0&&J==="create"){if(typeof Y[$].defaultValue==="function"){G[$]=Y[$].defaultValue();continue}G[$]=Y[$].defaultValue;continue}if(Y[$].required&&J==="create")throw new h("BAD_REQUEST",{message:`${$} is required`})}return G}function oD(X,Q={},J){return RR(Q,{fields:aD(X,"user"),action:J})}function IR(X,Q){return RR(Q,{fields:aD(X,"session")})}function uX(X,Q){if(!Q)return X;for(let J in Q){let Y=Q[J]?.modelName;if(Y)X[J].modelName=Y;for(let G in X[J].fields){let $=Q[J]?.fields?.[G];if(!$)continue;X[J].fields[G].fieldName=$}}return X}UQ();d0();var iU0="127.0.0.1";function J$(X,Q){if(Q.advanced?.ipAddress?.disableIpTracking)return null;if(yY()||t7())return iU0;let J="headers"in X?X.headers:X,Y=Q.advanced?.ipAddress?.ipAddressHeaders||["x-forwarded-for"];for(let G of Y){let $="get"in J?J.get(G):J[G];if(typeof $==="string"){let W=$.split(",")[0].trim();if(rU0(W))return W}}return null}function rU0(X){if(x5().safeParse(X).success)return!0;if(u5().safeParse(X).success)return!0;return!1}AX();k9();UQ();e8();import{sql as g9}from"kysely";async function qp(X,Q){let J;if(!X.database){let Y=yQ(X),G=Object.keys(Y).reduce((W,H)=>{return W[H]=[],W},{}),{memoryAdapter:$}=await Promise.resolve().then(() => (Vp(),Fp));J=$(G)(X)}else if(typeof X.database==="function")J=X.database(X);else J=await Q(X);if(!J.transaction)w4.warn("Adapter does not correctly implement transaction function, patching it automatically. Please update your adapter implementation."),J.transaction=async(Y)=>{return Y(J)};return J}async function yR(X){return qp(X,async(Q)=>{let{createKyselyAdapter:J}=await Promise.resolve().then(() => (bR(),_R)),{kysely:Y,databaseType:G,transaction:$}=await J(Q);if(!Y)throw new L4("Failed to initialize database adapter");let{kyselyAdapter:W}=await Promise.resolve().then(() => (bR(),_R));return W(Y,{type:G||"sqlite",debugLogs:Q.database&&"debugLogs"in Q.database?Q.database.debugLogs:!1,transaction:$})(Q)})}function Up(X,Q){let J=Q.hooks;async function Y(K,Z,F){let V=await fQ(),q=K;for(let D of J||[]){let j=D[Z]?.create?.before;if(j){let O=await j(q,V);if(O===!1)return null;if(typeof O==="object"&&"data"in O)q={...q,...O.data}}}let B=F?await F.fn(q):null,L=!F||F.executeMainFn?await(await l6(X)).create({model:Z,data:q,forceAllowId:!0}):B;for(let D of J||[]){let j=D[Z]?.create?.after;if(j)await j(L,V)}return L}async function G(K,Z,F,V){let q=await fQ(),B=K;for(let j of J||[]){let O=j[F]?.update?.before;if(O){let T=await O(K,q);if(T===!1)return null;if(typeof T==="object"&&"data"in T)B={...B,...T.data}}}let L=V?await V.fn(B):null,D=!V||V.executeMainFn?await(await l6(X)).update({model:F,update:B,where:Z}):L;for(let j of J||[]){let O=j[F]?.update?.after;if(O)await O(D,q)}return D}async function $(K,Z,F,V){let q=await fQ(),B=K;for(let j of J||[]){let O=j[F]?.update?.before;if(O){let T=await O(K,q);if(T===!1)return null;if(typeof T==="object"&&"data"in T)B={...B,...T.data}}}let L=V?await V.fn(B):null,D=!V||V.executeMainFn?await(await l6(X)).updateMany({model:F,update:B,where:Z}):L;for(let j of J||[]){let O=j[F]?.update?.after;if(O)await O(D,q)}return D}async function W(K,Z,F){let V=await fQ(),q=null;try{q=(await(await l6(X)).findMany({model:Z,where:K,limit:1}))[0]||null}catch(D){}if(q)for(let D of J||[]){let j=D[Z]?.delete?.before;if(j){if(await j(q,V)===!1)return null}}let B=F?await F.fn(K):null,L=!F||F.executeMainFn?await(await l6(X)).delete({model:Z,where:K}):B;if(q)for(let D of J||[]){let j=D[Z]?.delete?.after;if(j)await j(q,V)}return L}async function H(K,Z,F){let V=await fQ(),q=[];try{q=await(await l6(X)).findMany({model:Z,where:K})}catch(D){}for(let D of q)for(let j of J||[]){let O=j[Z]?.delete?.before;if(O){if(await O(D,V)===!1)return null}}let B=F?await F.fn(K):null,L=!F||F.executeMainFn?await(await l6(X)).deleteMany({model:Z,where:K}):B;for(let D of q)for(let j of J||[]){let O=j[Z]?.delete?.after;if(O)await O(D,V)}return L}return{createWithHooks:Y,updateWithHooks:G,updateManyWithHooks:$,deleteWithHooks:W,deleteManyWithHooks:H}}var Yj=(X,Q)=>{let{logger:J,options:Y}=Q,G=Y.secondaryStorage,$=Y.session?.expiresIn||604800,{createWithHooks:W,updateWithHooks:H,updateManyWithHooks:K,deleteWithHooks:Z,deleteManyWithHooks:F}=Up(X,Q);async function V(q){if(!G)return;let B=await G.get(`active-sessions-${q.id}`);if(!B)return;let L=Date.now(),D=(o6(B)||[]).filter((j)=>j.expiresAt>L);await Promise.all(D.map(async({token:j})=>{let O=await G.get(j);if(!O)return;let T=o6(O);if(!T)return;let C=Math.max(Math.floor(new Date(T.session.expiresAt).getTime()-L)/1000,0);await G.set(j,JSON.stringify({session:T.session,user:q}),Math.floor(C))}))}return{createOAuthUser:async(q,B)=>{return dZ(X,async()=>{let L=await W({createdAt:new Date,updatedAt:new Date,...q},"user",void 0);return{user:L,account:await W({...B,userId:L.id,createdAt:new Date,updatedAt:new Date},"account",void 0)}})},createUser:async(q)=>{return await W({createdAt:new Date,updatedAt:new Date,...q,email:q.email?.toLowerCase()},"user",void 0)},createAccount:async(q)=>{return await W({createdAt:new Date,updatedAt:new Date,...q},"account",void 0)},listSessions:async(q)=>{if(G){let B=await G.get(`active-sessions-${q}`);if(!B)return[];let L=o6(B)||[],D=Date.now(),j=L.filter((T)=>T.expiresAt>D),O=[];for(let T of j){let C=await G.get(T.token);if(C){let E=o6(C);if(!E)return[];let P=f9(Q.options,{...E.session,expiresAt:new Date(E.session.expiresAt)});O.push(P)}}return O}return await(await l6(X)).findMany({model:"session",where:[{field:"userId",value:q}]})},listUsers:async(q,B,L,D)=>{return await(await l6(X)).findMany({model:"user",limit:q,offset:B,sortBy:L,where:D})},countTotalUsers:async(q)=>{let B=await(await l6(X)).count({model:"user",where:q});if(typeof B==="string")return parseInt(B);return B},deleteUser:async(q)=>{if(G)await G.delete(`active-sessions-${q}`);if(!G||Y.session?.storeSessionInDatabase)await F([{field:"userId",value:q}],"session",void 0);await F([{field:"userId",value:q}],"account",void 0),await Z([{field:"id",value:q}],"user",void 0)},createSession:async(q,B,L,D)=>{let j=await fQ().catch(()=>null),O=j?.headers||j?.request?.headers,{id:T,...C}=L||{},E=IR(j?.context.options??Y,{}),P={ipAddress:j?.request||j?.headers?J$(j?.request||j?.headers,j?.context.options)||"":"",userAgent:O?.get("user-agent")||"",...C,expiresAt:B?u8(86400,"sec"):u8($,"sec"),userId:q,token:Z1(32),createdAt:new Date,updatedAt:new Date,...E,...D?C:{}};return await W(P,"session",G?{fn:async(A)=>{let R=await G.get(`active-sessions-${q}`),S=[],v=Date.now();if(R)S=o6(R)||[],S=S.filter((i)=>i.expiresAt>v);let k=S.sort((i,s)=>i.expiresAt-s.expiresAt),u=k.at(-1)?.expiresAt;if(k.push({token:P.token,expiresAt:P.expiresAt.getTime()}),!u||u<P.expiresAt.getTime())u=P.expiresAt.getTime();let c=Math.max(Math.floor((u-v)/1000),0);if(c>0)await G.set(`active-sessions-${q}`,JSON.stringify(k),c);let p=await X.findOne({model:"user",where:[{field:"id",value:q}]}),a=Math.max(Math.floor((P.expiresAt.getTime()-v)/1000),0);if(a>0)await G.set(P.token,JSON.stringify({session:A,user:p}),a);return A},executeMainFn:Y.session?.storeSessionInDatabase}:void 0)},findSession:async(q)=>{if(G){let j=await G.get(q);if(!j&&!Y.session?.storeSessionInDatabase)return null;if(j){let O=o6(j);if(!O)return null;return{session:f9(Q.options,{...O.session,expiresAt:new Date(O.session.expiresAt),createdAt:new Date(O.session.createdAt),updatedAt:new Date(O.session.updatedAt)}),user:k1(Q.options,{...O.user,createdAt:new Date(O.user.createdAt),updatedAt:new Date(O.user.updatedAt)})}}}let B=await(await l6(X)).findOne({model:"session",where:[{value:q,field:"token"}],join:{user:!0}});if(!B)return null;let{user:L,...D}=B;if(!L)return null;return{session:f9(Q.options,D),user:k1(Q.options,L)}},findSessions:async(q)=>{if(G){let L=[];for(let D of q){let j=await G.get(D);if(j){let O=o6(j);if(!O)return[];let T={session:{...O.session,expiresAt:new Date(O.session.expiresAt)},user:{...O.user,createdAt:new Date(O.user.createdAt),updatedAt:new Date(O.user.updatedAt)}};L.push(T)}}return L}let B=await(await l6(X)).findMany({model:"session",where:[{field:"token",value:q,operator:"in"}],join:{user:!0}});if(!B.length)return[];if(B.some((L)=>!L.user))return[];return B.map((L)=>{let{user:D,...j}=L;return{session:j,user:D}})},updateSession:async(q,B)=>{return await H(B,[{field:"token",value:q}],"session",G?{async fn(L){let D=await G.get(q),j=null;if(D){let O=o6(D);if(!O)return null;return j={...O.session,...L},j}else return null},executeMainFn:Y.session?.storeSessionInDatabase}:void 0)},deleteSession:async(q)=>{if(G){let B=await G.get(q);if(B){let{session:L}=o6(B)??{};if(!L){J.error("Session not found in secondary storage");return}let D=L.userId,j=await G.get(`active-sessions-${D}`);if(j){let O=o6(j)||[],T=Date.now(),C=O.filter((P)=>P.expiresAt>T&&P.token!==q),E=C.sort((P,A)=>P.expiresAt-A.expiresAt).at(-1)?.expiresAt;if(C.length>0&&E&&E>Date.now())await G.set(`active-sessions-${D}`,JSON.stringify(C),Math.floor((E-T)/1000));else await G.delete(`active-sessions-${D}`)}else J.error("Active sessions list not found in secondary storage")}if(await G.delete(q),!Y.session?.storeSessionInDatabase||Q.options.session?.preserveSessionInDatabase)return}await(await l6(X)).delete({model:"session",where:[{field:"token",value:q}]})},deleteAccounts:async(q)=>{await F([{field:"userId",value:q}],"account",void 0)},deleteAccount:async(q)=>{await Z([{field:"id",value:q}],"account",void 0)},deleteSessions:async(q)=>{if(G){if(typeof q==="string"){let B=await G.get(`active-sessions-${q}`),L=B?o6(B):[];if(!L)return;for(let D of L)await G.delete(D.token)}else for(let B of q)if(await G.get(B))await G.delete(B);if(!Y.session?.storeSessionInDatabase||Q.options.session?.preserveSessionInDatabase)return}await F([{field:Array.isArray(q)?"token":"userId",value:q,operator:Array.isArray(q)?"in":void 0}],"session",void 0)},findOAuthUser:async(q,B,L)=>{let D=await(await l6(X)).findMany({model:"account",where:[{value:B,field:"accountId"}],join:{user:!0}}).then((j)=>{return j.find((O)=>O.providerId===L)});if(D)if(D.user)return{user:D.user,accounts:[D]};else{let j=await(await l6(X)).findOne({model:"user",where:[{value:q.toLowerCase(),field:"email"}]});if(j)return{user:j,accounts:[D]};return null}else{let j=await(await l6(X)).findOne({model:"user",where:[{value:q.toLowerCase(),field:"email"}]});if(j)return{user:j,accounts:await(await l6(X)).findMany({model:"account",where:[{value:j.id,field:"userId"}]})||[]};else return null}},findUserByEmail:async(q,B)=>{let L=await(await l6(X)).findOne({model:"user",where:[{value:q.toLowerCase(),field:"email"}],join:{...B?.includeAccounts?{account:!0}:{}}});if(!L)return null;let{account:D,...j}=L;return{user:j,accounts:D??[]}},findUserById:async(q)=>{if(!q)return null;return await(await l6(X)).findOne({model:"user",where:[{field:"id",value:q}]})},linkAccount:async(q)=>{return await W({createdAt:new Date,updatedAt:new Date,...q},"account",void 0)},updateUser:async(q,B)=>{let L=await H(B,[{field:"id",value:q}],"user",void 0);return await V(L),await V(L),L},updateUserByEmail:async(q,B)=>{let L=await H(B,[{field:"email",value:q.toLowerCase()}],"user",void 0);return await V(L),await V(L),L},updatePassword:async(q,B)=>{await K({password:B},[{field:"userId",value:q},{field:"providerId",value:"credential"}],"account",void 0)},findAccounts:async(q)=>{return await(await l6(X)).findMany({model:"account",where:[{field:"userId",value:q}]})},findAccount:async(q)=>{return await(await l6(X)).findOne({model:"account",where:[{field:"accountId",value:q}]})},findAccountByProviderId:async(q,B)=>{return await(await l6(X)).findOne({model:"account",where:[{field:"accountId",value:q},{field:"providerId",value:B}]})},findAccountByUserId:async(q)=>{return await(await l6(X)).findMany({model:"account",where:[{field:"userId",value:q}]})},updateAccount:async(q,B)=>{return await H(B,[{field:"id",value:q}],"account",void 0)},createVerificationValue:async(q)=>{return await W({createdAt:new Date,updatedAt:new Date,...q},"verification",void 0)},findVerificationValue:async(q)=>{let B=await(await l6(X)).findMany({model:"verification",where:[{field:"identifier",value:q}],sortBy:{field:"createdAt",direction:"desc"},limit:1});if(!Y.verification?.disableCleanup)await(await l6(X)).deleteMany({model:"verification",where:[{field:"expiresAt",value:new Date,operator:"lt"}]});return B[0]},deleteVerificationValue:async(q)=>{await(await l6(X)).delete({model:"verification",where:[{field:"id",value:q}]})},deleteVerificationByIdentifier:async(q)=>{await(await l6(X)).delete({model:"verification",where:[{field:"identifier",value:q}]})},updateVerificationValue:async(q,B)=>{return await H(B,[{field:"id",value:q}],"verification",void 0)}}};function zp(X){let Q=yQ(X),J={};for(let Y in Q){let G=Q[Y],$=G.fields,W={};if(Object.entries($).forEach(([H,K])=>{if(W[K.fieldName||H]=K,K.references){let Z=Q[K.references.model];if(Z)W[K.fieldName||H].references={...K.references,model:Z.modelName,field:K.references.field}}}),J[G.modelName]){J[G.modelName].fields={...J[G.modelName].fields,...W};continue}J[G.modelName]={fields:W,order:G.order||1/0}}return J}var Xz0={postgres:{string:["character varying","varchar","text","uuid"],number:["int4","integer","bigint","smallint","numeric","real","double precision"],boolean:["bool","boolean"],date:["timestamptz","timestamp","date"],json:["json","jsonb"]},mysql:{string:["varchar","text","uuid"],number:["integer","int","bigint","smallint","decimal","float","double"],boolean:["boolean","tinyint"],date:["timestamp","datetime","date"],json:["json"]},sqlite:{string:["TEXT"],number:["INTEGER","REAL"],boolean:["INTEGER","BOOLEAN"],date:["DATE","INTEGER"],json:["TEXT"]},mssql:{string:["varchar","nvarchar","uniqueidentifier"],number:["int","bigint","smallint","decimal","float","double"],boolean:["bit","smallint"],date:["datetime2","date","datetime"],json:["varchar","nvarchar"]}};function Bp(X,Q,J){function Y($){return $.toLowerCase().split("(")[0].trim()}if(Q==="string[]"||Q==="number[]")return X.toLowerCase().includes("json");let G=Xz0[J];return(Array.isArray(Q)?G.string.map(($)=>$.toLowerCase()):G[Q].map(($)=>$.toLowerCase())).includes(Y(X))}async function Qz0(X){try{let Q=await g9`SHOW search_path`.execute(X);if(Q.rows[0]?.search_path)return Q.rows[0].search_path.split(",").map((J)=>J.trim()).map((J)=>J.replace(/^["']|["']$/g,"")).filter((J)=>!J.startsWith("$"))[0]||"public"}catch(Q){}return"public"}async function MF(X){let Q=zp(X),J=XH(X.logger),{kysely:Y,databaseType:G}=await aU(X);if(!G)J.warn("Could not determine database type, defaulting to sqlite. Please provide a type in the database options to avoid this."),G="sqlite";if(!Y)J.error("Only kysely adapter is supported for migrations. You can use `generate` command to generate the schema, if you're using a different adapter."),process.exit(1);let $="public";if(G==="postgres"){$=await Qz0(Y),J.debug(`PostgreSQL migration: Using schema '${$}' (from search_path)`);try{if(!(await g9`
|
|
214
|
+
`.execute(X)).rows[0]?.exists)await E6`CREATE ROLE ${E6.id(J)} NOLOGIN`.execute(X);await E6`GRANT ${E6.id(J)} TO CURRENT_USER`.execute(X),await E6`GRANT USAGE, CREATE ON SCHEMA ${E6.id(Q)} TO ${E6.id(J)}`.execute(X),await E6`GRANT ALL ON ALL TABLES IN SCHEMA ${E6.id(Q)} TO ${E6.id(J)}`.execute(X),await E6`GRANT ALL ON ALL SEQUENCES IN SCHEMA ${E6.id(Q)} TO ${E6.id(J)}`.execute(X),await E6`ALTER DEFAULT PRIVILEGES IN SCHEMA ${E6.id(Q)} GRANT ALL ON TABLES TO ${E6.id(J)}`.execute(X),await E6`ALTER DEFAULT PRIVILEGES IN SCHEMA ${E6.id(Q)} GRANT ALL ON SEQUENCES TO ${E6.id(J)}`.execute(X),await E6`REVOKE ALL ON SCHEMA public FROM ${E6.id(J)}`.execute(X)}async function n44(X,Q,J,Y){try{return await X.transaction().execute(async(G)=>{return await E6`SET LOCAL ROLE ${E6.id(J)}`.execute(G),await E6`SET LOCAL search_path TO ${E6.id(Q)}`.execute(G),await E6.raw(Y).execute(G)})}catch(G){if(p44(G))return await c44(X,Q,J),await X.transaction().execute(async($)=>{return await E6`SET LOCAL ROLE ${E6.id(J)}`.execute($),await E6`SET LOCAL search_path TO ${E6.id(Q)}`.execute($),await E6.raw(Y).execute($)});throw G}}var x44,m44,vK0;var kK0=m(()=>{d0();Y6();x44=N.object({results:N.array(N.unknown()).optional(),success:N.boolean().optional()});m44=N.object({sql:N.string().describe("The SQL query to run"),params:N.array(N.any()).describe("The parameters to pass to the SQL query").optional()});vK0=Q4({name:"DATABASES_RUN_SQL",description:"Run a SQL query against the database",inputSchema:m44,outputSchema:N.object({result:N.array(x44)}),handler:async(X,Q)=>{B4(Q),await Q.access.check();let J=u44(X.sql,X.params||[]);if(!Q.connectionId)throw Error("Connection context required for database access");let Y=l44(Q.connectionId),G=d44(Q.connectionId);return{result:[{results:(await n44(Q.db,Y,G,J)).rows,success:!0}]}}})});var _K0,r44,bK0;var AG=m(()=>{d0();_g();_K0=N.object({connectionId:N.string().optional().describe("Filter subscriptions by connection ID (optional)")}),r44=N.object({id:N.string().describe("Subscription ID"),connectionId:N.string().describe("Subscriber connection ID"),eventType:N.string().describe("Event type pattern"),publisher:N.string().nullable().describe("Publisher connection filter (null = all publishers)"),filter:N.string().nullable().describe("JSONPath filter expression"),enabled:N.boolean().describe("Whether subscription is enabled"),createdAt:N.union([N.string(),N.date()]).describe("Created timestamp"),updatedAt:N.union([N.string(),N.date()]).describe("Updated timestamp")}),bK0=N.object({subscriptions:N.array(r44).describe("List of subscriptions")})});var lg;var yK0=m(()=>{Y6();AG();lg=Q4({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:SU,outputSchema:vU,handler:async(X,Q)=>{B4(Q);let J=e4(Q);await Q.access.check();let Y=Q.connectionId;if(!Y)throw Error("Connection ID required to publish events. Use a connection-scoped token.");let G=await Q.eventBus.publish(J.id,Y,{type:X.type,subject:X.subject,data:X.data,deliverAt:X.deliverAt,cron:X.cron});return{id:G.id,type:G.type,source:G.source,time:G.time}}})});var dg;var fK0=m(()=>{Y6();AG();dg=Q4({name:"EVENT_SUBSCRIBE",description:"Subscribe to events of a specific type. The subscriber is automatically set to the caller's connection.",inputSchema:kU,outputSchema:_U,handler:async(X,Q)=>{B4(Q);let J=e4(Q);await Q.access.check();let Y=Q.connectionId;if(!Y)throw Error("Connection ID required to subscribe. Use a connection-scoped token.");let G=await Q.eventBus.subscribe(J.id,{connectionId:Y,eventType:X.eventType,publisher:X.publisher,filter:X.filter});return{subscription:{id:G.id,connectionId:G.connectionId,eventType:G.eventType,publisher:G.publisher,filter:G.filter,enabled:G.enabled,createdAt:G.createdAt,updatedAt:G.updatedAt}}}})});var pg;var hK0=m(()=>{Y6();AG();pg=Q4({name:"EVENT_UNSUBSCRIBE",description:"Unsubscribe from events by removing a subscription.",inputSchema:fU,outputSchema:hU,handler:async(X,Q)=>{B4(Q);let J=e4(Q);await Q.access.check();let Y=Q.connectionId;if(!Y)throw Error("Connection ID required to unsubscribe. Use a connection-scoped token.");let G=await Q.eventBus.getSubscription(J.id,X.subscriptionId);if(!G)throw Error(`Subscription not found: ${X.subscriptionId}`);if(G.connectionId!==Y)throw Error("Cannot unsubscribe from a subscription owned by another connection");return{success:(await Q.eventBus.unsubscribe(J.id,X.subscriptionId)).success,subscriptionId:X.subscriptionId}}})});var cg;var gK0=m(()=>{Y6();AG();cg=Q4({name:"EVENT_CANCEL",description:"Cancel a recurring event to stop future deliveries. Only the publisher can cancel their own events.",inputSchema:gU,outputSchema:xU,handler:async(X,Q)=>{B4(Q);let J=e4(Q);await Q.access.check();let Y=Q.connectionId;if(!Y)throw Error("Connection ID required to cancel events. Use a connection-scoped token.");if(!await Q.eventBus.getEvent(J.id,X.eventId))throw Error(`Event not found: ${X.eventId}`);if(!(await Q.eventBus.cancelEvent(J.id,X.eventId,Y)).success)throw Error("Failed to cancel event. Either the event is already completed/failed, or you are not the publisher.");return{success:!0,eventId:X.eventId}}})});var ng;var xK0=m(()=>{Y6();AG();ng=Q4({name:"EVENT_ACK",description:"Acknowledge delivery of an event. Call after successfully processing an event received via ON_EVENTS with retryAfter.",inputSchema:uU,outputSchema:mU,handler:async(X,Q)=>{B4(Q);let J=e4(Q);await Q.access.check();let Y=Q.connectionId;if(!Y)throw Error("Connection ID required to acknowledge events. Use a connection-scoped token.");if(!(await Q.eventBus.ackEvent(J.id,X.eventId,Y)).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:X.eventId}}})});var ig;var uK0=m(()=>{Y6();AG();ig=Q4({name:"EVENT_SUBSCRIPTION_LIST",description:"List event subscriptions, optionally filtered by connection ID.",inputSchema:_K0,outputSchema:bK0,handler:async(X,Q)=>{B4(Q);let J=e4(Q);return await Q.access.check(),{subscriptions:(await Q.eventBus.listSubscriptions(J.id,X.connectionId)).map((G)=>({id:G.id,connectionId:G.connectionId,eventType:G.eventType,publisher:G.publisher,filter:G.filter,enabled:G.enabled,createdAt:G.createdAt,updatedAt:G.updatedAt}))}}})});var rg;var mK0=m(()=>{Y6();AG();rg=Q4({name:"EVENT_SYNC_SUBSCRIPTIONS",description:"Sync subscriptions to desired state. Creates new, deletes removed, updates changed filters. Subscriptions are identified by (eventType, publisher).",inputSchema:bU,outputSchema:yU,handler:async(X,Q)=>{B4(Q);let J=e4(Q);await Q.access.check();let Y=Q.connectionId;if(!Y)throw Error("Connection ID required to sync subscriptions. Use a connection-scoped token.");let G=await Q.eventBus.syncSubscriptions(J.id,{connectionId:Y,subscriptions:X.subscriptions});return{created:G.created,updated:G.updated,deleted:G.deleted,unchanged:G.unchanged,subscriptions:G.subscriptions.map(($)=>({id:$.id,connectionId:$.connectionId,eventType:$.eventType,publisher:$.publisher,filter:$.filter,enabled:$.enabled,createdAt:$.createdAt,updatedAt:$.updatedAt}))}}})});var lK0=m(()=>{yK0();fK0();hK0();gK0();xK0();uK0();mK0();AG()});var ag,og,o44,OY,dK0,pK0;var BZ=m(()=>{d0();ag=N.enum(["inclusion","exclusion"]).describe("Tool selection mode: 'inclusion' = include selected (default), 'exclusion' = exclude selected"),og=N.enum(["passthrough","smart_tool_selection","code_execution"]).describe("Gateway tool selection strategy: 'passthrough' (default), 'smart_tool_selection', or 'code_execution'"),o44=N.object({connection_id:N.string().describe("Connection ID"),selected_tools:N.array(N.string()).nullable().describe("Selected tool names. With 'inclusion' mode: null = all tools included. With 'exclusion' mode: null = entire connection excluded"),selected_resources:N.array(N.string()).nullable().describe("Selected resource URIs or patterns. Supports * and ** wildcards for pattern matching. With 'inclusion' mode: null = all resources included."),selected_prompts:N.array(N.string()).nullable().describe("Selected prompt names. With 'inclusion' mode: null = all prompts included. With 'exclusion' mode: null = entire connection excluded.")}),OY=N.object({id:N.string().describe("Unique identifier for the gateway"),title:N.string().describe("Human-readable name for the gateway"),description:N.string().nullable().describe("Description of the gateway"),icon:N.string().nullable().optional().describe("Icon URL for the gateway"),created_at:N.string().describe("When the gateway was created"),updated_at:N.string().describe("When the gateway was last updated"),created_by:N.string().describe("User ID who created the gateway"),updated_by:N.string().optional().describe("User ID who last updated the gateway"),organization_id:N.string().describe("Organization ID this gateway belongs to"),tool_selection_strategy:og.describe("Gateway behavior strategy (metadata for now): 'passthrough', 'smart_tool_selection', or 'code_execution'"),tool_selection_mode:ag.describe("Tool selection mode: 'inclusion' = include selected, 'exclusion' = exclude selected"),status:N.enum(["active","inactive"]).describe("Current status"),is_default:N.boolean().describe("Whether this is the Organization Agent for the organization"),connections:N.array(o44).describe("Connections with their selected tools (behavior depends on tool_selection_mode)")}),dK0=N.object({title:N.string().min(1).max(255).describe("Name for the gateway"),description:N.string().nullable().optional().describe("Optional description"),tool_selection_strategy:og.optional().default("passthrough").describe("Gateway behavior strategy (defaults to 'passthrough')"),tool_selection_mode:ag.optional().default("inclusion").describe("Tool selection mode (defaults to 'inclusion')"),icon:N.string().nullable().optional().describe("Optional icon URL"),status:N.enum(["active","inactive"]).optional().default("active").describe("Initial status"),is_default:N.boolean().optional().default(!1).describe("Whether this is the Organization Agent for the organization"),connections:N.array(N.object({connection_id:N.string().describe("Connection ID"),selected_tools:N.array(N.string()).nullable().optional().describe("Selected tool names (null/undefined = all tools or full exclusion)"),selected_resources:N.array(N.string()).nullable().optional().describe("Selected resource URIs or patterns with * and ** wildcards (null/undefined = all resources)"),selected_prompts:N.array(N.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)")}),pK0=N.object({title:N.string().min(1).max(255).optional().describe("New name"),description:N.string().nullable().optional().describe("New description (null to clear)"),tool_selection_strategy:og.optional().describe("New gateway behavior strategy"),tool_selection_mode:ag.optional().describe("New tool selection mode"),icon:N.string().nullable().optional().describe("New icon URL (null to clear)"),status:N.enum(["active","inactive"]).optional().describe("New status"),is_default:N.boolean().optional().describe("Set as Organization Agent for the organization"),connections:N.array(N.object({connection_id:N.string().describe("Connection ID"),selected_tools:N.array(N.string()).nullable().optional().describe("Selected tool names (null/undefined = all tools or full exclusion)"),selected_resources:N.array(N.string()).nullable().optional().describe("Selected resource URIs or patterns with * and ** wildcards (null/undefined = all resources)"),selected_prompts:N.array(N.string()).nullable().optional().describe("Selected prompt names (null/undefined = all prompts or full exclusion)")})).optional().describe("New connections (replaces existing)")})});var s44,t44,sg;var cK0=m(()=>{d0();Y6();BZ();s44=N.object({data:dK0.describe("Data for the new gateway")}),t44=N.object({item:OY.describe("The created gateway entity")}),sg=Q4({name:"COLLECTION_GATEWAY_CREATE",description:"Create a new MCP gateway in the organization",inputSchema:s44,outputSchema:t44,handler:async(X,Q)=>{B4(Q);let J=e4(Q);await Q.access.check();let Y=p1(Q);if(!Y)throw Error("User ID required to create gateway");let G={title:X.data.title,description:X.data.description??null,toolSelectionStrategy:X.data.tool_selection_strategy??"passthrough",toolSelectionMode:X.data.tool_selection_mode??"inclusion",icon:X.data.icon??null,status:X.data.status,isDefault:X.data.is_default??!1,connections:X.data.connections.map((W)=>({connectionId:W.connection_id,selectedTools:W.selected_tools??null,selectedResources:W.selected_resources??null,selectedPrompts:W.selected_prompts??null}))},$=await Q.storage.gateways.create(J.id,Y,G);return{item:{id:$.id,title:$.title,description:$.description,icon:$.icon,organization_id:$.organizationId,tool_selection_strategy:$.toolSelectionStrategy,tool_selection_mode:$.toolSelectionMode,status:$.status,is_default:$.isDefault,connections:$.connections.map((W)=>({connection_id:W.connectionId,selected_tools:W.selectedTools,selected_resources:W.selectedResources,selected_prompts:W.selectedPrompts})),created_at:$.createdAt,updated_at:$.updatedAt,created_by:$.createdBy,updated_by:$.updatedBy??void 0}}}})});function e44(X){let Q=[],J=0;while(J<X.length){let Y=X[J];if(Y==="%")Q.push(".*");else if(Y==="_")Q.push(".");else if(/[.*+?^${}()|[\]\\]/.test(Y))Q.push("\\"+Y);else Q.push(Y);J++}return Q.join("")}function $5(X){return typeof X==="string"||typeof X==="number"}function tg(X,Q){let J=Q.split("."),Y=X;for(let G of J){if(Y==null||typeof Y!=="object")return;Y=Y[G]}return Y}function X64(X,Q){return X.connections.some((J)=>J.connection_id===Q)}function bP(X,Q){if("conditions"in Q){let{operator:H,conditions:K}=Q;switch(H){case"and":return K.every((Z)=>bP(X,Z));case"or":return K.some((Z)=>bP(X,Z));case"not":return!K.every((Z)=>bP(X,Z));default:return!0}}let{field:J,operator:Y,value:G}=Q,$=J.join(".");if($==="connection_id"){if(Y!=="eq"||typeof G!=="string")return!1;return X64(X,G)}let W=tg(X,$);switch(Y){case"eq":return W===G;case"gt":return $5(W)&&$5(G)&&W>G;case"gte":return $5(W)&&$5(G)&&W>=G;case"lt":return $5(W)&&$5(G)&&W<G;case"lte":return $5(W)&&$5(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 H=e44(G);return new RegExp(`^${H}$`,"i").test(W);case"contains":if(typeof W!=="string"||typeof G!=="string")return!1;return W.toLowerCase().includes(G.toLowerCase());default:return!0}}function Q64(X,Q){return[...X].sort((J,Y)=>{for(let G of Q){let $=G.field.join("."),W=tg(J,$),H=tg(Y,$),K=0;if(W==null&&H==null)continue;if(W==null)K=G.nulls==="first"?-1:1;else if(H==null)K=G.nulls==="first"?1:-1;else if(typeof W==="string"&&typeof H==="string")K=W.localeCompare(H);else if(typeof W==="number"&&typeof H==="number")K=W-H;else K=String(W).localeCompare(String(H));if(K!==0)return G.direction==="desc"?-K:K}return 0})}var J64,Y64,eg;var nK0=m(()=>{Y5();Y6();BZ();J64=RU,Y64=IU(OY),eg=Q4({name:"COLLECTION_GATEWAY_LIST",description:"List all MCP gateways in the organization",inputSchema:J64,outputSchema:Y64,handler:async(X,Q)=>{await Q.access.check();let J=e4(Q),Y=X.where&&!("conditions"in X.where)&&X.where.field.join(".")==="connection_id"&&X.where.operator==="eq"&&typeof X.where.value==="string"?X.where.value:void 0,$=(Y?await Q.storage.gateways.listByConnectionId(J.id,Y):await Q.storage.gateways.list(J.id)).map((V)=>({id:V.id,title:V.title,description:V.description,icon:V.icon,is_default:V.isDefault,organization_id:V.organizationId,tool_selection_strategy:V.toolSelectionStrategy,tool_selection_mode:V.toolSelectionMode,status:V.status,connections:V.connections.map((q)=>({connection_id:q.connectionId,selected_tools:q.selectedTools,selected_resources:q.selectedResources,selected_prompts:q.selectedPrompts})),created_at:V.createdAt,updated_at:V.updatedAt,created_by:V.createdBy,updated_by:V.updatedBy??void 0}));if(X.where)$=$.filter((V)=>bP(V,X.where));if(X.orderBy&&X.orderBy.length>0)$=Q64($,X.orderBy);let W=$.length,H=X.offset??0,K=X.limit??100,Z=$.slice(H,H+K),F=H+K<W;return{items:Z,totalCount:W,hasMore:F}}})});var G64,$64,Xx;var iK0=m(()=>{d0();Y6();BZ();G64=N.object({id:N.string().describe("ID of the gateway to retrieve")}),$64=N.object({item:OY.nullable().describe("The retrieved gateway, or null if not found")}),Xx=Q4({name:"COLLECTION_GATEWAY_GET",description:"Get an MCP gateway by ID",inputSchema:G64,outputSchema:$64,handler:async(X,Q)=>{B4(Q);let J=e4(Q);await Q.access.check();let Y=await Q.storage.gateways.findById(X.id);if(Y&&Y.organizationId!==J.id)return{item:null};if(!Y)return{item:null};return{item:{id:Y.id,title:Y.title,description:Y.description,icon:Y.icon,organization_id:Y.organizationId,tool_selection_strategy:Y.toolSelectionStrategy,tool_selection_mode:Y.toolSelectionMode,status:Y.status,is_default:Y.isDefault,connections:Y.connections.map((G)=>({connection_id:G.connectionId,selected_tools:G.selectedTools,selected_resources:G.selectedResources,selected_prompts:G.selectedPrompts})),created_at:Y.createdAt,updated_at:Y.updatedAt,created_by:Y.createdBy,updated_by:Y.updatedBy??void 0}}}})});var W64,H64,Qx;var rK0=m(()=>{d0();Y6();BZ();W64=N.object({id:N.string().describe("ID of the gateway to update"),data:pK0.describe("Partial gateway data to update")}),H64=N.object({item:OY.describe("The updated gateway entity")}),Qx=Q4({name:"COLLECTION_GATEWAY_UPDATE",description:"Update an MCP gateway",inputSchema:W64,outputSchema:H64,handler:async(X,Q)=>{B4(Q);let J=e4(Q);await Q.access.check();let Y=p1(Q);if(!Y)throw Error("User ID required to update gateway");let G=await Q.storage.gateways.findById(X.id);if(!G)throw Error(`Gateway not found: ${X.id}`);if(G.organizationId!==J.id)throw Error(`Gateway not found: ${X.id}`);let $={};if(X.data.title!==void 0)$.title=X.data.title;if(X.data.description!==void 0)$.description=X.data.description;if(X.data.tool_selection_strategy!==void 0)$.toolSelectionStrategy=X.data.tool_selection_strategy;if(X.data.tool_selection_mode!==void 0)$.toolSelectionMode=X.data.tool_selection_mode;if(X.data.icon!==void 0)$.icon=X.data.icon;if(X.data.status!==void 0)$.status=X.data.status;if(X.data.is_default!==void 0)$.isDefault=X.data.is_default;if(X.data.connections!==void 0)$.connections=X.data.connections.map((H)=>({connectionId:H.connection_id,selectedTools:H.selected_tools??null,selectedResources:H.selected_resources??null,selectedPrompts:H.selected_prompts??null}));let W=await Q.storage.gateways.update(X.id,Y,$);return{item:{id:W.id,title:W.title,description:W.description,icon:W.icon,organization_id:W.organizationId,tool_selection_strategy:W.toolSelectionStrategy,tool_selection_mode:W.toolSelectionMode,status:W.status,is_default:W.isDefault,connections:W.connections.map((H)=>({connection_id:H.connectionId,selected_tools:H.selectedTools,selected_resources:H.selectedResources,selected_prompts:H.selectedPrompts})),created_at:W.createdAt,updated_at:W.updatedAt,created_by:W.createdBy,updated_by:W.updatedBy??void 0}}}})});var K64,Z64,Jx;var aK0=m(()=>{d0();Y6();BZ();K64=N.object({id:N.string().describe("ID of the gateway to delete")}),Z64=N.object({item:OY.describe("The deleted gateway entity")}),Jx=Q4({name:"COLLECTION_GATEWAY_DELETE",description:"Delete an MCP gateway",inputSchema:K64,outputSchema:Z64,handler:async(X,Q)=>{B4(Q);let J=e4(Q);await Q.access.check();let Y=await Q.storage.gateways.findById(X.id);if(!Y)throw Error(`Gateway not found: ${X.id}`);if(Y.organizationId!==J.id)throw Error(`Gateway not found: ${X.id}`);if(Y.isDefault)throw Error("Cannot delete the Organization Agent. Set another Agent as the Organization Agent first.");return await Q.storage.gateways.delete(X.id),{item:{id:Y.id,title:Y.title,description:Y.description,icon:Y.icon,organization_id:Y.organizationId,tool_selection_strategy:Y.toolSelectionStrategy,tool_selection_mode:Y.toolSelectionMode,status:Y.status,is_default:Y.isDefault,connections:Y.connections.map((G)=>({connection_id:G.connectionId,selected_tools:G.selectedTools,selected_resources:G.selectedResources,selected_prompts:G.selectedPrompts})),created_at:Y.createdAt instanceof Date?Y.createdAt.toISOString():Y.createdAt,updated_at:Y.updatedAt instanceof Date?Y.updatedAt.toISOString():Y.updatedAt,created_by:Y.createdBy,updated_by:Y.updatedBy??void 0}}}})});var oK0=m(()=>{cK0();nK0();iK0();rK0();aK0()});var V64,Yx;var sK0=m(()=>{Y6();d0();V64=N.object({id:N.string().optional().describe("Unique log identifier"),organizationId:N.string().describe("Organization ID"),connectionId:N.string().describe("Connection ID"),connectionTitle:N.string().describe("Connection display name"),toolName:N.string().describe("Name of the tool that was called"),input:N.record(N.string(),N.unknown()).describe("Redacted tool input"),output:N.record(N.string(),N.unknown()).describe("Redacted tool output"),isError:N.boolean().describe("Whether the call resulted in an error"),errorMessage:N.string().nullish().describe("Error message if applicable"),durationMs:N.number().describe("Call duration in milliseconds"),timestamp:N.string().describe("ISO 8601 timestamp of the call"),userId:N.string().nullish().describe("User who triggered the call"),requestId:N.string().describe("Unique request identifier"),userAgent:N.string().nullish().describe("Client identifier (x-mesh-client header)"),gatewayId:N.string().nullish().describe("Gateway ID if routed through a gateway"),properties:N.record(N.string(),N.string()).nullish().describe("Custom key-value metadata attached to the log")}),Yx=Q4({name:"MONITORING_LOGS_LIST",description:"List monitoring logs for tool calls in the organization",inputSchema:N.object({connectionId:N.string().optional().describe("Filter by connection ID"),gatewayId:N.string().optional().describe("Filter by gateway ID"),toolName:N.string().optional().describe("Filter by tool name"),isError:N.boolean().optional().describe("Filter by error status"),startDate:N.string().datetime().optional().describe("Filter by start date (ISO 8601 datetime string)"),endDate:N.string().datetime().optional().describe("Filter by end date (ISO 8601 datetime string)"),limit:N.number().default(100).describe("Maximum number of results"),offset:N.number().default(0).describe("Offset for pagination"),properties:N.record(N.string(),N.string()).optional().describe("Filter by exact property key=value matches"),propertyKeys:N.array(N.string()).optional().describe("Filter by logs that have these property keys"),propertyPatterns:N.record(N.string(),N.string()).optional().describe("Filter by property value patterns (SQL LIKE, use % as wildcard)")}),outputSchema:N.object({logs:N.array(V64).describe("Array of monitoring logs"),total:N.number().describe("Total number of logs matching filters"),offset:N.number().describe("Current offset for pagination"),limit:N.number().describe("Current limit for pagination")}),handler:async(X,Q)=>{let J=e4(Q),G=X.properties||X.propertyKeys||X.propertyPatterns?{properties:X.properties,propertyKeys:X.propertyKeys,propertyPatterns:X.propertyPatterns}:void 0,$={organizationId:J.id,connectionId:X.connectionId,gatewayId:X.gatewayId,toolName:X.toolName,isError:X.isError,startDate:X.startDate?new Date(X.startDate):void 0,endDate:X.endDate?new Date(X.endDate):void 0,limit:X.limit,offset:X.offset,propertyFilters:G},W=await Q.storage.monitoring.query($);return{logs:W.logs.map((H)=>({...H,timestamp:H.timestamp instanceof Date?H.timestamp.toISOString():H.timestamp})),total:W.total,offset:X.offset,limit:X.limit}}})});var Gx;var tK0=m(()=>{Y6();d0();Gx=Q4({name:"MONITORING_STATS",description:"Get aggregated statistics for tool call monitoring",inputSchema:N.object({startDate:N.string().datetime().optional().describe("Filter by start date (ISO 8601 datetime string)"),endDate:N.string().datetime().optional().describe("Filter by end date (ISO 8601 datetime string)")}),outputSchema:N.object({totalCalls:N.number().describe("Total number of tool calls"),errorRate:N.number().describe("Error rate as a decimal (0 to 1)"),avgDurationMs:N.number().describe("Average call duration in milliseconds"),errorRatePercent:N.string().describe("Error rate as a percentage string")}),handler:async(X,Q)=>{let Y={organizationId:e4(Q).id,startDate:X.startDate?new Date(X.startDate):void 0,endDate:X.endDate?new Date(X.endDate):void 0},G=await Q.storage.monitoring.getStats(Y);return{...G,errorRatePercent:(G.errorRate*100).toFixed(2)}}})});var eK0=m(()=>{sK0();tK0()});var $x;var XZ0=m(()=>{d0();Y6();$x=Q4({name:"ORGANIZATION_CREATE",description:"Create a new organization",inputSchema:N.object({slug:N.string().min(1).max(50).regex(/^[a-z0-9-]+$/,"Slug must be lowercase alphanumeric with hyphens"),name:N.string().min(1).max(255),description:N.string().optional()}),outputSchema:N.object({id:N.string(),name:N.string(),slug:N.string(),logo:N.string().nullable().optional(),metadata:N.any().optional(),createdAt:N.union([N.date(),N.string()]),members:N.array(N.any()).optional()}),handler:async(X,Q)=>{B4(Q),await Q.access.check();let J=p1(Q);if(!J)throw Error("User ID required to create organization");let Y=await Q.boundAuth.organization.create({name:X.name,slug:X.slug,metadata:X.description?{description:X.description}:void 0,userId:J});if(!Y)throw Error("Failed to create organization");return Y}})});var Wx;var QZ0=m(()=>{d0();Y6();Wx=Q4({name:"ORGANIZATION_LIST",description:"List all organizations user has access to",inputSchema:N.object({userId:N.string().optional()}),outputSchema:N.object({organizations:N.array(N.object({id:N.string(),name:N.string(),slug:N.string(),logo:N.string().nullable().optional(),metadata:N.any().optional(),createdAt:N.union([N.date(),N.string()])}))}),handler:async(X,Q)=>{B4(Q),await Q.access.check();let J=p1(Q),Y=X.userId||J;if(!Y)throw Error("User ID required to list organizations");return{organizations:await Q.boundAuth.organization.list(Y)}}})});var Hx;var JZ0=m(()=>{d0();Y6();Hx=Q4({name:"ORGANIZATION_GET",description:"Get organization details by slug or ID",inputSchema:N.object({}),outputSchema:N.object({id:N.string(),name:N.string(),slug:N.string(),logo:N.string().nullable().optional(),metadata:N.any().optional(),createdAt:N.union([N.date(),N.string()]),members:N.array(N.any()).optional(),invitations:N.array(N.any()).optional()}),handler:async(X,Q)=>{B4(Q),await Q.access.check();let J=await Q.boundAuth.organization.get();if(!J)throw Error("No active organization found");return J}})});var Kx;var YZ0=m(()=>{d0();Y6();Kx=Q4({name:"ORGANIZATION_UPDATE",description:"Update an existing organization",inputSchema:N.object({id:N.string(),slug:N.string().min(1).max(50).regex(/^[a-z0-9-]+$/).optional(),name:N.string().min(1).max(255).optional(),description:N.string().optional()}),outputSchema:N.object({id:N.string(),name:N.string(),slug:N.string(),logo:N.string().nullable().optional(),metadata:N.any().optional(),createdAt:N.union([N.date(),N.string()])}),handler:async(X,Q)=>{B4(Q),await Q.access.check();let J={};if(X.name)J.name=X.name;if(X.slug)J.slug=X.slug;if(X.description)J.metadata={description:X.description};let Y=await Q.boundAuth.organization.update({organizationId:X.id,data:J});if(!Y)throw Error("Failed to update organization");return Y}})});var Zx;var GZ0=m(()=>{d0();Y6();Zx=Q4({name:"ORGANIZATION_DELETE",description:"Delete an organization",inputSchema:N.object({id:N.string()}),outputSchema:N.object({success:N.boolean(),id:N.string()}),handler:async(X,Q)=>{return B4(Q),await Q.access.check(),await Q.boundAuth.organization.delete(X.id),{success:!0,id:X.id}}})});var dU;var Fx=m(()=>{d0();dU=N.object({title:N.string(),url:N.string(),icon:N.string()})});var Vx;var $Z0=m(()=>{d0();Y6();Fx();Vx=Q4({name:"ORGANIZATION_SETTINGS_GET",description:"Get organization-level settings",inputSchema:N.object({}),outputSchema:N.object({organizationId:N.string(),sidebar_items:N.array(dU).nullable().optional(),createdAt:N.union([N.date(),N.string()]).optional(),updatedAt:N.union([N.date(),N.string()]).optional()}),handler:async(X,Q)=>{B4(Q),await Q.access.check();let J=Q.organization?.id;if(!J)throw Error("Organization ID required (no active organization in context)");let Y=await Q.storage.organizationSettings.get(J);if(!Y)return{organizationId:J};return Y}})});var qx;var WZ0=m(()=>{d0();Y6();Fx();qx=Q4({name:"ORGANIZATION_SETTINGS_UPDATE",description:"Update organization-level settings",inputSchema:N.object({organizationId:N.string(),sidebar_items:N.array(dU).optional()}),outputSchema:N.object({organizationId:N.string(),sidebar_items:N.array(dU).nullable().optional(),createdAt:N.union([N.date(),N.string()]),updatedAt:N.union([N.date(),N.string()])}),handler:async(X,Q)=>{if(B4(Q),await Q.access.check(),Q.organization&&Q.organization.id!==X.organizationId)throw Error("Cannot update settings for a different organization");return await Q.storage.organizationSettings.upsert(X.organizationId,{sidebar_items:X.sidebar_items})}})});var Ux;var HZ0=m(()=>{d0();Y6();Ux=Q4({name:"ORGANIZATION_MEMBER_ADD",description:"Add a member to an organization",inputSchema:N.object({organizationId:N.string().optional(),userId:N.string(),role:N.array(N.string())}),outputSchema:N.object({id:N.string(),organizationId:N.string(),userId:N.string(),role:N.union([N.string(),N.array(N.string())]),createdAt:N.union([N.date(),N.string()])}),handler:async(X,Q)=>{B4(Q),await Q.access.check();let J=X.organizationId||Q.organization?.id;if(!J)throw Error("Organization ID required (no active organization in context)");let Y=await Q.boundAuth.organization.addMember({organizationId:J,userId:X.userId,role:X.role});if(!Y)throw Error("Failed to add member");return Y}})});var zx;var KZ0=m(()=>{d0();Y6();zx=Q4({name:"ORGANIZATION_MEMBER_REMOVE",description:"Remove a member from an organization",inputSchema:N.object({organizationId:N.string().optional(),memberIdOrEmail:N.string()}),outputSchema:N.object({success:N.boolean(),memberIdOrEmail:N.string()}),handler:async(X,Q)=>{B4(Q),await Q.access.check();let J=X.organizationId||Q.organization?.id;if(!J)throw Error("Organization ID required (no active organization in context)");return await Q.boundAuth.organization.removeMember({organizationId:J,memberIdOrEmail:X.memberIdOrEmail}),{success:!0,memberIdOrEmail:X.memberIdOrEmail}}})});var Bx;var ZZ0=m(()=>{d0();Y6();Bx=Q4({name:"ORGANIZATION_MEMBER_LIST",description:"List all members in an organization",inputSchema:N.object({limit:N.number().optional(),offset:N.number().optional()}),outputSchema:N.object({members:N.array(N.object({id:N.string(),organizationId:N.string(),userId:N.string(),role:N.string(),createdAt:N.union([N.date(),N.string()]),user:N.object({id:N.string(),name:N.string(),email:N.string(),image:N.string().optional()}).optional()}))}),handler:async(X,Q)=>{B4(Q),await Q.access.check();let J=Q.organization?.id;if(!J)throw Error("Organization ID required (no active organization in context)");let Y=await Q.boundAuth.organization.listMembers({organizationId:J,limit:X.limit,offset:X.offset});return{members:Array.isArray(Y)?Y:[]}}})});var Lx;var FZ0=m(()=>{d0();Y6();Lx=Q4({name:"ORGANIZATION_MEMBER_UPDATE_ROLE",description:"Update a member's role in an organization",inputSchema:N.object({organizationId:N.string().optional(),memberId:N.string(),role:N.array(N.string())}),outputSchema:N.object({id:N.string(),organizationId:N.string(),userId:N.string(),role:N.union([N.literal("admin"),N.literal("member"),N.literal("owner")]),createdAt:N.union([N.date(),N.string()]),user:N.object({email:N.string(),name:N.string(),image:N.string().optional()})}),handler:async(X,Q)=>{B4(Q),await Q.access.check();let J=X.organizationId||Q.organization?.id;if(!J)throw Error("Organization ID required (no active organization in context)");let Y=await Q.boundAuth.organization.updateMemberRole({organizationId:J,memberId:X.memberId,role:X.role});if(!Y)throw Error("Failed to update member role");return Y}})});var VZ0=m(()=>{XZ0();QZ0();JZ0();YZ0();GZ0();$Z0();WZ0();HZ0();KZ0();ZZ0();FZ0()});var z64,B64,Dx;var qZ0=m(()=>{d0();Y6();z64=N.object({id:N.string().min(1)}),B64=N.object({user:N.object({id:N.string(),name:N.string(),email:N.string(),image:N.string().nullable()}).nullable()}),Dx=Q4({name:"USER_GET",description:"Get a user by id (restricted to shared organizations)",inputSchema:z64,outputSchema:B64,handler:async(X,Q)=>{await Q.access.check(),B4(Q);let J=p1(Q);if(!J)throw Error("Authentication required");let Y=await Q.storage.users.findById(X.id,J);if(!Y)return{user:null};return{user:{id:Y.id,name:Y.name,email:Y.email,image:Y.image??null}}}})});var UZ0=m(()=>{qZ0()});var BZ0={};X6(BZ0,{managementMCP:()=>D64,ALL_TOOLS:()=>zZ0});var zZ0,D64=(X)=>{let Q=zZ0.map((Y)=>({name:Y.name,description:Y.description,inputSchema:Y.inputSchema,outputSchema:Y.outputSchema,handler:async(G)=>{return X.access.setToolName(Y.name),await Y.execute(G,X)}}));return T50({name:"mcp-mesh-management",version:"1.0.0"}).withTools(Q).build()};var LZ0=m(()=>{A50();yH0();RK0();kK0();lK0();oK0();eK0();VZ0();UZ0();zZ0=[$x,Wx,Hx,Kx,Zx,Vx,qx,Ux,zx,Bx,Lx,Bg,fg,hg,xg,ug,mg,sg,eg,Xx,Qx,Jx,vK0,Yx,Gx,Vg,Ug,zg,qg,lg,dg,pg,cg,ng,ig,rg,Dx]});XT();import{Migrator as AZ0}from"kysely";var Sx={benchmark:()=>Promise.resolve().then(() => (Ix(),Rx)).then((X)=>X.seed)};async function vx(X,Q){let J=Sx[Q];if(!J)throw Error(`Unknown seed: ${Q}. Available: ${Object.keys(Sx).join(", ")}`);let Y=await J();console.log(`\uD83C\uDF31 Running seed: ${Q}`);let G=await Y(X);return console.log(`\u2705 Seed "${Q}" completed`),G}MY();HJ();MY();HJ();TX();v1();var u8=(X,Q="ms")=>{return new Date(Date.now()+(Q==="sec"?X*1000:X))},rD=new WeakMap;function Hp(X,Q){let J=Q.fields,Y={};for(let G in X){let $=J[G];if(!$){Y[G]=X[G];continue}if($.returned===!1)continue;Y[G]=X[G]}return Y}function aD(X,Q){if(!rD.has(X))rD.set(X,new Map);let J=rD.get(X);if(J.has(Q))return J.get(Q);let Y={...Q==="user"?X.user?.additionalFields:{},...Q==="session"?X.session?.additionalFields:{}};for(let G of X.plugins||[])if(G.schema&&G.schema[Q])Y={...Y,...G.schema[Q].fields};return rD.get(X).set(Q,Y),Y}function k1(X,Q){return{...Hp(Q,{fields:aD(X,"user")}),id:Q.id}}function f9(X,Q){return Hp(Q,{fields:aD(X,"session")})}function RR(X,Q){let J=Q.action||"create",Y=Q.fields,G=Object.assign(Object.create(null),null);for(let $ in Y){if($ in X){if(Y[$].input===!1){if(Y[$].defaultValue!==void 0){if(J!=="update"){G[$]=Y[$].defaultValue;continue}}if(X[$])throw new h("BAD_REQUEST",{message:`${$} is not allowed to be set`});continue}if(Y[$].validator?.input&&X[$]!==void 0){G[$]=Y[$].validator.input["~standard"].validate(X[$]);continue}if(Y[$].transform?.input&&X[$]!==void 0){G[$]=Y[$].transform?.input(X[$]);continue}G[$]=X[$];continue}if(Y[$].defaultValue!==void 0&&J==="create"){if(typeof Y[$].defaultValue==="function"){G[$]=Y[$].defaultValue();continue}G[$]=Y[$].defaultValue;continue}if(Y[$].required&&J==="create")throw new h("BAD_REQUEST",{message:`${$} is required`})}return G}function oD(X,Q={},J){return RR(Q,{fields:aD(X,"user"),action:J})}function IR(X,Q){return RR(Q,{fields:aD(X,"session")})}function uX(X,Q){if(!Q)return X;for(let J in Q){let Y=Q[J]?.modelName;if(Y)X[J].modelName=Y;for(let G in X[J].fields){let $=Q[J]?.fields?.[G];if(!$)continue;X[J].fields[G].fieldName=$}}return X}UQ();d0();var iU0="127.0.0.1";function J$(X,Q){if(Q.advanced?.ipAddress?.disableIpTracking)return null;if(yY()||t7())return iU0;let J="headers"in X?X.headers:X,Y=Q.advanced?.ipAddress?.ipAddressHeaders||["x-forwarded-for"];for(let G of Y){let $="get"in J?J.get(G):J[G];if(typeof $==="string"){let W=$.split(",")[0].trim();if(rU0(W))return W}}return null}function rU0(X){if(x5().safeParse(X).success)return!0;if(u5().safeParse(X).success)return!0;return!1}AX();k9();UQ();e8();import{sql as g9}from"kysely";async function qp(X,Q){let J;if(!X.database){let Y=yQ(X),G=Object.keys(Y).reduce((W,H)=>{return W[H]=[],W},{}),{memoryAdapter:$}=await Promise.resolve().then(() => (Vp(),Fp));J=$(G)(X)}else if(typeof X.database==="function")J=X.database(X);else J=await Q(X);if(!J.transaction)w4.warn("Adapter does not correctly implement transaction function, patching it automatically. Please update your adapter implementation."),J.transaction=async(Y)=>{return Y(J)};return J}async function yR(X){return qp(X,async(Q)=>{let{createKyselyAdapter:J}=await Promise.resolve().then(() => (bR(),_R)),{kysely:Y,databaseType:G,transaction:$}=await J(Q);if(!Y)throw new L4("Failed to initialize database adapter");let{kyselyAdapter:W}=await Promise.resolve().then(() => (bR(),_R));return W(Y,{type:G||"sqlite",debugLogs:Q.database&&"debugLogs"in Q.database?Q.database.debugLogs:!1,transaction:$})(Q)})}function Up(X,Q){let J=Q.hooks;async function Y(K,Z,F){let V=await fQ(),q=K;for(let D of J||[]){let j=D[Z]?.create?.before;if(j){let O=await j(q,V);if(O===!1)return null;if(typeof O==="object"&&"data"in O)q={...q,...O.data}}}let B=F?await F.fn(q):null,L=!F||F.executeMainFn?await(await l6(X)).create({model:Z,data:q,forceAllowId:!0}):B;for(let D of J||[]){let j=D[Z]?.create?.after;if(j)await j(L,V)}return L}async function G(K,Z,F,V){let q=await fQ(),B=K;for(let j of J||[]){let O=j[F]?.update?.before;if(O){let T=await O(K,q);if(T===!1)return null;if(typeof T==="object"&&"data"in T)B={...B,...T.data}}}let L=V?await V.fn(B):null,D=!V||V.executeMainFn?await(await l6(X)).update({model:F,update:B,where:Z}):L;for(let j of J||[]){let O=j[F]?.update?.after;if(O)await O(D,q)}return D}async function $(K,Z,F,V){let q=await fQ(),B=K;for(let j of J||[]){let O=j[F]?.update?.before;if(O){let T=await O(K,q);if(T===!1)return null;if(typeof T==="object"&&"data"in T)B={...B,...T.data}}}let L=V?await V.fn(B):null,D=!V||V.executeMainFn?await(await l6(X)).updateMany({model:F,update:B,where:Z}):L;for(let j of J||[]){let O=j[F]?.update?.after;if(O)await O(D,q)}return D}async function W(K,Z,F){let V=await fQ(),q=null;try{q=(await(await l6(X)).findMany({model:Z,where:K,limit:1}))[0]||null}catch(D){}if(q)for(let D of J||[]){let j=D[Z]?.delete?.before;if(j){if(await j(q,V)===!1)return null}}let B=F?await F.fn(K):null,L=!F||F.executeMainFn?await(await l6(X)).delete({model:Z,where:K}):B;if(q)for(let D of J||[]){let j=D[Z]?.delete?.after;if(j)await j(q,V)}return L}async function H(K,Z,F){let V=await fQ(),q=[];try{q=await(await l6(X)).findMany({model:Z,where:K})}catch(D){}for(let D of q)for(let j of J||[]){let O=j[Z]?.delete?.before;if(O){if(await O(D,V)===!1)return null}}let B=F?await F.fn(K):null,L=!F||F.executeMainFn?await(await l6(X)).deleteMany({model:Z,where:K}):B;for(let D of q)for(let j of J||[]){let O=j[Z]?.delete?.after;if(O)await O(D,V)}return L}return{createWithHooks:Y,updateWithHooks:G,updateManyWithHooks:$,deleteWithHooks:W,deleteManyWithHooks:H}}var Yj=(X,Q)=>{let{logger:J,options:Y}=Q,G=Y.secondaryStorage,$=Y.session?.expiresIn||604800,{createWithHooks:W,updateWithHooks:H,updateManyWithHooks:K,deleteWithHooks:Z,deleteManyWithHooks:F}=Up(X,Q);async function V(q){if(!G)return;let B=await G.get(`active-sessions-${q.id}`);if(!B)return;let L=Date.now(),D=(o6(B)||[]).filter((j)=>j.expiresAt>L);await Promise.all(D.map(async({token:j})=>{let O=await G.get(j);if(!O)return;let T=o6(O);if(!T)return;let C=Math.max(Math.floor(new Date(T.session.expiresAt).getTime()-L)/1000,0);await G.set(j,JSON.stringify({session:T.session,user:q}),Math.floor(C))}))}return{createOAuthUser:async(q,B)=>{return dZ(X,async()=>{let L=await W({createdAt:new Date,updatedAt:new Date,...q},"user",void 0);return{user:L,account:await W({...B,userId:L.id,createdAt:new Date,updatedAt:new Date},"account",void 0)}})},createUser:async(q)=>{return await W({createdAt:new Date,updatedAt:new Date,...q,email:q.email?.toLowerCase()},"user",void 0)},createAccount:async(q)=>{return await W({createdAt:new Date,updatedAt:new Date,...q},"account",void 0)},listSessions:async(q)=>{if(G){let B=await G.get(`active-sessions-${q}`);if(!B)return[];let L=o6(B)||[],D=Date.now(),j=L.filter((T)=>T.expiresAt>D),O=[];for(let T of j){let C=await G.get(T.token);if(C){let E=o6(C);if(!E)return[];let P=f9(Q.options,{...E.session,expiresAt:new Date(E.session.expiresAt)});O.push(P)}}return O}return await(await l6(X)).findMany({model:"session",where:[{field:"userId",value:q}]})},listUsers:async(q,B,L,D)=>{return await(await l6(X)).findMany({model:"user",limit:q,offset:B,sortBy:L,where:D})},countTotalUsers:async(q)=>{let B=await(await l6(X)).count({model:"user",where:q});if(typeof B==="string")return parseInt(B);return B},deleteUser:async(q)=>{if(G)await G.delete(`active-sessions-${q}`);if(!G||Y.session?.storeSessionInDatabase)await F([{field:"userId",value:q}],"session",void 0);await F([{field:"userId",value:q}],"account",void 0),await Z([{field:"id",value:q}],"user",void 0)},createSession:async(q,B,L,D)=>{let j=await fQ().catch(()=>null),O=j?.headers||j?.request?.headers,{id:T,...C}=L||{},E=IR(j?.context.options??Y,{}),P={ipAddress:j?.request||j?.headers?J$(j?.request||j?.headers,j?.context.options)||"":"",userAgent:O?.get("user-agent")||"",...C,expiresAt:B?u8(86400,"sec"):u8($,"sec"),userId:q,token:Z1(32),createdAt:new Date,updatedAt:new Date,...E,...D?C:{}};return await W(P,"session",G?{fn:async(A)=>{let R=await G.get(`active-sessions-${q}`),S=[],v=Date.now();if(R)S=o6(R)||[],S=S.filter((i)=>i.expiresAt>v);let k=S.sort((i,s)=>i.expiresAt-s.expiresAt),u=k.at(-1)?.expiresAt;if(k.push({token:P.token,expiresAt:P.expiresAt.getTime()}),!u||u<P.expiresAt.getTime())u=P.expiresAt.getTime();let c=Math.max(Math.floor((u-v)/1000),0);if(c>0)await G.set(`active-sessions-${q}`,JSON.stringify(k),c);let p=await X.findOne({model:"user",where:[{field:"id",value:q}]}),a=Math.max(Math.floor((P.expiresAt.getTime()-v)/1000),0);if(a>0)await G.set(P.token,JSON.stringify({session:A,user:p}),a);return A},executeMainFn:Y.session?.storeSessionInDatabase}:void 0)},findSession:async(q)=>{if(G){let j=await G.get(q);if(!j&&!Y.session?.storeSessionInDatabase)return null;if(j){let O=o6(j);if(!O)return null;return{session:f9(Q.options,{...O.session,expiresAt:new Date(O.session.expiresAt),createdAt:new Date(O.session.createdAt),updatedAt:new Date(O.session.updatedAt)}),user:k1(Q.options,{...O.user,createdAt:new Date(O.user.createdAt),updatedAt:new Date(O.user.updatedAt)})}}}let B=await(await l6(X)).findOne({model:"session",where:[{value:q,field:"token"}],join:{user:!0}});if(!B)return null;let{user:L,...D}=B;if(!L)return null;return{session:f9(Q.options,D),user:k1(Q.options,L)}},findSessions:async(q)=>{if(G){let L=[];for(let D of q){let j=await G.get(D);if(j){let O=o6(j);if(!O)return[];let T={session:{...O.session,expiresAt:new Date(O.session.expiresAt)},user:{...O.user,createdAt:new Date(O.user.createdAt),updatedAt:new Date(O.user.updatedAt)}};L.push(T)}}return L}let B=await(await l6(X)).findMany({model:"session",where:[{field:"token",value:q,operator:"in"}],join:{user:!0}});if(!B.length)return[];if(B.some((L)=>!L.user))return[];return B.map((L)=>{let{user:D,...j}=L;return{session:j,user:D}})},updateSession:async(q,B)=>{return await H(B,[{field:"token",value:q}],"session",G?{async fn(L){let D=await G.get(q),j=null;if(D){let O=o6(D);if(!O)return null;return j={...O.session,...L},j}else return null},executeMainFn:Y.session?.storeSessionInDatabase}:void 0)},deleteSession:async(q)=>{if(G){let B=await G.get(q);if(B){let{session:L}=o6(B)??{};if(!L){J.error("Session not found in secondary storage");return}let D=L.userId,j=await G.get(`active-sessions-${D}`);if(j){let O=o6(j)||[],T=Date.now(),C=O.filter((P)=>P.expiresAt>T&&P.token!==q),E=C.sort((P,A)=>P.expiresAt-A.expiresAt).at(-1)?.expiresAt;if(C.length>0&&E&&E>Date.now())await G.set(`active-sessions-${D}`,JSON.stringify(C),Math.floor((E-T)/1000));else await G.delete(`active-sessions-${D}`)}else J.error("Active sessions list not found in secondary storage")}if(await G.delete(q),!Y.session?.storeSessionInDatabase||Q.options.session?.preserveSessionInDatabase)return}await(await l6(X)).delete({model:"session",where:[{field:"token",value:q}]})},deleteAccounts:async(q)=>{await F([{field:"userId",value:q}],"account",void 0)},deleteAccount:async(q)=>{await Z([{field:"id",value:q}],"account",void 0)},deleteSessions:async(q)=>{if(G){if(typeof q==="string"){let B=await G.get(`active-sessions-${q}`),L=B?o6(B):[];if(!L)return;for(let D of L)await G.delete(D.token)}else for(let B of q)if(await G.get(B))await G.delete(B);if(!Y.session?.storeSessionInDatabase||Q.options.session?.preserveSessionInDatabase)return}await F([{field:Array.isArray(q)?"token":"userId",value:q,operator:Array.isArray(q)?"in":void 0}],"session",void 0)},findOAuthUser:async(q,B,L)=>{let D=await(await l6(X)).findMany({model:"account",where:[{value:B,field:"accountId"}],join:{user:!0}}).then((j)=>{return j.find((O)=>O.providerId===L)});if(D)if(D.user)return{user:D.user,accounts:[D]};else{let j=await(await l6(X)).findOne({model:"user",where:[{value:q.toLowerCase(),field:"email"}]});if(j)return{user:j,accounts:[D]};return null}else{let j=await(await l6(X)).findOne({model:"user",where:[{value:q.toLowerCase(),field:"email"}]});if(j)return{user:j,accounts:await(await l6(X)).findMany({model:"account",where:[{value:j.id,field:"userId"}]})||[]};else return null}},findUserByEmail:async(q,B)=>{let L=await(await l6(X)).findOne({model:"user",where:[{value:q.toLowerCase(),field:"email"}],join:{...B?.includeAccounts?{account:!0}:{}}});if(!L)return null;let{account:D,...j}=L;return{user:j,accounts:D??[]}},findUserById:async(q)=>{if(!q)return null;return await(await l6(X)).findOne({model:"user",where:[{field:"id",value:q}]})},linkAccount:async(q)=>{return await W({createdAt:new Date,updatedAt:new Date,...q},"account",void 0)},updateUser:async(q,B)=>{let L=await H(B,[{field:"id",value:q}],"user",void 0);return await V(L),await V(L),L},updateUserByEmail:async(q,B)=>{let L=await H(B,[{field:"email",value:q.toLowerCase()}],"user",void 0);return await V(L),await V(L),L},updatePassword:async(q,B)=>{await K({password:B},[{field:"userId",value:q},{field:"providerId",value:"credential"}],"account",void 0)},findAccounts:async(q)=>{return await(await l6(X)).findMany({model:"account",where:[{field:"userId",value:q}]})},findAccount:async(q)=>{return await(await l6(X)).findOne({model:"account",where:[{field:"accountId",value:q}]})},findAccountByProviderId:async(q,B)=>{return await(await l6(X)).findOne({model:"account",where:[{field:"accountId",value:q},{field:"providerId",value:B}]})},findAccountByUserId:async(q)=>{return await(await l6(X)).findMany({model:"account",where:[{field:"userId",value:q}]})},updateAccount:async(q,B)=>{return await H(B,[{field:"id",value:q}],"account",void 0)},createVerificationValue:async(q)=>{return await W({createdAt:new Date,updatedAt:new Date,...q},"verification",void 0)},findVerificationValue:async(q)=>{let B=await(await l6(X)).findMany({model:"verification",where:[{field:"identifier",value:q}],sortBy:{field:"createdAt",direction:"desc"},limit:1});if(!Y.verification?.disableCleanup)await(await l6(X)).deleteMany({model:"verification",where:[{field:"expiresAt",value:new Date,operator:"lt"}]});return B[0]},deleteVerificationValue:async(q)=>{await(await l6(X)).delete({model:"verification",where:[{field:"id",value:q}]})},deleteVerificationByIdentifier:async(q)=>{await(await l6(X)).delete({model:"verification",where:[{field:"identifier",value:q}]})},updateVerificationValue:async(q,B)=>{return await H(B,[{field:"id",value:q}],"verification",void 0)}}};function zp(X){let Q=yQ(X),J={};for(let Y in Q){let G=Q[Y],$=G.fields,W={};if(Object.entries($).forEach(([H,K])=>{if(W[K.fieldName||H]=K,K.references){let Z=Q[K.references.model];if(Z)W[K.fieldName||H].references={...K.references,model:Z.modelName,field:K.references.field}}}),J[G.modelName]){J[G.modelName].fields={...J[G.modelName].fields,...W};continue}J[G.modelName]={fields:W,order:G.order||1/0}}return J}var Xz0={postgres:{string:["character varying","varchar","text","uuid"],number:["int4","integer","bigint","smallint","numeric","real","double precision"],boolean:["bool","boolean"],date:["timestamptz","timestamp","date"],json:["json","jsonb"]},mysql:{string:["varchar","text","uuid"],number:["integer","int","bigint","smallint","decimal","float","double"],boolean:["boolean","tinyint"],date:["timestamp","datetime","date"],json:["json"]},sqlite:{string:["TEXT"],number:["INTEGER","REAL"],boolean:["INTEGER","BOOLEAN"],date:["DATE","INTEGER"],json:["TEXT"]},mssql:{string:["varchar","nvarchar","uniqueidentifier"],number:["int","bigint","smallint","decimal","float","double"],boolean:["bit","smallint"],date:["datetime2","date","datetime"],json:["varchar","nvarchar"]}};function Bp(X,Q,J){function Y($){return $.toLowerCase().split("(")[0].trim()}if(Q==="string[]"||Q==="number[]")return X.toLowerCase().includes("json");let G=Xz0[J];return(Array.isArray(Q)?G.string.map(($)=>$.toLowerCase()):G[Q].map(($)=>$.toLowerCase())).includes(Y(X))}async function Qz0(X){try{let Q=await g9`SHOW search_path`.execute(X);if(Q.rows[0]?.search_path)return Q.rows[0].search_path.split(",").map((J)=>J.trim()).map((J)=>J.replace(/^["']|["']$/g,"")).filter((J)=>!J.startsWith("$"))[0]||"public"}catch(Q){}return"public"}async function MF(X){let Q=zp(X),J=XH(X.logger),{kysely:Y,databaseType:G}=await aU(X);if(!G)J.warn("Could not determine database type, defaulting to sqlite. Please provide a type in the database options to avoid this."),G="sqlite";if(!Y)J.error("Only kysely adapter is supported for migrations. You can use `generate` command to generate the schema, if you're using a different adapter."),process.exit(1);let $="public";if(G==="postgres"){$=await Qz0(Y),J.debug(`PostgreSQL migration: Using schema '${$}' (from search_path)`);try{if(!(await g9`
|
|
215
215
|
SELECT schema_name
|
|
216
216
|
FROM information_schema.schemata
|
|
217
217
|
WHERE schema_name = ${$}
|
|
@@ -985,7 +985,7 @@ Please refer to the documentation here: https://better-auth.com/docs/plugins/org
|
|
|
985
985
|
</script>
|
|
986
986
|
<script src="https://cdn.jsdelivr.net/npm/@scalar/api-reference" ${Y}></script>
|
|
987
987
|
</body>
|
|
988
|
-
</html>`},A_=(X)=>{let Q=X?.path??"/reference";return{id:"open-api",endpoints:{generateOpenAPISchema:O0("/open-api/generate-schema",{method:"GET"},async(J)=>{let Y=await Z60(J.context,J.context.options);return J.json(Y)}),openAPIReference:O0(Q,{method:"GET",metadata:{isAction:!1}},async(J)=>{if(X?.disableDefaultReference)throw new h("NOT_FOUND");let Y=await Z60(J.context,J.context.options);return new Response(Xf0(Y,X?.theme,X?.nonce),{headers:{"Content-Type":"text/html"}})})}}};TX();k9();e8();v1();d0();var JA4=P6(async()=>{return{}}),YA4=P6({use:[O8]},async(X)=>{return{session:X.context.session}}),GA4=r6({YOU_ARE_NOT_ALLOWED_TO_CREATE_A_NEW_ORGANIZATION:"You are not allowed to create a new organization",YOU_HAVE_REACHED_THE_MAXIMUM_NUMBER_OF_ORGANIZATIONS:"You have reached the maximum number of organizations",ORGANIZATION_ALREADY_EXISTS:"Organization already exists",ORGANIZATION_SLUG_ALREADY_TAKEN:"Organization slug already taken",ORGANIZATION_NOT_FOUND:"Organization not found",USER_IS_NOT_A_MEMBER_OF_THE_ORGANIZATION:"User is not a member of the organization",YOU_ARE_NOT_ALLOWED_TO_UPDATE_THIS_ORGANIZATION:"You are not allowed to update this organization",YOU_ARE_NOT_ALLOWED_TO_DELETE_THIS_ORGANIZATION:"You are not allowed to delete this organization",NO_ACTIVE_ORGANIZATION:"No active organization",USER_IS_ALREADY_A_MEMBER_OF_THIS_ORGANIZATION:"User is already a member of this organization",MEMBER_NOT_FOUND:"Member not found",ROLE_NOT_FOUND:"Role not found",YOU_ARE_NOT_ALLOWED_TO_CREATE_A_NEW_TEAM:"You are not allowed to create a new team",TEAM_ALREADY_EXISTS:"Team already exists",TEAM_NOT_FOUND:"Team not found",YOU_CANNOT_LEAVE_THE_ORGANIZATION_AS_THE_ONLY_OWNER:"You cannot leave the organization as the only owner",YOU_CANNOT_LEAVE_THE_ORGANIZATION_WITHOUT_AN_OWNER:"You cannot leave the organization without an owner",YOU_ARE_NOT_ALLOWED_TO_DELETE_THIS_MEMBER:"You are not allowed to delete this member",YOU_ARE_NOT_ALLOWED_TO_INVITE_USERS_TO_THIS_ORGANIZATION:"You are not allowed to invite users to this organization",USER_IS_ALREADY_INVITED_TO_THIS_ORGANIZATION:"User is already invited to this organization",INVITATION_NOT_FOUND:"Invitation not found",YOU_ARE_NOT_THE_RECIPIENT_OF_THE_INVITATION:"You are not the recipient of the invitation",EMAIL_VERIFICATION_REQUIRED_BEFORE_ACCEPTING_OR_REJECTING_INVITATION:"Email verification required before accepting or rejecting invitation",YOU_ARE_NOT_ALLOWED_TO_CANCEL_THIS_INVITATION:"You are not allowed to cancel this invitation",INVITER_IS_NO_LONGER_A_MEMBER_OF_THE_ORGANIZATION:"Inviter is no longer a member of the organization",YOU_ARE_NOT_ALLOWED_TO_INVITE_USER_WITH_THIS_ROLE:"You are not allowed to invite a user with this role",FAILED_TO_RETRIEVE_INVITATION:"Failed to retrieve invitation",YOU_HAVE_REACHED_THE_MAXIMUM_NUMBER_OF_TEAMS:"You have reached the maximum number of teams",UNABLE_TO_REMOVE_LAST_TEAM:"Unable to remove last team",YOU_ARE_NOT_ALLOWED_TO_UPDATE_THIS_MEMBER:"You are not allowed to update this member",ORGANIZATION_MEMBERSHIP_LIMIT_REACHED:"Organization membership limit reached",YOU_ARE_NOT_ALLOWED_TO_CREATE_TEAMS_IN_THIS_ORGANIZATION:"You are not allowed to create teams in this organization",YOU_ARE_NOT_ALLOWED_TO_DELETE_TEAMS_IN_THIS_ORGANIZATION:"You are not allowed to delete teams in this organization",YOU_ARE_NOT_ALLOWED_TO_UPDATE_THIS_TEAM:"You are not allowed to update this team",YOU_ARE_NOT_ALLOWED_TO_DELETE_THIS_TEAM:"You are not allowed to delete this team",INVITATION_LIMIT_REACHED:"Invitation limit reached",TEAM_MEMBER_LIMIT_REACHED:"Team member limit reached",USER_IS_NOT_A_MEMBER_OF_THE_TEAM:"User is not a member of the team",YOU_CAN_NOT_ACCESS_THE_MEMBERS_OF_THIS_TEAM:"You are not allowed to list the members of this team",YOU_DO_NOT_HAVE_AN_ACTIVE_TEAM:"You do not have an active team",YOU_ARE_NOT_ALLOWED_TO_CREATE_A_NEW_TEAM_MEMBER:"You are not allowed to create a new member",YOU_ARE_NOT_ALLOWED_TO_REMOVE_A_TEAM_MEMBER:"You are not allowed to remove a team member",YOU_ARE_NOT_ALLOWED_TO_ACCESS_THIS_ORGANIZATION:"You are not allowed to access this organization as an owner",YOU_ARE_NOT_A_MEMBER_OF_THIS_ORGANIZATION:"You are not a member of this organization",MISSING_AC_INSTANCE:"Dynamic Access Control requires a pre-defined ac instance on the server auth plugin. Read server logs for more information",YOU_MUST_BE_IN_AN_ORGANIZATION_TO_CREATE_A_ROLE:"You must be in an organization to create a role",YOU_ARE_NOT_ALLOWED_TO_CREATE_A_ROLE:"You are not allowed to create a role",YOU_ARE_NOT_ALLOWED_TO_UPDATE_A_ROLE:"You are not allowed to update a role",YOU_ARE_NOT_ALLOWED_TO_DELETE_A_ROLE:"You are not allowed to delete a role",YOU_ARE_NOT_ALLOWED_TO_READ_A_ROLE:"You are not allowed to read a role",YOU_ARE_NOT_ALLOWED_TO_LIST_A_ROLE:"You are not allowed to list a role",YOU_ARE_NOT_ALLOWED_TO_GET_A_ROLE:"You are not allowed to get a role",TOO_MANY_ROLES:"This organization has too many roles",INVALID_RESOURCE:"The provided permission includes an invalid resource",ROLE_NAME_IS_ALREADY_TAKEN:"That role name is already taken",CANNOT_DELETE_A_PRE_DEFINED_ROLE:"Cannot delete a pre-defined role"});var $A4=Number.POSITIVE_INFINITY;var V60=M(),Jf0=o0(["pending","accepted","rejected","canceled"]).default("pending"),WA4=b({id:M().default(Z1),name:M(),slug:M(),logo:M().nullish().optional(),metadata:v0(M(),I6()).or(M().transform((X)=>JSON.parse(X))).optional(),createdAt:E4()}),HA4=b({id:M().default(Z1),organizationId:M(),userId:j4.string(),role:V60,createdAt:E4().default(()=>new Date)}),KA4=b({id:M().default(Z1),organizationId:M(),email:M(),role:V60,status:Jf0,teamId:M().nullish(),inviterId:M(),expiresAt:E4(),createdAt:E4().default(()=>new Date)}),ZA4=b({id:M().default(Z1),name:M().min(1),organizationId:M(),createdAt:E4(),updatedAt:E4().optional()}),FA4=b({id:M().default(Z1),teamId:M(),userId:M(),createdAt:E4().default(()=>new Date)}),VA4=b({id:M().default(Z1),organizationId:M(),role:M(),permission:v0(M(),Z0(M())),createdAt:E4().default(()=>new Date),updatedAt:E4().optional()}),F60=["admin","member","owner"],qA4=I4([o0(F60),Z0(o0(F60))]);w8();e8();v1();var wA4=r6({INVALID_PHONE_NUMBER:"Invalid phone number",PHONE_NUMBER_EXIST:"Phone number already exists",PHONE_NUMBER_NOT_EXIST:"phone number isn't registered",INVALID_PHONE_NUMBER_OR_PASSWORD:"Invalid phone number or password",UNEXPECTED_ERROR:"Unexpected error",OTP_NOT_FOUND:"OTP not found",OTP_EXPIRED:"OTP expired",INVALID_OTP:"Invalid OTP",PHONE_NUMBER_NOT_VERIFIED:"Phone number not verified",PHONE_NUMBER_CANNOT_BE_UPDATED:"Phone number cannot be updated",SEND_OTP_NOT_IMPLEMENTED:"sendOTP not implemented",TOO_MANY_ATTEMPTS:"Too many attempts"});w8();AX();e8();v1();A1();Z8();var Yf0=r6({OTP_NOT_ENABLED:"OTP not enabled",OTP_HAS_EXPIRED:"OTP has expired",TOTP_NOT_ENABLED:"TOTP not enabled",TWO_FACTOR_NOT_ENABLED:"Two factor isn't enabled",BACKUP_CODES_NOT_ENABLED:"Backup codes aren't enabled",INVALID_BACKUP_CODE:"Invalid backup code",INVALID_CODE:"Invalid code",TOO_MANY_ATTEMPTS_REQUEST_NEW_CODE:"Too many attempts. Please request a new code.",INVALID_TWO_FACTOR_COOKIE:"Invalid two factor cookie"});e8();v1();var Gf0=r6({INVALID_USERNAME_OR_PASSWORD:"Invalid username or password",EMAIL_NOT_VERIFIED:"Email not verified",UNEXPECTED_ERROR:"Unexpected error",USERNAME_IS_ALREADY_TAKEN:"Username is already taken. Please try another.",USERNAME_TOO_SHORT:"Username is too short",USERNAME_TOO_LONG:"Username is too long",INVALID_USERNAME:"Username is invalid",INVALID_DISPLAY_USERNAME:"Display username is invalid"});var FK={enabled:!0,batchSize:250,flushIntervalMs:300,maxQueueSize:1e4,redactor:"regex"};import{existsSync as q60,readFileSync as U60}from"fs";var WM={emailAndPassword:{enabled:!0}},z60=process.env.CONFIG_PATH||"./config.json",B60=process.env.AUTH_CONFIG_PATH||"./auth-config.json";function $f0(){if(q60(z60))try{let X=U60(z60,"utf-8"),Q=JSON.parse(X);return{auth:WM,monitoring:FK,...Q}}catch{return{auth:WM,monitoring:FK}}if(q60(B60))try{let X=U60(B60,"utf-8");return{auth:JSON.parse(X),monitoring:FK}}catch{return{auth:WM,monitoring:FK}}return{auth:WM,monitoring:FK}}var E_=$f0();import{existsSync as ox0,mkdirSync as sx0}from"fs";import{Kysely as f10,PostgresDialect as h10,sql as y10}from"kysely";import{BunWorkerDialect as g10}from"kysely-bun-worker";import*as x10 from"path";var uJ=WJ(Yb(),1),M24=uJ.default.Client,Hb=uJ.default.Pool,w24=uJ.default.Connection,P24=uJ.default.types,T24=uJ.default.Query,A24=uJ.default.DatabaseError,E24=uJ.default.escapeIdentifier,C24=uJ.default.escapeLiteral,R24=uJ.default.Result,I24=uJ.default.TypeOverrides,S24=uJ.default.defaults;var u10={keepAlive:!0,keepAliveInitialDelayMillis:1e4,idleTimeoutMillis:300000,connectionTimeoutMillis:30000,allowExitOnIdle:!0};function tx0(X){let Q=new Hb({connectionString:X.connectionString,max:X.options?.maxConnections||10,ssl:process.env.DATABASE_PG_SSL==="true"?!0:!1,...u10}),J=new h10({pool:Q});return{type:"postgres",db:new f10({dialect:J}),pool:Q}}function m10(X){if(X===":memory:")return":memory:";if(X.includes("://"))return new URL(X).pathname;return X}function l10(X){if(X!==":memory:"&&X!=="/"&&X){let Q=X.substring(0,X.lastIndexOf("/"));if(Q&&Q!=="/"&&!ox0(Q))try{sx0(Q,{recursive:!0})}catch{return console.warn(`Failed to create directory ${Q}, using in-memory database`),":memory:"}}return X}function ex0(X){let Q=m10(X.connectionString);Q=l10(Q);let J=new g10({url:Q||":memory:"}),Y=new f10({dialect:J});if(Q!==":memory:"&&X.options?.enableWAL!==!1)y10`PRAGMA journal_mode = WAL;`.execute(Y).catch(()=>{});if(Q!==":memory:"){let G=X.options?.busyTimeout||5000;y10`PRAGMA busy_timeout = ${G};`.execute(Y).catch(()=>{})}return{type:"sqlite",db:Y}}function d10(X){let Q=X||"file:./data/mesh.db";if(Q===":memory:")return{type:"sqlite",connectionString:":memory:"};Q=Q.startsWith("/")?`file://${Q}`:Q;let J=URL.canParse(Q)?new URL(Q):null,Y=J?.protocol.replace(":","")??Q.split("://")[0];switch(Y){case"postgres":case"postgresql":return{type:"postgres",connectionString:Q};case"sqlite":case"file":if(!J?.pathname)throw Error("Invalid database URL: "+Q);return{type:"sqlite",connectionString:J.pathname};default:throw Error(`Unsupported database protocol: ${Y}. Supported protocols: postgres://, postgresql://, sqlite://, file://`)}}function Zb(){return process.env.DATABASE_URL||`file:${x10.join(process.cwd(),"data/mesh.db")}`}function p10(X){let Q=d10(X);if(Q.type==="postgres")return new h10({pool:new Hb({connectionString:Q.connectionString,max:Q.options?.maxConnections||10,ssl:process.env.DATABASE_PG_SSL==="true"?!0:!1,...u10})});let J=m10(Q.connectionString);return J=l10(J),new g10({url:J||":memory:"})}function Xu0(X){let Q=d10(X);if(Q.type==="postgres")return tx0(Q);return ex0(Q)}async function c10(X){if(await X.db.destroy(),X.type==="postgres"&&!X.pool.ended)await X.pool.end()}var Kb=null;function Uq(){if(!Kb)Kb=Xu0(Zb());return Kb}class Fb{apiKey;constructor(X){this.apiKey=X}async sendEmail({to:X,from:Q,subject:J,html:Y}){let G=await fetch("https://api.resend.com/emails",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${this.apiKey}`},body:JSON.stringify({to:X,from:Q,subject:J,html:Y})});if(!G.ok)throw Error(`Failed to send email: ${G.statusText}`)}}class Vb{apiKey;constructor(X){this.apiKey=X}async sendEmail({to:X,from:Q,subject:J,html:Y}){let G=await fetch("https://api.sendgrid.com/v3/mail/send",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${this.apiKey}`},body:JSON.stringify({personalizations:[{to:[{email:X}]}],from:{email:Q},subject:J,content:[{type:"text/html",value:Y}]})});if(!G.ok){let $=await G.text();throw Error(`Failed to send email via SendGrid: ${G.statusText} - ${$}`)}}}var Qu0=(X)=>{let Q=new Fb(X.config.apiKey);return async({to:J,subject:Y,html:G})=>{await Q.sendEmail({to:J,from:X.config.fromEmail,subject:Y,html:G})}},Ju0=(X)=>{let Q=new Vb(X.config.apiKey);return async({to:J,subject:Y,html:G})=>{await Q.sendEmail({to:J,from:X.config.fromEmail,subject:Y,html:G})}},Yu0={resend:Qu0,sendgrid:Ju0};function jM(X){let Q=Yu0[X.provider];if(!Q)throw Error(`Unknown email provider: ${X.provider}`);return Q(X)}function NM(X,Q){return X.find((J)=>J.id===Q)}var n10=(X,Q)=>{let J=NM(Q,X.emailProviderId);if(!J)throw Error(`Email provider with id '${X.emailProviderId}' not found`);let Y=jM(J);return{sendMagicLink:async({email:G,url:$})=>{await Y({to:G,subject:"Magic Link",html:`<p>Click <a href="${$}">here</a> to login</p>`})}}};MM();import{createCipheriv as Gu0,createDecipheriv as $u0,randomBytes as o10}from"crypto";var s10="aes-256-gcm",zq=16,t10=16,e10=32;class qb{key;constructor(X){if(Buffer.from(X,"base64").length===e10)this.key=Buffer.from(X,"base64");else{let Q=$4("crypto");this.key=Q.createHash("sha256").update(X).digest()}}async encrypt(X){let Q=o10(zq),J=Gu0(s10,this.key,Q),Y=J.update(X,"utf8");Y=Buffer.concat([Y,J.final()]);let G=J.getAuthTag();return Buffer.concat([Q,G,Y]).toString("base64")}async decrypt(X){let Q=Buffer.from(X,"base64"),J=Q.subarray(0,zq),Y=Q.subarray(zq,zq+t10),G=Q.subarray(zq+t10),$=$u0(s10,this.key,J);$.setAuthTag(Y);let W=$.update(G);return W=Buffer.concat([W,$.final()]),W.toString("utf8")}static generateKey(){return o10(e10).toString("base64")}}u$();wM();var qu0=["connection_headers","oauth_config","configuration_scopes","metadata","tools","bindings"];class Ub{db;vault;constructor(X,Q){this.db=X;this.vault=Q}async create(X){let Q=X.id??VY("conn"),J=new Date().toISOString(),Y=await this.findById(Q);if(Y){if(Y.organization_id!==X.organization_id)throw Error("Connection ID already exists");return this.update(Q,X)}let G=await this.serializeConnection({...X,id:X.id??Q,status:"active",created_at:J,updated_at:J});await this.db.insertInto("connections").values(G).execute();let $=await this.findById(Q);if(!$)throw Error(`Failed to create connection with id: ${Q}`);return $}async findById(X,Q){let J=this.db.selectFrom("connections").selectAll().where("id","=",X);if(Q)J=J.where("organization_id","=",Q);let Y=await J.executeTakeFirst();return Y?this.deserializeConnection(Y):null}async list(X){let Q=await this.db.selectFrom("connections").selectAll().where("organization_id","=",X).execute();return Promise.all(Q.map((J)=>this.deserializeConnection(J)))}async update(X,Q){if(Object.keys(Q).length===0){let G=await this.findById(X);if(!G)throw Error("Connection not found");return G}let J=await this.serializeConnection({...Q,updated_at:new Date().toISOString()});await this.db.updateTable("connections").set(J).where("id","=",X).execute();let Y=await this.findById(X);if(!Y)throw Error("Connection not found after update");return Y}async delete(X){await this.db.deleteFrom("connections").where("id","=",X).execute()}async testConnection(X,Q){let J=await this.findById(X);if(!J)throw Error("Connection not found");let Y=Date.now();if(J.connection_type==="STDIO")return{healthy:!0,latencyMs:Date.now()-Y};if(!J.connection_url)return{healthy:!1,latencyMs:Date.now()-Y};try{let G=J.connection_headers,$=await fetch(J.connection_url,{method:"POST",headers:{"Content-Type":"application/json",...J.connection_token&&{Authorization:`Bearer ${J.connection_token}`},...G?.headers,...Q},body:JSON.stringify({jsonrpc:"2.0",method:"ping",id:1})});return{healthy:$.ok||$.status===404,latencyMs:Date.now()-Y}}catch{return{healthy:!1,latencyMs:Date.now()-Y}}}async serializeConnection(X){let Q={};for(let[J,Y]of Object.entries(X)){if(Y===void 0)continue;if(J==="connection_token"&&Y)Q[J]=await this.vault.encrypt(Y);else if(J==="configuration_state"&&Y){let G=JSON.stringify(Y);Q[J]=await this.vault.encrypt(G)}else if(J==="connection_headers"&&Y){let G=Y;if(Bq(G)&&G.envVars){let $={};for(let[W,H]of Object.entries(G.envVars))$[W]=await this.vault.encrypt(H);Q[J]=JSON.stringify({...G,envVars:$})}else Q[J]=JSON.stringify(G)}else if(qu0.includes(J))Q[J]=Y?JSON.stringify(Y):null;else Q[J]=Y}return Q}async deserializeConnection(X){let Q=null;if(X.connection_token)try{Q=await this.vault.decrypt(X.connection_token)}catch($){console.error("Failed to decrypt connection token:",$)}let J=null;if(X.configuration_state)try{let $=await this.vault.decrypt(X.configuration_state);J=JSON.parse($)}catch($){console.error("Failed to decrypt configuration state:",$)}let Y=null;if(X.connection_headers)try{let $=JSON.parse(X.connection_headers);if(Bq($)&&$.envVars){let W={};for(let[H,K]of Object.entries($.envVars))try{W[H]=await this.vault.decrypt(K)}catch{W[H]=K}Y={...$,envVars:W}}else Y=$}catch($){console.error("Failed to parse connection_headers:",$)}let G=($)=>{if($===null)return null;if(typeof $==="string")try{return JSON.parse($)}catch{return null}return $};return{id:X.id,organization_id:X.organization_id,created_by:X.created_by,title:X.title,description:X.description,icon:X.icon,app_name:X.app_name,app_id:X.app_id,connection_type:X.connection_type,connection_url:X.connection_url,connection_token:Q,connection_headers:Y,oauth_config:G(X.oauth_config),configuration_state:J,configuration_scopes:G(X.configuration_scopes),metadata:G(X.metadata),tools:G(X.tools),bindings:G(X.bindings),status:X.status,created_at:X.created_at,updated_at:X.updated_at}}}wM();class zb{db;constructor(X){this.db=X}async create(X,Q,J){let Y=VY("gw"),G=new Date().toISOString();if(J.isDefault)return await this.db.transaction().execute(async(W)=>{if(await W.updateTable("gateways").set({is_default:0,updated_at:G,updated_by:Q}).where("organization_id","=",X).where("is_default","=",1).execute(),await W.insertInto("gateways").values({id:Y,organization_id:X,title:J.title,description:J.description??null,tool_selection_strategy:J.toolSelectionStrategy??"passthrough",tool_selection_mode:J.toolSelectionMode??"inclusion",icon:J.icon??null,status:J.status??"active",is_default:1,created_at:G,updated_at:G,created_by:Q,updated_by:null}).execute(),J.connections.length>0)await W.insertInto("gateway_connections").values(J.connections.map((K)=>({id:VY("gwc"),gateway_id:Y,connection_id:K.connectionId,selected_tools:K.selectedTools?JSON.stringify(K.selectedTools):null,selected_resources:K.selectedResources?JSON.stringify(K.selectedResources):null,selected_prompts:K.selectedPrompts?JSON.stringify(K.selectedPrompts):null,created_at:G}))).execute();let H=await this.findByIdInternal(W,Y);if(!H)throw Error(`Failed to create gateway with id: ${Y}`);return H});if(await this.db.insertInto("gateways").values({id:Y,organization_id:X,title:J.title,description:J.description??null,tool_selection_strategy:J.toolSelectionStrategy??"passthrough",tool_selection_mode:J.toolSelectionMode??"inclusion",icon:J.icon??null,status:J.status??"active",is_default:0,created_at:G,updated_at:G,created_by:Q,updated_by:null}).execute(),J.connections.length>0)await this.db.insertInto("gateway_connections").values(J.connections.map((W)=>({id:VY("gwc"),gateway_id:Y,connection_id:W.connectionId,selected_tools:W.selectedTools?JSON.stringify(W.selectedTools):null,selected_resources:W.selectedResources?JSON.stringify(W.selectedResources):null,selected_prompts:W.selectedPrompts?JSON.stringify(W.selectedPrompts):null,created_at:G}))).execute();let $=await this.findById(Y);if(!$)throw Error(`Failed to create gateway with id: ${Y}`);return $}async findById(X){return this.findByIdInternal(this.db,X)}async findByIdInternal(X,Q){let J=await X.selectFrom("gateways").selectAll().where("id","=",Q).executeTakeFirst();if(!J)return null;let Y=await X.selectFrom("gateway_connections").selectAll().where("gateway_id","=",Q).execute();return this.deserializeGatewayWithConnections(J,Y)}async list(X){let Q=await this.db.selectFrom("gateways").selectAll().where("organization_id","=",X).execute(),J=Q.map(($)=>$.id);if(J.length===0)return[];let Y=await this.db.selectFrom("gateway_connections").selectAll().where("gateway_id","in",J).execute(),G=new Map;for(let $ of Y){let W=G.get($.gateway_id)??[];W.push($),G.set($.gateway_id,W)}return Q.map(($)=>this.deserializeGatewayWithConnections($,G.get($.id)??[]))}async listByConnectionId(X,Q){let Y=(await this.db.selectFrom("gateway_connections").select("gateway_id").where("connection_id","=",Q).execute()).map((K)=>K.gateway_id);if(Y.length===0)return[];let G=await this.db.selectFrom("gateways").selectAll().where("id","in",Y).where("organization_id","=",X).execute();if(G.length===0)return[];let $=G.map((K)=>K.id),W=await this.db.selectFrom("gateway_connections").selectAll().where("gateway_id","in",$).execute(),H=new Map;for(let K of W){let Z=H.get(K.gateway_id)??[];Z.push(K),H.set(K.gateway_id,Z)}return G.map((K)=>this.deserializeGatewayWithConnections(K,H.get(K.id)??[]))}async update(X,Q,J){let Y=new Date().toISOString(),G={updated_at:Y,updated_by:Q};if(J.title!==void 0)G.title=J.title;if(J.description!==void 0)G.description=J.description;if(J.toolSelectionStrategy!==void 0)G.tool_selection_strategy=J.toolSelectionStrategy;if(J.toolSelectionMode!==void 0)G.tool_selection_mode=J.toolSelectionMode;if(J.icon!==void 0)G.icon=J.icon;if(J.status!==void 0)G.status=J.status;if(J.isDefault===!1)G.is_default=0;if(J.isDefault===!0)G.is_default=1;if(J.isDefault===!0){let W=await this.findById(X);if(!W)throw Error(`Gateway not found: ${X}`);await this.db.transaction().execute(async(H)=>{if(await H.updateTable("gateways").set({is_default:0,updated_at:Y,updated_by:Q}).where("organization_id","=",W.organizationId).where("is_default","=",1).execute(),await H.updateTable("gateways").set(G).where("id","=",X).execute(),J.connections!==void 0){if(await H.deleteFrom("gateway_connections").where("gateway_id","=",X).execute(),J.connections.length>0)await H.insertInto("gateway_connections").values(J.connections.map((K)=>({id:VY("gwc"),gateway_id:X,connection_id:K.connectionId,selected_tools:K.selectedTools?JSON.stringify(K.selectedTools):null,selected_resources:K.selectedResources?JSON.stringify(K.selectedResources):null,selected_prompts:K.selectedPrompts?JSON.stringify(K.selectedPrompts):null,created_at:Y}))).execute()}})}else if(await this.db.updateTable("gateways").set(G).where("id","=",X).execute(),J.connections!==void 0){if(await this.db.deleteFrom("gateway_connections").where("gateway_id","=",X).execute(),J.connections.length>0)await this.db.insertInto("gateway_connections").values(J.connections.map((W)=>({id:VY("gwc"),gateway_id:X,connection_id:W.connectionId,selected_tools:W.selectedTools?JSON.stringify(W.selectedTools):null,selected_resources:W.selectedResources?JSON.stringify(W.selectedResources):null,selected_prompts:W.selectedPrompts?JSON.stringify(W.selectedPrompts):null,created_at:Y}))).execute()}let $=await this.findById(X);if(!$)throw Error("Gateway not found after update");return $}async delete(X){await this.db.deleteFrom("gateways").where("id","=",X).execute()}async getDefaultByOrgId(X){let Q=await this.db.selectFrom("gateways").selectAll().where("organization_id","=",X).where("is_default","=",1).executeTakeFirst();if(!Q)return null;let J=await this.db.selectFrom("gateway_connections").selectAll().where("gateway_id","=",Q.id).execute();return this.deserializeGatewayWithConnections(Q,J)}async getDefaultByOrgSlug(X){let Q=await this.db.selectFrom("organization").select("id").where("slug","=",X).executeTakeFirst();if(!Q)return null;return this.getDefaultByOrgId(Q.id)}async setDefault(X,Q){let J=await this.findById(X);if(!J)throw Error(`Gateway not found: ${X}`);let Y=new Date().toISOString();await this.db.transaction().execute(async($)=>{await $.updateTable("gateways").set({is_default:0,updated_at:Y,updated_by:Q}).where("organization_id","=",J.organizationId).where("is_default","=",1).execute(),await $.updateTable("gateways").set({is_default:1,updated_at:Y,updated_by:Q}).where("id","=",X).execute()});let G=await this.findById(X);if(!G)throw Error("Gateway not found after setting default");return G}deserializeGatewayWithConnections(X,Q){return{...this.deserializeGateway(X),connections:Q.map((Y)=>({connectionId:Y.connection_id,selectedTools:this.parseJson(Y.selected_tools),selectedResources:this.parseJson(Y.selected_resources),selectedPrompts:this.parseJson(Y.selected_prompts)}))}}deserializeGateway(X){return{id:X.id,organizationId:X.organization_id,title:X.title,description:X.description,toolSelectionStrategy:this.parseToolSelectionStrategy(X.tool_selection_strategy),toolSelectionMode:this.parseToolSelectionMode(X.tool_selection_mode),icon:X.icon,status:X.status,isDefault:X.is_default===1,createdAt:X.created_at,updatedAt:X.updated_at,createdBy:X.created_by,updatedBy:X.updated_by}}parseToolSelectionStrategy(X){if(X==="smart_tool_selection")return"smart_tool_selection";if(X==="code_execution")return"code_execution";return"passthrough"}parseToolSelectionMode(X){if(X==="exclusion")return"exclusion";return"inclusion"}parseJson(X){if(X===null)return null;if(typeof X==="string")try{return JSON.parse(X)}catch{return null}return X}}DP();d0();function j64(X){return[{permissions:{self:["*"]},getTools:async()=>{let{ALL_TOOLS:Q}=await Promise.resolve().then(() => (LZ0(),BZ0));return Q.map((J)=>{return{name:J.name,inputSchema:N.toJSONSchema(J.inputSchema,{unrepresentable:"any"}),outputSchema:J.outputSchema?N.toJSONSchema(J.outputSchema,{unrepresentable:"any"}):void 0,description:J.description}})},data:a10(process.env.BASE_URL||"http://localhost:3000")},{data:r10()},{data:i10(X)}]}async function DZ0(X,Q){try{let J=Uq(),Y=new qb(process.env.ENCRYPTION_KEY||""),G=new Ub(J.db,Y),$=new zb(J.db),W=j64(X),H=[];await Promise.all(W.map(async(K)=>{let Z=null;if(K.permissions)Z=(await LZ.api.createApiKey({body:{name:`${K.data.app_name??crypto.randomUUID()}-mcp`,userId:Q,permissions:K.permissions,rateLimitEnabled:!1,metadata:{organization:{id:X},purpose:"default-org-connections"}}}))?.key;let F=await K.getTools?.()??await XZ({id:"pending",title:K.data.title,connection_type:K.data.connection_type,connection_url:K.data.connection_url,connection_token:K.data.connection_token,connection_headers:K.data.connection_headers}).catch(()=>null),V=K.data.id?K.data.id.startsWith(`${X}_`)?K.data.id:`${X}_${K.data.id}`:void 0,q=await G.create({...K.data,id:V,tools:F,organization_id:X,created_by:Q,connection_token:K.data.connection_token??Z});H.push(q.id)})),await $.create(X,Q,{title:"Default Hub",description:"Auto-created Hub for organization",toolSelectionStrategy:"passthrough",toolSelectionMode:"exclusion",status:"active",isDefault:!0,connections:H.map((K)=>({connectionId:K}))})}catch(J){console.error("Error creating default MCP connections:",J)}}var jZ0=["owner","admin"];var N64=(X)=>{return{defaultSSO:[{domain:X.domain,providerId:X.providerId,oidcConfig:{issuer:`https://login.microsoftonline.com/${X.MS_TENANT_ID}/v2.0`,pkce:!0,clientId:X.MS_CLIENT_ID,clientSecret:X.MS_CLIENT_SECRET,discoveryEndpoint:`https://login.microsoftonline.com/${X.MS_TENANT_ID}/v2.0/.well-known/openid-configuration`,authorizationEndpoint:`https://login.microsoftonline.com/${X.MS_TENANT_ID}/oauth2/v2.0/authorize`,tokenEndpoint:`https://login.microsoftonline.com/${X.MS_TENANT_ID}/oauth2/v2.0/token`,jwksEndpoint:`https://login.microsoftonline.com/${X.MS_TENANT_ID}/discovery/v2.0/keys`,userInfoEndpoint:"https://graph.microsoft.com/oidc/userinfo",tokenEndpointAuthentication:"client_secret_post",scopes:X.scopes,mapping:{id:"sub",email:"email",emailVerified:"email_verified",name:"name",image:"picture",extraFields:{emailVerified:"email_verified"}}}}]}},NZ0=(X)=>{if(X.providerId==="microsoft")return N64(X);throw Error(`Unsupported provider: ${X.providerId}`)};function O64(X){return X.toLowerCase().trim().replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}var OZ0=["labs","hub","studio","workspace","systems","core","cloud","works"],MZ0=["capybara","guarana","deco","samba","feijoada","capoeira","carnival"];function M64(){let X=Math.floor(Math.random()*MZ0.length),Q=Math.floor(Math.random()*OZ0.length),J=MZ0[X]??"deco",Y=OZ0[Q]??"studio";return`${J}-${Y}`}var w64=Object.values(fR()).map((X)=>X.map((Q)=>Q.name)).flat(),P64={...nO,self:["*",...w64]},yP=FY(P64),T64=yP.newRole({self:["*"],...aV.statements}),A64=yP.newRole({self:["*"],...aV.statements}),E64=yP.newRole({self:["*"],...aV.statements}),wZ0=Object.values(fR()).map((X)=>X.map((Q)=>`self:${Q.name}`)).flat(),$J=E_.auth,PZ0=void 0;if($J.inviteEmailProviderId&&$J.emailProviders&&$J.emailProviders.length>0){let X=NM($J.emailProviders,$J.inviteEmailProviderId);if(X){let Q=jM(X);PZ0=async(J)=>{let Y=J.inviter.user?.name||J.inviter.user?.email,G=`${process.env.BASE_URL||"http://localhost:3000"}/auth/accept-invitation?invitationId=${J.invitation.id}`;await Q({to:J.email,subject:`Invitation to join ${J.organization.name}`,html:`
|
|
988
|
+
</html>`},A_=(X)=>{let Q=X?.path??"/reference";return{id:"open-api",endpoints:{generateOpenAPISchema:O0("/open-api/generate-schema",{method:"GET"},async(J)=>{let Y=await Z60(J.context,J.context.options);return J.json(Y)}),openAPIReference:O0(Q,{method:"GET",metadata:{isAction:!1}},async(J)=>{if(X?.disableDefaultReference)throw new h("NOT_FOUND");let Y=await Z60(J.context,J.context.options);return new Response(Xf0(Y,X?.theme,X?.nonce),{headers:{"Content-Type":"text/html"}})})}}};TX();k9();e8();v1();d0();var JA4=P6(async()=>{return{}}),YA4=P6({use:[O8]},async(X)=>{return{session:X.context.session}}),GA4=r6({YOU_ARE_NOT_ALLOWED_TO_CREATE_A_NEW_ORGANIZATION:"You are not allowed to create a new organization",YOU_HAVE_REACHED_THE_MAXIMUM_NUMBER_OF_ORGANIZATIONS:"You have reached the maximum number of organizations",ORGANIZATION_ALREADY_EXISTS:"Organization already exists",ORGANIZATION_SLUG_ALREADY_TAKEN:"Organization slug already taken",ORGANIZATION_NOT_FOUND:"Organization not found",USER_IS_NOT_A_MEMBER_OF_THE_ORGANIZATION:"User is not a member of the organization",YOU_ARE_NOT_ALLOWED_TO_UPDATE_THIS_ORGANIZATION:"You are not allowed to update this organization",YOU_ARE_NOT_ALLOWED_TO_DELETE_THIS_ORGANIZATION:"You are not allowed to delete this organization",NO_ACTIVE_ORGANIZATION:"No active organization",USER_IS_ALREADY_A_MEMBER_OF_THIS_ORGANIZATION:"User is already a member of this organization",MEMBER_NOT_FOUND:"Member not found",ROLE_NOT_FOUND:"Role not found",YOU_ARE_NOT_ALLOWED_TO_CREATE_A_NEW_TEAM:"You are not allowed to create a new team",TEAM_ALREADY_EXISTS:"Team already exists",TEAM_NOT_FOUND:"Team not found",YOU_CANNOT_LEAVE_THE_ORGANIZATION_AS_THE_ONLY_OWNER:"You cannot leave the organization as the only owner",YOU_CANNOT_LEAVE_THE_ORGANIZATION_WITHOUT_AN_OWNER:"You cannot leave the organization without an owner",YOU_ARE_NOT_ALLOWED_TO_DELETE_THIS_MEMBER:"You are not allowed to delete this member",YOU_ARE_NOT_ALLOWED_TO_INVITE_USERS_TO_THIS_ORGANIZATION:"You are not allowed to invite users to this organization",USER_IS_ALREADY_INVITED_TO_THIS_ORGANIZATION:"User is already invited to this organization",INVITATION_NOT_FOUND:"Invitation not found",YOU_ARE_NOT_THE_RECIPIENT_OF_THE_INVITATION:"You are not the recipient of the invitation",EMAIL_VERIFICATION_REQUIRED_BEFORE_ACCEPTING_OR_REJECTING_INVITATION:"Email verification required before accepting or rejecting invitation",YOU_ARE_NOT_ALLOWED_TO_CANCEL_THIS_INVITATION:"You are not allowed to cancel this invitation",INVITER_IS_NO_LONGER_A_MEMBER_OF_THE_ORGANIZATION:"Inviter is no longer a member of the organization",YOU_ARE_NOT_ALLOWED_TO_INVITE_USER_WITH_THIS_ROLE:"You are not allowed to invite a user with this role",FAILED_TO_RETRIEVE_INVITATION:"Failed to retrieve invitation",YOU_HAVE_REACHED_THE_MAXIMUM_NUMBER_OF_TEAMS:"You have reached the maximum number of teams",UNABLE_TO_REMOVE_LAST_TEAM:"Unable to remove last team",YOU_ARE_NOT_ALLOWED_TO_UPDATE_THIS_MEMBER:"You are not allowed to update this member",ORGANIZATION_MEMBERSHIP_LIMIT_REACHED:"Organization membership limit reached",YOU_ARE_NOT_ALLOWED_TO_CREATE_TEAMS_IN_THIS_ORGANIZATION:"You are not allowed to create teams in this organization",YOU_ARE_NOT_ALLOWED_TO_DELETE_TEAMS_IN_THIS_ORGANIZATION:"You are not allowed to delete teams in this organization",YOU_ARE_NOT_ALLOWED_TO_UPDATE_THIS_TEAM:"You are not allowed to update this team",YOU_ARE_NOT_ALLOWED_TO_DELETE_THIS_TEAM:"You are not allowed to delete this team",INVITATION_LIMIT_REACHED:"Invitation limit reached",TEAM_MEMBER_LIMIT_REACHED:"Team member limit reached",USER_IS_NOT_A_MEMBER_OF_THE_TEAM:"User is not a member of the team",YOU_CAN_NOT_ACCESS_THE_MEMBERS_OF_THIS_TEAM:"You are not allowed to list the members of this team",YOU_DO_NOT_HAVE_AN_ACTIVE_TEAM:"You do not have an active team",YOU_ARE_NOT_ALLOWED_TO_CREATE_A_NEW_TEAM_MEMBER:"You are not allowed to create a new member",YOU_ARE_NOT_ALLOWED_TO_REMOVE_A_TEAM_MEMBER:"You are not allowed to remove a team member",YOU_ARE_NOT_ALLOWED_TO_ACCESS_THIS_ORGANIZATION:"You are not allowed to access this organization as an owner",YOU_ARE_NOT_A_MEMBER_OF_THIS_ORGANIZATION:"You are not a member of this organization",MISSING_AC_INSTANCE:"Dynamic Access Control requires a pre-defined ac instance on the server auth plugin. Read server logs for more information",YOU_MUST_BE_IN_AN_ORGANIZATION_TO_CREATE_A_ROLE:"You must be in an organization to create a role",YOU_ARE_NOT_ALLOWED_TO_CREATE_A_ROLE:"You are not allowed to create a role",YOU_ARE_NOT_ALLOWED_TO_UPDATE_A_ROLE:"You are not allowed to update a role",YOU_ARE_NOT_ALLOWED_TO_DELETE_A_ROLE:"You are not allowed to delete a role",YOU_ARE_NOT_ALLOWED_TO_READ_A_ROLE:"You are not allowed to read a role",YOU_ARE_NOT_ALLOWED_TO_LIST_A_ROLE:"You are not allowed to list a role",YOU_ARE_NOT_ALLOWED_TO_GET_A_ROLE:"You are not allowed to get a role",TOO_MANY_ROLES:"This organization has too many roles",INVALID_RESOURCE:"The provided permission includes an invalid resource",ROLE_NAME_IS_ALREADY_TAKEN:"That role name is already taken",CANNOT_DELETE_A_PRE_DEFINED_ROLE:"Cannot delete a pre-defined role"});var $A4=Number.POSITIVE_INFINITY;var V60=M(),Jf0=o0(["pending","accepted","rejected","canceled"]).default("pending"),WA4=b({id:M().default(Z1),name:M(),slug:M(),logo:M().nullish().optional(),metadata:v0(M(),I6()).or(M().transform((X)=>JSON.parse(X))).optional(),createdAt:E4()}),HA4=b({id:M().default(Z1),organizationId:M(),userId:j4.string(),role:V60,createdAt:E4().default(()=>new Date)}),KA4=b({id:M().default(Z1),organizationId:M(),email:M(),role:V60,status:Jf0,teamId:M().nullish(),inviterId:M(),expiresAt:E4(),createdAt:E4().default(()=>new Date)}),ZA4=b({id:M().default(Z1),name:M().min(1),organizationId:M(),createdAt:E4(),updatedAt:E4().optional()}),FA4=b({id:M().default(Z1),teamId:M(),userId:M(),createdAt:E4().default(()=>new Date)}),VA4=b({id:M().default(Z1),organizationId:M(),role:M(),permission:v0(M(),Z0(M())),createdAt:E4().default(()=>new Date),updatedAt:E4().optional()}),F60=["admin","member","owner"],qA4=I4([o0(F60),Z0(o0(F60))]);w8();e8();v1();var wA4=r6({INVALID_PHONE_NUMBER:"Invalid phone number",PHONE_NUMBER_EXIST:"Phone number already exists",PHONE_NUMBER_NOT_EXIST:"phone number isn't registered",INVALID_PHONE_NUMBER_OR_PASSWORD:"Invalid phone number or password",UNEXPECTED_ERROR:"Unexpected error",OTP_NOT_FOUND:"OTP not found",OTP_EXPIRED:"OTP expired",INVALID_OTP:"Invalid OTP",PHONE_NUMBER_NOT_VERIFIED:"Phone number not verified",PHONE_NUMBER_CANNOT_BE_UPDATED:"Phone number cannot be updated",SEND_OTP_NOT_IMPLEMENTED:"sendOTP not implemented",TOO_MANY_ATTEMPTS:"Too many attempts"});w8();AX();e8();v1();A1();Z8();var Yf0=r6({OTP_NOT_ENABLED:"OTP not enabled",OTP_HAS_EXPIRED:"OTP has expired",TOTP_NOT_ENABLED:"TOTP not enabled",TWO_FACTOR_NOT_ENABLED:"Two factor isn't enabled",BACKUP_CODES_NOT_ENABLED:"Backup codes aren't enabled",INVALID_BACKUP_CODE:"Invalid backup code",INVALID_CODE:"Invalid code",TOO_MANY_ATTEMPTS_REQUEST_NEW_CODE:"Too many attempts. Please request a new code.",INVALID_TWO_FACTOR_COOKIE:"Invalid two factor cookie"});e8();v1();var Gf0=r6({INVALID_USERNAME_OR_PASSWORD:"Invalid username or password",EMAIL_NOT_VERIFIED:"Email not verified",UNEXPECTED_ERROR:"Unexpected error",USERNAME_IS_ALREADY_TAKEN:"Username is already taken. Please try another.",USERNAME_TOO_SHORT:"Username is too short",USERNAME_TOO_LONG:"Username is too long",INVALID_USERNAME:"Username is invalid",INVALID_DISPLAY_USERNAME:"Display username is invalid"});var FK={enabled:!0,batchSize:250,flushIntervalMs:300,maxQueueSize:1e4,redactor:"regex"};import{existsSync as q60,readFileSync as U60}from"fs";var WM={emailAndPassword:{enabled:!0}},z60=process.env.CONFIG_PATH||"./config.json",B60=process.env.AUTH_CONFIG_PATH||"./auth-config.json";function $f0(){if(q60(z60))try{let X=U60(z60,"utf-8"),Q=JSON.parse(X);return{auth:WM,monitoring:FK,...Q}}catch{return{auth:WM,monitoring:FK}}if(q60(B60))try{let X=U60(B60,"utf-8");return{auth:JSON.parse(X),monitoring:FK}}catch{return{auth:WM,monitoring:FK}}return{auth:WM,monitoring:FK}}var E_=$f0();import{existsSync as ox0,mkdirSync as sx0}from"fs";import{Kysely as f10,PostgresDialect as h10,sql as y10}from"kysely";import{BunWorkerDialect as g10}from"kysely-bun-worker";import*as x10 from"path";var uJ=WJ(Yb(),1),M24=uJ.default.Client,Hb=uJ.default.Pool,w24=uJ.default.Connection,P24=uJ.default.types,T24=uJ.default.Query,A24=uJ.default.DatabaseError,E24=uJ.default.escapeIdentifier,C24=uJ.default.escapeLiteral,R24=uJ.default.Result,I24=uJ.default.TypeOverrides,S24=uJ.default.defaults;var u10={keepAlive:!0,keepAliveInitialDelayMillis:1e4,idleTimeoutMillis:300000,connectionTimeoutMillis:30000,allowExitOnIdle:!0};function tx0(X){let Q=new Hb({connectionString:X.connectionString,max:X.options?.maxConnections||10,ssl:process.env.DATABASE_PG_SSL==="true"?!0:!1,...u10}),J=new h10({pool:Q});return{type:"postgres",db:new f10({dialect:J}),pool:Q}}function m10(X){if(X===":memory:")return":memory:";if(X.includes("://"))return new URL(X).pathname;return X}function l10(X){if(X!==":memory:"&&X!=="/"&&X){let Q=X.substring(0,X.lastIndexOf("/"));if(Q&&Q!=="/"&&!ox0(Q))try{sx0(Q,{recursive:!0})}catch{return console.warn(`Failed to create directory ${Q}, using in-memory database`),":memory:"}}return X}function ex0(X){let Q=m10(X.connectionString);Q=l10(Q);let J=new g10({url:Q||":memory:"}),Y=new f10({dialect:J});if(Q!==":memory:"&&X.options?.enableWAL!==!1)y10`PRAGMA journal_mode = WAL;`.execute(Y).catch(()=>{});if(Q!==":memory:"){let G=X.options?.busyTimeout||5000;y10`PRAGMA busy_timeout = ${G};`.execute(Y).catch(()=>{})}return{type:"sqlite",db:Y}}function d10(X){let Q=X||"file:./data/mesh.db";if(Q===":memory:")return{type:"sqlite",connectionString:":memory:"};Q=Q.startsWith("/")?`file://${Q}`:Q;let J=URL.canParse(Q)?new URL(Q):null,Y=J?.protocol.replace(":","")??Q.split("://")[0];switch(Y){case"postgres":case"postgresql":return{type:"postgres",connectionString:Q};case"sqlite":case"file":if(!J?.pathname)throw Error("Invalid database URL: "+Q);return{type:"sqlite",connectionString:J.pathname};default:throw Error(`Unsupported database protocol: ${Y}. Supported protocols: postgres://, postgresql://, sqlite://, file://`)}}function Zb(){return process.env.DATABASE_URL||`file:${x10.join(process.cwd(),"data/mesh.db")}`}function p10(X){let Q=d10(X);if(Q.type==="postgres")return new h10({pool:new Hb({connectionString:Q.connectionString,max:Q.options?.maxConnections||10,ssl:process.env.DATABASE_PG_SSL==="true"?!0:!1,...u10})});let J=m10(Q.connectionString);return J=l10(J),new g10({url:J||":memory:"})}function Xu0(X){let Q=d10(X);if(Q.type==="postgres")return tx0(Q);return ex0(Q)}async function c10(X){if(await X.db.destroy(),X.type==="postgres"&&!X.pool.ended)await X.pool.end()}var Kb=null;function Uq(){if(!Kb)Kb=Xu0(Zb());return Kb}class Fb{apiKey;constructor(X){this.apiKey=X}async sendEmail({to:X,from:Q,subject:J,html:Y}){let G=await fetch("https://api.resend.com/emails",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${this.apiKey}`},body:JSON.stringify({to:X,from:Q,subject:J,html:Y})});if(!G.ok)throw Error(`Failed to send email: ${G.statusText}`)}}class Vb{apiKey;constructor(X){this.apiKey=X}async sendEmail({to:X,from:Q,subject:J,html:Y}){let G=await fetch("https://api.sendgrid.com/v3/mail/send",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${this.apiKey}`},body:JSON.stringify({personalizations:[{to:[{email:X}]}],from:{email:Q},subject:J,content:[{type:"text/html",value:Y}]})});if(!G.ok){let $=await G.text();throw Error(`Failed to send email via SendGrid: ${G.statusText} - ${$}`)}}}var Qu0=(X)=>{let Q=new Fb(X.config.apiKey);return async({to:J,subject:Y,html:G})=>{await Q.sendEmail({to:J,from:X.config.fromEmail,subject:Y,html:G})}},Ju0=(X)=>{let Q=new Vb(X.config.apiKey);return async({to:J,subject:Y,html:G})=>{await Q.sendEmail({to:J,from:X.config.fromEmail,subject:Y,html:G})}},Yu0={resend:Qu0,sendgrid:Ju0};function jM(X){let Q=Yu0[X.provider];if(!Q)throw Error(`Unknown email provider: ${X.provider}`);return Q(X)}function NM(X,Q){return X.find((J)=>J.id===Q)}var n10=(X,Q)=>{let J=NM(Q,X.emailProviderId);if(!J)throw Error(`Email provider with id '${X.emailProviderId}' not found`);let Y=jM(J);return{sendMagicLink:async({email:G,url:$})=>{await Y({to:G,subject:"Magic Link",html:`<p>Click <a href="${$}">here</a> to login</p>`})}}};MM();import{createCipheriv as Gu0,createDecipheriv as $u0,randomBytes as o10}from"crypto";var s10="aes-256-gcm",zq=16,t10=16,e10=32;class qb{key;constructor(X){if(Buffer.from(X,"base64").length===e10)this.key=Buffer.from(X,"base64");else{let Q=$4("crypto");this.key=Q.createHash("sha256").update(X).digest()}}async encrypt(X){let Q=o10(zq),J=Gu0(s10,this.key,Q),Y=J.update(X,"utf8");Y=Buffer.concat([Y,J.final()]);let G=J.getAuthTag();return Buffer.concat([Q,G,Y]).toString("base64")}async decrypt(X){let Q=Buffer.from(X,"base64"),J=Q.subarray(0,zq),Y=Q.subarray(zq,zq+t10),G=Q.subarray(zq+t10),$=$u0(s10,this.key,J);$.setAuthTag(Y);let W=$.update(G);return W=Buffer.concat([W,$.final()]),W.toString("utf8")}static generateKey(){return o10(e10).toString("base64")}}u$();wM();var qu0=["connection_headers","oauth_config","configuration_scopes","metadata","tools","bindings"];class Ub{db;vault;constructor(X,Q){this.db=X;this.vault=Q}async create(X){let Q=X.id??VY("conn"),J=new Date().toISOString(),Y=await this.findById(Q);if(Y){if(Y.organization_id!==X.organization_id)throw Error("Connection ID already exists");return this.update(Q,X)}let G=await this.serializeConnection({...X,id:X.id??Q,status:"active",created_at:J,updated_at:J});await this.db.insertInto("connections").values(G).execute();let $=await this.findById(Q);if(!$)throw Error(`Failed to create connection with id: ${Q}`);return $}async findById(X,Q){let J=this.db.selectFrom("connections").selectAll().where("id","=",X);if(Q)J=J.where("organization_id","=",Q);let Y=await J.executeTakeFirst();return Y?this.deserializeConnection(Y):null}async list(X){let Q=await this.db.selectFrom("connections").selectAll().where("organization_id","=",X).execute();return Promise.all(Q.map((J)=>this.deserializeConnection(J)))}async update(X,Q){if(Object.keys(Q).length===0){let G=await this.findById(X);if(!G)throw Error("Connection not found");return G}let J=await this.serializeConnection({...Q,updated_at:new Date().toISOString()});await this.db.updateTable("connections").set(J).where("id","=",X).execute();let Y=await this.findById(X);if(!Y)throw Error("Connection not found after update");return Y}async delete(X){await this.db.deleteFrom("connections").where("id","=",X).execute()}async testConnection(X,Q){let J=await this.findById(X);if(!J)throw Error("Connection not found");let Y=Date.now();if(J.connection_type==="STDIO")return{healthy:!0,latencyMs:Date.now()-Y};if(!J.connection_url)return{healthy:!1,latencyMs:Date.now()-Y};try{let G=J.connection_headers,$=await fetch(J.connection_url,{method:"POST",headers:{"Content-Type":"application/json",...J.connection_token&&{Authorization:`Bearer ${J.connection_token}`},...G?.headers,...Q},body:JSON.stringify({jsonrpc:"2.0",method:"ping",id:1})});return{healthy:$.ok||$.status===404,latencyMs:Date.now()-Y}}catch{return{healthy:!1,latencyMs:Date.now()-Y}}}async serializeConnection(X){let Q={};for(let[J,Y]of Object.entries(X)){if(Y===void 0)continue;if(J==="connection_token"&&Y)Q[J]=await this.vault.encrypt(Y);else if(J==="configuration_state"&&Y){let G=JSON.stringify(Y);Q[J]=await this.vault.encrypt(G)}else if(J==="connection_headers"&&Y){let G=Y;if(Bq(G)&&G.envVars){let $={};for(let[W,H]of Object.entries(G.envVars))$[W]=await this.vault.encrypt(H);Q[J]=JSON.stringify({...G,envVars:$})}else Q[J]=JSON.stringify(G)}else if(qu0.includes(J))Q[J]=Y?JSON.stringify(Y):null;else Q[J]=Y}return Q}async deserializeConnection(X){let Q=null;if(X.connection_token)try{Q=await this.vault.decrypt(X.connection_token)}catch($){console.error("Failed to decrypt connection token:",$)}let J=null;if(X.configuration_state)try{let $=await this.vault.decrypt(X.configuration_state);J=JSON.parse($)}catch($){console.error("Failed to decrypt configuration state:",$)}let Y=null;if(X.connection_headers)try{let $=JSON.parse(X.connection_headers);if(Bq($)&&$.envVars){let W={};for(let[H,K]of Object.entries($.envVars))try{W[H]=await this.vault.decrypt(K)}catch{W[H]=K}Y={...$,envVars:W}}else Y=$}catch($){console.error("Failed to parse connection_headers:",$)}let G=($)=>{if($===null)return null;if(typeof $==="string")try{return JSON.parse($)}catch{return null}return $};return{id:X.id,organization_id:X.organization_id,created_by:X.created_by,title:X.title,description:X.description,icon:X.icon,app_name:X.app_name,app_id:X.app_id,connection_type:X.connection_type,connection_url:X.connection_url,connection_token:Q,connection_headers:Y,oauth_config:G(X.oauth_config),configuration_state:J,configuration_scopes:G(X.configuration_scopes),metadata:G(X.metadata),tools:G(X.tools),bindings:G(X.bindings),status:X.status,created_at:X.created_at,updated_at:X.updated_at}}}wM();class zb{db;constructor(X){this.db=X}async create(X,Q,J){let Y=VY("gw"),G=new Date().toISOString();if(J.isDefault)return await this.db.transaction().execute(async(W)=>{if(await W.updateTable("gateways").set({is_default:0,updated_at:G,updated_by:Q}).where("organization_id","=",X).where("is_default","=",1).execute(),await W.insertInto("gateways").values({id:Y,organization_id:X,title:J.title,description:J.description??null,tool_selection_strategy:J.toolSelectionStrategy??"passthrough",tool_selection_mode:J.toolSelectionMode??"inclusion",icon:J.icon??null,status:J.status??"active",is_default:1,created_at:G,updated_at:G,created_by:Q,updated_by:null}).execute(),J.connections.length>0)await W.insertInto("gateway_connections").values(J.connections.map((K)=>({id:VY("gwc"),gateway_id:Y,connection_id:K.connectionId,selected_tools:K.selectedTools?JSON.stringify(K.selectedTools):null,selected_resources:K.selectedResources?JSON.stringify(K.selectedResources):null,selected_prompts:K.selectedPrompts?JSON.stringify(K.selectedPrompts):null,created_at:G}))).execute();let H=await this.findByIdInternal(W,Y);if(!H)throw Error(`Failed to create gateway with id: ${Y}`);return H});if(await this.db.insertInto("gateways").values({id:Y,organization_id:X,title:J.title,description:J.description??null,tool_selection_strategy:J.toolSelectionStrategy??"passthrough",tool_selection_mode:J.toolSelectionMode??"inclusion",icon:J.icon??null,status:J.status??"active",is_default:0,created_at:G,updated_at:G,created_by:Q,updated_by:null}).execute(),J.connections.length>0)await this.db.insertInto("gateway_connections").values(J.connections.map((W)=>({id:VY("gwc"),gateway_id:Y,connection_id:W.connectionId,selected_tools:W.selectedTools?JSON.stringify(W.selectedTools):null,selected_resources:W.selectedResources?JSON.stringify(W.selectedResources):null,selected_prompts:W.selectedPrompts?JSON.stringify(W.selectedPrompts):null,created_at:G}))).execute();let $=await this.findById(Y);if(!$)throw Error(`Failed to create gateway with id: ${Y}`);return $}async findById(X){return this.findByIdInternal(this.db,X)}async findByIdInternal(X,Q){let J=await X.selectFrom("gateways").selectAll().where("id","=",Q).executeTakeFirst();if(!J)return null;let Y=await X.selectFrom("gateway_connections").selectAll().where("gateway_id","=",Q).execute();return this.deserializeGatewayWithConnections(J,Y)}async list(X){let Q=await this.db.selectFrom("gateways").selectAll().where("organization_id","=",X).execute(),J=Q.map(($)=>$.id);if(J.length===0)return[];let Y=await this.db.selectFrom("gateway_connections").selectAll().where("gateway_id","in",J).execute(),G=new Map;for(let $ of Y){let W=G.get($.gateway_id)??[];W.push($),G.set($.gateway_id,W)}return Q.map(($)=>this.deserializeGatewayWithConnections($,G.get($.id)??[]))}async listByConnectionId(X,Q){let Y=(await this.db.selectFrom("gateway_connections").select("gateway_id").where("connection_id","=",Q).execute()).map((K)=>K.gateway_id);if(Y.length===0)return[];let G=await this.db.selectFrom("gateways").selectAll().where("id","in",Y).where("organization_id","=",X).execute();if(G.length===0)return[];let $=G.map((K)=>K.id),W=await this.db.selectFrom("gateway_connections").selectAll().where("gateway_id","in",$).execute(),H=new Map;for(let K of W){let Z=H.get(K.gateway_id)??[];Z.push(K),H.set(K.gateway_id,Z)}return G.map((K)=>this.deserializeGatewayWithConnections(K,H.get(K.id)??[]))}async update(X,Q,J){let Y=new Date().toISOString(),G={updated_at:Y,updated_by:Q};if(J.title!==void 0)G.title=J.title;if(J.description!==void 0)G.description=J.description;if(J.toolSelectionStrategy!==void 0)G.tool_selection_strategy=J.toolSelectionStrategy;if(J.toolSelectionMode!==void 0)G.tool_selection_mode=J.toolSelectionMode;if(J.icon!==void 0)G.icon=J.icon;if(J.status!==void 0)G.status=J.status;if(J.isDefault===!1)G.is_default=0;if(J.isDefault===!0)G.is_default=1;if(J.isDefault===!0){let W=await this.findById(X);if(!W)throw Error(`Gateway not found: ${X}`);await this.db.transaction().execute(async(H)=>{if(await H.updateTable("gateways").set({is_default:0,updated_at:Y,updated_by:Q}).where("organization_id","=",W.organizationId).where("is_default","=",1).execute(),await H.updateTable("gateways").set(G).where("id","=",X).execute(),J.connections!==void 0){if(await H.deleteFrom("gateway_connections").where("gateway_id","=",X).execute(),J.connections.length>0)await H.insertInto("gateway_connections").values(J.connections.map((K)=>({id:VY("gwc"),gateway_id:X,connection_id:K.connectionId,selected_tools:K.selectedTools?JSON.stringify(K.selectedTools):null,selected_resources:K.selectedResources?JSON.stringify(K.selectedResources):null,selected_prompts:K.selectedPrompts?JSON.stringify(K.selectedPrompts):null,created_at:Y}))).execute()}})}else if(await this.db.updateTable("gateways").set(G).where("id","=",X).execute(),J.connections!==void 0){if(await this.db.deleteFrom("gateway_connections").where("gateway_id","=",X).execute(),J.connections.length>0)await this.db.insertInto("gateway_connections").values(J.connections.map((W)=>({id:VY("gwc"),gateway_id:X,connection_id:W.connectionId,selected_tools:W.selectedTools?JSON.stringify(W.selectedTools):null,selected_resources:W.selectedResources?JSON.stringify(W.selectedResources):null,selected_prompts:W.selectedPrompts?JSON.stringify(W.selectedPrompts):null,created_at:Y}))).execute()}let $=await this.findById(X);if(!$)throw Error("Gateway not found after update");return $}async delete(X){await this.db.deleteFrom("gateways").where("id","=",X).execute()}async getDefaultByOrgId(X){let Q=await this.db.selectFrom("gateways").selectAll().where("organization_id","=",X).where("is_default","=",1).executeTakeFirst();if(!Q)return null;let J=await this.db.selectFrom("gateway_connections").selectAll().where("gateway_id","=",Q.id).execute();return this.deserializeGatewayWithConnections(Q,J)}async getDefaultByOrgSlug(X){let Q=await this.db.selectFrom("organization").select("id").where("slug","=",X).executeTakeFirst();if(!Q)return null;return this.getDefaultByOrgId(Q.id)}async setDefault(X,Q){let J=await this.findById(X);if(!J)throw Error(`Gateway not found: ${X}`);let Y=new Date().toISOString();await this.db.transaction().execute(async($)=>{await $.updateTable("gateways").set({is_default:0,updated_at:Y,updated_by:Q}).where("organization_id","=",J.organizationId).where("is_default","=",1).execute(),await $.updateTable("gateways").set({is_default:1,updated_at:Y,updated_by:Q}).where("id","=",X).execute()});let G=await this.findById(X);if(!G)throw Error("Gateway not found after setting default");return G}deserializeGatewayWithConnections(X,Q){return{...this.deserializeGateway(X),connections:Q.map((Y)=>({connectionId:Y.connection_id,selectedTools:this.parseJson(Y.selected_tools),selectedResources:this.parseJson(Y.selected_resources),selectedPrompts:this.parseJson(Y.selected_prompts)}))}}deserializeGateway(X){return{id:X.id,organizationId:X.organization_id,title:X.title,description:X.description,toolSelectionStrategy:this.parseToolSelectionStrategy(X.tool_selection_strategy),toolSelectionMode:this.parseToolSelectionMode(X.tool_selection_mode),icon:X.icon,status:X.status,isDefault:X.is_default===1,createdAt:X.created_at,updatedAt:X.updated_at,createdBy:X.created_by,updatedBy:X.updated_by}}parseToolSelectionStrategy(X){if(X==="smart_tool_selection")return"smart_tool_selection";if(X==="code_execution")return"code_execution";return"passthrough"}parseToolSelectionMode(X){if(X==="exclusion")return"exclusion";return"inclusion"}parseJson(X){if(X===null)return null;if(typeof X==="string")try{return JSON.parse(X)}catch{return null}return X}}DP();d0();function j64(X){return[{permissions:{self:["*"]},getTools:async()=>{let{ALL_TOOLS:Q}=await Promise.resolve().then(() => (LZ0(),BZ0));return Q.map((J)=>{return{name:J.name,inputSchema:N.toJSONSchema(J.inputSchema,{unrepresentable:"any"}),outputSchema:J.outputSchema?N.toJSONSchema(J.outputSchema,{unrepresentable:"any"}):void 0,description:J.description}})},data:a10(process.env.BASE_URL||"http://localhost:3000")},{data:r10()},{data:i10(X)}]}async function DZ0(X,Q){try{let J=Uq(),Y=new qb(process.env.ENCRYPTION_KEY||""),G=new Ub(J.db,Y),$=new zb(J.db),W=j64(X),H=[];await Promise.all(W.map(async(K)=>{let Z=null;if(K.permissions)Z=(await LZ.api.createApiKey({body:{name:`${K.data.app_name??crypto.randomUUID()}-mcp`,userId:Q,permissions:K.permissions,rateLimitEnabled:!1,metadata:{organization:{id:X},purpose:"default-org-connections"}}}))?.key;let F=await K.getTools?.()??await XZ({id:"pending",title:K.data.title,connection_type:K.data.connection_type,connection_url:K.data.connection_url,connection_token:K.data.connection_token,connection_headers:K.data.connection_headers}).catch(()=>null),V=K.data.id?K.data.id.startsWith(`${X}_`)?K.data.id:`${X}_${K.data.id}`:void 0,q=await G.create({...K.data,id:V,tools:F,organization_id:X,created_by:Q,connection_token:K.data.connection_token??Z});H.push(q.id)})),await $.create(X,Q,{title:"Organization Agent",description:"Use all organization connections into a single agent",toolSelectionStrategy:"passthrough",toolSelectionMode:"exclusion",status:"active",isDefault:!0,connections:H.map((K)=>({connectionId:K}))})}catch(J){console.error("Error creating default MCP connections:",J)}}var jZ0=["owner","admin"];var N64=(X)=>{return{defaultSSO:[{domain:X.domain,providerId:X.providerId,oidcConfig:{issuer:`https://login.microsoftonline.com/${X.MS_TENANT_ID}/v2.0`,pkce:!0,clientId:X.MS_CLIENT_ID,clientSecret:X.MS_CLIENT_SECRET,discoveryEndpoint:`https://login.microsoftonline.com/${X.MS_TENANT_ID}/v2.0/.well-known/openid-configuration`,authorizationEndpoint:`https://login.microsoftonline.com/${X.MS_TENANT_ID}/oauth2/v2.0/authorize`,tokenEndpoint:`https://login.microsoftonline.com/${X.MS_TENANT_ID}/oauth2/v2.0/token`,jwksEndpoint:`https://login.microsoftonline.com/${X.MS_TENANT_ID}/discovery/v2.0/keys`,userInfoEndpoint:"https://graph.microsoft.com/oidc/userinfo",tokenEndpointAuthentication:"client_secret_post",scopes:X.scopes,mapping:{id:"sub",email:"email",emailVerified:"email_verified",name:"name",image:"picture",extraFields:{emailVerified:"email_verified"}}}}]}},NZ0=(X)=>{if(X.providerId==="microsoft")return N64(X);throw Error(`Unsupported provider: ${X.providerId}`)};function O64(X){return X.toLowerCase().trim().replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}var OZ0=["labs","agent","studio","workspace","systems","core","cloud","works"],MZ0=["capybara","guarana","deco","samba","feijoada","capoeira","carnival"];function M64(){let X=Math.floor(Math.random()*MZ0.length),Q=Math.floor(Math.random()*OZ0.length),J=MZ0[X]??"deco",Y=OZ0[Q]??"studio";return`${J}-${Y}`}var w64=Object.values(fR()).map((X)=>X.map((Q)=>Q.name)).flat(),P64={...nO,self:["*",...w64]},yP=FY(P64),T64=yP.newRole({self:["*"],...aV.statements}),A64=yP.newRole({self:["*"],...aV.statements}),E64=yP.newRole({self:["*"],...aV.statements}),wZ0=Object.values(fR()).map((X)=>X.map((Q)=>`self:${Q.name}`)).flat(),$J=E_.auth,PZ0=void 0;if($J.inviteEmailProviderId&&$J.emailProviders&&$J.emailProviders.length>0){let X=NM($J.emailProviders,$J.inviteEmailProviderId);if(X){let Q=jM(X);PZ0=async(J)=>{let Y=J.inviter.user?.name||J.inviter.user?.email,G=`${process.env.BASE_URL||"http://localhost:3000"}/auth/accept-invitation?invitationId=${J.invitation.id}`;await Q({to:J.email,subject:`Invitation to join ${J.organization.name}`,html:`
|
|
989
989
|
<h2>You've been invited!</h2>
|
|
990
990
|
<p>${Y} has invited you to join <strong>${J.organization.name}</strong>.</p>
|
|
991
991
|
<p><a href="${G}">Click here to accept the invitation</a></p>
|