MCPcopy Index your code
hub / github.com/ChatLab/ChatLab / initSync

Function initSync

apps/cli/src/sync/index.ts:32–71  ·  view source on GitHub ↗
(
  server: FastifyInstance,
  dbManager: DatabaseManager,
  pathProvider: PathProvider,
  serverInfo: { port: number; host: string; token: string }
)

Source from the content-addressed store, hash-verified

30let pullEngine: PullEngine | null = null
31
32export function initSync(
33 server: FastifyInstance,
34 dbManager: DatabaseManager,
35 pathProvider: PathProvider,
36 serverInfo: { port: number; host: string; token: string }
37): void {
38 const settingsDir = pathProvider.getSettingsDir()
39
40 dsManager = new DataSourceManager(settingsDir, syncLogger)
41
42 const fetcher = new NodeFetcher()
43 const importer = new DirectImporter(dbManager, syncLogger)
44 const notifier = new NoopNotifier()
45
46 const sessionAdapter = createDatabaseManagerAdapter(dbManager)
47 const preferences = new PreferencesManager(pathProvider.getSystemDir())
48
49 pullEngine = new PullEngine({
50 fetcher,
51 importer,
52 notifier,
53 dsManager,
54 logger: syncLogger,
55 onSessionImported: (localSessionId) => {
56 preferences.invalidateCache()
57 const result = ownerProfileService.tryApplyOwnerProfile(sessionAdapter, preferences, localSessionId)
58 if (result.applied) {
59 syncLogger.info(`[Pull] Applied owner profile to session ${localSessionId} (owner: ${result.ownerId})`)
60 }
61 },
62 })
63
64 registerAutomationRoutes(server, { dsManager, pullEngine, dbManager, serverInfo })
65
66 initScheduler({
67 dsManager,
68 pullEngine,
69 logger: syncLogger,
70 })
71}
72
73export function cleanupSync(): void {
74 stopAllTimers()

Callers 1

startHttpServerFunction · 0.90

Calls 8

invalidateCacheMethod · 0.95
registerAutomationRoutesFunction · 0.90
initSchedulerFunction · 0.90
getSettingsDirMethod · 0.65
getSystemDirMethod · 0.65
tryApplyOwnerProfileMethod · 0.65
infoMethod · 0.65

Tested by

no test coverage detected