mirror of
https://github.com/supabase/supabase.git
synced 2026-10-05 09:25:06 +03:00
* chore: bump `supabase` CLI * chore: stricter message types in `generate-v4.ts` * feat: tutorial eval https://www.braintrust.dev/docs/evaluation * feat: project ID for eval * refactor: `generateAssistantResponse` out of `handlePost` * refactor: generateAssistantResponse to lib/ai * feat: factuality eval with assistant response * chore: upgrade braintrust to v1.0.1 * chore: silence tsconfig warning * feat: assertion scorer * fix: aggregate tools across all steps * refactor: strict tool names, remove need for `as const` * refactor: generic tool name type in assertions * feat: transfer mocks from `feature/braintrust` * feat: LLM criteria assertion * feat: braintrust evals workflow * fix: BRAINTRUST_PROJECT_ID * feat: `sql_similar` assertion * fix: `OPENAI_API_KEY` in workflow env * feat: split AssertionScorer into separate scorers * feat: remove tutorial eval * feat: 20 minute CI timeout * feat: category in test case metadata * feat: score with gpt-5 * refactor: dataset to own file, colocate scorers * feat: "gpt-5.2-2025-12-11" for llm as a judge * feat: SQL syntax scorer with `libpg-query` * feat: `evals:setup` and `evals:run` scripts * feat: `evals:setup` in CI * feat: human readable scorer names * chore: rename to "SQL Validity" * feat: add 2 "sql_generation" test cases * feat: update requiredTools in test cases * chore: ignore Cursor MCP config * feat: "Conciseness" score * feat: "Completeness" scorer * fix: generate-v4 test mocks * feat: serialize "steps" for scorer inputs * updated node mem options for typecheck * updated runner * remove ram update as actions handle this * feat: read `BRAINTRUST_PROJECT_ID` from secrets * feat: score helpfulness, remove old scorers * feat: separate `evals:run` and `evals:upload` scripts * feat: passthrough entire classifier result * feat: use live `search_docs` impl, store docs result in metadata * feat: reduce classifier options * feat: filter workflow by `run-evals` PR label or `master` branch * chore: cleanup stubbed mock tools * fix: checkout actual branch with `ref:` * fix: capture search_docs results from all content parts * feat: simplify sql syntax score calculation * feat: use AI SDK's UI message validator * docs: justification for relative `extends` * fix: cleanup leftover validatedMessages * doc: note mock token isn't secret for snyk * fix: mock ui message to pass validation * feat: revert ignoring Cursor MCP config Using `.git/info/exclude` instead until we have an opinion on this * feat: add "tsconfig" as shared-data devDependency, revert relative path in tsconfig * refactor: tool call parsing into function * Update apps/studio/evals/assistant.eval.ts Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * refactor: organize mock schemas and tool factories --------- Co-authored-by: Ali Waseem <waseema393@gmail.com> Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
255 lines
7.9 KiB
JSON
255 lines
7.9 KiB
JSON
{
|
|
"$schema": "https://turbo.build/schema.json",
|
|
"ui": "stream",
|
|
"tasks": {
|
|
"build": {
|
|
"dependsOn": ["^build"],
|
|
"outputs": ["dist/**", ".next/**"]
|
|
},
|
|
"cms#build": {
|
|
"dependsOn": ["^build"],
|
|
"env": [
|
|
"BLOG_APP_URL",
|
|
"CRON_SECRET",
|
|
"DATABASE_URI",
|
|
"NEXT_PUBLIC_VERCEL_BRANCH_URL",
|
|
"NEXT_PUBLIC_SERVER_URL",
|
|
"NEXT_PUBLIC_VERCEL_ENV",
|
|
"NODE_ENV",
|
|
"PAYLOAD_SECRET",
|
|
"PREVIEW_SECRET",
|
|
"S3_BUCKET",
|
|
"S3_ACCESS_KEY_ID",
|
|
"S3_SECRET_ACCESS_KEY",
|
|
"S3_REGION",
|
|
"S3_ENDPOINT",
|
|
"VERCEL_PROJECT_PRODUCTION_URL"
|
|
],
|
|
"outputs": [".next/**", "!.next/cache/**"]
|
|
},
|
|
"design-system#build": {
|
|
"dependsOn": ["^build"],
|
|
"env": [
|
|
"NEXT_PUBLIC_BASE_PATH",
|
|
"NEXT_PUBLIC_APP_URL",
|
|
// These envs are used in the packages
|
|
"NEXT_PUBLIC_STORAGE_KEY",
|
|
"NEXT_PUBLIC_AUTH_DEBUG_KEY",
|
|
"NEXT_PUBLIC_AUTH_PERSISTED_KEY",
|
|
"NEXT_PUBLIC_AUTH_NAVIGATOR_LOCK_KEY",
|
|
"NEXT_PUBLIC_AUTH_DETECT_SESSION_IN_URL",
|
|
"NEXT_PUBLIC_GOTRUE_URL",
|
|
"NEXT_PUBLIC_SUPABASE_ANON_KEY"
|
|
],
|
|
"outputs": [".next/**", "!.next/cache/**", ".contentlayer/**"]
|
|
},
|
|
"studio#build": {
|
|
"dependsOn": ["^build"],
|
|
"env": [
|
|
"ANALYZE",
|
|
"NEXT_PUBLIC_SUPPORT_API_URL",
|
|
"NEXT_PUBLIC_CONTENT_API_URL",
|
|
"NEXT_PUBLIC_BASE_PATH",
|
|
"NEXT_PUBLIC_STRIPE_PUBLIC_KEY",
|
|
"NEXT_PUBLIC_SUPPORT_ANON_KEY",
|
|
"NEXT_PUBLIC_ENVIRONMENT",
|
|
"NEXT_PUBLIC_IS_PLATFORM",
|
|
"NEXT_PUBLIC_SITE_URL",
|
|
"NEXT_PUBLIC_API_URL",
|
|
"NEXT_PUBLIC_DOCS_URL",
|
|
"NEXT_PUBLIC_CONFIGCAT_SDK_KEY",
|
|
"NEXT_PUBLIC_CONFIGCAT_PROXY_URL",
|
|
"NEXT_PUBLIC_HCAPTCHA_SITE_KEY",
|
|
"NEXT_PUBLIC_SUPABASE_URL",
|
|
"NEXT_PUBLIC_SUPABASE_ANON_KEY",
|
|
"NEXT_PUBLIC_NODE_ENV",
|
|
"NEXT_PUBLIC_GOTRUE_URL",
|
|
"NEXT_PUBLIC_VERCEL_BRANCH_URL",
|
|
"NEXT_PUBLIC_GOOGLE_MAPS_KEY",
|
|
"NEXT_RUNTIME",
|
|
"NIMBUS_PROD_PROJECTS_URL",
|
|
"NIMBUS_PROD_PROJECTS_URL_WS",
|
|
"NODE_ENV",
|
|
"SUPABASE_URL",
|
|
"VERCEL",
|
|
"VERCEL_ENV",
|
|
"MAINTENANCE_MODE",
|
|
// These envs are used in the packages
|
|
"NEXT_PUBLIC_STORAGE_KEY",
|
|
"NEXT_PUBLIC_AUTH_DEBUG_KEY",
|
|
"NEXT_PUBLIC_AUTH_PERSISTED_KEY",
|
|
"NEXT_PUBLIC_AUTH_NAVIGATOR_LOCK_KEY",
|
|
"NEXT_PUBLIC_AUTH_DETECT_SESSION_IN_URL",
|
|
"NEXT_PUBLIC_GOOGLE_TAG_MANAGER_ID",
|
|
"NEXT_PUBLIC_VERCEL_ENV",
|
|
"NEXT_PUBLIC_USERCENTRICS_RULESET_ID",
|
|
"NEXT_PUBLIC_MCP_URL",
|
|
"NEXT_PUBLIC_IS_NIMBUS",
|
|
"NEXT_PUBLIC_ONGOING_INCIDENT",
|
|
// These envs are technically passthrough env vars because they're only used on the server side of Nextjs
|
|
"PLATFORM_PG_META_URL",
|
|
"STUDIO_PG_META_URL",
|
|
"PG_META_CRYPTO_KEY",
|
|
"POSTGRES_PASSWORD",
|
|
"POSTGRES_HOST",
|
|
"POSTGRES_USER_READ_WRITE",
|
|
"POSTGRES_USER_READ_ONLY",
|
|
"POSTGRES_DB",
|
|
"POSTGRES_PORT",
|
|
"READ_ONLY_URL",
|
|
"READ_ONLY_API_KEY",
|
|
"SUPABASE_SERVICE_KEY",
|
|
"SUPABASE_ANON_KEY",
|
|
"SUPABASE_PUBLIC_URL",
|
|
"DEFAULT_PROJECT_NAME",
|
|
"DEFAULT_ORGANIZATION_NAME",
|
|
"OPENAI_API_KEY",
|
|
"BRAINTRUST_API_KEY",
|
|
"BRAINTRUST_PROJECT_ID",
|
|
"AUTH_JWT_SECRET",
|
|
"LOGFLARE_API_KEY",
|
|
"LOGFLARE_PUBLIC_ACCESS_TOKEN",
|
|
"LOGFLARE_PRIVATE_ACCESS_TOKEN",
|
|
"LOGFLARE_URL",
|
|
"SENTRY_ORG",
|
|
"SENTRY_PROJECT",
|
|
"SENTRY_AUTH_TOKEN",
|
|
"NEXT_PUBLIC_SENTRY_DSN",
|
|
"AWS_BEDROCK_PROFILE",
|
|
"AWS_BEDROCK_ROLE_ARN",
|
|
"AWS_ACCESS_KEY_ID",
|
|
"AWS_SECRET_ACCESS_KEY",
|
|
"FORCE_ASSET_CDN",
|
|
"ASSET_CDN_S3_ENDPOINT",
|
|
"SITE_NAME",
|
|
"VERCEL_URL",
|
|
"IS_THROTTLED",
|
|
"AI_PRO_MODEL",
|
|
"AI_NORMAL_MODEL",
|
|
"SUPPORT_SUPABASE_SECRET_KEY",
|
|
"STATUSPAGE_API_KEY",
|
|
"STATUSPAGE_PAGE_ID"
|
|
],
|
|
"passThroughEnv": ["CURRENT_CLI_VERSION", "VERCEL_GIT_COMMIT_SHA"],
|
|
"outputs": [".next/**", "!.next/cache/**"]
|
|
},
|
|
"www#build": {
|
|
"dependsOn": ["^build"],
|
|
"env": [
|
|
"ANALYZE",
|
|
"CI",
|
|
"CF_ACCESS_CLIENT_ID",
|
|
"CF_ACCESS_CLIENT_SECRET",
|
|
"CMS_API_KEY",
|
|
"CMS_PREVIEW_SECRET",
|
|
"CMS_SITE_ORIGIN",
|
|
"NEXT_PUBLIC_MISC_USE_URL",
|
|
"NEXT_PUBLIC_MISC_USE_ANON_KEY",
|
|
"NEXT_PUBLIC_STUDIO_URL",
|
|
"NEXT_PUBLIC_DOCS_URL",
|
|
"NEXT_PUBLIC_REFERENCE_DOCS_URL",
|
|
"NEXT_PUBLIC_UI_LIBRARY_URL",
|
|
"NEXT_PUBLIC_SUPABASE_URL",
|
|
"NEXT_PUBLIC_SUPABASE_ANON_KEY",
|
|
"NEXT_PUBLIC_VERCEL_ENV",
|
|
"NEXT_PUBLIC_VERCEL_BRANCH_URL",
|
|
"NEXT_PUBLIC_API_URL",
|
|
"NEXT_PUBLIC_HCAPTCHA_SITE_KEY",
|
|
"HCAPTCHA_SECRET_KEY",
|
|
"NODE_ENV",
|
|
"NEXT_PUBLIC_SENTRY_DSN",
|
|
"NEXT_PUBLIC_SURVEY_SUPABASE_URL",
|
|
"NEXT_PUBLIC_SURVEY_SUPABASE_ANON_KEY",
|
|
"VERCEL",
|
|
"VERCEL_ENV",
|
|
"VERCEL_GIT_COMMIT_SHA",
|
|
// These envs are used in the packages
|
|
"NEXT_PUBLIC_STORAGE_KEY",
|
|
"NEXT_PUBLIC_AUTH_DEBUG_KEY",
|
|
"NEXT_PUBLIC_AUTH_PERSISTED_KEY",
|
|
"NEXT_PUBLIC_AUTH_NAVIGATOR_LOCK_KEY",
|
|
"NEXT_PUBLIC_GOOGLE_TAG_MANAGER_ID",
|
|
"NEXT_PUBLIC_IS_PLATFORM",
|
|
"NEXT_PUBLIC_AUTH_DETECT_SESSION_IN_URL",
|
|
"NEXT_PUBLIC_GOTRUE_URL",
|
|
"NEXT_PUBLIC_BASE_PATH",
|
|
"NEXT_PUBLIC_EXAMPLES_SUPABASE_ANON_KEY",
|
|
"NEXT_PUBLIC_EXAMPLES_SUPABASE_URL",
|
|
"NEXT_PUBLIC_USERCENTRICS_RULESET_ID",
|
|
// These envs are technically passthrough env vars because they're only used on the server side of Nextjs
|
|
"LIVE_SUPABASE_COM_SERVICE_ROLE_KEY",
|
|
"GITHUB_CHANGELOG_APP_ID",
|
|
"GITHUB_CHANGELOG_APP_INSTALLATION_ID",
|
|
"GITHUB_CHANGELOG_APP_REST_KEY",
|
|
"GITHUB_CHANGELOG_APP_PRIVATE_KEY",
|
|
"NEXT_PUBLIC_EMAIL_ABUSE_URL",
|
|
"EMAIL_ABUSE_SERVICE_KEY",
|
|
"HUBSPOT_PORTAL_ID",
|
|
"HUBSPOT_ENTERPRISE_FORM_GUID",
|
|
"HUBSPOT_PARTNERSHIP_FORM_GUID",
|
|
"OPENAI_API_KEY",
|
|
"EMAIL_REPORT_SLACK_WEBHOOK",
|
|
"npm_lifecycle_event",
|
|
"AWS_ACCESS_KEY_ID",
|
|
"AWS_SECRET_ACCESS_KEY",
|
|
"FORCE_ASSET_CDN",
|
|
"ASSET_CDN_S3_ENDPOINT",
|
|
"SITE_NAME",
|
|
"LUMA_API_KEY",
|
|
"NEXT_RUNTIME",
|
|
// These env vars are used by some community and marketing integrations
|
|
"SENTRY_DSN_COMMUNITY",
|
|
"NOTION_SUPASQUAD_API_KEY",
|
|
"NOTION_SUPASQUAD_APPLICATIONS_DB_ID",
|
|
"NEXT_PUBLIC_SUPASQUAD_APPLICATION_FORM_URL",
|
|
"CUSTOMERIO_SITE_ID",
|
|
"CUSTOMERIO_API_KEY",
|
|
"CUSTOMERIO_APP_API_KEY"
|
|
],
|
|
"outputs": [".next/**", "!.next/cache/**", ".contentlayer/**"]
|
|
},
|
|
"ui-library#build": {
|
|
"dependsOn": ["^build"],
|
|
"env": [
|
|
"NEXT_PUBLIC_BASE_PATH",
|
|
"NEXT_PUBLIC_APP_URL",
|
|
"NEXT_PUBLIC_VERCEL_TARGET_ENV",
|
|
"NEXT_PUBLIC_VERCEL_BRANCH_URL",
|
|
"NEXT_PUBLIC_API_URL",
|
|
"NODE_ENV",
|
|
"HIDE_TAILWIND_INDICATOR",
|
|
// These envs are used in the packages
|
|
"NEXT_PUBLIC_STORAGE_KEY",
|
|
"NEXT_PUBLIC_AUTH_DEBUG_KEY",
|
|
"NEXT_PUBLIC_AUTH_PERSISTED_KEY",
|
|
"NEXT_PUBLIC_AUTH_NAVIGATOR_LOCK_KEY",
|
|
"NEXT_PUBLIC_AUTH_DETECT_SESSION_IN_URL",
|
|
"NEXT_PUBLIC_GOOGLE_TAG_MANAGER_ID",
|
|
"NEXT_PUBLIC_GOTRUE_URL",
|
|
"NEXT_PUBLIC_SUPABASE_ANON_KEY",
|
|
"NEXT_PUBLIC_USERCENTRICS_RULESET_ID",
|
|
"SUPABASE_MANAGEMENT_API_TOKEN",
|
|
"OPENAI_API_KEY"
|
|
],
|
|
"outputs": [".next/**", "!.next/cache/**", ".contentlayer/**"]
|
|
},
|
|
"lint": {
|
|
"outputs": []
|
|
},
|
|
"clean": {
|
|
"outputs": [],
|
|
"cache": false
|
|
},
|
|
"dev": {
|
|
"cache": false
|
|
},
|
|
"test": {
|
|
"cache": false
|
|
},
|
|
"typecheck": {
|
|
"dependsOn": ["^typecheck"],
|
|
"outputs": []
|
|
}
|
|
}
|
|
}
|