# @langchain/google

## 0.2.9

### Patch Changes

- [#11806](https://github.com/langchain-ai/langchainjs/pull/11806) [`241a046`](https://github.com/langchain-ai/langchainjs/commit/241a046a2b8750df1c18ad8a013c0a038c9c99d7) Thanks [@thushanth-bengre-langchain](https://github.com/thushanth-bengre-langchain)! - fix(google): send thinkingLevel LOW instead of MINIMAL to Gemini 3 models that reject MINIMAL (e.g. gemini-3.7-flash, gemini-3.8-flash), so `thinkingBudget: 0` and `reasoningEffort: "minimal"` no longer 400

## 0.2.8

### Patch Changes

- [#11641](https://github.com/langchain-ai/langchainjs/pull/11641) [`12626c2`](https://github.com/langchain-ai/langchainjs/commit/12626c25a9acdd72d2c8a68788479440916d38a1) Thanks [@ccurme](https://github.com/ccurme)! - Add `LANGSMITH_GATEWAY` direct routing for Bedrock Converse and Vertex AI chat models.

- [#11680](https://github.com/langchain-ai/langchainjs/pull/11680) [`29caa17`](https://github.com/langchain-ai/langchainjs/commit/29caa176aee136e0ab2e388538c151cf1f8e3a94) Thanks [@jackjin1997](https://github.com/jackjin1997)! - Fix service account authentication on the Node client. `NodeApiClient.fetch` interpolated the unresolved access token promise, sending `Bearer [object Promise]`, and the JWT it exchanges carried no `scope` claim, which Google requires on the assertion for an access token request. Credentials supplied through `GOOGLE_CLOUD_CREDENTIALS` now reach Vertex AI instead of failing with invalid credentials and then an invalid scope error.

## 0.2.7

### Patch Changes

- [#11664](https://github.com/langchain-ai/langchainjs/pull/11664) [`16c5a5e`](https://github.com/langchain-ai/langchainjs/commit/16c5a5e7284b14ee81ec0140a144e097712c48bc) Thanks [@jackjin1997](https://github.com/jackjin1997)! - Configure the required OAuth scopes when the Node.js client falls back to Application Default Credentials.

## 0.2.6

### Patch Changes

- [#11433](https://github.com/langchain-ai/langchainjs/pull/11433) [`bc88b75`](https://github.com/langchain-ai/langchainjs/commit/bc88b750499ece71315ff3aa31309280bc0423f6) Thanks [@jackjin1997](https://github.com/jackjin1997)! - Fix Vertex AI endpoint routing for multi-region locations such as `eu` and `us`.

- [#11606](https://github.com/langchain-ai/langchainjs/pull/11606) [`194a063`](https://github.com/langchain-ai/langchainjs/commit/194a06348b8f7ef0ecf76c0c72096ef453d1166a) Thanks [@thushanth-bengre-langchain](https://github.com/thushanth-bengre-langchain)! - fix: allowlist JSON Schema keywords for Gemini function/response schemas instead of denylisting, fixing `propertyNames`/`exclusiveMinimum`/etc. 400s ([#8584](https://github.com/langchain-ai/langchainjs/issues/8584))

- [#11611](https://github.com/langchain-ai/langchainjs/pull/11611) [`c9ae847`](https://github.com/langchain-ai/langchainjs/commit/c9ae84784f14d735108feefac991723fbefbde11) Thanks [@thushanth-bengre-langchain](https://github.com/thushanth-bengre-langchain)! - fix(google): set `toolConfig.includeServerSideToolInvocations` when mixing built-in and function-declaration tools, which Gemini otherwise rejects with a 400

- [#11616](https://github.com/langchain-ai/langchainjs/pull/11616) [`35368db`](https://github.com/langchain-ai/langchainjs/commit/35368db8b942a353c71a3f4c64b04defeb481000) Thanks [@thushanth-bengre-langchain](https://github.com/thushanth-bengre-langchain)! - fix(google): surface `groundingMetadata`/`groundingSupport`/`citationMetadata` on `.stream()` and `.streamEvents()`, matching what `.invoke()` already returns

- [#11603](https://github.com/langchain-ai/langchainjs/pull/11603) [`fec9cd8`](https://github.com/langchain-ai/langchainjs/commit/fec9cd87b01976014dd549bd2cf7849aee89a566) Thanks [@thushanth-bengre-langchain](https://github.com/thushanth-bengre-langchain)! - fix(core): build streaming `llmOutput.tokenUsage` from the fully-accumulated chunk instead of whichever individual chunk's `usage_metadata` arrived last

  Affects both core streaming paths — `.stream()`/`.streamEvents()` (`_streamIterator`) and `.invoke()`/`.generate()` when a streaming-preferring callback is attached (`_generateWithCache`'s `hasStreamingHandler` branch). Previously, `llmOutput.tokenUsage` was overwritten by each chunk in turn, so only the last chunk carrying `usage_metadata` won — correct for providers that emit one cumulative total on a final chunk, but wrong for providers (e.g. `@langchain/google`, `@langchain/anthropic`) that emit `usage_metadata` as a per-chunk delta across multiple chunks, where the values must be summed.

  Note for provider authors: this assumes each streamed chunk's `usage_metadata` is either a per-chunk delta or appears only on a single final chunk. A provider that instead repeats a cumulative total on every chunk will now see it summed (and inflated) in `llmOutput.tokenUsage`, matching the existing behavior of the correctly-working `message.usage_metadata` field.

  Also fixes `@langchain/google`'s `invoke({streaming: true})` path (no streaming-preferring callback attached), where `llmOutput` was never populated at all.

- [#11602](https://github.com/langchain-ai/langchainjs/pull/11602) [`78b2923`](https://github.com/langchain-ai/langchainjs/commit/78b29235cb1adf341fce97884f9ff558cd38b079) Thanks [@thushanth-bengre-langchain](https://github.com/thushanth-bengre-langchain)! - fix(google): preserve tool call `id` and `thoughtSignature` in native stream events

  Preserves tool call `id` and Gemini's `thoughtSignature` through `@langchain/google`'s native `streamEvents()` path.

## 0.2.5

### Patch Changes

- [#10047](https://github.com/langchain-ai/langchainjs/pull/10047) [`ff1248f`](https://github.com/langchain-ai/langchainjs/commit/ff1248fd49dacdb35f5da128278cd777068481d7) Thanks [@afirstenberg](https://github.com/afirstenberg)! - fix(core): BaseMessage.text use contentBlocks

- [#11574](https://github.com/langchain-ai/langchainjs/pull/11574) [`5c89094`](https://github.com/langchain-ai/langchainjs/commit/5c8909465416c4751a58552dbc29257e2f19b051) Thanks [@afirstenberg](https://github.com/afirstenberg)! - This addresses four specific issues:

  - "thought" and "thoughtSignature" not being present in the conversation
    history sent to Gemini when using v0 messages
  - "thought" and "thoughtSignature" not being present in the conversation history sent to Gemini when using v1 messages
  - "thoughtSignature" not being present in v1 tool calls specifically
  - ContentBlock.Reasoning not being handled in v1 at all

  It does so by, largely, keeping the existing logic converting from LangChain representation to a Google.Part in both the v0 (legacy) and v1 (standard) paths intact. (This is done in both in the messages.ts file.)

  - In convertLegacyContentMessageToGeminiContent(), the conversion is moved to a new function: convertLegacyPartToGeminiPart() for consistency with the standard path and to standardize where and how the thought/thoughtSignature fields are added
  - Both convertLegacyPartToGeminiPart() and convertStandardContentBlockToGeminiPart() get a baseGeminiPart() function that returns the Gemini.Part without the thought or thoughtSignature fields
  - Both then add the additional fields, if necessary, independent of what the underlying Gemini.Part is.

  The last point is done because Gemini can attach "thought" or "thoughtSignature" to any block type. Not just text.

## 0.2.4

### Patch Changes

- [#11426](https://github.com/langchain-ai/langchainjs/pull/11426) [`2e865ea`](https://github.com/langchain-ai/langchainjs/commit/2e865ea06047d6a71e9fb694dfb0dee5c1a46f4b) Thanks [@thushanth-bengre-langchain](https://github.com/thushanth-bengre-langchain)! - fix: keep image/audio/video content in ToolMessages as sibling Gemini parts instead of losing it inside functionResponse.response.result JSON, and stop double-stringifying non-string tool results ([#10297](https://github.com/langchain-ai/langchainjs/issues/10297), [#10439](https://github.com/langchain-ai/langchainjs/issues/10439))

- [#11477](https://github.com/langchain-ai/langchainjs/pull/11477) [`9a0f244`](https://github.com/langchain-ai/langchainjs/commit/9a0f244c161412ba54c7308e635ce773abc88c4a) Thanks [@hntrl](https://github.com/hntrl)! - Fix `convertMessagesToGeminiContents` merging a `ToolMessage` (functionResponse)
  with a following `HumanMessage` (text) into one `user` content. Both map to the
  `user` role, and Vertex/Gemini rejects a single `user` content that mixes a
  `functionResponse` with text, so a tool result followed by a user message would
  fail with a 400. Merging is now limited to runs of adjacent tool results
  (parallel tool calls), which the API requires to be grouped into one content;
  all other same-role contents stay separate.

  Also fixes the v1 standard-content path, where a single `ToolMessage` could emit
  a `user` content mixing its `functionResponse` part with text parts; tool turns
  now carry only their functionResponse part(s), mirroring the legacy path.

## 0.2.3

### Patch Changes

- [#11405](https://github.com/langchain-ai/langchainjs/pull/11405) [`8cfff4d`](https://github.com/langchain-ai/langchainjs/commit/8cfff4dced1327fc87893a86dfc63c553403aec0) Thanks [@hntrl](https://github.com/hntrl)! - Add LangSmith gateway support for Google Gemini (Developer API) models. When `LANGSMITH_GATEWAY` is set, `ChatGoogleGenerativeAI` and `ChatGoogle` (and `initChatModel("google-genai:...")`) route requests through the gateway's Gemini path, using the gateway key (falling back to `LANGSMITH_API_KEY`). An explicit `baseUrl`/`endpoint`, an explicit `apiKey`, or a Vertex AI configuration suppress gateway routing. Also adds `GEMINI_API_KEY` as a fallback env var for `ChatGoogleGenerativeAI`.

## 0.2.2

### Patch Changes

- [#11342](https://github.com/langchain-ai/langchainjs/pull/11342) [`3b0e4c4`](https://github.com/langchain-ai/langchainjs/commit/3b0e4c48a31811031a460c4d95519a7c1163dc41) Thanks [@thushanth-bengre-langchain](https://github.com/thushanth-bengre-langchain)! - feat(google): mark Google provider errors as retryable or not

  Builds on `stampRetryable` in `@langchain/core` so the retry middleware can tell a transient failure from a deterministic one. Timeouts, rate limits, and server errors are marked retryable; bad credentials, blocked prompts, invalid tools, and invalid input non-retryable. Errors that may succeed on a regeneration stay unmarked and retry as before.

  Also forwards a per-call `maxRetries` to the retry loop, so a surrounding retry loop such as `modelRetryMiddleware` can take over instead of the two multiplying against each other.

  The `@langchain/core` peer range moves from `^1.0.0` to `workspace:^`, since this release depends on `stampRetryable`.

## 0.2.1

### Patch Changes

- [#10674](https://github.com/langchain-ai/langchainjs/pull/10674) [`f017708`](https://github.com/langchain-ai/langchainjs/commit/f01770895c06621b469a6c6b5244747f6efdfbf7) Thanks [@christian-bromann](https://github.com/christian-bromann)! - fix: classify provider 429s before retrying

## 0.2.0

### Minor Changes

- [#10924](https://github.com/langchain-ai/langchainjs/pull/10924) [`2e28115`](https://github.com/langchain-ai/langchainjs/commit/2e2811509d75af94f57cedcc3842f178f4c020d1) Thanks [@christian-bromann](https://github.com/christian-bromann)! - feat(google): add native Gemini streamEvents event conversion

### Patch Changes

- [#10537](https://github.com/langchain-ai/langchainjs/pull/10537) [`cdb465b`](https://github.com/langchain-ai/langchainjs/commit/cdb465b57e1eb9b797dd6f741bb7357ed7ef8c96) Thanks [@raashish1601](https://github.com/raashish1601)! - fix(google): normalize ChatGoogle callback token usage metadata

- [#10586](https://github.com/langchain-ai/langchainjs/pull/10586) [`43b10d2`](https://github.com/langchain-ai/langchainjs/commit/43b10d2af7cf2bdbbf1157a0cc2dae78770730be) Thanks [@tysoncung](https://github.com/tysoncung)! - strip type field from executableCode and codeExecutionResult parts

## 0.1.12

### Patch Changes

- [#10704](https://github.com/langchain-ai/langchainjs/pull/10704) [`f7e50fb`](https://github.com/langchain-ai/langchainjs/commit/f7e50fb8b98bd9969c0f5cf0967a06df15453453) Thanks [@afirstenberg](https://github.com/afirstenberg)! - Adds support for flex and priority pricing.
  Adds support for custom headers.
  Thanks to @Nico385412 and @pawel-twardziak for their insight and contributions.

## 0.1.11

### Patch Changes

- [#10776](https://github.com/langchain-ai/langchainjs/pull/10776) [`20a9abe`](https://github.com/langchain-ai/langchainjs/commit/20a9abea23ffacf4ae8dc9a7aeec217143bbdeb6) Thanks [@hntrl](https://github.com/hntrl)! - fix(deps): remediate uuid vulnerability by removing direct uuid usage

## 0.1.10

### Patch Changes

- [#10550](https://github.com/langchain-ai/langchainjs/pull/10550) [`9781bff`](https://github.com/langchain-ai/langchainjs/commit/9781bff525bffdd3b6a75adfa8a30fdb4bfc505e) Thanks [@muhammadosama984](https://github.com/muhammadosama984)! - fix(google): align `mediaResolution` with Gemini scalar values and support `detail` alias mapping (`low`/`high`/`auto`) for media prompts.

## 0.1.9

### Patch Changes

- [#10522](https://github.com/langchain-ai/langchainjs/pull/10522) [`6e2d29e`](https://github.com/langchain-ai/langchainjs/commit/6e2d29e28a8f2a84f6fbbe5755d6b4fe2d5d4fd1) Thanks [@afirstenberg](https://github.com/afirstenberg)! - tests(@langchain/google): Lyria 3

## 0.1.8

### Patch Changes

- [#10471](https://github.com/langchain-ai/langchainjs/pull/10471) [`8f15dd1`](https://github.com/langchain-ai/langchainjs/commit/8f15dd13256647f6c0f40abf6ee7ed949492bd4f) Thanks [@pawel-twardziak](https://github.com/pawel-twardziak)! - fix(@langchain/google): pass abort signal to fetch in non-streaming invoke
  - Added `signal: options.signal` to the `Request` constructor in `_generate`'s non-streaming branch, mirroring what `_streamResponseChunks` already does

- [#10493](https://github.com/langchain-ai/langchainjs/pull/10493) [`63b7268`](https://github.com/langchain-ai/langchainjs/commit/63b72689a1f245037aaa7d910ea4b881ead84856) Thanks [@afirstenberg](https://github.com/afirstenberg)! - Undo regression introduced in [#10397](https://github.com/langchain-ai/langchainjs/issues/10397) in legacy content processing path.
  Fixes issues with a false duplicate functionCall sent in response ([#10474](https://github.com/langchain-ai/langchainjs/issues/10474)).

## 0.1.7

### Patch Changes

- [#10343](https://github.com/langchain-ai/langchainjs/pull/10343) [`a1062b7`](https://github.com/langchain-ai/langchainjs/commit/a1062b74ceb3bfde08765237db92b28eddf3e22e) Thanks [@pawel-twardziak](https://github.com/pawel-twardziak)! - fix: merge consecutive same-role Gemini content blocks

- [#10313](https://github.com/langchain-ai/langchainjs/pull/10313) [`bc4cd65`](https://github.com/langchain-ai/langchainjs/commit/bc4cd6549b043a811021ae3641f9344ff6537a38) Thanks [@pawel-twardziak](https://github.com/pawel-twardziak)! - fix(langchain-google): parse JSON error bodies from non-JSON content types

- [#10397](https://github.com/langchain-ai/langchainjs/pull/10397) [`955ef6b`](https://github.com/langchain-ai/langchainjs/commit/955ef6b81da7a155bb829ed67ea20f0ad4c3f901) Thanks [@pawel-twardziak](https://github.com/pawel-twardziak)! - fix(google): fix v1 converter dropping tool_calls, text-plain and file blocks

- [#10402](https://github.com/langchain-ai/langchainjs/pull/10402) [`9099f53`](https://github.com/langchain-ai/langchainjs/commit/9099f5362ce1d424b0d820b69ed1ca8fec6be9d3) Thanks [@pawel-twardziak](https://github.com/pawel-twardziak)! - fix(google): use dynamic ls_provider based on platform instead of hardcoded "google"

- [#10415](https://github.com/langchain-ai/langchainjs/pull/10415) [`d7d0bc7`](https://github.com/langchain-ai/langchainjs/commit/d7d0bc70cdb2ea92b365807600fa85ec107ffd0e) Thanks [@pawel-twardziak](https://github.com/pawel-twardziak)! - fix(genai): round-trip thinking content blocks in multi-turn convos

- [#10407](https://github.com/langchain-ai/langchainjs/pull/10407) [`c2960fe`](https://github.com/langchain-ai/langchainjs/commit/c2960fe97a299ed1b748eeab53806badbfd35704) Thanks [@fahe1em1](https://github.com/fahe1em1)! - lazy-load jose in CJS auth helpers

- [#10292](https://github.com/langchain-ai/langchainjs/pull/10292) [`e4193f8`](https://github.com/langchain-ai/langchainjs/commit/e4193f8934b5fdb5f553a7068aca2e945d0e3763) Thanks [@afirstenberg](https://github.com/afirstenberg)! - fixes for Vertex function calls

- [#10400](https://github.com/langchain-ai/langchainjs/pull/10400) [`a870750`](https://github.com/langchain-ai/langchainjs/commit/a870750d6edc002b7987f867fd1aae3b1eabe089) Thanks [@afirstenberg](https://github.com/afirstenberg)! - support role name for function response in Vertex

## 0.1.6

### Patch Changes

- [#10300](https://github.com/langchain-ai/langchainjs/pull/10300) [`a26dc7d`](https://github.com/langchain-ai/langchainjs/commit/a26dc7d2a5b8dae811852e80f5478301b9c4bc93) Thanks [@MaxwellCalkin](https://github.com/MaxwellCalkin)! - resolve functionResponse.name from tool_calls in legacy converter

- [#10314](https://github.com/langchain-ai/langchainjs/pull/10314) [`418a3fc`](https://github.com/langchain-ai/langchainjs/commit/418a3fc1ff2bd4dc73ba52414ff8ec6710bd5572) Thanks [@pawel-twardziak](https://github.com/pawel-twardziak)! - add getLsParams for LangSmith tracing metadata

- [#10267](https://github.com/langchain-ai/langchainjs/pull/10267) [`b68f083`](https://github.com/langchain-ai/langchainjs/commit/b68f083dfeb433aa535c50223935a4059a25be8e) Thanks [@afirstenberg](https://github.com/afirstenberg)! - feat(@langchain/google) Test Gemini 3.1 Flash-Lite

## 0.1.5

### Patch Changes

- [#10260](https://github.com/langchain-ai/langchainjs/pull/10260) [`09babb4`](https://github.com/langchain-ai/langchainjs/commit/09babb49853467b00da460c2af3cc811bbffc685) Thanks [@colifran](https://github.com/colifran)! - feat(google): implement standard schema support for structured output

## 0.1.4

### Patch Changes

- [#10195](https://github.com/langchain-ai/langchainjs/pull/10195) [`05f46ff`](https://github.com/langchain-ai/langchainjs/commit/05f46ff36c12ce5259c2c8e0da89349396f25b8c) Thanks [@hntrl](https://github.com/hntrl)! - fix(google): don't send empty toolConfig when no tool_choice is specified

  When `bindTools()` was called without specifying `tool_choice`, an empty
  `toolConfig: { functionCallingConfig: {} }` was included in the API request.
  This caused the Gemini API to return tool invocations as text (Python code
  blocks) instead of structured `functionCall` parts. Now returns `undefined`
  when no `tool_choice` is set, omitting `toolConfig` from the request entirely
  and letting the API default to AUTO mode.

## 0.1.3

### Patch Changes

- [#10106](https://github.com/langchain-ai/langchainjs/pull/10106) [`9f30267`](https://github.com/langchain-ai/langchainjs/commit/9f30267e95a2a42fac71f1d3674b84c5a190dbbc) Thanks [@hntrl](https://github.com/hntrl)! - Add package version metadata to runnable traces. Each package now stamps its version in `this.metadata.versions` at construction time, making version info available in LangSmith trace metadata.

- [#10164](https://github.com/langchain-ai/langchainjs/pull/10164) [`4eae353`](https://github.com/langchain-ai/langchainjs/commit/4eae353512c8361c530b90ab4e74fd18af774287) Thanks [@hntrl](https://github.com/hntrl)! - fix(google): fix inflated usage_metadata during streaming by converting cumulative token counts to deltas

  The Gemini API sends cumulative `usageMetadata` on every streaming chunk. Previously, these cumulative values were attached directly to each `AIMessageChunk`, causing `mergeUsageMetadata()` to sum them and produce inflated token counts when chunks were concatenated.

  Now the provider tracks previous cumulative values and emits per-chunk deltas, so additive merging produces the correct final totals while still providing meaningful per-chunk usage data when `streamUsage` is enabled.

- [#10170](https://github.com/langchain-ai/langchainjs/pull/10170) [`d42f735`](https://github.com/langchain-ai/langchainjs/commit/d42f735b04d9d42639591fba5639ad65dbb915bf) Thanks [@hntrl](https://github.com/hntrl)! - fix(google): generate unique tool_call IDs to prevent ToolNode from silently skipping execution
  - Use native `functionCall.id` from Gemini API when present, fall back to `uuid.v4()` (matching `@langchain/google-common` behavior)
  - Pass `tool_call_id` through as `functionResponse.id` on both v1 standard and legacy code paths

- [#10072](https://github.com/langchain-ai/langchainjs/pull/10072) [`5f6940d`](https://github.com/langchain-ai/langchainjs/commit/5f6940d49033ec322bcfb426652c68e37c82cbaa) Thanks [@kyrisu](https://github.com/kyrisu)! - fix(google): emit on_chat_model_stream events for non-text content blocks

## 0.1.2

### Patch Changes

- [#10101](https://github.com/langchain-ai/langchainjs/pull/10101) [`a54de44`](https://github.com/langchain-ai/langchainjs/commit/a54de4410be4b5c159b9ee1590a8187017dc9dfc) Thanks [@afirstenberg](https://github.com/afirstenberg)! - add Gemini 3.1 Pro support

## 0.1.1

### Patch Changes

- [#10076](https://github.com/langchain-ai/langchainjs/pull/10076) [`217d2ed`](https://github.com/langchain-ai/langchainjs/commit/217d2ed69896d557ad73c2a388782df68d1d7f51) Thanks [@hntrl](https://github.com/hntrl)! - fix(google): accept both uppercase and lowercase reasoning effort/thinking level values

  Previously, passing uppercase values like `reasoningEffort: "HIGH"` or `"MEDIUM"` would silently
  fail to configure thinking, because `convertReasoningEffortToReasoningTokens` only matched lowercase
  strings. This caused the `thinkingConfig` to be omitted entirely from the API request.
  - Normalize effort input to lowercase in `convertReasoningEffortToReasoningTokens`
  - Extend `Gemini.ThinkingLevel` type to include lowercase variants for better DX
  - Add `LowercaseLiteral` utility type to derive lowercase members from the auto-generated API types

- [#10081](https://github.com/langchain-ai/langchainjs/pull/10081) [`5a6f26b`](https://github.com/langchain-ai/langchainjs/commit/5a6f26bbaed80195dc538c538b96219a8b03f38f) Thanks [@hntrl](https://github.com/hntrl)! - feat(core): add namespace-based symbol branding for error class hierarchies

  Introduces `createNamespace` utility for hierarchical symbol-based branding of class hierarchies.
  All LangChain error classes now use this pattern, replacing hand-rolled duck-type `isInstance` checks
  with reliable cross-realm `Symbol.for`-based identity.
  - New `LangChainError` base class that all LangChain errors extend
  - New `createNamespace` / `Namespace` API in `@langchain/core/utils/namespace`
  - Refactored `ModelAbortError`, `ContextOverflowError` to use namespace branding
  - Added `ContextOverflowError.fromError()` static factory method
  - Deprecated `addLangChainErrorFields` in favor of `LangChainError` subclasses
  - Migrated Google provider errors (`GoogleError`, `ConfigurationError`, etc.) to namespace branding
  - Updated Anthropic and OpenAI providers to use `ContextOverflowError.fromError()`

- [#10078](https://github.com/langchain-ai/langchainjs/pull/10078) [`7be50a7`](https://github.com/langchain-ai/langchainjs/commit/7be50a7014d7622e0ab8d303dfc9c633ebc96333) Thanks [@christian-bromann](https://github.com/christian-bromann)! - chore(\*): update model profiles

## 0.1.0

### Minor Changes

- [#10000](https://github.com/langchain-ai/langchainjs/pull/10000) [`71d08c0`](https://github.com/langchain-ai/langchainjs/commit/71d08c0a3a2597bd5a084eb35a7830e5ea1a2b29) Thanks [@hntrl](https://github.com/hntrl)! - feat(google): add `@langchain/google` -- unified Google/Gemini integration

  New package that replaces the fragmented `@langchain/google-genai` / `@langchain/google-common` / Vertex AI package stack with a single integration.

  Published as 0.1.0 (early release). Existing Google packages will continue to receive maintenance updates.
