@open-mercato/cli 0.6.7-develop.6758.1.697eade236 → 0.6.7-develop.6768.1.9d2c4efc43

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 (79) hide show
  1. package/.turbo/turbo-build.log +3 -3
  2. package/build.mjs +2 -1
  3. package/dist/agentic/guides/extensions.md +20 -3
  4. package/dist/agentic/guides/framework-extension-points.md +36 -0
  5. package/dist/agentic/guides/module-facts.json +39708 -230
  6. package/dist/agentic/guides/modules/ai_assistant.md +49 -9
  7. package/dist/agentic/guides/modules/api_docs.md +11 -1
  8. package/dist/agentic/guides/modules/api_keys.md +24 -1
  9. package/dist/agentic/guides/modules/attachments.md +22 -6
  10. package/dist/agentic/guides/modules/audit_logs.md +35 -1
  11. package/dist/agentic/guides/modules/auth.md +79 -15
  12. package/dist/agentic/guides/modules/business_rules.md +36 -3
  13. package/dist/agentic/guides/modules/catalog.md +160 -22
  14. package/dist/agentic/guides/modules/channel_gmail.md +14 -1
  15. package/dist/agentic/guides/modules/channel_imap.md +14 -1
  16. package/dist/agentic/guides/modules/checkout.md +134 -19
  17. package/dist/agentic/guides/modules/communication_channels.md +110 -20
  18. package/dist/agentic/guides/modules/configs.md +15 -1
  19. package/dist/agentic/guides/modules/content.md +11 -1
  20. package/dist/agentic/guides/modules/currencies.md +50 -9
  21. package/dist/agentic/guides/modules/customer_accounts.md +151 -28
  22. package/dist/agentic/guides/modules/customers.md +299 -52
  23. package/dist/agentic/guides/modules/dashboards.md +30 -1
  24. package/dist/agentic/guides/modules/data_sync.md +40 -7
  25. package/dist/agentic/guides/modules/dictionaries.md +24 -6
  26. package/dist/agentic/guides/modules/directory.md +52 -9
  27. package/dist/agentic/guides/modules/entities.md +41 -1
  28. package/dist/agentic/guides/modules/events.md +11 -1
  29. package/dist/agentic/guides/modules/feature_toggles.md +15 -1
  30. package/dist/agentic/guides/modules/gateway_stripe.md +14 -1
  31. package/dist/agentic/guides/modules/generators.md +11 -1
  32. package/dist/agentic/guides/modules/inbox_ops.md +58 -16
  33. package/dist/agentic/guides/modules/integrations.md +30 -7
  34. package/dist/agentic/guides/modules/messages.md +68 -13
  35. package/dist/agentic/guides/modules/notifications.md +13 -1
  36. package/dist/agentic/guides/modules/onboarding.md +13 -1
  37. package/dist/agentic/guides/modules/payment_gateways.md +51 -12
  38. package/dist/agentic/guides/modules/perspectives.md +16 -1
  39. package/dist/agentic/guides/modules/planner.md +33 -9
  40. package/dist/agentic/guides/modules/portal.md +24 -1
  41. package/dist/agentic/guides/modules/progress.md +34 -9
  42. package/dist/agentic/guides/modules/query_index.md +56 -3
  43. package/dist/agentic/guides/modules/record_locks.md +60 -13
  44. package/dist/agentic/guides/modules/resources.md +79 -18
  45. package/dist/agentic/guides/modules/sales.md +238 -48
  46. package/dist/agentic/guides/modules/scheduler.md +23 -7
  47. package/dist/agentic/guides/modules/search.md +28 -3
  48. package/dist/agentic/guides/modules/security.md +106 -23
  49. package/dist/agentic/guides/modules/shipping_carriers.md +38 -10
  50. package/dist/agentic/guides/modules/sso.md +47 -15
  51. package/dist/agentic/guides/modules/staff.md +117 -38
  52. package/dist/agentic/guides/modules/storage_s3.md +13 -1
  53. package/dist/agentic/guides/modules/sync_akeneo.md +13 -1
  54. package/dist/agentic/guides/modules/sync_excel.md +15 -1
  55. package/dist/agentic/guides/modules/system_status_overlays.md +14 -1
  56. package/dist/agentic/guides/modules/translations.md +25 -5
  57. package/dist/agentic/guides/modules/webhooks.md +85 -15
  58. package/dist/agentic/guides/modules/wms.md +234 -31
  59. package/dist/agentic/guides/modules/workflows.md +114 -30
  60. package/dist/agentic/guides/upstream/BACKWARD_COMPATIBILITY.md +7 -0
  61. package/dist/agentic/guides/upstream/manifest.json +2 -2
  62. package/dist/agentic/shared/AGENTS.md.template +2 -2
  63. package/dist/agentic/shared/ai/harness/README.md +2 -0
  64. package/dist/agentic/shared/ai/harness/cases.json +80 -39
  65. package/dist/agentic/shared/ai/skills/om-system-extension/references/mechanism-selector.md +3 -1
  66. package/dist/agentic/shared/ai/skills/om-system-extension/references/unified-overrides.md +2 -1
  67. package/dist/agentic/shared/scripts/framework-context.mjs +3 -9
  68. package/dist/lib/generators/module-extension-facts.js +1185 -0
  69. package/dist/lib/generators/module-extension-facts.js.map +7 -0
  70. package/dist/lib/generators/module-facts.js +134 -7
  71. package/dist/lib/generators/module-facts.js.map +2 -2
  72. package/dist/lib/generators/module-registry.js +1 -0
  73. package/dist/lib/generators/module-registry.js.map +2 -2
  74. package/package.json +5 -5
  75. package/src/lib/generators/__tests__/module-extension-facts.test.ts +402 -0
  76. package/src/lib/generators/__tests__/module-facts.bc-guard.test.ts +39 -2
  77. package/src/lib/generators/module-extension-facts.ts +1428 -0
  78. package/src/lib/generators/module-facts.ts +143 -6
  79. package/src/lib/generators/module-registry.ts +1 -1
@@ -1,5 +1,5 @@
1
1
  # customer_accounts — module facts (generated, do not edit)
2
- <!-- generated from @open-mercato/core 0.6.7-develop.6758.1.697eade236; core 0.6.7-develop.6758.1.697eade236 — R1 staleness stamp -->
2
+ <!-- generated from @open-mercato/core 0.6.7-develop.6768.1.9d2c4efc43; core 0.6.7-develop.6768.1.9d2c4efc43 — R1 staleness stamp -->
3
3
  Source root: [node_modules/@open-mercato/core/src/modules/customer_accounts](../../../node_modules/@open-mercato/core/src/modules/customer_accounts)
4
4
 
5
5
  ## Entities
@@ -19,33 +19,33 @@ Source root: [node_modules/@open-mercato/core/src/modules/customer_accounts](../
19
19
 
20
20
  ## Events (25)
21
21
 
22
- | ID | Category | Entity |
23
- |---|---|---|
24
- | customer_accounts.user.created | crud | user |
25
- | customer_accounts.user.updated | crud | user |
26
- | customer_accounts.user.deleted | crud | user |
27
- | customer_accounts.user.locked | lifecycle | user |
28
- | customer_accounts.user.unlocked | lifecycle | user |
29
- | customer_accounts.login.success | lifecycle | — |
30
- | customer_accounts.login.failed | lifecycle | — |
31
- | customer_accounts.magic_link.requested | lifecycle | — |
32
- | customer_accounts.email.verified | lifecycle | — |
33
- | customer_accounts.password.reset_requested | lifecycle | — |
34
- | customer_accounts.password.reset | lifecycle | — |
35
- | customer_accounts.password.changed | lifecycle | — |
36
- | customer_accounts.role.created | crud | role |
37
- | customer_accounts.role.updated | crud | role |
38
- | customer_accounts.role.deleted | crud | role |
39
- | customer_accounts.user.invited | lifecycle | user |
40
- | customer_accounts.invitation.accepted | lifecycle | — |
41
- | customer_accounts.password_reset.requested | lifecycle | — |
42
- | customer_accounts.domain_mapping.created | crud | domain_mapping |
43
- | customer_accounts.domain_mapping.verified | lifecycle | domain_mapping |
44
- | customer_accounts.domain_mapping.activated | lifecycle | domain_mapping |
45
- | customer_accounts.domain_mapping.dns_failed | lifecycle | domain_mapping |
46
- | customer_accounts.domain_mapping.tls_failed | lifecycle | domain_mapping |
47
- | customer_accounts.domain_mapping.deleted | crud | domain_mapping |
48
- | customer_accounts.domain_mapping.replaced | lifecycle | domain_mapping |
22
+ | ID | Category | Entity | Browser transport |
23
+ |---|---|---|---|
24
+ | customer_accounts.user.created | crud | user | client |
25
+ | customer_accounts.user.updated | crud | user | portal |
26
+ | customer_accounts.user.deleted | crud | user | — |
27
+ | customer_accounts.user.locked | lifecycle | user | portal |
28
+ | customer_accounts.user.unlocked | lifecycle | user | portal |
29
+ | customer_accounts.login.success | lifecycle | — | — |
30
+ | customer_accounts.login.failed | lifecycle | — | — |
31
+ | customer_accounts.magic_link.requested | lifecycle | — | — |
32
+ | customer_accounts.email.verified | lifecycle | — | portal |
33
+ | customer_accounts.password.reset_requested | lifecycle | — | — |
34
+ | customer_accounts.password.reset | lifecycle | — | portal |
35
+ | customer_accounts.password.changed | lifecycle | — | — |
36
+ | customer_accounts.role.created | crud | role | — |
37
+ | customer_accounts.role.updated | crud | role | portal |
38
+ | customer_accounts.role.deleted | crud | role | — |
39
+ | customer_accounts.user.invited | lifecycle | user | client |
40
+ | customer_accounts.invitation.accepted | lifecycle | — | client |
41
+ | customer_accounts.password_reset.requested | lifecycle | — | — |
42
+ | customer_accounts.domain_mapping.created | crud | domain_mapping | client |
43
+ | customer_accounts.domain_mapping.verified | lifecycle | domain_mapping | client |
44
+ | customer_accounts.domain_mapping.activated | lifecycle | domain_mapping | client |
45
+ | customer_accounts.domain_mapping.dns_failed | lifecycle | domain_mapping | client |
46
+ | customer_accounts.domain_mapping.tls_failed | lifecycle | domain_mapping | client |
47
+ | customer_accounts.domain_mapping.deleted | crud | domain_mapping | client |
48
+ | customer_accounts.domain_mapping.replaced | lifecycle | domain_mapping | client |
49
49
 
50
50
  ## ACL features (5)
51
51
 
@@ -84,6 +84,129 @@ customer_accounts:customer_user · customer_accounts:customer_role
84
84
  - Entity IDs: _none_
85
85
  - Table IDs: customer_accounts.admin.roles · customer_accounts.admin.users
86
86
 
87
+ ## UMES hosts
88
+
89
+ | ID / pattern | Family | Supports | Context | Stability |
90
+ |---|---|---|---|---|
91
+ | data-table:customer_accounts.admin.roles | data-table | component-replacement | — | FROZEN |
92
+ | data-table:customer_accounts.admin.roles:bulk-actions | data-table | bulk-action | — | FROZEN |
93
+ | data-table:customer_accounts.admin.roles:columns | data-table | column-widget | — | FROZEN |
94
+ | data-table:customer_accounts.admin.roles:filters | data-table | filter-widget | — | FROZEN |
95
+ | data-table:customer_accounts.admin.roles:footer | data-table | render-widget | — | FROZEN |
96
+ | data-table:customer_accounts.admin.roles:header | data-table | render-widget | — | FROZEN |
97
+ | data-table:customer_accounts.admin.roles:row-actions | data-table | row-action | — | FROZEN |
98
+ | data-table:customer_accounts.admin.roles:search-trailing | data-table | render-widget | — | FROZEN |
99
+ | data-table:customer_accounts.admin.roles:toolbar | data-table | toolbar-widget | — | FROZEN |
100
+ | data-table:customer_accounts.admin.users | data-table | component-replacement | — | FROZEN |
101
+ | data-table:customer_accounts.admin.users:bulk-actions | data-table | bulk-action | — | FROZEN |
102
+ | data-table:customer_accounts.admin.users:columns | data-table | column-widget | — | FROZEN |
103
+ | data-table:customer_accounts.admin.users:filters | data-table | filter-widget | — | FROZEN |
104
+ | data-table:customer_accounts.admin.users:footer | data-table | render-widget | — | FROZEN |
105
+ | data-table:customer_accounts.admin.users:header | data-table | render-widget | — | FROZEN |
106
+ | data-table:customer_accounts.admin.users:row-actions | data-table | row-action | — | FROZEN |
107
+ | data-table:customer_accounts.admin.users:search-trailing | data-table | render-widget | — | FROZEN |
108
+ | data-table:customer_accounts.admin.users:toolbar | data-table | toolbar-widget | — | FROZEN |
109
+ | customer_accounts:customer_role | entity | response-enricher, query-enricher, mutation-guard, entity-extension | tenant-and-organization | STABLE |
110
+ | customer_accounts:customer_role_acl | entity | response-enricher, query-enricher, mutation-guard, entity-extension | tenant-and-organization | STABLE |
111
+ | customer_accounts:customer_user | entity | response-enricher, query-enricher, mutation-guard, entity-extension | tenant-and-organization | STABLE |
112
+ | customer_accounts:customer_user_acl | entity | response-enricher, query-enricher, mutation-guard, entity-extension | tenant-and-organization | STABLE |
113
+ | customer_accounts:customer_user_email_verification | entity | response-enricher, query-enricher, mutation-guard, entity-extension | tenant-and-organization | STABLE |
114
+ | customer_accounts:customer_user_invitation | entity | response-enricher, query-enricher, mutation-guard, entity-extension | tenant-and-organization | STABLE |
115
+ | customer_accounts:customer_user_password_reset | entity | response-enricher, query-enricher, mutation-guard, entity-extension | tenant-and-organization | STABLE |
116
+ | customer_accounts:customer_user_role | entity | response-enricher, query-enricher, mutation-guard, entity-extension | tenant-and-organization | STABLE |
117
+ | customer_accounts:customer_user_session | entity | response-enricher, query-enricher, mutation-guard, entity-extension | tenant-and-organization | STABLE |
118
+ | customer_accounts:domain_mapping | entity | response-enricher, query-enricher, mutation-guard, entity-extension | tenant-and-organization | STABLE |
119
+ | customer_accounts.domain_mapping | entity | response-enricher, query-enricher, mutation-guard | tenant-and-organization | STABLE |
120
+ | customer_accounts.role | entity | response-enricher, query-enricher, mutation-guard | tenant-and-organization | STABLE |
121
+ | customer_accounts.domain_mapping.activated | event | async-subscriber, sync-subscriber, browser-client | tenant-organization-and-audience | STABLE |
122
+ | customer_accounts.domain_mapping.created | event | async-subscriber, sync-subscriber, browser-client | tenant-organization-and-audience | STABLE |
123
+ | customer_accounts.domain_mapping.deleted | event | async-subscriber, sync-subscriber, browser-client | tenant-organization-and-audience | STABLE |
124
+ | customer_accounts.domain_mapping.dns_failed | event | async-subscriber, sync-subscriber, browser-client | tenant-organization-and-audience | STABLE |
125
+ | customer_accounts.domain_mapping.replaced | event | async-subscriber, sync-subscriber, browser-client | tenant-organization-and-audience | STABLE |
126
+ | customer_accounts.domain_mapping.tls_failed | event | async-subscriber, sync-subscriber, browser-client | tenant-organization-and-audience | STABLE |
127
+ | customer_accounts.domain_mapping.verified | event | async-subscriber, sync-subscriber, browser-client | tenant-organization-and-audience | STABLE |
128
+ | customer_accounts.email.verified | event | async-subscriber, sync-subscriber, browser-portal | tenant-organization-and-audience | STABLE |
129
+ | customer_accounts.invitation.accepted | event | async-subscriber, sync-subscriber, browser-client | tenant-organization-and-audience | STABLE |
130
+ | customer_accounts.login.failed | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE |
131
+ | customer_accounts.login.success | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE |
132
+ | customer_accounts.magic_link.requested | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE |
133
+ | customer_accounts.password_reset.requested | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE |
134
+ | customer_accounts.password.changed | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE |
135
+ | customer_accounts.password.reset | event | async-subscriber, sync-subscriber, browser-portal | tenant-organization-and-audience | STABLE |
136
+ | customer_accounts.password.reset_requested | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE |
137
+ | customer_accounts.role.created | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE |
138
+ | customer_accounts.role.deleted | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE |
139
+ | customer_accounts.role.updated | event | async-subscriber, sync-subscriber, browser-portal | tenant-organization-and-audience | STABLE |
140
+ | customer_accounts.user.created | event | async-subscriber, sync-subscriber, browser-client | tenant-organization-and-audience | STABLE |
141
+ | customer_accounts.user.deleted | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE |
142
+ | customer_accounts.user.invited | event | async-subscriber, sync-subscriber, browser-client | tenant-organization-and-audience | STABLE |
143
+ | customer_accounts.user.locked | event | async-subscriber, sync-subscriber, browser-portal | tenant-organization-and-audience | STABLE |
144
+ | customer_accounts.user.unlocked | event | async-subscriber, sync-subscriber, browser-portal | tenant-organization-and-audience | STABLE |
145
+ | customer_accounts.user.updated | event | async-subscriber, sync-subscriber, browser-portal | tenant-organization-and-audience | STABLE |
146
+ | customer_accounts.customer_role.queried | query-lifecycle | sync-subscriber | tenant-and-organization-reapplied-after-result | STABLE |
147
+ | customer_accounts.customer_role.querying | query-lifecycle | sync-subscriber | tenant-and-organization-reapplied-after-result | STABLE |
148
+ | customer_accounts.customer_user.queried | query-lifecycle | sync-subscriber | tenant-and-organization-reapplied-after-result | STABLE |
149
+ | customer_accounts.customer_user.querying | query-lifecycle | sync-subscriber | tenant-and-organization-reapplied-after-result | STABLE |
150
+
151
+ ## UMES contributions
152
+
153
+ | ID | Kind | Target | Phase / operations | Contract | Resolution |
154
+ |---|---|---|---|---|---|
155
+ | customer_accounts.domain_mapping.activated.browser | browser-reaction | customer_accounts.domain_mapping.activated | — | audienceScopeContract=tenant-organization-user-role-and-customer; hooks=useAppEvent,useOperationProgress; transports=client | fact-ref |
156
+ | customer_accounts.domain_mapping.created.browser | browser-reaction | customer_accounts.domain_mapping.created | — | audienceScopeContract=tenant-organization-user-role-and-customer; hooks=useAppEvent,useOperationProgress; transports=client | fact-ref |
157
+ | customer_accounts.domain_mapping.deleted.browser | browser-reaction | customer_accounts.domain_mapping.deleted | — | audienceScopeContract=tenant-organization-user-role-and-customer; hooks=useAppEvent,useOperationProgress; transports=client | fact-ref |
158
+ | customer_accounts.domain_mapping.dns_failed.browser | browser-reaction | customer_accounts.domain_mapping.dns_failed | — | audienceScopeContract=tenant-organization-user-role-and-customer; hooks=useAppEvent,useOperationProgress; transports=client | fact-ref |
159
+ | customer_accounts.domain_mapping.replaced.browser | browser-reaction | customer_accounts.domain_mapping.replaced | — | audienceScopeContract=tenant-organization-user-role-and-customer; hooks=useAppEvent,useOperationProgress; transports=client | fact-ref |
160
+ | customer_accounts.domain_mapping.tls_failed.browser | browser-reaction | customer_accounts.domain_mapping.tls_failed | — | audienceScopeContract=tenant-organization-user-role-and-customer; hooks=useAppEvent,useOperationProgress; transports=client | fact-ref |
161
+ | customer_accounts.domain_mapping.verified.browser | browser-reaction | customer_accounts.domain_mapping.verified | — | audienceScopeContract=tenant-organization-user-role-and-customer; hooks=useAppEvent,useOperationProgress; transports=client | fact-ref |
162
+ | customer_accounts.email.verified.browser | browser-reaction | customer_accounts.email.verified | — | audienceScopeContract=tenant-organization-user-role-and-customer; hooks=usePortalAppEvent; transports=portal | fact-ref |
163
+ | customer_accounts.invitation.accepted.browser | browser-reaction | customer_accounts.invitation.accepted | — | audienceScopeContract=tenant-organization-user-role-and-customer; hooks=useAppEvent,useOperationProgress; transports=client | fact-ref |
164
+ | customer_accounts.password.reset.browser | browser-reaction | customer_accounts.password.reset | — | audienceScopeContract=tenant-organization-user-role-and-customer; hooks=usePortalAppEvent; transports=portal | fact-ref |
165
+ | customer_accounts.role.updated.browser | browser-reaction | customer_accounts.role.updated | — | audienceScopeContract=tenant-organization-user-role-and-customer; hooks=usePortalAppEvent; transports=portal | fact-ref |
166
+ | customer_accounts.user.created.browser | browser-reaction | customer_accounts.user.created | — | audienceScopeContract=tenant-organization-user-role-and-customer; hooks=useAppEvent,useOperationProgress; transports=client | fact-ref |
167
+ | customer_accounts.user.invited.browser | browser-reaction | customer_accounts.user.invited | — | audienceScopeContract=tenant-organization-user-role-and-customer; hooks=useAppEvent,useOperationProgress; transports=client | fact-ref |
168
+ | customer_accounts.user.locked.browser | browser-reaction | customer_accounts.user.locked | — | audienceScopeContract=tenant-organization-user-role-and-customer; hooks=usePortalAppEvent; transports=portal | fact-ref |
169
+ | customer_accounts.user.unlocked.browser | browser-reaction | customer_accounts.user.unlocked | — | audienceScopeContract=tenant-organization-user-role-and-customer; hooks=usePortalAppEvent; transports=portal | fact-ref |
170
+ | customer_accounts.user.updated.browser | browser-reaction | customer_accounts.user.updated | — | audienceScopeContract=tenant-organization-user-role-and-customer; hooks=usePortalAppEvent; transports=portal | fact-ref |
171
+ | customer_accounts.injection.account-status@crud-form:customers.person | crud-form | crud-form:customers.person | — | entityId=customers.person; payload=render; requestHeaderCapability=false | exact |
172
+ | customer_accounts.injection.company-users@crud-form:customers.company | crud-form | crud-form:customers.company | — | entityId=customers.company; payload=render; requestHeaderCapability=false | exact |
173
+ | customer_accounts.domain_mapping.hostname-format | mutation-guard | customer_accounts.domain_mapping | create | capabilities=block,rewrite; entityId=customer_accounts.domain_mapping; operations=create; optimisticLock=preserved | fact-ref |
174
+ | customer_accounts.domain_mapping.hostname-unique | mutation-guard | customer_accounts.domain_mapping | create | capabilities=block,rewrite; entityId=customer_accounts.domain_mapping; operations=create; optimisticLock=preserved | fact-ref |
175
+ | customer_accounts.domain_mapping.org-limit | mutation-guard | customer_accounts.domain_mapping | create | capabilities=block,rewrite; entityId=customer_accounts.domain_mapping; operations=create; optimisticLock=preserved | fact-ref |
176
+ | customer_accounts.domain_mapping.record-scope | mutation-guard | customer_accounts.domain_mapping | update, delete | capabilities=block,rewrite; entityId=customer_accounts.domain_mapping; operations=update,delete; optimisticLock=preserved | fact-ref |
177
+ | customer_accounts.company-user-count | response-enricher | customers.company | list, detail | cachePosture=rerun-on-list-cache-hit; critical=false; fallback=configured; surfaces=list,detail; targetEntity=customers.company; timeoutMs=2000 | optional-external |
178
+ | customer_accounts.domain-status:directory:organization | response-enricher | directory:organization | list, detail | cachePosture=rerun-on-list-cache-hit; critical=false; fallback=configured; surfaces=list,detail; targetEntity=directory:organization; timeoutMs=1000 | fact-ref |
179
+ | customer_accounts.person-account-status | response-enricher | customers.person | list, detail | cachePosture=rerun-on-list-cache-hit; critical=false; fallback=configured; surfaces=list,detail; targetEntity=customers.person; timeoutMs=2000 | fact-ref |
180
+ | notification:customer_accounts.domain_mapping.activated | specialized-registry | customer_accounts.domain_mapping.activated | — | registry=notification; registryId=customer_accounts.domain_mapping.activated; specialistRoute=notifications | fact-ref |
181
+ | notification:customer_accounts.domain_mapping.dns_failed | specialized-registry | customer_accounts.domain_mapping.dns_failed | — | registry=notification; registryId=customer_accounts.domain_mapping.dns_failed; specialistRoute=notifications | fact-ref |
182
+ | notification:customer_accounts.domain_mapping.tls_failed | specialized-registry | customer_accounts.domain_mapping.tls_failed | — | registry=notification; registryId=customer_accounts.domain_mapping.tls_failed; specialistRoute=notifications | fact-ref |
183
+ | notification:customer_accounts.domain_mapping.verified | specialized-registry | customer_accounts.domain_mapping.verified | — | registry=notification; registryId=customer_accounts.domain_mapping.verified; specialistRoute=notifications | fact-ref |
184
+ | notification:customer_accounts.user.locked | specialized-registry | customer_accounts.user.locked | — | registry=notification; registryId=customer_accounts.user.locked; specialistRoute=notifications | fact-ref |
185
+ | notification:customer_accounts.user.signup | specialized-registry | customer_accounts.user.signup | — | registry=notification; registryId=customer_accounts.user.signup; specialistRoute=notifications | fact-ref |
186
+ | search:customer_accounts:customer_role | specialized-registry | customer_accounts:customer_role | — | registry=search; registryId=customer_accounts:customer_role; specialistRoute=search | fact-ref |
187
+ | search:customer_accounts:customer_user | specialized-registry | customer_accounts:customer_user | — | registry=search; registryId=customer_accounts:customer_user; specialistRoute=search | fact-ref |
188
+ | customer_accounts:auto-link-crm | subscriber | customer_accounts.user.created | async-delivery | event=customer_accounts.user.created; persistent=true; subscriberId=customer_accounts:auto-link-crm; sync=false | fact-ref |
189
+ | customer_accounts:auto-link-crm-reverse | subscriber | customers.person.created | async-delivery | event=customers.person.created; persistent=true; subscriberId=customer_accounts:auto-link-crm-reverse; sync=false | fact-ref |
190
+ | customer_accounts:invalidate-domain-cache | subscriber | customer_accounts.domain_mapping.* | before-or-after | event=customer_accounts.domain_mapping.*; persistent=false; subscriberId=customer_accounts:invalidate-domain-cache; sync=true | pattern |
191
+ | customer_accounts:notify-domain-activated | subscriber | customer_accounts.domain_mapping.activated | async-delivery | event=customer_accounts.domain_mapping.activated; persistent=true; subscriberId=customer_accounts:notify-domain-activated; sync=false | fact-ref |
192
+ | customer_accounts:notify-domain-dns-failed | subscriber | customer_accounts.domain_mapping.dns_failed | async-delivery | event=customer_accounts.domain_mapping.dns_failed; persistent=true; subscriberId=customer_accounts:notify-domain-dns-failed; sync=false | fact-ref |
193
+ | customer_accounts:notify-domain-tls-failed | subscriber | customer_accounts.domain_mapping.tls_failed | async-delivery | event=customer_accounts.domain_mapping.tls_failed; persistent=true; subscriberId=customer_accounts:notify-domain-tls-failed; sync=false | fact-ref |
194
+ | customer_accounts:notify-domain-verified | subscriber | customer_accounts.domain_mapping.verified | async-delivery | event=customer_accounts.domain_mapping.verified; persistent=true; subscriberId=customer_accounts:notify-domain-verified; sync=false | fact-ref |
195
+ | customer_accounts:notify-staff-on-signup | subscriber | customer_accounts.user.created | async-delivery | event=customer_accounts.user.created; persistent=true; subscriberId=customer_accounts:notify-staff-on-signup; sync=false | fact-ref |
196
+ | customer_accounts:query-index-reindex-created | subscriber | customer_accounts.user.created | before-or-after | event=customer_accounts.user.created; persistent=false; subscriberId=customer_accounts:query-index-reindex-created; sync=true | fact-ref |
197
+ | customer_accounts:query-index-reindex-deleted | subscriber | customer_accounts.user.deleted | before-or-after | event=customer_accounts.user.deleted; persistent=false; subscriberId=customer_accounts:query-index-reindex-deleted; sync=true | fact-ref |
198
+ | customer_accounts:query-index-reindex-updated | subscriber | customer_accounts.user.updated | before-or-after | event=customer_accounts.user.updated; persistent=false; subscriberId=customer_accounts:query-index-reindex-updated; sync=true | fact-ref |
199
+ | customer_accounts:unlink-on-company-delete | subscriber | customers.company.deleted | async-delivery | event=customers.company.deleted; persistent=true; subscriberId=customer_accounts:unlink-on-company-delete; sync=false | fact-ref |
200
+ | customer_accounts:unlink-on-person-delete | subscriber | customers.person.deleted | async-delivery | event=customers.person.deleted; persistent=true; subscriberId=customer_accounts:unlink-on-person-delete; sync=false | fact-ref |
201
+ | customer_accounts.injection.account-status@customers.person | widget | customers.person | — | executionGuard=host; payload=render; registryKey=customer_accounts.injection.account-status | fact-ref |
202
+ | customer_accounts.injection.company-users@customers.company | widget | customers.company | — | executionGuard=host; payload=render; registryKey=customer_accounts.injection.company-users | optional-external |
203
+ | customer_accounts.injection.portal-ai-assistant-trigger@portal:profile:after | widget | portal:profile:after | — | executionGuard=host; payload=render; registryKey=customer_accounts.injection.portal-ai-assistant-trigger | exact |
204
+
205
+ ## UMES diagnostics
206
+
207
+ - unbound-helper: data-table:customer_accounts.admin.roles:empty-state
208
+ - unbound-helper: data-table:customer_accounts.admin.users:empty-state
209
+
87
210
  ## Notifications
88
211
 
89
212
  customer_accounts.user.signup · customer_accounts.user.locked · customer_accounts.domain_mapping.verified · customer_accounts.domain_mapping.activated · customer_accounts.domain_mapping.dns_failed · customer_accounts.domain_mapping.tls_failed
@@ -1,5 +1,5 @@
1
1
  # customers — module facts (generated, do not edit)
2
- <!-- generated from @open-mercato/core 0.6.7-develop.6758.1.697eade236; core 0.6.7-develop.6758.1.697eade236 — R1 staleness stamp -->
2
+ <!-- generated from @open-mercato/core 0.6.7-develop.6768.1.9d2c4efc43; core 0.6.7-develop.6768.1.9d2c4efc43 — R1 staleness stamp -->
3
3
  Source root: [node_modules/@open-mercato/core/src/modules/customers](../../../node_modules/@open-mercato/core/src/modules/customers)
4
4
 
5
5
  ## Entities
@@ -34,57 +34,57 @@ Source root: [node_modules/@open-mercato/core/src/modules/customers](../../../no
34
34
 
35
35
  ## Events (49)
36
36
 
37
- | ID | Category | Entity |
38
- |---|---|---|
39
- | customers.person.created | crud | person |
40
- | customers.person.updated | crud | person |
41
- | customers.person.deleted | crud | person |
42
- | customers.company.created | crud | company |
43
- | customers.company.updated | crud | company |
44
- | customers.company.deleted | crud | company |
45
- | customers.deal.created | crud | deal |
46
- | customers.deal.updated | crud | deal |
47
- | customers.deal.deleted | crud | deal |
48
- | customers.deal.won | lifecycle | deal |
49
- | customers.deal.lost | lifecycle | deal |
50
- | customers.comment.created | crud | comment |
51
- | customers.comment.updated | crud | comment |
52
- | customers.comment.deleted | crud | comment |
53
- | customers.address.created | crud | address |
54
- | customers.address.updated | crud | address |
55
- | customers.address.deleted | crud | address |
56
- | customers.activity.created | crud | activity |
57
- | customers.activity.updated | crud | activity |
58
- | customers.activity.deleted | crud | activity |
59
- | customers.tag.created | crud | tag |
60
- | customers.tag.updated | crud | tag |
61
- | customers.tag.deleted | crud | tag |
62
- | customers.tag.assigned | crud | tag |
63
- | customers.tag.removed | crud | tag |
64
- | customers.todo.created | crud | todo |
65
- | customers.todo.updated | crud | todo |
66
- | customers.todo.deleted | crud | todo |
67
- | customers.interaction.created | crud | interaction |
68
- | customers.interaction.updated | crud | interaction |
69
- | customers.interaction.completed | lifecycle | interaction |
70
- | customers.interaction.canceled | lifecycle | interaction |
71
- | customers.interaction.reverted | lifecycle | interaction |
72
- | customers.interaction.deleted | crud | interaction |
73
- | customers.next_interaction.updated | lifecycle | interaction |
74
- | customers.entity_role.created | crud | entity_role |
75
- | customers.entity_role.updated | crud | entity_role |
76
- | customers.entity_role.deleted | crud | entity_role |
77
- | customers.label.created | crud | label |
78
- | customers.label.updated | crud | label |
79
- | customers.label.deleted | crud | label |
80
- | customers.label_assignment.created | crud | label_assignment |
81
- | customers.label_assignment.updated | crud | label_assignment |
82
- | customers.label_assignment.deleted | crud | label_assignment |
83
- | customers.person_company_link.created | crud | person_company_link |
84
- | customers.person_company_link.updated | crud | person_company_link |
85
- | customers.person_company_link.deleted | crud | person_company_link |
86
- | customers.email.linked | lifecycle | email_link |
87
- | customers.email.visibility_changed | lifecycle | email_link |
37
+ | ID | Category | Entity | Browser transport |
38
+ |---|---|---|---|
39
+ | customers.person.created | crud | person | — |
40
+ | customers.person.updated | crud | person | — |
41
+ | customers.person.deleted | crud | person | — |
42
+ | customers.company.created | crud | company | — |
43
+ | customers.company.updated | crud | company | — |
44
+ | customers.company.deleted | crud | company | — |
45
+ | customers.deal.created | crud | deal | — |
46
+ | customers.deal.updated | crud | deal | — |
47
+ | customers.deal.deleted | crud | deal | — |
48
+ | customers.deal.won | lifecycle | deal | — |
49
+ | customers.deal.lost | lifecycle | deal | — |
50
+ | customers.comment.created | crud | comment | — |
51
+ | customers.comment.updated | crud | comment | — |
52
+ | customers.comment.deleted | crud | comment | — |
53
+ | customers.address.created | crud | address | — |
54
+ | customers.address.updated | crud | address | — |
55
+ | customers.address.deleted | crud | address | — |
56
+ | customers.activity.created | crud | activity | — |
57
+ | customers.activity.updated | crud | activity | — |
58
+ | customers.activity.deleted | crud | activity | — |
59
+ | customers.tag.created | crud | tag | — |
60
+ | customers.tag.updated | crud | tag | — |
61
+ | customers.tag.deleted | crud | tag | — |
62
+ | customers.tag.assigned | crud | tag | — |
63
+ | customers.tag.removed | crud | tag | — |
64
+ | customers.todo.created | crud | todo | — |
65
+ | customers.todo.updated | crud | todo | — |
66
+ | customers.todo.deleted | crud | todo | — |
67
+ | customers.interaction.created | crud | interaction | — |
68
+ | customers.interaction.updated | crud | interaction | — |
69
+ | customers.interaction.completed | lifecycle | interaction | — |
70
+ | customers.interaction.canceled | lifecycle | interaction | — |
71
+ | customers.interaction.reverted | lifecycle | interaction | — |
72
+ | customers.interaction.deleted | crud | interaction | — |
73
+ | customers.next_interaction.updated | lifecycle | interaction | — |
74
+ | customers.entity_role.created | crud | entity_role | — |
75
+ | customers.entity_role.updated | crud | entity_role | — |
76
+ | customers.entity_role.deleted | crud | entity_role | — |
77
+ | customers.label.created | crud | label | — |
78
+ | customers.label.updated | crud | label | — |
79
+ | customers.label.deleted | crud | label | — |
80
+ | customers.label_assignment.created | crud | label_assignment | — |
81
+ | customers.label_assignment.updated | crud | label_assignment | — |
82
+ | customers.label_assignment.deleted | crud | label_assignment | — |
83
+ | customers.person_company_link.created | crud | person_company_link | client |
84
+ | customers.person_company_link.updated | crud | person_company_link | client |
85
+ | customers.person_company_link.deleted | crud | person_company_link | client |
86
+ | customers.email.linked | lifecycle | email_link | client |
87
+ | customers.email.visibility_changed | lifecycle | email_link | client |
88
88
 
89
89
  ## ACL features (21)
90
90
 
@@ -134,6 +134,253 @@ customers:customer_person_profile · customers:customer_company_profile · custo
134
134
  - Entity IDs: customers:customer_entity
135
135
  - Table IDs: customers.companies.list · customers.deals.list · customers.people.list · customers.todos.list
136
136
 
137
+ ## UMES hosts
138
+
139
+ | ID / pattern | Family | Supports | Context | Stability |
140
+ |---|---|---|---|---|
141
+ | crud-form:customers.company | crud-form | render-widget, lifecycle-handler | — | FROZEN |
142
+ | crud-form:customers.company | crud-form | component-replacement | — | FROZEN |
143
+ | crud-form:customers.company:fields | crud-form | field-widget | — | FROZEN |
144
+ | crud-form:customers.company:header | crud-form | render-widget | — | FROZEN |
145
+ | crud-form:customers.deal | crud-form | render-widget, lifecycle-handler | — | FROZEN |
146
+ | crud-form:customers.deal | crud-form | component-replacement | — | FROZEN |
147
+ | crud-form:customers.deal:fields | crud-form | field-widget | — | FROZEN |
148
+ | crud-form:customers.deal:header | crud-form | render-widget | — | FROZEN |
149
+ | crud-form:customers.person | crud-form | render-widget, lifecycle-handler | — | FROZEN |
150
+ | crud-form:customers.person | crud-form | component-replacement | — | FROZEN |
151
+ | crud-form:customers.person:fields | crud-form | field-widget | — | FROZEN |
152
+ | crud-form:customers.person:header | crud-form | render-widget | — | FROZEN |
153
+ | data-table:customers.companies.list | data-table | component-replacement | — | FROZEN |
154
+ | data-table:customers.companies.list:bulk-actions | data-table | bulk-action | — | FROZEN |
155
+ | data-table:customers.companies.list:columns | data-table | column-widget | — | FROZEN |
156
+ | data-table:customers.companies.list:filters | data-table | filter-widget | — | FROZEN |
157
+ | data-table:customers.companies.list:footer | data-table | render-widget | — | FROZEN |
158
+ | data-table:customers.companies.list:header | data-table | render-widget | — | FROZEN |
159
+ | data-table:customers.companies.list:row-actions | data-table | row-action | — | FROZEN |
160
+ | data-table:customers.companies.list:search-trailing | data-table | render-widget | — | FROZEN |
161
+ | data-table:customers.companies.list:toolbar | data-table | toolbar-widget | — | FROZEN |
162
+ | data-table:customers.deals.list | data-table | component-replacement | — | FROZEN |
163
+ | data-table:customers.deals.list:bulk-actions | data-table | bulk-action | — | FROZEN |
164
+ | data-table:customers.deals.list:columns | data-table | column-widget | — | FROZEN |
165
+ | data-table:customers.deals.list:filters | data-table | filter-widget | — | FROZEN |
166
+ | data-table:customers.deals.list:footer | data-table | render-widget | — | FROZEN |
167
+ | data-table:customers.deals.list:header | data-table | render-widget | — | FROZEN |
168
+ | data-table:customers.deals.list:row-actions | data-table | row-action | — | FROZEN |
169
+ | data-table:customers.deals.list:search-trailing | data-table | render-widget | — | FROZEN |
170
+ | data-table:customers.deals.list:toolbar | data-table | toolbar-widget | — | FROZEN |
171
+ | data-table:customers.people.list | data-table | component-replacement | — | FROZEN |
172
+ | data-table:customers.people.list:bulk-actions | data-table | bulk-action | — | FROZEN |
173
+ | data-table:customers.people.list:columns | data-table | column-widget | — | FROZEN |
174
+ | data-table:customers.people.list:filters | data-table | filter-widget | — | FROZEN |
175
+ | data-table:customers.people.list:footer | data-table | render-widget | — | FROZEN |
176
+ | data-table:customers.people.list:header | data-table | render-widget | — | FROZEN |
177
+ | data-table:customers.people.list:row-actions | data-table | row-action | — | FROZEN |
178
+ | data-table:customers.people.list:search-trailing | data-table | render-widget | — | FROZEN |
179
+ | data-table:customers.people.list:toolbar | data-table | toolbar-widget | — | FROZEN |
180
+ | data-table:customers.todos.list | data-table | component-replacement | — | FROZEN |
181
+ | data-table:customers.todos.list:bulk-actions | data-table | bulk-action | — | FROZEN |
182
+ | data-table:customers.todos.list:columns | data-table | column-widget | — | FROZEN |
183
+ | data-table:customers.todos.list:filters | data-table | filter-widget | — | FROZEN |
184
+ | data-table:customers.todos.list:footer | data-table | render-widget | — | FROZEN |
185
+ | data-table:customers.todos.list:header | data-table | render-widget | — | FROZEN |
186
+ | data-table:customers.todos.list:row-actions | data-table | row-action | — | FROZEN |
187
+ | data-table:customers.todos.list:search-trailing | data-table | render-widget | — | FROZEN |
188
+ | data-table:customers.todos.list:toolbar | data-table | toolbar-widget | — | FROZEN |
189
+ | customers.company.detail:details | detail | render-widget | customers.detail.v1 | FROZEN |
190
+ | customers.person.detail:details | detail | render-widget | customers.detail.v1 | FROZEN |
191
+ | detail:customers.company:footer | detail | render-widget | customers.detail.v1 | FROZEN |
192
+ | detail:customers.company:header | detail | render-widget | customers.detail.v1 | FROZEN |
193
+ | detail:customers.company:status-badges | detail | render-widget | customers.detail.v1 | FROZEN |
194
+ | detail:customers.deal:footer | detail | render-widget | customers.detail.v1 | FROZEN |
195
+ | detail:customers.deal:header | detail | render-widget | customers.detail.v1 | FROZEN |
196
+ | detail:customers.deal:status-badges | detail | render-widget | customers.detail.v1 | FROZEN |
197
+ | detail:customers.person:footer | detail | render-widget | customers.detail.v1 | FROZEN |
198
+ | detail:customers.person:header | detail | render-widget | customers.detail.v1 | FROZEN |
199
+ | detail:customers.person:status-badges | detail | render-widget | customers.detail.v1 | FROZEN |
200
+ | customers:customer_activity | entity | response-enricher, query-enricher, mutation-guard, entity-extension | tenant-and-organization | STABLE |
201
+ | customers:customer_address | entity | response-enricher, query-enricher, mutation-guard, entity-extension | tenant-and-organization | STABLE |
202
+ | customers:customer_comment | entity | response-enricher, query-enricher, mutation-guard, entity-extension | tenant-and-organization | STABLE |
203
+ | customers:customer_company_billing | entity | response-enricher, query-enricher, mutation-guard, entity-extension | tenant-and-organization | STABLE |
204
+ | customers:customer_company_profile | entity | response-enricher, query-enricher, mutation-guard, entity-extension | tenant-and-organization | STABLE |
205
+ | customers:customer_deal | entity | response-enricher, query-enricher, mutation-guard, entity-extension | tenant-and-organization | STABLE |
206
+ | customers:customer_deal_company_link | entity | response-enricher, query-enricher, mutation-guard, entity-extension | tenant-and-organization | STABLE |
207
+ | customers:customer_deal_person_link | entity | response-enricher, query-enricher, mutation-guard, entity-extension | tenant-and-organization | STABLE |
208
+ | customers:customer_deal_stage_transition | entity | response-enricher, query-enricher, mutation-guard, entity-extension | tenant-and-organization | STABLE |
209
+ | customers:customer_dictionary_entry | entity | response-enricher, query-enricher, mutation-guard, entity-extension | tenant-and-organization | STABLE |
210
+ | customers:customer_dictionary_kind_setting | entity | response-enricher, query-enricher, mutation-guard, entity-extension | tenant-and-organization | STABLE |
211
+ | customers:customer_entity | entity | response-enricher, query-enricher, mutation-guard, entity-extension | tenant-and-organization | STABLE |
212
+ | customers:customer_entity_role | entity | response-enricher, query-enricher, mutation-guard, entity-extension | tenant-and-organization | STABLE |
213
+ | customers:customer_interaction | entity | response-enricher, query-enricher, mutation-guard, entity-extension | tenant-and-organization | STABLE |
214
+ | customers:customer_label | entity | response-enricher, query-enricher, mutation-guard, entity-extension | tenant-and-organization | STABLE |
215
+ | customers:customer_label_assignment | entity | response-enricher, query-enricher, mutation-guard, entity-extension | tenant-and-organization | STABLE |
216
+ | customers:customer_person_company_link | entity | response-enricher, query-enricher, mutation-guard, entity-extension | tenant-and-organization | STABLE |
217
+ | customers:customer_person_company_role | entity | response-enricher, query-enricher, mutation-guard, entity-extension | tenant-and-organization | STABLE |
218
+ | customers:customer_person_profile | entity | response-enricher, query-enricher, mutation-guard, entity-extension | tenant-and-organization | STABLE |
219
+ | customers:customer_pipeline | entity | response-enricher, query-enricher, mutation-guard, entity-extension | tenant-and-organization | STABLE |
220
+ | customers:customer_pipeline_stage | entity | response-enricher, query-enricher, mutation-guard, entity-extension | tenant-and-organization | STABLE |
221
+ | customers:customer_settings | entity | response-enricher, query-enricher, mutation-guard, entity-extension | tenant-and-organization | STABLE |
222
+ | customers:customer_tag | entity | response-enricher, query-enricher, mutation-guard, entity-extension | tenant-and-organization | STABLE |
223
+ | customers:customer_tag_assignment | entity | response-enricher, query-enricher, mutation-guard, entity-extension | tenant-and-organization | STABLE |
224
+ | customers:customer_todo_link | entity | response-enricher, query-enricher, mutation-guard, entity-extension | tenant-and-organization | STABLE |
225
+ | customers.activity | entity | response-enricher, query-enricher, mutation-guard | tenant-and-organization | STABLE |
226
+ | customers.deal | entity | response-enricher, query-enricher, mutation-guard | tenant-and-organization | STABLE |
227
+ | customers.dictionary_entry | entity | response-enricher, query-enricher, mutation-guard | tenant-and-organization | STABLE |
228
+ | customers.interaction | entity | response-enricher, query-enricher, mutation-guard | tenant-and-organization | STABLE |
229
+ | customers.label | entity | response-enricher, query-enricher, mutation-guard | tenant-and-organization | STABLE |
230
+ | customers.person | entity | response-enricher, query-enricher, mutation-guard | tenant-and-organization | STABLE |
231
+ | customers.pipeline | entity | response-enricher, query-enricher, mutation-guard | tenant-and-organization | STABLE |
232
+ | customers.pipelineStage | entity | response-enricher, query-enricher, mutation-guard | tenant-and-organization | STABLE |
233
+ | customers.settings | entity | response-enricher, query-enricher, mutation-guard | tenant-and-organization | STABLE |
234
+ | customers.tagAssignment | entity | response-enricher, query-enricher, mutation-guard | tenant-and-organization | STABLE |
235
+ | customers.todoLink | entity | response-enricher, query-enricher, mutation-guard | tenant-and-organization | STABLE |
236
+ | customers.activity.created | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE |
237
+ | customers.activity.deleted | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE |
238
+ | customers.activity.updated | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE |
239
+ | customers.address.created | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE |
240
+ | customers.address.deleted | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE |
241
+ | customers.address.updated | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE |
242
+ | customers.comment.created | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE |
243
+ | customers.comment.deleted | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE |
244
+ | customers.comment.updated | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE |
245
+ | customers.company.created | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE |
246
+ | customers.company.deleted | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE |
247
+ | customers.company.updated | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE |
248
+ | customers.deal.created | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE |
249
+ | customers.deal.deleted | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE |
250
+ | customers.deal.lost | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE |
251
+ | customers.deal.updated | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE |
252
+ | customers.deal.won | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE |
253
+ | customers.email.linked | event | async-subscriber, sync-subscriber, browser-client | tenant-organization-and-audience | STABLE |
254
+ | customers.email.visibility_changed | event | async-subscriber, sync-subscriber, browser-client | tenant-organization-and-audience | STABLE |
255
+ | customers.entity_role.created | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE |
256
+ | customers.entity_role.deleted | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE |
257
+ | customers.entity_role.updated | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE |
258
+ | customers.interaction.canceled | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE |
259
+ | customers.interaction.completed | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE |
260
+ | customers.interaction.created | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE |
261
+ | customers.interaction.deleted | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE |
262
+ | customers.interaction.reverted | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE |
263
+ | customers.interaction.updated | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE |
264
+ | customers.label_assignment.created | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE |
265
+ | customers.label_assignment.deleted | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE |
266
+ | customers.label_assignment.updated | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE |
267
+ | customers.label.created | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE |
268
+ | customers.label.deleted | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE |
269
+ | customers.label.updated | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE |
270
+ | customers.next_interaction.updated | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE |
271
+ | customers.person_company_link.created | event | async-subscriber, sync-subscriber, browser-client | tenant-organization-and-audience | STABLE |
272
+ | customers.person_company_link.deleted | event | async-subscriber, sync-subscriber, browser-client | tenant-organization-and-audience | STABLE |
273
+ | customers.person_company_link.updated | event | async-subscriber, sync-subscriber, browser-client | tenant-organization-and-audience | STABLE |
274
+ | customers.person.created | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE |
275
+ | customers.person.deleted | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE |
276
+ | customers.person.updated | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE |
277
+ | customers.tag.assigned | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE |
278
+ | customers.tag.created | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE |
279
+ | customers.tag.deleted | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE |
280
+ | customers.tag.removed | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE |
281
+ | customers.tag.updated | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE |
282
+ | customers.todo.created | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE |
283
+ | customers.todo.deleted | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE |
284
+ | customers.todo.updated | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE |
285
+ | customers.customer_activity.queried | query-lifecycle | sync-subscriber | tenant-and-organization-reapplied-after-result | STABLE |
286
+ | customers.customer_activity.querying | query-lifecycle | sync-subscriber | tenant-and-organization-reapplied-after-result | STABLE |
287
+ | customers.customer_comment.queried | query-lifecycle | sync-subscriber | tenant-and-organization-reapplied-after-result | STABLE |
288
+ | customers.customer_comment.querying | query-lifecycle | sync-subscriber | tenant-and-organization-reapplied-after-result | STABLE |
289
+ | customers.customer_company_profile.queried | query-lifecycle | sync-subscriber | tenant-and-organization-reapplied-after-result | STABLE |
290
+ | customers.customer_company_profile.querying | query-lifecycle | sync-subscriber | tenant-and-organization-reapplied-after-result | STABLE |
291
+ | customers.customer_deal.queried | query-lifecycle | sync-subscriber | tenant-and-organization-reapplied-after-result | STABLE |
292
+ | customers.customer_deal.querying | query-lifecycle | sync-subscriber | tenant-and-organization-reapplied-after-result | STABLE |
293
+ | customers.customer_person_profile.queried | query-lifecycle | sync-subscriber | tenant-and-organization-reapplied-after-result | STABLE |
294
+ | customers.customer_person_profile.querying | query-lifecycle | sync-subscriber | tenant-and-organization-reapplied-after-result | STABLE |
295
+ | customers.customer_todo_link.queried | query-lifecycle | sync-subscriber | tenant-and-organization-reapplied-after-result | STABLE |
296
+ | customers.customer_todo_link.querying | query-lifecycle | sync-subscriber | tenant-and-organization-reapplied-after-result | STABLE |
297
+
298
+ ## UMES contributions
299
+
300
+ | ID | Kind | Target | Phase / operations | Contract | Resolution |
301
+ |---|---|---|---|---|---|
302
+ | customers.email.linked.browser | browser-reaction | customers.email.linked | — | audienceScopeContract=tenant-organization-user-role-and-customer; hooks=useAppEvent,useOperationProgress; transports=client | fact-ref |
303
+ | customers.email.visibility_changed.browser | browser-reaction | customers.email.visibility_changed | — | audienceScopeContract=tenant-organization-user-role-and-customer; hooks=useAppEvent,useOperationProgress; transports=client | fact-ref |
304
+ | customers.person_company_link.created.browser | browser-reaction | customers.person_company_link.created | — | audienceScopeContract=tenant-organization-user-role-and-customer; hooks=useAppEvent,useOperationProgress; transports=client | fact-ref |
305
+ | customers.person_company_link.deleted.browser | browser-reaction | customers.person_company_link.deleted | — | audienceScopeContract=tenant-organization-user-role-and-customer; hooks=useAppEvent,useOperationProgress; transports=client | fact-ref |
306
+ | customers.person_company_link.updated.browser | browser-reaction | customers.person_company_link.updated | — | audienceScopeContract=tenant-organization-user-role-and-customer; hooks=useAppEvent,useOperationProgress; transports=client | fact-ref |
307
+ | customers.injection.ai-assistant-trigger@data-table:customers.companies.list:search-trailing | data-table | data-table:customers.companies.list:search-trailing | — | executionGuard=host; payload=render; tableId=customers.companies.list | exact |
308
+ | customers.injection.ai-assistant-trigger@data-table:customers.people.list:search-trailing | data-table | data-table:customers.people.list:search-trailing | — | executionGuard=host; payload=render; tableId=customers.people.list | exact |
309
+ | customers.injection.ai-deal-analyzer-trigger@data-table:customers.deals.list:search-trailing | data-table | data-table:customers.deals.list:search-trailing | — | executionGuard=host; payload=render; tableId=customers.deals.list | exact |
310
+ | customers.entity-extension.0:customers:customer_interaction->communication_channels:message_channel_link | entity-extension | customers:customer_interaction | — | extensionEntityId=communication_channels:message_channel_link; hostEntityId=customers:customer_interaction; linkId=external_message_id:id; orphanContract=optional; scopeContract=tenant-and-organization | fact-ref |
311
+ | customers.optimistic-lock | mutation-guard | * | update, delete | capabilities=block,rewrite; entityId=*; operations=update,delete; optimisticLock=preserved | pattern |
312
+ | customers.deal-pipeline-state | response-enricher | customers.deal | list, detail | cachePosture=rerun-on-list-cache-hit; critical=false; fallback=configured; surfaces=list,detail; targetEntity=customers.deal; timeoutMs=2000 | fact-ref |
313
+ | customers.interaction-email-card | response-enricher | customers.interaction | list, detail | cachePosture=rerun-on-list-cache-hit; critical=false; fallback=configured; surfaces=list,detail; targetEntity=customers.interaction; timeoutMs=1500 | fact-ref |
314
+ | customers.private-email-count | response-enricher | customers.person | list, detail | cachePosture=rerun-on-list-cache-hit; critical=false; fallback=configured; surfaces=list,detail; targetEntity=customers.person; timeoutMs=1500 | fact-ref |
315
+ | ai:customers.account_assistant | specialized-registry | customers.account_assistant | — | registry=ai; registryId=customers.account_assistant; specialistRoute=aiAgents | fact-ref |
316
+ | ai:customers.analyze_deals | specialized-registry | customers.analyze_deals | — | registry=ai; registryId=customers.analyze_deals; specialistRoute=aiTools | fact-ref |
317
+ | ai:customers.deal_analyzer | specialized-registry | customers.deal_analyzer | — | registry=ai; registryId=customers.deal_analyzer; specialistRoute=aiAgents | fact-ref |
318
+ | ai:customers.deal_analyzer_tool_loop | specialized-registry | customers.deal_analyzer_tool_loop | — | registry=ai; registryId=customers.deal_analyzer_tool_loop; specialistRoute=aiAgents | fact-ref |
319
+ | ai:customers.get_company | specialized-registry | customers.get_company | — | registry=ai; registryId=customers.get_company; specialistRoute=aiTools | fact-ref |
320
+ | ai:customers.get_deal | specialized-registry | customers.get_deal | — | registry=ai; registryId=customers.get_deal; specialistRoute=aiTools | fact-ref |
321
+ | ai:customers.get_person | specialized-registry | customers.get_person | — | registry=ai; registryId=customers.get_person; specialistRoute=aiTools | fact-ref |
322
+ | ai:customers.get_settings | specialized-registry | customers.get_settings | — | registry=ai; registryId=customers.get_settings; specialistRoute=aiTools | fact-ref |
323
+ | ai:customers.list_activities | specialized-registry | customers.list_activities | — | registry=ai; registryId=customers.list_activities; specialistRoute=aiTools | fact-ref |
324
+ | ai:customers.list_addresses | specialized-registry | customers.list_addresses | — | registry=ai; registryId=customers.list_addresses; specialistRoute=aiTools | fact-ref |
325
+ | ai:customers.list_companies | specialized-registry | customers.list_companies | — | registry=ai; registryId=customers.list_companies; specialistRoute=aiTools | fact-ref |
326
+ | ai:customers.list_deal_comments | specialized-registry | customers.list_deal_comments | — | registry=ai; registryId=customers.list_deal_comments; specialistRoute=aiTools | fact-ref |
327
+ | ai:customers.list_deals | specialized-registry | customers.list_deals | — | registry=ai; registryId=customers.list_deals; specialistRoute=aiTools | fact-ref |
328
+ | ai:customers.list_people | specialized-registry | customers.list_people | — | registry=ai; registryId=customers.list_people; specialistRoute=aiTools | fact-ref |
329
+ | ai:customers.list_pipeline_stages | specialized-registry | customers.list_pipeline_stages | — | registry=ai; registryId=customers.list_pipeline_stages; specialistRoute=aiTools | fact-ref |
330
+ | ai:customers.list_record_comments | specialized-registry | customers.list_record_comments | — | registry=ai; registryId=customers.list_record_comments; specialistRoute=aiTools | fact-ref |
331
+ | ai:customers.list_tags | specialized-registry | customers.list_tags | — | registry=ai; registryId=customers.list_tags; specialistRoute=aiTools | fact-ref |
332
+ | ai:customers.list_tasks | specialized-registry | customers.list_tasks | — | registry=ai; registryId=customers.list_tasks; specialistRoute=aiTools | fact-ref |
333
+ | ai:customers.manage_deal_activity | specialized-registry | customers.manage_deal_activity | — | registry=ai; registryId=customers.manage_deal_activity; specialistRoute=aiTools | fact-ref |
334
+ | ai:customers.manage_deal_comment | specialized-registry | customers.manage_deal_comment | — | registry=ai; registryId=customers.manage_deal_comment; specialistRoute=aiTools | fact-ref |
335
+ | ai:customers.manage_record_activity | specialized-registry | customers.manage_record_activity | — | registry=ai; registryId=customers.manage_record_activity; specialistRoute=aiTools | fact-ref |
336
+ | ai:customers.manage_record_comment | specialized-registry | customers.manage_record_comment | — | registry=ai; registryId=customers.manage_record_comment; specialistRoute=aiTools | fact-ref |
337
+ | ai:customers.update_deal_stage | specialized-registry | customers.update_deal_stage | — | registry=ai; registryId=customers.update_deal_stage; specialistRoute=aiTools | fact-ref |
338
+ | notification:customers.deal.lost | specialized-registry | customers.deal.lost | — | registry=notification; registryId=customers.deal.lost; specialistRoute=notifications | fact-ref |
339
+ | notification:customers.deal.won | specialized-registry | customers.deal.won | — | registry=notification; registryId=customers.deal.won; specialistRoute=notifications | fact-ref |
340
+ | search:customers:customer_activity | specialized-registry | customers:customer_activity | — | registry=search; registryId=customers:customer_activity; specialistRoute=search | fact-ref |
341
+ | search:customers:customer_comment | specialized-registry | customers:customer_comment | — | registry=search; registryId=customers:customer_comment; specialistRoute=search | fact-ref |
342
+ | search:customers:customer_company_profile | specialized-registry | customers:customer_company_profile | — | registry=search; registryId=customers:customer_company_profile; specialistRoute=search | fact-ref |
343
+ | search:customers:customer_deal | specialized-registry | customers:customer_deal | — | registry=search; registryId=customers:customer_deal; specialistRoute=search | fact-ref |
344
+ | search:customers:customer_person_profile | specialized-registry | customers:customer_person_profile | — | registry=search; registryId=customers:customer_person_profile; specialistRoute=search | fact-ref |
345
+ | search:customers:customer_todo_link | specialized-registry | customers:customer_todo_link | — | registry=search; registryId=customers:customer_todo_link; specialistRoute=search | fact-ref |
346
+ | customers:deal-lost-notification | subscriber | customers.deal.lost | async-delivery | event=customers.deal.lost; persistent=true; subscriberId=customers:deal-lost-notification; sync=false | fact-ref |
347
+ | customers:deal-won-notification | subscriber | customers.deal.won | async-delivery | event=customers.deal.won; persistent=true; subscriberId=customers:deal-won-notification; sync=false | fact-ref |
348
+ | customers:link-channel-message-received | subscriber | communication_channels.message.received | async-delivery | event=communication_channels.message.received; persistent=true; subscriberId=customers:link-channel-message-received; sync=false | fact-ref |
349
+ | customers:link-channel-message-sent | subscriber | communication_channels.message.sent | async-delivery | event=communication_channels.message.sent; persistent=true; subscriberId=customers:link-channel-message-sent; sync=false | fact-ref |
350
+ | customers.injection.ai-deal-detail-trigger@detail:customers.deal:header | widget | detail:customers.deal:header | — | executionGuard=host; payload=render; registryKey=customers.injection.ai-deal-detail-trigger | exact |
351
+ | dashboard:customers.dashboard.newCustomers | widget | dashboard:customers.dashboard.newCustomers | — | executionGuard=both; payload=dashboard; registryKey=customers.dashboard.newCustomers | framework |
352
+ | dashboard:customers.dashboard.newDeals | widget | dashboard:customers.dashboard.newDeals | — | executionGuard=both; payload=dashboard; registryKey=customers.dashboard.newDeals | framework |
353
+ | dashboard:customers.dashboard.nextInteractions | widget | dashboard:customers.dashboard.nextInteractions | — | executionGuard=both; payload=dashboard; registryKey=customers.dashboard.nextInteractions | framework |
354
+ | dashboard:customers.dashboard.todos | widget | dashboard:customers.dashboard.todos | — | executionGuard=both; payload=dashboard; registryKey=customers.dashboard.todos | framework |
355
+
356
+ ## UMES diagnostics
357
+
358
+ - unbound-helper: crud-form:customers.company:after-fields
359
+ - unbound-helper: crud-form:customers.company:before-fields
360
+ - unbound-helper: crud-form:customers.company:field:{fieldId}:after
361
+ - unbound-helper: crud-form:customers.company:field:{fieldId}:before
362
+ - unbound-helper: crud-form:customers.company:footer
363
+ - unbound-helper: crud-form:customers.company:group:{groupId}
364
+ - unbound-helper: crud-form:customers.company:sidebar
365
+ - unbound-helper: crud-form:customers.deal:after-fields
366
+ - unbound-helper: crud-form:customers.deal:before-fields
367
+ - unbound-helper: crud-form:customers.deal:field:{fieldId}:after
368
+ - unbound-helper: crud-form:customers.deal:field:{fieldId}:before
369
+ - unbound-helper: crud-form:customers.deal:footer
370
+ - unbound-helper: crud-form:customers.deal:group:{groupId}
371
+ - unbound-helper: crud-form:customers.deal:sidebar
372
+ - unbound-helper: crud-form:customers.person:after-fields
373
+ - unbound-helper: crud-form:customers.person:before-fields
374
+ - unbound-helper: crud-form:customers.person:field:{fieldId}:after
375
+ - unbound-helper: crud-form:customers.person:field:{fieldId}:before
376
+ - unbound-helper: crud-form:customers.person:footer
377
+ - unbound-helper: crud-form:customers.person:group:{groupId}
378
+ - unbound-helper: crud-form:customers.person:sidebar
379
+ - unbound-helper: data-table:customers.companies.list:empty-state
380
+ - unbound-helper: data-table:customers.deals.list:empty-state
381
+ - unbound-helper: data-table:customers.people.list:empty-state
382
+ - unbound-helper: data-table:customers.todos.list:empty-state
383
+
137
384
  ## Notifications
138
385
 
139
386
  customers.deal.won · customers.deal.lost