codevault
Version:
AI-powered semantic code search via Model Context Protocol
91 lines • 5 kB
JavaScript
import { loadConfig } from './loader.js';
/**
* Apply configuration to process.env for backward compatibility
* This allows existing code to work without changes
*
* @readonly Only reads config, modifies process.env (ephemeral)
* @param basePath Project path for loading config
*/
export function applyConfigToEnv(basePath = '.') {
const config = loadConfig(basePath);
// Only set env vars if they're not already set (env vars have priority)
// OpenAI provider - Set new variables with backward compatibility
if (config.providers?.openai) {
if (!process.env.CODEVAULT_EMBEDDING_API_KEY && !process.env.OPENAI_API_KEY && config.providers.openai.apiKey) {
process.env.CODEVAULT_EMBEDDING_API_KEY = config.providers.openai.apiKey;
process.env.OPENAI_API_KEY = config.providers.openai.apiKey; // Backward compatibility
}
if (!process.env.CODEVAULT_EMBEDDING_BASE_URL && !process.env.OPENAI_BASE_URL && config.providers.openai.baseUrl) {
process.env.CODEVAULT_EMBEDDING_BASE_URL = config.providers.openai.baseUrl;
process.env.OPENAI_BASE_URL = config.providers.openai.baseUrl; // Backward compatibility
}
if (!process.env.CODEVAULT_EMBEDDING_MODEL && !process.env.CODEVAULT_OPENAI_EMBEDDING_MODEL && config.providers.openai.model) {
process.env.CODEVAULT_EMBEDDING_MODEL = config.providers.openai.model;
process.env.CODEVAULT_OPENAI_EMBEDDING_MODEL = config.providers.openai.model; // Backward compatibility
}
if (!process.env.CODEVAULT_EMBEDDING_DIMENSIONS && !process.env.CODEVAULT_DIMENSIONS && config.providers.openai.dimensions) {
process.env.CODEVAULT_EMBEDDING_DIMENSIONS = String(config.providers.openai.dimensions);
process.env.CODEVAULT_DIMENSIONS = String(config.providers.openai.dimensions); // Backward compatibility
}
}
// Max tokens - Set new variable with backward compatibility
if (!process.env.CODEVAULT_EMBEDDING_MAX_TOKENS && !process.env.CODEVAULT_MAX_TOKENS && config.maxTokens) {
process.env.CODEVAULT_EMBEDDING_MAX_TOKENS = String(config.maxTokens);
process.env.CODEVAULT_MAX_TOKENS = String(config.maxTokens); // Backward compatibility
}
// Rate limiting - Set new variables with backward compatibility
if (config.rateLimit) {
if (!process.env.CODEVAULT_EMBEDDING_RATE_LIMIT_RPM && !process.env.CODEVAULT_RATE_LIMIT_RPM && config.rateLimit.rpm) {
process.env.CODEVAULT_EMBEDDING_RATE_LIMIT_RPM = String(config.rateLimit.rpm);
process.env.CODEVAULT_RATE_LIMIT_RPM = String(config.rateLimit.rpm); // Backward compatibility
}
if (!process.env.CODEVAULT_EMBEDDING_RATE_LIMIT_TPM && !process.env.CODEVAULT_RATE_LIMIT_TPM && config.rateLimit.tpm) {
process.env.CODEVAULT_EMBEDDING_RATE_LIMIT_TPM = String(config.rateLimit.tpm);
process.env.CODEVAULT_RATE_LIMIT_TPM = String(config.rateLimit.tpm); // Backward compatibility
}
}
// Encryption
if (config.encryption) {
if (!process.env.CODEVAULT_ENCRYPTION_KEY && config.encryption.key) {
process.env.CODEVAULT_ENCRYPTION_KEY = config.encryption.key;
}
}
// Reranker
if (config.reranker) {
if (!process.env.CODEVAULT_RERANK_API_URL && config.reranker.apiUrl) {
process.env.CODEVAULT_RERANK_API_URL = config.reranker.apiUrl;
}
if (!process.env.CODEVAULT_RERANK_API_KEY && config.reranker.apiKey) {
process.env.CODEVAULT_RERANK_API_KEY = config.reranker.apiKey;
}
if (!process.env.CODEVAULT_RERANK_MODEL && config.reranker.model) {
process.env.CODEVAULT_RERANK_MODEL = config.reranker.model;
}
}
// Chat LLM
if (config.chatLLM?.openai) {
if (!process.env.CODEVAULT_CHAT_API_KEY && config.chatLLM.openai.apiKey) {
process.env.CODEVAULT_CHAT_API_KEY = config.chatLLM.openai.apiKey;
}
if (!process.env.CODEVAULT_CHAT_BASE_URL && config.chatLLM.openai.baseUrl) {
process.env.CODEVAULT_CHAT_BASE_URL = config.chatLLM.openai.baseUrl;
}
if (!process.env.CODEVAULT_CHAT_MODEL && config.chatLLM.openai.model) {
process.env.CODEVAULT_CHAT_MODEL = config.chatLLM.openai.model;
}
if (!process.env.CODEVAULT_CHAT_MAX_TOKENS && config.chatLLM.openai.maxTokens) {
process.env.CODEVAULT_CHAT_MAX_TOKENS = String(config.chatLLM.openai.maxTokens);
}
if (!process.env.CODEVAULT_CHAT_TEMPERATURE && config.chatLLM.openai.temperature) {
process.env.CODEVAULT_CHAT_TEMPERATURE = String(config.chatLLM.openai.temperature);
}
}
}
/**
* Get effective configuration (for display purposes)
* Shows what config is actually being used after merging
*/
export function getEffectiveConfig(basePath = '.') {
return loadConfig(basePath);
}
//# sourceMappingURL=apply-env.js.map