@open-mercato/cli 0.7.1-develop.7150.1.c1941e0c22 → 0.7.1-develop.7151.1.00d0391847

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (93) hide show
  1. package/.turbo/turbo-build.log +5 -1
  2. package/dist/agentic/guides/module-facts.json +828 -149
  3. package/dist/agentic/guides/module-facts.v2.json +828 -149
  4. package/dist/agentic/guides/modules/ai_assistant/index.md +1 -1
  5. package/dist/agentic/guides/modules/api_docs/index.md +1 -1
  6. package/dist/agentic/guides/modules/api_keys/index.md +1 -1
  7. package/dist/agentic/guides/modules/attachments/index.md +1 -1
  8. package/dist/agentic/guides/modules/audit_logs/index.md +1 -1
  9. package/dist/agentic/guides/modules/auth/index.md +1 -1
  10. package/dist/agentic/guides/modules/business_rules/index.md +1 -1
  11. package/dist/agentic/guides/modules/catalog/index.md +1 -1
  12. package/dist/agentic/guides/modules/channel_apns/index.md +1 -1
  13. package/dist/agentic/guides/modules/channel_discord/index.md +1 -1
  14. package/dist/agentic/guides/modules/channel_expo/index.md +1 -1
  15. package/dist/agentic/guides/modules/channel_fcm/index.md +1 -1
  16. package/dist/agentic/guides/modules/channel_gmail/index.md +1 -1
  17. package/dist/agentic/guides/modules/channel_imap/index.md +1 -1
  18. package/dist/agentic/guides/modules/channel_resend/acl-features.md +12 -0
  19. package/dist/agentic/guides/modules/channel_resend/contribution-resolutions.md +11 -0
  20. package/dist/agentic/guides/modules/channel_resend/di-registrations-rich.md +12 -0
  21. package/dist/agentic/guides/modules/channel_resend/exact-override-targets.md +16 -0
  22. package/dist/agentic/guides/modules/channel_resend/index.md +18 -0
  23. package/dist/agentic/guides/modules/channel_resend/owned-contract-module-metadata.md +11 -0
  24. package/dist/agentic/guides/modules/channel_resend/setup.md +11 -0
  25. package/dist/agentic/guides/modules/channel_resend/umes-contributions.md +11 -0
  26. package/dist/agentic/guides/modules/channel_ses/acl-features.md +12 -0
  27. package/dist/agentic/guides/modules/channel_ses/contribution-resolutions.md +11 -0
  28. package/dist/agentic/guides/modules/channel_ses/di-registrations-rich.md +12 -0
  29. package/dist/agentic/guides/modules/channel_ses/exact-override-targets.md +16 -0
  30. package/dist/agentic/guides/modules/channel_ses/index.md +18 -0
  31. package/dist/agentic/guides/modules/channel_ses/owned-contract-module-metadata.md +11 -0
  32. package/dist/agentic/guides/modules/channel_ses/setup.md +11 -0
  33. package/dist/agentic/guides/modules/channel_ses/umes-contributions.md +11 -0
  34. package/dist/agentic/guides/modules/checkout/index.md +1 -1
  35. package/dist/agentic/guides/modules/communication_channels/di-registrations-rich.md +10 -9
  36. package/dist/agentic/guides/modules/communication_channels/exact-override-targets.md +12 -11
  37. package/dist/agentic/guides/modules/communication_channels/index.md +1 -1
  38. package/dist/agentic/guides/modules/communication_channels/setup.md +1 -1
  39. package/dist/agentic/guides/modules/configs/index.md +1 -1
  40. package/dist/agentic/guides/modules/content/index.md +1 -1
  41. package/dist/agentic/guides/modules/currencies/index.md +1 -1
  42. package/dist/agentic/guides/modules/customer_accounts/index.md +1 -1
  43. package/dist/agentic/guides/modules/customers/index.md +1 -1
  44. package/dist/agentic/guides/modules/dashboards/index.md +1 -1
  45. package/dist/agentic/guides/modules/data_sync/index.md +1 -1
  46. package/dist/agentic/guides/modules/design_system/index.md +1 -1
  47. package/dist/agentic/guides/modules/devices/index.md +1 -1
  48. package/dist/agentic/guides/modules/dictionaries/index.md +1 -1
  49. package/dist/agentic/guides/modules/directory/index.md +1 -1
  50. package/dist/agentic/guides/modules/documents/index.md +1 -1
  51. package/dist/agentic/guides/modules/entities/index.md +1 -1
  52. package/dist/agentic/guides/modules/eudr/index.md +1 -1
  53. package/dist/agentic/guides/modules/events/index.md +1 -1
  54. package/dist/agentic/guides/modules/feature_toggles/index.md +1 -1
  55. package/dist/agentic/guides/modules/gateway_stripe/index.md +1 -1
  56. package/dist/agentic/guides/modules/generators/index.md +1 -1
  57. package/dist/agentic/guides/modules/inbox_ops/index.md +1 -1
  58. package/dist/agentic/guides/modules/integrations/index.md +1 -1
  59. package/dist/agentic/guides/modules/messages/index.md +1 -1
  60. package/dist/agentic/guides/modules/notifications/index.md +1 -1
  61. package/dist/agentic/guides/modules/onboarding/index.md +1 -1
  62. package/dist/agentic/guides/modules/payment_gateways/index.md +1 -1
  63. package/dist/agentic/guides/modules/perspectives/index.md +1 -1
  64. package/dist/agentic/guides/modules/planner/index.md +1 -1
  65. package/dist/agentic/guides/modules/portal/index.md +1 -1
  66. package/dist/agentic/guides/modules/progress/index.md +1 -1
  67. package/dist/agentic/guides/modules/push_notifications/index.md +1 -1
  68. package/dist/agentic/guides/modules/query_index/index.md +1 -1
  69. package/dist/agentic/guides/modules/record_locks/index.md +1 -1
  70. package/dist/agentic/guides/modules/resources/index.md +1 -1
  71. package/dist/agentic/guides/modules/sales/index.md +1 -1
  72. package/dist/agentic/guides/modules/scheduler/index.md +1 -1
  73. package/dist/agentic/guides/modules/search/index.md +1 -1
  74. package/dist/agentic/guides/modules/security/index.md +1 -1
  75. package/dist/agentic/guides/modules/shipping_carriers/index.md +1 -1
  76. package/dist/agentic/guides/modules/sso/index.md +1 -1
  77. package/dist/agentic/guides/modules/staff/index.md +1 -1
  78. package/dist/agentic/guides/modules/storage_s3/index.md +1 -1
  79. package/dist/agentic/guides/modules/sync_akeneo/index.md +1 -1
  80. package/dist/agentic/guides/modules/sync_excel/index.md +1 -1
  81. package/dist/agentic/guides/modules/system_status_overlays/index.md +1 -1
  82. package/dist/agentic/guides/modules/translations/index.md +1 -1
  83. package/dist/agentic/guides/modules/warranty_claims/index.md +1 -1
  84. package/dist/agentic/guides/modules/webhooks/index.md +1 -1
  85. package/dist/agentic/guides/modules/wms/index.md +1 -1
  86. package/dist/agentic/guides/modules/workflows/index.md +1 -1
  87. package/dist/agentic/guides/reference-module-facts.json +1 -1
  88. package/dist/agentic/guides/upstream/manifest.json +1 -1
  89. package/dist/agentic/shared/ai/harness/cases.json +4 -2
  90. package/dist/lib/testing/integration.js +30 -4
  91. package/dist/lib/testing/integration.js.map +2 -2
  92. package/package.json +6 -6
  93. package/src/lib/testing/integration.ts +37 -4
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@open-mercato/cli",
3
- "version": "0.7.1-develop.7150.1.c1941e0c22",
3
+ "version": "0.7.1-develop.7151.1.00d0391847",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -60,9 +60,9 @@
60
60
  "@mikro-orm/decorators": "^7.1.8",
61
61
  "@mikro-orm/migrations": "^7.1.8",
62
62
  "@mikro-orm/postgresql": "^7.1.8",
63
- "@open-mercato/queue": "0.7.1-develop.7150.1.c1941e0c22",
64
- "@open-mercato/shared": "0.7.1-develop.7150.1.c1941e0c22",
65
- "@open-mercato/telemetry": "0.7.1-develop.7150.1.c1941e0c22",
63
+ "@open-mercato/queue": "0.7.1-develop.7151.1.00d0391847",
64
+ "@open-mercato/shared": "0.7.1-develop.7151.1.00d0391847",
65
+ "@open-mercato/telemetry": "0.7.1-develop.7151.1.00d0391847",
66
66
  "cross-spawn": "^7.0.6",
67
67
  "pg": "8.22.0",
68
68
  "semver": "^7.8.5",
@@ -73,10 +73,10 @@
73
73
  "typescript-js": "npm:typescript@6.0.3"
74
74
  },
75
75
  "peerDependencies": {
76
- "@open-mercato/shared": "0.7.1-develop.7150.1.c1941e0c22"
76
+ "@open-mercato/shared": "0.7.1-develop.7151.1.00d0391847"
77
77
  },
78
78
  "devDependencies": {
79
- "@open-mercato/shared": "0.7.1-develop.7150.1.c1941e0c22",
79
+ "@open-mercato/shared": "0.7.1-develop.7151.1.00d0391847",
80
80
  "@types/jest": "^30.0.0",
81
81
  "jest": "^30.4.2",
82
82
  "ts-jest": "^29.4.12"
@@ -3,7 +3,7 @@ import { spawnSync } from 'node:child_process'
3
3
  import { createServer } from 'node:net'
4
4
  import { existsSync, readFileSync } from 'node:fs'
5
5
  import { mkdir, readdir, readFile, rm, stat, writeFile } from 'node:fs/promises'
6
- import { createHash } from 'node:crypto'
6
+ import { createHash, randomBytes } from 'node:crypto'
7
7
  import path from 'node:path'
8
8
  import { createInterface, type Interface } from 'node:readline/promises'
9
9
  import { stdin as input, stdout as output } from 'node:process'
@@ -24,6 +24,11 @@ type EphemeralRuntimeOptions = {
24
24
  environmentOverrides?: NodeJS.ProcessEnv
25
25
  }
26
26
 
27
+ const TEST_EMAIL_CAPTURE_ACCESS_TOKEN =
28
+ process.env.OM_TEST_EMAIL_CAPTURE_ACCESS_TOKEN ?? randomBytes(32).toString('hex')
29
+ const TEST_EMAIL_CAPTURE_CORRELATION_TOKEN =
30
+ process.env.OM_TEST_EMAIL_CAPTURE_CORRELATION_TOKEN ?? randomBytes(32).toString('hex')
31
+
27
32
  export type EphemeralEnvironmentHandle = {
28
33
  baseUrl: string
29
34
  port: number
@@ -274,6 +279,11 @@ const EPHEMERAL_BUILD_CACHE_STATE_PATH = path.join(projectRootDirectory, '.ai',
274
279
  const EPHEMERAL_CACHE_DB_PATH = path.join(projectRootDirectory, '.ai', 'qa', 'ephemeral-cache.sqlite')
275
280
  const EPHEMERAL_EMAIL_CAPTURE_PATH = path.join(projectRootDirectory, '.ai', 'qa', 'email-capture.jsonl')
276
281
  const EPHEMERAL_QUEUE_BASE_DIR = path.join(appDirectory, '.mercato', 'queue')
282
+ // The Communications Hub keeps its own tenant-scoped capture, in runtime state rather than in the
283
+ // repo: its record shape differs from the unscoped `shared/lib/email/send` capture above, and the
284
+ // repo ships a committed fixture copy of that one. One file for both would make each mechanism
285
+ // read the other's records.
286
+ const EPHEMERAL_SYSTEM_EMAIL_CAPTURE_PATH = path.join(appDirectory, '.mercato', 'test-email-capture.jsonl')
277
287
  const PRIVATE_ATTACHMENTS_PARTITION_ENV_KEY = 'ATTACHMENTS_PARTITION_PRIVATE_ATTACHMENTS_ROOT'
278
288
  const EPHEMERAL_PRIVATE_ATTACHMENTS_ROOT = path.join(
279
289
  resolveDefaultPrivateAttachmentsAppDirectory(),
@@ -2170,8 +2180,18 @@ function buildReusableEnvironment(
2170
2180
  OM_ENABLE_ENTERPRISE_MODULES_SSO: process.env.OM_ENABLE_ENTERPRISE_MODULES_SSO ?? enterpriseModulesFlag,
2171
2181
  OM_ENABLE_ENTERPRISE_MODULES_SECURITY: process.env.OM_ENABLE_ENTERPRISE_MODULES_SECURITY ?? enterpriseModulesFlag,
2172
2182
  OM_TEST_MODE: '1',
2173
- OM_TEST_EMAIL_CAPTURE_PATH: EPHEMERAL_EMAIL_CAPTURE_PATH,
2183
+ OM_TEST_EMAIL_CAPTURE_PATH: process.env.OM_TEST_EMAIL_CAPTURE_PATH ?? EPHEMERAL_EMAIL_CAPTURE_PATH,
2174
2184
  OM_TEST_AUTH_RATE_LIMIT_MODE: 'opt-in',
2185
+ OM_DISABLE_EMAIL_DELIVERY: '0',
2186
+ OM_ENABLE_TEST_CHANNEL_SEEDING: 'true',
2187
+ OM_ENABLE_TEST_EMAIL_CAPTURE_DELIVERY: 'true',
2188
+ OM_TEST_SYSTEM_EMAIL_CAPTURE_PATH: EPHEMERAL_SYSTEM_EMAIL_CAPTURE_PATH,
2189
+ OM_TEST_EMAIL_CAPTURE_ACCESS_TOKEN: TEST_EMAIL_CAPTURE_ACCESS_TOKEN,
2190
+ OM_TEST_EMAIL_CAPTURE_CORRELATION_TOKEN: TEST_EMAIL_CAPTURE_CORRELATION_TOKEN,
2191
+ SYSTEM_EMAIL_PROVIDER: '__test_seed__',
2192
+ EMAIL_FROM: process.env.EMAIL_FROM ?? 'system@test-seed.local',
2193
+ NOTIFICATIONS_EMAIL_FROM: process.env.NOTIFICATIONS_EMAIL_FROM ?? 'notifications@test-seed.local',
2194
+ ADMIN_EMAIL: process.env.ADMIN_EMAIL ?? 'admin@test-seed.local',
2175
2195
  // Register the test-only `push_stub` channel adapter in the reused Playwright
2176
2196
  // process (and any drain/worker child it spawns) so push integration specs can
2177
2197
  // drive real delivery. Production-safe + inert unless a delivery row carries
@@ -3549,8 +3569,17 @@ export async function startEphemeralEnvironment(options: EphemeralRuntimeOptions
3549
3569
  OM_ENABLE_ENTERPRISE_MODULES_SSO: process.env.OM_ENABLE_ENTERPRISE_MODULES_SSO ?? enterpriseModulesFlag,
3550
3570
  OM_ENABLE_ENTERPRISE_MODULES_SECURITY: process.env.OM_ENABLE_ENTERPRISE_MODULES_SECURITY ?? enterpriseModulesFlag,
3551
3571
  OM_TEST_MODE: '1',
3552
- OM_TEST_EMAIL_CAPTURE_PATH: EPHEMERAL_EMAIL_CAPTURE_PATH,
3572
+ OM_TEST_EMAIL_CAPTURE_PATH: process.env.OM_TEST_EMAIL_CAPTURE_PATH ?? EPHEMERAL_EMAIL_CAPTURE_PATH,
3553
3573
  OM_TEST_AUTH_RATE_LIMIT_MODE: 'opt-in',
3574
+ OM_ENABLE_TEST_CHANNEL_SEEDING: 'true',
3575
+ OM_ENABLE_TEST_EMAIL_CAPTURE_DELIVERY: 'true',
3576
+ OM_TEST_SYSTEM_EMAIL_CAPTURE_PATH: EPHEMERAL_SYSTEM_EMAIL_CAPTURE_PATH,
3577
+ OM_TEST_EMAIL_CAPTURE_ACCESS_TOKEN: TEST_EMAIL_CAPTURE_ACCESS_TOKEN,
3578
+ OM_TEST_EMAIL_CAPTURE_CORRELATION_TOKEN: TEST_EMAIL_CAPTURE_CORRELATION_TOKEN,
3579
+ SYSTEM_EMAIL_PROVIDER: '__test_seed__',
3580
+ EMAIL_FROM: process.env.EMAIL_FROM ?? 'system@test-seed.local',
3581
+ NOTIFICATIONS_EMAIL_FROM: process.env.NOTIFICATIONS_EMAIL_FROM ?? 'notifications@test-seed.local',
3582
+ ADMIN_EMAIL: process.env.ADMIN_EMAIL ?? 'admin@test-seed.local',
3554
3583
  // Register the network-free `push_stub` channel adapter so push integration
3555
3584
  // specs (TC-PUSH-003) can drive the strategy → delivery-row → send-push worker
3556
3585
  // → sendMessage chain end-to-end without a real FCM/APNs/Expo provider. The
@@ -3569,7 +3598,11 @@ export async function startEphemeralEnvironment(options: EphemeralRuntimeOptions
3569
3598
  // Expo's receipt reaper ignores rows younger than 15 minutes by default (it polls a real
3570
3599
  // provider's async receipts). No integration test can wait that out — poll immediately.
3571
3600
  OM_PUSH_RECEIPT_MIN_AGE_MINUTES: process.env.OM_PUSH_RECEIPT_MIN_AGE_MINUTES ?? '0',
3572
- OM_DISABLE_EMAIL_DELIVERY: '1',
3601
+ // Delivery stays ON here (it was '1' before the pluggable-provider work) because
3602
+ // `SYSTEM_EMAIL_PROVIDER='__test_seed__'` above routes every send into the local
3603
+ // capture file rather than a network provider. The email integration specs assert
3604
+ // on those captured messages, so disabling delivery would black-hole them.
3605
+ OM_DISABLE_EMAIL_DELIVERY: '0',
3573
3606
  OM_WEBHOOKS_ALLOW_PRIVATE_URLS: process.env.OM_WEBHOOKS_ALLOW_PRIVATE_URLS ?? '1',
3574
3607
  // Read at build time as well as at runtime, so this block has to carry it:
3575
3608
  // the app build and `yarn start` both run with this environment. See the