turbo.json
Rama main · réplica de lectura del repositorio original.
{
"$schema": "https://turbo.build/schema.json",
"futureFlags": {
"errorsOnlyShowHash": true,
"watchUsingTaskInputs": true
},
// Agent guidance is maintained in .agents/AGENTS.md; keep its root symlink.
"agentGuidance": false,
"noUpdateNotifier": true,
"cacheMaxSize": "7.5GB",
"globalDependencies": [".env"],
"globalEnv": [
"NEXT_PUBLIC_LANGFUSE_BLOB_EXPORT_CUTOFF",
"NEXT_PUBLIC_LANGFUSE_BLOB_EXPORTER_CUTOFF",
"NEXT_PUBLIC_LANGFUSE_ANALYTICS_EXPORTER_CUTOFF",
"CLICKHOUSE_BIN"
],
"envMode": "loose",
"tasks": {
"build": {
"dependsOn": ["db:generate", "^build"],
// NEXT_IGNORE_BUILD_ERRORS toggles the Next.js type check, so builds
// with and without it must not share a cache entry — a cached
// unchecked build would otherwise replay as a "type-checked" one.
"env": ["NEXT_IGNORE_BUILD_ERRORS"],
"outputs": ["dist/**", ".next/**", "!.next/cache/**", "!.next/dev/**"],
"cache": true,
"outputLogs": "errors-only"
},
"build:test": {
"dependsOn": ["db:generate", "^build"],
"env": ["NEXT_IGNORE_BUILD_ERRORS", "NEXT_DISABLE_BUILD_CACHE"],
"outputs": ["dist/**", ".next/**", "!.next/cache/**", "!.next/dev/**"],
"cache": true,
"outputLogs": "errors-only"
},
"start": {
"dependsOn": ["^start"],
// Launches long-running servers, so it produces no output to restore and
// a cache hit would be actively wrong: turbo replays the logs and returns
// without starting anything, leaving the ports unbound. Every other
// long-running task here (dev, dev:web, dev:worker, worker#dev) already
// opts out.
"cache": false
},
"db:migrate": {
"env": ["DATABASE_URL", "DIRECT_URL"],
"cache": false
},
"db:deploy": {
"env": ["DATABASE_URL", "DIRECT_URL"],
"cache": false
},
"db:reset": {
"cache": false
},
"db:push": {
"cache": false
},
"db:seed": {
"cache": false
},
"db:seed:examples": {
"cache": false
},
"dev": {
"cache": false,
"persistent": true,
"dependsOn": ["db:generate"]
},
"dev:worker": {
"cache": false,
"persistent": true,
"dependsOn": ["db:generate"]
},
"dev:web": {
"cache": false,
"persistent": true,
"dependsOn": ["db:generate"]
},
// Prisma generate writes client types into node_modules. Turbo cache hits
// only replay logs and do not restore those side effects on fresh CI runners.
"db:generate": {
"cache": false,
"dependsOn": ["^db:generate"]
},
"@langfuse/shared#db:generate": {
"inputs": ["prisma/schema.prisma"],
"cache": false,
"dependsOn": ["^db:generate"],
"outputLogs": "errors-only"
},
"@langfuse/shared#db:seed": {
"cache": false,
"outputLogs": "errors-only"
},
"@langfuse/shared#db:seed:examples": {
"cache": false,
"outputLogs": "errors-only"
},
"lint": {
"dependsOn": ["@repo/eslint-plugin#build", "^build"],
"cache": true,
"outputLogs": "errors-only",
"outputs": []
},
"web#lint": {
"dependsOn": ["@repo/eslint-plugin#build", "^build"],
"cache": true,
"outputLogs": "full",
"outputs": []
},
"worker#lint": {
"outputLogs": "full",
"dependsOn": [
"@langfuse/shared#build",
"@repo/oxlint-config#build",
"@repo/eslint-plugin#build",
"@repo/typescript-config#build"
]
},
"@langfuse/ee#lint": {
"dependsOn": ["@repo/eslint-plugin#build", "^build"],
"cache": true,
"outputLogs": "full",
"outputs": []
},
"@langfuse/shared#lint": {
"dependsOn": ["@repo/eslint-plugin#build", "^build"],
"cache": true,
"outputLogs": "full",
"outputs": []
},
"typecheck": {
"dependsOn": ["db:generate", "^build"],
"cache": true,
"outputLogs": "errors-only",
"outputs": []
},
"web#typecheck": {
"dependsOn": ["db:generate", "^build"],
"cache": true,
"outputLogs": "errors-only",
"outputs": [],
"inputs": [
"$TURBO_DEFAULT$",
"$TURBO_ROOT$/scripts/vitest/ci-reporter.ts"
]
},
"test-client": {
"dependsOn": ["db:generate", "^build"],
"cache": true
},
"test": {
// Tests consume compiled workspace packages. The edge must be explicit
// now that typechecks, lint, and tests can share one concurrent run.
"dependsOn": ["^build", "^test", "db:generate"],
"cache": true
},
// Vitest loads these files from outside each package. Selecting the task
// without hashing them could still replay a result from before they changed.
"web#test": {
"dependsOn": ["^build", "^test", "db:generate"],
"inputs": [
"$TURBO_DEFAULT$",
"$TURBO_ROOT$/scripts/vitest/ci-reporter.ts",
"$TURBO_ROOT$/fern/apis/server/definition/**",
"$TURBO_ROOT$/scripts/code-eval-runners/python/code_based_eval_handler.py",
"$TURBO_ROOT$/prettier.config.*",
"$TURBO_ROOT$/.prettierrc*",
"$TURBO_ROOT$/.prettierignore",
"$TURBO_ROOT$/.editorconfig",
"$TURBO_ROOT$/.env.test"
]
},
"web#test-client": {
"dependsOn": ["db:generate", "^build"],
"inputs": [
"$TURBO_DEFAULT$",
"$TURBO_ROOT$/scripts/vitest/ci-reporter.ts",
"$TURBO_ROOT$/.env.test"
]
},
"web#test-storybook": {
"dependsOn": ["db:generate", "^build"],
"inputs": [
"$TURBO_DEFAULT$",
"$TURBO_ROOT$/scripts/vitest/ci-reporter.ts",
"$TURBO_ROOT$/.env.test"
],
"cache": true
},
"@repo/eslint-plugin#build": {
"dependsOn": ["^build"],
"outputs": ["dist/**"],
"cache": true,
"outputLogs": "errors-only"
},
"@langfuse/icons#build": {
"dependsOn": [],
"outputs": ["dist/**"]
},
"@langfuse/icons#typecheck": {
"dependsOn": ["build"]
},
"@langfuse/icons#test": {
"dependsOn": ["build"]
},
"@repo/in-app-agent-sandbox-runtime#build:docker-image": {
"dependsOn": ["build"],
"inputs": ["Dockerfile", "package.json", "tsconfig.json"],
"outputs": [".local-image-built"],
"cache": true,
"outputLogs": "errors-only"
},
"@repo/in-app-agent-sandbox-runtime#test": {
"dependsOn": [],
"cache": true
},
"@repo/in-app-agent-sandbox-runtime#test:e2e": {
"dependsOn": ["build"],
"cache": false
},
// Worker tests load the compiled addon, which no install step produces.
"worker#test": {
"dependsOn": ["^build", "^test", "db:generate", "@langfuse/native#build"],
"inputs": [
"$TURBO_DEFAULT$",
"$TURBO_ROOT$/scripts/vitest/ci-reporter.ts"
]
},
"worker#dev": {
"cache": false,
"persistent": true,
// The worker loads the Rust addon at startup, so it must be compiled
// before tsx starts the process.
"dependsOn": ["db:generate", "@langfuse/native#build"]
},
// `napi build` compiles a host-specific binary and Cargo already caches
// incrementally in target/, so never replay this task from the turbo cache.
"@langfuse/native#build": {
"dependsOn": [],
"cache": false,
"outputs": []
}
}
}