From 70cbd8beea0fcd8f266e34cb381bc366aa61b3b8 Mon Sep 17 00:00:00 2001 From: arkml Date: Tue, 16 Sep 2025 14:59:00 +0530 Subject: [PATCH] make generate_image conditionally show up --- apps/rowboat/app/lib/project_templates.ts | 6 ++++-- .../use-cases/projects/create-project.use-case.ts | 5 +++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/apps/rowboat/app/lib/project_templates.ts b/apps/rowboat/app/lib/project_templates.ts index 62a89810..d35aa31d 100644 --- a/apps/rowboat/app/lib/project_templates.ts +++ b/apps/rowboat/app/lib/project_templates.ts @@ -3,13 +3,15 @@ import { z } from 'zod'; // Provide a minimal default template to satisfy legacy code paths that // still reference `templates.default`. Real templates are DB-backed. +const includeGeminiImageTool = !!process.env.GOOGLE_API_KEY; + const defaultTemplate: z.infer = { name: 'Blank Template', description: 'A blank canvas to build your assistant.', startAgent: "", agents: [], prompts: [], - tools: [ + tools: includeGeminiImageTool ? [ { name: "Generate Image", description: "Generate an image using Google Gemini given a text prompt. Returns base64-encoded image data and any text parts.", @@ -24,7 +26,7 @@ const defaultTemplate: z.infer = { additionalProperties: true, }, }, - ], + ] : [], pipelines: [], }; diff --git a/apps/rowboat/src/application/use-cases/projects/create-project.use-case.ts b/apps/rowboat/src/application/use-cases/projects/create-project.use-case.ts index 097fdbba..d5433cb7 100644 --- a/apps/rowboat/src/application/use-cases/projects/create-project.use-case.ts +++ b/apps/rowboat/src/application/use-cases/projects/create-project.use-case.ts @@ -95,9 +95,10 @@ export class CreateProjectUseCase implements ICreateProjectUseCase { } } - // Ensure the Gemini Image tool is always available by default + // Conditionally include Gemini Image tool by default if GOOGLE_API_KEY is present + const hasGoogleKey = !!process.env.GOOGLE_API_KEY; const hasImageTool = (workflow.tools || []).some(t => t.isGeminiImage || t.name === 'Generate Image'); - if (!hasImageTool) { + if (hasGoogleKey && !hasImageTool) { const imageTool = { name: 'Generate Image', description: 'Generate an image using Google Gemini given a text prompt. Returns base64-encoded image data and any text parts.',