Files

65 lines
2.2 KiB
JavaScript

#!/usr/bin/env node
import process from "node:process";
import { loadAmbientEnv, DEFAULT_MODEL } from "./shared.js";
await loadAmbientEnv();
const TRUTHY = new Set(["1", "true", "yes", "on", "y"]);
const rawFlag = String(process.env.ENABLE_GARDEN_IMAGEGEN || "").trim().toLowerCase();
const gardenEnabled = TRUTHY.has(rawFlag);
const apiKey = process.env.OPENAI_API_KEY || "";
const baseUrl = process.env.OPENAI_BASE_URL || "https://api.openai.com/v1";
const model = process.env.OPENAI_IMAGE_MODEL || DEFAULT_MODEL;
let recommendation;
let mode;
let summary;
if (gardenEnabled && apiKey) {
mode = "A";
recommendation = "garden";
summary =
"MODE A · Garden 本地生图:用 scripts/generate.js / scripts/edit.js 直接出图并落盘。";
} else if (gardenEnabled && !apiKey) {
mode = "A?";
recommendation = "garden-missing-key";
summary =
"ENABLE_GARDEN_IMAGEGEN 已开,但缺 OPENAI_API_KEY。先向用户索要 key,或临时降级到 MODE B / C。";
} else {
mode = "B-or-C";
recommendation = "host-or-advisor";
summary =
"MODE B / C · 未启用 Garden。若宿主 Agent 自带图像工具(image_generation / dalle / mcp__*image* 等)→ MODE B:把 prompt 交给宿主出图。若宿主无图像工具 → MODE C:仅产出高质量 prompt 给用户。";
}
const result = {
mode,
recommendation,
garden_mode_enabled: gardenEnabled,
has_api_key: Boolean(apiKey),
base_url: baseUrl,
model,
env_flag_value: rawFlag || "(unset)",
summary,
};
const wantJson = process.argv.includes("--json");
if (wantJson) {
console.log(JSON.stringify(result, null, 2));
} else {
const pad = (s) => s.padEnd(24, " ");
console.log("--- gpt-image-2 runtime mode ---");
console.log(`${pad("mode")}: ${result.mode}`);
console.log(`${pad("recommendation")}: ${result.recommendation}`);
console.log(`${pad("garden_mode_enabled")}: ${result.garden_mode_enabled}`);
console.log(`${pad("has_api_key")}: ${result.has_api_key}`);
console.log(`${pad("base_url")}: ${result.base_url}`);
console.log(`${pad("model")}: ${result.model}`);
console.log(`${pad("env_flag_value")}: ${result.env_flag_value}`);
console.log("");
console.log(result.summary);
}