@open-mercato/cli 0.6.7-develop.6862.1.c11a64ce0a → 0.6.7

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 (278) hide show
  1. package/.turbo/turbo-build.log +4 -4
  2. package/build.mjs +7 -24
  3. package/dist/agentic/claude-code/hooks/entity-migration-check.ts +88 -32
  4. package/dist/agentic/codex/enforcement-rules.md +16 -2
  5. package/dist/agentic/cursor/hooks/entity-migration-check.mjs +50 -19
  6. package/dist/agentic/cursor/rules/entity-guard.mdc +21 -9
  7. package/dist/agentic/cursor/rules/generated-guard.mdc +5 -3
  8. package/dist/agentic/cursor/rules/open-mercato.mdc +29 -3
  9. package/dist/agentic/guides/cache.md +45 -0
  10. package/dist/agentic/guides/core.md +453 -0
  11. package/dist/agentic/guides/events.md +117 -0
  12. package/dist/agentic/guides/module-facts.json +3833 -115419
  13. package/dist/agentic/guides/module-system.md +127 -12
  14. package/dist/agentic/guides/modules/ai_assistant.md +28 -227
  15. package/dist/agentic/guides/modules/api_docs.md +2 -58
  16. package/dist/agentic/guides/modules/api_keys.md +7 -92
  17. package/dist/agentic/guides/modules/attachments.md +14 -119
  18. package/dist/agentic/guides/modules/audit_logs.md +10 -131
  19. package/dist/agentic/guides/modules/auth.md +33 -276
  20. package/dist/agentic/guides/modules/business_rules.md +14 -149
  21. package/dist/agentic/guides/modules/catalog.md +43 -475
  22. package/dist/agentic/guides/modules/channel_gmail.md +3 -82
  23. package/dist/agentic/guides/modules/channel_imap.md +3 -82
  24. package/dist/agentic/guides/modules/checkout.md +27 -299
  25. package/dist/agentic/guides/modules/communication_channels.md +33 -315
  26. package/dist/agentic/guides/modules/configs.md +8 -104
  27. package/dist/agentic/guides/modules/content.md +2 -57
  28. package/dist/agentic/guides/modules/currencies.md +17 -152
  29. package/dist/agentic/guides/modules/customer_accounts.md +45 -387
  30. package/dist/agentic/guides/modules/customers.md +85 -746
  31. package/dist/agentic/guides/modules/dashboards.md +10 -155
  32. package/dist/agentic/guides/modules/data_sync.md +16 -149
  33. package/dist/agentic/guides/modules/dictionaries.md +12 -107
  34. package/dist/agentic/guides/modules/directory.md +15 -148
  35. package/dist/agentic/guides/modules/entities.md +13 -145
  36. package/dist/agentic/guides/modules/events.md +2 -59
  37. package/dist/agentic/guides/modules/feature_toggles.md +9 -119
  38. package/dist/agentic/guides/modules/gateway_stripe.md +4 -92
  39. package/dist/agentic/guides/modules/generators.md +2 -45
  40. package/dist/agentic/guides/modules/inbox_ops.md +27 -207
  41. package/dist/agentic/guides/modules/integrations.md +16 -146
  42. package/dist/agentic/guides/modules/messages.md +24 -223
  43. package/dist/agentic/guides/modules/notifications.md +8 -96
  44. package/dist/agentic/guides/modules/onboarding.md +6 -77
  45. package/dist/agentic/guides/modules/payment_gateways.md +21 -164
  46. package/dist/agentic/guides/modules/perspectives.md +7 -77
  47. package/dist/agentic/guides/modules/planner.md +18 -136
  48. package/dist/agentic/guides/modules/portal.md +2 -93
  49. package/dist/agentic/guides/modules/progress.md +14 -104
  50. package/dist/agentic/guides/modules/query_index.md +15 -154
  51. package/dist/agentic/guides/modules/record_locks.md +21 -206
  52. package/dist/agentic/guides/modules/resources.md +30 -197
  53. package/dist/agentic/guides/modules/sales.md +84 -678
  54. package/dist/agentic/guides/modules/scheduler.md +14 -133
  55. package/dist/agentic/guides/modules/search.md +6 -170
  56. package/dist/agentic/guides/modules/security.md +35 -294
  57. package/dist/agentic/guides/modules/shipping_carriers.md +18 -134
  58. package/dist/agentic/guides/modules/sso.md +26 -151
  59. package/dist/agentic/guides/modules/staff.md +57 -369
  60. package/dist/agentic/guides/modules/storage_s3.md +5 -95
  61. package/dist/agentic/guides/modules/sync_akeneo.md +3 -85
  62. package/dist/agentic/guides/modules/sync_excel.md +6 -75
  63. package/dist/agentic/guides/modules/system_status_overlays.md +2 -60
  64. package/dist/agentic/guides/modules/translations.md +10 -104
  65. package/dist/agentic/guides/modules/webhooks.md +24 -203
  66. package/dist/agentic/guides/modules/wms.md +46 -441
  67. package/dist/agentic/guides/modules/workflows.md +43 -302
  68. package/dist/agentic/guides/queue.md +53 -0
  69. package/dist/agentic/guides/search.md +115 -0
  70. package/dist/agentic/guides/shared.md +108 -0
  71. package/dist/agentic/guides/ui.md +347 -0
  72. package/dist/agentic/shared/AGENTS.md.template +311 -124
  73. package/dist/agentic/shared/ai/agentic.config.json +0 -2
  74. package/dist/agentic/shared/ai/lessons.md +3 -26
  75. package/dist/agentic/shared/ai/skills/om-auto-continue-pr-loop/SKILL.md +27 -0
  76. package/dist/agentic/shared/ai/skills/om-auto-create-pr-loop/SKILL.md +27 -0
  77. package/dist/agentic/shared/ai/skills/om-auto-review-pr/SKILL.md +0 -4
  78. package/dist/agentic/shared/ai/skills/om-backend-ui-design/SKILL.md +241 -20
  79. package/dist/agentic/shared/ai/skills/om-backend-ui-design/references/ui-components.md +260 -0
  80. package/dist/agentic/shared/ai/skills/om-data-model-design/SKILL.md +601 -16
  81. package/dist/agentic/shared/ai/skills/om-data-model-design/references/mikro-orm-cheatsheet.md +146 -0
  82. package/dist/agentic/shared/ai/skills/om-eject-and-customize/SKILL.md +310 -14
  83. package/dist/agentic/shared/ai/skills/om-help/SKILL.md +97 -15
  84. package/dist/agentic/shared/ai/skills/om-help/references/skills-catalog.md +84 -0
  85. package/dist/agentic/shared/ai/skills/om-help/references/workflow-sequences.md +193 -0
  86. package/dist/agentic/shared/ai/skills/om-implement-spec/SKILL.md +152 -33
  87. package/dist/agentic/shared/ai/skills/om-integration-builder/SKILL.md +708 -24
  88. package/dist/agentic/shared/ai/skills/om-integration-builder/STANDALONE.md +34 -0
  89. package/dist/agentic/shared/ai/skills/om-integration-builder/references/adapter-contracts.md +762 -0
  90. package/dist/agentic/shared/ai/skills/om-module-scaffold/SKILL.md +820 -20
  91. package/dist/agentic/shared/ai/skills/om-module-scaffold/references/naming-conventions.md +50 -0
  92. package/dist/agentic/shared/ai/skills/om-module-scaffold/references/navigation-patterns.md +97 -0
  93. package/dist/agentic/shared/ai/skills/om-system-extension/SKILL.md +843 -19
  94. package/dist/agentic/shared/ai/skills/om-system-extension/references/extension-contracts.md +271 -0
  95. package/dist/agentic/shared/ai/skills/om-trim-unused-modules/SKILL.md +63 -15
  96. package/dist/agentic/shared/ai/skills/om-troubleshooter/SKILL.md +467 -16
  97. package/dist/agentic/shared/ai/skills/om-troubleshooter/references/diagnostic-commands.md +101 -0
  98. package/dist/agentic/shared/ai/skills/tiers.json +21 -143
  99. package/dist/agentic/shared/ai/skills/tiers.schema.json +40 -52
  100. package/dist/agentic/shared/ai/specs/README.md +3 -4
  101. package/dist/agentic/shared/ai/specs/SPEC-000-template.md +10 -226
  102. package/dist/agentic/shared/ai/trackers/github.md +4 -108
  103. package/dist/agentic/shared/scripts/install-skills.sh +694 -4
  104. package/dist/bin.js +1 -13
  105. package/dist/bin.js.map +2 -2
  106. package/dist/lib/__integration__/TC-INT-008.spec.js +8 -88
  107. package/dist/lib/__integration__/TC-INT-008.spec.js.map +2 -2
  108. package/dist/lib/agentic-init.js +3 -13
  109. package/dist/lib/agentic-init.js.map +2 -2
  110. package/dist/lib/agentic-setup.js +186 -418
  111. package/dist/lib/agentic-setup.js.map +2 -2
  112. package/dist/lib/generators/extensions/injection-widgets.js +0 -20
  113. package/dist/lib/generators/extensions/injection-widgets.js.map +2 -2
  114. package/dist/lib/generators/module-facts-discovery.js +7 -41
  115. package/dist/lib/generators/module-facts-discovery.js.map +2 -2
  116. package/dist/lib/generators/module-facts.js +45 -1387
  117. package/dist/lib/generators/module-facts.js.map +3 -3
  118. package/dist/lib/generators/module-registry.js +5 -11
  119. package/dist/lib/generators/module-registry.js.map +2 -2
  120. package/dist/lib/resolver.js +0 -2
  121. package/dist/lib/resolver.js.map +2 -2
  122. package/dist/lib/testing/integration.js +0 -5
  123. package/dist/lib/testing/integration.js.map +2 -2
  124. package/dist/mercato.js +1 -23
  125. package/dist/mercato.js.map +2 -2
  126. package/package.json +11 -13
  127. package/src/bin.ts +1 -33
  128. package/src/lib/__integration__/TC-INT-008.spec.ts +9 -107
  129. package/src/lib/__tests__/agentic-init.test.ts +5 -41
  130. package/src/lib/agentic-init.ts +3 -15
  131. package/src/lib/agentic-setup.ts +224 -530
  132. package/src/lib/generators/__tests__/module-facts.bc-guard.test.ts +2 -88
  133. package/src/lib/generators/__tests__/module-facts.customers.fixture.test.ts +0 -1
  134. package/src/lib/generators/__tests__/module-facts.discovery.test.ts +10 -54
  135. package/src/lib/generators/__tests__/module-subset.test.ts +0 -18
  136. package/src/lib/generators/extensions/injection-widgets.ts +0 -51
  137. package/src/lib/generators/module-facts-discovery.ts +7 -58
  138. package/src/lib/generators/module-facts.ts +46 -1851
  139. package/src/lib/generators/module-registry.ts +6 -16
  140. package/src/lib/resolver.ts +0 -3
  141. package/src/lib/testing/__tests__/integration.test.ts +0 -4
  142. package/src/lib/testing/integration.ts +0 -5
  143. package/src/mercato.ts +1 -26
  144. package/dist/agentic/guides/ai-workflows.md +0 -76
  145. package/dist/agentic/guides/architecture.md +0 -107
  146. package/dist/agentic/guides/backend-ui.md +0 -80
  147. package/dist/agentic/guides/contracts.md +0 -92
  148. package/dist/agentic/guides/extensions.md +0 -121
  149. package/dist/agentic/guides/framework-extension-points.md +0 -36
  150. package/dist/agentic/guides/integrations.md +0 -81
  151. package/dist/agentic/guides/modules/design_system.md +0 -102
  152. package/dist/agentic/guides/spec-delivery.md +0 -22
  153. package/dist/agentic/guides/testing-debugging.md +0 -80
  154. package/dist/agentic/guides/upstream/AGENTS.md +0 -298
  155. package/dist/agentic/guides/upstream/BACKWARD_COMPATIBILITY.md +0 -316
  156. package/dist/agentic/guides/upstream/manifest.json +0 -8
  157. package/dist/agentic/shared/ai/harness/README.md +0 -50
  158. package/dist/agentic/shared/ai/harness/RELEASE.md +0 -57
  159. package/dist/agentic/shared/ai/harness/cases.json +0 -13680
  160. package/dist/agentic/shared/ai/harness/cases.schema.json +0 -133
  161. package/dist/agentic/shared/ai/harness/fixtures/index.json +0 -49
  162. package/dist/agentic/shared/ai/harness/fixtures/seeds.json +0 -162
  163. package/dist/agentic/shared/ai/harness/generated-code-review-policy.md +0 -21
  164. package/dist/agentic/shared/ai/harness/generated-code-review-response.schema.json +0 -96
  165. package/dist/agentic/shared/ai/harness/generated-code-review-result.schema.json +0 -172
  166. package/dist/agentic/shared/ai/harness/release-matrix.json +0 -158
  167. package/dist/agentic/shared/ai/harness/release-result.schema.json +0 -219
  168. package/dist/agentic/shared/ai/harness/result.schema.json +0 -76
  169. package/dist/agentic/shared/ai/harness/routing-response.schema.json +0 -12
  170. package/dist/agentic/shared/ai/harness/target-validation-result.schema.json +0 -73
  171. package/dist/agentic/shared/ai/harness/validators.json +0 -78
  172. package/dist/agentic/shared/ai/harness/writable-ast-oracles.mjs +0 -2121
  173. package/dist/agentic/shared/ai/harness/writable-behavior-oracles.mjs +0 -1096
  174. package/dist/agentic/shared/ai/lessons/_template.md +0 -16
  175. package/dist/agentic/shared/ai/review-checklist.md +0 -36
  176. package/dist/agentic/shared/ai/skills/om-auto-implement-spec/SKILL.md +0 -21
  177. package/dist/agentic/shared/ai/skills/om-auto-upgrade-0.6.6-to-0.6.7/SKILL.md +0 -98
  178. package/dist/agentic/shared/ai/skills/om-backend-ui-design/references/crud-surfaces.md +0 -16
  179. package/dist/agentic/shared/ai/skills/om-backend-ui-design/references/frontend-and-design-system.md +0 -53
  180. package/dist/agentic/shared/ai/skills/om-backend-ui-design/references/page-and-navigation.md +0 -13
  181. package/dist/agentic/shared/ai/skills/om-backend-ui-design/references/quality-states.md +0 -11
  182. package/dist/agentic/shared/ai/skills/om-build-workflow/SKILL.md +0 -30
  183. package/dist/agentic/shared/ai/skills/om-build-workflow/references/activity-contracts.md +0 -12
  184. package/dist/agentic/shared/ai/skills/om-build-workflow/references/durability-and-progress.md +0 -13
  185. package/dist/agentic/shared/ai/skills/om-build-workflow/references/workflow-design.md +0 -14
  186. package/dist/agentic/shared/ai/skills/om-create-ai-agent/SKILL.md +0 -28
  187. package/dist/agentic/shared/ai/skills/om-create-ai-agent/references/attachments-and-overrides.md +0 -12
  188. package/dist/agentic/shared/ai/skills/om-create-ai-agent/references/module-agents-and-tools.md +0 -22
  189. package/dist/agentic/shared/ai/skills/om-create-ai-agent/references/orchestrator-agents.md +0 -12
  190. package/dist/agentic/shared/ai/skills/om-create-ai-agent/references/surface-selector.md +0 -19
  191. package/dist/agentic/shared/ai/skills/om-data-model-design/references/integrity-and-concurrency.md +0 -19
  192. package/dist/agentic/shared/ai/skills/om-data-model-design/references/migration-workflow.md +0 -13
  193. package/dist/agentic/shared/ai/skills/om-data-model-design/references/schema-design.md +0 -14
  194. package/dist/agentic/shared/ai/skills/om-data-model-design/references/sensitive-data.md +0 -10
  195. package/dist/agentic/shared/ai/skills/om-eject-and-customize/references/decision-and-procedure.md +0 -17
  196. package/dist/agentic/shared/ai/skills/om-evolve-harness/SKILL.md +0 -29
  197. package/dist/agentic/shared/ai/skills/om-evolve-harness/references/case-template.md +0 -100
  198. package/dist/agentic/shared/ai/skills/om-evolve-harness/references/case-workflow.md +0 -16
  199. package/dist/agentic/shared/ai/skills/om-evolve-harness/references/owner-selection.md +0 -17
  200. package/dist/agentic/shared/ai/skills/om-framework-context/SKILL.md +0 -25
  201. package/dist/agentic/shared/ai/skills/om-framework-context/references/resolver-procedure.md +0 -11
  202. package/dist/agentic/shared/ai/skills/om-framework-context/references/skew-and-escalation.md +0 -13
  203. package/dist/agentic/shared/ai/skills/om-help/references/delivery-workflows.md +0 -18
  204. package/dist/agentic/shared/ai/skills/om-help/references/task-families.md +0 -20
  205. package/dist/agentic/shared/ai/skills/om-implement-spec/references/phases-and-gates.md +0 -33
  206. package/dist/agentic/shared/ai/skills/om-implement-spec/references/planning-and-progress.md +0 -40
  207. package/dist/agentic/shared/ai/skills/om-implement-spec/references/report-templates.md +0 -27
  208. package/dist/agentic/shared/ai/skills/om-implement-spec/references/spec-resolution.md +0 -24
  209. package/dist/agentic/shared/ai/skills/om-integration-builder/references/package-and-activation.md +0 -16
  210. package/dist/agentic/shared/ai/skills/om-integration-builder/references/provider-families.md +0 -14
  211. package/dist/agentic/shared/ai/skills/om-integration-builder/references/security-and-reliability.md +0 -15
  212. package/dist/agentic/shared/ai/skills/om-integration-builder/references/sync-and-files.md +0 -12
  213. package/dist/agentic/shared/ai/skills/om-judge-agent-session/SKILL.md +0 -34
  214. package/dist/agentic/shared/ai/skills/om-judge-agent-session/agents/openai.yaml +0 -4
  215. package/dist/agentic/shared/ai/skills/om-judge-agent-session/references/agentic-setup.md +0 -11
  216. package/dist/agentic/shared/ai/skills/om-judge-agent-session/references/input-normalization.md +0 -31
  217. package/dist/agentic/shared/ai/skills/om-judge-agent-session/references/judge-workflow.md +0 -39
  218. package/dist/agentic/shared/ai/skills/om-judge-agent-session/references/report-template.md +0 -43
  219. package/dist/agentic/shared/ai/skills/om-judge-agent-session/references/rules.md +0 -11
  220. package/dist/agentic/shared/ai/skills/om-module-scaffold/references/api-and-domain.md +0 -19
  221. package/dist/agentic/shared/ai/skills/om-module-scaffold/references/business-one-shot-blueprints.md +0 -172
  222. package/dist/agentic/shared/ai/skills/om-module-scaffold/references/data-and-migrations.md +0 -12
  223. package/dist/agentic/shared/ai/skills/om-module-scaffold/references/discovery-surface-catalog.md +0 -83
  224. package/dist/agentic/shared/ai/skills/om-module-scaffold/references/module-surfaces.md +0 -21
  225. package/dist/agentic/shared/ai/skills/om-module-scaffold/references/planning.md +0 -11
  226. package/dist/agentic/shared/ai/skills/om-module-scaffold/references/runtime-cache-and-queues.md +0 -22
  227. package/dist/agentic/shared/ai/skills/om-module-scaffold/references/verification.md +0 -13
  228. package/dist/agentic/shared/ai/skills/om-share-this-session/SKILL.md +0 -41
  229. package/dist/agentic/shared/ai/skills/om-share-this-session/references/agentic-setup.md +0 -19
  230. package/dist/agentic/shared/ai/skills/om-share-this-session/references/bundle-preparation.md +0 -44
  231. package/dist/agentic/shared/ai/skills/om-share-this-session/references/consent-and-review.md +0 -39
  232. package/dist/agentic/shared/ai/skills/om-share-this-session/references/publication.md +0 -20
  233. package/dist/agentic/shared/ai/skills/om-share-this-session/references/report-templates.md +0 -57
  234. package/dist/agentic/shared/ai/skills/om-share-this-session/references/rules.md +0 -11
  235. package/dist/agentic/shared/ai/skills/om-share-this-session/scripts/prepare-share-bundle.mjs +0 -486
  236. package/dist/agentic/shared/ai/skills/om-system-extension/references/extension-branches.md +0 -18
  237. package/dist/agentic/shared/ai/skills/om-system-extension/references/mechanism-selector.md +0 -27
  238. package/dist/agentic/shared/ai/skills/om-system-extension/references/read-write-roundtrip.md +0 -13
  239. package/dist/agentic/shared/ai/skills/om-system-extension/references/unified-overrides.md +0 -41
  240. package/dist/agentic/shared/ai/skills/om-system-extension/references/verification.md +0 -11
  241. package/dist/agentic/shared/ai/skills/om-trim-unused-modules/references/dependency-and-redirect.md +0 -15
  242. package/dist/agentic/shared/ai/skills/om-troubleshooter/references/diagnosis-map.md +0 -16
  243. package/dist/agentic/shared/ai/skills/om-troubleshooter/references/regression-oracles.md +0 -14
  244. package/dist/agentic/shared/scripts/agent-harness-tool-server.mjs +0 -187
  245. package/dist/agentic/shared/scripts/check-lessons.mjs +0 -178
  246. package/dist/agentic/shared/scripts/evaluate-agent-harness.mjs +0 -2958
  247. package/dist/agentic/shared/scripts/execution-sandbox.mjs +0 -329
  248. package/dist/agentic/shared/scripts/framework-context.mjs +0 -888
  249. package/dist/agentic/shared/scripts/install-skills.mjs +0 -1029
  250. package/dist/agentic/shared/scripts/prepare-agent-harness-fixture.mjs +0 -222
  251. package/dist/agentic/shared/scripts/run-agent-harness-release.mjs +0 -1774
  252. package/dist/lib/generators/module-extension-facts.js +0 -1840
  253. package/dist/lib/generators/module-extension-facts.js.map +0 -7
  254. package/dist/lib/generators/module-fact-sources.js +0 -70
  255. package/dist/lib/generators/module-fact-sources.js.map +0 -7
  256. package/dist/lib/generators/module-override-targets.js +0 -688
  257. package/dist/lib/generators/module-override-targets.js.map +0 -7
  258. package/dist/lib/load-env.js +0 -24
  259. package/dist/lib/load-env.js.map +0 -7
  260. package/dist/lib/telemetry-init.js +0 -358
  261. package/dist/lib/telemetry-init.js.map +0 -7
  262. package/src/lib/__tests__/agentic-setup.ownership.test.ts +0 -386
  263. package/src/lib/__tests__/injection-widget-id-validation.test.ts +0 -184
  264. package/src/lib/__tests__/load-env.test.ts +0 -65
  265. package/src/lib/__tests__/telemetry-init.test.ts +0 -298
  266. package/src/lib/generators/__tests__/activation-adapter-coverage.test.ts +0 -92
  267. package/src/lib/generators/__tests__/module-extension-activations.test.ts +0 -762
  268. package/src/lib/generators/__tests__/module-extension-facts.test.ts +0 -404
  269. package/src/lib/generators/__tests__/module-facts.extension-hosts.test.ts +0 -108
  270. package/src/lib/generators/__tests__/module-facts.owned-contracts.test.ts +0 -561
  271. package/src/lib/generators/__tests__/module-facts.source-links.test.ts +0 -119
  272. package/src/lib/generators/__tests__/module-override-targets.roundtrip.test.ts +0 -149
  273. package/src/lib/generators/__tests__/module-override-targets.test.ts +0 -304
  274. package/src/lib/generators/module-extension-facts.ts +0 -2365
  275. package/src/lib/generators/module-fact-sources.ts +0 -108
  276. package/src/lib/generators/module-override-targets.ts +0 -863
  277. package/src/lib/load-env.ts +0 -30
  278. package/src/lib/telemetry-init.ts +0 -461
@@ -1,15 +1,130 @@
1
- # Module System Compatibility Router
1
+ # Open Mercato Module System — Conceptual Guide
2
2
 
3
- Use the concern guides below. This path remains only so older prompts and links do not load a stale module tutorial.
3
+ This is the **hand-written, conceptual** layer of the module guides. It explains how an Open Mercato module is structured and how to build or extend one — the timeless concepts that rarely change. It is framework-wide; it does **not** describe any single module's data.
4
4
 
5
- | When you need | Load |
5
+ ## How the guides are layered
6
+
7
+ - **Layer 1 — this file (`.ai/guides/module-system.md`):** conceptual and framework-wide. Module anatomy, auto-discovery, naming, the mandatory mechanisms, data-integrity rules, and the generate/migration workflow.
8
+ - **Layer 2 — generated per-module fact-sheets (`.ai/guides/modules/<module>.md` + `.ai/guides/module-facts.json`):** the concrete **facts** for one module, extracted from its source — entity IDs, events, ACL features, API routes with per-method auth, DI service tokens, searchable entities, host extension tokens, notifications, and CLI commands. These are generated; never hand-write them here.
9
+ - **Package guides (`.ai/guides/core.md`, `ui.md`, `shared.md`, …):** package-specific depth (patterns, helpers, deeper APIs).
10
+
11
+ When you need a concrete fact about a specific module — which events it emits, its entity IDs, which feature gates a route — open that module's fact-sheet. Do not infer module facts from this conceptual guide.
12
+
13
+ ## Module anatomy
14
+
15
+ Each module lives in `src/modules/<id>/` and is **auto-discovered**. The only registration is one entry in `src/modules.ts` (`{ id: '<id>', from: '@app' }`). Run `yarn generate` after adding or changing any auto-discovered file.
16
+
17
+ ```
18
+ src/modules/<id>/
19
+ ├── index.ts # Module metadata
20
+ ├── data/
21
+ │ ├── entities.ts # MikroORM entity classes (decorators from @mikro-orm/decorators/legacy)
22
+ │ ├── validators.ts # Zod validation schemas
23
+ │ ├── extensions.ts # Cross-module entity links (export `extensions`)
24
+ │ └── enrichers.ts # Response enrichers (export `enrichers`)
25
+ ├── api/
26
+ │ ├── <resource>/route.ts # REST handlers (auto-discovered by method) + `metadata` + `openApi`
27
+ │ └── interceptors.ts # API route interception hooks (export `interceptors`)
28
+ ├── backend/ # Admin UI pages (auto-discovered) + paired `page.meta.ts`
29
+ ├── frontend/ # Public pages (auto-discovered); customer portal under `[orgSlug]/portal/`
30
+ ├── subscribers/ # Event handlers (export `metadata` + default handler)
31
+ ├── workers/ # Background jobs (export `metadata` + default handler)
32
+ ├── widgets/
33
+ │ ├── injection/ # UI widgets injected into other modules
34
+ │ ├── injection-table.ts # Widget-to-slot mappings
35
+ │ └── components.ts # Component replacement/wrapper definitions (export `componentOverrides`)
36
+ ├── di.ts # Awilix DI registrations (export `register(container)`)
37
+ ├── acl.ts # Permission features (export `features`)
38
+ ├── setup.ts # Tenant init, role features, seed data (export `setup`)
39
+ ├── events.ts # Typed event declarations (export `eventsConfig`)
40
+ ├── search.ts # Search indexing configuration (export `searchConfig`)
41
+ ├── ce.ts # Custom entities / custom field sets (export `entities`)
42
+ ├── translations.ts # Translatable fields per entity
43
+ ├── notifications.ts # Notification type definitions (export `notificationTypes`)
44
+ └── encryption.ts # Tenant data encryption maps for sensitive / GDPR fields
45
+ ```
46
+
47
+ ### Auto-discovery paths
48
+
49
+ | Path pattern | Becomes |
50
+ |---|---|
51
+ | `frontend/<path>.tsx` | `/<path>` (public page) |
52
+ | `frontend/[orgSlug]/portal/<path>/page.tsx` | `/{orgSlug}/portal/<path>` (customer portal page; `[orgSlug]` MUST be first) |
53
+ | `backend/<path>.tsx` | `/backend/<path>` (admin page) |
54
+ | `backend/page.tsx` | `/backend/<module>` (module root page) |
55
+ | `api/<method>/<path>.ts` | `/api/<path>` dispatched by HTTP method |
56
+ | `subscribers/*.ts` | event subscriber (export `metadata` + default handler) |
57
+ | `workers/*.ts` | background worker (export `metadata` + default handler) |
58
+
59
+ ### Convention-file reference
60
+
61
+ | File | Export | Purpose |
62
+ |------|--------|---------|
63
+ | `index.ts` | `metadata` | Module metadata |
64
+ | `di.ts` | `register(container)` | DI registrations (Awilix) |
65
+ | `acl.ts` | `features` | Permission features (`['mod.view', 'mod.manage', …]`) |
66
+ | `setup.ts` | `setup` | Tenant init, default role features, seed data |
67
+ | `ce.ts` | `entities` | Custom entities / custom field sets |
68
+ | `events.ts` | `eventsConfig` | Typed event declarations (`createModuleEvents`) |
69
+ | `search.ts` | `searchConfig` | Search indexing config |
70
+ | `translations.ts` | `translatableFields` | Translatable fields per entity |
71
+ | `notifications.ts` | `notificationTypes` | Notification type definitions |
72
+ | `data/entities.ts` | — | MikroORM entity classes |
73
+ | `data/validators.ts` | — | Zod validation schemas |
74
+ | `data/extensions.ts` | `extensions` | Entity extensions (cross-module links) |
75
+ | `data/enrichers.ts` | `enrichers` | Response enrichers |
76
+ | `api/interceptors.ts` | `interceptors` | API route interception hooks |
77
+ | `widgets/components.ts` | `componentOverrides` | Component replacement/wrapper definitions |
78
+
79
+ ## Naming conventions
80
+
81
+ - **Module IDs:** plural, snake_case (`order_items`). Special cases: `auth`, `example`.
82
+ - **Event IDs:** `module.entity.action` (singular entity, past-tense action, e.g. `sales.order.created`).
83
+ - **Entity IDs:** colon form `module:entity` (e.g. `customers:customer_person_profile`) — the canonical interop token, **not** the raw class name and **not** the dotted friendly alias some enrichers use.
84
+ - **DB tables:** plural, snake_case with a module prefix (`catalog_products`).
85
+ - **DB columns:** snake_case (`created_at`, `organization_id`). Common columns: `id`, `created_at`, `updated_at`, `deleted_at`, `is_active`, `organization_id`, `tenant_id`.
86
+ - **Feature IDs:** `<module>.<action>` (`my_module.view`, `my_module.manage`). FROZEN once shipped — rename by adding the new ID alongside and keeping the old as a deprecated alias.
87
+ - **JS/TS identifiers:** camelCase. UUID primary keys, explicit foreign keys, junction tables for M2M.
88
+
89
+ ## Mandatory module mechanisms
90
+
91
+ The framework provides **one canonical primitive per concern**. Do not invent your own routing, auth, persistence, forms, caching, or cross-module calls. If a feature is not listed here, ask before rolling your own.
92
+
93
+ | Concern | Canonical mechanism |
6
94
  |---|---|
7
- | Module ownership, layout, discovery, registration, or installed source | `.ai/guides/architecture.md` |
8
- | Entities, CRUD/API, commands, scoping, ACL, setup, events, workers, search, cache, or migrations | `.ai/guides/contracts.md` |
9
- | Forms, tables, pages, navigation, portal, translations, or design-system behavior | `.ai/guides/backend-ui.md` |
10
- | Enrichers, interceptors, guards, widgets, extensions, menus, replacements, or overrides | `.ai/guides/extensions.md` |
11
- | Provider packages, data sync, webhooks, import/export, shipping, payment, or email | `.ai/guides/integrations.md` |
12
- | AI agents/tools/orchestrators or workflows | `.ai/guides/ai-workflows.md` |
13
- | Diagnosis and regression verification | `.ai/guides/testing-debugging.md` |
14
-
15
- For a complete new module, invoke `om-module-scaffold`; it loads the relevant branches. For a concrete installed-module fact, read its generated `.ai/guides/modules/<id>.md` first. Invoke `om-framework-context` only when generated facts cannot answer the implementation question.
95
+ | Module structure & auto-discovery | `src/modules/<id>/{api,backend,frontend,data,subscribers,workers,widgets}` + `index.ts` + one line in `src/modules.ts` — discovered by `yarn generate` |
96
+ | API routes | Files under `api/**/route.ts` exporting handlers + per-method `metadata` (`requireAuth` / `requireFeatures`) + `openApi`. NEVER a top-level `export const requireAuth` — the registry ignores it |
97
+ | CRUD APIs | `makeCrudRoute({ orm, list, create, update, del, indexer })` from `@open-mercato/shared/lib/crud/factory`. Always set `indexer` for query-index coverage. Custom (non-factory) write routes MUST run the mutation guard registry (`runMutationGuards`) |
98
+ | CRUD forms | `<CrudForm />` from `@open-mercato/ui/backend/CrudForm` + `createCrud`/`updateCrud`/`deleteCrud`. Never raw `<form>`, never raw `fetch` |
99
+ | Data tables | `<DataTable entityId apiPath … />` from `@open-mercato/ui/backend/DataTable`. Keep `entityId` / `extensionTableId` stable so widget injection keeps working |
100
+ | HTTP from the client | `apiCall` / `apiCallOrThrow` from `@open-mercato/ui/backend/utils/apiCall` — never raw `fetch` |
101
+ | Authorization (RBAC) | Declare features in `acl.ts`, grant in `setup.ts` `defaultRoleFeatures`, gate with `requireFeatures` in `metadata` / `page.meta.ts`. NEVER `requireRoles` (role names mutate). Treat `module.*` / `*` wildcard grants as part of the contract |
102
+ | Multi-tenant scoping | Every tenant-scoped entity has indexed `organization_id` + `tenant_id`; every read/write filters by them. The CRUD factory injects scope — do not bypass it. Ad-hoc queries use `withScopedPayload` |
103
+ | Encryption for sensitive data | Declare `encryption.ts` `defaultEncryptionMaps`; read via `findWithDecryption` / `findOneWithDecryption`. NEVER hand-roll AES/KMS, NEVER `em.find` on encrypted columns |
104
+ | Cache | Resolve from DI (`container.resolve('cache')`) — never `new Redis(...)`. Tag with `tenant:<id>` / `org:<id>` so invalidation stays tenant-scoped |
105
+ | Background workers | `workers/*.ts` exporting `metadata: { queue, id?, concurrency? }` + default handler. Never spin up custom queues |
106
+ | Events between modules | `events.ts` with `createModuleEvents({ moduleId, events } as const)`; subscribe in `subscribers/`. Never call another module's services directly across boundaries |
107
+ | Domain writes | Implement through the Command pattern so audit, undo, cache, events, and indexing stay consistent — do not mutate domain state directly in route handlers |
108
+ | i18n | `useT()` client-side, `resolveTranslations()` server-side; keys in `src/i18n/<locale>.json`. Never hard-code user-facing strings |
109
+
110
+ > Rule of thumb: if you reach for raw `fetch`, raw `<form>`, ad-hoc `crypto`, ad-hoc `Redis`, or a manual cross-module join, stop and check the row above — there is a canonical helper.
111
+
112
+ ## Entity-update safety & data integrity
113
+
114
+ - **`withAtomicFlush`.** MikroORM can silently discard pending scalar changes when a query (`em.find`/`em.findOne`/sync helper) runs on the same `EntityManager` between a scalar mutation and `em.flush()`. Multi-phase mutations MUST use `withAtomicFlush(em, phases, { transaction: true })` from `@open-mercato/shared/lib/commands/flush`. Keep `emitCrudSideEffects` and cache invalidation **outside** the block — they fire only after the DB write commits. For entity + custom fields + side effects in one write, prefer `runCrudCommandWrite`.
115
+ - **Optimistic locking (default ON).** Every **new user-editable entity** MUST carry an `updated_at` column and return `updatedAt` in its list/detail responses, so the OSS optimistic lock can detect concurrent edits. `CrudForm` auto-derives the lock header from `initialValues.updatedAt` (covers update and delete). Append-only logs, junction/assignment tables, session/token rows, and parent-guarded sub-resource lines are exempt.
116
+ - **Encryption.** Sensitive / GDPR fields go through the encryption-maps mechanism (`encryption.ts` + `findWithDecryption`), never hand-rolled crypto. Always pass `tenantId` and `organizationId` to the decryption helpers.
117
+ - **Tenant isolation.** Never expose cross-tenant data; always filter by `organization_id` (and `tenant_id`). Never create direct ORM relationships between modules — reference by FK id and fetch separately.
118
+
119
+ ## Generate & migration workflow
120
+
121
+ - **After editing `src/modules.ts` or any structural module file:** run `yarn generate`. Never hand-edit anything under `.mercato/generated/*`.
122
+ - **After editing `data/entities.ts`:** run `yarn db:generate` as a schema-diff probe. Default to the generated SQL; if it emits unrelated churn from another module's stale snapshot, keep only the SQL for your change and update that module's `migrations/.snapshot-open-mercato.json` in the same commit.
123
+ - **Do not run `yarn db:migrate`** unless the user explicitly asks. A PR should normally include the migration file plus snapshot, not local DB state. Never hand-edit a migration that has already shipped — add a new one.
124
+ - **New ACL features must be visible immediately:** add the feature to `acl.ts` **and** to `setup.ts` `defaultRoleFeatures`, then run `yarn mercato auth sync-role-acls` so existing tenants pick it up.
125
+
126
+ ## Where to go next
127
+
128
+ - A specific module's surface (entities, events, routes, auth, search, CLI): its **fact-sheet** at `.ai/guides/modules/<module>.md`.
129
+ - Deeper package patterns: the matching **package guide** (`core.md`, `ui.md`, `shared.md`, `events.md`, `queue.md`, `cache.md`, `search.md`).
130
+ - Scaffolding a module end-to-end: the `om-module-scaffold` skill.
@@ -1,74 +1,43 @@
1
1
  # ai_assistant — module facts (generated, do not edit)
2
- <!-- generated from @open-mercato/ai-assistant 0.6.7-develop.6862.1.c11a64ce0a; core 0.6.7-develop.6862.1.c11a64ce0a — R1 staleness stamp -->
3
- Source root: [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant)
2
+ <!-- generated from @open-mercato/core 0.6.7 — R1 staleness stamp -->
4
3
 
5
4
  ## Entities
6
5
 
7
- | Entity ID | Class | Table | Editable | CustomFields | Source |
8
- |---|---|---|---|---|---|
9
- | ai_assistant:ai_agent_prompt_override | AiAgentPromptOverride | ai_agent_prompt_overrides | yes | no | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/data/entities.ts](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/data/entities.ts) |
10
- | ai_assistant:ai_pending_action | AiPendingAction | ai_pending_actions | no | no | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/data/entities.ts](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/data/entities.ts) |
11
- | ai_assistant:ai_agent_runtime_override | AiAgentRuntimeOverride | ai_agent_runtime_overrides | yes | no | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/data/entities.ts](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/data/entities.ts) |
12
- | ai_assistant:ai_token_usage_event | AiTokenUsageEvent | ai_token_usage_events | yes | no | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/data/entities.ts](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/data/entities.ts) |
13
- | ai_assistant:ai_token_usage_daily | AiTokenUsageDaily | ai_token_usage_daily | yes | no | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/data/entities.ts](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/data/entities.ts) |
14
- | ai_assistant:ai_tenant_model_allowlist | AiTenantModelAllowlist | ai_tenant_model_allowlists | yes | no | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/data/entities.ts](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/data/entities.ts) |
15
- | ai_assistant:ai_agent_mutation_policy_override | AiAgentMutationPolicyOverride | ai_agent_mutation_policy_overrides | yes | no | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/data/entities.ts](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/data/entities.ts) |
16
- | ai_assistant:ai_chat_conversation | AiChatConversation | ai_chat_conversations | yes | no | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/data/entities.ts](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/data/entities.ts) |
17
- | ai_assistant:ai_chat_conversation_participant | AiChatConversationParticipant | ai_chat_conversation_participants | yes | no | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/data/entities.ts](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/data/entities.ts) |
18
- | ai_assistant:ai_chat_message | AiChatMessage | ai_chat_messages | yes | no | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/data/entities.ts](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/data/entities.ts) |
19
- | ai_assistant:ai_moderation_flag | AiModerationFlag | ai_moderation_flags | no | no | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/data/entities.ts](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/data/entities.ts) |
20
-
21
- ## Events (7)
22
-
23
- | ID | Category | Entity | Browser transport | Source |
6
+ | Entity ID | Class | Table | Editable | CustomFields |
24
7
  |---|---|---|---|---|
25
- | ai.action.confirmed | — | ai_pending_action | — | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/events.ts](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/events.ts) |
26
- | ai.action.cancelled | — | ai_pending_action | — | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/events.ts](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/events.ts) |
27
- | ai.action.expired | — | ai_pending_action | — | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/events.ts](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/events.ts) |
28
- | ai.token_usage.recorded | — | token_usage | — | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/events.ts](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/events.ts) |
29
- | ai_assistant.conversation.shared | — | ai_chat_conversation | client | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/events.ts](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/events.ts) |
30
- | ai_assistant.conversation.unshared | — | ai_chat_conversation | client | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/events.ts](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/events.ts) |
31
- | ai_assistant.moderation_flag.created | — | ai_moderation_flag | — | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/events.ts](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/events.ts) |
8
+ | ai_assistant:ai_agent_prompt_override | AiAgentPromptOverride | ai_agent_prompt_overrides | yes | no |
9
+ | ai_assistant:ai_pending_action | AiPendingAction | ai_pending_actions | no | no |
10
+ | ai_assistant:ai_agent_runtime_override | AiAgentRuntimeOverride | ai_agent_runtime_overrides | yes | no |
11
+ | ai_assistant:ai_token_usage_event | AiTokenUsageEvent | ai_token_usage_events | yes | no |
12
+ | ai_assistant:ai_token_usage_daily | AiTokenUsageDaily | ai_token_usage_daily | yes | no |
13
+ | ai_assistant:ai_tenant_model_allowlist | AiTenantModelAllowlist | ai_tenant_model_allowlists | yes | no |
14
+ | ai_assistant:ai_agent_mutation_policy_override | AiAgentMutationPolicyOverride | ai_agent_mutation_policy_overrides | yes | no |
15
+ | ai_assistant:ai_chat_conversation | AiChatConversation | ai_chat_conversations | yes | no |
16
+ | ai_assistant:ai_chat_conversation_participant | AiChatConversationParticipant | ai_chat_conversation_participants | yes | no |
17
+ | ai_assistant:ai_chat_message | AiChatMessage | ai_chat_messages | yes | no |
18
+
19
+ ## Events (6)
20
+
21
+ | ID | Category | Entity |
22
+ |---|---|---|
23
+ | ai.action.confirmed | — | ai_pending_action |
24
+ | ai.action.cancelled | — | ai_pending_action |
25
+ | ai.action.expired | — | ai_pending_action |
26
+ | ai.token_usage.recorded | — | token_usage |
27
+ | ai_assistant.conversation.shared | — | ai_chat_conversation |
28
+ | ai_assistant.conversation.unshared | — | ai_chat_conversation |
32
29
 
33
30
  ## ACL features (8)
34
31
 
35
- | Feature | Source |
36
- |---|---|
37
- | ai_assistant.view | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/acl.ts](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/acl.ts) |
38
- | ai_assistant.settings.manage | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/acl.ts](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/acl.ts) |
39
- | ai_assistant.conversations.manage | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/acl.ts](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/acl.ts) |
40
- | ai_assistant.conversations.share | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/acl.ts](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/acl.ts) |
41
- | ai_assistant.mcp.serve | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/acl.ts](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/acl.ts) |
42
- | ai_assistant.tools.list | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/acl.ts](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/acl.ts) |
43
- | ai_assistant.mcp_servers.view | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/acl.ts](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/acl.ts) |
44
- | ai_assistant.mcp_servers.manage | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/acl.ts](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/acl.ts) |
32
+ ai_assistant.view · ai_assistant.settings.manage · ai_assistant.conversations.manage · ai_assistant.conversations.share · ai_assistant.mcp.serve · ai_assistant.tools.list · ai_assistant.mcp_servers.view · ai_assistant.mcp_servers.manage
45
33
 
46
34
  ## API routes
47
35
 
48
36
  _none_
49
37
 
50
- ## Backend pages
51
-
52
- | ID / path | Source |
53
- |---|---|
54
- | /backend/config/ai-assistant | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/backend/config/ai-assistant/page.tsx](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/backend/config/ai-assistant/page.tsx) |
55
- | /backend/config/ai-assistant/agents | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/backend/config/ai-assistant/agents/page.tsx](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/backend/config/ai-assistant/agents/page.tsx) |
56
- | /backend/config/ai-assistant/allowlist | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/backend/config/ai-assistant/allowlist/page.tsx](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/backend/config/ai-assistant/allowlist/page.tsx) |
57
- | /backend/config/ai-assistant/legacy | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/backend/config/ai-assistant/legacy/page.tsx](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/backend/config/ai-assistant/legacy/page.tsx) |
58
- | /backend/config/ai-assistant/moderation-flags | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/backend/config/ai-assistant/moderation-flags/page.tsx](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/backend/config/ai-assistant/moderation-flags/page.tsx) |
59
- | /backend/config/ai-assistant/playground | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/backend/config/ai-assistant/playground/page.tsx](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/backend/config/ai-assistant/playground/page.tsx) |
60
- | /backend/config/ai-assistant/settings | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/backend/config/ai-assistant/settings/page.tsx](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/backend/config/ai-assistant/settings/page.tsx) |
61
- | /backend/config/ai-assistant/usage | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/backend/config/ai-assistant/usage/page.tsx](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/backend/config/ai-assistant/usage/page.tsx) |
62
-
63
- ## Frontend pages
64
-
65
- _none_
66
-
67
38
  ## DI service tokens
68
39
 
69
- | Token | Source |
70
- |---|---|
71
- | moderationService | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/di.ts:11](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/di.ts#L11) |
40
+ _none_
72
41
 
73
42
  ## Search entities
74
43
 
@@ -79,178 +48,10 @@ _none_
79
48
  - Entity IDs: _none_
80
49
  - Table IDs: _none_
81
50
 
82
- ## UMES hosts
83
-
84
- | ID / pattern | Family | Supports | Context | Stability | Source |
85
- |---|---|---|---|---|---|
86
- | ai_assistant:ai_agent_mutation_policy_override | entity | response-enricher, query-enricher, mutation-guard, entity-extension | tenant-and-organization | STABLE | entities:ai_assistant:ai_agent_mutation_policy_override |
87
- | ai_assistant:ai_agent_prompt_override | entity | response-enricher, query-enricher, mutation-guard, entity-extension | tenant-and-organization | STABLE | entities:ai_assistant:ai_agent_prompt_override |
88
- | ai_assistant:ai_agent_runtime_override | entity | response-enricher, query-enricher, mutation-guard, entity-extension | tenant-and-organization | STABLE | entities:ai_assistant:ai_agent_runtime_override |
89
- | ai_assistant:ai_chat_conversation | entity | response-enricher, query-enricher, mutation-guard, entity-extension | tenant-and-organization | STABLE | entities:ai_assistant:ai_chat_conversation |
90
- | ai_assistant:ai_chat_conversation_participant | entity | response-enricher, query-enricher, mutation-guard, entity-extension | tenant-and-organization | STABLE | entities:ai_assistant:ai_chat_conversation_participant |
91
- | ai_assistant:ai_chat_message | entity | response-enricher, query-enricher, mutation-guard, entity-extension | tenant-and-organization | STABLE | entities:ai_assistant:ai_chat_message |
92
- | ai_assistant:ai_moderation_flag | entity | response-enricher, query-enricher, mutation-guard, entity-extension | tenant-and-organization | STABLE | entities:ai_assistant:ai_moderation_flag |
93
- | ai_assistant:ai_pending_action | entity | response-enricher, query-enricher, mutation-guard, entity-extension | tenant-and-organization | STABLE | entities:ai_assistant:ai_pending_action |
94
- | ai_assistant:ai_tenant_model_allowlist | entity | response-enricher, query-enricher, mutation-guard, entity-extension | tenant-and-organization | STABLE | entities:ai_assistant:ai_tenant_model_allowlist |
95
- | ai_assistant:ai_token_usage_daily | entity | response-enricher, query-enricher, mutation-guard, entity-extension | tenant-and-organization | STABLE | entities:ai_assistant:ai_token_usage_daily |
96
- | ai_assistant:ai_token_usage_event | entity | response-enricher, query-enricher, mutation-guard, entity-extension | tenant-and-organization | STABLE | entities:ai_assistant:ai_token_usage_event |
97
- | ai_assistant.conversation.shared | event | async-subscriber, sync-subscriber, browser-client | tenant-organization-and-audience | STABLE | events:ai_assistant.conversation.shared |
98
- | ai_assistant.conversation.unshared | event | async-subscriber, sync-subscriber, browser-client | tenant-organization-and-audience | STABLE | events:ai_assistant.conversation.unshared |
99
- | ai_assistant.moderation_flag.created | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE | events:ai_assistant.moderation_flag.created |
100
- | ai.action.cancelled | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE | events:ai.action.cancelled |
101
- | ai.action.confirmed | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE | events:ai.action.confirmed |
102
- | ai.action.expired | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE | events:ai.action.expired |
103
- | ai.token_usage.recorded | event | async-subscriber, sync-subscriber | tenant-organization-and-audience | STABLE | events:ai.token_usage.recorded |
104
-
105
- ## UMES contributions
106
-
107
- | ID | Kind | Target | Phase / operations | Contract | Resolution | Source |
108
- |---|---|---|---|---|---|---|
109
- | ai_assistant.conversation.shared.browser | browser-reaction | ai_assistant.conversation.shared | — | audienceScopeContract=tenant-organization-user-role-and-customer; hooks=useAppEvent,useOperationProgress; transports=client | fact-ref | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/events.ts](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/events.ts) |
110
- | ai_assistant.conversation.unshared.browser | browser-reaction | ai_assistant.conversation.unshared | — | audienceScopeContract=tenant-organization-user-role-and-customer; hooks=useAppEvent,useOperationProgress; transports=client | fact-ref | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/events.ts](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/events.ts) |
111
- | ai:attachments.list_record_attachments | specialized-registry | attachments.list_record_attachments | — | registry=ai; registryId=attachments.list_record_attachments; specialistRoute=aiTools | fact-ref | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/ai-tools/attachments-pack.ts](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/ai-tools/attachments-pack.ts) |
112
- | ai:attachments.read_attachment | specialized-registry | attachments.read_attachment | — | registry=ai; registryId=attachments.read_attachment; specialistRoute=aiTools | fact-ref | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/ai-tools/attachments-pack.ts](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/ai-tools/attachments-pack.ts) |
113
- | ai:attachments.transfer_record_attachments | specialized-registry | attachments.transfer_record_attachments | — | registry=ai; registryId=attachments.transfer_record_attachments; specialistRoute=aiTools | fact-ref | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/ai-tools/attachments-pack.ts](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/ai-tools/attachments-pack.ts) |
114
- | ai:meta.describe_agent | specialized-registry | meta.describe_agent | — | registry=ai; registryId=meta.describe_agent; specialistRoute=aiTools | fact-ref | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/ai-tools/meta-pack.ts](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/ai-tools/meta-pack.ts) |
115
- | ai:meta.list_agents | specialized-registry | meta.list_agents | — | registry=ai; registryId=meta.list_agents; specialistRoute=aiTools | fact-ref | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/ai-tools/meta-pack.ts](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/ai-tools/meta-pack.ts) |
116
- | ai:meta.update_task_plan | specialized-registry | meta.update_task_plan | — | registry=ai; registryId=meta.update_task_plan; specialistRoute=aiTools | fact-ref | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/ai-tools/meta-pack.ts](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/ai-tools/meta-pack.ts) |
117
- | ai:search.get_record_context | specialized-registry | search.get_record_context | — | registry=ai; registryId=search.get_record_context; specialistRoute=aiTools | fact-ref | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/ai-tools/search-pack.ts](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/ai-tools/search-pack.ts) |
118
- | ai:search.hybrid_search | specialized-registry | search.hybrid_search | — | registry=ai; registryId=search.hybrid_search; specialistRoute=aiTools | fact-ref | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/ai-tools/search-pack.ts](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/ai-tools/search-pack.ts) |
119
- | notification:ai_assistant.conversation_shared | specialized-registry | ai_assistant.conversation_shared | — | registry=notification; registryId=ai_assistant.conversation_shared; specialistRoute=notifications | fact-ref | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/notifications.ts](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/notifications.ts) |
120
- | ai_assistant:conversation-shared-notify | subscriber | ai_assistant.conversation.shared | async-delivery | event=ai_assistant.conversation.shared; persistent=true; subscriberId=ai_assistant:conversation-shared-notify; sync=false | fact-ref | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/subscribers/conversation-shared-notify.ts](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/subscribers/conversation-shared-notify.ts) |
121
-
122
- ## Active extension bindings
123
-
124
- _none_
125
-
126
- ## Incoming installed contributions
127
-
128
- _none_
129
-
130
- ## Contribution resolutions
131
-
132
- | Contribution | Target | Resolution | Activations | Source |
133
- |---|---|---|---|---|
134
- | ai_assistant:conversation-shared-notify | event:ai_assistant.conversation.shared @ai_assistant | capability-only | — | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/subscribers/conversation-shared-notify.ts](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/subscribers/conversation-shared-notify.ts) |
135
- | ai_assistant.conversation.shared.browser | event:ai_assistant.conversation.shared @ai_assistant | capability-only | — | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/events.ts](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/events.ts) |
136
- | ai_assistant.conversation.unshared.browser | event:ai_assistant.conversation.unshared @ai_assistant | capability-only | — | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/events.ts](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/events.ts) |
137
- | ai:attachments.list_record_attachments | module:attachments.list_record_attachments | capability-only | — | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/ai-tools/attachments-pack.ts](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/ai-tools/attachments-pack.ts) |
138
- | ai:attachments.read_attachment | module:attachments.read_attachment | capability-only | — | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/ai-tools/attachments-pack.ts](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/ai-tools/attachments-pack.ts) |
139
- | ai:attachments.transfer_record_attachments | module:attachments.transfer_record_attachments | capability-only | — | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/ai-tools/attachments-pack.ts](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/ai-tools/attachments-pack.ts) |
140
- | ai:meta.describe_agent | module:meta.describe_agent | capability-only | — | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/ai-tools/meta-pack.ts](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/ai-tools/meta-pack.ts) |
141
- | ai:meta.list_agents | module:meta.list_agents | capability-only | — | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/ai-tools/meta-pack.ts](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/ai-tools/meta-pack.ts) |
142
- | ai:meta.update_task_plan | module:meta.update_task_plan | capability-only | — | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/ai-tools/meta-pack.ts](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/ai-tools/meta-pack.ts) |
143
- | ai:search.get_record_context | module:search.get_record_context | capability-only | — | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/ai-tools/search-pack.ts](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/ai-tools/search-pack.ts) |
144
- | ai:search.hybrid_search | module:search.hybrid_search | capability-only | — | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/ai-tools/search-pack.ts](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/ai-tools/search-pack.ts) |
145
- | notification:ai_assistant.conversation_shared | module:ai_assistant.conversation_shared | capability-only | — | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/notifications.ts](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/notifications.ts) |
146
-
147
-
148
-
149
51
  ## Notifications
150
52
 
151
- | Notification ID | Source |
152
- |---|---|
153
- | ai_assistant.conversation_shared | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/notifications.ts](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/notifications.ts) |
154
-
155
- ## CLI commands
156
-
157
- | ID / path | Source |
158
- |---|---|
159
- | mcp:serve | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/cli.ts](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/cli.ts) |
160
- | mcp:serve-http | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/cli.ts](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/cli.ts) |
161
- | mcp:dev | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/cli.ts](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/cli.ts) |
162
- | mcp:ensure-api-key | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/cli.ts](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/cli.ts) |
163
- | mcp:list-tools | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/cli.ts](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/cli.ts) |
164
- | entity-graph | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/cli.ts](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/cli.ts) |
165
- | run-pending-action-cleanup | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/cli.ts](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/cli.ts) |
166
- | run-token-usage-prune | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/cli.ts](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/cli.ts) |
167
- | test-tools | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/cli.ts](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/cli.ts) |
168
-
169
- ## AI tools / MCP capabilities
170
-
171
- | ID / path | Source |
172
- |---|---|
173
- | attachments.list_record_attachments | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/ai-tools/attachments-pack.ts](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/ai-tools/attachments-pack.ts) |
174
- | attachments.read_attachment | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/ai-tools/attachments-pack.ts](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/ai-tools/attachments-pack.ts) |
175
- | attachments.transfer_record_attachments | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/ai-tools/attachments-pack.ts](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/ai-tools/attachments-pack.ts) |
176
- | meta.describe_agent | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/ai-tools/meta-pack.ts](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/ai-tools/meta-pack.ts) |
177
- | meta.list_agents | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/ai-tools/meta-pack.ts](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/ai-tools/meta-pack.ts) |
178
- | meta.update_task_plan | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/ai-tools/meta-pack.ts](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/ai-tools/meta-pack.ts) |
179
- | search.get_record_context | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/ai-tools/search-pack.ts](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/ai-tools/search-pack.ts) |
180
- | search.hybrid_search | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/ai-tools/search-pack.ts](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/ai-tools/search-pack.ts) |
181
-
182
- ## AI agents
183
-
184
- _none_
185
-
186
- ## Exact override targets
187
-
188
- | Domain | Path / key | Supported modes | Referenced fact | Source |
189
- |---|---|---|---|---|
190
- | acl | `overrides.acl.features["ai_assistant.conversations.manage"]` | disable-replace | aclFeatures:ai_assistant.conversations.manage | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/acl.ts](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/acl.ts) |
191
- | acl | `overrides.acl.features["ai_assistant.conversations.share"]` | disable-replace | aclFeatures:ai_assistant.conversations.share | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/acl.ts](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/acl.ts) |
192
- | acl | `overrides.acl.features["ai_assistant.mcp_servers.manage"]` | disable-replace | aclFeatures:ai_assistant.mcp_servers.manage | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/acl.ts](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/acl.ts) |
193
- | acl | `overrides.acl.features["ai_assistant.mcp_servers.view"]` | disable-replace | aclFeatures:ai_assistant.mcp_servers.view | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/acl.ts](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/acl.ts) |
194
- | acl | `overrides.acl.features["ai_assistant.mcp.serve"]` | disable-replace | aclFeatures:ai_assistant.mcp.serve | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/acl.ts](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/acl.ts) |
195
- | acl | `overrides.acl.features["ai_assistant.settings.manage"]` | disable-replace | aclFeatures:ai_assistant.settings.manage | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/acl.ts](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/acl.ts) |
196
- | acl | `overrides.acl.features["ai_assistant.tools.list"]` | disable-replace | aclFeatures:ai_assistant.tools.list | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/acl.ts](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/acl.ts) |
197
- | acl | `overrides.acl.features["ai_assistant.view"]` | disable-replace | aclFeatures:ai_assistant.view | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/acl.ts](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/acl.ts) |
198
- | ai | `overrides.ai.tools["attachments.list_record_attachments"]` | disable-replace | aiTools:attachments.list_record_attachments | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/ai-tools/attachments-pack.ts](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/ai-tools/attachments-pack.ts) |
199
- | ai | `overrides.ai.tools["attachments.read_attachment"]` | disable-replace | aiTools:attachments.read_attachment | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/ai-tools/attachments-pack.ts](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/ai-tools/attachments-pack.ts) |
200
- | ai | `overrides.ai.tools["attachments.transfer_record_attachments"]` | disable-replace | aiTools:attachments.transfer_record_attachments | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/ai-tools/attachments-pack.ts](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/ai-tools/attachments-pack.ts) |
201
- | ai | `overrides.ai.tools["meta.describe_agent"]` | disable-replace | aiTools:meta.describe_agent | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/ai-tools/meta-pack.ts](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/ai-tools/meta-pack.ts) |
202
- | ai | `overrides.ai.tools["meta.list_agents"]` | disable-replace | aiTools:meta.list_agents | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/ai-tools/meta-pack.ts](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/ai-tools/meta-pack.ts) |
203
- | ai | `overrides.ai.tools["meta.update_task_plan"]` | disable-replace | aiTools:meta.update_task_plan | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/ai-tools/meta-pack.ts](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/ai-tools/meta-pack.ts) |
204
- | ai | `overrides.ai.tools["search.get_record_context"]` | disable-replace | aiTools:search.get_record_context | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/ai-tools/search-pack.ts](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/ai-tools/search-pack.ts) |
205
- | ai | `overrides.ai.tools["search.hybrid_search"]` | disable-replace | aiTools:search.hybrid_search | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/ai-tools/search-pack.ts](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/ai-tools/search-pack.ts) |
206
- | cli | `overrides.cli["entity-graph"]` | disable-replace | cliCommands:entity-graph | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/cli.ts](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/cli.ts) |
207
- | cli | `overrides.cli["mcp:dev"]` | disable-replace | cliCommands:mcp:dev | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/cli.ts](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/cli.ts) |
208
- | cli | `overrides.cli["mcp:ensure-api-key"]` | disable-replace | cliCommands:mcp:ensure-api-key | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/cli.ts](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/cli.ts) |
209
- | cli | `overrides.cli["mcp:list-tools"]` | disable-replace | cliCommands:mcp:list-tools | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/cli.ts](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/cli.ts) |
210
- | cli | `overrides.cli["mcp:serve"]` | disable-replace | cliCommands:mcp:serve | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/cli.ts](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/cli.ts) |
211
- | cli | `overrides.cli["mcp:serve-http"]` | disable-replace | cliCommands:mcp:serve-http | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/cli.ts](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/cli.ts) |
212
- | cli | `overrides.cli["run-pending-action-cleanup"]` | disable-replace | cliCommands:run-pending-action-cleanup | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/cli.ts](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/cli.ts) |
213
- | cli | `overrides.cli["run-token-usage-prune"]` | disable-replace | cliCommands:run-token-usage-prune | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/cli.ts](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/cli.ts) |
214
- | cli | `overrides.cli["test-tools"]` | disable-replace | cliCommands:test-tools | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/cli.ts](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/cli.ts) |
215
- | di | `overrides.di["mcpToolRegistry"]` | disable-replace | ownedContracts.di-registration:mcpToolRegistry | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/di.ts:8](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/di.ts#L8) |
216
- | di | `overrides.di["moderationService"]` | disable-replace | ownedContracts.di-registration:moderationService | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/di.ts:11](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/di.ts#L11) |
217
- | events | `overrides.events.subscribers["ai_assistant:conversation-shared-notify"]` | disable-replace | extensionSurfaces.contributions:ai_assistant:conversation-shared-notify | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/subscribers/conversation-shared-notify.ts](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/subscribers/conversation-shared-notify.ts) |
218
- | notifications | `overrides.notifications.types["ai_assistant.conversation_shared"]` | disable-replace | notifications:ai_assistant.conversation_shared | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/notifications.ts](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/notifications.ts) |
219
- | routes | `overrides.routes.pages["backend:/backend/config/ai-assistant"]` | disable-replace | backendPages:/backend/config/ai-assistant | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/backend/config/ai-assistant/page.tsx](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/backend/config/ai-assistant/page.tsx) |
220
- | routes | `overrides.routes.pages["backend:/backend/config/ai-assistant/agents"]` | disable-replace | backendPages:/backend/config/ai-assistant/agents | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/backend/config/ai-assistant/agents/page.tsx](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/backend/config/ai-assistant/agents/page.tsx) |
221
- | routes | `overrides.routes.pages["backend:/backend/config/ai-assistant/allowlist"]` | disable-replace | backendPages:/backend/config/ai-assistant/allowlist | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/backend/config/ai-assistant/allowlist/page.tsx](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/backend/config/ai-assistant/allowlist/page.tsx) |
222
- | routes | `overrides.routes.pages["backend:/backend/config/ai-assistant/legacy"]` | disable-replace | backendPages:/backend/config/ai-assistant/legacy | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/backend/config/ai-assistant/legacy/page.tsx](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/backend/config/ai-assistant/legacy/page.tsx) |
223
- | routes | `overrides.routes.pages["backend:/backend/config/ai-assistant/moderation-flags"]` | disable-replace | backendPages:/backend/config/ai-assistant/moderation-flags | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/backend/config/ai-assistant/moderation-flags/page.tsx](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/backend/config/ai-assistant/moderation-flags/page.tsx) |
224
- | routes | `overrides.routes.pages["backend:/backend/config/ai-assistant/playground"]` | disable-replace | backendPages:/backend/config/ai-assistant/playground | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/backend/config/ai-assistant/playground/page.tsx](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/backend/config/ai-assistant/playground/page.tsx) |
225
- | routes | `overrides.routes.pages["backend:/backend/config/ai-assistant/settings"]` | disable-replace | backendPages:/backend/config/ai-assistant/settings | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/backend/config/ai-assistant/settings/page.tsx](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/backend/config/ai-assistant/settings/page.tsx) |
226
- | routes | `overrides.routes.pages["backend:/backend/config/ai-assistant/usage"]` | disable-replace | backendPages:/backend/config/ai-assistant/usage | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/backend/config/ai-assistant/usage/page.tsx](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/backend/config/ai-assistant/usage/page.tsx) |
227
- | setup | `overrides.setup.defaultRoleFeatures` | replace | ownedContracts.setup:ai_assistant:setup | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/setup.ts:106](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/setup.ts#L106) |
228
- | setup | `overrides.setup.seedDefaults` | replace | ownedContracts.setup:ai_assistant:setup | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/setup.ts:106](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/setup.ts#L106) |
229
- | workers | `overrides.workers["ai_assistant:cleanup-expired-pending-actions"]` | disable-replace | ownedContracts.worker:ai_assistant:cleanup-expired-pending-actions | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/workers/ai-pending-action-cleanup.ts:63](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/workers/ai-pending-action-cleanup.ts#L63) |
230
- | workers | `overrides.workers["ai_assistant:token-usage-prune"]` | disable-replace | ownedContracts.worker:ai_assistant:token-usage-prune | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/workers/ai-token-usage-prune.ts:14](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/workers/ai-token-usage-prune.ts#L14) |
231
-
232
- ## Owned contract — module metadata
233
-
234
- | ID | Metadata | Source |
235
- |---|---|---|
236
- | ai_assistant | name=ai_assistant; version=0.1.0 | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/index.ts:3](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/index.ts#L3) |
237
-
238
- ## Workers
239
-
240
- | ID | Metadata | Source |
241
- |---|---|---|
242
- | ai_assistant:cleanup-expired-pending-actions | concurrency=1; queue=ai-pending-action-cleanup | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/workers/ai-pending-action-cleanup.ts:63](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/workers/ai-pending-action-cleanup.ts#L63) |
243
- | ai_assistant:token-usage-prune | concurrency=1; queue=ai-token-usage-prune | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/workers/ai-token-usage-prune.ts:14](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/workers/ai-token-usage-prune.ts#L14) |
244
-
245
- ## Setup
246
-
247
- | ID | Metadata | Source |
248
- |---|---|---|
249
- | ai_assistant:setup | hooks=seedDefaults; roles=admin, employee | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/setup.ts:106](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/setup.ts#L106) |
53
+ ai_assistant.conversation_shared
250
54
 
251
- ## DI registrations (rich)
55
+ ## CLI
252
56
 
253
- | Token | Kind | Lifetime | Injection | Provider | Source |
254
- |---|---|---|---|---|---|
255
- | mcpToolRegistry | value | — | — | — | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/di.ts:8](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/di.ts#L8) |
256
- | moderationService | function | singleton | — | — | [node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/di.ts:11](../../../node_modules/@open-mercato/ai-assistant/src/modules/ai_assistant/di.ts#L11) |
57
+ mcp:serve · mcp:serve-http · mcp:dev · mcp:ensure-api-key · mcp:list-tools · entity-graph · run-pending-action-cleanup · run-token-usage-prune · test-tools
@@ -1,6 +1,5 @@
1
1
  # api_docs — module facts (generated, do not edit)
2
- <!-- generated from @open-mercato/core 0.6.7-develop.6862.1.c11a64ce0a; core 0.6.7-develop.6862.1.c11a64ce0a — R1 staleness stamp -->
3
- Source root: [node_modules/@open-mercato/core/src/modules/api_docs](../../../node_modules/@open-mercato/core/src/modules/api_docs)
2
+ <!-- generated from @open-mercato/core 0.6.7 — R1 staleness stamp -->
4
3
 
5
4
  ## Entities
6
5
 
@@ -18,18 +17,6 @@ _none_
18
17
 
19
18
  _none_
20
19
 
21
- ## Backend pages
22
-
23
- | ID / path | Source |
24
- |---|---|
25
- | /backend/docs | [node_modules/@open-mercato/core/src/modules/api_docs/backend/docs/page.tsx](../../../node_modules/@open-mercato/core/src/modules/api_docs/backend/docs/page.tsx) |
26
-
27
- ## Frontend pages
28
-
29
- | ID / path | Source |
30
- |---|---|
31
- | /docs/api | [node_modules/@open-mercato/core/src/modules/api_docs/frontend/docs/api/page.tsx](../../../node_modules/@open-mercato/core/src/modules/api_docs/frontend/docs/api/page.tsx) |
32
-
33
20
  ## DI service tokens
34
21
 
35
22
  _none_
@@ -43,53 +30,10 @@ _none_
43
30
  - Entity IDs: _none_
44
31
  - Table IDs: _none_
45
32
 
46
- ## UMES hosts
47
-
48
- _none_
49
-
50
- ## UMES contributions
51
-
52
- _none_
53
-
54
- ## Active extension bindings
55
-
56
- _none_
57
-
58
- ## Incoming installed contributions
59
-
60
- _none_
61
-
62
- ## Contribution resolutions
63
-
64
- _none_
65
-
66
-
67
-
68
33
  ## Notifications
69
34
 
70
35
  _none_
71
36
 
72
- ## CLI commands
73
-
74
- _none_
75
-
76
- ## AI tools / MCP capabilities
37
+ ## CLI
77
38
 
78
39
  _none_
79
-
80
- ## AI agents
81
-
82
- _none_
83
-
84
- ## Exact override targets
85
-
86
- | Domain | Path / key | Supported modes | Referenced fact | Source |
87
- |---|---|---|---|---|
88
- | routes | `overrides.routes.pages["backend:/backend/docs"]` | disable-replace | backendPages:/backend/docs | [node_modules/@open-mercato/core/src/modules/api_docs/backend/docs/page.tsx](../../../node_modules/@open-mercato/core/src/modules/api_docs/backend/docs/page.tsx) |
89
- | routes | `overrides.routes.pages["frontend:/docs/api"]` | disable-replace | frontendPages:/docs/api | [node_modules/@open-mercato/core/src/modules/api_docs/frontend/docs/api/page.tsx](../../../node_modules/@open-mercato/core/src/modules/api_docs/frontend/docs/api/page.tsx) |
90
-
91
- ## Owned contract — module metadata
92
-
93
- | ID | Metadata | Source |
94
- |---|---|---|
95
- | api_docs | name=api_docs | [node_modules/@open-mercato/core/src/modules/api_docs/index.ts:3](../../../node_modules/@open-mercato/core/src/modules/api_docs/index.ts#L3) |