mirror of
https://github.com/ComposioHQ/composio.git
synced 2026-09-22 11:46:35 +08:00
781cee45ba
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.19.0 ### Minor Changes -efc2e52: Keep TypeScript realtime subscription errors inside the SDK logging boundary so an asynchronous Pusher subscription failure cannot escape as an uncaught exception. The full subscription error payload is now logged, the success message is logged only once Pusher confirms the subscription, and `PusherService.subscribe` / `Triggers.subscribe` accept an optional `onSubscriptionError` callback so applications can react to subscription failures programmatically. -4b5920b: Add `session.ensureConnected(toolkit, options?)`: it returns immediately when the session already resolves an active connection (or the toolkit is no-auth), and only when needed starts the authorization flow via `session.authorize()` and waits for the new connection to become active. This prevents `authorize()` from spawning duplicate pending connections for toolkits that are already connected. The `session.execute()` `account` option is now documented as accepted on every project — on single-account projects the identifier must match one of the session's active connections for the toolkit (matching the API behavior). -c7843d8: Expose the server-side session configuration on sessions and return it from `update()`. `session.config` now carries the toolkit/tool allowlists, tags, auth configs, connected accounts, `manage_connections`, preload and sandbox settings the API returned for the session (from `create()`, `use()` and after every `update()`), and `session.update()` resolves to that updated config instead of `void`. Previously the only `config` reachable on a session object at runtime was the SDK's own `ComposioConfig`, and reading the live allowlist after `sessions.use(id)` required dropping to the raw client. `config` is a required member of the `Session` interface, so objects you construct yourself to satisfy `Session` (test doubles, wrappers) now need a `config` value. Callers of SDK-created sessions are unaffected. The read side is the raw API shape (`toolkits.enabled`, `manage_connections`), while `update()` keeps taking the SDK's camelCase input. ### Patch Changes -62e51e8: Refresh runtime dependencies and extend provider peer compatibility to the latest supported Anthropic and OpenAI Agents SDK releases. -7055914: Move published dependency ranges to their current upstream releases: zod 4.5, openai 7.10, typebox 1.3.27, @mastra/schema-compat 1.3.8, and @cloudflare/workers-types 5.20260905. `@composio/anthropic` also accepts `@anthropic-ai/sdk` 0.124 as a peer, the line it is now tested against. -b4b9fc4: Guard schema `pattern` and `patternProperties` compilation. A pattern that does not compile or exceeds 1024 characters now fails conversion with an `InvalidPatternError` that names the offending property path instead of a raw `SyntaxError`. `@composio/core` surfaces that path in the `JsonSchemaToZodError` message. No backtracking heuristic is applied: a hostile `pattern` that backtracks catastrophically remains a known limitation. -d4d3060: Fix `composio.mcp.update()` silently dropping parts of the requested configuration. Tool-only updates (`allowedTools` without `toolkits`) sent no tools field at all, updates with toolkits sent the deprecated create-time `custom_tools` alias that the update endpoint ignores instead of `allowed_tools`, and `manuallyManageConnections` was forwarded as-is instead of being inverted into `managed_auth_via_composio` (so `manuallyManageConnections: true` stored the opposite configuration). `create()` and `update()` now also keep the auth config of a `{ toolkit, authConfigId }` toolkit entry instead of discarding it, and `create()` sends `allowed_tools` rather than the deprecated `custom_tools` alias, matching the Python SDK. -9d0cb2c: Export `readResponseBodyWithLimit` and `MAX_URL_UPLOAD_SIZE_BYTES` so downstream packages can apply the SDK's 100 MiB cap when they download a file from a user-supplied URL. The CLI's tool-input file uploads now use it instead of buffering the whole response. -ba85f4d: Apply the Fetch standard's redirect rules in `ssrfSafeFetch`, which following redirects manually meant `fetch` never applied: a `303` now retries as a bodiless `GET` instead of replaying an upload's method and body at a result URL, a `301`/`302` does the same for a `POST`, and `307`/`308` keep replaying both. Only `301`, `302`, `303`, `307` and `308` count as redirects to follow, so a `304` or `305` carrying a `Location` is returned to the caller rather than followed. -ba85f4d: Close the IPv6 transition ranges the SSRF guard's address blocklist let through: 6to4 (`2002::/16`), Teredo and the rest of `2001::/23`, local-use NAT64 (`64:ff9b:1::/48`), `100::/64`, `2001:db8::/32` and site-local `fec0::/10` each carry or reach an arbitrary IPv4 address, so `2002:7f00:1::` was a public-looking literal for `127.0.0.1`. IPv4 multicast and the `192.88.99.0/24` 6to4 relay range are blocked too. -85996c4: Drop `Authorization`, `Proxy-Authorization`, and `Cookie` from the request headers when the SSRF guard follows a redirect to a different origin, as the Fetch standard does for automatic redirects. Same-origin redirects keep them. -eccb80e: Add an opt-in strict mode to `ssrfSafeFetch` that rejects configured network routes when the connection cannot be pinned to the validated address. -8bb1d29: Stop reporting every failed tool lookup as `ComposioToolNotFoundError`. `tools.getRawComposioToolBySlug`, and the `tools.get` / `tools.execute` paths that call it, now raise `ComposioToolNotFoundError` only when the API answers 404 or 400. Any other failure, such as an invalid API key (401), a server error, or a network fault, raises the new `ComposioToolFetchError` with the client error preserved as `cause`. `toolkits.get(slug)` now applies its 404/400 check against the Composio client's `APIError` instead of the OpenAI one, so an unknown toolkit raises `ComposioToolkitNotFoundError` as documented. -e9fcbe3: Stop dropping `is_secret`, `legacy_template_name` and `auth_hint_url` from toolkit auth config details. `transformToolkitRetrieveResponse` passed the auth field groups through unchanged, so the snake_case keys never matched `ToolkitAuthFieldSchema` and zod stripped them during validation; `auth_hint_url` was never mapped at all. Fields returned by `toolkits.getConnectedAccountInitiationFields()` and `toolkits.getAuthConfigCreationFields()` now carry `isSecret`, which the API documents as the signal for whether a client should mask the input, plus `legacyTemplateName`; auth config details returned by `toolkits.get()` now carry `authHintUrl`. Each of these keys is present only when the API sends it, so spreading a field no longer overwrites a caller's own fallback with `undefined`. An auth config detail that omits a field group entirely now yields empty lists for that group, matching how the docs pipeline defaults them, instead of failing validation and leaving the other group unusable. -9a69683: Correct the JSDoc for `tools.getInput` and `tools.proxyExecute`. The `getInput` example now passes the required `text` field and reads the generated `arguments`. The `proxyExecute` example now uses the flat `endpoint` / `method` / `connectedAccountId` shape and explains that a relative endpoint is appended to the toolkit's base URL, which can already include a path. The `tools.execute` example shows where to find the version to pin. - Updated dependencies [b4b9fc4] - @composio/json-schema-to-zod@0.3.3 ## @composio/slim@0.19.0 ### Minor Changes -efc2e52: Keep TypeScript realtime subscription errors inside the SDK logging boundary so an asynchronous Pusher subscription failure cannot escape as an uncaught exception. The full subscription error payload is now logged, the success message is logged only once Pusher confirms the subscription, and `PusherService.subscribe` / `Triggers.subscribe` accept an optional `onSubscriptionError` callback so applications can react to subscription failures programmatically. ### Patch Changes -62e51e8: Refresh runtime dependencies and extend provider peer compatibility to the latest supported Anthropic and OpenAI Agents SDK releases. -7055914: Move published dependency ranges to their current upstream releases: zod 4.5, openai 7.10, typebox 1.3.27, @mastra/schema-compat 1.3.8, and @cloudflare/workers-types 5.20260905. `@composio/anthropic` also accepts `@anthropic-ai/sdk` 0.124 as a peer, the line it is now tested against. -85996c4: Drop `Authorization`, `Proxy-Authorization`, and `Cookie` from the request headers when the SSRF guard follows a redirect to a different origin, as the Fetch standard does for automatic redirects. Same-origin redirects keep them. - Updated dependencies [b4b9fc4] - @composio/json-schema-to-zod@0.3.3 ## @composio/experimental@0.2.5 ### Patch Changes -7055914: Move published dependency ranges to their current upstream releases: zod 4.5, openai 7.10, typebox 1.3.27, @mastra/schema-compat 1.3.8, and @cloudflare/workers-types 5.20260905. `@composio/anthropic` also accepts `@anthropic-ai/sdk` 0.124 as a peer, the line it is now tested against. -100d568: Stamp eve's durable callback descriptors on the tools `EveProvider` wraps. eve only stamps descriptors on `defineTool` calls it finds in an agent's own source, so tools built inside `node_modules` were rejected at resolve time and every Composio tool was dropped from the step. Each wrapped tool now persists only its slug and an id for the resolve that produced it, and re-attaches to that resolve's Composio executor when eve replays or resumes a parked call. ## @composio/json-schema-to-zod@0.3.3 ### Patch Changes -b4b9fc4: Guard schema `pattern` and `patternProperties` compilation. A pattern that does not compile or exceeds 1024 characters now fails conversion with an `InvalidPatternError` that names the offending property path instead of a raw `SyntaxError`. `@composio/core` surfaces that path in the `JsonSchemaToZodError` message. No backtracking heuristic is applied: a hostile `pattern` that backtracks catastrophically remains a known limitation. ## @composio/anthropic@0.11.2 ### Patch Changes -62e51e8: Refresh runtime dependencies and extend provider peer compatibility to the latest supported Anthropic and OpenAI Agents SDK releases. -7055914: Move published dependency ranges to their current upstream releases: zod 4.5, openai 7.10, typebox 1.3.27, @mastra/schema-compat 1.3.8, and @cloudflare/workers-types 5.20260905. `@composio/anthropic` also accepts `@anthropic-ai/sdk` 0.124 as a peer, the line it is now tested against. -20aaa95: Accept the upcoming core prerelease and the upstream versions already used to build and test providers. ## @composio/claude-agent-sdk@0.12.1 ### Patch Changes -7055914: Move published dependency ranges to their current upstream releases: zod 4.5, openai 7.10, typebox 1.3.27, @mastra/schema-compat 1.3.8, and @cloudflare/workers-types 5.20260905. `@composio/anthropic` also accepts `@anthropic-ai/sdk` 0.124 as a peer, the line it is now tested against. -20aaa95: Accept the upcoming core prerelease and the upstream versions already used to build and test providers. ## @composio/cloudflare@0.10.3 ### Patch Changes -7055914: Move published dependency ranges to their current upstream releases: zod 4.5, openai 7.10, typebox 1.3.27, @mastra/schema-compat 1.3.8, and @cloudflare/workers-types 5.20260905. `@composio/anthropic` also accepts `@anthropic-ai/sdk` 0.124 as a peer, the line it is now tested against. -20aaa95: Accept the upcoming core prerelease and the upstream versions already used to build and test providers. ## @composio/google@0.11.1 ### Patch Changes -20aaa95: Accept the upcoming core prerelease and the upstream versions already used to build and test providers. ## @composio/langchain@0.11.1 ### Patch Changes -20aaa95: Accept the upcoming core prerelease and the upstream versions already used to build and test providers. ## @composio/llamaindex@0.11.1 ### Patch Changes -20aaa95: Accept the upcoming core prerelease and the upstream versions already used to build and test providers. ## @composio/mastra@0.10.5 ### Patch Changes -62e51e8: Refresh runtime dependencies and extend provider peer compatibility to the latest supported Anthropic and OpenAI Agents SDK releases. -7055914: Move published dependency ranges to their current upstream releases: zod 4.5, openai 7.10, typebox 1.3.27, @mastra/schema-compat 1.3.8, and @cloudflare/workers-types 5.20260905. `@composio/anthropic` also accepts `@anthropic-ai/sdk` 0.124 as a peer, the line it is now tested against. -20aaa95: Accept the upcoming core prerelease and the upstream versions already used to build and test providers. ## @composio/openai@0.12.3 ### Patch Changes -20aaa95: Accept the upcoming core prerelease and the upstream versions already used to build and test providers. ## @composio/openai-agents@0.11.1 ### Patch Changes -62e51e8: Refresh runtime dependencies and extend provider peer compatibility to the latest supported Anthropic and OpenAI Agents SDK releases. -7055914: Move published dependency ranges to their current upstream releases: zod 4.5, openai 7.10, typebox 1.3.27, @mastra/schema-compat 1.3.8, and @cloudflare/workers-types 5.20260905. `@composio/anthropic` also accepts `@anthropic-ai/sdk` 0.124 as a peer, the line it is now tested against. -20aaa95: Accept the upcoming core prerelease and the upstream versions already used to build and test providers. ## @composio/typesafe@0.1.1 ### Patch Changes -dafe138: Reject root schema composition that can hide required arguments, require explicitly supplied values for prototype-named arguments, and preserve `__proto__` as caller data during execution. ## @composio/vercel@0.12.1 ### Patch Changes -20aaa95: Accept the upcoming core prerelease and the upstream versions already used to build and test providers. ## @e2e-tests/cf-workers-basic@0.0.3 ### Patch Changes - Updated dependencies [62e51e8] - Updated dependencies [7055914] - Updated dependencies [b4b9fc4] - Updated dependencies [d4d3060] - Updated dependencies [efc2e52] - Updated dependencies [9d0cb2c] - Updated dependencies [4b5920b] - Updated dependencies [c7843d8] - Updated dependencies [ba85f4d] - Updated dependencies [ba85f4d] - Updated dependencies [85996c4] - Updated dependencies [eccb80e] - Updated dependencies [8bb1d29] - Updated dependencies [e9fcbe3] - Updated dependencies [9a69683] - @composio/core@0.19.0 ## @e2e-tests/cf-workers-files@0.0.3 ### Patch Changes - Updated dependencies [62e51e8] - Updated dependencies [7055914] - Updated dependencies [b4b9fc4] - Updated dependencies [d4d3060] - Updated dependencies [efc2e52] - Updated dependencies [9d0cb2c] - Updated dependencies [4b5920b] - Updated dependencies [c7843d8] - Updated dependencies [ba85f4d] - Updated dependencies [ba85f4d] - Updated dependencies [85996c4] - Updated dependencies [eccb80e] - Updated dependencies [8bb1d29] - Updated dependencies [e9fcbe3] - Updated dependencies [9a69683] - @composio/core@0.19.0 ## @e2e-tests/cf-workers-tool-router-ai@0.0.3 ### Patch Changes - Updated dependencies [62e51e8] - Updated dependencies [7055914] - Updated dependencies [b4b9fc4] - Updated dependencies [d4d3060] - Updated dependencies [efc2e52] - Updated dependencies [9d0cb2c] - Updated dependencies [4b5920b] - Updated dependencies [c7843d8] - Updated dependencies [ba85f4d] - Updated dependencies [ba85f4d] - Updated dependencies [85996c4] - Updated dependencies [eccb80e] - Updated dependencies [8bb1d29] - Updated dependencies [e9fcbe3] - Updated dependencies [9a69683] - Updated dependencies [20aaa95] - @composio/core@0.19.0 - @composio/vercel@0.12.1 ## @e2e-tests/deno-tool-execution@0.0.1 ### Patch Changes - Updated dependencies [62e51e8] - Updated dependencies [7055914] - Updated dependencies [b4b9fc4] - Updated dependencies [d4d3060] - Updated dependencies [efc2e52] - Updated dependencies [9d0cb2c] - Updated dependencies [4b5920b] - Updated dependencies [c7843d8] - Updated dependencies [ba85f4d] - Updated dependencies [ba85f4d] - Updated dependencies [85996c4] - Updated dependencies [eccb80e] - Updated dependencies [8bb1d29] - Updated dependencies [e9fcbe3] - Updated dependencies [9a69683] - @composio/core@0.19.0 ## @e2e-tests/node-claude-agent-sdk@0.0.3 ### Patch Changes - Updated dependencies [62e51e8] - Updated dependencies [7055914] - Updated dependencies [b4b9fc4] - Updated dependencies [d4d3060] - Updated dependencies [efc2e52] - Updated dependencies [9d0cb2c] - Updated dependencies [4b5920b] - Updated dependencies [c7843d8] - Updated dependencies [ba85f4d] - Updated dependencies [ba85f4d] - Updated dependencies [85996c4] - Updated dependencies [eccb80e] - Updated dependencies [8bb1d29] - Updated dependencies [e9fcbe3] - Updated dependencies [9a69683] - Updated dependencies [20aaa95] - @composio/core@0.19.0 - @composio/claude-agent-sdk@0.12.1 ## @e2e-tests/node-custom-tools@0.0.3 ### Patch Changes - Updated dependencies [62e51e8] - Updated dependencies [7055914] - Updated dependencies [b4b9fc4] - Updated dependencies [d4d3060] - Updated dependencies [efc2e52] - Updated dependencies [9d0cb2c] - Updated dependencies [4b5920b] - Updated dependencies [c7843d8] - Updated dependencies [ba85f4d] - Updated dependencies [ba85f4d] - Updated dependencies [85996c4] - Updated dependencies [eccb80e] - Updated dependencies [8bb1d29] - Updated dependencies [e9fcbe3] - Updated dependencies [9a69683] - @composio/core@0.19.0 ## @e2e-tests/node-json-schema-to-zod-v3@0.0.3 ### Patch Changes - Updated dependencies [b4b9fc4] - @composio/json-schema-to-zod@0.3.3 ## @e2e-tests/node-json-schema-to-zod-v4@0.0.3 ### Patch Changes - Updated dependencies [b4b9fc4] - @composio/json-schema-to-zod@0.3.3 ## @e2e-tests/node-mastra-tool-router-zod-v3@0.0.3 ### Patch Changes - Updated dependencies [62e51e8] - Updated dependencies [7055914] - Updated dependencies [b4b9fc4] - Updated dependencies [d4d3060] - Updated dependencies [efc2e52] - Updated dependencies [9d0cb2c] - Updated dependencies [4b5920b] - Updated dependencies [c7843d8] - Updated dependencies [ba85f4d] - Updated dependencies [ba85f4d] - Updated dependencies [85996c4] - Updated dependencies [eccb80e] - Updated dependencies [8bb1d29] - Updated dependencies [e9fcbe3] - Updated dependencies [9a69683] - Updated dependencies [20aaa95] - @composio/core@0.19.0 - @composio/mastra@0.10.5 ## @e2e-tests/node-mastra-tool-router-zod-v4@0.0.3 ### Patch Changes - Updated dependencies [62e51e8] - Updated dependencies [7055914] - Updated dependencies [b4b9fc4] - Updated dependencies [d4d3060] - Updated dependencies [efc2e52] - Updated dependencies [9d0cb2c] - Updated dependencies [4b5920b] - Updated dependencies [c7843d8] - Updated dependencies [ba85f4d] - Updated dependencies [ba85f4d] - Updated dependencies [85996c4] - Updated dependencies [eccb80e] - Updated dependencies [8bb1d29] - Updated dependencies [e9fcbe3] - Updated dependencies [9a69683] - Updated dependencies [20aaa95] - @composio/core@0.19.0 - @composio/mastra@0.10.5 ## @e2e-tests/node-tool-router-files@0.0.3 ### Patch Changes - Updated dependencies [62e51e8] - Updated dependencies [7055914] - Updated dependencies [b4b9fc4] - Updated dependencies [d4d3060] - Updated dependencies [efc2e52] - Updated dependencies [9d0cb2c] - Updated dependencies [4b5920b] - Updated dependencies [c7843d8] - Updated dependencies [ba85f4d] - Updated dependencies [ba85f4d] - Updated dependencies [85996c4] - Updated dependencies [eccb80e] - Updated dependencies [8bb1d29] - Updated dependencies [e9fcbe3] - Updated dependencies [9a69683] - @composio/core@0.19.0 ## @e2e-tests/node-tool-router-pagination@0.0.3 ### Patch Changes - Updated dependencies [62e51e8] - Updated dependencies [7055914] - Updated dependencies [b4b9fc4] - Updated dependencies [d4d3060] - Updated dependencies [efc2e52] - Updated dependencies [9d0cb2c] - Updated dependencies [4b5920b] - Updated dependencies [c7843d8] - Updated dependencies [ba85f4d] - Updated dependencies [ba85f4d] - Updated dependencies [85996c4] - Updated dependencies [eccb80e] - Updated dependencies [8bb1d29] - Updated dependencies [e9fcbe3] - Updated dependencies [9a69683] - @composio/core@0.19.0 ## anthropic-example@0.1.3 ### Patch Changes - Updated dependencies [62e51e8] - Updated dependencies [7055914] - Updated dependencies [b4b9fc4] - Updated dependencies [d4d3060] - Updated dependencies [efc2e52] - Updated dependencies [9d0cb2c] - Updated dependencies [4b5920b] - Updated dependencies [c7843d8] - Updated dependencies [ba85f4d] - Updated dependencies [ba85f4d] - Updated dependencies [85996c4] - Updated dependencies [eccb80e] - Updated dependencies [8bb1d29] - Updated dependencies [e9fcbe3] - Updated dependencies [9a69683] - Updated dependencies [20aaa95] - @composio/anthropic@0.11.2 - @composio/core@0.19.0 - @composio/claude-agent-sdk@0.12.1 ## cloudflare-wrangler-example@0.0.2 ### Patch Changes - Updated dependencies [62e51e8] - Updated dependencies [7055914] - Updated dependencies [b4b9fc4] - Updated dependencies [d4d3060] - Updated dependencies [efc2e52] - Updated dependencies [9d0cb2c] - Updated dependencies [4b5920b] - Updated dependencies [c7843d8] - Updated dependencies [ba85f4d] - Updated dependencies [ba85f4d] - Updated dependencies [85996c4] - Updated dependencies [eccb80e] - Updated dependencies [8bb1d29] - Updated dependencies [e9fcbe3] - Updated dependencies [9a69683] - @composio/core@0.19.0 ## connected-accounts-example@0.1.12 ### Patch Changes - Updated dependencies [62e51e8] - Updated dependencies [7055914] - Updated dependencies [b4b9fc4] - Updated dependencies [d4d3060] - Updated dependencies [efc2e52] - Updated dependencies [9d0cb2c] - Updated dependencies [4b5920b] - Updated dependencies [c7843d8] - Updated dependencies [ba85f4d] - Updated dependencies [ba85f4d] - Updated dependencies [85996c4] - Updated dependencies [eccb80e] - Updated dependencies [8bb1d29] - Updated dependencies [e9fcbe3] - Updated dependencies [9a69683] - @composio/core@0.19.0 ## error-handling-example@0.1.12 ### Patch Changes - Updated dependencies [62e51e8] - Updated dependencies [7055914] - Updated dependencies [b4b9fc4] - Updated dependencies [d4d3060] - Updated dependencies [efc2e52] - Updated dependencies [9d0cb2c] - Updated dependencies [4b5920b] - Updated dependencies [c7843d8] - Updated dependencies [ba85f4d] - Updated dependencies [ba85f4d] - Updated dependencies [85996c4] - Updated dependencies [eccb80e] - Updated dependencies [8bb1d29] - Updated dependencies [e9fcbe3] - Updated dependencies [9a69683] - @composio/core@0.19.0 ## file-handling-example@0.1.3 ### Patch Changes - Updated dependencies [62e51e8] - Updated dependencies [7055914] - Updated dependencies [b4b9fc4] - Updated dependencies [d4d3060] - Updated dependencies [efc2e52] - Updated dependencies [9d0cb2c] - Updated dependencies [4b5920b] - Updated dependencies [c7843d8] - Updated dependencies [ba85f4d] - Updated dependencies [ba85f4d] - Updated dependencies [85996c4] - Updated dependencies [eccb80e] - Updated dependencies [8bb1d29] - Updated dependencies [e9fcbe3] - Updated dependencies [9a69683] - @composio/core@0.19.0 ## google-example@0.1.3 ### Patch Changes - Updated dependencies [62e51e8] - Updated dependencies [7055914] - Updated dependencies [b4b9fc4] - Updated dependencies [d4d3060] - Updated dependencies [efc2e52] - Updated dependencies [9d0cb2c] - Updated dependencies [4b5920b] - Updated dependencies [c7843d8] - Updated dependencies [ba85f4d] - Updated dependencies [ba85f4d] - Updated dependencies [85996c4] - Updated dependencies [eccb80e] - Updated dependencies [8bb1d29] - Updated dependencies [e9fcbe3] - Updated dependencies [9a69683] - Updated dependencies [20aaa95] - @composio/core@0.19.0 - @composio/google@0.11.1 ## json-schema-to-zod-example@0.1.3 ### Patch Changes - Updated dependencies [62e51e8] - Updated dependencies [7055914] - Updated dependencies [b4b9fc4] - Updated dependencies [d4d3060] - Updated dependencies [efc2e52] - Updated dependencies [9d0cb2c] - Updated dependencies [4b5920b] - Updated dependencies [c7843d8] - Updated dependencies [ba85f4d] - Updated dependencies [ba85f4d] - Updated dependencies [85996c4] - Updated dependencies [eccb80e] - Updated dependencies [8bb1d29] - Updated dependencies [e9fcbe3] - Updated dependencies [9a69683] - Updated dependencies [20aaa95] - @composio/core@0.19.0 - @composio/vercel@0.12.1 ## langchain-example@0.1.12 ### Patch Changes - Updated dependencies [62e51e8] - Updated dependencies [7055914] - Updated dependencies [b4b9fc4] - Updated dependencies [d4d3060] - Updated dependencies [efc2e52] - Updated dependencies [9d0cb2c] - Updated dependencies [4b5920b] - Updated dependencies [c7843d8] - Updated dependencies [ba85f4d] - Updated dependencies [ba85f4d] - Updated dependencies [85996c4] - Updated dependencies [eccb80e] - Updated dependencies [8bb1d29] - Updated dependencies [e9fcbe3] - Updated dependencies [9a69683] - Updated dependencies [20aaa95] - @composio/core@0.19.0 - @composio/langchain@0.11.1 ## llamaindex-example@0.1.3 ### Patch Changes - Updated dependencies [62e51e8] - Updated dependencies [7055914] - Updated dependencies [b4b9fc4] - Updated dependencies [d4d3060] - Updated dependencies [efc2e52] - Updated dependencies [9d0cb2c] - Updated dependencies [4b5920b] - Updated dependencies [c7843d8] - Updated dependencies [ba85f4d] - Updated dependencies [ba85f4d] - Updated dependencies [85996c4] - Updated dependencies [eccb80e] - Updated dependencies [8bb1d29] - Updated dependencies [e9fcbe3] - Updated dependencies [9a69683] - Updated dependencies [20aaa95] - @composio/core@0.19.0 - @composio/llamaindex@0.11.1 ## mastra-example@0.1.3 ### Patch Changes - Updated dependencies [62e51e8] - Updated dependencies [7055914] - Updated dependencies [b4b9fc4] - Updated dependencies [d4d3060] - Updated dependencies [efc2e52] - Updated dependencies [9d0cb2c] - Updated dependencies [4b5920b] - Updated dependencies [c7843d8] - Updated dependencies [ba85f4d] - Updated dependencies [ba85f4d] - Updated dependencies [85996c4] - Updated dependencies [eccb80e] - Updated dependencies [8bb1d29] - Updated dependencies [e9fcbe3] - Updated dependencies [9a69683] - Updated dependencies [20aaa95] - @composio/core@0.19.0 - @composio/mastra@0.10.5 ## mcp-example@0.1.3 ### Patch Changes - Updated dependencies [62e51e8] - Updated dependencies [7055914] - Updated dependencies [b4b9fc4] - Updated dependencies [d4d3060] - Updated dependencies [efc2e52] - Updated dependencies [9d0cb2c] - Updated dependencies [4b5920b] - Updated dependencies [c7843d8] - Updated dependencies [ba85f4d] - Updated dependencies [ba85f4d] - Updated dependencies [85996c4] - Updated dependencies [eccb80e] - Updated dependencies [8bb1d29] - Updated dependencies [e9fcbe3] - Updated dependencies [9a69683] - Updated dependencies [20aaa95] - @composio/core@0.19.0 - @composio/vercel@0.12.1 ## modifiers-example@0.1.12 ### Patch Changes - Updated dependencies [62e51e8] - Updated dependencies [7055914] - Updated dependencies [b4b9fc4] - Updated dependencies [d4d3060] - Updated dependencies [efc2e52] - Updated dependencies [9d0cb2c] - Updated dependencies [4b5920b] - Updated dependencies [c7843d8] - Updated dependencies [ba85f4d] - Updated dependencies [ba85f4d] - Updated dependencies [85996c4] - Updated dependencies [eccb80e] - Updated dependencies [8bb1d29] - Updated dependencies [e9fcbe3] - Updated dependencies [9a69683] - Updated dependencies [20aaa95] - @composio/core@0.19.0 - @composio/vercel@0.12.1 ## openai-example@0.1.12 ### Patch Changes - Updated dependencies [62e51e8] - Updated dependencies [7055914] - Updated dependencies [b4b9fc4] - Updated dependencies [d4d3060] - Updated dependencies [efc2e52] - Updated dependencies [9d0cb2c] - Updated dependencies [4b5920b] - Updated dependencies [c7843d8] - Updated dependencies [ba85f4d] - Updated dependencies [ba85f4d] - Updated dependencies [85996c4] - Updated dependencies [eccb80e] - Updated dependencies [8bb1d29] - Updated dependencies [e9fcbe3] - Updated dependencies [9a69683] - Updated dependencies [20aaa95] - @composio/core@0.19.0 - @composio/openai-agents@0.11.1 - @composio/openai@0.12.3 ## session-management-example@0.1.3 ### Patch Changes - Updated dependencies [62e51e8] - Updated dependencies [7055914] - Updated dependencies [b4b9fc4] - Updated dependencies [d4d3060] - Updated dependencies [efc2e52] - Updated dependencies [9d0cb2c] - Updated dependencies [4b5920b] - Updated dependencies [c7843d8] - Updated dependencies [ba85f4d] - Updated dependencies [ba85f4d] - Updated dependencies [85996c4] - Updated dependencies [eccb80e] - Updated dependencies [8bb1d29] - Updated dependencies [e9fcbe3] - Updated dependencies [9a69683] - @composio/core@0.19.0 ## tool-router-example@1.0.13 ### Patch Changes - Updated dependencies [62e51e8] - Updated dependencies [7055914] - Updated dependencies [b4b9fc4] - Updated dependencies [d4d3060] - Updated dependencies [efc2e52] - Updated dependencies [9d0cb2c] - Updated dependencies [4b5920b] - Updated dependencies [c7843d8] - Updated dependencies [ba85f4d] - Updated dependencies [ba85f4d] - Updated dependencies [85996c4] - Updated dependencies [eccb80e] - Updated dependencies [8bb1d29] - Updated dependencies [e9fcbe3] - Updated dependencies [9a69683] - Updated dependencies [20aaa95] - @composio/core@0.19.0 - @composio/openai-agents@0.11.1 - @composio/claude-agent-sdk@0.12.1 - @composio/vercel@0.12.1 ## toolkits-example@0.1.12 ### Patch Changes - Updated dependencies [62e51e8] - Updated dependencies [7055914] - Updated dependencies [b4b9fc4] - Updated dependencies [d4d3060] - Updated dependencies [efc2e52] - Updated dependencies [9d0cb2c] - Updated dependencies [4b5920b] - Updated dependencies [c7843d8] - Updated dependencies [ba85f4d] - Updated dependencies [ba85f4d] - Updated dependencies [85996c4] - Updated dependencies [eccb80e] - Updated dependencies [8bb1d29] - Updated dependencies [e9fcbe3] - Updated dependencies [9a69683] - Updated dependencies [20aaa95] - @composio/core@0.19.0 - @composio/vercel@0.12.1 ## tools-example@0.1.3 ### Patch Changes - Updated dependencies [62e51e8] - Updated dependencies [7055914] - Updated dependencies [b4b9fc4] - Updated dependencies [d4d3060] - Updated dependencies [efc2e52] - Updated dependencies [9d0cb2c] - Updated dependencies [4b5920b] - Updated dependencies [c7843d8] - Updated dependencies [ba85f4d] - Updated dependencies [ba85f4d] - Updated dependencies [85996c4] - Updated dependencies [eccb80e] - Updated dependencies [8bb1d29] - Updated dependencies [e9fcbe3] - Updated dependencies [9a69683] - Updated dependencies [20aaa95] - @composio/core@0.19.0 - @composio/vercel@0.12.1 ## triggers-example@0.1.3 ### Patch Changes - Updated dependencies [62e51e8] - Updated dependencies [7055914] - Updated dependencies [b4b9fc4] - Updated dependencies [d4d3060] - Updated dependencies [efc2e52] - Updated dependencies [9d0cb2c] - Updated dependencies [4b5920b] - Updated dependencies [c7843d8] - Updated dependencies [ba85f4d] - Updated dependencies [ba85f4d] - Updated dependencies [85996c4] - Updated dependencies [eccb80e] - Updated dependencies [8bb1d29] - Updated dependencies [e9fcbe3] - Updated dependencies [9a69683] - @composio/core@0.19.0 ## typesafe-example@0.0.1 ### Patch Changes - Updated dependencies [62e51e8] - Updated dependencies [7055914] - Updated dependencies [b4b9fc4] - Updated dependencies [d4d3060] - Updated dependencies [efc2e52] - Updated dependencies [9d0cb2c] - Updated dependencies [4b5920b] - Updated dependencies [c7843d8] - Updated dependencies [ba85f4d] - Updated dependencies [ba85f4d] - Updated dependencies [85996c4] - Updated dependencies [eccb80e] - Updated dependencies [8bb1d29] - Updated dependencies [e9fcbe3] - Updated dependencies [9a69683] - Updated dependencies [dafe138] - Updated dependencies [20aaa95] - @composio/core@0.19.0 - @composio/typesafe@0.1.1 - @composio/openai@0.12.3 ## vercel-example@0.1.12 ### Patch Changes - Updated dependencies [62e51e8] - Updated dependencies [7055914] - Updated dependencies [b4b9fc4] - Updated dependencies [d4d3060] - Updated dependencies [efc2e52] - Updated dependencies [9d0cb2c] - Updated dependencies [4b5920b] - Updated dependencies [c7843d8] - Updated dependencies [ba85f4d] - Updated dependencies [ba85f4d] - Updated dependencies [85996c4] - Updated dependencies [eccb80e] - Updated dependencies [8bb1d29] - Updated dependencies [e9fcbe3] - Updated dependencies [9a69683] - Updated dependencies [20aaa95] - @composio/core@0.19.0 - @composio/vercel@0.12.1 ## versioning-example@0.1.3 ### Patch Changes - Updated dependencies [62e51e8] - Updated dependencies [7055914] - Updated dependencies [b4b9fc4] - Updated dependencies [d4d3060] - Updated dependencies [efc2e52] - Updated dependencies [9d0cb2c] - Updated dependencies [4b5920b] - Updated dependencies [c7843d8] - Updated dependencies [ba85f4d] - Updated dependencies [ba85f4d] - Updated dependencies [85996c4] - Updated dependencies [eccb80e] - Updated dependencies [8bb1d29] - Updated dependencies [e9fcbe3] - Updated dependencies [9a69683] - @composio/core@0.19.0 Co-authored-by: sdkrelease[bot] <294075132+sdkrelease[bot]@users.noreply.github.com>
E2E Tests
End-to-end tests for @composio/core and the CLI across different runtimes.
Directory Structure
ts/e2e-tests/
├── _utils/ # Shared test infrastructure
│ ├── Dockerfile.node # Docker image for Node.js tests
│ ├── Dockerfile.deno # Docker image for Deno tests
│ ├── Dockerfile.cli # Docker image for CLI tests (scratch)
│ ├── scripts/ # Docker build and cleanup scripts
│ │ ├── docker-build.ts # Pre-build images for all Node/Deno/CLI versions
│ │ └── docker-clean.ts # Remove all e2e Docker images
│ ├── src/ # TypeScript runner utilities
│ │ ├── config.ts # Configuration utilities
│ │ ├── const.ts # Well-known Node.js/Deno versions and timeouts
│ │ ├── e2e.ts # Main e2e test entry point
│ │ ├── image-lifecycle.ts # Docker image build/run utilities
│ │ ├── index.ts # Public exports
│ │ ├── runner.ts # Docker test runner
│ │ ├── sanitize.ts # Output sanitization utilities
│ │ ├── types.ts # TypeScript type definitions
│ │ └── volume.ts # Docker volume management
│ └── README.md # Utils documentation
├── runtimes/
├── node/ # Node.js runtime tests
│ ├── cjs-basic/ # Node.js 22 require(esm) interop tests
│ ├── claude-agent-sdk/ # @composio/claude-agent-sdk + Claude Agent SDK MCP tests
│ ├── custom-tools/ # Custom local tools execution (session.execute, proxyExecute, Zod validation)
│ ├── esm-basic/ # ESM compatibility tests
│ ├── json-schema-to-zod-v3/ # @composio/json-schema-to-zod + Zod v3 tests
│ ├── json-schema-to-zod-v4/ # @composio/json-schema-to-zod + Zod v4 tests
│ ├── mastra-tool-router-zod-v3/ # @composio/mastra Tool Router + Zod v3 tests
│ ├── mastra-tool-router-zod-v4/ # @composio/mastra Tool Router + Zod v4 tests
│ ├── openai-zod4-compat/ # OpenAI + Zod v4 compatibility tests
│ ├── tool-router-files/ # Tool Router session files (list, upload, download, delete)
│ ├── tool-router-pagination/ # Tool Router session.toolkits() cursor pagination
│ └── typescript-mjs-import-nodenext/ # TypeScript moduleResolution: nodenext tests
├── deno/ # Deno runtime tests
│ └── esm-basic/ # ESM compatibility tests via npm: specifier
└── cloudflare/ # Cloudflare runtime tests
├── cf-workers-basic/ # Basic Cloudflare Workers tests
├── cf-workers-files/ # Cloudflare Workers file handling tests
└── cf-workers-tool-router-ai/ # Cloudflare Workers AI SDK tool router tests
└── cli/ # CLI runtime tests (scratch)
├── version/ # composio version command tests
├── whoami/ # composio whoami command tests
└── toolkits/ # composio toolkits command tests
├── list/ # composio toolkits list tests
├── info/ # composio toolkits info tests
└── search/ # composio toolkits search tests
Running Tests
All E2E Tests
pnpm test:e2e
Node.js Tests Only
pnpm test:e2e:node
Runs Node.js tests in Docker using bun test. The default Node.js version is determined by mise.toml.
To run with a specific Node.js version:
COMPOSIO_E2E_NODE_VERSION=22.22.3 pnpm test:e2e:node
Deno Tests Only
pnpm test:e2e:deno
Runs Deno tests in Docker using bun test. The default Deno version is determined by mise.toml.
To run with a specific Deno version:
COMPOSIO_E2E_DENO_VERSION=2.6.7 pnpm test:e2e:deno
Cloudflare Workers Tests Only
pnpm test:e2e:cloudflare
CLI Tests Only
pnpm test:e2e:cli
To run with a specific CLI version:
COMPOSIO_E2E_CLI_VERSION=0.1.24 pnpm test:e2e:cli
Adding New Tests
Node.js Runtime Tests
- Create a new directory under
runtimes/node/(e.g.,runtimes/node/my-test) - Add a
package.jsonwith name@e2e-tests/node-my-test - Add
test:e2eandtest:e2e:nodescripts - Create an
e2e.test.tsfile with inline configuration:
import { e2e, type E2ETestResult } from '@e2e-tests/utils';
import { TIMEOUTS } from '@e2e-tests/utils/const';
import { describe, it, expect, beforeAll } from 'bun:test';
e2e(import.meta.url, {
versions: {
node: ['22.22.3', '24.17.0', '25.9.0'], // Optional: defaults to the current version in mise.toml
},
env: { MY_VAR: process.env.MY_VAR }, // Optional: env vars (validated at startup)
defineTests: ({ runtime, runFixture }) => {
let result: E2ETestResult;
beforeAll(async () => {
result = await runFixture({ filename: 'fixtures/test.mjs' });
}, TIMEOUTS.FIXTURE);
describe('output', () => {
it('exits successfully', () => {
expect(result.exitCode).toBe(0);
});
it('contains expected output', () => {
expect(result.stdout).toContain('expected text');
});
});
},
});
- Add fixture files in a
fixtures/directory
Deno Runtime Tests
- Create a new directory under
runtimes/deno/(e.g.,runtimes/deno/my-test) - Add a
package.jsonwith name@e2e-tests/deno-my-test - Add
test:e2eandtest:e2e:denoscripts - Create an
e2e.test.tsfile with inline configuration:
import { e2e, type E2ETestResult } from '@e2e-tests/utils';
import { TIMEOUTS } from '@e2e-tests/utils/const';
import { describe, it, expect, beforeAll } from 'bun:test';
e2e(import.meta.url, {
versions: {
deno: ['2.6.7'], // Optional: defaults to the current version in mise.toml
},
usesFixtures: true,
defineTests: ({ runtime, runFixture }) => {
let result: E2ETestResult;
beforeAll(async () => {
result = await runFixture({ filename: 'test.ts' });
}, TIMEOUTS.FIXTURE);
describe('output', () => {
it('exits successfully', () => {
expect(result.exitCode).toBe(0);
});
it('contains expected output', () => {
expect(result.stdout).toContain('expected text');
});
});
},
});
- Add fixture files in a
fixtures/directory. Fixtures use Deno'snpm:specifier to import packages.
Tests with External Dependencies (npm install)
For tests that need to install npm packages at runtime, use usesFixtures: true and the setup option:
import { e2e, type E2ETestResultWithSetup } from '@e2e-tests/utils';
import { TIMEOUTS } from '@e2e-tests/utils/const';
import { describe, it, expect, beforeAll } from 'bun:test';
e2e(import.meta.url, {
versions: {
node: ['22.22.3', '24.17.0', '25.9.0'],
},
usesFixtures: true, // Sets cwd to fixtures/ directory
env: { MY_API_KEY: process.env.MY_API_KEY },
defineTests: ({ runFixture }) => {
let result: E2ETestResultWithSetup;
beforeAll(async () => {
result = await runFixture({
filename: 'index.mjs',
setup: 'npm install --legacy-peer-deps', // Runs before fixture
});
}, TIMEOUTS.FIXTURE);
describe('setup', () => {
it('npm install completes successfully', () => {
expect(result.setup.exitCode).toBe(0);
});
});
describe('fixture', () => {
it('exits successfully', () => {
expect(result.exitCode).toBe(0);
});
});
},
});
Cloudflare Runtime Tests
- Create a new directory under
runtimes/cloudflare/(e.g.,runtimes/cloudflare/my-test) - Add a
package.jsonwith name@e2e-tests/cf-my-test - Add
test:e2eandtest:e2e:cloudflarescripts - Configure vitest with
@cloudflare/vitest-pool-workers
CLI Runtime Tests
- Create a new directory under
cli/(e.g.,cli/my-test) - Add a
package.jsonwith name@e2e-tests/cli-my-test - Add
test:e2eandtest:e2e:cliscripts - Create an
e2e.test.tsfile with inline configuration:
import { e2e, sanitizeOutput, type E2ETestResult } from '@e2e-tests/utils';
import { TIMEOUTS } from '@e2e-tests/utils/const';
import { describe, it, expect, beforeAll } from 'bun:test';
e2e(import.meta.url, {
versions: {
cli: ['current'],
},
defineTests: ({ runCmd }) => {
let result: E2ETestResult;
beforeAll(async () => {
result = await runCmd('composio version');
}, TIMEOUTS.FIXTURE);
describe('output', () => {
it('exits successfully', () => {
expect(result.exitCode).toBe(0);
});
it('stdout matches snapshot', () => {
expect(sanitizeOutput(result.stdout)).toMatchSnapshot();
});
});
},
});
Debugging
Each test suite generates an ephemereal DEBUG.log file in its directory with structured output:
================================================================================
E2E Test: my-test
Started: 2026-01-30T12:18:42.000Z
Test file: ts/e2e-tests/runtimes/node/my-test/e2e.test.ts
Runtime versions: Node.js 22.22.3, Node.js 24.17.0, Node.js 25.9.0
================================================================================
################################################################################
### Node.js 22.22.3
################################################################################
Image: composio-e2e-node:22.22.3
--- Phase 1/2: setup ---
Container: e2e-my-test-22-22-3-1769775520382-setup
Command: npm install
Duration: 2.55s
Exit Code: 0 (success)
[stdout]
added 3 packages in 2s
[stderr]
(empty)
--- Phase 2/2: fixture ---
Container: e2e-my-test-22-22-3-1769775520382-fixture
Command: node index.mjs
Duration: 0.56s
Exit Code: 0 (success)
[stdout]
Test passed!
[stderr]
(empty)
================================================================================
Summary
================================================================================
Node.js 22.22.3: PASS (2 phases, 3.11s total)
Node.js 24.17.0: PASS (2 phases, 3.09s total)
Node.js 25.9.0: PASS (2 phases, 3.08s total)
Finished: 2026-01-30T12:18:46.500Z
Total duration: 4.50s
================================================================================