{"schemaVersion":1,"coreVersion":"0.9.0","generatedAt":"2026-10-29T16:38:21Z","modules":[{"id":"api_docs","title":"API Documentation","description":"Auto-generated documentation for all HTTP endpoints.","category":"devtools","wedge":"platform","requires":[],"inPresets":["0.8","0.9","next"],"inEmptyPreset":["0.8","0.9"],"anatomy":{"version":"0.9.0","coverage":"partial","counts":{"entities":0,"tables":0,"migrations":0,"routes":null,"publicRoutes":null,"aclFeatures":0,"eventsEmitted":0,"eventsConsumed":0,"backendPages":1,"frontendPages":1,"widgets":0,"workers":0,"cli":0,"aiTools":0,"aiAgents":0,"extends":0},"lists":{"aclFeatures":[],"eventsEmitted":[],"eventsConsumed":[],"env":[],"hosts":[],"tables":[],"publicRoutes":[],"credentials":[]},"callout":"FEW CONTRACTS","diff":null},"install":"yarn mercato module enable @open-mercato/core --module api_docs","page":"/built-in/api_docs"},{"id":"api_keys","title":"API Keys","description":"Manage access tokens for external API access.","category":"auth-security","wedge":"platform","requires":["auth"],"requiresCore":["auth"],"inPresets":["0.8","0.9","next"],"anatomy":{"version":"0.9.0","coverage":"partial","counts":{"entities":1,"tables":1,"migrations":0,"routes":null,"publicRoutes":null,"aclFeatures":3,"eventsEmitted":0,"eventsConsumed":0,"backendPages":2,"frontendPages":0,"widgets":0,"workers":0,"cli":1,"aiTools":0,"aiAgents":0,"extends":0},"lists":{"aclFeatures":["api_keys.view","api_keys.create","api_keys.delete"],"eventsEmitted":[],"eventsConsumed":[],"env":[],"hosts":[],"tables":["api_keys"],"publicRoutes":[],"credentials":[]},"callout":"ADDS 1 TABLE · 3 PERMISSIONS","diff":null},"install":"yarn mercato module enable @open-mercato/core --module api_keys","page":"/built-in/api_keys"},{"id":"attachments","title":"Attachments","description":"File attachments and media management.","category":"storage-infrastructure","wedge":"platform","requires":[],"inPresets":["0.8","0.9","next"],"inEmptyPreset":["0.8","0.9"],"anatomy":{"version":"0.9.0","coverage":"partial","counts":{"entities":3,"tables":3,"migrations":0,"routes":null,"publicRoutes":null,"aclFeatures":2,"eventsEmitted":3,"eventsConsumed":0,"backendPages":2,"frontendPages":0,"widgets":0,"workers":1,"cli":1,"aiTools":0,"aiAgents":0,"extends":0},"lists":{"aclFeatures":["attachments.view","attachments.manage"],"eventsEmitted":["attachments.attachment.created","attachments.attachment.updated","attachments.attachment.deleted"],"eventsConsumed":[],"env":[],"hosts":[],"tables":["attachment_partitions","attachments","attachment_quota_reservations"],"publicRoutes":[],"credentials":[]},"callout":"ADDS 3 TABLES · 2 PERMISSIONS · EMITS 3 EVENTS","diff":null},"install":"yarn mercato module enable @open-mercato/core --module attachments","page":"/built-in/attachments"},{"id":"audit_logs","title":"Audit & Action Logs","description":"Tracks user actions and data accesses with undo support scaffolding.","category":"auth-security","wedge":"platform","requires":[],"inPresets":["0.8","0.9","next"],"inEmptyPreset":["0.8","0.9"],"anatomy":{"version":"0.9.0","coverage":"partial","counts":{"entities":2,"tables":2,"migrations":0,"routes":null,"publicRoutes":null,"aclFeatures":6,"eventsEmitted":0,"eventsConsumed":0,"backendPages":1,"frontendPages":0,"widgets":0,"workers":0,"cli":1,"aiTools":0,"aiAgents":0,"extends":0},"lists":{"aclFeatures":["audit_logs.view_self","audit_logs.view_tenant","audit_logs.undo_self","audit_logs.undo_tenant","audit_logs.redo_self","audit_logs.redo_tenant"],"eventsEmitted":[],"eventsConsumed":[],"env":[],"hosts":[],"tables":["action_logs","access_logs"],"publicRoutes":[],"credentials":[]},"callout":"ADDS 2 TABLES · 6 PERMISSIONS","diff":null},"install":"yarn mercato module enable @open-mercato/core --module audit_logs","page":"/built-in/audit_logs"},{"id":"auth","title":"Authentication & Accounts","description":"User accounts, sessions, roles and password resets.","category":"auth-security","wedge":"platform","requires":[],"inPresets":["0.8","0.9","next"],"inEmptyPreset":["0.8","0.9"],"anatomy":{"version":"0.9.0","coverage":"partial","counts":{"entities":11,"tables":11,"migrations":0,"routes":null,"publicRoutes":null,"aclFeatures":8,"eventsEmitted":12,"eventsConsumed":0,"backendPages":11,"frontendPages":3,"widgets":0,"workers":0,"cli":10,"aiTools":0,"aiAgents":0,"extends":6},"lists":{"aclFeatures":["auth.users.list","auth.users.create","auth.users.edit","auth.users.delete","auth.roles.list","auth.roles.manage","auth.acl.manage","auth.sidebar.manage"],"eventsEmitted":["auth.user.created","auth.user.updated","auth.user.deleted","auth.role.created","auth.role.updated","auth.role.deleted","auth.login.success","auth.login.failed","auth.logout","auth.password.changed","auth.password.reset.requested","auth.password.reset.completed"],"eventsConsumed":[],"env":[],"hosts":[],"tables":["users","roles","user_sidebar_preferences","role_sidebar_preferences","sidebar_variants","user_roles","sessions","password_resets","role_acls","user_acls","user_consents"],"publicRoutes":[],"credentials":[]},"callout":"ADDS 11 TABLES · 8 PERMISSIONS · EMITS 12 EVENTS","diff":null},"install":"yarn mercato module enable @open-mercato/core --module auth","page":"/built-in/auth"},{"id":"availability","title":"Availability","description":"Sell-policy layer (stock-managed, backorder, preorder, thresholds) on top of the shared availability contract.","category":"operations","wedge":"operate","requires":[],"inPresets":[],"anatomy":{"version":"0.9.0","coverage":"partial","counts":{"entities":1,"tables":1,"migrations":0,"routes":null,"publicRoutes":null,"aclFeatures":3,"eventsEmitted":3,"eventsConsumed":0,"backendPages":4,"frontendPages":0,"widgets":0,"workers":0,"cli":0,"aiTools":0,"aiAgents":0,"extends":0},"lists":{"aclFeatures":["availability.policies.view","availability.policies.manage","availability.check"],"eventsEmitted":["availability.policy.created","availability.policy.updated","availability.policy.deleted"],"eventsConsumed":[],"env":[],"hosts":[],"tables":["availability_policies"],"publicRoutes":[],"credentials":[]},"callout":"ADDS 1 TABLE · 3 PERMISSIONS · EMITS 3 EVENTS","diff":null},"install":"yarn mercato module enable @open-mercato/core --module availability","page":"/built-in/availability"},{"id":"business_rules","title":"Business Rules","description":"Business Rules Engine for defining, managing, and executing business logic and automation rules.","category":"ai-automation","wedge":"think","requires":[],"inPresets":["0.8","0.9","next"],"anatomy":{"version":"0.9.0","coverage":"partial","counts":{"entities":4,"tables":4,"migrations":0,"routes":null,"publicRoutes":null,"aclFeatures":5,"eventsEmitted":1,"eventsConsumed":1,"backendPages":8,"frontendPages":0,"widgets":0,"workers":0,"cli":1,"aiTools":0,"aiAgents":0,"extends":2},"lists":{"aclFeatures":["business_rules.view","business_rules.manage","business_rules.execute","business_rules.view_logs","business_rules.manage_sets"],"eventsEmitted":["business_rules.rule.execution_failed"],"eventsConsumed":["business_rules.rule.execution_failed"],"env":[],"hosts":[],"tables":["business_rules","rule_execution_logs","rule_sets","rule_set_members"],"publicRoutes":[],"credentials":[]},"callout":"ADDS 4 TABLES · 5 PERMISSIONS · EMITS 1 EVENT","diff":null},"install":"yarn mercato module enable @open-mercato/core --module business_rules","page":"/built-in/business_rules"},{"id":"catalog","title":"Product Catalog","description":"Configurable catalog for products, variants, and pricing used by the sales module.","category":"catalog-pricing","wedge":"sell","requires":[],"inPresets":["0.8","0.9","next"],"anatomy":{"version":"0.9.0","coverage":"partial","counts":{"entities":12,"tables":12,"migrations":0,"routes":null,"publicRoutes":null,"aclFeatures":7,"eventsEmitted":18,"eventsConsumed":1,"backendPages":12,"frontendPages":0,"widgets":0,"workers":3,"cli":4,"aiTools":29,"aiAgents":2,"extends":44},"lists":{"aclFeatures":["catalog.products.view","catalog.products.manage","catalog.categories.view","catalog.categories.manage","catalog.variants.manage","catalog.pricing.manage","catalog.settings.manage"],"eventsEmitted":["catalog.product.created","catalog.product.updated","catalog.product.deleted","catalog.product.stock_low","catalog.product_unit_conversion.created","catalog.product_unit_conversion.updated","catalog.product_unit_conversion.deleted","catalog.category.created","catalog.category.updated","catalog.category.deleted","catalog.variant.created","catalog.variant.updated","catalog.variant.deleted","catalog.price.created","catalog.price.updated","catalog.price.deleted","catalog.pricing.resolve.before","catalog.pricing.resolve.after"],"eventsConsumed":["catalog.product.stock_low"],"env":[],"hosts":[],"tables":["catalog_product_option_schemas","catalog_products","catalog_product_unit_conversions","catalog_product_categories","catalog_product_category_assignments","catalog_product_tags","catalog_product_tag_assignments","catalog_product_offers","catalog_product_variants","catalog_product_variant_relations","catalog_price_kinds","catalog_product_variant_prices"],"publicRoutes":[],"credentials":[]},"callout":"ADDS 12 TABLES · 7 PERMISSIONS · EMITS 18 EVENTS","diff":null},"install":"yarn mercato module enable @open-mercato/core --module catalog","page":"/built-in/catalog"},{"id":"communication_channels","title":"Communication Channels","description":"Unified hub bridging external chat/email channels (Slack, WhatsApp, Email) to the Messages module. Adapter contract, channel-native payload storage, reactions, and per-channel threading. OAuth state cookies are single-use via short-TTL cache markers (see lib/oauth-state.ts); multi-replica deployment","category":"communication","wedge":"connect","requires":["progress"],"requiresCore":["progress"],"inPresets":["0.8","0.9","next"],"anatomy":{"version":"0.9.0","coverage":"partial","counts":{"entities":8,"tables":8,"migrations":0,"routes":null,"publicRoutes":null,"aclFeatures":10,"eventsEmitted":17,"eventsConsumed":3,"backendPages":3,"frontendPages":0,"widgets":4,"workers":0,"cli":0,"aiTools":0,"aiAgents":0,"extends":6},"lists":{"aclFeatures":["communication_channels.view","communication_channels.manage","communication_channels.react","communication_channels.assign","communication_channels.connect_user_channel","communication_channels.share_own_channel","communication_channels.connect_tenant_channel","communication_channels.admin","communication_channels.channel.import_history","communication_channels.channel.push.manage"],"eventsEmitted":["communication_channels.message.received","communication_channels.message.sent","communication_channels.message.delivery_failed","communication_channels.conversation.created","communication_channels.conversation.reassigned","communication_channels.contact.resolved","communication_channels.channel.requires_reauth","communication_channels.channel.disconnected","communication_channels.channel.deleted","communication_channels.channel.primary_changed","communication_channels.channel.visibility_changed","communication_channels.reaction.added","communication_channels.reaction.removed","communication_channels.push.registered","communication_channels.push.failed","communication_channels.push.renewed","communication_channels.push.deactivated"],"eventsConsumed":["communication_channels.channel.requires_reauth","messages.message.sent","auth.user.deleted"],"env":[],"hosts":[],"tables":["communication_channels","external_conversations","external_messages","message_channel_links","channel_thread_mappings","message_reactions","channel_thread_tokens","channel_ingest_dead_letters"],"publicRoutes":[],"credentials":[]},"callout":"ADDS 8 TABLES · 10 PERMISSIONS · EMITS 17 EVENTS","diff":null},"install":"yarn mercato module enable @open-mercato/core --module communication_channels","page":"/built-in/communication_channels"},{"id":"configs","title":"Configuration","description":"Shared configuration storage and helpers for module settings.","category":"storage-infrastructure","wedge":"platform","requires":[],"inPresets":["0.8","0.9","next"],"inEmptyPreset":["0.8","0.9"],"anatomy":{"version":"0.9.0","coverage":"partial","counts":{"entities":2,"tables":2,"migrations":0,"routes":null,"publicRoutes":null,"aclFeatures":4,"eventsEmitted":0,"eventsConsumed":0,"backendPages":3,"frontendPages":0,"widgets":0,"workers":0,"cli":3,"aiTools":0,"aiAgents":0,"extends":0},"lists":{"aclFeatures":["configs.system_status.view","configs.cache.view","configs.cache.manage","configs.manage"],"eventsEmitted":[],"eventsConsumed":[],"env":[],"hosts":[],"tables":["module_configs","upgrade_action_runs"],"publicRoutes":[],"credentials":[]},"callout":"ADDS 2 TABLES · 4 PERMISSIONS","diff":null},"install":"yarn mercato module enable @open-mercato/core --module configs","page":"/built-in/configs"},{"id":"currencies","title":"Currencies","description":"Currencies and Exchange rate management","category":"payments-finance","wedge":"money","requires":[],"inPresets":["0.8","0.9","next"],"anatomy":{"version":"0.9.0","coverage":"partial","counts":{"entities":3,"tables":3,"migrations":0,"routes":null,"publicRoutes":null,"aclFeatures":6,"eventsEmitted":6,"eventsConsumed":0,"backendPages":7,"frontendPages":0,"widgets":0,"workers":0,"cli":3,"aiTools":0,"aiAgents":0,"extends":0},"lists":{"aclFeatures":["currencies.view","currencies.manage","currencies.rates.view","currencies.rates.manage","currencies.fetch.view","currencies.fetch.manage"],"eventsEmitted":["currencies.currency.created","currencies.currency.updated","currencies.currency.deleted","currencies.exchange_rate.created","currencies.exchange_rate.updated","currencies.exchange_rate.deleted"],"eventsConsumed":[],"env":[],"hosts":[],"tables":["currencies","exchange_rates","currency_fetch_configs"],"publicRoutes":[],"credentials":[]},"callout":"ADDS 3 TABLES · 6 PERMISSIONS · EMITS 6 EVENTS","diff":null},"install":"yarn mercato module enable @open-mercato/core --module currencies","page":"/built-in/currencies"},{"id":"customer_accounts","title":"Customer Identity & Portal Authentication","description":"Customer-facing authentication with two-tier identity model and full RBAC.","category":"content-portal","wedge":"platform","requires":[],"inPresets":["0.8","0.9","next"],"anatomy":{"version":"0.9.0","coverage":"partial","counts":{"entities":10,"tables":10,"migrations":0,"routes":null,"publicRoutes":null,"aclFeatures":5,"eventsEmitted":25,"eventsConsumed":11,"backendPages":7,"frontendPages":0,"widgets":3,"workers":4,"cli":1,"aiTools":0,"aiAgents":0,"extends":15},"lists":{"aclFeatures":["customer_accounts.view","customer_accounts.manage","customer_accounts.roles.manage","customer_accounts.invite","customer_accounts.domain.manage"],"eventsEmitted":["customer_accounts.user.created","customer_accounts.user.updated","customer_accounts.user.deleted","customer_accounts.user.locked","customer_accounts.user.unlocked","customer_accounts.login.success","customer_accounts.login.failed","customer_accounts.magic_link.requested","customer_accounts.email.verified","customer_accounts.password.reset_requested","customer_accounts.password.reset","customer_accounts.password.changed","customer_accounts.role.created","customer_accounts.role.updated","customer_accounts.role.deleted","customer_accounts.user.invited","customer_accounts.invitation.accepted","customer_accounts.password_reset.requested","customer_accounts.domain_mapping.created","customer_accounts.domain_mapping.verified"],"eventsConsumed":["customer_accounts.user.created","customers.person.created","customer_accounts.domain_mapping.*","customer_accounts.domain_mapping.activated","customer_accounts.domain_mapping.dns_failed","customer_accounts.domain_mapping.tls_failed","customer_accounts.domain_mapping.verified","customer_accounts.user.deleted","customer_accounts.user.updated","customers.company.deleted","customers.person.deleted"],"env":[],"hosts":[],"tables":["customer_users","customer_roles","customer_role_acls","customer_user_roles","customer_user_acls","customer_user_sessions","customer_user_email_verifications","customer_user_password_resets","customer_user_invitations","domain_mappings"],"publicRoutes":[],"credentials":[]},"callout":"ADDS 10 TABLES · 5 PERMISSIONS · EMITS 25 EVENTS","diff":null},"install":"yarn mercato module enable @open-mercato/core --module customer_accounts","page":"/built-in/customer_accounts"},{"id":"customer_groups","title":"Customer Groups & B2B Terms","description":"Customer groups, memberships, and per-group commercial terms consumed by catalog pricing and sales tax resolution.","category":"crm-sales","wedge":"sell","requires":[],"inPresets":[],"anatomy":{"version":"0.9.0","coverage":"partial","counts":{"entities":3,"tables":3,"migrations":0,"routes":null,"publicRoutes":null,"aclFeatures":6,"eventsEmitted":7,"eventsConsumed":0,"backendPages":4,"frontendPages":0,"widgets":2,"workers":0,"cli":1,"aiTools":0,"aiAgents":0,"extends":3},"lists":{"aclFeatures":["customer_groups.groups.view","customer_groups.groups.manage","customer_groups.memberships.view","customer_groups.memberships.manage","customer_groups.terms.view","customer_groups.terms.manage"],"eventsEmitted":["customer_groups.group.created","customer_groups.group.updated","customer_groups.group.deleted","customer_groups.membership.added","customer_groups.membership.removed","customer_groups.membership.expired","customer_groups.terms.updated"],"eventsConsumed":[],"env":[],"hosts":[],"tables":["customer_groups","customer_group_memberships","customer_group_terms"],"publicRoutes":[],"credentials":[]},"callout":"ADDS 3 TABLES · 6 PERMISSIONS · EMITS 7 EVENTS","diff":null},"install":"yarn mercato module enable @open-mercato/core --module customer_groups","page":"/built-in/customer_groups"},{"id":"customers","title":"Customer Relationship Management","description":"Core CRM capabilities for people, companies, deals, and activities.","category":"crm-sales","wedge":"sell","requires":["progress"],"requiresCore":["progress"],"inPresets":["0.8","0.9","next"],"anatomy":{"version":"0.9.0","coverage":"partial","counts":{"entities":26,"tables":26,"migrations":0,"routes":null,"publicRoutes":null,"aclFeatures":22,"eventsEmitted":51,"eventsConsumed":6,"backendPages":18,"frontendPages":0,"widgets":5,"workers":2,"cli":4,"aiTools":20,"aiAgents":3,"extends":40},"lists":{"aclFeatures":["customers.people.view","customers.people.manage","customers.companies.view","customers.companies.manage","customers.deals.view","customers.deals.manage","customers.activities.view","customers.activities.manage","customers.settings.manage","customers.pipelines.view","customers.pipelines.manage","customers.widgets.todos","customers.widgets.next-interactions","customers.widgets.new-customers","customers.widgets.new-deals","customers.interactions.view","customers.interactions.manage","customers.roles.view","customers.roles.manage","customers.email.compose"],"eventsEmitted":["customers.person.created","customers.person.updated","customers.person.deleted","customers.company.created","customers.company.updated","customers.company.deleted","customers.deal.created","customers.deal.updated","customers.deal.deleted","customers.deal.won","customers.deal.lost","customers.comment.created","customers.comment.updated","customers.comment.deleted","customers.address.created","customers.address.updated","customers.address.deleted","customers.activity.created","customers.activity.updated","customers.activity.deleted"],"eventsConsumed":["communication_channels.channel.visibility_changed","customers.deal.lost","customers.deal.won","communication_channels.message.received","communication_channels.message.sent","workflows.task.assigned"],"env":[],"hosts":[],"tables":["customer_entities","customer_people","customer_person_company_links","customer_companies","customer_deals","customer_deal_stage_transitions","customer_deal_people","customer_deal_companies","customer_activities","customer_interactions","customer_comments","customer_addresses","customer_settings","customer_tags","customer_tag_assignments","customer_dictionary_entries","customer_pipelines","customer_pipeline_stages","customer_todo_links","customer_entity_roles"],"publicRoutes":[],"credentials":[]},"callout":"ADDS 26 TABLES · 22 PERMISSIONS · EMITS 51 EVENTS","diff":null},"install":"yarn mercato module enable @open-mercato/core --module customers","page":"/built-in/customers"},{"id":"dashboards","title":"Admin Dashboards","description":"Configurable admin dashboard with module-provided widgets.","category":"search-analytics","wedge":"think","requires":[],"inPresets":["0.8","0.9","next"],"inEmptyPreset":["0.8","0.9"],"anatomy":{"version":"0.9.0","coverage":"partial","counts":{"entities":3,"tables":3,"migrations":0,"routes":null,"publicRoutes":null,"aclFeatures":4,"eventsEmitted":0,"eventsConsumed":1,"backendPages":0,"frontendPages":0,"widgets":10,"workers":0,"cli":4,"aiTools":0,"aiAgents":0,"extends":11},"lists":{"aclFeatures":["dashboards.view","dashboards.configure","dashboards.admin.assign-widgets","analytics.view"],"eventsEmitted":[],"eventsConsumed":["currencies.currency.*"],"env":[],"hosts":[],"tables":["dashboard_layouts","dashboard_role_widgets","dashboard_user_widgets"],"publicRoutes":[],"credentials":[]},"callout":"ADDS 3 TABLES · 4 PERMISSIONS","diff":null},"install":"yarn mercato module enable @open-mercato/core --module dashboards","page":"/built-in/dashboards"},{"id":"data_sync","title":"Data Sync","description":"Streaming data sync hub for import/export integrations.","category":"integrations-sync","wedge":"connect","requires":[],"inPresets":["0.8","0.9","next"],"anatomy":{"version":"0.9.0","coverage":"partial","counts":{"entities":4,"tables":4,"migrations":0,"routes":null,"publicRoutes":null,"aclFeatures":3,"eventsEmitted":4,"eventsConsumed":0,"backendPages":2,"frontendPages":0,"widgets":0,"workers":3,"cli":0,"aiTools":0,"aiAgents":0,"extends":0},"lists":{"aclFeatures":["data_sync.view","data_sync.run","data_sync.configure"],"eventsEmitted":["data_sync.run.started","data_sync.run.completed","data_sync.run.failed","data_sync.run.cancelled"],"eventsConsumed":[],"env":[],"hosts":[],"tables":["sync_runs","sync_cursors","sync_mappings","sync_schedules"],"publicRoutes":[],"credentials":[]},"callout":"ADDS 4 TABLES · 3 PERMISSIONS · EMITS 4 EVENTS","diff":null},"install":"yarn mercato module enable @open-mercato/core --module data_sync","page":"/built-in/data_sync"},{"id":"design_system","title":"Design system gallery","description":"Live, in-app component gallery for the Open Mercato design system.","category":"devtools","wedge":"platform","requires":[],"inPresets":[],"anatomy":{"version":"0.9.0","coverage":"partial","counts":{"entities":0,"tables":0,"migrations":0,"routes":null,"publicRoutes":null,"aclFeatures":1,"eventsEmitted":0,"eventsConsumed":0,"backendPages":1,"frontendPages":0,"widgets":0,"workers":0,"cli":0,"aiTools":0,"aiAgents":0,"extends":0},"lists":{"aclFeatures":["design_system.view"],"eventsEmitted":[],"eventsConsumed":[],"env":[],"hosts":[],"tables":[],"publicRoutes":[],"credentials":[]},"callout":"ADDS 1 PERMISSION","diff":null},"install":"yarn mercato module enable @open-mercato/core --module design_system","page":"/built-in/design_system"},{"id":"devices","title":"Devices","description":"Per-tenant user device registry (platform, app/OS metadata, push token storage).","category":"communication","wedge":"connect","requires":["auth"],"requiresCore":["auth"],"inPresets":["0.8","0.9","next"],"anatomy":{"version":"0.9.0","coverage":"partial","counts":{"entities":1,"tables":1,"migrations":0,"routes":null,"publicRoutes":null,"aclFeatures":3,"eventsEmitted":5,"eventsConsumed":0,"backendPages":3,"frontendPages":0,"widgets":0,"workers":0,"cli":0,"aiTools":0,"aiAgents":0,"extends":0},"lists":{"aclFeatures":["devices.view","devices.manage","devices.admin"],"eventsEmitted":["devices.user_device.registered","devices.user_device.deactivated","devices.user_device.created","devices.user_device.updated","devices.user_device.deleted"],"eventsConsumed":[],"env":[],"hosts":[],"tables":["user_devices"],"publicRoutes":[],"credentials":[]},"callout":"ADDS 1 TABLE · 3 PERMISSIONS · EMITS 5 EVENTS","diff":null},"install":"yarn mercato module enable @open-mercato/core --module devices","page":"/built-in/devices"},{"id":"dictionaries","title":"Shared Dictionaries","description":"Organization-scoped dictionaries for reusable enumerations and appearance presets.","category":"storage-infrastructure","wedge":"platform","requires":[],"inPresets":["0.8","0.9","next"],"anatomy":{"version":"0.9.0","coverage":"partial","counts":{"entities":2,"tables":2,"migrations":0,"routes":null,"publicRoutes":null,"aclFeatures":2,"eventsEmitted":3,"eventsConsumed":0,"backendPages":1,"frontendPages":0,"widgets":0,"workers":0,"cli":0,"aiTools":0,"aiAgents":0,"extends":0},"lists":{"aclFeatures":["dictionaries.view","dictionaries.manage"],"eventsEmitted":["dictionaries.entry.created","dictionaries.entry.updated","dictionaries.entry.deleted"],"eventsConsumed":[],"env":[],"hosts":[],"tables":["dictionaries","dictionary_entries"],"publicRoutes":[],"credentials":[]},"callout":"ADDS 2 TABLES · 2 PERMISSIONS · EMITS 3 EVENTS","diff":null},"install":"yarn mercato module enable @open-mercato/core --module dictionaries","page":"/built-in/dictionaries"},{"id":"directory","title":"Directory (Tenants & Organizations)","description":"Multi-tenant directory with tenants and organizations.","category":"auth-security","wedge":"platform","requires":[],"inPresets":["0.8","0.9","next"],"inEmptyPreset":["0.8","0.9"],"anatomy":{"version":"0.9.0","coverage":"partial","counts":{"entities":2,"tables":2,"migrations":0,"routes":null,"publicRoutes":null,"aclFeatures":4,"eventsEmitted":6,"eventsConsumed":1,"backendPages":7,"frontendPages":0,"widgets":0,"workers":0,"cli":0,"aiTools":0,"aiAgents":0,"extends":0},"lists":{"aclFeatures":["directory.tenants.view","directory.tenants.manage","directory.organizations.view","directory.organizations.manage"],"eventsEmitted":["directory.tenant.created","directory.tenant.updated","directory.tenant.deleted","directory.organization.created","directory.organization.updated","directory.organization.deleted"],"eventsConsumed":["directory.organization.*"],"env":[],"hosts":[],"tables":["tenants","organizations"],"publicRoutes":[],"credentials":[]},"callout":"ADDS 2 TABLES · 4 PERMISSIONS · EMITS 6 EVENTS","diff":null},"install":"yarn mercato module enable @open-mercato/core --module directory","page":"/built-in/directory"},{"id":"entities","title":"Custom Entities & Fields","description":"User-defined entities, custom fields, and dynamic records storage.","category":"storage-infrastructure","wedge":"platform","requires":["query_index"],"requiresCore":["query_index"],"inPresets":["0.8","0.9","next"],"inEmptyPreset":["0.8","0.9"],"anatomy":{"version":"0.9.0","coverage":"partial","counts":{"entities":6,"tables":6,"migrations":0,"routes":null,"publicRoutes":null,"aclFeatures":4,"eventsEmitted":0,"eventsConsumed":0,"backendPages":9,"frontendPages":0,"widgets":0,"workers":0,"cli":7,"aiTools":0,"aiAgents":0,"extends":0},"lists":{"aclFeatures":["entities.definitions.view","entities.definitions.manage","entities.records.view","entities.records.manage"],"eventsEmitted":[],"eventsConsumed":[],"env":[],"hosts":[],"tables":["custom_field_defs","custom_field_entity_configs","custom_entities","custom_entities_storage","custom_field_values","encryption_maps"],"publicRoutes":[],"credentials":[]},"callout":"ADDS 6 TABLES · 4 PERMISSIONS","diff":null},"install":"yarn mercato module enable @open-mercato/core --module entities","page":"/built-in/entities"},{"id":"eudr","title":"EUDR Compliance","description":"EU Deforestation Regulation compliance: product commodity mappings, supplier origin evidence, due diligence statements.","category":"localization-compliance","wedge":"money","requires":[],"inPresets":["0.8","0.9","next"],"anatomy":{"version":"0.9.0","coverage":"partial","counts":{"entities":6,"tables":6,"migrations":0,"routes":null,"publicRoutes":null,"aclFeatures":10,"eventsEmitted":23,"eventsConsumed":7,"backendPages":16,"frontendPages":0,"widgets":4,"workers":0,"cli":0,"aiTools":5,"aiAgents":1,"extends":20},"lists":{"aclFeatures":["eudr.mappings.view","eudr.mappings.manage","eudr.submissions.view","eudr.submissions.manage","eudr.statements.view","eudr.statements.manage","eudr.plots.view","eudr.plots.manage","eudr.risk.view","eudr.risk.manage"],"eventsEmitted":["eudr.product_mapping.created","eudr.product_mapping.updated","eudr.product_mapping.deleted","eudr.evidence_submission.created","eudr.evidence_submission.updated","eudr.evidence_submission.deleted","eudr.due_diligence_statement.created","eudr.due_diligence_statement.updated","eudr.due_diligence_statement.deleted","eudr.plot.created","eudr.plot.updated","eudr.plot.deleted","eudr.risk_assessment.created","eudr.risk_assessment.updated","eudr.risk_assessment.deleted","eudr.mitigation_action.created","eudr.mitigation_action.updated","eudr.mitigation_action.deleted","eudr.due_diligence_statement.submitted","eudr.due_diligence_statement.reference_issued"],"eventsConsumed":["attachments.attachment.created","attachments.attachment.deleted","eudr.mitigation_action.completed","eudr.risk_assessment.concluded","eudr.due_diligence_statement.reference_issued","eudr.due_diligence_statement.submitted","eudr.due_diligence_statement.withdrawn"],"env":[],"hosts":[],"tables":["eudr_product_mappings","eudr_plots","eudr_evidence_submissions","eudr_due_diligence_statements","eudr_risk_assessments","eudr_mitigation_actions"],"publicRoutes":[],"credentials":[]},"callout":"ADDS 6 TABLES · 10 PERMISSIONS · EMITS 23 EVENTS","diff":null},"install":"yarn mercato module enable @open-mercato/core --module eudr","page":"/built-in/eudr"},{"id":"feature_toggles","title":"Feature Toggles","description":"Global feature flags with tenant-level overrides.","category":"devtools","wedge":"platform","requires":[],"inPresets":["0.8","0.9","next"],"anatomy":{"version":"0.9.0","coverage":"partial","counts":{"entities":2,"tables":2,"migrations":0,"routes":null,"publicRoutes":null,"aclFeatures":3,"eventsEmitted":0,"eventsConsumed":0,"backendPages":5,"frontendPages":0,"widgets":0,"workers":0,"cli":5,"aiTools":0,"aiAgents":0,"extends":0},"lists":{"aclFeatures":["feature_toggles.view","feature_toggles.manage","feature_toggles.global.manage"],"eventsEmitted":[],"eventsConsumed":[],"env":[],"hosts":[],"tables":["feature_toggles","feature_toggle_overrides"],"publicRoutes":[],"credentials":[]},"callout":"ADDS 2 TABLES · 3 PERMISSIONS","diff":null},"install":"yarn mercato module enable @open-mercato/core --module feature_toggles","page":"/built-in/feature_toggles"},{"id":"forms","title":"Forms","description":"Audit-grade questionnaire and form primitive - versioned definitions, append-only submissions, role-sliced rendering.","category":"content-portal","wedge":"platform","requires":["attachments","customer_accounts"],"requiresCore":["attachments","customer_accounts"],"inPresets":[],"anatomy":{"version":"0.9.0","coverage":"partial","counts":{"entities":11,"tables":11,"migrations":0,"routes":null,"publicRoutes":null,"aclFeatures":6,"eventsEmitted":18,"eventsConsumed":3,"backendPages":7,"frontendPages":6,"widgets":4,"workers":2,"cli":0,"aiTools":0,"aiAgents":0,"extends":4},"lists":{"aclFeatures":["forms.view","forms.design","forms.submissions.manage","forms.submissions.export","forms.submissions.anonymize","forms.distribute"],"eventsEmitted":["forms.form.created","forms.form.archived","forms.form_version.published","forms.submission.started","forms.submission.revision_appended","forms.submission.submitted","forms.submission.reopened","forms.submission.actor_assigned","forms.submission.anonymized","forms.attachment.uploaded","forms.distribution.created","forms.distribution.closed","forms.invitation.created","forms.invitation.sent","forms.invitation.opened","forms.invitation.submitted","forms.invitation.revoked","forms.consent.recorded"],"eventsConsumed":["forms.submission.submitted","forms.invitation.sent","forms.submission.anonymized"],"env":[],"hosts":[],"tables":["forms_form","forms_form_version","forms_form_submission","forms_form_submission_actor","forms_form_submission_revision","forms_encryption_key","forms_form_access_audit","forms_form_attachment","forms_distribution","forms_consent_record","forms_invitation"],"publicRoutes":[],"credentials":[]},"callout":"ADDS 11 TABLES · 6 PERMISSIONS · EMITS 18 EVENTS","diff":null},"install":"yarn mercato module enable @open-mercato/core --module forms","page":"/built-in/forms"},{"id":"inbox_ops","title":"InboxOps - Email-to-ERP Agent","description":"Receives forwarded emails via webhook, extracts structured action proposals using LLM, and presents them for human-in-the-loop approval.","category":"ai-automation","wedge":"think","requires":[],"inPresets":["0.8","0.9","next"],"anatomy":{"version":"0.9.0","coverage":"partial","counts":{"entities":5,"tables":5,"migrations":0,"routes":null,"publicRoutes":null,"aclFeatures":5,"eventsEmitted":13,"eventsConsumed":3,"backendPages":4,"frontendPages":0,"widgets":0,"workers":0,"cli":0,"aiTools":4,"aiAgents":0,"extends":6},"lists":{"aclFeatures":["inbox_ops.proposals.view","inbox_ops.proposals.manage","inbox_ops.settings.manage","inbox_ops.log.view","inbox_ops.replies.send"],"eventsEmitted":["inbox_ops.email.received","inbox_ops.email.processed","inbox_ops.email.failed","inbox_ops.email.reprocessed","inbox_ops.email.deduplicated","inbox_ops.proposal.created","inbox_ops.proposal.accepted","inbox_ops.proposal.rejected","inbox_ops.action.rejected","inbox_ops.action.edited","inbox_ops.action.executed","inbox_ops.action.failed","inbox_ops.reply.sent"],"eventsConsumed":["inbox_ops.action.executed","inbox_ops.email.received","inbox_ops.proposal.created"],"env":[],"hosts":[],"tables":["inbox_settings","inbox_emails","inbox_proposals","inbox_proposal_actions","inbox_discrepancies"],"publicRoutes":[],"credentials":[]},"callout":"ADDS 5 TABLES · 5 PERMISSIONS · EMITS 13 EVENTS","diff":null},"install":"yarn mercato module enable @open-mercato/core --module inbox_ops","page":"/built-in/inbox_ops"},{"id":"integrations","title":"Integrations","description":"Core integration framework - external ID mapping, status badges, and integration registry.","category":"integrations-sync","wedge":"connect","requires":[],"inPresets":["0.8","0.9","next"],"anatomy":{"version":"0.9.0","coverage":"partial","counts":{"entities":4,"tables":4,"migrations":0,"routes":null,"publicRoutes":null,"aclFeatures":3,"eventsEmitted":4,"eventsConsumed":0,"backendPages":3,"frontendPages":0,"widgets":1,"workers":2,"cli":0,"aiTools":0,"aiAgents":0,"extends":2},"lists":{"aclFeatures":["integrations.view","integrations.manage","integrations.credentials.manage"],"eventsEmitted":["integrations.credentials.updated","integrations.state.updated","integrations.version.changed","integrations.log.created"],"eventsConsumed":[],"env":[],"hosts":[],"tables":["sync_external_id_mappings","integration_credentials","integration_states","integration_logs"],"publicRoutes":[],"credentials":[]},"callout":"ADDS 4 TABLES · 3 PERMISSIONS · EMITS 4 EVENTS","diff":null},"install":"yarn mercato module enable @open-mercato/core --module integrations","page":"/built-in/integrations"},{"id":"messages","title":"Messages","description":"Internal messaging system with attachments, actions, and email forwarding.","category":"communication","wedge":"connect","requires":[],"inPresets":["0.8","0.9","next"],"anatomy":{"version":"0.9.0","coverage":"partial","counts":{"entities":5,"tables":5,"migrations":0,"routes":null,"publicRoutes":null,"aclFeatures":7,"eventsEmitted":9,"eventsConsumed":1,"backendPages":3,"frontendPages":1,"widgets":0,"workers":1,"cli":0,"aiTools":0,"aiAgents":0,"extends":2},"lists":{"aclFeatures":["messages.view","messages.compose","messages.attach","messages.attach_files","messages.email","messages.actions","messages.manage"],"eventsEmitted":["messages.message.sent","messages.message.read","messages.message.marked_unread","messages.message.archived","messages.message.unarchived","messages.message.deleted","messages.message.action_taken","messages.message.email_sent","messages.message.email_failed"],"eventsConsumed":["messages.message.sent"],"env":[],"hosts":[],"tables":["messages","message_recipients","message_objects","message_access_tokens","message_confirmations"],"publicRoutes":[],"credentials":[]},"callout":"ADDS 5 TABLES · 7 PERMISSIONS · EMITS 9 EVENTS","diff":null},"install":"yarn mercato module enable @open-mercato/core --module messages","page":"/built-in/messages"},{"id":"notifications","title":"Notifications","description":"In-app notifications with module-extensible types and actions.","category":"communication","wedge":"connect","requires":[],"inPresets":["0.8","0.9","next"],"inEmptyPreset":["0.8","0.9"],"anatomy":{"version":"0.9.0","coverage":"partial","counts":{"entities":4,"tables":4,"migrations":0,"routes":null,"publicRoutes":null,"aclFeatures":5,"eventsEmitted":0,"eventsConsumed":0,"backendPages":3,"frontendPages":0,"widgets":1,"workers":1,"cli":1,"aiTools":0,"aiAgents":0,"extends":1},"lists":{"aclFeatures":["notifications.view","notifications.create","notifications.manage","notifications.manage_preferences","notifications.manage_user_preferences"],"eventsEmitted":[],"eventsConsumed":[],"env":[],"hosts":[],"tables":["notifications","notification_types","notification_type_overrides","notification_preferences"],"publicRoutes":[],"credentials":[]},"callout":"ADDS 4 TABLES · 5 PERMISSIONS","diff":null},"install":"yarn mercato module enable @open-mercato/core --module notifications","page":"/built-in/notifications"},{"id":"payment_gateways","title":"Payment Gateways","description":"Payment gateway adapter contract, registry, transaction tracking, and webhook routing.","category":"payments-finance","wedge":"money","requires":[],"inPresets":["0.8","0.9","next"],"anatomy":{"version":"0.9.0","coverage":"partial","counts":{"entities":4,"tables":4,"migrations":0,"routes":null,"publicRoutes":null,"aclFeatures":4,"eventsEmitted":9,"eventsConsumed":0,"backendPages":1,"frontendPages":0,"widgets":0,"workers":3,"cli":0,"aiTools":0,"aiAgents":0,"extends":0},"lists":{"aclFeatures":["payment_gateways.view","payment_gateways.manage","payment_gateways.capture","payment_gateways.refund"],"eventsEmitted":["payment_gateways.session.created","payment_gateways.session.expired","payment_gateways.payment.authorized","payment_gateways.payment.captured","payment_gateways.payment.failed","payment_gateways.payment.refunded","payment_gateways.payment.cancelled","payment_gateways.webhook.received","payment_gateways.webhook.failed"],"eventsConsumed":[],"env":[],"hosts":[],"tables":["gateway_transactions","gateway_payment_operations","gateway_session_initializations","gateway_webhook_events"],"publicRoutes":[],"credentials":[]},"callout":"ADDS 4 TABLES · 4 PERMISSIONS · EMITS 9 EVENTS","diff":null},"install":"yarn mercato module enable @open-mercato/core --module payment_gateways","page":"/built-in/payment_gateways"},{"id":"perspectives","title":"Table perspectives","description":"Shared persistence for DataTable perspectives (columns, filters, saved views).","category":"search-analytics","wedge":"think","requires":[],"inPresets":["0.8","0.9","next"],"anatomy":{"version":"0.9.0","coverage":"partial","counts":{"entities":2,"tables":2,"migrations":0,"routes":null,"publicRoutes":null,"aclFeatures":2,"eventsEmitted":0,"eventsConsumed":0,"backendPages":0,"frontendPages":0,"widgets":0,"workers":0,"cli":0,"aiTools":0,"aiAgents":0,"extends":0},"lists":{"aclFeatures":["perspectives.use","perspectives.role_defaults"],"eventsEmitted":[],"eventsConsumed":[],"env":[],"hosts":[],"tables":["perspectives","role_perspectives"],"publicRoutes":[],"credentials":[]},"callout":"ADDS 2 TABLES · 2 PERMISSIONS","diff":null},"install":"yarn mercato module enable @open-mercato/core --module perspectives","page":"/built-in/perspectives"},{"id":"phone_calls","title":"Phone Calls","description":"Provider-neutral core hub for ingesting and browsing phone calls.","category":"communication","wedge":"connect","requires":[],"inPresets":["0.8","0.9","next"],"anatomy":{"version":"0.9.0","coverage":"partial","counts":{"entities":2,"tables":2,"migrations":0,"routes":null,"publicRoutes":null,"aclFeatures":2,"eventsEmitted":3,"eventsConsumed":0,"backendPages":1,"frontendPages":0,"widgets":0,"workers":0,"cli":0,"aiTools":0,"aiAgents":0,"extends":0},"lists":{"aclFeatures":["phone_calls.view","phone_calls.manage"],"eventsEmitted":["phone_calls.call.ingested","phone_calls.call.updated","phone_calls.call.ingest_failed"],"eventsConsumed":[],"env":[],"hosts":[],"tables":["phone_calls","phone_call_participants"],"publicRoutes":[],"credentials":[]},"callout":"ADDS 2 TABLES · 2 PERMISSIONS · EMITS 3 EVENTS","diff":null},"install":"yarn mercato module enable @open-mercato/core --module phone_calls","page":"/built-in/phone_calls"},{"id":"planner","title":"Worktime / Availabilities","description":"Availability schedules, rulesets, and shared planning rules.","category":"operations","wedge":"operate","requires":[],"inPresets":["0.8","0.9","next"],"anatomy":{"version":"0.9.0","coverage":"partial","counts":{"entities":2,"tables":2,"migrations":0,"routes":null,"publicRoutes":null,"aclFeatures":2,"eventsEmitted":6,"eventsConsumed":0,"backendPages":3,"frontendPages":0,"widgets":0,"workers":0,"cli":2,"aiTools":0,"aiAgents":0,"extends":1},"lists":{"aclFeatures":["planner.view","planner.manage_availability"],"eventsEmitted":["planner.availability_rule.created","planner.availability_rule.updated","planner.availability_rule.deleted","planner.availability_rule_set.created","planner.availability_rule_set.updated","planner.availability_rule_set.deleted"],"eventsConsumed":[],"env":[],"hosts":[],"tables":["planner_availability_rule_sets","planner_availability_rules"],"publicRoutes":[],"credentials":[]},"callout":"ADDS 2 TABLES · 2 PERMISSIONS · EMITS 6 EVENTS","diff":null},"install":"yarn mercato module enable @open-mercato/core --module planner","page":"/built-in/planner"},{"id":"portal","title":"Customer Portal","description":"Self-service customer portal framework with login, signup, dashboard, sidebar navigation, and extensible widget system.","category":"content-portal","wedge":"platform","requires":["customer_accounts"],"requiresCore":["customer_accounts"],"inPresets":["0.8","0.9","next"],"anatomy":{"version":"0.9.0","coverage":"partial","counts":{"entities":0,"tables":0,"migrations":0,"routes":null,"publicRoutes":null,"aclFeatures":0,"eventsEmitted":0,"eventsConsumed":0,"backendPages":0,"frontendPages":8,"widgets":0,"workers":0,"cli":0,"aiTools":0,"aiAgents":0,"extends":0},"lists":{"aclFeatures":[],"eventsEmitted":[],"eventsConsumed":[],"env":[],"hosts":[],"tables":[],"publicRoutes":[],"credentials":[]},"callout":"FEW CONTRACTS","diff":null},"install":"yarn mercato module enable @open-mercato/core --module portal","page":"/built-in/portal"},{"id":"progress","title":"Progress","description":"Generic server-side progress tracking for long-running operations","category":"storage-infrastructure","wedge":"platform","requires":[],"inPresets":["0.8","0.9","next"],"anatomy":{"version":"0.9.0","coverage":"partial","counts":{"entities":1,"tables":1,"migrations":0,"routes":null,"publicRoutes":null,"aclFeatures":5,"eventsEmitted":6,"eventsConsumed":0,"backendPages":0,"frontendPages":0,"widgets":0,"workers":0,"cli":0,"aiTools":0,"aiAgents":0,"extends":0},"lists":{"aclFeatures":["progress.view","progress.create","progress.update","progress.cancel","progress.manage"],"eventsEmitted":["progress.job.created","progress.job.started","progress.job.updated","progress.job.completed","progress.job.failed","progress.job.cancelled"],"eventsConsumed":[],"env":[],"hosts":[],"tables":["progress_jobs"],"publicRoutes":[],"credentials":[]},"callout":"ADDS 1 TABLE · 5 PERMISSIONS · EMITS 6 EVENTS","diff":null},"install":"yarn mercato module enable @open-mercato/core --module progress","page":"/built-in/progress"},{"id":"push_notifications","title":"Push Notifications","description":"Push delivery rails: a push notification delivery strategy that fans out to registered devices and sends through the communication_channels hub.","category":"communication","wedge":"connect","requires":["auth","devices","notifications","communication_channels","integrations"],"requiresCore":["auth","devices","notifications","communication_channels","integrations"],"inPresets":["0.8","0.9","next"],"anatomy":{"version":"0.9.0","coverage":"partial","counts":{"entities":1,"tables":1,"migrations":0,"routes":null,"publicRoutes":null,"aclFeatures":2,"eventsEmitted":2,"eventsConsumed":0,"backendPages":3,"frontendPages":0,"widgets":0,"workers":2,"cli":0,"aiTools":0,"aiAgents":0,"extends":0},"lists":{"aclFeatures":["push_notifications.view_deliveries","push_notifications.send_custom"],"eventsEmitted":["push_notifications.delivery.sent","push_notifications.delivery.failed"],"eventsConsumed":[],"env":[],"hosts":[],"tables":["push_notification_deliveries"],"publicRoutes":[],"credentials":[]},"callout":"ADDS 1 TABLE · 2 PERMISSIONS · EMITS 2 EVENTS","diff":null},"install":"yarn mercato module enable @open-mercato/core --module push_notifications","page":"/built-in/push_notifications"},{"id":"query_index","title":"Query Indexes","description":"Hybrid query layer with full-text and vector search capabilities.","category":"search-analytics","wedge":"think","requires":[],"inPresets":["0.8","0.9","next"],"inEmptyPreset":["0.8","0.9"],"anatomy":{"version":"0.9.0","coverage":"partial","counts":{"entities":6,"tables":6,"migrations":0,"routes":null,"publicRoutes":null,"aclFeatures":3,"eventsEmitted":8,"eventsConsumed":6,"backendPages":1,"frontendPages":0,"widgets":0,"workers":0,"cli":4,"aiTools":0,"aiAgents":0,"extends":0},"lists":{"aclFeatures":["query_index.status.view","query_index.reindex","query_index.purge"],"eventsEmitted":["query_index.coverage.refresh","query_index.coverage.warmup","query_index.delete_one","query_index.purge","query_index.reindex","query_index.upsert_one","query_index.vectorize_one","query_index.vectorize_purge"],"eventsConsumed":["query_index.coverage.refresh","query_index.coverage.warmup","query_index.delete_one","query_index.purge","query_index.reindex","query_index.upsert_one"],"env":[],"hosts":[],"tables":["entity_indexes","entity_index_jobs","entity_index_coverage","indexer_error_logs","indexer_status_logs","search_tokens"],"publicRoutes":[],"credentials":[]},"callout":"ADDS 6 TABLES · 3 PERMISSIONS · EMITS 8 EVENTS","diff":null},"install":"yarn mercato module enable @open-mercato/core --module query_index","page":"/built-in/query_index"},{"id":"resources","title":"Resource planning","description":"Assets and resources with scheduling policies.","category":"operations","wedge":"operate","requires":["planner"],"requiresCore":["planner"],"inPresets":["0.8","0.9","next"],"anatomy":{"version":"0.9.0","coverage":"partial","counts":{"entities":6,"tables":6,"migrations":0,"routes":null,"publicRoutes":null,"aclFeatures":2,"eventsEmitted":15,"eventsConsumed":0,"backendPages":6,"frontendPages":0,"widgets":0,"workers":0,"cli":4,"aiTools":0,"aiAgents":0,"extends":2},"lists":{"aclFeatures":["resources.view","resources.manage_resources"],"eventsEmitted":["resources.resource.created","resources.resource.updated","resources.resource.deleted","resources.resource_type.created","resources.resource_type.updated","resources.resource_type.deleted","resources.comment.created","resources.comment.updated","resources.comment.deleted","resources.activity.created","resources.activity.updated","resources.activity.deleted","resources.resource_tag_assignment.created","resources.resource_tag_assignment.updated","resources.resource_tag_assignment.deleted"],"eventsConsumed":[],"env":[],"hosts":[],"tables":["resources_resource_types","resources_resources","resources_resource_comments","resources_resource_activities","resources_resource_tags","resources_resource_tag_assignments"],"publicRoutes":[],"credentials":[]},"callout":"ADDS 6 TABLES · 2 PERMISSIONS · EMITS 15 EVENTS","diff":null},"install":"yarn mercato module enable @open-mercato/core --module resources","page":"/built-in/resources"},{"id":"sales","title":"Sales Management","description":"Quoting, ordering, fulfillment, and billing capabilities built on modular pricing and tax pipelines.","category":"orders-checkout","wedge":"sell","requires":["catalog","customers","dictionaries"],"requiresCore":["catalog","customers","dictionaries"],"inPresets":["0.8","0.9","next"],"anatomy":{"version":"0.9.0","coverage":"partial","counts":{"entities":27,"tables":27,"migrations":0,"routes":null,"publicRoutes":null,"aclFeatures":19,"eventsEmitted":44,"eventsConsumed":4,"backendPages":13,"frontendPages":1,"widgets":4,"workers":0,"cli":7,"aiTools":0,"aiAgents":0,"extends":32},"lists":{"aclFeatures":["sales.orders.view","sales.orders.manage","sales.orders.approve","sales.widgets.new-orders","sales.widgets.new-quotes","sales.quotes.view","sales.quotes.manage","sales.documents.number.edit","sales.shipments.manage","sales.payments.manage","sales.returns.view","sales.returns.create","sales.returns.manage","sales.invoices.manage","sales.credit_memos.manage","sales.channels.view","sales.channels.manage","sales.settings.view","sales.settings.manage"],"eventsEmitted":["sales.order.created","sales.order.updated","sales.order.deleted","sales.order.confirmed","sales.order.cancelled","sales.quote.created","sales.quote.updated","sales.quote.deleted","sales.quote.expiring","sales.invoice.created","sales.invoice.updated","sales.invoice.deleted","sales.credit_memo.created","sales.credit_memo.updated","sales.credit_memo.deleted","sales.line.created","sales.line.updated","sales.line.deleted","sales.payment.created","sales.payment.updated"],"eventsConsumed":["sales.quote.expiring","customers.address.deleted","customers.company.deleted","customers.person.deleted"],"env":[],"hosts":[],"tables":["sales_channels","sales_shipping_methods","sales_delivery_windows","sales_payment_methods","sales_tax_rates","sales_orders","sales_order_lines","sales_order_adjustments","sales_settings","sales_document_sequences","sales_quotes","sales_quote_lines","sales_quote_adjustments","sales_shipments","sales_shipment_items","sales_returns","sales_return_lines","sales_invoices","sales_invoice_lines","sales_credit_memos"],"publicRoutes":[],"credentials":[]},"callout":"ADDS 27 TABLES · 19 PERMISSIONS · EMITS 44 EVENTS","diff":null},"install":"yarn mercato module enable @open-mercato/core --module sales","page":"/built-in/sales"},{"id":"seeds","title":"Seeds","description":"Encrypted data seeding: encrypt confidential seed files for the repo and load them into a tenant on setup.","category":"devtools","wedge":"platform","requires":[],"inPresets":[],"anatomy":{"version":"0.9.0","coverage":"partial","counts":{"entities":0,"tables":0,"migrations":0,"routes":null,"publicRoutes":null,"aclFeatures":0,"eventsEmitted":0,"eventsConsumed":0,"backendPages":0,"frontendPages":0,"widgets":0,"workers":0,"cli":4,"aiTools":0,"aiAgents":0,"extends":0},"lists":{"aclFeatures":[],"eventsEmitted":[],"eventsConsumed":[],"env":[],"hosts":[],"tables":[],"publicRoutes":[],"credentials":[]},"callout":"FEW CONTRACTS","diff":null},"install":"yarn mercato module enable @open-mercato/core --module seeds","page":"/built-in/seeds"},{"id":"shipping_carriers","title":"Shipping Carriers","description":"Shipping carrier adapter hub with rates, shipment creation, tracking, and webhooks.","category":"warehouse-shipping","wedge":"operate","requires":[],"inPresets":["0.8","0.9","next"],"anatomy":{"version":"0.9.0","coverage":"partial","counts":{"entities":3,"tables":3,"migrations":0,"routes":null,"publicRoutes":null,"aclFeatures":2,"eventsEmitted":7,"eventsConsumed":0,"backendPages":1,"frontendPages":0,"widgets":0,"workers":2,"cli":0,"aiTools":0,"aiAgents":0,"extends":4},"lists":{"aclFeatures":["shipping_carriers.view","shipping_carriers.manage"],"eventsEmitted":["shipping_carriers.shipment.created","shipping_carriers.shipment.status_changed","shipping_carriers.shipment.delivered","shipping_carriers.shipment.returned","shipping_carriers.shipment.cancelled","shipping_carriers.webhook.received","shipping_carriers.webhook.failed"],"eventsConsumed":[],"env":[],"hosts":[],"tables":["carrier_shipments","carrier_webhook_events","carrier_shipment_idempotency_keys"],"publicRoutes":[],"credentials":[]},"callout":"ADDS 3 TABLES · 2 PERMISSIONS · EMITS 7 EVENTS","diff":null},"install":"yarn mercato module enable @open-mercato/core --module shipping_carriers","page":"/built-in/shipping_carriers"},{"id":"staff","title":"Employees","description":"Teams, roles, and employee rosters.","category":"operations","wedge":"operate","requires":["planner","resources"],"requiresCore":["planner","resources"],"inPresets":["0.8","0.9","next"],"anatomy":{"version":"0.9.0","coverage":"partial","counts":{"entities":22,"tables":22,"migrations":0,"routes":null,"publicRoutes":null,"aclFeatures":23,"eventsEmitted":69,"eventsConsumed":3,"backendPages":35,"frontendPages":2,"widgets":3,"workers":1,"cli":7,"aiTools":6,"aiAgents":1,"extends":27},"lists":{"aclFeatures":["staff.view","staff.manage_team","staff.leave_requests.send","staff.leave_requests.manage","staff.my_availability.view","staff.my_availability.manage","staff.my_availability.unavailability","staff.my_leave_requests.view","staff.my_leave_requests.send","staff.timesheets.view","staff.timesheets.manage_own","staff.timesheets.manage_all","staff.timesheets.projects.view","staff.timesheets.projects.manage","staff.timesheets.approve","staff.timesheets.lock","staff.timesheets.tasks.view","staff.timesheets.tasks.manage","staff.timesheets.reports.view","staff.timesheets.reports.manage"],"eventsEmitted":["staff.team.created","staff.team.updated","staff.team.deleted","staff.team_role.created","staff.team_role.updated","staff.team_role.deleted","staff.team_member.created","staff.team_member.updated","staff.team_member.deleted","staff.leave_request.created","staff.leave_request.updated","staff.leave_request.deleted","staff.address.created","staff.address.updated","staff.address.deleted","staff.comment.created","staff.comment.updated","staff.comment.deleted","staff.activity.created","staff.activity.updated"],"eventsConsumed":["staff.timesheets.project_access.requested","staff.timesheets.time_entry.*","staff.timesheets.time_report.closed"],"env":[],"hosts":[],"tables":["staff_teams","staff_team_roles","staff_team_members","staff_leave_requests","staff_team_member_comments","staff_team_member_activities","staff_team_member_job_histories","staff_team_member_addresses","staff_time_entries","staff_time_entry_segments","staff_time_projects","staff_time_project_members","staff_time_task_statuses","staff_time_tasks","staff_time_task_comments","staff_time_tags","staff_time_task_tags","staff_time_entry_tags","staff_time_reports","staff_time_report_projects"],"publicRoutes":[],"credentials":[]},"callout":"ADDS 22 TABLES · 23 PERMISSIONS · EMITS 69 EVENTS","diff":null},"install":"yarn mercato module enable @open-mercato/core --module staff","page":"/built-in/staff"},{"id":"sync_excel","title":"Excel / CSV Import","description":"File-upload-based CSV import foundation built on top of the data sync hub.","category":"integrations-sync","wedge":"connect","requires":[],"inPresets":["0.8","0.9","next"],"anatomy":{"version":"0.9.0","coverage":"partial","counts":{"entities":1,"tables":1,"migrations":0,"routes":null,"publicRoutes":null,"aclFeatures":2,"eventsEmitted":0,"eventsConsumed":0,"backendPages":0,"frontendPages":0,"widgets":0,"workers":0,"cli":0,"aiTools":0,"aiAgents":0,"extends":1},"lists":{"aclFeatures":["sync_excel.view","sync_excel.run"],"eventsEmitted":[],"eventsConsumed":[],"env":[],"hosts":[],"tables":["sync_excel_uploads"],"publicRoutes":[],"credentials":[]},"callout":"ADDS 1 TABLE · 2 PERMISSIONS","diff":null},"install":"yarn mercato module enable @open-mercato/core --module sync_excel","page":"/built-in/sync_excel"},{"id":"translations","title":"Entity Translations","description":"System-wide entity translation storage and locale overlay for CRUD responses.","category":"localization-compliance","wedge":"money","requires":[],"inPresets":["0.8","0.9","next"],"anatomy":{"version":"0.9.0","coverage":"partial","counts":{"entities":1,"tables":1,"migrations":0,"routes":null,"publicRoutes":null,"aclFeatures":3,"eventsEmitted":2,"eventsConsumed":3,"backendPages":1,"frontendPages":0,"widgets":0,"workers":0,"cli":0,"aiTools":0,"aiAgents":0,"extends":0},"lists":{"aclFeatures":["translations.view","translations.manage","translations.manage_locales"],"eventsEmitted":["translations.translation.updated","translations.translation.deleted"],"eventsConsumed":["translations.translation.updated","translations.translation.deleted","query_index.delete_one"],"env":[],"hosts":[],"tables":["entity_translations"],"publicRoutes":[],"credentials":[]},"callout":"ADDS 1 TABLE · 3 PERMISSIONS · EMITS 2 EVENTS","diff":null},"install":"yarn mercato module enable @open-mercato/core --module translations","page":"/built-in/translations"},{"id":"warranty_claims","title":"Warranty & RMA","description":"Warranty, return, core-return, and vendor-recovery claims desk.","category":"operations","wedge":"operate","requires":[],"inPresets":["0.8","0.9","next"],"anatomy":{"version":"0.9.0","coverage":"partial","counts":{"entities":9,"tables":9,"migrations":0,"routes":null,"publicRoutes":null,"aclFeatures":12,"eventsEmitted":14,"eventsConsumed":7,"backendPages":14,"frontendPages":3,"widgets":4,"workers":1,"cli":0,"aiTools":8,"aiAgents":1,"extends":22},"lists":{"aclFeatures":["warranty_claims.claim.view","warranty_claims.claim.create","warranty_claims.claim.manage","warranty_claims.claim.delete","warranty_claims.settings.manage","warranty_claims.external.submit","warranty_claims.external.view","warranty_claims.registration.view","warranty_claims.registration.manage","warranty_claims.vendor_policy.manage","warranty_claims.troubleshooting.manage","warranty_claims.receiving.manage"],"eventsEmitted":["warranty_claims.claim.created","warranty_claims.claim.updated","warranty_claims.claim.deleted","warranty_claims.claim.submitted","warranty_claims.claim.status_changed","warranty_claims.claim.portal_status_changed","warranty_claims.claim.assigned","warranty_claims.claim.comment_added","warranty_claims.claim.sla_at_risk","warranty_claims.claim.sla_breached","warranty_claims.claim.escalated","warranty_claims.registration.created","warranty_claims.claim_line.quarantined","warranty_claims.claim.return_label_created"],"eventsConsumed":["warranty_claims.claim.status_changed","warranty_claims.claim.assigned","warranty_claims.claim.comment_added","warranty_claims.claim.submitted","inbox_ops.email.received","shipping_carriers.shipment.delivered","warranty_claims.claim.updated"],"env":[],"hosts":[],"tables":["warranty_claims","warranty_claim_settings","warranty_claim_lines","warranty_claim_registrations","warranty_claim_vendor_policies","warranty_claim_troubleshooting_guides","warranty_claim_events","warranty_claim_sla_signals","warranty_claim_sequences"],"publicRoutes":[],"credentials":[]},"callout":"ADDS 9 TABLES · 12 PERMISSIONS · EMITS 14 EVENTS","diff":null},"install":"yarn mercato module enable @open-mercato/core --module warranty_claims","page":"/built-in/warranty_claims"},{"id":"wms","title":"Warehouse Management System","description":"Warehouse topology, inventory balances, reservations, and movement ledger.","category":"warehouse-shipping","wedge":"operate","requires":["catalog","sales","feature_toggles"],"requiresCore":["catalog","sales","feature_toggles"],"inPresets":["0.8","0.9","next"],"anatomy":{"version":"0.9.0","coverage":"partial","counts":{"entities":9,"tables":9,"migrations":0,"routes":null,"publicRoutes":null,"aclFeatures":10,"eventsEmitted":27,"eventsConsumed":14,"backendPages":12,"frontendPages":0,"widgets":1,"workers":0,"cli":1,"aiTools":0,"aiAgents":0,"extends":16},"lists":{"aclFeatures":["wms.view","wms.manage_warehouses","wms.manage_zones","wms.manage_locations","wms.manage_inventory","wms.manage_reservations","wms.adjust_inventory","wms.receive_inventory","wms.cycle_count","wms.import"],"eventsEmitted":["wms.warehouse.created","wms.warehouse.updated","wms.zone.created","wms.zone.updated","wms.location.created","wms.location.updated","wms.inventory_profile.created","wms.inventory_profile.updated","wms.inventory_balance.created","wms.inventory_balance.updated","wms.inventory_balance.deleted","wms.inventory_reservation.created","wms.inventory_reservation.updated","wms.inventory_reservation.deleted","wms.inventory_movement.created","wms.inventory_movement.updated","wms.inventory_movement.deleted","wms.inventory.received","wms.inventory.adjusted","wms.inventory.reserved"],"eventsConsumed":["wms.inventory_balance.*","availability.policy.*","wms.inventory_profile.*","wms.inventory.*","wms.inventory_movement.*","wms.inventory_reservation.*","sales.line.*","sales.order.*","catalog.variant.*","wms.warehouse.*","wms.inventory.low_stock","wms.inventory.reservation_shortfall","sales.order.cancelled","sales.order.confirmed"],"env":[],"hosts":[],"tables":["wms_warehouses","wms_warehouse_zones","wms_warehouse_locations","wms_product_inventory_profiles","wms_inventory_lots","wms_inventory_balances","wms_inventory_reservations","wms_sales_order_warehouse_assignments","wms_inventory_movements"],"publicRoutes":[],"credentials":[]},"callout":"ADDS 9 TABLES · 10 PERMISSIONS · EMITS 27 EVENTS","diff":null},"install":"yarn mercato module enable @open-mercato/core --module wms","page":"/built-in/wms"},{"id":"workflows","title":"Workflow Engine","description":"Orchestrate business processes with state machines, transitions, and activities","category":"ai-automation","wedge":"think","requires":[],"inPresets":["0.8","0.9","next"],"anatomy":{"version":"0.9.0","coverage":"partial","counts":{"entities":9,"tables":9,"migrations":0,"routes":null,"publicRoutes":null,"aclFeatures":28,"eventsEmitted":32,"eventsConsumed":3,"backendPages":13,"frontendPages":3,"widgets":5,"workers":4,"cli":8,"aiTools":7,"aiAgents":0,"extends":18},"lists":{"aclFeatures":["workflows.view","workflows.manage","workflows.view_logs","workflows.view_tasks","workflows.definitions.view","workflows.definitions.create","workflows.definitions.edit","workflows.definitions.delete","workflows.definitions.grant_features","workflows.definitions.test_run","workflows.definitions.publish","workflows.instances.view","workflows.instances.create","workflows.instances.cancel","workflows.instances.retry","workflows.instances.signal","workflows.instances.update_context","workflows.instances.rerun_step","workflows.instances.bulk_ops","workflows.tasks.view"],"eventsEmitted":["workflows.definition.created","workflows.definition.updated","workflows.definition.deleted","workflows.definition.customized","workflows.definition.reset_to_code","workflows.definition.published","workflows.instance.created","workflows.instance.updated","workflows.instance.deleted","workflows.instance.started","workflows.instance.completed","workflows.instance.failed","workflows.instance.cancelled","workflows.instance.paused","workflows.instance.resumed","workflows.instance.milestone_reached","workflows.task.assigned","workflows.task.reminder_due","workflows.task.deadline_breached","workflows.task.portal_assigned"],"eventsConsumed":["workflows.task.assigned","workflows.task.deadline_breached","workflows.task.reminder_due"],"env":[],"hosts":[],"tables":["workflow_definitions","workflow_definition_drafts","workflow_instances","workflow_branch_instances","step_instances","user_tasks","workflow_events","workflow_event_triggers","workflow_definition_metric_rollups"],"publicRoutes":[],"credentials":[]},"callout":"ADDS 9 TABLES · 28 PERMISSIONS · EMITS 32 EVENTS","diff":null},"install":"yarn mercato module enable @open-mercato/core --module workflows","page":"/built-in/workflows"}]}
