mirror of
https://github.com/ComposioHQ/composio.git
synced 2026-09-22 11:46:35 +08:00
79ac22053f
## 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.
92 lines
3.6 KiB
JSON
92 lines
3.6 KiB
JSON
{
|
|
"name": "composio",
|
|
"version": "0.10.0-alpha.1",
|
|
"private": true,
|
|
"description": "",
|
|
"workspaces": [
|
|
"ts/packages/core",
|
|
"ts/packages/json-schema-to-zod",
|
|
"ts/packages/cli",
|
|
"ts/packages/cli-keyring",
|
|
"ts/packages/cli-local-tools",
|
|
"ts/packages/providers/*"
|
|
],
|
|
"scripts": {
|
|
"build": "turbo build",
|
|
"build:binary": "turbo build:binary --filter=./ts/packages/cli",
|
|
"build:binary:all": "turbo build:binary:all --filter=./ts/packages/cli",
|
|
"build:binary:checksums": "turbo build:binary:checksums --filter=./ts/packages/cli",
|
|
"install:binary": "turbo install:binary --filter=./ts/packages/cli",
|
|
"build:packages": "turbo build --filter=./ts/packages/**",
|
|
"cli:record": "turbo run record --filter=./ts/packages/cli",
|
|
"record": "turbo run record",
|
|
"test": "turbo test --filter=./ts/packages/** --filter=!@e2e-tests/* && pnpm run test:examples",
|
|
"test:examples": "tsx ts/scripts/validate-examples.ts",
|
|
"test:e2e": "turbo test:e2e --filter='@e2e-tests/*'",
|
|
"test:e2e:node": "turbo test:e2e:node --filter='@e2e-tests/node-*'",
|
|
"test:e2e:deno": "turbo test:e2e:deno --filter='@e2e-tests/deno-*'",
|
|
"test:e2e:cli": "turbo test:e2e:cli --filter='@e2e-tests/cli-*'",
|
|
"test:e2e:cloudflare": "turbo test:e2e:cloudflare --filter='@e2e-tests/cf-*'",
|
|
"test:ui": "vitest --ui",
|
|
"typecheck": "turbo typecheck --filter=./ts/packages/**",
|
|
"typecheck:tsc": "turbo typecheck:tsc --filter=./ts/packages/**",
|
|
"lint": "eslint ts/packages --ext .ts,.tsx",
|
|
"lint:packages": "eslint ts/packages --ext .ts,.tsx",
|
|
"lint:fix": "eslint . --ext .ts,.tsx --fix",
|
|
"lint:fix:packages": "eslint ts/packages --ext .ts,.tsx --fix",
|
|
"format": "prettier --write \"**/*.{ts,tsx,js,jsx,json,md}\"",
|
|
"preinstall": "./ts/scripts/pre-install.sh",
|
|
"prepare": "husky",
|
|
"create:provider": "bash ts/scripts/create-provider.sh",
|
|
"create:example": "bash ts/scripts/create-example.sh",
|
|
"check:peer-deps": "tsx ts/scripts/check-peer-deps.ts",
|
|
"update:peer-deps": "tsx ts/scripts/update-peer-deps.ts",
|
|
"prepublish": "pnpm run build:packages",
|
|
"changeset": "changeset",
|
|
"changeset:version": "changeset version",
|
|
"changeset:release": "pnpm run build:packages && changeset publish",
|
|
"changeset:pre-enter": "changeset pre enter",
|
|
"changeset:pre-exit": "changeset pre exit",
|
|
"clean": "git clean -xdf .turbo node_modules ts/packages/**/.turbo ts/packages/**/node_modules ts/packages/**/dist",
|
|
"clean:workspace": "pnpm turbo clean"
|
|
},
|
|
"packageManager": "pnpm@10.28.0",
|
|
"devDependencies": {
|
|
"@arethetypeswrong/cli": "catalog:",
|
|
"@changesets/cli": "^2.29.8",
|
|
"@composio/anthropic": "workspace:*",
|
|
"@composio/cli-local-tools": "workspace:*",
|
|
"@composio/core": "workspace:*",
|
|
"@composio/openai": "workspace:*",
|
|
"@types/bun": "^1.3.6",
|
|
"@types/node": "^22.15.18",
|
|
"@typescript/native-preview": "catalog:",
|
|
"@vitest/ui": "^3.1.4",
|
|
"eslint": "^9.25.1",
|
|
"globals": "^16.0.0",
|
|
"husky": "^9.1.7",
|
|
"lint-staged": "^15.5.1",
|
|
"prettier": "^3.5.3",
|
|
"publint": "catalog:",
|
|
"semver": "^7.7.2",
|
|
"tsdown": "catalog:",
|
|
"tsx": "catalog:",
|
|
"turbo": "^2.8.11",
|
|
"typescript-eslint": "^8.31.0",
|
|
"vitest": "catalog:",
|
|
"zod": "catalog:"
|
|
},
|
|
"lint-staged": {
|
|
"ts/packages/**/*.{ts,tsx}": [
|
|
"eslint --fix"
|
|
],
|
|
"ts/packages/**/*.{ts,tsx,js,jsx,json,md}": [
|
|
"prettier --write"
|
|
],
|
|
"python/**/*.py": [
|
|
"ruff check --fix --config python/config/ruff.toml",
|
|
"ruff format --config python/config/ruff.toml"
|
|
]
|
|
}
|
|
}
|