{ "name": "ai-game-studio", "productName": "Genex", "version": "0.1.7", "private": true, "license": "MIT", "description": "Self-improving AI game studio for macOS on Apple Silicon", "repository": { "type": "git", "url": "git+https://github.com/genex-games/genex-desktop.git" }, "type": "module", "main": "dist/main/main.mjs", "engines": { "node": "24.x" }, "scripts": { "build": "node scripts/build.mjs", "watch": "node scripts/build.mjs --watch", "start": "node scripts/build.mjs && electron .", "typecheck": "node scripts/check-node.mjs && node scripts/tsc.ts --noEmit", "lint": "biome check --diagnostic-level=error .", "lint:warn": "biome lint --reporter=summary .", "format": "biome format --write .", "lint:changed": "node scripts/affected-tests.mjs --lint", "format:changed": "node scripts/affected-tests.mjs --format", "check:static": "node scripts/check-node.mjs && npm run --silent verify:context && npm run --silent verify:architecture && node scripts/tsc.ts --noEmit --incremental --tsBuildInfoFile .studio-dev/tsc.tsbuildinfo && node scripts/affected-tests.mjs --check-syntax && node scripts/affected-tests.mjs --lint && node scripts/check-test-style.ts && node scripts/check-vocabulary.ts && node scripts/evals/check-isolation.ts", "check:isolation": "node scripts/check-node.mjs && node scripts/evals/check-isolation.ts", "check": "npm run --silent check:static && node scripts/affected-tests.mjs --tier L1 --run", "test": "node scripts/test.mjs", "test:affected": "node scripts/affected-tests.mjs", "test:area": "node scripts/affected-tests.mjs --tier L1 --run --area", "test:fast": "node scripts/test.mjs --group fast", "test:rig": "node scripts/test.mjs --group rig", "test:windows": "node scripts/test-windows.mjs", "test:coverage": "node scripts/check-node.mjs && mkdir -p .studio-dev/coverage && node --test --test-concurrency=1 --experimental-test-coverage --test-coverage-include='src/**' --test-reporter=spec --test-reporter-destination=stdout --test-reporter=lcov --test-reporter-destination=.studio-dev/coverage/lcov.info 'tests/**/*.test.ts'", "test:ui": "node tests/e2e/run-ui.mjs", "test:e2e": "node scripts/build.mjs && node tests/e2e/run-electron-e2e.mjs", "verify": "node scripts/check-node.mjs && npm run verify:context && npm run verify:architecture && npm run typecheck && npm test && npm run build && node tests/e2e/run-electron-e2e.mjs && node tests/e2e/run-build-smoke.mjs && node tests/e2e/run-shapes-e2e.mjs && npm run test:agentic-readiness", "package": "node scripts/build.mjs --release && electron-forge package", "make": "node scripts/build.mjs --release && electron-forge make", "publish": "node scripts/build.mjs --release && electron-forge publish", "test:packaged": "node tests/e2e/run-packaged-smoke.mjs", "verify:harness": "node scripts/check-node.mjs && node --test --test-concurrency=1 --test-reporter=spec tests/conformance/harness-incidents.test.ts tests/conformance/scoreboard.test.ts", "hooks:install": "git config core.hooksPath scripts/hooks && echo \"git hooks → scripts/hooks\"", "test:optimization:e2e": "node scripts/build.mjs && node tests/e2e/run-optimization-e2e.mjs", "test:optimization:ui": "node tests/e2e/run-optimization-ui.mjs", "test:optimization:safety": "AG931_SAFETY_ONLY=1 AG931_OUTPUT=.studio-dev/evidence/optimization-safety node tests/e2e/run-optimization-e2e.mjs", "test:build-ui": "node scripts/build.mjs && node tests/e2e/run-build-smoke.mjs", "test:computer:e2e": "node scripts/build.mjs && node tests/e2e/run-computer-smoke.mjs", "test:shapes:e2e": "node scripts/build.mjs && node tests/e2e/run-shapes-e2e.mjs", "census": "node scripts/check-node.mjs && node scripts/transcript-census.ts", "eval": "node scripts/check-node.mjs && node scripts/eval.ts", "test:eval-fixture": "node scripts/build.mjs && node tests/e2e/run-eval-fixture.mjs", "test:eval-prober-browser": "node scripts/check-node.mjs && STUDIO_BROWSER_TESTS=1 node --test tests/conformance/eval-prober-browser.test.ts", "test:eval-full-prober-browser": "node scripts/check-node.mjs && STUDIO_BROWSER_TESTS=1 node --test tests/conformance/eval-full-prober-browser.test.ts", "plugin:new": "node scripts/check-node.mjs && node scripts/plugin-new.ts", "plugin:pack": "node scripts/check-node.mjs && node scripts/pack-plugin.ts", "plugin:doctor": "node scripts/check-node.mjs && node scripts/plugin-doctor.ts", "plugin:submit": "node scripts/check-node.mjs && node scripts/plugin-submit.ts", "plugin:unpack": "node scripts/check-node.mjs && node scripts/plugin-unpack.ts", "genex:skills": "node scripts/check-node.mjs && node scripts/refresh-genex-skills.ts", "verify:context": "node scripts/check-node.mjs && node scripts/check-agent-context.ts && node --test --test-reporter=dot tests/conformance/skills-sync.test.ts tests/conformance/agent-settings.test.ts", "review:context": "node scripts/check-node.mjs && node scripts/review-agent-context.ts", "verify:architecture": "node scripts/check-node.mjs && node scripts/check-boundaries.ts", "studio:dev": "node scripts/check-node.mjs && node scripts/studio-dev.ts", "test:agentic-readiness": "node tests/e2e/run-agentic-readiness.mjs", "runtime:check": "node scripts/check-runtime.mjs", "postinstall": "node scripts/check-runtime.mjs", "test:design-ui": "node tests/e2e/run-design-system.mjs", "rebuild:terminal": "electron-rebuild --force --only node-pty && node node_modules/node-pty/scripts/post-install.js", "test:terminal": "node tests/e2e/run-terminal-ui.mjs", "catalog:prepare": "node scripts/prepare-plugin-catalog.mjs" }, "dependencies": { "@anthropic-ai/claude-agent-sdk": "^0.3.257", "@anthropic-ai/sandbox-runtime": "^0.0.73", "@genex-ai/cli-demo": "1.36.4", "@modelcontextprotocol/sdk": "1.30.0", "@xterm/addon-fit": "0.11.0", "@xterm/xterm": "6.0.0", "es-module-lexer": "2.3.2", "node-pty": "1.1.0", "update-electron-app": "^3.3.0", "zod": "^4.4.3" }, "devDependencies": { "@base-ui/react": "1.2.0", "@biomejs/biome": "2.5.14", "@earendil-works/pi-ai": "^0.84.2", "@electron-forge/cli": "^8.0.1", "@electron-forge/maker-deb": "^8.0.1", "@electron-forge/maker-dmg": "^8.0.1", "@electron-forge/maker-rpm": "^8.0.1", "@electron-forge/maker-squirrel": "^8.0.1", "@electron-forge/maker-zip": "^8.0.1", "@electron-forge/plugin-fuses": "^8.0.1", "@electron-forge/publisher-github": "^8.0.1", "@electron/fuses": "^2.1.3", "@playwright/test": "1.63.0", "@radix-ui/react-dialog": "1.1.19", "@radix-ui/react-dropdown-menu": "2.1.20", "@radix-ui/react-slot": "1.3.0", "@radix-ui/react-switch": "1.3.3", "@radix-ui/react-tooltip": "1.2.12", "@tailwindcss/cli": "^4.3.3", "@types/node": "^24.13.6", "@types/react": "^19.2.0", "@types/react-dom": "^19.2.0", "@typescript/typescript6": "6.0.2", "class-variance-authority": "0.7.1", "clsx": "2.1.1", "electron": "43.7.6", "esbuild": "^0.28.2", "fast-check": "^4.9.0", "framer-motion": "11.18.2", "highlight.js": "11.12.0", "image-size": "file:scripts/appdmg-image-size", "lucide-react": "0.555.0", "marked": "^18.0.10", "ollama": "^0.6.3", "react": "^19.2.8", "react-dom": "^19.2.8", "tailwind-merge": "3.4.0", "tailwindcss": "^4.3.3", "three": "^0.185.1", "tw-animate-css": "1.4.0", "typescript": "7.0.2", "vgpu": "0.5.0", "zustand": "^5.0.15" }, "overrides": { "appdmg": { "image-size": "$image-size" } }, "allowScripts": { "fs-xattr@0.3.1": true, "macos-alias@0.2.12": true } }