Add consent-gated media exchange library

This commit is contained in:
jjbrunton committed 2026-08-09 19:24:38 +01:00
1 parent b8e4a1bb88
commit bf474dfe10
42 files changed
+2533 -9

No files matched your search

+10
View File
@@ -52,6 +52,8 @@ import { importLegacyAccountContent } from './database/legacy-content-import.js'
import { RecipientDeduplicator } from './services/recipient-deduplicator.js';
import { createConfigBackedSubredditPollingControl } from './services/subreddit-polling-control.js';
import { CandidateQueueRepository, RuntimeStateRepository } from './database/candidate-queue-repository.js';
import { MediaLibraryRepository } from './database/media-library-repository.js';
import { MediaLibraryService } from './services/media-library.js';
export interface AppContainer {
config: Config;
@@ -82,6 +84,7 @@ export interface AppContainer {
mediaService: MediaService;
chatService: ChatService;
mediaSyncService: MediaSyncService;
mediaLibraryService: MediaLibraryService;
rateLimiter: RateLimiter;
webServer: WebServer | null;
@@ -178,6 +181,11 @@ export async function bootstrap(
const aiClient = new OpenRouterClient(config, logger, undefined, (usage) => {
aiUsageRepo.record({ ...usage, accountId: accountAuth.getSnapshot().accountId });
});
const mediaLibraryService = new MediaLibraryService(
new MediaLibraryRepository(db),
aiClient,
logger,
);
const monitorService = new MonitorService(
redditApi, postsRepo, recipientDeduplicator, config, logger, 1000,
createConfigBackedSubredditPollingControl(config, new ConfigStore(db), logger),
@@ -427,6 +435,7 @@ export async function bootstrap(
});
webServer.setMediaService(mediaService);
webServer.setMediaSyncService(mediaSyncService);
webServer.setMediaLibraryService(mediaLibraryService);
webServer.setResponseChecker(responseChecker);
webServer.setRateLimiter(rateLimiter);
webServer.setAiClient(aiClient);
@@ -483,6 +492,7 @@ export async function bootstrap(
mediaService,
chatService,
mediaSyncService,
mediaLibraryService,
rateLimiter,
webServer,
};