package.json
Rama main · réplica de lectura del repositorio original.
{
"name": "sotto",
"version": "0.2.0",
"private": true,
"description": "Source-available, self-hostable language learning, taught in your own context through the AI agent you already own.",
"license": "PolyForm-Noncommercial-1.0.0",
"workspaces": [
"apps/*",
"packages/*",
"services/*",
"!apps/desktop"
],
"scripts": {
"access": "npm run access --workspace=@sotto/web --",
"build": "scripts/run-with-env.sh npm run build --workspace=@sotto/web",
"check:affected": "node scripts/ci/check-affected.mjs",
"ci": "node scripts/ci/audit-gate.mjs && python3 -m unittest discover -s scripts/tests -p 'test*.py' && npm run ci:web && npm run ci:packages",
"ci:packages": "npm test --workspace=@sotto/shared -- --run && npm run type-check --workspace=@sotto/mcp && npm run build --workspace=@sotto/mcp && npm test --workspace=groundcheck -- --run && npm run typecheck --workspace=groundcheck && npm run build --workspace=groundcheck && npm test --workspace=@sotto/learning-model -- --run && npm run typecheck --workspace=@sotto/learning-model && npm run build --workspace=@sotto/learning-model",
"ci:web": "npm run ci --workspace=@sotto/web",
"dev": "scripts/run-with-env.sh npm run dev --workspace=@sotto/web",
"dev:web": "scripts/run-with-env.sh npm run dev:web --workspace=@sotto/web",
"dev:workers": "scripts/run-with-env.sh npm run dev:workers --workspace=@sotto/web",
"format": "prettier --write \"**/*.{ts,tsx,js,jsx,json,jsonc,md}\"",
"format:check": "prettier --check \"**/*.{ts,tsx,js,jsx,json,jsonc,md}\"",
"gen:openapi": "npm run -w @sotto/shared gen:openapi",
"learning:compare": "scripts/run-with-env.sh tsx --tsconfig apps/web/tsconfig.json scripts/learning/compare-schedulers.ts",
"lint": "npm run lint --workspace=@sotto/web",
"lint:fix": "npm run lint:fix --workspace=@sotto/web",
"release:check": "python3 scripts/release/check.py",
"setup": "chmod +x ./scripts/setup.sh && ./scripts/setup.sh",
"speech:config": "npm run speech:config --workspace=@sotto/web",
"speech:config:check": "npm run speech:config:check --workspace=@sotto/web",
"start": "npm run start --workspace=@sotto/web",
"start:workers": "npm run start:workers --workspace=@sotto/web",
"support:bundle": "scripts/support/bundle.sh",
"test": "npm run test --workspace=@sotto/web --",
"test:browser": "node e2e/run.mjs",
"test:coverage": "npm run test:coverage --workspace=@sotto/web",
"test:smoke": "npm run test:smoke --workspace=@sotto/web",
"test:watch": "npm run test:watch --workspace=@sotto/web",
"type-check": "npm run type-check --workspace=@sotto/web"
},
"lint-staged": {
"*.{ts,tsx}": [
"eslint --config apps/web/eslint.config.mjs --fix --max-warnings 0 --rule '@next/next/no-html-link-for-pages: off'"
],
"*.{ts,tsx,js,jsx,json,jsonc,md,css,yaml,yml}": [
"prettier --write"
],
"package.json": [
"sort-package-json"
]
},
"overrides": {
"@hono/node-server": "2.1.3",
"@modelcontextprotocol/sdk": "1.32.2",
"@prisma/config": {
"deepmerge-ts": "8.0.2"
},
"braces": "$braces",
"esbuild": "$esbuild",
"minimatch@^10.0.0": "11.0.3",
"postcss": "$postcss",
"prisma": {
"mysql2": "3.24.2"
},
"react-dom": "19.3.1",
"shell-quote": "1.11.0",
"thesidedoor-core": {
"zod": "$zod"
},
"tsx": "4.23.15"
},
"dependencies": {
"@prisma/client": "7.10.1",
"bullmq": "6.5.2",
"ioredis": "6.0.0",
"pg": "^8.23.1",
"thesidedoor-core": "file:vendor/sidedoor-core/thesidedoor-core-0.5.8.tgz",
"zod": "^4.6.7"
},
"devDependencies": {
"@playwright/test": "^1.64.1",
"braces": "file:vendor/braces",
"esbuild": "0.28.2",
"eslint": "10.14.0",
"knip": "6.44.0",
"lint-staged": "^17.6.0",
"postcss": "^8.5.32",
"prettier": "^3.9.10",
"prisma": "7.10.1",
"sharp": "0.35.5",
"sort-package-json": "^4.1.0",
"vitest": "4.1.12"
},
"optionalDependencies": {
"@next/swc-darwin-arm64": "^16.4.3"
},
"engines": {
"node": ">=24 <25"
}
}