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

Function resolveUserDataDir

packages/node-runtime/src/node-path-provider.ts:119–147  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

117}
118
119function resolveUserDataDir(): string {
120 const envDir = process.env.CHATLAB_DATA_DIR
121 if (envDir) {
122 return expandHome(envDir)
123 }
124
125 const config = loadConfig()
126 if (config.data.user_data_dir) {
127 return expandHome(config.data.user_data_dir)
128 }
129
130 // First run: check for existing Electron desktop data before using default
131 const result = migrateFromElectronIfNeeded(SYSTEM_DIR)
132 if (result.migrated && result.userDataDir) {
133 return result.userDataDir
134 }
135
136 const defaultDir = getDefaultNodeUserDataDir()
137
138 if (result.electronDetected) {
139 // Electron was used but we couldn't find databases — likely a custom data directory.
140 // Don't persist default to config.toml so migration retries on next startup.
141 _pendingElectronDataWarning = true
142 return defaultDir
143 }
144
145 writeConfigField('data', 'user_data_dir', defaultDir)
146 return defaultDir
147}
148
149export function getDefaultNodeUserDataDir(): string {
150 return path.join(os.homedir(), '.chatlab', 'data')

Callers 1

constructorMethod · 0.85

Calls 5

loadConfigFunction · 0.90
writeConfigFieldFunction · 0.90
expandHomeFunction · 0.85

Tested by

no test coverage detected