feat(mockup): add OpenAI Codex (gpt-5.6-sol + built-in image_gen) raster mockup generator
This commit is contained in:
1 parent
744d29c003
commit
8a25771839
6 files changed
+215
-24
No files matched your search
+23
-8
@@ -14,7 +14,8 @@ import {
|
||||
NANO_BANANA_MODELS,
|
||||
SURFACE_PRESETS,
|
||||
buildNanoBananaPrompt,
|
||||
generateWithNanoBanana
|
||||
generateWithNanoBanana,
|
||||
isCodexConfigured
|
||||
} from "./nano_banana.js";
|
||||
|
||||
const __filename = fileURLToPath(import.meta.url);
|
||||
@@ -328,7 +329,7 @@ export function createAppServer({
|
||||
});
|
||||
|
||||
const storedKey = store.getSetting("gemini_api_key", "");
|
||||
const selectedModel = body.model || store.getSetting("nano_banana_model", "gemini-nano-banana-2.1");
|
||||
const selectedModel = body.model || store.getSetting("nano_banana_model", "codex-image-gen");
|
||||
|
||||
try {
|
||||
const genResult = await generateWithNanoBanana({
|
||||
@@ -479,12 +480,24 @@ export function createAppServer({
|
||||
const savedKey = store.getSetting("gemini_api_key", "");
|
||||
const envKey = process.env.GEMINI_API_KEY || process.env.GOOGLE_API_KEY || "";
|
||||
const activeKey = savedKey || envKey;
|
||||
const model = store.getSetting("nano_banana_model", "gemini-nano-banana-2.1");
|
||||
const codexReady = isCodexConfigured();
|
||||
const model = store.getSetting("nano_banana_model", "codex-image-gen");
|
||||
|
||||
return sendJson(res, 200, {
|
||||
hasApiKey: Boolean(activeKey),
|
||||
apiKeySource: savedKey ? "settings" : envKey ? "environment" : "none",
|
||||
maskedKey: activeKey ? `${activeKey.slice(0, 4)}...${activeKey.slice(-4)}` : "",
|
||||
hasApiKey: Boolean(activeKey) || codexReady,
|
||||
codexReady,
|
||||
apiKeySource: codexReady
|
||||
? "OpenAI Codex (OAuth)"
|
||||
: savedKey
|
||||
? "settings"
|
||||
: envKey
|
||||
? "environment"
|
||||
: "none",
|
||||
maskedKey: activeKey
|
||||
? `${activeKey.slice(0, 4)}...${activeKey.slice(-4)}`
|
||||
: codexReady
|
||||
? "Authenticated via ~/.codex/auth.json"
|
||||
: "",
|
||||
nanoBananaModel: model,
|
||||
availableModels: NANO_BANANA_MODELS,
|
||||
surfacePresets: Object.entries(SURFACE_PRESETS).map(([id, val]) => ({
|
||||
@@ -504,10 +517,12 @@ export function createAppServer({
|
||||
const savedKey = store.getSetting("gemini_api_key", "");
|
||||
const envKey = process.env.GEMINI_API_KEY || process.env.GOOGLE_API_KEY || "";
|
||||
const activeKey = savedKey || envKey;
|
||||
const codexReady = isCodexConfigured();
|
||||
return sendJson(res, 200, {
|
||||
saved: true,
|
||||
hasApiKey: Boolean(activeKey),
|
||||
nanoBananaModel: store.getSetting("nano_banana_model", "gemini-nano-banana-2.1")
|
||||
hasApiKey: Boolean(activeKey) || codexReady,
|
||||
codexReady,
|
||||
nanoBananaModel: store.getSetting("nano_banana_model", "codex-image-gen")
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user