{
  "name": "juju-mcp",
  "version": "0.8.2",
  "description": "JUJU — local-first MCP server with 74 coding, screen, media, speech, browser, game and workflow tools; embedded OAuth and owner-controlled workspace permissions.",
  "type": "module",
  "license": "MIT",
  "engines": {
    "node": ">=22.12.0"
  },
  "bin": {
    "juju": "dist/cli/main.js",
    "juju-media-setup": "scripts/setup-multimodal.mjs"
  },
  "exports": {
    ".": "./dist/index.js"
  },
  "files": [
    "dist",
    "schemas",
    "examples",
    "docs",
    "README.md",
    "LICENSE",
    "native",
    "scripts/setup-multimodal.mjs",
    "scripts/guard-publish.mjs"
  ],
  "scripts": {
    "build": "tsc -p tsconfig.build.json && node scripts/emit-schemas.mjs && node scripts/copy-ui.mjs",
    "typecheck": "tsc -p tsconfig.json --noEmit",
    "lint": "eslint src tests scripts",
    "test:unit": "vitest run tests/unit",
    "test:integration": "vitest run tests/integration",
    "test:security": "vitest run tests/security",
    "test:compat": "vitest run tests/compatibility",
    "test:pack": "vitest run tests/packaging",
    "test:windows": "vitest run tests/unit/windowsPlatform.test.ts tests/unit/windowsAclContract.test.ts tests/integration/windowsRuntime.test.ts tests/security/windowsNative.test.ts tests/security/windowsAclOwner.test.ts tests/security/ipcAuthentication.test.ts tests/security/rollbackPathPolicy.test.ts",
    "test:all": "npm run typecheck && npm run lint && vitest run tests/unit tests/integration tests/security tests/compatibility && npm run test:pack",
    "prepublishOnly": "node scripts/guard-publish.mjs",
    "desktop:setup": "node dist/cli/main.js desktop setup",
    "multimodal:setup": "node scripts/setup-multimodal.mjs",
    "test:desktop:native": "npm run build && node scripts/test-desktop-native.mjs"
  },
  "dependencies": {
    "@modelcontextprotocol/express": "2.0.0",
    "@modelcontextprotocol/node": "2.0.0",
    "@modelcontextprotocol/server": "2.0.0",
    "better-sqlite3": "13.0.3",
    "commander": "15.0.0",
    "cron-parser": "5.10.0",
    "diff": "^9.0.0",
    "express": "5.2.1",
    "ignore": "^7.0.9",
    "jose": "6.2.12",
    "oidc-provider": "9.12.2",
    "picomatch": "^4.0.7",
    "playwright": "1.63.0",
    "sharp": "0.35.4",
    "typescript": "5.9.3",
    "zod": "^4.2.0"
  },
  "devDependencies": {
    "@modelcontextprotocol/client": "2.0.0",
    "@types/better-sqlite3": "^7.6.13",
    "@types/diff": "^7.0.2",
    "@types/express": "^5.0.0",
    "@types/node": "^22.15.0",
    "@types/oidc-provider": "^9.1.0",
    "@types/picomatch": "^4.0.3",
    "eslint": "^9.39.0",
    "pyright": "^1.1.413",
    "typescript-eslint": "^8.70.0",
    "vitest": "5.0.0"
  },
  "keywords": [
    "juju",
    "mcp",
    "mcp-server",
    "model-context-protocol",
    "coding-tools",
    "ai-coding",
    "developer-tools",
    "local-first",
    "stdio",
    "oauth",
    "chatgpt",
    "codex",
    "typescript",
    "semantic-search",
    "code-editing",
    "parallel-jobs",
    "cron",
    "scheduled-tasks",
    "owner-consent",
    "multimodal",
    "browser-automation",
    "video",
    "speech-to-text",
    "workflow"
  ]
}
