@@ -17,9 +17,10 @@ function parseMemorySharingPolicy(envVarName, {env = process.env} = {}) {
1717const __filename = fileURLToPath ( import . meta. url ) ;
1818const __dirname = path . dirname ( __filename ) ;
1919
20- const neoRootDir = path . resolve ( __dirname , '../../../../' ) ;
21- const cwd = neoRootDir ;
22- const DAY_MS = 24 * 60 * 60 * 1000 ;
20+ const neoRootDir = path . resolve ( __dirname , '../../../../' ) ;
21+ const cwd = neoRootDir ;
22+ const wakeDaemonDataDir = path . resolve ( process . env . NEO_AI_DAEMON_DIR || path . resolve ( cwd , '.neo-ai-data/wake-daemon' ) ) ;
23+ const DAY_MS = 24 * 60 * 60 * 1000 ;
2324
2425/**
2526 * @summary Configuration manager for the Memory Core MCP server.
@@ -111,6 +112,14 @@ class Config extends BaseConfig {
111112 storagePaths : {
112113 graph : leaf ( process . env . UNIT_TEST_MODE === 'true' ? ':memory:' : path . resolve ( cwd , '.neo-ai-data/sqlite/memory-core-graph.sqlite' ) , 'NEO_MEMORY_DB_PATH' , 'string' )
113114 } ,
115+ /**
116+ * Durable wake-daemon watermarks consumed by GraphLog maintenance.
117+ */
118+ wakeDaemon : {
119+ dataDir : leaf ( wakeDaemonDataDir , 'NEO_AI_DAEMON_DIR' , 'string' ) ,
120+ bridgeLastSyncIdPath : leaf ( path . join ( wakeDaemonDataDir , 'lastSyncId' ) , 'NEO_BRIDGE_LAST_SYNC_ID_PATH' , 'string' ) ,
121+ wakeSubscriptionLiveCursorPath : leaf ( path . join ( wakeDaemonDataDir , 'wakeSubscriptionLiveCursor' ) , 'NEO_AI_WAKE_SUBSCRIPTION_CURSOR_FILE' , 'string' )
122+ } ,
114123 /**
115124 * Data Schema/Table Names
116125 * This defines WHAT the tables/collections are called logically.
0 commit comments