Просмотр исходного кода

fix: .env variables override inkos.json LLM config

INKOS_LLM_PROVIDER, INKOS_LLM_BASE_URL, INKOS_LLM_API_KEY,
INKOS_LLM_MODEL from .env now override empty fields in inkos.json.
Users only need to edit .env after init, not inkos.json.
majx_mac 8 месяцев назад
Родитель
Сommit
00f1beaf61
2 измененных файлов с 11 добавлено и 2 удалено
  1. 1 1
      packages/cli/package.json
  2. 10 1
      packages/cli/src/utils.ts

+ 1 - 1
packages/cli/package.json

@@ -1,6 +1,6 @@
 {
   "name": "@actalk/inkos",
-  "version": "0.1.0",
+  "version": "0.1.2",
   "description": "InkOS CLI — multi-agent novel production system",
   "type": "module",
   "bin": {

+ 10 - 1
packages/cli/src/utils.ts

@@ -16,7 +16,16 @@ export async function loadConfig(): Promise<ProjectConfig> {
   const configPath = join(root, "inkos.json");
   try {
     const raw = await readFile(configPath, "utf-8");
-    return ProjectConfigSchema.parse(JSON.parse(raw));
+    const config = JSON.parse(raw);
+
+    // .env overrides inkos.json for LLM settings
+    const env = process.env;
+    if (env.INKOS_LLM_PROVIDER) config.llm.provider = env.INKOS_LLM_PROVIDER;
+    if (env.INKOS_LLM_BASE_URL) config.llm.baseUrl = env.INKOS_LLM_BASE_URL;
+    if (env.INKOS_LLM_API_KEY) config.llm.apiKey = env.INKOS_LLM_API_KEY;
+    if (env.INKOS_LLM_MODEL) config.llm.model = env.INKOS_LLM_MODEL;
+
+    return ProjectConfigSchema.parse(config);
   } catch (e) {
     throw new Error(
       `Failed to load inkos.json from ${root}. Run 'inkos init' first.`,