{
  "name": "@aion0/forge",
  "version": "0.15.0",
  "description": "Unified AI workflow platform — multi-model task orchestration, persistent sessions, web terminal, remote access",
  "type": "module",
  "engines": {
    "node": ">=20"
  },
  "scripts": {
    "dev": "next dev --turbopack",
    "build": "next build",
    "start": "next start",
    "forge": "npx tsx cli/mw.ts",
    "check:unsafe": "node scripts/check-unsafe-exec.mjs .",
    "check:reclaim": "node scripts/check-unsafe-reclaim.mjs .",
    "test:security": "npx tsx scripts/security/injection.test.ts",
    "test:reclaim": "npx tsx lib/__tests__/safe-reclaim.test.ts && npx tsx lib/__tests__/cloudflared-identity.test.ts && npx tsx lib/__tests__/tmux-safe.test.ts && node scripts/__tests__/check-unsafe-reclaim.test.mjs && node bin/__tests__/reap-identity.test.mjs",
    "lint": "eslint app lib cli",
    "lint:strict": "eslint app/api --max-warnings 0",
    "build:cli": "esbuild cli/mw.ts --bundle --platform=node --format=esm --target=node18 --outfile=cli/mw.mjs --banner:js='#!/usr/bin/env node' --external:better-sqlite3 --external:node-pty && chmod +x cli/mw.mjs",
    "prepack": "npm run build:cli",
    "postinstall": "node bin/setup-browser.mjs --postinstall"
  },
  "bin": {
    "forge": "cli/mw.mjs",
    "forge-server": "bin/forge-server.mjs",
    "mw": "cli/mw.mjs"
  },
  "keywords": [
    "ai",
    "workflow",
    "claude",
    "task-orchestration",
    "terminal",
    "tmux",
    "multi-model",
    "telegram"
  ],
  "author": "",
  "license": "MIT",
  "packageManager": "pnpm@10.32.1",
  "dependencies": {
    "@ai-sdk/anthropic": "^3.0.58",
    "@ai-sdk/google": "^3.0.43",
    "@ai-sdk/openai": "^3.0.41",
    "@anthropic-ai/sdk": "^0.96.0",
    "@modelcontextprotocol/sdk": "^1.28.0",
    "@types/adm-zip": "^0.5.8",
    "@xterm/addon-fit": "^0.11.0",
    "@xterm/addon-search": "^0.16.0",
    "@xterm/addon-unicode11": "^0.9.0",
    "@xterm/addon-webgl": "^0.19.0",
    "@xterm/xterm": "^6.0.0",
    "@xyflow/react": "^12.10.1",
    "adm-zip": "^0.5.17",
    "ai": "^6.0.116",
    "better-sqlite3": "^12.6.2",
    "cron-parser": "^5.5.0",
    "esbuild": "^0.27.3",
    "next": "^16.2.9",
    "next-auth": "5.0.0-beta.30",
    "node-pty": "1.0.0",
    "nodemailer": "^6.10.1",
    "react": "^19.2.4",
    "react-dom": "^19.2.4",
    "react-markdown": "^10.1.0",
    "remark-gfm": "^4.0.1",
    "undici": "^8.3.0",
    "unist-util-visit": "^5.1.0",
    "ws": "^8.19.0",
    "yaml": "^2.8.2",
    "zod": "^4.3.6"
  },
  "optionalDependencies": {
    "playwright": "^1.61.1"
  },
  "pnpm": {
    "onlyBuiltDependencies": [
      "better-sqlite3",
      "esbuild",
      "node-pty"
    ]
  },
  "devDependencies": {
    "@tailwindcss/postcss": "^4.2.1",
    "@types/better-sqlite3": "^7.6.13",
    "@types/node": "^25.4.0",
    "@types/nodemailer": "^6.4.0",
    "@types/react": "^19.2.14",
    "@types/react-dom": "^19.2.3",
    "@types/ws": "^8.18.1",
    "linkedom": "^0.18.12",
    "postcss": "^8.5.8",
    "tailwindcss": "^4.2.1",
    "tsx": "^4.21.0",
    "typescript": "^5.9.3"
  }
}
