mirror of
https://github.com/ComposioHQ/composio.git
synced 2026-09-22 11:46:35 +08:00
b0a02c9693
This PR: - makes example typecheck, lint, and Workers dry-runs discover packages by script presence instead of a Mastra-only filter - runs the nightly staging suite as a provider matrix, starting with Mastra and failing when a matrix package is missing - keeps direct and Tool Router agents explicit while sharing the Tool Router agent between Node.js and Cloudflare Workers - keeps root ESLint rules in Turbo's lint cache key and documents both Worker secrets ## Testing - `pnpm run typecheck` - `pnpm run typecheck:examples` - `./node_modules/.bin/eslint ts/packages --ext .ts,.tsx` (0 errors; 72 existing warnings) - `pnpm run lint:examples` - `pnpm exec turbo cf:dry-run --filter='./ts/examples/*'` - confirmed Turbo includes `eslint.config.mjs` in the Mastra lint task inputs - confirmed a missing provider package fails instead of silently passing the nightly smoke step ## Post-Deploy Monitoring & Validation - after merge, dispatch `ts.examples-nightly.yml` on `next` and confirm the `mastra examples against staging` matrix leg runs smoke, direct-tools, and Tool Router successfully - healthy signal: smoke reports wrapped tools and both agent steps return non-empty output - failure signal: workflow logs contain `SMOKE FAIL`, `Agent returned empty output`, `No projects matched`, or a secret preflight error; revert this PR if the foundation gate begins false-passing or blocking unrelated example work - validation window and owner: the first post-merge dispatch plus the next scheduled 06:00 UTC nightly, owned by the TypeScript examples maintainers --- [](https://github.com/EveryInc/compound-engineering-plugin) 
102 lines
3.1 KiB
JSON
102 lines
3.1 KiB
JSON
{
|
|
"$schema": "https://turbo.build/schema.json",
|
|
// pnpm is installed and enforced by mise (`npm:pnpm` in mise.toml). The root
|
|
// `packageManager` field exists for tools like Turbo that need explicit
|
|
// workspace package-manager metadata; keep it aligned with mise.toml.
|
|
"dangerouslyDisablePackageManagerCheck": true,
|
|
// The toolchain (node, bun, pnpm, tsgo host) is pinned by mise, not by
|
|
// package.json/lockfile, so toolchain bumps must invalidate every task hash
|
|
// or restored CI caches would skip the very runs meant to validate them.
|
|
"globalDependencies": ["mise.toml", "mise.lock"],
|
|
"tasks": {
|
|
"build": {
|
|
"dependsOn": ["^build"],
|
|
"inputs": [
|
|
"$TURBO_DEFAULT$",
|
|
"tsdown.config.ts",
|
|
// for core
|
|
"../../../tsdown.config.base.ts",
|
|
"../../../tsconfig.base.json",
|
|
// for providers
|
|
"../../../../tsdown.config.base.ts",
|
|
"../../../../tsconfig.base.json"
|
|
],
|
|
"outputs": ["dist/"]
|
|
},
|
|
"test": {
|
|
"dependsOn": ["^build"]
|
|
},
|
|
"test:e2e": {
|
|
"dependsOn": ["^build"],
|
|
"env": ["ANTHROPIC_API_KEY", "COMPOSIO_API_KEY", "COMPOSIO_BASE_URL", "COMPOSIO_USER_API_KEY", "OPENAI_API_KEY"],
|
|
"cache": false
|
|
},
|
|
"test:e2e:node": {
|
|
"dependsOn": ["^build"],
|
|
"env": ["ANTHROPIC_API_KEY", "COMPOSIO_API_KEY", "COMPOSIO_BASE_URL", "COMPOSIO_USER_API_KEY", "COMPOSIO_E2E_NODE_VERSION", "OPENAI_API_KEY"],
|
|
"cache": false
|
|
},
|
|
"test:e2e:deno": {
|
|
"dependsOn": ["^build"],
|
|
"env": ["COMPOSIO_API_KEY", "COMPOSIO_BASE_URL", "COMPOSIO_USER_API_KEY", "COMPOSIO_E2E_DENO_VERSION", "OPENAI_API_KEY"],
|
|
"cache": false
|
|
},
|
|
"test:e2e:cli": {
|
|
"dependsOn": ["^build"],
|
|
"env": ["COMPOSIO_API_KEY", "COMPOSIO_BASE_URL", "COMPOSIO_USER_API_KEY", "COMPOSIO_E2E_CLI_VERSION", "OPENAI_API_KEY"],
|
|
"cache": false
|
|
},
|
|
"test:e2e:cloudflare": {
|
|
"dependsOn": ["^build"],
|
|
"env": ["COMPOSIO_API_KEY", "COMPOSIO_BASE_URL", "COMPOSIO_USER_API_KEY", "OPENAI_API_KEY"],
|
|
"cache": false
|
|
},
|
|
"install:binary": {
|
|
"dependsOn": ["build:binary"],
|
|
"cache": false
|
|
},
|
|
"clean": {
|
|
"cache": false
|
|
},
|
|
"typecheck": {
|
|
"dependsOn": ["^build"],
|
|
// package tsconfigs extend the root base config, which lives outside the
|
|
// package dirs and is therefore not part of $TURBO_DEFAULT$
|
|
"inputs": [
|
|
"$TURBO_DEFAULT$",
|
|
// for core
|
|
"../../../tsconfig.base.json",
|
|
// for providers
|
|
"../../../../tsconfig.base.json"
|
|
]
|
|
},
|
|
"typecheck:tsc": {
|
|
"dependsOn": ["^build"],
|
|
"cache": false
|
|
},
|
|
"lint": {
|
|
"inputs": ["$TURBO_DEFAULT$", "../../../eslint.config.mjs"]
|
|
},
|
|
"cf:dry-run": {
|
|
"dependsOn": ["^build"]
|
|
},
|
|
"//#clean": {
|
|
"cache": false
|
|
},
|
|
"record": {
|
|
"dependsOn": ["^build"],
|
|
"inputs": [
|
|
"src/**",
|
|
"scripts/record.ts",
|
|
"recordings/recordings.yaml"
|
|
],
|
|
"outputs": [
|
|
"recordings/tapes/**",
|
|
"recordings/svgs/**",
|
|
"recordings/ascii/**"
|
|
],
|
|
"env": ["COMPOSIO_API_KEY"]
|
|
}
|
|
}
|
|
}
|