// ── The engagement subsystem — one door ──────────────────────────────────── // // ENGAGEMENT.md Phases 1 and 3. Today this is the mail transport registry, core's // own transports, and the delivery-channel registry with core's three channels; // the rules engine and the render/deliver half of a channel arrive in later // phases and hang here too. (The trigger registry lives in `modules/registries.js` // instead, because a trigger is something a MODULE declares and modules only ever // see one registration door.) // // **Core's transports register through the same door a module's would**, and // they register HERE rather than at the bottom of the registry file. That keeps // the registry free of any knowledge of its registrants — the same reason // `registerCore()` is called from app.js rather than from inside // `modules/registries.js` (MODULE_API.md §7.6) — and it means requiring the // registry never has the side effect of populating it. // // Requiring this module is what makes `smtp` and the three channels available. // Everything that resolves either goes through here, so there is exactly one // place a transport or a channel can come into existence. require('./transports/smtp') require('./coreChannels') require('./coreScopePrefs') const transports = require('./transports') const channels = require('./channels') module.exports = { transports, channels }