{
  "name": "@circuitwall/jarela",
  "version": "1.41.5",
  "description": "Jarela — local chat interface for LangGraph agents (multi-provider, single-process, SQLite-backed).",
  "license": "Apache-2.0",
  "author": "Andrew Ge Wu",
  "homepage": "https://github.com/CircuitWall/jarela#readme",
  "bugs": {
    "url": "https://github.com/CircuitWall/jarela/issues"
  },
  "repository": {
    "type": "git",
    "url": "git+https://github.com/CircuitWall/jarela.git"
  },
  "keywords": [
    "langgraph",
    "llm",
    "chat",
    "agents",
    "mcp",
    "anthropic",
    "openai",
    "google-genai",
    "cohere",
    "deepseek",
    "self-hosted",
    "local-first",
    "nextjs",
    "pwa"
  ],
  "bin": {
    "jarela": "scripts/jarela-bin.mjs"
  },
  "engines": {
    "node": ">=22"
  },
  "workspaces": [
    "packages/*"
  ],
  "exports": {
    ".": null,
    "./package.json": "./package.json",
    "./lib/env/app-config": "./lib/env/app-config.ts",
    "./lib/providers/types": "./lib/providers/types.ts",
    "./lib/tools/types": "./lib/tools/runtime/types.ts",
    "./lib/tools/registry": "./lib/tools/runtime/registry.ts",
    "./lib/mcp/registry": "./lib/mcp/registry.ts"
  },
  "files": [
    ".next/standalone",
    "!.next/standalone/public/sw.js",
    "!.next/standalone/public/swe-worker-*.js",
    "app",
    "lib",
    "components",
    "contexts",
    "hooks",
    "api",
    "browser-extension",
    "!browser-extension/**/*.test.mjs",
    "public",
    "!public/sw.js",
    "!public/swe-worker-*.js",
    "scripts/jarela-bin.mjs",
    "scripts/build-extension.mjs",
    "scripts/first-run-prompt.mjs",
    "scripts/postinstall-hint.mjs",
    "scripts/optimize-client-chunks.mjs",
    "scripts/service-install.mjs",
    "scripts/start-prod.mjs",
    "scripts/update.mjs",
    "scripts/postbuild.mjs",
    "scripts/check-integration-manifests.mjs",
    "scripts/check-change-impact.mjs",
    "scripts/run-workspace-script-if-present.mjs",
    "scripts/check-npm-package.mjs",
    "scripts/install-to-system.sh",
    "scripts/install-to-system.ps1",
    "scripts/installed-launcher.ps1",
    "scripts/installed-launcher.vbs",
    "scripts/install-tailscale-serve.ps1",
    "scripts/uninstall-tailscale-serve.ps1",
    "scripts/uninstall-from-system.ps1",
    "scripts/release-docker.mjs",
    "next.config.ts",
    "tsconfig.json",
    "postcss.config.mjs",
    "CHANGELOG.md",
    "docs/INSTALL.md"
  ],
  "scripts": {
    "setup:hooks": "node scripts/setup-git-hooks.mjs",
    "packages:build": "node scripts/run-workspace-script-if-present.mjs build",
    "packages:test": "node scripts/run-workspace-script-if-present.mjs test",
    "prepare": "npm run packages:build --silent 1>&2",
    "postinstall": "node scripts/postinstall-hint.mjs",
    "dev": "next dev --webpack -p 4312",
    "build": "npm run packages:build && next build --webpack && node scripts/postbuild.mjs",
    "build:extension": "node scripts/build-extension.mjs",
    "start": "node scripts/start-prod.mjs",
    "lint": "eslint . && node scripts/check-integration-manifests.mjs && node scripts/check-dockerfile-workspaces.mjs",
    "security:audit": "npm audit --omit=dev --audit-level=high",
    "security:secrets": "node scripts/scan-secrets.mjs --all",
    "security:terms": "node scripts/scan-sensitive-terms.mjs --all",
    "security:link-preview": "node scripts/check-link-preview-version.mjs",
    "security:routes": "node scripts/check-route-bundles.mjs",
    "security:ci": "npm run security:audit && npm run security:secrets && npm run security:terms && npm run security:link-preview",
    "check:conventions": "node scripts/check-git-conventions.mjs --branch",
    "check:impact": "node scripts/check-change-impact.mjs",
    "pricing:snapshot": "node scripts/snapshot-pricing.mjs",
    "prompts:dump": "node scripts/dump-prompts.mjs",
    "prepublishOnly": "node scripts/rewrite-workspace-deps.mjs",
    "test:package": "node scripts/check-npm-package.mjs",
    "test": "vitest run",
    "test:watch": "vitest",
    "test:eval": "vitest run lib/agents/output-validator/eval.test.ts",
    "test:hooks": "vitest run hooks",
    "test:hooks:watch": "vitest hooks",
    "lint:hooks": "eslint hooks",
    "test:coverage": "vitest run --coverage",
    "test:e2e:coverage": "c8 --all --include \"tests/e2e/**/*.ts\" --reporter=text-summary --reporter=lcov --check-coverage --lines 80 --functions 80 --branches 80 --statements 80 playwright test",
    "test:live": "node scripts/live-test.mjs",
    "test:live:full": "node scripts/live-test.mjs --llm",
    "test:live:isolated": "node scripts/live-test-isolated.mjs",
    "test:live:isolated:full": "node scripts/live-test-isolated.mjs --llm",
    "test:e2e": "playwright test",
    "test:e2e:ui": "playwright test --ui",
    "release:docker": "node scripts/release-docker.mjs",
    "release:docker:dry": "node scripts/release-docker.mjs --dry-run"
  },
  "dependencies": {
    "@anthropic-ai/sdk": "^0.122.0",
    "@langchain/cohere": "^1.0.5",
    "@langchain/core": "^1.2.9",
    "@langchain/deepseek": "^1.1.10",
    "@langchain/google-genai": "^2.3.0",
    "@langchain/langgraph": "^1.4.13",
    "@langchain/langgraph-checkpoint": "^1.1.5",
    "@langchain/mcp-adapters": "^1.1.4",
    "@tailwindcss/postcss": "^4.3.0",
    "@whiskeysockets/baileys": "^7.0.0-rc13",
    "autoprefixer": "^10.5.0",
    "cron-parser": "^5.10.0",
    "cross-spawn": "^7.0.6",
    "dompurify": "^3.4.15",
    "highlight.js": "^11.12.0",
    "lucide-react": "^1.35.0",
    "mermaid": "^11.17.2",
    "next": "^16.3.3",
    "openai": "^7.8.0",
    "postcss": "^8.5.26",
    "qrcode": "^1.5.4",
    "react": "^19.2.8",
    "react-dom": "^19.2.8",
    "react-markdown": "^10.1.0",
    "rehype-highlight": "^7.0.2",
    "rehype-raw": "^7.0.0",
    "rehype-sanitize": "^6.0.0",
    "remark-gfm": "^4.0.1",
    "simple-icons": "^16.23.0",
    "tailwindcss": "^4.3.0",
    "undici": "^8.3.0",
    "ws": "^8.21.3",
    "zod": "^4.5.1"
  },
  "optionalDependencies": {
    "@napi-rs/keyring": "^1.3.0"
  },
  "overrides": {
    "next": {
      "postcss": "$postcss"
    },
    "@serwist/build": {
      "source-map": "^0.7.6"
    },
    "browserslist": "^4.28.8"
  },
  "devDependencies": {
    "@playwright/test": "^1.60.0",
    "@serwist/next": "^9.5.11",
    "@testing-library/dom": "^10.4.1",
    "@testing-library/react": "^16.3.3",
    "@types/cross-spawn": "^6.0.6",
    "@types/node": "^26.4.0",
    "@types/qrcode": "^1.5.6",
    "@types/react": "^19.2.14",
    "@types/react-dom": "^19.2.5",
    "@types/ws": "^8.18.1",
    "@vitest/coverage-v8": "^4.1.11",
    "c8": "^12.0.0",
    "eslint": "^9.39.4",
    "eslint-config-next": "^16.3.3",
    "jsdom": "^29.1.1",
    "serwist": "^9.5.11",
    "typescript": "^6.0.3",
    "vitest": "^4.1.11"
  }
}
