@open-mercato/cli 0.6.8-develop.6961.1.5b7ca407e7 → 0.6.8-develop.6962.1.bd029a2bb2
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.
- package/build.mjs +16 -7
- package/dist/agentic/guides/architecture.md +2 -2
- package/dist/agentic/guides/extensions.md +1 -1
- package/dist/agentic/guides/module-facts.json +112 -112
- package/dist/agentic/guides/module-facts.v2.json +112 -112
- package/dist/agentic/guides/module-system.md +1 -1
- package/dist/agentic/guides/modules/ai_assistant/acl-features.md +18 -0
- package/dist/agentic/guides/modules/ai_assistant/ai-tools-mcp-capabilities.md +18 -0
- package/dist/agentic/guides/modules/ai_assistant/backend-pages.md +18 -0
- package/dist/agentic/guides/modules/ai_assistant/cli-commands.md +19 -0
- package/dist/agentic/guides/modules/ai_assistant/contribution-resolutions.md +22 -0
- package/dist/agentic/guides/modules/ai_assistant/di-registrations-rich.md +12 -0
- package/dist/agentic/guides/modules/ai_assistant/di-service-tokens.md +11 -0
- package/dist/agentic/guides/modules/ai_assistant/entities.md +21 -0
- package/dist/agentic/guides/modules/ai_assistant/events.md +17 -0
- package/dist/agentic/guides/modules/ai_assistant/exact-override-targets.md +51 -0
- package/dist/agentic/guides/modules/ai_assistant/index.md +27 -0
- package/dist/agentic/guides/modules/ai_assistant/notifications.md +11 -0
- package/dist/agentic/guides/modules/ai_assistant/owned-contract-module-metadata.md +11 -0
- package/dist/agentic/guides/modules/ai_assistant/setup.md +11 -0
- package/dist/agentic/guides/modules/ai_assistant/umes-contributions.md +22 -0
- package/dist/agentic/guides/modules/ai_assistant/umes-hosts.md +28 -0
- package/dist/agentic/guides/modules/ai_assistant/workers.md +12 -0
- package/dist/agentic/guides/modules/api_docs/backend-pages.md +11 -0
- package/dist/agentic/guides/modules/api_docs/exact-override-targets.md +12 -0
- package/dist/agentic/guides/modules/api_docs/frontend-pages.md +11 -0
- package/dist/agentic/guides/modules/api_docs/index.md +15 -0
- package/dist/agentic/guides/modules/api_docs/owned-contract-module-metadata.md +11 -0
- package/dist/agentic/guides/modules/api_keys/acl-features.md +13 -0
- package/dist/agentic/guides/modules/api_keys/backend-pages.md +12 -0
- package/dist/agentic/guides/modules/api_keys/cli-commands.md +11 -0
- package/dist/agentic/guides/modules/api_keys/entities.md +11 -0
- package/dist/agentic/guides/modules/api_keys/exact-override-targets.md +17 -0
- package/dist/agentic/guides/modules/api_keys/host-extension-points.md +10 -0
- package/dist/agentic/guides/modules/api_keys/index.md +21 -0
- package/dist/agentic/guides/modules/api_keys/owned-contract-module-metadata.md +11 -0
- package/dist/agentic/guides/modules/api_keys/setup.md +11 -0
- package/dist/agentic/guides/modules/api_keys/umes-diagnostics.md +9 -0
- package/dist/agentic/guides/modules/api_keys/umes-hosts.md +20 -0
- package/dist/agentic/guides/modules/attachments/acl-features.md +12 -0
- package/dist/agentic/guides/modules/attachments/backend-pages.md +12 -0
- package/dist/agentic/guides/modules/attachments/cli-commands.md +11 -0
- package/dist/agentic/guides/modules/attachments/custom-entities.md +11 -0
- package/dist/agentic/guides/modules/attachments/di-registrations-rich.md +13 -0
- package/dist/agentic/guides/modules/attachments/di-service-tokens.md +12 -0
- package/dist/agentic/guides/modules/attachments/entities.md +13 -0
- package/dist/agentic/guides/modules/attachments/events.md +13 -0
- package/dist/agentic/guides/modules/attachments/exact-override-targets.md +20 -0
- package/dist/agentic/guides/modules/attachments/incoming-installed-contributions.md +12 -0
- package/dist/agentic/guides/modules/attachments/index.md +25 -0
- package/dist/agentic/guides/modules/attachments/owned-contract-module-metadata.md +11 -0
- package/dist/agentic/guides/modules/attachments/setup.md +11 -0
- package/dist/agentic/guides/modules/attachments/umes-hosts.md +16 -0
- package/dist/agentic/guides/modules/attachments/workers.md +11 -0
- package/dist/agentic/guides/modules/audit_logs/acl-features.md +16 -0
- package/dist/agentic/guides/modules/audit_logs/backend-pages.md +11 -0
- package/dist/agentic/guides/modules/audit_logs/cli-commands.md +11 -0
- package/dist/agentic/guides/modules/audit_logs/di-registrations-rich.md +12 -0
- package/dist/agentic/guides/modules/audit_logs/di-service-tokens.md +12 -0
- package/dist/agentic/guides/modules/audit_logs/encryption.md +12 -0
- package/dist/agentic/guides/modules/audit_logs/entities.md +12 -0
- package/dist/agentic/guides/modules/audit_logs/exact-override-targets.md +23 -0
- package/dist/agentic/guides/modules/audit_logs/host-extension-points.md +10 -0
- package/dist/agentic/guides/modules/audit_logs/index.md +24 -0
- package/dist/agentic/guides/modules/audit_logs/owned-contract-module-metadata.md +11 -0
- package/dist/agentic/guides/modules/audit_logs/setup.md +11 -0
- package/dist/agentic/guides/modules/audit_logs/umes-diagnostics.md +10 -0
- package/dist/agentic/guides/modules/audit_logs/umes-hosts.md +30 -0
- package/dist/agentic/guides/modules/auth/acl-features.md +18 -0
- package/dist/agentic/guides/modules/auth/active-extension-bindings.md +13 -0
- package/dist/agentic/guides/modules/auth/backend-pages.md +21 -0
- package/dist/agentic/guides/modules/auth/cli-commands.md +20 -0
- package/dist/agentic/guides/modules/auth/contribution-resolutions.md +16 -0
- package/dist/agentic/guides/modules/auth/di-registrations-rich.md +12 -0
- package/dist/agentic/guides/modules/auth/di-service-tokens.md +12 -0
- package/dist/agentic/guides/modules/auth/domain-commands.md +16 -0
- package/dist/agentic/guides/modules/auth/encryption.md +12 -0
- package/dist/agentic/guides/modules/auth/entities.md +21 -0
- package/dist/agentic/guides/modules/auth/events.md +22 -0
- package/dist/agentic/guides/modules/auth/exact-override-targets.md +53 -0
- package/dist/agentic/guides/modules/auth/frontend-pages.md +13 -0
- package/dist/agentic/guides/modules/auth/host-extension-points.md +10 -0
- package/dist/agentic/guides/modules/auth/incoming-installed-contributions.md +17 -0
- package/dist/agentic/guides/modules/auth/index.md +32 -0
- package/dist/agentic/guides/modules/auth/notifications.md +16 -0
- package/dist/agentic/guides/modules/auth/owned-contract-module-metadata.md +11 -0
- package/dist/agentic/guides/modules/auth/setup.md +11 -0
- package/dist/agentic/guides/modules/auth/umes-contributions.md +16 -0
- package/dist/agentic/guides/modules/auth/umes-diagnostics.md +10 -0
- package/dist/agentic/guides/modules/auth/umes-hosts.md +53 -0
- package/dist/agentic/guides/modules/business_rules/acl-features.md +15 -0
- package/dist/agentic/guides/modules/business_rules/backend-pages.md +18 -0
- package/dist/agentic/guides/modules/business_rules/cli-commands.md +11 -0
- package/dist/agentic/guides/modules/business_rules/contribution-resolutions.md +13 -0
- package/dist/agentic/guides/modules/business_rules/di-registrations-rich.md +13 -0
- package/dist/agentic/guides/modules/business_rules/di-service-tokens.md +13 -0
- package/dist/agentic/guides/modules/business_rules/entities.md +14 -0
- package/dist/agentic/guides/modules/business_rules/events.md +11 -0
- package/dist/agentic/guides/modules/business_rules/exact-override-targets.md +31 -0
- package/dist/agentic/guides/modules/business_rules/host-extension-points.md +10 -0
- package/dist/agentic/guides/modules/business_rules/index.md +27 -0
- package/dist/agentic/guides/modules/business_rules/notifications.md +11 -0
- package/dist/agentic/guides/modules/business_rules/owned-contract-module-metadata.md +11 -0
- package/dist/agentic/guides/modules/business_rules/setup.md +11 -0
- package/dist/agentic/guides/modules/business_rules/umes-contributions.md +13 -0
- package/dist/agentic/guides/modules/business_rules/umes-diagnostics.md +9 -0
- package/dist/agentic/guides/modules/business_rules/umes-hosts.md +24 -0
- package/dist/agentic/guides/modules/catalog/acl-features.md +17 -0
- package/dist/agentic/guides/modules/catalog/active-extension-bindings.md +23 -0
- package/dist/agentic/guides/modules/catalog/ai-agents.md +12 -0
- package/dist/agentic/guides/modules/catalog/ai-tools-mcp-capabilities.md +39 -0
- package/dist/agentic/guides/modules/catalog/backend-pages.md +19 -0
- package/dist/agentic/guides/modules/catalog/cli-commands.md +14 -0
- package/dist/agentic/guides/modules/catalog/contribution-resolutions.md +58 -0
- package/dist/agentic/guides/modules/catalog/custom-entities.md +13 -0
- package/dist/agentic/guides/modules/catalog/di-registrations-rich.md +13 -0
- package/dist/agentic/guides/modules/catalog/di-service-tokens.md +11 -0
- package/dist/agentic/guides/modules/catalog/domain-commands.md +34 -0
- package/dist/agentic/guides/modules/catalog/entities.md +22 -0
- package/dist/agentic/guides/modules/catalog/events.md +28 -0
- package/dist/agentic/guides/modules/catalog/exact-override-targets.md +73 -0
- package/dist/agentic/guides/modules/catalog/host-extension-points.md +10 -0
- package/dist/agentic/guides/modules/catalog/incoming-installed-contributions.md +19 -0
- package/dist/agentic/guides/modules/catalog/index.md +35 -0
- package/dist/agentic/guides/modules/catalog/notifications.md +11 -0
- package/dist/agentic/guides/modules/catalog/owned-contract-module-metadata.md +11 -0
- package/dist/agentic/guides/modules/catalog/search-entities.md +18 -0
- package/dist/agentic/guides/modules/catalog/setup.md +11 -0
- package/dist/agentic/guides/modules/catalog/umes-contributions.md +58 -0
- package/dist/agentic/guides/modules/catalog/umes-diagnostics.md +17 -0
- package/dist/agentic/guides/modules/catalog/umes-hosts.md +79 -0
- package/dist/agentic/guides/modules/catalog/workers.md +11 -0
- package/dist/agentic/guides/modules/channel_gmail/acl-features.md +12 -0
- package/dist/agentic/guides/modules/channel_gmail/contribution-resolutions.md +12 -0
- package/dist/agentic/guides/modules/channel_gmail/di-registrations-rich.md +12 -0
- package/dist/agentic/guides/modules/channel_gmail/exact-override-targets.md +17 -0
- package/dist/agentic/guides/modules/channel_gmail/index.md +18 -0
- package/dist/agentic/guides/modules/channel_gmail/owned-contract-module-metadata.md +11 -0
- package/dist/agentic/guides/modules/channel_gmail/setup.md +11 -0
- package/dist/agentic/guides/modules/channel_gmail/umes-contributions.md +12 -0
- package/dist/agentic/guides/modules/channel_imap/acl-features.md +12 -0
- package/dist/agentic/guides/modules/channel_imap/contribution-resolutions.md +12 -0
- package/dist/agentic/guides/modules/channel_imap/di-registrations-rich.md +12 -0
- package/dist/agentic/guides/modules/channel_imap/exact-override-targets.md +17 -0
- package/dist/agentic/guides/modules/channel_imap/index.md +18 -0
- package/dist/agentic/guides/modules/channel_imap/owned-contract-module-metadata.md +11 -0
- package/dist/agentic/guides/modules/channel_imap/setup.md +11 -0
- package/dist/agentic/guides/modules/channel_imap/umes-contributions.md +12 -0
- package/dist/agentic/guides/modules/checkout/acl-features.md +16 -0
- package/dist/agentic/guides/modules/checkout/backend-pages.md +20 -0
- package/dist/agentic/guides/modules/checkout/contribution-resolutions.md +29 -0
- package/dist/agentic/guides/modules/checkout/domain-commands.md +18 -0
- package/dist/agentic/guides/modules/checkout/encryption.md +13 -0
- package/dist/agentic/guides/modules/checkout/entities.md +13 -0
- package/dist/agentic/guides/modules/checkout/events.md +26 -0
- package/dist/agentic/guides/modules/checkout/exact-override-targets.md +51 -0
- package/dist/agentic/guides/modules/checkout/frontend-pages.md +13 -0
- package/dist/agentic/guides/modules/checkout/host-extension-points.md +10 -0
- package/dist/agentic/guides/modules/checkout/index.md +28 -0
- package/dist/agentic/guides/modules/checkout/notifications.md +13 -0
- package/dist/agentic/guides/modules/checkout/owned-contract-module-metadata.md +11 -0
- package/dist/agentic/guides/modules/checkout/setup.md +11 -0
- package/dist/agentic/guides/modules/checkout/umes-contributions.md +29 -0
- package/dist/agentic/guides/modules/checkout/umes-diagnostics.md +11 -0
- package/dist/agentic/guides/modules/checkout/umes-hosts.md +92 -0
- package/dist/agentic/guides/modules/checkout/workers.md +12 -0
- package/dist/agentic/guides/modules/communication_channels/acl-features.md +18 -0
- package/dist/agentic/guides/modules/communication_channels/active-extension-bindings.md +11 -0
- package/dist/agentic/guides/modules/communication_channels/backend-pages.md +13 -0
- package/dist/agentic/guides/modules/communication_channels/contribution-resolutions.md +42 -0
- package/dist/agentic/guides/modules/communication_channels/di-registrations-rich.md +18 -0
- package/dist/agentic/guides/modules/communication_channels/domain-commands.md +19 -0
- package/dist/agentic/guides/modules/communication_channels/encryption.md +11 -0
- package/dist/agentic/guides/modules/communication_channels/entities.md +18 -0
- package/dist/agentic/guides/modules/communication_channels/events.md +26 -0
- package/dist/agentic/guides/modules/communication_channels/exact-override-targets.md +54 -0
- package/dist/agentic/guides/modules/communication_channels/host-extension-points.md +10 -0
- package/dist/agentic/guides/modules/communication_channels/incoming-installed-contributions.md +14 -0
- package/dist/agentic/guides/modules/communication_channels/index.md +30 -0
- package/dist/agentic/guides/modules/communication_channels/notifications.md +12 -0
- package/dist/agentic/guides/modules/communication_channels/owned-contract-module-metadata.md +11 -0
- package/dist/agentic/guides/modules/communication_channels/setup.md +11 -0
- package/dist/agentic/guides/modules/communication_channels/umes-contributions.md +42 -0
- package/dist/agentic/guides/modules/communication_channels/umes-diagnostics.md +10 -0
- package/dist/agentic/guides/modules/communication_channels/umes-hosts.md +53 -0
- package/dist/agentic/guides/modules/communication_channels/workers.md +18 -0
- package/dist/agentic/guides/modules/configs/acl-features.md +14 -0
- package/dist/agentic/guides/modules/configs/active-extension-bindings.md +12 -0
- package/dist/agentic/guides/modules/configs/backend-pages.md +13 -0
- package/dist/agentic/guides/modules/configs/cli-commands.md +13 -0
- package/dist/agentic/guides/modules/configs/di-registrations-rich.md +11 -0
- package/dist/agentic/guides/modules/configs/entities.md +12 -0
- package/dist/agentic/guides/modules/configs/exact-override-targets.md +22 -0
- package/dist/agentic/guides/modules/configs/incoming-installed-contributions.md +11 -0
- package/dist/agentic/guides/modules/configs/index.md +22 -0
- package/dist/agentic/guides/modules/configs/owned-contract-module-metadata.md +11 -0
- package/dist/agentic/guides/modules/configs/setup.md +11 -0
- package/dist/agentic/guides/modules/configs/umes-hosts.md +13 -0
- package/dist/agentic/guides/modules/content/exact-override-targets.md +12 -0
- package/dist/agentic/guides/modules/content/frontend-pages.md +12 -0
- package/dist/agentic/guides/modules/content/index.md +14 -0
- package/dist/agentic/guides/modules/content/owned-contract-module-metadata.md +11 -0
- package/dist/agentic/guides/modules/currencies/acl-features.md +16 -0
- package/dist/agentic/guides/modules/currencies/backend-pages.md +17 -0
- package/dist/agentic/guides/modules/currencies/cli-commands.md +13 -0
- package/dist/agentic/guides/modules/currencies/domain-commands.md +16 -0
- package/dist/agentic/guides/modules/currencies/entities.md +13 -0
- package/dist/agentic/guides/modules/currencies/events.md +16 -0
- package/dist/agentic/guides/modules/currencies/exact-override-targets.md +28 -0
- package/dist/agentic/guides/modules/currencies/host-extension-points.md +10 -0
- package/dist/agentic/guides/modules/currencies/index.md +23 -0
- package/dist/agentic/guides/modules/currencies/owned-contract-module-metadata.md +11 -0
- package/dist/agentic/guides/modules/currencies/setup.md +11 -0
- package/dist/agentic/guides/modules/currencies/umes-diagnostics.md +10 -0
- package/dist/agentic/guides/modules/currencies/umes-hosts.md +37 -0
- package/dist/agentic/guides/modules/customer_accounts/acl-features.md +15 -0
- package/dist/agentic/guides/modules/customer_accounts/active-extension-bindings.md +12 -0
- package/dist/agentic/guides/modules/customer_accounts/backend-pages.md +17 -0
- package/dist/agentic/guides/modules/customer_accounts/contribution-resolutions.md +59 -0
- package/dist/agentic/guides/modules/customer_accounts/custom-entities.md +12 -0
- package/dist/agentic/guides/modules/customer_accounts/di-registrations-rich.md +16 -0
- package/dist/agentic/guides/modules/customer_accounts/di-service-tokens.md +16 -0
- package/dist/agentic/guides/modules/customer_accounts/encryption.md +13 -0
- package/dist/agentic/guides/modules/customer_accounts/entities.md +20 -0
- package/dist/agentic/guides/modules/customer_accounts/events.md +35 -0
- package/dist/agentic/guides/modules/customer_accounts/exact-override-targets.md +64 -0
- package/dist/agentic/guides/modules/customer_accounts/host-extension-points.md +10 -0
- package/dist/agentic/guides/modules/customer_accounts/index.md +31 -0
- package/dist/agentic/guides/modules/customer_accounts/notifications.md +16 -0
- package/dist/agentic/guides/modules/customer_accounts/owned-contract-module-metadata.md +11 -0
- package/dist/agentic/guides/modules/customer_accounts/search-entities.md +12 -0
- package/dist/agentic/guides/modules/customer_accounts/setup.md +11 -0
- package/dist/agentic/guides/modules/customer_accounts/umes-contributions.md +59 -0
- package/dist/agentic/guides/modules/customer_accounts/umes-diagnostics.md +10 -0
- package/dist/agentic/guides/modules/customer_accounts/umes-hosts.md +69 -0
- package/dist/agentic/guides/modules/customer_accounts/workers.md +14 -0
- package/dist/agentic/guides/modules/customers/acl-features.md +31 -0
- package/dist/agentic/guides/modules/customers/active-extension-bindings.md +37 -0
- package/dist/agentic/guides/modules/customers/ai-agents.md +13 -0
- package/dist/agentic/guides/modules/customers/ai-tools-mcp-capabilities.md +30 -0
- package/dist/agentic/guides/modules/customers/backend-pages.md +28 -0
- package/dist/agentic/guides/modules/customers/cli-commands.md +14 -0
- package/dist/agentic/guides/modules/customers/contribution-resolutions.md +63 -0
- package/dist/agentic/guides/modules/customers/custom-entities.md +15 -0
- package/dist/agentic/guides/modules/customers/di-registrations-rich.md +13 -0
- package/dist/agentic/guides/modules/customers/domain-commands.md +64 -0
- package/dist/agentic/guides/modules/customers/encryption.md +18 -0
- package/dist/agentic/guides/modules/customers/entities.md +35 -0
- package/dist/agentic/guides/modules/customers/events.md +59 -0
- package/dist/agentic/guides/modules/customers/exact-override-targets.md +108 -0
- package/dist/agentic/guides/modules/customers/host-extension-points.md +10 -0
- package/dist/agentic/guides/modules/customers/incoming-installed-contributions.md +23 -0
- package/dist/agentic/guides/modules/customers/index.md +35 -0
- package/dist/agentic/guides/modules/customers/notifications.md +12 -0
- package/dist/agentic/guides/modules/customers/owned-contract-module-metadata.md +11 -0
- package/dist/agentic/guides/modules/customers/search-entities.md +16 -0
- package/dist/agentic/guides/modules/customers/setup.md +11 -0
- package/dist/agentic/guides/modules/customers/umes-contributions.md +63 -0
- package/dist/agentic/guides/modules/customers/umes-diagnostics.md +33 -0
- package/dist/agentic/guides/modules/customers/umes-hosts.md +166 -0
- package/dist/agentic/guides/modules/customers/workers.md +12 -0
- package/dist/agentic/guides/modules/dashboards/acl-features.md +14 -0
- package/dist/agentic/guides/modules/dashboards/active-extension-bindings.md +24 -0
- package/dist/agentic/guides/modules/dashboards/cli-commands.md +14 -0
- package/dist/agentic/guides/modules/dashboards/contribution-resolutions.md +21 -0
- package/dist/agentic/guides/modules/dashboards/di-registrations-rich.md +11 -0
- package/dist/agentic/guides/modules/dashboards/di-service-tokens.md +11 -0
- package/dist/agentic/guides/modules/dashboards/entities.md +13 -0
- package/dist/agentic/guides/modules/dashboards/exact-override-targets.md +33 -0
- package/dist/agentic/guides/modules/dashboards/incoming-installed-contributions.md +11 -0
- package/dist/agentic/guides/modules/dashboards/index.md +24 -0
- package/dist/agentic/guides/modules/dashboards/owned-contract-module-metadata.md +11 -0
- package/dist/agentic/guides/modules/dashboards/setup.md +11 -0
- package/dist/agentic/guides/modules/dashboards/umes-contributions.md +21 -0
- package/dist/agentic/guides/modules/dashboards/umes-hosts.md +16 -0
- package/dist/agentic/guides/modules/data_sync/acl-features.md +13 -0
- package/dist/agentic/guides/modules/data_sync/active-extension-bindings.md +13 -0
- package/dist/agentic/guides/modules/data_sync/backend-pages.md +12 -0
- package/dist/agentic/guides/modules/data_sync/di-registrations-rich.md +18 -0
- package/dist/agentic/guides/modules/data_sync/di-service-tokens.md +14 -0
- package/dist/agentic/guides/modules/data_sync/entities.md +14 -0
- package/dist/agentic/guides/modules/data_sync/events.md +14 -0
- package/dist/agentic/guides/modules/data_sync/exact-override-targets.md +27 -0
- package/dist/agentic/guides/modules/data_sync/host-extension-points.md +10 -0
- package/dist/agentic/guides/modules/data_sync/index.md +25 -0
- package/dist/agentic/guides/modules/data_sync/owned-contract-module-metadata.md +11 -0
- package/dist/agentic/guides/modules/data_sync/setup.md +11 -0
- package/dist/agentic/guides/modules/data_sync/umes-diagnostics.md +9 -0
- package/dist/agentic/guides/modules/data_sync/umes-hosts.md +30 -0
- package/dist/agentic/guides/modules/data_sync/workers.md +13 -0
- package/dist/agentic/guides/modules/design_system/acl-features.md +11 -0
- package/dist/agentic/guides/modules/design_system/backend-pages.md +11 -0
- package/dist/agentic/guides/modules/design_system/exact-override-targets.md +13 -0
- package/dist/agentic/guides/modules/design_system/index.md +16 -0
- package/dist/agentic/guides/modules/design_system/owned-contract-module-metadata.md +11 -0
- package/dist/agentic/guides/modules/design_system/setup.md +11 -0
- package/dist/agentic/guides/modules/dictionaries/acl-features.md +12 -0
- package/dist/agentic/guides/modules/dictionaries/active-extension-bindings.md +12 -0
- package/dist/agentic/guides/modules/dictionaries/backend-pages.md +11 -0
- package/dist/agentic/guides/modules/dictionaries/di-registrations-rich.md +12 -0
- package/dist/agentic/guides/modules/dictionaries/domain-commands.md +15 -0
- package/dist/agentic/guides/modules/dictionaries/entities.md +12 -0
- package/dist/agentic/guides/modules/dictionaries/events.md +13 -0
- package/dist/agentic/guides/modules/dictionaries/exact-override-targets.md +16 -0
- package/dist/agentic/guides/modules/dictionaries/index.md +22 -0
- package/dist/agentic/guides/modules/dictionaries/owned-contract-module-metadata.md +11 -0
- package/dist/agentic/guides/modules/dictionaries/setup.md +11 -0
- package/dist/agentic/guides/modules/dictionaries/umes-hosts.md +17 -0
- package/dist/agentic/guides/modules/directory/acl-features.md +14 -0
- package/dist/agentic/guides/modules/directory/active-extension-bindings.md +11 -0
- package/dist/agentic/guides/modules/directory/backend-pages.md +17 -0
- package/dist/agentic/guides/modules/directory/contribution-resolutions.md +11 -0
- package/dist/agentic/guides/modules/directory/domain-commands.md +16 -0
- package/dist/agentic/guides/modules/directory/entities.md +12 -0
- package/dist/agentic/guides/modules/directory/events.md +16 -0
- package/dist/agentic/guides/modules/directory/exact-override-targets.md +24 -0
- package/dist/agentic/guides/modules/directory/host-extension-points.md +10 -0
- package/dist/agentic/guides/modules/directory/incoming-installed-contributions.md +11 -0
- package/dist/agentic/guides/modules/directory/index.md +26 -0
- package/dist/agentic/guides/modules/directory/owned-contract-module-metadata.md +11 -0
- package/dist/agentic/guides/modules/directory/setup.md +11 -0
- package/dist/agentic/guides/modules/directory/umes-contributions.md +11 -0
- package/dist/agentic/guides/modules/directory/umes-diagnostics.md +10 -0
- package/dist/agentic/guides/modules/directory/umes-hosts.md +37 -0
- package/dist/agentic/guides/modules/entities/acl-features.md +14 -0
- package/dist/agentic/guides/modules/entities/active-extension-bindings.md +11 -0
- package/dist/agentic/guides/modules/entities/backend-pages.md +19 -0
- package/dist/agentic/guides/modules/entities/cli-commands.md +17 -0
- package/dist/agentic/guides/modules/entities/entities.md +16 -0
- package/dist/agentic/guides/modules/entities/exact-override-targets.md +31 -0
- package/dist/agentic/guides/modules/entities/host-extension-points.md +10 -0
- package/dist/agentic/guides/modules/entities/index.md +22 -0
- package/dist/agentic/guides/modules/entities/owned-contract-module-metadata.md +11 -0
- package/dist/agentic/guides/modules/entities/setup.md +11 -0
- package/dist/agentic/guides/modules/entities/umes-diagnostics.md +10 -0
- package/dist/agentic/guides/modules/entities/umes-hosts.md +36 -0
- package/dist/agentic/guides/modules/eudr/acl-features.md +20 -0
- package/dist/agentic/guides/modules/eudr/active-extension-bindings.md +11 -0
- package/dist/agentic/guides/modules/eudr/ai-agents.md +11 -0
- package/dist/agentic/guides/modules/eudr/ai-tools-mcp-capabilities.md +15 -0
- package/dist/agentic/guides/modules/eudr/backend-pages.md +26 -0
- package/dist/agentic/guides/modules/eudr/contribution-resolutions.md +37 -0
- package/dist/agentic/guides/modules/eudr/custom-entities.md +16 -0
- package/dist/agentic/guides/modules/eudr/domain-commands.md +28 -0
- package/dist/agentic/guides/modules/eudr/encryption.md +14 -0
- package/dist/agentic/guides/modules/eudr/entities.md +16 -0
- package/dist/agentic/guides/modules/eudr/events.md +33 -0
- package/dist/agentic/guides/modules/eudr/exact-override-targets.md +64 -0
- package/dist/agentic/guides/modules/eudr/host-extension-points.md +10 -0
- package/dist/agentic/guides/modules/eudr/index.md +30 -0
- package/dist/agentic/guides/modules/eudr/notifications.md +15 -0
- package/dist/agentic/guides/modules/eudr/owned-contract-module-metadata.md +11 -0
- package/dist/agentic/guides/modules/eudr/search-entities.md +13 -0
- package/dist/agentic/guides/modules/eudr/setup.md +11 -0
- package/dist/agentic/guides/modules/eudr/umes-contributions.md +37 -0
- package/dist/agentic/guides/modules/eudr/umes-hosts.md +45 -0
- package/dist/agentic/guides/modules/events/exact-override-targets.md +11 -0
- package/dist/agentic/guides/modules/events/index.md +14 -0
- package/dist/agentic/guides/modules/events/owned-contract-module-metadata.md +11 -0
- package/dist/agentic/guides/modules/events/workers.md +11 -0
- package/dist/agentic/guides/modules/feature_toggles/acl-features.md +13 -0
- package/dist/agentic/guides/modules/feature_toggles/active-extension-bindings.md +11 -0
- package/dist/agentic/guides/modules/feature_toggles/backend-pages.md +15 -0
- package/dist/agentic/guides/modules/feature_toggles/cli-commands.md +15 -0
- package/dist/agentic/guides/modules/feature_toggles/di-registrations-rich.md +11 -0
- package/dist/agentic/guides/modules/feature_toggles/di-service-tokens.md +11 -0
- package/dist/agentic/guides/modules/feature_toggles/domain-commands.md +14 -0
- package/dist/agentic/guides/modules/feature_toggles/entities.md +12 -0
- package/dist/agentic/guides/modules/feature_toggles/exact-override-targets.md +25 -0
- package/dist/agentic/guides/modules/feature_toggles/index.md +23 -0
- package/dist/agentic/guides/modules/feature_toggles/owned-contract-module-metadata.md +11 -0
- package/dist/agentic/guides/modules/feature_toggles/setup.md +11 -0
- package/dist/agentic/guides/modules/feature_toggles/umes-hosts.md +13 -0
- package/dist/agentic/guides/modules/gateway_stripe/acl-features.md +12 -0
- package/dist/agentic/guides/modules/gateway_stripe/cli-commands.md +12 -0
- package/dist/agentic/guides/modules/gateway_stripe/contribution-resolutions.md +12 -0
- package/dist/agentic/guides/modules/gateway_stripe/di-registrations-rich.md +11 -0
- package/dist/agentic/guides/modules/gateway_stripe/exact-override-targets.md +18 -0
- package/dist/agentic/guides/modules/gateway_stripe/index.md +20 -0
- package/dist/agentic/guides/modules/gateway_stripe/owned-contract-module-metadata.md +11 -0
- package/dist/agentic/guides/modules/gateway_stripe/setup.md +11 -0
- package/dist/agentic/guides/modules/gateway_stripe/umes-contributions.md +12 -0
- package/dist/agentic/guides/modules/gateway_stripe/workers.md +11 -0
- package/dist/agentic/guides/modules/generators/index.md +11 -0
- package/dist/agentic/guides/modules/inbox_ops/acl-features.md +15 -0
- package/dist/agentic/guides/modules/inbox_ops/active-extension-bindings.md +13 -0
- package/dist/agentic/guides/modules/inbox_ops/ai-tools-mcp-capabilities.md +14 -0
- package/dist/agentic/guides/modules/inbox_ops/backend-pages.md +14 -0
- package/dist/agentic/guides/modules/inbox_ops/contribution-resolutions.md +20 -0
- package/dist/agentic/guides/modules/inbox_ops/custom-entities.md +11 -0
- package/dist/agentic/guides/modules/inbox_ops/di-registrations-rich.md +15 -0
- package/dist/agentic/guides/modules/inbox_ops/encryption.md +15 -0
- package/dist/agentic/guides/modules/inbox_ops/entities.md +15 -0
- package/dist/agentic/guides/modules/inbox_ops/events.md +23 -0
- package/dist/agentic/guides/modules/inbox_ops/exact-override-targets.md +41 -0
- package/dist/agentic/guides/modules/inbox_ops/index.md +28 -0
- package/dist/agentic/guides/modules/inbox_ops/notifications.md +11 -0
- package/dist/agentic/guides/modules/inbox_ops/owned-contract-module-metadata.md +11 -0
- package/dist/agentic/guides/modules/inbox_ops/search-entities.md +11 -0
- package/dist/agentic/guides/modules/inbox_ops/setup.md +11 -0
- package/dist/agentic/guides/modules/inbox_ops/umes-contributions.md +20 -0
- package/dist/agentic/guides/modules/inbox_ops/umes-hosts.md +30 -0
- package/dist/agentic/guides/modules/integrations/acl-features.md +13 -0
- package/dist/agentic/guides/modules/integrations/backend-pages.md +13 -0
- package/dist/agentic/guides/modules/integrations/contribution-resolutions.md +12 -0
- package/dist/agentic/guides/modules/integrations/di-registrations-rich.md +18 -0
- package/dist/agentic/guides/modules/integrations/di-service-tokens.md +14 -0
- package/dist/agentic/guides/modules/integrations/encryption.md +11 -0
- package/dist/agentic/guides/modules/integrations/entities.md +14 -0
- package/dist/agentic/guides/modules/integrations/events.md +14 -0
- package/dist/agentic/guides/modules/integrations/exact-override-targets.md +31 -0
- package/dist/agentic/guides/modules/integrations/index.md +25 -0
- package/dist/agentic/guides/modules/integrations/owned-contract-module-metadata.md +11 -0
- package/dist/agentic/guides/modules/integrations/setup.md +11 -0
- package/dist/agentic/guides/modules/integrations/umes-contributions.md +12 -0
- package/dist/agentic/guides/modules/integrations/umes-hosts.md +20 -0
- package/dist/agentic/guides/modules/integrations/workers.md +12 -0
- package/dist/agentic/guides/modules/messages/acl-features.md +17 -0
- package/dist/agentic/guides/modules/messages/active-extension-bindings.md +13 -0
- package/dist/agentic/guides/modules/messages/backend-pages.md +13 -0
- package/dist/agentic/guides/modules/messages/contribution-resolutions.md +23 -0
- package/dist/agentic/guides/modules/messages/domain-commands.md +30 -0
- package/dist/agentic/guides/modules/messages/encryption.md +11 -0
- package/dist/agentic/guides/modules/messages/entities.md +15 -0
- package/dist/agentic/guides/modules/messages/events.md +19 -0
- package/dist/agentic/guides/modules/messages/exact-override-targets.md +27 -0
- package/dist/agentic/guides/modules/messages/frontend-pages.md +11 -0
- package/dist/agentic/guides/modules/messages/host-extension-points.md +10 -0
- package/dist/agentic/guides/modules/messages/incoming-installed-contributions.md +17 -0
- package/dist/agentic/guides/modules/messages/index.md +31 -0
- package/dist/agentic/guides/modules/messages/notifications.md +11 -0
- package/dist/agentic/guides/modules/messages/owned-contract-module-metadata.md +11 -0
- package/dist/agentic/guides/modules/messages/search-entities.md +11 -0
- package/dist/agentic/guides/modules/messages/setup.md +11 -0
- package/dist/agentic/guides/modules/messages/umes-contributions.md +23 -0
- package/dist/agentic/guides/modules/messages/umes-diagnostics.md +9 -0
- package/dist/agentic/guides/modules/messages/umes-hosts.md +38 -0
- package/dist/agentic/guides/modules/messages/workers.md +11 -0
- package/dist/agentic/guides/modules/notifications/acl-features.md +13 -0
- package/dist/agentic/guides/modules/notifications/backend-pages.md +11 -0
- package/dist/agentic/guides/modules/notifications/cli-commands.md +11 -0
- package/dist/agentic/guides/modules/notifications/di-registrations-rich.md +11 -0
- package/dist/agentic/guides/modules/notifications/di-service-tokens.md +11 -0
- package/dist/agentic/guides/modules/notifications/entities.md +11 -0
- package/dist/agentic/guides/modules/notifications/exact-override-targets.md +18 -0
- package/dist/agentic/guides/modules/notifications/index.md +22 -0
- package/dist/agentic/guides/modules/notifications/owned-contract-module-metadata.md +11 -0
- package/dist/agentic/guides/modules/notifications/setup.md +11 -0
- package/dist/agentic/guides/modules/notifications/umes-hosts.md +11 -0
- package/dist/agentic/guides/modules/notifications/workers.md +11 -0
- package/dist/agentic/guides/modules/onboarding/acl-features.md +13 -0
- package/dist/agentic/guides/modules/onboarding/encryption.md +11 -0
- package/dist/agentic/guides/modules/onboarding/entities.md +11 -0
- package/dist/agentic/guides/modules/onboarding/exact-override-targets.md +16 -0
- package/dist/agentic/guides/modules/onboarding/frontend-pages.md +12 -0
- package/dist/agentic/guides/modules/onboarding/index.md +18 -0
- package/dist/agentic/guides/modules/onboarding/owned-contract-module-metadata.md +11 -0
- package/dist/agentic/guides/modules/onboarding/umes-hosts.md +11 -0
- package/dist/agentic/guides/modules/payment_gateways/acl-features.md +14 -0
- package/dist/agentic/guides/modules/payment_gateways/active-extension-bindings.md +13 -0
- package/dist/agentic/guides/modules/payment_gateways/backend-pages.md +11 -0
- package/dist/agentic/guides/modules/payment_gateways/contribution-resolutions.md +11 -0
- package/dist/agentic/guides/modules/payment_gateways/di-registrations-rich.md +14 -0
- package/dist/agentic/guides/modules/payment_gateways/di-service-tokens.md +12 -0
- package/dist/agentic/guides/modules/payment_gateways/encryption.md +11 -0
- package/dist/agentic/guides/modules/payment_gateways/entities.md +14 -0
- package/dist/agentic/guides/modules/payment_gateways/events.md +19 -0
- package/dist/agentic/guides/modules/payment_gateways/exact-override-targets.md +26 -0
- package/dist/agentic/guides/modules/payment_gateways/host-extension-points.md +10 -0
- package/dist/agentic/guides/modules/payment_gateways/incoming-installed-contributions.md +16 -0
- package/dist/agentic/guides/modules/payment_gateways/index.md +29 -0
- package/dist/agentic/guides/modules/payment_gateways/owned-contract-module-metadata.md +11 -0
- package/dist/agentic/guides/modules/payment_gateways/setup.md +11 -0
- package/dist/agentic/guides/modules/payment_gateways/umes-contributions.md +11 -0
- package/dist/agentic/guides/modules/payment_gateways/umes-diagnostics.md +9 -0
- package/dist/agentic/guides/modules/payment_gateways/umes-hosts.md +34 -0
- package/dist/agentic/guides/modules/payment_gateways/workers.md +13 -0
- package/dist/agentic/guides/modules/perspectives/acl-features.md +12 -0
- package/dist/agentic/guides/modules/perspectives/active-extension-bindings.md +12 -0
- package/dist/agentic/guides/modules/perspectives/entities.md +12 -0
- package/dist/agentic/guides/modules/perspectives/exact-override-targets.md +13 -0
- package/dist/agentic/guides/modules/perspectives/index.md +18 -0
- package/dist/agentic/guides/modules/perspectives/owned-contract-module-metadata.md +11 -0
- package/dist/agentic/guides/modules/perspectives/setup.md +11 -0
- package/dist/agentic/guides/modules/perspectives/umes-hosts.md +14 -0
- package/dist/agentic/guides/modules/planner/acl-features.md +12 -0
- package/dist/agentic/guides/modules/planner/active-extension-bindings.md +11 -0
- package/dist/agentic/guides/modules/planner/backend-pages.md +13 -0
- package/dist/agentic/guides/modules/planner/cli-commands.md +12 -0
- package/dist/agentic/guides/modules/planner/contribution-resolutions.md +11 -0
- package/dist/agentic/guides/modules/planner/di-registrations-rich.md +11 -0
- package/dist/agentic/guides/modules/planner/di-service-tokens.md +11 -0
- package/dist/agentic/guides/modules/planner/domain-commands.md +18 -0
- package/dist/agentic/guides/modules/planner/entities.md +12 -0
- package/dist/agentic/guides/modules/planner/events.md +16 -0
- package/dist/agentic/guides/modules/planner/exact-override-targets.md +21 -0
- package/dist/agentic/guides/modules/planner/index.md +27 -0
- package/dist/agentic/guides/modules/planner/owned-contract-module-metadata.md +11 -0
- package/dist/agentic/guides/modules/planner/search-entities.md +11 -0
- package/dist/agentic/guides/modules/planner/setup.md +11 -0
- package/dist/agentic/guides/modules/planner/umes-contributions.md +11 -0
- package/dist/agentic/guides/modules/planner/umes-hosts.md +21 -0
- package/dist/agentic/guides/modules/portal/active-extension-bindings.md +11 -0
- package/dist/agentic/guides/modules/portal/exact-override-targets.md +19 -0
- package/dist/agentic/guides/modules/portal/frontend-pages.md +18 -0
- package/dist/agentic/guides/modules/portal/incoming-installed-contributions.md +11 -0
- package/dist/agentic/guides/modules/portal/index.md +18 -0
- package/dist/agentic/guides/modules/portal/owned-contract-module-metadata.md +11 -0
- package/dist/agentic/guides/modules/portal/setup.md +11 -0
- package/dist/agentic/guides/modules/portal/umes-hosts.md +22 -0
- package/dist/agentic/guides/modules/progress/acl-features.md +15 -0
- package/dist/agentic/guides/modules/progress/contribution-resolutions.md +16 -0
- package/dist/agentic/guides/modules/progress/entities.md +11 -0
- package/dist/agentic/guides/modules/progress/events.md +16 -0
- package/dist/agentic/guides/modules/progress/exact-override-targets.md +16 -0
- package/dist/agentic/guides/modules/progress/index.md +20 -0
- package/dist/agentic/guides/modules/progress/owned-contract-module-metadata.md +11 -0
- package/dist/agentic/guides/modules/progress/setup.md +11 -0
- package/dist/agentic/guides/modules/progress/umes-contributions.md +16 -0
- package/dist/agentic/guides/modules/progress/umes-hosts.md +17 -0
- package/dist/agentic/guides/modules/query_index/acl-features.md +13 -0
- package/dist/agentic/guides/modules/query_index/active-extension-bindings.md +11 -0
- package/dist/agentic/guides/modules/query_index/backend-pages.md +11 -0
- package/dist/agentic/guides/modules/query_index/cli-commands.md +14 -0
- package/dist/agentic/guides/modules/query_index/contribution-resolutions.md +16 -0
- package/dist/agentic/guides/modules/query_index/entities.md +16 -0
- package/dist/agentic/guides/modules/query_index/events.md +18 -0
- package/dist/agentic/guides/modules/query_index/exact-override-targets.md +25 -0
- package/dist/agentic/guides/modules/query_index/host-extension-points.md +10 -0
- package/dist/agentic/guides/modules/query_index/incoming-installed-contributions.md +14 -0
- package/dist/agentic/guides/modules/query_index/index.md +26 -0
- package/dist/agentic/guides/modules/query_index/owned-contract-module-metadata.md +11 -0
- package/dist/agentic/guides/modules/query_index/setup.md +11 -0
- package/dist/agentic/guides/modules/query_index/umes-contributions.md +16 -0
- package/dist/agentic/guides/modules/query_index/umes-diagnostics.md +9 -0
- package/dist/agentic/guides/modules/query_index/umes-hosts.md +34 -0
- package/dist/agentic/guides/modules/record_locks/acl-features.md +14 -0
- package/dist/agentic/guides/modules/record_locks/active-extension-bindings.md +11 -0
- package/dist/agentic/guides/modules/record_locks/backend-pages.md +11 -0
- package/dist/agentic/guides/modules/record_locks/contribution-resolutions.md +33 -0
- package/dist/agentic/guides/modules/record_locks/di-registrations-rich.md +13 -0
- package/dist/agentic/guides/modules/record_locks/di-service-tokens.md +13 -0
- package/dist/agentic/guides/modules/record_locks/domain-commands.md +12 -0
- package/dist/agentic/guides/modules/record_locks/entities.md +12 -0
- package/dist/agentic/guides/modules/record_locks/events.md +20 -0
- package/dist/agentic/guides/modules/record_locks/exact-override-targets.md +41 -0
- package/dist/agentic/guides/modules/record_locks/index.md +26 -0
- package/dist/agentic/guides/modules/record_locks/notifications.md +18 -0
- package/dist/agentic/guides/modules/record_locks/owned-contract-module-metadata.md +11 -0
- package/dist/agentic/guides/modules/record_locks/setup.md +11 -0
- package/dist/agentic/guides/modules/record_locks/umes-contributions.md +33 -0
- package/dist/agentic/guides/modules/record_locks/umes-hosts.md +22 -0
- package/dist/agentic/guides/modules/resources/acl-features.md +12 -0
- package/dist/agentic/guides/modules/resources/active-extension-bindings.md +11 -0
- package/dist/agentic/guides/modules/resources/backend-pages.md +16 -0
- package/dist/agentic/guides/modules/resources/cli-commands.md +14 -0
- package/dist/agentic/guides/modules/resources/contribution-resolutions.md +12 -0
- package/dist/agentic/guides/modules/resources/domain-commands.md +27 -0
- package/dist/agentic/guides/modules/resources/entities.md +16 -0
- package/dist/agentic/guides/modules/resources/events.md +25 -0
- package/dist/agentic/guides/modules/resources/exact-override-targets.md +25 -0
- package/dist/agentic/guides/modules/resources/host-extension-points.md +10 -0
- package/dist/agentic/guides/modules/resources/index.md +27 -0
- package/dist/agentic/guides/modules/resources/owned-contract-module-metadata.md +11 -0
- package/dist/agentic/guides/modules/resources/search-entities.md +12 -0
- package/dist/agentic/guides/modules/resources/setup.md +11 -0
- package/dist/agentic/guides/modules/resources/umes-contributions.md +12 -0
- package/dist/agentic/guides/modules/resources/umes-diagnostics.md +10 -0
- package/dist/agentic/guides/modules/resources/umes-hosts.md +54 -0
- package/dist/agentic/guides/modules/sales/acl-features.md +29 -0
- package/dist/agentic/guides/modules/sales/active-extension-bindings.md +17 -0
- package/dist/agentic/guides/modules/sales/backend-pages.md +23 -0
- package/dist/agentic/guides/modules/sales/cli-commands.md +17 -0
- package/dist/agentic/guides/modules/sales/contribution-resolutions.md +49 -0
- package/dist/agentic/guides/modules/sales/custom-entities.md +25 -0
- package/dist/agentic/guides/modules/sales/di-registrations-rich.md +40 -0
- package/dist/agentic/guides/modules/sales/di-service-tokens.md +15 -0
- package/dist/agentic/guides/modules/sales/domain-commands.md +80 -0
- package/dist/agentic/guides/modules/sales/encryption.md +15 -0
- package/dist/agentic/guides/modules/sales/entities.md +37 -0
- package/dist/agentic/guides/modules/sales/events.md +54 -0
- package/dist/agentic/guides/modules/sales/exact-override-targets.md +103 -0
- package/dist/agentic/guides/modules/sales/frontend-pages.md +11 -0
- package/dist/agentic/guides/modules/sales/host-extension-points.md +10 -0
- package/dist/agentic/guides/modules/sales/incoming-installed-contributions.md +15 -0
- package/dist/agentic/guides/modules/sales/index.md +34 -0
- package/dist/agentic/guides/modules/sales/notifications.md +14 -0
- package/dist/agentic/guides/modules/sales/owned-contract-module-metadata.md +11 -0
- package/dist/agentic/guides/modules/sales/search-entities.md +32 -0
- package/dist/agentic/guides/modules/sales/setup.md +11 -0
- package/dist/agentic/guides/modules/sales/umes-contributions.md +49 -0
- package/dist/agentic/guides/modules/sales/umes-diagnostics.md +10 -0
- package/dist/agentic/guides/modules/sales/umes-hosts.md +147 -0
- package/dist/agentic/guides/modules/scheduler/acl-features.md +13 -0
- package/dist/agentic/guides/modules/scheduler/backend-pages.md +14 -0
- package/dist/agentic/guides/modules/scheduler/cli-commands.md +14 -0
- package/dist/agentic/guides/modules/scheduler/di-registrations-rich.md +13 -0
- package/dist/agentic/guides/modules/scheduler/di-service-tokens.md +13 -0
- package/dist/agentic/guides/modules/scheduler/domain-commands.md +14 -0
- package/dist/agentic/guides/modules/scheduler/entities.md +11 -0
- package/dist/agentic/guides/modules/scheduler/events.md +14 -0
- package/dist/agentic/guides/modules/scheduler/exact-override-targets.md +26 -0
- package/dist/agentic/guides/modules/scheduler/index.md +24 -0
- package/dist/agentic/guides/modules/scheduler/owned-contract-module-metadata.md +11 -0
- package/dist/agentic/guides/modules/scheduler/setup.md +11 -0
- package/dist/agentic/guides/modules/scheduler/umes-hosts.md +15 -0
- package/dist/agentic/guides/modules/scheduler/workers.md +11 -0
- package/dist/agentic/guides/modules/search/acl-features.md +16 -0
- package/dist/agentic/guides/modules/search/ai-tools-mcp-capabilities.md +16 -0
- package/dist/agentic/guides/modules/search/backend-pages.md +11 -0
- package/dist/agentic/guides/modules/search/cli-commands.md +18 -0
- package/dist/agentic/guides/modules/search/contribution-resolutions.md +20 -0
- package/dist/agentic/guides/modules/search/di-registrations-rich.md +15 -0
- package/dist/agentic/guides/modules/search/encryption.md +11 -0
- package/dist/agentic/guides/modules/search/events.md +11 -0
- package/dist/agentic/guides/modules/search/exact-override-targets.md +44 -0
- package/dist/agentic/guides/modules/search/index.md +25 -0
- package/dist/agentic/guides/modules/search/owned-contract-module-metadata.md +11 -0
- package/dist/agentic/guides/modules/search/setup.md +11 -0
- package/dist/agentic/guides/modules/search/umes-contributions.md +20 -0
- package/dist/agentic/guides/modules/search/umes-hosts.md +11 -0
- package/dist/agentic/guides/modules/search/workers.md +12 -0
- package/dist/agentic/guides/modules/security/acl-features.md +17 -0
- package/dist/agentic/guides/modules/security/backend-pages.md +22 -0
- package/dist/agentic/guides/modules/security/contribution-resolutions.md +22 -0
- package/dist/agentic/guides/modules/security/di-registrations-rich.md +17 -0
- package/dist/agentic/guides/modules/security/di-service-tokens.md +16 -0
- package/dist/agentic/guides/modules/security/domain-commands.md +20 -0
- package/dist/agentic/guides/modules/security/entities.md +16 -0
- package/dist/agentic/guides/modules/security/events.md +30 -0
- package/dist/agentic/guides/modules/security/exact-override-targets.md +52 -0
- package/dist/agentic/guides/modules/security/generator-plugins.md +12 -0
- package/dist/agentic/guides/modules/security/host-extension-points.md +10 -0
- package/dist/agentic/guides/modules/security/index.md +29 -0
- package/dist/agentic/guides/modules/security/notifications.md +14 -0
- package/dist/agentic/guides/modules/security/owned-contract-module-metadata.md +11 -0
- package/dist/agentic/guides/modules/security/page-middleware.md +13 -0
- package/dist/agentic/guides/modules/security/setup.md +11 -0
- package/dist/agentic/guides/modules/security/umes-contributions.md +22 -0
- package/dist/agentic/guides/modules/security/umes-diagnostics.md +11 -0
- package/dist/agentic/guides/modules/security/umes-hosts.md +65 -0
- package/dist/agentic/guides/modules/shipping_carriers/acl-features.md +12 -0
- package/dist/agentic/guides/modules/shipping_carriers/active-extension-bindings.md +11 -0
- package/dist/agentic/guides/modules/shipping_carriers/backend-pages.md +11 -0
- package/dist/agentic/guides/modules/shipping_carriers/contribution-resolutions.md +15 -0
- package/dist/agentic/guides/modules/shipping_carriers/di-registrations-rich.md +12 -0
- package/dist/agentic/guides/modules/shipping_carriers/di-service-tokens.md +11 -0
- package/dist/agentic/guides/modules/shipping_carriers/entities.md +13 -0
- package/dist/agentic/guides/modules/shipping_carriers/events.md +17 -0
- package/dist/agentic/guides/modules/shipping_carriers/exact-override-targets.md +23 -0
- package/dist/agentic/guides/modules/shipping_carriers/index.md +25 -0
- package/dist/agentic/guides/modules/shipping_carriers/owned-contract-module-metadata.md +11 -0
- package/dist/agentic/guides/modules/shipping_carriers/setup.md +11 -0
- package/dist/agentic/guides/modules/shipping_carriers/umes-contributions.md +15 -0
- package/dist/agentic/guides/modules/shipping_carriers/umes-hosts.md +21 -0
- package/dist/agentic/guides/modules/shipping_carriers/workers.md +12 -0
- package/dist/agentic/guides/modules/sso/acl-features.md +13 -0
- package/dist/agentic/guides/modules/sso/backend-pages.md +13 -0
- package/dist/agentic/guides/modules/sso/contribution-resolutions.md +12 -0
- package/dist/agentic/guides/modules/sso/di-registrations-rich.md +17 -0
- package/dist/agentic/guides/modules/sso/di-service-tokens.md +16 -0
- package/dist/agentic/guides/modules/sso/entities.md +16 -0
- package/dist/agentic/guides/modules/sso/events.md +22 -0
- package/dist/agentic/guides/modules/sso/exact-override-targets.md +27 -0
- package/dist/agentic/guides/modules/sso/index.md +23 -0
- package/dist/agentic/guides/modules/sso/owned-contract-module-metadata.md +11 -0
- package/dist/agentic/guides/modules/sso/setup.md +11 -0
- package/dist/agentic/guides/modules/sso/umes-contributions.md +12 -0
- package/dist/agentic/guides/modules/sso/umes-hosts.md +28 -0
- package/dist/agentic/guides/modules/staff/acl-features.md +26 -0
- package/dist/agentic/guides/modules/staff/active-extension-bindings.md +14 -0
- package/dist/agentic/guides/modules/staff/backend-pages.md +32 -0
- package/dist/agentic/guides/modules/staff/cli-commands.md +14 -0
- package/dist/agentic/guides/modules/staff/contribution-resolutions.md +23 -0
- package/dist/agentic/guides/modules/staff/custom-entities.md +11 -0
- package/dist/agentic/guides/modules/staff/di-registrations-rich.md +11 -0
- package/dist/agentic/guides/modules/staff/domain-commands.md +47 -0
- package/dist/agentic/guides/modules/staff/encryption.md +11 -0
- package/dist/agentic/guides/modules/staff/entities.md +22 -0
- package/dist/agentic/guides/modules/staff/events.md +45 -0
- package/dist/agentic/guides/modules/staff/exact-override-targets.md +66 -0
- package/dist/agentic/guides/modules/staff/index.md +29 -0
- package/dist/agentic/guides/modules/staff/notifications.md +13 -0
- package/dist/agentic/guides/modules/staff/owned-contract-module-metadata.md +11 -0
- package/dist/agentic/guides/modules/staff/search-entities.md +14 -0
- package/dist/agentic/guides/modules/staff/setup.md +11 -0
- package/dist/agentic/guides/modules/staff/umes-contributions.md +23 -0
- package/dist/agentic/guides/modules/staff/umes-hosts.md +65 -0
- package/dist/agentic/guides/modules/storage_s3/acl-features.md +11 -0
- package/dist/agentic/guides/modules/storage_s3/cli-commands.md +12 -0
- package/dist/agentic/guides/modules/storage_s3/contribution-resolutions.md +11 -0
- package/dist/agentic/guides/modules/storage_s3/di-registrations-rich.md +13 -0
- package/dist/agentic/guides/modules/storage_s3/di-service-tokens.md +11 -0
- package/dist/agentic/guides/modules/storage_s3/exact-override-targets.md +19 -0
- package/dist/agentic/guides/modules/storage_s3/index.md +21 -0
- package/dist/agentic/guides/modules/storage_s3/owned-contract-module-metadata.md +11 -0
- package/dist/agentic/guides/modules/storage_s3/setup.md +11 -0
- package/dist/agentic/guides/modules/storage_s3/umes-contributions.md +11 -0
- package/dist/agentic/guides/modules/storage_s3/workers.md +11 -0
- package/dist/agentic/guides/modules/sync_akeneo/cli-commands.md +12 -0
- package/dist/agentic/guides/modules/sync_akeneo/contribution-resolutions.md +11 -0
- package/dist/agentic/guides/modules/sync_akeneo/di-registrations-rich.md +11 -0
- package/dist/agentic/guides/modules/sync_akeneo/exact-override-targets.md +16 -0
- package/dist/agentic/guides/modules/sync_akeneo/index.md +19 -0
- package/dist/agentic/guides/modules/sync_akeneo/owned-contract-module-metadata.md +11 -0
- package/dist/agentic/guides/modules/sync_akeneo/setup.md +11 -0
- package/dist/agentic/guides/modules/sync_akeneo/umes-contributions.md +11 -0
- package/dist/agentic/guides/modules/sync_akeneo/workers.md +12 -0
- package/dist/agentic/guides/modules/sync_excel/acl-features.md +12 -0
- package/dist/agentic/guides/modules/sync_excel/contribution-resolutions.md +11 -0
- package/dist/agentic/guides/modules/sync_excel/entities.md +11 -0
- package/dist/agentic/guides/modules/sync_excel/exact-override-targets.md +14 -0
- package/dist/agentic/guides/modules/sync_excel/index.md +19 -0
- package/dist/agentic/guides/modules/sync_excel/owned-contract-module-metadata.md +11 -0
- package/dist/agentic/guides/modules/sync_excel/setup.md +11 -0
- package/dist/agentic/guides/modules/sync_excel/umes-contributions.md +11 -0
- package/dist/agentic/guides/modules/sync_excel/umes-hosts.md +11 -0
- package/dist/agentic/guides/modules/system_status_overlays/contribution-resolutions.md +12 -0
- package/dist/agentic/guides/modules/system_status_overlays/exact-override-targets.md +12 -0
- package/dist/agentic/guides/modules/system_status_overlays/index.md +15 -0
- package/dist/agentic/guides/modules/system_status_overlays/owned-contract-module-metadata.md +11 -0
- package/dist/agentic/guides/modules/system_status_overlays/umes-contributions.md +12 -0
- package/dist/agentic/guides/modules/translations/acl-features.md +13 -0
- package/dist/agentic/guides/modules/translations/active-extension-bindings.md +12 -0
- package/dist/agentic/guides/modules/translations/backend-pages.md +11 -0
- package/dist/agentic/guides/modules/translations/contribution-resolutions.md +13 -0
- package/dist/agentic/guides/modules/translations/domain-commands.md +12 -0
- package/dist/agentic/guides/modules/translations/entities.md +11 -0
- package/dist/agentic/guides/modules/translations/events.md +12 -0
- package/dist/agentic/guides/modules/translations/exact-override-targets.md +18 -0
- package/dist/agentic/guides/modules/translations/index.md +23 -0
- package/dist/agentic/guides/modules/translations/owned-contract-module-metadata.md +11 -0
- package/dist/agentic/guides/modules/translations/setup.md +11 -0
- package/dist/agentic/guides/modules/translations/umes-contributions.md +13 -0
- package/dist/agentic/guides/modules/translations/umes-hosts.md +15 -0
- package/dist/agentic/guides/modules/webhooks/acl-features.md +14 -0
- package/dist/agentic/guides/modules/webhooks/backend-pages.md +13 -0
- package/dist/agentic/guides/modules/webhooks/contribution-resolutions.md +20 -0
- package/dist/agentic/guides/modules/webhooks/encryption.md +12 -0
- package/dist/agentic/guides/modules/webhooks/entities.md +15 -0
- package/dist/agentic/guides/modules/webhooks/events.md +22 -0
- package/dist/agentic/guides/modules/webhooks/exact-override-targets.md +26 -0
- package/dist/agentic/guides/modules/webhooks/generator-plugins.md +12 -0
- package/dist/agentic/guides/modules/webhooks/host-extension-points.md +10 -0
- package/dist/agentic/guides/modules/webhooks/index.md +27 -0
- package/dist/agentic/guides/modules/webhooks/notifications.md +11 -0
- package/dist/agentic/guides/modules/webhooks/owned-contract-module-metadata.md +11 -0
- package/dist/agentic/guides/modules/webhooks/setup.md +11 -0
- package/dist/agentic/guides/modules/webhooks/umes-contributions.md +20 -0
- package/dist/agentic/guides/modules/webhooks/umes-diagnostics.md +11 -0
- package/dist/agentic/guides/modules/webhooks/umes-hosts.md +54 -0
- package/dist/agentic/guides/modules/webhooks/workers.md +12 -0
- package/dist/agentic/guides/modules/wms/acl-features.md +20 -0
- package/dist/agentic/guides/modules/wms/active-extension-bindings.md +12 -0
- package/dist/agentic/guides/modules/wms/backend-pages.md +22 -0
- package/dist/agentic/guides/modules/wms/cli-commands.md +11 -0
- package/dist/agentic/guides/modules/wms/contribution-resolutions.md +29 -0
- package/dist/agentic/guides/modules/wms/custom-entities.md +18 -0
- package/dist/agentic/guides/modules/wms/di-registrations-rich.md +18 -0
- package/dist/agentic/guides/modules/wms/domain-commands.md +34 -0
- package/dist/agentic/guides/modules/wms/entities.md +19 -0
- package/dist/agentic/guides/modules/wms/events.md +37 -0
- package/dist/agentic/guides/modules/wms/exact-override-targets.md +57 -0
- package/dist/agentic/guides/modules/wms/host-extension-points.md +10 -0
- package/dist/agentic/guides/modules/wms/index.md +30 -0
- package/dist/agentic/guides/modules/wms/notifications.md +12 -0
- package/dist/agentic/guides/modules/wms/owned-contract-module-metadata.md +11 -0
- package/dist/agentic/guides/modules/wms/search-entities.md +14 -0
- package/dist/agentic/guides/modules/wms/setup.md +11 -0
- package/dist/agentic/guides/modules/wms/umes-contributions.md +29 -0
- package/dist/agentic/guides/modules/wms/umes-diagnostics.md +22 -0
- package/dist/agentic/guides/modules/wms/umes-hosts.md +181 -0
- package/dist/agentic/guides/modules/workflows/acl-features.md +28 -0
- package/dist/agentic/guides/modules/workflows/active-extension-bindings.md +11 -0
- package/dist/agentic/guides/modules/workflows/backend-pages.md +20 -0
- package/dist/agentic/guides/modules/workflows/cli-commands.md +18 -0
- package/dist/agentic/guides/modules/workflows/contribution-resolutions.md +16 -0
- package/dist/agentic/guides/modules/workflows/di-registrations-rich.md +17 -0
- package/dist/agentic/guides/modules/workflows/di-service-tokens.md +17 -0
- package/dist/agentic/guides/modules/workflows/entities.md +17 -0
- package/dist/agentic/guides/modules/workflows/events.md +36 -0
- package/dist/agentic/guides/modules/workflows/exact-override-targets.md +61 -0
- package/dist/agentic/guides/modules/workflows/frontend-pages.md +11 -0
- package/dist/agentic/guides/modules/workflows/host-extension-points.md +10 -0
- package/dist/agentic/guides/modules/workflows/index.md +30 -0
- package/dist/agentic/guides/modules/workflows/notifications.md +11 -0
- package/dist/agentic/guides/modules/workflows/owned-contract-module-metadata.md +11 -0
- package/dist/agentic/guides/modules/workflows/setup.md +11 -0
- package/dist/agentic/guides/modules/workflows/umes-contributions.md +16 -0
- package/dist/agentic/guides/modules/workflows/umes-diagnostics.md +11 -0
- package/dist/agentic/guides/modules/workflows/umes-hosts.md +71 -0
- package/dist/agentic/guides/modules/workflows/workers.md +11 -0
- package/dist/agentic/guides/reference-module-facts.json +1 -1
- package/dist/agentic/guides/reference-modules/example/acl-features.md +19 -0
- package/dist/agentic/guides/reference-modules/example/active-extension-bindings.md +26 -0
- package/dist/agentic/guides/reference-modules/example/ai-agents.md +11 -0
- package/dist/agentic/guides/reference-modules/example/ai-extensions.md +13 -0
- package/dist/agentic/guides/reference-modules/example/ai-tools-mcp-capabilities.md +12 -0
- package/dist/agentic/guides/reference-modules/example/backend-pages.md +24 -0
- package/dist/agentic/guides/reference-modules/example/cli-commands.md +12 -0
- package/dist/agentic/guides/reference-modules/example/contribution-resolutions.md +83 -0
- package/dist/agentic/guides/reference-modules/example/custom-entities.md +12 -0
- package/dist/agentic/guides/reference-modules/example/di-registrations-rich.md +12 -0
- package/dist/agentic/guides/reference-modules/example/di-service-tokens.md +11 -0
- package/dist/agentic/guides/reference-modules/example/domain-commands.md +13 -0
- package/dist/agentic/guides/reference-modules/example/encryption.md +11 -0
- package/dist/agentic/guides/reference-modules/example/entities.md +14 -0
- package/dist/agentic/guides/reference-modules/example/events.md +15 -0
- package/dist/agentic/guides/reference-modules/example/exact-override-targets.md +93 -0
- package/dist/agentic/guides/reference-modules/example/frontend-pages.md +12 -0
- package/dist/agentic/guides/reference-modules/example/generator-plugins.md +11 -0
- package/dist/agentic/guides/reference-modules/example/host-extension-points.md +10 -0
- package/dist/agentic/guides/reference-modules/example/index.md +40 -0
- package/dist/agentic/guides/reference-modules/example/notifications.md +11 -0
- package/dist/agentic/guides/reference-modules/example/owned-contract-module-metadata.md +11 -0
- package/dist/agentic/guides/reference-modules/example/page-middleware.md +12 -0
- package/dist/agentic/guides/reference-modules/example/search-entities.md +11 -0
- package/dist/agentic/guides/reference-modules/example/setup.md +11 -0
- package/dist/agentic/guides/reference-modules/example/umes-contributions.md +83 -0
- package/dist/agentic/guides/reference-modules/example/umes-diagnostics.md +16 -0
- package/dist/agentic/guides/reference-modules/example/umes-hosts.md +36 -0
- package/dist/agentic/guides/reference-modules/example/workers.md +12 -0
- package/dist/agentic/guides/upstream/manifest.json +1 -1
- package/dist/agentic/shared/ai/harness/cases.json +364 -364
- package/dist/agentic/shared/ai/harness/writable-spec-oracles.mjs +1 -1
- package/dist/agentic/shared/ai/skills/om-build-workflow/SKILL.md +2 -2
- package/dist/agentic/shared/ai/skills/om-create-ai-agent/SKILL.md +1 -1
- package/dist/agentic/shared/ai/skills/om-create-ai-agent/references/surface-selector.md +1 -1
- package/dist/agentic/shared/ai/skills/om-module-scaffold/references/business-one-shot-blueprints.md +1 -1
- package/dist/agentic/shared/scripts/evaluate-agent-harness.mjs +12 -3
- package/dist/lib/__integration__/TC-INT-008.spec.js +10 -2
- package/dist/lib/__integration__/TC-INT-008.spec.js.map +2 -2
- package/dist/lib/agentic-setup.js +24 -7
- package/dist/lib/agentic-setup.js.map +2 -2
- package/dist/lib/generators/module-facts.js +277 -98
- package/dist/lib/generators/module-facts.js.map +2 -2
- package/package.json +6 -6
- package/src/lib/__integration__/TC-INT-008.spec.ts +12 -4
- package/src/lib/__tests__/agentic-setup.ownership.test.ts +19 -0
- package/src/lib/agentic-setup.ts +34 -10
- package/src/lib/generators/__tests__/module-facts.bc-guard.test.ts +118 -2
- package/src/lib/generators/__tests__/module-facts.source-links.test.ts +78 -2
- package/src/lib/generators/module-facts.ts +378 -96
- package/dist/agentic/guides/modules/ai_assistant.md +0 -256
- package/dist/agentic/guides/modules/api_docs.md +0 -95
- package/dist/agentic/guides/modules/api_keys.md +0 -126
- package/dist/agentic/guides/modules/attachments.md +0 -154
- package/dist/agentic/guides/modules/audit_logs.md +0 -163
- package/dist/agentic/guides/modules/auth.md +0 -307
- package/dist/agentic/guides/modules/business_rules.md +0 -179
- package/dist/agentic/guides/modules/catalog.md +0 -512
- package/dist/agentic/guides/modules/channel_gmail.md +0 -118
- package/dist/agentic/guides/modules/channel_imap.md +0 -118
- package/dist/agentic/guides/modules/checkout.md +0 -338
- package/dist/agentic/guides/modules/communication_channels.md +0 -347
- package/dist/agentic/guides/modules/configs.md +0 -138
- package/dist/agentic/guides/modules/content.md +0 -94
- package/dist/agentic/guides/modules/currencies.md +0 -185
- package/dist/agentic/guides/modules/customer_accounts.md +0 -418
- package/dist/agentic/guides/modules/customers.md +0 -780
- package/dist/agentic/guides/modules/dashboards.md +0 -188
- package/dist/agentic/guides/modules/data_sync.md +0 -182
- package/dist/agentic/guides/modules/design_system.md +0 -102
- package/dist/agentic/guides/modules/dictionaries.md +0 -141
- package/dist/agentic/guides/modules/directory.md +0 -182
- package/dist/agentic/guides/modules/entities.md +0 -178
- package/dist/agentic/guides/modules/eudr.md +0 -363
- package/dist/agentic/guides/modules/events.md +0 -96
- package/dist/agentic/guides/modules/feature_toggles.md +0 -152
- package/dist/agentic/guides/modules/gateway_stripe.md +0 -127
- package/dist/agentic/guides/modules/generators.md +0 -82
- package/dist/agentic/guides/modules/inbox_ops.md +0 -239
- package/dist/agentic/guides/modules/integrations.md +0 -182
- package/dist/agentic/guides/modules/messages.md +0 -254
- package/dist/agentic/guides/modules/notifications.md +0 -129
- package/dist/agentic/guides/modules/onboarding.md +0 -112
- package/dist/agentic/guides/modules/payment_gateways.md +0 -201
- package/dist/agentic/guides/modules/perspectives.md +0 -112
- package/dist/agentic/guides/modules/planner.md +0 -167
- package/dist/agentic/guides/modules/portal.md +0 -130
- package/dist/agentic/guides/modules/progress.md +0 -138
- package/dist/agentic/guides/modules/query_index.md +0 -185
- package/dist/agentic/guides/modules/record_locks.md +0 -238
- package/dist/agentic/guides/modules/resources.md +0 -229
- package/dist/agentic/guides/modules/sales.md +0 -714
- package/dist/agentic/guides/modules/scheduler.md +0 -165
- package/dist/agentic/guides/modules/search.md +0 -203
- package/dist/agentic/guides/modules/security.md +0 -326
- package/dist/agentic/guides/modules/shipping_carriers.md +0 -167
- package/dist/agentic/guides/modules/sso.md +0 -184
- package/dist/agentic/guides/modules/staff.md +0 -403
- package/dist/agentic/guides/modules/storage_s3.md +0 -129
- package/dist/agentic/guides/modules/sync_akeneo.md +0 -121
- package/dist/agentic/guides/modules/sync_excel.md +0 -110
- package/dist/agentic/guides/modules/system_status_overlays.md +0 -97
- package/dist/agentic/guides/modules/translations.md +0 -138
- package/dist/agentic/guides/modules/webhooks.md +0 -233
- package/dist/agentic/guides/modules/wms.md +0 -499
- package/dist/agentic/guides/modules/workflows.md +0 -332
- package/dist/agentic/guides/reference-modules/example.md +0 -489
|
@@ -49,7 +49,7 @@ const EXAMPLE_ROOT = 'src/modules/example'
|
|
|
49
49
|
const EXAMPLE_INVENTORY = `${EXAMPLE_ROOT}/references/surface-inventory.json`
|
|
50
50
|
const REFERENCE_FACTS = '.ai/guides/reference-module-facts.json'
|
|
51
51
|
const SOURCE_LINK_INVENTORY = '.ai/harness/source-link-inventory.json'
|
|
52
|
-
const REFERENCE_SHEET = '.ai/guides/reference-modules/example.md'
|
|
52
|
+
const REFERENCE_SHEET = '.ai/guides/reference-modules/example/index.md'
|
|
53
53
|
const EXAMPLE_FILE_PATTERN = /\bsrc\/modules\/example\/[A-Za-z0-9._/-]+\.[A-Za-z0-9]+\b/g
|
|
54
54
|
// A directory-only or globbed hint is not a source link. `src/modules/example/api/**`,
|
|
55
55
|
// `src/modules/example/widgets/*.ts` and a bare `src/modules/example/commands/` all name a
|
|
@@ -9,7 +9,7 @@ Compose the installed workflow engine; do not bypass its executor, state machine
|
|
|
9
9
|
|
|
10
10
|
## Workflow
|
|
11
11
|
|
|
12
|
-
Route before reading: workflow definitions, activities, durable engine state, idempotency, tasks, and outputs stay on `ai-workflow`. Workflow-only work loads `.ai/guides/modules/workflows.md`, not `.ai/guides/contracts.md`; coordinating installed-host order, status, or quantity state also selects `module-data` + `umes` and loads `.ai/guides/contracts.md`, `.ai/guides/extensions.md`, and `om-system-extension`.
|
|
12
|
+
Route before reading: workflow definitions, activities, durable engine state, idempotency, tasks, and outputs stay on `ai-workflow`. Workflow-only work loads `.ai/guides/modules/workflows/index.md`, not `.ai/guides/contracts.md`; coordinating installed-host order, status, or quantity state also selects `module-data` + `umes` and loads `.ai/guides/contracts.md`, `.ai/guides/extensions.md`, and `om-system-extension`.
|
|
13
13
|
|
|
14
14
|
1. Read `.ai/guides/ai-workflows.md`; inspect the installed workflows module facts and use `om-framework-context` for exact service/activity contracts.
|
|
15
15
|
2. Always load `references/workflow-design.md` before defining steps, transitions, triggers, variables, tasks, compensation, or terminal states.
|
|
@@ -18,7 +18,7 @@ Route before reading: workflow definitions, activities, durable engine state, id
|
|
|
18
18
|
5. Run `yarn generate`; test event storms, retry/restart, rollback, duplicate signal/callback, cancellation, compensation failure, and scope isolation.
|
|
19
19
|
|
|
20
20
|
Durable work that coordinates host order, status, or quantity state must declare a stable output (`workflow-output-path`), even when work screens or user tasks are primary.
|
|
21
|
-
An onboarding workflow required for every new business account loads and declares `.ai/guides/modules/onboarding.md`, then uses `onTenantCreated` (`on-tenant-created-hook`).
|
|
21
|
+
An onboarding workflow required for every new business account loads and declares `.ai/guides/modules/onboarding/index.md`, then uses `onTenantCreated` (`on-tenant-created-hook`).
|
|
22
22
|
|
|
23
23
|
## Rules
|
|
24
24
|
|
|
@@ -16,7 +16,7 @@ Choose module AI versus file-agent orchestration, then implement typed inputs/ou
|
|
|
16
16
|
5. Test missing provider, denied ACL/scope, tool validation, budgets, approval/cancel/expire/stale version, artifact authorization, and generated registration.
|
|
17
17
|
|
|
18
18
|
An authorized AI file upload stays on the attachment branch; add integration or data-model context only for a custom transport, storage provider, or app-owned persistence.
|
|
19
|
-
An agent/tool that scores or explains customer, contact, lead, or deal records must load `.ai/guides/modules/customers.md`; read-only access still targets that host.
|
|
19
|
+
An agent/tool that scores or explains customer, contact, lead, or deal records must load `.ai/guides/modules/customers/index.md`; read-only access still targets that host.
|
|
20
20
|
|
|
21
21
|
## Rules
|
|
22
22
|
|
|
@@ -16,4 +16,4 @@ Load this reference before creating files.
|
|
|
16
16
|
|
|
17
17
|
Use exact installed orchestrator context for file agents; do not conflate them with product module agents.
|
|
18
18
|
|
|
19
|
-
MCP/OpenCode configuration, authentication, provider precedence, and session semantics are ask-first contract surfaces. Route them through the `ai-workflow` guide and the installed `.ai/guides/modules/ai_assistant.md` fact sheet rather than guessing.
|
|
19
|
+
MCP/OpenCode configuration, authentication, provider precedence, and session semantics are ask-first contract surfaces. Route them through the `ai-workflow` guide and the installed `.ai/guides/modules/ai_assistant/index.md` fact sheet rather than guessing.
|
package/dist/agentic/shared/ai/skills/om-module-scaffold/references/business-one-shot-blueprints.md
CHANGED
|
@@ -100,7 +100,7 @@ Before stopping, run `yarn generate` and then `yarn typecheck`. Any diagnostic m
|
|
|
100
100
|
|
|
101
101
|
| One-shot business brief | Mechanism | Routes | Smallest complete vertical slice | Key invariants |
|
|
102
102
|
|---|---|---|---|---|
|
|
103
|
-
| “Generate an app that gathers website leads and adds them to the CRM.” | App module owns public capture + UMES/events create or link CRM customer/deal; MUST read `.ai/guides/modules/customers.md`, invoke `om-data-model-design`, and report `smallest-validation` for the lead record and scalar CRM link | `M+U+B` (`+W` for async handoff) | public form, spam/consent validation, lead inbox, dedupe, qualification command, CRM handoff, attribution, success/error paths | public input never supplies scope; an explicit trusted config/domain binding selects the exact tenant+organization and missing, partial, or ambiguous bindings fail closed—never select or persist the first/oldest active tenant or organization; idempotency lookup and database uniqueness include tenant+organization; merge and revalidate mutation guards' `modifiedPayload` before command dispatch; PII encryption with `TenantDataEncryptionService` and `lookupHashCandidates`; CRM optional/degraded; handoff retry cannot duplicate |
|
|
103
|
+
| “Generate an app that gathers website leads and adds them to the CRM.” | App module owns public capture + UMES/events create or link CRM customer/deal; MUST read `.ai/guides/modules/customers/index.md`, invoke `om-data-model-design`, and report `smallest-validation` for the lead record and scalar CRM link | `M+U+B` (`+W` for async handoff) | public form, spam/consent validation, lead inbox, dedupe, qualification command, CRM handoff, attribution, success/error paths | public input never supplies scope; an explicit trusted config/domain binding selects the exact tenant+organization and missing, partial, or ambiguous bindings fail closed—never select or persist the first/oldest active tenant or organization; idempotency lookup and database uniqueness include tenant+organization; merge and revalidate mutation guards' `modifiedPayload` before command dispatch; PII encryption with `TenantDataEncryptionService` and `lookupHashCandidates`; CRM optional/degraded; handoff retry cannot duplicate |
|
|
104
104
|
| “Build partner referral intake connected to CRM.” | App module + UMES CRM handoff | `M+U+B` | partner-authenticated form, referral record/status, customer/deal match, owner assignment, partner-visible outcome | partner sees only its referrals; deterministic dedupe; immutable attribution; CRM IDs stored as scalars |
|
|
105
105
|
| “Assign incoming leads fairly across eligible staff.” | App assignment policy + UMES customer/staff seams | `M+U` | read both `customers` and `staff` facts; scoped cursor, deterministic selector, availability resolver, assignment command/audit, fallback | concurrency-safe round robin; retries preserve the winner; unauthorized/unavailable staff excluded; staff module optional |
|
|
106
106
|
| “Import trade-show badge scans and turn qualified leads into deals.” | App module + data-sync provider when scanner API is reusable + UMES | `M+P+U+W` | upload/sync, mapping preview, lead staging, dedupe, qualification queue, CRM conversion report | resumable/idempotent batches; row-level errors; encrypted credentials; no partial duplicate conversions |
|
|
@@ -2263,7 +2263,7 @@ function prepareCaseFrameworkContext(caseRecord, controllerRoot, runRoot) {
|
|
|
2263
2263
|
|
|
2264
2264
|
export function caseReadAllowlist(caseRecord, writable, appRoot) {
|
|
2265
2265
|
const skillIds = supportingSkillIds(caseRecord)
|
|
2266
|
-
|
|
2266
|
+
const declared = [
|
|
2267
2267
|
'AGENTS.md',
|
|
2268
2268
|
...exampleReadAllowlist(caseRecord, appRoot),
|
|
2269
2269
|
...(caseRecord.context?.required ?? []),
|
|
@@ -2277,7 +2277,12 @@ export function caseReadAllowlist(caseRecord, writable, appRoot) {
|
|
|
2277
2277
|
]),
|
|
2278
2278
|
...(caseRecord.materializedFrameworkContextPatterns ?? []),
|
|
2279
2279
|
...(writable ? caseRecord.allowedWrites ?? [] : []),
|
|
2280
|
-
]
|
|
2280
|
+
]
|
|
2281
|
+
const moduleFactSections = declared.flatMap((entry) => {
|
|
2282
|
+
const match = /^(\.ai\/guides\/(?:modules|reference-modules)\/[a-z0-9_]+)\/index\.md$/.exec(entry)
|
|
2283
|
+
return match ? [`${match[1]}/*.md`] : []
|
|
2284
|
+
})
|
|
2285
|
+
return [...new Set([...declared, ...moduleFactSections])].sort()
|
|
2281
2286
|
}
|
|
2282
2287
|
|
|
2283
2288
|
function permittedContextPath(relative, caseRecord) {
|
|
@@ -2288,7 +2293,11 @@ function permittedContextPath(relative, caseRecord) {
|
|
|
2288
2293
|
...permittedCaseRoutes(caseRecord).flatMap((route) => ROUTE_STANDARD_CONTEXT[route]?.guides ?? []),
|
|
2289
2294
|
...(caseRecord.materializedFrameworkContextPatterns ?? []),
|
|
2290
2295
|
]
|
|
2291
|
-
|
|
2296
|
+
const expandedContextPaths = contextPaths.flatMap((entry) => {
|
|
2297
|
+
const match = /^(\.ai\/guides\/(?:modules|reference-modules)\/[a-z0-9_]+)\/index\.md$/.exec(entry)
|
|
2298
|
+
return match ? [entry, `${match[1]}/*.md`] : [entry]
|
|
2299
|
+
})
|
|
2300
|
+
if (expandedContextPaths.some((pattern) => globToRegExp(pattern).test(relative))) return true
|
|
2292
2301
|
const skillPaths = supportingSkillPaths(caseRecord)
|
|
2293
2302
|
const skillRoots = [...contextPaths, ...skillPaths]
|
|
2294
2303
|
.filter((entry) => entry.endsWith('/SKILL.md'))
|
|
@@ -210,12 +210,20 @@ function expectedGuideOutputNames() {
|
|
|
210
210
|
}
|
|
211
211
|
collected.add("module-facts.json");
|
|
212
212
|
collected.add("module-facts.v2.json");
|
|
213
|
+
collected.add("reference-module-facts.json");
|
|
213
214
|
collected.add("framework-extension-points.md");
|
|
214
215
|
collected.add("upstream/AGENTS.md");
|
|
215
216
|
collected.add("upstream/BACKWARD_COMPATIBILITY.md");
|
|
216
217
|
collected.add("upstream/manifest.json");
|
|
217
218
|
for (const moduleId of FIXTURE_ENABLED_MODULES) {
|
|
218
|
-
|
|
219
|
+
const moduleFactsRoot = path.join(cliDir, "dist", "agentic", "guides", "modules", moduleId);
|
|
220
|
+
for (const file of fs.readdirSync(moduleFactsRoot)) {
|
|
221
|
+
if (file.endsWith(".md")) collected.add(normalizePath(path.join("modules", moduleId, file)));
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
const referenceFactsRoot = path.join(cliDir, "dist", "agentic", "guides", "reference-modules");
|
|
225
|
+
for (const file of listRelativeFiles(referenceFactsRoot)) {
|
|
226
|
+
collected.add(normalizePath(path.join("reference-modules", file)));
|
|
219
227
|
}
|
|
220
228
|
return Array.from(collected).sort();
|
|
221
229
|
}
|
|
@@ -252,7 +260,7 @@ test.describe("TC-INT-008: CLI agentic init mirrors standalone scaffolding asset
|
|
|
252
260
|
for (const moduleId of FIXTURE_ENABLED_MODULES) {
|
|
253
261
|
expect(agentsSource).toContain(`\`${moduleId}\``);
|
|
254
262
|
}
|
|
255
|
-
expect(agentsSource).toContain("`.ai/guides/modules/<id
|
|
263
|
+
expect(agentsSource).toContain("`.ai/guides/modules/<id>/index.md`");
|
|
256
264
|
expect(agentsSource.match(/\.ai\/guides\/modules\//g)).toHaveLength(1);
|
|
257
265
|
expect(agentsSource).not.toContain("`auth`");
|
|
258
266
|
expect(agentsSource).not.toContain("Core CRM capabilities");
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/lib/__integration__/TC-INT-008.spec.ts"],
|
|
4
|
-
"sourcesContent": ["import { expect, test } from '@playwright/test'\nimport { execFileSync } from 'node:child_process'\nimport fs from 'node:fs'\nimport os from 'node:os'\nimport path from 'node:path'\nimport { fileURLToPath } from 'node:url'\n\nconst __dirname = path.dirname(fileURLToPath(import.meta.url))\nconst repoRoot = path.resolve(__dirname, '..', '..', '..', '..', '..')\nconst cliDir = path.join(repoRoot, 'packages', 'cli')\nconst cliBin = path.join(cliDir, 'dist', 'bin.js')\nconst cliBuildScript = path.join(cliDir, 'build.mjs')\nconst cliIntegrationRunnerPath = path.join(cliDir, 'src', 'lib', 'testing', 'integration.ts')\nconst standaloneTemplatePackageJsonPath = path.join(repoRoot, 'packages', 'create-app', 'template', 'package.json.template')\nconst agenticRoot = path.join(repoRoot, 'packages', 'create-app', 'agentic')\nconst packagesRoot = path.join(repoRoot, 'packages')\nconst coreVersion = JSON.parse(fs.readFileSync(path.join(packagesRoot, 'core', 'package.json'), 'utf8')).version as string\nconst UNROUTED_PACKAGE_GUIDES = new Set(['cache', 'core', 'events', 'queue', 'search', 'shared', 'ui'])\n\n// Modules the standalone fixture enables in src/modules.ts. Both are on the\n// fact-sheet allowlist, so agentic:init must ship exactly their fact-sheets\n// (enabled \u2229 allowlist \u2014 spec D6) and list them in the AGENTS.md marker block.\nconst FIXTURE_ENABLED_MODULES = ['customers', 'sales']\n\nfunction normalizePath(value: string): string {\n return value.split(path.sep).join('/')\n}\n\nfunction runCommand(command: string, args: string[], cwd: string, env: NodeJS.ProcessEnv = {}): string {\n return execFileSync(command, args, {\n cwd,\n encoding: 'utf8',\n env: {\n ...process.env,\n FORCE_COLOR: '0',\n NODE_NO_WARNINGS: '1',\n // Keep the test hermetic: agentic:init runs scripts/install-skills.sh,\n // whose external step (`npx skills add`) needs the network. Local tier\n // symlinks are still installed.\n OM_SKIP_EXTERNAL_SKILLS: '1',\n ...env,\n },\n })\n}\n\nfunction runMercato(args: string[], cwd: string): string {\n return runCommand(process.execPath, [cliBin, ...args], cwd)\n}\n\nfunction writeFile(filePath: string, content: string): void {\n fs.mkdirSync(path.dirname(filePath), { recursive: true })\n fs.writeFileSync(filePath, content)\n}\n\nfunction ensureCliBuilt(): void {\n runCommand(process.execPath, [cliBuildScript], cliDir)\n}\n\nfunction createStandaloneFixture(rootDir: string): string {\n const appDir = path.join(rootDir, 'sample-store')\n writeFile(\n path.join(appDir, 'package.json'),\n JSON.stringify(\n {\n name: 'sample-store',\n private: true,\n dependencies: { '@open-mercato/core': coreVersion },\n },\n null,\n 2,\n ),\n )\n const moduleEntries = FIXTURE_ENABLED_MODULES\n .map((moduleId) => ` { id: '${moduleId}', from: '@open-mercato/core' },`)\n .join('\\n')\n writeFile(path.join(appDir, 'src', 'modules.ts'), `export const enabledModules = [\\n${moduleEntries}\\n]\\n`)\n return appDir\n}\n\nfunction installFakeFrameworkPackage(appDir: string): string {\n const packageRoot = path.join(appDir, 'node_modules', '@open-mercato', 'core')\n writeFile(path.join(packageRoot, 'package.json'), JSON.stringify({\n name: '@open-mercato/core',\n version: coreVersion,\n type: 'module',\n exports: { '.': './dist/index.js' },\n }))\n writeFile(path.join(packageRoot, 'dist', 'index.js'), 'export {}\\n')\n writeFile(path.join(packageRoot, 'AGENTS.md'), '# Installed core instructions\\n')\n for (const moduleId of FIXTURE_ENABLED_MODULES) {\n writeFile(path.join(packageRoot, 'src', 'modules', moduleId, 'AGENTS.md'), `# Installed ${moduleId} instructions\\n`)\n writeFile(\n path.join(packageRoot, 'src', 'modules', moduleId, 'data', 'entities.ts'),\n `export class ${moduleId === 'customers' ? 'Person' : 'Sale'} {}\\n`,\n )\n }\n return packageRoot\n}\n\nfunction snapshotTextFiles(rootDir: string): Record<string, string> {\n return Object.fromEntries(\n listRelativeFiles(rootDir).map((relativePath) => [\n relativePath,\n fs.readFileSync(path.join(rootDir, relativePath), 'utf8'),\n ]),\n )\n}\n\nfunction listRelativeFiles(rootDir: string): string[] {\n if (!fs.existsSync(rootDir)) {\n return []\n }\n\n const collected: string[] = []\n for (const entry of fs.readdirSync(rootDir, { withFileTypes: true })) {\n const absolutePath = path.join(rootDir, entry.name)\n if (entry.isDirectory()) {\n for (const nestedPath of listRelativeFiles(absolutePath)) {\n collected.push(path.join(entry.name, nestedPath))\n }\n continue\n }\n if (entry.isFile()) {\n collected.push(entry.name)\n }\n }\n\n return collected.map(normalizePath).sort()\n}\n\nfunction mapSharedSourceToOutput(relativePath: string): string {\n if (relativePath === 'AGENTS.md.template') {\n return 'AGENTS.md'\n }\n\n if (relativePath.startsWith('scripts/')) {\n return relativePath\n }\n\n if (!relativePath.startsWith('ai/')) {\n throw new Error(`Unexpected shared source path: ${relativePath}`)\n }\n\n return normalizePath(path.join('.ai', relativePath.slice('ai/'.length)))\n}\n\nfunction mapClaudeSourceToOutput(relativePath: string): string {\n if (relativePath === 'CLAUDE.md.template') {\n return 'CLAUDE.md'\n }\n if (relativePath === 'settings.json') {\n return '.claude/settings.json'\n }\n if (relativePath === 'mcp.json.example') {\n return '.mcp.json.example'\n }\n if (relativePath.startsWith('hooks/')) {\n return normalizePath(path.join('.claude', relativePath))\n }\n\n throw new Error(`Unexpected Claude source path: ${relativePath}`)\n}\n\nfunction mapCursorSourceToOutput(relativePath: string): string {\n if (relativePath === 'hooks.json') {\n return '.cursor/hooks.json'\n }\n if (relativePath === 'mcp.json.example') {\n return '.cursor/mcp.json.example'\n }\n if (relativePath.startsWith('hooks/') || relativePath.startsWith('rules/')) {\n return normalizePath(path.join('.cursor', relativePath))\n }\n\n throw new Error(`Unexpected Cursor source path: ${relativePath}`)\n}\n\nfunction mapCodexSourceToOutput(relativePath: string): string | null {\n if (relativePath === 'mcp.json.example') {\n return '.codex/mcp.json.example'\n }\n if (relativePath === 'enforcement-rules.md') {\n return null\n }\n\n throw new Error(`Unexpected Codex source path: ${relativePath}`)\n}\n\nfunction readPlaywrightConfigPathFromTemplate(): string {\n const packageTemplate = JSON.parse(fs.readFileSync(standaloneTemplatePackageJsonPath, 'utf8')) as {\n scripts?: Record<string, string>\n }\n const integrationScript = packageTemplate.scripts?.['test:integration']\n if (!integrationScript) {\n throw new Error('Standalone template is missing the test:integration script')\n }\n\n const configPathMatch = integrationScript.match(/--config\\s+([^\\s]+)/)\n if (!configPathMatch?.[1]) {\n throw new Error('Standalone template test:integration script is missing --config')\n }\n\n return normalizePath(configPathMatch[1])\n}\n\nfunction readPlaywrightConfigPathFromCliRunner(): string {\n const integrationRunnerSource = fs.readFileSync(cliIntegrationRunnerPath, 'utf8')\n const configPathMatch = integrationRunnerSource.match(/const PLAYWRIGHT_INTEGRATION_CONFIG_PATH = '([^']+)'/)\n if (!configPathMatch?.[1]) {\n throw new Error('CLI integration runner is missing PLAYWRIGHT_INTEGRATION_CONFIG_PATH')\n }\n\n return normalizePath(configPathMatch[1])\n}\n\nfunction expectedGuideOutputNames(): string[] {\n const collected = new Set<string>()\n\n // Static conceptual guides checked into create-app (e.g. module-system.md) are\n // bundled into dist/agentic/guides by the CLI build and copied wholesale.\n const staticGuidesRoot = path.join(agenticRoot, 'guides')\n if (fs.existsSync(staticGuidesRoot)) {\n for (const entry of fs.readdirSync(staticGuidesRoot, { withFileTypes: true })) {\n if (entry.isFile() && entry.name.endsWith('.md')) {\n collected.add(entry.name)\n }\n }\n }\n\n for (const packageName of fs.readdirSync(packagesRoot)) {\n const packageGuide = path.join(packagesRoot, packageName, 'agentic', 'standalone-guide.md')\n if (fs.existsSync(packageGuide) && !UNROUTED_PACKAGE_GUIDES.has(packageName)) {\n collected.add(`${packageName}.md`)\n }\n\n const modulesRoot = path.join(packagesRoot, packageName, 'src', 'modules')\n if (!fs.existsSync(modulesRoot)) {\n continue\n }\n\n for (const moduleName of fs.readdirSync(modulesRoot)) {\n const moduleGuide = path.join(modulesRoot, moduleName, 'agentic', 'standalone-guide.md')\n if (fs.existsSync(moduleGuide)) {\n collected.add(`${packageName}.${moduleName}.md`)\n }\n }\n }\n\n // Generated fact-sheet artifacts (spec 2026-06-27-ts-morph-module-fact-sheets):\n // the v1 module-facts.json and corrected module-facts.v2.json sidecars are copied\n // as-is and fact-sheets are filtered to the fixture's enabled modules. The legacy\n // core.<module>.md redirect stubs are no longer\n // emitted (#3754). framework-extension-points.md is likewise generated into\n // dist/agentic/guides by both build.mjs pipelines (#4810) rather than checked in\n // alongside the static conceptual guides, so it needs an explicit entry here.\n collected.add('module-facts.json')\n collected.add('module-facts.v2.json')\n collected.add('framework-extension-points.md')\n collected.add('upstream/AGENTS.md')\n collected.add('upstream/BACKWARD_COMPATIBILITY.md')\n collected.add('upstream/manifest.json')\n for (const moduleId of FIXTURE_ENABLED_MODULES) {\n collected.add(normalizePath(path.join('modules', `${moduleId}.md`)))\n }\n\n return Array.from(collected).sort()\n}\n\nfunction assertPathsExist(appDir: string, relativePaths: string[]): void {\n const missingPaths = relativePaths.filter((relativePath) => !fs.existsSync(path.join(appDir, relativePath)))\n expect(missingPaths).toEqual([])\n}\n\ntest.describe('TC-INT-008: CLI agentic init mirrors standalone scaffolding assets', () => {\n test.beforeAll(() => {\n ensureCliBuilt()\n })\n\n test('should run bootstrap-free and generate the shared, guide, and tool-specific agentic files', () => {\n const tempRoot = fs.mkdtempSync(path.join(os.tmpdir(), 'mercato-cli-agentic-'))\n\n try {\n const appDir = createStandaloneFixture(tempRoot)\n const standalonePlaywrightConfigPath = readPlaywrightConfigPathFromTemplate()\n const cliPlaywrightConfigPath = readPlaywrightConfigPathFromCliRunner()\n const commandOutput = runMercato(['agentic:init', '--tool=claude-code,codex,cursor'], appDir)\n\n expect(cliPlaywrightConfigPath).toBe(standalonePlaywrightConfigPath)\n expect(commandOutput).toContain('Agentic setup complete:')\n expect(fs.existsSync(path.join(appDir, '.mercato', 'generated'))).toBe(false)\n\n const sharedOutputs = listRelativeFiles(path.join(agenticRoot, 'shared')).map(mapSharedSourceToOutput)\n const claudeOutputs = listRelativeFiles(path.join(agenticRoot, 'claude-code')).map(mapClaudeSourceToOutput)\n const cursorOutputs = listRelativeFiles(path.join(agenticRoot, 'cursor')).map(mapCursorSourceToOutput)\n const codexOutputs = listRelativeFiles(path.join(agenticRoot, 'codex'))\n .map(mapCodexSourceToOutput)\n .filter((relativePath): relativePath is string => relativePath !== null)\n\n expect(sharedOutputs).toContain(standalonePlaywrightConfigPath)\n assertPathsExist(appDir, [...sharedOutputs, ...claudeOutputs, ...cursorOutputs, ...codexOutputs])\n expect(fs.existsSync(path.join(appDir, standalonePlaywrightConfigPath))).toBe(true)\n\n const generatedGuideNames = listRelativeFiles(path.join(appDir, '.ai', 'guides'))\n expect(generatedGuideNames).toEqual(expectedGuideOutputNames())\n\n const agentsSource = fs.readFileSync(path.join(appDir, 'AGENTS.md'), 'utf8')\n expect(agentsSource).toContain('<!-- CODEX_ENFORCEMENT_RULES_START -->')\n expect(agentsSource).toContain('.ai/guides/upstream/BACKWARD_COMPATIBILITY.md')\n\n // The Module-Specific Guides marker block is a compact enabled-module ID\n // index (enabled \u2229 bundled) plus one progressively loaded path pattern.\n for (const moduleId of FIXTURE_ENABLED_MODULES) {\n expect(agentsSource).toContain(`\\`${moduleId}\\``)\n }\n expect(agentsSource).toContain('`.ai/guides/modules/<id>.md`')\n expect(agentsSource.match(/\\.ai\\/guides\\/modules\\//g)).toHaveLength(1)\n expect(agentsSource).not.toContain('`auth`')\n expect(agentsSource).not.toContain('Core CRM capabilities')\n\n const specsReadmeSource = fs.readFileSync(path.join(appDir, '.ai', 'specs', 'README.md'), 'utf8')\n expect(specsReadmeSource).toContain('sample-store')\n\n const cursorRulesSource = fs.readFileSync(path.join(appDir, '.cursor', 'rules', 'open-mercato.mdc'), 'utf8')\n expect(cursorRulesSource).toContain('sample-store')\n\n // om-spec-writing moved to the external open-mercato/skills collection\n // (installed via `yarn install-skills`), so agentic:init must not ship a copy.\n expect(fs.existsSync(path.join(appDir, '.ai', 'skills', 'om-spec-writing'))).toBe(false)\n expect(fs.existsSync(path.join(appDir, 'scripts', 'install-skills.sh'))).toBe(true)\n\n // install-skills.sh (run by agentic:init) installs every local tier skill once,\n // into the canonical .agents/skills/. Codex and Cursor read that directory\n // natively, so they get no skills directory of their own; Claude Code cannot,\n // so it keeps a link layer pointing back at the canonical copy.\n const tiersManifest = JSON.parse(\n fs.readFileSync(path.join(agenticRoot, 'shared', 'ai', 'skills', 'tiers.json'), 'utf8'),\n ) as { default: string[]; tiers: Record<string, { skills: string[] }> }\n const defaultTierSkills = tiersManifest.default.flatMap((tierName) => tiersManifest.tiers[tierName].skills)\n expect(defaultTierSkills.length).toBeGreaterThan(0)\n\n for (const skillName of defaultTierSkills) {\n const canonicalLinkPath = path.join(appDir, '.agents', 'skills', skillName)\n expect(fs.lstatSync(canonicalLinkPath).isSymbolicLink()).toBe(true)\n expect(normalizePath(fs.readlinkSync(canonicalLinkPath))).toBe(`../../.ai/skills/${skillName}`)\n\n const claudeLinkPath = path.join(appDir, '.claude', 'skills', skillName)\n expect(fs.lstatSync(claudeLinkPath).isSymbolicLink()).toBe(true)\n expect(normalizePath(fs.readlinkSync(claudeLinkPath))).toBe(`../../.agents/skills/${skillName}`)\n }\n\n expect(fs.existsSync(path.join(appDir, '.codex', 'skills'))).toBe(false)\n expect(fs.existsSync(path.join(appDir, '.cursor', 'skills'))).toBe(false)\n } finally {\n fs.rmSync(tempRoot, { recursive: true, force: true })\n }\n })\n\n test('emits a runnable exact-version framework context escape hatch for an installed package', () => {\n const tempRoot = fs.mkdtempSync(path.join(os.tmpdir(), 'mercato-cli-framework-context-'))\n\n try {\n const appDir = createStandaloneFixture(tempRoot)\n const packageRoot = installFakeFrameworkPackage(appDir)\n const resolvedPackageRoot = fs.realpathSync(packageRoot)\n const packageBefore = snapshotTextFiles(packageRoot)\n\n runMercato(['agentic:init', '--tool=codex'], appDir)\n const generatedScript = path.join(appDir, 'scripts', 'framework-context.mjs')\n expect(fs.existsSync(generatedScript)).toBe(true)\n\n const output = runCommand(\n process.execPath,\n [generatedScript, '--module', 'customers', '--query', 'Person', '--json'],\n appDir,\n // The generated standalone helper must not depend on a globally\n // installed ripgrep binary; process.execPath is already absolute.\n { PATH: '', Path: '' },\n )\n const context = JSON.parse(output) as {\n module: string\n package: { name: string; version: string; root: string }\n sourceKind: string\n sourceRoot: string\n materializedSource: string\n instructions: Array<{ kind: string; path: string | null; materializedPath?: string }>\n boundedSearch: { status: string; matches: number; maxMatches: number; result: string }\n warnings: string[]\n }\n\n expect(context.module).toBe('customers')\n expect(context.package).toEqual({ name: '@open-mercato/core', version: coreVersion, root: resolvedPackageRoot })\n expect(context.sourceKind).toBe('source')\n expect(normalizePath(context.sourceRoot)).toBe(normalizePath(path.join(resolvedPackageRoot, 'src', 'modules', 'customers')))\n expect(context.instructions.filter((entry) => entry.path).map((entry) => entry.kind)).toEqual([\n 'standalone-root',\n 'upstream-bc',\n 'package',\n 'module-1',\n 'upstream-root',\n ])\n expect(context.instructions.filter((entry) => entry.path).every((entry) => entry.materializedPath)).toBe(true)\n expect(context.boundedSearch).toMatchObject({ status: 'matched', matches: 1, maxMatches: 200 })\n expect(fs.existsSync(path.join(appDir, context.materializedSource))).toBe(true)\n expect(fs.existsSync(path.join(appDir, context.boundedSearch.result))).toBe(true)\n expect(context.warnings.some((warning) => warning.includes('Generated facts for customers are stale'))).toBe(false)\n expect(snapshotTextFiles(packageRoot)).toEqual(packageBefore)\n } finally {\n fs.rmSync(tempRoot, { recursive: true, force: true })\n }\n })\n})\n"],
|
|
5
|
-
"mappings": "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
|
|
4
|
+
"sourcesContent": ["import { expect, test } from '@playwright/test'\nimport { execFileSync } from 'node:child_process'\nimport fs from 'node:fs'\nimport os from 'node:os'\nimport path from 'node:path'\nimport { fileURLToPath } from 'node:url'\n\nconst __dirname = path.dirname(fileURLToPath(import.meta.url))\nconst repoRoot = path.resolve(__dirname, '..', '..', '..', '..', '..')\nconst cliDir = path.join(repoRoot, 'packages', 'cli')\nconst cliBin = path.join(cliDir, 'dist', 'bin.js')\nconst cliBuildScript = path.join(cliDir, 'build.mjs')\nconst cliIntegrationRunnerPath = path.join(cliDir, 'src', 'lib', 'testing', 'integration.ts')\nconst standaloneTemplatePackageJsonPath = path.join(repoRoot, 'packages', 'create-app', 'template', 'package.json.template')\nconst agenticRoot = path.join(repoRoot, 'packages', 'create-app', 'agentic')\nconst packagesRoot = path.join(repoRoot, 'packages')\nconst coreVersion = JSON.parse(fs.readFileSync(path.join(packagesRoot, 'core', 'package.json'), 'utf8')).version as string\nconst UNROUTED_PACKAGE_GUIDES = new Set(['cache', 'core', 'events', 'queue', 'search', 'shared', 'ui'])\n\n// Modules the standalone fixture enables in src/modules.ts. Both are on the\n// fact-sheet allowlist, so agentic:init must ship exactly their fact-sheets\n// (enabled \u2229 allowlist \u2014 spec D6) and list them in the AGENTS.md marker block.\nconst FIXTURE_ENABLED_MODULES = ['customers', 'sales']\n\nfunction normalizePath(value: string): string {\n return value.split(path.sep).join('/')\n}\n\nfunction runCommand(command: string, args: string[], cwd: string, env: NodeJS.ProcessEnv = {}): string {\n return execFileSync(command, args, {\n cwd,\n encoding: 'utf8',\n env: {\n ...process.env,\n FORCE_COLOR: '0',\n NODE_NO_WARNINGS: '1',\n // Keep the test hermetic: agentic:init runs scripts/install-skills.sh,\n // whose external step (`npx skills add`) needs the network. Local tier\n // symlinks are still installed.\n OM_SKIP_EXTERNAL_SKILLS: '1',\n ...env,\n },\n })\n}\n\nfunction runMercato(args: string[], cwd: string): string {\n return runCommand(process.execPath, [cliBin, ...args], cwd)\n}\n\nfunction writeFile(filePath: string, content: string): void {\n fs.mkdirSync(path.dirname(filePath), { recursive: true })\n fs.writeFileSync(filePath, content)\n}\n\nfunction ensureCliBuilt(): void {\n runCommand(process.execPath, [cliBuildScript], cliDir)\n}\n\nfunction createStandaloneFixture(rootDir: string): string {\n const appDir = path.join(rootDir, 'sample-store')\n writeFile(\n path.join(appDir, 'package.json'),\n JSON.stringify(\n {\n name: 'sample-store',\n private: true,\n dependencies: { '@open-mercato/core': coreVersion },\n },\n null,\n 2,\n ),\n )\n const moduleEntries = FIXTURE_ENABLED_MODULES\n .map((moduleId) => ` { id: '${moduleId}', from: '@open-mercato/core' },`)\n .join('\\n')\n writeFile(path.join(appDir, 'src', 'modules.ts'), `export const enabledModules = [\\n${moduleEntries}\\n]\\n`)\n return appDir\n}\n\nfunction installFakeFrameworkPackage(appDir: string): string {\n const packageRoot = path.join(appDir, 'node_modules', '@open-mercato', 'core')\n writeFile(path.join(packageRoot, 'package.json'), JSON.stringify({\n name: '@open-mercato/core',\n version: coreVersion,\n type: 'module',\n exports: { '.': './dist/index.js' },\n }))\n writeFile(path.join(packageRoot, 'dist', 'index.js'), 'export {}\\n')\n writeFile(path.join(packageRoot, 'AGENTS.md'), '# Installed core instructions\\n')\n for (const moduleId of FIXTURE_ENABLED_MODULES) {\n writeFile(path.join(packageRoot, 'src', 'modules', moduleId, 'AGENTS.md'), `# Installed ${moduleId} instructions\\n`)\n writeFile(\n path.join(packageRoot, 'src', 'modules', moduleId, 'data', 'entities.ts'),\n `export class ${moduleId === 'customers' ? 'Person' : 'Sale'} {}\\n`,\n )\n }\n return packageRoot\n}\n\nfunction snapshotTextFiles(rootDir: string): Record<string, string> {\n return Object.fromEntries(\n listRelativeFiles(rootDir).map((relativePath) => [\n relativePath,\n fs.readFileSync(path.join(rootDir, relativePath), 'utf8'),\n ]),\n )\n}\n\nfunction listRelativeFiles(rootDir: string): string[] {\n if (!fs.existsSync(rootDir)) {\n return []\n }\n\n const collected: string[] = []\n for (const entry of fs.readdirSync(rootDir, { withFileTypes: true })) {\n const absolutePath = path.join(rootDir, entry.name)\n if (entry.isDirectory()) {\n for (const nestedPath of listRelativeFiles(absolutePath)) {\n collected.push(path.join(entry.name, nestedPath))\n }\n continue\n }\n if (entry.isFile()) {\n collected.push(entry.name)\n }\n }\n\n return collected.map(normalizePath).sort()\n}\n\nfunction mapSharedSourceToOutput(relativePath: string): string {\n if (relativePath === 'AGENTS.md.template') {\n return 'AGENTS.md'\n }\n\n if (relativePath.startsWith('scripts/')) {\n return relativePath\n }\n\n if (!relativePath.startsWith('ai/')) {\n throw new Error(`Unexpected shared source path: ${relativePath}`)\n }\n\n return normalizePath(path.join('.ai', relativePath.slice('ai/'.length)))\n}\n\nfunction mapClaudeSourceToOutput(relativePath: string): string {\n if (relativePath === 'CLAUDE.md.template') {\n return 'CLAUDE.md'\n }\n if (relativePath === 'settings.json') {\n return '.claude/settings.json'\n }\n if (relativePath === 'mcp.json.example') {\n return '.mcp.json.example'\n }\n if (relativePath.startsWith('hooks/')) {\n return normalizePath(path.join('.claude', relativePath))\n }\n\n throw new Error(`Unexpected Claude source path: ${relativePath}`)\n}\n\nfunction mapCursorSourceToOutput(relativePath: string): string {\n if (relativePath === 'hooks.json') {\n return '.cursor/hooks.json'\n }\n if (relativePath === 'mcp.json.example') {\n return '.cursor/mcp.json.example'\n }\n if (relativePath.startsWith('hooks/') || relativePath.startsWith('rules/')) {\n return normalizePath(path.join('.cursor', relativePath))\n }\n\n throw new Error(`Unexpected Cursor source path: ${relativePath}`)\n}\n\nfunction mapCodexSourceToOutput(relativePath: string): string | null {\n if (relativePath === 'mcp.json.example') {\n return '.codex/mcp.json.example'\n }\n if (relativePath === 'enforcement-rules.md') {\n return null\n }\n\n throw new Error(`Unexpected Codex source path: ${relativePath}`)\n}\n\nfunction readPlaywrightConfigPathFromTemplate(): string {\n const packageTemplate = JSON.parse(fs.readFileSync(standaloneTemplatePackageJsonPath, 'utf8')) as {\n scripts?: Record<string, string>\n }\n const integrationScript = packageTemplate.scripts?.['test:integration']\n if (!integrationScript) {\n throw new Error('Standalone template is missing the test:integration script')\n }\n\n const configPathMatch = integrationScript.match(/--config\\s+([^\\s]+)/)\n if (!configPathMatch?.[1]) {\n throw new Error('Standalone template test:integration script is missing --config')\n }\n\n return normalizePath(configPathMatch[1])\n}\n\nfunction readPlaywrightConfigPathFromCliRunner(): string {\n const integrationRunnerSource = fs.readFileSync(cliIntegrationRunnerPath, 'utf8')\n const configPathMatch = integrationRunnerSource.match(/const PLAYWRIGHT_INTEGRATION_CONFIG_PATH = '([^']+)'/)\n if (!configPathMatch?.[1]) {\n throw new Error('CLI integration runner is missing PLAYWRIGHT_INTEGRATION_CONFIG_PATH')\n }\n\n return normalizePath(configPathMatch[1])\n}\n\nfunction expectedGuideOutputNames(): string[] {\n const collected = new Set<string>()\n\n // Static conceptual guides checked into create-app (e.g. module-system.md) are\n // bundled into dist/agentic/guides by the CLI build and copied wholesale.\n const staticGuidesRoot = path.join(agenticRoot, 'guides')\n if (fs.existsSync(staticGuidesRoot)) {\n for (const entry of fs.readdirSync(staticGuidesRoot, { withFileTypes: true })) {\n if (entry.isFile() && entry.name.endsWith('.md')) {\n collected.add(entry.name)\n }\n }\n }\n\n for (const packageName of fs.readdirSync(packagesRoot)) {\n const packageGuide = path.join(packagesRoot, packageName, 'agentic', 'standalone-guide.md')\n if (fs.existsSync(packageGuide) && !UNROUTED_PACKAGE_GUIDES.has(packageName)) {\n collected.add(`${packageName}.md`)\n }\n\n const modulesRoot = path.join(packagesRoot, packageName, 'src', 'modules')\n if (!fs.existsSync(modulesRoot)) {\n continue\n }\n\n for (const moduleName of fs.readdirSync(modulesRoot)) {\n const moduleGuide = path.join(modulesRoot, moduleName, 'agentic', 'standalone-guide.md')\n if (fs.existsSync(moduleGuide)) {\n collected.add(`${packageName}.${moduleName}.md`)\n }\n }\n }\n\n // Generated fact-sheet artifacts (spec 2026-06-27-ts-morph-module-fact-sheets):\n // the v1/v2 sidecars and disabled local-reference projection are copied as-is,\n // while installed fact-sheets are filtered to the fixture's enabled modules. The legacy\n // core.<module>.md redirect stubs are no longer\n // emitted (#3754). framework-extension-points.md is likewise generated into\n // dist/agentic/guides by both build.mjs pipelines (#4810) rather than checked in\n // alongside the static conceptual guides, so it needs an explicit entry here.\n collected.add('module-facts.json')\n collected.add('module-facts.v2.json')\n collected.add('reference-module-facts.json')\n collected.add('framework-extension-points.md')\n collected.add('upstream/AGENTS.md')\n collected.add('upstream/BACKWARD_COMPATIBILITY.md')\n collected.add('upstream/manifest.json')\n for (const moduleId of FIXTURE_ENABLED_MODULES) {\n const moduleFactsRoot = path.join(cliDir, 'dist', 'agentic', 'guides', 'modules', moduleId)\n for (const file of fs.readdirSync(moduleFactsRoot)) {\n if (file.endsWith('.md')) collected.add(normalizePath(path.join('modules', moduleId, file)))\n }\n }\n const referenceFactsRoot = path.join(cliDir, 'dist', 'agentic', 'guides', 'reference-modules')\n for (const file of listRelativeFiles(referenceFactsRoot)) {\n collected.add(normalizePath(path.join('reference-modules', file)))\n }\n\n return Array.from(collected).sort()\n}\n\nfunction assertPathsExist(appDir: string, relativePaths: string[]): void {\n const missingPaths = relativePaths.filter((relativePath) => !fs.existsSync(path.join(appDir, relativePath)))\n expect(missingPaths).toEqual([])\n}\n\ntest.describe('TC-INT-008: CLI agentic init mirrors standalone scaffolding assets', () => {\n test.beforeAll(() => {\n ensureCliBuilt()\n })\n\n test('should run bootstrap-free and generate the shared, guide, and tool-specific agentic files', () => {\n const tempRoot = fs.mkdtempSync(path.join(os.tmpdir(), 'mercato-cli-agentic-'))\n\n try {\n const appDir = createStandaloneFixture(tempRoot)\n const standalonePlaywrightConfigPath = readPlaywrightConfigPathFromTemplate()\n const cliPlaywrightConfigPath = readPlaywrightConfigPathFromCliRunner()\n const commandOutput = runMercato(['agentic:init', '--tool=claude-code,codex,cursor'], appDir)\n\n expect(cliPlaywrightConfigPath).toBe(standalonePlaywrightConfigPath)\n expect(commandOutput).toContain('Agentic setup complete:')\n expect(fs.existsSync(path.join(appDir, '.mercato', 'generated'))).toBe(false)\n\n const sharedOutputs = listRelativeFiles(path.join(agenticRoot, 'shared')).map(mapSharedSourceToOutput)\n const claudeOutputs = listRelativeFiles(path.join(agenticRoot, 'claude-code')).map(mapClaudeSourceToOutput)\n const cursorOutputs = listRelativeFiles(path.join(agenticRoot, 'cursor')).map(mapCursorSourceToOutput)\n const codexOutputs = listRelativeFiles(path.join(agenticRoot, 'codex'))\n .map(mapCodexSourceToOutput)\n .filter((relativePath): relativePath is string => relativePath !== null)\n\n expect(sharedOutputs).toContain(standalonePlaywrightConfigPath)\n assertPathsExist(appDir, [...sharedOutputs, ...claudeOutputs, ...cursorOutputs, ...codexOutputs])\n expect(fs.existsSync(path.join(appDir, standalonePlaywrightConfigPath))).toBe(true)\n\n const generatedGuideNames = listRelativeFiles(path.join(appDir, '.ai', 'guides'))\n expect(generatedGuideNames).toEqual(expectedGuideOutputNames())\n\n const agentsSource = fs.readFileSync(path.join(appDir, 'AGENTS.md'), 'utf8')\n expect(agentsSource).toContain('<!-- CODEX_ENFORCEMENT_RULES_START -->')\n expect(agentsSource).toContain('.ai/guides/upstream/BACKWARD_COMPATIBILITY.md')\n\n // The Module-Specific Guides marker block is a compact enabled-module ID\n // index (enabled \u2229 bundled) plus one progressively loaded path pattern.\n for (const moduleId of FIXTURE_ENABLED_MODULES) {\n expect(agentsSource).toContain(`\\`${moduleId}\\``)\n }\n expect(agentsSource).toContain('`.ai/guides/modules/<id>/index.md`')\n expect(agentsSource.match(/\\.ai\\/guides\\/modules\\//g)).toHaveLength(1)\n expect(agentsSource).not.toContain('`auth`')\n expect(agentsSource).not.toContain('Core CRM capabilities')\n\n const specsReadmeSource = fs.readFileSync(path.join(appDir, '.ai', 'specs', 'README.md'), 'utf8')\n expect(specsReadmeSource).toContain('sample-store')\n\n const cursorRulesSource = fs.readFileSync(path.join(appDir, '.cursor', 'rules', 'open-mercato.mdc'), 'utf8')\n expect(cursorRulesSource).toContain('sample-store')\n\n // om-spec-writing moved to the external open-mercato/skills collection\n // (installed via `yarn install-skills`), so agentic:init must not ship a copy.\n expect(fs.existsSync(path.join(appDir, '.ai', 'skills', 'om-spec-writing'))).toBe(false)\n expect(fs.existsSync(path.join(appDir, 'scripts', 'install-skills.sh'))).toBe(true)\n\n // install-skills.sh (run by agentic:init) installs every local tier skill once,\n // into the canonical .agents/skills/. Codex and Cursor read that directory\n // natively, so they get no skills directory of their own; Claude Code cannot,\n // so it keeps a link layer pointing back at the canonical copy.\n const tiersManifest = JSON.parse(\n fs.readFileSync(path.join(agenticRoot, 'shared', 'ai', 'skills', 'tiers.json'), 'utf8'),\n ) as { default: string[]; tiers: Record<string, { skills: string[] }> }\n const defaultTierSkills = tiersManifest.default.flatMap((tierName) => tiersManifest.tiers[tierName].skills)\n expect(defaultTierSkills.length).toBeGreaterThan(0)\n\n for (const skillName of defaultTierSkills) {\n const canonicalLinkPath = path.join(appDir, '.agents', 'skills', skillName)\n expect(fs.lstatSync(canonicalLinkPath).isSymbolicLink()).toBe(true)\n expect(normalizePath(fs.readlinkSync(canonicalLinkPath))).toBe(`../../.ai/skills/${skillName}`)\n\n const claudeLinkPath = path.join(appDir, '.claude', 'skills', skillName)\n expect(fs.lstatSync(claudeLinkPath).isSymbolicLink()).toBe(true)\n expect(normalizePath(fs.readlinkSync(claudeLinkPath))).toBe(`../../.agents/skills/${skillName}`)\n }\n\n expect(fs.existsSync(path.join(appDir, '.codex', 'skills'))).toBe(false)\n expect(fs.existsSync(path.join(appDir, '.cursor', 'skills'))).toBe(false)\n } finally {\n fs.rmSync(tempRoot, { recursive: true, force: true })\n }\n })\n\n test('emits a runnable exact-version framework context escape hatch for an installed package', () => {\n const tempRoot = fs.mkdtempSync(path.join(os.tmpdir(), 'mercato-cli-framework-context-'))\n\n try {\n const appDir = createStandaloneFixture(tempRoot)\n const packageRoot = installFakeFrameworkPackage(appDir)\n const resolvedPackageRoot = fs.realpathSync(packageRoot)\n const packageBefore = snapshotTextFiles(packageRoot)\n\n runMercato(['agentic:init', '--tool=codex'], appDir)\n const generatedScript = path.join(appDir, 'scripts', 'framework-context.mjs')\n expect(fs.existsSync(generatedScript)).toBe(true)\n\n const output = runCommand(\n process.execPath,\n [generatedScript, '--module', 'customers', '--query', 'Person', '--json'],\n appDir,\n // The generated standalone helper must not depend on a globally\n // installed ripgrep binary; process.execPath is already absolute.\n { PATH: '', Path: '' },\n )\n const context = JSON.parse(output) as {\n module: string\n package: { name: string; version: string; root: string }\n sourceKind: string\n sourceRoot: string\n materializedSource: string\n instructions: Array<{ kind: string; path: string | null; materializedPath?: string }>\n boundedSearch: { status: string; matches: number; maxMatches: number; result: string }\n warnings: string[]\n }\n\n expect(context.module).toBe('customers')\n expect(context.package).toEqual({ name: '@open-mercato/core', version: coreVersion, root: resolvedPackageRoot })\n expect(context.sourceKind).toBe('source')\n expect(normalizePath(context.sourceRoot)).toBe(normalizePath(path.join(resolvedPackageRoot, 'src', 'modules', 'customers')))\n expect(context.instructions.filter((entry) => entry.path).map((entry) => entry.kind)).toEqual([\n 'standalone-root',\n 'upstream-bc',\n 'package',\n 'module-1',\n 'upstream-root',\n ])\n expect(context.instructions.filter((entry) => entry.path).every((entry) => entry.materializedPath)).toBe(true)\n expect(context.boundedSearch).toMatchObject({ status: 'matched', matches: 1, maxMatches: 200 })\n expect(fs.existsSync(path.join(appDir, context.materializedSource))).toBe(true)\n expect(fs.existsSync(path.join(appDir, context.boundedSearch.result))).toBe(true)\n expect(context.warnings.some((warning) => warning.includes('Generated facts for customers are stale'))).toBe(false)\n expect(snapshotTextFiles(packageRoot)).toEqual(packageBefore)\n } finally {\n fs.rmSync(tempRoot, { recursive: true, force: true })\n }\n })\n})\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -63,7 +63,7 @@ function readEnabledModuleIds(modulesPath) {
|
|
|
63
63
|
}
|
|
64
64
|
}
|
|
65
65
|
function selectModuleFactSheets(targetDir, modulesSubdir) {
|
|
66
|
-
const available = existsSync(modulesSubdir) ? readdirSync(modulesSubdir).filter((
|
|
66
|
+
const available = existsSync(modulesSubdir) ? readdirSync(modulesSubdir, { withFileTypes: true }).filter((entry) => entry.isDirectory() && existsSync(join(modulesSubdir, entry.name, "index.md"))).map((entry) => entry.name) : [];
|
|
67
67
|
if (available.length === 0) return [];
|
|
68
68
|
const parsed = readEnabledModuleIds(join(targetDir, "src", "modules.ts"));
|
|
69
69
|
if (!parsed.parsed) return available;
|
|
@@ -80,7 +80,7 @@ function renderModuleGuidesBlock(selected, options = {}) {
|
|
|
80
80
|
return [
|
|
81
81
|
index,
|
|
82
82
|
"",
|
|
83
|
-
"Load `.ai/guides/modules/<id
|
|
83
|
+
"Load `.ai/guides/modules/<id>/index.md` only for a targeted installed module/host; never preload all module facts."
|
|
84
84
|
].join("\n");
|
|
85
85
|
}
|
|
86
86
|
function injectModuleGuides(agentsMdPath, selected, options = {}) {
|
|
@@ -301,14 +301,21 @@ function finalizeHarnessManifest(config, selectedTools) {
|
|
|
301
301
|
...targetPathsForTree(join(srcDir, "scripts"), join(targetDir, "scripts"))
|
|
302
302
|
]);
|
|
303
303
|
for (const file of readdirSync(GUIDES_DIR)) {
|
|
304
|
-
if (file.endsWith(".md") || file === "module-facts.json" || file === "module-facts.v2.json") {
|
|
304
|
+
if (file.endsWith(".md") || file === "module-facts.json" || file === "module-facts.v2.json" || file === "reference-module-facts.json") {
|
|
305
305
|
paths.add(join(targetDir, ".ai", "guides", file));
|
|
306
306
|
}
|
|
307
307
|
}
|
|
308
308
|
for (const file of listFiles(join(GUIDES_DIR, "upstream"))) {
|
|
309
309
|
paths.add(join(targetDir, ".ai", "guides", "upstream", relative(join(GUIDES_DIR, "upstream"), file)));
|
|
310
310
|
}
|
|
311
|
-
for (const moduleId of selectedModules)
|
|
311
|
+
for (const moduleId of selectedModules) {
|
|
312
|
+
const sourceRoot = join(GUIDES_DIR, "modules", moduleId);
|
|
313
|
+
const destinationRoot = join(targetDir, ".ai", "guides", "modules", moduleId);
|
|
314
|
+
for (const file of targetPathsForTree(sourceRoot, destinationRoot)) paths.add(file);
|
|
315
|
+
}
|
|
316
|
+
for (const file of listFiles(join(GUIDES_DIR, "reference-modules"))) {
|
|
317
|
+
paths.add(join(targetDir, ".ai", "guides", "reference-modules", relative(join(GUIDES_DIR, "reference-modules"), file)));
|
|
318
|
+
}
|
|
312
319
|
if (selectedTools.includes("claude-code")) {
|
|
313
320
|
paths.add(join(targetDir, "CLAUDE.md"));
|
|
314
321
|
paths.add(join(targetDir, ".claude", "settings.json"));
|
|
@@ -403,6 +410,11 @@ function applyHarnessUpdate(targetDir, stagingDir, options = {}) {
|
|
|
403
410
|
const destinationPath = resolveManifestPath(targetRoot, previousEntry.path);
|
|
404
411
|
if (!destinationPath || !existsSync(destinationPath)) continue;
|
|
405
412
|
assertManagedPath(targetRoot, destinationPath, { leaf: "file" });
|
|
413
|
+
const isRetiredFlatModuleFact = !previousEntry.userEditable && /^\.ai\/guides\/(?:modules|reference-modules)\/[^/]+\.md$/.test(previousEntry.path);
|
|
414
|
+
if (isRetiredFlatModuleFact) {
|
|
415
|
+
rmSync(destinationPath, { force: true });
|
|
416
|
+
continue;
|
|
417
|
+
}
|
|
406
418
|
let unchanged = false;
|
|
407
419
|
try {
|
|
408
420
|
unchanged = hashFile(destinationPath) === previousEntry.sha256;
|
|
@@ -453,12 +465,17 @@ function generateShared(config) {
|
|
|
453
465
|
ensureDir(destPath);
|
|
454
466
|
copyFileSync(moduleFactsV2Path, destPath);
|
|
455
467
|
}
|
|
468
|
+
const referenceFactsPath = join(GUIDES_DIR, "reference-module-facts.json");
|
|
469
|
+
if (existsSync(referenceFactsPath)) {
|
|
470
|
+
const destPath = join(guidesDestDir, "reference-module-facts.json");
|
|
471
|
+
ensureDir(destPath);
|
|
472
|
+
copyFileSync(referenceFactsPath, destPath);
|
|
473
|
+
}
|
|
456
474
|
copyTree(join(GUIDES_DIR, "upstream"), join(guidesDestDir, "upstream"), config);
|
|
475
|
+
copyTree(join(GUIDES_DIR, "reference-modules"), join(guidesDestDir, "reference-modules"), config);
|
|
457
476
|
const modulesSubdir = join(GUIDES_DIR, "modules");
|
|
458
477
|
for (const moduleId of selectedModules) {
|
|
459
|
-
|
|
460
|
-
ensureDir(destPath);
|
|
461
|
-
copyFileSync(join(modulesSubdir, `${moduleId}.md`), destPath);
|
|
478
|
+
copyTree(join(modulesSubdir, moduleId), join(guidesDestDir, "modules", moduleId), config);
|
|
462
479
|
}
|
|
463
480
|
}
|
|
464
481
|
injectModuleGuides(join(targetDir, "AGENTS.md"), selectedModules);
|