{
  "name": "discoclaw",
  "version": "2.0.0",
  "description": "Personal AI orchestrator that turns Discord into a persistent workspace",
  "license": "MIT",
  "keywords": [
    "discord",
    "bot",
    "ai",
    "assistant",
    "orchestrator",
    "automation",
    "claude",
    "openai",
    "memory",
    "tasks",
    "voice",
    "personal-ai"
  ],
  "homepage": "https://discoclaw.ai",
  "repository": {
    "type": "git",
    "url": "https://github.com/DiscoClaw/discoclaw.git"
  },
  "bin": {
    "discoclaw": "./dist/cli/index.js"
  },
  "files": [
    "dist/",
    "dashboard/",
    "templates/",
    "docs/official-docs.md",
    "docs/configuration.md",
    "docs/discord-bot-setup.md",
    "docs/runtime-switching.md",
    "docs/audit/provider-auth-1.0-matrix.md",
    "docs/audit/claude-blank-machine-readiness.md",
    "docs/audit/claude-npm-managed-path.md",
    "docs/audit/codex-blank-machine-readiness.md",
    "docs/audit/codex-npm-managed-path.md",
    "docs/audit/gemini-support-boundary.md",
    "docs/audit/openrouter-api-key-support-boundary.md",
    "docs/audit/openrouter-parity-audit.md",
    "systemd/",
    ".context/",
    ".env.example",
    ".env.example.full",
    "scripts/cron/cron-tag-map.json",
    "scripts/tasks/tag-map.json"
  ],
  "type": "module",
  "packageManager": "pnpm@10.28.2",
  "engines": {
    "node": ">=20"
  },
  "scripts": {
    "prepare": "simple-git-hooks",
    "dev": "tsx src/index.ts",
    "dashboard": "tsx src/cli/dashboard.ts",
    "build": "tsc -p tsconfig.json && node vendor/embedded-app-sdk/build.mjs && node vendor/canvas-runtime/build.mjs",
    "start": "node dist/index.js",
    "discord:invite-url": "tsx scripts/discord-invite-url.ts",
    "discord:smoke-test": "node scripts/discord-smoke-test.mjs",
    "discord:join-threads": "node scripts/discord-join-threads.mjs",
    "claude:install-skills": "tsx scripts/install-claude-skills.ts",
    "claude:auth-smoke": "tsx scripts/claude-auth-smoke.ts",
    "release:rehearsal": "tsx scripts/release-rehearsal.ts",
    "sync:discord-context": "tsx scripts/sync-discord-context.ts",
    "guard:legacy": "tsx scripts/legacy-token-guard.ts",
    "preflight": "tsx scripts/doctor.ts",
    "preflight:online": "tsx scripts/doctor.ts --check-connection",
    "preflight:blank-machine": "tsx scripts/doctor.ts --blank-machine",
    "preflight:blank-machine:online": "tsx scripts/doctor.ts --blank-machine --check-connection",
    "doctor": "tsx scripts/doctor.ts",
    "doctor:online": "tsx scripts/doctor.ts --check-connection",
    "doctor:blank-machine": "tsx scripts/doctor.ts --blank-machine",
    "doctor:blank-machine:online": "tsx scripts/doctor.ts --blank-machine --check-connection",
    "setup": "tsx scripts/setup.ts",
    "forge:repro": "tsx scripts/forge-native-repro.ts",
    "test": "vitest run --passWithNoTests",
    "supervisor:measure": "vitest run src/runtime/global-supervisor.test.ts src/index.runtime.test.ts",
    "prepublishOnly": "pnpm build && pnpm test",
    "review:sections": "tsx scripts/review-sections.ts",
    "review:long-chunks": "tsx scripts/review-long-file-chunks.ts",
    "review:chunk-risks": "tsx scripts/review-chunk-risks.ts",
    "review:chunk-audit": "tsx scripts/review-chunk-audit.ts",
    "review:finalize": "tsx scripts/review-finalize.ts",
    "review:full-audit": "pnpm review:sections --with-gates && pnpm review:long-chunks && pnpm review:chunk-risks && pnpm review:chunk-audit && pnpm review:finalize"
  },
  "dependencies": {
    "@discord/embedded-app-sdk": "^2.4.0",
    "@discordjs/opus": "^0.10.0",
    "@discordjs/voice": "^0.19.0",
    "@snazzah/davey": "^0.1.9",
    "better-sqlite3": "^12.6.2",
    "croner": "^10.0.1",
    "discord.js": "^14.19.3",
    "dotenv": "^16.4.5",
    "execa": "^9.5.2",
    "htm": "^3.1.1",
    "pino": "^9.7.0",
    "preact": "^10.29.0",
    "prism-media": "^1.3.5",
    "sharp": "^0.34.5",
    "sodium-native": "^4.3.1",
    "sqlite-vec": "0.1.7-alpha.2",
    "unpdf": "^1.4.0",
    "ws": "^8.19.0",
    "youtube-transcript-plus": "^1.2.0"
  },
  "simple-git-hooks": {
    "pre-push": "bash scripts/pre-push-safety.sh && pnpm build && pnpm test"
  },
  "publishConfig": {
    "access": "public",
    "registry": "https://registry.npmjs.org/"
  },
  "pnpm": {
    "onlyBuiltDependencies": [
      "@discordjs/opus",
      "better-sqlite3",
      "sharp",
      "simple-git-hooks",
      "sodium-native"
    ],
    "overrides": {
      "undici": ">=6.24.0",
      "tar": ">=7.5.11",
      "rollup": ">=4.59.0",
      "esbuild": ">=0.25.0"
    }
  },
  "devDependencies": {
    "@types/better-sqlite3": "^7.6.13",
    "@types/mdast": "^4.0.4",
    "@types/node": "^22.13.1",
    "@types/ws": "^8.18.1",
    "esbuild": "^0.27.4",
    "gray-matter": "^4.0.3",
    "remark-parse": "^11.0.0",
    "simple-git-hooks": "^2.13.1",
    "tsx": "^4.19.2",
    "typescript": "^5.7.3",
    "unified": "^11.0.5",
    "vitest": "^2.1.9"
  }
}
