package.json
Rama main · réplica de lectura del repositorio original.
{
"name": "tasktopia",
"version": "1.28.0",
"private": true,
"license": "MIT",
"type": "module",
"tasktopiaRuntime": {
"blockTemplateVersions": [
2,
3
],
"citySceneSchemaVersions": [
4,
5
],
"countryOverviewSchemaVersions": [
7,
8
],
"countryRoadSnapshotTables": [
"country_road_snapshots_v1"
],
"citySceneMaxChunks": 4096,
"blockStructuralShapes": {
"compact-apartment-v1": {
"width": 6,
"height": 6,
"floors": 3
},
"compact-row-v1": {
"width": 6,
"height": 3,
"floors": 1
},
"compact-wide-v1": {
"width": 6,
"height": 4,
"floors": 2
},
"compact-long-gallery-v1": {
"width": 12,
"height": 6,
"floors": 2
},
"compact-corner-court-v1": {
"width": 8,
"height": 8,
"floors": 2
},
"compact-u-courtyard-v1": {
"width": 12,
"height": 8,
"floors": 2
},
"compact-long-slate-wing-v1": {
"width": 6,
"height": 12,
"floors": 2
}
}
},
"engines": {
"node": ">=24.0.0"
},
"scripts": {
"dev": "concurrently -k -n web,server -c cyan,yellow \"vite --host 0.0.0.0\" \"tsx watch src/server/index.ts\"",
"build": "npm run typecheck && vite build && esbuild src/server/index.ts --bundle --packages=external --platform=node --format=esm --target=node24 --outfile=dist/server.mjs && esbuild src/server/regenerate-worlds.ts --bundle --packages=external --platform=node --format=esm --target=node24 --outfile=dist/regenerate-worlds.mjs && esbuild src/server/create-user-cli.ts --bundle --packages=external --platform=node --format=esm --target=node24 --outfile=dist/create-user.mjs && esbuild src/server/synchronize-assets-cli.ts --bundle --packages=external --platform=node --format=esm --target=node24 --outfile=dist/synchronize-assets.mjs && esbuild src/server/migrate-worlds.ts --bundle --packages=external --platform=node --format=esm --target=node24 --outfile=dist/migrate-worlds.mjs && esbuild scripts/audit-prod.ts --bundle --packages=external --platform=node --format=esm --target=node24 --outfile=dist/audit-worlds.mjs && esbuild src/server/synchronize-transport-cli.ts --bundle --packages=external --platform=node --format=esm --target=node24 --outfile=dist/synchronize-transport.mjs && esbuild src/server/synchronize-roads-cli.ts --bundle --packages=external --platform=node --format=esm --target=node24 --outfile=dist/synchronize-roads.mjs && esbuild src/server/synchronize-city-scenes-cli.ts --bundle --packages=external --platform=node --format=esm --target=node24 --outfile=dist/synchronize-city-scenes.mjs && node scripts/write-runtime-build-manifest.mjs",
"start": "node dist/server.mjs",
"typecheck": "tsc --noEmit",
"lint": "eslint .",
"test": "vitest run",
"test:e2e": "playwright test",
"test:atlas": "playwright test tests/e2e/planet-navigation.spec.ts tests/e2e/planet-city-ui.spec.ts tests/e2e/atlas-pixel-zoom.spec.ts tests/e2e/atlas-transport.spec.ts tests/e2e/overview-trains.spec.ts --project=chromium --workers=1",
"smoke:mcp": "tsx scripts/mcp-smoke.ts",
"test:watch": "vitest",
"seed": "tsx scripts/seed-demo.ts",
"seed:test": "tsx scripts/seed-test.ts",
"seed:growth": "tsx scripts/seed-growth-demo.ts",
"seed:showcase": "tsx scripts/seed-readme-showcase.ts",
"seed:world-validation": "tsx scripts/seed-world-validation.ts",
"seed:megacity-validation": "tsx scripts/seed-megacity-validation.ts",
"test:world-validation": "npm run seed:world-validation && WORLD_VALIDATION_SCREENSHOT_DIR=screenshots/world-validation E2E_BASE_URL=http://127.0.0.1:5198 E2E_SEED_COMMAND=true playwright test tests/e2e/world-validation.spec.ts --project=chromium --workers=1",
"test:megacity-validation": "npm run seed:megacity-validation && MEGACITY_VALIDATION_SCREENSHOT_DIR=screenshots/megacity-validation E2E_BASE_URL=http://127.0.0.1:5197 E2E_SEED_COMMAND=true playwright test tests/e2e/megacity-validation.spec.ts --project=chromium --workers=1",
"test:db:start": "docker compose -f docker-compose.test.yml up -d --wait",
"test:db:stop": "docker compose -f docker-compose.test.yml down",
"test:scale": "tsx scripts/worldgen-scale-smoke.ts",
"test:worldgen": "vitest run tests/compact-city-runtime.test.ts tests/block-layout-grid.test.ts tests/world-audit-blocks.test.ts tests/dense-worldgen.test.ts --no-file-parallelism",
"test:release-world": "npm run test:worldgen && npm run test:atlas",
"worlds:regenerate": "node dist/regenerate-worlds.mjs",
"worlds:audit": "node dist/audit-worlds.mjs",
"user:create": "node dist/create-user.mjs",
"study:worldgen": "tsx scripts/worldgen-algorithm-study.ts",
"assets:setup": "python3 -m venv .venv-assets && .venv-assets/bin/python -m pip install -r requirements-assets.txt",
"assets:compact:verify": ".venv-assets/bin/python scripts/verify-compact-building-art.py --require-complete --require-review",
"assets:construction:build": ".venv-assets/bin/python scripts/build-compact-construction-kit.py",
"assets:build": ".venv-assets/bin/python scripts/build-pixel-city-pack.py && .venv-assets/bin/python scripts/build-road-atlas-v2.py",
"assets:verify": ".venv-assets/bin/python scripts/audit-pixel-city-pack.py && .venv-assets/bin/python scripts/verify-atlas-assets.py && .venv-assets/bin/python scripts/verify-block-surfaces.py --preview screenshots/block-v1-micro-surfaces.png --report tmp/block-v1-micro-surfaces.json && .venv-assets/bin/python scripts/verify-micro-ambient.py && .venv-assets/bin/python .agents/skills/tasktopia-pixel-city-art/scripts/audit_pixel_style.py --manifest assets/pixel-city-pack/manifest.json --runtime assets/pixel-city-pack/runtime --report tmp/pixel-city-style-audit.json && .venv-assets/bin/python scripts/transport_furniture_art.py --published",
"assets:storybook": ".venv-assets/bin/python scripts/render-pixel-city-storybook.py",
"transport:synchronize": "tsx src/server/synchronize-transport-cli.ts",
"roads:synchronize": "tsx src/server/synchronize-roads-cli.ts",
"scenes:synchronize": "NODE_ENV=production node dist/synchronize-city-scenes.mjs"
},
"dependencies": {
"@fastify/compress": "^9.1.1",
"@fastify/cookie": "^11.0.2",
"@fastify/helmet": "^13.1.0",
"@fastify/rate-limit": "^11.2.0",
"@fastify/static": "10.1.2",
"@modelcontextprotocol/client": "2.3.0",
"@modelcontextprotocol/server": "2.3.0",
"@resvg/resvg-js": "2.6.2",
"fastify": "^5.12.3",
"pixi.js": "8.19.0",
"postgres": "^3.4.9",
"react": "19.2.8",
"react-dom": "19.2.8",
"redis": "^6.2.1",
"socket.io": "4.8.3",
"socket.io-client": "4.8.3",
"web-push": "^3.6.7",
"zod": "^4.6.6"
},
"devDependencies": {
"@axe-core/playwright": "^4.12.1",
"@eslint/js": "^10.0.1",
"@playwright/test": "^1.62.1",
"@tailwindcss/vite": "^4.3.3",
"@types/node": "^24.10.0",
"@types/react": "^19.2.2",
"@types/react-dom": "^19.2.2",
"@types/web-push": "^3.6.0",
"@vitejs/plugin-react": "^6.0.5",
"@vitest/coverage-v8": "^4.1.10",
"concurrently": "^10.0.4",
"esbuild": "^0.28.1",
"eslint": "^10.8.0",
"eslint-plugin-react-hooks": "^7.1.1",
"globals": "^17.9.0",
"tailwindcss": "^4.3.3",
"tsx": "^4.23.7",
"typescript": "^6.0.3",
"typescript-eslint": "^8.66.0",
"vite": "8.2.4",
"vitest": "^4.1.10"
},
"overrides": {
"concurrently": {
"shell-quote": "1.11.0"
}
}
}