@timmeck/marketing-brain 1.1.2 → 1.2.0

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 (34) hide show
  1. package/Dockerfile +34 -7
  2. package/dist/db/migrations/009_competitors_scheduling.d.ts +2 -0
  3. package/dist/db/migrations/009_competitors_scheduling.js +63 -0
  4. package/dist/db/migrations/009_competitors_scheduling.js.map +1 -0
  5. package/dist/db/migrations/index.js +2 -0
  6. package/dist/db/migrations/index.js.map +1 -1
  7. package/dist/db/repositories/competitor.repository.d.ts +57 -0
  8. package/dist/db/repositories/competitor.repository.js +88 -0
  9. package/dist/db/repositories/competitor.repository.js.map +1 -0
  10. package/dist/db/repositories/scheduler.repository.d.ts +45 -0
  11. package/dist/db/repositories/scheduler.repository.js +79 -0
  12. package/dist/db/repositories/scheduler.repository.js.map +1 -0
  13. package/dist/ipc/router.d.ts +8 -0
  14. package/dist/ipc/router.js +23 -1
  15. package/dist/ipc/router.js.map +1 -1
  16. package/dist/marketing-core.js +12 -0
  17. package/dist/marketing-core.js.map +1 -1
  18. package/dist/mcp/tools.js +116 -0
  19. package/dist/mcp/tools.js.map +1 -1
  20. package/dist/services/competitor.service.d.ts +54 -0
  21. package/dist/services/competitor.service.js +186 -0
  22. package/dist/services/competitor.service.js.map +1 -0
  23. package/dist/services/content-generator.service.d.ts +52 -0
  24. package/dist/services/content-generator.service.js +164 -0
  25. package/dist/services/content-generator.service.js.map +1 -0
  26. package/dist/services/platform-adapter.service.d.ts +34 -0
  27. package/dist/services/platform-adapter.service.js +220 -0
  28. package/dist/services/platform-adapter.service.js.map +1 -0
  29. package/dist/services/scheduler.service.d.ts +25 -0
  30. package/dist/services/scheduler.service.js +77 -0
  31. package/dist/services/scheduler.service.js.map +1 -0
  32. package/dist/utils/events.d.ts +10 -0
  33. package/dist/utils/events.js.map +1 -1
  34. package/package.json +1 -1
package/Dockerfile CHANGED
@@ -1,22 +1,49 @@
1
- FROM node:22-slim
1
+ # Build from monorepo root: docker build -f packages/marketing-brain/Dockerfile .
2
+ FROM node:20-slim AS build
2
3
 
3
4
  # better-sqlite3 needs build tools
4
5
  RUN apt-get update && apt-get install -y python3 make g++ && rm -rf /var/lib/apt/lists/*
5
6
 
6
7
  WORKDIR /app
7
8
 
9
+ # Install dependencies (copy package files first for layer caching)
8
10
  COPY package.json package-lock.json ./
9
- RUN npm ci --omit=dev
11
+ COPY packages/brain-core/package.json ./packages/brain-core/
12
+ COPY packages/marketing-brain/package.json ./packages/marketing-brain/
13
+ RUN npm ci --production=false
10
14
 
11
- COPY dist/ dist/
12
- COPY dashboard.html ./
15
+ # Build brain-core first (marketing-brain depends on it)
16
+ COPY tsconfig.base.json ./
17
+ COPY packages/brain-core/ ./packages/brain-core/
18
+ RUN npm run build -w packages/brain-core
19
+
20
+ # Build marketing-brain
21
+ COPY packages/marketing-brain/ ./packages/marketing-brain/
22
+ RUN npm run build -w packages/marketing-brain
23
+
24
+ # Production stage
25
+ FROM node:20-slim
26
+
27
+ RUN apt-get update && apt-get install -y python3 make g++ && rm -rf /var/lib/apt/lists/*
28
+
29
+ WORKDIR /app
30
+
31
+ COPY --from=build /app/node_modules ./node_modules
32
+ COPY --from=build /app/packages/brain-core/dist ./packages/brain-core/dist
33
+ COPY --from=build /app/packages/brain-core/package.json ./packages/brain-core/
34
+ COPY --from=build /app/packages/marketing-brain/dist ./packages/marketing-brain/dist
35
+ COPY --from=build /app/packages/marketing-brain/package.json ./packages/marketing-brain/
36
+ COPY --from=build /app/packages/marketing-brain/dashboard.html ./packages/marketing-brain/
13
37
  COPY package.json ./
14
38
 
15
39
  # Data directory for marketing-brain.db
16
40
  RUN mkdir -p /data
17
41
  ENV MARKETING_BRAIN_DATA_DIR=/data
18
42
 
19
- EXPOSE 7781 7782
43
+ EXPOSE 7781 7782 7783
44
+
45
+ HEALTHCHECK --interval=30s --timeout=5s --retries=3 --start-period=10s \
46
+ CMD node -e "require('http').get('http://localhost:7781/api/stats', r => process.exit(r.statusCode === 200 ? 0 : 1))" || exit 1
20
47
 
21
- ENTRYPOINT ["node", "dist/index.js"]
22
- CMD ["mcp-server"]
48
+ ENTRYPOINT ["node", "packages/marketing-brain/dist/index.js"]
49
+ CMD ["daemon"]
@@ -0,0 +1,2 @@
1
+ import type Database from 'better-sqlite3';
2
+ export declare function up(db: Database.Database): void;
@@ -0,0 +1,63 @@
1
+ export function up(db) {
2
+ // Competitors: Track competitor accounts across platforms
3
+ db.exec(`
4
+ CREATE TABLE IF NOT EXISTS competitors (
5
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
6
+ name TEXT NOT NULL,
7
+ platform TEXT NOT NULL,
8
+ handle TEXT NOT NULL,
9
+ url TEXT,
10
+ notes TEXT,
11
+ active INTEGER NOT NULL DEFAULT 1,
12
+ created_at TEXT NOT NULL DEFAULT (datetime('now')),
13
+ updated_at TEXT NOT NULL DEFAULT (datetime('now'))
14
+ );
15
+
16
+ CREATE UNIQUE INDEX IF NOT EXISTS idx_competitors_handle
17
+ ON competitors(platform, handle);
18
+ `);
19
+ // Competitor Posts: Record competitor content and engagement
20
+ db.exec(`
21
+ CREATE TABLE IF NOT EXISTS competitor_posts (
22
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
23
+ competitor_id INTEGER NOT NULL,
24
+ platform TEXT NOT NULL,
25
+ content TEXT NOT NULL,
26
+ url TEXT,
27
+ engagement_json TEXT,
28
+ detected_at TEXT NOT NULL DEFAULT (datetime('now')),
29
+ created_at TEXT NOT NULL DEFAULT (datetime('now')),
30
+ FOREIGN KEY (competitor_id) REFERENCES competitors(id) ON DELETE CASCADE
31
+ );
32
+
33
+ CREATE INDEX IF NOT EXISTS idx_competitor_posts_competitor
34
+ ON competitor_posts(competitor_id);
35
+ CREATE INDEX IF NOT EXISTS idx_competitor_posts_platform
36
+ ON competitor_posts(platform);
37
+ CREATE INDEX IF NOT EXISTS idx_competitor_posts_detected
38
+ ON competitor_posts(detected_at);
39
+ `);
40
+ // Scheduled Posts: Queue posts for future publishing
41
+ db.exec(`
42
+ CREATE TABLE IF NOT EXISTS scheduled_posts (
43
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
44
+ post_id INTEGER,
45
+ platform TEXT NOT NULL,
46
+ content TEXT NOT NULL,
47
+ format TEXT NOT NULL DEFAULT 'text',
48
+ hashtags TEXT,
49
+ scheduled_at TEXT NOT NULL,
50
+ status TEXT NOT NULL DEFAULT 'pending',
51
+ published_at TEXT,
52
+ webhook_url TEXT,
53
+ created_at TEXT NOT NULL DEFAULT (datetime('now')),
54
+ FOREIGN KEY (post_id) REFERENCES posts(id) ON DELETE SET NULL
55
+ );
56
+
57
+ CREATE INDEX IF NOT EXISTS idx_scheduled_posts_status
58
+ ON scheduled_posts(status);
59
+ CREATE INDEX IF NOT EXISTS idx_scheduled_posts_scheduled
60
+ ON scheduled_posts(scheduled_at);
61
+ `);
62
+ }
63
+ //# sourceMappingURL=009_competitors_scheduling.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"009_competitors_scheduling.js","sourceRoot":"","sources":["../../../src/db/migrations/009_competitors_scheduling.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,EAAE,CAAC,EAAqB;IACtC,0DAA0D;IAC1D,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;GAeP,CAAC,CAAC;IAEH,6DAA6D;IAC7D,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;GAmBP,CAAC,CAAC;IAEH,qDAAqD;IACrD,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;GAoBP,CAAC,CAAC;AACL,CAAC"}
@@ -7,6 +7,7 @@ import { up as ftsIndexes } from './005_fts_indexes.js';
7
7
  import { up as memorySchema } from './006_memory_schema.js';
8
8
  import { up as memoryFts } from './007_memory_fts.js';
9
9
  import { up as abTestsSchema } from './008_ab_tests.js';
10
+ import { up as competitorsScheduling } from './009_competitors_scheduling.js';
10
11
  const migrations = [
11
12
  { version: 1, name: '001_core_schema', up: coreSchema },
12
13
  { version: 2, name: '002_learning_schema', up: learningSchema },
@@ -16,6 +17,7 @@ const migrations = [
16
17
  { version: 6, name: '006_memory_schema', up: memorySchema },
17
18
  { version: 7, name: '007_memory_fts', up: memoryFts },
18
19
  { version: 8, name: '008_ab_tests', up: abTestsSchema },
20
+ { version: 9, name: '009_competitors_scheduling', up: competitorsScheduling },
19
21
  ];
20
22
  function ensureMigrationsTable(db) {
21
23
  db.exec(`
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/db/migrations/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/db/migrations/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,57 @@
1
+ import type Database from 'better-sqlite3';
2
+ export interface CompetitorRecord {
3
+ id: number;
4
+ name: string;
5
+ platform: string;
6
+ handle: string;
7
+ url: string | null;
8
+ notes: string | null;
9
+ active: number;
10
+ created_at: string;
11
+ updated_at: string;
12
+ }
13
+ export interface CompetitorPostRecord {
14
+ id: number;
15
+ competitor_id: number;
16
+ platform: string;
17
+ content: string;
18
+ url: string | null;
19
+ engagement_json: string | null;
20
+ detected_at: string;
21
+ created_at: string;
22
+ }
23
+ export declare class CompetitorRepository {
24
+ private db;
25
+ private stmts;
26
+ constructor(db: Database.Database);
27
+ create(data: {
28
+ name: string;
29
+ platform: string;
30
+ handle: string;
31
+ url?: string;
32
+ notes?: string;
33
+ }): number;
34
+ getById(id: number): CompetitorRecord | undefined;
35
+ getAll(): CompetitorRecord[];
36
+ getActive(): CompetitorRecord[];
37
+ getByHandle(platform: string, handle: string): CompetitorRecord | undefined;
38
+ update(id: number, data: Partial<{
39
+ name: string;
40
+ handle: string;
41
+ url: string;
42
+ notes: string;
43
+ active: number;
44
+ }>): void;
45
+ delete(id: number): void;
46
+ addPost(data: {
47
+ competitor_id: number;
48
+ platform: string;
49
+ content: string;
50
+ url?: string;
51
+ engagement_json?: string;
52
+ }): number;
53
+ getPosts(competitorId: number, limit?: number): CompetitorPostRecord[];
54
+ getPostsByPlatform(platform: string, limit?: number): CompetitorPostRecord[];
55
+ getRecentPosts(days?: number, limit?: number): CompetitorPostRecord[];
56
+ countPosts(competitorId: number): number;
57
+ }
@@ -0,0 +1,88 @@
1
+ export class CompetitorRepository {
2
+ db;
3
+ stmts;
4
+ constructor(db) {
5
+ this.db = db;
6
+ this.stmts = {
7
+ create: db.prepare(`
8
+ INSERT INTO competitors (name, platform, handle, url, notes)
9
+ VALUES (@name, @platform, @handle, @url, @notes)
10
+ `),
11
+ getById: db.prepare('SELECT * FROM competitors WHERE id = ?'),
12
+ getAll: db.prepare('SELECT * FROM competitors ORDER BY created_at DESC'),
13
+ getActive: db.prepare('SELECT * FROM competitors WHERE active = 1 ORDER BY created_at DESC'),
14
+ getByHandle: db.prepare('SELECT * FROM competitors WHERE platform = ? AND handle = ?'),
15
+ delete: db.prepare('DELETE FROM competitors WHERE id = ?'),
16
+ addPost: db.prepare(`
17
+ INSERT INTO competitor_posts (competitor_id, platform, content, url, engagement_json)
18
+ VALUES (@competitor_id, @platform, @content, @url, @engagement_json)
19
+ `),
20
+ getPosts: db.prepare('SELECT * FROM competitor_posts WHERE competitor_id = ? ORDER BY detected_at DESC LIMIT ?'),
21
+ getPostsByPlatform: db.prepare('SELECT * FROM competitor_posts WHERE platform = ? ORDER BY detected_at DESC LIMIT ?'),
22
+ getRecentPosts: db.prepare(`
23
+ SELECT * FROM competitor_posts
24
+ WHERE detected_at > datetime('now', '-' || ? || ' days')
25
+ ORDER BY detected_at DESC
26
+ LIMIT ?
27
+ `),
28
+ countPosts: db.prepare('SELECT COUNT(*) as count FROM competitor_posts WHERE competitor_id = ?'),
29
+ };
30
+ }
31
+ create(data) {
32
+ const result = this.stmts.create.run({
33
+ name: data.name,
34
+ platform: data.platform,
35
+ handle: data.handle,
36
+ url: data.url ?? null,
37
+ notes: data.notes ?? null,
38
+ });
39
+ return result.lastInsertRowid;
40
+ }
41
+ getById(id) {
42
+ return this.stmts.getById.get(id);
43
+ }
44
+ getAll() {
45
+ return this.stmts.getAll.all();
46
+ }
47
+ getActive() {
48
+ return this.stmts.getActive.all();
49
+ }
50
+ getByHandle(platform, handle) {
51
+ return this.stmts.getByHandle.get(platform, handle);
52
+ }
53
+ update(id, data) {
54
+ const fields = Object.keys(data).filter((key) => key !== 'id' && key !== 'created_at' && data[key] !== undefined);
55
+ if (fields.length === 0)
56
+ return;
57
+ const setClauses = fields.map((f) => `${f} = @${f}`).join(', ');
58
+ const stmt = this.db.prepare(`UPDATE competitors SET ${setClauses}, updated_at = datetime('now') WHERE id = @id`);
59
+ stmt.run({ ...data, id });
60
+ }
61
+ delete(id) {
62
+ this.stmts.delete.run(id);
63
+ }
64
+ addPost(data) {
65
+ const result = this.stmts.addPost.run({
66
+ competitor_id: data.competitor_id,
67
+ platform: data.platform,
68
+ content: data.content,
69
+ url: data.url ?? null,
70
+ engagement_json: data.engagement_json ?? null,
71
+ });
72
+ return result.lastInsertRowid;
73
+ }
74
+ getPosts(competitorId, limit = 50) {
75
+ return this.stmts.getPosts.all(competitorId, limit);
76
+ }
77
+ getPostsByPlatform(platform, limit = 50) {
78
+ return this.stmts.getPostsByPlatform.all(platform, limit);
79
+ }
80
+ getRecentPosts(days = 7, limit = 50) {
81
+ return this.stmts.getRecentPosts.all(days, limit);
82
+ }
83
+ countPosts(competitorId) {
84
+ const row = this.stmts.countPosts.get(competitorId);
85
+ return row.count;
86
+ }
87
+ }
88
+ //# sourceMappingURL=competitor.repository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"competitor.repository.js","sourceRoot":"","sources":["../../../src/db/repositories/competitor.repository.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ import type Database from 'better-sqlite3';
2
+ export interface ScheduledPostRecord {
3
+ id: number;
4
+ post_id: number | null;
5
+ platform: string;
6
+ content: string;
7
+ format: string;
8
+ hashtags: string | null;
9
+ scheduled_at: string;
10
+ status: string;
11
+ published_at: string | null;
12
+ webhook_url: string | null;
13
+ created_at: string;
14
+ }
15
+ export declare class SchedulerRepository {
16
+ private db;
17
+ private stmts;
18
+ constructor(db: Database.Database);
19
+ create(data: {
20
+ post_id?: number;
21
+ platform: string;
22
+ content: string;
23
+ format?: string;
24
+ hashtags?: string;
25
+ scheduled_at: string;
26
+ webhook_url?: string;
27
+ }): number;
28
+ getById(id: number): ScheduledPostRecord | undefined;
29
+ getAll(limit?: number): ScheduledPostRecord[];
30
+ getPending(): ScheduledPostRecord[];
31
+ getDue(): ScheduledPostRecord[];
32
+ getByStatus(status: string, limit?: number): ScheduledPostRecord[];
33
+ markPublished(id: number): void;
34
+ cancel(id: number): void;
35
+ update(id: number, data: Partial<{
36
+ platform: string;
37
+ content: string;
38
+ format: string;
39
+ hashtags: string;
40
+ scheduled_at: string;
41
+ webhook_url: string;
42
+ }>): void;
43
+ delete(id: number): void;
44
+ countPending(): number;
45
+ }
@@ -0,0 +1,79 @@
1
+ export class SchedulerRepository {
2
+ db;
3
+ stmts;
4
+ constructor(db) {
5
+ this.db = db;
6
+ this.stmts = {
7
+ create: db.prepare(`
8
+ INSERT INTO scheduled_posts (post_id, platform, content, format, hashtags, scheduled_at, webhook_url)
9
+ VALUES (@post_id, @platform, @content, @format, @hashtags, @scheduled_at, @webhook_url)
10
+ `),
11
+ getById: db.prepare('SELECT * FROM scheduled_posts WHERE id = ?'),
12
+ getAll: db.prepare('SELECT * FROM scheduled_posts ORDER BY scheduled_at DESC LIMIT ?'),
13
+ getPending: db.prepare(`
14
+ SELECT * FROM scheduled_posts WHERE status = 'pending' ORDER BY scheduled_at ASC
15
+ `),
16
+ getDue: db.prepare(`
17
+ SELECT * FROM scheduled_posts WHERE status = 'pending' AND scheduled_at <= datetime('now')
18
+ `),
19
+ getByStatus: db.prepare('SELECT * FROM scheduled_posts WHERE status = ? ORDER BY scheduled_at DESC LIMIT ?'),
20
+ markPublished: db.prepare(`
21
+ UPDATE scheduled_posts SET status = 'published', published_at = datetime('now') WHERE id = ?
22
+ `),
23
+ cancel: db.prepare(`
24
+ UPDATE scheduled_posts SET status = 'cancelled' WHERE id = ?
25
+ `),
26
+ delete: db.prepare('DELETE FROM scheduled_posts WHERE id = ?'),
27
+ countPending: db.prepare(`SELECT COUNT(*) as count FROM scheduled_posts WHERE status = 'pending'`),
28
+ };
29
+ }
30
+ create(data) {
31
+ const result = this.stmts.create.run({
32
+ post_id: data.post_id ?? null,
33
+ platform: data.platform,
34
+ content: data.content,
35
+ format: data.format ?? 'text',
36
+ hashtags: data.hashtags ?? null,
37
+ scheduled_at: data.scheduled_at,
38
+ webhook_url: data.webhook_url ?? null,
39
+ });
40
+ return result.lastInsertRowid;
41
+ }
42
+ getById(id) {
43
+ return this.stmts.getById.get(id);
44
+ }
45
+ getAll(limit = 50) {
46
+ return this.stmts.getAll.all(limit);
47
+ }
48
+ getPending() {
49
+ return this.stmts.getPending.all();
50
+ }
51
+ getDue() {
52
+ return this.stmts.getDue.all();
53
+ }
54
+ getByStatus(status, limit = 50) {
55
+ return this.stmts.getByStatus.all(status, limit);
56
+ }
57
+ markPublished(id) {
58
+ this.stmts.markPublished.run(id);
59
+ }
60
+ cancel(id) {
61
+ this.stmts.cancel.run(id);
62
+ }
63
+ update(id, data) {
64
+ const fields = Object.keys(data).filter((key) => data[key] !== undefined);
65
+ if (fields.length === 0)
66
+ return;
67
+ const setClauses = fields.map((f) => `${f} = @${f}`).join(', ');
68
+ const stmt = this.db.prepare(`UPDATE scheduled_posts SET ${setClauses} WHERE id = @id`);
69
+ stmt.run({ ...data, id });
70
+ }
71
+ delete(id) {
72
+ this.stmts.delete.run(id);
73
+ }
74
+ countPending() {
75
+ const row = this.stmts.countPending.get();
76
+ return row.count;
77
+ }
78
+ }
79
+ //# sourceMappingURL=scheduler.repository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scheduler.repository.js","sourceRoot":"","sources":["../../../src/db/repositories/scheduler.repository.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,10 @@ import type { LearningEngine } from '../learning/learning-engine.js';
12
12
  import type { PatternExtractor } from '../learning/pattern-extractor.js';
13
13
  import type { ABTestService } from '../services/ab-test.service.js';
14
14
  import type { CalendarService } from '../services/calendar.service.js';
15
+ import type { CompetitorService } from '../services/competitor.service.js';
16
+ import type { SchedulerService } from '../services/scheduler.service.js';
17
+ import type { ContentGeneratorService } from '../services/content-generator.service.js';
18
+ import type { PlatformAdapterService } from '../services/platform-adapter.service.js';
15
19
  import type { CrossBrainClient, CrossBrainSubscriptionManager } from '@timmeck/brain-core';
16
20
  import type { IpcServer } from '@timmeck/brain-core';
17
21
  export interface Services {
@@ -25,6 +29,10 @@ export interface Services {
25
29
  analytics: AnalyticsService;
26
30
  insight: InsightService;
27
31
  memory: MemoryService;
32
+ competitor: CompetitorService;
33
+ scheduler: SchedulerService;
34
+ contentGenerator: ContentGeneratorService;
35
+ platformAdapter: PlatformAdapterService;
28
36
  learning?: LearningEngine;
29
37
  patternExtractor?: PatternExtractor;
30
38
  abTest?: ABTestService;
@@ -166,6 +166,28 @@ export class IpcRouter {
166
166
  throw new Error('Calendar service not available');
167
167
  return s.calendar.getWeeklySchedule(p(params)?.platform);
168
168
  }],
169
+ // Competitors
170
+ ['competitor.add', (params) => s.competitor.addCompetitor(p(params))],
171
+ ['competitor.list', () => s.competitor.listCompetitors()],
172
+ ['competitor.remove', (params) => s.competitor.removeCompetitor(p(params).id)],
173
+ ['competitor.recordPost', (params) => s.competitor.recordPost(p(params))],
174
+ ['competitor.posts', (params) => s.competitor.getCompetitorPosts(p(params).competitorId, p(params).limit)],
175
+ ['competitor.analyze', (params) => s.competitor.analyzeCompetitor(p(params).competitorId ?? p(params).id)],
176
+ ['competitor.compare', (params) => s.competitor.compareWithSelf(p(params).competitorId ?? p(params).id)],
177
+ // Scheduler
178
+ ['scheduler.schedule', (params) => s.scheduler.schedulePost(p(params))],
179
+ ['scheduler.list', () => s.scheduler.listScheduled()],
180
+ ['scheduler.pending', () => s.scheduler.listPending()],
181
+ ['scheduler.cancel', (params) => s.scheduler.cancelPost(p(params).id)],
182
+ ['scheduler.checkDue', () => s.scheduler.checkDue()],
183
+ ['scheduler.reschedule', (params) => s.scheduler.reschedule(p(params).id, p(params).scheduledAt)],
184
+ // Content Generator
185
+ ['content.generate', (params) => s.contentGenerator.generateDraft(p(params).platform, p(params).topic)],
186
+ ['content.hashtags', (params) => s.contentGenerator.suggestHashtags(p(params).platform, p(params).limit)],
187
+ // Platform Adapter
188
+ ['platform.adapt', (params) => s.platformAdapter.adaptForPlatform(p(params).content, p(params).targetPlatform, p(params).sourceFormat)],
189
+ ['platform.crossAdapt', (params) => s.platformAdapter.adaptCrossPlatform(p(params).content, p(params).sourcePlatform, p(params).targetPlatforms)],
190
+ ['platform.config', (params) => s.platformAdapter.getPlatformConfig(p(params).platform)],
169
191
  // Cross-Brain Notifications
170
192
  ['cross-brain.notify', (params) => {
171
193
  const { source, event, timestamp } = p(params);
@@ -191,7 +213,7 @@ export class IpcRouter {
191
213
  // Status (cross-brain)
192
214
  ['status', () => ({
193
215
  name: 'marketing-brain',
194
- version: '0.5.0',
216
+ version: '1.2.0',
195
217
  uptime: Math.floor(process.uptime()),
196
218
  pid: process.pid,
197
219
  methods: this.listMethods().length,
@@ -1 +1 @@
1
- {"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/ipc/router.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/ipc/router.ts"],"names":[],"mappings":"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"}
@@ -18,6 +18,8 @@ import { InsightRepository } from './db/repositories/insight.repository.js';
18
18
  import { MemoryRepository } from './db/repositories/memory.repository.js';
19
19
  import { SessionRepository } from './db/repositories/session.repository.js';
20
20
  import { ABTestRepository } from './db/repositories/ab-test.repository.js';
21
+ import { CompetitorRepository } from './db/repositories/competitor.repository.js';
22
+ import { SchedulerRepository } from './db/repositories/scheduler.repository.js';
21
23
  // Services
22
24
  import { PostService } from './services/post.service.js';
23
25
  import { CampaignService } from './services/campaign.service.js';
@@ -31,6 +33,10 @@ import { InsightService } from './services/insight.service.js';
31
33
  import { MemoryService } from './services/memory.service.js';
32
34
  import { ABTestService } from './services/ab-test.service.js';
33
35
  import { CalendarService } from './services/calendar.service.js';
36
+ import { CompetitorService } from './services/competitor.service.js';
37
+ import { SchedulerService } from './services/scheduler.service.js';
38
+ import { ContentGeneratorService } from './services/content-generator.service.js';
39
+ import { PlatformAdapterService } from './services/platform-adapter.service.js';
34
40
  // Synapses
35
41
  import { SynapseManager } from './synapses/synapse-manager.js';
36
42
  // Engines
@@ -95,6 +101,8 @@ export class MarketingCore {
95
101
  const memoryRepo = new MemoryRepository(this.db);
96
102
  const sessionRepo = new SessionRepository(this.db);
97
103
  const abTestRepo = new ABTestRepository(this.db);
104
+ const competitorRepo = new CompetitorRepository(this.db);
105
+ const schedulerRepo = new SchedulerRepository(this.db);
98
106
  // 6. Synapse Manager
99
107
  const synapseManager = new SynapseManager(synapseRepo, config.synapses);
100
108
  // 7. Services
@@ -113,6 +121,10 @@ export class MarketingCore {
113
121
  analytics: new AnalyticsService(postRepo, engagementRepo, campaignRepo, strategyRepo, ruleRepo, templateRepo, insightRepo, synapseManager, memoryRepo, sessionRepo),
114
122
  insight: new InsightService(insightRepo, synapseManager),
115
123
  memory: memoryService,
124
+ competitor: new CompetitorService(competitorRepo),
125
+ scheduler: new SchedulerService(schedulerRepo, calendarService),
126
+ contentGenerator: new ContentGeneratorService(this.db, ruleRepo, templateRepo, calendarService),
127
+ platformAdapter: new PlatformAdapterService(),
116
128
  patternExtractor,
117
129
  abTest: abTestService,
118
130
  calendar: calendarService,