@zuplo/runtime 6.73.26 → 6.73.27

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.
Files changed (35) hide show
  1. package/out/esm/{chunk-SL6SOWIV.js → chunk-6SNZ4DOC.js} +2 -2
  2. package/out/esm/{chunk-PEUB7LX7.js → chunk-A3QGJZO7.js} +2 -2
  3. package/out/esm/chunk-GWEFPK3R.js +405 -0
  4. package/out/esm/chunk-GWEFPK3R.js.LEGAL.txt +16 -0
  5. package/out/esm/chunk-GWEFPK3R.js.map +1 -0
  6. package/out/esm/{chunk-RB2LCXBX.js → chunk-QGAJTUPE.js} +2 -2
  7. package/out/esm/{chunk-V4X24KCQ.js → chunk-QVZD2XRK.js} +2 -2
  8. package/out/esm/{chunk-7WS4HIGR.js → chunk-SH74D236.js} +2 -2
  9. package/out/esm/{chunk-2WLR6ZDZ.js → chunk-TYV53J3B.js} +2 -2
  10. package/out/esm/{chunk-TRBIM47E.js → chunk-UKQQD2JN.js} +2 -2
  11. package/out/esm/{chunk-A3425Z75.js → chunk-VHRZC4UF.js} +2 -2
  12. package/out/esm/{chunk-VCMIY3WJ.js → chunk-YIT72S45.js} +3 -3
  13. package/out/esm/index.js +1 -1
  14. package/out/esm/index.js.map +1 -1
  15. package/out/esm/internal/index.js +1 -1
  16. package/out/esm/mcp/messages/index.js +1 -1
  17. package/out/esm/mcp-gateway/index.js +13 -13
  18. package/out/esm/mcp-gateway/index.js.map +1 -1
  19. package/out/esm/mocks/index.js +1 -1
  20. package/out/esm/sdks/aws/index.js +1 -1
  21. package/out/types/index.d.ts +86 -3
  22. package/package.json +1 -1
  23. package/out/esm/chunk-WK5G5RKI.js +0 -385
  24. package/out/esm/chunk-WK5G5RKI.js.LEGAL.txt +0 -7
  25. package/out/esm/chunk-WK5G5RKI.js.map +0 -1
  26. /package/out/esm/{chunk-SL6SOWIV.js.map → chunk-6SNZ4DOC.js.map} +0 -0
  27. /package/out/esm/{chunk-PEUB7LX7.js.map → chunk-A3QGJZO7.js.map} +0 -0
  28. /package/out/esm/{chunk-RB2LCXBX.js.map → chunk-QGAJTUPE.js.map} +0 -0
  29. /package/out/esm/{chunk-V4X24KCQ.js.map → chunk-QVZD2XRK.js.map} +0 -0
  30. /package/out/esm/{chunk-7WS4HIGR.js.map → chunk-SH74D236.js.map} +0 -0
  31. /package/out/esm/{chunk-2WLR6ZDZ.js.map → chunk-TYV53J3B.js.map} +0 -0
  32. /package/out/esm/{chunk-TRBIM47E.js.map → chunk-UKQQD2JN.js.map} +0 -0
  33. /package/out/esm/{chunk-A3425Z75.js.map → chunk-VHRZC4UF.js.map} +0 -0
  34. /package/out/esm/{chunk-VCMIY3WJ.js.LEGAL.txt → chunk-YIT72S45.js.LEGAL.txt} +0 -0
  35. /package/out/esm/{chunk-VCMIY3WJ.js.map → chunk-YIT72S45.js.map} +0 -0
@@ -22,5 +22,5 @@
22
22
  * DEALINGS IN THE SOFTWARE.
23
23
  *--------------------------------------------------------------------------------------------*/
24
24
 
25
- import{a as T}from"./chunk-RB2LCXBX.js";import{a as i}from"./chunk-2WLR6ZDZ.js";function l(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}i(l,"isRecord");function N(e){return typeof e=="string"||typeof e=="number"}i(N,"isRequestId");function k(e){return e===null?"null":Array.isArray(e)?"an array":typeof e=="object"?"an object":typeof e=="string"?JSON.stringify(e.length>40?`${e.slice(0,40)}\u2026`:e):String(e)}i(k,"describeValue");function g(e){if(!(e===void 0||l(e)))return`params must be an object when present (got ${k(e)}).`}i(g,"optionalObjectParams");function E(e,n){return s=>{if(!l(s))return`params must be an object with a string \`${e}\` (got ${k(s)}). Example: ${n}`;if(typeof s[e]!="string")return`params.${e} must be a string (got ${k(s[e])}). Example: ${n}`}}i(E,"requireStringField");var j={initialize:g,ping:g,"tools/list":g,"tools/call":E("name",'{"name":"my_tool","arguments":{}}'),"prompts/list":g,"prompts/get":E("name",'{"name":"my_prompt"}'),"resources/list":g,"resources/templates/list":g,"resources/read":E("uri",'{"uri":"file:///a.txt"}'),"resources/subscribe":E("uri",'{"uri":"file:///a.txt"}'),"resources/unsubscribe":E("uri",'{"uri":"file:///a.txt"}'),"completion/complete":g,"logging/setLevel":E("level",'{"level":"info"}')},_={"notifications/initialized":g,"notifications/cancelled":g,"notifications/progress":g,"notifications/roots/list_changed":g};function U(e){return Object.hasOwn(j,e)}i(U,"isKnownRequestMethod");function J(e){return Object.hasOwn(_,e)}i(J,"isKnownNotificationMethod");function I(e){return{type:"invalid",...e.method===void 0?{}:{method:e.method},id:e.id,error:{code:e.code,message:e.message},raw:e.raw}}i(I,"invalidMessage");function P(e){return N(e)?e:null}i(P,"usableId");function L(e,n,s){if(U(n)){let r=j[n](e.params);if(r!==void 0)return I({raw:e,method:n,id:s,code:-32602,message:`Invalid params for \`${n}\`: ${r}`});let o=e.params===void 0?{}:e.params;return{type:"request",method:n,id:s,params:o,raw:e}}return{type:"request",method:n,id:s,params:e.params,raw:e}}i(L,"classifyRequest");function Q(e,n){if(J(n)){let s=_[n](e.params);if(s!==void 0)return I({raw:e,method:n,id:null,code:-32602,message:`Invalid params for \`${n}\`: ${s}`});let r=e.params===void 0?{}:e.params;return{type:"notification",method:n,params:r,raw:e}}return{type:"notification",method:n,params:e.params,raw:e}}i(Q,"classifyNotification");function H(e){if(!l(e)||e.jsonrpc!=="2.0")return I({raw:e,id:P(l(e)?e.id:void 0),code:-32600,message:`Invalid Request: batch member is not a JSON-RPC 2.0 message (got ${k(e)}). Every member must include \`"jsonrpc":"2.0"\`.`});let n=e.method;if(typeof n=="string"){if(!("id"in e))return Q(e,n);let s=e.id;return N(s)?L(e,n,s):I({raw:e,method:n,id:null,code:-32600,message:`Invalid Request: request id must be a string or number (got ${k(s)}). The gateway cannot correlate a reply to this id \u2014 omit \`id\` to send a notification instead.`})}if(n!==void 0)return I({raw:e,id:P(e.id),code:-32600,message:`Invalid Request: method must be a string (got ${k(n)}).`});if("result"in e&&N(e.id)&&l(e.result))return{type:"result",id:e.id,result:e.result,raw:e};if("error"in e){let s=e.error;if(l(s)&&typeof s.code=="number"&&typeof s.message=="string"){let r={code:s.code,message:s.message,...s.data===void 0?{}:{data:s.data}};return{type:"error",id:P(e.id),error:r,raw:e}}}return I({raw:e,id:P(e.id),code:-32600,message:"Invalid Request: message has no `method` and is not a valid JSON-RPC result or error."})}i(H,"classifyMember");var $=new WeakMap;async function Z(e){let n=e.headers.get("content-type");if(n===null||!n.toLowerCase().includes("json"))return null;let s=e.headers.get("content-length");if(s!==null&&Number(s)>10485760)return null;let r;try{r=await e.clone().text()}catch{return null}if(r.length>10485760)return null;let o;try{o=JSON.parse(r)}catch{return null}let a=e.headers.get("mcp-protocol-version");return Array.isArray(o)?o.length>0&&!o.some(u=>l(u)&&u.jsonrpc==="2.0")?null:{transport:"json",shape:"batch",messages:o.map(H),...a===null?{}:{protocolVersion:a}}:!l(o)||o.jsonrpc!=="2.0"?null:{transport:"json",shape:"single",messages:[H(o)],...a===null?{}:{protocolVersion:a}}}i(Z,"parseEnvelope");function C(e){let n=$.get(e);return n===void 0&&(n=Z(e),$.set(e,n)),n}i(C,"getRequest");function R(e,n){return{jsonrpc:"2.0",id:e,error:{code:n.code,message:n.message,...n.data===void 0?{}:{data:n.data}}}}i(R,"errorReply");function x(e,n){return{jsonrpc:"2.0",id:e,result:n}}i(x,"resultReply");function b(e,n){return n.length===0?new Response(null,{status:202}):Response.json(e==="single"?n[0]:n)}i(b,"replyResponse");function B(e){return e.type==="request"}i(B,"isRequestType");function F(e,n,s){let r=s===void 0?void 0:n,o=s===void 0?n:s;if(r!==void 0&&!e.messages.includes(r))throw new Error("createErrorResponse: the message must be one of envelope.messages from the same getRequest() parse.");let a=[];for(let u of e.messages)if(u.type==="request"){let c=r===void 0||u===r?o:{code:-32001,message:"Not processed"};a.push(R(u.id,c))}else u.type==="invalid"&&a.push(R(u.id,u.error));return b(e.shape,a)}i(F,"createErrorResponse");function X(e,n,s){let r=e.messages.filter(B);if(r.length!==1||r[0]!==n)throw new Error("createResultResponse: the message must be the envelope's only request. For batches with multiple requests use processMessages, which forwards the rest and stitches replies by id.");let o=[];for(let a of e.messages)a===n?o.push(x(n.id,s)):a.type==="invalid"&&o.push(R(a.id,a.error));return b(e.shape,o)}i(X,"createResultResponse");function Y(e,n){if(e===void 0)return;let s=e,r=Object.hasOwn(e,n)?s[n]:void 0;return r!==void 0?r:Object.hasOwn(e,"*")?s["*"]:void 0}i(Y,"pickHandler");function v(e){return typeof e=="string"?`s:${e}`:`n:${e}`}i(v,"idKey");function G(e){let n=new Set;for(let s of e.messages){if(s.type!=="request")continue;let r=v(s.id);if(n.has(r))return s.id;n.add(r)}}i(G,"findDuplicateRequestId");async function W(e){let{response:n,plan:s,context:r,policyName:o}=e,a=(n.headers.get("content-type")??"").toLowerCase(),u=[];if(a.includes("json"))try{let p=await n.clone().text();if(p.trim().length>0){let f=JSON.parse(p);u=Array.isArray(f)?f:[f]}}catch{return r.log.warn(`MCP policy "${o}": upstream JSON response could not be parsed; locally generated replies were not merged.`),n}else if(n.body!==null)return r.log.warn(`MCP policy "${o}": upstream response is "${a||"unknown"}"; locally generated replies were not merged.`),n;if(u.length>0&&!u.every(p=>l(p)&&p.jsonrpc==="2.0"))return r.log.warn(`MCP policy "${o}": upstream response body is not JSON-RPC; locally generated replies were not merged.`),n;let c=new Map,y=[];for(let p of u){let f=l(p)?p.id:void 0,t=N(f)?v(f):void 0;t===void 0||c.has(t)?y.push(p):c.set(t,p)}let d=[];for(let p of s)if(p.action==="local")d.push(p.reply);else if(p.action==="forward"&&p.replyId!==void 0){let f=v(p.replyId),t=c.get(f);t===void 0?r.log.warn(`MCP policy "${o}": upstream returned no reply for request id ${JSON.stringify(p.replyId)}; the gateway does not synthesize results, so the gap is passed through.`):(c.delete(f),d.push(t))}let h=[...c.values(),...y];h.length>0&&(r.log.warn(`MCP policy "${o}": upstream returned ${h.length} repl${h.length===1?"y":"ies"} with unexpected or duplicate ids; appended after the correlated replies.`),d.push(...h));let w=new Headers(n.headers);w.delete("content-length"),w.set("content-type","application/json");let A=n.status===202||n.status===204?200:n.status;return new Response(JSON.stringify(d),{status:A,headers:w})}i(W,"stitchResponse");function ee(e){return async(n,s,r,o)=>{let a=await C(n);if(a===null)return n;if(a.shape==="batch"&&a.messages.length===0)return Response.json(R(null,{code:-32600,message:"Invalid Request: batch must not be empty."}));let u=G(a);if(u!==void 0){let t=a.messages.filter(m=>m.type==="request").map(m=>R(m.id??null,{code:-32600,message:`Invalid Request: duplicate request id ${JSON.stringify(u)} in batch. Ids must be unique so replies can be correlated.`}));return b(a.shape,t)}let c=[],y=0,d=!1;for(let t of a.messages)switch(t.type){case"invalid":{c.push({action:"local",reply:R(t.id,t.error)}),y+=1,d=!0;break}case"result":case"error":{c.push({action:"forward",wire:t.raw,replyId:void 0});break}case"request":case"notification":{let m=Y(e.requests,t.method),q=t.type==="request",O=q?t.id:void 0;if(m===void 0){c.push({action:"forward",wire:t.raw,replyId:O});break}let M;try{M=await m({message:t,request:n,context:s,envelope:a,options:r,policyName:o})}catch(S){if(s.log.error(`MCP message handler for "${t.method}" threw in policy "${o}"; failing only this message.`,S),M=q?{error:{code:-32603,message:"Internal error"}}:void 0,!q){c.push({action:"drop"}),d=!0;break}}if(M===void 0)c.push({action:"forward",wire:t.raw,replyId:O});else if("params"in M){if(!l(M.params)){s.log.error(`MCP message handler for "${t.method}" in policy "${o}" returned a non-object params verdict; failing only this message.`),q?(c.push({action:"local",reply:R(t.id,{code:-32603,message:"Internal error"})}),y+=1):c.push({action:"drop"}),d=!0;break}let S=l(t.raw)?t.raw:{};c.push({action:"forward",wire:{...S,params:M.params},replyId:O}),d=!0}else"error"in M?(q?(c.push({action:"local",reply:R(t.id,M.error)}),y+=1):c.push({action:"drop"}),d=!0):"result"in M?(q?(c.push({action:"local",reply:x(t.id,M.result)}),y+=1):(s.log.warn(`MCP message handler for "${t.method}" in policy "${o}" returned a result for a notification; notifications have no replies, dropping the message.`),c.push({action:"drop"})),d=!0):c.push({action:"forward",wire:t.raw,replyId:O});break}}let h=c.filter(t=>t.action==="forward");if(h.length===0){let t=[];for(let m of c)m.action==="local"&&t.push(m.reply);return b(a.shape,t)}if(!d)return n;let w=h.map(t=>t.wire),A=JSON.stringify(a.shape==="single"?w[0]:w),p=new Headers(n.headers);p.delete("content-length");let f=new T(n,{body:A,headers:p});return y>0&&s.addResponseSendingHook(t=>W({response:t,plan:c,context:s,policyName:o})),f}}i(ee,"processMessages");export{C as a,F as b,X as c,ee as d};
26
- //# sourceMappingURL=chunk-SL6SOWIV.js.map
25
+ import{a as T}from"./chunk-QGAJTUPE.js";import{a as i}from"./chunk-TYV53J3B.js";function l(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}i(l,"isRecord");function N(e){return typeof e=="string"||typeof e=="number"}i(N,"isRequestId");function k(e){return e===null?"null":Array.isArray(e)?"an array":typeof e=="object"?"an object":typeof e=="string"?JSON.stringify(e.length>40?`${e.slice(0,40)}\u2026`:e):String(e)}i(k,"describeValue");function g(e){if(!(e===void 0||l(e)))return`params must be an object when present (got ${k(e)}).`}i(g,"optionalObjectParams");function E(e,n){return s=>{if(!l(s))return`params must be an object with a string \`${e}\` (got ${k(s)}). Example: ${n}`;if(typeof s[e]!="string")return`params.${e} must be a string (got ${k(s[e])}). Example: ${n}`}}i(E,"requireStringField");var j={initialize:g,ping:g,"tools/list":g,"tools/call":E("name",'{"name":"my_tool","arguments":{}}'),"prompts/list":g,"prompts/get":E("name",'{"name":"my_prompt"}'),"resources/list":g,"resources/templates/list":g,"resources/read":E("uri",'{"uri":"file:///a.txt"}'),"resources/subscribe":E("uri",'{"uri":"file:///a.txt"}'),"resources/unsubscribe":E("uri",'{"uri":"file:///a.txt"}'),"completion/complete":g,"logging/setLevel":E("level",'{"level":"info"}')},_={"notifications/initialized":g,"notifications/cancelled":g,"notifications/progress":g,"notifications/roots/list_changed":g};function U(e){return Object.hasOwn(j,e)}i(U,"isKnownRequestMethod");function J(e){return Object.hasOwn(_,e)}i(J,"isKnownNotificationMethod");function I(e){return{type:"invalid",...e.method===void 0?{}:{method:e.method},id:e.id,error:{code:e.code,message:e.message},raw:e.raw}}i(I,"invalidMessage");function P(e){return N(e)?e:null}i(P,"usableId");function L(e,n,s){if(U(n)){let r=j[n](e.params);if(r!==void 0)return I({raw:e,method:n,id:s,code:-32602,message:`Invalid params for \`${n}\`: ${r}`});let o=e.params===void 0?{}:e.params;return{type:"request",method:n,id:s,params:o,raw:e}}return{type:"request",method:n,id:s,params:e.params,raw:e}}i(L,"classifyRequest");function Q(e,n){if(J(n)){let s=_[n](e.params);if(s!==void 0)return I({raw:e,method:n,id:null,code:-32602,message:`Invalid params for \`${n}\`: ${s}`});let r=e.params===void 0?{}:e.params;return{type:"notification",method:n,params:r,raw:e}}return{type:"notification",method:n,params:e.params,raw:e}}i(Q,"classifyNotification");function H(e){if(!l(e)||e.jsonrpc!=="2.0")return I({raw:e,id:P(l(e)?e.id:void 0),code:-32600,message:`Invalid Request: batch member is not a JSON-RPC 2.0 message (got ${k(e)}). Every member must include \`"jsonrpc":"2.0"\`.`});let n=e.method;if(typeof n=="string"){if(!("id"in e))return Q(e,n);let s=e.id;return N(s)?L(e,n,s):I({raw:e,method:n,id:null,code:-32600,message:`Invalid Request: request id must be a string or number (got ${k(s)}). The gateway cannot correlate a reply to this id \u2014 omit \`id\` to send a notification instead.`})}if(n!==void 0)return I({raw:e,id:P(e.id),code:-32600,message:`Invalid Request: method must be a string (got ${k(n)}).`});if("result"in e&&N(e.id)&&l(e.result))return{type:"result",id:e.id,result:e.result,raw:e};if("error"in e){let s=e.error;if(l(s)&&typeof s.code=="number"&&typeof s.message=="string"){let r={code:s.code,message:s.message,...s.data===void 0?{}:{data:s.data}};return{type:"error",id:P(e.id),error:r,raw:e}}}return I({raw:e,id:P(e.id),code:-32600,message:"Invalid Request: message has no `method` and is not a valid JSON-RPC result or error."})}i(H,"classifyMember");var $=new WeakMap;async function Z(e){let n=e.headers.get("content-type");if(n===null||!n.toLowerCase().includes("json"))return null;let s=e.headers.get("content-length");if(s!==null&&Number(s)>10485760)return null;let r;try{r=await e.clone().text()}catch{return null}if(r.length>10485760)return null;let o;try{o=JSON.parse(r)}catch{return null}let a=e.headers.get("mcp-protocol-version");return Array.isArray(o)?o.length>0&&!o.some(u=>l(u)&&u.jsonrpc==="2.0")?null:{transport:"json",shape:"batch",messages:o.map(H),...a===null?{}:{protocolVersion:a}}:!l(o)||o.jsonrpc!=="2.0"?null:{transport:"json",shape:"single",messages:[H(o)],...a===null?{}:{protocolVersion:a}}}i(Z,"parseEnvelope");function C(e){let n=$.get(e);return n===void 0&&(n=Z(e),$.set(e,n)),n}i(C,"getRequest");function R(e,n){return{jsonrpc:"2.0",id:e,error:{code:n.code,message:n.message,...n.data===void 0?{}:{data:n.data}}}}i(R,"errorReply");function x(e,n){return{jsonrpc:"2.0",id:e,result:n}}i(x,"resultReply");function b(e,n){return n.length===0?new Response(null,{status:202}):Response.json(e==="single"?n[0]:n)}i(b,"replyResponse");function B(e){return e.type==="request"}i(B,"isRequestType");function F(e,n,s){let r=s===void 0?void 0:n,o=s===void 0?n:s;if(r!==void 0&&!e.messages.includes(r))throw new Error("createErrorResponse: the message must be one of envelope.messages from the same getRequest() parse.");let a=[];for(let u of e.messages)if(u.type==="request"){let c=r===void 0||u===r?o:{code:-32001,message:"Not processed"};a.push(R(u.id,c))}else u.type==="invalid"&&a.push(R(u.id,u.error));return b(e.shape,a)}i(F,"createErrorResponse");function X(e,n,s){let r=e.messages.filter(B);if(r.length!==1||r[0]!==n)throw new Error("createResultResponse: the message must be the envelope's only request. For batches with multiple requests use processMessages, which forwards the rest and stitches replies by id.");let o=[];for(let a of e.messages)a===n?o.push(x(n.id,s)):a.type==="invalid"&&o.push(R(a.id,a.error));return b(e.shape,o)}i(X,"createResultResponse");function Y(e,n){if(e===void 0)return;let s=e,r=Object.hasOwn(e,n)?s[n]:void 0;return r!==void 0?r:Object.hasOwn(e,"*")?s["*"]:void 0}i(Y,"pickHandler");function v(e){return typeof e=="string"?`s:${e}`:`n:${e}`}i(v,"idKey");function G(e){let n=new Set;for(let s of e.messages){if(s.type!=="request")continue;let r=v(s.id);if(n.has(r))return s.id;n.add(r)}}i(G,"findDuplicateRequestId");async function W(e){let{response:n,plan:s,context:r,policyName:o}=e,a=(n.headers.get("content-type")??"").toLowerCase(),u=[];if(a.includes("json"))try{let p=await n.clone().text();if(p.trim().length>0){let f=JSON.parse(p);u=Array.isArray(f)?f:[f]}}catch{return r.log.warn(`MCP policy "${o}": upstream JSON response could not be parsed; locally generated replies were not merged.`),n}else if(n.body!==null)return r.log.warn(`MCP policy "${o}": upstream response is "${a||"unknown"}"; locally generated replies were not merged.`),n;if(u.length>0&&!u.every(p=>l(p)&&p.jsonrpc==="2.0"))return r.log.warn(`MCP policy "${o}": upstream response body is not JSON-RPC; locally generated replies were not merged.`),n;let c=new Map,y=[];for(let p of u){let f=l(p)?p.id:void 0,t=N(f)?v(f):void 0;t===void 0||c.has(t)?y.push(p):c.set(t,p)}let d=[];for(let p of s)if(p.action==="local")d.push(p.reply);else if(p.action==="forward"&&p.replyId!==void 0){let f=v(p.replyId),t=c.get(f);t===void 0?r.log.warn(`MCP policy "${o}": upstream returned no reply for request id ${JSON.stringify(p.replyId)}; the gateway does not synthesize results, so the gap is passed through.`):(c.delete(f),d.push(t))}let h=[...c.values(),...y];h.length>0&&(r.log.warn(`MCP policy "${o}": upstream returned ${h.length} repl${h.length===1?"y":"ies"} with unexpected or duplicate ids; appended after the correlated replies.`),d.push(...h));let w=new Headers(n.headers);w.delete("content-length"),w.set("content-type","application/json");let A=n.status===202||n.status===204?200:n.status;return new Response(JSON.stringify(d),{status:A,headers:w})}i(W,"stitchResponse");function ee(e){return async(n,s,r,o)=>{let a=await C(n);if(a===null)return n;if(a.shape==="batch"&&a.messages.length===0)return Response.json(R(null,{code:-32600,message:"Invalid Request: batch must not be empty."}));let u=G(a);if(u!==void 0){let t=a.messages.filter(m=>m.type==="request").map(m=>R(m.id??null,{code:-32600,message:`Invalid Request: duplicate request id ${JSON.stringify(u)} in batch. Ids must be unique so replies can be correlated.`}));return b(a.shape,t)}let c=[],y=0,d=!1;for(let t of a.messages)switch(t.type){case"invalid":{c.push({action:"local",reply:R(t.id,t.error)}),y+=1,d=!0;break}case"result":case"error":{c.push({action:"forward",wire:t.raw,replyId:void 0});break}case"request":case"notification":{let m=Y(e.requests,t.method),q=t.type==="request",O=q?t.id:void 0;if(m===void 0){c.push({action:"forward",wire:t.raw,replyId:O});break}let M;try{M=await m({message:t,request:n,context:s,envelope:a,options:r,policyName:o})}catch(S){if(s.log.error(`MCP message handler for "${t.method}" threw in policy "${o}"; failing only this message.`,S),M=q?{error:{code:-32603,message:"Internal error"}}:void 0,!q){c.push({action:"drop"}),d=!0;break}}if(M===void 0)c.push({action:"forward",wire:t.raw,replyId:O});else if("params"in M){if(!l(M.params)){s.log.error(`MCP message handler for "${t.method}" in policy "${o}" returned a non-object params verdict; failing only this message.`),q?(c.push({action:"local",reply:R(t.id,{code:-32603,message:"Internal error"})}),y+=1):c.push({action:"drop"}),d=!0;break}let S=l(t.raw)?t.raw:{};c.push({action:"forward",wire:{...S,params:M.params},replyId:O}),d=!0}else"error"in M?(q?(c.push({action:"local",reply:R(t.id,M.error)}),y+=1):c.push({action:"drop"}),d=!0):"result"in M?(q?(c.push({action:"local",reply:x(t.id,M.result)}),y+=1):(s.log.warn(`MCP message handler for "${t.method}" in policy "${o}" returned a result for a notification; notifications have no replies, dropping the message.`),c.push({action:"drop"})),d=!0):c.push({action:"forward",wire:t.raw,replyId:O});break}}let h=c.filter(t=>t.action==="forward");if(h.length===0){let t=[];for(let m of c)m.action==="local"&&t.push(m.reply);return b(a.shape,t)}if(!d)return n;let w=h.map(t=>t.wire),A=JSON.stringify(a.shape==="single"?w[0]:w),p=new Headers(n.headers);p.delete("content-length");let f=new T(n,{body:A,headers:p});return y>0&&s.addResponseSendingHook(t=>W({response:t,plan:c,context:s,policyName:o})),f}}i(ee,"processMessages");export{C as a,F as b,X as c,ee as d};
26
+ //# sourceMappingURL=chunk-6SNZ4DOC.js.map
@@ -22,5 +22,5 @@
22
22
  * DEALINGS IN THE SOFTWARE.
23
23
  *--------------------------------------------------------------------------------------------*/
24
24
 
25
- import{a as o}from"./chunk-2WLR6ZDZ.js";function t(e){for(let r in e){let n=e[r];n&&typeof n=="object"&&t(n)}return Object.freeze(e)}o(t,"deepFreeze");export{t as a};
26
- //# sourceMappingURL=chunk-PEUB7LX7.js.map
25
+ import{a as o}from"./chunk-TYV53J3B.js";function t(e){for(let r in e){let n=e[r];n&&typeof n=="object"&&t(n)}return Object.freeze(e)}o(t,"deepFreeze");export{t as a};
26
+ //# sourceMappingURL=chunk-A3QGJZO7.js.map