{
  "name": "@xopcai/xopc",
  "version": "0.0.196",
  "description": "Local-first AI system that remembers context, coordinates AI, and sustains long-term progress.",
  "type": "module",
  "main": "dist/src/index.js",
  "types": "dist/src/index.d.ts",
  "exports": {
    ".": {
      "types": "./dist/src/index.d.ts",
      "import": "./dist/src/index.js",
      "default": "./dist/src/index.js"
    },
    "./extension-sdk": {
      "types": "./dist/src/extensions/sdk/index.d.ts",
      "import": "./dist/src/extensions/sdk/index.js",
      "default": "./dist/src/extensions/sdk/index.js"
    },
    "./extension-sdk/*": "./dist/src/extensions/sdk/*",
    "./*": "./dist/src/*"
  },
  "bin": {
    "xopc": "./dist/src/cli/bin.js"
  },
  "files": [
    "dist",
    "skills"
  ],
  "publishConfig": {
    "access": "public"
  },
  "keywords": [
    "agent-os",
    "ai-agent",
    "byok",
    "cli",
    "cron",
    "desktop",
    "extensions",
    "gateway",
    "goal-loop-os",
    "llm",
    "local-first",
    "mcp",
    "multi-agent",
    "ollama",
    "self-hosted",
    "telegram",
    "tui",
    "voice-ai",
    "weixin",
    "workflow"
  ],
  "author": "xopcai <lyxopc.ai@gmail.com>",
  "license": "MIT",
  "repository": {
    "type": "git",
    "url": "https://github.com/xopcai/xopc.git"
  },
  "bugs": {
    "url": "https://github.com/xopcai/xopc/issues"
  },
  "homepage": "https://xopc.ai",
  "engines": {
    "node": ">=22.19.0"
  },
  "dependencies": {
    "@composio/core": "0.14.1",
    "@composio/experimental": "0.2.0",
    "@earendil-works/pi-agent-core": "0.84.2",
    "@earendil-works/pi-ai": "0.84.2",
    "@earendil-works/pi-coding-agent": "0.84.2",
    "@earendil-works/pi-tui": "0.84.2",
    "@grammyjs/runner": "^2.0.3",
    "@hono/node-server": "^2.0.4",
    "@inquirer/prompts": "^8.5.0",
    "@modelcontextprotocol/sdk": "1.29.0",
    "@mozilla/readability": "^0.6.0",
    "@sinclair/typebox": "^0.34.49",
    "@vscode/ripgrep": "^1.18.0",
    "abort-controller": "^3.0.0",
    "adm-zip": "^0.6.0",
    "ajv": "^8.20.0",
    "chalk": "^5.6.2",
    "chokidar": "^5.0.0",
    "cli-table3": "^0.6.5",
    "commander": "^14.0.3",
    "cron-parser": "^5.5.0",
    "dotenv": "^17.4.2",
    "glob": "^13.0.6",
    "grammy": "^1.43.0",
    "hono": "^4.12.25",
    "jiti": "^2.7.0",
    "js-yaml": "^4.1.1",
    "linkedom": "0.18.13",
    "markdown-it": "^14.2.0",
    "node-edge-tts": "^1.2.10",
    "openai": "^6.48.0",
    "pino": "^10.3.1",
    "pino-pretty": "^13.1.3",
    "proper-lockfile": "^4.1.2",
    "semver": "^7.8.1",
    "silk-wasm": "^3.7.1",
    "thread-stream": "^4.2.0",
    "undici": "^8.9.0",
    "uuid": "^14.0.0",
    "ws": "^8.21.0",
    "zod": "^4.4.3"
  },
  "peerDependencies": {
    "@huggingface/transformers": "3.8.1",
    "@larksuiteoapi/node-sdk": "^1.66.0",
    "playwright-core": "^1.60.0",
    "sherpa-onnx-node": "1.13.4"
  },
  "peerDependenciesMeta": {
    "@huggingface/transformers": {
      "optional": true
    },
    "@larksuiteoapi/node-sdk": {
      "optional": true
    },
    "playwright-core": {
      "optional": true
    },
    "sherpa-onnx-node": {
      "optional": true
    }
  },
  "devDependencies": {
    "@huggingface/transformers": "3.8.1",
    "@larksuiteoapi/node-sdk": "^1.66.0",
    "@resvg/resvg-js": "^2.6.2",
    "@tailwindcss/vite": "^4.3.0",
    "@types/adm-zip": "^0.5.8",
    "@types/js-yaml": "^4.0.9",
    "@types/jsdom": "^28.0.3",
    "@types/markdown-it": "^14.1.2",
    "@types/node": "^25.9.1",
    "@types/qrcode-terminal": "^0.12.2",
    "@types/ws": "^8.18.1",
    "@vitejs/plugin-react-swc": "^4.3.1",
    "cross-env": "^10.1.0",
    "dependency-cruiser": "^17.4.3",
    "electron": "^42.4.1",
    "electron-builder": "^26.15.3",
    "electron-updater": "6.8.9",
    "electron-vite": "^6.0.0-beta.1",
    "esbuild": "^0.28.1",
    "eslint": "^10.4.0",
    "jsdom": "^29.1.1",
    "onnxruntime-common": "1.21.0",
    "playwright-core": "^1.60.0",
    "sherpa-onnx-node": "1.13.4",
    "svgo": "4.0.2",
    "tailwindcss": "^4.3.0",
    "tsdown": "0.21.10",
    "tsx": "^4.22.3",
    "typescript": "^6.0.3",
    "typescript-eslint": "^8.60.0",
    "vite": "^8.0.16",
    "vitepress": "^1.6.4",
    "vitest": "4.1.5",
    "vue": "^3.5.35",
    "@xopcai/endpoint-tools-protocol": "0.0.0",
    "@xopcai/realtime-protocol": "0.0.0",
    "@xopcai/gateway-contract": "0.0.0",
    "@xopcai/realtime-client": "0.0.0"
  },
  "scripts": {
    "assets:brand": "node scripts/generate-brand-assets.mjs",
    "assets:brand:check": "node scripts/generate-brand-assets.mjs --check",
    "build:node": "node scripts/tsdown-build.mjs",
    "build:types": "tsc -p tsconfig.dts.json",
    "build:ci": "pnpm run build:node && pnpm run build:web",
    "build": "pnpm run build:node && pnpm run build:types && pnpm run build:web",
    "docker:build": "sh -c 'docker buildx version >/dev/null 2>&1 || { echo \"Docker buildx is required. Install it with: brew install docker-buildx && mkdir -p ~/.docker/cli-plugins && ln -sf $(brew --prefix)/opt/docker-buildx/bin/docker-buildx ~/.docker/cli-plugins/docker-buildx\" >&2; exit 1; }; DOCKER_BUILDKIT=1 docker build --build-arg XOPC_APT_MIRROR=\"${XOPC_APT_MIRROR:-}\" -t xopc:local .'",
    "docker:run": "docker run --rm -it -p 18790:18790 -v ${HOME}/.xopc:/home/node/.xopc xopc:local",
    "docker:compose:up": "sh -c 'if docker compose version >/dev/null 2>&1; then DOCKER_BUILDKIT=1 docker compose up --build xopc-gateway; else COMPOSE_DOCKER_CLI_BUILD=1 DOCKER_BUILDKIT=1 docker-compose up --build xopc-gateway; fi'",
    "docker:compose:down": "sh -c 'if docker compose version >/dev/null 2>&1; then docker compose down; else docker-compose down; fi'",
    "typecheck": "tsc --noEmit -p tsconfig.json",
    "build:web": "pnpm -C web run build",
    "dev:web": "pnpm -C web run dev",
    "dev:mobile": "pnpm -C apps/mobile-expo start",
    "dev:mobile:expo": "pnpm -C apps/mobile-expo start",
    "ios:mobile": "pnpm -C apps/mobile-expo ios",
    "android:mobile": "pnpm -C apps/mobile-expo android",
    "mobile:lint": "pnpm -C apps/mobile-expo run lint",
    "mobile:typecheck": "pnpm -C apps/mobile-expo run typecheck",
    "mobile:test": "pnpm -C apps/mobile-expo test",
    "mobile:test:stream": "pnpm --filter @xopcai/agent-stream-client test",
    "mobile:release:patch": "bash scripts/apps/mobile-expo/release-patch.sh",
    "dev": "tsx src/cli/bin.ts",
    "dev:init": "sh -c 'mkdir -p \"$HOME/.xopc-dev\" && XOPC_STATE_DIR=\"$HOME/.xopc-dev\" XOPC_CONFIG_PATH=\"$HOME/.xopc-dev/xopc.json\" XOPC_CONFIG=\"$HOME/.xopc-dev/xopc.json\" XOPC_LOG_DIR=\"$HOME/.xopc-dev/logs\" XOPC_LOG_LEVEL=info tsx src/cli/bin.ts init \"$@\"' --",
    "dev:gateway": "sh -c 'mkdir -p \"$HOME/.xopc-dev\" && XOPC_STATE_DIR=\"$HOME/.xopc-dev\" XOPC_CONFIG_PATH=\"$HOME/.xopc-dev/xopc.json\" XOPC_CONFIG=\"$HOME/.xopc-dev/xopc.json\" XOPC_LOG_DIR=\"$HOME/.xopc-dev/logs\" XOPC_LOG_LEVEL=info tsx src/cli/bin.ts gateway \"$@\"' --",
    "start": "node dist/src/cli/bin.js",
    "test": "vitest run src extensions/telegram/src extensions/feishu/src extensions/weixin/src",
    "test:skills": "vitest run src/agent/skills/__tests__",
    "test:skills:regression": "./scripts/test-skills.sh",
    "test:skills:all": "npm run test:skills && npm run test:skills:regression",
    "skills:test": "tsx src/cli/bin.ts skills test",
    "skills:validate": "tsx src/cli/bin.ts skills test validate",
    "skills:security": "tsx src/cli/bin.ts skills test security",
    "lint": "eslint && pnpm -C web run lint",
    "depcheck": "depcruise --config .dependency-cruiser.cjs src",
    "depcheck:graph": "depcruise --config .dependency-cruiser.cjs --output-type mermaid src > docs/dependency-graph.mmd",
    "depcheck:archi": "depcruise --config .dependency-cruiser.cjs --output-type archi src > docs/dependency-archi.dot",
    "depcheck:html": "depcruise --config .dependency-cruiser.cjs --output-type err-html src > docs/dependency-violations.html",
    "test:startup:bench": "node --import tsx scripts/bench-cli-startup.ts",
    "test:startup:bench:check": "node --import tsx scripts/bench-cli-startup.ts --runs 3 --warmup 1",
    "test:startup:gateway": "node --import tsx scripts/bench-gateway-startup.ts",
    "test:startup:gateway:check": "node --import tsx scripts/bench-gateway-startup.ts --runs 2 --warmup 0 --ready-budget-ms 20000",
    "test:startup:imports": "node scripts/check-cli-bootstrap-imports.mjs",
    "eval:coder": "tsx evals/coder/apps/cli/src/main.ts",
    "eval:coder:check": "pnpm -C evals/coder run check",
    "eval:coder:smoke": "pnpm -C evals/coder run smoke",
    "eval:coder:web": "tsx evals/coder/apps/web/src/server.ts",
    "tunnel:broker-tls:verify": "node scripts/tunnel-broker-tls-verify.mjs",
    "release:patch": "bash scripts/release-patch.sh",
    "growth:snapshot": "node scripts/growth-snapshot.mjs",
    "growth:github-community": "node scripts/growth-github-community.mjs",
    "release:check-package": "node scripts/check-publish-manifest.mjs",
    "docs:dev": "vitepress dev docs",
    "docs:check": "node scripts/check-docs.mjs",
    "docs:build": "pnpm run docs:check && vitepress build docs",
    "docs:preview": "vitepress preview docs",
    "docs:extension-sdk": "pnpm -C packages/extension-ui-sdk run docs",
    "build:extensions-ui": "node scripts/build-extensions-ui.mjs",
    "pack:browser-ext": "pnpm -C packages/browser-ext run pack",
    "sync:browser-ext-version": "node scripts/sync-browser-ext-version.mjs",
    "electron:native:build": "node scripts/build-voice-hotkey-helper.mjs",
    "electron:dev": "pnpm run electron:native:build && cross-env ELECTRON_ENTRY=out/main/index.js electron-vite dev",
    "electron:vite:build": "cross-env ELECTRON_ENTRY=out/main/index.js electron-vite build",
    "electron:vite:build:package": "cross-env ELECTRON_ENTRY=out/main/index.js ELECTRON_VITE_SKIP_RENDERER=1 electron-vite build",
    "electron:package": "pnpm run assets:brand && node scripts/electron-builder.mjs",
    "electron:server:build": "node scripts/build-electron-server.mjs",
    "electron:extensions:build": "node scripts/build-electron-extensions.mjs",
    "electron:build:artifacts": "pnpm run electron:native:build && pnpm run electron:vite:build:package && pnpm run electron:server:build && pnpm run electron:extensions:build",
    "electron:frpc:download": "node --import tsx/esm scripts/download-frpc-binaries.mjs",
    "electron:frpc:download:all": "node --import tsx/esm scripts/download-frpc-binaries.mjs --all",
    "electron:build": "pnpm run build:node && pnpm run build:web && pnpm run electron:build:artifacts && pnpm run electron:package",
    "electron:preview": "cross-env ELECTRON_ENTRY=out/main/index.js electron-vite preview"
  }
}