Skip to content

feat: migrate @google/generative-ai → @google/genai SDK + Deep Research config#624

Merged
codercatdev merged 1 commit intodevfrom
feat/gemini-sdk-migration
Mar 5, 2026
Merged

feat: migrate @google/generative-ai → @google/genai SDK + Deep Research config#624
codercatdev merged 1 commit intodevfrom
feat/gemini-sdk-migration

Conversation

@codercatdev
Copy link
Contributor

Summary

Phase 2 Sprint 1: Migrate from deprecated @google/generative-ai SDK to @google/genai + add Deep Research config fields to pipelineConfig singleton.

Spec: Replace NotebookLM with Gemini Deep Research API
Tasks: Sprint 1 Tasks 1 + 2

Task 1 — SDK Migration (4 files)

lib/gemini.ts

  • GoogleGenerativeAIGoogleGenAI from @google/genai
  • Module-level client replaced with lazy-init pattern (getAI()) — prevents crash at import time if GEMINI_API_KEY is missing
  • genAI.getGenerativeModel() + model.generateContent()ai.models.generateContent({ model, contents, config })
  • systemInstruction moved into config object
  • result.response.text()response.text (property in new SDK, not method)

lib/sponsor/gemini-intent.ts

  • Same SDK migration pattern
  • new GoogleGenerativeAI(apiKey)new GoogleGenAI({ apiKey })
  • model.generateContent(prompt)ai.models.generateContent({ model, contents })

lib/sponsor/gemini-outreach.ts

  • Same SDK migration pattern

package.json

  • Removed: "@google/generative-ai": "^0.24.1"
  • Added: "@google/genai": "^1.0.0"

Task 2 — Deep Research Config (2 files)

sanity/schemas/singletons/pipelineConfig.ts

4 new fields added after enableNotebookLmResearch:

  • enableDeepResearch — boolean (default false)
  • deepResearchAgent — string (default "deep-research-pro-preview-12-2025")
  • deepResearchPromptTemplate — text with {topic} placeholder
  • infographicModel — string (default "imagen-4-fast")

lib/types/config.ts

Matching fields added to PipelineConfig interface.

Key SDK Changes for Downstream Agents

// Old SDK
import { GoogleGenerativeAI } from "@google/generative-ai";
const genAI = new GoogleGenerativeAI(apiKey);
const model = genAI.getGenerativeModel({ model: "gemini-2.0-flash" });
const result = await model.generateContent(prompt);
const text = result.response.text(); // method

// New SDK
import { GoogleGenAI } from "@google/genai";
const ai = new GoogleGenAI({ apiKey });
const response = await ai.models.generateContent({ model, contents, config });
const text = response.text; // PROPERTY — no parentheses

This unblocks Sprint 2: @research (Task 3: Gemini Deep Research client) and @videopipe (Task 4: infographic generation).

…ch config

Task 1 — SDK Migration:
- Replace @google/generative-ai with @google/genai in package.json
- lib/gemini.ts: lazy-init GoogleGenAI client, ai.models.generateContent()
- lib/sponsor/gemini-intent.ts: migrate to new SDK API surface
- lib/sponsor/gemini-outreach.ts: migrate to new SDK API surface
- response.text is now a property (not method) in new SDK

Task 2 — Deep Research Config:
- pipelineConfig.ts: add enableDeepResearch, deepResearchAgent,
  deepResearchPromptTemplate, infographicModel fields
- lib/types/config.ts: add matching PipelineConfig interface fields
@vercel
Copy link

vercel bot commented Mar 5, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Actions Updated (UTC)
codingcat-dev Ignored Ignored Mar 5, 2026 7:08pm

@codercatdev codercatdev merged commit 094aaf8 into dev Mar 5, 2026
2 of 3 checks passed
@codercatdev codercatdev deleted the feat/gemini-sdk-migration branch March 5, 2026 19:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant