package.json
Rama main · réplica de lectura del repositorio original.
{
"name": "review-router",
"private": true,
"engines": {
"node": ">=24.21.0 <25 || >=26.10.0 <27"
},
"bin": {
"reviewrouter": "./apps/api/dist/reviewrouter-operator-cli.js"
},
"type": "module",
"packageManager": "pnpm@11.28.7",
"scripts": {
"dev": "node scripts/run-with-env.mjs turbo run dev --parallel",
"web:dev": "node scripts/run-with-env.mjs pnpm --filter @reviewrouter/web dev",
"api:dev": "node scripts/run-with-env.mjs pnpm --filter @reviewrouter/api dev",
"worker:dev": "node scripts/run-with-env.mjs pnpm --filter @reviewrouter/worker dev",
"web:start": "pnpm --filter @reviewrouter/web exec next start",
"build": "node scripts/check-conversation-source-stamp.ts --check && node scripts/check-conversation-release-verifier.ts --check && turbo run build && node scripts/rewrite-dist-esm-imports.mjs",
"protocol:bootstrap": "node scripts/check-review-action-v2-protocol.mjs --bootstrap-only",
"protocol:generate": "node --conditions=production scripts/generate-review-action-v2-protocol.mjs",
"protocol:check": "node scripts/check-review-action-v2-protocol.mjs",
"protocol:export-public": "node scripts/export-public-review-action-v2-contract.mjs",
"protocol:release-manifest": "node scripts/generate-public-review-action-v2-release-manifest.mjs",
"protocol:release-manifest:check": "node scripts/check-public-review-action-v2-release-manifest.mjs",
"protocol:handoff:test": "vitest run scripts/review-action-v2-release-manifests.test.ts scripts/export-public-review-action-v2-contract.test.ts",
"skills:architecture": "node scripts/review-skills-tooling/check.ts",
"skills:tooling:prepare": "npx --yes pnpm@11.25.0 --dir scripts/review-skills-tooling install --ignore-scripts --frozen-lockfile",
"skills:test": "vitest run packages/shared/src/review-skills-contract.test.ts packages/features/review-skills/src/tests scripts/review-skills-runtime-grants.test.ts scripts/review-skills-runtime-acl.postgres.test.ts",
"typecheck": "pnpm --filter @reviewrouter/shared build && turbo run typecheck && tsc --noEmit -p tsconfig.spikes.json && tsc --noEmit -p tsconfig.one-shot-test-handoff.json && node scripts/local-checks/compiler-cli.ts --legacy --noEmit -p tsconfig.tooling.json",
"test": "vitest run && node --import tsx --test scripts/conversation-evals/eval-risk.test.ts",
"lint": "eslint .",
"format:check": "prettier --check .",
"postinstall": "node scripts/prepare-pinned-subscription-runtime.ts && pnpm db:generate && pnpm compiler:prepare",
"local:bootstrap": "bash scripts/bootstrap-local.sh",
"local:check": "bash scripts/check-local-readiness.sh",
"hosted:check": "node scripts/check-hosted-readiness.mjs",
"hosted:check:smoke": "node scripts/check-hosted-readiness-smoke.mjs",
"hosted:web:check": "node scripts/check-hosted-web.mjs",
"self-hosted:check": "node scripts/check-self-hosted-readiness.mjs && node scripts/check-self-hosted-compose-contract.mjs",
"self-hosted:install": "bash scripts/install-self-hosted.sh",
"self-hosted:install:check": "node scripts/local-checks/compiler-cli.ts --native -p packages/shared/tsconfig.build.json && node scripts/rewrite-dist-esm-imports.mjs && node scripts/local-checks/compiler-cli.ts --native --noEmit -p deploy/self-hosted/tsconfig.install.json && node scripts/local-checks/compiler-cli.ts --native --noEmit -p scripts/self-hosted-e2e/tsconfig.memory.json && node --test deploy/self-hosted/install*.test.ts && bash -n scripts/install-self-hosted.sh && node deploy/self-hosted/install.ts --help",
"self-hosted:check:smoke": "node scripts/check-self-hosted-readiness-smoke.mjs && node scripts/check-self-hosted-compose-contract.mjs",
"self-hosted:compose:check": "node scripts/check-self-hosted-compose-contract.mjs",
"self-hosted:e2e": "node scripts/run-self-hosted-e2e.mjs",
"hosted-pool:e2e": "vitest run scripts/hosted-pool-e2e/hosted-pool-local.e2e.test.ts",
"hosted-pool:migration-rehearsal": "node --import tsx scripts/run-hosted-pool-postgres-e2e.mjs --migration-only",
"hosted-pool:e2e:postgres": "node --import tsx scripts/run-hosted-pool-postgres-e2e.mjs --postgres-only",
"hosted-pool:production-contract": "tsc --noEmit -p tsconfig.hosted-pool-operations.json && vitest run scripts/verify-hosted-pool-action-release.test.ts scripts/hosted-pool-production-control.test.ts scripts/hosted-pool-production-github-dispatch.test.ts scripts/hosted-pool-production-evidence.test.ts scripts/hosted-pool-production-rollback-verification.test.ts scripts/run-hosted-pool-production-canary.test.ts scripts/hosted-pool-canary-phase-recovery.test.ts scripts/deploy-render-hosted-beta.test.ts packages/platform/config/src/index.test.ts packages/platform/config/src/hosted-pool-action-release-catalog.test.ts packages/platform/config/src/hosted-codex-canary-config.test.ts apps/api/src/hosted-codex-canary-fault-plan.test.ts apps/api/src/hosted-codex-canary-fault-composition.test.ts apps/api/src/hosted-codex-relay-composition.test.ts apps/api/src/hosted-pool-action-release-provision.test.ts packages/features/hosted-account-pool/src/tests/hosted-codex-quota-failover.test.ts",
"hosted-pool:action-release:verify": "node scripts/verify-hosted-pool-action-release.mjs",
"provider-profiles:migrate": "tsx scripts/migrate-provider-profiles.ts",
"provider-setup:visual": "tsx scripts/provider-setup-visual/run.ts",
"provider-setup:visual:seed": "tsx scripts/provider-setup-visual/seed.ts",
"hosted-pool:control": "tsx scripts/hosted-pool-production-control.ts",
"hosted-pool:test-handoff:contract": "tsc --noEmit -p tsconfig.one-shot-test-handoff.json && vitest run scripts/one-shot-test-handoff/contiguous-launch.test.mts",
"hosted-pool:canary": "tsx scripts/run-hosted-pool-production-canary.ts",
"hosted-pool:restore": "tsx scripts/hosted-pool-restore-operation.ts",
"hosted-pool:certification-evidence": "tsx scripts/hosted-pool-certification-evidence.ts",
"hosted-pool:verify": "pnpm hosted-pool:production-contract && vitest run scripts/hosted-pool-certification-evidence.test.ts scripts/hosted-pool-certification-workflow.test.ts scripts/hosted-pool-e2e/hosted-pool-local.e2e.test.ts packages/platform/db/src/hosted-codex-r57-remediation-migration.test.ts packages/features/hosted-account-pool/src/tests/hosted-account-pool.test.ts packages/features/hosted-account-pool/src/tests/hosted-codex-relay-routes.test.ts packages/features/hosted-account-pool/src/tests/hosted-codex-quota-failover.test.ts packages/features/hosted-account-pool/src/tests/prisma-hosted-account-pool-adapters.test.ts packages/features/hosted-account-pool/src/tests/credential-envelope-vault.test.ts packages/features/hosted-account-pool/src/infrastructure/crypto/aws-kms-hosted-codex-keyring.test.ts packages/features/hosted-account-pool/src/infrastructure/crypto/hosted-codex-keyring.test.ts packages/features/hosted-account-pool/src/tests/hosted-codex-runtime-id-generator.test.ts packages/features/codex-oauth-rotating/src/tests/hosted-codex-relay.test.ts apps/api/src/hosted-codex-restore-permit.test.ts apps/api/src/hosted-codex-grant-composition.test.ts apps/api/src/hosted-codex-relay-composition.test.ts apps/api/src/hosted-review-prelease-gate.test.ts",
"public-beta:check:smoke": "node scripts/check-public-beta-readiness-smoke.mjs",
"beta:check": "bash scripts/check-beta-readiness.sh",
"web:smoke": "node scripts/run-with-env.mjs node scripts/check-web-pages.mjs",
"db:generate": "node scripts/run-with-env.mjs pnpm --filter @reviewrouter/platform-db db:generate",
"db:generate:offline": "REVIEW_ROUTER_REQUIRE_OFFLINE_PRISMA=1 node scripts/generate-prisma-offline.mjs",
"db:push": "node scripts/run-with-env.mjs pnpm --filter @reviewrouter/platform-db db:push",
"db:migrate": "node scripts/run-with-env.mjs pnpm --filter @reviewrouter/platform-db db:migrate",
"spike:github:list-installations": "tsx spikes/github-oidc/src/list-installations.ts",
"spike:github:sync-repositories": "tsx spikes/github-oidc/src/sync-installation-repositories.ts",
"spike:github:provision-workflow": "tsx spikes/github-oidc/src/provision-workflow.ts",
"spike:github:fresh-repo:e2e": "tsx spikes/github-oidc/src/fresh-repository-e2e.ts",
"spike:github:codex-rotating:e2e": "tsx spikes/github-oidc/src/codex-rotating-live-e2e.ts",
"spike:github:create-setup-pr": "tsx spikes/github-oidc/src/create-setup-pr.ts",
"spike:action:e2e": "tsx spikes/github-oidc/src/action-control-plane-e2e.ts",
"spike:review-config:e2e": "tsx spikes/github-oidc/src/review-config-override-e2e.ts",
"spike:support-diagnostics:e2e": "tsx spikes/github-oidc/src/support-diagnostics-e2e.ts",
"spike:auth-workspace:e2e": "tsx spikes/github-oidc/src/auth-workspace-access-e2e.ts",
"spike:webhook-lifecycle:e2e": "tsx spikes/github-oidc/src/webhook-lifecycle-e2e.ts",
"spike:server": "tsx spikes/github-oidc/src/server.ts",
"spike:test": "vitest run spikes/github-oidc/tests",
"db:migrate:deploy": "node scripts/run-with-env.mjs pnpm --filter @reviewrouter/platform-db db:migrate:deploy",
"db:migrate:status": "node scripts/run-with-env.mjs pnpm --filter @reviewrouter/platform-db db:migrate:status",
"db:migrate:smoke": "node scripts/run-with-env.mjs node scripts/check-migration-smoke.mjs",
"outbox:fencing:cutover": "node scripts/run-with-env.mjs node scripts/activate-outbox-fencing.mjs",
"review-provider-scope-concurrency": "node scripts/run-with-env.mjs node scripts/manage-review-provider-scope-concurrency.mjs",
"review-v2:migrate": "node scripts/run-with-env.mjs node scripts/review-v2-migrate.mjs",
"review-v2:migration-rehearsal": "node scripts/run-with-env.mjs node scripts/check-review-v2-migration-rehearsal.mjs",
"review-investigation:migration-rehearsal": "REVIEW_ROUTER_REVIEW_INVESTIGATION_MIGRATION_REHEARSAL=1 node scripts/run-with-env.mjs vitest run scripts/review-investigation-mixed-version-migration.test.ts",
"codex-rotating:migration-rehearsal": "node --import tsx scripts/check-codex-rotating-migration-rehearsal.mjs",
"codex-rotating:migration89-boundary": "node --import tsx scripts/check-codex-rotating-migration-rehearsal.mjs --migration89-boundary-only",
"codex-rotating:migration-preflight": "node --import tsx scripts/preflight-codex-rotating-migration-history.ts",
"codex-rotating:role-bootstrap": "node --import tsx scripts/run-codex-rotating-role-bootstrap.mjs",
"codex-rotating:release-migration": "node --import tsx scripts/run-codex-rotating-release-migration.mjs",
"codex-rotating:installer-portability": "vitest run apps/web/src/server/codex-rotating-seed-script.test.ts",
"codex-rotating:loopback-proof": "REVIEW_ROUTER_CODEX_ROTATING_WIRE_PROOF=1 vitest run apps/web/src/server/codex-rotating-one-shot-curl.real.test.ts apps/api/src/github/one-shot-github-secret-put.protocol.test.ts apps/api/src/github/one-shot-github-secret-put.real.test.ts apps/api/src/github/codex-rotating-integrated-fault.real.test.ts",
"codex-rotating:rollout-proof": "vitest run scripts/verify-codex-rotating-rollout.test.ts",
"release-rollout:rehearsal": "node --import tsx scripts/rehearse-private-pg17-rollout.mjs",
"release-rollout:promote-activation-catalog-policy": "node --import tsx scripts/promote-private-pg17-activation-catalog-policy.mjs",
"release-authority:fresh-install": "node scripts/install-release-authority-db.mjs --fresh-install",
"release-authority:upgrade": "node scripts/install-release-authority-db.mjs --incremental-upgrade",
"release-rollout:evidence:assemble": "node --import tsx scripts/assemble-private-pg17-trusted-evidence.ts",
"release-rollout:evidence:verify": "node --import tsx scripts/verify-private-pg17-trusted-evidence.ts",
"codex-rotating:production-writer-observation": "node --import tsx scripts/capture-codex-rotating-production-writer.mjs",
"codex-rotating:secret-write-boundary": "node scripts/check-codex-secret-write-boundary.mjs",
"review-v2:e2e": "REVIEW_ROUTER_REVIEW_V2_E2E=1 vitest run scripts/review-action-v2-production-e2e/review-action-v2-production.e2e.test.ts",
"review-investigation:e2e": "bash scripts/review-investigation-production-e2e/support/run-ci.fixture.sh",
"review-investigation:paired-e2e": "REVIEW_ROUTER_REVIEW_INVESTIGATION_PAIRED_E2E=1 vitest run --no-file-parallelism scripts/review-investigation-paired-e2e/review-investigation-paired.e2e.test.ts scripts/review-investigation-paired-e2e/openrouter-direct-paired.e2e.test.ts scripts/review-investigation-paired-e2e/pr-description-paired.e2e.test.ts scripts/review-investigation-paired-e2e/review-banner-comparison-paired.e2e.test.ts scripts/review-investigation-paired-e2e/lifecycle-verification-paired.e2e.test.ts apps/api/src/gateway-multi-reviewers-paired.e2e.test.ts",
"review-v2:admin": "node scripts/run-with-env.mjs node --conditions=production apps/api/dist/review-action-v2-operator-cli.js",
"reviewrouter": "node scripts/run-with-env.mjs node --conditions=production apps/api/dist/reviewrouter-operator-cli.js",
"reviewrouter:install": "node scripts/install-reviewrouter-cli.mjs",
"db:restore:smoke": "node scripts/run-with-env.mjs node scripts/check-backup-restore-smoke.mjs",
"spike:outbox-maintenance:e2e": "tsx spikes/github-oidc/src/outbox-maintenance-e2e.ts",
"spike:repo-health:e2e": "tsx spikes/github-oidc/src/repo-health-workflow-e2e.ts",
"spike:rate-limit:e2e": "tsx spikes/github-oidc/src/rate-limit-e2e.ts",
"spike:distributed-lock:e2e": "tsx spikes/github-oidc/src/distributed-lock-e2e.ts",
"api:start": "node --conditions=production apps/api/dist/server.js",
"release-control:start": "pnpm --filter @reviewrouter/api release-control:start",
"release-witness:start": "pnpm --filter @reviewrouter/api release-witness:start",
"worker:start": "node --conditions=production apps/worker/dist/worker.js",
"runtime:smoke": "node scripts/run-with-env.mjs node scripts/check-production-runtime.mjs",
"action:build": "node scripts/build-codex-rotating-action.mjs && node scripts/build-conflict-runtime.ts",
"action:artifact:check": "node scripts/check-codex-rotating-action-artifact.mjs && node scripts/build-conflict-runtime.ts --check",
"action:artifact:check:smoke": "REVIEWROUTER_CODEX_ROTATING_ACTION_REQUIRE_BINARY=0 node scripts/check-codex-rotating-action-artifact.mjs && node scripts/build-conflict-runtime.ts --check",
"action:sync-public-runtime": "node scripts/sync-public-action-runtime.mjs",
"subscription-runtime:contract": "node scripts/check-external-subscription-runtime.mjs",
"subscription-runtime:redaction-canary": "node scripts/check-external-subscription-runtime.mjs",
"subscription-runtime:e2e:local": "node scripts/check-external-subscription-runtime.mjs",
"subscription-runtime:live-e2e:prereq": "node scripts/run-subscription-runtime-live-e2e.mjs --check-only",
"subscription-runtime:live-e2e:smoke": "node scripts/check-subscription-runtime-live-e2e-smoke.mjs",
"subscription-runtime:live-e2e": "node scripts/run-subscription-runtime-live-e2e.mjs",
"subscription-runtime:worker-benchmark": "tsx spikes/subscription-runtime-worker-benchmark/benchmark-codex-worker.ts",
"subscription-runtime:sync-public-mirrors": "node -e \"console.log('subscription-runtime mirrors are deprecated; use 777genius/ar')\"",
"subscription-runtime:check": "node scripts/check-external-subscription-runtime.mjs && pnpm action:artifact:check:smoke && pnpm subscription-runtime:live-e2e:smoke",
"subscription-runtime:release-gate": "pnpm subscription-runtime:check && pnpm codex-rotating:secret-write-boundary && pnpm action:artifact:check && pnpm exec vitest run packages/features/codex-oauth-rotating/src/tests/codex-oauth-rotating.test.ts packages/features/codex-oauth-rotating/src/tests/github-action.test.ts && pnpm architecture:check && pnpm typecheck && git diff --check",
"architecture:web-host-cms": "tsx scripts/check-web-host-cms-profile-cli.ts",
"architecture:check": "node scripts/check-architecture-boundaries.mjs && pnpm architecture:web-host-cms && pnpm foundation:check && pnpm foundation:assert-dev-only && pnpm foundation:assert-registry && pnpm foundation:qualify-memory && pnpm foundation:qualify-statistics && pnpm history:architecture",
"github-app:check": "node scripts/run-with-env.mjs node scripts/check-github-app-readiness.mjs",
"github-app:create": "node scripts/create-github-app-manifest.mjs",
"github-app:manifest:smoke": "node scripts/check-github-app-manifest-smoke.mjs",
"github-app:use-profile": "node scripts/use-github-app-profile.mjs",
"public-beta:check": "bash scripts/check-public-beta-readiness.sh",
"deploy:render:hosted-beta": "sh scripts/deploy-render-hosted-beta.sh",
"ops:sync-action-ref": "node scripts/sync-render-action-ref.mjs",
"hosted:api-demo:check": "node scripts/check-hosted-api-demo.mjs",
"web:ui-audit": "node scripts/check-ui-layout.mjs",
"hosted:ui-audit": "node scripts/check-ui-layout.mjs --base-url https://reviewrouter.org",
"hosted:progress-canary": "node scripts/run-hosted-live-progress-canary.mjs",
"release:sync-major": "node scripts/sync-major-release-tag.mjs",
"lint:native:files": "node scripts/local-checks/lint-format-lint.mts",
"typecheck:lint-format": "tsc --noEmit -p tsconfig.lint-format.json",
"compiler:pilot": "node scripts/local-checks/compiler-cli.ts --legacy --noEmit -p tsconfig.tooling.json && vitest run --config scripts/local-checks/compiler-vitest.config.ts",
"compiler:prepare": "pnpm --dir scripts/local-checks/native install --ignore-workspace --ignore-scripts --frozen-lockfile",
"foundation:check": "agent-teams-foundation check",
"foundation:assert-dev-only": "agent-teams-foundation assert-dev-only",
"foundation:assert-registry": "agent-teams-foundation assert-registry",
"foundation:qualify": "node scripts/provider-foundation/qualify-packed.ts && tsc -p scripts/provider-foundation/tsconfig.json && node --import tsx scripts/provider-foundation/qualify-boundaries.ts",
"subscription-runtime:prepare": "node scripts/prepare-pinned-subscription-runtime.ts",
"foundation:qualify-memory": "node --import tsx scripts/memory-foundation/qualify-boundaries.ts",
"modular:qualify": "node scripts/local-checks/compiler-cli.ts --native --noEmit -p tsconfig.modular.json && vitest run packages/features/review-providers/src/composition/index.test.ts packages/features/provider-usage/src/tests/composition.test.ts packages/features/provider-accounts/src/account-limits/composition.test.ts packages/features/memory/src/composition/memory-knowledge-runtime.test.ts packages/features/review-statistics/src/composition/index.test.ts packages/features/review-history/src/composition/review-history.root.test.ts",
"foundation:qualify-statistics": "node --import tsx scripts/statistics-foundation/qualify-boundaries.ts",
"history:architecture": "node --import tsx scripts/review-history-tooling/check.ts",
"history:test:postgres": "vitest run packages/features/review-history/src/tests/history.postgres.test.ts packages/features/review-history/src/tests/history-reader.postgres.test.ts",
"history:activate": "node scripts/run-with-env.mjs node --import tsx scripts/activate-review-history.ts"
},
"dependencies": {
"@base-ui/react": "^1.4.1",
"@octokit/app": "^16.1.2",
"@octokit/rest": "^22.0.1",
"@prisma/client": "^7.8.0",
"@tanstack/react-query": "^5.100.8",
"@trpc/client": "^11.17.0",
"@trpc/react-query": "^11.17.0",
"@trpc/server": "^11.17.0",
"clsx": "^2.1.1",
"dotenv": "^17.4.2",
"fastify": "^5.10.0",
"jose": "^6.2.3",
"lucide-react": "^1.14.0",
"next": "^16.2.11",
"nuqs": "^2.8.9",
"pg-boss": "^12.18.2",
"react": "^19.2.5",
"react-dom": "^19.2.5",
"react-hook-form": "^7.75.0",
"sonner": "^2.0.7",
"tailwind-merge": "^3.5.0",
"tailwind-variants": "^3.2.2",
"tailwindcss": "^4.2.4",
"zod": "^4.4.2",
"zustand": "^5.0.12",
"@get-modular/core": "0.7.0",
"@get-modular/assembly": "0.7.0"
},
"optionalDependencies": {
"@777genius/subscription-runtime": "git+https://github.com/777genius/ar.git#83a7329f4383b05ac5c39356b79f82f029182d42"
},
"devDependencies": {
"@eslint/js": "^10.0.1",
"@prisma/adapter-pg": "7.8.0",
"@tailwindcss/postcss": "4.2.4",
"@testing-library/react": "^16.3.2",
"@types/node": "^22.19.0",
"@types/react": "^19.2.14",
"@types/react-dom": "^19.2.3",
"esbuild": "0.28.1",
"eslint": "^10.3.0",
"jsdom": "^29.1.1",
"pg": "8.23.0",
"prettier": "^3.8.3",
"prisma": "^7.8.0",
"tsx": "^4.23.1",
"turbo": "^2.10.6",
"typescript": "^6.0.3",
"typescript-eslint": "^8.59.1",
"vitest": "^4.1.10",
"yaml": "^2.9.0",
"oxlint": "1.87.0",
"oxfmt": "0.72.0",
"@agent-teams/engineering-foundation": "2.1.0",
"playwright-core": "1.64.1",
"@types/pg": "8.23.1",
"@get-modular/conformance": "0.5.0",
"@get-modular/resources": "0.2.1"
},
"license": "Apache-2.0"
}