This PR was opened by the [Changesets
release](https://github.com/changesets/action) GitHub action. When
you're ready to do a release, you can merge this and the packages will
be published to npm automatically. If you're not ready to do a release
yet, that's fine, whenever you add more changesets to next, this PR will
be updated.
# Releases
## @composio/core@0.26.0
### Minor Changes
- e08c84f: Requires `@composio/client` `2.0.0-rc.18`. The SDK now hands
the API client its credential as the client's `auth` option and its
organization and project as `scope`, instead of placing them in default
headers. The `apiKey`, `userApiKey`, `orgApiKey`, `orgId` and
`projectId` options, their environment fallbacks and the credentials
sent on each request are unchanged, with one exception: with `apiKey:
null` and only an organization API key (the `orgApiKey` option,
`COMPOSIO_ORG_API_KEY`, or an `x-org-api-key` default header), every
request now carries `x-org-api-key`, and so do trigger channel
authorization and `session.mcp.headers`. Before, only the
organization-owner operations did, and every other request went out
without a credential.
Credential and scope headers in `defaultHeaders` or `createSession({
headers })` keep working, but the SDK folds them into its own options
instead of forwarding them: an `x-user-api-key` or `x-org-api-key` entry
becomes the credential every request carries, an `x-api-key` entry
becomes the project key, and `x-org-id` / `x-project-id` entries become
`orgId` / `projectId`. `getConfig()` reports the folded values (for
example `apiKey: null` and `userApiKey` for an `x-user-api-key` entry)
and no longer lists those entries under `defaultHeaders`. Setting more
than one of `x-api-key`, `x-user-api-key` and `x-org-api-key` now throws
a `ComposioError`; the API rejected every such request.
On the client returned by `getClient()`, `apiKey`, `userApiKey` and
`orgApiKey` are read-only and deprecated (read the keys from
`getConfig()`, or `authMode` and `scope` from the client), and a
per-call `headers` option can no longer name a credential or scope
header. The API client no longer reads the environment itself: the SDK
still honours `COMPOSIO_ALLOW_INSECURE_HTTP=1`, and no longer applies
`COMPOSIO_CUSTOM_HEADERS`; pass `defaultHeaders` instead.
The deprecated `customConnectionData` now requires `val.access_token`
for `S2S_OAUTH2`, as the API does.
- 57de614: Requires `@composio/client` `2.0.0-rc.19`. The SDK forwards
the API client's log lines through a `Console`-shaped object instead of
the client's removed `Logger` interface; what is logged, and at which
SDK level, is unchanged. With rc.19, the client returned by
`getClient()` no longer has `apiKey`, `userApiKey`, `orgApiKey` or
`logger`, and its `baseURL`, `maxRetries`, `timeout` and `logLevel` are
read-only: read the keys from `getConfig()`, and derive a client with
`withOptions()` to change the others.
### Patch Changes
- 9d26fb8: Fold OpenAPI `nullable` into the type in strict tool schemas
`toStrictJsonSchema` no longer passes OpenAPI `nullable` through.
Anthropic strict tool use rejects it on an object schema with a 400 for
the whole request. A node with `nullable: true` now accepts `null`
through its `type` (`["object", "null"]`) or a null branch, matching how
the tool's arguments are validated, and the rewrite is reported as a
`nullable-converted` change. `nullable: false` is removed as an
`unsupported-keyword-stripped` change. `omitNullToolArguments` now keeps
a `null` for a property marked `nullable: true`, as it already does for
one whose `type` includes `null`.
- 3dd9a2c: Strip string `format` values that OpenAI structured outputs
rejects from strict tool schemas
`toStrictJsonSchema` now removes a `format` on a string schema unless it
is one of `date-time`, `time`, `date`, `duration`, `email`, `hostname`,
`ipv4`, `ipv6`, or `uuid`. OpenAI rejects any other string format in
strict mode with a 400 for the whole request, so a single tool with
`format: "uri"`, a custom format such as `repo.nwo`, or the `format:
"path"` that file uploads add made every strict request fail. The
removal is reported as an `unsupported-keyword-stripped` change. Formats
on number and integer schemas are kept, since the API does not check
them.
- 04fdb41: Check a string tool parameter as base64 only when its
`contentEncoding` is `base64`. `format: "binary"` (raw octets in
OpenAPI) and other encodings such as `base16` were validated as base64,
so the Vercel, LangChain, LlamaIndex, and Claude Agent SDK providers
rejected tool calls with plain text or hex in those fields, and the
schema sent to the model described them as `contentEncoding: "base64"`.
Those fields are now plain strings. `contentEncoding: "base64"` keeps
its check, and `format: "byte"` stays unchecked.
- be12ce1: Warn once per toolkit version when the API reports it as
deprecated through the `Composio-Deprecated-Toolkits` response header.
The warning names the version, the sunset date and how to pin a newer
version. Silence it with `logLevel: 'error'` or
`COMPOSIO_LOG_LEVEL=error`.
- Updated dependencies [f119f05]
- Updated dependencies [04fdb41]
- @composio/json-schema-to-zod@0.4.0
## @composio/json-schema-to-zod@0.4.0
### Minor Changes
- f119f05: Add a `@composio/json-schema-to-zod/v4` entry that builds
classic Zod v4 schemas with the same `jsonSchemaToZod` and
`jsonSchemaToZodShape` functions as the root entry, which keeps building
Zod v3 schemas. The v4 builder forwards `format`, `contentEncoding`,
`contentMediaType`, and `type: "integer"` into the schema's metadata so
`z.toJSONSchema()` and the frameworks built on it render them again;
`withoutAnnotations: true` turns that off. `/v4` requires zod `>=
4.1.13`, the first release whose `zod/v4` shares its metadata registry
across copies, and throws at load time below it.
The root builder now reports an issue inside a nested object once, at
its own path. Issues raised by `patternProperties`,
`additionalProperties`, unrecognized keys, and `oneOf` under a property
previously carried that property's name twice (`['x', 'x', 'key']`).
### Patch Changes
- 04fdb41: Check a string tool parameter as base64 only when its
`contentEncoding` is `base64`. `format: "binary"` (raw octets in
OpenAPI) and other encodings such as `base16` were validated as base64,
so the Vercel, LangChain, LlamaIndex, and Claude Agent SDK providers
rejected tool calls with plain text or hex in those fields, and the
schema sent to the model described them as `contentEncoding: "base64"`.
Those fields are now plain strings. `contentEncoding: "base64"` keeps
its check, and `format: "byte"` stays unchecked.
## @composio/claude-agent-sdk@0.13.0
### Minor Changes
- adf6b02: Build tool input schemas with the Zod v4 builder from
`@composio/json-schema-to-zod/v4`, so `format`, `contentEncoding`,
`contentMediaType`, and `type: "integer"` survive the SDK's conversion
to the JSON Schema the model sees. Before, a field such as `{ type:
"string", format: "binary" }` reached the model as `{ type: "string" }`.
The values a tool accepts and rejects are unchanged.
The `zod` peer dependency is now `^4.1.13` (was `^4.0.0`): the v4
builder needs the metadata registry zod shares across copies from 4.1.13
on, and throws at load time on an older zod. Upgrade zod to 4.1.13 or
newer before upgrading this package.
### Patch Changes
- Updated dependencies [f119f05]
- Updated dependencies [04fdb41]
- @composio/json-schema-to-zod@0.4.0
## @composio/vercel@0.13.0
### Minor Changes
- adf6b02: Show the model each tool's JSON Schema as is. The provider
now passes the schema to the AI SDK with `jsonSchema()`, so keywords a
Zod schema cannot carry, such as `format: "binary"`, `contentEncoding`,
`contentMediaType`, `title`, `default`, and `examples`, reach the model.
Internal `$ref`s are still inlined first. Tool-call arguments are
validated with the same Zod schema as before, so the values a tool
accepts and rejects are unchanged.
In strict mode the model now sees the output of the strict rewrite
itself rather than a Zod rendering of it. Zod adds a `pattern` next to
formats such as `email`, and strict structured outputs reject the one it
adds for `email`, so a strict request with an email parameter would have
failed once Zod forwarded more of the schema.
`tool.inputSchema` is now an AI SDK `Schema` instead of a Zod schema.
Code that called `inputSchema.safeParse()` directly can validate with
`asSchema(tool.inputSchema).validate(value)` from `ai`.
## @composio/slim@0.26.0
### Minor Changes
- e08c84f: Requires `@composio/client` `2.0.0-rc.18`. The SDK now hands
the API client its credential as the client's `auth` option and its
organization and project as `scope`, instead of placing them in default
headers. The `apiKey`, `userApiKey`, `orgApiKey`, `orgId` and
`projectId` options, their environment fallbacks and the credentials
sent on each request are unchanged, with one exception: with `apiKey:
null` and only an organization API key (the `orgApiKey` option,
`COMPOSIO_ORG_API_KEY`, or an `x-org-api-key` default header), every
request now carries `x-org-api-key`, and so do trigger channel
authorization and `session.mcp.headers`. Before, only the
organization-owner operations did, and every other request went out
without a credential.
Credential and scope headers in `defaultHeaders` or `createSession({
headers })` keep working, but the SDK folds them into its own options
instead of forwarding them: an `x-user-api-key` or `x-org-api-key` entry
becomes the credential every request carries, an `x-api-key` entry
becomes the project key, and `x-org-id` / `x-project-id` entries become
`orgId` / `projectId`. `getConfig()` reports the folded values (for
example `apiKey: null` and `userApiKey` for an `x-user-api-key` entry)
and no longer lists those entries under `defaultHeaders`. Setting more
than one of `x-api-key`, `x-user-api-key` and `x-org-api-key` now throws
a `ComposioError`; the API rejected every such request.
On the client returned by `getClient()`, `apiKey`, `userApiKey` and
`orgApiKey` are read-only and deprecated (read the keys from
`getConfig()`, or `authMode` and `scope` from the client), and a
per-call `headers` option can no longer name a credential or scope
header. The API client no longer reads the environment itself: the SDK
still honours `COMPOSIO_ALLOW_INSECURE_HTTP=1`, and no longer applies
`COMPOSIO_CUSTOM_HEADERS`; pass `defaultHeaders` instead.
The deprecated `customConnectionData` now requires `val.access_token`
for `S2S_OAUTH2`, as the API does.
- 57de614: Requires `@composio/client` `2.0.0-rc.19`. The SDK forwards
the API client's log lines through a `Console`-shaped object instead of
the client's removed `Logger` interface; what is logged, and at which
SDK level, is unchanged. With rc.19, the client returned by
`getClient()` no longer has `apiKey`, `userApiKey`, `orgApiKey` or
`logger`, and its `baseURL`, `maxRetries`, `timeout` and `logLevel` are
read-only: read the keys from `getConfig()`, and derive a client with
`withOptions()` to change the others.
### Patch Changes
- 04fdb41: Check a string tool parameter as base64 only when its
`contentEncoding` is `base64`. `format: "binary"` (raw octets in
OpenAPI) and other encodings such as `base16` were validated as base64,
so the Vercel, LangChain, LlamaIndex, and Claude Agent SDK providers
rejected tool calls with plain text or hex in those fields, and the
schema sent to the model described them as `contentEncoding: "base64"`.
Those fields are now plain strings. `contentEncoding: "base64"` keeps
its check, and `format: "byte"` stays unchecked.
- be12ce1: Warn once per toolkit version when the API reports it as
deprecated through the `Composio-Deprecated-Toolkits` response header.
The warning names the version, the sunset date and how to pin a newer
version. Silence it with `logLevel: 'error'` or
`COMPOSIO_LOG_LEVEL=error`.
- Updated dependencies [f119f05]
- Updated dependencies [04fdb41]
- @composio/json-schema-to-zod@0.4.0
## @composio/llamaindex@0.11.2
### Patch Changes
- adf6b02: Show the model each tool's JSON Schema as is. The provider
now builds the `FunctionTool` with the JSON Schema as its parameters and
the Zod schema as its validator, instead of letting LlamaIndex render
the Zod schema back to JSON Schema. Keywords such as `format: "binary"`,
`contentEncoding`, `contentMediaType`, and `title` reach the model.
Internal `$ref`s are still inlined first, and the values a tool accepts
and rejects are unchanged.
## @e2e-tests/cf-workers-basic@0.0.10
### Patch Changes
- Updated dependencies [e08c84f]
- Updated dependencies [57de614]
- Updated dependencies [9d26fb8]
- Updated dependencies [3dd9a2c]
- Updated dependencies [04fdb41]
- Updated dependencies [be12ce1]
- @composio/core@0.26.0
## @e2e-tests/cf-workers-files@0.0.10
### Patch Changes
- Updated dependencies [e08c84f]
- Updated dependencies [57de614]
- Updated dependencies [9d26fb8]
- Updated dependencies [3dd9a2c]
- Updated dependencies [04fdb41]
- Updated dependencies [be12ce1]
- @composio/core@0.26.0
## @e2e-tests/cf-workers-tool-router-ai@0.0.10
### Patch Changes
- Updated dependencies [e08c84f]
- Updated dependencies [57de614]
- Updated dependencies [9d26fb8]
- Updated dependencies [3dd9a2c]
- Updated dependencies [04fdb41]
- Updated dependencies [be12ce1]
- Updated dependencies [adf6b02]
- @composio/core@0.26.0
- @composio/vercel@0.13.0
## @e2e-tests/node-claude-agent-sdk@0.0.10
### Patch Changes
- Updated dependencies [adf6b02]
- Updated dependencies [e08c84f]
- Updated dependencies [57de614]
- Updated dependencies [9d26fb8]
- Updated dependencies [3dd9a2c]
- Updated dependencies [04fdb41]
- Updated dependencies [be12ce1]
- @composio/claude-agent-sdk@0.13.0
- @composio/core@0.26.0
## @e2e-tests/node-custom-tools@0.0.10
### Patch Changes
- Updated dependencies [e08c84f]
- Updated dependencies [57de614]
- Updated dependencies [9d26fb8]
- Updated dependencies [3dd9a2c]
- Updated dependencies [04fdb41]
- Updated dependencies [be12ce1]
- @composio/core@0.26.0
## @e2e-tests/node-json-schema-to-zod-v3@0.0.5
### Patch Changes
- Updated dependencies [f119f05]
- Updated dependencies [04fdb41]
- @composio/json-schema-to-zod@0.4.0
## @e2e-tests/node-json-schema-to-zod-v4@0.0.5
### Patch Changes
- Updated dependencies [f119f05]
- Updated dependencies [04fdb41]
- @composio/json-schema-to-zod@0.4.0
## @e2e-tests/node-mastra-tool-router-zod-v3@0.0.10
### Patch Changes
- Updated dependencies [e08c84f]
- Updated dependencies [57de614]
- Updated dependencies [9d26fb8]
- Updated dependencies [3dd9a2c]
- Updated dependencies [04fdb41]
- Updated dependencies [be12ce1]
- @composio/core@0.26.0
- @composio/mastra@0.10.6
## @e2e-tests/node-mastra-tool-router-zod-v4@0.0.10
### Patch Changes
- Updated dependencies [e08c84f]
- Updated dependencies [57de614]
- Updated dependencies [9d26fb8]
- Updated dependencies [3dd9a2c]
- Updated dependencies [04fdb41]
- Updated dependencies [be12ce1]
- @composio/core@0.26.0
- @composio/mastra@0.10.6
## @e2e-tests/node-tool-router-files@0.0.10
### Patch Changes
- Updated dependencies [e08c84f]
- Updated dependencies [57de614]
- Updated dependencies [9d26fb8]
- Updated dependencies [3dd9a2c]
- Updated dependencies [04fdb41]
- Updated dependencies [be12ce1]
- @composio/core@0.26.0
## @e2e-tests/node-tool-router-pagination@0.0.10
### Patch Changes
- Updated dependencies [e08c84f]
- Updated dependencies [57de614]
- Updated dependencies [9d26fb8]
- Updated dependencies [3dd9a2c]
- Updated dependencies [04fdb41]
- Updated dependencies [be12ce1]
- @composio/core@0.26.0
## @e2e-tests/node-tool-router-proxy-execute@0.0.3
### Patch Changes
- Updated dependencies [e08c84f]
- Updated dependencies [57de614]
- Updated dependencies [9d26fb8]
- Updated dependencies [3dd9a2c]
- Updated dependencies [04fdb41]
- Updated dependencies [be12ce1]
- @composio/core@0.26.0
## @e2e-tests/node-tool-router-session-update@0.0.6
### Patch Changes
- Updated dependencies [e08c84f]
- Updated dependencies [57de614]
- Updated dependencies [9d26fb8]
- Updated dependencies [3dd9a2c]
- Updated dependencies [04fdb41]
- Updated dependencies [be12ce1]
- @composio/core@0.26.0
## anthropic-example@0.1.10
### Patch Changes
- Updated dependencies [adf6b02]
- Updated dependencies [e08c84f]
- Updated dependencies [57de614]
- Updated dependencies [9d26fb8]
- Updated dependencies [3dd9a2c]
- Updated dependencies [04fdb41]
- Updated dependencies [be12ce1]
- @composio/claude-agent-sdk@0.13.0
- @composio/core@0.26.0
- @composio/anthropic@0.11.5
## approvals-example@0.0.1
### Patch Changes
- Updated dependencies [e08c84f]
- Updated dependencies [57de614]
- Updated dependencies [9d26fb8]
- Updated dependencies [3dd9a2c]
- Updated dependencies [04fdb41]
- Updated dependencies [be12ce1]
- @composio/core@0.26.0
## cloudflare-wrangler-example@0.0.9
### Patch Changes
- Updated dependencies [e08c84f]
- Updated dependencies [57de614]
- Updated dependencies [9d26fb8]
- Updated dependencies [3dd9a2c]
- Updated dependencies [04fdb41]
- Updated dependencies [be12ce1]
- @composio/core@0.26.0
## connected-accounts-example@0.1.19
### Patch Changes
- Updated dependencies [e08c84f]
- Updated dependencies [57de614]
- Updated dependencies [9d26fb8]
- Updated dependencies [3dd9a2c]
- Updated dependencies [04fdb41]
- Updated dependencies [be12ce1]
- @composio/core@0.26.0
## error-handling-example@0.1.19
### Patch Changes
- Updated dependencies [e08c84f]
- Updated dependencies [57de614]
- Updated dependencies [9d26fb8]
- Updated dependencies [3dd9a2c]
- Updated dependencies [04fdb41]
- Updated dependencies [be12ce1]
- @composio/core@0.26.0
## file-handling-example@0.1.10
### Patch Changes
- Updated dependencies [e08c84f]
- Updated dependencies [57de614]
- Updated dependencies [9d26fb8]
- Updated dependencies [3dd9a2c]
- Updated dependencies [04fdb41]
- Updated dependencies [be12ce1]
- @composio/core@0.26.0
## google-example@0.1.10
### Patch Changes
- Updated dependencies [e08c84f]
- Updated dependencies [57de614]
- Updated dependencies [9d26fb8]
- Updated dependencies [3dd9a2c]
- Updated dependencies [04fdb41]
- Updated dependencies [be12ce1]
- @composio/core@0.26.0
- @composio/google@0.12.0
## json-schema-to-zod-example@0.1.10
### Patch Changes
- Updated dependencies [e08c84f]
- Updated dependencies [57de614]
- Updated dependencies [9d26fb8]
- Updated dependencies [3dd9a2c]
- Updated dependencies [04fdb41]
- Updated dependencies [be12ce1]
- Updated dependencies [adf6b02]
- @composio/core@0.26.0
- @composio/vercel@0.13.0
## langchain-example@0.1.19
### Patch Changes
- Updated dependencies [e08c84f]
- Updated dependencies [57de614]
- Updated dependencies [9d26fb8]
- Updated dependencies [3dd9a2c]
- Updated dependencies [04fdb41]
- Updated dependencies [be12ce1]
- @composio/core@0.26.0
- @composio/langchain@0.11.2
## llamaindex-example@0.1.10
### Patch Changes
- Updated dependencies [e08c84f]
- Updated dependencies [57de614]
- Updated dependencies [adf6b02]
- Updated dependencies [9d26fb8]
- Updated dependencies [3dd9a2c]
- Updated dependencies [04fdb41]
- Updated dependencies [be12ce1]
- @composio/core@0.26.0
- @composio/llamaindex@0.11.2
## mastra-example@0.1.10
### Patch Changes
- Updated dependencies [e08c84f]
- Updated dependencies [57de614]
- Updated dependencies [9d26fb8]
- Updated dependencies [3dd9a2c]
- Updated dependencies [04fdb41]
- Updated dependencies [be12ce1]
- @composio/core@0.26.0
- @composio/mastra@0.10.6
## mcp-example@0.1.10
### Patch Changes
- Updated dependencies [e08c84f]
- Updated dependencies [57de614]
- Updated dependencies [9d26fb8]
- Updated dependencies [3dd9a2c]
- Updated dependencies [04fdb41]
- Updated dependencies [be12ce1]
- Updated dependencies [adf6b02]
- @composio/core@0.26.0
- @composio/vercel@0.13.0
## modifiers-example@0.1.19
### Patch Changes
- Updated dependencies [e08c84f]
- Updated dependencies [57de614]
- Updated dependencies [9d26fb8]
- Updated dependencies [3dd9a2c]
- Updated dependencies [04fdb41]
- Updated dependencies [be12ce1]
- Updated dependencies [adf6b02]
- @composio/core@0.26.0
- @composio/vercel@0.13.0
## openai-example@0.1.19
### Patch Changes
- Updated dependencies [e08c84f]
- Updated dependencies [57de614]
- Updated dependencies [9d26fb8]
- Updated dependencies [3dd9a2c]
- Updated dependencies [04fdb41]
- Updated dependencies [be12ce1]
- @composio/core@0.26.0
- @composio/openai@0.13.0
- @composio/openai-agents@0.11.2
## session-management-example@0.1.10
### Patch Changes
- Updated dependencies [e08c84f]
- Updated dependencies [57de614]
- Updated dependencies [9d26fb8]
- Updated dependencies [3dd9a2c]
- Updated dependencies [04fdb41]
- Updated dependencies [be12ce1]
- @composio/core@0.26.0
## tool-router-example@1.0.20
### Patch Changes
- Updated dependencies [adf6b02]
- Updated dependencies [e08c84f]
- Updated dependencies [57de614]
- Updated dependencies [9d26fb8]
- Updated dependencies [3dd9a2c]
- Updated dependencies [04fdb41]
- Updated dependencies [be12ce1]
- Updated dependencies [adf6b02]
- @composio/claude-agent-sdk@0.13.0
- @composio/core@0.26.0
- @composio/vercel@0.13.0
- @composio/openai-agents@0.11.2
## toolkits-example@0.1.19
### Patch Changes
- Updated dependencies [e08c84f]
- Updated dependencies [57de614]
- Updated dependencies [9d26fb8]
- Updated dependencies [3dd9a2c]
- Updated dependencies [04fdb41]
- Updated dependencies [be12ce1]
- Updated dependencies [adf6b02]
- @composio/core@0.26.0
- @composio/vercel@0.13.0
## tools-example@0.1.10
### Patch Changes
- Updated dependencies [e08c84f]
- Updated dependencies [57de614]
- Updated dependencies [9d26fb8]
- Updated dependencies [3dd9a2c]
- Updated dependencies [04fdb41]
- Updated dependencies [be12ce1]
- Updated dependencies [adf6b02]
- @composio/core@0.26.0
- @composio/vercel@0.13.0
## triggers-example@0.1.10
### Patch Changes
- Updated dependencies [e08c84f]
- Updated dependencies [57de614]
- Updated dependencies [9d26fb8]
- Updated dependencies [3dd9a2c]
- Updated dependencies [04fdb41]
- Updated dependencies [be12ce1]
- @composio/core@0.26.0
## typesafe-example@0.0.8
### Patch Changes
- Updated dependencies [e08c84f]
- Updated dependencies [57de614]
- Updated dependencies [9d26fb8]
- Updated dependencies [3dd9a2c]
- Updated dependencies [04fdb41]
- Updated dependencies [be12ce1]
- @composio/core@0.26.0
- @composio/openai@0.13.0
- @composio/typesafe@0.1.1
## vercel-example@0.1.19
### Patch Changes
- Updated dependencies [e08c84f]
- Updated dependencies [57de614]
- Updated dependencies [9d26fb8]
- Updated dependencies [3dd9a2c]
- Updated dependencies [04fdb41]
- Updated dependencies [be12ce1]
- Updated dependencies [adf6b02]
- @composio/core@0.26.0
- @composio/vercel@0.13.0
## versioning-example@0.1.10
### Patch Changes
- Updated dependencies [e08c84f]
- Updated dependencies [57de614]
- Updated dependencies [9d26fb8]
- Updated dependencies [3dd9a2c]
- Updated dependencies [04fdb41]
- Updated dependencies [be12ce1]
- @composio/core@0.26.0
## @composio/json-schema-to-effect-schema@0.1.2
### Patch Changes
- 04fdb41: Check a string tool parameter as base64 only when its
`contentEncoding` is `base64`. `format: "binary"` (raw octets in
OpenAPI) and other encodings such as `base16` were validated as base64,
so the Vercel, LangChain, LlamaIndex, and Claude Agent SDK providers
rejected tool calls with plain text or hex in those fields, and the
schema sent to the model described them as `contentEncoding: "base64"`.
Those fields are now plain strings. `contentEncoding: "base64"` keeps
its check, and `format: "byte"` stays unchecked.
Co-authored-by: sdkrelease[bot] <294075132+sdkrelease[bot]@users.noreply.github.com>