import memoize from 'lodash-es/memoize.js' import { join } from 'path' import { getPlatform } from '../platform.js' /** * Get the path to the managed settings directory based on the current platform. */ export const getManagedFilePath = memoize(function (): string { // Allow override for testing/demos (Ant-only, eliminated from external builds) if ( process.env.USER_TYPE === 'ant' && process.env.CLAUDE_CODE_MANAGED_SETTINGS_PATH ) { return process.env.CLAUDE_CODE_MANAGED_SETTINGS_PATH } switch (getPlatform()) { case 'macos': return '/Library/Application Support/ClaudeCode' case 'windows': return 'C:\\Program Files\\ClaudeCode' default: return '/etc/claude-code' } }) /** * Get the path to the managed-settings.d/ drop-in directory. * managed-settings.json is merged first (base), then files in this directory * are merged alphabetically on top (drop-ins override base, later files win). */ export const getManagedSettingsDropInDir = memoize(function (): string { return join(getManagedFilePath(), 'managed-settings.d') })