Vigia

Upgrading @firebase/ai from 2.x to 3.x

Comparison of the public API of @firebase/ai 2.16.0 and 3.0.0, computed automatically from their TypeScript types. A changed signature is a candidate for a breaking change, not a certainty.

Summary

Removed import paths0
Removed exports2
Changed signatures3
Removed class or interface members53
Changed class or interface members8
Newly deprecated11
Requirement changes (engines, peer dependencies)1
New exports1

Removed exports

importexportkindBefore
@firebase/aiChatSessionBaseclassclass
@firebase/aiVertexAIBackendclassclass

Changed signatures

exportBeforeAfter
@firebase/ai · ToolFunctionDeclarationsTool | CodeExecutionTool | GoogleMapsTool | GoogleSearchTool | URLContextToolCodeExecutionTool | FunctionDeclarationsTool | GoogleMapsTool | GoogleSearchTool | URLContextTool
@firebase/ai · BackendType"AGENT_PLATFORM" | "VERTEX_AI" | "GOOGLE_AI""AGENT_PLATFORM" | "GOOGLE_AI"
@firebase/ai · ChatSessionclassinterface

Removed class or interface members

memberimportBefore
AI.location@firebase/aistring
TextPart.inlineData@firebase/aiundefined
TextPart.functionCall@firebase/aiundefined
TextPart.executableCode@firebase/aiundefined
TextPart.functionResponse@firebase/aiundefined
TextPart.codeExecutionResult@firebase/aiundefined
GoogleMaps.enableWidget@firebase/aiboolean | undefined
ChatSession._history@firebase/aiContent[]
ChatSession._apiSettings@firebase/aiApiSettings
ChatSession.chromeAdapter@firebase/aiany
LiveSession.sendMediaChunks@firebase/ai(mediaChunks: GenerativeContentBlob[]): Promise<void>
LiveSession.sendMediaStream@firebase/ai(mediaChunkStream: ReadableStream<GenerativeContentBlob>): Promise<void>
FileDataPart.text@firebase/aiundefined
FileDataPart.inlineData@firebase/aiundefined
FileDataPart.functionCall@firebase/aiundefined
FileDataPart.executableCode@firebase/aiundefined
FileDataPart.functionResponse@firebase/aiundefined
FileDataPart.codeExecutionResult@firebase/aiundefined
InlineDataPart.text@firebase/aiundefined
InlineDataPart.functionCall@firebase/aiundefined
InlineDataPart.executableCode@firebase/aiundefined
InlineDataPart.functionResponse@firebase/aiundefined
InlineDataPart.codeExecutionResult@firebase/aiundefined
FunctionCallPart.text@firebase/aiundefined
FunctionCallPart.inlineData@firebase/aiundefined
FunctionCallPart.executableCode@firebase/aiundefined
FunctionCallPart.functionResponse@firebase/aiundefined
FunctionCallPart.codeExecutionResult@firebase/aiundefined
GroundingMetadata.retrievalQueries@firebase/aistring[] | undefined
ExecutableCodePart.text@firebase/aiundefined
ExecutableCodePart.thought@firebase/aiundefined
ExecutableCodePart.fileData@firebase/ainever
ExecutableCodePart.inlineData@firebase/aiundefined
ExecutableCodePart.functionCall@firebase/aiundefined
ExecutableCodePart.functionResponse@firebase/aiundefined
ExecutableCodePart.codeExecutionResult@firebase/aiundefined
CountTokensResponse.totalBillableCharacters@firebase/ainumber | undefined
FunctionResponsePart.text@firebase/aiundefined
FunctionResponsePart.inlineData@firebase/aiundefined
FunctionResponsePart.functionCall@firebase/aiundefined
FunctionResponsePart.executableCode@firebase/aiundefined
FunctionResponsePart.codeExecutionResult@firebase/aiundefined
CodeExecutionResultPart.text@firebase/aiundefined
CodeExecutionResultPart.thought@firebase/aiundefined
CodeExecutionResultPart.fileData@firebase/ainever
CodeExecutionResultPart.inlineData@firebase/aiundefined
CodeExecutionResultPart.functionCall@firebase/aiundefined
CodeExecutionResultPart.executableCode@firebase/aiundefined
CodeExecutionResultPart.functionResponse@firebase/aiundefined
LanguageModelCreateOptions.topK@firebase/ainumber | undefined
LanguageModelCreateOptions.temperature@firebase/ainumber | undefined
LanguageModelCreateCoreOptions.topK@firebase/ainumber | undefined
LanguageModelCreateCoreOptions.temperature@firebase/ainumber | undefined

Changed class or interface members

memberBeforeAfter
ChatSession.constructor(apiSettings: ApiSettings, model: string, chromeAdapter?: ChromeAdapter | undefined, params?: StartChatParams | undefined, requestOptions?: RequestOptions | undefined): ChatSession
GenerativeModel.generateContent(request: string | GenerateContentRequest | (string | Part)[], singleRequestOptions?: SingleRequestOptions | undefined): Promise<GenerateContentResult>(request: string | (string | Part)[] | GenerateContentRequest, singleRequestOptions?: SingleRequestOptions | undefined): Promise<GenerateContentResult>
GenerativeModel.generateContentStream(request: string | GenerateContentRequest | (string | Part)[], singleRequestOptions?: SingleRequestOptions | undefined): Promise<GenerateContentStreamResult>(request: string | (string | Part)[] | GenerateContentRequest, singleRequestOptions?: SingleRequestOptions | undefined): Promise<GenerateContentStreamResult>
ExecutableCodePart.executableCodeExecutableCode | undefinedExecutableCode
CodeExecutionResultPart.codeExecutionResultCodeExecutionResult | undefinedCodeExecutionResult
StartTemplateChatParams.templateVariablesRecord<string, unknown> | undefinedRecord<string, unknown>
TemplateGenerativeModel.generateContent(templateId: string, templateVariables: Record<string, unknown>, singleRequestOptions?: SingleRequestOptions | undefined, templateToolConfig?: TemplateToolConfig | undefined): Promise<GenerateContentResult>(request: TemplateRequest, singleRequestOptions?: SingleRequestOptions | undefined): Promise<GenerateContentResult>
TemplateGenerativeModel.generateContentStream(templateId: string, templateVariables: Record<string, unknown>, singleRequestOptions?: SingleRequestOptions | undefined, templateToolConfig?: TemplateToolConfig | undefined): Promise<GenerateContentStreamResult>(request: TemplateRequest, singleRequestOptions?: SingleRequestOptions | undefined): Promise<GenerateContentStreamResult>

Newly deprecated

export@deprecated
@firebase/ai · GenerationConfig.topKNot supported in Gemini 3.x and later models. The model will ignore this parameter if it's included in a request. Omit this parameter and let the model manage sampling automatically.
@firebase/ai · GenerationConfig.topPNot supported in Gemini 3.x and later models. The model will ignore this parameter if it's included in a request. Omit this parameter and let the model manage sampling automatically.
@firebase/ai · GenerationConfig.temperatureNot supported in Gemini 3.x and later models. The model will ignore this parameter if it's included in a request. Omit this parameter and let the model manage sampling automatically.
@firebase/ai · GenerationConfig.candidateCountNot supported in Gemini 3.x and later models. The model will ignore this parameter if it's included in a request. Make parallel requests instead.
@firebase/ai · GenerationConfig.presencePenaltyNot supported in Gemini 3.x and later models. Requests that include this parameter will fail with a 400 error. Omit this parameter.
@firebase/ai · GenerationConfig.frequencyPenaltyNot supported in Gemini 3.x and later models. Requests that include this parameter will fail with a 400 error. Omit this parameter.
@firebase/ai · LiveGenerationConfig.topKNot supported in Gemini 3.x and later models. The model will ignore this parameter if it's included in a request. Omit this parameter and let the model manage sampling automatically.
@firebase/ai · LiveGenerationConfig.topPNot supported in Gemini 3.x and later models. The model will ignore this parameter if it's included in a request. Omit this parameter and let the model manage sampling automatically.
@firebase/ai · LiveGenerationConfig.temperatureNot supported in Gemini 3.x and later models. The model will ignore this parameter if it's included in a request. Omit this parameter and let the model manage sampling automatically.
@firebase/ai · LiveGenerationConfig.presencePenaltyNot supported in Gemini 3.x and later models. Requests that include this parameter will fail with a 400 error. Omit this parameter.
@firebase/ai · LiveGenerationConfig.frequencyPenaltyNot supported in Gemini 3.x and later models. Requests that include this parameter will fail with a 400 error. Omit this parameter.

Requirement changes (engines, peer dependencies)

BeforeAfter
engines.node>=20.0.0>=24.12.0
New exports (1)
importexportkind
@firebase/aiTemplateRequestinterface

Give your AI agent these facts

Vigia is a free MCP server: your coding agent checks versions, breaking changes and vulnerabilities before it writes code. No signup, no API key.

claude mcp add --transport http vigia https://vigia.coredls.cloud/mcp

Add to CursorAdd to VS Code★ Star on GitHub

Any other MCP client
{ "mcpServers": { "vigia": { "url": "https://vigia.coredls.cloud/mcp" } } }

Agent skill (SKILL.md): tells the agent when to use Vigia · GitHub Action for pull requests

Frequently asked questions

What are the breaking changes when upgrading @firebase/ai from 2 to 3?

Between @firebase/ai 2.16.0 and 3.0.0, Vigia found 2 removed exports, 3 changed signatures and 61 removed or changed class or interface members.

What became deprecated in @firebase/ai 3?

11 exports or members are newly marked as deprecated in @firebase/ai 3.0.0.

For agents

GET https://vigia.coredls.cloud/v1/packages/npm/@firebase/ai/upgrade?from=2.16.0&to=3.0.0