Commit Graph

76 Commits

Author SHA1 Message Date
Alberto Schiabel 6606c0da92 fix(ts): upgrade vitest for GHSA-5xrq-8626-4rwp (#3569)
This PR:

- closes #3502
- extracts the useful dependency and Cloudflare config slice from
https://github.com/ComposioHQ/composio/pull/3503 onto a clean `next`
branch
- upgrades `vitest` and `@vitest/ui` through the workspace catalog to
resolve the critical advisory
- switches the Mastra provider test dependency back to the catalog
- migrates the Cloudflare Worker Vitest configs to the
`cloudflareTest()` plugin API
- preserves existing `COMPOSIO_BASE_URL` bindings that were dropped in
#3503
- keeps Vitest 4 compatibility fixes scoped to constructor mocks, spy
cleanup, and temp-root project detection
- leaves Node, `mise`, release docs, and Effect catalog versions
unchanged; the commit includes @Dotify71 as `Co-authored-by`

Co-authored-by: Dushyant Acharya <dushyantacharya873@gmail.com>
2026-06-15 19:38:51 +04:00
Alberto Schiabel 07160d14fa feat(toolchain): introduce mise.toml as single source of truth (#3492)
## Summary

This PR starts Phase 1 of PLEN-1368 by adding `mise.toml` as the
repo-owned source for the primary toolchain versions:

- Node `20.20.2`
- Bun `1.3.10`
- Deno `2.6.7`
- Python `3.12`
- uv `0.8.19`

It also keeps pnpm corepack-driven through
`package.json#packageManager`, adds `devEngines` for Node/pnpm
visibility, documents the new `mise install && corepack enable && pnpm
install` bootstrap path, ignores `.mise.local.toml`, and fixes stale
release-doc prerequisites.

## Why

The repo already has real toolchain drift, not just duplicated version
strings. The internal release docs had stale Node/Bun/pnpm versions,
Deno is repeated across workflows, Dockerfiles, docs, and e2e helpers,
and Python local setup still has a separate `3.11` venv path while the
repo pins `3.12`.

A composite-action cleanup would improve CI, but it would not solve
local development. `mise.toml` gives us one file that declares the
versions and lets contributors install or switch them with one command.
That is the main value proposition here: make the repo declare its own
toolchain, then let CI consume the same declaration in the next phase.

## Rollout

This is deliberately additive. It does not remove `.nvmrc`,
`.bun-version`, `.python-version`, or `.dvmrc`, and it does not change
CI behavior yet. Contributors who do not use mise can keep working as
before; contributors who do use mise get managed Node/Bun/Deno/Python/uv
immediately.

Phase 2 can migrate the existing composite actions to
`jdx/mise-action@v4`. Phase 3 can remove the legacy version files and
add the lockfile once the transition is complete.

## Out of Scope

- Migrating CI to `jdx/mise-action@v4`
- Removing legacy version files
- Adding `mise.lock`
- Updating nested TS package/example `packageManager` fields that still
say `pnpm@10.28.0`; that is pre-existing metadata drift and should be
handled separately to avoid broadening Phase 1

## Verification

- `git diff --check origin/next...HEAD`
- `mise install && mise current`
- `pnpm --version` -> `10.28.2`
- `pnpm dlx prettier@3.8.1 --check package.json`

Refs: PLEN-1368
2026-06-04 23:50:59 -07:00
Rahul Tarak 99324d5a0d fix(install): resolve latest CLI release from assets (#3411)
## Summary
- Resolve the default CLI install version from GitHub Releases instead
of git tags.
- Require the selected CLI release to include the current platform
archive asset and fall back to older stable CLI releases when the newest
release is missing that asset.
- Add a mocked install.sh regression test covering missing release
assets, ignored beta/provider releases, and tag-only versions with no
release.

## Tests
- `bash -n install.sh test/install-sh-release-resolution.test.sh`
- `pnpm run test:install-sh`
- `git diff --check`
- Parsed `.github/workflows/cli.test-installation.yml` with Ruby YAML
- Parsed `package.json` with Node JSON.parse
- Manual real install smoke test with temporary
HOME/COMPOSIO_INSTALL_DIR selected `@composio/cli@0.2.28`

## Notes
- This prevents the install health check from selecting tag-only
versions like `@composio/cli@0.2.29` when no GitHub release/asset exists
yet.
2026-05-12 13:36:41 -07:00
Alberto Schiabel 3e3a7ef72d chore(deps): bump pnpm 10.28.0 -> 10.28.2 (CVE-2026-24056) (#3311)
# Description

Bumps the `packageManager` pin from `pnpm@10.28.0` to `pnpm@10.28.2`,
the smallest release that fixes
[**CVE-2026-24056**](https://nvd.nist.gov/vuln/detail/CVE-2026-24056) —
a symlink
attack in pnpm where installing a malicious `file:` (directory) or
`git:`
dependency that contains a symlink to an absolute path causes pnpm to
copy that target file's contents (e.g. `~/.ssh/id_rsa`, `/etc/passwd`)
into `node_modules`, enabling local data exfiltration on developer
machines and CI runners.

Practical risk for this repo is **LOW** — we only install
registry-pinned dependencies with `minimumReleaseAge: 4320` (72-hour
cooldown) configured in `pnpm-workspace.yaml`, so the attacker would
need a malicious package to (a) be added as a dependency, and (b) sit
unnoticed for 72h. The fix is nevertheless a one-line defensive bump
that aligns this repo with the rest of the monorepo:

| repo               | pnpm version | status |
|--------------------|-------------|--------|
| hermes             | `10.33.0`   | safe   |
| composio_dashboard | `10.28.2`   | safe   |
| frontend           | `10.28.2`   | safe   |
| **composio (this PR)** | `10.28.0` -> `10.28.2` | **fix** |
| metrics.composio.io | `10.18.2`  | flagged separately (no CI) |

Discovered during the daily Zen security audit cron.

# How did I test this PR

- Diff is a single character bump (`10.28.0` -> `10.28.2`) in
  `package.json` `packageManager`. No code, lockfile, or workflow
  changes — `pnpm install` will simply use the newer pnpm via Corepack.
- Verified `composio_dashboard` and `frontend` already pin
`pnpm@10.28.2`
  successfully across their CI workflows.
- No GHA file modified, so the pnpm-version reference in
  `ts/docs/internal/release.md` (per `CLAUDE.md` maintenance task) does
  not need to be updated by this PR.

---

Triggered by: dhawal@composio.dev | Source: cron-48e51eab745f
Session:
https://zen-api-production-4c98.up.railway.app/dashboard/#/chat/zen-cron-16acec0fd729
Origin: cron-48e51eab745f /
[zen-cron-16acec0fd729](https://zen-api-production-4c98.up.railway.app/dashboard/#/chat/zen-cron-16acec0fd729)
2026-05-07 14:38:37 +02:00
Rahul Tarak 79ac22053f feat(cli): add local tools foundation (#3340)
## Summary
- Add experimental CLI local tools behind `local_tools` (beta-on,
stable-off unless `composio config experimental local_tools on`).
- Add reusable `@composio/cli-local-tools` package: declarations,
metadata, readiness, command/MCP/native/FFI runtimes, bundled-binary
resolution, and Tool Router search/execute/schema integration.
- Add first-class local toolkits for:
- `BEEPER_IMESSAGE` backed by `imessage-cli` from the ComposioHQ
`platform-imessage` fork.
- `CHROME_DEVTOOLS` backed by the official `chrome-devtools-mcp@0.24.0`
npm/npx package.
  - `PEEKABOO` backed by upstream Peekaboo CLI.
- Remove generated native executables from git: Beeper and Peekaboo
binaries are now ignored, pinned via git submodules, and generated
during CLI binary release jobs.
- Update CLI binary workflow so Linux artifacts skip native sidecars,
while macOS artifacts run on macOS runners and build only the matching
`darwin-x64` or `darwin-arm64` Beeper/Peekaboo sidecars before
packaging.

## Native binary policy
- No generated `imessage-cli` or `peekaboo` binary blobs are committed
in this PR history.
- Beeper source is pinned as
`ts/packages/cli-local-tools/vendor/platform-imessage` at
`364445a1b3089ad9fe293d5951efe160c5677c42` from
`https://github.com/ComposioHQ/platform-imessage`.
- Peekaboo source is pinned as
`ts/packages/cli-local-tools/vendor/peekaboo` at
`31e66e8d02656141d18f60bf3b46b24c2b9bc785` from
`https://github.com/steipete/Peekaboo`.
- Build commands:
- `pnpm --filter @composio/cli-local-tools build:local-tool-binaries --
--target darwin-arm64`
- `pnpm --filter @composio/cli-local-tools build:local-tool-binaries --
--target darwin-x64`
- Chrome DevTools is an npm/npx integration and is pinned as a dev
dependency (`chrome-devtools-mcp@0.24.0`) instead of using native
sidecars.

## Validation
- `pnpm --filter @composio/cli-local-tools build:local-tool-binaries --
--target darwin-arm64`
- `pnpm --filter @composio/cli-local-tools build:peekaboo -- --target
darwin-x64`
- `pnpm --filter @composio/cli-local-tools build:beeper-imessage --
--target darwin-x64`
- `pnpm --filter @composio/cli-local-tools typecheck:tsc`
- `pnpm --filter @composio/cli-local-tools test`
- `COMPOSIO_REAL_LOCAL_TOOLS_TESTS=1 pnpm --filter
@composio/cli-local-tools test -- src/toolkits/beeper-imessage.test.ts
src/toolkits/peekaboo.test.ts`
- `pnpm --filter @composio/cli typecheck:tsc`
- `pnpm --filter @composio/cli build`
- `COMPOSIO_CACHE_DIR=<tmp-config-with-local_tools-enabled> bun
ts/packages/cli/dist/bin.mjs local-tools doctor --json`
- `pnpm turbo build`
- Verified rewritten branch has no >1MB objects relative to
`origin/next` and no native executable paths in the PR diff.

## Notes / risks
- Beeper iMessage and Peekaboo are macOS-only and depend on local
permissions.
- Peekaboo requires macOS 15+; GUI tools require Screen Recording,
Accessibility, and sometimes Automation.
- Beeper send/reaction behavior can still depend on upstream Messages
automation reliability.
- Chrome DevTools can inspect/modify browser contents; avoid sensitive
browser sessions.
2026-05-05 00:10:38 -07:00
Zen Agent f9c1da1e14 chore(deps): bump pnpm 10.28.0 -> 10.28.2 (CVE-2026-24056)
Bumps the `packageManager` pin from `pnpm@10.28.0` to `pnpm@10.28.2`,
which is the smallest release that fixes CVE-2026-24056 — a symlink
attack in pnpm where installing a malicious `file:` or `git:` dependency
that contains a symlink to an absolute path causes pnpm to copy the
target file's contents (e.g. `~/.ssh/id_rsa`, `/etc/passwd`) into
`node_modules`, enabling local data exfiltration on dev machines and CI
runners.

Practical risk for this repo is LOW (we only install registry-pinned
deps with `minimumReleaseAge: 4320`), but the fix is a one-line
defensive bump — keeps the SDK CI runners in line with the rest of the
monorepo (hermes already on 10.33.0; composio_dashboard / frontend
already on 10.28.2).

Origin: cron-48e51eab745f / [zen-cron-16acec0fd729](https://zen-api-production-4c98.up.railway.app/dashboard/#/chat/zen-cron-16acec0fd729)

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-28 23:40:13 +00:00
Rahul Tarak a8071e0d35 Add channel-aware Composio CLI skill builds (#3127)
## Summary
- Add a generated `composio-cli` skill source that can render stable and
beta variants from a single channel-aware definition.
- Introduce build and validation scripts to generate the skill output
and verify channel-specific content, references, and reproducibility.
- Update the CLI packaging workflow to validate skills and package the
correct release-channel build for beta vs stable releases.
- Expand the skill content with clearer top-level CLI guidance,
troubleshooting, developer-project workflows, and beta-only power-user
examples.
- Tighten CLI install/upgrade behavior and add tests covering skill
installation behavior.
- Add example validation to the repo test flow and align example package
metadata with workspace expectations.

## Testing
- Not run locally.
- Added `ts/packages/cli/scripts/validate-skills.ts` checks for
stable/beta markers, channel-specific content, and required reference
files.
- Added `ts/packages/cli/test/src/effects/install-skill.test.ts`
coverage for skill installation behavior.
- Added `ts/scripts/validate-examples.ts` to validate example package
manifests during `pnpm test`.
- CI workflow now runs `pnpm run validate:skills` before packaging CLI
skill files.
2026-04-07 01:02:45 -07:00
Rahul Tarak efcb8c2436 Add tsgo-backed typecheck targets across packages (#3130)
## Summary
- Add `tsgo`-based `typecheck` scripts and matching `typecheck:tsc`
fallback scripts across the TypeScript packages.
- Wire the new `typecheck:tsc` task into Turbo so package-level
typecheck checks can run consistently.
- Update workspace and lockfile metadata to include
`@typescript/native-preview` and the new toolchain wiring.
- Remove redundant `baseUrl` settings from package tsconfig files where
they are no longer needed.

## Testing
- Not run (changes are limited to package scripts, tsconfig wiring, and
lockfile updates).
- Not run: `pnpm typecheck:tsc`
- Not run: `pnpm build`
- Not run: package-specific `typecheck` / `typecheck:tsc` commands in
`ts/packages/cli`, `ts/packages/core`, `ts/packages/json-schema-to-zod`,
and `ts/packages/providers/mastra`.
2026-04-07 00:43:52 -07:00
jkomyno 5b8e7abdf3 feat(cli): add checksums, cross-compilation, and simplified install
- Add cross-compilation scripts (build-binary-cross.ts, build-all-binaries.ts)
  using Bun's --target flag, enabling all platforms to build from ubuntu-latest
- Add package-binaries.ts and generate-checksums.ts for release artifact preparation
- Restructure CI workflow into build + release jobs; release job aggregates
  artifacts and generates checksums.txt
- Simplify install.sh: use git ls-remote refspec filter for version detection,
  add SHA-256 checksum verification with graceful fallback, use mktemp/trap
  for temp file cleanup, remove dead musl detection code
- Add checksum verification to composio upgrade command via fetchChecksums
  and verifyChecksum helpers in upgrade-binary.ts
2026-02-27 18:19:30 +04:00
jkomyno 83043403b7 chore: bump Turborepo 2026-02-26 21:22:46 +04:00
Musthaq Ahamad 4fda636aba chore(cli): migrate binary release tags and docs (#2719)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-25 16:29:04 -08:00
jkomyno 4d51efc8e8 chore(cli): rename build:bin to build:binary 2026-02-23 13:11:52 +04:00
jkomyno 63119535fb chore: address cursorbot 2026-02-19 02:14:16 +04:00
jkomyno 5519752ba4 feat(ts/e2e): add CLI runtime support and composio version e2e test
Extend the e2e test infrastructure to support CLI runtime tests alongside
Node.js and Deno. Add a Dockerfile.cli that builds the composio binary
and runs it in a scratch Debian container. Include the first CLI e2e test
for `composio version` with file capture support.
2026-02-18 15:20:23 +04:00
jkomyno 63aa197d0f feat(ts/e2e): add e2e tests for Deno 2026-02-01 12:21:20 +04:00
Sushmithamallesh 5cda128e57 chore(docs): deprecate fern documentation system
- Add deprecation notices to fern/README.md and fern/CLAUDE.md
- Disable fern CI/CD workflows (publish_docs.yml, preview_docs.yml)
- Remove fern from pnpm workspaces

The new documentation is now in /docs built with Fumadocs.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 11:49:55 -08:00
jkomyno 6aa99bc80f feat(ts/e2e): use bun:test for "pnpm test:e2e:node"; optimize Dockerfile.node 2026-01-26 23:28:01 +04:00
Alberto Schiabel d80cd28f46 feat(ci): QoL improvements (#2404)
Co-authored-by: jkomyno <12381818+jkomyno@users.noreply.github.com>
2026-01-20 11:25:12 +05:30
Alberto Schiabel ded64beb75 feat(ts): support Cloudflare Workers + refactor build pipeline with tsdown + introduce e2e tests (#2360)
Co-authored-by: jkomyno <12381818+jkomyno@users.noreply.github.com>
2026-01-13 13:02:58 +05:30
Alberto Schiabel 37a89abe57 feat(ts): upgrade Vercel provider to support AI v6 (#2314)
Co-authored-by: jkomyno <12381818+jkomyno@users.noreply.github.com>
2026-01-12 18:24:28 +05:30
Alberto Schiabel 9a4465d87b feat(core): add Anthropic Claude Code Agents provider (#2285)
Co-authored-by: jkomyno <12381818+jkomyno@users.noreply.github.com>
2025-12-23 11:18:29 +05:30
Musthaq Ahamad 62e26c1f0b Release: Bump SDK versions to minor update with latest tool router changes (#2268) 2025-12-15 13:42:16 +05:30
jkomyno 7c6224983a fix: pnpm audit --prod 2025-12-08 10:14:25 +01:00
jkomyno 2dc7435c0b chore: merge next 2025-12-08 10:12:43 +01:00
Musthaq Ahamad 9e002c5ca3 Tool Router API Integration (#2214)
Co-authored-by: jkomyno <12381818+jkomyno@users.noreply.github.com>
2025-12-04 15:31:09 +05:30
jkomyno a71c91d4e9 fix: "pnpm audit --prod" 2025-12-03 23:49:15 +01:00
jkomyno b61bb0cdd1 feat(security): add "pnpm audit --fix" check 2025-11-25 00:40:37 +04:00
Musthaq Ahamad f88ab9936d Fix: Telemetry and request headers (#2134) 2025-10-31 17:27:21 +05:30
jkomyno 5fc556a8ac chore(pnpm): add to pnpm catalog: @composio/client, uuid, tsx, vitest 2025-09-18 12:53:39 +05:30
jkomyno 4554eba908 chore: update to pnpm@10.17.0 2025-09-18 12:46:24 +05:30
jkomyno 18e7feea41 chore: update to pnpm@10.16.0 2025-09-18 12:37:07 +05:30
jkomyno df8ef3af29 chore(ts): update package.json files to use pnpm catalog versions 2025-09-17 14:43:57 +05:30
Musthaq Ahamad 9a10986d86 Fix: Issues with reponse parsing related to zod schema (#1748) 2025-07-11 23:50:11 +05:30
Musthaq Ahamad c223e54e7d chore: Bump package versions for @next (#1695) 2025-06-25 12:37:14 +05:30
balyan.sid@gmail.com 784033c7c7 wip: moving and testing snippets 2025-06-19 20:24:49 -07:00
balyan.sid@gmail.com b7fa527e3f Merge branch 'next' of github.com:ComposioHQ/composio into sid/move-snippets 2025-06-19 12:30:43 -07:00
Musthaq Ahamad 84d43812e2 feat: Add file upload / download modifiers (#1670) 2025-06-19 19:02:15 +05:30
balyan.sid@gmail.com a7f53320d8 chore: add clean to package.json 2025-06-18 23:24:15 -07:00
haxzie bb11ef93d5 Fix lintstaged command 2025-06-16 19:53:07 +05:30
haxzie f5df207db2 Fix liniting 2025-06-16 19:52:20 +05:30
haxzie 8f527fce00 Move packages to ts 2025-06-16 19:48:40 +05:30
haxzie c7ff44c5b0 Fix toolkit tests 2025-06-11 13:53:34 +05:30
haxzie 4f804aa2a1 Fix issues with connected accounts in custom tools 2025-06-11 13:53:34 +05:30
Siddharth Balyan 2ffc30c77e Update screenshots in Fern assets (#1621) 2025-06-11 09:50:29 +05:30
Musthaq Ahamad 4ddfafcadb Fix JSON schema transformation issues with jsonSchemaToZodSchema (#28)
* Fix transformation issues

* Add changeset

* Fix types

* Fix types

* Add changeset
2025-06-05 15:11:24 +05:30
haxzie fcd797b42d Add ability to create examples 2025-05-23 11:34:24 +05:30
haxzie d0b0e9d840 Fix error handling 2025-05-22 14:32:42 +05:30
haxzie 43e2d5bca2 Add changeset release documentation 2025-05-20 19:07:38 +05:30
haxzie 5fa93b7d6d Fix bad package-lock 2025-05-20 17:22:54 +05:30
haxzie 22e8bf97e7 Add pre enter and pre exit scripts 2025-05-20 13:24:04 +05:30