@zuplo/cli 7.11.9 → 7.12.1

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/node_modules/@zuplo/core/customer.cli.minified.js +269 -269
  2. package/node_modules/@zuplo/core/index.minified.js +259 -259
  3. package/node_modules/@zuplo/core/package.json +1 -1
  4. package/node_modules/@zuplo/graphql/package.json +1 -1
  5. package/node_modules/@zuplo/openapi-tools/package.json +1 -1
  6. package/node_modules/@zuplo/otel/package.json +1 -1
  7. package/node_modules/@zuplo/runtime/out/esm/chunk-3UPXKWR6.js +105 -0
  8. package/node_modules/@zuplo/runtime/out/esm/chunk-3UPXKWR6.js.map +1 -0
  9. package/node_modules/@zuplo/runtime/out/esm/chunk-GQMNFQTN.js +26 -0
  10. package/node_modules/@zuplo/runtime/out/esm/chunk-GQMNFQTN.js.map +1 -0
  11. package/node_modules/@zuplo/runtime/out/esm/chunk-UKQQD2JN.js +26 -0
  12. package/node_modules/@zuplo/runtime/out/esm/chunk-UKQQD2JN.js.map +1 -0
  13. package/node_modules/@zuplo/runtime/out/esm/{chunk-7WJVPTYD.js → chunk-VCUUI2I7.js} +112 -111
  14. package/node_modules/@zuplo/runtime/out/esm/chunk-VCUUI2I7.js.map +1 -0
  15. package/node_modules/@zuplo/runtime/out/esm/index.js +1 -1
  16. package/node_modules/@zuplo/runtime/out/esm/index.js.map +1 -1
  17. package/node_modules/@zuplo/runtime/out/esm/internal/index.js +1 -1
  18. package/node_modules/@zuplo/runtime/out/esm/mcp-gateway/index.js +1 -1
  19. package/node_modules/@zuplo/runtime/out/esm/mcp-gateway/index.js.map +1 -1
  20. package/node_modules/@zuplo/runtime/out/esm/mocks/index.js +1 -1
  21. package/node_modules/@zuplo/runtime/out/esm/sdks/aws/index.js +1 -1
  22. package/node_modules/@zuplo/runtime/out/esm/sdks/aws/index.js.map +1 -1
  23. package/node_modules/@zuplo/runtime/out/types/index.d.ts +90 -36
  24. package/node_modules/@zuplo/runtime/out/types/internal/index.d.ts +6 -30
  25. package/node_modules/@zuplo/runtime/package.json +1 -1
  26. package/package.json +11 -11
  27. package/node_modules/@zuplo/runtime/out/esm/chunk-7WJVPTYD.js.map +0 -1
  28. package/node_modules/@zuplo/runtime/out/esm/chunk-CDEAY3VY.js +0 -94
  29. package/node_modules/@zuplo/runtime/out/esm/chunk-CDEAY3VY.js.map +0 -1
  30. package/node_modules/@zuplo/runtime/out/esm/chunk-LVSZ3WTO.js +0 -37
  31. package/node_modules/@zuplo/runtime/out/esm/chunk-LVSZ3WTO.js.map +0 -1
  32. package/node_modules/@zuplo/runtime/out/esm/chunk-NUVXDVLJ.js +0 -26
  33. package/node_modules/@zuplo/runtime/out/esm/chunk-NUVXDVLJ.js.map +0 -1
  34. /package/node_modules/@zuplo/runtime/out/esm/{chunk-LVSZ3WTO.js.LEGAL.txt → chunk-3UPXKWR6.js.LEGAL.txt} +0 -0
  35. /package/node_modules/@zuplo/runtime/out/esm/{chunk-7WJVPTYD.js.LEGAL.txt → chunk-VCUUI2I7.js.LEGAL.txt} +0 -0
@@ -22,5 +22,5 @@
22
22
  * DEALINGS IN THE SOFTWARE.
23
23
  *--------------------------------------------------------------------------------------------*/
24
24
 
25
- import{E as p,J as c,M as u}from"../chunk-7WJVPTYD.js";import"../chunk-NUVXDVLJ.js";import{a as d}from"../chunk-QGAJTUPE.js";import"../chunk-A3QGJZO7.js";import"../chunk-CDEAY3VY.js";import{aa as i}from"../chunk-LVSZ3WTO.js";import{a as o}from"../chunk-TYV53J3B.js";function w(l={request:new Request("https://api.example.com")}){let e=[];function t(s){e.push(Promise.resolve(s))}return o(t,"waitUntil"),{context:new a({event:{waitUntil:t},route:l.route,originalRequest:l.request}),invokeResponse:o(async()=>{await Promise.all(e)},"invokeResponse")}}o(w,"createMockContext");var g={path:"/",methods:["GET"],handler:{module:{},export:"default"},raw:o(()=>({}),"raw")},a=class extends EventTarget{static{o(this,"MockZuploContext")}#e;#t;contextId;requestId;log;route;custom;incomingRequestProperties;parentContext;analyticsContext;constructor({event:e,route:t=g,parentContext:n,originalRequest:r}){super(),this.requestId=crypto.randomUUID(),this.contextId=crypto.randomUUID(),this.log={info:i.console.info,log:i.console.log,debug:i.console.debug,warn:i.console.warn,error:i.console.error,setLogProperties:o(()=>{},"setLogProperties")},this.custom={},this.route=t,this.incomingRequestProperties={ip:"203.0.113.7",asn:1234,asOrganization:"ORGANIZATION",city:"Seattle",region:"Washington",regionCode:"WA",colo:"SEA",continent:"NA",country:"US",postalCode:"98004",metroCode:"SEA",latitude:void 0,longitude:void 0,timezone:void 0,httpProtocol:void 0,clientCert:void 0,clientMtlsVerificationStatus:void 0,clientMtlsVerificationReason:void 0,clientCertFingerprintSha256:void 0,clientCertNotBefore:void 0,clientCertNotAfter:void 0,clientCertIssuerDn:void 0,clientCertSubjectDn:void 0},this.parentContext=n,this.#e=e,this.#t=r,this.analyticsContext=new c(this.requestId)}waitUntil(e){this.#e.waitUntil(e)}invokeInboundPolicy(e,t){throw new Error("Not implemented")}invokeOutboundPolicy(e,t,n){throw new Error("Not implemented")}invokeRoute(e,t){throw new Error("Not implemented")}addResponseSendingHook(e){throw new Error("Not implemented")}addResponseSendingFinalHook(e){throw new Error("Not implemented")}addPreRequestHandler(e,t){let n;try{n=u.getContextExtensions(this)}catch{n=u.initialize(this,new d(this.#t??new Request("https://api.example.com")))}n.preRequestPhase??="active",p(this,n,e,t)}get preRequestHandlers(){let e;try{e=u.getContextExtensions(this)}catch{return[]}return(e.preRequestState?.entries??[]).map(t=>({policyName:t.policyName,name:t.name}))}addEventListener(e,t,n){let r=o(s=>{try{typeof t=="function"?t(s):t.handleEvent(s)}catch(m){throw this.log.error(`Error invoking event ${e}. See following logs for details.`),m}},"wrapped");super.addEventListener(e,r,n)}};export{a as MockZuploContext,w as createMockContext};
25
+ import{F as p,K as c,N as u}from"../chunk-VCUUI2I7.js";import"../chunk-GQMNFQTN.js";import{a as d}from"../chunk-QGAJTUPE.js";import"../chunk-A3QGJZO7.js";import{aa as i}from"../chunk-3UPXKWR6.js";import"../chunk-UKQQD2JN.js";import{a as o}from"../chunk-TYV53J3B.js";function w(l={request:new Request("https://api.example.com")}){let e=[];function t(s){e.push(Promise.resolve(s))}return o(t,"waitUntil"),{context:new a({event:{waitUntil:t},route:l.route,originalRequest:l.request}),invokeResponse:o(async()=>{await Promise.all(e)},"invokeResponse")}}o(w,"createMockContext");var g={path:"/",methods:["GET"],handler:{module:{},export:"default"},raw:o(()=>({}),"raw")},a=class extends EventTarget{static{o(this,"MockZuploContext")}#e;#t;contextId;requestId;log;route;custom;incomingRequestProperties;parentContext;analyticsContext;constructor({event:e,route:t=g,parentContext:n,originalRequest:r}){super(),this.requestId=crypto.randomUUID(),this.contextId=crypto.randomUUID(),this.log={info:i.console.info,log:i.console.log,debug:i.console.debug,warn:i.console.warn,error:i.console.error,setLogProperties:o(()=>{},"setLogProperties")},this.custom={},this.route=t,this.incomingRequestProperties={ip:"203.0.113.7",asn:1234,asOrganization:"ORGANIZATION",city:"Seattle",region:"Washington",regionCode:"WA",colo:"SEA",continent:"NA",country:"US",postalCode:"98004",metroCode:"SEA",latitude:void 0,longitude:void 0,timezone:void 0,httpProtocol:void 0,clientCert:void 0,clientMtlsVerificationStatus:void 0,clientMtlsVerificationReason:void 0,clientCertFingerprintSha256:void 0,clientCertNotBefore:void 0,clientCertNotAfter:void 0,clientCertIssuerDn:void 0,clientCertSubjectDn:void 0},this.parentContext=n,this.#e=e,this.#t=r,this.analyticsContext=new c(this.requestId)}waitUntil(e){this.#e.waitUntil(e)}invokeInboundPolicy(e,t){throw new Error("Not implemented")}invokeOutboundPolicy(e,t,n){throw new Error("Not implemented")}invokeRoute(e,t){throw new Error("Not implemented")}addResponseSendingHook(e){throw new Error("Not implemented")}addResponseSendingFinalHook(e){throw new Error("Not implemented")}addPreRequestHandler(e,t){let n;try{n=u.getContextExtensions(this)}catch{n=u.initialize(this,new d(this.#t??new Request("https://api.example.com")))}n.preRequestPhase??="active",p(this,n,e,t)}get preRequestHandlers(){let e;try{e=u.getContextExtensions(this)}catch{return[]}return(e.preRequestState?.entries??[]).map(t=>({policyName:t.policyName,name:t.name}))}addEventListener(e,t,n){let r=o(s=>{try{typeof t=="function"?t(s):t.handleEvent(s)}catch(m){throw this.log.error(`Error invoking event ${e}. See following logs for details.`),m}},"wrapped");super.addEventListener(e,r,n)}};export{a as MockZuploContext,w as createMockContext};
26
26
  //# sourceMappingURL=index.js.map
@@ -22,5 +22,5 @@
22
22
  * DEALINGS IN THE SOFTWARE.
23
23
  *--------------------------------------------------------------------------------------------*/
24
24
 
25
- import{H as a,I as l,J as c,K as o,N as p,O as y,P as m}from"../../chunk-CDEAY3VY.js";import"../../chunk-LVSZ3WTO.js";import{a as i}from"../../chunk-TYV53J3B.js";async function g(r,e){let t=typeof e.credentials=="function"?await e.credentials():e.credentials,n=r.method,d=n!=="GET"&&n!=="HEAD"&&r.body!=null?await r.arrayBuffer():null,s=await new o({method:n,url:r.url,headers:r.headers,body:d,accessKeyId:t.accessKeyId,secretAccessKey:t.secretAccessKey,sessionToken:t.sessionToken,service:e.service,region:e.region,signQuery:e.signQuery}).sign();return new Request(s.url.toString(),{method:s.method,headers:s.headers,body:s.body})}i(g,"signRequest");export{c as AwsClient,o as AwsV4Signer,p as fromTemporaryCredentials,y as fromWebToken,m as fromZuploIdentity,l as getAwsCredentialProvider,a as setAwsCredentialProvider,g as signRequest};
25
+ import{Ia as a,Ja as l,Ka as c,La as o,Oa as p,Pa as y,Qa as m}from"../../chunk-3UPXKWR6.js";import"../../chunk-UKQQD2JN.js";import{a as i}from"../../chunk-TYV53J3B.js";async function g(r,e){let t=typeof e.credentials=="function"?await e.credentials():e.credentials,n=r.method,d=n!=="GET"&&n!=="HEAD"&&r.body!=null?await r.arrayBuffer():null,s=await new o({method:n,url:r.url,headers:r.headers,body:d,accessKeyId:t.accessKeyId,secretAccessKey:t.secretAccessKey,sessionToken:t.sessionToken,service:e.service,region:e.region,signQuery:e.signQuery}).sign();return new Request(s.url.toString(),{method:s.method,headers:s.headers,body:s.body})}i(g,"signRequest");export{c as AwsClient,o as AwsV4Signer,p as fromTemporaryCredentials,y as fromWebToken,m as fromZuploIdentity,l as getAwsCredentialProvider,a as setAwsCredentialProvider,g as signRequest};
26
26
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["@zuplo/runtime/sdks/aws/sign.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;kKAiDA,eAAsBA,EACpBC,EACAC,EACkB,CAClB,IAAMC,EACJ,OAAOD,EAAQ,aAAgB,WAC3B,MAAMA,EAAQ,YAAY,EAC1BA,EAAQ,YAERE,EAASH,EAAQ,OAEjBI,EADUD,IAAW,OAASA,IAAW,QAAUH,EAAQ,MAAQ,KAClD,MAAMA,EAAQ,YAAY,EAAI,KAe/CK,EAAS,MAbA,IAAIC,EAAY,CAC7B,OAAAH,EACA,IAAKH,EAAQ,IACb,QAASA,EAAQ,QACjB,KAAAI,EACA,YAAaF,EAAY,YACzB,gBAAiBA,EAAY,gBAC7B,aAAcA,EAAY,aAC1B,QAASD,EAAQ,QACjB,OAAQA,EAAQ,OAChB,UAAWA,EAAQ,SACrB,CAAC,EAE2B,KAAK,EAEjC,OAAO,IAAI,QAAQI,EAAO,IAAI,SAAS,EAAG,CACxC,OAAQA,EAAO,OACf,QAASA,EAAO,QAChB,KAAMA,EAAO,IACf,CAAC,CACH,CAjCsBE,EAAAR,EAAA","names":["signRequest","request","options","credentials","method","body","signed","AwsV4Signer","__name"]}
1
+ {"version":3,"sources":["@zuplo/runtime/sdks/aws/sign.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;yKAiDA,eAAsBA,EACpBC,EACAC,EACkB,CAClB,IAAMC,EACJ,OAAOD,EAAQ,aAAgB,WAC3B,MAAMA,EAAQ,YAAY,EAC1BA,EAAQ,YAERE,EAASH,EAAQ,OAEjBI,EADUD,IAAW,OAASA,IAAW,QAAUH,EAAQ,MAAQ,KAClD,MAAMA,EAAQ,YAAY,EAAI,KAe/CK,EAAS,MAbA,IAAIC,EAAY,CAC7B,OAAAH,EACA,IAAKH,EAAQ,IACb,QAASA,EAAQ,QACjB,KAAAI,EACA,YAAaF,EAAY,YACzB,gBAAiBA,EAAY,gBAC7B,aAAcA,EAAY,aAC1B,QAASD,EAAQ,QACjB,OAAQA,EAAQ,OAChB,UAAWA,EAAQ,SACrB,CAAC,EAE2B,KAAK,EAEjC,OAAO,IAAI,QAAQI,EAAO,IAAI,SAAS,EAAG,CACxC,OAAQA,EAAO,OACf,QAASA,EAAO,QAChB,KAAMA,EAAO,IACf,CAAC,CACH,CAjCsBE,EAAAR,EAAA","names":["signRequest","request","options","credentials","method","body","signed","AwsV4Signer","__name"]}
@@ -790,8 +790,15 @@ export { AIGatewayModelFilteringInboundPolicyOptions as AIGatewayModelFilteringV
790
790
  * model: "gpt-5",
791
791
  * capability: "completions",
792
792
  * status: "active",
793
- * inputCostPerToken: 0.00000125,
794
- * outputCostPerToken: 0.00001,
793
+ * tokenRateCard: {
794
+ * revision: "aimod_123:2026-10-12T17:42:10.031877Z",
795
+ * currency: "USD",
796
+ * rates: [
797
+ * { category: "input", costPerToken: 0.00000125 },
798
+ * { category: "cache-read-input", costPerToken: 0.000000125 },
799
+ * { category: "output", costPerToken: 0.00001 },
800
+ * ],
801
+ * },
795
802
  * };
796
803
  * ```
797
804
  */
@@ -802,10 +809,11 @@ export declare interface AIGatewayModelInfo {
802
809
  capability: "completions" | "embeddings";
803
810
  /** Whether the model is available for new routing or has been deprecated. */
804
811
  status: "active" | "deprecated";
805
- /** The catalog's normalized price in USD for one input token. */
806
- inputCostPerToken: number;
807
- /** The catalog's normalized price in USD for one output token. */
808
- outputCostPerToken: number;
812
+ /**
813
+ * The prices the AI Gateway charges for this model. Absent when the catalog
814
+ * has no valid prices for it; its requests are then recorded as unpriced.
815
+ */
816
+ tokenRateCard?: AIGatewayTokenRateCard;
809
817
  }
810
818
 
811
819
  /**
@@ -1344,6 +1352,76 @@ export declare interface AIGatewaySmartRouterTokenUsage {
1344
1352
  totalTokens: number;
1345
1353
  }
1346
1354
 
1355
+ /**
1356
+ * One USD-per-token rate in an {@link AIGatewayTokenRateCard}.
1357
+ *
1358
+ * A rate applies to a request whose total input token count is within
1359
+ * `minInputTokens` and `maxInputTokens`, inclusive; an absent bound is open.
1360
+ *
1361
+ * @public
1362
+ * @example
1363
+ * ```typescript
1364
+ * const longContextInput: AIGatewayTokenRate = {
1365
+ * category: "input",
1366
+ * costPerToken: 0.000006,
1367
+ * minInputTokens: 200001,
1368
+ * };
1369
+ * ```
1370
+ */
1371
+ export declare interface AIGatewayTokenRate {
1372
+ /** The token category this rate prices. */
1373
+ category: AIGatewayTokenRateCategory;
1374
+ /** The price in USD for one token. */
1375
+ costPerToken: number;
1376
+ /** The cache lifetime a `cache-write-input` rate applies to. */
1377
+ cacheTtl?: "5m" | "1h";
1378
+ /** The smallest total input token count this rate applies to. */
1379
+ minInputTokens?: number;
1380
+ /** The largest total input token count this rate applies to. */
1381
+ maxInputTokens?: number;
1382
+ }
1383
+
1384
+ /**
1385
+ * The prices the AI Gateway charges for a model: the catalog's list prices
1386
+ * with your project's prices applied.
1387
+ *
1388
+ * @public
1389
+ * @example
1390
+ * ```typescript
1391
+ * const card: AIGatewayTokenRateCard = {
1392
+ * revision: "aimod_123:2026-10-12T17:42:10.031877Z",
1393
+ * currency: "USD",
1394
+ * rates: [
1395
+ * { category: "input", costPerToken: 0.00000125 },
1396
+ * { category: "output", costPerToken: 0.00001 },
1397
+ * ],
1398
+ * };
1399
+ * ```
1400
+ */
1401
+ export declare interface AIGatewayTokenRateCard {
1402
+ /** Identifies the prices this card was built from. */
1403
+ revision: string;
1404
+ /** The currency of every rate. */
1405
+ currency: "USD";
1406
+ /** The rates, one per category, cache lifetime and input-size tier. */
1407
+ rates: AIGatewayTokenRate[];
1408
+ }
1409
+
1410
+ /**
1411
+ * The token category a rate in an {@link AIGatewayTokenRateCard} prices.
1412
+ *
1413
+ * @public
1414
+ * @example
1415
+ * ```typescript
1416
+ * const category: AIGatewayTokenRateCategory = "cache-read-input";
1417
+ * ```
1418
+ */
1419
+ export declare type AIGatewayTokenRateCategory =
1420
+ | "input"
1421
+ | "cache-read-input"
1422
+ | "cache-write-input"
1423
+ | "output";
1424
+
1347
1425
  /**
1348
1426
  * Common options every AI Gateway policy understands for scoping itself across
1349
1427
  * the multi-endpoint surface. A policy reads these from its own `options`.
@@ -4254,37 +4332,13 @@ declare interface CompatibilityFlags {
4254
4332
  */
4255
4333
  returnMcpToolInputErrorsAsToolResults: boolean;
4256
4334
  /**
4257
- * Whether OpenAPI schema combinators (`allOf`, `oneOf`, `anyOf`, `not`) are
4258
- * applied with JSON Schema semantics when an operation's schemas are turned
4259
- * into runtime validators. Today that is the MCP server handler: a tool's
4260
- * advertised `inputSchema`/`outputSchema` and its argument validation.
4261
- * `request-validation-inbound` already uses Ajv and is unaffected.
4262
- *
4263
- * Before this flag:
4264
- * - A top-level combinator is used on its own, and every keyword beside it
4265
- * (`type`, `properties`, `required`, `additionalProperties`, `nullable`,
4266
- * `description`, ...) is ignored. A body of
4267
- * `{ type: object, properties, required, oneOf: [...] }` can be advertised
4268
- * as `{ anyOf: [{}, {}] }` and accept any value.
4269
- * - `oneOf` behaves like `anyOf`: a value matching several branches is
4270
- * accepted, and `oneOf` is advertised as `anyOf`.
4271
- *
4272
- * After this flag:
4273
- * - The schema's own keywords and every combinator beside them all apply,
4274
- * intersected.
4275
- * - `oneOf` accepts a value only when exactly one branch matches, and is
4276
- * advertised as `oneOf`.
4277
- * - Within a combinator schema and its branches: `required`,
4278
- * `additionalProperties`, `minProperties` or `maxProperties` without a
4279
- * `type` mark an object schema, an object schema rejects non-objects, a
4280
- * `required` name that `properties` omits is enforced, a numeric or
4281
- * boolean `enum` is enforced, and `unevaluatedProperties: false` is
4282
- * enforced. A schema with no combinator is unchanged.
4283
- *
4284
- * The advertised schema changes for every affected tool, and calls the
4285
- * gateway's request validation would reject are rejected with -32602.
4335
+ * Before this flag: MCP input schemas are converted to Zod and back to JSON
4336
+ * Schema, and Zod may insert defaults or discard undeclared properties.
4337
+ * After this flag: the MCP SDK validates JSON Schema directly, preserving
4338
+ * constraints and input values. Defaults remain annotations. HTTP validation is unchanged.
4339
+ * Opt in only on the JavaScript runtimes (workerd and Zeno).
4286
4340
  */
4287
- enforceOpenApiCombinatorSemantics: boolean;
4341
+ useMcpDirectSchemaValidation: boolean;
4288
4342
  }
4289
4343
 
4290
4344
  declare interface CompletionsFallbacks {
@@ -169,37 +169,13 @@ declare interface CompatibilityFlags {
169
169
  */
170
170
  returnMcpToolInputErrorsAsToolResults: boolean;
171
171
  /**
172
- * Whether OpenAPI schema combinators (`allOf`, `oneOf`, `anyOf`, `not`) are
173
- * applied with JSON Schema semantics when an operation's schemas are turned
174
- * into runtime validators. Today that is the MCP server handler: a tool's
175
- * advertised `inputSchema`/`outputSchema` and its argument validation.
176
- * `request-validation-inbound` already uses Ajv and is unaffected.
177
- *
178
- * Before this flag:
179
- * - A top-level combinator is used on its own, and every keyword beside it
180
- * (`type`, `properties`, `required`, `additionalProperties`, `nullable`,
181
- * `description`, ...) is ignored. A body of
182
- * `{ type: object, properties, required, oneOf: [...] }` can be advertised
183
- * as `{ anyOf: [{}, {}] }` and accept any value.
184
- * - `oneOf` behaves like `anyOf`: a value matching several branches is
185
- * accepted, and `oneOf` is advertised as `anyOf`.
186
- *
187
- * After this flag:
188
- * - The schema's own keywords and every combinator beside them all apply,
189
- * intersected.
190
- * - `oneOf` accepts a value only when exactly one branch matches, and is
191
- * advertised as `oneOf`.
192
- * - Within a combinator schema and its branches: `required`,
193
- * `additionalProperties`, `minProperties` or `maxProperties` without a
194
- * `type` mark an object schema, an object schema rejects non-objects, a
195
- * `required` name that `properties` omits is enforced, a numeric or
196
- * boolean `enum` is enforced, and `unevaluatedProperties: false` is
197
- * enforced. A schema with no combinator is unchanged.
198
- *
199
- * The advertised schema changes for every affected tool, and calls the
200
- * gateway's request validation would reject are rejected with -32602.
172
+ * Before this flag: MCP input schemas are converted to Zod and back to JSON
173
+ * Schema, and Zod may insert defaults or discard undeclared properties.
174
+ * After this flag: the MCP SDK validates JSON Schema directly, preserving
175
+ * constraints and input values. Defaults remain annotations. HTTP validation is unchanged.
176
+ * Opt in only on the JavaScript runtimes (workerd and Zeno).
201
177
  */
202
- enforceOpenApiCombinatorSemantics: boolean;
178
+ useMcpDirectSchemaValidation: boolean;
203
179
  }
204
180
 
205
181
  /**
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@zuplo/runtime",
3
3
  "type": "module",
4
- "version": "7.11.9",
4
+ "version": "7.12.1",
5
5
  "repository": "https://github.com/zuplo/zuplo",
6
6
  "author": "Zuplo, Inc.",
7
7
  "exports": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zuplo/cli",
3
- "version": "7.11.9",
3
+ "version": "7.12.1",
4
4
  "repository": "https://github.com/zuplo/zuplo",
5
5
  "author": "Zuplo, Inc.",
6
6
  "type": "module",
@@ -31,10 +31,10 @@
31
31
  "@opentelemetry/api": "1.9.0",
32
32
  "@opentelemetry/api-logs": "0.220.0",
33
33
  "@swc/core": "1.10.18",
34
- "@zuplo/core": "7.11.9",
34
+ "@zuplo/core": "7.12.1",
35
35
  "@zuplo/editor": "1.0.33162667821",
36
- "@zuplo/openapi-tools": "7.11.9",
37
- "@zuplo/runtime": "7.11.9",
36
+ "@zuplo/openapi-tools": "7.12.1",
37
+ "@zuplo/runtime": "7.12.1",
38
38
  "chalk": "5.4.1",
39
39
  "chokidar": "3.5.3",
40
40
  "cookie": "1.0.2",
@@ -65,15 +65,15 @@
65
65
  "workerd": "1.20261002.1",
66
66
  "yargs": "17.7.2",
67
67
  "zod": "4.4.3",
68
- "@zuplo/graphql": "7.11.9",
69
- "@zuplo/otel": "7.11.9"
68
+ "@zuplo/graphql": "7.12.1",
69
+ "@zuplo/otel": "7.12.1"
70
70
  },
71
71
  "optionalDependencies": {
72
- "@zuplo/lint-darwin-arm64": "7.11.9",
73
- "@zuplo/lint-darwin-x64": "7.11.9",
74
- "@zuplo/lint-linux-x64": "7.11.9",
75
- "@zuplo/lint-linux-arm64": "7.11.9",
76
- "@zuplo/lint-win32-x64": "7.11.9"
72
+ "@zuplo/lint-darwin-arm64": "7.12.1",
73
+ "@zuplo/lint-darwin-x64": "7.12.1",
74
+ "@zuplo/lint-linux-x64": "7.12.1",
75
+ "@zuplo/lint-linux-arm64": "7.12.1",
76
+ "@zuplo/lint-win32-x64": "7.12.1"
77
77
  },
78
78
  "bundleDependencies": [
79
79
  "@inquirer/prompts",