{
  "name": "9router",
  "version": "0.4.39",
  "description": "9Router CLI - Start and manage 9Router server",
  "bin": {
    "9router": "./cli.js"
  },
  "files": [
    "cli.js",
    "src",
    "hooks",
    "app",
    "README.md",
    "LICENSE"
  ],
  "scripts": {
    "dev": "nodemon -I --watch cli.js --watch src --watch hooks --ext js,json cli.js",
    "build": "node scripts/build-cli.js",
    "pack:cli": "npm run build && npm pack --pack-destination ../..",
    "publish:cli": "npm run build && npm publish",
    "postinstall": "node hooks/postinstall.js",
    "prepublishOnly": "npm run build"
  },
  "dependencies": {
    "enquirer": "^2.4.1",
    "node-forge": "^1.3.3",
    "node-machine-id": "^1.1.12",
    "react": "19.2.1",
    "react-dom": "19.2.1"
  },
  "comment_sqlite": "sql.js + better-sqlite3 are NOT bundled here. They are installed into ~/.9router/runtime/node_modules by hooks/postinstall.js (and re-checked at runtime by cli.js). This avoids Windows EBUSY errors when updating the global CLI, since native .node files no longer live under the locked install dir.",
  "comment_systray": "systray2 is NOT bundled here. It is lazy-installed into ~/.9router/runtime/node_modules by hooks/postinstall.js on macOS/Linux only. Windows uses PowerShell NotifyIcon (zero binary). This avoids shipping unsigned Go binaries that trigger antivirus false positives (Kaspersky). We use the systray2 fork because the legacy systray@1.0.5 ships a 2017 x86_64 binary that fails on modern macOS dyld.",
  "engines": {
    "node": ">=18.0.0"
  },
  "keywords": [
    "9router",
    "cli",
    "proxy",
    "ai",
    "api"
  ],
  "license": "MIT",
  "devDependencies": {
    "nodemon": "^3.1.14"
  }
}
