{
  "name": "neoagent",
  "version": "3.4.1",
  "description": "Self-hosted AI agent for long-running tasks, automation, messaging, device control, and local memory",
  "license": "AGPL-3.0-only",
  "main": "server/index.js",
  "engines": {
    "node": ">=20.19.0"
  },
  "bin": {
    "neoagent": "bin/neoagent.js"
  },
  "files": [
    "bin",
    "lib",
    "runtime",
    "computer-runtime",
    "server",
    "flutter_app",
    "docs",
    "landing",
    "com.neoagent.plist",
    "LICENSE",
    "README.md",
    ".env.example"
  ],
  "scripts": {
    "start": "node server/index.js",
    "start:guest-agent": "node server/guest_agent.js",
    "dev": "node --watch server/index.js",
    "dev:backend": "./dev/backend.sh",
    "dev:web": "./dev/web.sh",
    "dev:stack": "./dev/stack.sh",
    "dev:build": "./dev/build.sh",
    "dev:test": "./dev/test.sh",
    "docs:dev": "docusaurus start",
    "docs:build": "docusaurus build",
    "docs:preview": "docusaurus serve --dir build",
    "flutter:run:web": "cd flutter_app && flutter run -d chrome --dart-define=NEOAGENT_WEB_BUILD_ID=$(node ../scripts/web_build_id.js)",
    "flutter:build:web": "cd flutter_app && BUILD_ID=$(node ../scripts/web_build_id.js) && flutter build web --output ../server/public --dart-define=NEOAGENT_BACKEND_URL=${NEOAGENT_BACKEND_URL:-} --dart-define=NEOAGENT_WEB_BUILD_ID=$BUILD_ID && printf '%s' \"$BUILD_ID\" > ../server/public/.last_build_id",
    "manage": "node bin/neoagent.js",
    "test": "npm run test:backend",
    "test:unit": "node --test --test-reporter=spec test/backend/unit/*.test.js",
    "test:integration": "node --test --test-reporter=spec test/integration/*.test.js",
    "test:security": "node --test --test-reporter=spec test/security/*.test.js",
    "test:contract": "node --test --test-reporter=spec test/contract/*.test.js",
    "test:e2e": "node --test --test-reporter=spec test/e2e/*.test.js",
    "test:ws": "node --test --test-reporter=spec test/websocket/*.test.js",
    "test:backend": "npm run test:unit && npm run test:integration && npm run test:security && npm run test:contract && npm run test:e2e && npm run test:ws",
    "flutter:test": "cd flutter_app && flutter test ../test/flutter/unit ../test/flutter/widget",
    "flutter:test:unit": "cd flutter_app && flutter test ../test/flutter/unit",
    "flutter:test:widget": "cd flutter_app && flutter test ../test/flutter/widget",
    "build:cli:sea": "node scripts/build_cli_sea.js",
    "setup:contract:check": "node scripts/generate_setup_contract.js --check",
    "release": "npx semantic-release",
    "audit:ci": "npm audit --omit=dev --audit-level=high"
  },
  "repository": {
    "type": "git",
    "url": "git+https://github.com/NeoLabs-Systems/NeoAgent.git"
  },
  "bugs": {
    "url": "https://github.com/NeoLabs-Systems/NeoAgent/issues"
  },
  "homepage": "https://github.com/NeoLabs-Systems/NeoAgent#readme",
  "dependencies": {
    "@anthropic-ai/sdk": "^0.116.0",
    "@bitwarden/cli": "^2026.7.0",
    "@gcu/iso9660": "^0.1.0",
    "@google/genai": "^2.16.0",
    "@modelcontextprotocol/sdk": "^1.30.0",
    "@novnc/novnc": "^1.7.0",
    "@remotion/cli": "^4.0.507",
    "@simplewebauthn/server": "^13.3.2",
    "@slidev/cli": "^52.19.0",
    "@slidev/theme-default": "^0.25.0",
    "baileys": "^6.7.24",
    "bcrypt": "^6.0.0",
    "better-sqlite3": "^12.11.1",
    "better-sqlite3-session-store": "^0.1.0",
    "bonjour-service": "^1.4.4",
    "cheerio": "^1.0.0-rc.12",
    "cors": "^2.8.5",
    "discord.js": "^14.27.0",
    "dotenv": "^17.4.2",
    "express": "^5.2.1",
    "express-rate-limit": "^8.6.2",
    "express-session": "^1.18.1",
    "geoip-lite": "^1.4.10",
    "googleapis": "^174.0.1",
    "helmet": "^8.0.0",
    "multer": "^2.2.0",
    "node-cron": "^4.6.0",
    "node-pty": "^1.0.0",
    "nodemailer": "^9.0.5",
    "openai": "^6.49.0",
    "otplib": "^13.4.0",
    "playwright-chromium": "^1.62.1",
    "proper-lockfile": "^4.1.2",
    "qrcode": "^1.5.4",
    "remotion": "^4.0.507",
    "sharp": "^0.35.3",
    "socket.io": "^4.8.1",
    "stripe": "^22.4.0",
    "telegraf": "^4.16.3",
    "tesseract.js": "^7.0.0",
    "uuid": "^11.1.0",
    "ws": "^8.21.3"
  },
  "overrides": {
    "@bitwarden/cli": {
      "form-data": "4.0.6",
      "inquirer": "8.2.7",
      "jsdom": "^27.4.0",
      "multer": "2.2.0"
    },
    "@hono/node-server": "^2.0.11",
    "axios": "^1.15.2",
    "basic-ftp": "^5.3.0",
    "dompurify": "^3.4.12",
    "fast-uri": "^3.1.4",
    "form-data": "4.0.6",
    "follow-redirects": "^1.16.0",
    "gaxios": "^7.3.0",
    "hono": "^4.12.31",
    "ip-address": "^10.2.0",
    "linkify-it": "^5.0.2",
    "protobufjs": "^7.6.5",
    "serialize-javascript": "^7.0.5",
    "tmp": "0.2.7",
    "undici": "^6.27.0",
    "uuid": "$uuid",
    "webpackbar": "^7.0.0",
    "ws": "$ws"
  },
  "devDependencies": {
    "@docusaurus/core": "3.10.2",
    "@docusaurus/preset-classic": "3.10.2",
    "@types/node": "^20.19.0",
    "adm-zip": "^0.6.0",
    "esbuild": "^0.28.1",
    "postject": "^1.0.0-alpha.6",
    "react": "19.2.8",
    "react-dom": "19.2.8",
    "socket.io-client": "^4.8.3",
    "supertest": "^7.2.2"
  }
}
