{ "name": "mogplex", "version": "0.2.1", "description": "Open-source platform for agent-native software development: coding agents plan, build, test, review, and ship in isolated sandboxes", "private": true, "license": "Apache-2.0", "packageManager": "pnpm@10.12.4", "engines": { "node": ">=22.23.4 <23" }, "homepage": "https://github.com/Mogplex/mogplex#readme", "bugs": { "url": "https://github.com/Mogplex/mogplex/issues" }, "repository": { "type": "git", "url": "https://github.com/Mogplex/mogplex.git" }, "scripts": { "dev": "next dev", "build": "next build", "build:self-host-scripts": "esbuild scripts/apply-neon-migrations.ts scripts/doctor.ts --bundle --platform=node --target=node22 --format=cjs --external:pg-native --log-level=warning --outdir=.next/self-host --out-extension:.js=.cjs", "start": "next start", "lint": "node --max-old-space-size=6144 ./node_modules/eslint/bin/eslint.js --cache --cache-location node_modules/.cache/eslint/ --cache-strategy content --concurrency auto .", "lint:fix": "node --max-old-space-size=6144 ./node_modules/eslint/bin/eslint.js --cache --cache-location node_modules/.cache/eslint/ --cache-strategy content --concurrency auto --fix .", "typecheck": "tsc --noEmit", "setup:doctor": "tsx scripts/doctor.ts", "test": "vitest run", "harness:check": "node scripts/sync-harness-configs.mjs --check", "harness:sync": "node scripts/sync-harness-configs.mjs --write", "harness:smoke": "tsx scripts/harness-smoke-test.ts", "mcp:smoke": "tsx scripts/smoke-mogplex-mcp.ts", "quality:pr-review": "tsx scripts/run-pr-review-candidate.ts", "git:cleanup": "pnpm exec tsx scripts/post-merge-cleanup.ts", "billing:capacity-catalog": "pnpm exec tsx scripts/seed-capacity-stripe-catalog.ts", "billing:capacity-test-clock": "pnpm exec tsx scripts/run-capacity-stripe-test-clock.ts", "trigger:dev": "pnpm exec tsx scripts/trigger-cli.ts dev", "trigger:deploy": "pnpm exec tsx scripts/trigger-cli.ts deploy", "email:dev": "email dev --dir emails --port 3030", "test:unit": "tsx --require ./tests/support/bundler-shims.cjs --test tests/unit/*.test.ts", "test:db": "vitest run -c vitest-db.config.ts", "test:all": "pnpm test && pnpm test:unit && pnpm test:db", "test:e2e": "playwright test", "prepare": "husky", "test:schema-compatibility": "node scripts/check-schema-compatibility.mjs" }, "lint-staged": { "*.{ts,tsx}": [ "pnpm exec eslint --fix", "bash -c 'pnpm exec tsc --noEmit --pretty false'" ] }, "pnpm": { "overrides": { "@babel/core": "7.29.6", "@opentelemetry/core": "2.8.0", "@trigger.dev/core>nanoid": "3.3.18", "ansi-to-react>linkify-it": "5.0.2", "brace-expansion": "5.0.9", "minimatch@9>brace-expansion": "2.1.4", "cookie": "0.7.0", "defu": "6.1.5", "devalue": "5.8.1", "effect": "3.20.0", "engine.io": "6.6.7", "esbuild": "0.28.1", "fast-xml-parser": "5.7.0", "fast-xml-builder": "1.1.7", "fast-uri": "3.1.5", "flatted": "3.4.2", "file-type": "21.3.3", "js-yaml": "4.3.1", "lodash": "4.18.0", "lodash-es": "4.18.0", "next": "16.4.1", "picomatch": "4.0.4", "postcss": "8.5.23", "protobufjs": "7.6.5", "sharp": "0.35.0", "smol-toml": "1.6.1", "valibot": "1.4.2", "svelte": "5.55.7", "systeminformation": "5.31.7", "typed-rest-client>qs": "6.15.2", "undici": "7.30.1", "uuid": "11.1.1", "vite": "7.3.5", "ws": "8.21.0", "yaml": "2.8.3", "dompurify": "3.4.14", "postcss>nanoid": "3.3.18", "deepmerge-ts": "8.0.0" } }, "dependencies": { "@ai-sdk/anthropic": "^4.0.57", "@ai-sdk/mcp": "^2.0.53", "@ai-sdk/openai": "^4.0.70", "@ai-sdk/react": "^4.0.109", "@better-auth/infra": "^0.3.7", "@better-auth/oauth-provider": "1.7.7", "@better-auth/sso": "^1.7.7", "@c15t/nextjs": "^2.1.0", "@dnd-kit/core": "^6.3.1", "@dnd-kit/utilities": "^3.2.2", "@floating-ui/dom": "^1.7.5", "@hookform/resolvers": "^3.9.1", "@monaco-editor/react": "^4.7.0", "@openrouter/ai-sdk-provider": "^3.0.0", "@pierre/diffs": "^1.1.2", "@pierre/trees": "1.0.0-beta.3", "@radix-ui/react-accordion": "1.2.12", "@radix-ui/react-alert-dialog": "1.1.15", "@radix-ui/react-aspect-ratio": "1.1.8", "@radix-ui/react-avatar": "1.1.11", "@radix-ui/react-checkbox": "1.3.3", "@radix-ui/react-collapsible": "1.1.12", "@radix-ui/react-context-menu": "2.2.16", "@radix-ui/react-dialog": "1.1.15", "@radix-ui/react-dropdown-menu": "2.1.16", "@radix-ui/react-hover-card": "1.1.15", "@radix-ui/react-label": "2.1.8", "@radix-ui/react-menubar": "1.1.16", "@radix-ui/react-navigation-menu": "1.2.14", "@radix-ui/react-popover": "1.1.15", "@radix-ui/react-progress": "1.1.8", "@radix-ui/react-radio-group": "1.3.8", "@radix-ui/react-scroll-area": "1.2.10", "@radix-ui/react-select": "2.2.6", "@radix-ui/react-separator": "1.1.8", "@radix-ui/react-slider": "1.3.6", "@radix-ui/react-slot": "1.2.4", "@radix-ui/react-switch": "1.2.6", "@radix-ui/react-tabs": "1.1.13", "@radix-ui/react-toast": "1.2.15", "@radix-ui/react-toggle": "1.1.10", "@radix-ui/react-toggle-group": "1.1.11", "@radix-ui/react-tooltip": "1.2.8", "@radix-ui/react-use-controllable-state": "^1.2.6", "@react-email/components": "^1.0.12", "@rive-app/react-webgl2": "^4.31.0", "@sentry/nextjs": "^10.75.2", "@streamdown/cjk": "^1.0.3", "@streamdown/code": "^1.1.1", "@streamdown/math": "^1.0.2", "@streamdown/mermaid": "^1.0.2", "@supabase/supabase-js": "^2.99.1", "@tanstack/react-table": "^8.21.3", "@trigger.dev/sdk": "4.8.3", "@trigger.dev/slack": "4.8.3", "@vercel/analytics": "1.6.1", "@vercel/sandbox": "2.0.0-beta.19", "@vercel/speed-insights": "2.0.0", "@wterm/core": "0.3.2", "@wterm/dom": "0.3.2", "@wterm/react": "0.3.2", "@xyflow/react": "^12.10.2", "ai": "^7.0.106", "ansi-to-react": "^6.2.6", "autoprefixer": "^10.4.20", "better-auth": "^1.7.7", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", "cmdk": "1.1.1", "date-fns": "4.1.0", "diff": "^9.0.0", "embla-carousel-react": "8.6.0", "geist": "^1.7.0", "iconoir-react": "^7.11.0", "input-otp": "1.4.2", "jose": "^6.2.3", "json5": "2.2.3", "just-bash": "^2.13.1", "libsodium-wrappers": "^0.8.2", "lucide-react": "^1.30.0", "media-chrome": "^4.19.2", "monaco-editor": "^0.56.0", "motion": "^13.0.0", "nanoid": "^6.0.1", "next": "16.4.1", "next-themes": "^0.4.6", "pg": "^8.22.0", "picomatch": "4.0.4", "radix-ui": "^1.6.7", "react": "19.2.4", "react-day-picker": "9.13.2", "react-dom": "19.2.4", "react-email": "^6.1.4", "react-hook-form": "^7.54.1", "react-jsx-parser": "^2.4.1", "react-resizable-panels": "^2.1.7", "react-xtermjs": "^1.0.10", "recharts": "2.15.0", "semver": "^7.8.5", "server-only": "^0.0.1", "shiki": "^3.23.0", "sonner": "^1.7.1", "streamdown": "^2.5.0", "stripe": "^22.4.0", "swr": "^2.4.1", "tailwind-merge": "^3.3.1", "tokenlens": "^1.3.1", "undici": "7.30.1", "use-stick-to-bottom": "^1.1.6", "vaul": "^1.1.2", "yaml": "2.8.3", "zod": "^4.6.6", "zustand": "^5.0.0" }, "devDependencies": { "@axe-core/playwright": "^4.13.0", "@electric-sql/pglite": "^0.4.5", "@eslint/compat": "^2.1.0", "@eslint/js": "^10.0.1", "@next/eslint-plugin-next": "16.3.8", "@playwright/test": "^1.58.2", "@react-email/ui": "^6.1.4", "@stryker-mutator/core": "9.6.1", "@stryker-mutator/vitest-runner": "9.6.1", "@tailwindcss/postcss": "^4.2.0", "@tanstack/eslint-plugin-query": "^5.96.2", "@testing-library/react": "^16.3.2", "@trigger.dev/build": "4.8.3", "@types/jsdom": "^28.0.3", "@types/libsodium-wrappers": "^0.8.2", "@types/node": "^22", "@types/pg": "^8.20.3", "@types/picomatch": "^4.0.3", "@types/react": "19.2.14", "@types/react-dom": "19.2.3", "@types/semver": "^7.8.0", "@typescript-eslint/eslint-plugin": "^8.57.0", "@typescript-eslint/parser": "^8.57.0", "@vitest/coverage-v8": "^4.1.11", "esbuild": "0.28.1", "eslint": "^10.2.0", "eslint-config-prettier": "^10.1.8", "eslint-import-resolver-typescript": "^4.4.4", "eslint-plugin-compat": "^7.0.1", "eslint-plugin-cypress": "^6.2.2", "eslint-plugin-github": "^6.0.0", "eslint-plugin-html": "^8.1.4", "eslint-plugin-import-x": "^4.16.2", "eslint-plugin-jsx-a11y": "^6.10.2", "eslint-plugin-n": "^17.24.0", "eslint-plugin-prettier": "^5.5.5", "eslint-plugin-promise": "^7.2.1", "eslint-plugin-react": "^7.37.5", "eslint-plugin-react-hooks": "^7.0.1", "eslint-plugin-react-refresh": "^0.5.2", "eslint-plugin-sonarjs": "^4.0.2", "eslint-plugin-storybook": "^10.3.4", "eslint-plugin-unicorn": "^64.0.0", "eslint-plugin-unused-imports": "^4.4.1", "globals": "^17.4.0", "husky": "^9.1.7", "jsdom": "^29.1.1", "kysely": "0.29.7", "lint-staged": "^16.4.0", "postcss": "^8.5", "prettier": "^3.8.1", "prettier-plugin-svelte": "^3.5.1", "prettier-plugin-tailwindcss": "^0.7.2", "stylelint": "^17.6.0", "stylelint-config-idiomatic-order": "^10.0.0", "stylelint-config-standard": "^40.0.0", "stylelint-prettier": "^5.0.3", "svelte": "5.55.7", "tailwindcss": "^4.2.0", "tsx": "^4.23.1", "tw-animate-css": "1.3.3", "typescript": "5.7.3", "ultracite": "^7.4.3", "vitest": "^4.1.11" } }