@modainteract/moda-interact-shared 3.1.0 → 5.0.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.
@@ -36,29 +36,116 @@ declare function matchesSubset(schema: SubsetSchema, value: unknown): boolean;
36
36
  declare function compileSubset(schema: SubsetSchema, mode: "input" | "details"): z.ZodCustom<Record<string, Json>, Record<string, Json>>;
37
37
 
38
38
  declare const ToolNameSchema: z.ZodString;
39
- declare const GrantedToolSchema: z.ZodObject<{
39
+ declare const PublishedGrantedToolSchema: z.ZodObject<{
40
40
  toolId: z.ZodString;
41
41
  toolRevisionId: z.ZodString;
42
42
  toolName: z.ZodString;
43
43
  definitionVersion: z.ZodString;
44
44
  capabilityKeys: z.ZodArray<z.ZodString>;
45
45
  }, z.core.$strict>;
46
- declare const GrantedToolsSchema: z.ZodArray<z.ZodObject<{
46
+ declare const PublishedToolDescriptorSchema: z.ZodObject<{
47
+ toolId: z.ZodString;
48
+ toolRevisionId: z.ZodString;
49
+ name: z.ZodString;
50
+ definitionVersion: z.ZodString;
51
+ description: z.ZodString;
52
+ inputSchema: z.ZodCustom<SubsetSchema, SubsetSchema>;
53
+ }, z.core.$strict>;
54
+ declare const CommerceBuiltInToolNameSchema: z.ZodEnum<{
55
+ commerce_get_discount_options: "commerce_get_discount_options";
56
+ commerce_get_discount_details: "commerce_get_discount_details";
57
+ }>;
58
+ declare const CommerceBuiltInToolGrantSchema: z.ZodObject<{
59
+ kind: z.ZodEnum<{
60
+ BUILT_IN: "BUILT_IN";
61
+ }>;
62
+ toolName: z.ZodEnum<{
63
+ commerce_get_discount_options: "commerce_get_discount_options";
64
+ commerce_get_discount_details: "commerce_get_discount_details";
65
+ }>;
66
+ definitionVersion: z.ZodEnum<{
67
+ "2.0.0": "2.0.0";
68
+ }>;
69
+ }, z.core.$strict>;
70
+ declare const CommerceBuiltInToolDescriptorSchema: z.ZodObject<{
71
+ kind: z.ZodEnum<{
72
+ BUILT_IN: "BUILT_IN";
73
+ }>;
74
+ name: z.ZodEnum<{
75
+ commerce_get_discount_options: "commerce_get_discount_options";
76
+ commerce_get_discount_details: "commerce_get_discount_details";
77
+ }>;
78
+ definitionVersion: z.ZodEnum<{
79
+ "2.0.0": "2.0.0";
80
+ }>;
81
+ description: z.ZodString;
82
+ inputSchema: z.ZodCustom<SubsetSchema, SubsetSchema>;
83
+ }, z.core.$strict>;
84
+ type PublishedGrantedTool = z.infer<typeof PublishedGrantedToolSchema>;
85
+ type PublishedToolDescriptor = z.infer<typeof PublishedToolDescriptorSchema>;
86
+ type CommerceBuiltInToolGrant = z.infer<typeof CommerceBuiltInToolGrantSchema>;
87
+ type CommerceBuiltInToolDescriptor = z.infer<typeof CommerceBuiltInToolDescriptorSchema>;
88
+ declare const GrantedToolSchema: z.ZodUnion<readonly [z.ZodObject<{
47
89
  toolId: z.ZodString;
48
90
  toolRevisionId: z.ZodString;
49
91
  toolName: z.ZodString;
50
92
  definitionVersion: z.ZodString;
51
93
  capabilityKeys: z.ZodArray<z.ZodString>;
52
- }, z.core.$strict>>;
53
- declare const ToolDescriptorSchema: z.ZodObject<{
94
+ }, z.core.$strict>, z.ZodObject<{
95
+ kind: z.ZodEnum<{
96
+ BUILT_IN: "BUILT_IN";
97
+ }>;
98
+ toolName: z.ZodEnum<{
99
+ commerce_get_discount_options: "commerce_get_discount_options";
100
+ commerce_get_discount_details: "commerce_get_discount_details";
101
+ }>;
102
+ definitionVersion: z.ZodEnum<{
103
+ "2.0.0": "2.0.0";
104
+ }>;
105
+ }, z.core.$strict>]>;
106
+ declare const ToolDescriptorSchema: z.ZodUnion<readonly [z.ZodObject<{
54
107
  toolId: z.ZodString;
55
108
  toolRevisionId: z.ZodString;
56
109
  name: z.ZodString;
57
110
  definitionVersion: z.ZodString;
58
111
  description: z.ZodString;
59
112
  inputSchema: z.ZodCustom<SubsetSchema, SubsetSchema>;
60
- }, z.core.$strict>;
61
- declare const POLICY_OPERATIONS: readonly ["recovery.getBasket", "shopify.searchProducts", "discounts.getOptions", "discounts.evaluate", "products.findQualifying", "products.findSimilar"];
113
+ }, z.core.$strict>, z.ZodObject<{
114
+ kind: z.ZodEnum<{
115
+ BUILT_IN: "BUILT_IN";
116
+ }>;
117
+ name: z.ZodEnum<{
118
+ commerce_get_discount_options: "commerce_get_discount_options";
119
+ commerce_get_discount_details: "commerce_get_discount_details";
120
+ }>;
121
+ definitionVersion: z.ZodEnum<{
122
+ "2.0.0": "2.0.0";
123
+ }>;
124
+ description: z.ZodString;
125
+ inputSchema: z.ZodCustom<SubsetSchema, SubsetSchema>;
126
+ }, z.core.$strict>]>;
127
+ declare const GrantedToolsSchema: z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
128
+ toolId: z.ZodString;
129
+ toolRevisionId: z.ZodString;
130
+ toolName: z.ZodString;
131
+ definitionVersion: z.ZodString;
132
+ capabilityKeys: z.ZodArray<z.ZodString>;
133
+ }, z.core.$strict>, z.ZodObject<{
134
+ kind: z.ZodEnum<{
135
+ BUILT_IN: "BUILT_IN";
136
+ }>;
137
+ toolName: z.ZodEnum<{
138
+ commerce_get_discount_options: "commerce_get_discount_options";
139
+ commerce_get_discount_details: "commerce_get_discount_details";
140
+ }>;
141
+ definitionVersion: z.ZodEnum<{
142
+ "2.0.0": "2.0.0";
143
+ }>;
144
+ }, z.core.$strict>]>>;
145
+ declare const isBuiltInTool: <T extends GrantedTool | ToolDescriptor>(value: T) => value is Extract<T, {
146
+ kind: "BUILT_IN";
147
+ }>;
148
+ declare const POLICY_OPERATIONS: readonly ["taxonomy.resolveCategories", "products.search", "products.get", "shipping.getInformation", "recovery.getBasket", "shopify.searchProducts", "discounts.getOptions", "discounts.evaluate", "products.findQualifying", "products.findSimilar"];
62
149
  declare const ExternalHttpExecutionSchema: z.ZodObject<{
63
150
  kind: z.ZodLiteral<"EXTERNAL_HTTP">;
64
151
  executorVersion: z.ZodLiteral<"1.0.0">;
@@ -141,6 +228,10 @@ declare const CommerceExecutionSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
141
228
  }, z.core.$strict>, z.ZodObject<{
142
229
  kind: z.ZodLiteral<"POLICY_OPERATION">;
143
230
  operation: z.ZodEnum<{
231
+ "taxonomy.resolveCategories": "taxonomy.resolveCategories";
232
+ "products.search": "products.search";
233
+ "products.get": "products.get";
234
+ "shipping.getInformation": "shipping.getInformation";
144
235
  "recovery.getBasket": "recovery.getBasket";
145
236
  "shopify.searchProducts": "shopify.searchProducts";
146
237
  "discounts.getOptions": "discounts.getOptions";
@@ -253,6 +344,10 @@ declare const CommerceToolDefinitionSchema: z.ZodObject<{
253
344
  }, z.core.$strict>, z.ZodObject<{
254
345
  kind: z.ZodLiteral<"POLICY_OPERATION">;
255
346
  operation: z.ZodEnum<{
347
+ "taxonomy.resolveCategories": "taxonomy.resolveCategories";
348
+ "products.search": "products.search";
349
+ "products.get": "products.get";
350
+ "shipping.getInformation": "shipping.getInformation";
256
351
  "recovery.getBasket": "recovery.getBasket";
257
352
  "shopify.searchProducts": "shopify.searchProducts";
258
353
  "discounts.getOptions": "discounts.getOptions";
@@ -433,7 +528,7 @@ declare function validateDefinitionForPublication(raw: unknown, compiler: Commer
433
528
  resultPath: string;
434
529
  } | {
435
530
  kind: "POLICY_OPERATION";
436
- operation: "recovery.getBasket" | "shopify.searchProducts" | "discounts.getOptions" | "discounts.evaluate" | "products.findQualifying" | "products.findSimilar";
531
+ operation: "taxonomy.resolveCategories" | "products.search" | "products.get" | "shipping.getInformation" | "recovery.getBasket" | "shopify.searchProducts" | "discounts.getOptions" | "discounts.evaluate" | "products.findQualifying" | "products.findSimilar";
437
532
  operationVersion: "1.0.0";
438
533
  arguments: Record<string, {
439
534
  input: string;
@@ -532,7 +627,7 @@ declare const toolHashInput: (definition: CommerceToolDefinition) => {
532
627
  resultPath: string;
533
628
  } | {
534
629
  kind: "POLICY_OPERATION";
535
- operation: "recovery.getBasket" | "shopify.searchProducts" | "discounts.getOptions" | "discounts.evaluate" | "products.findQualifying" | "products.findSimilar";
630
+ operation: "taxonomy.resolveCategories" | "products.search" | "products.get" | "shipping.getInformation" | "recovery.getBasket" | "shopify.searchProducts" | "discounts.getOptions" | "discounts.evaluate" | "products.findQualifying" | "products.findSimilar";
536
631
  operationVersion: "1.0.0";
537
632
  arguments: Record<string, {
538
633
  input: string;
@@ -571,7 +666,7 @@ declare const CommerceToolRevisionIdentitySchema: z.ZodObject<{
571
666
  contentHash: z.ZodString;
572
667
  }, z.core.$strict>;
573
668
  declare const POLICY_OPERATION_DESCRIPTORS: {
574
- operation: "recovery.getBasket" | "shopify.searchProducts" | "discounts.getOptions" | "discounts.evaluate" | "products.findQualifying" | "products.findSimilar";
669
+ operation: "taxonomy.resolveCategories" | "products.search" | "products.get" | "shipping.getInformation" | "recovery.getBasket" | "shopify.searchProducts" | "discounts.getOptions" | "discounts.evaluate" | "products.findQualifying" | "products.findSimilar";
575
670
  operationVersion: "1.0.0";
576
671
  }[];
577
672
 
@@ -590,13 +685,24 @@ declare const CommerceConversationGrantSchema: z.ZodObject<{
590
685
  initialInboundVersion: z.ZodNumber;
591
686
  releaseId: z.ZodString;
592
687
  selectedCapabilityKeys: z.ZodArray<z.ZodString>;
593
- grantedTools: z.ZodArray<z.ZodObject<{
688
+ grantedTools: z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
594
689
  toolId: z.ZodString;
595
690
  toolRevisionId: z.ZodString;
596
691
  toolName: z.ZodString;
597
692
  definitionVersion: z.ZodString;
598
693
  capabilityKeys: z.ZodArray<z.ZodString>;
599
- }, z.core.$strict>>;
694
+ }, z.core.$strict>, z.ZodObject<{
695
+ kind: z.ZodEnum<{
696
+ BUILT_IN: "BUILT_IN";
697
+ }>;
698
+ toolName: z.ZodEnum<{
699
+ commerce_get_discount_options: "commerce_get_discount_options";
700
+ commerce_get_discount_details: "commerce_get_discount_details";
701
+ }>;
702
+ definitionVersion: z.ZodEnum<{
703
+ "2.0.0": "2.0.0";
704
+ }>;
705
+ }, z.core.$strict>]>>;
600
706
  runnerVersion: z.ZodString;
601
707
  createdAt: z.ZodISODateTime;
602
708
  expiresAt: z.ZodNullable<z.ZodISODateTime>;
@@ -625,13 +731,38 @@ declare const CommerceManifestSchema: z.ZodObject<{
625
731
  behaviourPrompt: z.ZodString;
626
732
  }, z.core.$strict>>;
627
733
  selectedCapabilityKeys: z.ZodArray<z.ZodString>;
628
- grantedTools: z.ZodArray<z.ZodObject<{
734
+ builtInTools: z.ZodDefault<z.ZodArray<z.ZodObject<{
735
+ kind: z.ZodEnum<{
736
+ BUILT_IN: "BUILT_IN";
737
+ }>;
738
+ name: z.ZodEnum<{
739
+ commerce_get_discount_options: "commerce_get_discount_options";
740
+ commerce_get_discount_details: "commerce_get_discount_details";
741
+ }>;
742
+ definitionVersion: z.ZodEnum<{
743
+ "2.0.0": "2.0.0";
744
+ }>;
745
+ description: z.ZodString;
746
+ inputSchema: z.ZodCustom<SubsetSchema, SubsetSchema>;
747
+ }, z.core.$strict>>>;
748
+ grantedTools: z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
629
749
  toolId: z.ZodString;
630
750
  toolRevisionId: z.ZodString;
631
751
  toolName: z.ZodString;
632
752
  definitionVersion: z.ZodString;
633
753
  capabilityKeys: z.ZodArray<z.ZodString>;
634
- }, z.core.$strict>>;
754
+ }, z.core.$strict>, z.ZodObject<{
755
+ kind: z.ZodEnum<{
756
+ BUILT_IN: "BUILT_IN";
757
+ }>;
758
+ toolName: z.ZodEnum<{
759
+ commerce_get_discount_options: "commerce_get_discount_options";
760
+ commerce_get_discount_details: "commerce_get_discount_details";
761
+ }>;
762
+ definitionVersion: z.ZodEnum<{
763
+ "2.0.0": "2.0.0";
764
+ }>;
765
+ }, z.core.$strict>]>>;
635
766
  responseContract: z.ZodObject<{
636
767
  version: z.ZodLiteral<"response.v1">;
637
768
  instructions: z.ZodString;
@@ -745,8 +876,8 @@ declare const CommerceOfferSchema: z.ZodObject<{
745
876
  CODE: "CODE";
746
877
  }>;
747
878
  code: z.ZodNullable<z.ZodString>;
748
- startsAt: z.ZodNullable<z.ZodISODateTime>;
749
- endsAt: z.ZodNullable<z.ZodISODateTime>;
879
+ startsAt: z.ZodNullable<z.ZodString>;
880
+ endsAt: z.ZodNullable<z.ZodString>;
750
881
  support: z.ZodEnum<{
751
882
  SUPPORTED: "SUPPORTED";
752
883
  UNSUPPORTED: "UNSUPPORTED";
@@ -780,9 +911,9 @@ declare const CommerceDiscountConditionFactsSchema: z.ZodObject<{
780
911
  COMPLETE: "COMPLETE";
781
912
  PARTIAL: "PARTIAL";
782
913
  }>;
783
- observedAt: z.ZodISODateTime;
914
+ observedAt: z.ZodString;
784
915
  providerStatus: z.ZodString;
785
- unavailableAt: z.ZodNullable<z.ZodISODateTime>;
916
+ unavailableAt: z.ZodNullable<z.ZodString>;
786
917
  discountKind: z.ZodEnum<{
787
918
  UNKNOWN: "UNKNOWN";
788
919
  PERCENTAGE: "PERCENTAGE";
@@ -853,8 +984,8 @@ declare const CommerceDiscountDetailsSchema: z.ZodObject<{
853
984
  CODE: "CODE";
854
985
  }>;
855
986
  code: z.ZodNullable<z.ZodString>;
856
- startsAt: z.ZodNullable<z.ZodISODateTime>;
857
- endsAt: z.ZodNullable<z.ZodISODateTime>;
987
+ startsAt: z.ZodNullable<z.ZodString>;
988
+ endsAt: z.ZodNullable<z.ZodString>;
858
989
  support: z.ZodEnum<{
859
990
  SUPPORTED: "SUPPORTED";
860
991
  UNSUPPORTED: "UNSUPPORTED";
@@ -872,9 +1003,9 @@ declare const CommerceDiscountDetailsSchema: z.ZodObject<{
872
1003
  COMPLETE: "COMPLETE";
873
1004
  PARTIAL: "PARTIAL";
874
1005
  }>;
875
- observedAt: z.ZodISODateTime;
1006
+ observedAt: z.ZodString;
876
1007
  providerStatus: z.ZodString;
877
- unavailableAt: z.ZodNullable<z.ZodISODateTime>;
1008
+ unavailableAt: z.ZodNullable<z.ZodString>;
878
1009
  discountKind: z.ZodEnum<{
879
1010
  UNKNOWN: "UNKNOWN";
880
1011
  PERCENTAGE: "PERCENTAGE";
@@ -1123,10 +1254,179 @@ declare const CommerceToolResultSchema: z.ZodUnion<readonly [z.ZodObject<{
1123
1254
  renderedText: z.ZodOptional<z.ZodString>;
1124
1255
  }, z.core.$strict>]>;
1125
1256
  type CommerceToolResult = z.infer<typeof CommerceToolResultSchema>;
1257
+ declare const CommerceCategoryCandidateSchema: z.ZodObject<{
1258
+ categoryId: z.ZodString;
1259
+ name: z.ZodString;
1260
+ fullName: z.ZodString;
1261
+ parentId: z.ZodNullable<z.ZodString>;
1262
+ level: z.ZodNumber;
1263
+ ancestorIds: z.ZodArray<z.ZodString>;
1264
+ distance: z.ZodNumber;
1265
+ }, z.core.$strict>;
1266
+ type CommerceCategoryCandidate = z.infer<typeof CommerceCategoryCandidateSchema>;
1267
+ declare const CommerceCategoryResolutionSchema: z.ZodUnion<readonly [z.ZodObject<{
1268
+ outcome: z.ZodEnum<{
1269
+ CANDIDATES: "CANDIDATES";
1270
+ NO_CANDIDATES: "NO_CANDIDATES";
1271
+ }>;
1272
+ generationId: z.ZodString;
1273
+ source: z.ZodEnum<{
1274
+ SHOPIFY_STANDARD_PRODUCT_TAXONOMY: "SHOPIFY_STANDARD_PRODUCT_TAXONOMY";
1275
+ }>;
1276
+ taxonomyVersion: z.ZodString;
1277
+ languageTag: z.ZodString;
1278
+ candidates: z.ZodArray<z.ZodObject<{
1279
+ categoryId: z.ZodString;
1280
+ name: z.ZodString;
1281
+ fullName: z.ZodString;
1282
+ parentId: z.ZodNullable<z.ZodString>;
1283
+ level: z.ZodNumber;
1284
+ ancestorIds: z.ZodArray<z.ZodString>;
1285
+ distance: z.ZodNumber;
1286
+ }, z.core.$strict>>;
1287
+ }, z.core.$strict>, z.ZodObject<{
1288
+ outcome: z.ZodEnum<{
1289
+ UNAVAILABLE: "UNAVAILABLE";
1290
+ }>;
1291
+ reasonCode: z.ZodEnum<{
1292
+ NOT_READY: "NOT_READY";
1293
+ TEMPORARY_UNAVAILABLE: "TEMPORARY_UNAVAILABLE";
1294
+ }>;
1295
+ }, z.core.$strict>]>;
1296
+ type CommerceCategoryResolution = z.infer<typeof CommerceCategoryResolutionSchema>;
1297
+ declare const CommerceOptionalLookupUnavailableSchema: z.ZodObject<{
1298
+ outcome: z.ZodEnum<{
1299
+ UNAVAILABLE: "UNAVAILABLE";
1300
+ }>;
1301
+ reasonCode: z.ZodEnum<{
1302
+ TEMPORARY_UNAVAILABLE: "TEMPORARY_UNAVAILABLE";
1303
+ }>;
1304
+ }, z.core.$strict>;
1305
+ type CommerceOptionalLookupUnavailable = z.infer<typeof CommerceOptionalLookupUnavailableSchema>;
1306
+ declare const CommerceProductRecommendationSelectionSchema: z.ZodObject<{
1307
+ productRecommendationVersion: z.ZodOptional<z.ZodEnum<{
1308
+ 1: "1";
1309
+ }>>;
1310
+ productRecommendations: z.ZodOptional<z.ZodArray<z.ZodObject<{
1311
+ scope: z.ZodEnum<{
1312
+ PRODUCT_ONLY: "PRODUCT_ONLY";
1313
+ ADD_TO_BASKET: "ADD_TO_BASKET";
1314
+ REPLACE_BASKET_LINE: "REPLACE_BASKET_LINE";
1315
+ }>;
1316
+ basketLineId: z.ZodNullable<z.ZodString>;
1317
+ productId: z.ZodString;
1318
+ variantId: z.ZodNullable<z.ZodString>;
1319
+ quantity: z.ZodNumber;
1320
+ promotionKind: z.ZodEnum<{
1321
+ NONE: "NONE";
1322
+ NATIVE_SALE: "NATIVE_SALE";
1323
+ DISCOUNT: "DISCOUNT";
1324
+ }>;
1325
+ offerIds: z.ZodArray<z.ZodString>;
1326
+ }, z.core.$strict>>>;
1327
+ }, z.core.$strict>;
1328
+ type CommerceProductRecommendationSelection = z.infer<typeof CommerceProductRecommendationSelectionSchema>;
1329
+ declare const CommerceResponseDispositionSchema: z.ZodEnum<{
1330
+ STANDARD: "STANDARD";
1331
+ OUT_OF_SCOPE_REDIRECT: "OUT_OF_SCOPE_REDIRECT";
1332
+ SHIPPING_INFORMATION_UNVERIFIED: "SHIPPING_INFORMATION_UNVERIFIED";
1333
+ }>;
1334
+ type CommerceResponseDisposition = z.infer<typeof CommerceResponseDispositionSchema>;
1335
+ declare const CommerceAnswerPresentationSelectionSchema: z.ZodObject<{
1336
+ responseDisposition: z.ZodOptional<z.ZodEnum<{
1337
+ STANDARD: "STANDARD";
1338
+ OUT_OF_SCOPE_REDIRECT: "OUT_OF_SCOPE_REDIRECT";
1339
+ SHIPPING_INFORMATION_UNVERIFIED: "SHIPPING_INFORMATION_UNVERIFIED";
1340
+ }>>;
1341
+ shippingInformationSelection: z.ZodOptional<z.ZodObject<{
1342
+ productId: z.ZodNullable<z.ZodString>;
1343
+ variantId: z.ZodNullable<z.ZodString>;
1344
+ }, z.core.$strict>>;
1345
+ }, z.core.$strict>;
1346
+ type CommerceAnswerPresentationSelection = z.infer<typeof CommerceAnswerPresentationSelectionSchema>;
1347
+ declare const CommerceShippingInformationInputSchema: z.ZodObject<{
1348
+ productId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
1349
+ variantId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
1350
+ }, z.core.$strict>;
1351
+ type CommerceShippingInformationInput = z.infer<typeof CommerceShippingInformationInputSchema>;
1352
+ declare const CommerceShippingInformationSchema: z.ZodObject<{
1353
+ provider: z.ZodEnum<{
1354
+ SHOPIFY: "SHOPIFY";
1355
+ WOOCOMMERCE: "WOOCOMMERCE";
1356
+ }>;
1357
+ observedAt: z.ZodISODateTime;
1358
+ product: z.ZodObject<{
1359
+ status: z.ZodEnum<{
1360
+ NOT_REQUESTED: "NOT_REQUESTED";
1361
+ VARIANT_REQUIRED: "VARIANT_REQUIRED";
1362
+ AVAILABLE: "AVAILABLE";
1363
+ }>;
1364
+ productId: z.ZodNullable<z.ZodString>;
1365
+ variantId: z.ZodNullable<z.ZodString>;
1366
+ requiresShipping: z.ZodNullable<z.ZodBoolean>;
1367
+ virtual: z.ZodNullable<z.ZodBoolean>;
1368
+ weight: z.ZodNullable<z.ZodObject<{
1369
+ value: z.ZodNumber;
1370
+ unit: z.ZodNullable<z.ZodEnum<{
1371
+ GRAMS: "GRAMS";
1372
+ KILOGRAMS: "KILOGRAMS";
1373
+ OUNCES: "OUNCES";
1374
+ POUNDS: "POUNDS";
1375
+ }>>;
1376
+ }, z.core.$strict>>;
1377
+ dimensions: z.ZodNullable<z.ZodObject<{
1378
+ length: z.ZodNullable<z.ZodNumber>;
1379
+ width: z.ZodNullable<z.ZodNumber>;
1380
+ height: z.ZodNullable<z.ZodNumber>;
1381
+ unit: z.ZodNullable<z.ZodString>;
1382
+ }, z.core.$strict>>;
1383
+ shippingClassId: z.ZodNullable<z.ZodString>;
1384
+ shippingClassSlug: z.ZodNullable<z.ZodString>;
1385
+ }, z.core.$strict>;
1386
+ policy: z.ZodObject<{
1387
+ status: z.ZodEnum<{
1388
+ UNSUPPORTED: "UNSUPPORTED";
1389
+ AVAILABLE: "AVAILABLE";
1390
+ NOT_CONFIGURED: "NOT_CONFIGURED";
1391
+ SCOPE_NOT_GRANTED: "SCOPE_NOT_GRANTED";
1392
+ }>;
1393
+ trust: z.ZodEnum<{
1394
+ UNTRUSTED_REFERENCE: "UNTRUSTED_REFERENCE";
1395
+ }>;
1396
+ title: z.ZodNullable<z.ZodString>;
1397
+ bodyStatus: z.ZodEnum<{
1398
+ AVAILABLE: "AVAILABLE";
1399
+ EMPTY: "EMPTY";
1400
+ TOO_LARGE: "TOO_LARGE";
1401
+ NOT_AVAILABLE: "NOT_AVAILABLE";
1402
+ }>;
1403
+ bodyHtml: z.ZodNullable<z.ZodString>;
1404
+ url: z.ZodNullable<z.ZodURL>;
1405
+ updatedAt: z.ZodNullable<z.ZodISODateTime>;
1406
+ }, z.core.$strict>;
1407
+ }, z.core.$strict>;
1408
+ type CommerceShippingInformation = z.infer<typeof CommerceShippingInformationSchema>;
1126
1409
  declare const CommerceToolInputs: {
1410
+ commerce_resolve_product_categories: z.ZodObject<{
1411
+ query: z.ZodString;
1412
+ limit: z.ZodDefault<z.ZodNumber>;
1413
+ }, z.core.$strict>;
1414
+ commerce_get_shipping_information: z.ZodObject<{
1415
+ productId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
1416
+ variantId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
1417
+ }, z.core.$strict>;
1127
1418
  commerce_get_basket: z.ZodObject<{}, z.core.$strict>;
1128
1419
  commerce_search_products: z.ZodObject<{
1129
- query: z.ZodString;
1420
+ query: z.ZodDefault<z.ZodNullable<z.ZodString>>;
1421
+ category: z.ZodOptional<z.ZodObject<{
1422
+ system: z.ZodEnum<{
1423
+ SHOPIFY_STANDARD_PRODUCT_TAXONOMY: "SHOPIFY_STANDARD_PRODUCT_TAXONOMY";
1424
+ WOOCOMMERCE_PRODUCT_CATEGORY: "WOOCOMMERCE_PRODUCT_CATEGORY";
1425
+ }>;
1426
+ id: z.ZodString;
1427
+ taxonomyVersion: z.ZodNullable<z.ZodString>;
1428
+ }, z.core.$strict>>;
1429
+ browse: z.ZodDefault<z.ZodBoolean>;
1130
1430
  maximumPrice: z.ZodOptional<z.ZodString>;
1131
1431
  availableOnly: z.ZodDefault<z.ZodBoolean>;
1132
1432
  limit: z.ZodDefault<z.ZodNumber>;
@@ -1170,6 +1470,91 @@ declare const CommerceToolInputs: {
1170
1470
  }, z.core.$strict>;
1171
1471
  };
1172
1472
  declare const CommerceToolOutputs: {
1473
+ commerce_resolve_product_categories: z.ZodUnion<readonly [z.ZodObject<{
1474
+ outcome: z.ZodEnum<{
1475
+ CANDIDATES: "CANDIDATES";
1476
+ NO_CANDIDATES: "NO_CANDIDATES";
1477
+ }>;
1478
+ generationId: z.ZodString;
1479
+ source: z.ZodEnum<{
1480
+ SHOPIFY_STANDARD_PRODUCT_TAXONOMY: "SHOPIFY_STANDARD_PRODUCT_TAXONOMY";
1481
+ }>;
1482
+ taxonomyVersion: z.ZodString;
1483
+ languageTag: z.ZodString;
1484
+ candidates: z.ZodArray<z.ZodObject<{
1485
+ categoryId: z.ZodString;
1486
+ name: z.ZodString;
1487
+ fullName: z.ZodString;
1488
+ parentId: z.ZodNullable<z.ZodString>;
1489
+ level: z.ZodNumber;
1490
+ ancestorIds: z.ZodArray<z.ZodString>;
1491
+ distance: z.ZodNumber;
1492
+ }, z.core.$strict>>;
1493
+ }, z.core.$strict>, z.ZodObject<{
1494
+ outcome: z.ZodEnum<{
1495
+ UNAVAILABLE: "UNAVAILABLE";
1496
+ }>;
1497
+ reasonCode: z.ZodEnum<{
1498
+ NOT_READY: "NOT_READY";
1499
+ TEMPORARY_UNAVAILABLE: "TEMPORARY_UNAVAILABLE";
1500
+ }>;
1501
+ }, z.core.$strict>]>;
1502
+ commerce_get_shipping_information: z.ZodObject<{
1503
+ provider: z.ZodEnum<{
1504
+ SHOPIFY: "SHOPIFY";
1505
+ WOOCOMMERCE: "WOOCOMMERCE";
1506
+ }>;
1507
+ observedAt: z.ZodISODateTime;
1508
+ product: z.ZodObject<{
1509
+ status: z.ZodEnum<{
1510
+ NOT_REQUESTED: "NOT_REQUESTED";
1511
+ VARIANT_REQUIRED: "VARIANT_REQUIRED";
1512
+ AVAILABLE: "AVAILABLE";
1513
+ }>;
1514
+ productId: z.ZodNullable<z.ZodString>;
1515
+ variantId: z.ZodNullable<z.ZodString>;
1516
+ requiresShipping: z.ZodNullable<z.ZodBoolean>;
1517
+ virtual: z.ZodNullable<z.ZodBoolean>;
1518
+ weight: z.ZodNullable<z.ZodObject<{
1519
+ value: z.ZodNumber;
1520
+ unit: z.ZodNullable<z.ZodEnum<{
1521
+ GRAMS: "GRAMS";
1522
+ KILOGRAMS: "KILOGRAMS";
1523
+ OUNCES: "OUNCES";
1524
+ POUNDS: "POUNDS";
1525
+ }>>;
1526
+ }, z.core.$strict>>;
1527
+ dimensions: z.ZodNullable<z.ZodObject<{
1528
+ length: z.ZodNullable<z.ZodNumber>;
1529
+ width: z.ZodNullable<z.ZodNumber>;
1530
+ height: z.ZodNullable<z.ZodNumber>;
1531
+ unit: z.ZodNullable<z.ZodString>;
1532
+ }, z.core.$strict>>;
1533
+ shippingClassId: z.ZodNullable<z.ZodString>;
1534
+ shippingClassSlug: z.ZodNullable<z.ZodString>;
1535
+ }, z.core.$strict>;
1536
+ policy: z.ZodObject<{
1537
+ status: z.ZodEnum<{
1538
+ UNSUPPORTED: "UNSUPPORTED";
1539
+ AVAILABLE: "AVAILABLE";
1540
+ NOT_CONFIGURED: "NOT_CONFIGURED";
1541
+ SCOPE_NOT_GRANTED: "SCOPE_NOT_GRANTED";
1542
+ }>;
1543
+ trust: z.ZodEnum<{
1544
+ UNTRUSTED_REFERENCE: "UNTRUSTED_REFERENCE";
1545
+ }>;
1546
+ title: z.ZodNullable<z.ZodString>;
1547
+ bodyStatus: z.ZodEnum<{
1548
+ AVAILABLE: "AVAILABLE";
1549
+ EMPTY: "EMPTY";
1550
+ TOO_LARGE: "TOO_LARGE";
1551
+ NOT_AVAILABLE: "NOT_AVAILABLE";
1552
+ }>;
1553
+ bodyHtml: z.ZodNullable<z.ZodString>;
1554
+ url: z.ZodNullable<z.ZodURL>;
1555
+ updatedAt: z.ZodNullable<z.ZodISODateTime>;
1556
+ }, z.core.$strict>;
1557
+ }, z.core.$strict>;
1173
1558
  commerce_get_basket: z.ZodObject<{
1174
1559
  basketId: z.ZodString;
1175
1560
  source: z.ZodEnum<{
@@ -1236,7 +1621,14 @@ declare const CommerceToolOutputs: {
1236
1621
  observedAt: z.ZodISODateTime;
1237
1622
  }, z.core.$strict>>;
1238
1623
  }, z.core.$strict>;
1239
- commerce_get_discount_options: z.ZodObject<{
1624
+ commerce_get_discount_options: z.ZodUnion<readonly [z.ZodObject<{
1625
+ outcome: z.ZodEnum<{
1626
+ UNAVAILABLE: "UNAVAILABLE";
1627
+ }>;
1628
+ reasonCode: z.ZodEnum<{
1629
+ TEMPORARY_UNAVAILABLE: "TEMPORARY_UNAVAILABLE";
1630
+ }>;
1631
+ }, z.core.$strict>, z.ZodObject<{
1240
1632
  mode: z.ZodEnum<{
1241
1633
  NONE: "NONE";
1242
1634
  FIXED: "FIXED";
@@ -1250,8 +1642,8 @@ declare const CommerceToolOutputs: {
1250
1642
  CODE: "CODE";
1251
1643
  }>;
1252
1644
  code: z.ZodNullable<z.ZodString>;
1253
- startsAt: z.ZodNullable<z.ZodISODateTime>;
1254
- endsAt: z.ZodNullable<z.ZodISODateTime>;
1645
+ startsAt: z.ZodNullable<z.ZodString>;
1646
+ endsAt: z.ZodNullable<z.ZodString>;
1255
1647
  support: z.ZodEnum<{
1256
1648
  SUPPORTED: "SUPPORTED";
1257
1649
  UNSUPPORTED: "UNSUPPORTED";
@@ -1261,8 +1653,15 @@ declare const CommerceToolOutputs: {
1261
1653
  }, z.core.$strict>>;
1262
1654
  truncated: z.ZodBoolean;
1263
1655
  cursor: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1264
- }, z.core.$strict>;
1265
- commerce_get_discount_details: z.ZodObject<{
1656
+ }, z.core.$strict>]>;
1657
+ commerce_get_discount_details: z.ZodUnion<readonly [z.ZodObject<{
1658
+ outcome: z.ZodEnum<{
1659
+ UNAVAILABLE: "UNAVAILABLE";
1660
+ }>;
1661
+ reasonCode: z.ZodEnum<{
1662
+ TEMPORARY_UNAVAILABLE: "TEMPORARY_UNAVAILABLE";
1663
+ }>;
1664
+ }, z.core.$strict>, z.ZodObject<{
1266
1665
  details: z.ZodNullable<z.ZodObject<{
1267
1666
  offer: z.ZodObject<{
1268
1667
  offerId: z.ZodString;
@@ -1272,8 +1671,8 @@ declare const CommerceToolOutputs: {
1272
1671
  CODE: "CODE";
1273
1672
  }>;
1274
1673
  code: z.ZodNullable<z.ZodString>;
1275
- startsAt: z.ZodNullable<z.ZodISODateTime>;
1276
- endsAt: z.ZodNullable<z.ZodISODateTime>;
1674
+ startsAt: z.ZodNullable<z.ZodString>;
1675
+ endsAt: z.ZodNullable<z.ZodString>;
1277
1676
  support: z.ZodEnum<{
1278
1677
  SUPPORTED: "SUPPORTED";
1279
1678
  UNSUPPORTED: "UNSUPPORTED";
@@ -1291,9 +1690,9 @@ declare const CommerceToolOutputs: {
1291
1690
  COMPLETE: "COMPLETE";
1292
1691
  PARTIAL: "PARTIAL";
1293
1692
  }>;
1294
- observedAt: z.ZodISODateTime;
1693
+ observedAt: z.ZodString;
1295
1694
  providerStatus: z.ZodString;
1296
- unavailableAt: z.ZodNullable<z.ZodISODateTime>;
1695
+ unavailableAt: z.ZodNullable<z.ZodString>;
1297
1696
  discountKind: z.ZodEnum<{
1298
1697
  UNKNOWN: "UNKNOWN";
1299
1698
  PERCENTAGE: "PERCENTAGE";
@@ -1356,7 +1755,7 @@ declare const CommerceToolOutputs: {
1356
1755
  }, z.core.$strict>;
1357
1756
  providerDiscountId: z.ZodNullable<z.ZodString>;
1358
1757
  }, z.core.$strict>>;
1359
- }, z.core.$strict>;
1758
+ }, z.core.$strict>]>;
1360
1759
  commerce_evaluate_discount: z.ZodObject<{
1361
1760
  evidenceId: z.ZodString;
1362
1761
  turn: z.ZodObject<{
@@ -1638,4 +2037,4 @@ declare function verifyResponseContract(definition: unknown, hash: string, diges
1638
2037
  /** JSON Schema branches retain the immutable envelope; only ANSWER details vary. */
1639
2038
  declare function finalResponseToolSchema(definition: CommerceResponseContract): Json;
1640
2039
 
1641
- export { type Json as $, CommerceProductSchema as A, CommerceProposalSchema as B, type CommerceTurnIdentity as C, type Digest as D, CommerceReleaseIdentitySchema as E, CommerceResolveAssertionSchema as F, type GrantedTool as G, type CommerceResponseContract as H, CommerceResponseContractSchema as I, CommerceToolDefinitionSchema as J, type CommerceToolDraftDefinition as K, CommerceToolDraftDefinitionSchema as L, CommerceToolIdentitySchema as M, CommerceToolInputs as N, CommerceToolOutputs as O, CommerceToolResultSchema as P, CommerceToolRevisionIdentitySchema as Q, CommerceTurnIdentitySchema as R, type SubsetSchema as S, type ToolDescriptor as T, DetailsSchemaSchema as U, EMPTY_RESPONSE_CONTRACT as V, type ExternalHttpExecution as W, ExternalHttpExecutionSchema as X, GrantedToolSchema as Y, GrantedToolsSchema as Z, InputSchemaSchema as _, type CommerceConversationGrant as a, MONEY_PATTERN as a0, POLICY_OPERATIONS as a1, POLICY_OPERATION_DESCRIPTORS as a2, ReferralReasonSchema as a3, ResponseTemplateSchema as a4, ToolDescriptorSchema as a5, ToolNameSchema as a6, canonicalJson as a7, commerceToolResultSchema as a8, compileSubset as a9, definitionToMcpDescriptor as aa, finalResponseSchema as ab, finalResponseToolSchema as ac, jsonBytes as ad, mapToolArguments as ae, matchesSubset as af, productBelongsToDomain as ag, responseContractCanonicalJson as ah, safeName as ai, safePath as aj, toolHashInput as ak, validateDefinitionForPublication as al, validateDefinitionVersion as am, validateSubset as an, verifyResponseContract as ao, type CommerceManifest as b, type CommerceToolResult as c, type CommerceFinalResponse as d, type CommerceToolDefinition as e, CommerceAlternativeSchema as f, CommerceAssertionSchema as g, CommerceBasketSchema as h, CommerceConversationGrantSchema as i, type CommerceDefinitionCompiler as j, type CommerceDiscountCombinationFacts as k, CommerceDiscountCombinationFactsSchema as l, type CommerceDiscountConditionFacts as m, CommerceDiscountConditionFactsSchema as n, type CommerceDiscountDetails as o, CommerceDiscountDetailsSchema as p, CommerceErrorCodeSchema as q, type CommerceEvidence as r, CommerceEvidenceSchema as s, CommerceExecuteAssertionSchema as t, CommerceExecutionSchema as u, CommerceFinalResponseSchema as v, CommerceManifestSchema as w, CommerceOfferSchema as x, type CommerceProductSaleEvidence as y, CommerceProductSaleEvidenceSchema as z };
2040
+ export { type CommerceResponseDisposition as $, CommerceDiscountDetailsSchema as A, CommerceErrorCodeSchema as B, type CommerceTurnIdentity as C, type Digest as D, type CommerceEvidence as E, CommerceEvidenceSchema as F, type GrantedTool as G, CommerceExecuteAssertionSchema as H, CommerceExecutionSchema as I, CommerceFinalResponseSchema as J, CommerceManifestSchema as K, CommerceOfferSchema as L, type CommerceOptionalLookupUnavailable as M, CommerceOptionalLookupUnavailableSchema as N, type CommerceProductRecommendationSelection as O, type PublishedToolDescriptor as P, CommerceProductRecommendationSelectionSchema as Q, type CommerceProductSaleEvidence as R, type SubsetSchema as S, type ToolDescriptor as T, CommerceProductSaleEvidenceSchema as U, CommerceProductSchema as V, CommerceProposalSchema as W, CommerceReleaseIdentitySchema as X, CommerceResolveAssertionSchema as Y, type CommerceResponseContract as Z, CommerceResponseContractSchema as _, type CommerceConversationGrant as a, CommerceResponseDispositionSchema as a0, type CommerceShippingInformation as a1, type CommerceShippingInformationInput as a2, CommerceShippingInformationInputSchema as a3, CommerceShippingInformationSchema as a4, CommerceToolDefinitionSchema as a5, type CommerceToolDraftDefinition as a6, CommerceToolDraftDefinitionSchema as a7, CommerceToolIdentitySchema as a8, CommerceToolInputs as a9, finalResponseSchema as aA, finalResponseToolSchema as aB, isBuiltInTool as aC, jsonBytes as aD, mapToolArguments as aE, matchesSubset as aF, productBelongsToDomain as aG, responseContractCanonicalJson as aH, safeName as aI, safePath as aJ, toolHashInput as aK, validateDefinitionForPublication as aL, validateDefinitionVersion as aM, validateSubset as aN, verifyResponseContract as aO, CommerceToolOutputs as aa, CommerceToolResultSchema as ab, CommerceToolRevisionIdentitySchema as ac, CommerceTurnIdentitySchema as ad, DetailsSchemaSchema as ae, EMPTY_RESPONSE_CONTRACT as af, type ExternalHttpExecution as ag, ExternalHttpExecutionSchema as ah, GrantedToolSchema as ai, GrantedToolsSchema as aj, InputSchemaSchema as ak, type Json as al, MONEY_PATTERN as am, POLICY_OPERATIONS as an, POLICY_OPERATION_DESCRIPTORS as ao, type PublishedGrantedTool as ap, PublishedGrantedToolSchema as aq, PublishedToolDescriptorSchema as ar, ReferralReasonSchema as as, ResponseTemplateSchema as at, ToolDescriptorSchema as au, ToolNameSchema as av, canonicalJson as aw, commerceToolResultSchema as ax, compileSubset as ay, definitionToMcpDescriptor as az, type CommerceManifest as b, type CommerceToolResult as c, type CommerceFinalResponse as d, type CommerceBuiltInToolDescriptor as e, type CommerceToolDefinition as f, type CommerceBuiltInToolGrant as g, CommerceAlternativeSchema as h, type CommerceAnswerPresentationSelection as i, CommerceAnswerPresentationSelectionSchema as j, CommerceAssertionSchema as k, CommerceBasketSchema as l, CommerceBuiltInToolDescriptorSchema as m, CommerceBuiltInToolGrantSchema as n, CommerceBuiltInToolNameSchema as o, type CommerceCategoryCandidate as p, CommerceCategoryCandidateSchema as q, type CommerceCategoryResolution as r, CommerceCategoryResolutionSchema as s, CommerceConversationGrantSchema as t, type CommerceDefinitionCompiler as u, type CommerceDiscountCombinationFacts as v, CommerceDiscountCombinationFactsSchema as w, type CommerceDiscountConditionFacts as x, CommerceDiscountConditionFactsSchema as y, type CommerceDiscountDetails as z };
@@ -1,4 +1,4 @@
1
- import { C as CommerceTurnIdentity, a as CommerceConversationGrant, b as CommerceManifest, T as ToolDescriptor, G as GrantedTool, c as CommerceToolResult, D as Digest, d as CommerceFinalResponse } from './response-CAw8y5nS.js';
1
+ import { C as CommerceTurnIdentity, a as CommerceConversationGrant, b as CommerceManifest, T as ToolDescriptor, G as GrantedTool, c as CommerceToolResult, D as Digest, d as CommerceFinalResponse } from './response-DUOmPh9C.js';
2
2
  import { S as StructuredLogger } from './types-B32wDMLO.js';
3
3
 
4
4
  /** Finite, non-customer-facing failure taxonomy for Commerce hosts and logs. */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@modainteract/moda-interact-shared",
3
- "version": "3.1.0",
3
+ "version": "5.0.0",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -154,7 +154,8 @@
154
154
  "validate:arch023-shared-entrypoints": "npm run build && node scripts/validate-arch023-shared-entrypoints.mjs",
155
155
  "validate:arch024-model-entrypoints": "npm run build && node scripts/validate-arch024-model-entrypoints.mjs",
156
156
  "test:arch033-incidents:postgres": "node scripts/test-arch033-incidents-postgres.mjs",
157
- "validate:arch047-whatsapp-template-events": "node scripts/validate-whatsapp-template-events-entrypoint.mjs"
157
+ "validate:arch047-whatsapp-template-events": "node scripts/validate-whatsapp-template-events-entrypoint.mjs",
158
+ "test:product-discovery-contracts": "tsx --test src/commerce/product-discovery-contracts.test.ts src/commerce/product-discovery-projection.test.ts src/commerce/runner/built-in-tools.test.ts src/commerce/runner/runner.test.ts"
158
159
  },
159
160
  "dependencies": {
160
161
  "@opentelemetry/api": "^1.9.0",