@modainteract/moda-interact-shared 2.5.1 → 2.7.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.
@@ -1,11 +1,21 @@
1
+ import {
2
+ ContractVersionSchema,
3
+ CurrencySchema,
4
+ DateSchema,
5
+ HashSchema,
6
+ IdSchema,
7
+ MoneySchema,
8
+ SemverSchema,
9
+ boundedJson,
10
+ distinct
11
+ } from "./chunk-QVPEX7KY.js";
1
12
  import {
2
13
  canonicalJson,
3
14
  jsonBytes,
4
15
  responseContractCanonicalJson
5
16
  } from "./chunk-AUS3WQIW.js";
6
17
  import {
7
- canonicaliseLanguageTag,
8
- normalizeCurrencyCode
18
+ canonicaliseLanguageTag
9
19
  } from "./chunk-4KSODB2R.js";
10
20
 
11
21
  // src/commerce/subset.ts
@@ -145,73 +155,40 @@ function compileSubset(schema, mode) {
145
155
  });
146
156
  }
147
157
 
148
- // src/commerce/primitives.ts
149
- import { z as z2 } from "zod";
150
- var ContractVersionSchema = z2.literal("commerce.v1");
151
- var IdSchema = z2.string().min(1).max(128).refine(
152
- (v) => v.trim() === v && !["standalone", "product-only", "unknown-shop"].includes(v)
153
- );
154
- var SemverSchema = z2.string().max(64).regex(/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$/);
155
- var HashSchema = z2.string().regex(/^[a-f0-9]{64}$/);
156
- var DateSchema = z2.iso.datetime({ offset: false });
157
- var MoneySchema = z2.string().regex(/^[0-9]{1,18}(\.[0-9]{1,6})?$/);
158
- var CurrencySchema = z2.string().refine((v) => {
159
- try {
160
- return normalizeCurrencyCode(v) === v;
161
- } catch {
162
- return false;
163
- }
164
- });
165
- var LanguageSchema = z2.string().max(128).refine((v) => {
166
- try {
167
- return canonicaliseLanguageTag(v) === v;
168
- } catch {
169
- return false;
170
- }
171
- });
172
- var distinct = (values) => new Set(values).size === values.length;
173
- var boundedJson = (bytes) => z2.unknown().refine((v) => {
174
- try {
175
- return jsonBytes(v) <= bytes;
176
- } catch {
177
- return false;
178
- }
179
- });
180
-
181
158
  // src/commerce/external.ts
182
- import { z as z3 } from "zod";
159
+ import { z as z2 } from "zod";
183
160
  var utf8 = (value, maximum) => new TextEncoder().encode(value).length <= maximum;
184
- var scalar = z3.union([z3.string().refine((value) => utf8(value, 2048)), z3.number().finite(), z3.boolean()]);
161
+ var scalar = z2.union([z2.string().refine((value) => utf8(value, 2048)), z2.number().finite(), z2.boolean()]);
185
162
  var ExternalQueryValueSchema = scalar;
186
- var scalarOrNull = z3.union([scalar, z3.null()]);
187
- var record = (item, max) => z3.record(z3.string().refine(safeName), item).refine((value) => Object.keys(value).length <= max);
188
- var ExternalQueryMappingSchema = z3.union([
189
- z3.strictObject({ input: z3.string().refine(safeName), omitIfMissing: z3.literal(true).optional() }),
190
- z3.strictObject({ literal: scalar })
163
+ var scalarOrNull = z2.union([scalar, z2.null()]);
164
+ var record = (item, max) => z2.record(z2.string().refine(safeName), item).refine((value) => Object.keys(value).length <= max);
165
+ var ExternalQueryMappingSchema = z2.union([
166
+ z2.strictObject({ input: z2.string().refine(safeName), omitIfMissing: z2.literal(true).optional() }),
167
+ z2.strictObject({ literal: scalar })
191
168
  ]);
192
169
  var ExternalQueryMappingsSchema = record(ExternalQueryMappingSchema, 32).superRefine((value, ctx) => {
193
170
  const reserved = /^(authorization|cookie|set-cookie|host|x-api-key|api_key|apikey|access_token|token|secret|password)$/i;
194
171
  for (const key of Object.keys(value)) if (reserved.test(key)) ctx.addIssue({ code: "custom", path: [key], message: "Reserved query key" });
195
172
  });
196
- var ExternalPathSchema = z3.string().max(1024).refine(
173
+ var ExternalPathSchema = z2.string().max(1024).refine(
197
174
  (value) => utf8(value, 1024) && /^\/(?:[A-Za-z0-9._~-]+\/)*[A-Za-z0-9._~-]*\/?$/.test(value) && !value.includes("//") && !value.includes("%") && !value.includes("\\") && !value.includes("?") && !value.includes("#") && !value.includes("{") && !value.includes("}") && value.split("/").every((segment) => segment !== "." && segment !== "..")
198
175
  );
199
- var mediaType = z3.string().min(1).max(128).refine((value) => value === value.toLowerCase() && /^[a-z0-9!#$&^_.+-]+\/[a-z0-9!#$&^_.+-]+$/.test(value));
176
+ var mediaType = z2.string().min(1).max(128).refine((value) => value === value.toLowerCase() && /^[a-z0-9!#$&^_.+-]+\/[a-z0-9!#$&^_.+-]+$/.test(value));
200
177
  var jsonMime = (value) => value === "application/json" || /^application\/[a-z0-9!#$&^_.+-]+\+json$/.test(value);
201
178
  var textMime = (value) => /^text\/[a-z0-9!#$&^_.+-]+$/.test(value) || value === "application/xml" || /^application\/[a-z0-9!#$&^_.+-]+\+xml$/.test(value) || jsonMime(value);
202
- var ExternalResponseFormatSchema = z3.strictObject({ mode: z3.enum(["JSON", "TEXT"]), mediaTypes: z3.array(mediaType).min(1).max(8).refine((values) => new Set(values).size === values.length) }).refine((value) => value.mediaTypes.every(value.mode === "JSON" ? jsonMime : textMime));
203
- var FieldProjectionSchema = record(z3.strictObject({ path: z3.string().refine(safePath), omitIfMissing: z3.literal(true).optional() }), 32).refine((value) => Object.keys(value).length >= 1);
204
- var ResponseFilterSchema = z3.discriminatedUnion("op", [
205
- z3.strictObject({ path: z3.string().refine(safePath), op: z3.enum(["EQ", "NE", "GT", "GTE", "LT", "LTE", "CONTAINS", "STARTS_WITH"]), value: scalarOrNull }),
206
- z3.strictObject({ path: z3.string().refine(safePath), op: z3.literal("IN"), values: z3.array(scalarOrNull).min(1).max(20) })
179
+ var ExternalResponseFormatSchema = z2.strictObject({ mode: z2.enum(["JSON", "TEXT"]), mediaTypes: z2.array(mediaType).min(1).max(8).refine((values) => new Set(values).size === values.length) }).refine((value) => value.mediaTypes.every(value.mode === "JSON" ? jsonMime : textMime));
180
+ var FieldProjectionSchema = record(z2.strictObject({ path: z2.string().refine(safePath), omitIfMissing: z2.literal(true).optional() }), 32).refine((value) => Object.keys(value).length >= 1);
181
+ var ResponseFilterSchema = z2.discriminatedUnion("op", [
182
+ z2.strictObject({ path: z2.string().refine(safePath), op: z2.enum(["EQ", "NE", "GT", "GTE", "LT", "LTE", "CONTAINS", "STARTS_WITH"]), value: scalarOrNull }),
183
+ z2.strictObject({ path: z2.string().refine(safePath), op: z2.literal("IN"), values: z2.array(scalarOrNull).min(1).max(20) })
207
184
  ]);
208
- var visualObject = z3.strictObject({ kind: z3.literal("OBJECT"), fields: FieldProjectionSchema });
209
- var visualList = z3.strictObject({ kind: z3.literal("LIST"), fields: FieldProjectionSchema, filters: z3.array(ResponseFilterSchema).max(8), sort: z3.union([z3.null(), z3.strictObject({ path: z3.string().refine(safePath), direction: z3.enum(["ASC", "DESC"]) })]), limit: z3.int().min(1).max(20) });
210
- var VisualResponseProcessingSchema = z3.union([visualObject, visualList]);
211
- var ResponseProcessingSchema = z3.union([VisualResponseProcessingSchema, z3.strictObject({ kind: z3.literal("JAVASCRIPT"), runtimeVersion: z3.literal("quickjs-sync.v1"), source: z3.string().min(1).refine((value) => utf8(value, 16384)) })]);
212
- var TransformResponseSchema = z3.strictObject({ status: z3.int().min(200).max(299), contentType: z3.string().min(1).max(128), bodyText: z3.string().refine((value) => utf8(value, 262144)), json: z3.union([z3.null(), z3.json()]) });
213
- var TransformSampleSchema = z3.strictObject({ status: z3.int().min(200).max(299), contentType: z3.string().min(1).max(128), bodyText: z3.string().refine((value) => utf8(value, 262144)) }).refine((value) => jsonBytes(value) <= 524288);
214
- var boundedValues = z3.custom((value) => {
185
+ var visualObject = z2.strictObject({ kind: z2.literal("OBJECT"), fields: FieldProjectionSchema });
186
+ var visualList = z2.strictObject({ kind: z2.literal("LIST"), fields: FieldProjectionSchema, filters: z2.array(ResponseFilterSchema).max(8), sort: z2.union([z2.null(), z2.strictObject({ path: z2.string().refine(safePath), direction: z2.enum(["ASC", "DESC"]) })]), limit: z2.int().min(1).max(20) });
187
+ var VisualResponseProcessingSchema = z2.union([visualObject, visualList]);
188
+ var ResponseProcessingSchema = z2.union([VisualResponseProcessingSchema, z2.strictObject({ kind: z2.literal("JAVASCRIPT"), runtimeVersion: z2.literal("quickjs-sync.v1"), source: z2.string().min(1).refine((value) => utf8(value, 16384)) })]);
189
+ var TransformResponseSchema = z2.strictObject({ status: z2.int().min(200).max(299), contentType: z2.string().min(1).max(128), bodyText: z2.string().refine((value) => utf8(value, 262144)), json: z2.union([z2.null(), z2.json()]) });
190
+ var TransformSampleSchema = z2.strictObject({ status: z2.int().min(200).max(299), contentType: z2.string().min(1).max(128), bodyText: z2.string().refine((value) => utf8(value, 262144)) }).refine((value) => jsonBytes(value) <= 524288);
191
+ var boundedValues = z2.custom((value) => {
215
192
  const visit = (node, depth) => depth <= 20 && (node === null || typeof node === "string" || typeof node === "boolean" || typeof node === "number" && Number.isFinite(node) || Array.isArray(node) && node.every((child) => visit(child, depth + 1)) || !!node && typeof node === "object" && !Array.isArray(node) && Object.getPrototypeOf(node) === Object.prototype && Object.entries(node).every(([key, child]) => !["__proto__", "prototype", "constructor"].includes(key) && visit(child, depth + 1)));
216
193
  try {
217
194
  return !!value && typeof value === "object" && !Array.isArray(value) && visit(value, 1) && jsonBytes(value) <= 49152;
@@ -219,24 +196,24 @@ var boundedValues = z3.custom((value) => {
219
196
  return false;
220
197
  }
221
198
  });
222
- var ExternalHttpResultDataSchema = z3.strictObject({ source: z3.literal("EXTERNAL_HTTP"), connectionRevisionId: IdSchema, observedAt: DateSchema, values: boundedValues });
223
- var ConnectionRevisionViewSchema = z3.strictObject({ id: IdSchema, connectionId: IdSchema, revisionNumber: z3.int().positive(), origin: z3.string().min(1).max(2048), scope: z3.enum(["PLATFORM", "PER_SHOP"]), authMode: z3.enum(["NONE", "BEARER", "API_KEY"]), authHeader: z3.string().min(1).max(128).nullable(), documentation: z3.string().max(16e3), createdAt: z3.iso.datetime({ offset: false }) });
224
- var ConnectionViewSchema = z3.strictObject({ id: IdSchema, key: z3.string().regex(/^[a-z][a-z0-9_]{0,127}$/), displayName: z3.string().min(1).max(255), description: z3.string().max(4096), enabled: z3.boolean(), editVersion: z3.int().positive(), revisions: z3.array(ConnectionRevisionViewSchema) });
225
- var CredentialStatusSchema = z3.strictObject({ connectionRevisionId: IdSchema, shopId: IdSchema.nullable(), configured: z3.boolean(), editVersion: z3.int().positive().nullable(), updatedAt: z3.iso.datetime({ offset: false }).nullable() });
226
- var ConnectionCommandSchema = z3.strictObject({ operationId: IdSchema, reason: z3.string().trim().min(1).max(1e3) });
227
- var RevisionInputSchema = z3.strictObject({ origin: z3.string().min(1).max(2048), scope: z3.enum(["PLATFORM", "PER_SHOP"]), authMode: z3.enum(["NONE", "BEARER", "API_KEY"]), authHeader: z3.string().min(1).max(128).nullable(), documentation: z3.string().max(16e3) });
228
- var ConnectionIssueSchema = z3.strictObject({ path: z3.string().max(256), message: z3.string().min(1).max(512) });
229
- var ConnectionResultSchema = (value) => z3.discriminatedUnion("kind", [
230
- z3.strictObject({ kind: z3.literal("ok"), value }),
231
- z3.strictObject({ kind: z3.literal("not-found") }),
232
- z3.strictObject({ kind: z3.literal("forbidden") }),
233
- z3.strictObject({ kind: z3.literal("unavailable") }),
234
- z3.strictObject({ kind: z3.literal("invalid"), issues: z3.array(ConnectionIssueSchema).max(32) }),
235
- z3.strictObject({ kind: z3.literal("conflict"), code: z3.enum(["STALE_CAS", "CONFLICTING_REPLAY"]) })
199
+ var ExternalHttpResultDataSchema = z2.strictObject({ source: z2.literal("EXTERNAL_HTTP"), connectionRevisionId: IdSchema, observedAt: DateSchema, values: boundedValues });
200
+ var ConnectionRevisionViewSchema = z2.strictObject({ id: IdSchema, connectionId: IdSchema, revisionNumber: z2.int().positive(), origin: z2.string().min(1).max(2048), scope: z2.enum(["PLATFORM", "PER_SHOP"]), authMode: z2.enum(["NONE", "BEARER", "API_KEY"]), authHeader: z2.string().min(1).max(128).nullable(), documentation: z2.string().max(16e3), createdAt: z2.iso.datetime({ offset: false }) });
201
+ var ConnectionViewSchema = z2.strictObject({ id: IdSchema, key: z2.string().regex(/^[a-z][a-z0-9_]{0,127}$/), displayName: z2.string().min(1).max(255), description: z2.string().max(4096), enabled: z2.boolean(), editVersion: z2.int().positive(), revisions: z2.array(ConnectionRevisionViewSchema) });
202
+ var CredentialStatusSchema = z2.strictObject({ connectionRevisionId: IdSchema, shopId: IdSchema.nullable(), configured: z2.boolean(), editVersion: z2.int().positive().nullable(), updatedAt: z2.iso.datetime({ offset: false }).nullable() });
203
+ var ConnectionCommandSchema = z2.strictObject({ operationId: IdSchema, reason: z2.string().trim().min(1).max(1e3) });
204
+ var RevisionInputSchema = z2.strictObject({ origin: z2.string().min(1).max(2048), scope: z2.enum(["PLATFORM", "PER_SHOP"]), authMode: z2.enum(["NONE", "BEARER", "API_KEY"]), authHeader: z2.string().min(1).max(128).nullable(), documentation: z2.string().max(16e3) });
205
+ var ConnectionIssueSchema = z2.strictObject({ path: z2.string().max(256), message: z2.string().min(1).max(512) });
206
+ var ConnectionResultSchema = (value) => z2.discriminatedUnion("kind", [
207
+ z2.strictObject({ kind: z2.literal("ok"), value }),
208
+ z2.strictObject({ kind: z2.literal("not-found") }),
209
+ z2.strictObject({ kind: z2.literal("forbidden") }),
210
+ z2.strictObject({ kind: z2.literal("unavailable") }),
211
+ z2.strictObject({ kind: z2.literal("invalid"), issues: z2.array(ConnectionIssueSchema).max(32) }),
212
+ z2.strictObject({ kind: z2.literal("conflict"), code: z2.enum(["STALE_CAS", "CONFLICTING_REPLAY"]) })
236
213
  ]);
237
214
 
238
215
  // src/commerce/definitions.ts
239
- import { z as z4 } from "zod";
216
+ import { z as z3 } from "zod";
240
217
  import { gt } from "semver";
241
218
 
242
219
  // src/commerce/definition-size.ts
@@ -277,33 +254,33 @@ var definitionFitsStorage = (value) => {
277
254
  var DEFINITION_SIZE_MESSAGE = "Definition exceeds the 65536-byte jsonb text limit";
278
255
 
279
256
  // src/commerce/definitions.ts
280
- var ToolNameSchema = z4.string().regex(/^[a-z][a-z0-9_]{0,127}$/).refine((n) => n !== "finalResponse");
281
- var GrantedToolSchema = z4.strictObject({
257
+ var ToolNameSchema = z3.string().regex(/^[a-z][a-z0-9_]{0,127}$/).refine((n) => n !== "finalResponse");
258
+ var GrantedToolSchema = z3.strictObject({
282
259
  toolId: IdSchema,
283
260
  toolRevisionId: IdSchema,
284
261
  toolName: ToolNameSchema,
285
262
  definitionVersion: SemverSchema,
286
- capabilityKeys: z4.array(IdSchema).min(1).max(32).refine((v) => distinct(v) && v.join("\0") === [...v].sort().join("\0"))
263
+ capabilityKeys: z3.array(IdSchema).min(1).max(32).refine((v) => distinct(v) && v.join("\0") === [...v].sort().join("\0"))
287
264
  });
288
- var GrantedToolsSchema = z4.array(GrantedToolSchema).max(32).refine(
265
+ var GrantedToolsSchema = z3.array(GrantedToolSchema).max(32).refine(
289
266
  (v) => distinct(v.map((x) => x.toolId)) && distinct(v.map((x) => x.toolName))
290
267
  );
291
- var ToolDescriptorSchema = z4.strictObject({
268
+ var ToolDescriptorSchema = z3.strictObject({
292
269
  toolId: IdSchema,
293
270
  toolRevisionId: IdSchema,
294
271
  name: ToolNameSchema,
295
272
  definitionVersion: SemverSchema,
296
- description: z4.string().min(1).max(4096),
273
+ description: z3.string().min(1).max(4096),
297
274
  inputSchema: InputSchemaSchema
298
275
  });
299
- var MappingSchema = z4.union([
300
- z4.strictObject({
301
- input: z4.string().refine(safeName),
302
- omitIfMissing: z4.literal(true).optional()
276
+ var MappingSchema = z3.union([
277
+ z3.strictObject({
278
+ input: z3.string().refine(safeName),
279
+ omitIfMissing: z3.literal(true).optional()
303
280
  }),
304
- z4.strictObject({ literal: boundedJson(8192) })
281
+ z3.strictObject({ literal: boundedJson(8192) })
305
282
  ]);
306
- var MappingsSchema = z4.record(z4.string().refine(safeName), MappingSchema).refine((v) => Object.keys(v).length <= 32);
283
+ var MappingsSchema = z3.record(z3.string().refine(safeName), MappingSchema).refine((v) => Object.keys(v).length <= 32);
307
284
  var POLICY_OPERATIONS = [
308
285
  "recovery.getBasket",
309
286
  "shopify.searchProducts",
@@ -312,15 +289,15 @@ var POLICY_OPERATIONS = [
312
289
  "products.findQualifying",
313
290
  "products.findSimilar"
314
291
  ];
315
- var ExternalHttpExecutionSchema = z4.strictObject({
316
- kind: z4.literal("EXTERNAL_HTTP"),
317
- executorVersion: z4.literal("1.0.0"),
292
+ var ExternalHttpExecutionSchema = z3.strictObject({
293
+ kind: z3.literal("EXTERNAL_HTTP"),
294
+ executorVersion: z3.literal("1.0.0"),
318
295
  connectionRevisionId: IdSchema,
319
- method: z4.literal("GET"),
296
+ method: z3.literal("GET"),
320
297
  path: ExternalPathSchema,
321
298
  query: ExternalQueryMappingsSchema,
322
299
  responseFormat: ExternalResponseFormatSchema,
323
- resultPath: z4.string().refine((value) => value === "" || safePath(value)),
300
+ resultPath: z3.string().refine((value) => value === "" || safePath(value)),
324
301
  responseProcessing: ResponseProcessingSchema,
325
302
  resultSchema: DetailsSchemaSchema
326
303
  }).superRefine((value, ctx) => {
@@ -329,21 +306,21 @@ var ExternalHttpExecutionSchema = z4.strictObject({
329
306
  if (value.responseProcessing.kind !== "JAVASCRIPT" && value.responseFormat.mode !== "JSON")
330
307
  ctx.addIssue({ code: "custom", path: ["responseFormat", "mode"], message: "Visual processing requires JSON" });
331
308
  });
332
- var CommerceExecutionSchema = z4.discriminatedUnion("kind", [
333
- z4.strictObject({
334
- kind: z4.literal("SHOPIFY_STOREFRONT_QUERY"),
335
- executorVersion: z4.literal("1.0.0"),
336
- apiVersion: z4.literal("2026-07"),
309
+ var CommerceExecutionSchema = z3.discriminatedUnion("kind", [
310
+ z3.strictObject({
311
+ kind: z3.literal("SHOPIFY_STOREFRONT_QUERY"),
312
+ executorVersion: z3.literal("1.0.0"),
313
+ apiVersion: z3.literal("2026-07"),
337
314
  schemaHash: HashSchema,
338
- document: z4.string().min(1).refine((v) => new TextEncoder().encode(v).length <= 16384),
339
- operationName: z4.string().refine(safeName),
315
+ document: z3.string().min(1).refine((v) => new TextEncoder().encode(v).length <= 16384),
316
+ operationName: z3.string().refine(safeName),
340
317
  variables: MappingsSchema,
341
- resultPath: z4.string().refine(safePath)
318
+ resultPath: z3.string().refine(safePath)
342
319
  }),
343
- z4.strictObject({
344
- kind: z4.literal("POLICY_OPERATION"),
345
- operation: z4.enum(POLICY_OPERATIONS),
346
- operationVersion: z4.literal("1.0.0"),
320
+ z3.strictObject({
321
+ kind: z3.literal("POLICY_OPERATION"),
322
+ operation: z3.enum(POLICY_OPERATIONS),
323
+ operationVersion: z3.literal("1.0.0"),
347
324
  arguments: MappingsSchema
348
325
  }),
349
326
  ExternalHttpExecutionSchema
@@ -356,17 +333,17 @@ function tokensValid(text, root) {
356
333
  );
357
334
  return !residue.includes("{{") && !residue.includes("}}");
358
335
  }
359
- var fixed = z4.string().max(4096).refine((v) => !/[<>]|\{\{|\}\}/.test(v));
360
- var ResponseTemplateSchema = z4.discriminatedUnion("kind", [
361
- z4.strictObject({
362
- kind: z4.literal("text"),
363
- text: z4.string().max(4096).refine((v) => tokensValid(v, "result")),
336
+ var fixed = z3.string().max(4096).refine((v) => !/[<>]|\{\{|\}\}/.test(v));
337
+ var ResponseTemplateSchema = z3.discriminatedUnion("kind", [
338
+ z3.strictObject({
339
+ kind: z3.literal("text"),
340
+ text: z3.string().max(4096).refine((v) => tokensValid(v, "result")),
364
341
  unavailable: fixed
365
342
  }),
366
- z4.strictObject({
367
- kind: z4.literal("items"),
368
- itemsPath: z4.string().refine(safePath),
369
- item: z4.string().max(4096).refine((v) => tokensValid(v, "item")),
343
+ z3.strictObject({
344
+ kind: z3.literal("items"),
345
+ itemsPath: z3.string().refine(safePath),
346
+ item: z3.string().max(4096).refine((v) => tokensValid(v, "item")),
370
347
  empty: fixed,
371
348
  unavailable: fixed
372
349
  })
@@ -374,11 +351,11 @@ var ResponseTemplateSchema = z4.discriminatedUnion("kind", [
374
351
  var identity = {
375
352
  name: ToolNameSchema,
376
353
  definitionVersion: SemverSchema,
377
- description: z4.string().min(1).max(4096)
354
+ description: z3.string().min(1).max(4096)
378
355
  };
379
356
  var forbiddenInput = /^(shopid|customerid|checkoutrecoveryid|conversationid|grantid|releaseid|token|accesstoken|domain|headers|url|graphql|document|authorization)$/i;
380
357
  var forbiddenExternalInput = /^(authorization|cookie|set-cookie|host|x-api-key|api_key|apikey|access_token|token|secret|password)$/i;
381
- var CommerceToolDefinitionSchema = z4.strictObject({
358
+ var CommerceToolDefinitionSchema = z3.strictObject({
382
359
  ...identity,
383
360
  inputSchema: InputSchemaSchema,
384
361
  execution: CommerceExecutionSchema,
@@ -414,7 +391,7 @@ var CommerceToolDefinitionSchema = z4.strictObject({
414
391
  var draftObject = boundedJson(65536).refine(
415
392
  (v) => !!v && typeof v === "object" && !Array.isArray(v)
416
393
  );
417
- var CommerceToolDraftDefinitionSchema = z4.strictObject({
394
+ var CommerceToolDraftDefinitionSchema = z3.strictObject({
418
395
  ...identity,
419
396
  inputSchema: draftObject,
420
397
  execution: draftObject,
@@ -507,12 +484,12 @@ function validateDefinitionVersion(proposed, highestPublished) {
507
484
  SemverSchema.parse(highestPublished);
508
485
  return gt(proposed, highestPublished);
509
486
  }
510
- var CommerceToolIdentitySchema = z4.strictObject({
487
+ var CommerceToolIdentitySchema = z3.strictObject({
511
488
  id: IdSchema,
512
489
  name: ToolNameSchema,
513
- enabled: z4.boolean()
490
+ enabled: z3.boolean()
514
491
  });
515
- var CommerceToolRevisionIdentitySchema = z4.strictObject({
492
+ var CommerceToolRevisionIdentitySchema = z3.strictObject({
516
493
  toolId: IdSchema,
517
494
  toolRevisionId: IdSchema,
518
495
  definitionVersion: SemverSchema,
@@ -523,10 +500,10 @@ var POLICY_OPERATION_DESCRIPTORS = POLICY_OPERATIONS.map(
523
500
  );
524
501
 
525
502
  // src/commerce/response.ts
526
- import { z as z5 } from "zod";
527
- var CommerceResponseContractSchema = z5.strictObject({
528
- version: z5.literal("response.v1"),
529
- instructions: z5.string().min(1).max(8e3),
503
+ import { z as z4 } from "zod";
504
+ var CommerceResponseContractSchema = z4.strictObject({
505
+ version: z4.literal("response.v1"),
506
+ instructions: z4.string().min(1).max(8e3),
530
507
  detailsSchema: DetailsSchemaSchema
531
508
  }).refine((v) => jsonBytes(v) <= 32768);
532
509
  var EMPTY_RESPONSE_CONTRACT = {
@@ -539,31 +516,31 @@ var EMPTY_RESPONSE_CONTRACT = {
539
516
  additionalProperties: false
540
517
  }
541
518
  };
542
- var ReferralReasonSchema = z5.enum([
519
+ var ReferralReasonSchema = z4.enum([
543
520
  "INSUFFICIENT_TOOLS",
544
521
  "UNVERIFIABLE_FACTS",
545
522
  "TOOL_UNAVAILABLE",
546
523
  "TOOL_REVOKED"
547
524
  ]);
548
- var DetectedLanguageTagSchema = z5.string().min(1).max(128).transform((value, ctx) => {
525
+ var DetectedLanguageTagSchema = z4.string().min(1).max(128).transform((value, ctx) => {
549
526
  const canonical = canonicaliseLanguageTag(value);
550
527
  if (!canonical) {
551
528
  ctx.addIssue({
552
529
  code: "custom",
553
530
  message: "Invalid detected language tag"
554
531
  });
555
- return z5.NEVER;
532
+ return z4.NEVER;
556
533
  }
557
534
  return canonical;
558
535
  });
559
- var CommerceFinalResponseSchema = z5.strictObject({
560
- answerKind: z5.enum(["ANSWER", "REFER_TO_STORE"]),
561
- replyText: z5.string().min(1).max(4096),
536
+ var CommerceFinalResponseSchema = z4.strictObject({
537
+ answerKind: z4.enum(["ANSWER", "REFER_TO_STORE"]),
538
+ replyText: z4.string().min(1).max(4096),
562
539
  referralReason: ReferralReasonSchema.nullable(),
563
540
  detectedLanguageTag: DetectedLanguageTagSchema.nullable(),
564
- detectedLanguageConfidence: z5.number().min(0).max(1).nullable(),
565
- evidenceIds: z5.array(IdSchema).max(3).refine((v) => new Set(v).size === v.length),
566
- details: z5.record(z5.string(), z5.unknown()).refine((v) => {
541
+ detectedLanguageConfidence: z4.number().min(0).max(1).nullable(),
542
+ evidenceIds: z4.array(IdSchema).max(3).refine((v) => new Set(v).size === v.length),
543
+ details: z4.record(z4.string(), z4.unknown()).refine((v) => {
567
544
  try {
568
545
  return jsonBytes(v) <= 16384;
569
546
  } catch {
@@ -699,22 +676,22 @@ function finalResponseToolSchema(definition) {
699
676
  }
700
677
 
701
678
  // src/commerce/schemas.ts
702
- import { z as z6 } from "zod";
679
+ import { z as z5 } from "zod";
703
680
  import { validRange } from "semver";
704
- var CommerceTurnIdentitySchema = z6.strictObject({
681
+ var CommerceTurnIdentitySchema = z5.strictObject({
705
682
  contractVersion: ContractVersionSchema,
706
683
  shopId: IdSchema,
707
684
  checkoutRecoveryId: IdSchema,
708
685
  conversationId: IdSchema,
709
- inboundVersion: z6.number().int().positive()
686
+ inboundVersion: z5.number().int().positive()
710
687
  });
711
- var CommerceConversationGrantSchema = z6.strictObject({
688
+ var CommerceConversationGrantSchema = z5.strictObject({
712
689
  id: IdSchema,
713
690
  shopId: IdSchema,
714
691
  conversationId: IdSchema,
715
- initialInboundVersion: z6.number().int().positive(),
692
+ initialInboundVersion: z5.number().int().positive(),
716
693
  releaseId: IdSchema,
717
- selectedCapabilityKeys: z6.array(IdSchema).max(32).refine(distinct),
694
+ selectedCapabilityKeys: z5.array(IdSchema).max(32).refine(distinct),
718
695
  grantedTools: GrantedToolsSchema,
719
696
  runnerVersion: SemverSchema,
720
697
  createdAt: DateSchema,
@@ -727,26 +704,26 @@ var CommerceConversationGrantSchema = z6.strictObject({
727
704
  ))
728
705
  c.addIssue({ code: "custom", message: "Unselected grant provenance" });
729
706
  });
730
- var CommerceManifestSchema = z6.strictObject({
707
+ var CommerceManifestSchema = z5.strictObject({
731
708
  contractVersion: ContractVersionSchema,
732
709
  releaseId: IdSchema,
733
- runnerCompatibility: z6.string().min(1).max(128).refine((v) => !!validRange(v)),
734
- capabilities: z6.array(
735
- z6.strictObject({
710
+ runnerCompatibility: z5.string().min(1).max(128).refine((v) => !!validRange(v)),
711
+ capabilities: z5.array(
712
+ z5.strictObject({
736
713
  capabilityId: IdSchema,
737
714
  key: IdSchema,
738
715
  featureId: IdSchema,
739
- position: z6.number().int().nonnegative(),
716
+ position: z5.number().int().nonnegative(),
740
717
  toolDescriptor: ToolDescriptorSchema
741
718
  })
742
719
  ).max(32),
743
- featureBehaviours: z6.array(
744
- z6.strictObject({
720
+ featureBehaviours: z5.array(
721
+ z5.strictObject({
745
722
  featureId: IdSchema,
746
- behaviourPrompt: z6.string().max(32e3)
723
+ behaviourPrompt: z5.string().max(32e3)
747
724
  })
748
725
  ).max(32),
749
- selectedCapabilityKeys: z6.array(IdSchema).max(32).refine(distinct),
726
+ selectedCapabilityKeys: z5.array(IdSchema).max(32).refine(distinct),
750
727
  grantedTools: GrantedToolsSchema,
751
728
  responseContract: CommerceResponseContractSchema,
752
729
  responseContractHash: HashSchema
@@ -797,32 +774,32 @@ var CommerceManifestSchema = z6.strictObject({
797
774
  message: "Grant must equal selected capability set"
798
775
  });
799
776
  });
800
- var CommerceReleaseIdentitySchema = z6.strictObject({
777
+ var CommerceReleaseIdentitySchema = z5.strictObject({
801
778
  contractVersion: ContractVersionSchema,
802
779
  releaseId: IdSchema,
803
- runnerCompatibility: z6.string().min(1).max(128).refine((v) => !!validRange(v))
780
+ runnerCompatibility: z5.string().min(1).max(128).refine((v) => !!validRange(v))
804
781
  });
805
782
  var CommerceResolveAssertionSchema = CommerceTurnIdentitySchema.extend(
806
- { purpose: z6.literal("resolve") }
783
+ { purpose: z5.literal("resolve") }
807
784
  );
808
785
  var CommerceExecuteAssertionSchema = CommerceTurnIdentitySchema.extend(
809
- { purpose: z6.literal("execute"), grantId: IdSchema, releaseId: IdSchema }
786
+ { purpose: z5.literal("execute"), grantId: IdSchema, releaseId: IdSchema }
810
787
  );
811
- var CommerceAssertionSchema = z6.discriminatedUnion("purpose", [
788
+ var CommerceAssertionSchema = z5.discriminatedUnion("purpose", [
812
789
  CommerceResolveAssertionSchema,
813
790
  CommerceExecuteAssertionSchema
814
791
  ]);
815
- var qty = z6.number().int().min(1).max(999);
816
- var CommerceProposalSchema = z6.strictObject({
817
- operations: z6.array(
818
- z6.discriminatedUnion("kind", [
819
- z6.strictObject({
820
- kind: z6.literal("ADD"),
792
+ var qty = z5.number().int().min(1).max(999);
793
+ var CommerceProposalSchema = z5.strictObject({
794
+ operations: z5.array(
795
+ z5.discriminatedUnion("kind", [
796
+ z5.strictObject({
797
+ kind: z5.literal("ADD"),
821
798
  variantId: IdSchema,
822
799
  quantity: qty
823
800
  }),
824
- z6.strictObject({
825
- kind: z6.literal("REPLACE"),
801
+ z5.strictObject({
802
+ kind: z5.literal("REPLACE"),
826
803
  lineId: IdSchema,
827
804
  variantId: IdSchema,
828
805
  quantity: qty
@@ -834,13 +811,13 @@ var CommerceProposalSchema = z6.strictObject({
834
811
  v.operations.flatMap((o) => o.kind === "REPLACE" ? [o.lineId] : [])
835
812
  )
836
813
  );
837
- var CommerceBasketSchema = z6.strictObject({
814
+ var CommerceBasketSchema = z5.strictObject({
838
815
  basketId: IdSchema,
839
- source: z6.enum(["RECOVERY_SNAPSHOT", "PROPOSED"]),
816
+ source: z5.enum(["RECOVERY_SNAPSHOT", "PROPOSED"]),
840
817
  observedAt: DateSchema,
841
818
  currency: CurrencySchema.nullable(),
842
- lines: z6.array(
843
- z6.strictObject({
819
+ lines: z5.array(
820
+ z5.strictObject({
844
821
  lineId: IdSchema,
845
822
  productId: IdSchema.nullable(),
846
823
  variantId: IdSchema.nullable(),
@@ -849,40 +826,100 @@ var CommerceBasketSchema = z6.strictObject({
849
826
  })
850
827
  ).max(100),
851
828
  fingerprint: HashSchema,
852
- unknownFields: z6.array(z6.string().min(1).max(256)).max(128)
829
+ unknownFields: z5.array(z5.string().min(1).max(256)).max(128)
853
830
  }).refine((v) => distinct(v.lines.map((line) => line.lineId)));
854
- var CommerceProductSchema = z6.strictObject({
831
+ var CommerceProductSaleEvidenceSchema = z5.strictObject({
832
+ regularPrice: MoneySchema.nullable(),
833
+ salePrice: MoneySchema.nullable(),
834
+ observedAt: DateSchema
835
+ });
836
+ var CommerceProductSchema = z5.strictObject({
855
837
  productId: IdSchema,
856
- variantId: IdSchema,
857
- title: z6.string().min(1).max(512),
858
- url: z6.url({ protocol: /^https$/ }).refine((v) => {
838
+ variantId: IdSchema.nullable(),
839
+ title: z5.string().min(1).max(512),
840
+ url: z5.url({ protocol: /^https$/ }).refine((v) => {
859
841
  const u = new URL(v);
860
842
  return !u.username && !u.password && !u.port;
861
843
  }).nullable(),
862
- available: z6.boolean().nullable(),
844
+ available: z5.boolean().nullable(),
863
845
  unitPrice: MoneySchema.nullable(),
864
846
  currency: CurrencySchema.nullable(),
865
- productType: z6.string().max(512).nullable(),
866
- vendor: z6.string().max(512).nullable(),
847
+ productType: z5.string().max(512).nullable(),
848
+ vendor: z5.string().max(512).nullable(),
849
+ categories: z5.array(z5.string()).optional(),
850
+ categoryIds: z5.array(IdSchema).max(128).optional(),
851
+ collectionIds: z5.array(IdSchema).max(128).optional(),
852
+ imageUrl: z5.string().nullable().optional(),
853
+ saleEvidence: CommerceProductSaleEvidenceSchema.nullable().optional(),
867
854
  observedAt: DateSchema
868
855
  });
869
- var CommerceOfferSchema = z6.strictObject({
856
+ var CommerceOfferSchema = z5.strictObject({
870
857
  offerId: IdSchema,
871
- title: z6.string().min(1).max(512),
872
- method: z6.enum(["AUTOMATIC", "CODE"]),
873
- code: z6.string().min(1).max(128).nullable(),
858
+ title: z5.string().min(1).max(512),
859
+ method: z5.enum(["AUTOMATIC", "CODE"]),
860
+ code: z5.string().min(1).max(128).nullable(),
874
861
  startsAt: DateSchema.nullable(),
875
862
  endsAt: DateSchema.nullable(),
876
- support: z6.enum(["SUPPORTED", "UNSUPPORTED", "UNKNOWN"]),
877
- reasonCodes: z6.array(z6.string().min(1).max(64)).max(16)
863
+ support: z5.enum(["SUPPORTED", "UNSUPPORTED", "UNKNOWN"]),
864
+ reasonCodes: z5.array(z5.string().min(1).max(64)).max(16)
878
865
  }).refine(
879
866
  (v) => (v.startsAt === null || v.endsAt === null || Date.parse(v.startsAt) < Date.parse(v.endsAt)) && (v.method !== "AUTOMATIC" || v.code === null)
880
867
  );
881
- var condition = z6.strictObject({
882
- code: z6.string().min(1).max(64),
883
- description: z6.string().max(256)
868
+ var CommerceDiscountConditionFactsSchema = z5.strictObject({
869
+ provider: z5.enum(["SHOPIFY", "WOOCOMMERCE"]),
870
+ completeness: z5.enum(["COMPLETE", "PARTIAL", "UNKNOWN"]),
871
+ observedAt: DateSchema,
872
+ providerStatus: z5.string().max(64),
873
+ unavailableAt: DateSchema.nullable(),
874
+ discountKind: z5.enum([
875
+ "PERCENTAGE",
876
+ "FIXED_AMOUNT",
877
+ "FREE_SHIPPING",
878
+ "BUY_X_GET_Y",
879
+ "OTHER",
880
+ "UNKNOWN"
881
+ ]),
882
+ discountValue: MoneySchema.nullable(),
883
+ discountCurrency: CurrencySchema.nullable(),
884
+ targeting: z5.strictObject({
885
+ kind: z5.enum([
886
+ "ALL",
887
+ "PRODUCTS",
888
+ "VARIANTS",
889
+ "CATEGORIES",
890
+ "COLLECTIONS",
891
+ "MIXED",
892
+ "UNKNOWN"
893
+ ]),
894
+ includedProductIds: z5.array(IdSchema).max(128),
895
+ includedVariantIds: z5.array(IdSchema).max(128),
896
+ includedCategoryIds: z5.array(IdSchema).max(128),
897
+ includedCollectionIds: z5.array(IdSchema).max(128),
898
+ excludedProductIds: z5.array(IdSchema).max(128),
899
+ excludedVariantIds: z5.array(IdSchema).max(128),
900
+ excludedCategoryIds: z5.array(IdSchema).max(128),
901
+ excludedCollectionIds: z5.array(IdSchema).max(128)
902
+ }),
903
+ minimumSubtotal: MoneySchema.nullable(),
904
+ maximumSubtotal: MoneySchema.nullable(),
905
+ minimumQuantity: z5.number().int().nonnegative().nullable(),
906
+ usageLimit: z5.number().int().nonnegative().nullable(),
907
+ usageCount: z5.number().int().nonnegative().nullable(),
908
+ perCustomerLimit: z5.number().int().nonnegative().nullable(),
909
+ customerScope: z5.enum(["ALL", "RESTRICTED", "UNKNOWN"]),
910
+ excludesSaleItems: z5.boolean().nullable(),
911
+ individualUse: z5.boolean().nullable(),
912
+ unrepresentedConditions: z5.array(z5.string().min(1).max(128)).max(24)
913
+ });
914
+ var CommerceDiscountDetailsSchema = z5.strictObject({
915
+ offer: CommerceOfferSchema,
916
+ facts: CommerceDiscountConditionFactsSchema
884
917
  });
885
- var CommerceEvidenceSchema = z6.strictObject({
918
+ var condition = z5.strictObject({
919
+ code: z5.string().min(1).max(64),
920
+ description: z5.string().max(256)
921
+ });
922
+ var CommerceEvidenceSchema = z5.strictObject({
886
923
  evidenceId: HashSchema,
887
924
  turn: CommerceTurnIdentitySchema,
888
925
  grantId: IdSchema,
@@ -893,7 +930,7 @@ var CommerceEvidenceSchema = z6.strictObject({
893
930
  ruleFingerprint: HashSchema,
894
931
  evaluatedAt: DateSchema,
895
932
  expiresAt: DateSchema,
896
- outcome: z6.enum([
933
+ outcome: z5.enum([
897
934
  "QUALIFIES_FOR_KNOWN_RULES",
898
935
  "DOES_NOT_QUALIFY",
899
936
  "UNKNOWN",
@@ -902,8 +939,8 @@ var CommerceEvidenceSchema = z6.strictObject({
902
939
  currency: CurrencySchema.nullable(),
903
940
  savings: MoneySchema.nullable(),
904
941
  resultingTotal: MoneySchema.nullable(),
905
- evaluatedConditions: z6.array(condition).max(32),
906
- unresolvedConditions: z6.array(condition).max(32)
942
+ evaluatedConditions: z5.array(condition).max(32),
943
+ unresolvedConditions: z5.array(condition).max(32)
907
944
  }).superRefine((v, c) => {
908
945
  if (Date.parse(v.expiresAt) - Date.parse(v.evaluatedAt) > 6e4)
909
946
  c.addIssue({
@@ -913,16 +950,16 @@ var CommerceEvidenceSchema = z6.strictObject({
913
950
  if (v.outcome === "QUALIFIES_FOR_KNOWN_RULES" && (v.unresolvedConditions.length || Date.parse(v.expiresAt) <= Date.parse(v.evaluatedAt) || v.currency === null || v.savings === null || v.resultingTotal === null))
914
951
  c.addIssue({ code: "custom", message: "Unsupported qualifying claim" });
915
952
  });
916
- var CommerceAlternativeSchema = z6.strictObject({
953
+ var CommerceAlternativeSchema = z5.strictObject({
917
954
  product: CommerceProductSchema,
918
955
  proposal: CommerceProposalSchema,
919
956
  extraSpend: MoneySchema.nullable(),
920
957
  resultingTotal: MoneySchema.nullable(),
921
958
  currency: CurrencySchema.nullable(),
922
959
  evidence: CommerceEvidenceSchema.nullable(),
923
- similarityReasons: z6.array(z6.string().max(256)).max(3)
960
+ similarityReasons: z5.array(z5.string().max(256)).max(3)
924
961
  }).refine((v) => v.product.available === true);
925
- var CommerceErrorCodeSchema = z6.enum([
962
+ var CommerceErrorCodeSchema = z5.enum([
926
963
  "INVALID_INPUT",
927
964
  "DENIED",
928
965
  "STALE_TURN",
@@ -933,66 +970,81 @@ var CommerceErrorCodeSchema = z6.enum([
933
970
  "INCOMPATIBLE_VERSION"
934
971
  ]);
935
972
  function commerceToolResultSchema(data) {
936
- return z6.union([
937
- z6.strictObject({
973
+ return z5.union([
974
+ z5.strictObject({
938
975
  contractVersion: ContractVersionSchema,
939
- status: z6.literal("OK"),
976
+ status: z5.literal("OK"),
940
977
  data,
941
- renderedText: z6.string().max(4096)
978
+ renderedText: z5.string().max(4096)
942
979
  }),
943
- z6.strictObject({
980
+ z5.strictObject({
944
981
  contractVersion: ContractVersionSchema,
945
- status: z6.literal("ERROR"),
982
+ status: z5.literal("ERROR"),
946
983
  code: CommerceErrorCodeSchema,
947
- retryable: z6.boolean(),
948
- renderedText: z6.string().max(4096).optional()
984
+ retryable: z5.boolean(),
985
+ renderedText: z5.string().max(4096).optional()
949
986
  })
950
987
  ]);
951
988
  }
952
989
  var CommerceToolResultSchema = commerceToolResultSchema(
953
990
  boundedJson(262144)
954
991
  );
955
- var limit = z6.number().int().min(1).max(3).default(3);
992
+ var limit = z5.number().int().min(1).max(3).default(3);
956
993
  var CommerceToolInputs = {
957
- commerce_get_basket: z6.strictObject({}),
958
- commerce_search_products: z6.strictObject({
959
- query: z6.string().min(1).max(200),
994
+ commerce_get_basket: z5.strictObject({}),
995
+ commerce_search_products: z5.strictObject({
996
+ query: z5.string().min(1).max(200),
960
997
  maximumPrice: MoneySchema.optional(),
961
- availableOnly: z6.boolean().default(true),
962
- limit: z6.number().int().min(1).max(20).default(10),
963
- cursor: z6.string().max(2048).nullable().default(null)
998
+ availableOnly: z5.boolean().default(true),
999
+ limit: z5.number().int().min(1).max(20).default(10),
1000
+ cursor: z5.string().max(2048).nullable().default(null)
1001
+ }),
1002
+ commerce_get_product: z5.strictObject({
1003
+ productId: IdSchema,
1004
+ variantId: IdSchema.nullable()
964
1005
  }),
965
- commerce_get_discount_options: z6.strictObject({}),
966
- commerce_evaluate_discount: z6.strictObject({
1006
+ commerce_get_discount_options: z5.strictObject({
1007
+ limit: z5.number().int().min(1).max(50).default(20),
1008
+ cursor: z5.string().max(2048).nullable().default(null)
1009
+ }),
1010
+ commerce_get_discount_details: z5.strictObject({ offerId: IdSchema }),
1011
+ commerce_evaluate_discount: z5.strictObject({
967
1012
  offerId: IdSchema,
968
1013
  proposal: CommerceProposalSchema.nullable()
969
1014
  }),
970
- commerce_find_qualifying_products: z6.strictObject({
1015
+ commerce_find_qualifying_products: z5.strictObject({
971
1016
  offerId: IdSchema,
972
- query: z6.string().min(1).max(200).nullable(),
1017
+ query: z5.string().min(1).max(200).nullable(),
973
1018
  limit
974
1019
  }),
975
- commerce_find_similar_products: z6.strictObject({
1020
+ commerce_find_similar_products: z5.strictObject({
976
1021
  variantId: IdSchema,
977
1022
  offerId: IdSchema.nullable(),
978
1023
  limit
979
1024
  })
980
1025
  };
981
- var alternatives = z6.strictObject({
982
- alternatives: z6.array(CommerceAlternativeSchema).max(3),
983
- truncated: z6.boolean()
1026
+ var alternatives = z5.strictObject({
1027
+ alternatives: z5.array(CommerceAlternativeSchema).max(3),
1028
+ truncated: z5.boolean()
984
1029
  });
985
1030
  var CommerceToolOutputs = {
986
1031
  commerce_get_basket: CommerceBasketSchema,
987
- commerce_search_products: z6.strictObject({
988
- products: z6.array(CommerceProductSchema).max(20),
989
- cursor: z6.string().max(2048).nullable(),
990
- truncated: z6.boolean()
1032
+ commerce_search_products: z5.strictObject({
1033
+ products: z5.array(CommerceProductSchema).max(20),
1034
+ cursor: z5.string().max(2048).nullable(),
1035
+ truncated: z5.boolean()
1036
+ }),
1037
+ commerce_get_product: z5.strictObject({
1038
+ product: CommerceProductSchema.nullable()
991
1039
  }),
992
- commerce_get_discount_options: z6.strictObject({
993
- mode: z6.enum(["NONE", "FIXED", "AI_BEST_APPLICABLE"]),
994
- offers: z6.array(CommerceOfferSchema).max(50),
995
- truncated: z6.boolean()
1040
+ commerce_get_discount_options: z5.strictObject({
1041
+ mode: z5.enum(["NONE", "FIXED", "AI_BEST_APPLICABLE"]),
1042
+ offers: z5.array(CommerceOfferSchema).max(50),
1043
+ truncated: z5.boolean(),
1044
+ cursor: z5.string().max(2048).nullable().optional()
1045
+ }),
1046
+ commerce_get_discount_details: z5.strictObject({
1047
+ details: CommerceDiscountDetailsSchema.nullable()
996
1048
  }),
997
1049
  commerce_evaluate_discount: CommerceEvidenceSchema,
998
1050
  commerce_find_qualifying_products: alternatives,
@@ -1015,16 +1067,6 @@ export {
1015
1067
  DetailsSchemaSchema,
1016
1068
  matchesSubset,
1017
1069
  compileSubset,
1018
- ContractVersionSchema,
1019
- IdSchema,
1020
- SemverSchema,
1021
- HashSchema,
1022
- DateSchema,
1023
- MoneySchema,
1024
- CurrencySchema,
1025
- LanguageSchema,
1026
- distinct,
1027
- boundedJson,
1028
1070
  ExternalQueryValueSchema,
1029
1071
  ExternalQueryMappingSchema,
1030
1072
  ExternalQueryMappingsSchema,
@@ -1078,8 +1120,11 @@ export {
1078
1120
  CommerceAssertionSchema,
1079
1121
  CommerceProposalSchema,
1080
1122
  CommerceBasketSchema,
1123
+ CommerceProductSaleEvidenceSchema,
1081
1124
  CommerceProductSchema,
1082
1125
  CommerceOfferSchema,
1126
+ CommerceDiscountConditionFactsSchema,
1127
+ CommerceDiscountDetailsSchema,
1083
1128
  CommerceEvidenceSchema,
1084
1129
  CommerceAlternativeSchema,
1085
1130
  CommerceErrorCodeSchema,
@@ -1089,4 +1134,4 @@ export {
1089
1134
  CommerceToolOutputs,
1090
1135
  productBelongsToDomain
1091
1136
  };
1092
- //# sourceMappingURL=chunk-QJNZJACH.js.map
1137
+ //# sourceMappingURL=chunk-XTKCNFLQ.js.map