@open-mercato/cli 0.6.7-develop.6795.1.8a3f27921c → 0.6.7-develop.6824.1.21fff90682

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 (102) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/build.mjs +1 -1
  3. package/dist/agentic/guides/module-facts.json +90266 -20749
  4. package/dist/agentic/guides/modules/ai_assistant.md +170 -60
  5. package/dist/agentic/guides/modules/api_docs.md +26 -1
  6. package/dist/agentic/guides/modules/api_keys.md +57 -17
  7. package/dist/agentic/guides/modules/attachments.md +72 -19
  8. package/dist/agentic/guides/modules/audit_logs.md +95 -29
  9. package/dist/agentic/guides/modules/auth.md +218 -83
  10. package/dist/agentic/guides/modules/business_rules.md +108 -34
  11. package/dist/agentic/guides/modules/catalog.md +386 -157
  12. package/dist/agentic/guides/modules/channel_gmail.md +55 -6
  13. package/dist/agentic/guides/modules/channel_imap.md +55 -6
  14. package/dist/agentic/guides/modules/checkout.md +254 -129
  15. package/dist/agentic/guides/modules/communication_channels.md +280 -109
  16. package/dist/agentic/guides/modules/configs.md +68 -11
  17. package/dist/agentic/guides/modules/content.md +26 -1
  18. package/dist/agentic/guides/modules/currencies.md +109 -44
  19. package/dist/agentic/guides/modules/customer_accounts.md +350 -156
  20. package/dist/agentic/guides/modules/customers.md +642 -294
  21. package/dist/agentic/guides/modules/dashboards.md +122 -28
  22. package/dist/agentic/guides/modules/data_sync.md +117 -37
  23. package/dist/agentic/guides/modules/design_system.md +36 -2
  24. package/dist/agentic/guides/modules/dictionaries.md +78 -20
  25. package/dist/agentic/guides/modules/directory.md +110 -45
  26. package/dist/agentic/guides/modules/entities.md +95 -38
  27. package/dist/agentic/guides/modules/events.md +31 -1
  28. package/dist/agentic/guides/modules/feature_toggles.md +79 -12
  29. package/dist/agentic/guides/modules/gateway_stripe.md +61 -6
  30. package/dist/agentic/guides/modules/generators.md +17 -1
  31. package/dist/agentic/guides/modules/inbox_ops.md +171 -60
  32. package/dist/agentic/guides/modules/integrations.md +116 -30
  33. package/dist/agentic/guides/modules/messages.md +187 -66
  34. package/dist/agentic/guides/modules/notifications.md +64 -9
  35. package/dist/agentic/guides/modules/onboarding.md +47 -8
  36. package/dist/agentic/guides/modules/payment_gateways.md +133 -48
  37. package/dist/agentic/guides/modules/perspectives.md +50 -12
  38. package/dist/agentic/guides/modules/planner.md +102 -32
  39. package/dist/agentic/guides/modules/portal.md +58 -15
  40. package/dist/agentic/guides/modules/progress.md +78 -30
  41. package/dist/agentic/guides/modules/query_index.md +115 -53
  42. package/dist/agentic/guides/modules/record_locks.md +178 -59
  43. package/dist/agentic/guides/modules/resources.md +155 -78
  44. package/dist/agentic/guides/modules/sales.md +620 -257
  45. package/dist/agentic/guides/modules/scheduler.md +95 -19
  46. package/dist/agentic/guides/modules/search.md +124 -20
  47. package/dist/agentic/guides/modules/security.md +251 -105
  48. package/dist/agentic/guides/modules/shipping_carriers.md +106 -37
  49. package/dist/agentic/guides/modules/sso.md +121 -49
  50. package/dist/agentic/guides/modules/staff.md +314 -126
  51. package/dist/agentic/guides/modules/storage_s3.md +55 -6
  52. package/dist/agentic/guides/modules/sync_akeneo.md +54 -4
  53. package/dist/agentic/guides/modules/sync_excel.md +49 -11
  54. package/dist/agentic/guides/modules/system_status_overlays.md +33 -5
  55. package/dist/agentic/guides/modules/translations.md +76 -21
  56. package/dist/agentic/guides/modules/webhooks.md +166 -82
  57. package/dist/agentic/guides/modules/wms.md +383 -223
  58. package/dist/agentic/guides/modules/workflows.md +248 -112
  59. package/dist/agentic/guides/upstream/AGENTS.md +1 -1
  60. package/dist/agentic/guides/upstream/BACKWARD_COMPATIBILITY.md +2 -0
  61. package/dist/agentic/guides/upstream/manifest.json +3 -3
  62. package/dist/agentic/shared/AGENTS.md.template +6 -5
  63. package/dist/agentic/shared/ai/harness/README.md +2 -2
  64. package/dist/agentic/shared/ai/harness/RELEASE.md +4 -4
  65. package/dist/agentic/shared/ai/harness/cases.json +94 -1
  66. package/dist/agentic/shared/ai/harness/cases.schema.json +3 -3
  67. package/dist/agentic/shared/ai/harness/validators.json +1 -1
  68. package/dist/agentic/shared/ai/lessons/_template.md +16 -0
  69. package/dist/agentic/shared/ai/lessons.md +26 -3
  70. package/dist/agentic/shared/ai/skills/om-evolve-harness/SKILL.md +7 -6
  71. package/dist/agentic/shared/ai/skills/om-system-extension/SKILL.md +1 -1
  72. package/dist/agentic/shared/ai/skills/om-system-extension/references/unified-overrides.md +4 -2
  73. package/dist/agentic/shared/scripts/check-lessons.mjs +178 -0
  74. package/dist/agentic/shared/scripts/evaluate-agent-harness.mjs +37 -12
  75. package/dist/lib/agentic-setup.js +2 -2
  76. package/dist/lib/agentic-setup.js.map +2 -2
  77. package/dist/lib/generators/module-extension-facts.js +652 -24
  78. package/dist/lib/generators/module-extension-facts.js.map +3 -3
  79. package/dist/lib/generators/module-fact-sources.js +70 -0
  80. package/dist/lib/generators/module-fact-sources.js.map +7 -0
  81. package/dist/lib/generators/module-facts.js +1001 -26
  82. package/dist/lib/generators/module-facts.js.map +3 -3
  83. package/dist/lib/generators/module-override-targets.js +688 -0
  84. package/dist/lib/generators/module-override-targets.js.map +7 -0
  85. package/dist/lib/testing/integration.js +5 -0
  86. package/dist/lib/testing/integration.js.map +2 -2
  87. package/package.json +5 -5
  88. package/src/lib/__tests__/agentic-setup.ownership.test.ts +6 -0
  89. package/src/lib/agentic-setup.ts +6 -2
  90. package/src/lib/generators/__tests__/activation-adapter-coverage.test.ts +92 -0
  91. package/src/lib/generators/__tests__/module-extension-activations.test.ts +762 -0
  92. package/src/lib/generators/__tests__/module-extension-facts.test.ts +4 -2
  93. package/src/lib/generators/__tests__/module-facts.bc-guard.test.ts +37 -3
  94. package/src/lib/generators/__tests__/module-facts.owned-contracts.test.ts +561 -0
  95. package/src/lib/generators/__tests__/module-override-targets.roundtrip.test.ts +149 -0
  96. package/src/lib/generators/__tests__/module-override-targets.test.ts +304 -0
  97. package/src/lib/generators/module-extension-facts.ts +923 -27
  98. package/src/lib/generators/module-fact-sources.ts +108 -0
  99. package/src/lib/generators/module-facts.ts +1360 -25
  100. package/src/lib/generators/module-override-targets.ts +863 -0
  101. package/src/lib/testing/__tests__/integration.test.ts +4 -0
  102. package/src/lib/testing/integration.ts +5 -0
@@ -1,50 +1,58 @@
1
1
  # catalog — module facts (generated, do not edit)
2
- <!-- generated from @open-mercato/core 0.6.7-develop.6795.1.8a3f27921c; core 0.6.7-develop.6795.1.8a3f27921c — R1 staleness stamp -->
2
+ <!-- generated from @open-mercato/core 0.6.7-develop.6824.1.21fff90682; core 0.6.7-develop.6824.1.21fff90682 — R1 staleness stamp -->
3
3
  Source root: [node_modules/@open-mercato/core/src/modules/catalog](../../../node_modules/@open-mercato/core/src/modules/catalog)
4
4
 
5
5
  ## Entities
6
6
 
7
- | Entity ID | Class | Table | Editable | CustomFields |
8
- |---|---|---|---|---|
9
- | catalog:catalog_option_schema_template | CatalogOptionSchemaTemplate | catalog_product_option_schemas | yes | no |
10
- | catalog:catalog_product | CatalogProduct | catalog_products | yes | yes |
11
- | catalog:catalog_product_unit_conversion | CatalogProductUnitConversion | catalog_product_unit_conversions | yes | no |
12
- | catalog:catalog_product_category | CatalogProductCategory | catalog_product_categories | yes | no |
13
- | catalog:catalog_product_category_assignment | CatalogProductCategoryAssignment | catalog_product_category_assignments | yes | no |
14
- | catalog:catalog_product_tag | CatalogProductTag | catalog_product_tags | yes | no |
15
- | catalog:catalog_product_tag_assignment | CatalogProductTagAssignment | catalog_product_tag_assignments | yes | no |
16
- | catalog:catalog_offer | CatalogOffer | catalog_product_offers | yes | no |
17
- | catalog:catalog_product_variant | CatalogProductVariant | catalog_product_variants | yes | yes |
18
- | catalog:catalog_product_variant_relation | CatalogProductVariantRelation | catalog_product_variant_relations | yes | no |
19
- | catalog:catalog_price_kind | CatalogPriceKind | catalog_price_kinds | yes | no |
20
- | catalog:catalog_product_price | CatalogProductPrice | catalog_product_variant_prices | yes | yes |
7
+ | Entity ID | Class | Table | Editable | CustomFields | Source |
8
+ |---|---|---|---|---|---|
9
+ | catalog:catalog_option_schema_template | CatalogOptionSchemaTemplate | catalog_product_option_schemas | yes | no | [node_modules/@open-mercato/core/src/modules/catalog/data/entities.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/data/entities.ts) |
10
+ | catalog:catalog_product | CatalogProduct | catalog_products | yes | yes | [node_modules/@open-mercato/core/src/modules/catalog/data/entities.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/data/entities.ts) |
11
+ | catalog:catalog_product_unit_conversion | CatalogProductUnitConversion | catalog_product_unit_conversions | yes | no | [node_modules/@open-mercato/core/src/modules/catalog/data/entities.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/data/entities.ts) |
12
+ | catalog:catalog_product_category | CatalogProductCategory | catalog_product_categories | yes | no | [node_modules/@open-mercato/core/src/modules/catalog/data/entities.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/data/entities.ts) |
13
+ | catalog:catalog_product_category_assignment | CatalogProductCategoryAssignment | catalog_product_category_assignments | yes | no | [node_modules/@open-mercato/core/src/modules/catalog/data/entities.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/data/entities.ts) |
14
+ | catalog:catalog_product_tag | CatalogProductTag | catalog_product_tags | yes | no | [node_modules/@open-mercato/core/src/modules/catalog/data/entities.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/data/entities.ts) |
15
+ | catalog:catalog_product_tag_assignment | CatalogProductTagAssignment | catalog_product_tag_assignments | yes | no | [node_modules/@open-mercato/core/src/modules/catalog/data/entities.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/data/entities.ts) |
16
+ | catalog:catalog_offer | CatalogOffer | catalog_product_offers | yes | no | [node_modules/@open-mercato/core/src/modules/catalog/data/entities.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/data/entities.ts) |
17
+ | catalog:catalog_product_variant | CatalogProductVariant | catalog_product_variants | yes | yes | [node_modules/@open-mercato/core/src/modules/catalog/data/entities.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/data/entities.ts) |
18
+ | catalog:catalog_product_variant_relation | CatalogProductVariantRelation | catalog_product_variant_relations | yes | no | [node_modules/@open-mercato/core/src/modules/catalog/data/entities.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/data/entities.ts) |
19
+ | catalog:catalog_price_kind | CatalogPriceKind | catalog_price_kinds | yes | no | [node_modules/@open-mercato/core/src/modules/catalog/data/entities.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/data/entities.ts) |
20
+ | catalog:catalog_product_price | CatalogProductPrice | catalog_product_variant_prices | yes | yes | [node_modules/@open-mercato/core/src/modules/catalog/data/entities.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/data/entities.ts) |
21
21
 
22
22
  ## Events (18)
23
23
 
24
- | ID | Category | Entity | Browser transport |
25
- |---|---|---|---|
26
- | catalog.product.created | crud | product | client |
27
- | catalog.product.updated | crud | product | client |
28
- | catalog.product.deleted | crud | product | client |
29
- | catalog.product.stock_low | lifecycle | product | — |
30
- | catalog.product_unit_conversion.created | crud | product_unit_conversion | — |
31
- | catalog.product_unit_conversion.updated | crud | product_unit_conversion | — |
32
- | catalog.product_unit_conversion.deleted | crud | product_unit_conversion | — |
33
- | catalog.category.created | crud | category | — |
34
- | catalog.category.updated | crud | category | — |
35
- | catalog.category.deleted | crud | category | — |
36
- | catalog.variant.created | crud | variant | — |
37
- | catalog.variant.updated | crud | variant | — |
38
- | catalog.variant.deleted | crud | variant | — |
39
- | catalog.price.created | crud | price | — |
40
- | catalog.price.updated | crud | price | — |
41
- | catalog.price.deleted | crud | price | — |
42
- | catalog.pricing.resolve.before | lifecycle | — | — |
43
- | catalog.pricing.resolve.after | lifecycle | — | — |
24
+ | ID | Category | Entity | Browser transport | Source |
25
+ |---|---|---|---|---|
26
+ | catalog.product.created | crud | product | client | [node_modules/@open-mercato/core/src/modules/catalog/events.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/events.ts) |
27
+ | catalog.product.updated | crud | product | client | [node_modules/@open-mercato/core/src/modules/catalog/events.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/events.ts) |
28
+ | catalog.product.deleted | crud | product | client | [node_modules/@open-mercato/core/src/modules/catalog/events.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/events.ts) |
29
+ | catalog.product.stock_low | lifecycle | product | — | [node_modules/@open-mercato/core/src/modules/catalog/events.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/events.ts) |
30
+ | catalog.product_unit_conversion.created | crud | product_unit_conversion | — | [node_modules/@open-mercato/core/src/modules/catalog/events.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/events.ts) |
31
+ | catalog.product_unit_conversion.updated | crud | product_unit_conversion | — | [node_modules/@open-mercato/core/src/modules/catalog/events.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/events.ts) |
32
+ | catalog.product_unit_conversion.deleted | crud | product_unit_conversion | — | [node_modules/@open-mercato/core/src/modules/catalog/events.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/events.ts) |
33
+ | catalog.category.created | crud | category | — | [node_modules/@open-mercato/core/src/modules/catalog/events.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/events.ts) |
34
+ | catalog.category.updated | crud | category | — | [node_modules/@open-mercato/core/src/modules/catalog/events.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/events.ts) |
35
+ | catalog.category.deleted | crud | category | — | [node_modules/@open-mercato/core/src/modules/catalog/events.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/events.ts) |
36
+ | catalog.variant.created | crud | variant | — | [node_modules/@open-mercato/core/src/modules/catalog/events.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/events.ts) |
37
+ | catalog.variant.updated | crud | variant | — | [node_modules/@open-mercato/core/src/modules/catalog/events.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/events.ts) |
38
+ | catalog.variant.deleted | crud | variant | — | [node_modules/@open-mercato/core/src/modules/catalog/events.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/events.ts) |
39
+ | catalog.price.created | crud | price | — | [node_modules/@open-mercato/core/src/modules/catalog/events.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/events.ts) |
40
+ | catalog.price.updated | crud | price | — | [node_modules/@open-mercato/core/src/modules/catalog/events.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/events.ts) |
41
+ | catalog.price.deleted | crud | price | — | [node_modules/@open-mercato/core/src/modules/catalog/events.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/events.ts) |
42
+ | catalog.pricing.resolve.before | lifecycle | — | — | [node_modules/@open-mercato/core/src/modules/catalog/events.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/events.ts) |
43
+ | catalog.pricing.resolve.after | lifecycle | — | — | [node_modules/@open-mercato/core/src/modules/catalog/events.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/events.ts) |
44
44
 
45
45
  ## ACL features (7)
46
46
 
47
- catalog.products.view · catalog.products.manage · catalog.categories.view · catalog.categories.manage · catalog.variants.manage · catalog.pricing.manage · catalog.settings.manage
47
+ | Feature | Source |
48
+ |---|---|
49
+ | catalog.products.view | [node_modules/@open-mercato/core/src/modules/catalog/acl.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/acl.ts) |
50
+ | catalog.products.manage | [node_modules/@open-mercato/core/src/modules/catalog/acl.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/acl.ts) |
51
+ | catalog.categories.view | [node_modules/@open-mercato/core/src/modules/catalog/acl.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/acl.ts) |
52
+ | catalog.categories.manage | [node_modules/@open-mercato/core/src/modules/catalog/acl.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/acl.ts) |
53
+ | catalog.variants.manage | [node_modules/@open-mercato/core/src/modules/catalog/acl.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/acl.ts) |
54
+ | catalog.pricing.manage | [node_modules/@open-mercato/core/src/modules/catalog/acl.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/acl.ts) |
55
+ | catalog.settings.manage | [node_modules/@open-mercato/core/src/modules/catalog/acl.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/acl.ts) |
48
56
 
49
57
  ## API routes
50
58
 
@@ -70,11 +78,22 @@ _none_
70
78
 
71
79
  ## DI service tokens
72
80
 
73
- catalogPricingService
81
+ | Token | Source |
82
+ |---|---|
83
+ | catalogPricingService | [node_modules/@open-mercato/core/src/modules/catalog/di.ts:13](../../../node_modules/@open-mercato/core/src/modules/catalog/di.ts#L13) |
74
84
 
75
85
  ## Search entities
76
86
 
77
- catalog:catalog_product · catalog:catalog_product_variant · catalog:catalog_product_category · catalog:catalog_offer · catalog:catalog_product_tag · catalog:catalog_price_kind · catalog:catalog_product_unit_conversion · catalog:catalog_option_schema_template
87
+ | Entity ID | Source |
88
+ |---|---|
89
+ | catalog:catalog_product | [node_modules/@open-mercato/core/src/modules/catalog/search.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/search.ts) |
90
+ | catalog:catalog_product_variant | [node_modules/@open-mercato/core/src/modules/catalog/search.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/search.ts) |
91
+ | catalog:catalog_product_category | [node_modules/@open-mercato/core/src/modules/catalog/search.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/search.ts) |
92
+ | catalog:catalog_offer | [node_modules/@open-mercato/core/src/modules/catalog/search.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/search.ts) |
93
+ | catalog:catalog_product_tag | [node_modules/@open-mercato/core/src/modules/catalog/search.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/search.ts) |
94
+ | catalog:catalog_price_kind | [node_modules/@open-mercato/core/src/modules/catalog/search.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/search.ts) |
95
+ | catalog:catalog_product_unit_conversion | [node_modules/@open-mercato/core/src/modules/catalog/search.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/search.ts) |
96
+ | catalog:catalog_option_schema_template | [node_modules/@open-mercato/core/src/modules/catalog/search.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/search.ts) |
78
97
 
79
98
  ## Host extension points
80
99
 
@@ -83,128 +102,206 @@ catalog:catalog_product · catalog:catalog_product_variant · catalog:catalog_pr
83
102
 
84
103
  ## UMES hosts
85
104
 
86
- | ID / pattern | Family | Supports | Context | Stability |
87
- |---|---|---|---|---|
88
- | crud-form:catalog.product | crud-form | render-widget, lifecycle-handler | — | FROZEN |
89
- | crud-form:catalog.product | crud-form | component-replacement | — | FROZEN |
90
- | crud-form:catalog.product:fields | crud-form | field-widget | — | FROZEN |
91
- | crud-form:catalog.product:header | crud-form | render-widget | — | FROZEN |
92
- | data-table:catalog.categories.list | data-table | component-replacement | — | FROZEN |
93
- | data-table:catalog.categories.list:bulk-actions | data-table | bulk-action | — | FROZEN |
94
- | data-table:catalog.categories.list:columns | data-table | column-widget | — | FROZEN |
95
- | data-table:catalog.categories.list:filters | data-table | filter-widget | — | FROZEN |
96
- | data-table:catalog.categories.list:footer | data-table | render-widget | — | FROZEN |
97
- | data-table:catalog.categories.list:header | data-table | render-widget | — | FROZEN |
98
- | data-table:catalog.categories.list:row-actions | data-table | row-action | — | FROZEN |
99
- | data-table:catalog.categories.list:search-trailing | data-table | render-widget | — | FROZEN |
100
- | data-table:catalog.categories.list:toolbar | data-table | toolbar-widget | — | FROZEN |
101
- | data-table:catalog.products:footer | data-table | render-widget | — | FROZEN |
102
- | data-table:catalog.products:header | data-table | render-widget | — | FROZEN |
103
- | data-table:catalog.products:search-trailing | data-table | render-widget | — | FROZEN |
104
- | data-table:catalog.products:toolbar | data-table | toolbar-widget | — | FROZEN |
105
- | data-table:catalog.products.list | data-table | component-replacement | — | FROZEN |
106
- | data-table:catalog.products.list:bulk-actions | data-table | bulk-action | — | FROZEN |
107
- | data-table:catalog.products.list:columns | data-table | column-widget | — | FROZEN |
108
- | data-table:catalog.products.list:filters | data-table | filter-widget | — | FROZEN |
109
- | data-table:catalog.products.list:row-actions | data-table | row-action | — | FROZEN |
110
- | catalog:catalog_offer | entity | response-enricher, query-enricher, mutation-guard, entity-extension | tenant-and-organization | STABLE |
111
- | catalog:catalog_option_schema_template | entity | response-enricher, query-enricher, mutation-guard, entity-extension | tenant-and-organization | STABLE |
112
- | catalog:catalog_price_kind | entity | response-enricher, query-enricher, mutation-guard, entity-extension | tenant-and-organization | STABLE |
113
- | catalog:catalog_product | entity | response-enricher, query-enricher, mutation-guard | tenant-and-organization | STABLE |
114
- | catalog:catalog_product_category | entity | response-enricher, query-enricher, mutation-guard, entity-extension | tenant-and-organization | STABLE |
115
- | catalog:catalog_product_category_assignment | entity | response-enricher, query-enricher, mutation-guard, entity-extension | tenant-and-organization | STABLE |
116
- | catalog:catalog_product_price | entity | response-enricher, query-enricher, mutation-guard, entity-extension | tenant-and-organization | STABLE |
117
- | catalog:catalog_product_tag | entity | response-enricher, query-enricher, mutation-guard, entity-extension | tenant-and-organization | STABLE |
118
- | catalog:catalog_product_tag_assignment | entity | response-enricher, query-enricher, mutation-guard, entity-extension | tenant-and-organization | STABLE |
119
- | catalog:catalog_product_unit_conversion | entity | response-enricher, query-enricher, mutation-guard, entity-extension | tenant-and-organization | STABLE |
120
- | catalog:catalog_product_variant | entity | response-enricher, query-enricher, mutation-guard | tenant-and-organization | STABLE |
121
- | catalog:catalog_product_variant_relation | entity | response-enricher, query-enricher, mutation-guard, entity-extension | tenant-and-organization | STABLE |
122
- | catalog.settings | entity | response-enricher, query-enricher, mutation-guard | tenant-and-organization | STABLE |
123
- | catalog.category.created | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE |
124
- | catalog.category.deleted | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE |
125
- | catalog.category.updated | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE |
126
- | catalog.price.created | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE |
127
- | catalog.price.deleted | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE |
128
- | catalog.price.updated | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE |
129
- | catalog.pricing.resolve.after | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE |
130
- | catalog.pricing.resolve.before | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE |
131
- | catalog.product_unit_conversion.created | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE |
132
- | catalog.product_unit_conversion.deleted | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE |
133
- | catalog.product_unit_conversion.updated | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE |
134
- | catalog.product.created | event | async-subscriber, sync-subscriber, browser-client | tenant-organization-and-audience | STABLE |
135
- | catalog.product.deleted | event | async-subscriber, sync-subscriber, browser-client | tenant-organization-and-audience | STABLE |
136
- | catalog.product.stock_low | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE |
137
- | catalog.product.updated | event | async-subscriber, sync-subscriber, browser-client | tenant-organization-and-audience | STABLE |
138
- | catalog.variant.created | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE |
139
- | catalog.variant.deleted | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE |
140
- | catalog.variant.updated | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE |
141
- | catalog.catalog_offer.queried | query-lifecycle | sync-subscriber | tenant-and-organization-reapplied-after-result | STABLE |
142
- | catalog.catalog_offer.querying | query-lifecycle | sync-subscriber | tenant-and-organization-reapplied-after-result | STABLE |
143
- | catalog.catalog_option_schema_template.queried | query-lifecycle | sync-subscriber | tenant-and-organization-reapplied-after-result | STABLE |
144
- | catalog.catalog_option_schema_template.querying | query-lifecycle | sync-subscriber | tenant-and-organization-reapplied-after-result | STABLE |
145
- | catalog.catalog_price_kind.queried | query-lifecycle | sync-subscriber | tenant-and-organization-reapplied-after-result | STABLE |
146
- | catalog.catalog_price_kind.querying | query-lifecycle | sync-subscriber | tenant-and-organization-reapplied-after-result | STABLE |
147
- | catalog.catalog_product_category.queried | query-lifecycle | sync-subscriber | tenant-and-organization-reapplied-after-result | STABLE |
148
- | catalog.catalog_product_category.querying | query-lifecycle | sync-subscriber | tenant-and-organization-reapplied-after-result | STABLE |
149
- | catalog.catalog_product_tag.queried | query-lifecycle | sync-subscriber | tenant-and-organization-reapplied-after-result | STABLE |
150
- | catalog.catalog_product_tag.querying | query-lifecycle | sync-subscriber | tenant-and-organization-reapplied-after-result | STABLE |
151
- | catalog.catalog_product_unit_conversion.queried | query-lifecycle | sync-subscriber | tenant-and-organization-reapplied-after-result | STABLE |
152
- | catalog.catalog_product_unit_conversion.querying | query-lifecycle | sync-subscriber | tenant-and-organization-reapplied-after-result | STABLE |
153
- | catalog.catalog_product_variant.queried | query-lifecycle | sync-subscriber | tenant-and-organization-reapplied-after-result | STABLE |
154
- | catalog.catalog_product_variant.querying | query-lifecycle | sync-subscriber | tenant-and-organization-reapplied-after-result | STABLE |
155
- | catalog.catalog_product.queried | query-lifecycle | sync-subscriber | tenant-and-organization-reapplied-after-result | STABLE |
156
- | catalog.catalog_product.querying | query-lifecycle | sync-subscriber | tenant-and-organization-reapplied-after-result | STABLE |
105
+ | ID / pattern | Family | Supports | Context | Stability | Source |
106
+ |---|---|---|---|---|---|
107
+ | crud-form:catalog.product | crud-form | render-widget, lifecycle-handler | — | FROZEN | [node_modules/@open-mercato/core/src/modules/catalog/extension-points.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/extension-points.ts) |
108
+ | crud-form:catalog.product | crud-form | component-replacement | — | FROZEN | [node_modules/@open-mercato/core/src/modules/catalog/extension-points.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/extension-points.ts) |
109
+ | crud-form:catalog.product:fields | crud-form | field-widget | — | FROZEN | [node_modules/@open-mercato/core/src/modules/catalog/extension-points.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/extension-points.ts) |
110
+ | crud-form:catalog.product:header | crud-form | render-widget | — | FROZEN | [node_modules/@open-mercato/core/src/modules/catalog/extension-points.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/extension-points.ts) |
111
+ | data-table:catalog.categories.list | data-table | component-replacement | — | FROZEN | [node_modules/@open-mercato/core/src/modules/catalog/extension-points.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/extension-points.ts) |
112
+ | data-table:catalog.categories.list:bulk-actions | data-table | bulk-action | — | FROZEN | [node_modules/@open-mercato/core/src/modules/catalog/extension-points.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/extension-points.ts) |
113
+ | data-table:catalog.categories.list:columns | data-table | column-widget | — | FROZEN | [node_modules/@open-mercato/core/src/modules/catalog/extension-points.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/extension-points.ts) |
114
+ | data-table:catalog.categories.list:filters | data-table | filter-widget | — | FROZEN | [node_modules/@open-mercato/core/src/modules/catalog/extension-points.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/extension-points.ts) |
115
+ | data-table:catalog.categories.list:footer | data-table | render-widget | — | FROZEN | [node_modules/@open-mercato/core/src/modules/catalog/extension-points.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/extension-points.ts) |
116
+ | data-table:catalog.categories.list:header | data-table | render-widget | — | FROZEN | [node_modules/@open-mercato/core/src/modules/catalog/extension-points.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/extension-points.ts) |
117
+ | data-table:catalog.categories.list:row-actions | data-table | row-action | — | FROZEN | [node_modules/@open-mercato/core/src/modules/catalog/extension-points.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/extension-points.ts) |
118
+ | data-table:catalog.categories.list:search-trailing | data-table | render-widget | — | FROZEN | [node_modules/@open-mercato/core/src/modules/catalog/extension-points.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/extension-points.ts) |
119
+ | data-table:catalog.categories.list:toolbar | data-table | toolbar-widget | — | FROZEN | [node_modules/@open-mercato/core/src/modules/catalog/extension-points.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/extension-points.ts) |
120
+ | data-table:catalog.products:footer | data-table | render-widget | — | FROZEN | [node_modules/@open-mercato/core/src/modules/catalog/extension-points.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/extension-points.ts) |
121
+ | data-table:catalog.products:header | data-table | render-widget | — | FROZEN | [node_modules/@open-mercato/core/src/modules/catalog/extension-points.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/extension-points.ts) |
122
+ | data-table:catalog.products:search-trailing | data-table | render-widget | — | FROZEN | [node_modules/@open-mercato/core/src/modules/catalog/extension-points.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/extension-points.ts) |
123
+ | data-table:catalog.products:toolbar | data-table | toolbar-widget | — | FROZEN | [node_modules/@open-mercato/core/src/modules/catalog/extension-points.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/extension-points.ts) |
124
+ | data-table:catalog.products.list | data-table | component-replacement | — | FROZEN | [node_modules/@open-mercato/core/src/modules/catalog/extension-points.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/extension-points.ts) |
125
+ | data-table:catalog.products.list:bulk-actions | data-table | bulk-action | — | FROZEN | [node_modules/@open-mercato/core/src/modules/catalog/extension-points.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/extension-points.ts) |
126
+ | data-table:catalog.products.list:columns | data-table | column-widget | — | FROZEN | [node_modules/@open-mercato/core/src/modules/catalog/extension-points.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/extension-points.ts) |
127
+ | data-table:catalog.products.list:filters | data-table | filter-widget | — | FROZEN | [node_modules/@open-mercato/core/src/modules/catalog/extension-points.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/extension-points.ts) |
128
+ | data-table:catalog.products.list:row-actions | data-table | row-action | — | FROZEN | [node_modules/@open-mercato/core/src/modules/catalog/extension-points.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/extension-points.ts) |
129
+ | catalog:catalog_offer | entity | response-enricher, query-enricher, mutation-guard, entity-extension | tenant-and-organization | STABLE | entities:catalog:catalog_offer |
130
+ | catalog:catalog_option_schema_template | entity | response-enricher, query-enricher, mutation-guard, entity-extension | tenant-and-organization | STABLE | entities:catalog:catalog_option_schema_template |
131
+ | catalog:catalog_price_kind | entity | response-enricher, query-enricher, mutation-guard, entity-extension | tenant-and-organization | STABLE | entities:catalog:catalog_price_kind |
132
+ | catalog:catalog_product | entity | response-enricher, query-enricher, mutation-guard | tenant-and-organization | STABLE | [node_modules/@open-mercato/core/src/modules/catalog/api/products/route.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/api/products/route.ts) |
133
+ | catalog:catalog_product_category | entity | response-enricher, query-enricher, mutation-guard, entity-extension | tenant-and-organization | STABLE | entities:catalog:catalog_product_category |
134
+ | catalog:catalog_product_category_assignment | entity | response-enricher, query-enricher, mutation-guard, entity-extension | tenant-and-organization | STABLE | entities:catalog:catalog_product_category_assignment |
135
+ | catalog:catalog_product_price | entity | response-enricher, query-enricher, mutation-guard, entity-extension | tenant-and-organization | STABLE | entities:catalog:catalog_product_price |
136
+ | catalog:catalog_product_tag | entity | response-enricher, query-enricher, mutation-guard, entity-extension | tenant-and-organization | STABLE | entities:catalog:catalog_product_tag |
137
+ | catalog:catalog_product_tag_assignment | entity | response-enricher, query-enricher, mutation-guard, entity-extension | tenant-and-organization | STABLE | entities:catalog:catalog_product_tag_assignment |
138
+ | catalog:catalog_product_unit_conversion | entity | response-enricher, query-enricher, mutation-guard, entity-extension | tenant-and-organization | STABLE | entities:catalog:catalog_product_unit_conversion |
139
+ | catalog:catalog_product_variant | entity | response-enricher, query-enricher, mutation-guard | tenant-and-organization | STABLE | [node_modules/@open-mercato/core/src/modules/catalog/api/variants/route.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/api/variants/route.ts) |
140
+ | catalog:catalog_product_variant_relation | entity | response-enricher, query-enricher, mutation-guard, entity-extension | tenant-and-organization | STABLE | entities:catalog:catalog_product_variant_relation |
141
+ | catalog.settings | entity | response-enricher, query-enricher, mutation-guard | tenant-and-organization | STABLE | [node_modules/@open-mercato/core/src/modules/catalog/api/settings/route.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/api/settings/route.ts) |
142
+ | catalog.category.created | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE | events:catalog.category.created |
143
+ | catalog.category.deleted | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE | events:catalog.category.deleted |
144
+ | catalog.category.updated | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE | events:catalog.category.updated |
145
+ | catalog.price.created | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE | events:catalog.price.created |
146
+ | catalog.price.deleted | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE | events:catalog.price.deleted |
147
+ | catalog.price.updated | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE | events:catalog.price.updated |
148
+ | catalog.pricing.resolve.after | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE | events:catalog.pricing.resolve.after |
149
+ | catalog.pricing.resolve.before | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE | events:catalog.pricing.resolve.before |
150
+ | catalog.product_unit_conversion.created | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE | events:catalog.product_unit_conversion.created |
151
+ | catalog.product_unit_conversion.deleted | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE | events:catalog.product_unit_conversion.deleted |
152
+ | catalog.product_unit_conversion.updated | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE | events:catalog.product_unit_conversion.updated |
153
+ | catalog.product.created | event | async-subscriber, sync-subscriber, browser-client | tenant-organization-and-audience | STABLE | events:catalog.product.created |
154
+ | catalog.product.deleted | event | async-subscriber, sync-subscriber, browser-client | tenant-organization-and-audience | STABLE | events:catalog.product.deleted |
155
+ | catalog.product.stock_low | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE | events:catalog.product.stock_low |
156
+ | catalog.product.updated | event | async-subscriber, sync-subscriber, browser-client | tenant-organization-and-audience | STABLE | events:catalog.product.updated |
157
+ | catalog.variant.created | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE | events:catalog.variant.created |
158
+ | catalog.variant.deleted | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE | events:catalog.variant.deleted |
159
+ | catalog.variant.updated | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE | events:catalog.variant.updated |
160
+ | catalog.catalog_offer.queried | query-lifecycle | sync-subscriber | tenant-and-organization-reapplied-after-result | STABLE | searchEntities:catalog:catalog_offer |
161
+ | catalog.catalog_offer.querying | query-lifecycle | sync-subscriber | tenant-and-organization-reapplied-after-result | STABLE | searchEntities:catalog:catalog_offer |
162
+ | catalog.catalog_option_schema_template.queried | query-lifecycle | sync-subscriber | tenant-and-organization-reapplied-after-result | STABLE | searchEntities:catalog:catalog_option_schema_template |
163
+ | catalog.catalog_option_schema_template.querying | query-lifecycle | sync-subscriber | tenant-and-organization-reapplied-after-result | STABLE | searchEntities:catalog:catalog_option_schema_template |
164
+ | catalog.catalog_price_kind.queried | query-lifecycle | sync-subscriber | tenant-and-organization-reapplied-after-result | STABLE | searchEntities:catalog:catalog_price_kind |
165
+ | catalog.catalog_price_kind.querying | query-lifecycle | sync-subscriber | tenant-and-organization-reapplied-after-result | STABLE | searchEntities:catalog:catalog_price_kind |
166
+ | catalog.catalog_product_category.queried | query-lifecycle | sync-subscriber | tenant-and-organization-reapplied-after-result | STABLE | searchEntities:catalog:catalog_product_category |
167
+ | catalog.catalog_product_category.querying | query-lifecycle | sync-subscriber | tenant-and-organization-reapplied-after-result | STABLE | searchEntities:catalog:catalog_product_category |
168
+ | catalog.catalog_product_tag.queried | query-lifecycle | sync-subscriber | tenant-and-organization-reapplied-after-result | STABLE | searchEntities:catalog:catalog_product_tag |
169
+ | catalog.catalog_product_tag.querying | query-lifecycle | sync-subscriber | tenant-and-organization-reapplied-after-result | STABLE | searchEntities:catalog:catalog_product_tag |
170
+ | catalog.catalog_product_unit_conversion.queried | query-lifecycle | sync-subscriber | tenant-and-organization-reapplied-after-result | STABLE | searchEntities:catalog:catalog_product_unit_conversion |
171
+ | catalog.catalog_product_unit_conversion.querying | query-lifecycle | sync-subscriber | tenant-and-organization-reapplied-after-result | STABLE | searchEntities:catalog:catalog_product_unit_conversion |
172
+ | catalog.catalog_product_variant.queried | query-lifecycle | sync-subscriber | tenant-and-organization-reapplied-after-result | STABLE | searchEntities:catalog:catalog_product_variant |
173
+ | catalog.catalog_product_variant.querying | query-lifecycle | sync-subscriber | tenant-and-organization-reapplied-after-result | STABLE | searchEntities:catalog:catalog_product_variant |
174
+ | catalog.catalog_product.queried | query-lifecycle | sync-subscriber | tenant-and-organization-reapplied-after-result | STABLE | searchEntities:catalog:catalog_product |
175
+ | catalog.catalog_product.querying | query-lifecycle | sync-subscriber | tenant-and-organization-reapplied-after-result | STABLE | searchEntities:catalog:catalog_product |
157
176
 
158
177
  ## UMES contributions
159
178
 
160
- | ID | Kind | Target | Phase / operations | Contract | Resolution |
179
+ | ID | Kind | Target | Phase / operations | Contract | Resolution | Source |
180
+ |---|---|---|---|---|---|---|
181
+ | catalog.product.created.browser | browser-reaction | catalog.product.created | — | audienceScopeContract=tenant-organization-user-role-and-customer; hooks=useAppEvent,useOperationProgress; transports=client | fact-ref | [node_modules/@open-mercato/core/src/modules/catalog/events.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/events.ts) |
182
+ | catalog.product.deleted.browser | browser-reaction | catalog.product.deleted | — | audienceScopeContract=tenant-organization-user-role-and-customer; hooks=useAppEvent,useOperationProgress; transports=client | fact-ref | [node_modules/@open-mercato/core/src/modules/catalog/events.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/events.ts) |
183
+ | catalog.product.updated.browser | browser-reaction | catalog.product.updated | — | audienceScopeContract=tenant-organization-user-role-and-customer; hooks=useAppEvent,useOperationProgress; transports=client | fact-ref | [node_modules/@open-mercato/core/src/modules/catalog/events.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/events.ts) |
184
+ | catalog.injection.product-seo@crud-form:catalog.product | crud-form | crud-form:catalog.product | — | entityId=catalog.product; payload=render; requestHeaderCapability=false | exact | [node_modules/@open-mercato/core/src/modules/catalog/widgets/injection-table.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/widgets/injection-table.ts) |
185
+ | catalog.injection.merchandising-assistant-trigger@data-table:catalog.products:search-trailing | data-table | data-table:catalog.products:search-trailing | — | executionGuard=host; payload=render; tableId=catalog.products | exact | [node_modules/@open-mercato/core/src/modules/catalog/widgets/injection-table.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/widgets/injection-table.ts) |
186
+ | ai:catalog.apply_attribute_extraction | specialized-registry | catalog.apply_attribute_extraction | — | registry=ai; registryId=catalog.apply_attribute_extraction; specialistRoute=aiTools | fact-ref | [node_modules/@open-mercato/core/src/modules/catalog/ai-tools/mutation-pack.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/ai-tools/mutation-pack.ts) |
187
+ | ai:catalog.bulk_update_products | specialized-registry | catalog.bulk_update_products | — | registry=ai; registryId=catalog.bulk_update_products; specialistRoute=aiTools | fact-ref | [node_modules/@open-mercato/core/src/modules/catalog/ai-tools/mutation-pack.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/ai-tools/mutation-pack.ts) |
188
+ | ai:catalog.catalog_assistant | specialized-registry | catalog.catalog_assistant | — | registry=ai; registryId=catalog.catalog_assistant; specialistRoute=aiAgents | fact-ref | [node_modules/@open-mercato/core/src/modules/catalog/ai-agents.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/ai-agents.ts) |
189
+ | ai:catalog.draft_description_from_attributes | specialized-registry | catalog.draft_description_from_attributes | — | registry=ai; registryId=catalog.draft_description_from_attributes; specialistRoute=aiTools | fact-ref | [node_modules/@open-mercato/core/src/modules/catalog/ai-tools/authoring-pack.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/ai-tools/authoring-pack.ts) |
190
+ | ai:catalog.draft_description_from_media | specialized-registry | catalog.draft_description_from_media | — | registry=ai; registryId=catalog.draft_description_from_media; specialistRoute=aiTools | fact-ref | [node_modules/@open-mercato/core/src/modules/catalog/ai-tools/authoring-pack.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/ai-tools/authoring-pack.ts) |
191
+ | ai:catalog.extract_attributes_from_description | specialized-registry | catalog.extract_attributes_from_description | — | registry=ai; registryId=catalog.extract_attributes_from_description; specialistRoute=aiTools | fact-ref | [node_modules/@open-mercato/core/src/modules/catalog/ai-tools/authoring-pack.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/ai-tools/authoring-pack.ts) |
192
+ | ai:catalog.get_attribute_schema | specialized-registry | catalog.get_attribute_schema | — | registry=ai; registryId=catalog.get_attribute_schema; specialistRoute=aiTools | fact-ref | [node_modules/@open-mercato/core/src/modules/catalog/ai-tools/merchandising-pack.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/ai-tools/merchandising-pack.ts) |
193
+ | ai:catalog.get_category | specialized-registry | catalog.get_category | — | registry=ai; registryId=catalog.get_category; specialistRoute=aiTools | fact-ref | [node_modules/@open-mercato/core/src/modules/catalog/ai-tools/categories-pack.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/ai-tools/categories-pack.ts) |
194
+ | ai:catalog.get_category_brief | specialized-registry | catalog.get_category_brief | — | registry=ai; registryId=catalog.get_category_brief; specialistRoute=aiTools | fact-ref | [node_modules/@open-mercato/core/src/modules/catalog/ai-tools/merchandising-pack.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/ai-tools/merchandising-pack.ts) |
195
+ | ai:catalog.get_product | specialized-registry | catalog.get_product | — | registry=ai; registryId=catalog.get_product; specialistRoute=aiTools | fact-ref | [node_modules/@open-mercato/core/src/modules/catalog/ai-tools/products-pack.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/ai-tools/products-pack.ts) |
196
+ | ai:catalog.get_product_bundle | specialized-registry | catalog.get_product_bundle | — | registry=ai; registryId=catalog.get_product_bundle; specialistRoute=aiTools | fact-ref | [node_modules/@open-mercato/core/src/modules/catalog/ai-tools/merchandising-pack.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/ai-tools/merchandising-pack.ts) |
197
+ | ai:catalog.get_product_media | specialized-registry | catalog.get_product_media | — | registry=ai; registryId=catalog.get_product_media; specialistRoute=aiTools | fact-ref | [node_modules/@open-mercato/core/src/modules/catalog/ai-tools/merchandising-pack.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/ai-tools/merchandising-pack.ts) |
198
+ | ai:catalog.list_categories | specialized-registry | catalog.list_categories | — | registry=ai; registryId=catalog.list_categories; specialistRoute=aiTools | fact-ref | [node_modules/@open-mercato/core/src/modules/catalog/ai-tools/categories-pack.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/ai-tools/categories-pack.ts) |
199
+ | ai:catalog.list_offers | specialized-registry | catalog.list_offers | — | registry=ai; registryId=catalog.list_offers; specialistRoute=aiTools | fact-ref | [node_modules/@open-mercato/core/src/modules/catalog/ai-tools/prices-offers-pack.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/ai-tools/prices-offers-pack.ts) |
200
+ | ai:catalog.list_option_schemas | specialized-registry | catalog.list_option_schemas | — | registry=ai; registryId=catalog.list_option_schemas; specialistRoute=aiTools | fact-ref | [node_modules/@open-mercato/core/src/modules/catalog/ai-tools/configuration-pack.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/ai-tools/configuration-pack.ts) |
201
+ | ai:catalog.list_price_kinds | specialized-registry | catalog.list_price_kinds | — | registry=ai; registryId=catalog.list_price_kinds; specialistRoute=aiTools | fact-ref | [node_modules/@open-mercato/core/src/modules/catalog/ai-tools/merchandising-pack.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/ai-tools/merchandising-pack.ts) |
202
+ | ai:catalog.list_price_kinds_base | specialized-registry | catalog.list_price_kinds_base | — | registry=ai; registryId=catalog.list_price_kinds_base; specialistRoute=aiTools | fact-ref | [node_modules/@open-mercato/core/src/modules/catalog/ai-tools/prices-offers-pack.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/ai-tools/prices-offers-pack.ts) |
203
+ | ai:catalog.list_prices | specialized-registry | catalog.list_prices | — | registry=ai; registryId=catalog.list_prices; specialistRoute=aiTools | fact-ref | [node_modules/@open-mercato/core/src/modules/catalog/ai-tools/prices-offers-pack.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/ai-tools/prices-offers-pack.ts) |
204
+ | ai:catalog.list_product_media | specialized-registry | catalog.list_product_media | — | registry=ai; registryId=catalog.list_product_media; specialistRoute=aiTools | fact-ref | [node_modules/@open-mercato/core/src/modules/catalog/ai-tools/media-tags-pack.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/ai-tools/media-tags-pack.ts) |
205
+ | ai:catalog.list_product_tags | specialized-registry | catalog.list_product_tags | — | registry=ai; registryId=catalog.list_product_tags; specialistRoute=aiTools | fact-ref | [node_modules/@open-mercato/core/src/modules/catalog/ai-tools/media-tags-pack.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/ai-tools/media-tags-pack.ts) |
206
+ | ai:catalog.list_products | specialized-registry | catalog.list_products | — | registry=ai; registryId=catalog.list_products; specialistRoute=aiTools | fact-ref | [node_modules/@open-mercato/core/src/modules/catalog/ai-tools/products-pack.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/ai-tools/products-pack.ts) |
207
+ | ai:catalog.list_selected_products | specialized-registry | catalog.list_selected_products | — | registry=ai; registryId=catalog.list_selected_products; specialistRoute=aiTools | fact-ref | [node_modules/@open-mercato/core/src/modules/catalog/ai-tools/merchandising-pack.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/ai-tools/merchandising-pack.ts) |
208
+ | ai:catalog.list_unit_conversions | specialized-registry | catalog.list_unit_conversions | — | registry=ai; registryId=catalog.list_unit_conversions; specialistRoute=aiTools | fact-ref | [node_modules/@open-mercato/core/src/modules/catalog/ai-tools/configuration-pack.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/ai-tools/configuration-pack.ts) |
209
+ | ai:catalog.list_variants | specialized-registry | catalog.list_variants | — | registry=ai; registryId=catalog.list_variants; specialistRoute=aiTools | fact-ref | [node_modules/@open-mercato/core/src/modules/catalog/ai-tools/variants-pack.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/ai-tools/variants-pack.ts) |
210
+ | ai:catalog.merchandising_assistant | specialized-registry | catalog.merchandising_assistant | — | registry=ai; registryId=catalog.merchandising_assistant; specialistRoute=aiAgents | fact-ref | [node_modules/@open-mercato/core/src/modules/catalog/ai-agents.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/ai-agents.ts) |
211
+ | ai:catalog.search_products | specialized-registry | catalog.search_products | — | registry=ai; registryId=catalog.search_products; specialistRoute=aiTools | fact-ref | [node_modules/@open-mercato/core/src/modules/catalog/ai-tools/merchandising-pack.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/ai-tools/merchandising-pack.ts) |
212
+ | ai:catalog.show_stats | specialized-registry | catalog.show_stats | — | registry=ai; registryId=catalog.show_stats; specialistRoute=aiTools | fact-ref | [node_modules/@open-mercato/core/src/modules/catalog/ai-tools/stats-pack.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/ai-tools/stats-pack.ts) |
213
+ | ai:catalog.suggest_price_adjustment | specialized-registry | catalog.suggest_price_adjustment | — | registry=ai; registryId=catalog.suggest_price_adjustment; specialistRoute=aiTools | fact-ref | [node_modules/@open-mercato/core/src/modules/catalog/ai-tools/authoring-pack.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/ai-tools/authoring-pack.ts) |
214
+ | ai:catalog.suggest_title_variants | specialized-registry | catalog.suggest_title_variants | — | registry=ai; registryId=catalog.suggest_title_variants; specialistRoute=aiTools | fact-ref | [node_modules/@open-mercato/core/src/modules/catalog/ai-tools/authoring-pack.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/ai-tools/authoring-pack.ts) |
215
+ | ai:catalog.update_product | specialized-registry | catalog.update_product | — | registry=ai; registryId=catalog.update_product; specialistRoute=aiTools | fact-ref | [node_modules/@open-mercato/core/src/modules/catalog/ai-tools/mutation-pack.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/ai-tools/mutation-pack.ts) |
216
+ | ai:catalog.update_product_media_descriptions | specialized-registry | catalog.update_product_media_descriptions | — | registry=ai; registryId=catalog.update_product_media_descriptions; specialistRoute=aiTools | fact-ref | [node_modules/@open-mercato/core/src/modules/catalog/ai-tools/mutation-pack.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/ai-tools/mutation-pack.ts) |
217
+ | notification:catalog.product.low_stock | specialized-registry | catalog.product.low_stock | — | registry=notification; registryId=catalog.product.low_stock; specialistRoute=notifications | fact-ref | [node_modules/@open-mercato/core/src/modules/catalog/notifications.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/notifications.ts) |
218
+ | search:catalog:catalog_offer | specialized-registry | catalog:catalog_offer | — | registry=search; registryId=catalog:catalog_offer; specialistRoute=search | fact-ref | [node_modules/@open-mercato/core/src/modules/catalog/search.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/search.ts) |
219
+ | search:catalog:catalog_option_schema_template | specialized-registry | catalog:catalog_option_schema_template | — | registry=search; registryId=catalog:catalog_option_schema_template; specialistRoute=search | fact-ref | [node_modules/@open-mercato/core/src/modules/catalog/search.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/search.ts) |
220
+ | search:catalog:catalog_price_kind | specialized-registry | catalog:catalog_price_kind | — | registry=search; registryId=catalog:catalog_price_kind; specialistRoute=search | fact-ref | [node_modules/@open-mercato/core/src/modules/catalog/search.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/search.ts) |
221
+ | search:catalog:catalog_product | specialized-registry | catalog:catalog_product | — | registry=search; registryId=catalog:catalog_product; specialistRoute=search | fact-ref | [node_modules/@open-mercato/core/src/modules/catalog/search.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/search.ts) |
222
+ | search:catalog:catalog_product_category | specialized-registry | catalog:catalog_product_category | — | registry=search; registryId=catalog:catalog_product_category; specialistRoute=search | fact-ref | [node_modules/@open-mercato/core/src/modules/catalog/search.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/search.ts) |
223
+ | search:catalog:catalog_product_tag | specialized-registry | catalog:catalog_product_tag | — | registry=search; registryId=catalog:catalog_product_tag; specialistRoute=search | fact-ref | [node_modules/@open-mercato/core/src/modules/catalog/search.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/search.ts) |
224
+ | search:catalog:catalog_product_unit_conversion | specialized-registry | catalog:catalog_product_unit_conversion | — | registry=search; registryId=catalog:catalog_product_unit_conversion; specialistRoute=search | fact-ref | [node_modules/@open-mercato/core/src/modules/catalog/search.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/search.ts) |
225
+ | search:catalog:catalog_product_variant | specialized-registry | catalog:catalog_product_variant | — | registry=search; registryId=catalog:catalog_product_variant; specialistRoute=search | fact-ref | [node_modules/@open-mercato/core/src/modules/catalog/search.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/search.ts) |
226
+ | catalog:low-stock-notification | subscriber | catalog.product.stock_low | async-delivery | event=catalog.product.stock_low; persistent=true; subscriberId=catalog:low-stock-notification; sync=false | fact-ref | [node_modules/@open-mercato/core/src/modules/catalog/subscribers/low-stock-notification.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/subscribers/low-stock-notification.ts) |
227
+
228
+ ## Active extension bindings
229
+
230
+ | Activation | Kind | Host | Contribution kinds | Phases | Bridge | Source |
231
+ |---|---|---|---|---|---|---|
232
+ | api-route:catalog/products:POST:api-interceptor-bridge | api-interceptor-bridge | api-route:catalog/products POST @catalog | api-interceptor | after, before | apiRoutes:/catalog/products | [node_modules/@open-mercato/core/src/modules/catalog/api/products/route.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/api/products/route.ts) |
233
+ | api-route:catalog/products:PUT:api-interceptor-bridge | api-interceptor-bridge | api-route:catalog/products PUT @catalog | api-interceptor | after, before | apiRoutes:/catalog/products | [node_modules/@open-mercato/core/src/modules/catalog/api/products/route.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/api/products/route.ts) |
234
+ | api-route:catalog/variants:POST:api-interceptor-bridge | api-interceptor-bridge | api-route:catalog/variants POST @catalog | api-interceptor | after, before | apiRoutes:/catalog/variants | [node_modules/@open-mercato/core/src/modules/catalog/api/variants/route.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/api/variants/route.ts) |
235
+ | api-route:catalog/variants:PUT:api-interceptor-bridge | api-interceptor-bridge | api-route:catalog/variants PUT @catalog | api-interceptor | after, before | apiRoutes:/catalog/variants | [node_modules/@open-mercato/core/src/modules/catalog/api/variants/route.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/api/variants/route.ts) |
236
+ | entity:catalog:catalog_product_variant:crud-response-enricher | crud-response-enricher | entity:catalog:catalog_product_variant @catalog | response-enricher | — | — | [node_modules/@open-mercato/core/src/modules/catalog/api/variants/route.ts:107](../../../node_modules/@open-mercato/core/src/modules/catalog/api/variants/route.ts#L107) |
237
+ | entity:catalog:catalog_product:crud-response-enricher | crud-response-enricher | entity:catalog:catalog_product @catalog | response-enricher | — | — | [node_modules/@open-mercato/core/src/modules/catalog/api/products/route.ts:806](../../../node_modules/@open-mercato/core/src/modules/catalog/api/products/route.ts#L806) |
238
+ | entity:catalog.settings:mutation-guard | mutation-guard | entity:catalog.settings @catalog | mutation-guard | — | — | [node_modules/@open-mercato/core/src/modules/catalog/api/settings/route.ts:91](../../../node_modules/@open-mercato/core/src/modules/catalog/api/settings/route.ts#L91) |
239
+ | widget-spot:crud-form:catalog.product:fields:widget-injection-consumer | widget-injection-consumer | widget-spot:crud-form:catalog.product:fields @catalog | widget, data-table, crud-form | — | hosts:productForm.fields | [node_modules/@open-mercato/core/src/modules/catalog/extension-points.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/extension-points.ts) |
240
+ | widget-spot:crud-form:catalog.product:widget-injection-consumer | widget-injection-consumer | widget-spot:crud-form:catalog.product @catalog | widget, data-table, crud-form | — | hosts:productForm.base | [node_modules/@open-mercato/core/src/modules/catalog/extension-points.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/extension-points.ts) |
241
+ | widget-spot:data-table:catalog.products:search-trailing:widget-injection-consumer | widget-injection-consumer | widget-spot:data-table:catalog.products:search-trailing @catalog | widget, data-table, crud-form | — | hosts:productsTable.searchTrailing | [node_modules/@open-mercato/core/src/modules/catalog/extension-points.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/extension-points.ts) |
242
+
243
+ ## Incoming installed contributions
244
+
245
+ | Contributor | Kind | Target | Resolution | Activation | Contribution · Source |
161
246
  |---|---|---|---|---|---|
162
- | catalog.product.created.browser | browser-reaction | catalog.product.created | — | audienceScopeContract=tenant-organization-user-role-and-customer; hooks=useAppEvent,useOperationProgress; transports=client | fact-ref |
163
- | catalog.product.deleted.browser | browser-reaction | catalog.product.deleted | — | audienceScopeContract=tenant-organization-user-role-and-customer; hooks=useAppEvent,useOperationProgress; transports=client | fact-ref |
164
- | catalog.product.updated.browser | browser-reaction | catalog.product.updated | — | audienceScopeContract=tenant-organization-user-role-and-customer; hooks=useAppEvent,useOperationProgress; transports=client | fact-ref |
165
- | catalog.injection.product-seo@crud-form:catalog.product | crud-form | crud-form:catalog.product | — | entityId=catalog.product; payload=render; requestHeaderCapability=false | exact |
166
- | catalog.injection.merchandising-assistant-trigger@data-table:catalog.products:search-trailing | data-table | data-table:catalog.products:search-trailing | — | executionGuard=host; payload=render; tableId=catalog.products | exact |
167
- | ai:catalog.apply_attribute_extraction | specialized-registry | catalog.apply_attribute_extraction | — | registry=ai; registryId=catalog.apply_attribute_extraction; specialistRoute=aiTools | fact-ref |
168
- | ai:catalog.bulk_update_products | specialized-registry | catalog.bulk_update_products | — | registry=ai; registryId=catalog.bulk_update_products; specialistRoute=aiTools | fact-ref |
169
- | ai:catalog.catalog_assistant | specialized-registry | catalog.catalog_assistant | — | registry=ai; registryId=catalog.catalog_assistant; specialistRoute=aiAgents | fact-ref |
170
- | ai:catalog.draft_description_from_attributes | specialized-registry | catalog.draft_description_from_attributes | — | registry=ai; registryId=catalog.draft_description_from_attributes; specialistRoute=aiTools | fact-ref |
171
- | ai:catalog.draft_description_from_media | specialized-registry | catalog.draft_description_from_media | — | registry=ai; registryId=catalog.draft_description_from_media; specialistRoute=aiTools | fact-ref |
172
- | ai:catalog.extract_attributes_from_description | specialized-registry | catalog.extract_attributes_from_description | — | registry=ai; registryId=catalog.extract_attributes_from_description; specialistRoute=aiTools | fact-ref |
173
- | ai:catalog.get_attribute_schema | specialized-registry | catalog.get_attribute_schema | — | registry=ai; registryId=catalog.get_attribute_schema; specialistRoute=aiTools | fact-ref |
174
- | ai:catalog.get_category | specialized-registry | catalog.get_category | — | registry=ai; registryId=catalog.get_category; specialistRoute=aiTools | fact-ref |
175
- | ai:catalog.get_category_brief | specialized-registry | catalog.get_category_brief | — | registry=ai; registryId=catalog.get_category_brief; specialistRoute=aiTools | fact-ref |
176
- | ai:catalog.get_product | specialized-registry | catalog.get_product | — | registry=ai; registryId=catalog.get_product; specialistRoute=aiTools | fact-ref |
177
- | ai:catalog.get_product_bundle | specialized-registry | catalog.get_product_bundle | — | registry=ai; registryId=catalog.get_product_bundle; specialistRoute=aiTools | fact-ref |
178
- | ai:catalog.get_product_media | specialized-registry | catalog.get_product_media | — | registry=ai; registryId=catalog.get_product_media; specialistRoute=aiTools | fact-ref |
179
- | ai:catalog.list_categories | specialized-registry | catalog.list_categories | — | registry=ai; registryId=catalog.list_categories; specialistRoute=aiTools | fact-ref |
180
- | ai:catalog.list_offers | specialized-registry | catalog.list_offers | — | registry=ai; registryId=catalog.list_offers; specialistRoute=aiTools | fact-ref |
181
- | ai:catalog.list_option_schemas | specialized-registry | catalog.list_option_schemas | — | registry=ai; registryId=catalog.list_option_schemas; specialistRoute=aiTools | fact-ref |
182
- | ai:catalog.list_price_kinds | specialized-registry | catalog.list_price_kinds | — | registry=ai; registryId=catalog.list_price_kinds; specialistRoute=aiTools | fact-ref |
183
- | ai:catalog.list_price_kinds_base | specialized-registry | catalog.list_price_kinds_base | — | registry=ai; registryId=catalog.list_price_kinds_base; specialistRoute=aiTools | fact-ref |
184
- | ai:catalog.list_prices | specialized-registry | catalog.list_prices | — | registry=ai; registryId=catalog.list_prices; specialistRoute=aiTools | fact-ref |
185
- | ai:catalog.list_product_media | specialized-registry | catalog.list_product_media | — | registry=ai; registryId=catalog.list_product_media; specialistRoute=aiTools | fact-ref |
186
- | ai:catalog.list_product_tags | specialized-registry | catalog.list_product_tags | — | registry=ai; registryId=catalog.list_product_tags; specialistRoute=aiTools | fact-ref |
187
- | ai:catalog.list_products | specialized-registry | catalog.list_products | — | registry=ai; registryId=catalog.list_products; specialistRoute=aiTools | fact-ref |
188
- | ai:catalog.list_selected_products | specialized-registry | catalog.list_selected_products | — | registry=ai; registryId=catalog.list_selected_products; specialistRoute=aiTools | fact-ref |
189
- | ai:catalog.list_unit_conversions | specialized-registry | catalog.list_unit_conversions | — | registry=ai; registryId=catalog.list_unit_conversions; specialistRoute=aiTools | fact-ref |
190
- | ai:catalog.list_variants | specialized-registry | catalog.list_variants | — | registry=ai; registryId=catalog.list_variants; specialistRoute=aiTools | fact-ref |
191
- | ai:catalog.merchandising_assistant | specialized-registry | catalog.merchandising_assistant | — | registry=ai; registryId=catalog.merchandising_assistant; specialistRoute=aiAgents | fact-ref |
192
- | ai:catalog.search_products | specialized-registry | catalog.search_products | — | registry=ai; registryId=catalog.search_products; specialistRoute=aiTools | fact-ref |
193
- | ai:catalog.show_stats | specialized-registry | catalog.show_stats | — | registry=ai; registryId=catalog.show_stats; specialistRoute=aiTools | fact-ref |
194
- | ai:catalog.suggest_price_adjustment | specialized-registry | catalog.suggest_price_adjustment | — | registry=ai; registryId=catalog.suggest_price_adjustment; specialistRoute=aiTools | fact-ref |
195
- | ai:catalog.suggest_title_variants | specialized-registry | catalog.suggest_title_variants | — | registry=ai; registryId=catalog.suggest_title_variants; specialistRoute=aiTools | fact-ref |
196
- | ai:catalog.update_product | specialized-registry | catalog.update_product | — | registry=ai; registryId=catalog.update_product; specialistRoute=aiTools | fact-ref |
197
- | ai:catalog.update_product_media_descriptions | specialized-registry | catalog.update_product_media_descriptions | — | registry=ai; registryId=catalog.update_product_media_descriptions; specialistRoute=aiTools | fact-ref |
198
- | notification:catalog.product.low_stock | specialized-registry | catalog.product.low_stock | — | registry=notification; registryId=catalog.product.low_stock; specialistRoute=notifications | fact-ref |
199
- | search:catalog:catalog_offer | specialized-registry | catalog:catalog_offer | — | registry=search; registryId=catalog:catalog_offer; specialistRoute=search | fact-ref |
200
- | search:catalog:catalog_option_schema_template | specialized-registry | catalog:catalog_option_schema_template | — | registry=search; registryId=catalog:catalog_option_schema_template; specialistRoute=search | fact-ref |
201
- | search:catalog:catalog_price_kind | specialized-registry | catalog:catalog_price_kind | — | registry=search; registryId=catalog:catalog_price_kind; specialistRoute=search | fact-ref |
202
- | search:catalog:catalog_product | specialized-registry | catalog:catalog_product | — | registry=search; registryId=catalog:catalog_product; specialistRoute=search | fact-ref |
203
- | search:catalog:catalog_product_category | specialized-registry | catalog:catalog_product_category | — | registry=search; registryId=catalog:catalog_product_category; specialistRoute=search | fact-ref |
204
- | search:catalog:catalog_product_tag | specialized-registry | catalog:catalog_product_tag | — | registry=search; registryId=catalog:catalog_product_tag; specialistRoute=search | fact-ref |
205
- | search:catalog:catalog_product_unit_conversion | specialized-registry | catalog:catalog_product_unit_conversion | — | registry=search; registryId=catalog:catalog_product_unit_conversion; specialistRoute=search | fact-ref |
206
- | search:catalog:catalog_product_variant | specialized-registry | catalog:catalog_product_variant | — | registry=search; registryId=catalog:catalog_product_variant; specialistRoute=search | fact-ref |
207
- | catalog:low-stock-notification | subscriber | catalog.product.stock_low | async-delivery | event=catalog.product.stock_low; persistent=true; subscriberId=catalog:low-stock-notification; sync=false | fact-ref |
247
+ | wms | response-enricher | entity:catalog:catalog_product @catalog | bound | entity:catalog:catalog_product:crud-response-enricher | wms.catalog-product-inventory · [node_modules/@open-mercato/core/src/modules/wms/data/enrichers.ts](../../../node_modules/@open-mercato/core/src/modules/wms/data/enrichers.ts) |
248
+ | wms | api-interceptor | api-route:catalog/products @catalog | bound | api-route:catalog/products:POST:api-interceptor-bridge | wms.catalog-products.inventory-profile-sync · [node_modules/@open-mercato/core/src/modules/wms/api/interceptors.ts](../../../node_modules/@open-mercato/core/src/modules/wms/api/interceptors.ts) |
249
+ | wms | api-interceptor | api-route:catalog/products @catalog | bound | api-route:catalog/products:PUT:api-interceptor-bridge | wms.catalog-products.inventory-profile-sync · [node_modules/@open-mercato/core/src/modules/wms/api/interceptors.ts](../../../node_modules/@open-mercato/core/src/modules/wms/api/interceptors.ts) |
250
+ | wms | response-enricher | entity:catalog:catalog_product_variant @catalog | bound | entity:catalog:catalog_product_variant:crud-response-enricher | wms.catalog-variant-inventory · [node_modules/@open-mercato/core/src/modules/wms/data/enrichers.ts](../../../node_modules/@open-mercato/core/src/modules/wms/data/enrichers.ts) |
251
+ | wms | api-interceptor | api-route:catalog/variants @catalog | bound | api-route:catalog/variants:POST:api-interceptor-bridge | wms.catalog-variants.inventory-profile-sync · [node_modules/@open-mercato/core/src/modules/wms/api/interceptors.ts](../../../node_modules/@open-mercato/core/src/modules/wms/api/interceptors.ts) |
252
+ | wms | api-interceptor | api-route:catalog/variants @catalog | bound | api-route:catalog/variants:PUT:api-interceptor-bridge | wms.catalog-variants.inventory-profile-sync · [node_modules/@open-mercato/core/src/modules/wms/api/interceptors.ts](../../../node_modules/@open-mercato/core/src/modules/wms/api/interceptors.ts) |
253
+ | wms | crud-form | widget-spot:crud-form:catalog.product:fields @catalog | bound | widget-spot:crud-form:catalog.product:fields:widget-injection-consumer | wms.injection.catalog-inventory-profile@crud-form:catalog.product:fields · [node_modules/@open-mercato/core/src/modules/wms/widgets/injection-table.ts](../../../node_modules/@open-mercato/core/src/modules/wms/widgets/injection-table.ts) |
254
+
255
+ ## Contribution resolutions
256
+
257
+ | Contribution | Target | Resolution | Activations | Source |
258
+ |---|---|---|---|---|
259
+ | ai:catalog.apply_attribute_extraction | module:catalog.apply_attribute_extraction | capability-only | — | [node_modules/@open-mercato/core/src/modules/catalog/ai-tools/mutation-pack.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/ai-tools/mutation-pack.ts) |
260
+ | ai:catalog.bulk_update_products | module:catalog.bulk_update_products | capability-only | — | [node_modules/@open-mercato/core/src/modules/catalog/ai-tools/mutation-pack.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/ai-tools/mutation-pack.ts) |
261
+ | ai:catalog.catalog_assistant | module:catalog.catalog_assistant | capability-only | — | [node_modules/@open-mercato/core/src/modules/catalog/ai-agents.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/ai-agents.ts) |
262
+ | ai:catalog.draft_description_from_attributes | module:catalog.draft_description_from_attributes | capability-only | — | [node_modules/@open-mercato/core/src/modules/catalog/ai-tools/authoring-pack.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/ai-tools/authoring-pack.ts) |
263
+ | ai:catalog.draft_description_from_media | module:catalog.draft_description_from_media | capability-only | — | [node_modules/@open-mercato/core/src/modules/catalog/ai-tools/authoring-pack.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/ai-tools/authoring-pack.ts) |
264
+ | ai:catalog.extract_attributes_from_description | module:catalog.extract_attributes_from_description | capability-only | — | [node_modules/@open-mercato/core/src/modules/catalog/ai-tools/authoring-pack.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/ai-tools/authoring-pack.ts) |
265
+ | ai:catalog.get_attribute_schema | module:catalog.get_attribute_schema | capability-only | — | [node_modules/@open-mercato/core/src/modules/catalog/ai-tools/merchandising-pack.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/ai-tools/merchandising-pack.ts) |
266
+ | ai:catalog.get_category_brief | module:catalog.get_category_brief | capability-only | — | [node_modules/@open-mercato/core/src/modules/catalog/ai-tools/merchandising-pack.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/ai-tools/merchandising-pack.ts) |
267
+ | ai:catalog.get_category | module:catalog.get_category | capability-only | — | [node_modules/@open-mercato/core/src/modules/catalog/ai-tools/categories-pack.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/ai-tools/categories-pack.ts) |
268
+ | ai:catalog.get_product_bundle | module:catalog.get_product_bundle | capability-only | — | [node_modules/@open-mercato/core/src/modules/catalog/ai-tools/merchandising-pack.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/ai-tools/merchandising-pack.ts) |
269
+ | ai:catalog.get_product_media | module:catalog.get_product_media | capability-only | — | [node_modules/@open-mercato/core/src/modules/catalog/ai-tools/merchandising-pack.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/ai-tools/merchandising-pack.ts) |
270
+ | ai:catalog.get_product | module:catalog.get_product | capability-only | — | [node_modules/@open-mercato/core/src/modules/catalog/ai-tools/products-pack.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/ai-tools/products-pack.ts) |
271
+ | ai:catalog.list_categories | module:catalog.list_categories | capability-only | — | [node_modules/@open-mercato/core/src/modules/catalog/ai-tools/categories-pack.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/ai-tools/categories-pack.ts) |
272
+ | ai:catalog.list_offers | module:catalog.list_offers | capability-only | — | [node_modules/@open-mercato/core/src/modules/catalog/ai-tools/prices-offers-pack.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/ai-tools/prices-offers-pack.ts) |
273
+ | ai:catalog.list_option_schemas | module:catalog.list_option_schemas | capability-only | — | [node_modules/@open-mercato/core/src/modules/catalog/ai-tools/configuration-pack.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/ai-tools/configuration-pack.ts) |
274
+ | ai:catalog.list_price_kinds_base | module:catalog.list_price_kinds_base | capability-only | — | [node_modules/@open-mercato/core/src/modules/catalog/ai-tools/prices-offers-pack.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/ai-tools/prices-offers-pack.ts) |
275
+ | ai:catalog.list_price_kinds | module:catalog.list_price_kinds | capability-only | — | [node_modules/@open-mercato/core/src/modules/catalog/ai-tools/merchandising-pack.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/ai-tools/merchandising-pack.ts) |
276
+ | ai:catalog.list_prices | module:catalog.list_prices | capability-only | — | [node_modules/@open-mercato/core/src/modules/catalog/ai-tools/prices-offers-pack.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/ai-tools/prices-offers-pack.ts) |
277
+ | ai:catalog.list_product_media | module:catalog.list_product_media | capability-only | — | [node_modules/@open-mercato/core/src/modules/catalog/ai-tools/media-tags-pack.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/ai-tools/media-tags-pack.ts) |
278
+ | ai:catalog.list_product_tags | module:catalog.list_product_tags | capability-only | — | [node_modules/@open-mercato/core/src/modules/catalog/ai-tools/media-tags-pack.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/ai-tools/media-tags-pack.ts) |
279
+ | ai:catalog.list_products | module:catalog.list_products | capability-only | — | [node_modules/@open-mercato/core/src/modules/catalog/ai-tools/products-pack.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/ai-tools/products-pack.ts) |
280
+ | ai:catalog.list_selected_products | module:catalog.list_selected_products | capability-only | — | [node_modules/@open-mercato/core/src/modules/catalog/ai-tools/merchandising-pack.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/ai-tools/merchandising-pack.ts) |
281
+ | ai:catalog.list_unit_conversions | module:catalog.list_unit_conversions | capability-only | — | [node_modules/@open-mercato/core/src/modules/catalog/ai-tools/configuration-pack.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/ai-tools/configuration-pack.ts) |
282
+ | ai:catalog.list_variants | module:catalog.list_variants | capability-only | — | [node_modules/@open-mercato/core/src/modules/catalog/ai-tools/variants-pack.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/ai-tools/variants-pack.ts) |
283
+ | ai:catalog.merchandising_assistant | module:catalog.merchandising_assistant | capability-only | — | [node_modules/@open-mercato/core/src/modules/catalog/ai-agents.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/ai-agents.ts) |
284
+ | ai:catalog.search_products | module:catalog.search_products | capability-only | — | [node_modules/@open-mercato/core/src/modules/catalog/ai-tools/merchandising-pack.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/ai-tools/merchandising-pack.ts) |
285
+ | ai:catalog.show_stats | module:catalog.show_stats | capability-only | — | [node_modules/@open-mercato/core/src/modules/catalog/ai-tools/stats-pack.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/ai-tools/stats-pack.ts) |
286
+ | ai:catalog.suggest_price_adjustment | module:catalog.suggest_price_adjustment | capability-only | — | [node_modules/@open-mercato/core/src/modules/catalog/ai-tools/authoring-pack.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/ai-tools/authoring-pack.ts) |
287
+ | ai:catalog.suggest_title_variants | module:catalog.suggest_title_variants | capability-only | — | [node_modules/@open-mercato/core/src/modules/catalog/ai-tools/authoring-pack.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/ai-tools/authoring-pack.ts) |
288
+ | ai:catalog.update_product_media_descriptions | module:catalog.update_product_media_descriptions | capability-only | — | [node_modules/@open-mercato/core/src/modules/catalog/ai-tools/mutation-pack.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/ai-tools/mutation-pack.ts) |
289
+ | ai:catalog.update_product | module:catalog.update_product | capability-only | — | [node_modules/@open-mercato/core/src/modules/catalog/ai-tools/mutation-pack.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/ai-tools/mutation-pack.ts) |
290
+ | catalog:low-stock-notification | event:catalog.product.stock_low @catalog | capability-only | — | [node_modules/@open-mercato/core/src/modules/catalog/subscribers/low-stock-notification.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/subscribers/low-stock-notification.ts) |
291
+ | catalog.injection.merchandising-assistant-trigger@data-table:catalog.products:search-trailing | widget-spot:data-table:catalog.products:search-trailing @catalog | bound | widget-spot:data-table:catalog.products:search-trailing:widget-injection-consumer | [node_modules/@open-mercato/core/src/modules/catalog/widgets/injection-table.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/widgets/injection-table.ts) |
292
+ | catalog.injection.product-seo@crud-form:catalog.product | widget-spot:crud-form:catalog.product @catalog | bound | widget-spot:crud-form:catalog.product:widget-injection-consumer | [node_modules/@open-mercato/core/src/modules/catalog/widgets/injection-table.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/widgets/injection-table.ts) |
293
+ | catalog.product.created.browser | event:catalog.product.created @catalog | capability-only | — | [node_modules/@open-mercato/core/src/modules/catalog/events.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/events.ts) |
294
+ | catalog.product.deleted.browser | event:catalog.product.deleted @catalog | capability-only | — | [node_modules/@open-mercato/core/src/modules/catalog/events.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/events.ts) |
295
+ | catalog.product.updated.browser | event:catalog.product.updated @catalog | capability-only | — | [node_modules/@open-mercato/core/src/modules/catalog/events.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/events.ts) |
296
+ | notification:catalog.product.low_stock | module:catalog.product.low_stock | capability-only | — | [node_modules/@open-mercato/core/src/modules/catalog/notifications.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/notifications.ts) |
297
+ | search:catalog:catalog_offer | module:catalog:catalog_offer @catalog | capability-only | — | [node_modules/@open-mercato/core/src/modules/catalog/search.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/search.ts) |
298
+ | search:catalog:catalog_option_schema_template | module:catalog:catalog_option_schema_template @catalog | capability-only | — | [node_modules/@open-mercato/core/src/modules/catalog/search.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/search.ts) |
299
+ | search:catalog:catalog_price_kind | module:catalog:catalog_price_kind @catalog | capability-only | — | [node_modules/@open-mercato/core/src/modules/catalog/search.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/search.ts) |
300
+ | search:catalog:catalog_product_category | module:catalog:catalog_product_category @catalog | capability-only | — | [node_modules/@open-mercato/core/src/modules/catalog/search.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/search.ts) |
301
+ | search:catalog:catalog_product_tag | module:catalog:catalog_product_tag @catalog | capability-only | — | [node_modules/@open-mercato/core/src/modules/catalog/search.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/search.ts) |
302
+ | search:catalog:catalog_product_unit_conversion | module:catalog:catalog_product_unit_conversion @catalog | capability-only | — | [node_modules/@open-mercato/core/src/modules/catalog/search.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/search.ts) |
303
+ | search:catalog:catalog_product_variant | module:catalog:catalog_product_variant @catalog | capability-only | — | [node_modules/@open-mercato/core/src/modules/catalog/search.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/search.ts) |
304
+ | search:catalog:catalog_product | module:catalog:catalog_product @catalog | capability-only | — | [node_modules/@open-mercato/core/src/modules/catalog/search.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/search.ts) |
208
305
 
209
306
  ## UMES diagnostics
210
307
 
@@ -220,7 +317,9 @@ catalog:catalog_product · catalog:catalog_product_variant · catalog:catalog_pr
220
317
 
221
318
  ## Notifications
222
319
 
223
- catalog.product.low_stock
320
+ | Notification ID | Source |
321
+ |---|---|
322
+ | catalog.product.low_stock | [node_modules/@open-mercato/core/src/modules/catalog/notifications.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/notifications.ts) |
224
323
 
225
324
  ## CLI commands
226
325
 
@@ -271,3 +370,133 @@ catalog.product.low_stock
271
370
  |---|---|
272
371
  | catalog.catalog_assistant | [node_modules/@open-mercato/core/src/modules/catalog/ai-agents.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/ai-agents.ts) |
273
372
  | catalog.merchandising_assistant | [node_modules/@open-mercato/core/src/modules/catalog/ai-agents.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/ai-agents.ts) |
373
+
374
+ ## Exact override targets
375
+
376
+ | Domain | Path / key | Supported modes | Referenced fact | Source |
377
+ |---|---|---|---|---|
378
+ | acl | `overrides.acl.features["catalog.categories.manage"]` | disable-replace | aclFeatures:catalog.categories.manage | [node_modules/@open-mercato/core/src/modules/catalog/acl.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/acl.ts) |
379
+ | acl | `overrides.acl.features["catalog.categories.view"]` | disable-replace | aclFeatures:catalog.categories.view | [node_modules/@open-mercato/core/src/modules/catalog/acl.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/acl.ts) |
380
+ | acl | `overrides.acl.features["catalog.pricing.manage"]` | disable-replace | aclFeatures:catalog.pricing.manage | [node_modules/@open-mercato/core/src/modules/catalog/acl.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/acl.ts) |
381
+ | acl | `overrides.acl.features["catalog.products.manage"]` | disable-replace | aclFeatures:catalog.products.manage | [node_modules/@open-mercato/core/src/modules/catalog/acl.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/acl.ts) |
382
+ | acl | `overrides.acl.features["catalog.products.view"]` | disable-replace | aclFeatures:catalog.products.view | [node_modules/@open-mercato/core/src/modules/catalog/acl.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/acl.ts) |
383
+ | acl | `overrides.acl.features["catalog.settings.manage"]` | disable-replace | aclFeatures:catalog.settings.manage | [node_modules/@open-mercato/core/src/modules/catalog/acl.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/acl.ts) |
384
+ | acl | `overrides.acl.features["catalog.variants.manage"]` | disable-replace | aclFeatures:catalog.variants.manage | [node_modules/@open-mercato/core/src/modules/catalog/acl.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/acl.ts) |
385
+ | ai | `overrides.ai.agents["catalog.catalog_assistant"]` | disable-replace | aiAgents:catalog.catalog_assistant | [node_modules/@open-mercato/core/src/modules/catalog/ai-agents.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/ai-agents.ts) |
386
+ | ai | `overrides.ai.agents["catalog.merchandising_assistant"]` | disable-replace | aiAgents:catalog.merchandising_assistant | [node_modules/@open-mercato/core/src/modules/catalog/ai-agents.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/ai-agents.ts) |
387
+ | ai | `overrides.ai.tools["catalog.apply_attribute_extraction"]` | disable-replace | aiTools:catalog.apply_attribute_extraction | [node_modules/@open-mercato/core/src/modules/catalog/ai-tools/mutation-pack.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/ai-tools/mutation-pack.ts) |
388
+ | ai | `overrides.ai.tools["catalog.bulk_update_products"]` | disable-replace | aiTools:catalog.bulk_update_products | [node_modules/@open-mercato/core/src/modules/catalog/ai-tools/mutation-pack.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/ai-tools/mutation-pack.ts) |
389
+ | ai | `overrides.ai.tools["catalog.draft_description_from_attributes"]` | disable-replace | aiTools:catalog.draft_description_from_attributes | [node_modules/@open-mercato/core/src/modules/catalog/ai-tools/authoring-pack.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/ai-tools/authoring-pack.ts) |
390
+ | ai | `overrides.ai.tools["catalog.draft_description_from_media"]` | disable-replace | aiTools:catalog.draft_description_from_media | [node_modules/@open-mercato/core/src/modules/catalog/ai-tools/authoring-pack.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/ai-tools/authoring-pack.ts) |
391
+ | ai | `overrides.ai.tools["catalog.extract_attributes_from_description"]` | disable-replace | aiTools:catalog.extract_attributes_from_description | [node_modules/@open-mercato/core/src/modules/catalog/ai-tools/authoring-pack.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/ai-tools/authoring-pack.ts) |
392
+ | ai | `overrides.ai.tools["catalog.get_attribute_schema"]` | disable-replace | aiTools:catalog.get_attribute_schema | [node_modules/@open-mercato/core/src/modules/catalog/ai-tools/merchandising-pack.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/ai-tools/merchandising-pack.ts) |
393
+ | ai | `overrides.ai.tools["catalog.get_category"]` | disable-replace | aiTools:catalog.get_category | [node_modules/@open-mercato/core/src/modules/catalog/ai-tools/categories-pack.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/ai-tools/categories-pack.ts) |
394
+ | ai | `overrides.ai.tools["catalog.get_category_brief"]` | disable-replace | aiTools:catalog.get_category_brief | [node_modules/@open-mercato/core/src/modules/catalog/ai-tools/merchandising-pack.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/ai-tools/merchandising-pack.ts) |
395
+ | ai | `overrides.ai.tools["catalog.get_product"]` | disable-replace | aiTools:catalog.get_product | [node_modules/@open-mercato/core/src/modules/catalog/ai-tools/products-pack.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/ai-tools/products-pack.ts) |
396
+ | ai | `overrides.ai.tools["catalog.get_product_bundle"]` | disable-replace | aiTools:catalog.get_product_bundle | [node_modules/@open-mercato/core/src/modules/catalog/ai-tools/merchandising-pack.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/ai-tools/merchandising-pack.ts) |
397
+ | ai | `overrides.ai.tools["catalog.get_product_media"]` | disable-replace | aiTools:catalog.get_product_media | [node_modules/@open-mercato/core/src/modules/catalog/ai-tools/merchandising-pack.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/ai-tools/merchandising-pack.ts) |
398
+ | ai | `overrides.ai.tools["catalog.list_categories"]` | disable-replace | aiTools:catalog.list_categories | [node_modules/@open-mercato/core/src/modules/catalog/ai-tools/categories-pack.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/ai-tools/categories-pack.ts) |
399
+ | ai | `overrides.ai.tools["catalog.list_offers"]` | disable-replace | aiTools:catalog.list_offers | [node_modules/@open-mercato/core/src/modules/catalog/ai-tools/prices-offers-pack.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/ai-tools/prices-offers-pack.ts) |
400
+ | ai | `overrides.ai.tools["catalog.list_option_schemas"]` | disable-replace | aiTools:catalog.list_option_schemas | [node_modules/@open-mercato/core/src/modules/catalog/ai-tools/configuration-pack.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/ai-tools/configuration-pack.ts) |
401
+ | ai | `overrides.ai.tools["catalog.list_price_kinds"]` | disable-replace | aiTools:catalog.list_price_kinds | [node_modules/@open-mercato/core/src/modules/catalog/ai-tools/merchandising-pack.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/ai-tools/merchandising-pack.ts) |
402
+ | ai | `overrides.ai.tools["catalog.list_price_kinds_base"]` | disable-replace | aiTools:catalog.list_price_kinds_base | [node_modules/@open-mercato/core/src/modules/catalog/ai-tools/prices-offers-pack.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/ai-tools/prices-offers-pack.ts) |
403
+ | ai | `overrides.ai.tools["catalog.list_prices"]` | disable-replace | aiTools:catalog.list_prices | [node_modules/@open-mercato/core/src/modules/catalog/ai-tools/prices-offers-pack.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/ai-tools/prices-offers-pack.ts) |
404
+ | ai | `overrides.ai.tools["catalog.list_product_media"]` | disable-replace | aiTools:catalog.list_product_media | [node_modules/@open-mercato/core/src/modules/catalog/ai-tools/media-tags-pack.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/ai-tools/media-tags-pack.ts) |
405
+ | ai | `overrides.ai.tools["catalog.list_product_tags"]` | disable-replace | aiTools:catalog.list_product_tags | [node_modules/@open-mercato/core/src/modules/catalog/ai-tools/media-tags-pack.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/ai-tools/media-tags-pack.ts) |
406
+ | ai | `overrides.ai.tools["catalog.list_products"]` | disable-replace | aiTools:catalog.list_products | [node_modules/@open-mercato/core/src/modules/catalog/ai-tools/products-pack.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/ai-tools/products-pack.ts) |
407
+ | ai | `overrides.ai.tools["catalog.list_selected_products"]` | disable-replace | aiTools:catalog.list_selected_products | [node_modules/@open-mercato/core/src/modules/catalog/ai-tools/merchandising-pack.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/ai-tools/merchandising-pack.ts) |
408
+ | ai | `overrides.ai.tools["catalog.list_unit_conversions"]` | disable-replace | aiTools:catalog.list_unit_conversions | [node_modules/@open-mercato/core/src/modules/catalog/ai-tools/configuration-pack.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/ai-tools/configuration-pack.ts) |
409
+ | ai | `overrides.ai.tools["catalog.list_variants"]` | disable-replace | aiTools:catalog.list_variants | [node_modules/@open-mercato/core/src/modules/catalog/ai-tools/variants-pack.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/ai-tools/variants-pack.ts) |
410
+ | ai | `overrides.ai.tools["catalog.search_products"]` | disable-replace | aiTools:catalog.search_products | [node_modules/@open-mercato/core/src/modules/catalog/ai-tools/merchandising-pack.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/ai-tools/merchandising-pack.ts) |
411
+ | ai | `overrides.ai.tools["catalog.show_stats"]` | disable-replace | aiTools:catalog.show_stats | [node_modules/@open-mercato/core/src/modules/catalog/ai-tools/stats-pack.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/ai-tools/stats-pack.ts) |
412
+ | ai | `overrides.ai.tools["catalog.suggest_price_adjustment"]` | disable-replace | aiTools:catalog.suggest_price_adjustment | [node_modules/@open-mercato/core/src/modules/catalog/ai-tools/authoring-pack.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/ai-tools/authoring-pack.ts) |
413
+ | ai | `overrides.ai.tools["catalog.suggest_title_variants"]` | disable-replace | aiTools:catalog.suggest_title_variants | [node_modules/@open-mercato/core/src/modules/catalog/ai-tools/authoring-pack.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/ai-tools/authoring-pack.ts) |
414
+ | ai | `overrides.ai.tools["catalog.update_product"]` | disable-replace | aiTools:catalog.update_product | [node_modules/@open-mercato/core/src/modules/catalog/ai-tools/mutation-pack.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/ai-tools/mutation-pack.ts) |
415
+ | ai | `overrides.ai.tools["catalog.update_product_media_descriptions"]` | disable-replace | aiTools:catalog.update_product_media_descriptions | [node_modules/@open-mercato/core/src/modules/catalog/ai-tools/mutation-pack.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/ai-tools/mutation-pack.ts) |
416
+ | cli | `overrides.cli["seed-examples"]` | disable-replace | cliCommands:seed-examples | [node_modules/@open-mercato/core/src/modules/catalog/cli.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/cli.ts) |
417
+ | cli | `overrides.cli["seed-examples-bundle"]` | disable-replace | cliCommands:seed-examples-bundle | [node_modules/@open-mercato/core/src/modules/catalog/cli.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/cli.ts) |
418
+ | cli | `overrides.cli["seed-price-kinds"]` | disable-replace | cliCommands:seed-price-kinds | [node_modules/@open-mercato/core/src/modules/catalog/cli.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/cli.ts) |
419
+ | cli | `overrides.cli["seed-units"]` | disable-replace | cliCommands:seed-units | [node_modules/@open-mercato/core/src/modules/catalog/cli.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/cli.ts) |
420
+ | di | `overrides.di["catalogPricingService"]` | disable-replace | ownedContracts.di-registration:catalogPricingService | [node_modules/@open-mercato/core/src/modules/catalog/di.ts:13](../../../node_modules/@open-mercato/core/src/modules/catalog/di.ts#L13) |
421
+ | di | `overrides.di["CatalogProduct"]` | disable-replace | ownedContracts.di-registration:CatalogProduct | [node_modules/@open-mercato/core/src/modules/catalog/di.ts:18](../../../node_modules/@open-mercato/core/src/modules/catalog/di.ts#L18) |
422
+ | di | `overrides.di["CatalogProductPrice"]` | disable-replace | ownedContracts.di-registration:CatalogProductPrice | [node_modules/@open-mercato/core/src/modules/catalog/di.ts:19](../../../node_modules/@open-mercato/core/src/modules/catalog/di.ts#L19) |
423
+ | events | `overrides.events.subscribers["catalog:low-stock-notification"]` | disable-replace | extensionSurfaces.contributions:catalog:low-stock-notification | [node_modules/@open-mercato/core/src/modules/catalog/subscribers/low-stock-notification.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/subscribers/low-stock-notification.ts) |
424
+ | notifications | `overrides.notifications.types["catalog.product.low_stock"]` | disable-replace | notifications:catalog.product.low_stock | [node_modules/@open-mercato/core/src/modules/catalog/notifications.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/notifications.ts) |
425
+ | routes | `overrides.routes.pages["backend:/backend/catalog/categories"]` | disable-replace | backendPages:/backend/catalog/categories | [node_modules/@open-mercato/core/src/modules/catalog/backend/catalog/categories/page.tsx](../../../node_modules/@open-mercato/core/src/modules/catalog/backend/catalog/categories/page.tsx) |
426
+ | routes | `overrides.routes.pages["backend:/backend/catalog/categories/[id]/edit"]` | disable-replace | backendPages:/backend/catalog/categories/[id]/edit | [node_modules/@open-mercato/core/src/modules/catalog/backend/catalog/categories/[id]/edit/page.tsx](../../../node_modules/@open-mercato/core/src/modules/catalog/backend/catalog/categories/[id]/edit/page.tsx) |
427
+ | routes | `overrides.routes.pages["backend:/backend/catalog/categories/create"]` | disable-replace | backendPages:/backend/catalog/categories/create | [node_modules/@open-mercato/core/src/modules/catalog/backend/catalog/categories/create/page.tsx](../../../node_modules/@open-mercato/core/src/modules/catalog/backend/catalog/categories/create/page.tsx) |
428
+ | routes | `overrides.routes.pages["backend:/backend/catalog/products"]` | disable-replace | backendPages:/backend/catalog/products | [node_modules/@open-mercato/core/src/modules/catalog/backend/catalog/products/page.tsx](../../../node_modules/@open-mercato/core/src/modules/catalog/backend/catalog/products/page.tsx) |
429
+ | routes | `overrides.routes.pages["backend:/backend/catalog/products/[id]"]` | disable-replace | backendPages:/backend/catalog/products/[id] | [node_modules/@open-mercato/core/src/modules/catalog/backend/catalog/products/[id]/page.tsx](../../../node_modules/@open-mercato/core/src/modules/catalog/backend/catalog/products/[id]/page.tsx) |
430
+ | routes | `overrides.routes.pages["backend:/backend/catalog/products/[productId]/variants/[variantId]"]` | disable-replace | backendPages:/backend/catalog/products/[productId]/variants/[variantId] | [node_modules/@open-mercato/core/src/modules/catalog/backend/catalog/products/[productId]/variants/[variantId]/page.tsx](../../../node_modules/@open-mercato/core/src/modules/catalog/backend/catalog/products/[productId]/variants/[variantId]/page.tsx) |
431
+ | routes | `overrides.routes.pages["backend:/backend/catalog/products/[productId]/variants/create"]` | disable-replace | backendPages:/backend/catalog/products/[productId]/variants/create | [node_modules/@open-mercato/core/src/modules/catalog/backend/catalog/products/[productId]/variants/create/page.tsx](../../../node_modules/@open-mercato/core/src/modules/catalog/backend/catalog/products/[productId]/variants/create/page.tsx) |
432
+ | routes | `overrides.routes.pages["backend:/backend/catalog/products/create"]` | disable-replace | backendPages:/backend/catalog/products/create | [node_modules/@open-mercato/core/src/modules/catalog/backend/catalog/products/create/page.tsx](../../../node_modules/@open-mercato/core/src/modules/catalog/backend/catalog/products/create/page.tsx) |
433
+ | routes | `overrides.routes.pages["backend:/backend/config/catalog"]` | disable-replace | backendPages:/backend/config/catalog | [node_modules/@open-mercato/core/src/modules/catalog/backend/config/catalog/page.tsx](../../../node_modules/@open-mercato/core/src/modules/catalog/backend/config/catalog/page.tsx) |
434
+ | setup | `overrides.setup.defaultRoleFeatures` | replace | ownedContracts.setup:catalog:setup | [node_modules/@open-mercato/core/src/modules/catalog/setup.ts:4](../../../node_modules/@open-mercato/core/src/modules/catalog/setup.ts#L4) |
435
+ | setup | `overrides.setup.seedDefaults` | replace | ownedContracts.setup:catalog:setup | [node_modules/@open-mercato/core/src/modules/catalog/setup.ts:4](../../../node_modules/@open-mercato/core/src/modules/catalog/setup.ts#L4) |
436
+ | setup | `overrides.setup.seedExamples` | replace | ownedContracts.setup:catalog:setup | [node_modules/@open-mercato/core/src/modules/catalog/setup.ts:4](../../../node_modules/@open-mercato/core/src/modules/catalog/setup.ts#L4) |
437
+ | widgets | `overrides.widgets.injection["catalog.injection.merchandising-assistant-trigger"]` | disable-replace | extensionSurfaces.contributions:catalog.injection.merchandising-assistant-trigger@data-table:catalog.products:search-trailing | [node_modules/@open-mercato/core/src/modules/catalog/widgets/injection-table.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/widgets/injection-table.ts) |
438
+ | widgets | `overrides.widgets.injection["catalog.injection.product-seo"]` | disable-replace | extensionSurfaces.contributions:catalog.injection.product-seo@crud-form:catalog.product | [node_modules/@open-mercato/core/src/modules/catalog/widgets/injection-table.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/widgets/injection-table.ts) |
439
+ | workers | `overrides.workers["catalog:product-bulk-delete"]` | disable-replace | ownedContracts.worker:catalog:product-bulk-delete | [node_modules/@open-mercato/core/src/modules/catalog/workers/catalog-product-bulk-delete.ts:14](../../../node_modules/@open-mercato/core/src/modules/catalog/workers/catalog-product-bulk-delete.ts#L14) |
440
+
441
+ ## Owned contract — module metadata
442
+
443
+ | ID | Metadata | Source |
444
+ |---|---|---|
445
+ | catalog | ejectable=true; name=catalog; version=0.1.0 | [node_modules/@open-mercato/core/src/modules/catalog/index.ts:3](../../../node_modules/@open-mercato/core/src/modules/catalog/index.ts#L3) |
446
+
447
+ ## Domain commands
448
+
449
+ | ID | Metadata | Source |
450
+ |---|---|---|
451
+ | catalog.categories.create | — | [node_modules/@open-mercato/core/src/modules/catalog/commands/categories.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/commands/categories.ts) |
452
+ | catalog.categories.delete | — | [node_modules/@open-mercato/core/src/modules/catalog/commands/categories.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/commands/categories.ts) |
453
+ | catalog.categories.update | — | [node_modules/@open-mercato/core/src/modules/catalog/commands/categories.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/commands/categories.ts) |
454
+ | catalog.offers.create | — | [node_modules/@open-mercato/core/src/modules/catalog/commands/offers.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/commands/offers.ts) |
455
+ | catalog.offers.delete | — | [node_modules/@open-mercato/core/src/modules/catalog/commands/offers.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/commands/offers.ts) |
456
+ | catalog.offers.update | — | [node_modules/@open-mercato/core/src/modules/catalog/commands/offers.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/commands/offers.ts) |
457
+ | catalog.optionSchemas.create | — | [node_modules/@open-mercato/core/src/modules/catalog/commands/optionSchemas.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/commands/optionSchemas.ts) |
458
+ | catalog.optionSchemas.delete | — | [node_modules/@open-mercato/core/src/modules/catalog/commands/optionSchemas.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/commands/optionSchemas.ts) |
459
+ | catalog.optionSchemas.update | — | [node_modules/@open-mercato/core/src/modules/catalog/commands/optionSchemas.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/commands/optionSchemas.ts) |
460
+ | catalog.priceKinds.create | — | [node_modules/@open-mercato/core/src/modules/catalog/commands/priceKinds.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/commands/priceKinds.ts) |
461
+ | catalog.priceKinds.delete | — | [node_modules/@open-mercato/core/src/modules/catalog/commands/priceKinds.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/commands/priceKinds.ts) |
462
+ | catalog.priceKinds.update | — | [node_modules/@open-mercato/core/src/modules/catalog/commands/priceKinds.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/commands/priceKinds.ts) |
463
+ | catalog.prices.create | — | [node_modules/@open-mercato/core/src/modules/catalog/commands/prices.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/commands/prices.ts) |
464
+ | catalog.prices.delete | — | [node_modules/@open-mercato/core/src/modules/catalog/commands/prices.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/commands/prices.ts) |
465
+ | catalog.prices.update | — | [node_modules/@open-mercato/core/src/modules/catalog/commands/prices.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/commands/prices.ts) |
466
+ | catalog.product-unit-conversions.create | — | [node_modules/@open-mercato/core/src/modules/catalog/commands/productUnitConversions.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/commands/productUnitConversions.ts) |
467
+ | catalog.product-unit-conversions.delete | — | [node_modules/@open-mercato/core/src/modules/catalog/commands/productUnitConversions.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/commands/productUnitConversions.ts) |
468
+ | catalog.product-unit-conversions.update | — | [node_modules/@open-mercato/core/src/modules/catalog/commands/productUnitConversions.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/commands/productUnitConversions.ts) |
469
+ | catalog.products.create | — | [node_modules/@open-mercato/core/src/modules/catalog/commands/products.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/commands/products.ts) |
470
+ | catalog.products.delete | — | [node_modules/@open-mercato/core/src/modules/catalog/commands/products.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/commands/products.ts) |
471
+ | catalog.products.update | — | [node_modules/@open-mercato/core/src/modules/catalog/commands/products.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/commands/products.ts) |
472
+ | catalog.variants.create | — | [node_modules/@open-mercato/core/src/modules/catalog/commands/variants.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/commands/variants.ts) |
473
+ | catalog.variants.delete | — | [node_modules/@open-mercato/core/src/modules/catalog/commands/variants.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/commands/variants.ts) |
474
+ | catalog.variants.update | — | [node_modules/@open-mercato/core/src/modules/catalog/commands/variants.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/commands/variants.ts) |
475
+
476
+ ## Workers
477
+
478
+ | ID | Metadata | Source |
479
+ |---|---|---|
480
+ | catalog:product-bulk-delete | concurrency=1 | [node_modules/@open-mercato/core/src/modules/catalog/workers/catalog-product-bulk-delete.ts:14](../../../node_modules/@open-mercato/core/src/modules/catalog/workers/catalog-product-bulk-delete.ts#L14) |
481
+
482
+ ## Setup
483
+
484
+ | ID | Metadata | Source |
485
+ |---|---|---|
486
+ | catalog:setup | hooks=seedDefaults, seedExamples; roles=admin, employee | [node_modules/@open-mercato/core/src/modules/catalog/setup.ts:4](../../../node_modules/@open-mercato/core/src/modules/catalog/setup.ts#L4) |
487
+
488
+ ## DI registrations (rich)
489
+
490
+ | Token | Kind | Lifetime | Injection | Provider | Source |
491
+ |---|---|---|---|---|---|
492
+ | catalogPricingService | function | singleton | proxy | — | [node_modules/@open-mercato/core/src/modules/catalog/di.ts:13](../../../node_modules/@open-mercato/core/src/modules/catalog/di.ts#L13) |
493
+ | CatalogProduct | value | — | — | — | [node_modules/@open-mercato/core/src/modules/catalog/di.ts:18](../../../node_modules/@open-mercato/core/src/modules/catalog/di.ts#L18) |
494
+ | CatalogProductPrice | value | — | — | — | [node_modules/@open-mercato/core/src/modules/catalog/di.ts:19](../../../node_modules/@open-mercato/core/src/modules/catalog/di.ts#L19) |
495
+
496
+ ## Custom entities
497
+
498
+ | ID | Metadata | Source |
499
+ |---|---|---|
500
+ | catalog:catalog_product | — | [node_modules/@open-mercato/core/src/modules/catalog/ce.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/ce.ts) |
501
+ | catalog:catalog_product_price | — | [node_modules/@open-mercato/core/src/modules/catalog/ce.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/ce.ts) |
502
+ | catalog:catalog_product_variant | — | [node_modules/@open-mercato/core/src/modules/catalog/ce.ts](../../../node_modules/@open-mercato/core/src/modules/catalog/ce.ts) |