{
  "name": "@spinabot/brigade",
  "version": "1.23.0",
  "description": "Brigade — your personal AI crew",
  "homepage": "https://brigade.spinabot.com",
  "author": "Spinabot <hello@brigade-agent.ai>",
  "license": "MIT",
  "repository": {
    "type": "git",
    "url": "git+https://github.com/spinabot/brigade.git"
  },
  "bugs": {
    "url": "https://github.com/spinabot/brigade/issues",
    "email": "hello@brigade-agent.ai"
  },
  "publishConfig": {
    "access": "public"
  },
  "type": "module",
  "bin": {
    "brigade": "./brigade.mjs"
  },
  "main": "dist/entry.js",
  "exports": {
    ".": "./brigade.mjs",
    "./extension-sdk": {
      "types": "./dist/extension-sdk.d.ts",
      "import": "./dist/extension-sdk.js"
    },
    "./channel-sdk": {
      "types": "./dist/channel-sdk.d.ts",
      "import": "./dist/channel-sdk.js"
    },
    "./package.json": "./package.json"
  },
  "files": [
    "brigade.mjs",
    "scripts/run-brigade.mjs",
    "scripts/build-done.mjs",
    "scripts/install-convex.mjs",
    "scripts/convex-dev.mjs",
    "scripts/convex-push.mjs",
    "scripts/brand-oauth-page.mjs",
    "scripts/assets/brigade-logo.webp",
    "scripts/assets/brigade-favicon.ico",
    "dist/**/*",
    "templates/**/*",
    "skills/**/*",
    "convex/**/*.ts",
    "convex/_generated/**",
    "convex/tsconfig.json",
    "README.md",
    "LICENSE"
  ],
  "scripts": {
    "build": "tsc -p tsconfig.build.json",
    "postbuild": "node scripts/build-done.mjs",
    "postinstall": "node scripts/brand-oauth-page.mjs",
    "build:watch": "tsc -p tsconfig.build.json --watch",
    "clean": "node -e \"import('node:fs').then(fs => fs.rmSync('dist', { recursive: true, force: true }))\"",
    "prepack": "npm run build",
    "test": "node scripts/run-tests.mjs",
    "bench": "npx tsx --test src/agents/memory/eval/comparison.test.ts src/agents/memory/eval/gold-hard.test.ts src/agents/memory/eval/gold-parity.test.ts src/agents/memory/eval/asr-bench.test.ts",
    "typecheck": "tsc -p tsconfig.json --noEmit",
    "brigade": "node brigade.mjs",
    "start": "node scripts/run-brigade.mjs",
    "dev": "node scripts/run-brigade.mjs",
    "dev:tsx": "tsx src/entry.ts",
    "watch": "tsx --watch src/entry.ts",
    "onboard": "node scripts/run-brigade.mjs onboard",
    "login": "node scripts/run-brigade.mjs login",
    "login:bin": "node brigade.mjs login",
    "auth": "node scripts/run-brigade.mjs auth",
    "onboard:bin": "node brigade.mjs onboard",
    "onboard:watch": "tsx --watch src/entry.ts onboard",
    "agent": "node scripts/run-brigade.mjs agent",
    "agent:bin": "node brigade.mjs agent",
    "agent:watch": "tsx --watch src/entry.ts agent",
    "agents": "node scripts/run-brigade.mjs agents",
    "agents:bin": "node brigade.mjs agents",
    "agents:list": "node scripts/run-brigade.mjs agents list",
    "agents:bindings": "node scripts/run-brigade.mjs agents bindings",
    "agents:bind": "node scripts/run-brigade.mjs agents bind",
    "agents:unbind": "node scripts/run-brigade.mjs agents unbind",
    "agents:add": "node scripts/run-brigade.mjs agents add",
    "agents:set-identity": "node scripts/run-brigade.mjs agents set-identity",
    "agents:delete": "node scripts/run-brigade.mjs agents delete",
    "tui": "node scripts/run-brigade.mjs tui",
    "tui:bin": "node brigade.mjs tui",
    "tui:watch": "tsx --watch src/entry.ts tui",
    "gateway": "node scripts/run-brigade.mjs gateway",
    "gateway:bin": "node brigade.mjs gateway",
    "gateway:watch": "tsx --watch src/entry.ts gateway",
    "gateway:status": "node scripts/run-brigade.mjs gateway status",
    "gateway:stop": "node scripts/run-brigade.mjs gateway stop",
    "connect": "node scripts/run-brigade.mjs connect",
    "connect:bin": "node brigade.mjs connect",
    "connect:watch": "tsx --watch src/entry.ts connect",
    "status": "node scripts/run-brigade.mjs status",
    "status:bin": "node brigade.mjs status",
    "status:json": "node scripts/run-brigade.mjs status --json",
    "doctor": "node scripts/run-brigade.mjs doctor",
    "doctor:bin": "node brigade.mjs doctor",
    "doctor:json": "node scripts/run-brigade.mjs doctor --json",
    "doctor:strict": "node scripts/run-brigade.mjs doctor --strict",
    "update": "node scripts/run-brigade.mjs update",
    "update:bin": "node brigade.mjs update",
    "update:check": "node scripts/run-brigade.mjs update --check",
    "upgrade": "node scripts/run-brigade.mjs upgrade",
    "upgrade:bin": "node brigade.mjs upgrade",
    "config:list": "node scripts/run-brigade.mjs config list",
    "config:file": "node scripts/run-brigade.mjs config file",
    "config:schema": "node scripts/run-brigade.mjs config schema",
    "config:validate": "node scripts/run-brigade.mjs config validate",
    "channels": "node scripts/run-brigade.mjs channels",
    "channels:list": "node scripts/run-brigade.mjs channels list",
    "channels:status": "node scripts/run-brigade.mjs channels status --channel whatsapp",
    "channels:link": "node scripts/run-brigade.mjs channels link --channel whatsapp",
    "channels:unlink": "node scripts/run-brigade.mjs channels unlink --channel whatsapp",
    "channels:enable": "node scripts/run-brigade.mjs channels enable --channel whatsapp",
    "channels:disable": "node scripts/run-brigade.mjs channels disable --channel whatsapp",
    "channels:allow": "node scripts/run-brigade.mjs channels allow list --channel whatsapp",
    "channels:allow:add": "node scripts/run-brigade.mjs channels allow add --channel whatsapp",
    "channels:allow:remove": "node scripts/run-brigade.mjs channels allow remove --channel whatsapp",
    "channels:add": "node scripts/run-brigade.mjs channels add",
    "wa": "node scripts/run-brigade.mjs channels status --channel whatsapp",
    "wa:link": "node scripts/run-brigade.mjs channels link --channel whatsapp",
    "wa:unlink": "node scripts/run-brigade.mjs channels unlink --channel whatsapp",
    "wa:status": "node scripts/run-brigade.mjs channels status --channel whatsapp",
    "wa:allow": "node scripts/run-brigade.mjs channels allow list --channel whatsapp",
    "telegram": "node scripts/run-brigade.mjs channels status --channel telegram",
    "telegram:status": "node scripts/run-brigade.mjs channels status --channel telegram",
    "telegram:enable": "node scripts/run-brigade.mjs channels enable --channel telegram",
    "telegram:disable": "node scripts/run-brigade.mjs channels disable --channel telegram",
    "telegram:allow": "node scripts/run-brigade.mjs channels allow list --channel telegram",
    "telegram:allow:add": "node scripts/run-brigade.mjs channels allow add --channel telegram",
    "telegram:allow:remove": "node scripts/run-brigade.mjs channels allow remove --channel telegram",
    "telegram:token": "node scripts/run-brigade.mjs channels add --channel telegram",
    "pairing": "node scripts/run-brigade.mjs pairing list --channel whatsapp",
    "pairing:list": "node scripts/run-brigade.mjs pairing list --channel whatsapp",
    "pairing:approve": "node scripts/run-brigade.mjs pairing approve --channel whatsapp",
    "pairing:revoke": "node scripts/run-brigade.mjs pairing revoke --channel whatsapp",
    "backup": "node scripts/run-brigade.mjs backup create",
    "backup:create": "node scripts/run-brigade.mjs backup create",
    "backup:verify": "node scripts/run-brigade.mjs backup verify",
    "backup:restore": "node scripts/run-brigade.mjs backup restore",
    "gateway:install": "node scripts/run-brigade.mjs gateway install",
    "gateway:uninstall": "node scripts/run-brigade.mjs gateway uninstall",
    "gateway:restart": "node scripts/run-brigade.mjs gateway restart",
    "expose": "node scripts/run-brigade.mjs expose",
    "expose:status": "node scripts/run-brigade.mjs expose status",
    "expose:stop": "node scripts/run-brigade.mjs expose stop",
    "bloody benchmark": "node scripts/run-brigade.mjs bloody benchmark",
    "sessions": "node scripts/run-brigade.mjs sessions list",
    "sessions:list": "node scripts/run-brigade.mjs sessions list",
    "sessions:cleanup": "node scripts/run-brigade.mjs sessions cleanup",
    "skills": "node scripts/run-brigade.mjs skills list",
    "skills:list": "node scripts/run-brigade.mjs skills list",
    "skills:info": "node scripts/run-brigade.mjs skills info",
    "extensions": "node scripts/run-brigade.mjs extensions list",
    "extensions:list": "node scripts/run-brigade.mjs extensions list",
    "extensions:doctor": "node scripts/run-brigade.mjs extensions doctor",
    "extensions:init": "node scripts/run-brigade.mjs extensions init",
    "extensions:add": "node scripts/run-brigade.mjs extensions add",
    "extensions:remove": "node scripts/run-brigade.mjs extensions remove",
    "logs": "node scripts/run-brigade.mjs logs",
    "logs:follow": "node scripts/run-brigade.mjs logs --follow",
    "secrets:audit": "node scripts/run-brigade.mjs secrets audit",
    "exec:list": "node scripts/run-brigade.mjs exec list",
    "store:mode": "node scripts/run-brigade.mjs store mode show",
    "store:mode:show": "node scripts/run-brigade.mjs store mode show",
    "store:mode:set": "node scripts/run-brigade.mjs store mode set",
    "convex:install": "node scripts/install-convex.mjs",
    "convex:dev": "node scripts/install-convex.mjs && node scripts/convex-dev.mjs",
    "convex:codegen": "convex codegen --admin-key \"$(node -e \"process.stdout.write(require('node:fs').readFileSync('.convex-data/admin-key.txt', 'utf8').trim())\")\" --url http://127.0.0.1:3210",
    "smoke:strict-zero": "tsx scripts/strict-zero-smoke.mjs",
    "convex:push": "node scripts/convex-push.mjs",
    "store": "node scripts/run-brigade.mjs store",
    "store:reset": "node scripts/run-brigade.mjs store reset",
    "store:reset:purge": "node scripts/run-brigade.mjs store reset --purge-local",
    "store:migrate": "node scripts/run-brigade.mjs store migrate"
  },
  "engines": {
    "node": ">=22.12"
  },
  "dependencies": {
    "@cantoo/pdf-lib": "^2.7.1",
    "@composio/core": "^0.10.0",
    "@earendil-works/pi-agent-core": "0.79.9",
    "@earendil-works/pi-ai": "0.79.9",
    "@earendil-works/pi-coding-agent": "0.79.9",
    "@earendil-works/pi-tui": "0.79.9",
    "@grammyjs/runner": "^2.0.3",
    "@grammyjs/transformer-throttler": "^1.2.1",
    "@grammyjs/types": "^3.21.0",
    "@mozilla/readability": "^0.6.0",
    "@pdf-lib/fontkit": "^1.1.1",
    "@slack/socket-mode": "^2.0.7",
    "@slack/web-api": "^7.17.0",
    "@whiskeysockets/baileys": "7.0.0-rc13",
    "cfonts": "^3.3.1",
    "chalk": "^5.3.0",
    "cli-highlight": "^2.1.11",
    "commander": "^12.1.0",
    "convex": "^1.40.0",
    "croner": "^10.0.1",
    "discord.js": "^14.26.4",
    "docx": "^9.7.1",
    "exceljs": "^4.4.0",
    "fflate": "^0.8.3",
    "grammy": "^1.42.0",
    "https-proxy-agent": "^7.0.6",
    "jimp": "^1.6.1",
    "jiti": "^2.6.1",
    "json5": "^2.2.3",
    "linkedom": "^0.18.12",
    "minimatch": "^10.2.5",
    "playwright-core": "^1.59.0",
    "pptxgenjs": "^4.0.1",
    "prompts": "^2.4.2",
    "proper-lockfile": "^4.1.2",
    "qrcode-terminal": "^0.12.0",
    "socks-proxy-agent": "^10.1.0",
    "tar": "^7.5.15",
    "undici": "^7.25.0",
    "unpdf": "^1.6.2",
    "ws": "^8.21.0",
    "yaml": "^2.9.0",
    "zod": "^3.23.8"
  },
  "devDependencies": {
    "@types/node": "^22.10.0",
    "@types/prompts": "^2.4.9",
    "@types/proper-lockfile": "^4.1.4",
    "@types/qrcode-terminal": "^0.12.2",
    "@types/tar": "^6.1.13",
    "@types/ws": "^8.18.1",
    "tsx": "^4.22.4",
    "typescript": "^5.6.3"
  },
  "overrides": {
    "ws": "$ws",
    "discord.js": {
      "undici": "^6.27.0"
    },
    "@discordjs/rest": {
      "undici": "^6.27.0"
    },
    "exceljs": {
      "uuid": "^11.1.1"
    },
    "@earendil-works/pi-ai": "0.79.9",
    "@earendil-works/pi-agent-core": "0.79.9",
    "@earendil-works/pi-tui": "0.79.9"
  },
  "keywords": [
    "ai",
    "agent",
    "agents",
    "ai-agent",
    "cli",
    "tui",
    "llm",
    "claude",
    "openai",
    "gemini",
    "ollama",
    "whatsapp",
    "gateway",
    "brigade"
  ]
}
