@open-mercato/cli 0.6.7-develop.6795.1.8a3f27921c → 0.6.7-develop.6814.1.0627c7e9f1

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 (95) 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/manifest.json +2 -2
  61. package/dist/agentic/shared/AGENTS.md.template +6 -5
  62. package/dist/agentic/shared/ai/harness/cases.json +3 -0
  63. package/dist/agentic/shared/ai/lessons/_template.md +16 -0
  64. package/dist/agentic/shared/ai/lessons.md +26 -3
  65. package/dist/agentic/shared/ai/skills/om-evolve-harness/SKILL.md +7 -6
  66. package/dist/agentic/shared/ai/skills/om-system-extension/references/unified-overrides.md +4 -2
  67. package/dist/agentic/shared/scripts/check-lessons.mjs +178 -0
  68. package/dist/lib/agentic-setup.js +2 -2
  69. package/dist/lib/agentic-setup.js.map +2 -2
  70. package/dist/lib/generators/module-extension-facts.js +652 -24
  71. package/dist/lib/generators/module-extension-facts.js.map +3 -3
  72. package/dist/lib/generators/module-fact-sources.js +70 -0
  73. package/dist/lib/generators/module-fact-sources.js.map +7 -0
  74. package/dist/lib/generators/module-facts.js +1001 -26
  75. package/dist/lib/generators/module-facts.js.map +3 -3
  76. package/dist/lib/generators/module-override-targets.js +688 -0
  77. package/dist/lib/generators/module-override-targets.js.map +7 -0
  78. package/dist/lib/testing/integration.js +5 -0
  79. package/dist/lib/testing/integration.js.map +2 -2
  80. package/package.json +5 -5
  81. package/src/lib/__tests__/agentic-setup.ownership.test.ts +6 -0
  82. package/src/lib/agentic-setup.ts +6 -2
  83. package/src/lib/generators/__tests__/activation-adapter-coverage.test.ts +92 -0
  84. package/src/lib/generators/__tests__/module-extension-activations.test.ts +762 -0
  85. package/src/lib/generators/__tests__/module-extension-facts.test.ts +4 -2
  86. package/src/lib/generators/__tests__/module-facts.bc-guard.test.ts +37 -3
  87. package/src/lib/generators/__tests__/module-facts.owned-contracts.test.ts +561 -0
  88. package/src/lib/generators/__tests__/module-override-targets.roundtrip.test.ts +149 -0
  89. package/src/lib/generators/__tests__/module-override-targets.test.ts +304 -0
  90. package/src/lib/generators/module-extension-facts.ts +923 -27
  91. package/src/lib/generators/module-fact-sources.ts +108 -0
  92. package/src/lib/generators/module-facts.ts +1360 -25
  93. package/src/lib/generators/module-override-targets.ts +863 -0
  94. package/src/lib/testing/__tests__/integration.test.ts +4 -0
  95. package/src/lib/testing/integration.ts +5 -0
@@ -1,34 +1,38 @@
1
1
  # query_index — 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.6814.1.0627c7e9f1; core 0.6.7-develop.6814.1.0627c7e9f1 — R1 staleness stamp -->
3
3
  Source root: [node_modules/@open-mercato/core/src/modules/query_index](../../../node_modules/@open-mercato/core/src/modules/query_index)
4
4
 
5
5
  ## Entities
6
6
 
7
- | Entity ID | Class | Table | Editable | CustomFields |
8
- |---|---|---|---|---|
9
- | query_index:entity_index_row | EntityIndexRow | entity_indexes | yes | no |
10
- | query_index:entity_index_job | EntityIndexJob | entity_index_jobs | no | no |
11
- | query_index:entity_index_coverage | EntityIndexCoverage | entity_index_coverage | no | no |
12
- | query_index:indexer_error_log | IndexerErrorLog | indexer_error_logs | no | no |
13
- | query_index:indexer_status_log | IndexerStatusLog | indexer_status_logs | no | no |
14
- | query_index:search_token | SearchToken | search_tokens | no | no |
7
+ | Entity ID | Class | Table | Editable | CustomFields | Source |
8
+ |---|---|---|---|---|---|
9
+ | query_index:entity_index_row | EntityIndexRow | entity_indexes | yes | no | [node_modules/@open-mercato/core/src/modules/query_index/data/entities.ts](../../../node_modules/@open-mercato/core/src/modules/query_index/data/entities.ts) |
10
+ | query_index:entity_index_job | EntityIndexJob | entity_index_jobs | no | no | [node_modules/@open-mercato/core/src/modules/query_index/data/entities.ts](../../../node_modules/@open-mercato/core/src/modules/query_index/data/entities.ts) |
11
+ | query_index:entity_index_coverage | EntityIndexCoverage | entity_index_coverage | no | no | [node_modules/@open-mercato/core/src/modules/query_index/data/entities.ts](../../../node_modules/@open-mercato/core/src/modules/query_index/data/entities.ts) |
12
+ | query_index:indexer_error_log | IndexerErrorLog | indexer_error_logs | no | no | [node_modules/@open-mercato/core/src/modules/query_index/data/entities.ts](../../../node_modules/@open-mercato/core/src/modules/query_index/data/entities.ts) |
13
+ | query_index:indexer_status_log | IndexerStatusLog | indexer_status_logs | no | no | [node_modules/@open-mercato/core/src/modules/query_index/data/entities.ts](../../../node_modules/@open-mercato/core/src/modules/query_index/data/entities.ts) |
14
+ | query_index:search_token | SearchToken | search_tokens | no | no | [node_modules/@open-mercato/core/src/modules/query_index/data/entities.ts](../../../node_modules/@open-mercato/core/src/modules/query_index/data/entities.ts) |
15
15
 
16
16
  ## Events (8)
17
17
 
18
- | ID | Category | Entity | Browser transport |
19
- |---|---|---|---|
20
- | query_index.coverage.refresh | lifecycle | — | — |
21
- | query_index.coverage.warmup | lifecycle | — | — |
22
- | query_index.delete_one | lifecycle | — | — |
23
- | query_index.purge | lifecycle | — | — |
24
- | query_index.reindex | lifecycle | — | — |
25
- | query_index.upsert_one | lifecycle | — | — |
26
- | query_index.vectorize_one | lifecycle | — | — |
27
- | query_index.vectorize_purge | lifecycle | — | — |
18
+ | ID | Category | Entity | Browser transport | Source |
19
+ |---|---|---|---|---|
20
+ | query_index.coverage.refresh | lifecycle | — | — | [node_modules/@open-mercato/core/src/modules/query_index/events.ts](../../../node_modules/@open-mercato/core/src/modules/query_index/events.ts) |
21
+ | query_index.coverage.warmup | lifecycle | — | — | [node_modules/@open-mercato/core/src/modules/query_index/events.ts](../../../node_modules/@open-mercato/core/src/modules/query_index/events.ts) |
22
+ | query_index.delete_one | lifecycle | — | — | [node_modules/@open-mercato/core/src/modules/query_index/events.ts](../../../node_modules/@open-mercato/core/src/modules/query_index/events.ts) |
23
+ | query_index.purge | lifecycle | — | — | [node_modules/@open-mercato/core/src/modules/query_index/events.ts](../../../node_modules/@open-mercato/core/src/modules/query_index/events.ts) |
24
+ | query_index.reindex | lifecycle | — | — | [node_modules/@open-mercato/core/src/modules/query_index/events.ts](../../../node_modules/@open-mercato/core/src/modules/query_index/events.ts) |
25
+ | query_index.upsert_one | lifecycle | — | — | [node_modules/@open-mercato/core/src/modules/query_index/events.ts](../../../node_modules/@open-mercato/core/src/modules/query_index/events.ts) |
26
+ | query_index.vectorize_one | lifecycle | — | — | [node_modules/@open-mercato/core/src/modules/query_index/events.ts](../../../node_modules/@open-mercato/core/src/modules/query_index/events.ts) |
27
+ | query_index.vectorize_purge | lifecycle | — | — | [node_modules/@open-mercato/core/src/modules/query_index/events.ts](../../../node_modules/@open-mercato/core/src/modules/query_index/events.ts) |
28
28
 
29
29
  ## ACL features (3)
30
30
 
31
- query_index.status.view · query_index.reindex · query_index.purge
31
+ | Feature | Source |
32
+ |---|---|
33
+ | query_index.status.view | [node_modules/@open-mercato/core/src/modules/query_index/acl.ts](../../../node_modules/@open-mercato/core/src/modules/query_index/acl.ts) |
34
+ | query_index.reindex | [node_modules/@open-mercato/core/src/modules/query_index/acl.ts](../../../node_modules/@open-mercato/core/src/modules/query_index/acl.ts) |
35
+ | query_index.purge | [node_modules/@open-mercato/core/src/modules/query_index/acl.ts](../../../node_modules/@open-mercato/core/src/modules/query_index/acl.ts) |
32
36
 
33
37
  ## API routes
34
38
 
@@ -59,43 +63,69 @@ _none_
59
63
 
60
64
  ## UMES hosts
61
65
 
62
- | ID / pattern | Family | Supports | Context | Stability |
63
- |---|---|---|---|---|
64
- | data-table:query_index.status.list | data-table | component-replacement | — | FROZEN |
65
- | data-table:query_index.status.list:bulk-actions | data-table | bulk-action | — | FROZEN |
66
- | data-table:query_index.status.list:columns | data-table | column-widget | — | FROZEN |
67
- | data-table:query_index.status.list:filters | data-table | filter-widget | — | FROZEN |
68
- | data-table:query_index.status.list:footer | data-table | render-widget | — | FROZEN |
69
- | data-table:query_index.status.list:header | data-table | render-widget | — | FROZEN |
70
- | data-table:query_index.status.list:row-actions | data-table | row-action | — | FROZEN |
71
- | data-table:query_index.status.list:search-trailing | data-table | render-widget | — | FROZEN |
72
- | data-table:query_index.status.list:toolbar | data-table | toolbar-widget | — | FROZEN |
73
- | query_index | entity | response-enricher, query-enricher, mutation-guard | tenant-and-organization | STABLE |
74
- | query_index:entity_index_coverage | entity | response-enricher, query-enricher, mutation-guard, entity-extension | tenant-and-organization | STABLE |
75
- | query_index:entity_index_job | entity | response-enricher, query-enricher, mutation-guard, entity-extension | tenant-and-organization | STABLE |
76
- | query_index:entity_index_row | entity | response-enricher, query-enricher, mutation-guard, entity-extension | tenant-and-organization | STABLE |
77
- | query_index:indexer_error_log | entity | response-enricher, query-enricher, mutation-guard, entity-extension | tenant-and-organization | STABLE |
78
- | query_index:indexer_status_log | entity | response-enricher, query-enricher, mutation-guard, entity-extension | tenant-and-organization | STABLE |
79
- | query_index:search_token | entity | response-enricher, query-enricher, mutation-guard, entity-extension | tenant-and-organization | STABLE |
80
- | query_index.coverage.refresh | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE |
81
- | query_index.coverage.warmup | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE |
82
- | query_index.delete_one | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE |
83
- | query_index.purge | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE |
84
- | query_index.reindex | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE |
85
- | query_index.upsert_one | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE |
86
- | query_index.vectorize_one | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE |
87
- | query_index.vectorize_purge | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE |
66
+ | ID / pattern | Family | Supports | Context | Stability | Source |
67
+ |---|---|---|---|---|---|
68
+ | data-table:query_index.status.list | data-table | component-replacement | — | FROZEN | [node_modules/@open-mercato/core/src/modules/query_index/extension-points.ts](../../../node_modules/@open-mercato/core/src/modules/query_index/extension-points.ts) |
69
+ | data-table:query_index.status.list:bulk-actions | data-table | bulk-action | — | FROZEN | [node_modules/@open-mercato/core/src/modules/query_index/extension-points.ts](../../../node_modules/@open-mercato/core/src/modules/query_index/extension-points.ts) |
70
+ | data-table:query_index.status.list:columns | data-table | column-widget | — | FROZEN | [node_modules/@open-mercato/core/src/modules/query_index/extension-points.ts](../../../node_modules/@open-mercato/core/src/modules/query_index/extension-points.ts) |
71
+ | data-table:query_index.status.list:filters | data-table | filter-widget | — | FROZEN | [node_modules/@open-mercato/core/src/modules/query_index/extension-points.ts](../../../node_modules/@open-mercato/core/src/modules/query_index/extension-points.ts) |
72
+ | data-table:query_index.status.list:footer | data-table | render-widget | — | FROZEN | [node_modules/@open-mercato/core/src/modules/query_index/extension-points.ts](../../../node_modules/@open-mercato/core/src/modules/query_index/extension-points.ts) |
73
+ | data-table:query_index.status.list:header | data-table | render-widget | — | FROZEN | [node_modules/@open-mercato/core/src/modules/query_index/extension-points.ts](../../../node_modules/@open-mercato/core/src/modules/query_index/extension-points.ts) |
74
+ | data-table:query_index.status.list:row-actions | data-table | row-action | — | FROZEN | [node_modules/@open-mercato/core/src/modules/query_index/extension-points.ts](../../../node_modules/@open-mercato/core/src/modules/query_index/extension-points.ts) |
75
+ | data-table:query_index.status.list:search-trailing | data-table | render-widget | — | FROZEN | [node_modules/@open-mercato/core/src/modules/query_index/extension-points.ts](../../../node_modules/@open-mercato/core/src/modules/query_index/extension-points.ts) |
76
+ | data-table:query_index.status.list:toolbar | data-table | toolbar-widget | — | FROZEN | [node_modules/@open-mercato/core/src/modules/query_index/extension-points.ts](../../../node_modules/@open-mercato/core/src/modules/query_index/extension-points.ts) |
77
+ | query_index | entity | response-enricher, query-enricher, mutation-guard | tenant-and-organization | STABLE | [node_modules/@open-mercato/core/src/modules/query_index/api/purge.ts](../../../node_modules/@open-mercato/core/src/modules/query_index/api/purge.ts) |
78
+ | query_index:entity_index_coverage | entity | response-enricher, query-enricher, mutation-guard, entity-extension | tenant-and-organization | STABLE | entities:query_index:entity_index_coverage |
79
+ | query_index:entity_index_job | entity | response-enricher, query-enricher, mutation-guard, entity-extension | tenant-and-organization | STABLE | entities:query_index:entity_index_job |
80
+ | query_index:entity_index_row | entity | response-enricher, query-enricher, mutation-guard, entity-extension | tenant-and-organization | STABLE | entities:query_index:entity_index_row |
81
+ | query_index:indexer_error_log | entity | response-enricher, query-enricher, mutation-guard, entity-extension | tenant-and-organization | STABLE | entities:query_index:indexer_error_log |
82
+ | query_index:indexer_status_log | entity | response-enricher, query-enricher, mutation-guard, entity-extension | tenant-and-organization | STABLE | entities:query_index:indexer_status_log |
83
+ | query_index:search_token | entity | response-enricher, query-enricher, mutation-guard, entity-extension | tenant-and-organization | STABLE | entities:query_index:search_token |
84
+ | query_index.coverage.refresh | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE | events:query_index.coverage.refresh |
85
+ | query_index.coverage.warmup | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE | events:query_index.coverage.warmup |
86
+ | query_index.delete_one | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE | events:query_index.delete_one |
87
+ | query_index.purge | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE | events:query_index.purge |
88
+ | query_index.reindex | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE | events:query_index.reindex |
89
+ | query_index.upsert_one | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE | events:query_index.upsert_one |
90
+ | query_index.vectorize_one | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE | events:query_index.vectorize_one |
91
+ | query_index.vectorize_purge | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE | events:query_index.vectorize_purge |
88
92
 
89
93
  ## UMES contributions
90
94
 
91
- | ID | Kind | Target | Phase / operations | Contract | Resolution |
95
+ | ID | Kind | Target | Phase / operations | Contract | Resolution | Source |
96
+ |---|---|---|---|---|---|---|
97
+ | query_index:coverage_refresh | subscriber | query_index.coverage.refresh | before-or-after | event=query_index.coverage.refresh; persistent=false; subscriberId=query_index:coverage_refresh; sync=true | fact-ref | [node_modules/@open-mercato/core/src/modules/query_index/subscribers/coverage_refresh.ts](../../../node_modules/@open-mercato/core/src/modules/query_index/subscribers/coverage_refresh.ts) |
98
+ | query_index:coverage_warmup | subscriber | query_index.coverage.warmup | before-or-after | event=query_index.coverage.warmup; persistent=false; subscriberId=query_index:coverage_warmup; sync=true | fact-ref | [node_modules/@open-mercato/core/src/modules/query_index/subscribers/coverage_warmup.ts](../../../node_modules/@open-mercato/core/src/modules/query_index/subscribers/coverage_warmup.ts) |
99
+ | query_index:delete_one | subscriber | query_index.delete_one | before-or-after | event=query_index.delete_one; persistent=false; subscriberId=query_index:delete_one; sync=true | fact-ref | [node_modules/@open-mercato/core/src/modules/query_index/subscribers/delete_one.ts](../../../node_modules/@open-mercato/core/src/modules/query_index/subscribers/delete_one.ts) |
100
+ | query_index:purge | subscriber | query_index.purge | async-delivery | event=query_index.purge; persistent=true; subscriberId=query_index:purge; sync=false | fact-ref | [node_modules/@open-mercato/core/src/modules/query_index/subscribers/purge.ts](../../../node_modules/@open-mercato/core/src/modules/query_index/subscribers/purge.ts) |
101
+ | query_index:reindex | subscriber | query_index.reindex | async-delivery | event=query_index.reindex; persistent=true; subscriberId=query_index:reindex; sync=false | fact-ref | [node_modules/@open-mercato/core/src/modules/query_index/subscribers/reindex.ts](../../../node_modules/@open-mercato/core/src/modules/query_index/subscribers/reindex.ts) |
102
+ | query_index:upsert_one | subscriber | query_index.upsert_one | before-or-after | event=query_index.upsert_one; persistent=false; subscriberId=query_index:upsert_one; sync=true | fact-ref | [node_modules/@open-mercato/core/src/modules/query_index/subscribers/upsert_one.ts](../../../node_modules/@open-mercato/core/src/modules/query_index/subscribers/upsert_one.ts) |
103
+
104
+ ## Active extension bindings
105
+
106
+ | Activation | Kind | Host | Contribution kinds | Phases | Bridge | Source |
107
+ |---|---|---|---|---|---|---|
108
+ | entity:query_index:mutation-guard | mutation-guard | entity:query_index @query_index | mutation-guard | — | — | [node_modules/@open-mercato/core/src/modules/query_index/api/purge.ts:31](../../../node_modules/@open-mercato/core/src/modules/query_index/api/purge.ts#L31) |
109
+
110
+ ## Incoming installed contributions
111
+
112
+ | Contributor | Kind | Target | Resolution | Activation | Contribution · Source |
92
113
  |---|---|---|---|---|---|
93
- | query_index:coverage_refresh | subscriber | query_index.coverage.refresh | before-or-after | event=query_index.coverage.refresh; persistent=false; subscriberId=query_index:coverage_refresh; sync=true | fact-ref |
94
- | query_index:coverage_warmup | subscriber | query_index.coverage.warmup | before-or-after | event=query_index.coverage.warmup; persistent=false; subscriberId=query_index:coverage_warmup; sync=true | fact-ref |
95
- | query_index:delete_one | subscriber | query_index.delete_one | before-or-after | event=query_index.delete_one; persistent=false; subscriberId=query_index:delete_one; sync=true | fact-ref |
96
- | query_index:purge | subscriber | query_index.purge | async-delivery | event=query_index.purge; persistent=true; subscriberId=query_index:purge; sync=false | fact-ref |
97
- | query_index:reindex | subscriber | query_index.reindex | async-delivery | event=query_index.reindex; persistent=true; subscriberId=query_index:reindex; sync=false | fact-ref |
98
- | query_index:upsert_one | subscriber | query_index.upsert_one | before-or-after | event=query_index.upsert_one; persistent=false; subscriberId=query_index:upsert_one; sync=true | fact-ref |
114
+ | search | subscriber | event:query_index.delete_one @query_index | capability-only | — | search:vector_delete · [node_modules/@open-mercato/search/src/modules/search/subscribers/vector_delete.ts](../../../node_modules/@open-mercato/search/src/modules/search/subscribers/vector_delete.ts) |
115
+ | search | subscriber | event:query_index.vectorize_purge @query_index | capability-only | — | search:vector_purge · [node_modules/@open-mercato/search/src/modules/search/subscribers/vector_purge.ts](../../../node_modules/@open-mercato/search/src/modules/search/subscribers/vector_purge.ts) |
116
+ | search | subscriber | event:query_index.vectorize_one @query_index | capability-only | — | search:vector_upsert · [node_modules/@open-mercato/search/src/modules/search/subscribers/vector_upsert.ts](../../../node_modules/@open-mercato/search/src/modules/search/subscribers/vector_upsert.ts) |
117
+ | translations | subscriber | event:query_index.delete_one @query_index | capability-only | — | translations:cleanup · [node_modules/@open-mercato/core/src/modules/translations/subscribers/cleanup.ts](../../../node_modules/@open-mercato/core/src/modules/translations/subscribers/cleanup.ts) |
118
+
119
+ ## Contribution resolutions
120
+
121
+ | Contribution | Target | Resolution | Activations | Source |
122
+ |---|---|---|---|---|
123
+ | query_index:coverage_refresh | event:query_index.coverage.refresh @query_index | capability-only | — | [node_modules/@open-mercato/core/src/modules/query_index/subscribers/coverage_refresh.ts](../../../node_modules/@open-mercato/core/src/modules/query_index/subscribers/coverage_refresh.ts) |
124
+ | query_index:coverage_warmup | event:query_index.coverage.warmup @query_index | capability-only | — | [node_modules/@open-mercato/core/src/modules/query_index/subscribers/coverage_warmup.ts](../../../node_modules/@open-mercato/core/src/modules/query_index/subscribers/coverage_warmup.ts) |
125
+ | query_index:delete_one | event:query_index.delete_one @query_index | capability-only | — | [node_modules/@open-mercato/core/src/modules/query_index/subscribers/delete_one.ts](../../../node_modules/@open-mercato/core/src/modules/query_index/subscribers/delete_one.ts) |
126
+ | query_index:purge | event:query_index.purge @query_index | capability-only | — | [node_modules/@open-mercato/core/src/modules/query_index/subscribers/purge.ts](../../../node_modules/@open-mercato/core/src/modules/query_index/subscribers/purge.ts) |
127
+ | query_index:reindex | event:query_index.reindex @query_index | capability-only | — | [node_modules/@open-mercato/core/src/modules/query_index/subscribers/reindex.ts](../../../node_modules/@open-mercato/core/src/modules/query_index/subscribers/reindex.ts) |
128
+ | query_index:upsert_one | event:query_index.upsert_one @query_index | capability-only | — | [node_modules/@open-mercato/core/src/modules/query_index/subscribers/upsert_one.ts](../../../node_modules/@open-mercato/core/src/modules/query_index/subscribers/upsert_one.ts) |
99
129
 
100
130
  ## UMES diagnostics
101
131
 
@@ -121,3 +151,35 @@ _none_
121
151
  ## AI agents
122
152
 
123
153
  _none_
154
+
155
+ ## Exact override targets
156
+
157
+ | Domain | Path / key | Supported modes | Referenced fact | Source |
158
+ |---|---|---|---|---|
159
+ | acl | `overrides.acl.features["query_index.purge"]` | disable-replace | aclFeatures:query_index.purge | [node_modules/@open-mercato/core/src/modules/query_index/acl.ts](../../../node_modules/@open-mercato/core/src/modules/query_index/acl.ts) |
160
+ | acl | `overrides.acl.features["query_index.reindex"]` | disable-replace | aclFeatures:query_index.reindex | [node_modules/@open-mercato/core/src/modules/query_index/acl.ts](../../../node_modules/@open-mercato/core/src/modules/query_index/acl.ts) |
161
+ | acl | `overrides.acl.features["query_index.status.view"]` | disable-replace | aclFeatures:query_index.status.view | [node_modules/@open-mercato/core/src/modules/query_index/acl.ts](../../../node_modules/@open-mercato/core/src/modules/query_index/acl.ts) |
162
+ | cli | `overrides.cli["purge"]` | disable-replace | cliCommands:purge | [node_modules/@open-mercato/core/src/modules/query_index/cli.ts](../../../node_modules/@open-mercato/core/src/modules/query_index/cli.ts) |
163
+ | cli | `overrides.cli["rebuild"]` | disable-replace | cliCommands:rebuild | [node_modules/@open-mercato/core/src/modules/query_index/cli.ts](../../../node_modules/@open-mercato/core/src/modules/query_index/cli.ts) |
164
+ | cli | `overrides.cli["rebuild-all"]` | disable-replace | cliCommands:rebuild-all | [node_modules/@open-mercato/core/src/modules/query_index/cli.ts](../../../node_modules/@open-mercato/core/src/modules/query_index/cli.ts) |
165
+ | cli | `overrides.cli["reindex"]` | disable-replace | cliCommands:reindex | [node_modules/@open-mercato/core/src/modules/query_index/cli.ts](../../../node_modules/@open-mercato/core/src/modules/query_index/cli.ts) |
166
+ | events | `overrides.events.subscribers["query_index:coverage_refresh"]` | disable-replace | extensionSurfaces.contributions:query_index:coverage_refresh | [node_modules/@open-mercato/core/src/modules/query_index/subscribers/coverage_refresh.ts](../../../node_modules/@open-mercato/core/src/modules/query_index/subscribers/coverage_refresh.ts) |
167
+ | events | `overrides.events.subscribers["query_index:coverage_warmup"]` | disable-replace | extensionSurfaces.contributions:query_index:coverage_warmup | [node_modules/@open-mercato/core/src/modules/query_index/subscribers/coverage_warmup.ts](../../../node_modules/@open-mercato/core/src/modules/query_index/subscribers/coverage_warmup.ts) |
168
+ | events | `overrides.events.subscribers["query_index:delete_one"]` | disable-replace | extensionSurfaces.contributions:query_index:delete_one | [node_modules/@open-mercato/core/src/modules/query_index/subscribers/delete_one.ts](../../../node_modules/@open-mercato/core/src/modules/query_index/subscribers/delete_one.ts) |
169
+ | events | `overrides.events.subscribers["query_index:purge"]` | disable-replace | extensionSurfaces.contributions:query_index:purge | [node_modules/@open-mercato/core/src/modules/query_index/subscribers/purge.ts](../../../node_modules/@open-mercato/core/src/modules/query_index/subscribers/purge.ts) |
170
+ | events | `overrides.events.subscribers["query_index:reindex"]` | disable-replace | extensionSurfaces.contributions:query_index:reindex | [node_modules/@open-mercato/core/src/modules/query_index/subscribers/reindex.ts](../../../node_modules/@open-mercato/core/src/modules/query_index/subscribers/reindex.ts) |
171
+ | events | `overrides.events.subscribers["query_index:upsert_one"]` | disable-replace | extensionSurfaces.contributions:query_index:upsert_one | [node_modules/@open-mercato/core/src/modules/query_index/subscribers/upsert_one.ts](../../../node_modules/@open-mercato/core/src/modules/query_index/subscribers/upsert_one.ts) |
172
+ | routes | `overrides.routes.pages["backend:/backend/query-indexes"]` | disable-replace | backendPages:/backend/query-indexes | [node_modules/@open-mercato/core/src/modules/query_index/backend/query-indexes/page.tsx](../../../node_modules/@open-mercato/core/src/modules/query_index/backend/query-indexes/page.tsx) |
173
+ | setup | `overrides.setup.defaultRoleFeatures` | replace | ownedContracts.setup:query_index:setup | [node_modules/@open-mercato/core/src/modules/query_index/setup.ts:3](../../../node_modules/@open-mercato/core/src/modules/query_index/setup.ts#L3) |
174
+
175
+ ## Owned contract — module metadata
176
+
177
+ | ID | Metadata | Source |
178
+ |---|---|---|
179
+ | query_index | name=query_index; version=0.1.0 | [node_modules/@open-mercato/core/src/modules/query_index/index.ts:3](../../../node_modules/@open-mercato/core/src/modules/query_index/index.ts#L3) |
180
+
181
+ ## Setup
182
+
183
+ | ID | Metadata | Source |
184
+ |---|---|---|
185
+ | query_index:setup | roles=admin | [node_modules/@open-mercato/core/src/modules/query_index/setup.ts:3](../../../node_modules/@open-mercato/core/src/modules/query_index/setup.ts#L3) |
@@ -1,32 +1,37 @@
1
1
  # record_locks — module facts (generated, do not edit)
2
- <!-- generated from @open-mercato/enterprise 0.6.7-develop.6795.1.8a3f27921c; core 0.6.7-develop.6795.1.8a3f27921c — R1 staleness stamp -->
2
+ <!-- generated from @open-mercato/enterprise 0.6.7-develop.6814.1.0627c7e9f1; core 0.6.7-develop.6814.1.0627c7e9f1 — R1 staleness stamp -->
3
3
  Source root: [node_modules/@open-mercato/enterprise/src/modules/record_locks](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks)
4
4
 
5
5
  ## Entities
6
6
 
7
- | Entity ID | Class | Table | Editable | CustomFields |
8
- |---|---|---|---|---|
9
- | record_locks:record_lock | RecordLock | record_locks | yes | no |
10
- | record_locks:record_lock_conflict | RecordLockConflict | record_lock_conflicts | yes | no |
7
+ | Entity ID | Class | Table | Editable | CustomFields | Source |
8
+ |---|---|---|---|---|---|
9
+ | record_locks:record_lock | RecordLock | record_locks | yes | no | [node_modules/@open-mercato/enterprise/src/modules/record_locks/data/entities.ts](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/data/entities.ts) |
10
+ | record_locks:record_lock_conflict | RecordLockConflict | record_lock_conflicts | yes | no | [node_modules/@open-mercato/enterprise/src/modules/record_locks/data/entities.ts](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/data/entities.ts) |
11
11
 
12
12
  ## Events (10)
13
13
 
14
- | ID | Category | Entity | Browser transport |
15
- |---|---|---|---|
16
- | record_locks.lock.acquired | crud | lock | — |
17
- | record_locks.participant.joined | lifecycle | lock | — |
18
- | record_locks.participant.left | lifecycle | lock | — |
19
- | record_locks.lock.contended | lifecycle | lock | — |
20
- | record_locks.lock.released | crud | lock | — |
21
- | record_locks.lock.force_released | crud | lock | — |
22
- | record_locks.record.deleted | crud | record | — |
23
- | record_locks.conflict.detected | crud | conflict | — |
24
- | record_locks.conflict.resolved | crud | conflict | — |
25
- | record_locks.incoming_changes.available | lifecycle | change | — |
14
+ | ID | Category | Entity | Browser transport | Source |
15
+ |---|---|---|---|---|
16
+ | record_locks.lock.acquired | crud | lock | — | [node_modules/@open-mercato/enterprise/src/modules/record_locks/events.ts](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/events.ts) |
17
+ | record_locks.participant.joined | lifecycle | lock | — | [node_modules/@open-mercato/enterprise/src/modules/record_locks/events.ts](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/events.ts) |
18
+ | record_locks.participant.left | lifecycle | lock | — | [node_modules/@open-mercato/enterprise/src/modules/record_locks/events.ts](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/events.ts) |
19
+ | record_locks.lock.contended | lifecycle | lock | — | [node_modules/@open-mercato/enterprise/src/modules/record_locks/events.ts](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/events.ts) |
20
+ | record_locks.lock.released | crud | lock | — | [node_modules/@open-mercato/enterprise/src/modules/record_locks/events.ts](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/events.ts) |
21
+ | record_locks.lock.force_released | crud | lock | — | [node_modules/@open-mercato/enterprise/src/modules/record_locks/events.ts](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/events.ts) |
22
+ | record_locks.record.deleted | crud | record | — | [node_modules/@open-mercato/enterprise/src/modules/record_locks/events.ts](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/events.ts) |
23
+ | record_locks.conflict.detected | crud | conflict | — | [node_modules/@open-mercato/enterprise/src/modules/record_locks/events.ts](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/events.ts) |
24
+ | record_locks.conflict.resolved | crud | conflict | — | [node_modules/@open-mercato/enterprise/src/modules/record_locks/events.ts](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/events.ts) |
25
+ | record_locks.incoming_changes.available | lifecycle | change | — | [node_modules/@open-mercato/enterprise/src/modules/record_locks/events.ts](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/events.ts) |
26
26
 
27
27
  ## ACL features (4)
28
28
 
29
- record_locks.view · record_locks.manage · record_locks.force_release · record_locks.override_incoming
29
+ | Feature | Source |
30
+ |---|---|
31
+ | record_locks.view | [node_modules/@open-mercato/enterprise/src/modules/record_locks/acl.ts](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/acl.ts) |
32
+ | record_locks.manage | [node_modules/@open-mercato/enterprise/src/modules/record_locks/acl.ts](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/acl.ts) |
33
+ | record_locks.force_release | [node_modules/@open-mercato/enterprise/src/modules/record_locks/acl.ts](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/acl.ts) |
34
+ | record_locks.override_incoming | [node_modules/@open-mercato/enterprise/src/modules/record_locks/acl.ts](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/acl.ts) |
30
35
 
31
36
  ## API routes
32
37
 
@@ -44,7 +49,11 @@ _none_
44
49
 
45
50
  ## DI service tokens
46
51
 
47
- recordLockService · crudMutationGuardService · commandOptimisticLockGuardService
52
+ | Token | Source |
53
+ |---|---|
54
+ | recordLockService | [node_modules/@open-mercato/enterprise/src/modules/record_locks/di.ts:16](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/di.ts#L16) |
55
+ | crudMutationGuardService | [node_modules/@open-mercato/enterprise/src/modules/record_locks/di.ts:33](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/di.ts#L33) |
56
+ | commandOptimisticLockGuardService | [node_modules/@open-mercato/enterprise/src/modules/record_locks/di.ts:49](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/di.ts#L49) |
48
57
 
49
58
  ## Search entities
50
59
 
@@ -57,54 +66,101 @@ _none_
57
66
 
58
67
  ## UMES hosts
59
68
 
60
- | ID / pattern | Family | Supports | Context | Stability |
61
- |---|---|---|---|---|
62
- | record_locks:record_lock | entity | response-enricher, query-enricher, mutation-guard, entity-extension | tenant-and-organization | STABLE |
63
- | record_locks:record_lock_conflict | entity | response-enricher, query-enricher, mutation-guard, entity-extension | tenant-and-organization | STABLE |
64
- | record_locks.conflict.detected | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE |
65
- | record_locks.conflict.resolved | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE |
66
- | record_locks.incoming_changes.available | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE |
67
- | record_locks.lock.acquired | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE |
68
- | record_locks.lock.contended | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE |
69
- | record_locks.lock.force_released | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE |
70
- | record_locks.lock.released | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE |
71
- | record_locks.participant.joined | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE |
72
- | record_locks.participant.left | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE |
73
- | record_locks.record.deleted | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE |
69
+ | ID / pattern | Family | Supports | Context | Stability | Source |
70
+ |---|---|---|---|---|---|
71
+ | record_locks:record_lock | entity | response-enricher, query-enricher, mutation-guard, entity-extension | tenant-and-organization | STABLE | entities:record_locks:record_lock |
72
+ | record_locks:record_lock_conflict | entity | response-enricher, query-enricher, mutation-guard, entity-extension | tenant-and-organization | STABLE | entities:record_locks:record_lock_conflict |
73
+ | record_locks.conflict.detected | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE | events:record_locks.conflict.detected |
74
+ | record_locks.conflict.resolved | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE | events:record_locks.conflict.resolved |
75
+ | record_locks.incoming_changes.available | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE | events:record_locks.incoming_changes.available |
76
+ | record_locks.lock.acquired | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE | events:record_locks.lock.acquired |
77
+ | record_locks.lock.contended | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE | events:record_locks.lock.contended |
78
+ | record_locks.lock.force_released | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE | events:record_locks.lock.force_released |
79
+ | record_locks.lock.released | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE | events:record_locks.lock.released |
80
+ | record_locks.participant.joined | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE | events:record_locks.participant.joined |
81
+ | record_locks.participant.left | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE | events:record_locks.participant.left |
82
+ | record_locks.record.deleted | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE | events:record_locks.record.deleted |
74
83
 
75
84
  ## UMES contributions
76
85
 
77
- | ID | Kind | Target | Phase / operations | Contract | Resolution |
78
- |---|---|---|---|---|---|
79
- | record_locks.force-released-toast | browser-reaction | record_locks.lock.force_released | — | audienceScopeContract=tenant-organization-user-role-and-customer; hooks=useNotificationEffect; transports=notification-effect | fact-ref |
80
- | record_locks.incoming-changes-event | browser-reaction | record_locks.incoming_changes.available | — | audienceScopeContract=tenant-organization-user-role-and-customer; hooks=useNotificationEffect; transports=notification-effect | fact-ref |
81
- | record_locks.lock-contended-event | browser-reaction | record_locks.lock.contended | — | audienceScopeContract=tenant-organization-user-role-and-customer; hooks=useNotificationEffect; transports=notification-effect | fact-ref |
82
- | record_locks.record-deleted-event | browser-reaction | record_locks.record.deleted | — | audienceScopeContract=tenant-organization-user-role-and-customer; hooks=useNotificationEffect; transports=notification-effect | fact-ref |
83
- | record_locks.injection.crud-form-locking@crud-form:* | crud-form | crud-form:* | — | entityId=*; payload=render; requestHeaderCapability=false | pattern |
84
- | notification:record_locks.conflict.detected | specialized-registry | record_locks.conflict.detected | — | registry=notification; registryId=record_locks.conflict.detected; specialistRoute=notifications | fact-ref |
85
- | notification:record_locks.conflict.resolved | specialized-registry | record_locks.conflict.resolved | — | registry=notification; registryId=record_locks.conflict.resolved; specialistRoute=notifications | fact-ref |
86
- | notification:record_locks.incoming_changes.available | specialized-registry | record_locks.incoming_changes.available | — | registry=notification; registryId=record_locks.incoming_changes.available; specialistRoute=notifications | fact-ref |
87
- | notification:record_locks.lock.contended | specialized-registry | record_locks.lock.contended | — | registry=notification; registryId=record_locks.lock.contended; specialistRoute=notifications | fact-ref |
88
- | notification:record_locks.lock.force_released | specialized-registry | record_locks.lock.force_released | — | registry=notification; registryId=record_locks.lock.force_released; specialistRoute=notifications | fact-ref |
89
- | notification:record_locks.participant.joined | specialized-registry | record_locks.participant.joined | — | registry=notification; registryId=record_locks.participant.joined; specialistRoute=notifications | fact-ref |
90
- | notification:record_locks.participant.left | specialized-registry | record_locks.participant.left | — | registry=notification; registryId=record_locks.participant.left; specialistRoute=notifications | fact-ref |
91
- | notification:record_locks.record.deleted | specialized-registry | record_locks.record.deleted | — | registry=notification; registryId=record_locks.record.deleted; specialistRoute=notifications | fact-ref |
92
- | record_locks:conflict-detected-notification | subscriber | record_locks.conflict.detected | async-delivery | event=record_locks.conflict.detected; persistent=true; subscriberId=record_locks:conflict-detected-notification; sync=false | fact-ref |
93
- | record_locks:conflict-resolved-notification | subscriber | record_locks.conflict.resolved | async-delivery | event=record_locks.conflict.resolved; persistent=true; subscriberId=record_locks:conflict-resolved-notification; sync=false | fact-ref |
94
- | record_locks:incoming-changes-notification | subscriber | record_locks.incoming_changes.available | async-delivery | event=record_locks.incoming_changes.available; persistent=true; subscriberId=record_locks:incoming-changes-notification; sync=false | fact-ref |
95
- | record_locks:lock-contended-notification | subscriber | record_locks.lock.contended | async-delivery | event=record_locks.lock.contended; persistent=true; subscriberId=record_locks:lock-contended-notification; sync=false | fact-ref |
96
- | record_locks:lock-force-released-notification | subscriber | record_locks.lock.force_released | async-delivery | event=record_locks.lock.force_released; persistent=true; subscriberId=record_locks:lock-force-released-notification; sync=false | fact-ref |
97
- | record_locks:participant-joined-notification | subscriber | record_locks.participant.joined | async-delivery | event=record_locks.participant.joined; persistent=true; subscriberId=record_locks:participant-joined-notification; sync=false | fact-ref |
98
- | record_locks:participant-left-notification | subscriber | record_locks.participant.left | async-delivery | event=record_locks.participant.left; persistent=true; subscriberId=record_locks:participant-left-notification; sync=false | fact-ref |
99
- | record_locks:record-deleted-notification | subscriber | record_locks.record.deleted | async-delivery | event=record_locks.record.deleted; persistent=true; subscriberId=record_locks:record-deleted-notification; sync=false | fact-ref |
100
- | record_locks.injection.crud-form-locking@backend-mutation:global | widget | backend-mutation:global | — | executionGuard=host; payload=render; registryKey=record_locks.injection.crud-form-locking | framework |
101
- | record_locks.injection.crud-form-locking@backend:record:current | widget | backend:record:current | — | executionGuard=host; payload=render; registryKey=record_locks.injection.crud-form-locking | optional-external |
86
+ | ID | Kind | Target | Phase / operations | Contract | Resolution | Source |
87
+ |---|---|---|---|---|---|---|
88
+ | record_locks.force-released-toast | browser-reaction | record_locks.lock.force_released | — | audienceScopeContract=tenant-organization-user-role-and-customer; hooks=useNotificationEffect; overrideKey=record_locks.force-released-toast; transports=notification-effect | fact-ref | [node_modules/@open-mercato/enterprise/src/modules/record_locks/notifications.handlers.ts](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/notifications.handlers.ts) |
89
+ | record_locks.incoming-changes-event | browser-reaction | record_locks.incoming_changes.available | — | audienceScopeContract=tenant-organization-user-role-and-customer; hooks=useNotificationEffect; overrideKey=record_locks.incoming-changes-event; transports=notification-effect | fact-ref | [node_modules/@open-mercato/enterprise/src/modules/record_locks/notifications.handlers.ts](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/notifications.handlers.ts) |
90
+ | record_locks.lock-contended-event | browser-reaction | record_locks.lock.contended | — | audienceScopeContract=tenant-organization-user-role-and-customer; hooks=useNotificationEffect; overrideKey=record_locks.lock-contended-event; transports=notification-effect | fact-ref | [node_modules/@open-mercato/enterprise/src/modules/record_locks/notifications.handlers.ts](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/notifications.handlers.ts) |
91
+ | record_locks.record-deleted-event | browser-reaction | record_locks.record.deleted | — | audienceScopeContract=tenant-organization-user-role-and-customer; hooks=useNotificationEffect; overrideKey=record_locks.record-deleted-event; transports=notification-effect | fact-ref | [node_modules/@open-mercato/enterprise/src/modules/record_locks/notifications.handlers.ts](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/notifications.handlers.ts) |
92
+ | record_locks.injection.crud-form-locking@crud-form:* | crud-form | crud-form:* | — | entityId=*; payload=render; requestHeaderCapability=false | pattern | [node_modules/@open-mercato/enterprise/src/modules/record_locks/widgets/injection-table.ts](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/widgets/injection-table.ts) |
93
+ | notification:record_locks.conflict.detected | specialized-registry | record_locks.conflict.detected | — | registry=notification; registryId=record_locks.conflict.detected; specialistRoute=notifications | fact-ref | [node_modules/@open-mercato/enterprise/src/modules/record_locks/notifications.ts](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/notifications.ts) |
94
+ | notification:record_locks.conflict.resolved | specialized-registry | record_locks.conflict.resolved | — | registry=notification; registryId=record_locks.conflict.resolved; specialistRoute=notifications | fact-ref | [node_modules/@open-mercato/enterprise/src/modules/record_locks/notifications.ts](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/notifications.ts) |
95
+ | notification:record_locks.incoming_changes.available | specialized-registry | record_locks.incoming_changes.available | — | registry=notification; registryId=record_locks.incoming_changes.available; specialistRoute=notifications | fact-ref | [node_modules/@open-mercato/enterprise/src/modules/record_locks/notifications.ts](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/notifications.ts) |
96
+ | notification:record_locks.lock.contended | specialized-registry | record_locks.lock.contended | — | registry=notification; registryId=record_locks.lock.contended; specialistRoute=notifications | fact-ref | [node_modules/@open-mercato/enterprise/src/modules/record_locks/notifications.ts](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/notifications.ts) |
97
+ | notification:record_locks.lock.force_released | specialized-registry | record_locks.lock.force_released | — | registry=notification; registryId=record_locks.lock.force_released; specialistRoute=notifications | fact-ref | [node_modules/@open-mercato/enterprise/src/modules/record_locks/notifications.ts](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/notifications.ts) |
98
+ | notification:record_locks.participant.joined | specialized-registry | record_locks.participant.joined | — | registry=notification; registryId=record_locks.participant.joined; specialistRoute=notifications | fact-ref | [node_modules/@open-mercato/enterprise/src/modules/record_locks/notifications.ts](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/notifications.ts) |
99
+ | notification:record_locks.participant.left | specialized-registry | record_locks.participant.left | — | registry=notification; registryId=record_locks.participant.left; specialistRoute=notifications | fact-ref | [node_modules/@open-mercato/enterprise/src/modules/record_locks/notifications.ts](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/notifications.ts) |
100
+ | notification:record_locks.record.deleted | specialized-registry | record_locks.record.deleted | — | registry=notification; registryId=record_locks.record.deleted; specialistRoute=notifications | fact-ref | [node_modules/@open-mercato/enterprise/src/modules/record_locks/notifications.ts](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/notifications.ts) |
101
+ | record_locks:conflict-detected-notification | subscriber | record_locks.conflict.detected | async-delivery | event=record_locks.conflict.detected; persistent=true; subscriberId=record_locks:conflict-detected-notification; sync=false | fact-ref | [node_modules/@open-mercato/enterprise/src/modules/record_locks/subscribers/conflict-detected-notification.ts](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/subscribers/conflict-detected-notification.ts) |
102
+ | record_locks:conflict-resolved-notification | subscriber | record_locks.conflict.resolved | async-delivery | event=record_locks.conflict.resolved; persistent=true; subscriberId=record_locks:conflict-resolved-notification; sync=false | fact-ref | [node_modules/@open-mercato/enterprise/src/modules/record_locks/subscribers/conflict-resolved-notification.ts](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/subscribers/conflict-resolved-notification.ts) |
103
+ | record_locks:incoming-changes-notification | subscriber | record_locks.incoming_changes.available | async-delivery | event=record_locks.incoming_changes.available; persistent=true; subscriberId=record_locks:incoming-changes-notification; sync=false | fact-ref | [node_modules/@open-mercato/enterprise/src/modules/record_locks/subscribers/incoming-changes-notification.ts](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/subscribers/incoming-changes-notification.ts) |
104
+ | record_locks:lock-contended-notification | subscriber | record_locks.lock.contended | async-delivery | event=record_locks.lock.contended; persistent=true; subscriberId=record_locks:lock-contended-notification; sync=false | fact-ref | [node_modules/@open-mercato/enterprise/src/modules/record_locks/subscribers/lock-contended-notification.ts](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/subscribers/lock-contended-notification.ts) |
105
+ | record_locks:lock-force-released-notification | subscriber | record_locks.lock.force_released | async-delivery | event=record_locks.lock.force_released; persistent=true; subscriberId=record_locks:lock-force-released-notification; sync=false | fact-ref | [node_modules/@open-mercato/enterprise/src/modules/record_locks/subscribers/lock-force-released-notification.ts](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/subscribers/lock-force-released-notification.ts) |
106
+ | record_locks:participant-joined-notification | subscriber | record_locks.participant.joined | async-delivery | event=record_locks.participant.joined; persistent=true; subscriberId=record_locks:participant-joined-notification; sync=false | fact-ref | [node_modules/@open-mercato/enterprise/src/modules/record_locks/subscribers/participant-joined-notification.ts](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/subscribers/participant-joined-notification.ts) |
107
+ | record_locks:participant-left-notification | subscriber | record_locks.participant.left | async-delivery | event=record_locks.participant.left; persistent=true; subscriberId=record_locks:participant-left-notification; sync=false | fact-ref | [node_modules/@open-mercato/enterprise/src/modules/record_locks/subscribers/participant-left-notification.ts](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/subscribers/participant-left-notification.ts) |
108
+ | record_locks:record-deleted-notification | subscriber | record_locks.record.deleted | async-delivery | event=record_locks.record.deleted; persistent=true; subscriberId=record_locks:record-deleted-notification; sync=false | fact-ref | [node_modules/@open-mercato/enterprise/src/modules/record_locks/subscribers/record-deleted-notification.ts](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/subscribers/record-deleted-notification.ts) |
109
+ | record_locks.injection.crud-form-locking@backend-mutation:global | widget | backend-mutation:global | — | executionGuard=host; payload=render; registryKey=record_locks.injection.crud-form-locking | framework | [node_modules/@open-mercato/enterprise/src/modules/record_locks/widgets/injection-table.ts](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/widgets/injection-table.ts) |
110
+ | record_locks.injection.crud-form-locking@backend:record:current | widget | backend:record:current | — | executionGuard=host; payload=render; registryKey=record_locks.injection.crud-form-locking | optional-external | [node_modules/@open-mercato/enterprise/src/modules/record_locks/widgets/injection-table.ts](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/widgets/injection-table.ts) |
111
+
112
+ ## Active extension bindings
113
+
114
+ | Activation | Kind | Host | Contribution kinds | Phases | Bridge | Source |
115
+ |---|---|---|---|---|---|---|
116
+ | widget-spot:backend-mutation:global:widget-injection-consumer | widget-injection-consumer | widget-spot:backend-mutation:global @framework | widget, data-table, crud-form | — | hosts:framework.backend-mutation | [packages/ui/src](../../../packages/ui/src) |
117
+
118
+ ## Incoming installed contributions
119
+
120
+ _none_
121
+
122
+ ## Contribution resolutions
123
+
124
+ | Contribution | Target | Resolution | Activations | Source |
125
+ |---|---|---|---|---|
126
+ | notification:record_locks.conflict.detected | module:record_locks.conflict.detected @record_locks | capability-only | — | [node_modules/@open-mercato/enterprise/src/modules/record_locks/notifications.ts](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/notifications.ts) |
127
+ | notification:record_locks.conflict.resolved | module:record_locks.conflict.resolved @record_locks | capability-only | — | [node_modules/@open-mercato/enterprise/src/modules/record_locks/notifications.ts](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/notifications.ts) |
128
+ | notification:record_locks.incoming_changes.available | module:record_locks.incoming_changes.available @record_locks | capability-only | — | [node_modules/@open-mercato/enterprise/src/modules/record_locks/notifications.ts](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/notifications.ts) |
129
+ | notification:record_locks.lock.contended | module:record_locks.lock.contended @record_locks | capability-only | — | [node_modules/@open-mercato/enterprise/src/modules/record_locks/notifications.ts](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/notifications.ts) |
130
+ | notification:record_locks.lock.force_released | module:record_locks.lock.force_released @record_locks | capability-only | — | [node_modules/@open-mercato/enterprise/src/modules/record_locks/notifications.ts](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/notifications.ts) |
131
+ | notification:record_locks.participant.joined | module:record_locks.participant.joined @record_locks | capability-only | — | [node_modules/@open-mercato/enterprise/src/modules/record_locks/notifications.ts](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/notifications.ts) |
132
+ | notification:record_locks.participant.left | module:record_locks.participant.left @record_locks | capability-only | — | [node_modules/@open-mercato/enterprise/src/modules/record_locks/notifications.ts](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/notifications.ts) |
133
+ | notification:record_locks.record.deleted | module:record_locks.record.deleted @record_locks | capability-only | — | [node_modules/@open-mercato/enterprise/src/modules/record_locks/notifications.ts](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/notifications.ts) |
134
+ | record_locks:conflict-detected-notification | event:record_locks.conflict.detected @record_locks | capability-only | — | [node_modules/@open-mercato/enterprise/src/modules/record_locks/subscribers/conflict-detected-notification.ts](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/subscribers/conflict-detected-notification.ts) |
135
+ | record_locks:conflict-resolved-notification | event:record_locks.conflict.resolved @record_locks | capability-only | — | [node_modules/@open-mercato/enterprise/src/modules/record_locks/subscribers/conflict-resolved-notification.ts](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/subscribers/conflict-resolved-notification.ts) |
136
+ | record_locks:incoming-changes-notification | event:record_locks.incoming_changes.available @record_locks | capability-only | — | [node_modules/@open-mercato/enterprise/src/modules/record_locks/subscribers/incoming-changes-notification.ts](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/subscribers/incoming-changes-notification.ts) |
137
+ | record_locks:lock-contended-notification | event:record_locks.lock.contended @record_locks | capability-only | — | [node_modules/@open-mercato/enterprise/src/modules/record_locks/subscribers/lock-contended-notification.ts](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/subscribers/lock-contended-notification.ts) |
138
+ | record_locks:lock-force-released-notification | event:record_locks.lock.force_released @record_locks | capability-only | — | [node_modules/@open-mercato/enterprise/src/modules/record_locks/subscribers/lock-force-released-notification.ts](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/subscribers/lock-force-released-notification.ts) |
139
+ | record_locks:participant-joined-notification | event:record_locks.participant.joined @record_locks | capability-only | — | [node_modules/@open-mercato/enterprise/src/modules/record_locks/subscribers/participant-joined-notification.ts](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/subscribers/participant-joined-notification.ts) |
140
+ | record_locks:participant-left-notification | event:record_locks.participant.left @record_locks | capability-only | — | [node_modules/@open-mercato/enterprise/src/modules/record_locks/subscribers/participant-left-notification.ts](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/subscribers/participant-left-notification.ts) |
141
+ | record_locks:record-deleted-notification | event:record_locks.record.deleted @record_locks | capability-only | — | [node_modules/@open-mercato/enterprise/src/modules/record_locks/subscribers/record-deleted-notification.ts](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/subscribers/record-deleted-notification.ts) |
142
+ | record_locks.force-released-toast | notification:record_locks.lock.force_released @record_locks | capability-only | — | [node_modules/@open-mercato/enterprise/src/modules/record_locks/notifications.handlers.ts](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/notifications.handlers.ts) |
143
+ | record_locks.incoming-changes-event | notification:record_locks.incoming_changes.available @record_locks | capability-only | — | [node_modules/@open-mercato/enterprise/src/modules/record_locks/notifications.handlers.ts](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/notifications.handlers.ts) |
144
+ | record_locks.injection.crud-form-locking@backend-mutation:global | widget-spot:backend-mutation:global | bound | widget-spot:backend-mutation:global:widget-injection-consumer | [node_modules/@open-mercato/enterprise/src/modules/record_locks/widgets/injection-table.ts](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/widgets/injection-table.ts) |
145
+ | record_locks.injection.crud-form-locking@backend:record:current | widget-spot:backend:record:current | optional-target-missing | — | [node_modules/@open-mercato/enterprise/src/modules/record_locks/widgets/injection-table.ts](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/widgets/injection-table.ts) |
146
+ | record_locks.injection.crud-form-locking@crud-form:* | wildcard:crud-form:* | wildcard | — | [node_modules/@open-mercato/enterprise/src/modules/record_locks/widgets/injection-table.ts](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/widgets/injection-table.ts) |
147
+ | record_locks.lock-contended-event | notification:record_locks.lock.contended @record_locks | capability-only | — | [node_modules/@open-mercato/enterprise/src/modules/record_locks/notifications.handlers.ts](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/notifications.handlers.ts) |
148
+ | record_locks.record-deleted-event | notification:record_locks.record.deleted @record_locks | capability-only | — | [node_modules/@open-mercato/enterprise/src/modules/record_locks/notifications.handlers.ts](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/notifications.handlers.ts) |
102
149
 
103
150
 
104
151
 
105
152
  ## Notifications
106
153
 
107
- record_locks.participant.joined · record_locks.participant.left · record_locks.lock.contended · record_locks.lock.force_released · record_locks.record.deleted · record_locks.conflict.detected · record_locks.incoming_changes.available · record_locks.conflict.resolved
154
+ | Notification ID | Source |
155
+ |---|---|
156
+ | record_locks.participant.joined | [node_modules/@open-mercato/enterprise/src/modules/record_locks/notifications.ts](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/notifications.ts) |
157
+ | record_locks.participant.left | [node_modules/@open-mercato/enterprise/src/modules/record_locks/notifications.ts](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/notifications.ts) |
158
+ | record_locks.lock.contended | [node_modules/@open-mercato/enterprise/src/modules/record_locks/notifications.ts](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/notifications.ts) |
159
+ | record_locks.lock.force_released | [node_modules/@open-mercato/enterprise/src/modules/record_locks/notifications.ts](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/notifications.ts) |
160
+ | record_locks.record.deleted | [node_modules/@open-mercato/enterprise/src/modules/record_locks/notifications.ts](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/notifications.ts) |
161
+ | record_locks.conflict.detected | [node_modules/@open-mercato/enterprise/src/modules/record_locks/notifications.ts](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/notifications.ts) |
162
+ | record_locks.incoming_changes.available | [node_modules/@open-mercato/enterprise/src/modules/record_locks/notifications.ts](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/notifications.ts) |
163
+ | record_locks.conflict.resolved | [node_modules/@open-mercato/enterprise/src/modules/record_locks/notifications.ts](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/notifications.ts) |
108
164
 
109
165
  ## CLI commands
110
166
 
@@ -117,3 +173,66 @@ _none_
117
173
  ## AI agents
118
174
 
119
175
  _none_
176
+
177
+ ## Exact override targets
178
+
179
+ | Domain | Path / key | Supported modes | Referenced fact | Source |
180
+ |---|---|---|---|---|
181
+ | acl | `overrides.acl.features["record_locks.force_release"]` | disable-replace | aclFeatures:record_locks.force_release | [node_modules/@open-mercato/enterprise/src/modules/record_locks/acl.ts](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/acl.ts) |
182
+ | acl | `overrides.acl.features["record_locks.manage"]` | disable-replace | aclFeatures:record_locks.manage | [node_modules/@open-mercato/enterprise/src/modules/record_locks/acl.ts](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/acl.ts) |
183
+ | acl | `overrides.acl.features["record_locks.override_incoming"]` | disable-replace | aclFeatures:record_locks.override_incoming | [node_modules/@open-mercato/enterprise/src/modules/record_locks/acl.ts](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/acl.ts) |
184
+ | acl | `overrides.acl.features["record_locks.view"]` | disable-replace | aclFeatures:record_locks.view | [node_modules/@open-mercato/enterprise/src/modules/record_locks/acl.ts](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/acl.ts) |
185
+ | di | `overrides.di["commandOptimisticLockGuardService"]` | disable-replace | ownedContracts.di-registration:commandOptimisticLockGuardService | [node_modules/@open-mercato/enterprise/src/modules/record_locks/di.ts:49](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/di.ts#L49) |
186
+ | di | `overrides.di["crudMutationGuardService"]` | disable-replace | ownedContracts.di-registration:crudMutationGuardService | [node_modules/@open-mercato/enterprise/src/modules/record_locks/di.ts:33](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/di.ts#L33) |
187
+ | di | `overrides.di["recordLockService"]` | disable-replace | ownedContracts.di-registration:recordLockService | [node_modules/@open-mercato/enterprise/src/modules/record_locks/di.ts:16](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/di.ts#L16) |
188
+ | events | `overrides.events.subscribers["record_locks:conflict-detected-notification"]` | disable-replace | extensionSurfaces.contributions:record_locks:conflict-detected-notification | [node_modules/@open-mercato/enterprise/src/modules/record_locks/subscribers/conflict-detected-notification.ts](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/subscribers/conflict-detected-notification.ts) |
189
+ | events | `overrides.events.subscribers["record_locks:conflict-resolved-notification"]` | disable-replace | extensionSurfaces.contributions:record_locks:conflict-resolved-notification | [node_modules/@open-mercato/enterprise/src/modules/record_locks/subscribers/conflict-resolved-notification.ts](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/subscribers/conflict-resolved-notification.ts) |
190
+ | events | `overrides.events.subscribers["record_locks:incoming-changes-notification"]` | disable-replace | extensionSurfaces.contributions:record_locks:incoming-changes-notification | [node_modules/@open-mercato/enterprise/src/modules/record_locks/subscribers/incoming-changes-notification.ts](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/subscribers/incoming-changes-notification.ts) |
191
+ | events | `overrides.events.subscribers["record_locks:lock-contended-notification"]` | disable-replace | extensionSurfaces.contributions:record_locks:lock-contended-notification | [node_modules/@open-mercato/enterprise/src/modules/record_locks/subscribers/lock-contended-notification.ts](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/subscribers/lock-contended-notification.ts) |
192
+ | events | `overrides.events.subscribers["record_locks:lock-force-released-notification"]` | disable-replace | extensionSurfaces.contributions:record_locks:lock-force-released-notification | [node_modules/@open-mercato/enterprise/src/modules/record_locks/subscribers/lock-force-released-notification.ts](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/subscribers/lock-force-released-notification.ts) |
193
+ | events | `overrides.events.subscribers["record_locks:participant-joined-notification"]` | disable-replace | extensionSurfaces.contributions:record_locks:participant-joined-notification | [node_modules/@open-mercato/enterprise/src/modules/record_locks/subscribers/participant-joined-notification.ts](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/subscribers/participant-joined-notification.ts) |
194
+ | events | `overrides.events.subscribers["record_locks:participant-left-notification"]` | disable-replace | extensionSurfaces.contributions:record_locks:participant-left-notification | [node_modules/@open-mercato/enterprise/src/modules/record_locks/subscribers/participant-left-notification.ts](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/subscribers/participant-left-notification.ts) |
195
+ | events | `overrides.events.subscribers["record_locks:record-deleted-notification"]` | disable-replace | extensionSurfaces.contributions:record_locks:record-deleted-notification | [node_modules/@open-mercato/enterprise/src/modules/record_locks/subscribers/record-deleted-notification.ts](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/subscribers/record-deleted-notification.ts) |
196
+ | notifications | `overrides.notifications.handlers["record_locks.force-released-toast"]` | disable-replace | extensionSurfaces.contributions:record_locks.force-released-toast | [node_modules/@open-mercato/enterprise/src/modules/record_locks/notifications.handlers.ts](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/notifications.handlers.ts) |
197
+ | notifications | `overrides.notifications.handlers["record_locks.incoming-changes-event"]` | disable-replace | extensionSurfaces.contributions:record_locks.incoming-changes-event | [node_modules/@open-mercato/enterprise/src/modules/record_locks/notifications.handlers.ts](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/notifications.handlers.ts) |
198
+ | notifications | `overrides.notifications.handlers["record_locks.lock-contended-event"]` | disable-replace | extensionSurfaces.contributions:record_locks.lock-contended-event | [node_modules/@open-mercato/enterprise/src/modules/record_locks/notifications.handlers.ts](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/notifications.handlers.ts) |
199
+ | notifications | `overrides.notifications.handlers["record_locks.record-deleted-event"]` | disable-replace | extensionSurfaces.contributions:record_locks.record-deleted-event | [node_modules/@open-mercato/enterprise/src/modules/record_locks/notifications.handlers.ts](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/notifications.handlers.ts) |
200
+ | notifications | `overrides.notifications.types["record_locks.conflict.detected"]` | disable-replace | notifications:record_locks.conflict.detected | [node_modules/@open-mercato/enterprise/src/modules/record_locks/notifications.ts](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/notifications.ts) |
201
+ | notifications | `overrides.notifications.types["record_locks.conflict.resolved"]` | disable-replace | notifications:record_locks.conflict.resolved | [node_modules/@open-mercato/enterprise/src/modules/record_locks/notifications.ts](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/notifications.ts) |
202
+ | notifications | `overrides.notifications.types["record_locks.incoming_changes.available"]` | disable-replace | notifications:record_locks.incoming_changes.available | [node_modules/@open-mercato/enterprise/src/modules/record_locks/notifications.ts](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/notifications.ts) |
203
+ | notifications | `overrides.notifications.types["record_locks.lock.contended"]` | disable-replace | notifications:record_locks.lock.contended | [node_modules/@open-mercato/enterprise/src/modules/record_locks/notifications.ts](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/notifications.ts) |
204
+ | notifications | `overrides.notifications.types["record_locks.lock.force_released"]` | disable-replace | notifications:record_locks.lock.force_released | [node_modules/@open-mercato/enterprise/src/modules/record_locks/notifications.ts](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/notifications.ts) |
205
+ | notifications | `overrides.notifications.types["record_locks.participant.joined"]` | disable-replace | notifications:record_locks.participant.joined | [node_modules/@open-mercato/enterprise/src/modules/record_locks/notifications.ts](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/notifications.ts) |
206
+ | notifications | `overrides.notifications.types["record_locks.participant.left"]` | disable-replace | notifications:record_locks.participant.left | [node_modules/@open-mercato/enterprise/src/modules/record_locks/notifications.ts](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/notifications.ts) |
207
+ | notifications | `overrides.notifications.types["record_locks.record.deleted"]` | disable-replace | notifications:record_locks.record.deleted | [node_modules/@open-mercato/enterprise/src/modules/record_locks/notifications.ts](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/notifications.ts) |
208
+ | routes | `overrides.routes.pages["backend:/backend/settings/record-locks"]` | disable-replace | backendPages:/backend/settings/record-locks | [node_modules/@open-mercato/enterprise/src/modules/record_locks/backend/settings/record-locks/page.tsx](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/backend/settings/record-locks/page.tsx) |
209
+ | setup | `overrides.setup.defaultRoleFeatures` | replace | ownedContracts.setup:record_locks:setup | [node_modules/@open-mercato/enterprise/src/modules/record_locks/setup.ts:5](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/setup.ts#L5) |
210
+ | setup | `overrides.setup.onTenantCreated` | replace | ownedContracts.setup:record_locks:setup | [node_modules/@open-mercato/enterprise/src/modules/record_locks/setup.ts:5](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/setup.ts#L5) |
211
+ | widgets | `overrides.widgets.injection["record_locks.injection.crud-form-locking"]` | disable-replace | extensionSurfaces.contributions:record_locks.injection.crud-form-locking@backend-mutation:global | [node_modules/@open-mercato/enterprise/src/modules/record_locks/widgets/injection-table.ts](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/widgets/injection-table.ts) |
212
+
213
+ ## Owned contract — module metadata
214
+
215
+ | ID | Metadata | Source |
216
+ |---|---|---|
217
+ | record_locks | name=record_locks; version=0.1.0 | [node_modules/@open-mercato/enterprise/src/modules/record_locks/index.ts:3](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/index.ts#L3) |
218
+
219
+ ## Domain commands
220
+
221
+ | ID | Metadata | Source |
222
+ |---|---|---|
223
+ | record_locks.conflict.accept_incoming | — | [node_modules/@open-mercato/enterprise/src/modules/record_locks/commands/conflicts.ts](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/commands/conflicts.ts) |
224
+ | record_locks.conflict.accept_mine | — | [node_modules/@open-mercato/enterprise/src/modules/record_locks/commands/conflicts.ts](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/commands/conflicts.ts) |
225
+
226
+ ## Setup
227
+
228
+ | ID | Metadata | Source |
229
+ |---|---|---|
230
+ | record_locks:setup | hooks=onTenantCreated; roles=admin, employee, superadmin | [node_modules/@open-mercato/enterprise/src/modules/record_locks/setup.ts:5](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/setup.ts#L5) |
231
+
232
+ ## DI registrations (rich)
233
+
234
+ | Token | Kind | Lifetime | Injection | Provider | Source |
235
+ |---|---|---|---|---|---|
236
+ | commandOptimisticLockGuardService | function | scoped | — | — | [node_modules/@open-mercato/enterprise/src/modules/record_locks/di.ts:49](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/di.ts#L49) |
237
+ | crudMutationGuardService | function | scoped | — | — | [node_modules/@open-mercato/enterprise/src/modules/record_locks/di.ts:33](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/di.ts#L33) |
238
+ | recordLockService | function | scoped | — | — | [node_modules/@open-mercato/enterprise/src/modules/record_locks/di.ts:16](../../../node_modules/@open-mercato/enterprise/src/modules/record_locks/di.ts#L16) |