← back to Marketing Command Center
modules/registry.js
39 lines
// Module registry — the single source of truth for which panels the Command
// Center mounts. server.js iterates this; the shell builds nav from /api/panels.
// Each module file lives at modules/<id>/index.js and exports the MODULE CONTRACT
// (see README.md): { id, title, icon, mount(router), panel: {html, js} paths }.
//
// Agents own one module each and edit ONLY their modules/<id>/ + public/panels/<id>.*
// — never this file or server.js (avoids cross-agent conflicts). To add a module,
// the integrator appends one line here.
module.exports = [
'composer', // Composer board: combine an asset/banner + copy → publish/stage to all connected socials at once (assembles assets+copy+channels)
'accounts', // Amazon-style rail: every social account + connection status + inline "how to fix" credentials (read-only view over channels + linkedin)
'board', // Hootsuite-style streams board: one column per channel (social + email), dated cards
'constant-contact', // CC: campaigns, contacts, calendar, draft + schedule (gated sends)
'calendar', // marketing calendar: retail/holiday dates + campaign schedule
'calendars', // All Calendars: unified activation-SKU + marketing + campaign + Google layers with a left-panel field-filter rail
'copy', // suggested copy: subject lines, email/social body (LLM-backed)
'layouts', // on-demand HTML/CSS email + social layout mockups
'assets', // image asset library: upload / URL / live DW-catalog pull
'sounds', // Sounds & Assets: curated free/royalty-free music + TikTok creative sources, badged by brand-safety (incl. Grateful Dead live archive as listen-only)
'performance', // performance dashboard: email + GA4 KPIs, charts, top campaigns
'social', // social scheduler: IG/TikTok queue board, gated publish
'follow-counts', // Followers/Following: per-DW-IG-account followers_count + follows_count (COUNTS ONLY, official Graph API via Norma :9810) + daily-snapshot growth chart
'reels', // New Arrivals Reels console (dw-marketing-reels :9848) embedded via same-origin proxy — the app that previously owned marketing.designerwallcoverings.com
'linkedin', // LinkedIn composer + drafts + manual post (deep-link) + gated API publish (Phase 2)
'clients', // Clients & Prospects: FileMaker client DB (43k) + Google-Places prospect groups, LinkedIn+Instagram discovery + emails (staged; not on CC)
'segments', // audience segments: rule builder + live preview over contacts
'vendors', // vendor IG reporting: DW + all vendor Instagram accounts roster
'channels', // publishing engine: FB/IG/TikTok/YouTube connectors + composer (gated live posts)
'send-times', // send-time optimization: heatmap + per-contact predicted peak open window
'ab-tests', // A/B test planner: two variants + holdout, predicted opens/clicks, winner call (STAGED)
'profiles', // contact 360: search + email engagement timeline + segment memberships + cross-channel placeholder (read-only)
'segment-perf', // segment performance: email KPIs split by audience (Designers/Commercial/Retail/At-Risk), 90d SVG trends, health colour-coding
'templates', // campaign templates: 8 pre-built DW luxury email campaigns (welcome, memo D0/D7/D21, VIP preview, seasonal, re-engagement) — STAGED
'journeys', // cross-channel journeys: email → wait → SMS/social → retarget per segment, persisted, with recommendations + dry-run (STAGED)
'browse-abandon', // browse-abandonment drip: Day1 storytelling → Day14 room-setting → Day30 suppress, mock events + dry-run preview (STAGED)
'playbook', // monthly playbook: 4-6 suggested campaigns/actions for next 4 weeks from calendar + segment health + perf gaps (Gemini or template)
'engine', // Engine: daily AI-suggested social posts with an approve → schedule → post flow (queue via store.js, live via channels.postLive)
];