{ "name": "projectbrain", "version": "0.7.1", "private": true, "type": "module", "scripts": { "dev": "vite", "build": "vite build", "build:dev": "vite build --mode development", "lint": "eslint .", "test": "vitest run", "test:coverage": "vitest run --coverage", "test:e2e": "playwright test", "test:e2e:desktop": "playwright test --project=chromium-desktop", "test:e2e:mobile": "playwright test --project=chromium-mobile", "test:e2e:real": "playwright test --config=playwright.real.config.ts", "test:e2e:status": "playwright test --config=playwright.status.config.ts", "preview": "vite preview", "typecheck": "tsc -p tsconfig.app.json --noEmit && tsc -p tsconfig.node.json --noEmit", "audit:typecheck-gate": "node scripts/check-typescript-gate.mjs", "validate:frontend": "pnpm run typecheck && pnpm run lint && pnpm run build", "validate:backend": "pnpm --filter projectbrain-api run typecheck && pnpm --filter projectbrain-api run build && pnpm --filter projectbrain-api run lint", "validate:all": "pnpm run test:coverage && pnpm run validate:frontend && pnpm run validate:backend", "audit:release": "node scripts/check-release-hygiene.mjs", "smoke:backend:fixtures": "pnpm --filter projectbrain-api run smoke:fixtures", "audit:runtime": "node scripts/check-runtime-readiness.mjs", "smoke:backend:real-read-pilot": "pnpm --filter projectbrain-api run smoke:real-read-pilot", "smoke:backend:vertical-slice": "pnpm --filter projectbrain-api run smoke:vertical-slice", "smoke:backend:runtime-suite": "pnpm --filter projectbrain-api run smoke:runtime-suite && pnpm --filter projectbrain-api run smoke:system-readiness", "smoke:backend:database-suite": "pnpm --filter projectbrain-api run smoke:database-suite", "smoke:backend:p3": "pnpm --filter projectbrain-api run smoke:p3", "doctor": "node scripts/projectbrain-doctor.mjs", "docs:validation-matrix": "node scripts/generate-validation-matrix.mjs", "docs:openapi": "node scripts/generate-openapi.mjs", "audit:openapi": "node scripts/generate-openapi.mjs --check", "audit:architecture": "node scripts/check-architecture-budget.mjs", "release:metadata": "node scripts/generate-release-metadata.mjs", "audit:release-metadata": "node scripts/verify-release-metadata.mjs", "audit:docs": "node scripts/check-doc-links.mjs", "freeze:v1": "node scripts/check-v1-contract-freeze.mjs --write", "audit:v1-freeze": "node scripts/check-v1-contract-freeze.mjs", "smoke:backend:p4": "pnpm --filter projectbrain-api run smoke:p4", "smoke:backend:p5": "pnpm --filter projectbrain-api run smoke:p5", "smoke:backend:p6": "pnpm --filter projectbrain-api run smoke:p6", "smoke:backend:p7": "pnpm --filter projectbrain-api run smoke:p7", "smoke:backend:project-loop": "pnpm --filter projectbrain-api run smoke:project-loop", "smoke:backend:project-create": "pnpm --filter projectbrain-api run smoke:project-create", "smoke:backend:p8": "pnpm --filter projectbrain-api run smoke:p8", "smoke:rc60-review-decision-loop": "node scripts/smoke-rc60-review-decision-loop.mjs", "smoke:rc63-release-evidence-lane": "node scripts/smoke-rc63-release-evidence-lane.mjs", "audit:backend-contract": "pnpm --filter projectbrain-api run audit:contract", "audit:csi": "node scripts/projectbrain-csi-audit.mjs", "audit:database": "node scripts/check-database-readiness.mjs", "audit:all": "pnpm audit:experience && pnpm audit:quality && pnpm audit:security && pnpm audit:data && pnpm audit:delivery", "smoke:backend:system-readiness": "pnpm --filter projectbrain-api run smoke:system-readiness", "smoke:backend:brainstorms": "pnpm --filter projectbrain-api run smoke:brainstorms", "smoke:backend:initiatives": "pnpm --filter projectbrain-api run smoke:initiatives", "audit:rc": "node scripts/check-rc-readiness.mjs", "audit:docker": "node scripts/check-docker-build-readiness.mjs", "audit:frontend-runtime": "node scripts/check-frontend-runtime-readiness.mjs", "audit:visual": "node scripts/check-visual-polish.mjs", "audit:guided-start": "node scripts/check-guided-start-readiness.mjs", "audit:source-library": "node scripts/check-source-library-readiness.mjs", "audit:history-center": "node scripts/check-history-center-readiness.mjs", "audit:execution-center": "node scripts/check-execution-center-readiness.mjs", "audit:repo-builder": "node scripts/check-repo-builder-readiness.mjs", "audit:skills": "node scripts/check-skill-library-readiness.mjs", "audit:repository-intake": "node scripts/check-repository-intake-readiness.mjs", "audit:handoffs": "node scripts/check-codex-handoff-readiness.mjs", "audit:handoff-review": "node scripts/check-handoff-review-readiness.mjs", "audit:execution-feedback": "node scripts/check-execution-feedback-readiness.mjs", "audit:review-closure": "node scripts/check-review-closure-readiness.mjs", "audit:build-loop": "node scripts/check-build-loop-readiness.mjs", "audit:build-loop-walkthrough": "node scripts/check-build-loop-walkthrough-readiness.mjs", "audit:session-packs": "node scripts/check-session-pack-readiness.mjs", "audit:session-pack-export": "node scripts/check-session-pack-export-readiness.mjs", "audit:browser-bridge": "node scripts/check-browser-bridge-readiness.mjs", "audit:release-consolidation": "node scripts/check-build-loop-release-consolidation.mjs", "audit:visual-flow": "node scripts/check-visual-flow-readiness.mjs", "audit:experience": "pnpm run audit:visual && pnpm run audit:guided-start && pnpm run audit:source-library && pnpm run audit:history-center && pnpm run audit:repo-builder && pnpm run audit:review-closure && pnpm run audit:build-loop && pnpm run audit:visual-flow", "audit:unraid-template": "node scripts/check-unraid-template-readiness.mjs", "audit:rc7-flow": "node scripts/check-rc7-product-flow-readiness.mjs", "audit:rc8-release": "node scripts/check-rc8-release-evidence-readiness.mjs", "audit:rc9-final": "node scripts/check-rc9-final-release-readiness.mjs", "audit:rc10-operator": "node scripts/check-rc10-operator-guide-readiness.mjs", "audit:rc11-post-rc": "node scripts/check-rc11-post-rc-monitoring-readiness.mjs", "audit:rc12-product-experience": "node scripts/check-rc12-product-experience-readiness.mjs", "audit:rc13-product-flow": "node scripts/check-rc13-product-flow-hardening-readiness.mjs", "audit:rc14-project-operability": "node scripts/check-rc14-project-operability-readiness.mjs", "audit:rc15-evidence-review": "node scripts/check-rc15-evidence-review-trust-readiness.mjs", "audit:rc16-action-hygiene": "node scripts/check-rc16-action-hygiene-readiness.mjs", "audit:rc17-daily-orientation": "node scripts/check-rc17-daily-orientation-readiness.mjs", "audit:rc18-search-navigation": "node scripts/check-rc18-search-navigation-readiness.mjs", "audit:rc19-prioritized-navigation": "node scripts/check-rc19-prioritized-navigation-readiness.mjs", "audit:rc20-start-flow-clarity": "node scripts/check-rc20-start-flow-clarity-readiness.mjs", "audit:rc21-workspace-complexity": "node scripts/check-rc21-workspace-complexity-readiness.mjs", "audit:rc22-repo-builder-usability": "node scripts/check-rc22-repo-builder-usability-readiness.mjs", "audit:rc23-history-proof-finder": "node scripts/check-rc23-history-proof-finder-readiness.mjs", "audit:rc24-persistence-coverage": "node scripts/check-rc24-persistence-coverage-readiness.mjs", "audit:rc25-build-identity": "node scripts/check-rc25-build-identity-readiness.mjs", "audit:rc26-prompt-origin": "node scripts/check-rc26-prompt-origin-readiness.mjs", "audit:rc27-delivery-flow-rail": "node scripts/check-rc27-delivery-flow-rail-readiness.mjs", "audit:rc28-build-loop-status-signals": "node scripts/check-rc28-build-loop-status-signals-readiness.mjs", "audit:rc29-project-creation-persistence": "node scripts/check-rc29-project-creation-persistence-readiness.mjs", "audit:rc30-repo-scanner-handoff": "node scripts/check-rc30-repo-scanner-handoff-readiness.mjs", "audit:rc31-session-pack-feedback-route": "node scripts/check-rc31-session-pack-feedback-route-readiness.mjs", "audit:rc32-project-portfolio-sort": "node scripts/check-rc32-project-portfolio-sort-readiness.mjs", "audit:rc33-settings-runtime": "node scripts/check-rc33-settings-runtime-readiness.mjs", "audit:rc34-runtime-parity-copy": "node scripts/check-rc34-runtime-parity-copy-readiness.mjs", "audit:rc35-card-copy-scan": "node scripts/check-rc35-card-copy-scan-readiness.mjs", "audit:rc36-operator-public-url": "node scripts/check-rc36-operator-public-url-readiness.mjs", "audit:rc37-mobile-handoff-impact": "node scripts/check-rc37-mobile-handoff-impact-readiness.mjs", "audit:rc38-mobile-workspace-map": "node scripts/check-rc38-mobile-workspace-map-readiness.mjs", "audit:rc39-release-evidence-persistence": "node scripts/check-rc39-release-evidence-persistence-readiness.mjs", "audit:rc40-proof-timeline": "node scripts/check-rc40-proof-timeline-readiness.mjs", "audit:rc41-project-loop": "node scripts/check-rc41-project-loop-readiness.mjs", "audit:rc42-navigation-primary-path": "node scripts/check-rc42-navigation-primary-path-readiness.mjs", "audit:rc43-project-create-real-mode": "node scripts/check-rc43-project-create-real-mode-readiness.mjs", "audit:rc44-handoff-session-pack-polish": "node scripts/check-rc44-handoff-session-pack-polish-readiness.mjs", "audit:rc45-unraid-ops-hardening": "node scripts/check-rc45-unraid-ops-hardening-readiness.mjs", "audit:rc46-final-user-flow": "node scripts/check-rc46-final-user-flow-release-readiness.mjs", "audit:rc47-next-step": "node scripts/check-rc47-next-step-operating-layer-readiness.mjs", "audit:rc48-guided-session": "node scripts/check-rc48-guided-work-session-readiness.mjs", "audit:rc49-guided-session-evidence": "node scripts/check-rc49-guided-session-evidence-readiness.mjs", "audit:rc50-evidence-closure": "node scripts/check-rc50-evidence-review-closure-readiness.mjs", "audit:rc51-evidence-routing": "node scripts/check-rc51-evidence-routing-readiness.mjs", "audit:rc52-guided-follow-up": "node scripts/check-rc52-guided-follow-up-readiness.mjs", "audit:rc53-review-decision-receipt": "node scripts/check-rc53-review-decision-receipt-readiness.mjs", "audit:rc54-decision-receipt-history": "node scripts/check-rc54-decision-receipt-history-readiness.mjs", "audit:rc55-review-action-clarity": "node scripts/check-rc55-review-action-clarity-readiness.mjs", "audit:rc56-review-detail-compactness": "node scripts/check-rc56-review-detail-compactness-readiness.mjs", "audit:rc57-mobile-review-action-flow": "node scripts/check-rc57-mobile-review-action-flow-readiness.mjs", "audit:rc58-review-receipt-follow-through": "node scripts/check-rc58-review-receipt-follow-through-readiness.mjs", "audit:rc59-decision-receipt-history-detail": "node scripts/check-rc59-decision-receipt-history-detail-readiness.mjs", "audit:rc60-review-decision-loop-smoke": "node scripts/check-rc60-review-decision-loop-smoke-readiness.mjs", "audit:rc61-review-loop-recovery": "node scripts/check-rc61-review-loop-recovery-readiness.mjs", "audit:rc62-release-evidence-lane": "node scripts/check-rc62-release-evidence-lane-readiness.mjs", "audit:rc63-release-evidence-lane-smoke": "node scripts/check-rc63-release-evidence-lane-smoke-readiness.mjs", "audit:rc64-actionable-release-evidence-lane": "node scripts/check-rc64-actionable-release-evidence-lane-readiness.mjs", "audit:rc65-action-copy-browser-smoke": "node scripts/check-rc65-action-copy-browser-smoke-readiness.mjs", "audit:rc66-release-evidence-route-precision": "node scripts/check-rc66-release-evidence-route-precision-readiness.mjs", "audit:rc67-release-lane-click-through": "node scripts/check-rc67-release-lane-click-through-readiness.mjs", "audit:rc68-release-lane-destination-ack": "node scripts/check-rc68-release-lane-destination-ack-readiness.mjs", "audit:rc69-receipt-review-route-ack": "node scripts/check-rc69-receipt-review-route-ack-readiness.mjs", "smoke:release-operator": "node scripts/smoke-release-operator.mjs", "audit:rc70-release-operator-smoke-suite": "node scripts/check-rc70-release-operator-smoke-suite-readiness.mjs", "audit:rc71-release-operator-smoke-product-surface": "node scripts/check-rc71-release-operator-smoke-product-surface-readiness.mjs", "audit:rc72-release-operator-proof-evidence": "node scripts/check-rc72-release-operator-proof-evidence-readiness.mjs", "audit:rc73-release-evidence-capture-assist": "node scripts/check-rc73-release-evidence-capture-assist-readiness.mjs", "smoke:rc73-release-evidence-capture-assist": "node scripts/smoke-rc73-release-evidence-capture-assist.mjs", "audit:rc74-release-evidence-real-save": "node scripts/check-rc74-release-evidence-real-save-readiness.mjs", "audit:rc75-release-evidence-recovery-links": "node scripts/check-rc75-release-evidence-recovery-links-readiness.mjs", "smoke:rc76-release-evidence-api-recovery": "node scripts/smoke-rc76-release-evidence-api-recovery.mjs", "audit:rc76-release-evidence-api-recovery": "node scripts/check-rc76-release-evidence-api-recovery-readiness.mjs", "audit:rc77-release-evidence-hygiene": "node scripts/check-rc77-release-evidence-hygiene-readiness.mjs", "audit:rc78-release-signoff": "node scripts/check-rc78-release-signoff-readiness.mjs", "audit:rc79-release-signoff-capture-shortcuts": "node scripts/check-rc79-release-signoff-capture-shortcuts-readiness.mjs", "audit:rc80-release-evidence-composer": "node scripts/check-rc80-release-evidence-composer-readiness.mjs", "audit:rc81-release-evidence-review-actions": "node scripts/check-rc81-release-evidence-review-actions-readiness.mjs", "audit:rc82-final-rc-go-no-go": "node scripts/check-rc82-final-rc-go-no-go-readiness.mjs", "audit:rc83-release-tag-checklist": "node scripts/check-rc83-release-tag-checklist-readiness.mjs", "audit:rc84-release-note-archive": "node scripts/check-rc84-release-note-archive-readiness.mjs", "audit:rc85-release-archive-history-lane": "node scripts/check-rc85-release-archive-history-lane-readiness.mjs", "audit:rc86-release-archive-persistence": "node scripts/check-rc86-release-archive-persistence-readiness.mjs", "audit:rc87-release-center": "node scripts/check-rc87-release-center-readiness.mjs", "smoke:rc88-release-center": "node scripts/smoke-rc88-release-center.mjs", "audit:rc88-release-center-smoke": "node scripts/check-rc88-release-center-smoke-readiness.mjs", "audit:rc89-release-center-guidance": "node scripts/check-rc89-release-center-guidance-readiness.mjs", "audit:rc90-release-center-quality": "node scripts/check-rc90-release-center-quality-readiness.mjs", "audit:rc91-release-center-improve-action": "node scripts/check-rc91-release-center-improve-action-readiness.mjs", "audit:rc92-release-readiness-export": "node scripts/check-rc92-release-readiness-export-readiness.mjs", "audit:rc93-release-readiness-proof-save": "node scripts/check-rc93-release-readiness-proof-save-readiness.mjs", "audit:rc94-release-readiness-proof-freshness": "node scripts/check-rc94-release-readiness-proof-freshness-readiness.mjs", "audit:rc95-release-readiness-proof-actions": "node scripts/check-rc95-release-readiness-proof-actions-readiness.mjs", "audit:rc96-release-operator-checklist": "node scripts/check-rc96-release-operator-checklist-readiness.mjs", "audit:rc97-release-checklist-deep-links": "node scripts/check-rc97-release-checklist-deep-links-readiness.mjs", "audit:rc98-release-checklist-target-awareness": "node scripts/check-rc98-release-checklist-target-awareness-readiness.mjs", "smoke:rc99-release-checklist-clickthrough": "node scripts/smoke-rc99-release-checklist-clickthrough.mjs", "audit:rc99-release-checklist-clickthrough": "node scripts/check-rc99-release-checklist-clickthrough-readiness.mjs", "release:proof-report": "node scripts/release-operator-proof-report.mjs", "audit:rc100-release-operator-proof-report": "node scripts/check-rc100-release-operator-proof-report-readiness.mjs", "audit:rc101-release-proof-archive": "node scripts/check-rc101-release-proof-archive-readiness.mjs", "release:proof-index": "node scripts/release-proof-index.mjs", "audit:rc102-release-proof-index": "node scripts/check-rc102-release-proof-index-readiness.mjs", "release:proof-freshness": "node scripts/release-proof-freshness.mjs", "audit:rc103-release-proof-freshness": "node scripts/check-rc103-release-proof-freshness-readiness.mjs", "release:bundle": "node scripts/release-command-bundle.mjs", "audit:rc104-release-command-bundle": "node scripts/check-rc104-release-command-bundle-readiness.mjs", "release:signoff-file": "node scripts/release-signoff-file.mjs", "audit:rc105-release-signoff-file": "node scripts/check-rc105-release-signoff-file-readiness.mjs", "release:evidence-list": "node scripts/release-evidence-retention.mjs --list", "release:evidence-prune": "node scripts/release-evidence-retention.mjs --prune", "audit:rc106-release-evidence-retention": "node scripts/check-rc106-release-evidence-retention-readiness.mjs", "release:deployment-proof": "node scripts/release-deployment-proof.mjs", "audit:rc107-remote-deployment-proof": "node scripts/check-rc107-remote-deployment-proof-readiness.mjs", "release:dossier": "node scripts/release-evidence-dossier.mjs", "audit:rc108-release-evidence-dossier": "node scripts/check-rc108-release-evidence-dossier-readiness.mjs", "release:tag-gate": "node scripts/release-tag-ready-gate.mjs", "audit:rc109-release-tag-ready-gate": "node scripts/check-rc109-release-tag-ready-gate-readiness.mjs", "release:rollback-drill": "node scripts/release-rollback-drill.mjs", "audit:rc110-rollback-drill": "node scripts/check-rc110-rollback-drill-readiness.mjs", "release:user-notes": "node scripts/release-user-notes.mjs", "audit:rc111-user-release-notes": "node scripts/check-rc111-user-release-notes-readiness.mjs", "audit:rc112-operator-status": "node scripts/check-rc112-operator-status-readiness.mjs", "audit:rc113-release-center-entry": "node scripts/check-rc113-release-center-entry-readiness.mjs", "audit:rc114-release-center-hierarchy": "node scripts/check-rc114-release-center-hierarchy-readiness.mjs", "audit:rc115-proof-action-queue": "node scripts/check-rc115-proof-action-queue-readiness.mjs", "audit:rc116-runtime-proof-capture-loop": "node scripts/check-rc116-runtime-proof-capture-loop-readiness.mjs", "audit:rc117-proof-completion-feedback": "node scripts/check-rc117-proof-completion-feedback-readiness.mjs", "audit:rc118-runtime-progressive-disclosure": "node scripts/check-rc118-runtime-progressive-disclosure-readiness.mjs", "audit:rc119-runtime-task-switcher": "node scripts/check-rc119-runtime-task-switcher-readiness.mjs", "audit:rc120-release-proof-priority": "node scripts/check-rc120-release-proof-priority-readiness.mjs", "audit:rc121-runtime-active-lane": "node scripts/check-rc121-runtime-active-lane-readiness.mjs", "audit:rc122-runtime-decision-band": "node scripts/check-rc122-runtime-decision-band-readiness.mjs", "audit:quality": "pnpm audit:typecheck-gate && pnpm validate:all && pnpm audit:openapi && pnpm audit:architecture && pnpm audit:docs && pnpm audit:v1-freeze", "audit:security": "pnpm audit --prod --audit-level high && pnpm audit:release", "audit:data": "pnpm audit:backend-contract && pnpm audit:database && pnpm audit:runtime", "audit:delivery": "node --test scripts/deployment-proof-state.test.mjs && pnpm audit:docker && pnpm audit:unraid-template && pnpm build && pnpm release:metadata && pnpm audit:release-metadata" }, "dependencies": { "@hookform/resolvers": "^3.9.0", "@projectbrain/contracts": "workspace:*", "@radix-ui/react-accordion": "^1.2.0", "@radix-ui/react-alert-dialog": "^1.1.1", "@radix-ui/react-aspect-ratio": "^1.1.0", "@radix-ui/react-avatar": "^1.1.0", "@radix-ui/react-checkbox": "^1.1.1", "@radix-ui/react-collapsible": "^1.1.0", "@radix-ui/react-context-menu": "^2.2.1", "@radix-ui/react-dialog": "^1.1.2", "@radix-ui/react-dropdown-menu": "^2.1.1", "@radix-ui/react-hover-card": "^1.1.1", "@radix-ui/react-label": "^2.1.0", "@radix-ui/react-menubar": "^1.1.1", "@radix-ui/react-navigation-menu": "^1.2.0", "@radix-ui/react-popover": "^1.1.1", "@radix-ui/react-progress": "^1.1.0", "@radix-ui/react-radio-group": "^1.2.0", "@radix-ui/react-scroll-area": "^1.1.0", "@radix-ui/react-select": "^2.1.1", "@radix-ui/react-separator": "^1.1.0", "@radix-ui/react-slider": "^1.2.0", "@radix-ui/react-slot": "^1.1.0", "@radix-ui/react-switch": "^1.1.0", "@radix-ui/react-tabs": "^1.1.0", "@radix-ui/react-toast": "^1.2.1", "@radix-ui/react-toggle": "^1.1.0", "@radix-ui/react-toggle-group": "^1.1.0", "@radix-ui/react-tooltip": "^1.1.4", "@tanstack/react-query": "^5.56.2", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", "cmdk": "^1.0.0", "date-fns": "^3.6.0", "embla-carousel-react": "^8.3.0", "fflate": "^0.8.3", "input-otp": "^1.2.4", "lucide-react": "^0.462.0", "next-themes": "^0.4.6", "react": "^19.2.8", "react-day-picker": "^9.13.0", "react-dom": "^19.2.8", "react-hook-form": "^7.53.0", "react-is": "^19.2.8", "react-resizable-panels": "^2.1.3", "react-router-dom": "^7.18.2", "recharts": "^3.8.1", "sonner": "^1.5.0", "tailwind-merge": "^2.5.2", "vaul": "^1.1.2", "zod": "^3.25.0" }, "devDependencies": { "@axe-core/playwright": "^4.12.1", "@eslint/js": "^10.0.1", "@playwright/test": "^1.62.0", "@tailwindcss/typography": "^0.5.20", "@types/node": "^24.0.0", "@types/react": "^19.2.8", "@types/react-dom": "^19.2.3", "@vitejs/plugin-react": "^6.1.0", "@vitest/coverage-v8": "4.1.10", "autoprefixer": "^10.4.20", "caniuse-lite": "^1.0.30001799", "cross-env": "^10.1.0", "eslint": "^10.8.1", "eslint-plugin-react-hooks": "^7.1.1", "eslint-plugin-react-refresh": "^0.5.4", "globals": "^17.11.0", "postcss": "^8.5.24", "tailwindcss": "^3.4.11", "tailwindcss-animate": "1.0.7", "typescript": "^5.5.3", "typescript-eslint": "^8.67.0", "vite": "^8.2.2", "vitest": "4.1.10" }, "packageManager": "pnpm@11.5.2", "engines": { "node": ">=24 <25", "pnpm": "11.5.2" } }