{"_id":"@spinabot/brigade","_rev":"80-ec8320b98b894bfedc095278ec38e6e7","name":"@spinabot/brigade","dist-tags":{"latest":"1.39.0"},"versions":{"0.1.0":{"name":"@spinabot/brigade","version":"0.1.0","keywords":["ai","cli","tui","llm","chat","agent","anthropic","claude","openai","gpt","gemini","ollama","openrouter","groq","xai","deepseek","mistral","cerebras","pi-sdk"],"author":{"name":"Bhasvanth Dev"},"license":"MIT","_id":"@spinabot/brigade@0.1.0","maintainers":[{"name":"dev-spinabot","email":"bhasvanth02@gmail.com"},{"name":"spinabot-labs","email":"npm@spinabot.com"}],"homepage":"https://github.com/Bhasvanth-Dev9380/brigade#readme","bugs":{"url":"https://github.com/Bhasvanth-Dev9380/brigade/issues"},"bin":{"brigade":"brigade.mjs"},"dist":{"shasum":"7613958b6aba2e50731f90506057b7b2d59d03ef","tarball":"https://registry.npmjs.org/@spinabot/brigade/-/brigade-0.1.0.tgz","fileCount":39,"integrity":"sha512-zM+pIQqQ/iEdtkA8D4wKigQqxQJdyUOyc6ryNSK2TgxrT9CpYP3NoYmteP1pY2DjW4R4GiJE8VZvg//RJB4IKA==","signatures":[{"sig":"MEUCIQC8j4ZJzuos5ih5R4A/7lQrtv4sPQPosVSN4su/OQGboQIgV9F1CSjV76K6aEwGdNNv2IR0H2SLt+fySiU2Q47DXko=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1379452},"main":"./dist/index.js","type":"module","engines":{"node":">=20.0.0"},"gitHead":"718054476cc02687cbc84fc79b9e029ec894568e","scripts":{"dev":"tsx src/cli.ts","chat":"tsx src/cli.ts chat","test":"vitest run","build":"tsc -p tsconfig.json","start":"node dist/cli.js","doctor":"tsx src/cli.ts doctor","format":"biome format --write .","connect":"tsx src/cli.ts connect","gateway":"tsx src/cli.ts gateway","onboard":"tsx src/cli.ts onboard","prepack":"node scripts/prepack.mjs","typecheck":"tsc --noEmit","test:watch":"vitest","gen:wordmark":"node scripts/gen-wordmark-svg.mjs","prepublishOnly":"npm run build"},"_npmUser":{"name":"spinabot-labs","email":"npm@spinabot.com"},"repository":{"url":"git+https://github.com/Bhasvanth-Dev9380/brigade.git","type":"git"},"_npmVersion":"11.9.0","description":"Brigade — your personal AI crew. Polished terminal CLI for Anthropic, OpenAI, Gemini, Groq, xAI, DeepSeek, Mistral, OpenRouter, Cerebras, Ollama and any OpenAI-compatible endpoint. Built on the Pi SDK.","directories":{},"_nodeVersion":"24.14.0","dependencies":{"ws":"^8.20.0","chalk":"^5.3.0","cfonts":"^3.3.1","@types/ws":"^8.18.1","@mariozechner/pi-ai":"0.70.6","@mariozechner/pi-tui":"0.70.6","@mariozechner/pi-agent-core":"0.70.6","@mariozechner/pi-coding-agent":"0.70.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^2.1.0","typescript":"^5.6.0","@types/node":"^22.7.0","@biomejs/biome":"^1.9.4"},"_npmOperationalInternal":{"tmp":"tmp/brigade_0.1.0_1777696101726_0.1940396272305085","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@spinabot/brigade","version":"0.1.1","keywords":["ai","cli","tui","llm","chat","agent","anthropic","claude","openai","gpt","gemini","ollama","openrouter","groq","xai","deepseek","mistral","cerebras","pi-sdk"],"author":{"name":"Bhasvanth Dev"},"license":"MIT","_id":"@spinabot/brigade@0.1.1","maintainers":[{"name":"dev-spinabot","email":"bhasvanth02@gmail.com"},{"name":"spinabot-labs","email":"npm@spinabot.com"}],"homepage":"https://github.com/Bhasvanth-Dev9380/brigade#readme","bugs":{"url":"https://github.com/Bhasvanth-Dev9380/brigade/issues"},"bin":{"brigade":"brigade.mjs"},"dist":{"shasum":"646d1ae925f72dea7bd80815bac541d43f1babd7","tarball":"https://registry.npmjs.org/@spinabot/brigade/-/brigade-0.1.1.tgz","fileCount":45,"integrity":"sha512-XisqIhQNd+SYf2XCwwMJO/4hgNZC6Hij0APDd34iSc0gYormf3HNfmEHTxjyNT79lsU4WDBx7C8abvcKcbIFNg==","signatures":[{"sig":"MEUCIGxtMh7hafqPcysuSB7ttiephOntr8Jv0/gb4xeff1bHAiEAtilmgoAmtKCzzBqNbbtQSzz39DDcU3beHJUBLNRZsX0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spinabot%2fbrigade@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1538029},"main":"./dist/index.js","type":"module","engines":{"node":">=20.0.0"},"gitHead":"f2d814ddf0957333032014916af1ef1151ce9af9","scripts":{"dev":"tsx src/cli.ts","chat":"tsx src/cli.ts chat","test":"vitest run","build":"tsc -p tsconfig.json","start":"node dist/cli.js","doctor":"tsx src/cli.ts doctor","format":"biome format --write .","connect":"tsx src/cli.ts connect","gateway":"tsx src/cli.ts gateway","onboard":"tsx src/cli.ts onboard","prepack":"node scripts/prepack.mjs","typecheck":"tsc --noEmit","test:watch":"vitest","gen:wordmark":"node scripts/gen-wordmark-svg.mjs","prepublishOnly":"npm run build"},"_npmUser":{"name":"spinabot-labs","email":"npm@spinabot.com"},"repository":{"url":"git+https://github.com/Bhasvanth-Dev9380/brigade.git","type":"git"},"_npmVersion":"10.8.2","description":"Brigade — your personal AI crew. Polished terminal CLI for Anthropic, OpenAI, Gemini, Groq, xAI, DeepSeek, Mistral, OpenRouter, Cerebras, Ollama and any OpenAI-compatible endpoint. Built on the Pi SDK.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.20.0","chalk":"^5.3.0","cfonts":"^3.3.1","@types/ws":"^8.18.1","@mariozechner/pi-ai":"0.70.6","@mariozechner/pi-tui":"0.70.6","@mariozechner/pi-agent-core":"0.70.6","@mariozechner/pi-coding-agent":"0.70.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^2.1.0","typescript":"^5.6.0","@types/node":"^22.7.0","@biomejs/biome":"^1.9.4"},"_npmOperationalInternal":{"tmp":"tmp/brigade_0.1.1_1777792448929_0.41025172104911634","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@spinabot/brigade","version":"0.1.2","keywords":["ai","cli","tui","llm","chat","agent","anthropic","claude","openai","gpt","gemini","ollama","openrouter","groq","xai","deepseek","mistral","cerebras","pi-sdk"],"author":{"name":"Bhasvanth Dev"},"license":"MIT","_id":"@spinabot/brigade@0.1.2","maintainers":[{"name":"dev-spinabot","email":"bhasvanth02@gmail.com"},{"name":"spinabot-labs","email":"npm@spinabot.com"}],"homepage":"https://github.com/Bhasvanth-Dev9380/brigade#readme","bugs":{"url":"https://github.com/Bhasvanth-Dev9380/brigade/issues"},"bin":{"brigade":"brigade.mjs"},"dist":{"shasum":"5e4c03627fa2caa86ef13803e5c98c6df4ab6a8f","tarball":"https://registry.npmjs.org/@spinabot/brigade/-/brigade-0.1.2.tgz","fileCount":45,"integrity":"sha512-0xAucXt/e0iXLZpm2YK4vEkihIfdgwC9AO5TaMzQs9JvOuxmZ76KfoRXaEBnco79OjWQyR/etD06tlyNKERO7w==","signatures":[{"sig":"MEQCIBYVm20VeFdRfIZqjWMzXdVVe0qRYtkwsN2cVFzlFY3SAiAB88V+TCW4B9YhzswxXyI2gp8LJ8LihnZy7aShwWGk+Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spinabot%2fbrigade@0.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1538033},"main":"./dist/index.js","type":"module","engines":{"node":">=20.0.0"},"gitHead":"ca55b23c1dfdfd9006b86550f20768e3cc02f6b7","scripts":{"dev":"tsx src/cli.ts","chat":"tsx src/cli.ts chat","test":"vitest run","build":"tsc -p tsconfig.json","start":"node dist/cli.js","doctor":"tsx src/cli.ts doctor","format":"biome format --write .","connect":"tsx src/cli.ts connect","gateway":"tsx src/cli.ts gateway","onboard":"tsx src/cli.ts onboard","prepack":"node scripts/prepack.mjs","typecheck":"tsc --noEmit","test:watch":"vitest","gen:wordmark":"node scripts/gen-wordmark-svg.mjs","prepublishOnly":"npm run build"},"_npmUser":{"name":"spinabot-labs","email":"npm@spinabot.com"},"repository":{"url":"git+https://github.com/Bhasvanth-Dev9380/brigade.git","type":"git"},"_npmVersion":"10.8.2","description":"Brigade — your personal AI crew. Polished terminal CLI for Anthropic, OpenAI, Gemini, Groq, xAI, DeepSeek, Mistral, OpenRouter, Cerebras, Ollama and any OpenAI-compatible endpoint. Built on the Pi SDK.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.20.0","chalk":"^5.3.0","cfonts":"^3.3.1","@types/ws":"^8.18.1","@mariozechner/pi-ai":"0.70.6","@mariozechner/pi-tui":"0.70.6","@mariozechner/pi-agent-core":"0.70.6","@mariozechner/pi-coding-agent":"0.70.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^2.1.0","typescript":"^5.6.0","@types/node":"^22.7.0","@biomejs/biome":"^1.9.4"},"_npmOperationalInternal":{"tmp":"tmp/brigade_0.1.2_1777793368082_0.7149302141649725","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@spinabot/brigade","version":"1.0.0","keywords":["ai","agent","agents","ai-agent","cli","tui","llm","claude","openai","gemini","ollama","whatsapp","gateway","brigade"],"author":{"name":"Spinabot"},"license":"MIT","_id":"@spinabot/brigade@1.0.0","maintainers":[{"name":"dev-spinabot","email":"bhasvanth02@gmail.com"},{"name":"spinabot-labs","email":"npm@spinabot.com"}],"homepage":"https://brigade-agent.ai","bugs":{"url":"https://github.com/spinabot/brigade/issues"},"bin":{"brigade":"brigade.mjs"},"dist":{"shasum":"4cc0417acbe06491cb47d6bdc1fc1452e1eafaaa","tarball":"https://registry.npmjs.org/@spinabot/brigade/-/brigade-1.0.0.tgz","fileCount":1913,"integrity":"sha512-/WYfwcjcL0V1Kc9DiCJ8jq6VTc+1sFxmFtOO2ogtxsM6f8TQPwyfWUwUVw/WCB0RaQrCkhVOD1o8J6/YEme7Dg==","signatures":[{"sig":"MEUCIQCQS+YWxFnnMulpnWby86Ppb/R07k5X12UpaNoKKsiYswIgDFtCASrr7JQfA/V+GIgUjmb28z8DYd6YXk3XmO0wg5I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spinabot%2fbrigade@1.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":14720658},"main":"dist/entry.js","type":"module","types":"./dist/entry.d.ts","engines":{"node":">=22.12"},"exports":{".":"./brigade.mjs","./package.json":"./package.json","./extension-sdk":{"types":"./dist/extension-sdk.d.ts","import":"./dist/extension-sdk.js"}},"gitHead":"d47fee35a6aaf39849797ed9b580eab793587600","scripts":{"wa":"node scripts/run-brigade.mjs channels status --channel whatsapp","dev":"node scripts/run-brigade.mjs","tui":"node scripts/run-brigade.mjs tui","logs":"node scripts/run-brigade.mjs logs","test":"node scripts/run-tests.mjs","agent":"node scripts/run-brigade.mjs agent","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","build":"tsc -p tsconfig.build.json","clean":"node -e \"import('node:fs').then(fs => fs.rmSync('dist', { recursive: true, force: true }))\"","start":"node scripts/run-brigade.mjs","store":"node scripts/run-brigade.mjs store","watch":"tsx --watch src/entry.ts","agents":"node scripts/run-brigade.mjs agents","backup":"node scripts/run-brigade.mjs backup create","doctor":"node scripts/run-brigade.mjs doctor","skills":"node scripts/run-brigade.mjs skills list","status":"node scripts/run-brigade.mjs status","brigade":"node brigade.mjs","connect":"node scripts/run-brigade.mjs connect","dev:tsx":"tsx src/entry.ts","gateway":"node scripts/run-brigade.mjs gateway","onboard":"node scripts/run-brigade.mjs onboard","pairing":"node scripts/run-brigade.mjs pairing list --channel whatsapp","prepack":"npm run build","tui:bin":"node brigade.mjs tui","wa:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels":"node scripts/run-brigade.mjs channels","sessions":"node scripts/run-brigade.mjs sessions list","wa:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","agent:bin":"node brigade.mjs agent","exec:list":"node scripts/run-brigade.mjs exec list","postbuild":"node scripts/build-done.mjs","tui:watch":"tsx --watch src/entry.ts tui","typecheck":"tsc -p tsconfig.json --noEmit","wa:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","wa:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","agents:add":"node scripts/run-brigade.mjs agents add","agents:bin":"node brigade.mjs agents","convex:dev":"node scripts/install-convex.mjs && node scripts/convex-dev.mjs","doctor:bin":"node brigade.mjs doctor","status:bin":"node brigade.mjs status","store:mode":"node scripts/run-brigade.mjs store mode show","agent:watch":"tsx --watch src/entry.ts agent","agents:bind":"node scripts/run-brigade.mjs agents bind","agents:list":"node scripts/run-brigade.mjs agents list","build:watch":"tsc -p tsconfig.build.json --watch","config:file":"node scripts/run-brigade.mjs config file","config:list":"node scripts/run-brigade.mjs config list","connect:bin":"node brigade.mjs connect","convex:push":"node scripts/convex-push.mjs","doctor:json":"node scripts/run-brigade.mjs doctor --json","gateway:bin":"node brigade.mjs gateway","logs:follow":"node scripts/run-brigade.mjs logs --follow","onboard:bin":"node brigade.mjs onboard","skills:info":"node scripts/run-brigade.mjs skills info","skills:list":"node scripts/run-brigade.mjs skills list","status:json":"node scripts/run-brigade.mjs status --json","store:reset":"node scripts/run-brigade.mjs store reset","channels:add":"node scripts/run-brigade.mjs channels add","gateway:stop":"node scripts/run-brigade.mjs gateway stop","pairing:list":"node scripts/run-brigade.mjs pairing list --channel whatsapp","agents:delete":"node scripts/run-brigade.mjs agents delete","agents:unbind":"node scripts/run-brigade.mjs agents unbind","backup:create":"node scripts/run-brigade.mjs backup create","backup:verify":"node scripts/run-brigade.mjs backup verify","channels:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels:list":"node scripts/run-brigade.mjs channels list","config:schema":"node scripts/run-brigade.mjs config schema","connect:watch":"tsx --watch src/entry.ts connect","doctor:strict":"node scripts/run-brigade.mjs doctor --strict","gateway:watch":"tsx --watch src/entry.ts gateway","onboard:watch":"tsx --watch src/entry.ts onboard","secrets:audit":"node scripts/run-brigade.mjs secrets audit","sessions:list":"node scripts/run-brigade.mjs sessions list","store:migrate":"node scripts/run-brigade.mjs store migrate","backup:restore":"node scripts/run-brigade.mjs backup restore","channels:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","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","convex:install":"node scripts/install-convex.mjs","gateway:status":"node scripts/run-brigade.mjs gateway status","pairing:revoke":"node scripts/run-brigade.mjs pairing revoke --channel whatsapp","store:mode:set":"node scripts/run-brigade.mjs store mode set","agents:bindings":"node scripts/run-brigade.mjs agents bindings","channels:enable":"node scripts/run-brigade.mjs channels enable --channel whatsapp","channels:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","channels:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","config:validate":"node scripts/run-brigade.mjs config validate","gateway:install":"node scripts/run-brigade.mjs gateway install","gateway:restart":"node scripts/run-brigade.mjs gateway restart","pairing:approve":"node scripts/run-brigade.mjs pairing approve --channel whatsapp","store:mode:show":"node scripts/run-brigade.mjs store mode show","channels:disable":"node scripts/run-brigade.mjs channels disable --channel whatsapp","sessions:cleanup":"node scripts/run-brigade.mjs sessions cleanup","gateway:uninstall":"node scripts/run-brigade.mjs gateway uninstall","smoke:strict-zero":"tsx scripts/strict-zero-smoke.mjs","store:reset:purge":"node scripts/run-brigade.mjs store reset --purge-local","channels:allow:add":"node scripts/run-brigade.mjs channels allow add --channel whatsapp","agents:set-identity":"node scripts/run-brigade.mjs agents set-identity","channels:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel whatsapp"},"_npmUser":{"name":"spinabot-labs","email":"npm@spinabot.com"},"repository":{"url":"git+https://github.com/spinabot/brigade.git","type":"git"},"_npmVersion":"11.17.0","description":"Brigade — your personal AI crew","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ws":"^8.20.0","tar":"^7.5.15","zod":"^3.23.8","yaml":"^2.9.0","chalk":"^5.3.0","json5":"^2.2.3","cfonts":"^3.3.1","convex":"^1.40.0","croner":"^10.0.1","undici":"^7.25.0","prompts":"^2.4.2","linkedom":"^0.18.12","commander":"^12.1.0","minimatch":"^10.2.5","cli-highlight":"^2.1.11","@composio/core":"^0.10.0","playwright-core":"^1.59.0","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@mariozechner/pi-tui":"0.73.1","@mozilla/readability":"^0.6.0","@whiskeysockets/baileys":"7.0.0-rc.9","@mariozechner/pi-coding-agent":"0.73.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.0","@types/ws":"^8.18.1","@types/tar":"^6.1.13","typescript":"^5.6.3","@types/node":"^22.10.0","@types/prompts":"^2.4.9","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2"},"_npmOperationalInternal":{"tmp":"tmp/brigade_1.0.0_1782019511647_0.2586697216879976","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@spinabot/brigade","version":"1.0.1","keywords":["ai","agent","agents","ai-agent","cli","tui","llm","claude","openai","gemini","ollama","whatsapp","gateway","brigade"],"author":{"name":"Spinabot"},"license":"MIT","_id":"@spinabot/brigade@1.0.1","maintainers":[{"name":"dev-spinabot","email":"bhasvanth02@gmail.com"},{"name":"spinabot-labs","email":"npm@spinabot.com"}],"homepage":"https://brigade-agent.ai","bugs":{"url":"https://github.com/spinabot/brigade/issues"},"bin":{"brigade":"brigade.mjs"},"dist":{"shasum":"610ae3a0a00ce7ddde71f7740de1cfaac0748889","tarball":"https://registry.npmjs.org/@spinabot/brigade/-/brigade-1.0.1.tgz","fileCount":1913,"integrity":"sha512-5sVhdxjyoUQ64iQrsBd9p6YTtS0zet4wPKpaYTLpKzho+WbqIMRBHj3bKEIatQ2g3WcbxydWzvzARCzH0OuvNA==","signatures":[{"sig":"MEQCIFsRrob+7h2pf1GEdvOTSI4BzhMaKQeyNF//NSRtXNpQAiAxBMQUlzdR02cKvzdb61ea6/sZn+n2p61AI11jkRRGrw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spinabot%2fbrigade@1.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":14721226},"main":"dist/entry.js","type":"module","types":"./dist/entry.d.ts","engines":{"node":">=22.12"},"exports":{".":"./brigade.mjs","./package.json":"./package.json","./extension-sdk":{"types":"./dist/extension-sdk.d.ts","import":"./dist/extension-sdk.js"}},"gitHead":"b5f7612e37790cd56e8e24183b9348aac8dbe122","scripts":{"wa":"node scripts/run-brigade.mjs channels status --channel whatsapp","dev":"node scripts/run-brigade.mjs","tui":"node scripts/run-brigade.mjs tui","logs":"node scripts/run-brigade.mjs logs","test":"node scripts/run-tests.mjs","agent":"node scripts/run-brigade.mjs agent","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","build":"tsc -p tsconfig.build.json","clean":"node -e \"import('node:fs').then(fs => fs.rmSync('dist', { recursive: true, force: true }))\"","start":"node scripts/run-brigade.mjs","store":"node scripts/run-brigade.mjs store","watch":"tsx --watch src/entry.ts","agents":"node scripts/run-brigade.mjs agents","backup":"node scripts/run-brigade.mjs backup create","doctor":"node scripts/run-brigade.mjs doctor","skills":"node scripts/run-brigade.mjs skills list","status":"node scripts/run-brigade.mjs status","brigade":"node brigade.mjs","connect":"node scripts/run-brigade.mjs connect","dev:tsx":"tsx src/entry.ts","gateway":"node scripts/run-brigade.mjs gateway","onboard":"node scripts/run-brigade.mjs onboard","pairing":"node scripts/run-brigade.mjs pairing list --channel whatsapp","prepack":"npm run build","tui:bin":"node brigade.mjs tui","wa:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels":"node scripts/run-brigade.mjs channels","sessions":"node scripts/run-brigade.mjs sessions list","wa:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","agent:bin":"node brigade.mjs agent","exec:list":"node scripts/run-brigade.mjs exec list","postbuild":"node scripts/build-done.mjs","tui:watch":"tsx --watch src/entry.ts tui","typecheck":"tsc -p tsconfig.json --noEmit","wa:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","wa:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","agents:add":"node scripts/run-brigade.mjs agents add","agents:bin":"node brigade.mjs agents","convex:dev":"node scripts/install-convex.mjs && node scripts/convex-dev.mjs","doctor:bin":"node brigade.mjs doctor","status:bin":"node brigade.mjs status","store:mode":"node scripts/run-brigade.mjs store mode show","agent:watch":"tsx --watch src/entry.ts agent","agents:bind":"node scripts/run-brigade.mjs agents bind","agents:list":"node scripts/run-brigade.mjs agents list","build:watch":"tsc -p tsconfig.build.json --watch","config:file":"node scripts/run-brigade.mjs config file","config:list":"node scripts/run-brigade.mjs config list","connect:bin":"node brigade.mjs connect","convex:push":"node scripts/convex-push.mjs","doctor:json":"node scripts/run-brigade.mjs doctor --json","gateway:bin":"node brigade.mjs gateway","logs:follow":"node scripts/run-brigade.mjs logs --follow","onboard:bin":"node brigade.mjs onboard","skills:info":"node scripts/run-brigade.mjs skills info","skills:list":"node scripts/run-brigade.mjs skills list","status:json":"node scripts/run-brigade.mjs status --json","store:reset":"node scripts/run-brigade.mjs store reset","channels:add":"node scripts/run-brigade.mjs channels add","gateway:stop":"node scripts/run-brigade.mjs gateway stop","pairing:list":"node scripts/run-brigade.mjs pairing list --channel whatsapp","agents:delete":"node scripts/run-brigade.mjs agents delete","agents:unbind":"node scripts/run-brigade.mjs agents unbind","backup:create":"node scripts/run-brigade.mjs backup create","backup:verify":"node scripts/run-brigade.mjs backup verify","channels:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels:list":"node scripts/run-brigade.mjs channels list","config:schema":"node scripts/run-brigade.mjs config schema","connect:watch":"tsx --watch src/entry.ts connect","doctor:strict":"node scripts/run-brigade.mjs doctor --strict","gateway:watch":"tsx --watch src/entry.ts gateway","onboard:watch":"tsx --watch src/entry.ts onboard","secrets:audit":"node scripts/run-brigade.mjs secrets audit","sessions:list":"node scripts/run-brigade.mjs sessions list","store:migrate":"node scripts/run-brigade.mjs store migrate","backup:restore":"node scripts/run-brigade.mjs backup restore","channels:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","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","convex:install":"node scripts/install-convex.mjs","gateway:status":"node scripts/run-brigade.mjs gateway status","pairing:revoke":"node scripts/run-brigade.mjs pairing revoke --channel whatsapp","store:mode:set":"node scripts/run-brigade.mjs store mode set","agents:bindings":"node scripts/run-brigade.mjs agents bindings","channels:enable":"node scripts/run-brigade.mjs channels enable --channel whatsapp","channels:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","channels:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","config:validate":"node scripts/run-brigade.mjs config validate","gateway:install":"node scripts/run-brigade.mjs gateway install","gateway:restart":"node scripts/run-brigade.mjs gateway restart","pairing:approve":"node scripts/run-brigade.mjs pairing approve --channel whatsapp","store:mode:show":"node scripts/run-brigade.mjs store mode show","channels:disable":"node scripts/run-brigade.mjs channels disable --channel whatsapp","sessions:cleanup":"node scripts/run-brigade.mjs sessions cleanup","gateway:uninstall":"node scripts/run-brigade.mjs gateway uninstall","smoke:strict-zero":"tsx scripts/strict-zero-smoke.mjs","store:reset:purge":"node scripts/run-brigade.mjs store reset --purge-local","channels:allow:add":"node scripts/run-brigade.mjs channels allow add --channel whatsapp","agents:set-identity":"node scripts/run-brigade.mjs agents set-identity","channels:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel whatsapp"},"_npmUser":{"name":"spinabot-labs","email":"npm@spinabot.com"},"repository":{"url":"git+https://github.com/spinabot/brigade.git","type":"git"},"_npmVersion":"11.17.0","description":"Brigade — your personal AI crew","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ws":"^8.20.0","tar":"^7.5.15","zod":"^3.23.8","yaml":"^2.9.0","chalk":"^5.3.0","json5":"^2.2.3","cfonts":"^3.3.1","convex":"^1.40.0","croner":"^10.0.1","undici":"^7.25.0","prompts":"^2.4.2","linkedom":"^0.18.12","commander":"^12.1.0","minimatch":"^10.2.5","cli-highlight":"^2.1.11","@composio/core":"^0.10.0","playwright-core":"^1.59.0","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@mariozechner/pi-tui":"0.73.1","@mozilla/readability":"^0.6.0","@whiskeysockets/baileys":"7.0.0-rc.9","@mariozechner/pi-coding-agent":"0.73.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.0","@types/ws":"^8.18.1","@types/tar":"^6.1.13","typescript":"^5.6.3","@types/node":"^22.10.0","@types/prompts":"^2.4.9","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2"},"_npmOperationalInternal":{"tmp":"tmp/brigade_1.0.1_1782022447465_0.07031873802580368","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@spinabot/brigade","version":"1.0.2","keywords":["ai","agent","agents","ai-agent","cli","tui","llm","claude","openai","gemini","ollama","whatsapp","gateway","brigade"],"author":{"name":"Spinabot"},"license":"MIT","_id":"@spinabot/brigade@1.0.2","maintainers":[{"name":"dev-spinabot","email":"bhasvanth02@gmail.com"},{"name":"spinabot-labs","email":"npm@spinabot.com"}],"homepage":"https://brigade-agent.ai","bugs":{"url":"https://github.com/spinabot/brigade/issues"},"bin":{"brigade":"brigade.mjs"},"dist":{"shasum":"36eafa4a9b12f3092049836a7c1f058fb42e095c","tarball":"https://registry.npmjs.org/@spinabot/brigade/-/brigade-1.0.2.tgz","fileCount":1962,"integrity":"sha512-Hb/b2tdQyX0IdqeSY6c3+WNFyvVLV2D2A7uj13Pnrr1aKycVwLByhIU/57BW9TLzwSVwQ7kN3CTc5xMbTo3+3Q==","signatures":[{"sig":"MEUCIApR4YG8rcfRRIrZ6PYmwA3C6CwTGFVKOKF+JRM7eyAJAiEA00c3pTQ96Y9Tp7JUA5zKPnqXfLxgjrr2fOZtnZMLQkU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spinabot%2fbrigade@1.0.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":15056664},"main":"dist/entry.js","type":"module","types":"./dist/entry.d.ts","engines":{"node":">=22.12"},"exports":{".":"./brigade.mjs","./package.json":"./package.json","./extension-sdk":{"types":"./dist/extension-sdk.d.ts","import":"./dist/extension-sdk.js"}},"gitHead":"61cbf9e328c11cd48b152ce27039e857cffbc271","scripts":{"wa":"node scripts/run-brigade.mjs channels status --channel whatsapp","dev":"node scripts/run-brigade.mjs","tui":"node scripts/run-brigade.mjs tui","logs":"node scripts/run-brigade.mjs logs","test":"node scripts/run-tests.mjs","agent":"node scripts/run-brigade.mjs agent","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","build":"tsc -p tsconfig.build.json","clean":"node -e \"import('node:fs').then(fs => fs.rmSync('dist', { recursive: true, force: true }))\"","start":"node scripts/run-brigade.mjs","store":"node scripts/run-brigade.mjs store","watch":"tsx --watch src/entry.ts","agents":"node scripts/run-brigade.mjs agents","backup":"node scripts/run-brigade.mjs backup create","doctor":"node scripts/run-brigade.mjs doctor","skills":"node scripts/run-brigade.mjs skills list","status":"node scripts/run-brigade.mjs status","brigade":"node brigade.mjs","connect":"node scripts/run-brigade.mjs connect","dev:tsx":"tsx src/entry.ts","gateway":"node scripts/run-brigade.mjs gateway","onboard":"node scripts/run-brigade.mjs onboard","pairing":"node scripts/run-brigade.mjs pairing list --channel whatsapp","prepack":"npm run build","tui:bin":"node brigade.mjs tui","wa:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels":"node scripts/run-brigade.mjs channels","sessions":"node scripts/run-brigade.mjs sessions list","wa:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","agent:bin":"node brigade.mjs agent","exec:list":"node scripts/run-brigade.mjs exec list","postbuild":"node scripts/build-done.mjs","tui:watch":"tsx --watch src/entry.ts tui","typecheck":"tsc -p tsconfig.json --noEmit","wa:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","wa:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","agents:add":"node scripts/run-brigade.mjs agents add","agents:bin":"node brigade.mjs agents","convex:dev":"node scripts/install-convex.mjs && node scripts/convex-dev.mjs","doctor:bin":"node brigade.mjs doctor","status:bin":"node brigade.mjs status","store:mode":"node scripts/run-brigade.mjs store mode show","agent:watch":"tsx --watch src/entry.ts agent","agents:bind":"node scripts/run-brigade.mjs agents bind","agents:list":"node scripts/run-brigade.mjs agents list","build:watch":"tsc -p tsconfig.build.json --watch","config:file":"node scripts/run-brigade.mjs config file","config:list":"node scripts/run-brigade.mjs config list","connect:bin":"node brigade.mjs connect","convex:push":"node scripts/convex-push.mjs","doctor:json":"node scripts/run-brigade.mjs doctor --json","gateway:bin":"node brigade.mjs gateway","logs:follow":"node scripts/run-brigade.mjs logs --follow","onboard:bin":"node brigade.mjs onboard","skills:info":"node scripts/run-brigade.mjs skills info","skills:list":"node scripts/run-brigade.mjs skills list","status:json":"node scripts/run-brigade.mjs status --json","store:reset":"node scripts/run-brigade.mjs store reset","channels:add":"node scripts/run-brigade.mjs channels add","gateway:stop":"node scripts/run-brigade.mjs gateway stop","pairing:list":"node scripts/run-brigade.mjs pairing list --channel whatsapp","agents:delete":"node scripts/run-brigade.mjs agents delete","agents:unbind":"node scripts/run-brigade.mjs agents unbind","backup:create":"node scripts/run-brigade.mjs backup create","backup:verify":"node scripts/run-brigade.mjs backup verify","channels:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels:list":"node scripts/run-brigade.mjs channels list","config:schema":"node scripts/run-brigade.mjs config schema","connect:watch":"tsx --watch src/entry.ts connect","doctor:strict":"node scripts/run-brigade.mjs doctor --strict","gateway:watch":"tsx --watch src/entry.ts gateway","onboard:watch":"tsx --watch src/entry.ts onboard","secrets:audit":"node scripts/run-brigade.mjs secrets audit","sessions:list":"node scripts/run-brigade.mjs sessions list","store:migrate":"node scripts/run-brigade.mjs store migrate","backup:restore":"node scripts/run-brigade.mjs backup restore","channels:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","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","convex:install":"node scripts/install-convex.mjs","gateway:status":"node scripts/run-brigade.mjs gateway status","pairing:revoke":"node scripts/run-brigade.mjs pairing revoke --channel whatsapp","store:mode:set":"node scripts/run-brigade.mjs store mode set","agents:bindings":"node scripts/run-brigade.mjs agents bindings","channels:enable":"node scripts/run-brigade.mjs channels enable --channel whatsapp","channels:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","channels:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","config:validate":"node scripts/run-brigade.mjs config validate","gateway:install":"node scripts/run-brigade.mjs gateway install","gateway:restart":"node scripts/run-brigade.mjs gateway restart","pairing:approve":"node scripts/run-brigade.mjs pairing approve --channel whatsapp","store:mode:show":"node scripts/run-brigade.mjs store mode show","channels:disable":"node scripts/run-brigade.mjs channels disable --channel whatsapp","sessions:cleanup":"node scripts/run-brigade.mjs sessions cleanup","gateway:uninstall":"node scripts/run-brigade.mjs gateway uninstall","smoke:strict-zero":"tsx scripts/strict-zero-smoke.mjs","store:reset:purge":"node scripts/run-brigade.mjs store reset --purge-local","channels:allow:add":"node scripts/run-brigade.mjs channels allow add --channel whatsapp","agents:set-identity":"node scripts/run-brigade.mjs agents set-identity","channels:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel whatsapp"},"_npmUser":{"name":"spinabot-labs","email":"npm@spinabot.com"},"repository":{"url":"git+https://github.com/spinabot/brigade.git","type":"git"},"_npmVersion":"11.17.0","description":"Brigade — your personal AI crew","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ws":"^8.20.0","tar":"^7.5.15","zod":"^3.23.8","yaml":"^2.9.0","chalk":"^5.3.0","json5":"^2.2.3","cfonts":"^3.3.1","convex":"^1.40.0","croner":"^10.0.1","undici":"^7.25.0","prompts":"^2.4.2","linkedom":"^0.18.12","commander":"^12.1.0","minimatch":"^10.2.5","cli-highlight":"^2.1.11","@composio/core":"^0.10.0","playwright-core":"^1.59.0","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@mariozechner/pi-tui":"0.73.1","@mozilla/readability":"^0.6.0","@whiskeysockets/baileys":"7.0.0-rc.9","@mariozechner/pi-coding-agent":"0.73.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.0","@types/ws":"^8.18.1","@types/tar":"^6.1.13","typescript":"^5.6.3","@types/node":"^22.10.0","@types/prompts":"^2.4.9","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2"},"_npmOperationalInternal":{"tmp":"tmp/brigade_1.0.2_1782023385403_0.9843775076186421","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@spinabot/brigade","version":"1.1.0","keywords":["ai","agent","agents","ai-agent","cli","tui","llm","claude","openai","gemini","ollama","whatsapp","gateway","brigade"],"author":{"name":"Spinabot"},"license":"MIT","_id":"@spinabot/brigade@1.1.0","maintainers":[{"name":"dev-spinabot","email":"bhasvanth02@gmail.com"},{"name":"spinabot-labs","email":"npm@spinabot.com"}],"homepage":"https://brigade-agent.ai","bugs":{"url":"https://github.com/spinabot/brigade/issues"},"bin":{"brigade":"brigade.mjs"},"dist":{"shasum":"92061ca82f62c4cf6b90c30ddc2f1cc08991254c","tarball":"https://registry.npmjs.org/@spinabot/brigade/-/brigade-1.1.0.tgz","fileCount":1966,"integrity":"sha512-KHW5+uOQg/UkgkrsbJ/0mqtzG3o2ihOV80JMHFz21yRnIpTX6UljVLOlK3vN766VrBCnmPFD+J2lYru62Gs3Ug==","signatures":[{"sig":"MEQCIDZ/cfP+0vqe6uM+3AwvLKzqo7UibmPL4259Rh5fRaQMAiABoKXN8gc9nDr3UP3eQ+/WJKRp17942MfiBeqSMn/FXg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spinabot%2fbrigade@1.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":15080991},"main":"dist/entry.js","type":"module","types":"./dist/entry.d.ts","engines":{"node":">=22.12"},"exports":{".":"./brigade.mjs","./package.json":"./package.json","./extension-sdk":{"types":"./dist/extension-sdk.d.ts","import":"./dist/extension-sdk.js"}},"gitHead":"080b5b983677f2e2f28801c30744e9d3108004ba","scripts":{"wa":"node scripts/run-brigade.mjs channels status --channel whatsapp","dev":"node scripts/run-brigade.mjs","tui":"node scripts/run-brigade.mjs tui","logs":"node scripts/run-brigade.mjs logs","test":"node scripts/run-tests.mjs","agent":"node scripts/run-brigade.mjs agent","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","build":"tsc -p tsconfig.build.json","clean":"node -e \"import('node:fs').then(fs => fs.rmSync('dist', { recursive: true, force: true }))\"","start":"node scripts/run-brigade.mjs","store":"node scripts/run-brigade.mjs store","watch":"tsx --watch src/entry.ts","agents":"node scripts/run-brigade.mjs agents","backup":"node scripts/run-brigade.mjs backup create","doctor":"node scripts/run-brigade.mjs doctor","skills":"node scripts/run-brigade.mjs skills list","status":"node scripts/run-brigade.mjs status","brigade":"node brigade.mjs","connect":"node scripts/run-brigade.mjs connect","dev:tsx":"tsx src/entry.ts","gateway":"node scripts/run-brigade.mjs gateway","onboard":"node scripts/run-brigade.mjs onboard","pairing":"node scripts/run-brigade.mjs pairing list --channel whatsapp","prepack":"npm run build","tui:bin":"node brigade.mjs tui","wa:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels":"node scripts/run-brigade.mjs channels","sessions":"node scripts/run-brigade.mjs sessions list","wa:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","agent:bin":"node brigade.mjs agent","exec:list":"node scripts/run-brigade.mjs exec list","postbuild":"node scripts/build-done.mjs","tui:watch":"tsx --watch src/entry.ts tui","typecheck":"tsc -p tsconfig.json --noEmit","wa:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","wa:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","agents:add":"node scripts/run-brigade.mjs agents add","agents:bin":"node brigade.mjs agents","convex:dev":"node scripts/install-convex.mjs && node scripts/convex-dev.mjs","doctor:bin":"node brigade.mjs doctor","status:bin":"node brigade.mjs status","store:mode":"node scripts/run-brigade.mjs store mode show","agent:watch":"tsx --watch src/entry.ts agent","agents:bind":"node scripts/run-brigade.mjs agents bind","agents:list":"node scripts/run-brigade.mjs agents list","build:watch":"tsc -p tsconfig.build.json --watch","config:file":"node scripts/run-brigade.mjs config file","config:list":"node scripts/run-brigade.mjs config list","connect:bin":"node brigade.mjs connect","convex:push":"node scripts/convex-push.mjs","doctor:json":"node scripts/run-brigade.mjs doctor --json","gateway:bin":"node brigade.mjs gateway","logs:follow":"node scripts/run-brigade.mjs logs --follow","onboard:bin":"node brigade.mjs onboard","skills:info":"node scripts/run-brigade.mjs skills info","skills:list":"node scripts/run-brigade.mjs skills list","status:json":"node scripts/run-brigade.mjs status --json","store:reset":"node scripts/run-brigade.mjs store reset","channels:add":"node scripts/run-brigade.mjs channels add","gateway:stop":"node scripts/run-brigade.mjs gateway stop","pairing:list":"node scripts/run-brigade.mjs pairing list --channel whatsapp","agents:delete":"node scripts/run-brigade.mjs agents delete","agents:unbind":"node scripts/run-brigade.mjs agents unbind","backup:create":"node scripts/run-brigade.mjs backup create","backup:verify":"node scripts/run-brigade.mjs backup verify","channels:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels:list":"node scripts/run-brigade.mjs channels list","config:schema":"node scripts/run-brigade.mjs config schema","connect:watch":"tsx --watch src/entry.ts connect","doctor:strict":"node scripts/run-brigade.mjs doctor --strict","gateway:watch":"tsx --watch src/entry.ts gateway","onboard:watch":"tsx --watch src/entry.ts onboard","secrets:audit":"node scripts/run-brigade.mjs secrets audit","sessions:list":"node scripts/run-brigade.mjs sessions list","store:migrate":"node scripts/run-brigade.mjs store migrate","backup:restore":"node scripts/run-brigade.mjs backup restore","channels:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","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","convex:install":"node scripts/install-convex.mjs","gateway:status":"node scripts/run-brigade.mjs gateway status","pairing:revoke":"node scripts/run-brigade.mjs pairing revoke --channel whatsapp","store:mode:set":"node scripts/run-brigade.mjs store mode set","agents:bindings":"node scripts/run-brigade.mjs agents bindings","channels:enable":"node scripts/run-brigade.mjs channels enable --channel whatsapp","channels:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","channels:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","config:validate":"node scripts/run-brigade.mjs config validate","gateway:install":"node scripts/run-brigade.mjs gateway install","gateway:restart":"node scripts/run-brigade.mjs gateway restart","pairing:approve":"node scripts/run-brigade.mjs pairing approve --channel whatsapp","store:mode:show":"node scripts/run-brigade.mjs store mode show","channels:disable":"node scripts/run-brigade.mjs channels disable --channel whatsapp","sessions:cleanup":"node scripts/run-brigade.mjs sessions cleanup","gateway:uninstall":"node scripts/run-brigade.mjs gateway uninstall","smoke:strict-zero":"tsx scripts/strict-zero-smoke.mjs","store:reset:purge":"node scripts/run-brigade.mjs store reset --purge-local","channels:allow:add":"node scripts/run-brigade.mjs channels allow add --channel whatsapp","agents:set-identity":"node scripts/run-brigade.mjs agents set-identity","channels:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel whatsapp"},"_npmUser":{"name":"spinabot-labs","email":"npm@spinabot.com"},"repository":{"url":"git+https://github.com/spinabot/brigade.git","type":"git"},"_npmVersion":"11.17.0","description":"Brigade — your personal AI crew","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ws":"^8.20.0","tar":"^7.5.15","zod":"^3.23.8","yaml":"^2.9.0","chalk":"^5.3.0","json5":"^2.2.3","cfonts":"^3.3.1","convex":"^1.40.0","croner":"^10.0.1","undici":"^7.25.0","prompts":"^2.4.2","linkedom":"^0.18.12","commander":"^12.1.0","minimatch":"^10.2.5","cli-highlight":"^2.1.11","@composio/core":"^0.10.0","playwright-core":"^1.59.0","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@mariozechner/pi-tui":"0.73.1","@mozilla/readability":"^0.6.0","@whiskeysockets/baileys":"7.0.0-rc.9","@mariozechner/pi-coding-agent":"0.73.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.0","@types/ws":"^8.18.1","@types/tar":"^6.1.13","typescript":"^5.6.3","@types/node":"^22.10.0","@types/prompts":"^2.4.9","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2"},"_npmOperationalInternal":{"tmp":"tmp/brigade_1.1.0_1782026543036_0.006050799536503115","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@spinabot/brigade","version":"1.2.0","keywords":["ai","agent","agents","ai-agent","cli","tui","llm","claude","openai","gemini","ollama","whatsapp","gateway","brigade"],"author":{"name":"Spinabot","email":"hello@brigade-agent.ai"},"license":"MIT","_id":"@spinabot/brigade@1.2.0","maintainers":[{"name":"dev-spinabot","email":"bhasvanth02@gmail.com"},{"name":"spinabot-labs","email":"npm@spinabot.com"}],"homepage":"https://brigade-agent.ai","bugs":{"url":"https://github.com/spinabot/brigade/issues","email":"hello@brigade-agent.ai"},"bin":{"brigade":"brigade.mjs"},"dist":{"shasum":"7745f15643eca5b6ba77744c20560404671c88d3","tarball":"https://registry.npmjs.org/@spinabot/brigade/-/brigade-1.2.0.tgz","fileCount":2054,"integrity":"sha512-1JdDcE4zuU4w+6wN8N0B7JhsHzn+/7IeCP/wR4RmRw8zm55jCwLdIsFHH3zHXDtFXaNruWCKrjCFM5WuSgjUjA==","signatures":[{"sig":"MEYCIQCAh6W/ZBR5J8VpohvHI4AdmYlgK2F9uwjlxibAfK+0ZgIhALos7YmzfOwSCs85iy5xaMiw4/TB5BsXPzLByHcmDcoQ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spinabot%2fbrigade@1.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":15598178},"main":"dist/entry.js","type":"module","types":"./dist/entry.d.ts","engines":{"node":">=22.12"},"exports":{".":"./brigade.mjs","./package.json":"./package.json","./extension-sdk":{"types":"./dist/extension-sdk.d.ts","import":"./dist/extension-sdk.js"}},"gitHead":"565071ba3f79116c7b98873236c9b513c779fe80","scripts":{"wa":"node scripts/run-brigade.mjs channels status --channel whatsapp","dev":"node scripts/run-brigade.mjs","tui":"node scripts/run-brigade.mjs tui","logs":"node scripts/run-brigade.mjs logs","test":"node scripts/run-tests.mjs","agent":"node scripts/run-brigade.mjs agent","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","build":"tsc -p tsconfig.build.json","clean":"node -e \"import('node:fs').then(fs => fs.rmSync('dist', { recursive: true, force: true }))\"","start":"node scripts/run-brigade.mjs","store":"node scripts/run-brigade.mjs store","watch":"tsx --watch src/entry.ts","agents":"node scripts/run-brigade.mjs agents","backup":"node scripts/run-brigade.mjs backup create","doctor":"node scripts/run-brigade.mjs doctor","skills":"node scripts/run-brigade.mjs skills list","status":"node scripts/run-brigade.mjs status","brigade":"node brigade.mjs","connect":"node scripts/run-brigade.mjs connect","dev:tsx":"tsx src/entry.ts","gateway":"node scripts/run-brigade.mjs gateway","onboard":"node scripts/run-brigade.mjs onboard","pairing":"node scripts/run-brigade.mjs pairing list --channel whatsapp","prepack":"npm run build","tui:bin":"node brigade.mjs tui","wa:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels":"node scripts/run-brigade.mjs channels","sessions":"node scripts/run-brigade.mjs sessions list","telegram":"node scripts/run-brigade.mjs channels status --channel telegram","wa:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","agent:bin":"node brigade.mjs agent","exec:list":"node scripts/run-brigade.mjs exec list","postbuild":"node scripts/build-done.mjs","tui:watch":"tsx --watch src/entry.ts tui","typecheck":"tsc -p tsconfig.json --noEmit","wa:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","wa:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","agents:add":"node scripts/run-brigade.mjs agents add","agents:bin":"node brigade.mjs agents","convex:dev":"node scripts/install-convex.mjs && node scripts/convex-dev.mjs","doctor:bin":"node brigade.mjs doctor","status:bin":"node brigade.mjs status","store:mode":"node scripts/run-brigade.mjs store mode show","agent:watch":"tsx --watch src/entry.ts agent","agents:bind":"node scripts/run-brigade.mjs agents bind","agents:list":"node scripts/run-brigade.mjs agents list","build:watch":"tsc -p tsconfig.build.json --watch","config:file":"node scripts/run-brigade.mjs config file","config:list":"node scripts/run-brigade.mjs config list","connect:bin":"node brigade.mjs connect","convex:push":"node scripts/convex-push.mjs","doctor:json":"node scripts/run-brigade.mjs doctor --json","gateway:bin":"node brigade.mjs gateway","logs:follow":"node scripts/run-brigade.mjs logs --follow","onboard:bin":"node brigade.mjs onboard","skills:info":"node scripts/run-brigade.mjs skills info","skills:list":"node scripts/run-brigade.mjs skills list","status:json":"node scripts/run-brigade.mjs status --json","store:reset":"node scripts/run-brigade.mjs store reset","channels:add":"node scripts/run-brigade.mjs channels add","gateway:stop":"node scripts/run-brigade.mjs gateway stop","pairing:list":"node scripts/run-brigade.mjs pairing list --channel whatsapp","agents:delete":"node scripts/run-brigade.mjs agents delete","agents:unbind":"node scripts/run-brigade.mjs agents unbind","backup:create":"node scripts/run-brigade.mjs backup create","backup:verify":"node scripts/run-brigade.mjs backup verify","channels:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels:list":"node scripts/run-brigade.mjs channels list","config:schema":"node scripts/run-brigade.mjs config schema","connect:watch":"tsx --watch src/entry.ts connect","doctor:strict":"node scripts/run-brigade.mjs doctor --strict","gateway:watch":"tsx --watch src/entry.ts gateway","onboard:watch":"tsx --watch src/entry.ts onboard","secrets:audit":"node scripts/run-brigade.mjs secrets audit","sessions:list":"node scripts/run-brigade.mjs sessions list","store:migrate":"node scripts/run-brigade.mjs store migrate","backup:restore":"node scripts/run-brigade.mjs backup restore","channels:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","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","convex:install":"node scripts/install-convex.mjs","gateway:status":"node scripts/run-brigade.mjs gateway status","pairing:revoke":"node scripts/run-brigade.mjs pairing revoke --channel whatsapp","store:mode:set":"node scripts/run-brigade.mjs store mode set","telegram:allow":"node scripts/run-brigade.mjs channels allow list --channel telegram","telegram:token":"node scripts/run-brigade.mjs channels add --channel telegram","agents:bindings":"node scripts/run-brigade.mjs agents bindings","channels:enable":"node scripts/run-brigade.mjs channels enable --channel whatsapp","channels:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","channels:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","config:validate":"node scripts/run-brigade.mjs config validate","gateway:install":"node scripts/run-brigade.mjs gateway install","gateway:restart":"node scripts/run-brigade.mjs gateway restart","pairing:approve":"node scripts/run-brigade.mjs pairing approve --channel whatsapp","store:mode:show":"node scripts/run-brigade.mjs store mode show","telegram:enable":"node scripts/run-brigade.mjs channels enable --channel telegram","telegram:status":"node scripts/run-brigade.mjs channels status --channel telegram","channels:disable":"node scripts/run-brigade.mjs channels disable --channel whatsapp","sessions:cleanup":"node scripts/run-brigade.mjs sessions cleanup","telegram:disable":"node scripts/run-brigade.mjs channels disable --channel telegram","gateway:uninstall":"node scripts/run-brigade.mjs gateway uninstall","smoke:strict-zero":"tsx scripts/strict-zero-smoke.mjs","store:reset:purge":"node scripts/run-brigade.mjs store reset --purge-local","channels:allow:add":"node scripts/run-brigade.mjs channels allow add --channel whatsapp","telegram:allow:add":"node scripts/run-brigade.mjs channels allow add --channel telegram","agents:set-identity":"node scripts/run-brigade.mjs agents set-identity","channels:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel whatsapp","telegram:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel telegram"},"_npmUser":{"name":"spinabot-labs","email":"npm@spinabot.com"},"repository":{"url":"git+https://github.com/spinabot/brigade.git","type":"git"},"_npmVersion":"11.17.0","description":"Brigade — your personal AI crew","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ws":"^8.20.0","tar":"^7.5.15","zod":"^3.23.8","yaml":"^2.9.0","chalk":"^5.3.0","json5":"^2.2.3","cfonts":"^3.3.1","convex":"^1.40.0","croner":"^10.0.1","grammy":"^1.42.0","undici":"^7.25.0","prompts":"^2.4.2","linkedom":"^0.18.12","commander":"^12.1.0","minimatch":"^10.2.5","cli-highlight":"^2.1.11","@composio/core":"^0.10.0","@grammyjs/types":"^3.21.0","playwright-core":"^1.59.0","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@mariozechner/pi-tui":"0.73.1","@mozilla/readability":"^0.6.0","@whiskeysockets/baileys":"7.0.0-rc.9","@mariozechner/pi-coding-agent":"0.73.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.0","@types/ws":"^8.18.1","@types/tar":"^6.1.13","typescript":"^5.6.3","@types/node":"^22.10.0","@types/prompts":"^2.4.9","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2"},"_npmOperationalInternal":{"tmp":"tmp/brigade_1.2.0_1782027924720_0.851619267579367","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"@spinabot/brigade","version":"1.2.1","keywords":["ai","agent","agents","ai-agent","cli","tui","llm","claude","openai","gemini","ollama","whatsapp","gateway","brigade"],"author":{"name":"Spinabot","email":"hello@brigade-agent.ai"},"license":"MIT","_id":"@spinabot/brigade@1.2.1","maintainers":[{"name":"dev-spinabot","email":"bhasvanth02@gmail.com"},{"name":"spinabot-labs","email":"npm@spinabot.com"}],"homepage":"https://brigade-agent.ai","bugs":{"url":"https://github.com/spinabot/brigade/issues","email":"hello@brigade-agent.ai"},"bin":{"brigade":"brigade.mjs"},"dist":{"shasum":"d1493c3732b1e397afa7a9dbcf5e2792732e4ae4","tarball":"https://registry.npmjs.org/@spinabot/brigade/-/brigade-1.2.1.tgz","fileCount":2054,"integrity":"sha512-EdzfyJYymBMq6M5R8sa9P5PHwmg81k9TGZFpZ4KrdpWTIAzuEhwF4854ukcYHdypNQz23jqigRnFJkIdnDG45w==","signatures":[{"sig":"MEYCIQC0rRrTVhcy/93e41W5+GQqFYtrRh0FNyzhYK1PHHt7igIhANl9TdSs7vmdB63QyY5kFzNc0O3EDVCcG6VtZYqqjxvS","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spinabot%2fbrigade@1.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":15598216},"main":"dist/entry.js","type":"module","types":"./dist/entry.d.ts","engines":{"node":">=22.12"},"exports":{".":"./brigade.mjs","./package.json":"./package.json","./extension-sdk":{"types":"./dist/extension-sdk.d.ts","import":"./dist/extension-sdk.js"}},"gitHead":"d363f700af031e9775e69625bb066ab39131eb1d","scripts":{"wa":"node scripts/run-brigade.mjs channels status --channel whatsapp","dev":"node scripts/run-brigade.mjs","tui":"node scripts/run-brigade.mjs tui","logs":"node scripts/run-brigade.mjs logs","test":"node scripts/run-tests.mjs","agent":"node scripts/run-brigade.mjs agent","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","build":"tsc -p tsconfig.build.json","clean":"node -e \"import('node:fs').then(fs => fs.rmSync('dist', { recursive: true, force: true }))\"","start":"node scripts/run-brigade.mjs","store":"node scripts/run-brigade.mjs store","watch":"tsx --watch src/entry.ts","agents":"node scripts/run-brigade.mjs agents","backup":"node scripts/run-brigade.mjs backup create","doctor":"node scripts/run-brigade.mjs doctor","skills":"node scripts/run-brigade.mjs skills list","status":"node scripts/run-brigade.mjs status","brigade":"node brigade.mjs","connect":"node scripts/run-brigade.mjs connect","dev:tsx":"tsx src/entry.ts","gateway":"node scripts/run-brigade.mjs gateway","onboard":"node scripts/run-brigade.mjs onboard","pairing":"node scripts/run-brigade.mjs pairing list --channel whatsapp","prepack":"npm run build","tui:bin":"node brigade.mjs tui","wa:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels":"node scripts/run-brigade.mjs channels","sessions":"node scripts/run-brigade.mjs sessions list","telegram":"node scripts/run-brigade.mjs channels status --channel telegram","wa:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","agent:bin":"node brigade.mjs agent","exec:list":"node scripts/run-brigade.mjs exec list","postbuild":"node scripts/build-done.mjs","tui:watch":"tsx --watch src/entry.ts tui","typecheck":"tsc -p tsconfig.json --noEmit","wa:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","wa:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","agents:add":"node scripts/run-brigade.mjs agents add","agents:bin":"node brigade.mjs agents","convex:dev":"node scripts/install-convex.mjs && node scripts/convex-dev.mjs","doctor:bin":"node brigade.mjs doctor","status:bin":"node brigade.mjs status","store:mode":"node scripts/run-brigade.mjs store mode show","agent:watch":"tsx --watch src/entry.ts agent","agents:bind":"node scripts/run-brigade.mjs agents bind","agents:list":"node scripts/run-brigade.mjs agents list","build:watch":"tsc -p tsconfig.build.json --watch","config:file":"node scripts/run-brigade.mjs config file","config:list":"node scripts/run-brigade.mjs config list","connect:bin":"node brigade.mjs connect","convex:push":"node scripts/convex-push.mjs","doctor:json":"node scripts/run-brigade.mjs doctor --json","gateway:bin":"node brigade.mjs gateway","logs:follow":"node scripts/run-brigade.mjs logs --follow","onboard:bin":"node brigade.mjs onboard","skills:info":"node scripts/run-brigade.mjs skills info","skills:list":"node scripts/run-brigade.mjs skills list","status:json":"node scripts/run-brigade.mjs status --json","store:reset":"node scripts/run-brigade.mjs store reset","channels:add":"node scripts/run-brigade.mjs channels add","gateway:stop":"node scripts/run-brigade.mjs gateway stop","pairing:list":"node scripts/run-brigade.mjs pairing list --channel whatsapp","agents:delete":"node scripts/run-brigade.mjs agents delete","agents:unbind":"node scripts/run-brigade.mjs agents unbind","backup:create":"node scripts/run-brigade.mjs backup create","backup:verify":"node scripts/run-brigade.mjs backup verify","channels:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels:list":"node scripts/run-brigade.mjs channels list","config:schema":"node scripts/run-brigade.mjs config schema","connect:watch":"tsx --watch src/entry.ts connect","doctor:strict":"node scripts/run-brigade.mjs doctor --strict","gateway:watch":"tsx --watch src/entry.ts gateway","onboard:watch":"tsx --watch src/entry.ts onboard","secrets:audit":"node scripts/run-brigade.mjs secrets audit","sessions:list":"node scripts/run-brigade.mjs sessions list","store:migrate":"node scripts/run-brigade.mjs store migrate","backup:restore":"node scripts/run-brigade.mjs backup restore","channels:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","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","convex:install":"node scripts/install-convex.mjs","gateway:status":"node scripts/run-brigade.mjs gateway status","pairing:revoke":"node scripts/run-brigade.mjs pairing revoke --channel whatsapp","store:mode:set":"node scripts/run-brigade.mjs store mode set","telegram:allow":"node scripts/run-brigade.mjs channels allow list --channel telegram","telegram:token":"node scripts/run-brigade.mjs channels add --channel telegram","agents:bindings":"node scripts/run-brigade.mjs agents bindings","channels:enable":"node scripts/run-brigade.mjs channels enable --channel whatsapp","channels:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","channels:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","config:validate":"node scripts/run-brigade.mjs config validate","gateway:install":"node scripts/run-brigade.mjs gateway install","gateway:restart":"node scripts/run-brigade.mjs gateway restart","pairing:approve":"node scripts/run-brigade.mjs pairing approve --channel whatsapp","store:mode:show":"node scripts/run-brigade.mjs store mode show","telegram:enable":"node scripts/run-brigade.mjs channels enable --channel telegram","telegram:status":"node scripts/run-brigade.mjs channels status --channel telegram","channels:disable":"node scripts/run-brigade.mjs channels disable --channel whatsapp","sessions:cleanup":"node scripts/run-brigade.mjs sessions cleanup","telegram:disable":"node scripts/run-brigade.mjs channels disable --channel telegram","gateway:uninstall":"node scripts/run-brigade.mjs gateway uninstall","smoke:strict-zero":"tsx scripts/strict-zero-smoke.mjs","store:reset:purge":"node scripts/run-brigade.mjs store reset --purge-local","channels:allow:add":"node scripts/run-brigade.mjs channels allow add --channel whatsapp","telegram:allow:add":"node scripts/run-brigade.mjs channels allow add --channel telegram","agents:set-identity":"node scripts/run-brigade.mjs agents set-identity","channels:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel whatsapp","telegram:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel telegram"},"_npmUser":{"name":"spinabot-labs","email":"npm@spinabot.com"},"overrides":{"ws":"$ws"},"repository":{"url":"git+https://github.com/spinabot/brigade.git","type":"git"},"_npmVersion":"11.17.0","description":"Brigade — your personal AI crew","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ws":"^8.21.0","tar":"^7.5.15","zod":"^3.23.8","yaml":"^2.9.0","chalk":"^5.3.0","json5":"^2.2.3","cfonts":"^3.3.1","convex":"^1.40.0","croner":"^10.0.1","grammy":"^1.42.0","undici":"^7.25.0","prompts":"^2.4.2","linkedom":"^0.18.12","commander":"^12.1.0","minimatch":"^10.2.5","cli-highlight":"^2.1.11","@composio/core":"^0.10.0","@grammyjs/types":"^3.21.0","playwright-core":"^1.59.0","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@mariozechner/pi-tui":"0.73.1","@mozilla/readability":"^0.6.0","@whiskeysockets/baileys":"7.0.0-rc13","@mariozechner/pi-coding-agent":"0.73.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","@types/ws":"^8.18.1","@types/tar":"^6.1.13","typescript":"^5.6.3","@types/node":"^22.10.0","@types/prompts":"^2.4.9","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2"},"_npmOperationalInternal":{"tmp":"tmp/brigade_1.2.1_1782028681207_0.25563821221052563","host":"s3://npm-registry-packages-npm-production"}},"1.2.2":{"name":"@spinabot/brigade","version":"1.2.2","keywords":["ai","agent","agents","ai-agent","cli","tui","llm","claude","openai","gemini","ollama","whatsapp","gateway","brigade"],"author":{"name":"Spinabot","email":"hello@brigade-agent.ai"},"license":"MIT","_id":"@spinabot/brigade@1.2.2","maintainers":[{"name":"dev-spinabot","email":"bhasvanth02@gmail.com"},{"name":"spinabot-labs","email":"npm@spinabot.com"}],"homepage":"https://brigade-agent.ai","bugs":{"url":"https://github.com/spinabot/brigade/issues","email":"hello@brigade-agent.ai"},"bin":{"brigade":"brigade.mjs"},"dist":{"shasum":"a15a3b8e88abf89fedbffc91b9263fbbbf23745f","tarball":"https://registry.npmjs.org/@spinabot/brigade/-/brigade-1.2.2.tgz","fileCount":2054,"integrity":"sha512-7p1sGMYe3Q0Xlt8qtKhSDLRuFkJ1AdBOuVPxVlbz/Ujw/axIR+GrdDb42vat7HE4eO6zjU8dRsXhHNJFNI1aug==","signatures":[{"sig":"MEQCIHPfn8wMLM7cJoJrSMtxPSOePyqrXIkY6lU0BoQ5IpZZAiBVz+XfUnHw+CE6wYKX3XapwIQcaYqdfPSzY8yUZmxuWw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spinabot%2fbrigade@1.2.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":15599529},"main":"dist/entry.js","type":"module","types":"./dist/entry.d.ts","engines":{"node":">=22.12"},"exports":{".":"./brigade.mjs","./package.json":"./package.json","./extension-sdk":{"types":"./dist/extension-sdk.d.ts","import":"./dist/extension-sdk.js"}},"gitHead":"01f987303f6cb4268f4bcf61fe5df2a1cf11e36e","scripts":{"wa":"node scripts/run-brigade.mjs channels status --channel whatsapp","dev":"node scripts/run-brigade.mjs","tui":"node scripts/run-brigade.mjs tui","logs":"node scripts/run-brigade.mjs logs","test":"node scripts/run-tests.mjs","agent":"node scripts/run-brigade.mjs agent","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","build":"tsc -p tsconfig.build.json","clean":"node -e \"import('node:fs').then(fs => fs.rmSync('dist', { recursive: true, force: true }))\"","start":"node scripts/run-brigade.mjs","store":"node scripts/run-brigade.mjs store","watch":"tsx --watch src/entry.ts","agents":"node scripts/run-brigade.mjs agents","backup":"node scripts/run-brigade.mjs backup create","doctor":"node scripts/run-brigade.mjs doctor","skills":"node scripts/run-brigade.mjs skills list","status":"node scripts/run-brigade.mjs status","brigade":"node brigade.mjs","connect":"node scripts/run-brigade.mjs connect","dev:tsx":"tsx src/entry.ts","gateway":"node scripts/run-brigade.mjs gateway","onboard":"node scripts/run-brigade.mjs onboard","pairing":"node scripts/run-brigade.mjs pairing list --channel whatsapp","prepack":"npm run build","tui:bin":"node brigade.mjs tui","wa:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels":"node scripts/run-brigade.mjs channels","sessions":"node scripts/run-brigade.mjs sessions list","telegram":"node scripts/run-brigade.mjs channels status --channel telegram","wa:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","agent:bin":"node brigade.mjs agent","exec:list":"node scripts/run-brigade.mjs exec list","postbuild":"node scripts/build-done.mjs","tui:watch":"tsx --watch src/entry.ts tui","typecheck":"tsc -p tsconfig.json --noEmit","wa:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","wa:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","agents:add":"node scripts/run-brigade.mjs agents add","agents:bin":"node brigade.mjs agents","convex:dev":"node scripts/install-convex.mjs && node scripts/convex-dev.mjs","doctor:bin":"node brigade.mjs doctor","status:bin":"node brigade.mjs status","store:mode":"node scripts/run-brigade.mjs store mode show","agent:watch":"tsx --watch src/entry.ts agent","agents:bind":"node scripts/run-brigade.mjs agents bind","agents:list":"node scripts/run-brigade.mjs agents list","build:watch":"tsc -p tsconfig.build.json --watch","config:file":"node scripts/run-brigade.mjs config file","config:list":"node scripts/run-brigade.mjs config list","connect:bin":"node brigade.mjs connect","convex:push":"node scripts/convex-push.mjs","doctor:json":"node scripts/run-brigade.mjs doctor --json","gateway:bin":"node brigade.mjs gateway","logs:follow":"node scripts/run-brigade.mjs logs --follow","onboard:bin":"node brigade.mjs onboard","skills:info":"node scripts/run-brigade.mjs skills info","skills:list":"node scripts/run-brigade.mjs skills list","status:json":"node scripts/run-brigade.mjs status --json","store:reset":"node scripts/run-brigade.mjs store reset","channels:add":"node scripts/run-brigade.mjs channels add","gateway:stop":"node scripts/run-brigade.mjs gateway stop","pairing:list":"node scripts/run-brigade.mjs pairing list --channel whatsapp","agents:delete":"node scripts/run-brigade.mjs agents delete","agents:unbind":"node scripts/run-brigade.mjs agents unbind","backup:create":"node scripts/run-brigade.mjs backup create","backup:verify":"node scripts/run-brigade.mjs backup verify","channels:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels:list":"node scripts/run-brigade.mjs channels list","config:schema":"node scripts/run-brigade.mjs config schema","connect:watch":"tsx --watch src/entry.ts connect","doctor:strict":"node scripts/run-brigade.mjs doctor --strict","gateway:watch":"tsx --watch src/entry.ts gateway","onboard:watch":"tsx --watch src/entry.ts onboard","secrets:audit":"node scripts/run-brigade.mjs secrets audit","sessions:list":"node scripts/run-brigade.mjs sessions list","store:migrate":"node scripts/run-brigade.mjs store migrate","backup:restore":"node scripts/run-brigade.mjs backup restore","channels:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","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","convex:install":"node scripts/install-convex.mjs","gateway:status":"node scripts/run-brigade.mjs gateway status","pairing:revoke":"node scripts/run-brigade.mjs pairing revoke --channel whatsapp","store:mode:set":"node scripts/run-brigade.mjs store mode set","telegram:allow":"node scripts/run-brigade.mjs channels allow list --channel telegram","telegram:token":"node scripts/run-brigade.mjs channels add --channel telegram","agents:bindings":"node scripts/run-brigade.mjs agents bindings","channels:enable":"node scripts/run-brigade.mjs channels enable --channel whatsapp","channels:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","channels:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","config:validate":"node scripts/run-brigade.mjs config validate","gateway:install":"node scripts/run-brigade.mjs gateway install","gateway:restart":"node scripts/run-brigade.mjs gateway restart","pairing:approve":"node scripts/run-brigade.mjs pairing approve --channel whatsapp","store:mode:show":"node scripts/run-brigade.mjs store mode show","telegram:enable":"node scripts/run-brigade.mjs channels enable --channel telegram","telegram:status":"node scripts/run-brigade.mjs channels status --channel telegram","channels:disable":"node scripts/run-brigade.mjs channels disable --channel whatsapp","sessions:cleanup":"node scripts/run-brigade.mjs sessions cleanup","telegram:disable":"node scripts/run-brigade.mjs channels disable --channel telegram","gateway:uninstall":"node scripts/run-brigade.mjs gateway uninstall","smoke:strict-zero":"tsx scripts/strict-zero-smoke.mjs","store:reset:purge":"node scripts/run-brigade.mjs store reset --purge-local","channels:allow:add":"node scripts/run-brigade.mjs channels allow add --channel whatsapp","telegram:allow:add":"node scripts/run-brigade.mjs channels allow add --channel telegram","agents:set-identity":"node scripts/run-brigade.mjs agents set-identity","channels:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel whatsapp","telegram:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel telegram"},"_npmUser":{"name":"spinabot-labs","email":"npm@spinabot.com"},"overrides":{"ws":"$ws"},"repository":{"url":"git+https://github.com/spinabot/brigade.git","type":"git"},"_npmVersion":"11.17.0","description":"Brigade — your personal AI crew","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ws":"^8.21.0","tar":"^7.5.15","zod":"^3.23.8","yaml":"^2.9.0","chalk":"^5.3.0","json5":"^2.2.3","cfonts":"^3.3.1","convex":"^1.40.0","croner":"^10.0.1","grammy":"^1.42.0","undici":"^7.25.0","prompts":"^2.4.2","linkedom":"^0.18.12","commander":"^12.1.0","minimatch":"^10.2.5","cli-highlight":"^2.1.11","@composio/core":"^0.10.0","@grammyjs/types":"^3.21.0","playwright-core":"^1.59.0","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@mozilla/readability":"^0.6.0","@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@whiskeysockets/baileys":"7.0.0-rc13","@earendil-works/pi-agent-core":"0.79.9","@earendil-works/pi-coding-agent":"0.79.9","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","@types/ws":"^8.18.1","@types/tar":"^6.1.13","typescript":"^5.6.3","@types/node":"^22.10.0","@types/prompts":"^2.4.9","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2"},"_npmOperationalInternal":{"tmp":"tmp/brigade_1.2.2_1782029545173_0.24197183691304192","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@spinabot/brigade","version":"1.3.0","keywords":["ai","agent","agents","ai-agent","cli","tui","llm","claude","openai","gemini","ollama","whatsapp","gateway","brigade"],"author":{"name":"Spinabot","email":"hello@brigade-agent.ai"},"license":"MIT","_id":"@spinabot/brigade@1.3.0","maintainers":[{"name":"dev-spinabot","email":"bhasvanth02@gmail.com"},{"name":"spinabot-labs","email":"npm@spinabot.com"}],"homepage":"https://brigade.spinabot.com","bugs":{"url":"https://github.com/spinabot/brigade/issues","email":"hello@brigade-agent.ai"},"bin":{"brigade":"brigade.mjs"},"dist":{"shasum":"90926afe812076df6b4aad75fc011818583c18f3","tarball":"https://registry.npmjs.org/@spinabot/brigade/-/brigade-1.3.0.tgz","fileCount":2069,"integrity":"sha512-Or5IK/LeMw7kG78cMeG9a4i4tz//aRu0FY3n8ygFf3GAoGObvGzXToF5LBFW8weickRBUK2gLdAKr5oJR6hkxA==","signatures":[{"sig":"MEYCIQC2C1wR0lOVOAzY/vIEuZqx8qmZypRFDLwpB+Xy6xhZyQIhALWqqgZzsSu7Vx0Zm3qXmNzESdxJbfNju/FJHulE5t5e","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spinabot%2fbrigade@1.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":15799125},"main":"dist/entry.js","type":"module","types":"./dist/entry.d.ts","engines":{"node":">=22.12"},"exports":{".":"./brigade.mjs","./package.json":"./package.json","./extension-sdk":{"types":"./dist/extension-sdk.d.ts","import":"./dist/extension-sdk.js"}},"gitHead":"e045fd401c2e4b4cdf60974267a4953a83886996","scripts":{"wa":"node scripts/run-brigade.mjs channels status --channel whatsapp","dev":"node scripts/run-brigade.mjs","tui":"node scripts/run-brigade.mjs tui","logs":"node scripts/run-brigade.mjs logs","test":"node scripts/run-tests.mjs","agent":"node scripts/run-brigade.mjs agent","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","build":"tsc -p tsconfig.build.json","clean":"node -e \"import('node:fs').then(fs => fs.rmSync('dist', { recursive: true, force: true }))\"","start":"node scripts/run-brigade.mjs","store":"node scripts/run-brigade.mjs store","watch":"tsx --watch src/entry.ts","agents":"node scripts/run-brigade.mjs agents","backup":"node scripts/run-brigade.mjs backup create","doctor":"node scripts/run-brigade.mjs doctor","skills":"node scripts/run-brigade.mjs skills list","status":"node scripts/run-brigade.mjs status","brigade":"node brigade.mjs","connect":"node scripts/run-brigade.mjs connect","dev:tsx":"tsx src/entry.ts","gateway":"node scripts/run-brigade.mjs gateway","onboard":"node scripts/run-brigade.mjs onboard","pairing":"node scripts/run-brigade.mjs pairing list --channel whatsapp","prepack":"npm run build","tui:bin":"node brigade.mjs tui","wa:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels":"node scripts/run-brigade.mjs channels","sessions":"node scripts/run-brigade.mjs sessions list","telegram":"node scripts/run-brigade.mjs channels status --channel telegram","wa:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","agent:bin":"node brigade.mjs agent","exec:list":"node scripts/run-brigade.mjs exec list","postbuild":"node scripts/build-done.mjs","tui:watch":"tsx --watch src/entry.ts tui","typecheck":"tsc -p tsconfig.json --noEmit","wa:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","wa:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","agents:add":"node scripts/run-brigade.mjs agents add","agents:bin":"node brigade.mjs agents","convex:dev":"node scripts/install-convex.mjs && node scripts/convex-dev.mjs","doctor:bin":"node brigade.mjs doctor","status:bin":"node brigade.mjs status","store:mode":"node scripts/run-brigade.mjs store mode show","agent:watch":"tsx --watch src/entry.ts agent","agents:bind":"node scripts/run-brigade.mjs agents bind","agents:list":"node scripts/run-brigade.mjs agents list","build:watch":"tsc -p tsconfig.build.json --watch","config:file":"node scripts/run-brigade.mjs config file","config:list":"node scripts/run-brigade.mjs config list","connect:bin":"node brigade.mjs connect","convex:push":"node scripts/convex-push.mjs","doctor:json":"node scripts/run-brigade.mjs doctor --json","gateway:bin":"node brigade.mjs gateway","logs:follow":"node scripts/run-brigade.mjs logs --follow","onboard:bin":"node brigade.mjs onboard","postinstall":"node scripts/brand-oauth-page.mjs","skills:info":"node scripts/run-brigade.mjs skills info","skills:list":"node scripts/run-brigade.mjs skills list","status:json":"node scripts/run-brigade.mjs status --json","store:reset":"node scripts/run-brigade.mjs store reset","channels:add":"node scripts/run-brigade.mjs channels add","gateway:stop":"node scripts/run-brigade.mjs gateway stop","pairing:list":"node scripts/run-brigade.mjs pairing list --channel whatsapp","agents:delete":"node scripts/run-brigade.mjs agents delete","agents:unbind":"node scripts/run-brigade.mjs agents unbind","backup:create":"node scripts/run-brigade.mjs backup create","backup:verify":"node scripts/run-brigade.mjs backup verify","channels:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels:list":"node scripts/run-brigade.mjs channels list","config:schema":"node scripts/run-brigade.mjs config schema","connect:watch":"tsx --watch src/entry.ts connect","doctor:strict":"node scripts/run-brigade.mjs doctor --strict","gateway:watch":"tsx --watch src/entry.ts gateway","onboard:watch":"tsx --watch src/entry.ts onboard","secrets:audit":"node scripts/run-brigade.mjs secrets audit","sessions:list":"node scripts/run-brigade.mjs sessions list","store:migrate":"node scripts/run-brigade.mjs store migrate","backup:restore":"node scripts/run-brigade.mjs backup restore","channels:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","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","convex:install":"node scripts/install-convex.mjs","gateway:status":"node scripts/run-brigade.mjs gateway status","pairing:revoke":"node scripts/run-brigade.mjs pairing revoke --channel whatsapp","store:mode:set":"node scripts/run-brigade.mjs store mode set","telegram:allow":"node scripts/run-brigade.mjs channels allow list --channel telegram","telegram:token":"node scripts/run-brigade.mjs channels add --channel telegram","agents:bindings":"node scripts/run-brigade.mjs agents bindings","channels:enable":"node scripts/run-brigade.mjs channels enable --channel whatsapp","channels:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","channels:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","config:validate":"node scripts/run-brigade.mjs config validate","gateway:install":"node scripts/run-brigade.mjs gateway install","gateway:restart":"node scripts/run-brigade.mjs gateway restart","pairing:approve":"node scripts/run-brigade.mjs pairing approve --channel whatsapp","store:mode:show":"node scripts/run-brigade.mjs store mode show","telegram:enable":"node scripts/run-brigade.mjs channels enable --channel telegram","telegram:status":"node scripts/run-brigade.mjs channels status --channel telegram","channels:disable":"node scripts/run-brigade.mjs channels disable --channel whatsapp","sessions:cleanup":"node scripts/run-brigade.mjs sessions cleanup","telegram:disable":"node scripts/run-brigade.mjs channels disable --channel telegram","gateway:uninstall":"node scripts/run-brigade.mjs gateway uninstall","smoke:strict-zero":"tsx scripts/strict-zero-smoke.mjs","store:reset:purge":"node scripts/run-brigade.mjs store reset --purge-local","channels:allow:add":"node scripts/run-brigade.mjs channels allow add --channel whatsapp","telegram:allow:add":"node scripts/run-brigade.mjs channels allow add --channel telegram","agents:set-identity":"node scripts/run-brigade.mjs agents set-identity","channels:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel whatsapp","telegram:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel telegram"},"_npmUser":{"name":"spinabot-labs","email":"npm@spinabot.com"},"overrides":{"ws":"$ws"},"repository":{"url":"git+https://github.com/spinabot/brigade.git","type":"git"},"_npmVersion":"11.17.0","description":"Brigade — your personal AI crew","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ws":"^8.21.0","tar":"^7.5.15","zod":"^3.23.8","yaml":"^2.9.0","chalk":"^5.3.0","json5":"^2.2.3","cfonts":"^3.3.1","convex":"^1.40.0","croner":"^10.0.1","grammy":"^1.42.0","undici":"^7.25.0","prompts":"^2.4.2","linkedom":"^0.18.12","commander":"^12.1.0","minimatch":"^10.2.5","cli-highlight":"^2.1.11","@composio/core":"^0.10.0","@grammyjs/types":"^3.21.0","playwright-core":"^1.59.0","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@mozilla/readability":"^0.6.0","@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@whiskeysockets/baileys":"7.0.0-rc13","@earendil-works/pi-agent-core":"0.79.9","@earendil-works/pi-coding-agent":"0.79.9","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","@types/ws":"^8.18.1","@types/tar":"^6.1.13","typescript":"^5.6.3","@types/node":"^22.10.0","@types/prompts":"^2.4.9","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2"},"_npmOperationalInternal":{"tmp":"tmp/brigade_1.3.0_1782151451295_0.027373448397594258","host":"s3://npm-registry-packages-npm-production"}},"1.3.1":{"name":"@spinabot/brigade","version":"1.3.1","keywords":["ai","agent","agents","ai-agent","cli","tui","llm","claude","openai","gemini","ollama","whatsapp","gateway","brigade"],"author":{"name":"Spinabot","email":"hello@brigade-agent.ai"},"license":"MIT","_id":"@spinabot/brigade@1.3.1","maintainers":[{"name":"dev-spinabot","email":"bhasvanth02@gmail.com"},{"name":"spinabot-labs","email":"npm@spinabot.com"}],"homepage":"https://brigade.spinabot.com","bugs":{"url":"https://github.com/spinabot/brigade/issues","email":"hello@brigade-agent.ai"},"bin":{"brigade":"brigade.mjs"},"dist":{"shasum":"09e400a0cb899dbd836dae705acf2146c1981565","tarball":"https://registry.npmjs.org/@spinabot/brigade/-/brigade-1.3.1.tgz","fileCount":2069,"integrity":"sha512-NgY/QWHdwBew2X95BUjP4dOoX/2D7Gpcp1kQ76IDdAycXe/YJlyrvY9QXbU5+DYCCBWw25IgVrdfY4U75P8F4g==","signatures":[{"sig":"MEQCIDsk/ApkPkohN7lFjiEBcZIYtIOHv7kjGuykWhyeX6qrAiAqP7A0lIjd3uvOUK831iSS0+nSbKdu+/OhCitAoES02Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spinabot%2fbrigade@1.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":15797838},"main":"dist/entry.js","type":"module","types":"./dist/entry.d.ts","engines":{"node":">=22.12"},"exports":{".":"./brigade.mjs","./package.json":"./package.json","./extension-sdk":{"types":"./dist/extension-sdk.d.ts","import":"./dist/extension-sdk.js"}},"gitHead":"5befe5c4e81e07b6beeb4e097aa742646f1af36f","scripts":{"wa":"node scripts/run-brigade.mjs channels status --channel whatsapp","dev":"node scripts/run-brigade.mjs","tui":"node scripts/run-brigade.mjs tui","logs":"node scripts/run-brigade.mjs logs","test":"node scripts/run-tests.mjs","agent":"node scripts/run-brigade.mjs agent","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","build":"tsc -p tsconfig.build.json","clean":"node -e \"import('node:fs').then(fs => fs.rmSync('dist', { recursive: true, force: true }))\"","start":"node scripts/run-brigade.mjs","store":"node scripts/run-brigade.mjs store","watch":"tsx --watch src/entry.ts","agents":"node scripts/run-brigade.mjs agents","backup":"node scripts/run-brigade.mjs backup create","doctor":"node scripts/run-brigade.mjs doctor","skills":"node scripts/run-brigade.mjs skills list","status":"node scripts/run-brigade.mjs status","brigade":"node brigade.mjs","connect":"node scripts/run-brigade.mjs connect","dev:tsx":"tsx src/entry.ts","gateway":"node scripts/run-brigade.mjs gateway","onboard":"node scripts/run-brigade.mjs onboard","pairing":"node scripts/run-brigade.mjs pairing list --channel whatsapp","prepack":"npm run build","tui:bin":"node brigade.mjs tui","wa:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels":"node scripts/run-brigade.mjs channels","sessions":"node scripts/run-brigade.mjs sessions list","telegram":"node scripts/run-brigade.mjs channels status --channel telegram","wa:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","agent:bin":"node brigade.mjs agent","exec:list":"node scripts/run-brigade.mjs exec list","postbuild":"node scripts/build-done.mjs","tui:watch":"tsx --watch src/entry.ts tui","typecheck":"tsc -p tsconfig.json --noEmit","wa:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","wa:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","agents:add":"node scripts/run-brigade.mjs agents add","agents:bin":"node brigade.mjs agents","convex:dev":"node scripts/install-convex.mjs && node scripts/convex-dev.mjs","doctor:bin":"node brigade.mjs doctor","status:bin":"node brigade.mjs status","store:mode":"node scripts/run-brigade.mjs store mode show","agent:watch":"tsx --watch src/entry.ts agent","agents:bind":"node scripts/run-brigade.mjs agents bind","agents:list":"node scripts/run-brigade.mjs agents list","build:watch":"tsc -p tsconfig.build.json --watch","config:file":"node scripts/run-brigade.mjs config file","config:list":"node scripts/run-brigade.mjs config list","connect:bin":"node brigade.mjs connect","convex:push":"node scripts/convex-push.mjs","doctor:json":"node scripts/run-brigade.mjs doctor --json","gateway:bin":"node brigade.mjs gateway","logs:follow":"node scripts/run-brigade.mjs logs --follow","onboard:bin":"node brigade.mjs onboard","postinstall":"node scripts/brand-oauth-page.mjs","skills:info":"node scripts/run-brigade.mjs skills info","skills:list":"node scripts/run-brigade.mjs skills list","status:json":"node scripts/run-brigade.mjs status --json","store:reset":"node scripts/run-brigade.mjs store reset","channels:add":"node scripts/run-brigade.mjs channels add","gateway:stop":"node scripts/run-brigade.mjs gateway stop","pairing:list":"node scripts/run-brigade.mjs pairing list --channel whatsapp","agents:delete":"node scripts/run-brigade.mjs agents delete","agents:unbind":"node scripts/run-brigade.mjs agents unbind","backup:create":"node scripts/run-brigade.mjs backup create","backup:verify":"node scripts/run-brigade.mjs backup verify","channels:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels:list":"node scripts/run-brigade.mjs channels list","config:schema":"node scripts/run-brigade.mjs config schema","connect:watch":"tsx --watch src/entry.ts connect","doctor:strict":"node scripts/run-brigade.mjs doctor --strict","gateway:watch":"tsx --watch src/entry.ts gateway","onboard:watch":"tsx --watch src/entry.ts onboard","secrets:audit":"node scripts/run-brigade.mjs secrets audit","sessions:list":"node scripts/run-brigade.mjs sessions list","store:migrate":"node scripts/run-brigade.mjs store migrate","backup:restore":"node scripts/run-brigade.mjs backup restore","channels:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","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","convex:install":"node scripts/install-convex.mjs","gateway:status":"node scripts/run-brigade.mjs gateway status","pairing:revoke":"node scripts/run-brigade.mjs pairing revoke --channel whatsapp","store:mode:set":"node scripts/run-brigade.mjs store mode set","telegram:allow":"node scripts/run-brigade.mjs channels allow list --channel telegram","telegram:token":"node scripts/run-brigade.mjs channels add --channel telegram","agents:bindings":"node scripts/run-brigade.mjs agents bindings","channels:enable":"node scripts/run-brigade.mjs channels enable --channel whatsapp","channels:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","channels:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","config:validate":"node scripts/run-brigade.mjs config validate","gateway:install":"node scripts/run-brigade.mjs gateway install","gateway:restart":"node scripts/run-brigade.mjs gateway restart","pairing:approve":"node scripts/run-brigade.mjs pairing approve --channel whatsapp","store:mode:show":"node scripts/run-brigade.mjs store mode show","telegram:enable":"node scripts/run-brigade.mjs channels enable --channel telegram","telegram:status":"node scripts/run-brigade.mjs channels status --channel telegram","channels:disable":"node scripts/run-brigade.mjs channels disable --channel whatsapp","sessions:cleanup":"node scripts/run-brigade.mjs sessions cleanup","telegram:disable":"node scripts/run-brigade.mjs channels disable --channel telegram","gateway:uninstall":"node scripts/run-brigade.mjs gateway uninstall","smoke:strict-zero":"tsx scripts/strict-zero-smoke.mjs","store:reset:purge":"node scripts/run-brigade.mjs store reset --purge-local","channels:allow:add":"node scripts/run-brigade.mjs channels allow add --channel whatsapp","telegram:allow:add":"node scripts/run-brigade.mjs channels allow add --channel telegram","agents:set-identity":"node scripts/run-brigade.mjs agents set-identity","channels:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel whatsapp","telegram:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel telegram"},"_npmUser":{"name":"spinabot-labs","email":"npm@spinabot.com"},"overrides":{"ws":"$ws"},"repository":{"url":"git+https://github.com/spinabot/brigade.git","type":"git"},"_npmVersion":"11.17.0","description":"Brigade — your personal AI crew","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ws":"^8.21.0","tar":"^7.5.15","zod":"^3.23.8","yaml":"^2.9.0","chalk":"^5.3.0","json5":"^2.2.3","cfonts":"^3.3.1","convex":"^1.40.0","croner":"^10.0.1","grammy":"^1.42.0","undici":"^7.25.0","prompts":"^2.4.2","linkedom":"^0.18.12","commander":"^12.1.0","minimatch":"^10.2.5","cli-highlight":"^2.1.11","@composio/core":"^0.10.0","@grammyjs/types":"^3.21.0","playwright-core":"^1.59.0","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@mozilla/readability":"^0.6.0","@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@whiskeysockets/baileys":"7.0.0-rc13","@earendil-works/pi-agent-core":"0.79.9","@earendil-works/pi-coding-agent":"0.79.9","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","@types/ws":"^8.18.1","@types/tar":"^6.1.13","typescript":"^5.6.3","@types/node":"^22.10.0","@types/prompts":"^2.4.9","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2"},"_npmOperationalInternal":{"tmp":"tmp/brigade_1.3.1_1782178570130_0.06802055156271547","host":"s3://npm-registry-packages-npm-production"}},"1.3.2":{"name":"@spinabot/brigade","version":"1.3.2","keywords":["ai","agent","agents","ai-agent","cli","tui","llm","claude","openai","gemini","ollama","whatsapp","gateway","brigade"],"author":{"name":"Spinabot","email":"hello@brigade-agent.ai"},"license":"MIT","_id":"@spinabot/brigade@1.3.2","maintainers":[{"name":"dev-spinabot","email":"bhasvanth02@gmail.com"},{"name":"spinabot-labs","email":"npm@spinabot.com"}],"homepage":"https://brigade.spinabot.com","bugs":{"url":"https://github.com/spinabot/brigade/issues","email":"hello@brigade-agent.ai"},"bin":{"brigade":"brigade.mjs"},"dist":{"shasum":"922a14c6fc177476b68bfee7f1195dfda6c070f0","tarball":"https://registry.npmjs.org/@spinabot/brigade/-/brigade-1.3.2.tgz","fileCount":2069,"integrity":"sha512-2pvvfQvh2aG0gf4IZ/PFD6cz9NNlsOn0Z/nh/hml8bey25lH73CzEUrjvB0TSUHSdnw1NEdkts117yGUxg7tDQ==","signatures":[{"sig":"MEQCIHRP6PeUKMP4ChG/9inVkk7C6LdHybgnyCh6LN6PHJ0yAiBPQ+bXGGe3DQMGNI7gL7HEx/Zb4ib4+ZHfCGA5hYea+A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spinabot%2fbrigade@1.3.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":15799244},"main":"dist/entry.js","type":"module","types":"./dist/entry.d.ts","engines":{"node":">=22.12"},"exports":{".":"./brigade.mjs","./package.json":"./package.json","./extension-sdk":{"types":"./dist/extension-sdk.d.ts","import":"./dist/extension-sdk.js"}},"gitHead":"d4bff771a06d3989d5a50337a7c6233161a1e612","scripts":{"wa":"node scripts/run-brigade.mjs channels status --channel whatsapp","dev":"node scripts/run-brigade.mjs","tui":"node scripts/run-brigade.mjs tui","logs":"node scripts/run-brigade.mjs logs","test":"node scripts/run-tests.mjs","agent":"node scripts/run-brigade.mjs agent","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","build":"tsc -p tsconfig.build.json","clean":"node -e \"import('node:fs').then(fs => fs.rmSync('dist', { recursive: true, force: true }))\"","start":"node scripts/run-brigade.mjs","store":"node scripts/run-brigade.mjs store","watch":"tsx --watch src/entry.ts","agents":"node scripts/run-brigade.mjs agents","backup":"node scripts/run-brigade.mjs backup create","doctor":"node scripts/run-brigade.mjs doctor","skills":"node scripts/run-brigade.mjs skills list","status":"node scripts/run-brigade.mjs status","brigade":"node brigade.mjs","connect":"node scripts/run-brigade.mjs connect","dev:tsx":"tsx src/entry.ts","gateway":"node scripts/run-brigade.mjs gateway","onboard":"node scripts/run-brigade.mjs onboard","pairing":"node scripts/run-brigade.mjs pairing list --channel whatsapp","prepack":"npm run build","tui:bin":"node brigade.mjs tui","wa:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels":"node scripts/run-brigade.mjs channels","sessions":"node scripts/run-brigade.mjs sessions list","telegram":"node scripts/run-brigade.mjs channels status --channel telegram","wa:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","agent:bin":"node brigade.mjs agent","exec:list":"node scripts/run-brigade.mjs exec list","postbuild":"node scripts/build-done.mjs","tui:watch":"tsx --watch src/entry.ts tui","typecheck":"tsc -p tsconfig.json --noEmit","wa:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","wa:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","agents:add":"node scripts/run-brigade.mjs agents add","agents:bin":"node brigade.mjs agents","convex:dev":"node scripts/install-convex.mjs && node scripts/convex-dev.mjs","doctor:bin":"node brigade.mjs doctor","status:bin":"node brigade.mjs status","store:mode":"node scripts/run-brigade.mjs store mode show","agent:watch":"tsx --watch src/entry.ts agent","agents:bind":"node scripts/run-brigade.mjs agents bind","agents:list":"node scripts/run-brigade.mjs agents list","build:watch":"tsc -p tsconfig.build.json --watch","config:file":"node scripts/run-brigade.mjs config file","config:list":"node scripts/run-brigade.mjs config list","connect:bin":"node brigade.mjs connect","convex:push":"node scripts/convex-push.mjs","doctor:json":"node scripts/run-brigade.mjs doctor --json","gateway:bin":"node brigade.mjs gateway","logs:follow":"node scripts/run-brigade.mjs logs --follow","onboard:bin":"node brigade.mjs onboard","postinstall":"node scripts/brand-oauth-page.mjs","skills:info":"node scripts/run-brigade.mjs skills info","skills:list":"node scripts/run-brigade.mjs skills list","status:json":"node scripts/run-brigade.mjs status --json","store:reset":"node scripts/run-brigade.mjs store reset","channels:add":"node scripts/run-brigade.mjs channels add","gateway:stop":"node scripts/run-brigade.mjs gateway stop","pairing:list":"node scripts/run-brigade.mjs pairing list --channel whatsapp","agents:delete":"node scripts/run-brigade.mjs agents delete","agents:unbind":"node scripts/run-brigade.mjs agents unbind","backup:create":"node scripts/run-brigade.mjs backup create","backup:verify":"node scripts/run-brigade.mjs backup verify","channels:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels:list":"node scripts/run-brigade.mjs channels list","config:schema":"node scripts/run-brigade.mjs config schema","connect:watch":"tsx --watch src/entry.ts connect","doctor:strict":"node scripts/run-brigade.mjs doctor --strict","gateway:watch":"tsx --watch src/entry.ts gateway","onboard:watch":"tsx --watch src/entry.ts onboard","secrets:audit":"node scripts/run-brigade.mjs secrets audit","sessions:list":"node scripts/run-brigade.mjs sessions list","store:migrate":"node scripts/run-brigade.mjs store migrate","backup:restore":"node scripts/run-brigade.mjs backup restore","channels:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","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","convex:install":"node scripts/install-convex.mjs","gateway:status":"node scripts/run-brigade.mjs gateway status","pairing:revoke":"node scripts/run-brigade.mjs pairing revoke --channel whatsapp","store:mode:set":"node scripts/run-brigade.mjs store mode set","telegram:allow":"node scripts/run-brigade.mjs channels allow list --channel telegram","telegram:token":"node scripts/run-brigade.mjs channels add --channel telegram","agents:bindings":"node scripts/run-brigade.mjs agents bindings","channels:enable":"node scripts/run-brigade.mjs channels enable --channel whatsapp","channels:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","channels:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","config:validate":"node scripts/run-brigade.mjs config validate","gateway:install":"node scripts/run-brigade.mjs gateway install","gateway:restart":"node scripts/run-brigade.mjs gateway restart","pairing:approve":"node scripts/run-brigade.mjs pairing approve --channel whatsapp","store:mode:show":"node scripts/run-brigade.mjs store mode show","telegram:enable":"node scripts/run-brigade.mjs channels enable --channel telegram","telegram:status":"node scripts/run-brigade.mjs channels status --channel telegram","channels:disable":"node scripts/run-brigade.mjs channels disable --channel whatsapp","sessions:cleanup":"node scripts/run-brigade.mjs sessions cleanup","telegram:disable":"node scripts/run-brigade.mjs channels disable --channel telegram","gateway:uninstall":"node scripts/run-brigade.mjs gateway uninstall","smoke:strict-zero":"tsx scripts/strict-zero-smoke.mjs","store:reset:purge":"node scripts/run-brigade.mjs store reset --purge-local","channels:allow:add":"node scripts/run-brigade.mjs channels allow add --channel whatsapp","telegram:allow:add":"node scripts/run-brigade.mjs channels allow add --channel telegram","agents:set-identity":"node scripts/run-brigade.mjs agents set-identity","channels:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel whatsapp","telegram:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel telegram"},"_npmUser":{"name":"spinabot-labs","email":"npm@spinabot.com"},"overrides":{"ws":"$ws"},"repository":{"url":"git+https://github.com/spinabot/brigade.git","type":"git"},"_npmVersion":"11.17.0","description":"Brigade — your personal AI crew","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ws":"^8.21.0","tar":"^7.5.15","zod":"^3.23.8","yaml":"^2.9.0","chalk":"^5.3.0","json5":"^2.2.3","cfonts":"^3.3.1","convex":"^1.40.0","croner":"^10.0.1","grammy":"^1.42.0","undici":"^7.25.0","prompts":"^2.4.2","linkedom":"^0.18.12","commander":"^12.1.0","minimatch":"^10.2.5","cli-highlight":"^2.1.11","@composio/core":"^0.10.0","@grammyjs/types":"^3.21.0","playwright-core":"^1.59.0","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@mozilla/readability":"^0.6.0","@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@whiskeysockets/baileys":"7.0.0-rc13","@earendil-works/pi-agent-core":"0.79.9","@earendil-works/pi-coding-agent":"0.79.9","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","@types/ws":"^8.18.1","@types/tar":"^6.1.13","typescript":"^5.6.3","@types/node":"^22.10.0","@types/prompts":"^2.4.9","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2"},"_npmOperationalInternal":{"tmp":"tmp/brigade_1.3.2_1782180974036_0.5765762186041294","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"@spinabot/brigade","version":"1.4.0","keywords":["ai","agent","agents","ai-agent","cli","tui","llm","claude","openai","gemini","ollama","whatsapp","gateway","brigade"],"author":{"name":"Spinabot","email":"hello@brigade-agent.ai"},"license":"MIT","_id":"@spinabot/brigade@1.4.0","maintainers":[{"name":"dev-spinabot","email":"bhasvanth02@gmail.com"},{"name":"spinabot-labs","email":"npm@spinabot.com"}],"homepage":"https://brigade.spinabot.com","bugs":{"url":"https://github.com/spinabot/brigade/issues","email":"hello@brigade-agent.ai"},"bin":{"brigade":"brigade.mjs"},"dist":{"shasum":"684078b755b94e6ae9097c27b15a236b98b4521a","tarball":"https://registry.npmjs.org/@spinabot/brigade/-/brigade-1.4.0.tgz","fileCount":2149,"integrity":"sha512-wVCTO8Wjz5i2FYSSzlUoCwThEamX6Djq11NcTpuZz41e1cBf5UFzpysKRr5CRjF9v0xfGNkcJdUKe8U5UZQv8g==","signatures":[{"sig":"MEUCIQDb1TN36KZzhNY0Wnc5QLJgvIWjigt7Fp6dByku0zpqSgIgawi9r9TeVILhB09AnL/CIVR4+CIm2NsAtVw+1r+p7hs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spinabot%2fbrigade@1.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":16366172},"main":"dist/entry.js","type":"module","types":"./dist/entry.d.ts","engines":{"node":">=22.12"},"exports":{".":"./brigade.mjs","./channel-sdk":{"types":"./dist/channel-sdk.d.ts","import":"./dist/channel-sdk.js"},"./package.json":"./package.json","./extension-sdk":{"types":"./dist/extension-sdk.d.ts","import":"./dist/extension-sdk.js"}},"gitHead":"bc60ffe2af25fe7b1187e5cbe1d2b5ae96f5a157","scripts":{"wa":"node scripts/run-brigade.mjs channels status --channel whatsapp","dev":"node scripts/run-brigade.mjs","tui":"node scripts/run-brigade.mjs tui","logs":"node scripts/run-brigade.mjs logs","test":"node scripts/run-tests.mjs","agent":"node scripts/run-brigade.mjs agent","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","build":"tsc -p tsconfig.build.json","clean":"node -e \"import('node:fs').then(fs => fs.rmSync('dist', { recursive: true, force: true }))\"","start":"node scripts/run-brigade.mjs","store":"node scripts/run-brigade.mjs store","watch":"tsx --watch src/entry.ts","agents":"node scripts/run-brigade.mjs agents","backup":"node scripts/run-brigade.mjs backup create","doctor":"node scripts/run-brigade.mjs doctor","skills":"node scripts/run-brigade.mjs skills list","status":"node scripts/run-brigade.mjs status","update":"node scripts/run-brigade.mjs update","brigade":"node brigade.mjs","connect":"node scripts/run-brigade.mjs connect","dev:tsx":"tsx src/entry.ts","gateway":"node scripts/run-brigade.mjs gateway","onboard":"node scripts/run-brigade.mjs onboard","pairing":"node scripts/run-brigade.mjs pairing list --channel whatsapp","prepack":"npm run build","tui:bin":"node brigade.mjs tui","upgrade":"node scripts/run-brigade.mjs upgrade","wa:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels":"node scripts/run-brigade.mjs channels","sessions":"node scripts/run-brigade.mjs sessions list","telegram":"node scripts/run-brigade.mjs channels status --channel telegram","wa:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","agent:bin":"node brigade.mjs agent","exec:list":"node scripts/run-brigade.mjs exec list","postbuild":"node scripts/build-done.mjs","tui:watch":"tsx --watch src/entry.ts tui","typecheck":"tsc -p tsconfig.json --noEmit","wa:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","wa:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","agents:add":"node scripts/run-brigade.mjs agents add","agents:bin":"node brigade.mjs agents","convex:dev":"node scripts/install-convex.mjs && node scripts/convex-dev.mjs","doctor:bin":"node brigade.mjs doctor","extensions":"node scripts/run-brigade.mjs extensions list","status:bin":"node brigade.mjs status","store:mode":"node scripts/run-brigade.mjs store mode show","update:bin":"node brigade.mjs update","agent:watch":"tsx --watch src/entry.ts agent","agents:bind":"node scripts/run-brigade.mjs agents bind","agents:list":"node scripts/run-brigade.mjs agents list","build:watch":"tsc -p tsconfig.build.json --watch","config:file":"node scripts/run-brigade.mjs config file","config:list":"node scripts/run-brigade.mjs config list","connect:bin":"node brigade.mjs connect","convex:push":"node scripts/convex-push.mjs","doctor:json":"node scripts/run-brigade.mjs doctor --json","gateway:bin":"node brigade.mjs gateway","logs:follow":"node scripts/run-brigade.mjs logs --follow","onboard:bin":"node brigade.mjs onboard","postinstall":"node scripts/brand-oauth-page.mjs","skills:info":"node scripts/run-brigade.mjs skills info","skills:list":"node scripts/run-brigade.mjs skills list","status:json":"node scripts/run-brigade.mjs status --json","store:reset":"node scripts/run-brigade.mjs store reset","upgrade:bin":"node brigade.mjs upgrade","channels:add":"node scripts/run-brigade.mjs channels add","gateway:stop":"node scripts/run-brigade.mjs gateway stop","pairing:list":"node scripts/run-brigade.mjs pairing list --channel whatsapp","update:check":"node scripts/run-brigade.mjs update --check","agents:delete":"node scripts/run-brigade.mjs agents delete","agents:unbind":"node scripts/run-brigade.mjs agents unbind","backup:create":"node scripts/run-brigade.mjs backup create","backup:verify":"node scripts/run-brigade.mjs backup verify","channels:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels:list":"node scripts/run-brigade.mjs channels list","config:schema":"node scripts/run-brigade.mjs config schema","connect:watch":"tsx --watch src/entry.ts connect","doctor:strict":"node scripts/run-brigade.mjs doctor --strict","gateway:watch":"tsx --watch src/entry.ts gateway","onboard:watch":"tsx --watch src/entry.ts onboard","secrets:audit":"node scripts/run-brigade.mjs secrets audit","sessions:list":"node scripts/run-brigade.mjs sessions list","store:migrate":"node scripts/run-brigade.mjs store migrate","backup:restore":"node scripts/run-brigade.mjs backup restore","channels:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","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","convex:install":"node scripts/install-convex.mjs","extensions:add":"node scripts/run-brigade.mjs extensions add","gateway:status":"node scripts/run-brigade.mjs gateway status","pairing:revoke":"node scripts/run-brigade.mjs pairing revoke --channel whatsapp","store:mode:set":"node scripts/run-brigade.mjs store mode set","telegram:allow":"node scripts/run-brigade.mjs channels allow list --channel telegram","telegram:token":"node scripts/run-brigade.mjs channels add --channel telegram","agents:bindings":"node scripts/run-brigade.mjs agents bindings","channels:enable":"node scripts/run-brigade.mjs channels enable --channel whatsapp","channels:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","channels:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","config:validate":"node scripts/run-brigade.mjs config validate","extensions:init":"node scripts/run-brigade.mjs extensions init","extensions:list":"node scripts/run-brigade.mjs extensions list","gateway:install":"node scripts/run-brigade.mjs gateway install","gateway:restart":"node scripts/run-brigade.mjs gateway restart","pairing:approve":"node scripts/run-brigade.mjs pairing approve --channel whatsapp","store:mode:show":"node scripts/run-brigade.mjs store mode show","telegram:enable":"node scripts/run-brigade.mjs channels enable --channel telegram","telegram:status":"node scripts/run-brigade.mjs channels status --channel telegram","channels:disable":"node scripts/run-brigade.mjs channels disable --channel whatsapp","sessions:cleanup":"node scripts/run-brigade.mjs sessions cleanup","telegram:disable":"node scripts/run-brigade.mjs channels disable --channel telegram","extensions:doctor":"node scripts/run-brigade.mjs extensions doctor","extensions:remove":"node scripts/run-brigade.mjs extensions remove","gateway:uninstall":"node scripts/run-brigade.mjs gateway uninstall","smoke:strict-zero":"tsx scripts/strict-zero-smoke.mjs","store:reset:purge":"node scripts/run-brigade.mjs store reset --purge-local","channels:allow:add":"node scripts/run-brigade.mjs channels allow add --channel whatsapp","telegram:allow:add":"node scripts/run-brigade.mjs channels allow add --channel telegram","agents:set-identity":"node scripts/run-brigade.mjs agents set-identity","channels:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel whatsapp","telegram:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel telegram"},"_npmUser":{"name":"spinabot-labs","email":"npm@spinabot.com"},"overrides":{"ws":"$ws"},"repository":{"url":"git+https://github.com/spinabot/brigade.git","type":"git"},"_npmVersion":"11.17.0","description":"Brigade — your personal AI crew","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ws":"^8.21.0","tar":"^7.5.15","zod":"^3.23.8","jiti":"^2.6.1","yaml":"^2.9.0","chalk":"^5.3.0","json5":"^2.2.3","cfonts":"^3.3.1","convex":"^1.40.0","croner":"^10.0.1","grammy":"^1.42.0","undici":"^7.25.0","prompts":"^2.4.2","linkedom":"^0.18.12","commander":"^12.1.0","minimatch":"^10.2.5","cli-highlight":"^2.1.11","@composio/core":"^0.10.0","@grammyjs/types":"^3.21.0","playwright-core":"^1.59.0","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","socks-proxy-agent":"^10.1.0","@mozilla/readability":"^0.6.0","@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@whiskeysockets/baileys":"7.0.0-rc13","@earendil-works/pi-agent-core":"0.79.9","@earendil-works/pi-coding-agent":"0.79.9","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","@types/ws":"^8.18.1","@types/tar":"^6.1.13","typescript":"^5.6.3","@types/node":"^22.10.0","@types/prompts":"^2.4.9","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2"},"_npmOperationalInternal":{"tmp":"tmp/brigade_1.4.0_1782232527656_0.02950938663779179","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"@spinabot/brigade","version":"1.5.0","keywords":["ai","agent","agents","ai-agent","cli","tui","llm","claude","openai","gemini","ollama","whatsapp","gateway","brigade"],"author":{"name":"Spinabot","email":"hello@brigade-agent.ai"},"license":"MIT","_id":"@spinabot/brigade@1.5.0","maintainers":[{"name":"dev-spinabot","email":"bhasvanth02@gmail.com"},{"name":"spinabot-labs","email":"npm@spinabot.com"}],"homepage":"https://brigade.spinabot.com","bugs":{"url":"https://github.com/spinabot/brigade/issues","email":"hello@brigade-agent.ai"},"bin":{"brigade":"brigade.mjs"},"dist":{"shasum":"3fbc5913a02125e338901ae9b5d8a5f7bf8d210d","tarball":"https://registry.npmjs.org/@spinabot/brigade/-/brigade-1.5.0.tgz","fileCount":2149,"integrity":"sha512-pThiuJQD9DY06e5oqKQ4FRrAoX4xNr3l4cRcf4vsPCr9xx7w3r3fPYMGXMlb6aspFYyCHhhpQwp/HzAMq8Ppew==","signatures":[{"sig":"MEYCIQCEv6sebEOKy6NR1zMCj9XHRjwQs/XO3D0GsnAiFL5QzgIhAJWlmfQ6wSQxLuztCtNqalZD4WBD3sSz0wC2hB86O+z5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spinabot%2fbrigade@1.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":16401052},"main":"dist/entry.js","type":"module","types":"./dist/entry.d.ts","engines":{"node":">=22.12"},"exports":{".":"./brigade.mjs","./channel-sdk":{"types":"./dist/channel-sdk.d.ts","import":"./dist/channel-sdk.js"},"./package.json":"./package.json","./extension-sdk":{"types":"./dist/extension-sdk.d.ts","import":"./dist/extension-sdk.js"}},"gitHead":"f26a029bc76e6a201ddb731542b5a33c568974a2","scripts":{"wa":"node scripts/run-brigade.mjs channels status --channel whatsapp","dev":"node scripts/run-brigade.mjs","tui":"node scripts/run-brigade.mjs tui","logs":"node scripts/run-brigade.mjs logs","test":"node scripts/run-tests.mjs","agent":"node scripts/run-brigade.mjs agent","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","build":"tsc -p tsconfig.build.json","clean":"node -e \"import('node:fs').then(fs => fs.rmSync('dist', { recursive: true, force: true }))\"","start":"node scripts/run-brigade.mjs","store":"node scripts/run-brigade.mjs store","watch":"tsx --watch src/entry.ts","agents":"node scripts/run-brigade.mjs agents","backup":"node scripts/run-brigade.mjs backup create","doctor":"node scripts/run-brigade.mjs doctor","skills":"node scripts/run-brigade.mjs skills list","status":"node scripts/run-brigade.mjs status","update":"node scripts/run-brigade.mjs update","brigade":"node brigade.mjs","connect":"node scripts/run-brigade.mjs connect","dev:tsx":"tsx src/entry.ts","gateway":"node scripts/run-brigade.mjs gateway","onboard":"node scripts/run-brigade.mjs onboard","pairing":"node scripts/run-brigade.mjs pairing list --channel whatsapp","prepack":"npm run build","tui:bin":"node brigade.mjs tui","upgrade":"node scripts/run-brigade.mjs upgrade","wa:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels":"node scripts/run-brigade.mjs channels","sessions":"node scripts/run-brigade.mjs sessions list","telegram":"node scripts/run-brigade.mjs channels status --channel telegram","wa:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","agent:bin":"node brigade.mjs agent","exec:list":"node scripts/run-brigade.mjs exec list","postbuild":"node scripts/build-done.mjs","tui:watch":"tsx --watch src/entry.ts tui","typecheck":"tsc -p tsconfig.json --noEmit","wa:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","wa:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","agents:add":"node scripts/run-brigade.mjs agents add","agents:bin":"node brigade.mjs agents","convex:dev":"node scripts/install-convex.mjs && node scripts/convex-dev.mjs","doctor:bin":"node brigade.mjs doctor","extensions":"node scripts/run-brigade.mjs extensions list","status:bin":"node brigade.mjs status","store:mode":"node scripts/run-brigade.mjs store mode show","update:bin":"node brigade.mjs update","agent:watch":"tsx --watch src/entry.ts agent","agents:bind":"node scripts/run-brigade.mjs agents bind","agents:list":"node scripts/run-brigade.mjs agents list","build:watch":"tsc -p tsconfig.build.json --watch","config:file":"node scripts/run-brigade.mjs config file","config:list":"node scripts/run-brigade.mjs config list","connect:bin":"node brigade.mjs connect","convex:push":"node scripts/convex-push.mjs","doctor:json":"node scripts/run-brigade.mjs doctor --json","gateway:bin":"node brigade.mjs gateway","logs:follow":"node scripts/run-brigade.mjs logs --follow","onboard:bin":"node brigade.mjs onboard","postinstall":"node scripts/brand-oauth-page.mjs","skills:info":"node scripts/run-brigade.mjs skills info","skills:list":"node scripts/run-brigade.mjs skills list","status:json":"node scripts/run-brigade.mjs status --json","store:reset":"node scripts/run-brigade.mjs store reset","upgrade:bin":"node brigade.mjs upgrade","channels:add":"node scripts/run-brigade.mjs channels add","gateway:stop":"node scripts/run-brigade.mjs gateway stop","pairing:list":"node scripts/run-brigade.mjs pairing list --channel whatsapp","update:check":"node scripts/run-brigade.mjs update --check","agents:delete":"node scripts/run-brigade.mjs agents delete","agents:unbind":"node scripts/run-brigade.mjs agents unbind","backup:create":"node scripts/run-brigade.mjs backup create","backup:verify":"node scripts/run-brigade.mjs backup verify","channels:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels:list":"node scripts/run-brigade.mjs channels list","config:schema":"node scripts/run-brigade.mjs config schema","connect:watch":"tsx --watch src/entry.ts connect","doctor:strict":"node scripts/run-brigade.mjs doctor --strict","gateway:watch":"tsx --watch src/entry.ts gateway","onboard:watch":"tsx --watch src/entry.ts onboard","secrets:audit":"node scripts/run-brigade.mjs secrets audit","sessions:list":"node scripts/run-brigade.mjs sessions list","store:migrate":"node scripts/run-brigade.mjs store migrate","backup:restore":"node scripts/run-brigade.mjs backup restore","channels:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","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","convex:install":"node scripts/install-convex.mjs","extensions:add":"node scripts/run-brigade.mjs extensions add","gateway:status":"node scripts/run-brigade.mjs gateway status","pairing:revoke":"node scripts/run-brigade.mjs pairing revoke --channel whatsapp","store:mode:set":"node scripts/run-brigade.mjs store mode set","telegram:allow":"node scripts/run-brigade.mjs channels allow list --channel telegram","telegram:token":"node scripts/run-brigade.mjs channels add --channel telegram","agents:bindings":"node scripts/run-brigade.mjs agents bindings","channels:enable":"node scripts/run-brigade.mjs channels enable --channel whatsapp","channels:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","channels:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","config:validate":"node scripts/run-brigade.mjs config validate","extensions:init":"node scripts/run-brigade.mjs extensions init","extensions:list":"node scripts/run-brigade.mjs extensions list","gateway:install":"node scripts/run-brigade.mjs gateway install","gateway:restart":"node scripts/run-brigade.mjs gateway restart","pairing:approve":"node scripts/run-brigade.mjs pairing approve --channel whatsapp","store:mode:show":"node scripts/run-brigade.mjs store mode show","telegram:enable":"node scripts/run-brigade.mjs channels enable --channel telegram","telegram:status":"node scripts/run-brigade.mjs channels status --channel telegram","channels:disable":"node scripts/run-brigade.mjs channels disable --channel whatsapp","sessions:cleanup":"node scripts/run-brigade.mjs sessions cleanup","telegram:disable":"node scripts/run-brigade.mjs channels disable --channel telegram","extensions:doctor":"node scripts/run-brigade.mjs extensions doctor","extensions:remove":"node scripts/run-brigade.mjs extensions remove","gateway:uninstall":"node scripts/run-brigade.mjs gateway uninstall","smoke:strict-zero":"tsx scripts/strict-zero-smoke.mjs","store:reset:purge":"node scripts/run-brigade.mjs store reset --purge-local","channels:allow:add":"node scripts/run-brigade.mjs channels allow add --channel whatsapp","telegram:allow:add":"node scripts/run-brigade.mjs channels allow add --channel telegram","agents:set-identity":"node scripts/run-brigade.mjs agents set-identity","channels:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel whatsapp","telegram:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel telegram"},"_npmUser":{"name":"spinabot-labs","email":"npm@spinabot.com"},"overrides":{"ws":"$ws"},"repository":{"url":"git+https://github.com/spinabot/brigade.git","type":"git"},"_npmVersion":"11.17.0","description":"Brigade — your personal AI crew","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ws":"^8.21.0","tar":"^7.5.15","zod":"^3.23.8","jiti":"^2.6.1","yaml":"^2.9.0","chalk":"^5.3.0","json5":"^2.2.3","cfonts":"^3.3.1","convex":"^1.40.0","croner":"^10.0.1","grammy":"^1.42.0","undici":"^7.25.0","prompts":"^2.4.2","linkedom":"^0.18.12","commander":"^12.1.0","minimatch":"^10.2.5","cli-highlight":"^2.1.11","@composio/core":"^0.10.0","@grammyjs/types":"^3.21.0","playwright-core":"^1.59.0","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","socks-proxy-agent":"^10.1.0","@mozilla/readability":"^0.6.0","@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@whiskeysockets/baileys":"7.0.0-rc13","@earendil-works/pi-agent-core":"0.79.9","@earendil-works/pi-coding-agent":"0.79.9","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","@types/ws":"^8.18.1","@types/tar":"^6.1.13","typescript":"^5.6.3","@types/node":"^22.10.0","@types/prompts":"^2.4.9","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2"},"_npmOperationalInternal":{"tmp":"tmp/brigade_1.5.0_1782308452289_0.03722570401433489","host":"s3://npm-registry-packages-npm-production"}},"1.6.0":{"name":"@spinabot/brigade","version":"1.6.0","keywords":["ai","agent","agents","ai-agent","cli","tui","llm","claude","openai","gemini","ollama","whatsapp","gateway","brigade"],"author":{"name":"Spinabot","email":"hello@brigade-agent.ai"},"license":"MIT","_id":"@spinabot/brigade@1.6.0","maintainers":[{"name":"dev-spinabot","email":"bhasvanth02@gmail.com"},{"name":"spinabot-labs","email":"npm@spinabot.com"}],"homepage":"https://brigade.spinabot.com","bugs":{"url":"https://github.com/spinabot/brigade/issues","email":"hello@brigade-agent.ai"},"bin":{"brigade":"brigade.mjs"},"dist":{"shasum":"75042bc6cd8dada89cbe7ba09a22991b38a6d925","tarball":"https://registry.npmjs.org/@spinabot/brigade/-/brigade-1.6.0.tgz","fileCount":2233,"integrity":"sha512-n2Pa0nAN0KU+MvM/OaAeqkRCFTtLxzvDDjJLxf8pf6yRSVkS5ZnhaMiF5V4wXWm86swNYxVmQ80ROBdFVZhfRQ==","signatures":[{"sig":"MEUCIQCovC/sksePBJBj27sfWRDPJy3NV7IhxhKuN2vnHvg17wIgC/rE4VV+c/h4cqHSJ/tPVOh1ijc3w8SiRGxI/T40ILo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spinabot%2fbrigade@1.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":16872023},"main":"dist/entry.js","type":"module","types":"./dist/entry.d.ts","engines":{"node":">=22.12"},"exports":{".":"./brigade.mjs","./channel-sdk":{"types":"./dist/channel-sdk.d.ts","import":"./dist/channel-sdk.js"},"./package.json":"./package.json","./extension-sdk":{"types":"./dist/extension-sdk.d.ts","import":"./dist/extension-sdk.js"}},"gitHead":"504d48e1b55c2860f30df377cdbe2ec1bb1291c9","scripts":{"wa":"node scripts/run-brigade.mjs channels status --channel whatsapp","dev":"node scripts/run-brigade.mjs","tui":"node scripts/run-brigade.mjs tui","logs":"node scripts/run-brigade.mjs logs","test":"node scripts/run-tests.mjs","agent":"node scripts/run-brigade.mjs agent","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","build":"tsc -p tsconfig.build.json","clean":"node -e \"import('node:fs').then(fs => fs.rmSync('dist', { recursive: true, force: true }))\"","start":"node scripts/run-brigade.mjs","store":"node scripts/run-brigade.mjs store","watch":"tsx --watch src/entry.ts","agents":"node scripts/run-brigade.mjs agents","backup":"node scripts/run-brigade.mjs backup create","doctor":"node scripts/run-brigade.mjs doctor","skills":"node scripts/run-brigade.mjs skills list","status":"node scripts/run-brigade.mjs status","update":"node scripts/run-brigade.mjs update","brigade":"node brigade.mjs","connect":"node scripts/run-brigade.mjs connect","dev:tsx":"tsx src/entry.ts","gateway":"node scripts/run-brigade.mjs gateway","onboard":"node scripts/run-brigade.mjs onboard","pairing":"node scripts/run-brigade.mjs pairing list --channel whatsapp","prepack":"npm run build","tui:bin":"node brigade.mjs tui","upgrade":"node scripts/run-brigade.mjs upgrade","wa:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels":"node scripts/run-brigade.mjs channels","sessions":"node scripts/run-brigade.mjs sessions list","telegram":"node scripts/run-brigade.mjs channels status --channel telegram","wa:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","agent:bin":"node brigade.mjs agent","exec:list":"node scripts/run-brigade.mjs exec list","postbuild":"node scripts/build-done.mjs","tui:watch":"tsx --watch src/entry.ts tui","typecheck":"tsc -p tsconfig.json --noEmit","wa:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","wa:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","agents:add":"node scripts/run-brigade.mjs agents add","agents:bin":"node brigade.mjs agents","convex:dev":"node scripts/install-convex.mjs && node scripts/convex-dev.mjs","doctor:bin":"node brigade.mjs doctor","extensions":"node scripts/run-brigade.mjs extensions list","status:bin":"node brigade.mjs status","store:mode":"node scripts/run-brigade.mjs store mode show","update:bin":"node brigade.mjs update","agent:watch":"tsx --watch src/entry.ts agent","agents:bind":"node scripts/run-brigade.mjs agents bind","agents:list":"node scripts/run-brigade.mjs agents list","build:watch":"tsc -p tsconfig.build.json --watch","config:file":"node scripts/run-brigade.mjs config file","config:list":"node scripts/run-brigade.mjs config list","connect:bin":"node brigade.mjs connect","convex:push":"node scripts/convex-push.mjs","doctor:json":"node scripts/run-brigade.mjs doctor --json","gateway:bin":"node brigade.mjs gateway","logs:follow":"node scripts/run-brigade.mjs logs --follow","onboard:bin":"node brigade.mjs onboard","postinstall":"node scripts/brand-oauth-page.mjs","skills:info":"node scripts/run-brigade.mjs skills info","skills:list":"node scripts/run-brigade.mjs skills list","status:json":"node scripts/run-brigade.mjs status --json","store:reset":"node scripts/run-brigade.mjs store reset","upgrade:bin":"node brigade.mjs upgrade","channels:add":"node scripts/run-brigade.mjs channels add","gateway:stop":"node scripts/run-brigade.mjs gateway stop","pairing:list":"node scripts/run-brigade.mjs pairing list --channel whatsapp","update:check":"node scripts/run-brigade.mjs update --check","agents:delete":"node scripts/run-brigade.mjs agents delete","agents:unbind":"node scripts/run-brigade.mjs agents unbind","backup:create":"node scripts/run-brigade.mjs backup create","backup:verify":"node scripts/run-brigade.mjs backup verify","channels:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels:list":"node scripts/run-brigade.mjs channels list","config:schema":"node scripts/run-brigade.mjs config schema","connect:watch":"tsx --watch src/entry.ts connect","doctor:strict":"node scripts/run-brigade.mjs doctor --strict","gateway:watch":"tsx --watch src/entry.ts gateway","onboard:watch":"tsx --watch src/entry.ts onboard","secrets:audit":"node scripts/run-brigade.mjs secrets audit","sessions:list":"node scripts/run-brigade.mjs sessions list","store:migrate":"node scripts/run-brigade.mjs store migrate","backup:restore":"node scripts/run-brigade.mjs backup restore","channels:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","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","convex:install":"node scripts/install-convex.mjs","extensions:add":"node scripts/run-brigade.mjs extensions add","gateway:status":"node scripts/run-brigade.mjs gateway status","pairing:revoke":"node scripts/run-brigade.mjs pairing revoke --channel whatsapp","store:mode:set":"node scripts/run-brigade.mjs store mode set","telegram:allow":"node scripts/run-brigade.mjs channels allow list --channel telegram","telegram:token":"node scripts/run-brigade.mjs channels add --channel telegram","agents:bindings":"node scripts/run-brigade.mjs agents bindings","channels:enable":"node scripts/run-brigade.mjs channels enable --channel whatsapp","channels:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","channels:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","config:validate":"node scripts/run-brigade.mjs config validate","extensions:init":"node scripts/run-brigade.mjs extensions init","extensions:list":"node scripts/run-brigade.mjs extensions list","gateway:install":"node scripts/run-brigade.mjs gateway install","gateway:restart":"node scripts/run-brigade.mjs gateway restart","pairing:approve":"node scripts/run-brigade.mjs pairing approve --channel whatsapp","store:mode:show":"node scripts/run-brigade.mjs store mode show","telegram:enable":"node scripts/run-brigade.mjs channels enable --channel telegram","telegram:status":"node scripts/run-brigade.mjs channels status --channel telegram","channels:disable":"node scripts/run-brigade.mjs channels disable --channel whatsapp","sessions:cleanup":"node scripts/run-brigade.mjs sessions cleanup","telegram:disable":"node scripts/run-brigade.mjs channels disable --channel telegram","extensions:doctor":"node scripts/run-brigade.mjs extensions doctor","extensions:remove":"node scripts/run-brigade.mjs extensions remove","gateway:uninstall":"node scripts/run-brigade.mjs gateway uninstall","smoke:strict-zero":"tsx scripts/strict-zero-smoke.mjs","store:reset:purge":"node scripts/run-brigade.mjs store reset --purge-local","channels:allow:add":"node scripts/run-brigade.mjs channels allow add --channel whatsapp","telegram:allow:add":"node scripts/run-brigade.mjs channels allow add --channel telegram","agents:set-identity":"node scripts/run-brigade.mjs agents set-identity","channels:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel whatsapp","telegram:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel telegram"},"_npmUser":{"name":"spinabot-labs","email":"npm@spinabot.com"},"overrides":{"ws":"$ws"},"repository":{"url":"git+https://github.com/spinabot/brigade.git","type":"git"},"_npmVersion":"11.17.0","description":"Brigade — your personal AI crew","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ws":"^8.21.0","tar":"^7.5.15","zod":"^3.23.8","jiti":"^2.6.1","yaml":"^2.9.0","chalk":"^5.3.0","json5":"^2.2.3","cfonts":"^3.3.1","convex":"^1.40.0","croner":"^10.0.1","grammy":"^1.42.0","undici":"^7.25.0","prompts":"^2.4.2","linkedom":"^0.18.12","commander":"^12.1.0","minimatch":"^10.2.5","cli-highlight":"^2.1.11","@composio/core":"^0.10.0","@slack/web-api":"^7.17.0","@grammyjs/types":"^3.21.0","playwright-core":"^1.59.0","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","https-proxy-agent":"^7.0.6","socks-proxy-agent":"^10.1.0","@slack/socket-mode":"^2.0.7","@mozilla/readability":"^0.6.0","@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@whiskeysockets/baileys":"7.0.0-rc13","@earendil-works/pi-agent-core":"0.79.9","@earendil-works/pi-coding-agent":"0.79.9","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","@types/ws":"^8.18.1","@types/tar":"^6.1.13","typescript":"^5.6.3","@types/node":"^22.10.0","@types/prompts":"^2.4.9","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2"},"_npmOperationalInternal":{"tmp":"tmp/brigade_1.6.0_1782319689363_0.8048051708267847","host":"s3://npm-registry-packages-npm-production"}},"1.6.1":{"name":"@spinabot/brigade","version":"1.6.1","keywords":["ai","agent","agents","ai-agent","cli","tui","llm","claude","openai","gemini","ollama","whatsapp","gateway","brigade"],"author":{"name":"Spinabot","email":"hello@brigade-agent.ai"},"license":"MIT","_id":"@spinabot/brigade@1.6.1","maintainers":[{"name":"dev-spinabot","email":"bhasvanth02@gmail.com"},{"name":"spinabot-labs","email":"npm@spinabot.com"}],"homepage":"https://brigade.spinabot.com","bugs":{"url":"https://github.com/spinabot/brigade/issues","email":"hello@brigade-agent.ai"},"bin":{"brigade":"brigade.mjs"},"dist":{"shasum":"bc5bd1262b3d22cebc8c7ba29e2a133884f06272","tarball":"https://registry.npmjs.org/@spinabot/brigade/-/brigade-1.6.1.tgz","fileCount":2297,"integrity":"sha512-0pF94vkGQEdZu4akWi6Cff9Z8w0NeCeAxSuHJBSvavOlEP6gHXoXJg4TeqDV4MrBJX2UFz7Z5FzTpAMgpu2gcw==","signatures":[{"sig":"MEUCIQDkqrjS4WRCXc2uUgDx6GqNssnlvF/9kCpsZLjpDD3q/QIgMviITW93qjVTtmwt/oOG2jOpa+jmZtzkcQoWt9ny5VM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spinabot%2fbrigade@1.6.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":17258204},"main":"dist/entry.js","type":"module","types":"./dist/entry.d.ts","engines":{"node":">=22.12"},"exports":{".":"./brigade.mjs","./channel-sdk":{"types":"./dist/channel-sdk.d.ts","import":"./dist/channel-sdk.js"},"./package.json":"./package.json","./extension-sdk":{"types":"./dist/extension-sdk.d.ts","import":"./dist/extension-sdk.js"}},"gitHead":"b7f2ce2a93971768ed9236c4c9e72797badc5846","scripts":{"wa":"node scripts/run-brigade.mjs channels status --channel whatsapp","dev":"node scripts/run-brigade.mjs","tui":"node scripts/run-brigade.mjs tui","logs":"node scripts/run-brigade.mjs logs","test":"node scripts/run-tests.mjs","agent":"node scripts/run-brigade.mjs agent","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","build":"tsc -p tsconfig.build.json","clean":"node -e \"import('node:fs').then(fs => fs.rmSync('dist', { recursive: true, force: true }))\"","start":"node scripts/run-brigade.mjs","store":"node scripts/run-brigade.mjs store","watch":"tsx --watch src/entry.ts","agents":"node scripts/run-brigade.mjs agents","backup":"node scripts/run-brigade.mjs backup create","doctor":"node scripts/run-brigade.mjs doctor","skills":"node scripts/run-brigade.mjs skills list","status":"node scripts/run-brigade.mjs status","update":"node scripts/run-brigade.mjs update","brigade":"node brigade.mjs","connect":"node scripts/run-brigade.mjs connect","dev:tsx":"tsx src/entry.ts","gateway":"node scripts/run-brigade.mjs gateway","onboard":"node scripts/run-brigade.mjs onboard","pairing":"node scripts/run-brigade.mjs pairing list --channel whatsapp","prepack":"npm run build","tui:bin":"node brigade.mjs tui","upgrade":"node scripts/run-brigade.mjs upgrade","wa:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels":"node scripts/run-brigade.mjs channels","sessions":"node scripts/run-brigade.mjs sessions list","telegram":"node scripts/run-brigade.mjs channels status --channel telegram","wa:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","agent:bin":"node brigade.mjs agent","exec:list":"node scripts/run-brigade.mjs exec list","postbuild":"node scripts/build-done.mjs","tui:watch":"tsx --watch src/entry.ts tui","typecheck":"tsc -p tsconfig.json --noEmit","wa:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","wa:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","agents:add":"node scripts/run-brigade.mjs agents add","agents:bin":"node brigade.mjs agents","convex:dev":"node scripts/install-convex.mjs && node scripts/convex-dev.mjs","doctor:bin":"node brigade.mjs doctor","extensions":"node scripts/run-brigade.mjs extensions list","status:bin":"node brigade.mjs status","store:mode":"node scripts/run-brigade.mjs store mode show","update:bin":"node brigade.mjs update","agent:watch":"tsx --watch src/entry.ts agent","agents:bind":"node scripts/run-brigade.mjs agents bind","agents:list":"node scripts/run-brigade.mjs agents list","build:watch":"tsc -p tsconfig.build.json --watch","config:file":"node scripts/run-brigade.mjs config file","config:list":"node scripts/run-brigade.mjs config list","connect:bin":"node brigade.mjs connect","convex:push":"node scripts/convex-push.mjs","doctor:json":"node scripts/run-brigade.mjs doctor --json","gateway:bin":"node brigade.mjs gateway","logs:follow":"node scripts/run-brigade.mjs logs --follow","onboard:bin":"node brigade.mjs onboard","postinstall":"node scripts/brand-oauth-page.mjs","skills:info":"node scripts/run-brigade.mjs skills info","skills:list":"node scripts/run-brigade.mjs skills list","status:json":"node scripts/run-brigade.mjs status --json","store:reset":"node scripts/run-brigade.mjs store reset","upgrade:bin":"node brigade.mjs upgrade","channels:add":"node scripts/run-brigade.mjs channels add","gateway:stop":"node scripts/run-brigade.mjs gateway stop","pairing:list":"node scripts/run-brigade.mjs pairing list --channel whatsapp","update:check":"node scripts/run-brigade.mjs update --check","agents:delete":"node scripts/run-brigade.mjs agents delete","agents:unbind":"node scripts/run-brigade.mjs agents unbind","backup:create":"node scripts/run-brigade.mjs backup create","backup:verify":"node scripts/run-brigade.mjs backup verify","channels:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels:list":"node scripts/run-brigade.mjs channels list","config:schema":"node scripts/run-brigade.mjs config schema","connect:watch":"tsx --watch src/entry.ts connect","doctor:strict":"node scripts/run-brigade.mjs doctor --strict","gateway:watch":"tsx --watch src/entry.ts gateway","onboard:watch":"tsx --watch src/entry.ts onboard","secrets:audit":"node scripts/run-brigade.mjs secrets audit","sessions:list":"node scripts/run-brigade.mjs sessions list","store:migrate":"node scripts/run-brigade.mjs store migrate","backup:restore":"node scripts/run-brigade.mjs backup restore","channels:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","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","convex:install":"node scripts/install-convex.mjs","extensions:add":"node scripts/run-brigade.mjs extensions add","gateway:status":"node scripts/run-brigade.mjs gateway status","pairing:revoke":"node scripts/run-brigade.mjs pairing revoke --channel whatsapp","store:mode:set":"node scripts/run-brigade.mjs store mode set","telegram:allow":"node scripts/run-brigade.mjs channels allow list --channel telegram","telegram:token":"node scripts/run-brigade.mjs channels add --channel telegram","agents:bindings":"node scripts/run-brigade.mjs agents bindings","channels:enable":"node scripts/run-brigade.mjs channels enable --channel whatsapp","channels:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","channels:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","config:validate":"node scripts/run-brigade.mjs config validate","extensions:init":"node scripts/run-brigade.mjs extensions init","extensions:list":"node scripts/run-brigade.mjs extensions list","gateway:install":"node scripts/run-brigade.mjs gateway install","gateway:restart":"node scripts/run-brigade.mjs gateway restart","pairing:approve":"node scripts/run-brigade.mjs pairing approve --channel whatsapp","store:mode:show":"node scripts/run-brigade.mjs store mode show","telegram:enable":"node scripts/run-brigade.mjs channels enable --channel telegram","telegram:status":"node scripts/run-brigade.mjs channels status --channel telegram","channels:disable":"node scripts/run-brigade.mjs channels disable --channel whatsapp","sessions:cleanup":"node scripts/run-brigade.mjs sessions cleanup","telegram:disable":"node scripts/run-brigade.mjs channels disable --channel telegram","extensions:doctor":"node scripts/run-brigade.mjs extensions doctor","extensions:remove":"node scripts/run-brigade.mjs extensions remove","gateway:uninstall":"node scripts/run-brigade.mjs gateway uninstall","smoke:strict-zero":"tsx scripts/strict-zero-smoke.mjs","store:reset:purge":"node scripts/run-brigade.mjs store reset --purge-local","channels:allow:add":"node scripts/run-brigade.mjs channels allow add --channel whatsapp","telegram:allow:add":"node scripts/run-brigade.mjs channels allow add --channel telegram","agents:set-identity":"node scripts/run-brigade.mjs agents set-identity","channels:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel whatsapp","telegram:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel telegram"},"_npmUser":{"name":"spinabot-labs","email":"npm@spinabot.com"},"overrides":{"ws":"$ws"},"repository":{"url":"git+https://github.com/spinabot/brigade.git","type":"git"},"_npmVersion":"11.17.0","description":"Brigade — your personal AI crew","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ws":"^8.21.0","tar":"^7.5.15","zod":"^3.23.8","jiti":"^2.6.1","yaml":"^2.9.0","chalk":"^5.3.0","json5":"^2.2.3","cfonts":"^3.3.1","convex":"^1.40.0","croner":"^10.0.1","grammy":"^1.42.0","undici":"^7.25.0","prompts":"^2.4.2","linkedom":"^0.18.12","commander":"^12.1.0","minimatch":"^10.2.5","discord.js":"^14.26.4","cli-highlight":"^2.1.11","@composio/core":"^0.10.0","@slack/web-api":"^7.17.0","@grammyjs/types":"^3.21.0","playwright-core":"^1.59.0","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","https-proxy-agent":"^7.0.6","socks-proxy-agent":"^10.1.0","@slack/socket-mode":"^2.0.7","@mozilla/readability":"^0.6.0","@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@whiskeysockets/baileys":"7.0.0-rc13","@earendil-works/pi-agent-core":"0.79.9","@earendil-works/pi-coding-agent":"0.79.9","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","@types/ws":"^8.18.1","@types/tar":"^6.1.13","typescript":"^5.6.3","@types/node":"^22.10.0","@types/prompts":"^2.4.9","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2"},"_npmOperationalInternal":{"tmp":"tmp/brigade_1.6.1_1782324728921_0.014418798351903073","host":"s3://npm-registry-packages-npm-production"}},"1.7.0":{"name":"@spinabot/brigade","version":"1.7.0","keywords":["ai","agent","agents","ai-agent","cli","tui","llm","claude","openai","gemini","ollama","whatsapp","gateway","brigade"],"author":{"name":"Spinabot","email":"hello@brigade-agent.ai"},"license":"MIT","_id":"@spinabot/brigade@1.7.0","maintainers":[{"name":"dev-spinabot","email":"bhasvanth02@gmail.com"},{"name":"spinabot-labs","email":"npm@spinabot.com"}],"homepage":"https://brigade.spinabot.com","bugs":{"url":"https://github.com/spinabot/brigade/issues","email":"hello@brigade-agent.ai"},"bin":{"brigade":"brigade.mjs"},"dist":{"shasum":"7e915f0b7c0b4f4183adbd84d25fc8820a174d46","tarball":"https://registry.npmjs.org/@spinabot/brigade/-/brigade-1.7.0.tgz","fileCount":2361,"integrity":"sha512-hvsYRN97SUqcAUsw173bA2+fHk8CvXCDvG9fnsMKAMGnApmsRRzF763eSnAq1BvHqaQF5V/DNxpSdzJ+9QUWgw==","signatures":[{"sig":"MEUCIEPIjR1iRsDlJgqXyf0s8EsIGqzP1fxrtHMoTL4BYp4kAiEAviQRqKAQA3osjN9nnCoXvRZsgs7FjtggxVAHtrFybRU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spinabot%2fbrigade@1.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":17811668},"main":"dist/entry.js","type":"module","types":"./dist/entry.d.ts","engines":{"node":">=22.12"},"exports":{".":"./brigade.mjs","./channel-sdk":{"types":"./dist/channel-sdk.d.ts","import":"./dist/channel-sdk.js"},"./package.json":"./package.json","./extension-sdk":{"types":"./dist/extension-sdk.d.ts","import":"./dist/extension-sdk.js"}},"gitHead":"8dfc68c2763bf070aa20031ddcddd63b114c9dfd","scripts":{"wa":"node scripts/run-brigade.mjs channels status --channel whatsapp","dev":"node scripts/run-brigade.mjs","tui":"node scripts/run-brigade.mjs tui","logs":"node scripts/run-brigade.mjs logs","test":"node scripts/run-tests.mjs","agent":"node scripts/run-brigade.mjs agent","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","build":"tsc -p tsconfig.build.json","clean":"node -e \"import('node:fs').then(fs => fs.rmSync('dist', { recursive: true, force: true }))\"","start":"node scripts/run-brigade.mjs","store":"node scripts/run-brigade.mjs store","watch":"tsx --watch src/entry.ts","agents":"node scripts/run-brigade.mjs agents","backup":"node scripts/run-brigade.mjs backup create","doctor":"node scripts/run-brigade.mjs doctor","skills":"node scripts/run-brigade.mjs skills list","status":"node scripts/run-brigade.mjs status","update":"node scripts/run-brigade.mjs update","brigade":"node brigade.mjs","connect":"node scripts/run-brigade.mjs connect","dev:tsx":"tsx src/entry.ts","gateway":"node scripts/run-brigade.mjs gateway","onboard":"node scripts/run-brigade.mjs onboard","pairing":"node scripts/run-brigade.mjs pairing list --channel whatsapp","prepack":"npm run build","tui:bin":"node brigade.mjs tui","upgrade":"node scripts/run-brigade.mjs upgrade","wa:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels":"node scripts/run-brigade.mjs channels","sessions":"node scripts/run-brigade.mjs sessions list","telegram":"node scripts/run-brigade.mjs channels status --channel telegram","wa:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","agent:bin":"node brigade.mjs agent","exec:list":"node scripts/run-brigade.mjs exec list","postbuild":"node scripts/build-done.mjs","tui:watch":"tsx --watch src/entry.ts tui","typecheck":"tsc -p tsconfig.json --noEmit","wa:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","wa:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","agents:add":"node scripts/run-brigade.mjs agents add","agents:bin":"node brigade.mjs agents","convex:dev":"node scripts/install-convex.mjs && node scripts/convex-dev.mjs","doctor:bin":"node brigade.mjs doctor","extensions":"node scripts/run-brigade.mjs extensions list","status:bin":"node brigade.mjs status","store:mode":"node scripts/run-brigade.mjs store mode show","update:bin":"node brigade.mjs update","agent:watch":"tsx --watch src/entry.ts agent","agents:bind":"node scripts/run-brigade.mjs agents bind","agents:list":"node scripts/run-brigade.mjs agents list","build:watch":"tsc -p tsconfig.build.json --watch","config:file":"node scripts/run-brigade.mjs config file","config:list":"node scripts/run-brigade.mjs config list","connect:bin":"node brigade.mjs connect","convex:push":"node scripts/convex-push.mjs","doctor:json":"node scripts/run-brigade.mjs doctor --json","gateway:bin":"node brigade.mjs gateway","logs:follow":"node scripts/run-brigade.mjs logs --follow","onboard:bin":"node brigade.mjs onboard","postinstall":"node scripts/brand-oauth-page.mjs","skills:info":"node scripts/run-brigade.mjs skills info","skills:list":"node scripts/run-brigade.mjs skills list","status:json":"node scripts/run-brigade.mjs status --json","store:reset":"node scripts/run-brigade.mjs store reset","upgrade:bin":"node brigade.mjs upgrade","channels:add":"node scripts/run-brigade.mjs channels add","gateway:stop":"node scripts/run-brigade.mjs gateway stop","pairing:list":"node scripts/run-brigade.mjs pairing list --channel whatsapp","update:check":"node scripts/run-brigade.mjs update --check","agents:delete":"node scripts/run-brigade.mjs agents delete","agents:unbind":"node scripts/run-brigade.mjs agents unbind","backup:create":"node scripts/run-brigade.mjs backup create","backup:verify":"node scripts/run-brigade.mjs backup verify","channels:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels:list":"node scripts/run-brigade.mjs channels list","config:schema":"node scripts/run-brigade.mjs config schema","connect:watch":"tsx --watch src/entry.ts connect","doctor:strict":"node scripts/run-brigade.mjs doctor --strict","gateway:watch":"tsx --watch src/entry.ts gateway","onboard:watch":"tsx --watch src/entry.ts onboard","secrets:audit":"node scripts/run-brigade.mjs secrets audit","sessions:list":"node scripts/run-brigade.mjs sessions list","store:migrate":"node scripts/run-brigade.mjs store migrate","backup:restore":"node scripts/run-brigade.mjs backup restore","channels:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","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","convex:install":"node scripts/install-convex.mjs","extensions:add":"node scripts/run-brigade.mjs extensions add","gateway:status":"node scripts/run-brigade.mjs gateway status","pairing:revoke":"node scripts/run-brigade.mjs pairing revoke --channel whatsapp","store:mode:set":"node scripts/run-brigade.mjs store mode set","telegram:allow":"node scripts/run-brigade.mjs channels allow list --channel telegram","telegram:token":"node scripts/run-brigade.mjs channels add --channel telegram","agents:bindings":"node scripts/run-brigade.mjs agents bindings","channels:enable":"node scripts/run-brigade.mjs channels enable --channel whatsapp","channels:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","channels:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","config:validate":"node scripts/run-brigade.mjs config validate","extensions:init":"node scripts/run-brigade.mjs extensions init","extensions:list":"node scripts/run-brigade.mjs extensions list","gateway:install":"node scripts/run-brigade.mjs gateway install","gateway:restart":"node scripts/run-brigade.mjs gateway restart","pairing:approve":"node scripts/run-brigade.mjs pairing approve --channel whatsapp","store:mode:show":"node scripts/run-brigade.mjs store mode show","telegram:enable":"node scripts/run-brigade.mjs channels enable --channel telegram","telegram:status":"node scripts/run-brigade.mjs channels status --channel telegram","channels:disable":"node scripts/run-brigade.mjs channels disable --channel whatsapp","sessions:cleanup":"node scripts/run-brigade.mjs sessions cleanup","telegram:disable":"node scripts/run-brigade.mjs channels disable --channel telegram","extensions:doctor":"node scripts/run-brigade.mjs extensions doctor","extensions:remove":"node scripts/run-brigade.mjs extensions remove","gateway:uninstall":"node scripts/run-brigade.mjs gateway uninstall","smoke:strict-zero":"tsx scripts/strict-zero-smoke.mjs","store:reset:purge":"node scripts/run-brigade.mjs store reset --purge-local","channels:allow:add":"node scripts/run-brigade.mjs channels allow add --channel whatsapp","telegram:allow:add":"node scripts/run-brigade.mjs channels allow add --channel telegram","agents:set-identity":"node scripts/run-brigade.mjs agents set-identity","channels:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel whatsapp","telegram:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel telegram"},"_npmUser":{"name":"spinabot-labs","email":"npm@spinabot.com"},"overrides":{"ws":"$ws"},"repository":{"url":"git+https://github.com/spinabot/brigade.git","type":"git"},"_npmVersion":"11.17.0","description":"Brigade — your personal AI crew","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ws":"^8.21.0","tar":"^7.5.15","zod":"^3.23.8","jiti":"^2.6.1","yaml":"^2.9.0","chalk":"^5.3.0","json5":"^2.2.3","cfonts":"^3.3.1","convex":"^1.40.0","croner":"^10.0.1","grammy":"^1.42.0","undici":"^7.25.0","prompts":"^2.4.2","linkedom":"^0.18.12","commander":"^12.1.0","minimatch":"^10.2.5","discord.js":"^14.26.4","cli-highlight":"^2.1.11","@composio/core":"^0.10.0","@slack/web-api":"^7.17.0","@grammyjs/types":"^3.21.0","playwright-core":"^1.59.0","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","https-proxy-agent":"^7.0.6","socks-proxy-agent":"^10.1.0","@slack/socket-mode":"^2.0.7","@mozilla/readability":"^0.6.0","@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@whiskeysockets/baileys":"7.0.0-rc13","@earendil-works/pi-agent-core":"0.79.9","@earendil-works/pi-coding-agent":"0.79.9","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","@types/ws":"^8.18.1","@types/tar":"^6.1.13","typescript":"^5.6.3","@types/node":"^22.10.0","@types/prompts":"^2.4.9","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2"},"_npmOperationalInternal":{"tmp":"tmp/brigade_1.7.0_1782365995474_0.0006275950033722832","host":"s3://npm-registry-packages-npm-production"}},"1.8.0":{"name":"@spinabot/brigade","version":"1.8.0","keywords":["ai","agent","agents","ai-agent","cli","tui","llm","claude","openai","gemini","ollama","whatsapp","gateway","brigade"],"author":{"name":"Spinabot","email":"hello@brigade-agent.ai"},"license":"MIT","_id":"@spinabot/brigade@1.8.0","maintainers":[{"name":"dev-spinabot","email":"bhasvanth02@gmail.com"},{"name":"spinabot-labs","email":"npm@spinabot.com"}],"homepage":"https://brigade.spinabot.com","bugs":{"url":"https://github.com/spinabot/brigade/issues","email":"hello@brigade-agent.ai"},"bin":{"brigade":"brigade.mjs"},"dist":{"shasum":"3846aefbc68e4a3d4817aaa58dc9a7ee299e3c35","tarball":"https://registry.npmjs.org/@spinabot/brigade/-/brigade-1.8.0.tgz","fileCount":2533,"integrity":"sha512-0sEPPoFOFoIJmS3ccCmixlO7FkMxiOCiS25Yh14fsaC6nwlWwOrkh1RkFzUakHYBqXkPX+WuE3k7dNzEteueQA==","signatures":[{"sig":"MEUCIQD24NCHOoP80gfLg9g62cvdM3h7HfMF+h18tOr/LjfKAQIgUSlfyGx2BQ8qmi4XX6JYGn8clMm/VL/yTiIKqIgKEEk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spinabot%2fbrigade@1.8.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":18670125},"main":"dist/entry.js","type":"module","types":"./dist/entry.d.ts","engines":{"node":">=22.12"},"exports":{".":"./brigade.mjs","./channel-sdk":{"types":"./dist/channel-sdk.d.ts","import":"./dist/channel-sdk.js"},"./package.json":"./package.json","./extension-sdk":{"types":"./dist/extension-sdk.d.ts","import":"./dist/extension-sdk.js"}},"gitHead":"4cc0d626b2bd8ffb4a49cd4c06347ba9d5d24f05","scripts":{"wa":"node scripts/run-brigade.mjs channels status --channel whatsapp","dev":"node scripts/run-brigade.mjs","tui":"node scripts/run-brigade.mjs tui","logs":"node scripts/run-brigade.mjs logs","test":"node scripts/run-tests.mjs","agent":"node scripts/run-brigade.mjs agent","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","build":"tsc -p tsconfig.build.json","clean":"node -e \"import('node:fs').then(fs => fs.rmSync('dist', { recursive: true, force: true }))\"","start":"node scripts/run-brigade.mjs","store":"node scripts/run-brigade.mjs store","watch":"tsx --watch src/entry.ts","agents":"node scripts/run-brigade.mjs agents","backup":"node scripts/run-brigade.mjs backup create","doctor":"node scripts/run-brigade.mjs doctor","skills":"node scripts/run-brigade.mjs skills list","status":"node scripts/run-brigade.mjs status","update":"node scripts/run-brigade.mjs update","brigade":"node brigade.mjs","connect":"node scripts/run-brigade.mjs connect","dev:tsx":"tsx src/entry.ts","gateway":"node scripts/run-brigade.mjs gateway","onboard":"node scripts/run-brigade.mjs onboard","pairing":"node scripts/run-brigade.mjs pairing list --channel whatsapp","prepack":"npm run build","tui:bin":"node brigade.mjs tui","upgrade":"node scripts/run-brigade.mjs upgrade","wa:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels":"node scripts/run-brigade.mjs channels","sessions":"node scripts/run-brigade.mjs sessions list","telegram":"node scripts/run-brigade.mjs channels status --channel telegram","wa:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","agent:bin":"node brigade.mjs agent","exec:list":"node scripts/run-brigade.mjs exec list","postbuild":"node scripts/build-done.mjs","tui:watch":"tsx --watch src/entry.ts tui","typecheck":"tsc -p tsconfig.json --noEmit","wa:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","wa:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","agents:add":"node scripts/run-brigade.mjs agents add","agents:bin":"node brigade.mjs agents","convex:dev":"node scripts/install-convex.mjs && node scripts/convex-dev.mjs","doctor:bin":"node brigade.mjs doctor","extensions":"node scripts/run-brigade.mjs extensions list","status:bin":"node brigade.mjs status","store:mode":"node scripts/run-brigade.mjs store mode show","update:bin":"node brigade.mjs update","agent:watch":"tsx --watch src/entry.ts agent","agents:bind":"node scripts/run-brigade.mjs agents bind","agents:list":"node scripts/run-brigade.mjs agents list","build:watch":"tsc -p tsconfig.build.json --watch","config:file":"node scripts/run-brigade.mjs config file","config:list":"node scripts/run-brigade.mjs config list","connect:bin":"node brigade.mjs connect","convex:push":"node scripts/convex-push.mjs","doctor:json":"node scripts/run-brigade.mjs doctor --json","gateway:bin":"node brigade.mjs gateway","logs:follow":"node scripts/run-brigade.mjs logs --follow","onboard:bin":"node brigade.mjs onboard","postinstall":"node scripts/brand-oauth-page.mjs","skills:info":"node scripts/run-brigade.mjs skills info","skills:list":"node scripts/run-brigade.mjs skills list","status:json":"node scripts/run-brigade.mjs status --json","store:reset":"node scripts/run-brigade.mjs store reset","upgrade:bin":"node brigade.mjs upgrade","channels:add":"node scripts/run-brigade.mjs channels add","gateway:stop":"node scripts/run-brigade.mjs gateway stop","pairing:list":"node scripts/run-brigade.mjs pairing list --channel whatsapp","update:check":"node scripts/run-brigade.mjs update --check","agents:delete":"node scripts/run-brigade.mjs agents delete","agents:unbind":"node scripts/run-brigade.mjs agents unbind","backup:create":"node scripts/run-brigade.mjs backup create","backup:verify":"node scripts/run-brigade.mjs backup verify","channels:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels:list":"node scripts/run-brigade.mjs channels list","config:schema":"node scripts/run-brigade.mjs config schema","connect:watch":"tsx --watch src/entry.ts connect","doctor:strict":"node scripts/run-brigade.mjs doctor --strict","gateway:watch":"tsx --watch src/entry.ts gateway","onboard:watch":"tsx --watch src/entry.ts onboard","secrets:audit":"node scripts/run-brigade.mjs secrets audit","sessions:list":"node scripts/run-brigade.mjs sessions list","store:migrate":"node scripts/run-brigade.mjs store migrate","backup:restore":"node scripts/run-brigade.mjs backup restore","channels:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","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","convex:install":"node scripts/install-convex.mjs","extensions:add":"node scripts/run-brigade.mjs extensions add","gateway:status":"node scripts/run-brigade.mjs gateway status","pairing:revoke":"node scripts/run-brigade.mjs pairing revoke --channel whatsapp","store:mode:set":"node scripts/run-brigade.mjs store mode set","telegram:allow":"node scripts/run-brigade.mjs channels allow list --channel telegram","telegram:token":"node scripts/run-brigade.mjs channels add --channel telegram","agents:bindings":"node scripts/run-brigade.mjs agents bindings","channels:enable":"node scripts/run-brigade.mjs channels enable --channel whatsapp","channels:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","channels:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","config:validate":"node scripts/run-brigade.mjs config validate","extensions:init":"node scripts/run-brigade.mjs extensions init","extensions:list":"node scripts/run-brigade.mjs extensions list","gateway:install":"node scripts/run-brigade.mjs gateway install","gateway:restart":"node scripts/run-brigade.mjs gateway restart","pairing:approve":"node scripts/run-brigade.mjs pairing approve --channel whatsapp","store:mode:show":"node scripts/run-brigade.mjs store mode show","telegram:enable":"node scripts/run-brigade.mjs channels enable --channel telegram","telegram:status":"node scripts/run-brigade.mjs channels status --channel telegram","channels:disable":"node scripts/run-brigade.mjs channels disable --channel whatsapp","sessions:cleanup":"node scripts/run-brigade.mjs sessions cleanup","telegram:disable":"node scripts/run-brigade.mjs channels disable --channel telegram","extensions:doctor":"node scripts/run-brigade.mjs extensions doctor","extensions:remove":"node scripts/run-brigade.mjs extensions remove","gateway:uninstall":"node scripts/run-brigade.mjs gateway uninstall","smoke:strict-zero":"tsx scripts/strict-zero-smoke.mjs","store:reset:purge":"node scripts/run-brigade.mjs store reset --purge-local","channels:allow:add":"node scripts/run-brigade.mjs channels allow add --channel whatsapp","telegram:allow:add":"node scripts/run-brigade.mjs channels allow add --channel telegram","agents:set-identity":"node scripts/run-brigade.mjs agents set-identity","channels:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel whatsapp","telegram:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel telegram"},"_npmUser":{"name":"spinabot-labs","email":"npm@spinabot.com"},"overrides":{"ws":"$ws"},"repository":{"url":"git+https://github.com/spinabot/brigade.git","type":"git"},"_npmVersion":"11.17.0","description":"Brigade — your personal AI crew","directories":{},"_nodeVersion":"24.17.0","dependencies":{"ws":"^8.21.0","tar":"^7.5.15","zod":"^3.23.8","jiti":"^2.6.1","yaml":"^2.9.0","chalk":"^5.3.0","json5":"^2.2.3","cfonts":"^3.3.1","convex":"^1.40.0","croner":"^10.0.1","grammy":"^1.42.0","undici":"^7.25.0","prompts":"^2.4.2","linkedom":"^0.18.12","commander":"^12.1.0","minimatch":"^10.2.5","discord.js":"^14.26.4","cli-highlight":"^2.1.11","@composio/core":"^0.10.0","@slack/web-api":"^7.17.0","@grammyjs/types":"^3.21.0","playwright-core":"^1.59.0","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","https-proxy-agent":"^7.0.6","socks-proxy-agent":"^10.1.0","@slack/socket-mode":"^2.0.7","@mozilla/readability":"^0.6.0","@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@whiskeysockets/baileys":"7.0.0-rc13","@earendil-works/pi-agent-core":"0.79.9","@earendil-works/pi-coding-agent":"0.79.9","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","@types/ws":"^8.18.1","@types/tar":"^6.1.13","typescript":"^5.6.3","@types/node":"^22.10.0","@types/prompts":"^2.4.9","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2"},"_npmOperationalInternal":{"tmp":"tmp/brigade_1.8.0_1782398918309_0.4682610018460198","host":"s3://npm-registry-packages-npm-production"}},"1.9.0":{"name":"@spinabot/brigade","version":"1.9.0","keywords":["ai","agent","agents","ai-agent","cli","tui","llm","claude","openai","gemini","ollama","whatsapp","gateway","brigade"],"author":{"name":"Spinabot","email":"hello@brigade-agent.ai"},"license":"MIT","_id":"@spinabot/brigade@1.9.0","maintainers":[{"name":"dev-spinabot","email":"bhasvanth02@gmail.com"},{"name":"spinabot-labs","email":"npm@spinabot.com"}],"homepage":"https://brigade.spinabot.com","bugs":{"url":"https://github.com/spinabot/brigade/issues","email":"hello@brigade-agent.ai"},"bin":{"brigade":"brigade.mjs"},"dist":{"shasum":"91a28a59d9f0f6ea4e475f52180390594909f14e","tarball":"https://registry.npmjs.org/@spinabot/brigade/-/brigade-1.9.0.tgz","fileCount":2569,"integrity":"sha512-U6+v7iDdJUcMxK3SxQVoUs39N5Ie8aNB72ff5YdDO6wyzKeE5JS4bPaUGysKdb3obYtEi7rjBpkX60uBmikVcg==","signatures":[{"sig":"MEQCIH3yZ6dMn37Bb36wjGHEHGV6WhCbEZzfhM2Jh832EHYgAiBvtKAh87cJqZa8b3X4g2+zWrrmCpLZCpRRNytTwHjo2Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spinabot%2fbrigade@1.9.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":18771895},"main":"dist/entry.js","type":"module","types":"./dist/entry.d.ts","engines":{"node":">=22.12"},"exports":{".":"./brigade.mjs","./channel-sdk":{"types":"./dist/channel-sdk.d.ts","import":"./dist/channel-sdk.js"},"./package.json":"./package.json","./extension-sdk":{"types":"./dist/extension-sdk.d.ts","import":"./dist/extension-sdk.js"}},"gitHead":"bbea17148ff119b4f52ebb95b1a92e16cf294c5b","scripts":{"wa":"node scripts/run-brigade.mjs channels status --channel whatsapp","dev":"node scripts/run-brigade.mjs","tui":"node scripts/run-brigade.mjs tui","logs":"node scripts/run-brigade.mjs logs","test":"node scripts/run-tests.mjs","agent":"node scripts/run-brigade.mjs agent","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","build":"tsc -p tsconfig.build.json","clean":"node -e \"import('node:fs').then(fs => fs.rmSync('dist', { recursive: true, force: true }))\"","start":"node scripts/run-brigade.mjs","store":"node scripts/run-brigade.mjs store","watch":"tsx --watch src/entry.ts","agents":"node scripts/run-brigade.mjs agents","backup":"node scripts/run-brigade.mjs backup create","doctor":"node scripts/run-brigade.mjs doctor","expose":"node scripts/run-brigade.mjs expose","skills":"node scripts/run-brigade.mjs skills list","status":"node scripts/run-brigade.mjs status","update":"node scripts/run-brigade.mjs update","brigade":"node brigade.mjs","connect":"node scripts/run-brigade.mjs connect","dev:tsx":"tsx src/entry.ts","gateway":"node scripts/run-brigade.mjs gateway","onboard":"node scripts/run-brigade.mjs onboard","pairing":"node scripts/run-brigade.mjs pairing list --channel whatsapp","prepack":"npm run build","tui:bin":"node brigade.mjs tui","upgrade":"node scripts/run-brigade.mjs upgrade","wa:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels":"node scripts/run-brigade.mjs channels","sessions":"node scripts/run-brigade.mjs sessions list","telegram":"node scripts/run-brigade.mjs channels status --channel telegram","wa:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","agent:bin":"node brigade.mjs agent","exec:list":"node scripts/run-brigade.mjs exec list","postbuild":"node scripts/build-done.mjs","tui:watch":"tsx --watch src/entry.ts tui","typecheck":"tsc -p tsconfig.json --noEmit","wa:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","wa:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","agents:add":"node scripts/run-brigade.mjs agents add","agents:bin":"node brigade.mjs agents","convex:dev":"node scripts/install-convex.mjs && node scripts/convex-dev.mjs","doctor:bin":"node brigade.mjs doctor","extensions":"node scripts/run-brigade.mjs extensions list","status:bin":"node brigade.mjs status","store:mode":"node scripts/run-brigade.mjs store mode show","update:bin":"node brigade.mjs update","agent:watch":"tsx --watch src/entry.ts agent","agents:bind":"node scripts/run-brigade.mjs agents bind","agents:list":"node scripts/run-brigade.mjs agents list","build:watch":"tsc -p tsconfig.build.json --watch","config:file":"node scripts/run-brigade.mjs config file","config:list":"node scripts/run-brigade.mjs config list","connect:bin":"node brigade.mjs connect","convex:push":"node scripts/convex-push.mjs","doctor:json":"node scripts/run-brigade.mjs doctor --json","expose:stop":"node scripts/run-brigade.mjs expose stop","gateway:bin":"node brigade.mjs gateway","logs:follow":"node scripts/run-brigade.mjs logs --follow","onboard:bin":"node brigade.mjs onboard","postinstall":"node scripts/brand-oauth-page.mjs","skills:info":"node scripts/run-brigade.mjs skills info","skills:list":"node scripts/run-brigade.mjs skills list","status:json":"node scripts/run-brigade.mjs status --json","store:reset":"node scripts/run-brigade.mjs store reset","upgrade:bin":"node brigade.mjs upgrade","channels:add":"node scripts/run-brigade.mjs channels add","gateway:stop":"node scripts/run-brigade.mjs gateway stop","pairing:list":"node scripts/run-brigade.mjs pairing list --channel whatsapp","update:check":"node scripts/run-brigade.mjs update --check","agents:delete":"node scripts/run-brigade.mjs agents delete","agents:unbind":"node scripts/run-brigade.mjs agents unbind","backup:create":"node scripts/run-brigade.mjs backup create","backup:verify":"node scripts/run-brigade.mjs backup verify","channels:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels:list":"node scripts/run-brigade.mjs channels list","config:schema":"node scripts/run-brigade.mjs config schema","connect:watch":"tsx --watch src/entry.ts connect","doctor:strict":"node scripts/run-brigade.mjs doctor --strict","expose:status":"node scripts/run-brigade.mjs expose status","gateway:watch":"tsx --watch src/entry.ts gateway","onboard:watch":"tsx --watch src/entry.ts onboard","secrets:audit":"node scripts/run-brigade.mjs secrets audit","sessions:list":"node scripts/run-brigade.mjs sessions list","store:migrate":"node scripts/run-brigade.mjs store migrate","backup:restore":"node scripts/run-brigade.mjs backup restore","channels:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","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","convex:install":"node scripts/install-convex.mjs","extensions:add":"node scripts/run-brigade.mjs extensions add","gateway:status":"node scripts/run-brigade.mjs gateway status","pairing:revoke":"node scripts/run-brigade.mjs pairing revoke --channel whatsapp","store:mode:set":"node scripts/run-brigade.mjs store mode set","telegram:allow":"node scripts/run-brigade.mjs channels allow list --channel telegram","telegram:token":"node scripts/run-brigade.mjs channels add --channel telegram","agents:bindings":"node scripts/run-brigade.mjs agents bindings","channels:enable":"node scripts/run-brigade.mjs channels enable --channel whatsapp","channels:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","channels:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","config:validate":"node scripts/run-brigade.mjs config validate","extensions:init":"node scripts/run-brigade.mjs extensions init","extensions:list":"node scripts/run-brigade.mjs extensions list","gateway:install":"node scripts/run-brigade.mjs gateway install","gateway:restart":"node scripts/run-brigade.mjs gateway restart","pairing:approve":"node scripts/run-brigade.mjs pairing approve --channel whatsapp","store:mode:show":"node scripts/run-brigade.mjs store mode show","telegram:enable":"node scripts/run-brigade.mjs channels enable --channel telegram","telegram:status":"node scripts/run-brigade.mjs channels status --channel telegram","bloody benchmark":"node scripts/run-brigade.mjs bloody benchmark","channels:disable":"node scripts/run-brigade.mjs channels disable --channel whatsapp","sessions:cleanup":"node scripts/run-brigade.mjs sessions cleanup","telegram:disable":"node scripts/run-brigade.mjs channels disable --channel telegram","extensions:doctor":"node scripts/run-brigade.mjs extensions doctor","extensions:remove":"node scripts/run-brigade.mjs extensions remove","gateway:uninstall":"node scripts/run-brigade.mjs gateway uninstall","smoke:strict-zero":"tsx scripts/strict-zero-smoke.mjs","store:reset:purge":"node scripts/run-brigade.mjs store reset --purge-local","channels:allow:add":"node scripts/run-brigade.mjs channels allow add --channel whatsapp","telegram:allow:add":"node scripts/run-brigade.mjs channels allow add --channel telegram","agents:set-identity":"node scripts/run-brigade.mjs agents set-identity","channels:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel whatsapp","telegram:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel telegram"},"_npmUser":{"name":"spinabot-labs","email":"npm@spinabot.com"},"overrides":{"ws":"$ws"},"repository":{"url":"git+https://github.com/spinabot/brigade.git","type":"git"},"_npmVersion":"11.17.0","description":"Brigade — your personal AI crew","directories":{},"_nodeVersion":"24.17.0","dependencies":{"ws":"^8.21.0","tar":"^7.5.15","zod":"^3.23.8","jiti":"^2.6.1","yaml":"^2.9.0","chalk":"^5.3.0","json5":"^2.2.3","cfonts":"^3.3.1","convex":"^1.40.0","croner":"^10.0.1","grammy":"^1.42.0","undici":"^7.25.0","prompts":"^2.4.2","linkedom":"^0.18.12","commander":"^12.1.0","minimatch":"^10.2.5","discord.js":"^14.26.4","cli-highlight":"^2.1.11","@composio/core":"^0.10.0","@slack/web-api":"^7.17.0","@grammyjs/types":"^3.21.0","playwright-core":"^1.59.0","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","https-proxy-agent":"^7.0.6","socks-proxy-agent":"^10.1.0","@slack/socket-mode":"^2.0.7","@mozilla/readability":"^0.6.0","@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@whiskeysockets/baileys":"7.0.0-rc13","@earendil-works/pi-agent-core":"0.79.9","@earendil-works/pi-coding-agent":"0.79.9","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","@types/ws":"^8.18.1","@types/tar":"^6.1.13","typescript":"^5.6.3","@types/node":"^22.10.0","@types/prompts":"^2.4.9","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2"},"_npmOperationalInternal":{"tmp":"tmp/brigade_1.9.0_1782413024668_0.37479594683545225","host":"s3://npm-registry-packages-npm-production"}},"1.10.0":{"name":"@spinabot/brigade","version":"1.10.0","keywords":["ai","agent","agents","ai-agent","cli","tui","llm","claude","openai","gemini","ollama","whatsapp","gateway","brigade"],"author":{"name":"Spinabot","email":"hello@brigade-agent.ai"},"license":"MIT","_id":"@spinabot/brigade@1.10.0","maintainers":[{"name":"dev-spinabot","email":"bhasvanth02@gmail.com"},{"name":"spinabot-labs","email":"npm@spinabot.com"}],"homepage":"https://brigade.spinabot.com","bugs":{"url":"https://github.com/spinabot/brigade/issues","email":"hello@brigade-agent.ai"},"bin":{"brigade":"brigade.mjs"},"dist":{"shasum":"8a6c7f2bb5bf4871fc0173c4ad422351137eaeaa","tarball":"https://registry.npmjs.org/@spinabot/brigade/-/brigade-1.10.0.tgz","fileCount":2621,"integrity":"sha512-XAf2nUoQWA2EN/25dsIlqOW9TWZM6rG2mmUVnBFffNqfcnfK6lf94Pvsswe2VsyNDCXMlUEKcITDwbiG5BESZg==","signatures":[{"sig":"MEYCIQCVm0cuBxKkE3FNTa+35H3RjsoTK6usoICMo9h7NkEqRgIhAPAQSC2fKZP03j2xdoJugGD/GAJvCarEzjuYjUijql+h","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spinabot%2fbrigade@1.10.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":19404172},"main":"dist/entry.js","type":"module","types":"./dist/entry.d.ts","engines":{"node":">=22.12"},"exports":{".":"./brigade.mjs","./channel-sdk":{"types":"./dist/channel-sdk.d.ts","import":"./dist/channel-sdk.js"},"./package.json":"./package.json","./extension-sdk":{"types":"./dist/extension-sdk.d.ts","import":"./dist/extension-sdk.js"}},"gitHead":"b5ca49529674efbc1bd706fab230bbecf7a54384","scripts":{"wa":"node scripts/run-brigade.mjs channels status --channel whatsapp","dev":"node scripts/run-brigade.mjs","tui":"node scripts/run-brigade.mjs tui","logs":"node scripts/run-brigade.mjs logs","test":"node scripts/run-tests.mjs","agent":"node scripts/run-brigade.mjs agent","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","build":"tsc -p tsconfig.build.json","clean":"node -e \"import('node:fs').then(fs => fs.rmSync('dist', { recursive: true, force: true }))\"","start":"node scripts/run-brigade.mjs","store":"node scripts/run-brigade.mjs store","watch":"tsx --watch src/entry.ts","agents":"node scripts/run-brigade.mjs agents","backup":"node scripts/run-brigade.mjs backup create","doctor":"node scripts/run-brigade.mjs doctor","expose":"node scripts/run-brigade.mjs expose","skills":"node scripts/run-brigade.mjs skills list","status":"node scripts/run-brigade.mjs status","update":"node scripts/run-brigade.mjs update","brigade":"node brigade.mjs","connect":"node scripts/run-brigade.mjs connect","dev:tsx":"tsx src/entry.ts","gateway":"node scripts/run-brigade.mjs gateway","onboard":"node scripts/run-brigade.mjs onboard","pairing":"node scripts/run-brigade.mjs pairing list --channel whatsapp","prepack":"npm run build","tui:bin":"node brigade.mjs tui","upgrade":"node scripts/run-brigade.mjs upgrade","wa:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels":"node scripts/run-brigade.mjs channels","sessions":"node scripts/run-brigade.mjs sessions list","telegram":"node scripts/run-brigade.mjs channels status --channel telegram","wa:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","agent:bin":"node brigade.mjs agent","exec:list":"node scripts/run-brigade.mjs exec list","postbuild":"node scripts/build-done.mjs","tui:watch":"tsx --watch src/entry.ts tui","typecheck":"tsc -p tsconfig.json --noEmit","wa:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","wa:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","agents:add":"node scripts/run-brigade.mjs agents add","agents:bin":"node brigade.mjs agents","convex:dev":"node scripts/install-convex.mjs && node scripts/convex-dev.mjs","doctor:bin":"node brigade.mjs doctor","extensions":"node scripts/run-brigade.mjs extensions list","status:bin":"node brigade.mjs status","store:mode":"node scripts/run-brigade.mjs store mode show","update:bin":"node brigade.mjs update","agent:watch":"tsx --watch src/entry.ts agent","agents:bind":"node scripts/run-brigade.mjs agents bind","agents:list":"node scripts/run-brigade.mjs agents list","build:watch":"tsc -p tsconfig.build.json --watch","config:file":"node scripts/run-brigade.mjs config file","config:list":"node scripts/run-brigade.mjs config list","connect:bin":"node brigade.mjs connect","convex:push":"node scripts/convex-push.mjs","doctor:json":"node scripts/run-brigade.mjs doctor --json","expose:stop":"node scripts/run-brigade.mjs expose stop","gateway:bin":"node brigade.mjs gateway","logs:follow":"node scripts/run-brigade.mjs logs --follow","onboard:bin":"node brigade.mjs onboard","postinstall":"node scripts/brand-oauth-page.mjs","skills:info":"node scripts/run-brigade.mjs skills info","skills:list":"node scripts/run-brigade.mjs skills list","status:json":"node scripts/run-brigade.mjs status --json","store:reset":"node scripts/run-brigade.mjs store reset","upgrade:bin":"node brigade.mjs upgrade","channels:add":"node scripts/run-brigade.mjs channels add","gateway:stop":"node scripts/run-brigade.mjs gateway stop","pairing:list":"node scripts/run-brigade.mjs pairing list --channel whatsapp","update:check":"node scripts/run-brigade.mjs update --check","agents:delete":"node scripts/run-brigade.mjs agents delete","agents:unbind":"node scripts/run-brigade.mjs agents unbind","backup:create":"node scripts/run-brigade.mjs backup create","backup:verify":"node scripts/run-brigade.mjs backup verify","channels:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels:list":"node scripts/run-brigade.mjs channels list","config:schema":"node scripts/run-brigade.mjs config schema","connect:watch":"tsx --watch src/entry.ts connect","doctor:strict":"node scripts/run-brigade.mjs doctor --strict","expose:status":"node scripts/run-brigade.mjs expose status","gateway:watch":"tsx --watch src/entry.ts gateway","onboard:watch":"tsx --watch src/entry.ts onboard","secrets:audit":"node scripts/run-brigade.mjs secrets audit","sessions:list":"node scripts/run-brigade.mjs sessions list","store:migrate":"node scripts/run-brigade.mjs store migrate","backup:restore":"node scripts/run-brigade.mjs backup restore","channels:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","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","convex:install":"node scripts/install-convex.mjs","extensions:add":"node scripts/run-brigade.mjs extensions add","gateway:status":"node scripts/run-brigade.mjs gateway status","pairing:revoke":"node scripts/run-brigade.mjs pairing revoke --channel whatsapp","store:mode:set":"node scripts/run-brigade.mjs store mode set","telegram:allow":"node scripts/run-brigade.mjs channels allow list --channel telegram","telegram:token":"node scripts/run-brigade.mjs channels add --channel telegram","agents:bindings":"node scripts/run-brigade.mjs agents bindings","channels:enable":"node scripts/run-brigade.mjs channels enable --channel whatsapp","channels:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","channels:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","config:validate":"node scripts/run-brigade.mjs config validate","extensions:init":"node scripts/run-brigade.mjs extensions init","extensions:list":"node scripts/run-brigade.mjs extensions list","gateway:install":"node scripts/run-brigade.mjs gateway install","gateway:restart":"node scripts/run-brigade.mjs gateway restart","pairing:approve":"node scripts/run-brigade.mjs pairing approve --channel whatsapp","store:mode:show":"node scripts/run-brigade.mjs store mode show","telegram:enable":"node scripts/run-brigade.mjs channels enable --channel telegram","telegram:status":"node scripts/run-brigade.mjs channels status --channel telegram","bloody benchmark":"node scripts/run-brigade.mjs bloody benchmark","channels:disable":"node scripts/run-brigade.mjs channels disable --channel whatsapp","sessions:cleanup":"node scripts/run-brigade.mjs sessions cleanup","telegram:disable":"node scripts/run-brigade.mjs channels disable --channel telegram","extensions:doctor":"node scripts/run-brigade.mjs extensions doctor","extensions:remove":"node scripts/run-brigade.mjs extensions remove","gateway:uninstall":"node scripts/run-brigade.mjs gateway uninstall","smoke:strict-zero":"tsx scripts/strict-zero-smoke.mjs","store:reset:purge":"node scripts/run-brigade.mjs store reset --purge-local","channels:allow:add":"node scripts/run-brigade.mjs channels allow add --channel whatsapp","telegram:allow:add":"node scripts/run-brigade.mjs channels allow add --channel telegram","agents:set-identity":"node scripts/run-brigade.mjs agents set-identity","channels:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel whatsapp","telegram:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel telegram"},"_npmUser":{"name":"spinabot-labs","email":"npm@spinabot.com"},"overrides":{"ws":"$ws"},"repository":{"url":"git+https://github.com/spinabot/brigade.git","type":"git"},"_npmVersion":"11.17.0","description":"Brigade — your personal AI crew","directories":{},"_nodeVersion":"24.17.0","dependencies":{"ws":"^8.21.0","tar":"^7.5.15","zod":"^3.23.8","docx":"^9.7.1","jimp":"^1.6.1","jiti":"^2.6.1","yaml":"^2.9.0","chalk":"^5.3.0","json5":"^2.2.3","unpdf":"^1.6.2","cfonts":"^3.3.1","convex":"^1.40.0","croner":"^10.0.1","fflate":"^0.8.3","grammy":"^1.42.0","undici":"^7.25.0","exceljs":"^4.4.0","prompts":"^2.4.2","linkedom":"^0.18.12","commander":"^12.1.0","minimatch":"^10.2.5","pptxgenjs":"^4.0.1","discord.js":"^14.26.4","cli-highlight":"^2.1.11","@composio/core":"^0.10.0","@slack/web-api":"^7.17.0","@cantoo/pdf-lib":"^2.7.1","@grammyjs/types":"^3.21.0","playwright-core":"^1.59.0","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@pdf-lib/fontkit":"^1.1.1","https-proxy-agent":"^7.0.6","socks-proxy-agent":"^10.1.0","@slack/socket-mode":"^2.0.7","@mozilla/readability":"^0.6.0","@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@whiskeysockets/baileys":"7.0.0-rc13","@earendil-works/pi-agent-core":"0.79.9","@earendil-works/pi-coding-agent":"0.79.9","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","@types/ws":"^8.18.1","@types/tar":"^6.1.13","typescript":"^5.6.3","@types/node":"^22.10.0","@types/prompts":"^2.4.9","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2"},"_npmOperationalInternal":{"tmp":"tmp/brigade_1.10.0_1782425212035_0.5194138853325556","host":"s3://npm-registry-packages-npm-production"}},"1.11.0":{"name":"@spinabot/brigade","version":"1.11.0","keywords":["ai","agent","agents","ai-agent","cli","tui","llm","claude","openai","gemini","ollama","whatsapp","gateway","brigade"],"author":{"name":"Spinabot","email":"hello@brigade-agent.ai"},"license":"MIT","_id":"@spinabot/brigade@1.11.0","maintainers":[{"name":"dev-spinabot","email":"bhasvanth02@gmail.com"},{"name":"spinabot-labs","email":"npm@spinabot.com"}],"homepage":"https://brigade.spinabot.com","bugs":{"url":"https://github.com/spinabot/brigade/issues","email":"hello@brigade-agent.ai"},"bin":{"brigade":"brigade.mjs"},"dist":{"shasum":"2cee9f693385053cc2867fd0ff272a75f0060d91","tarball":"https://registry.npmjs.org/@spinabot/brigade/-/brigade-1.11.0.tgz","fileCount":2621,"integrity":"sha512-/evh5yxk5xXpwQ2cfAv6gKYc8Y1LLYNZTYtGJ1v2XUpVHTl8ksyLeEO36ZWIOp55BL7hmMJnH+t7x6vSMfcMsQ==","signatures":[{"sig":"MEUCIQCt/KWnQCcmQm5bcV73IpKGD2o0uki9v69sYzl592W3TQIgFS08nR/VpAGrwtFziM/fX+MTVa1mzLxY47eCZbyLyAM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spinabot%2fbrigade@1.11.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":19415030},"main":"dist/entry.js","type":"module","types":"./dist/entry.d.ts","engines":{"node":">=22.12"},"exports":{".":"./brigade.mjs","./channel-sdk":{"types":"./dist/channel-sdk.d.ts","import":"./dist/channel-sdk.js"},"./package.json":"./package.json","./extension-sdk":{"types":"./dist/extension-sdk.d.ts","import":"./dist/extension-sdk.js"}},"gitHead":"93340695aaa611328967e781ebafbec304aea5b8","scripts":{"wa":"node scripts/run-brigade.mjs channels status --channel whatsapp","dev":"node scripts/run-brigade.mjs","tui":"node scripts/run-brigade.mjs tui","logs":"node scripts/run-brigade.mjs logs","test":"node scripts/run-tests.mjs","agent":"node scripts/run-brigade.mjs agent","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","build":"tsc -p tsconfig.build.json","clean":"node -e \"import('node:fs').then(fs => fs.rmSync('dist', { recursive: true, force: true }))\"","start":"node scripts/run-brigade.mjs","store":"node scripts/run-brigade.mjs store","watch":"tsx --watch src/entry.ts","agents":"node scripts/run-brigade.mjs agents","backup":"node scripts/run-brigade.mjs backup create","doctor":"node scripts/run-brigade.mjs doctor","expose":"node scripts/run-brigade.mjs expose","skills":"node scripts/run-brigade.mjs skills list","status":"node scripts/run-brigade.mjs status","update":"node scripts/run-brigade.mjs update","brigade":"node brigade.mjs","connect":"node scripts/run-brigade.mjs connect","dev:tsx":"tsx src/entry.ts","gateway":"node scripts/run-brigade.mjs gateway","onboard":"node scripts/run-brigade.mjs onboard","pairing":"node scripts/run-brigade.mjs pairing list --channel whatsapp","prepack":"npm run build","tui:bin":"node brigade.mjs tui","upgrade":"node scripts/run-brigade.mjs upgrade","wa:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels":"node scripts/run-brigade.mjs channels","sessions":"node scripts/run-brigade.mjs sessions list","telegram":"node scripts/run-brigade.mjs channels status --channel telegram","wa:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","agent:bin":"node brigade.mjs agent","exec:list":"node scripts/run-brigade.mjs exec list","postbuild":"node scripts/build-done.mjs","tui:watch":"tsx --watch src/entry.ts tui","typecheck":"tsc -p tsconfig.json --noEmit","wa:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","wa:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","agents:add":"node scripts/run-brigade.mjs agents add","agents:bin":"node brigade.mjs agents","convex:dev":"node scripts/install-convex.mjs && node scripts/convex-dev.mjs","doctor:bin":"node brigade.mjs doctor","extensions":"node scripts/run-brigade.mjs extensions list","status:bin":"node brigade.mjs status","store:mode":"node scripts/run-brigade.mjs store mode show","update:bin":"node brigade.mjs update","agent:watch":"tsx --watch src/entry.ts agent","agents:bind":"node scripts/run-brigade.mjs agents bind","agents:list":"node scripts/run-brigade.mjs agents list","build:watch":"tsc -p tsconfig.build.json --watch","config:file":"node scripts/run-brigade.mjs config file","config:list":"node scripts/run-brigade.mjs config list","connect:bin":"node brigade.mjs connect","convex:push":"node scripts/convex-push.mjs","doctor:json":"node scripts/run-brigade.mjs doctor --json","expose:stop":"node scripts/run-brigade.mjs expose stop","gateway:bin":"node brigade.mjs gateway","logs:follow":"node scripts/run-brigade.mjs logs --follow","onboard:bin":"node brigade.mjs onboard","postinstall":"node scripts/brand-oauth-page.mjs","skills:info":"node scripts/run-brigade.mjs skills info","skills:list":"node scripts/run-brigade.mjs skills list","status:json":"node scripts/run-brigade.mjs status --json","store:reset":"node scripts/run-brigade.mjs store reset","upgrade:bin":"node brigade.mjs upgrade","channels:add":"node scripts/run-brigade.mjs channels add","gateway:stop":"node scripts/run-brigade.mjs gateway stop","pairing:list":"node scripts/run-brigade.mjs pairing list --channel whatsapp","update:check":"node scripts/run-brigade.mjs update --check","agents:delete":"node scripts/run-brigade.mjs agents delete","agents:unbind":"node scripts/run-brigade.mjs agents unbind","backup:create":"node scripts/run-brigade.mjs backup create","backup:verify":"node scripts/run-brigade.mjs backup verify","channels:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels:list":"node scripts/run-brigade.mjs channels list","config:schema":"node scripts/run-brigade.mjs config schema","connect:watch":"tsx --watch src/entry.ts connect","doctor:strict":"node scripts/run-brigade.mjs doctor --strict","expose:status":"node scripts/run-brigade.mjs expose status","gateway:watch":"tsx --watch src/entry.ts gateway","onboard:watch":"tsx --watch src/entry.ts onboard","secrets:audit":"node scripts/run-brigade.mjs secrets audit","sessions:list":"node scripts/run-brigade.mjs sessions list","store:migrate":"node scripts/run-brigade.mjs store migrate","backup:restore":"node scripts/run-brigade.mjs backup restore","channels:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","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","convex:install":"node scripts/install-convex.mjs","extensions:add":"node scripts/run-brigade.mjs extensions add","gateway:status":"node scripts/run-brigade.mjs gateway status","pairing:revoke":"node scripts/run-brigade.mjs pairing revoke --channel whatsapp","store:mode:set":"node scripts/run-brigade.mjs store mode set","telegram:allow":"node scripts/run-brigade.mjs channels allow list --channel telegram","telegram:token":"node scripts/run-brigade.mjs channels add --channel telegram","agents:bindings":"node scripts/run-brigade.mjs agents bindings","channels:enable":"node scripts/run-brigade.mjs channels enable --channel whatsapp","channels:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","channels:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","config:validate":"node scripts/run-brigade.mjs config validate","extensions:init":"node scripts/run-brigade.mjs extensions init","extensions:list":"node scripts/run-brigade.mjs extensions list","gateway:install":"node scripts/run-brigade.mjs gateway install","gateway:restart":"node scripts/run-brigade.mjs gateway restart","pairing:approve":"node scripts/run-brigade.mjs pairing approve --channel whatsapp","store:mode:show":"node scripts/run-brigade.mjs store mode show","telegram:enable":"node scripts/run-brigade.mjs channels enable --channel telegram","telegram:status":"node scripts/run-brigade.mjs channels status --channel telegram","bloody benchmark":"node scripts/run-brigade.mjs bloody benchmark","channels:disable":"node scripts/run-brigade.mjs channels disable --channel whatsapp","sessions:cleanup":"node scripts/run-brigade.mjs sessions cleanup","telegram:disable":"node scripts/run-brigade.mjs channels disable --channel telegram","extensions:doctor":"node scripts/run-brigade.mjs extensions doctor","extensions:remove":"node scripts/run-brigade.mjs extensions remove","gateway:uninstall":"node scripts/run-brigade.mjs gateway uninstall","smoke:strict-zero":"tsx scripts/strict-zero-smoke.mjs","store:reset:purge":"node scripts/run-brigade.mjs store reset --purge-local","channels:allow:add":"node scripts/run-brigade.mjs channels allow add --channel whatsapp","telegram:allow:add":"node scripts/run-brigade.mjs channels allow add --channel telegram","agents:set-identity":"node scripts/run-brigade.mjs agents set-identity","channels:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel whatsapp","telegram:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel telegram"},"_npmUser":{"name":"spinabot-labs","email":"npm@spinabot.com"},"overrides":{"ws":"$ws"},"repository":{"url":"git+https://github.com/spinabot/brigade.git","type":"git"},"_npmVersion":"11.17.0","description":"Brigade — your personal AI crew","directories":{},"_nodeVersion":"24.17.0","dependencies":{"ws":"^8.21.0","tar":"^7.5.15","zod":"^3.23.8","docx":"^9.7.1","jimp":"^1.6.1","jiti":"^2.6.1","yaml":"^2.9.0","chalk":"^5.3.0","json5":"^2.2.3","unpdf":"^1.6.2","cfonts":"^3.3.1","convex":"^1.40.0","croner":"^10.0.1","fflate":"^0.8.3","grammy":"^1.42.0","undici":"^7.25.0","exceljs":"^4.4.0","prompts":"^2.4.2","linkedom":"^0.18.12","commander":"^12.1.0","minimatch":"^10.2.5","pptxgenjs":"^4.0.1","discord.js":"^14.26.4","cli-highlight":"^2.1.11","@composio/core":"^0.10.0","@slack/web-api":"^7.17.0","@cantoo/pdf-lib":"^2.7.1","@grammyjs/types":"^3.21.0","playwright-core":"^1.59.0","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@pdf-lib/fontkit":"^1.1.1","https-proxy-agent":"^7.0.6","socks-proxy-agent":"^10.1.0","@slack/socket-mode":"^2.0.7","@mozilla/readability":"^0.6.0","@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@whiskeysockets/baileys":"7.0.0-rc13","@earendil-works/pi-agent-core":"0.79.9","@earendil-works/pi-coding-agent":"0.79.9","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","@types/ws":"^8.18.1","@types/tar":"^6.1.13","typescript":"^5.6.3","@types/node":"^22.10.0","@types/prompts":"^2.4.9","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2"},"_npmOperationalInternal":{"tmp":"tmp/brigade_1.11.0_1782426295167_0.7201346211700144","host":"s3://npm-registry-packages-npm-production"}},"1.11.1":{"name":"@spinabot/brigade","version":"1.11.1","keywords":["ai","agent","agents","ai-agent","cli","tui","llm","claude","openai","gemini","ollama","whatsapp","gateway","brigade"],"author":{"name":"Spinabot","email":"hello@brigade-agent.ai"},"license":"MIT","_id":"@spinabot/brigade@1.11.1","maintainers":[{"name":"dev-spinabot","email":"bhasvanth02@gmail.com"},{"name":"spinabot-labs","email":"npm@spinabot.com"}],"homepage":"https://brigade.spinabot.com","bugs":{"url":"https://github.com/spinabot/brigade/issues","email":"hello@brigade-agent.ai"},"bin":{"brigade":"brigade.mjs"},"dist":{"shasum":"ddc229a13699bf4ec39de37918d66090f3c477ba","tarball":"https://registry.npmjs.org/@spinabot/brigade/-/brigade-1.11.1.tgz","fileCount":2621,"integrity":"sha512-pe0kcUm4wHFMJyBGf4CSGhaEAaa+xG+9LUASiRkGzUZexp92wc5yWwmGwUeYIJP8aHXuwYNvpxzCVabuTy5J9Q==","signatures":[{"sig":"MEYCIQCHIVjnNIydIDYLGWV+4+O6sCGROJhs91jigEjRsrru4wIhAL/7fVo+gM75td/wsw6lOF4XZSscrygaO+/6/9EGLf2V","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spinabot%2fbrigade@1.11.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":19416953},"main":"dist/entry.js","type":"module","types":"./dist/entry.d.ts","engines":{"node":">=22.12"},"exports":{".":"./brigade.mjs","./channel-sdk":{"types":"./dist/channel-sdk.d.ts","import":"./dist/channel-sdk.js"},"./package.json":"./package.json","./extension-sdk":{"types":"./dist/extension-sdk.d.ts","import":"./dist/extension-sdk.js"}},"gitHead":"b811e882e77cb756a95a021f9354877741a69dbd","scripts":{"wa":"node scripts/run-brigade.mjs channels status --channel whatsapp","dev":"node scripts/run-brigade.mjs","tui":"node scripts/run-brigade.mjs tui","logs":"node scripts/run-brigade.mjs logs","test":"node scripts/run-tests.mjs","agent":"node scripts/run-brigade.mjs agent","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","build":"tsc -p tsconfig.build.json","clean":"node -e \"import('node:fs').then(fs => fs.rmSync('dist', { recursive: true, force: true }))\"","start":"node scripts/run-brigade.mjs","store":"node scripts/run-brigade.mjs store","watch":"tsx --watch src/entry.ts","agents":"node scripts/run-brigade.mjs agents","backup":"node scripts/run-brigade.mjs backup create","doctor":"node scripts/run-brigade.mjs doctor","expose":"node scripts/run-brigade.mjs expose","skills":"node scripts/run-brigade.mjs skills list","status":"node scripts/run-brigade.mjs status","update":"node scripts/run-brigade.mjs update","brigade":"node brigade.mjs","connect":"node scripts/run-brigade.mjs connect","dev:tsx":"tsx src/entry.ts","gateway":"node scripts/run-brigade.mjs gateway","onboard":"node scripts/run-brigade.mjs onboard","pairing":"node scripts/run-brigade.mjs pairing list --channel whatsapp","prepack":"npm run build","tui:bin":"node brigade.mjs tui","upgrade":"node scripts/run-brigade.mjs upgrade","wa:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels":"node scripts/run-brigade.mjs channels","sessions":"node scripts/run-brigade.mjs sessions list","telegram":"node scripts/run-brigade.mjs channels status --channel telegram","wa:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","agent:bin":"node brigade.mjs agent","exec:list":"node scripts/run-brigade.mjs exec list","postbuild":"node scripts/build-done.mjs","tui:watch":"tsx --watch src/entry.ts tui","typecheck":"tsc -p tsconfig.json --noEmit","wa:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","wa:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","agents:add":"node scripts/run-brigade.mjs agents add","agents:bin":"node brigade.mjs agents","convex:dev":"node scripts/install-convex.mjs && node scripts/convex-dev.mjs","doctor:bin":"node brigade.mjs doctor","extensions":"node scripts/run-brigade.mjs extensions list","status:bin":"node brigade.mjs status","store:mode":"node scripts/run-brigade.mjs store mode show","update:bin":"node brigade.mjs update","agent:watch":"tsx --watch src/entry.ts agent","agents:bind":"node scripts/run-brigade.mjs agents bind","agents:list":"node scripts/run-brigade.mjs agents list","build:watch":"tsc -p tsconfig.build.json --watch","config:file":"node scripts/run-brigade.mjs config file","config:list":"node scripts/run-brigade.mjs config list","connect:bin":"node brigade.mjs connect","convex:push":"node scripts/convex-push.mjs","doctor:json":"node scripts/run-brigade.mjs doctor --json","expose:stop":"node scripts/run-brigade.mjs expose stop","gateway:bin":"node brigade.mjs gateway","logs:follow":"node scripts/run-brigade.mjs logs --follow","onboard:bin":"node brigade.mjs onboard","postinstall":"node scripts/brand-oauth-page.mjs","skills:info":"node scripts/run-brigade.mjs skills info","skills:list":"node scripts/run-brigade.mjs skills list","status:json":"node scripts/run-brigade.mjs status --json","store:reset":"node scripts/run-brigade.mjs store reset","upgrade:bin":"node brigade.mjs upgrade","channels:add":"node scripts/run-brigade.mjs channels add","gateway:stop":"node scripts/run-brigade.mjs gateway stop","pairing:list":"node scripts/run-brigade.mjs pairing list --channel whatsapp","update:check":"node scripts/run-brigade.mjs update --check","agents:delete":"node scripts/run-brigade.mjs agents delete","agents:unbind":"node scripts/run-brigade.mjs agents unbind","backup:create":"node scripts/run-brigade.mjs backup create","backup:verify":"node scripts/run-brigade.mjs backup verify","channels:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels:list":"node scripts/run-brigade.mjs channels list","config:schema":"node scripts/run-brigade.mjs config schema","connect:watch":"tsx --watch src/entry.ts connect","doctor:strict":"node scripts/run-brigade.mjs doctor --strict","expose:status":"node scripts/run-brigade.mjs expose status","gateway:watch":"tsx --watch src/entry.ts gateway","onboard:watch":"tsx --watch src/entry.ts onboard","secrets:audit":"node scripts/run-brigade.mjs secrets audit","sessions:list":"node scripts/run-brigade.mjs sessions list","store:migrate":"node scripts/run-brigade.mjs store migrate","backup:restore":"node scripts/run-brigade.mjs backup restore","channels:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","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","convex:install":"node scripts/install-convex.mjs","extensions:add":"node scripts/run-brigade.mjs extensions add","gateway:status":"node scripts/run-brigade.mjs gateway status","pairing:revoke":"node scripts/run-brigade.mjs pairing revoke --channel whatsapp","store:mode:set":"node scripts/run-brigade.mjs store mode set","telegram:allow":"node scripts/run-brigade.mjs channels allow list --channel telegram","telegram:token":"node scripts/run-brigade.mjs channels add --channel telegram","agents:bindings":"node scripts/run-brigade.mjs agents bindings","channels:enable":"node scripts/run-brigade.mjs channels enable --channel whatsapp","channels:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","channels:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","config:validate":"node scripts/run-brigade.mjs config validate","extensions:init":"node scripts/run-brigade.mjs extensions init","extensions:list":"node scripts/run-brigade.mjs extensions list","gateway:install":"node scripts/run-brigade.mjs gateway install","gateway:restart":"node scripts/run-brigade.mjs gateway restart","pairing:approve":"node scripts/run-brigade.mjs pairing approve --channel whatsapp","store:mode:show":"node scripts/run-brigade.mjs store mode show","telegram:enable":"node scripts/run-brigade.mjs channels enable --channel telegram","telegram:status":"node scripts/run-brigade.mjs channels status --channel telegram","bloody benchmark":"node scripts/run-brigade.mjs bloody benchmark","channels:disable":"node scripts/run-brigade.mjs channels disable --channel whatsapp","sessions:cleanup":"node scripts/run-brigade.mjs sessions cleanup","telegram:disable":"node scripts/run-brigade.mjs channels disable --channel telegram","extensions:doctor":"node scripts/run-brigade.mjs extensions doctor","extensions:remove":"node scripts/run-brigade.mjs extensions remove","gateway:uninstall":"node scripts/run-brigade.mjs gateway uninstall","smoke:strict-zero":"tsx scripts/strict-zero-smoke.mjs","store:reset:purge":"node scripts/run-brigade.mjs store reset --purge-local","channels:allow:add":"node scripts/run-brigade.mjs channels allow add --channel whatsapp","telegram:allow:add":"node scripts/run-brigade.mjs channels allow add --channel telegram","agents:set-identity":"node scripts/run-brigade.mjs agents set-identity","channels:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel whatsapp","telegram:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel telegram"},"_npmUser":{"name":"spinabot-labs","email":"npm@spinabot.com"},"overrides":{"ws":"$ws","exceljs":{"uuid":"^11.1.1"},"discord.js":{"undici":"^6.27.0"},"@discordjs/rest":{"undici":"^6.27.0"}},"repository":{"url":"git+https://github.com/spinabot/brigade.git","type":"git"},"_npmVersion":"11.17.0","description":"Brigade — your personal AI crew","directories":{},"_nodeVersion":"24.17.0","dependencies":{"ws":"^8.21.0","tar":"^7.5.15","zod":"^3.23.8","docx":"^9.7.1","jimp":"^1.6.1","jiti":"^2.6.1","yaml":"^2.9.0","chalk":"^5.3.0","json5":"^2.2.3","unpdf":"^1.6.2","cfonts":"^3.3.1","convex":"^1.40.0","croner":"^10.0.1","fflate":"^0.8.3","grammy":"^1.42.0","undici":"^7.25.0","exceljs":"^4.4.0","prompts":"^2.4.2","linkedom":"^0.18.12","commander":"^12.1.0","minimatch":"^10.2.5","pptxgenjs":"^4.0.1","discord.js":"^14.26.4","cli-highlight":"^2.1.11","@composio/core":"^0.10.0","@slack/web-api":"^7.17.0","@cantoo/pdf-lib":"^2.7.1","@grammyjs/types":"^3.21.0","playwright-core":"^1.59.0","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@pdf-lib/fontkit":"^1.1.1","https-proxy-agent":"^7.0.6","socks-proxy-agent":"^10.1.0","@slack/socket-mode":"^2.0.7","@mozilla/readability":"^0.6.0","@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@whiskeysockets/baileys":"7.0.0-rc13","@earendil-works/pi-agent-core":"0.79.9","@earendil-works/pi-coding-agent":"0.79.9","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","@types/ws":"^8.18.1","@types/tar":"^6.1.13","typescript":"^5.6.3","@types/node":"^22.10.0","@types/prompts":"^2.4.9","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2"},"_npmOperationalInternal":{"tmp":"tmp/brigade_1.11.1_1782427557096_0.7422205252275689","host":"s3://npm-registry-packages-npm-production"}},"1.11.2":{"name":"@spinabot/brigade","version":"1.11.2","keywords":["ai","agent","agents","ai-agent","cli","tui","llm","claude","openai","gemini","ollama","whatsapp","gateway","brigade"],"author":{"name":"Spinabot","email":"hello@brigade-agent.ai"},"license":"MIT","_id":"@spinabot/brigade@1.11.2","maintainers":[{"name":"dev-spinabot","email":"bhasvanth02@gmail.com"},{"name":"spinabot-labs","email":"npm@spinabot.com"}],"homepage":"https://brigade.spinabot.com","bugs":{"url":"https://github.com/spinabot/brigade/issues","email":"hello@brigade-agent.ai"},"bin":{"brigade":"brigade.mjs"},"dist":{"shasum":"ec40cb1803b2778aafd2d7b7ee6f8edbe73ea323","tarball":"https://registry.npmjs.org/@spinabot/brigade/-/brigade-1.11.2.tgz","fileCount":2621,"integrity":"sha512-yFll5pbZpwnNilh+DqfANTHO8cy0zRiB3nbyvrDak40nLhyUwFdP+cshxs3Y6jS/uFR9A2Oy5qWL0P17/d2hsQ==","signatures":[{"sig":"MEQCIBV6yqSgG/Lr8QxLMeqh2hdxuCPuJN5tHPpRYFZxR0N6AiAtYz7jPa2FBuFkayfLSM0uEEIZXw1PTxUuDwhKfneKvA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spinabot%2fbrigade@1.11.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":19417324},"main":"dist/entry.js","type":"module","types":"./dist/entry.d.ts","engines":{"node":">=22.12"},"exports":{".":"./brigade.mjs","./channel-sdk":{"types":"./dist/channel-sdk.d.ts","import":"./dist/channel-sdk.js"},"./package.json":"./package.json","./extension-sdk":{"types":"./dist/extension-sdk.d.ts","import":"./dist/extension-sdk.js"}},"gitHead":"aa8d55f00e6b2c9ae3d0a02767f5c27c2f92c370","scripts":{"wa":"node scripts/run-brigade.mjs channels status --channel whatsapp","dev":"node scripts/run-brigade.mjs","tui":"node scripts/run-brigade.mjs tui","logs":"node scripts/run-brigade.mjs logs","test":"node scripts/run-tests.mjs","agent":"node scripts/run-brigade.mjs agent","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","build":"tsc -p tsconfig.build.json","clean":"node -e \"import('node:fs').then(fs => fs.rmSync('dist', { recursive: true, force: true }))\"","start":"node scripts/run-brigade.mjs","store":"node scripts/run-brigade.mjs store","watch":"tsx --watch src/entry.ts","agents":"node scripts/run-brigade.mjs agents","backup":"node scripts/run-brigade.mjs backup create","doctor":"node scripts/run-brigade.mjs doctor","expose":"node scripts/run-brigade.mjs expose","skills":"node scripts/run-brigade.mjs skills list","status":"node scripts/run-brigade.mjs status","update":"node scripts/run-brigade.mjs update","brigade":"node brigade.mjs","connect":"node scripts/run-brigade.mjs connect","dev:tsx":"tsx src/entry.ts","gateway":"node scripts/run-brigade.mjs gateway","onboard":"node scripts/run-brigade.mjs onboard","pairing":"node scripts/run-brigade.mjs pairing list --channel whatsapp","prepack":"npm run build","tui:bin":"node brigade.mjs tui","upgrade":"node scripts/run-brigade.mjs upgrade","wa:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels":"node scripts/run-brigade.mjs channels","sessions":"node scripts/run-brigade.mjs sessions list","telegram":"node scripts/run-brigade.mjs channels status --channel telegram","wa:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","agent:bin":"node brigade.mjs agent","exec:list":"node scripts/run-brigade.mjs exec list","postbuild":"node scripts/build-done.mjs","tui:watch":"tsx --watch src/entry.ts tui","typecheck":"tsc -p tsconfig.json --noEmit","wa:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","wa:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","agents:add":"node scripts/run-brigade.mjs agents add","agents:bin":"node brigade.mjs agents","convex:dev":"node scripts/install-convex.mjs && node scripts/convex-dev.mjs","doctor:bin":"node brigade.mjs doctor","extensions":"node scripts/run-brigade.mjs extensions list","status:bin":"node brigade.mjs status","store:mode":"node scripts/run-brigade.mjs store mode show","update:bin":"node brigade.mjs update","agent:watch":"tsx --watch src/entry.ts agent","agents:bind":"node scripts/run-brigade.mjs agents bind","agents:list":"node scripts/run-brigade.mjs agents list","build:watch":"tsc -p tsconfig.build.json --watch","config:file":"node scripts/run-brigade.mjs config file","config:list":"node scripts/run-brigade.mjs config list","connect:bin":"node brigade.mjs connect","convex:push":"node scripts/convex-push.mjs","doctor:json":"node scripts/run-brigade.mjs doctor --json","expose:stop":"node scripts/run-brigade.mjs expose stop","gateway:bin":"node brigade.mjs gateway","logs:follow":"node scripts/run-brigade.mjs logs --follow","onboard:bin":"node brigade.mjs onboard","postinstall":"node scripts/brand-oauth-page.mjs","skills:info":"node scripts/run-brigade.mjs skills info","skills:list":"node scripts/run-brigade.mjs skills list","status:json":"node scripts/run-brigade.mjs status --json","store:reset":"node scripts/run-brigade.mjs store reset","upgrade:bin":"node brigade.mjs upgrade","channels:add":"node scripts/run-brigade.mjs channels add","gateway:stop":"node scripts/run-brigade.mjs gateway stop","pairing:list":"node scripts/run-brigade.mjs pairing list --channel whatsapp","update:check":"node scripts/run-brigade.mjs update --check","agents:delete":"node scripts/run-brigade.mjs agents delete","agents:unbind":"node scripts/run-brigade.mjs agents unbind","backup:create":"node scripts/run-brigade.mjs backup create","backup:verify":"node scripts/run-brigade.mjs backup verify","channels:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels:list":"node scripts/run-brigade.mjs channels list","config:schema":"node scripts/run-brigade.mjs config schema","connect:watch":"tsx --watch src/entry.ts connect","doctor:strict":"node scripts/run-brigade.mjs doctor --strict","expose:status":"node scripts/run-brigade.mjs expose status","gateway:watch":"tsx --watch src/entry.ts gateway","onboard:watch":"tsx --watch src/entry.ts onboard","secrets:audit":"node scripts/run-brigade.mjs secrets audit","sessions:list":"node scripts/run-brigade.mjs sessions list","store:migrate":"node scripts/run-brigade.mjs store migrate","backup:restore":"node scripts/run-brigade.mjs backup restore","channels:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","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","convex:install":"node scripts/install-convex.mjs","extensions:add":"node scripts/run-brigade.mjs extensions add","gateway:status":"node scripts/run-brigade.mjs gateway status","pairing:revoke":"node scripts/run-brigade.mjs pairing revoke --channel whatsapp","store:mode:set":"node scripts/run-brigade.mjs store mode set","telegram:allow":"node scripts/run-brigade.mjs channels allow list --channel telegram","telegram:token":"node scripts/run-brigade.mjs channels add --channel telegram","agents:bindings":"node scripts/run-brigade.mjs agents bindings","channels:enable":"node scripts/run-brigade.mjs channels enable --channel whatsapp","channels:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","channels:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","config:validate":"node scripts/run-brigade.mjs config validate","extensions:init":"node scripts/run-brigade.mjs extensions init","extensions:list":"node scripts/run-brigade.mjs extensions list","gateway:install":"node scripts/run-brigade.mjs gateway install","gateway:restart":"node scripts/run-brigade.mjs gateway restart","pairing:approve":"node scripts/run-brigade.mjs pairing approve --channel whatsapp","store:mode:show":"node scripts/run-brigade.mjs store mode show","telegram:enable":"node scripts/run-brigade.mjs channels enable --channel telegram","telegram:status":"node scripts/run-brigade.mjs channels status --channel telegram","bloody benchmark":"node scripts/run-brigade.mjs bloody benchmark","channels:disable":"node scripts/run-brigade.mjs channels disable --channel whatsapp","sessions:cleanup":"node scripts/run-brigade.mjs sessions cleanup","telegram:disable":"node scripts/run-brigade.mjs channels disable --channel telegram","extensions:doctor":"node scripts/run-brigade.mjs extensions doctor","extensions:remove":"node scripts/run-brigade.mjs extensions remove","gateway:uninstall":"node scripts/run-brigade.mjs gateway uninstall","smoke:strict-zero":"tsx scripts/strict-zero-smoke.mjs","store:reset:purge":"node scripts/run-brigade.mjs store reset --purge-local","channels:allow:add":"node scripts/run-brigade.mjs channels allow add --channel whatsapp","telegram:allow:add":"node scripts/run-brigade.mjs channels allow add --channel telegram","agents:set-identity":"node scripts/run-brigade.mjs agents set-identity","channels:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel whatsapp","telegram:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel telegram"},"_npmUser":{"name":"spinabot-labs","email":"npm@spinabot.com"},"overrides":{"ws":"$ws","exceljs":{"uuid":"^11.1.1"},"discord.js":{"undici":"^6.27.0"},"@discordjs/rest":{"undici":"^6.27.0"}},"repository":{"url":"git+https://github.com/spinabot/brigade.git","type":"git"},"_npmVersion":"11.17.0","description":"Brigade — your personal AI crew","directories":{},"_nodeVersion":"24.17.0","dependencies":{"ws":"^8.21.0","tar":"^7.5.15","zod":"^3.23.8","docx":"^9.7.1","jimp":"^1.6.1","jiti":"^2.6.1","yaml":"^2.9.0","chalk":"^5.3.0","json5":"^2.2.3","unpdf":"^1.6.2","cfonts":"^3.3.1","convex":"^1.40.0","croner":"^10.0.1","fflate":"^0.8.3","grammy":"^1.42.0","undici":"^7.25.0","exceljs":"^4.4.0","prompts":"^2.4.2","linkedom":"^0.18.12","commander":"^12.1.0","minimatch":"^10.2.5","pptxgenjs":"^4.0.1","discord.js":"^14.26.4","cli-highlight":"^2.1.11","@composio/core":"^0.10.0","@slack/web-api":"^7.17.0","@cantoo/pdf-lib":"^2.7.1","@grammyjs/types":"^3.21.0","playwright-core":"^1.59.0","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@pdf-lib/fontkit":"^1.1.1","https-proxy-agent":"^7.0.6","socks-proxy-agent":"^10.1.0","@slack/socket-mode":"^2.0.7","@mozilla/readability":"^0.6.0","@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@whiskeysockets/baileys":"7.0.0-rc13","@earendil-works/pi-agent-core":"0.79.9","@earendil-works/pi-coding-agent":"0.79.9","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","@types/ws":"^8.18.1","@types/tar":"^6.1.13","typescript":"^5.6.3","@types/node":"^22.10.0","@types/prompts":"^2.4.9","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2"},"_npmOperationalInternal":{"tmp":"tmp/brigade_1.11.2_1782428534832_0.4587189570918222","host":"s3://npm-registry-packages-npm-production"}},"1.12.0":{"name":"@spinabot/brigade","version":"1.12.0","keywords":["ai","agent","agents","ai-agent","cli","tui","llm","claude","openai","gemini","ollama","whatsapp","gateway","brigade"],"author":{"name":"Spinabot","email":"hello@brigade-agent.ai"},"license":"MIT","_id":"@spinabot/brigade@1.12.0","maintainers":[{"name":"dev-spinabot","email":"bhasvanth02@gmail.com"},{"name":"spinabot-labs","email":"npm@spinabot.com"}],"homepage":"https://brigade.spinabot.com","bugs":{"url":"https://github.com/spinabot/brigade/issues","email":"hello@brigade-agent.ai"},"bin":{"brigade":"brigade.mjs"},"dist":{"shasum":"87d3a7f6ea17982fecf4b2413ab3de345e5d478e","tarball":"https://registry.npmjs.org/@spinabot/brigade/-/brigade-1.12.0.tgz","fileCount":2645,"integrity":"sha512-rSxzYk/+Tusjx+eBSD1vgeFVN35q+/Pi+1PRBvMTl6R48UXTssMoBF3QaHebCODopIPKZcr6k9CTpjgixKJ9aQ==","signatures":[{"sig":"MEUCIQC9WDJrkvXKOdOB3em6W+CKsWb2cXn51Y5HjFFxdNFNOwIgPt+KUS8oht19640+sra0IpuUvSk8yLsye4U36+iJj6A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spinabot%2fbrigade@1.12.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":19656749},"main":"dist/entry.js","type":"module","types":"./dist/entry.d.ts","engines":{"node":">=22.12"},"exports":{".":"./brigade.mjs","./channel-sdk":{"types":"./dist/channel-sdk.d.ts","import":"./dist/channel-sdk.js"},"./package.json":"./package.json","./extension-sdk":{"types":"./dist/extension-sdk.d.ts","import":"./dist/extension-sdk.js"}},"gitHead":"9c3b72e2a4be9508e3f9c034ffb2124166db982e","scripts":{"wa":"node scripts/run-brigade.mjs channels status --channel whatsapp","dev":"node scripts/run-brigade.mjs","tui":"node scripts/run-brigade.mjs tui","logs":"node scripts/run-brigade.mjs logs","test":"node scripts/run-tests.mjs","agent":"node scripts/run-brigade.mjs agent","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","build":"tsc -p tsconfig.build.json","clean":"node -e \"import('node:fs').then(fs => fs.rmSync('dist', { recursive: true, force: true }))\"","start":"node scripts/run-brigade.mjs","store":"node scripts/run-brigade.mjs store","watch":"tsx --watch src/entry.ts","agents":"node scripts/run-brigade.mjs agents","backup":"node scripts/run-brigade.mjs backup create","doctor":"node scripts/run-brigade.mjs doctor","expose":"node scripts/run-brigade.mjs expose","skills":"node scripts/run-brigade.mjs skills list","status":"node scripts/run-brigade.mjs status","update":"node scripts/run-brigade.mjs update","brigade":"node brigade.mjs","connect":"node scripts/run-brigade.mjs connect","dev:tsx":"tsx src/entry.ts","gateway":"node scripts/run-brigade.mjs gateway","onboard":"node scripts/run-brigade.mjs onboard","pairing":"node scripts/run-brigade.mjs pairing list --channel whatsapp","prepack":"npm run build","tui:bin":"node brigade.mjs tui","upgrade":"node scripts/run-brigade.mjs upgrade","wa:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels":"node scripts/run-brigade.mjs channels","sessions":"node scripts/run-brigade.mjs sessions list","telegram":"node scripts/run-brigade.mjs channels status --channel telegram","wa:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","agent:bin":"node brigade.mjs agent","exec:list":"node scripts/run-brigade.mjs exec list","postbuild":"node scripts/build-done.mjs","tui:watch":"tsx --watch src/entry.ts tui","typecheck":"tsc -p tsconfig.json --noEmit","wa:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","wa:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","agents:add":"node scripts/run-brigade.mjs agents add","agents:bin":"node brigade.mjs agents","convex:dev":"node scripts/install-convex.mjs && node scripts/convex-dev.mjs","doctor:bin":"node brigade.mjs doctor","extensions":"node scripts/run-brigade.mjs extensions list","status:bin":"node brigade.mjs status","store:mode":"node scripts/run-brigade.mjs store mode show","update:bin":"node brigade.mjs update","agent:watch":"tsx --watch src/entry.ts agent","agents:bind":"node scripts/run-brigade.mjs agents bind","agents:list":"node scripts/run-brigade.mjs agents list","build:watch":"tsc -p tsconfig.build.json --watch","config:file":"node scripts/run-brigade.mjs config file","config:list":"node scripts/run-brigade.mjs config list","connect:bin":"node brigade.mjs connect","convex:push":"node scripts/convex-push.mjs","doctor:json":"node scripts/run-brigade.mjs doctor --json","expose:stop":"node scripts/run-brigade.mjs expose stop","gateway:bin":"node brigade.mjs gateway","logs:follow":"node scripts/run-brigade.mjs logs --follow","onboard:bin":"node brigade.mjs onboard","postinstall":"node scripts/brand-oauth-page.mjs","skills:info":"node scripts/run-brigade.mjs skills info","skills:list":"node scripts/run-brigade.mjs skills list","status:json":"node scripts/run-brigade.mjs status --json","store:reset":"node scripts/run-brigade.mjs store reset","upgrade:bin":"node brigade.mjs upgrade","channels:add":"node scripts/run-brigade.mjs channels add","gateway:stop":"node scripts/run-brigade.mjs gateway stop","pairing:list":"node scripts/run-brigade.mjs pairing list --channel whatsapp","update:check":"node scripts/run-brigade.mjs update --check","agents:delete":"node scripts/run-brigade.mjs agents delete","agents:unbind":"node scripts/run-brigade.mjs agents unbind","backup:create":"node scripts/run-brigade.mjs backup create","backup:verify":"node scripts/run-brigade.mjs backup verify","channels:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels:list":"node scripts/run-brigade.mjs channels list","config:schema":"node scripts/run-brigade.mjs config schema","connect:watch":"tsx --watch src/entry.ts connect","doctor:strict":"node scripts/run-brigade.mjs doctor --strict","expose:status":"node scripts/run-brigade.mjs expose status","gateway:watch":"tsx --watch src/entry.ts gateway","onboard:watch":"tsx --watch src/entry.ts onboard","secrets:audit":"node scripts/run-brigade.mjs secrets audit","sessions:list":"node scripts/run-brigade.mjs sessions list","store:migrate":"node scripts/run-brigade.mjs store migrate","backup:restore":"node scripts/run-brigade.mjs backup restore","channels:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","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","convex:install":"node scripts/install-convex.mjs","extensions:add":"node scripts/run-brigade.mjs extensions add","gateway:status":"node scripts/run-brigade.mjs gateway status","pairing:revoke":"node scripts/run-brigade.mjs pairing revoke --channel whatsapp","store:mode:set":"node scripts/run-brigade.mjs store mode set","telegram:allow":"node scripts/run-brigade.mjs channels allow list --channel telegram","telegram:token":"node scripts/run-brigade.mjs channels add --channel telegram","agents:bindings":"node scripts/run-brigade.mjs agents bindings","channels:enable":"node scripts/run-brigade.mjs channels enable --channel whatsapp","channels:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","channels:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","config:validate":"node scripts/run-brigade.mjs config validate","extensions:init":"node scripts/run-brigade.mjs extensions init","extensions:list":"node scripts/run-brigade.mjs extensions list","gateway:install":"node scripts/run-brigade.mjs gateway install","gateway:restart":"node scripts/run-brigade.mjs gateway restart","pairing:approve":"node scripts/run-brigade.mjs pairing approve --channel whatsapp","store:mode:show":"node scripts/run-brigade.mjs store mode show","telegram:enable":"node scripts/run-brigade.mjs channels enable --channel telegram","telegram:status":"node scripts/run-brigade.mjs channels status --channel telegram","bloody benchmark":"node scripts/run-brigade.mjs bloody benchmark","channels:disable":"node scripts/run-brigade.mjs channels disable --channel whatsapp","sessions:cleanup":"node scripts/run-brigade.mjs sessions cleanup","telegram:disable":"node scripts/run-brigade.mjs channels disable --channel telegram","extensions:doctor":"node scripts/run-brigade.mjs extensions doctor","extensions:remove":"node scripts/run-brigade.mjs extensions remove","gateway:uninstall":"node scripts/run-brigade.mjs gateway uninstall","smoke:strict-zero":"tsx scripts/strict-zero-smoke.mjs","store:reset:purge":"node scripts/run-brigade.mjs store reset --purge-local","channels:allow:add":"node scripts/run-brigade.mjs channels allow add --channel whatsapp","telegram:allow:add":"node scripts/run-brigade.mjs channels allow add --channel telegram","agents:set-identity":"node scripts/run-brigade.mjs agents set-identity","channels:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel whatsapp","telegram:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel telegram"},"_npmUser":{"name":"spinabot-labs","email":"npm@spinabot.com"},"overrides":{"ws":"$ws","exceljs":{"uuid":"^11.1.1"},"discord.js":{"undici":"^6.27.0"},"@discordjs/rest":{"undici":"^6.27.0"}},"repository":{"url":"git+https://github.com/spinabot/brigade.git","type":"git"},"_npmVersion":"11.17.0","description":"Brigade — your personal AI crew","directories":{},"_nodeVersion":"24.17.0","dependencies":{"ws":"^8.21.0","tar":"^7.5.15","zod":"^3.23.8","docx":"^9.7.1","jimp":"^1.6.1","jiti":"^2.6.1","yaml":"^2.9.0","chalk":"^5.3.0","json5":"^2.2.3","unpdf":"^1.6.2","cfonts":"^3.3.1","convex":"^1.40.0","croner":"^10.0.1","fflate":"^0.8.3","grammy":"^1.42.0","undici":"^7.25.0","exceljs":"^4.4.0","prompts":"^2.4.2","linkedom":"^0.18.12","commander":"^12.1.0","minimatch":"^10.2.5","pptxgenjs":"^4.0.1","discord.js":"^14.26.4","cli-highlight":"^2.1.11","@composio/core":"^0.10.0","@slack/web-api":"^7.17.0","@cantoo/pdf-lib":"^2.7.1","@grammyjs/types":"^3.21.0","playwright-core":"^1.59.0","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@pdf-lib/fontkit":"^1.1.1","https-proxy-agent":"^7.0.6","socks-proxy-agent":"^10.1.0","@slack/socket-mode":"^2.0.7","@mozilla/readability":"^0.6.0","@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@whiskeysockets/baileys":"7.0.0-rc13","@earendil-works/pi-agent-core":"0.79.9","@earendil-works/pi-coding-agent":"0.79.9","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","@types/ws":"^8.18.1","@types/tar":"^6.1.13","typescript":"^5.6.3","@types/node":"^22.10.0","@types/prompts":"^2.4.9","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2"},"_npmOperationalInternal":{"tmp":"tmp/brigade_1.12.0_1782479506883_0.3260840245452479","host":"s3://npm-registry-packages-npm-production"}},"1.13.0":{"name":"@spinabot/brigade","version":"1.13.0","keywords":["ai","agent","agents","ai-agent","cli","tui","llm","claude","openai","gemini","ollama","whatsapp","gateway","brigade"],"author":{"name":"Spinabot","email":"hello@brigade-agent.ai"},"license":"MIT","_id":"@spinabot/brigade@1.13.0","maintainers":[{"name":"dev-spinabot","email":"bhasvanth02@gmail.com"},{"name":"spinabot-labs","email":"npm@spinabot.com"}],"homepage":"https://brigade.spinabot.com","bugs":{"url":"https://github.com/spinabot/brigade/issues","email":"hello@brigade-agent.ai"},"bin":{"brigade":"brigade.mjs"},"dist":{"shasum":"11179227df2c29f32ff540d90477b22ca1985789","tarball":"https://registry.npmjs.org/@spinabot/brigade/-/brigade-1.13.0.tgz","fileCount":2649,"integrity":"sha512-6p7xciJvDQVAalDao3BD5d/ks4GRUfa8ghHmUVGfa0I7KD8ylNNZEoCMXWGmy/DJfl4XP6xgQnXGYTPOZbCniA==","signatures":[{"sig":"MEQCIAY7h3Ld/NUR7BeDL4eB7PI+Fv/CNX7NsZhQn7HGASZjAiAmvefEi1BkK0Op0EMzylKKldU21vltlpVv6VNpaRDvuQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spinabot%2fbrigade@1.13.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":19695813},"main":"dist/entry.js","type":"module","types":"./dist/entry.d.ts","engines":{"node":">=22.12"},"exports":{".":"./brigade.mjs","./channel-sdk":{"types":"./dist/channel-sdk.d.ts","import":"./dist/channel-sdk.js"},"./package.json":"./package.json","./extension-sdk":{"types":"./dist/extension-sdk.d.ts","import":"./dist/extension-sdk.js"}},"gitHead":"ab1a71d75d3e570070899e5e4d4552506ad4cd4b","scripts":{"wa":"node scripts/run-brigade.mjs channels status --channel whatsapp","dev":"node scripts/run-brigade.mjs","tui":"node scripts/run-brigade.mjs tui","logs":"node scripts/run-brigade.mjs logs","test":"node scripts/run-tests.mjs","agent":"node scripts/run-brigade.mjs agent","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","build":"tsc -p tsconfig.build.json","clean":"node -e \"import('node:fs').then(fs => fs.rmSync('dist', { recursive: true, force: true }))\"","start":"node scripts/run-brigade.mjs","store":"node scripts/run-brigade.mjs store","watch":"tsx --watch src/entry.ts","agents":"node scripts/run-brigade.mjs agents","backup":"node scripts/run-brigade.mjs backup create","doctor":"node scripts/run-brigade.mjs doctor","expose":"node scripts/run-brigade.mjs expose","skills":"node scripts/run-brigade.mjs skills list","status":"node scripts/run-brigade.mjs status","update":"node scripts/run-brigade.mjs update","brigade":"node brigade.mjs","connect":"node scripts/run-brigade.mjs connect","dev:tsx":"tsx src/entry.ts","gateway":"node scripts/run-brigade.mjs gateway","onboard":"node scripts/run-brigade.mjs onboard","pairing":"node scripts/run-brigade.mjs pairing list --channel whatsapp","prepack":"npm run build","tui:bin":"node brigade.mjs tui","upgrade":"node scripts/run-brigade.mjs upgrade","wa:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels":"node scripts/run-brigade.mjs channels","sessions":"node scripts/run-brigade.mjs sessions list","telegram":"node scripts/run-brigade.mjs channels status --channel telegram","wa:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","agent:bin":"node brigade.mjs agent","exec:list":"node scripts/run-brigade.mjs exec list","postbuild":"node scripts/build-done.mjs","tui:watch":"tsx --watch src/entry.ts tui","typecheck":"tsc -p tsconfig.json --noEmit","wa:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","wa:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","agents:add":"node scripts/run-brigade.mjs agents add","agents:bin":"node brigade.mjs agents","convex:dev":"node scripts/install-convex.mjs && node scripts/convex-dev.mjs","doctor:bin":"node brigade.mjs doctor","extensions":"node scripts/run-brigade.mjs extensions list","status:bin":"node brigade.mjs status","store:mode":"node scripts/run-brigade.mjs store mode show","update:bin":"node brigade.mjs update","agent:watch":"tsx --watch src/entry.ts agent","agents:bind":"node scripts/run-brigade.mjs agents bind","agents:list":"node scripts/run-brigade.mjs agents list","build:watch":"tsc -p tsconfig.build.json --watch","config:file":"node scripts/run-brigade.mjs config file","config:list":"node scripts/run-brigade.mjs config list","connect:bin":"node brigade.mjs connect","convex:push":"node scripts/convex-push.mjs","doctor:json":"node scripts/run-brigade.mjs doctor --json","expose:stop":"node scripts/run-brigade.mjs expose stop","gateway:bin":"node brigade.mjs gateway","logs:follow":"node scripts/run-brigade.mjs logs --follow","onboard:bin":"node brigade.mjs onboard","postinstall":"node scripts/brand-oauth-page.mjs","skills:info":"node scripts/run-brigade.mjs skills info","skills:list":"node scripts/run-brigade.mjs skills list","status:json":"node scripts/run-brigade.mjs status --json","store:reset":"node scripts/run-brigade.mjs store reset","upgrade:bin":"node brigade.mjs upgrade","channels:add":"node scripts/run-brigade.mjs channels add","gateway:stop":"node scripts/run-brigade.mjs gateway stop","pairing:list":"node scripts/run-brigade.mjs pairing list --channel whatsapp","update:check":"node scripts/run-brigade.mjs update --check","agents:delete":"node scripts/run-brigade.mjs agents delete","agents:unbind":"node scripts/run-brigade.mjs agents unbind","backup:create":"node scripts/run-brigade.mjs backup create","backup:verify":"node scripts/run-brigade.mjs backup verify","channels:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels:list":"node scripts/run-brigade.mjs channels list","config:schema":"node scripts/run-brigade.mjs config schema","connect:watch":"tsx --watch src/entry.ts connect","doctor:strict":"node scripts/run-brigade.mjs doctor --strict","expose:status":"node scripts/run-brigade.mjs expose status","gateway:watch":"tsx --watch src/entry.ts gateway","onboard:watch":"tsx --watch src/entry.ts onboard","secrets:audit":"node scripts/run-brigade.mjs secrets audit","sessions:list":"node scripts/run-brigade.mjs sessions list","store:migrate":"node scripts/run-brigade.mjs store migrate","backup:restore":"node scripts/run-brigade.mjs backup restore","channels:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","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","convex:install":"node scripts/install-convex.mjs","extensions:add":"node scripts/run-brigade.mjs extensions add","gateway:status":"node scripts/run-brigade.mjs gateway status","pairing:revoke":"node scripts/run-brigade.mjs pairing revoke --channel whatsapp","store:mode:set":"node scripts/run-brigade.mjs store mode set","telegram:allow":"node scripts/run-brigade.mjs channels allow list --channel telegram","telegram:token":"node scripts/run-brigade.mjs channels add --channel telegram","agents:bindings":"node scripts/run-brigade.mjs agents bindings","channels:enable":"node scripts/run-brigade.mjs channels enable --channel whatsapp","channels:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","channels:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","config:validate":"node scripts/run-brigade.mjs config validate","extensions:init":"node scripts/run-brigade.mjs extensions init","extensions:list":"node scripts/run-brigade.mjs extensions list","gateway:install":"node scripts/run-brigade.mjs gateway install","gateway:restart":"node scripts/run-brigade.mjs gateway restart","pairing:approve":"node scripts/run-brigade.mjs pairing approve --channel whatsapp","store:mode:show":"node scripts/run-brigade.mjs store mode show","telegram:enable":"node scripts/run-brigade.mjs channels enable --channel telegram","telegram:status":"node scripts/run-brigade.mjs channels status --channel telegram","bloody benchmark":"node scripts/run-brigade.mjs bloody benchmark","channels:disable":"node scripts/run-brigade.mjs channels disable --channel whatsapp","sessions:cleanup":"node scripts/run-brigade.mjs sessions cleanup","telegram:disable":"node scripts/run-brigade.mjs channels disable --channel telegram","extensions:doctor":"node scripts/run-brigade.mjs extensions doctor","extensions:remove":"node scripts/run-brigade.mjs extensions remove","gateway:uninstall":"node scripts/run-brigade.mjs gateway uninstall","smoke:strict-zero":"tsx scripts/strict-zero-smoke.mjs","store:reset:purge":"node scripts/run-brigade.mjs store reset --purge-local","channels:allow:add":"node scripts/run-brigade.mjs channels allow add --channel whatsapp","telegram:allow:add":"node scripts/run-brigade.mjs channels allow add --channel telegram","agents:set-identity":"node scripts/run-brigade.mjs agents set-identity","channels:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel whatsapp","telegram:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel telegram"},"_npmUser":{"name":"spinabot-labs","email":"npm@spinabot.com"},"overrides":{"ws":"$ws","exceljs":{"uuid":"^11.1.1"},"discord.js":{"undici":"^6.27.0"},"@discordjs/rest":{"undici":"^6.27.0"}},"repository":{"url":"git+https://github.com/spinabot/brigade.git","type":"git"},"_npmVersion":"11.17.0","description":"Brigade — your personal AI crew","directories":{},"_nodeVersion":"24.17.0","dependencies":{"ws":"^8.21.0","tar":"^7.5.15","zod":"^3.23.8","docx":"^9.7.1","jimp":"^1.6.1","jiti":"^2.6.1","yaml":"^2.9.0","chalk":"^5.3.0","json5":"^2.2.3","unpdf":"^1.6.2","cfonts":"^3.3.1","convex":"^1.40.0","croner":"^10.0.1","fflate":"^0.8.3","grammy":"^1.42.0","undici":"^7.25.0","exceljs":"^4.4.0","prompts":"^2.4.2","linkedom":"^0.18.12","commander":"^12.1.0","minimatch":"^10.2.5","pptxgenjs":"^4.0.1","discord.js":"^14.26.4","cli-highlight":"^2.1.11","@composio/core":"^0.10.0","@slack/web-api":"^7.17.0","@cantoo/pdf-lib":"^2.7.1","@grammyjs/types":"^3.21.0","playwright-core":"^1.59.0","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@pdf-lib/fontkit":"^1.1.1","https-proxy-agent":"^7.0.6","socks-proxy-agent":"^10.1.0","@slack/socket-mode":"^2.0.7","@mozilla/readability":"^0.6.0","@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@whiskeysockets/baileys":"7.0.0-rc13","@earendil-works/pi-agent-core":"0.79.9","@earendil-works/pi-coding-agent":"0.79.9","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","@types/ws":"^8.18.1","@types/tar":"^6.1.13","typescript":"^5.6.3","@types/node":"^22.10.0","@types/prompts":"^2.4.9","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2"},"_npmOperationalInternal":{"tmp":"tmp/brigade_1.13.0_1782487331304_0.9420153731215766","host":"s3://npm-registry-packages-npm-production"}},"1.14.0":{"name":"@spinabot/brigade","version":"1.14.0","keywords":["ai","agent","agents","ai-agent","cli","tui","llm","claude","openai","gemini","ollama","whatsapp","gateway","brigade"],"author":{"name":"Spinabot","email":"hello@brigade-agent.ai"},"license":"MIT","_id":"@spinabot/brigade@1.14.0","maintainers":[{"name":"dev-spinabot","email":"bhasvanth02@gmail.com"},{"name":"spinabot-labs","email":"npm@spinabot.com"}],"homepage":"https://brigade.spinabot.com","bugs":{"url":"https://github.com/spinabot/brigade/issues","email":"hello@brigade-agent.ai"},"bin":{"brigade":"brigade.mjs"},"dist":{"shasum":"e3484d533294f8dd957c54aa79e3b7f564449646","tarball":"https://registry.npmjs.org/@spinabot/brigade/-/brigade-1.14.0.tgz","fileCount":2693,"integrity":"sha512-gtHMMLmUbZ1fnbnd82YLqGaOI4VlV81CSfKRXeM/tK9+P3c0n4kq8u50JFssjEP0FCYxMEDazErcahZsWmjQ8A==","signatures":[{"sig":"MEYCIQCx7QX4V8/NBKqE67Hg7+UIEYxsfBtbwZ94QD/65IGklgIhAIcdZhGKwJpLLvM1cMERDiPcgcszDXzX0ybul5hb92+0","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spinabot%2fbrigade@1.14.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":19805435},"main":"dist/entry.js","type":"module","types":"./dist/entry.d.ts","engines":{"node":">=22.12"},"exports":{".":"./brigade.mjs","./channel-sdk":{"types":"./dist/channel-sdk.d.ts","import":"./dist/channel-sdk.js"},"./package.json":"./package.json","./extension-sdk":{"types":"./dist/extension-sdk.d.ts","import":"./dist/extension-sdk.js"}},"gitHead":"0bb31be61f20c7c0a1de17024a71ea185306c42a","scripts":{"wa":"node scripts/run-brigade.mjs channels status --channel whatsapp","dev":"node scripts/run-brigade.mjs","tui":"node scripts/run-brigade.mjs tui","logs":"node scripts/run-brigade.mjs logs","test":"node scripts/run-tests.mjs","agent":"node scripts/run-brigade.mjs agent","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","build":"tsc -p tsconfig.build.json","clean":"node -e \"import('node:fs').then(fs => fs.rmSync('dist', { recursive: true, force: true }))\"","start":"node scripts/run-brigade.mjs","store":"node scripts/run-brigade.mjs store","watch":"tsx --watch src/entry.ts","agents":"node scripts/run-brigade.mjs agents","backup":"node scripts/run-brigade.mjs backup create","doctor":"node scripts/run-brigade.mjs doctor","expose":"node scripts/run-brigade.mjs expose","skills":"node scripts/run-brigade.mjs skills list","status":"node scripts/run-brigade.mjs status","update":"node scripts/run-brigade.mjs update","brigade":"node brigade.mjs","connect":"node scripts/run-brigade.mjs connect","dev:tsx":"tsx src/entry.ts","gateway":"node scripts/run-brigade.mjs gateway","onboard":"node scripts/run-brigade.mjs onboard","pairing":"node scripts/run-brigade.mjs pairing list --channel whatsapp","prepack":"npm run build","tui:bin":"node brigade.mjs tui","upgrade":"node scripts/run-brigade.mjs upgrade","wa:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels":"node scripts/run-brigade.mjs channels","sessions":"node scripts/run-brigade.mjs sessions list","telegram":"node scripts/run-brigade.mjs channels status --channel telegram","wa:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","agent:bin":"node brigade.mjs agent","exec:list":"node scripts/run-brigade.mjs exec list","postbuild":"node scripts/build-done.mjs","tui:watch":"tsx --watch src/entry.ts tui","typecheck":"tsc -p tsconfig.json --noEmit","wa:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","wa:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","agents:add":"node scripts/run-brigade.mjs agents add","agents:bin":"node brigade.mjs agents","convex:dev":"node scripts/install-convex.mjs && node scripts/convex-dev.mjs","doctor:bin":"node brigade.mjs doctor","extensions":"node scripts/run-brigade.mjs extensions list","status:bin":"node brigade.mjs status","store:mode":"node scripts/run-brigade.mjs store mode show","update:bin":"node brigade.mjs update","agent:watch":"tsx --watch src/entry.ts agent","agents:bind":"node scripts/run-brigade.mjs agents bind","agents:list":"node scripts/run-brigade.mjs agents list","build:watch":"tsc -p tsconfig.build.json --watch","config:file":"node scripts/run-brigade.mjs config file","config:list":"node scripts/run-brigade.mjs config list","connect:bin":"node brigade.mjs connect","convex:push":"node scripts/convex-push.mjs","doctor:json":"node scripts/run-brigade.mjs doctor --json","expose:stop":"node scripts/run-brigade.mjs expose stop","gateway:bin":"node brigade.mjs gateway","logs:follow":"node scripts/run-brigade.mjs logs --follow","onboard:bin":"node brigade.mjs onboard","postinstall":"node scripts/brand-oauth-page.mjs","skills:info":"node scripts/run-brigade.mjs skills info","skills:list":"node scripts/run-brigade.mjs skills list","status:json":"node scripts/run-brigade.mjs status --json","store:reset":"node scripts/run-brigade.mjs store reset","upgrade:bin":"node brigade.mjs upgrade","channels:add":"node scripts/run-brigade.mjs channels add","gateway:stop":"node scripts/run-brigade.mjs gateway stop","pairing:list":"node scripts/run-brigade.mjs pairing list --channel whatsapp","update:check":"node scripts/run-brigade.mjs update --check","agents:delete":"node scripts/run-brigade.mjs agents delete","agents:unbind":"node scripts/run-brigade.mjs agents unbind","backup:create":"node scripts/run-brigade.mjs backup create","backup:verify":"node scripts/run-brigade.mjs backup verify","channels:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels:list":"node scripts/run-brigade.mjs channels list","config:schema":"node scripts/run-brigade.mjs config schema","connect:watch":"tsx --watch src/entry.ts connect","doctor:strict":"node scripts/run-brigade.mjs doctor --strict","expose:status":"node scripts/run-brigade.mjs expose status","gateway:watch":"tsx --watch src/entry.ts gateway","onboard:watch":"tsx --watch src/entry.ts onboard","secrets:audit":"node scripts/run-brigade.mjs secrets audit","sessions:list":"node scripts/run-brigade.mjs sessions list","store:migrate":"node scripts/run-brigade.mjs store migrate","backup:restore":"node scripts/run-brigade.mjs backup restore","channels:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","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","convex:install":"node scripts/install-convex.mjs","extensions:add":"node scripts/run-brigade.mjs extensions add","gateway:status":"node scripts/run-brigade.mjs gateway status","pairing:revoke":"node scripts/run-brigade.mjs pairing revoke --channel whatsapp","store:mode:set":"node scripts/run-brigade.mjs store mode set","telegram:allow":"node scripts/run-brigade.mjs channels allow list --channel telegram","telegram:token":"node scripts/run-brigade.mjs channels add --channel telegram","agents:bindings":"node scripts/run-brigade.mjs agents bindings","channels:enable":"node scripts/run-brigade.mjs channels enable --channel whatsapp","channels:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","channels:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","config:validate":"node scripts/run-brigade.mjs config validate","extensions:init":"node scripts/run-brigade.mjs extensions init","extensions:list":"node scripts/run-brigade.mjs extensions list","gateway:install":"node scripts/run-brigade.mjs gateway install","gateway:restart":"node scripts/run-brigade.mjs gateway restart","pairing:approve":"node scripts/run-brigade.mjs pairing approve --channel whatsapp","store:mode:show":"node scripts/run-brigade.mjs store mode show","telegram:enable":"node scripts/run-brigade.mjs channels enable --channel telegram","telegram:status":"node scripts/run-brigade.mjs channels status --channel telegram","bloody benchmark":"node scripts/run-brigade.mjs bloody benchmark","channels:disable":"node scripts/run-brigade.mjs channels disable --channel whatsapp","sessions:cleanup":"node scripts/run-brigade.mjs sessions cleanup","telegram:disable":"node scripts/run-brigade.mjs channels disable --channel telegram","extensions:doctor":"node scripts/run-brigade.mjs extensions doctor","extensions:remove":"node scripts/run-brigade.mjs extensions remove","gateway:uninstall":"node scripts/run-brigade.mjs gateway uninstall","smoke:strict-zero":"tsx scripts/strict-zero-smoke.mjs","store:reset:purge":"node scripts/run-brigade.mjs store reset --purge-local","channels:allow:add":"node scripts/run-brigade.mjs channels allow add --channel whatsapp","telegram:allow:add":"node scripts/run-brigade.mjs channels allow add --channel telegram","agents:set-identity":"node scripts/run-brigade.mjs agents set-identity","channels:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel whatsapp","telegram:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel telegram"},"_npmUser":{"name":"spinabot-labs","email":"npm@spinabot.com"},"overrides":{"ws":"$ws","exceljs":{"uuid":"^11.1.1"},"discord.js":{"undici":"^6.27.0"},"@discordjs/rest":{"undici":"^6.27.0"}},"repository":{"url":"git+https://github.com/spinabot/brigade.git","type":"git"},"_npmVersion":"11.17.0","description":"Brigade — your personal AI crew","directories":{},"_nodeVersion":"24.17.0","dependencies":{"ws":"^8.21.0","tar":"^7.5.15","zod":"^3.23.8","docx":"^9.7.1","jimp":"^1.6.1","jiti":"^2.6.1","yaml":"^2.9.0","chalk":"^5.3.0","json5":"^2.2.3","unpdf":"^1.6.2","cfonts":"^3.3.1","convex":"^1.40.0","croner":"^10.0.1","fflate":"^0.8.3","grammy":"^1.42.0","undici":"^7.25.0","exceljs":"^4.4.0","prompts":"^2.4.2","linkedom":"^0.18.12","commander":"^12.1.0","minimatch":"^10.2.5","pptxgenjs":"^4.0.1","discord.js":"^14.26.4","cli-highlight":"^2.1.11","@composio/core":"^0.10.0","@slack/web-api":"^7.17.0","@cantoo/pdf-lib":"^2.7.1","@grammyjs/types":"^3.21.0","playwright-core":"^1.59.0","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@pdf-lib/fontkit":"^1.1.1","https-proxy-agent":"^7.0.6","socks-proxy-agent":"^10.1.0","@slack/socket-mode":"^2.0.7","@mozilla/readability":"^0.6.0","@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@whiskeysockets/baileys":"7.0.0-rc13","@earendil-works/pi-agent-core":"0.79.9","@earendil-works/pi-coding-agent":"0.79.9","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","@types/ws":"^8.18.1","@types/tar":"^6.1.13","typescript":"^5.6.3","@types/node":"^22.10.0","@types/prompts":"^2.4.9","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2"},"_npmOperationalInternal":{"tmp":"tmp/brigade_1.14.0_1782494635119_0.9546443095651107","host":"s3://npm-registry-packages-npm-production"}},"1.15.0":{"name":"@spinabot/brigade","version":"1.15.0","keywords":["ai","agent","agents","ai-agent","cli","tui","llm","claude","openai","gemini","ollama","whatsapp","gateway","brigade"],"author":{"name":"Spinabot","email":"hello@brigade-agent.ai"},"license":"MIT","_id":"@spinabot/brigade@1.15.0","maintainers":[{"name":"dev-spinabot","email":"bhasvanth02@gmail.com"},{"name":"spinabot-labs","email":"npm@spinabot.com"}],"homepage":"https://brigade.spinabot.com","bugs":{"url":"https://github.com/spinabot/brigade/issues","email":"hello@brigade-agent.ai"},"bin":{"brigade":"brigade.mjs"},"dist":{"shasum":"9611ef5c1206d14b7b8f135a863b0413cc420bed","tarball":"https://registry.npmjs.org/@spinabot/brigade/-/brigade-1.15.0.tgz","fileCount":2701,"integrity":"sha512-0G3adU0mZ5bhaM9JMj4yS0hMXt+jnAWxQBdlIhJMm56jlPkVL7T2hi4P2KaoBK+zIx4tIS4Eu2Jij2NpFmwKEA==","signatures":[{"sig":"MEQCIEGlG5TkbB3dFPqYnjmA7XD+7jOBak1gSKElQhY7smtKAiAI7MEbC1ZVaVn3eXwt8X2dZIOylxj5U3HaHI7e8MP5MQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spinabot%2fbrigade@1.15.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":19874189},"main":"dist/entry.js","type":"module","types":"./dist/entry.d.ts","engines":{"node":">=22.12"},"exports":{".":"./brigade.mjs","./channel-sdk":{"types":"./dist/channel-sdk.d.ts","import":"./dist/channel-sdk.js"},"./package.json":"./package.json","./extension-sdk":{"types":"./dist/extension-sdk.d.ts","import":"./dist/extension-sdk.js"}},"gitHead":"fa0363051abf78ec6be90b5a66212385c1558a78","scripts":{"wa":"node scripts/run-brigade.mjs channels status --channel whatsapp","dev":"node scripts/run-brigade.mjs","tui":"node scripts/run-brigade.mjs tui","logs":"node scripts/run-brigade.mjs logs","test":"node scripts/run-tests.mjs","agent":"node scripts/run-brigade.mjs agent","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","build":"tsc -p tsconfig.build.json","clean":"node -e \"import('node:fs').then(fs => fs.rmSync('dist', { recursive: true, force: true }))\"","start":"node scripts/run-brigade.mjs","store":"node scripts/run-brigade.mjs store","watch":"tsx --watch src/entry.ts","agents":"node scripts/run-brigade.mjs agents","backup":"node scripts/run-brigade.mjs backup create","doctor":"node scripts/run-brigade.mjs doctor","expose":"node scripts/run-brigade.mjs expose","skills":"node scripts/run-brigade.mjs skills list","status":"node scripts/run-brigade.mjs status","update":"node scripts/run-brigade.mjs update","brigade":"node brigade.mjs","connect":"node scripts/run-brigade.mjs connect","dev:tsx":"tsx src/entry.ts","gateway":"node scripts/run-brigade.mjs gateway","onboard":"node scripts/run-brigade.mjs onboard","pairing":"node scripts/run-brigade.mjs pairing list --channel whatsapp","prepack":"npm run build","tui:bin":"node brigade.mjs tui","upgrade":"node scripts/run-brigade.mjs upgrade","wa:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels":"node scripts/run-brigade.mjs channels","sessions":"node scripts/run-brigade.mjs sessions list","telegram":"node scripts/run-brigade.mjs channels status --channel telegram","wa:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","agent:bin":"node brigade.mjs agent","exec:list":"node scripts/run-brigade.mjs exec list","postbuild":"node scripts/build-done.mjs","tui:watch":"tsx --watch src/entry.ts tui","typecheck":"tsc -p tsconfig.json --noEmit","wa:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","wa:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","agents:add":"node scripts/run-brigade.mjs agents add","agents:bin":"node brigade.mjs agents","convex:dev":"node scripts/install-convex.mjs && node scripts/convex-dev.mjs","doctor:bin":"node brigade.mjs doctor","extensions":"node scripts/run-brigade.mjs extensions list","status:bin":"node brigade.mjs status","store:mode":"node scripts/run-brigade.mjs store mode show","update:bin":"node brigade.mjs update","agent:watch":"tsx --watch src/entry.ts agent","agents:bind":"node scripts/run-brigade.mjs agents bind","agents:list":"node scripts/run-brigade.mjs agents list","build:watch":"tsc -p tsconfig.build.json --watch","config:file":"node scripts/run-brigade.mjs config file","config:list":"node scripts/run-brigade.mjs config list","connect:bin":"node brigade.mjs connect","convex:push":"node scripts/convex-push.mjs","doctor:json":"node scripts/run-brigade.mjs doctor --json","expose:stop":"node scripts/run-brigade.mjs expose stop","gateway:bin":"node brigade.mjs gateway","logs:follow":"node scripts/run-brigade.mjs logs --follow","onboard:bin":"node brigade.mjs onboard","postinstall":"node scripts/brand-oauth-page.mjs","skills:info":"node scripts/run-brigade.mjs skills info","skills:list":"node scripts/run-brigade.mjs skills list","status:json":"node scripts/run-brigade.mjs status --json","store:reset":"node scripts/run-brigade.mjs store reset","upgrade:bin":"node brigade.mjs upgrade","channels:add":"node scripts/run-brigade.mjs channels add","gateway:stop":"node scripts/run-brigade.mjs gateway stop","pairing:list":"node scripts/run-brigade.mjs pairing list --channel whatsapp","update:check":"node scripts/run-brigade.mjs update --check","agents:delete":"node scripts/run-brigade.mjs agents delete","agents:unbind":"node scripts/run-brigade.mjs agents unbind","backup:create":"node scripts/run-brigade.mjs backup create","backup:verify":"node scripts/run-brigade.mjs backup verify","channels:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels:list":"node scripts/run-brigade.mjs channels list","config:schema":"node scripts/run-brigade.mjs config schema","connect:watch":"tsx --watch src/entry.ts connect","doctor:strict":"node scripts/run-brigade.mjs doctor --strict","expose:status":"node scripts/run-brigade.mjs expose status","gateway:watch":"tsx --watch src/entry.ts gateway","onboard:watch":"tsx --watch src/entry.ts onboard","secrets:audit":"node scripts/run-brigade.mjs secrets audit","sessions:list":"node scripts/run-brigade.mjs sessions list","store:migrate":"node scripts/run-brigade.mjs store migrate","backup:restore":"node scripts/run-brigade.mjs backup restore","channels:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","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","convex:install":"node scripts/install-convex.mjs","extensions:add":"node scripts/run-brigade.mjs extensions add","gateway:status":"node scripts/run-brigade.mjs gateway status","pairing:revoke":"node scripts/run-brigade.mjs pairing revoke --channel whatsapp","store:mode:set":"node scripts/run-brigade.mjs store mode set","telegram:allow":"node scripts/run-brigade.mjs channels allow list --channel telegram","telegram:token":"node scripts/run-brigade.mjs channels add --channel telegram","agents:bindings":"node scripts/run-brigade.mjs agents bindings","channels:enable":"node scripts/run-brigade.mjs channels enable --channel whatsapp","channels:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","channels:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","config:validate":"node scripts/run-brigade.mjs config validate","extensions:init":"node scripts/run-brigade.mjs extensions init","extensions:list":"node scripts/run-brigade.mjs extensions list","gateway:install":"node scripts/run-brigade.mjs gateway install","gateway:restart":"node scripts/run-brigade.mjs gateway restart","pairing:approve":"node scripts/run-brigade.mjs pairing approve --channel whatsapp","store:mode:show":"node scripts/run-brigade.mjs store mode show","telegram:enable":"node scripts/run-brigade.mjs channels enable --channel telegram","telegram:status":"node scripts/run-brigade.mjs channels status --channel telegram","bloody benchmark":"node scripts/run-brigade.mjs bloody benchmark","channels:disable":"node scripts/run-brigade.mjs channels disable --channel whatsapp","sessions:cleanup":"node scripts/run-brigade.mjs sessions cleanup","telegram:disable":"node scripts/run-brigade.mjs channels disable --channel telegram","extensions:doctor":"node scripts/run-brigade.mjs extensions doctor","extensions:remove":"node scripts/run-brigade.mjs extensions remove","gateway:uninstall":"node scripts/run-brigade.mjs gateway uninstall","smoke:strict-zero":"tsx scripts/strict-zero-smoke.mjs","store:reset:purge":"node scripts/run-brigade.mjs store reset --purge-local","channels:allow:add":"node scripts/run-brigade.mjs channels allow add --channel whatsapp","telegram:allow:add":"node scripts/run-brigade.mjs channels allow add --channel telegram","agents:set-identity":"node scripts/run-brigade.mjs agents set-identity","channels:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel whatsapp","telegram:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel telegram"},"_npmUser":{"name":"spinabot-labs","email":"npm@spinabot.com"},"overrides":{"ws":"$ws","exceljs":{"uuid":"^11.1.1"},"discord.js":{"undici":"^6.27.0"},"@discordjs/rest":{"undici":"^6.27.0"}},"repository":{"url":"git+https://github.com/spinabot/brigade.git","type":"git"},"_npmVersion":"11.17.0","description":"Brigade — your personal AI crew","directories":{},"_nodeVersion":"24.17.0","dependencies":{"ws":"^8.21.0","tar":"^7.5.15","zod":"^3.23.8","docx":"^9.7.1","jimp":"^1.6.1","jiti":"^2.6.1","yaml":"^2.9.0","chalk":"^5.3.0","json5":"^2.2.3","unpdf":"^1.6.2","cfonts":"^3.3.1","convex":"^1.40.0","croner":"^10.0.1","fflate":"^0.8.3","grammy":"^1.42.0","undici":"^7.25.0","exceljs":"^4.4.0","prompts":"^2.4.2","linkedom":"^0.18.12","commander":"^12.1.0","minimatch":"^10.2.5","pptxgenjs":"^4.0.1","discord.js":"^14.26.4","cli-highlight":"^2.1.11","@composio/core":"^0.10.0","@slack/web-api":"^7.17.0","@cantoo/pdf-lib":"^2.7.1","@grammyjs/types":"^3.21.0","playwright-core":"^1.59.0","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@pdf-lib/fontkit":"^1.1.1","https-proxy-agent":"^7.0.6","socks-proxy-agent":"^10.1.0","@slack/socket-mode":"^2.0.7","@mozilla/readability":"^0.6.0","@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@whiskeysockets/baileys":"7.0.0-rc13","@earendil-works/pi-agent-core":"0.79.9","@earendil-works/pi-coding-agent":"0.79.9","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","@types/ws":"^8.18.1","@types/tar":"^6.1.13","typescript":"^5.6.3","@types/node":"^22.10.0","@types/prompts":"^2.4.9","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2"},"_npmOperationalInternal":{"tmp":"tmp/brigade_1.15.0_1782589735058_0.434036819488268","host":"s3://npm-registry-packages-npm-production"}},"1.16.0":{"name":"@spinabot/brigade","version":"1.16.0","keywords":["ai","agent","agents","ai-agent","cli","tui","llm","claude","openai","gemini","ollama","whatsapp","gateway","brigade"],"author":{"name":"Spinabot","email":"hello@brigade-agent.ai"},"license":"MIT","_id":"@spinabot/brigade@1.16.0","maintainers":[{"name":"dev-spinabot","email":"bhasvanth02@gmail.com"},{"name":"spinabot-labs","email":"npm@spinabot.com"}],"homepage":"https://brigade.spinabot.com","bugs":{"url":"https://github.com/spinabot/brigade/issues","email":"hello@brigade-agent.ai"},"bin":{"brigade":"brigade.mjs"},"dist":{"shasum":"72f250fb60dc6a636e0ef49f9d5edc6c0e9e06e1","tarball":"https://registry.npmjs.org/@spinabot/brigade/-/brigade-1.16.0.tgz","fileCount":2701,"integrity":"sha512-LIDUPNHLCuSsSJrAceDI+oh1zqcy8cYm5SO0X5/2CORYNBkuNJDOOUPpVJKeMvxPqXmOe1KnYCJ4j2CLcDgpSw==","signatures":[{"sig":"MEYCIQC0aLPFouWeh2Kuu+Um7+4OVmecANGI1Sa2ufnKadc+aQIhAL7zEmQv4r2ytMldddd5szbUTsWfonSU5Rcku0rI/NUe","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spinabot%2fbrigade@1.16.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":19876078},"main":"dist/entry.js","type":"module","types":"./dist/entry.d.ts","engines":{"node":">=22.12"},"exports":{".":"./brigade.mjs","./channel-sdk":{"types":"./dist/channel-sdk.d.ts","import":"./dist/channel-sdk.js"},"./package.json":"./package.json","./extension-sdk":{"types":"./dist/extension-sdk.d.ts","import":"./dist/extension-sdk.js"}},"gitHead":"45a5f06781acfe708db1c11e0ca2ddacfef4f649","scripts":{"wa":"node scripts/run-brigade.mjs channels status --channel whatsapp","dev":"node scripts/run-brigade.mjs","tui":"node scripts/run-brigade.mjs tui","logs":"node scripts/run-brigade.mjs logs","test":"node scripts/run-tests.mjs","agent":"node scripts/run-brigade.mjs agent","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","build":"tsc -p tsconfig.build.json","clean":"node -e \"import('node:fs').then(fs => fs.rmSync('dist', { recursive: true, force: true }))\"","start":"node scripts/run-brigade.mjs","store":"node scripts/run-brigade.mjs store","watch":"tsx --watch src/entry.ts","agents":"node scripts/run-brigade.mjs agents","backup":"node scripts/run-brigade.mjs backup create","doctor":"node scripts/run-brigade.mjs doctor","expose":"node scripts/run-brigade.mjs expose","skills":"node scripts/run-brigade.mjs skills list","status":"node scripts/run-brigade.mjs status","update":"node scripts/run-brigade.mjs update","brigade":"node brigade.mjs","connect":"node scripts/run-brigade.mjs connect","dev:tsx":"tsx src/entry.ts","gateway":"node scripts/run-brigade.mjs gateway","onboard":"node scripts/run-brigade.mjs onboard","pairing":"node scripts/run-brigade.mjs pairing list --channel whatsapp","prepack":"npm run build","tui:bin":"node brigade.mjs tui","upgrade":"node scripts/run-brigade.mjs upgrade","wa:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels":"node scripts/run-brigade.mjs channels","sessions":"node scripts/run-brigade.mjs sessions list","telegram":"node scripts/run-brigade.mjs channels status --channel telegram","wa:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","agent:bin":"node brigade.mjs agent","exec:list":"node scripts/run-brigade.mjs exec list","postbuild":"node scripts/build-done.mjs","tui:watch":"tsx --watch src/entry.ts tui","typecheck":"tsc -p tsconfig.json --noEmit","wa:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","wa:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","agents:add":"node scripts/run-brigade.mjs agents add","agents:bin":"node brigade.mjs agents","convex:dev":"node scripts/install-convex.mjs && node scripts/convex-dev.mjs","doctor:bin":"node brigade.mjs doctor","extensions":"node scripts/run-brigade.mjs extensions list","status:bin":"node brigade.mjs status","store:mode":"node scripts/run-brigade.mjs store mode show","update:bin":"node brigade.mjs update","agent:watch":"tsx --watch src/entry.ts agent","agents:bind":"node scripts/run-brigade.mjs agents bind","agents:list":"node scripts/run-brigade.mjs agents list","build:watch":"tsc -p tsconfig.build.json --watch","config:file":"node scripts/run-brigade.mjs config file","config:list":"node scripts/run-brigade.mjs config list","connect:bin":"node brigade.mjs connect","convex:push":"node scripts/convex-push.mjs","doctor:json":"node scripts/run-brigade.mjs doctor --json","expose:stop":"node scripts/run-brigade.mjs expose stop","gateway:bin":"node brigade.mjs gateway","logs:follow":"node scripts/run-brigade.mjs logs --follow","onboard:bin":"node brigade.mjs onboard","postinstall":"node scripts/brand-oauth-page.mjs","skills:info":"node scripts/run-brigade.mjs skills info","skills:list":"node scripts/run-brigade.mjs skills list","status:json":"node scripts/run-brigade.mjs status --json","store:reset":"node scripts/run-brigade.mjs store reset","upgrade:bin":"node brigade.mjs upgrade","channels:add":"node scripts/run-brigade.mjs channels add","gateway:stop":"node scripts/run-brigade.mjs gateway stop","pairing:list":"node scripts/run-brigade.mjs pairing list --channel whatsapp","update:check":"node scripts/run-brigade.mjs update --check","agents:delete":"node scripts/run-brigade.mjs agents delete","agents:unbind":"node scripts/run-brigade.mjs agents unbind","backup:create":"node scripts/run-brigade.mjs backup create","backup:verify":"node scripts/run-brigade.mjs backup verify","channels:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels:list":"node scripts/run-brigade.mjs channels list","config:schema":"node scripts/run-brigade.mjs config schema","connect:watch":"tsx --watch src/entry.ts connect","doctor:strict":"node scripts/run-brigade.mjs doctor --strict","expose:status":"node scripts/run-brigade.mjs expose status","gateway:watch":"tsx --watch src/entry.ts gateway","onboard:watch":"tsx --watch src/entry.ts onboard","secrets:audit":"node scripts/run-brigade.mjs secrets audit","sessions:list":"node scripts/run-brigade.mjs sessions list","store:migrate":"node scripts/run-brigade.mjs store migrate","backup:restore":"node scripts/run-brigade.mjs backup restore","channels:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","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","convex:install":"node scripts/install-convex.mjs","extensions:add":"node scripts/run-brigade.mjs extensions add","gateway:status":"node scripts/run-brigade.mjs gateway status","pairing:revoke":"node scripts/run-brigade.mjs pairing revoke --channel whatsapp","store:mode:set":"node scripts/run-brigade.mjs store mode set","telegram:allow":"node scripts/run-brigade.mjs channels allow list --channel telegram","telegram:token":"node scripts/run-brigade.mjs channels add --channel telegram","agents:bindings":"node scripts/run-brigade.mjs agents bindings","channels:enable":"node scripts/run-brigade.mjs channels enable --channel whatsapp","channels:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","channels:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","config:validate":"node scripts/run-brigade.mjs config validate","extensions:init":"node scripts/run-brigade.mjs extensions init","extensions:list":"node scripts/run-brigade.mjs extensions list","gateway:install":"node scripts/run-brigade.mjs gateway install","gateway:restart":"node scripts/run-brigade.mjs gateway restart","pairing:approve":"node scripts/run-brigade.mjs pairing approve --channel whatsapp","store:mode:show":"node scripts/run-brigade.mjs store mode show","telegram:enable":"node scripts/run-brigade.mjs channels enable --channel telegram","telegram:status":"node scripts/run-brigade.mjs channels status --channel telegram","bloody benchmark":"node scripts/run-brigade.mjs bloody benchmark","channels:disable":"node scripts/run-brigade.mjs channels disable --channel whatsapp","sessions:cleanup":"node scripts/run-brigade.mjs sessions cleanup","telegram:disable":"node scripts/run-brigade.mjs channels disable --channel telegram","extensions:doctor":"node scripts/run-brigade.mjs extensions doctor","extensions:remove":"node scripts/run-brigade.mjs extensions remove","gateway:uninstall":"node scripts/run-brigade.mjs gateway uninstall","smoke:strict-zero":"tsx scripts/strict-zero-smoke.mjs","store:reset:purge":"node scripts/run-brigade.mjs store reset --purge-local","channels:allow:add":"node scripts/run-brigade.mjs channels allow add --channel whatsapp","telegram:allow:add":"node scripts/run-brigade.mjs channels allow add --channel telegram","agents:set-identity":"node scripts/run-brigade.mjs agents set-identity","channels:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel whatsapp","telegram:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel telegram"},"_npmUser":{"name":"spinabot-labs","email":"npm@spinabot.com"},"overrides":{"ws":"$ws","exceljs":{"uuid":"^11.1.1"},"discord.js":{"undici":"^6.27.0"},"@discordjs/rest":{"undici":"^6.27.0"}},"repository":{"url":"git+https://github.com/spinabot/brigade.git","type":"git"},"_npmVersion":"11.17.0","description":"Brigade — your personal AI crew","directories":{},"_nodeVersion":"24.17.0","dependencies":{"ws":"^8.21.0","tar":"^7.5.15","zod":"^3.23.8","docx":"^9.7.1","jimp":"^1.6.1","jiti":"^2.6.1","yaml":"^2.9.0","chalk":"^5.3.0","json5":"^2.2.3","unpdf":"^1.6.2","cfonts":"^3.3.1","convex":"^1.40.0","croner":"^10.0.1","fflate":"^0.8.3","grammy":"^1.42.0","undici":"^7.25.0","exceljs":"^4.4.0","prompts":"^2.4.2","linkedom":"^0.18.12","commander":"^12.1.0","minimatch":"^10.2.5","pptxgenjs":"^4.0.1","discord.js":"^14.26.4","cli-highlight":"^2.1.11","@composio/core":"^0.10.0","@slack/web-api":"^7.17.0","@cantoo/pdf-lib":"^2.7.1","@grammyjs/types":"^3.21.0","playwright-core":"^1.59.0","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@pdf-lib/fontkit":"^1.1.1","https-proxy-agent":"^7.0.6","socks-proxy-agent":"^10.1.0","@slack/socket-mode":"^2.0.7","@mozilla/readability":"^0.6.0","@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@whiskeysockets/baileys":"7.0.0-rc13","@earendil-works/pi-agent-core":"0.79.9","@earendil-works/pi-coding-agent":"0.79.9","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","@types/ws":"^8.18.1","@types/tar":"^6.1.13","typescript":"^5.6.3","@types/node":"^22.10.0","@types/prompts":"^2.4.9","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2"},"_npmOperationalInternal":{"tmp":"tmp/brigade_1.16.0_1782593097614_0.7307593845728448","host":"s3://npm-registry-packages-npm-production"}},"1.17.0":{"name":"@spinabot/brigade","version":"1.17.0","keywords":["ai","agent","agents","ai-agent","cli","tui","llm","claude","openai","gemini","ollama","whatsapp","gateway","brigade"],"author":{"name":"Spinabot","email":"hello@brigade-agent.ai"},"license":"MIT","_id":"@spinabot/brigade@1.17.0","maintainers":[{"name":"dev-spinabot","email":"bhasvanth02@gmail.com"},{"name":"spinabot-labs","email":"npm@spinabot.com"}],"homepage":"https://brigade.spinabot.com","bugs":{"url":"https://github.com/spinabot/brigade/issues","email":"hello@brigade-agent.ai"},"bin":{"brigade":"brigade.mjs"},"dist":{"shasum":"123ad8bc13b79d270120ce8b439f14844b8575ee","tarball":"https://registry.npmjs.org/@spinabot/brigade/-/brigade-1.17.0.tgz","fileCount":2701,"integrity":"sha512-mYR+r7M9sAmYbfC4JTQG9ipg/sVGx9LZFOqsv7el3y7l3NekaSXF9nqRGb1pFqXEK86+yHip50C+eFhxVfSfEw==","signatures":[{"sig":"MEUCIQDGcX7QwX0TSqXWotsvsYFbhIku8K73rAFNlqJuD2oL5gIgeb3l8lH/kegWBSmxRPG31JvR61Hb6j5qNDn28ep8ACY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spinabot%2fbrigade@1.17.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":19903832},"main":"dist/entry.js","type":"module","types":"./dist/entry.d.ts","engines":{"node":">=22.12"},"exports":{".":"./brigade.mjs","./channel-sdk":{"types":"./dist/channel-sdk.d.ts","import":"./dist/channel-sdk.js"},"./package.json":"./package.json","./extension-sdk":{"types":"./dist/extension-sdk.d.ts","import":"./dist/extension-sdk.js"}},"gitHead":"527b9597022d11aafb612dcb14458cd5d8d1066f","scripts":{"wa":"node scripts/run-brigade.mjs channels status --channel whatsapp","dev":"node scripts/run-brigade.mjs","tui":"node scripts/run-brigade.mjs tui","logs":"node scripts/run-brigade.mjs logs","test":"node scripts/run-tests.mjs","agent":"node scripts/run-brigade.mjs agent","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","build":"tsc -p tsconfig.build.json","clean":"node -e \"import('node:fs').then(fs => fs.rmSync('dist', { recursive: true, force: true }))\"","start":"node scripts/run-brigade.mjs","store":"node scripts/run-brigade.mjs store","watch":"tsx --watch src/entry.ts","agents":"node scripts/run-brigade.mjs agents","backup":"node scripts/run-brigade.mjs backup create","doctor":"node scripts/run-brigade.mjs doctor","expose":"node scripts/run-brigade.mjs expose","skills":"node scripts/run-brigade.mjs skills list","status":"node scripts/run-brigade.mjs status","update":"node scripts/run-brigade.mjs update","brigade":"node brigade.mjs","connect":"node scripts/run-brigade.mjs connect","dev:tsx":"tsx src/entry.ts","gateway":"node scripts/run-brigade.mjs gateway","onboard":"node scripts/run-brigade.mjs onboard","pairing":"node scripts/run-brigade.mjs pairing list --channel whatsapp","prepack":"npm run build","tui:bin":"node brigade.mjs tui","upgrade":"node scripts/run-brigade.mjs upgrade","wa:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels":"node scripts/run-brigade.mjs channels","sessions":"node scripts/run-brigade.mjs sessions list","telegram":"node scripts/run-brigade.mjs channels status --channel telegram","wa:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","agent:bin":"node brigade.mjs agent","exec:list":"node scripts/run-brigade.mjs exec list","postbuild":"node scripts/build-done.mjs","tui:watch":"tsx --watch src/entry.ts tui","typecheck":"tsc -p tsconfig.json --noEmit","wa:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","wa:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","agents:add":"node scripts/run-brigade.mjs agents add","agents:bin":"node brigade.mjs agents","convex:dev":"node scripts/install-convex.mjs && node scripts/convex-dev.mjs","doctor:bin":"node brigade.mjs doctor","extensions":"node scripts/run-brigade.mjs extensions list","status:bin":"node brigade.mjs status","store:mode":"node scripts/run-brigade.mjs store mode show","update:bin":"node brigade.mjs update","agent:watch":"tsx --watch src/entry.ts agent","agents:bind":"node scripts/run-brigade.mjs agents bind","agents:list":"node scripts/run-brigade.mjs agents list","build:watch":"tsc -p tsconfig.build.json --watch","config:file":"node scripts/run-brigade.mjs config file","config:list":"node scripts/run-brigade.mjs config list","connect:bin":"node brigade.mjs connect","convex:push":"node scripts/convex-push.mjs","doctor:json":"node scripts/run-brigade.mjs doctor --json","expose:stop":"node scripts/run-brigade.mjs expose stop","gateway:bin":"node brigade.mjs gateway","logs:follow":"node scripts/run-brigade.mjs logs --follow","onboard:bin":"node brigade.mjs onboard","postinstall":"node scripts/brand-oauth-page.mjs","skills:info":"node scripts/run-brigade.mjs skills info","skills:list":"node scripts/run-brigade.mjs skills list","status:json":"node scripts/run-brigade.mjs status --json","store:reset":"node scripts/run-brigade.mjs store reset","upgrade:bin":"node brigade.mjs upgrade","channels:add":"node scripts/run-brigade.mjs channels add","gateway:stop":"node scripts/run-brigade.mjs gateway stop","pairing:list":"node scripts/run-brigade.mjs pairing list --channel whatsapp","update:check":"node scripts/run-brigade.mjs update --check","agents:delete":"node scripts/run-brigade.mjs agents delete","agents:unbind":"node scripts/run-brigade.mjs agents unbind","backup:create":"node scripts/run-brigade.mjs backup create","backup:verify":"node scripts/run-brigade.mjs backup verify","channels:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels:list":"node scripts/run-brigade.mjs channels list","config:schema":"node scripts/run-brigade.mjs config schema","connect:watch":"tsx --watch src/entry.ts connect","doctor:strict":"node scripts/run-brigade.mjs doctor --strict","expose:status":"node scripts/run-brigade.mjs expose status","gateway:watch":"tsx --watch src/entry.ts gateway","onboard:watch":"tsx --watch src/entry.ts onboard","secrets:audit":"node scripts/run-brigade.mjs secrets audit","sessions:list":"node scripts/run-brigade.mjs sessions list","store:migrate":"node scripts/run-brigade.mjs store migrate","backup:restore":"node scripts/run-brigade.mjs backup restore","channels:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","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","convex:install":"node scripts/install-convex.mjs","extensions:add":"node scripts/run-brigade.mjs extensions add","gateway:status":"node scripts/run-brigade.mjs gateway status","pairing:revoke":"node scripts/run-brigade.mjs pairing revoke --channel whatsapp","store:mode:set":"node scripts/run-brigade.mjs store mode set","telegram:allow":"node scripts/run-brigade.mjs channels allow list --channel telegram","telegram:token":"node scripts/run-brigade.mjs channels add --channel telegram","agents:bindings":"node scripts/run-brigade.mjs agents bindings","channels:enable":"node scripts/run-brigade.mjs channels enable --channel whatsapp","channels:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","channels:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","config:validate":"node scripts/run-brigade.mjs config validate","extensions:init":"node scripts/run-brigade.mjs extensions init","extensions:list":"node scripts/run-brigade.mjs extensions list","gateway:install":"node scripts/run-brigade.mjs gateway install","gateway:restart":"node scripts/run-brigade.mjs gateway restart","pairing:approve":"node scripts/run-brigade.mjs pairing approve --channel whatsapp","store:mode:show":"node scripts/run-brigade.mjs store mode show","telegram:enable":"node scripts/run-brigade.mjs channels enable --channel telegram","telegram:status":"node scripts/run-brigade.mjs channels status --channel telegram","bloody benchmark":"node scripts/run-brigade.mjs bloody benchmark","channels:disable":"node scripts/run-brigade.mjs channels disable --channel whatsapp","sessions:cleanup":"node scripts/run-brigade.mjs sessions cleanup","telegram:disable":"node scripts/run-brigade.mjs channels disable --channel telegram","extensions:doctor":"node scripts/run-brigade.mjs extensions doctor","extensions:remove":"node scripts/run-brigade.mjs extensions remove","gateway:uninstall":"node scripts/run-brigade.mjs gateway uninstall","smoke:strict-zero":"tsx scripts/strict-zero-smoke.mjs","store:reset:purge":"node scripts/run-brigade.mjs store reset --purge-local","channels:allow:add":"node scripts/run-brigade.mjs channels allow add --channel whatsapp","telegram:allow:add":"node scripts/run-brigade.mjs channels allow add --channel telegram","agents:set-identity":"node scripts/run-brigade.mjs agents set-identity","channels:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel whatsapp","telegram:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel telegram"},"_npmUser":{"name":"spinabot-labs","email":"npm@spinabot.com"},"overrides":{"ws":"$ws","exceljs":{"uuid":"^11.1.1"},"discord.js":{"undici":"^6.27.0"},"@discordjs/rest":{"undici":"^6.27.0"}},"repository":{"url":"git+https://github.com/spinabot/brigade.git","type":"git"},"_npmVersion":"11.17.0","description":"Brigade — your personal AI crew","directories":{},"_nodeVersion":"24.17.0","dependencies":{"ws":"^8.21.0","tar":"^7.5.15","zod":"^3.23.8","docx":"^9.7.1","jimp":"^1.6.1","jiti":"^2.6.1","yaml":"^2.9.0","chalk":"^5.3.0","json5":"^2.2.3","unpdf":"^1.6.2","cfonts":"^3.3.1","convex":"^1.40.0","croner":"^10.0.1","fflate":"^0.8.3","grammy":"^1.42.0","undici":"^7.25.0","exceljs":"^4.4.0","prompts":"^2.4.2","linkedom":"^0.18.12","commander":"^12.1.0","minimatch":"^10.2.5","pptxgenjs":"^4.0.1","discord.js":"^14.26.4","cli-highlight":"^2.1.11","@composio/core":"^0.10.0","@slack/web-api":"^7.17.0","@cantoo/pdf-lib":"^2.7.1","@grammyjs/types":"^3.21.0","playwright-core":"^1.59.0","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@pdf-lib/fontkit":"^1.1.1","https-proxy-agent":"^7.0.6","socks-proxy-agent":"^10.1.0","@slack/socket-mode":"^2.0.7","@mozilla/readability":"^0.6.0","@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@whiskeysockets/baileys":"7.0.0-rc13","@earendil-works/pi-agent-core":"0.79.9","@earendil-works/pi-coding-agent":"0.79.9","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","@types/ws":"^8.18.1","@types/tar":"^6.1.13","typescript":"^5.6.3","@types/node":"^22.10.0","@types/prompts":"^2.4.9","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2"},"_npmOperationalInternal":{"tmp":"tmp/brigade_1.17.0_1782663703058_0.091521499773207","host":"s3://npm-registry-packages-npm-production"}},"1.17.1":{"name":"@spinabot/brigade","version":"1.17.1","keywords":["ai","agent","agents","ai-agent","cli","tui","llm","claude","openai","gemini","ollama","whatsapp","gateway","brigade"],"author":{"name":"Spinabot","email":"hello@brigade-agent.ai"},"license":"MIT","_id":"@spinabot/brigade@1.17.1","maintainers":[{"name":"dev-spinabot","email":"bhasvanth02@gmail.com"},{"name":"spinabot-labs","email":"npm@spinabot.com"}],"homepage":"https://brigade.spinabot.com","bugs":{"url":"https://github.com/spinabot/brigade/issues","email":"hello@brigade-agent.ai"},"bin":{"brigade":"brigade.mjs"},"dist":{"shasum":"e10a577690a4bdee93a1312f0580d936d4f361e6","tarball":"https://registry.npmjs.org/@spinabot/brigade/-/brigade-1.17.1.tgz","fileCount":2708,"integrity":"sha512-Jp9lOzISfmoGYg4FLOdjvYzXvTmQLKe+UUGniL1ToR5OjontHS/SxO9b5puFioUYvP1WOMTgh0vpkTUfgtsS8g==","signatures":[{"sig":"MEUCIQCmeg0p9WATTfUB31ghosvmsX+1NxSoWgB2nNwSu24pAwIgMHVz+PV4pHu5sKa0g1kMKTTtDsQYkXRCYZqSPJUcHGI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spinabot%2fbrigade@1.17.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":19931630},"main":"dist/entry.js","type":"module","types":"./dist/entry.d.ts","engines":{"node":">=22.12"},"exports":{".":"./brigade.mjs","./channel-sdk":{"types":"./dist/channel-sdk.d.ts","import":"./dist/channel-sdk.js"},"./package.json":"./package.json","./extension-sdk":{"types":"./dist/extension-sdk.d.ts","import":"./dist/extension-sdk.js"}},"gitHead":"289756b01f29ef80338a9c0d19878f805446a2d3","scripts":{"wa":"node scripts/run-brigade.mjs channels status --channel whatsapp","dev":"node scripts/run-brigade.mjs","tui":"node scripts/run-brigade.mjs tui","logs":"node scripts/run-brigade.mjs logs","test":"node scripts/run-tests.mjs","agent":"node scripts/run-brigade.mjs agent","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","build":"tsc -p tsconfig.build.json","clean":"node -e \"import('node:fs').then(fs => fs.rmSync('dist', { recursive: true, force: true }))\"","start":"node scripts/run-brigade.mjs","store":"node scripts/run-brigade.mjs store","watch":"tsx --watch src/entry.ts","agents":"node scripts/run-brigade.mjs agents","backup":"node scripts/run-brigade.mjs backup create","doctor":"node scripts/run-brigade.mjs doctor","expose":"node scripts/run-brigade.mjs expose","skills":"node scripts/run-brigade.mjs skills list","status":"node scripts/run-brigade.mjs status","update":"node scripts/run-brigade.mjs update","brigade":"node brigade.mjs","connect":"node scripts/run-brigade.mjs connect","dev:tsx":"tsx src/entry.ts","gateway":"node scripts/run-brigade.mjs gateway","onboard":"node scripts/run-brigade.mjs onboard","pairing":"node scripts/run-brigade.mjs pairing list --channel whatsapp","prepack":"npm run build","tui:bin":"node brigade.mjs tui","upgrade":"node scripts/run-brigade.mjs upgrade","wa:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels":"node scripts/run-brigade.mjs channels","sessions":"node scripts/run-brigade.mjs sessions list","telegram":"node scripts/run-brigade.mjs channels status --channel telegram","wa:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","agent:bin":"node brigade.mjs agent","exec:list":"node scripts/run-brigade.mjs exec list","postbuild":"node scripts/build-done.mjs","tui:watch":"tsx --watch src/entry.ts tui","typecheck":"tsc -p tsconfig.json --noEmit","wa:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","wa:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","agents:add":"node scripts/run-brigade.mjs agents add","agents:bin":"node brigade.mjs agents","convex:dev":"node scripts/install-convex.mjs && node scripts/convex-dev.mjs","doctor:bin":"node brigade.mjs doctor","extensions":"node scripts/run-brigade.mjs extensions list","status:bin":"node brigade.mjs status","store:mode":"node scripts/run-brigade.mjs store mode show","update:bin":"node brigade.mjs update","agent:watch":"tsx --watch src/entry.ts agent","agents:bind":"node scripts/run-brigade.mjs agents bind","agents:list":"node scripts/run-brigade.mjs agents list","build:watch":"tsc -p tsconfig.build.json --watch","config:file":"node scripts/run-brigade.mjs config file","config:list":"node scripts/run-brigade.mjs config list","connect:bin":"node brigade.mjs connect","convex:push":"node scripts/convex-push.mjs","doctor:json":"node scripts/run-brigade.mjs doctor --json","expose:stop":"node scripts/run-brigade.mjs expose stop","gateway:bin":"node brigade.mjs gateway","logs:follow":"node scripts/run-brigade.mjs logs --follow","onboard:bin":"node brigade.mjs onboard","postinstall":"node scripts/brand-oauth-page.mjs","skills:info":"node scripts/run-brigade.mjs skills info","skills:list":"node scripts/run-brigade.mjs skills list","status:json":"node scripts/run-brigade.mjs status --json","store:reset":"node scripts/run-brigade.mjs store reset","upgrade:bin":"node brigade.mjs upgrade","channels:add":"node scripts/run-brigade.mjs channels add","gateway:stop":"node scripts/run-brigade.mjs gateway stop","pairing:list":"node scripts/run-brigade.mjs pairing list --channel whatsapp","update:check":"node scripts/run-brigade.mjs update --check","agents:delete":"node scripts/run-brigade.mjs agents delete","agents:unbind":"node scripts/run-brigade.mjs agents unbind","backup:create":"node scripts/run-brigade.mjs backup create","backup:verify":"node scripts/run-brigade.mjs backup verify","channels:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels:list":"node scripts/run-brigade.mjs channels list","config:schema":"node scripts/run-brigade.mjs config schema","connect:watch":"tsx --watch src/entry.ts connect","doctor:strict":"node scripts/run-brigade.mjs doctor --strict","expose:status":"node scripts/run-brigade.mjs expose status","gateway:watch":"tsx --watch src/entry.ts gateway","onboard:watch":"tsx --watch src/entry.ts onboard","secrets:audit":"node scripts/run-brigade.mjs secrets audit","sessions:list":"node scripts/run-brigade.mjs sessions list","store:migrate":"node scripts/run-brigade.mjs store migrate","backup:restore":"node scripts/run-brigade.mjs backup restore","channels:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","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","convex:install":"node scripts/install-convex.mjs","extensions:add":"node scripts/run-brigade.mjs extensions add","gateway:status":"node scripts/run-brigade.mjs gateway status","pairing:revoke":"node scripts/run-brigade.mjs pairing revoke --channel whatsapp","store:mode:set":"node scripts/run-brigade.mjs store mode set","telegram:allow":"node scripts/run-brigade.mjs channels allow list --channel telegram","telegram:token":"node scripts/run-brigade.mjs channels add --channel telegram","agents:bindings":"node scripts/run-brigade.mjs agents bindings","channels:enable":"node scripts/run-brigade.mjs channels enable --channel whatsapp","channels:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","channels:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","config:validate":"node scripts/run-brigade.mjs config validate","extensions:init":"node scripts/run-brigade.mjs extensions init","extensions:list":"node scripts/run-brigade.mjs extensions list","gateway:install":"node scripts/run-brigade.mjs gateway install","gateway:restart":"node scripts/run-brigade.mjs gateway restart","pairing:approve":"node scripts/run-brigade.mjs pairing approve --channel whatsapp","store:mode:show":"node scripts/run-brigade.mjs store mode show","telegram:enable":"node scripts/run-brigade.mjs channels enable --channel telegram","telegram:status":"node scripts/run-brigade.mjs channels status --channel telegram","bloody benchmark":"node scripts/run-brigade.mjs bloody benchmark","channels:disable":"node scripts/run-brigade.mjs channels disable --channel whatsapp","sessions:cleanup":"node scripts/run-brigade.mjs sessions cleanup","telegram:disable":"node scripts/run-brigade.mjs channels disable --channel telegram","extensions:doctor":"node scripts/run-brigade.mjs extensions doctor","extensions:remove":"node scripts/run-brigade.mjs extensions remove","gateway:uninstall":"node scripts/run-brigade.mjs gateway uninstall","smoke:strict-zero":"tsx scripts/strict-zero-smoke.mjs","store:reset:purge":"node scripts/run-brigade.mjs store reset --purge-local","channels:allow:add":"node scripts/run-brigade.mjs channels allow add --channel whatsapp","telegram:allow:add":"node scripts/run-brigade.mjs channels allow add --channel telegram","agents:set-identity":"node scripts/run-brigade.mjs agents set-identity","channels:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel whatsapp","telegram:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel telegram"},"_npmUser":{"name":"spinabot-labs","email":"npm@spinabot.com"},"overrides":{"ws":"$ws","exceljs":{"uuid":"^11.1.1"},"discord.js":{"undici":"^6.27.0"},"@discordjs/rest":{"undici":"^6.27.0"}},"repository":{"url":"git+https://github.com/spinabot/brigade.git","type":"git"},"_npmVersion":"11.17.0","description":"Brigade — your personal AI crew","directories":{},"_nodeVersion":"24.17.0","dependencies":{"ws":"^8.21.0","tar":"^7.5.15","zod":"^3.23.8","docx":"^9.7.1","jimp":"^1.6.1","jiti":"^2.6.1","yaml":"^2.9.0","chalk":"^5.3.0","json5":"^2.2.3","unpdf":"^1.6.2","cfonts":"^3.3.1","convex":"^1.40.0","croner":"^10.0.1","fflate":"^0.8.3","grammy":"^1.42.0","undici":"^7.25.0","exceljs":"^4.4.0","prompts":"^2.4.2","linkedom":"^0.18.12","commander":"^12.1.0","minimatch":"^10.2.5","pptxgenjs":"^4.0.1","discord.js":"^14.26.4","cli-highlight":"^2.1.11","@composio/core":"^0.10.0","@slack/web-api":"^7.17.0","@cantoo/pdf-lib":"^2.7.1","@grammyjs/types":"^3.21.0","playwright-core":"^1.59.0","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@pdf-lib/fontkit":"^1.1.1","https-proxy-agent":"^7.0.6","socks-proxy-agent":"^10.1.0","@slack/socket-mode":"^2.0.7","@mozilla/readability":"^0.6.0","@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@whiskeysockets/baileys":"7.0.0-rc13","@earendil-works/pi-agent-core":"0.79.9","@earendil-works/pi-coding-agent":"0.79.9","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","@types/ws":"^8.18.1","@types/tar":"^6.1.13","typescript":"^5.6.3","@types/node":"^22.10.0","@types/prompts":"^2.4.9","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2"},"_npmOperationalInternal":{"tmp":"tmp/brigade_1.17.1_1782670078711_0.5877944471035936","host":"s3://npm-registry-packages-npm-production"}},"1.18.0":{"name":"@spinabot/brigade","version":"1.18.0","keywords":["ai","agent","agents","ai-agent","cli","tui","llm","claude","openai","gemini","ollama","whatsapp","gateway","brigade"],"author":{"name":"Spinabot","email":"hello@brigade-agent.ai"},"license":"MIT","_id":"@spinabot/brigade@1.18.0","maintainers":[{"name":"dev-spinabot","email":"bhasvanth02@gmail.com"},{"name":"spinabot-labs","email":"npm@spinabot.com"}],"homepage":"https://brigade.spinabot.com","bugs":{"url":"https://github.com/spinabot/brigade/issues","email":"hello@brigade-agent.ai"},"bin":{"brigade":"brigade.mjs"},"dist":{"shasum":"36c38be1335292eab11edfd122cacdecede3a85e","tarball":"https://registry.npmjs.org/@spinabot/brigade/-/brigade-1.18.0.tgz","fileCount":2716,"integrity":"sha512-PUGT7OfC2qOKyajt004VTJlWyUOiikOgZP9m5MrleorGvUGiMVCFg1j+lZvOZ61qnJFQET/RGCOX3f9+czG7kA==","signatures":[{"sig":"MEQCIDB2prosyX6CB+ltSkE841Da8xi1hwUQ+NT0iarot/nWAiBBLKohoMlVyvztrCdVh5K2XAiH7ZNpz36LTm7nWwScQw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spinabot%2fbrigade@1.18.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":19981093},"main":"dist/entry.js","type":"module","types":"./dist/entry.d.ts","engines":{"node":">=22.12"},"exports":{".":"./brigade.mjs","./channel-sdk":{"types":"./dist/channel-sdk.d.ts","import":"./dist/channel-sdk.js"},"./package.json":"./package.json","./extension-sdk":{"types":"./dist/extension-sdk.d.ts","import":"./dist/extension-sdk.js"}},"gitHead":"caa54e53b081638dc8f647def2775ccd98b85ff3","scripts":{"wa":"node scripts/run-brigade.mjs channels status --channel whatsapp","dev":"node scripts/run-brigade.mjs","tui":"node scripts/run-brigade.mjs tui","auth":"node scripts/run-brigade.mjs auth","logs":"node scripts/run-brigade.mjs logs","test":"node scripts/run-tests.mjs","agent":"node scripts/run-brigade.mjs agent","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","build":"tsc -p tsconfig.build.json","clean":"node -e \"import('node:fs').then(fs => fs.rmSync('dist', { recursive: true, force: true }))\"","login":"node scripts/run-brigade.mjs login","start":"node scripts/run-brigade.mjs","store":"node scripts/run-brigade.mjs store","watch":"tsx --watch src/entry.ts","agents":"node scripts/run-brigade.mjs agents","backup":"node scripts/run-brigade.mjs backup create","doctor":"node scripts/run-brigade.mjs doctor","expose":"node scripts/run-brigade.mjs expose","skills":"node scripts/run-brigade.mjs skills list","status":"node scripts/run-brigade.mjs status","update":"node scripts/run-brigade.mjs update","brigade":"node brigade.mjs","connect":"node scripts/run-brigade.mjs connect","dev:tsx":"tsx src/entry.ts","gateway":"node scripts/run-brigade.mjs gateway","onboard":"node scripts/run-brigade.mjs onboard","pairing":"node scripts/run-brigade.mjs pairing list --channel whatsapp","prepack":"npm run build","tui:bin":"node brigade.mjs tui","upgrade":"node scripts/run-brigade.mjs upgrade","wa:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels":"node scripts/run-brigade.mjs channels","sessions":"node scripts/run-brigade.mjs sessions list","telegram":"node scripts/run-brigade.mjs channels status --channel telegram","wa:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","agent:bin":"node brigade.mjs agent","exec:list":"node scripts/run-brigade.mjs exec list","login:bin":"node brigade.mjs login","postbuild":"node scripts/build-done.mjs","tui:watch":"tsx --watch src/entry.ts tui","typecheck":"tsc -p tsconfig.json --noEmit","wa:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","wa:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","agents:add":"node scripts/run-brigade.mjs agents add","agents:bin":"node brigade.mjs agents","convex:dev":"node scripts/install-convex.mjs && node scripts/convex-dev.mjs","doctor:bin":"node brigade.mjs doctor","extensions":"node scripts/run-brigade.mjs extensions list","status:bin":"node brigade.mjs status","store:mode":"node scripts/run-brigade.mjs store mode show","update:bin":"node brigade.mjs update","agent:watch":"tsx --watch src/entry.ts agent","agents:bind":"node scripts/run-brigade.mjs agents bind","agents:list":"node scripts/run-brigade.mjs agents list","build:watch":"tsc -p tsconfig.build.json --watch","config:file":"node scripts/run-brigade.mjs config file","config:list":"node scripts/run-brigade.mjs config list","connect:bin":"node brigade.mjs connect","convex:push":"node scripts/convex-push.mjs","doctor:json":"node scripts/run-brigade.mjs doctor --json","expose:stop":"node scripts/run-brigade.mjs expose stop","gateway:bin":"node brigade.mjs gateway","logs:follow":"node scripts/run-brigade.mjs logs --follow","onboard:bin":"node brigade.mjs onboard","postinstall":"node scripts/brand-oauth-page.mjs","skills:info":"node scripts/run-brigade.mjs skills info","skills:list":"node scripts/run-brigade.mjs skills list","status:json":"node scripts/run-brigade.mjs status --json","store:reset":"node scripts/run-brigade.mjs store reset","upgrade:bin":"node brigade.mjs upgrade","channels:add":"node scripts/run-brigade.mjs channels add","gateway:stop":"node scripts/run-brigade.mjs gateway stop","pairing:list":"node scripts/run-brigade.mjs pairing list --channel whatsapp","update:check":"node scripts/run-brigade.mjs update --check","agents:delete":"node scripts/run-brigade.mjs agents delete","agents:unbind":"node scripts/run-brigade.mjs agents unbind","backup:create":"node scripts/run-brigade.mjs backup create","backup:verify":"node scripts/run-brigade.mjs backup verify","channels:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels:list":"node scripts/run-brigade.mjs channels list","config:schema":"node scripts/run-brigade.mjs config schema","connect:watch":"tsx --watch src/entry.ts connect","doctor:strict":"node scripts/run-brigade.mjs doctor --strict","expose:status":"node scripts/run-brigade.mjs expose status","gateway:watch":"tsx --watch src/entry.ts gateway","onboard:watch":"tsx --watch src/entry.ts onboard","secrets:audit":"node scripts/run-brigade.mjs secrets audit","sessions:list":"node scripts/run-brigade.mjs sessions list","store:migrate":"node scripts/run-brigade.mjs store migrate","backup:restore":"node scripts/run-brigade.mjs backup restore","channels:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","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","convex:install":"node scripts/install-convex.mjs","extensions:add":"node scripts/run-brigade.mjs extensions add","gateway:status":"node scripts/run-brigade.mjs gateway status","pairing:revoke":"node scripts/run-brigade.mjs pairing revoke --channel whatsapp","store:mode:set":"node scripts/run-brigade.mjs store mode set","telegram:allow":"node scripts/run-brigade.mjs channels allow list --channel telegram","telegram:token":"node scripts/run-brigade.mjs channels add --channel telegram","agents:bindings":"node scripts/run-brigade.mjs agents bindings","channels:enable":"node scripts/run-brigade.mjs channels enable --channel whatsapp","channels:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","channels:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","config:validate":"node scripts/run-brigade.mjs config validate","extensions:init":"node scripts/run-brigade.mjs extensions init","extensions:list":"node scripts/run-brigade.mjs extensions list","gateway:install":"node scripts/run-brigade.mjs gateway install","gateway:restart":"node scripts/run-brigade.mjs gateway restart","pairing:approve":"node scripts/run-brigade.mjs pairing approve --channel whatsapp","store:mode:show":"node scripts/run-brigade.mjs store mode show","telegram:enable":"node scripts/run-brigade.mjs channels enable --channel telegram","telegram:status":"node scripts/run-brigade.mjs channels status --channel telegram","bloody benchmark":"node scripts/run-brigade.mjs bloody benchmark","channels:disable":"node scripts/run-brigade.mjs channels disable --channel whatsapp","sessions:cleanup":"node scripts/run-brigade.mjs sessions cleanup","telegram:disable":"node scripts/run-brigade.mjs channels disable --channel telegram","extensions:doctor":"node scripts/run-brigade.mjs extensions doctor","extensions:remove":"node scripts/run-brigade.mjs extensions remove","gateway:uninstall":"node scripts/run-brigade.mjs gateway uninstall","smoke:strict-zero":"tsx scripts/strict-zero-smoke.mjs","store:reset:purge":"node scripts/run-brigade.mjs store reset --purge-local","channels:allow:add":"node scripts/run-brigade.mjs channels allow add --channel whatsapp","telegram:allow:add":"node scripts/run-brigade.mjs channels allow add --channel telegram","agents:set-identity":"node scripts/run-brigade.mjs agents set-identity","channels:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel whatsapp","telegram:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel telegram"},"_npmUser":{"name":"spinabot-labs","email":"npm@spinabot.com"},"overrides":{"ws":"$ws","exceljs":{"uuid":"^11.1.1"},"discord.js":{"undici":"^6.27.0"},"@discordjs/rest":{"undici":"^6.27.0"}},"repository":{"url":"git+https://github.com/spinabot/brigade.git","type":"git"},"_npmVersion":"11.18.0","description":"Brigade — your personal AI crew","directories":{},"_nodeVersion":"24.17.0","dependencies":{"ws":"^8.21.0","tar":"^7.5.15","zod":"^3.23.8","docx":"^9.7.1","jimp":"^1.6.1","jiti":"^2.6.1","yaml":"^2.9.0","chalk":"^5.3.0","json5":"^2.2.3","unpdf":"^1.6.2","cfonts":"^3.3.1","convex":"^1.40.0","croner":"^10.0.1","fflate":"^0.8.3","grammy":"^1.42.0","undici":"^7.25.0","exceljs":"^4.4.0","prompts":"^2.4.2","linkedom":"^0.18.12","commander":"^12.1.0","minimatch":"^10.2.5","pptxgenjs":"^4.0.1","discord.js":"^14.26.4","cli-highlight":"^2.1.11","@composio/core":"^0.10.0","@slack/web-api":"^7.17.0","@cantoo/pdf-lib":"^2.7.1","@grammyjs/types":"^3.21.0","playwright-core":"^1.59.0","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@pdf-lib/fontkit":"^1.1.1","https-proxy-agent":"^7.0.6","socks-proxy-agent":"^10.1.0","@slack/socket-mode":"^2.0.7","@mozilla/readability":"^0.6.0","@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@whiskeysockets/baileys":"7.0.0-rc13","@earendil-works/pi-agent-core":"0.79.9","@earendil-works/pi-coding-agent":"0.79.9","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","@types/ws":"^8.18.1","@types/tar":"^6.1.13","typescript":"^5.6.3","@types/node":"^22.10.0","@types/prompts":"^2.4.9","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2"},"_npmOperationalInternal":{"tmp":"tmp/brigade_1.18.0_1782764225192_0.29739049856760325","host":"s3://npm-registry-packages-npm-production"}},"1.19.0":{"name":"@spinabot/brigade","version":"1.19.0","keywords":["ai","agent","agents","ai-agent","cli","tui","llm","claude","openai","gemini","ollama","whatsapp","gateway","brigade"],"author":{"name":"Spinabot","email":"hello@brigade-agent.ai"},"license":"MIT","_id":"@spinabot/brigade@1.19.0","maintainers":[{"name":"dev-spinabot","email":"bhasvanth02@gmail.com"},{"name":"spinabot-labs","email":"npm@spinabot.com"}],"homepage":"https://brigade.spinabot.com","bugs":{"url":"https://github.com/spinabot/brigade/issues","email":"hello@brigade-agent.ai"},"bin":{"brigade":"brigade.mjs"},"dist":{"shasum":"9dd35dca431b1673902134894549261873c762e8","tarball":"https://registry.npmjs.org/@spinabot/brigade/-/brigade-1.19.0.tgz","fileCount":2716,"integrity":"sha512-f9ik9L/Rv2EXL1+UrccYPUQpO/oPPpB8pMnuT73ANjI0RX/mTImMmdpMXeChMuJ2X0F9crHQLelVTweSIVKTyQ==","signatures":[{"sig":"MEUCIQDoqzpIi1RCh5kvUTsP1IIaW1utAMRhXMWETJNSUrX8agIgZwz8bo3XTJ+TpEuE67WLIdIMsXUNUGPk1vITn09OEt0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spinabot%2fbrigade@1.19.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":19986660},"main":"dist/entry.js","type":"module","types":"./dist/entry.d.ts","engines":{"node":">=22.12"},"exports":{".":"./brigade.mjs","./channel-sdk":{"types":"./dist/channel-sdk.d.ts","import":"./dist/channel-sdk.js"},"./package.json":"./package.json","./extension-sdk":{"types":"./dist/extension-sdk.d.ts","import":"./dist/extension-sdk.js"}},"gitHead":"f865e1a470ec2693bf70a028f7a6f57629e97b4e","scripts":{"wa":"node scripts/run-brigade.mjs channels status --channel whatsapp","dev":"node scripts/run-brigade.mjs","tui":"node scripts/run-brigade.mjs tui","auth":"node scripts/run-brigade.mjs auth","logs":"node scripts/run-brigade.mjs logs","test":"node scripts/run-tests.mjs","agent":"node scripts/run-brigade.mjs agent","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","build":"tsc -p tsconfig.build.json","clean":"node -e \"import('node:fs').then(fs => fs.rmSync('dist', { recursive: true, force: true }))\"","login":"node scripts/run-brigade.mjs login","start":"node scripts/run-brigade.mjs","store":"node scripts/run-brigade.mjs store","watch":"tsx --watch src/entry.ts","agents":"node scripts/run-brigade.mjs agents","backup":"node scripts/run-brigade.mjs backup create","doctor":"node scripts/run-brigade.mjs doctor","expose":"node scripts/run-brigade.mjs expose","skills":"node scripts/run-brigade.mjs skills list","status":"node scripts/run-brigade.mjs status","update":"node scripts/run-brigade.mjs update","brigade":"node brigade.mjs","connect":"node scripts/run-brigade.mjs connect","dev:tsx":"tsx src/entry.ts","gateway":"node scripts/run-brigade.mjs gateway","onboard":"node scripts/run-brigade.mjs onboard","pairing":"node scripts/run-brigade.mjs pairing list --channel whatsapp","prepack":"npm run build","tui:bin":"node brigade.mjs tui","upgrade":"node scripts/run-brigade.mjs upgrade","wa:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels":"node scripts/run-brigade.mjs channels","sessions":"node scripts/run-brigade.mjs sessions list","telegram":"node scripts/run-brigade.mjs channels status --channel telegram","wa:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","agent:bin":"node brigade.mjs agent","exec:list":"node scripts/run-brigade.mjs exec list","login:bin":"node brigade.mjs login","postbuild":"node scripts/build-done.mjs","tui:watch":"tsx --watch src/entry.ts tui","typecheck":"tsc -p tsconfig.json --noEmit","wa:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","wa:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","agents:add":"node scripts/run-brigade.mjs agents add","agents:bin":"node brigade.mjs agents","convex:dev":"node scripts/install-convex.mjs && node scripts/convex-dev.mjs","doctor:bin":"node brigade.mjs doctor","extensions":"node scripts/run-brigade.mjs extensions list","status:bin":"node brigade.mjs status","store:mode":"node scripts/run-brigade.mjs store mode show","update:bin":"node brigade.mjs update","agent:watch":"tsx --watch src/entry.ts agent","agents:bind":"node scripts/run-brigade.mjs agents bind","agents:list":"node scripts/run-brigade.mjs agents list","build:watch":"tsc -p tsconfig.build.json --watch","config:file":"node scripts/run-brigade.mjs config file","config:list":"node scripts/run-brigade.mjs config list","connect:bin":"node brigade.mjs connect","convex:push":"node scripts/convex-push.mjs","doctor:json":"node scripts/run-brigade.mjs doctor --json","expose:stop":"node scripts/run-brigade.mjs expose stop","gateway:bin":"node brigade.mjs gateway","logs:follow":"node scripts/run-brigade.mjs logs --follow","onboard:bin":"node brigade.mjs onboard","postinstall":"node scripts/brand-oauth-page.mjs","skills:info":"node scripts/run-brigade.mjs skills info","skills:list":"node scripts/run-brigade.mjs skills list","status:json":"node scripts/run-brigade.mjs status --json","store:reset":"node scripts/run-brigade.mjs store reset","upgrade:bin":"node brigade.mjs upgrade","channels:add":"node scripts/run-brigade.mjs channels add","gateway:stop":"node scripts/run-brigade.mjs gateway stop","pairing:list":"node scripts/run-brigade.mjs pairing list --channel whatsapp","update:check":"node scripts/run-brigade.mjs update --check","agents:delete":"node scripts/run-brigade.mjs agents delete","agents:unbind":"node scripts/run-brigade.mjs agents unbind","backup:create":"node scripts/run-brigade.mjs backup create","backup:verify":"node scripts/run-brigade.mjs backup verify","channels:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels:list":"node scripts/run-brigade.mjs channels list","config:schema":"node scripts/run-brigade.mjs config schema","connect:watch":"tsx --watch src/entry.ts connect","doctor:strict":"node scripts/run-brigade.mjs doctor --strict","expose:status":"node scripts/run-brigade.mjs expose status","gateway:watch":"tsx --watch src/entry.ts gateway","onboard:watch":"tsx --watch src/entry.ts onboard","secrets:audit":"node scripts/run-brigade.mjs secrets audit","sessions:list":"node scripts/run-brigade.mjs sessions list","store:migrate":"node scripts/run-brigade.mjs store migrate","backup:restore":"node scripts/run-brigade.mjs backup restore","channels:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","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","convex:install":"node scripts/install-convex.mjs","extensions:add":"node scripts/run-brigade.mjs extensions add","gateway:status":"node scripts/run-brigade.mjs gateway status","pairing:revoke":"node scripts/run-brigade.mjs pairing revoke --channel whatsapp","store:mode:set":"node scripts/run-brigade.mjs store mode set","telegram:allow":"node scripts/run-brigade.mjs channels allow list --channel telegram","telegram:token":"node scripts/run-brigade.mjs channels add --channel telegram","agents:bindings":"node scripts/run-brigade.mjs agents bindings","channels:enable":"node scripts/run-brigade.mjs channels enable --channel whatsapp","channels:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","channels:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","config:validate":"node scripts/run-brigade.mjs config validate","extensions:init":"node scripts/run-brigade.mjs extensions init","extensions:list":"node scripts/run-brigade.mjs extensions list","gateway:install":"node scripts/run-brigade.mjs gateway install","gateway:restart":"node scripts/run-brigade.mjs gateway restart","pairing:approve":"node scripts/run-brigade.mjs pairing approve --channel whatsapp","store:mode:show":"node scripts/run-brigade.mjs store mode show","telegram:enable":"node scripts/run-brigade.mjs channels enable --channel telegram","telegram:status":"node scripts/run-brigade.mjs channels status --channel telegram","bloody benchmark":"node scripts/run-brigade.mjs bloody benchmark","channels:disable":"node scripts/run-brigade.mjs channels disable --channel whatsapp","sessions:cleanup":"node scripts/run-brigade.mjs sessions cleanup","telegram:disable":"node scripts/run-brigade.mjs channels disable --channel telegram","extensions:doctor":"node scripts/run-brigade.mjs extensions doctor","extensions:remove":"node scripts/run-brigade.mjs extensions remove","gateway:uninstall":"node scripts/run-brigade.mjs gateway uninstall","smoke:strict-zero":"tsx scripts/strict-zero-smoke.mjs","store:reset:purge":"node scripts/run-brigade.mjs store reset --purge-local","channels:allow:add":"node scripts/run-brigade.mjs channels allow add --channel whatsapp","telegram:allow:add":"node scripts/run-brigade.mjs channels allow add --channel telegram","agents:set-identity":"node scripts/run-brigade.mjs agents set-identity","channels:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel whatsapp","telegram:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel telegram"},"_npmUser":{"name":"spinabot-labs","email":"npm@spinabot.com"},"overrides":{"ws":"$ws","exceljs":{"uuid":"^11.1.1"},"discord.js":{"undici":"^6.27.0"},"@discordjs/rest":{"undici":"^6.27.0"}},"repository":{"url":"git+https://github.com/spinabot/brigade.git","type":"git"},"_npmVersion":"11.18.0","description":"Brigade — your personal AI crew","directories":{},"_nodeVersion":"24.17.0","dependencies":{"ws":"^8.21.0","tar":"^7.5.15","zod":"^3.23.8","docx":"^9.7.1","jimp":"^1.6.1","jiti":"^2.6.1","yaml":"^2.9.0","chalk":"^5.3.0","json5":"^2.2.3","unpdf":"^1.6.2","cfonts":"^3.3.1","convex":"^1.40.0","croner":"^10.0.1","fflate":"^0.8.3","grammy":"^1.42.0","undici":"^7.25.0","exceljs":"^4.4.0","prompts":"^2.4.2","linkedom":"^0.18.12","commander":"^12.1.0","minimatch":"^10.2.5","pptxgenjs":"^4.0.1","discord.js":"^14.26.4","cli-highlight":"^2.1.11","@composio/core":"^0.10.0","@slack/web-api":"^7.17.0","@cantoo/pdf-lib":"^2.7.1","@grammyjs/types":"^3.21.0","playwright-core":"^1.59.0","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@pdf-lib/fontkit":"^1.1.1","https-proxy-agent":"^7.0.6","socks-proxy-agent":"^10.1.0","@slack/socket-mode":"^2.0.7","@mozilla/readability":"^0.6.0","@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@whiskeysockets/baileys":"7.0.0-rc13","@earendil-works/pi-agent-core":"0.79.9","@earendil-works/pi-coding-agent":"0.79.9","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","@types/ws":"^8.18.1","@types/tar":"^6.1.13","typescript":"^5.6.3","@types/node":"^22.10.0","@types/prompts":"^2.4.9","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2"},"_npmOperationalInternal":{"tmp":"tmp/brigade_1.19.0_1782771210004_0.5706453517766377","host":"s3://npm-registry-packages-npm-production"}},"1.19.1":{"name":"@spinabot/brigade","version":"1.19.1","keywords":["ai","agent","agents","ai-agent","cli","tui","llm","claude","openai","gemini","ollama","whatsapp","gateway","brigade"],"author":{"name":"Spinabot","email":"hello@brigade-agent.ai"},"license":"MIT","_id":"@spinabot/brigade@1.19.1","maintainers":[{"name":"dev-spinabot","email":"bhasvanth02@gmail.com"},{"name":"spinabot-labs","email":"npm@spinabot.com"}],"homepage":"https://brigade.spinabot.com","bugs":{"url":"https://github.com/spinabot/brigade/issues","email":"hello@brigade-agent.ai"},"bin":{"brigade":"brigade.mjs"},"dist":{"shasum":"dd074700ba47ac85bef49c6befdacaaff8388893","tarball":"https://registry.npmjs.org/@spinabot/brigade/-/brigade-1.19.1.tgz","fileCount":2716,"integrity":"sha512-N7GwmXutFV9odndGXUqsKo0iyi/HbbZXaOaS7ApwXT2H4Pe2u0kPv1UYf43jE/4svyrkDr3pptI7ShfNmMLCRw==","signatures":[{"sig":"MEUCIQDRgCWRNxPQ6MLk+LafcPjSfN7yOlQrijVmHrecMUu0bwIgfhGPMPK3CtodUDxUIbYM1fMynscyU585soTDaO2PJvA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spinabot%2fbrigade@1.19.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":19997667},"main":"dist/entry.js","type":"module","types":"./dist/entry.d.ts","engines":{"node":">=22.12"},"exports":{".":"./brigade.mjs","./channel-sdk":{"types":"./dist/channel-sdk.d.ts","import":"./dist/channel-sdk.js"},"./package.json":"./package.json","./extension-sdk":{"types":"./dist/extension-sdk.d.ts","import":"./dist/extension-sdk.js"}},"gitHead":"abbee7324714b25af9d387b2162e6a20d174aad6","scripts":{"wa":"node scripts/run-brigade.mjs channels status --channel whatsapp","dev":"node scripts/run-brigade.mjs","tui":"node scripts/run-brigade.mjs tui","auth":"node scripts/run-brigade.mjs auth","logs":"node scripts/run-brigade.mjs logs","test":"node scripts/run-tests.mjs","agent":"node scripts/run-brigade.mjs agent","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","build":"tsc -p tsconfig.build.json","clean":"node -e \"import('node:fs').then(fs => fs.rmSync('dist', { recursive: true, force: true }))\"","login":"node scripts/run-brigade.mjs login","start":"node scripts/run-brigade.mjs","store":"node scripts/run-brigade.mjs store","watch":"tsx --watch src/entry.ts","agents":"node scripts/run-brigade.mjs agents","backup":"node scripts/run-brigade.mjs backup create","doctor":"node scripts/run-brigade.mjs doctor","expose":"node scripts/run-brigade.mjs expose","skills":"node scripts/run-brigade.mjs skills list","status":"node scripts/run-brigade.mjs status","update":"node scripts/run-brigade.mjs update","brigade":"node brigade.mjs","connect":"node scripts/run-brigade.mjs connect","dev:tsx":"tsx src/entry.ts","gateway":"node scripts/run-brigade.mjs gateway","onboard":"node scripts/run-brigade.mjs onboard","pairing":"node scripts/run-brigade.mjs pairing list --channel whatsapp","prepack":"npm run build","tui:bin":"node brigade.mjs tui","upgrade":"node scripts/run-brigade.mjs upgrade","wa:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels":"node scripts/run-brigade.mjs channels","sessions":"node scripts/run-brigade.mjs sessions list","telegram":"node scripts/run-brigade.mjs channels status --channel telegram","wa:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","agent:bin":"node brigade.mjs agent","exec:list":"node scripts/run-brigade.mjs exec list","login:bin":"node brigade.mjs login","postbuild":"node scripts/build-done.mjs","tui:watch":"tsx --watch src/entry.ts tui","typecheck":"tsc -p tsconfig.json --noEmit","wa:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","wa:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","agents:add":"node scripts/run-brigade.mjs agents add","agents:bin":"node brigade.mjs agents","convex:dev":"node scripts/install-convex.mjs && node scripts/convex-dev.mjs","doctor:bin":"node brigade.mjs doctor","extensions":"node scripts/run-brigade.mjs extensions list","status:bin":"node brigade.mjs status","store:mode":"node scripts/run-brigade.mjs store mode show","update:bin":"node brigade.mjs update","agent:watch":"tsx --watch src/entry.ts agent","agents:bind":"node scripts/run-brigade.mjs agents bind","agents:list":"node scripts/run-brigade.mjs agents list","build:watch":"tsc -p tsconfig.build.json --watch","config:file":"node scripts/run-brigade.mjs config file","config:list":"node scripts/run-brigade.mjs config list","connect:bin":"node brigade.mjs connect","convex:push":"node scripts/convex-push.mjs","doctor:json":"node scripts/run-brigade.mjs doctor --json","expose:stop":"node scripts/run-brigade.mjs expose stop","gateway:bin":"node brigade.mjs gateway","logs:follow":"node scripts/run-brigade.mjs logs --follow","onboard:bin":"node brigade.mjs onboard","postinstall":"node scripts/brand-oauth-page.mjs","skills:info":"node scripts/run-brigade.mjs skills info","skills:list":"node scripts/run-brigade.mjs skills list","status:json":"node scripts/run-brigade.mjs status --json","store:reset":"node scripts/run-brigade.mjs store reset","upgrade:bin":"node brigade.mjs upgrade","channels:add":"node scripts/run-brigade.mjs channels add","gateway:stop":"node scripts/run-brigade.mjs gateway stop","pairing:list":"node scripts/run-brigade.mjs pairing list --channel whatsapp","update:check":"node scripts/run-brigade.mjs update --check","agents:delete":"node scripts/run-brigade.mjs agents delete","agents:unbind":"node scripts/run-brigade.mjs agents unbind","backup:create":"node scripts/run-brigade.mjs backup create","backup:verify":"node scripts/run-brigade.mjs backup verify","channels:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels:list":"node scripts/run-brigade.mjs channels list","config:schema":"node scripts/run-brigade.mjs config schema","connect:watch":"tsx --watch src/entry.ts connect","doctor:strict":"node scripts/run-brigade.mjs doctor --strict","expose:status":"node scripts/run-brigade.mjs expose status","gateway:watch":"tsx --watch src/entry.ts gateway","onboard:watch":"tsx --watch src/entry.ts onboard","secrets:audit":"node scripts/run-brigade.mjs secrets audit","sessions:list":"node scripts/run-brigade.mjs sessions list","store:migrate":"node scripts/run-brigade.mjs store migrate","backup:restore":"node scripts/run-brigade.mjs backup restore","channels:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","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","convex:install":"node scripts/install-convex.mjs","extensions:add":"node scripts/run-brigade.mjs extensions add","gateway:status":"node scripts/run-brigade.mjs gateway status","pairing:revoke":"node scripts/run-brigade.mjs pairing revoke --channel whatsapp","store:mode:set":"node scripts/run-brigade.mjs store mode set","telegram:allow":"node scripts/run-brigade.mjs channels allow list --channel telegram","telegram:token":"node scripts/run-brigade.mjs channels add --channel telegram","agents:bindings":"node scripts/run-brigade.mjs agents bindings","channels:enable":"node scripts/run-brigade.mjs channels enable --channel whatsapp","channels:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","channels:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","config:validate":"node scripts/run-brigade.mjs config validate","extensions:init":"node scripts/run-brigade.mjs extensions init","extensions:list":"node scripts/run-brigade.mjs extensions list","gateway:install":"node scripts/run-brigade.mjs gateway install","gateway:restart":"node scripts/run-brigade.mjs gateway restart","pairing:approve":"node scripts/run-brigade.mjs pairing approve --channel whatsapp","store:mode:show":"node scripts/run-brigade.mjs store mode show","telegram:enable":"node scripts/run-brigade.mjs channels enable --channel telegram","telegram:status":"node scripts/run-brigade.mjs channels status --channel telegram","bloody benchmark":"node scripts/run-brigade.mjs bloody benchmark","channels:disable":"node scripts/run-brigade.mjs channels disable --channel whatsapp","sessions:cleanup":"node scripts/run-brigade.mjs sessions cleanup","telegram:disable":"node scripts/run-brigade.mjs channels disable --channel telegram","extensions:doctor":"node scripts/run-brigade.mjs extensions doctor","extensions:remove":"node scripts/run-brigade.mjs extensions remove","gateway:uninstall":"node scripts/run-brigade.mjs gateway uninstall","smoke:strict-zero":"tsx scripts/strict-zero-smoke.mjs","store:reset:purge":"node scripts/run-brigade.mjs store reset --purge-local","channels:allow:add":"node scripts/run-brigade.mjs channels allow add --channel whatsapp","telegram:allow:add":"node scripts/run-brigade.mjs channels allow add --channel telegram","agents:set-identity":"node scripts/run-brigade.mjs agents set-identity","channels:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel whatsapp","telegram:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel telegram"},"_npmUser":{"name":"spinabot-labs","email":"npm@spinabot.com"},"overrides":{"ws":"$ws","exceljs":{"uuid":"^11.1.1"},"discord.js":{"undici":"^6.27.0"},"@discordjs/rest":{"undici":"^6.27.0"}},"repository":{"url":"git+https://github.com/spinabot/brigade.git","type":"git"},"_npmVersion":"11.18.0","description":"Brigade — your personal AI crew","directories":{},"_nodeVersion":"24.17.0","dependencies":{"ws":"^8.21.0","tar":"^7.5.15","zod":"^3.23.8","docx":"^9.7.1","jimp":"^1.6.1","jiti":"^2.6.1","yaml":"^2.9.0","chalk":"^5.3.0","json5":"^2.2.3","unpdf":"^1.6.2","cfonts":"^3.3.1","convex":"^1.40.0","croner":"^10.0.1","fflate":"^0.8.3","grammy":"^1.42.0","undici":"^7.25.0","exceljs":"^4.4.0","prompts":"^2.4.2","linkedom":"^0.18.12","commander":"^12.1.0","minimatch":"^10.2.5","pptxgenjs":"^4.0.1","discord.js":"^14.26.4","cli-highlight":"^2.1.11","@composio/core":"^0.10.0","@slack/web-api":"^7.17.0","@cantoo/pdf-lib":"^2.7.1","@grammyjs/types":"^3.21.0","playwright-core":"^1.59.0","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@pdf-lib/fontkit":"^1.1.1","https-proxy-agent":"^7.0.6","socks-proxy-agent":"^10.1.0","@slack/socket-mode":"^2.0.7","@mozilla/readability":"^0.6.0","@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@whiskeysockets/baileys":"7.0.0-rc13","@earendil-works/pi-agent-core":"0.79.9","@earendil-works/pi-coding-agent":"0.79.9","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","@types/ws":"^8.18.1","@types/tar":"^6.1.13","typescript":"^5.6.3","@types/node":"^22.10.0","@types/prompts":"^2.4.9","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2"},"_npmOperationalInternal":{"tmp":"tmp/brigade_1.19.1_1782772860652_0.561183546520261","host":"s3://npm-registry-packages-npm-production"}},"1.19.2":{"name":"@spinabot/brigade","version":"1.19.2","keywords":["ai","agent","agents","ai-agent","cli","tui","llm","claude","openai","gemini","ollama","whatsapp","gateway","brigade"],"author":{"name":"Spinabot","email":"hello@brigade-agent.ai"},"license":"MIT","_id":"@spinabot/brigade@1.19.2","maintainers":[{"name":"dev-spinabot","email":"bhasvanth02@gmail.com"},{"name":"spinabot-labs","email":"npm@spinabot.com"}],"homepage":"https://brigade.spinabot.com","bugs":{"url":"https://github.com/spinabot/brigade/issues","email":"hello@brigade-agent.ai"},"bin":{"brigade":"brigade.mjs"},"dist":{"shasum":"1a83f776d1a69a6cca52f82f7e236caae97a9eb0","tarball":"https://registry.npmjs.org/@spinabot/brigade/-/brigade-1.19.2.tgz","fileCount":2716,"integrity":"sha512-zTfN2Cw7KP4G4VNdRQ8vE82+xpZK+egt0QF4odIAF7VItsoP0nYVdZ2HKw6WTIHPW3Nszd9TWVnqI0NsTx0MMA==","signatures":[{"sig":"MEUCIFIKFr/Nnie75ueJRSLXwcpEWwcIUW6/d6xlaHnVXYu1AiEAk2riTez/3fwhBrTcCQK945866403HlL/NzJDCouZhu0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spinabot%2fbrigade@1.19.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":20002035},"main":"dist/entry.js","type":"module","types":"./dist/entry.d.ts","engines":{"node":">=22.12"},"exports":{".":"./brigade.mjs","./channel-sdk":{"types":"./dist/channel-sdk.d.ts","import":"./dist/channel-sdk.js"},"./package.json":"./package.json","./extension-sdk":{"types":"./dist/extension-sdk.d.ts","import":"./dist/extension-sdk.js"}},"gitHead":"bf0cf11c33cd966aa90ba86cba22e25101140246","scripts":{"wa":"node scripts/run-brigade.mjs channels status --channel whatsapp","dev":"node scripts/run-brigade.mjs","tui":"node scripts/run-brigade.mjs tui","auth":"node scripts/run-brigade.mjs auth","logs":"node scripts/run-brigade.mjs logs","test":"node scripts/run-tests.mjs","agent":"node scripts/run-brigade.mjs agent","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","build":"tsc -p tsconfig.build.json","clean":"node -e \"import('node:fs').then(fs => fs.rmSync('dist', { recursive: true, force: true }))\"","login":"node scripts/run-brigade.mjs login","start":"node scripts/run-brigade.mjs","store":"node scripts/run-brigade.mjs store","watch":"tsx --watch src/entry.ts","agents":"node scripts/run-brigade.mjs agents","backup":"node scripts/run-brigade.mjs backup create","doctor":"node scripts/run-brigade.mjs doctor","expose":"node scripts/run-brigade.mjs expose","skills":"node scripts/run-brigade.mjs skills list","status":"node scripts/run-brigade.mjs status","update":"node scripts/run-brigade.mjs update","brigade":"node brigade.mjs","connect":"node scripts/run-brigade.mjs connect","dev:tsx":"tsx src/entry.ts","gateway":"node scripts/run-brigade.mjs gateway","onboard":"node scripts/run-brigade.mjs onboard","pairing":"node scripts/run-brigade.mjs pairing list --channel whatsapp","prepack":"npm run build","tui:bin":"node brigade.mjs tui","upgrade":"node scripts/run-brigade.mjs upgrade","wa:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels":"node scripts/run-brigade.mjs channels","sessions":"node scripts/run-brigade.mjs sessions list","telegram":"node scripts/run-brigade.mjs channels status --channel telegram","wa:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","agent:bin":"node brigade.mjs agent","exec:list":"node scripts/run-brigade.mjs exec list","login:bin":"node brigade.mjs login","postbuild":"node scripts/build-done.mjs","tui:watch":"tsx --watch src/entry.ts tui","typecheck":"tsc -p tsconfig.json --noEmit","wa:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","wa:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","agents:add":"node scripts/run-brigade.mjs agents add","agents:bin":"node brigade.mjs agents","convex:dev":"node scripts/install-convex.mjs && node scripts/convex-dev.mjs","doctor:bin":"node brigade.mjs doctor","extensions":"node scripts/run-brigade.mjs extensions list","status:bin":"node brigade.mjs status","store:mode":"node scripts/run-brigade.mjs store mode show","update:bin":"node brigade.mjs update","agent:watch":"tsx --watch src/entry.ts agent","agents:bind":"node scripts/run-brigade.mjs agents bind","agents:list":"node scripts/run-brigade.mjs agents list","build:watch":"tsc -p tsconfig.build.json --watch","config:file":"node scripts/run-brigade.mjs config file","config:list":"node scripts/run-brigade.mjs config list","connect:bin":"node brigade.mjs connect","convex:push":"node scripts/convex-push.mjs","doctor:json":"node scripts/run-brigade.mjs doctor --json","expose:stop":"node scripts/run-brigade.mjs expose stop","gateway:bin":"node brigade.mjs gateway","logs:follow":"node scripts/run-brigade.mjs logs --follow","onboard:bin":"node brigade.mjs onboard","postinstall":"node scripts/brand-oauth-page.mjs","skills:info":"node scripts/run-brigade.mjs skills info","skills:list":"node scripts/run-brigade.mjs skills list","status:json":"node scripts/run-brigade.mjs status --json","store:reset":"node scripts/run-brigade.mjs store reset","upgrade:bin":"node brigade.mjs upgrade","channels:add":"node scripts/run-brigade.mjs channels add","gateway:stop":"node scripts/run-brigade.mjs gateway stop","pairing:list":"node scripts/run-brigade.mjs pairing list --channel whatsapp","update:check":"node scripts/run-brigade.mjs update --check","agents:delete":"node scripts/run-brigade.mjs agents delete","agents:unbind":"node scripts/run-brigade.mjs agents unbind","backup:create":"node scripts/run-brigade.mjs backup create","backup:verify":"node scripts/run-brigade.mjs backup verify","channels:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels:list":"node scripts/run-brigade.mjs channels list","config:schema":"node scripts/run-brigade.mjs config schema","connect:watch":"tsx --watch src/entry.ts connect","doctor:strict":"node scripts/run-brigade.mjs doctor --strict","expose:status":"node scripts/run-brigade.mjs expose status","gateway:watch":"tsx --watch src/entry.ts gateway","onboard:watch":"tsx --watch src/entry.ts onboard","secrets:audit":"node scripts/run-brigade.mjs secrets audit","sessions:list":"node scripts/run-brigade.mjs sessions list","store:migrate":"node scripts/run-brigade.mjs store migrate","backup:restore":"node scripts/run-brigade.mjs backup restore","channels:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","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","convex:install":"node scripts/install-convex.mjs","extensions:add":"node scripts/run-brigade.mjs extensions add","gateway:status":"node scripts/run-brigade.mjs gateway status","pairing:revoke":"node scripts/run-brigade.mjs pairing revoke --channel whatsapp","store:mode:set":"node scripts/run-brigade.mjs store mode set","telegram:allow":"node scripts/run-brigade.mjs channels allow list --channel telegram","telegram:token":"node scripts/run-brigade.mjs channels add --channel telegram","agents:bindings":"node scripts/run-brigade.mjs agents bindings","channels:enable":"node scripts/run-brigade.mjs channels enable --channel whatsapp","channels:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","channels:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","config:validate":"node scripts/run-brigade.mjs config validate","extensions:init":"node scripts/run-brigade.mjs extensions init","extensions:list":"node scripts/run-brigade.mjs extensions list","gateway:install":"node scripts/run-brigade.mjs gateway install","gateway:restart":"node scripts/run-brigade.mjs gateway restart","pairing:approve":"node scripts/run-brigade.mjs pairing approve --channel whatsapp","store:mode:show":"node scripts/run-brigade.mjs store mode show","telegram:enable":"node scripts/run-brigade.mjs channels enable --channel telegram","telegram:status":"node scripts/run-brigade.mjs channels status --channel telegram","bloody benchmark":"node scripts/run-brigade.mjs bloody benchmark","channels:disable":"node scripts/run-brigade.mjs channels disable --channel whatsapp","sessions:cleanup":"node scripts/run-brigade.mjs sessions cleanup","telegram:disable":"node scripts/run-brigade.mjs channels disable --channel telegram","extensions:doctor":"node scripts/run-brigade.mjs extensions doctor","extensions:remove":"node scripts/run-brigade.mjs extensions remove","gateway:uninstall":"node scripts/run-brigade.mjs gateway uninstall","smoke:strict-zero":"tsx scripts/strict-zero-smoke.mjs","store:reset:purge":"node scripts/run-brigade.mjs store reset --purge-local","channels:allow:add":"node scripts/run-brigade.mjs channels allow add --channel whatsapp","telegram:allow:add":"node scripts/run-brigade.mjs channels allow add --channel telegram","agents:set-identity":"node scripts/run-brigade.mjs agents set-identity","channels:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel whatsapp","telegram:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel telegram"},"_npmUser":{"name":"spinabot-labs","email":"npm@spinabot.com"},"overrides":{"ws":"$ws","exceljs":{"uuid":"^11.1.1"},"discord.js":{"undici":"^6.27.0"},"@discordjs/rest":{"undici":"^6.27.0"}},"repository":{"url":"git+https://github.com/spinabot/brigade.git","type":"git"},"_npmVersion":"11.18.0","description":"Brigade — your personal AI crew","directories":{},"_nodeVersion":"24.17.0","dependencies":{"ws":"^8.21.0","tar":"^7.5.15","zod":"^3.23.8","docx":"^9.7.1","jimp":"^1.6.1","jiti":"^2.6.1","yaml":"^2.9.0","chalk":"^5.3.0","json5":"^2.2.3","unpdf":"^1.6.2","cfonts":"^3.3.1","convex":"^1.40.0","croner":"^10.0.1","fflate":"^0.8.3","grammy":"^1.42.0","undici":"^7.25.0","exceljs":"^4.4.0","prompts":"^2.4.2","linkedom":"^0.18.12","commander":"^12.1.0","minimatch":"^10.2.5","pptxgenjs":"^4.0.1","discord.js":"^14.26.4","cli-highlight":"^2.1.11","@composio/core":"^0.10.0","@slack/web-api":"^7.17.0","@cantoo/pdf-lib":"^2.7.1","@grammyjs/types":"^3.21.0","playwright-core":"^1.59.0","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@pdf-lib/fontkit":"^1.1.1","https-proxy-agent":"^7.0.6","socks-proxy-agent":"^10.1.0","@slack/socket-mode":"^2.0.7","@mozilla/readability":"^0.6.0","@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@whiskeysockets/baileys":"7.0.0-rc13","@earendil-works/pi-agent-core":"0.79.9","@earendil-works/pi-coding-agent":"0.79.9","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","@types/ws":"^8.18.1","@types/tar":"^6.1.13","typescript":"^5.6.3","@types/node":"^22.10.0","@types/prompts":"^2.4.9","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2"},"_npmOperationalInternal":{"tmp":"tmp/brigade_1.19.2_1782839709980_0.4973740664652295","host":"s3://npm-registry-packages-npm-production"}},"1.19.3":{"name":"@spinabot/brigade","version":"1.19.3","keywords":["ai","agent","agents","ai-agent","cli","tui","llm","claude","openai","gemini","ollama","whatsapp","gateway","brigade"],"author":{"name":"Spinabot","email":"hello@brigade-agent.ai"},"license":"MIT","_id":"@spinabot/brigade@1.19.3","maintainers":[{"name":"dev-spinabot","email":"bhasvanth02@gmail.com"},{"name":"spinabot-labs","email":"npm@spinabot.com"}],"homepage":"https://brigade.spinabot.com","bugs":{"url":"https://github.com/spinabot/brigade/issues","email":"hello@brigade-agent.ai"},"bin":{"brigade":"brigade.mjs"},"dist":{"shasum":"26ee961634535511f2e7c72b14ded4df321fcab1","tarball":"https://registry.npmjs.org/@spinabot/brigade/-/brigade-1.19.3.tgz","fileCount":2716,"integrity":"sha512-JXwPcpeYzedof9R9wCnul6H/WhtAeoPzRLnRX7aFMT9pbFu0nbm/lEHuZFey/qf/p/w9lABg+SAmdP3SKLnMbA==","signatures":[{"sig":"MEUCIG8A6grAOkEiJLaoFOqmCnGdQqSZ6r4eOY37y5lehKCzAiEAuctcSvwn/tlUf0GqRFE/KWcSyAjgcJm+AlKD8AOpyPA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spinabot%2fbrigade@1.19.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":20024398},"main":"dist/entry.js","type":"module","types":"./dist/entry.d.ts","engines":{"node":">=22.12"},"exports":{".":"./brigade.mjs","./channel-sdk":{"types":"./dist/channel-sdk.d.ts","import":"./dist/channel-sdk.js"},"./package.json":"./package.json","./extension-sdk":{"types":"./dist/extension-sdk.d.ts","import":"./dist/extension-sdk.js"}},"gitHead":"1e7f8dfaa05af644e8f8efed8878f25888703841","scripts":{"wa":"node scripts/run-brigade.mjs channels status --channel whatsapp","dev":"node scripts/run-brigade.mjs","tui":"node scripts/run-brigade.mjs tui","auth":"node scripts/run-brigade.mjs auth","logs":"node scripts/run-brigade.mjs logs","test":"node scripts/run-tests.mjs","agent":"node scripts/run-brigade.mjs agent","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","build":"tsc -p tsconfig.build.json","clean":"node -e \"import('node:fs').then(fs => fs.rmSync('dist', { recursive: true, force: true }))\"","login":"node scripts/run-brigade.mjs login","start":"node scripts/run-brigade.mjs","store":"node scripts/run-brigade.mjs store","watch":"tsx --watch src/entry.ts","agents":"node scripts/run-brigade.mjs agents","backup":"node scripts/run-brigade.mjs backup create","doctor":"node scripts/run-brigade.mjs doctor","expose":"node scripts/run-brigade.mjs expose","skills":"node scripts/run-brigade.mjs skills list","status":"node scripts/run-brigade.mjs status","update":"node scripts/run-brigade.mjs update","brigade":"node brigade.mjs","connect":"node scripts/run-brigade.mjs connect","dev:tsx":"tsx src/entry.ts","gateway":"node scripts/run-brigade.mjs gateway","onboard":"node scripts/run-brigade.mjs onboard","pairing":"node scripts/run-brigade.mjs pairing list --channel whatsapp","prepack":"npm run build","tui:bin":"node brigade.mjs tui","upgrade":"node scripts/run-brigade.mjs upgrade","wa:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels":"node scripts/run-brigade.mjs channels","sessions":"node scripts/run-brigade.mjs sessions list","telegram":"node scripts/run-brigade.mjs channels status --channel telegram","wa:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","agent:bin":"node brigade.mjs agent","exec:list":"node scripts/run-brigade.mjs exec list","login:bin":"node brigade.mjs login","postbuild":"node scripts/build-done.mjs","tui:watch":"tsx --watch src/entry.ts tui","typecheck":"tsc -p tsconfig.json --noEmit","wa:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","wa:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","agents:add":"node scripts/run-brigade.mjs agents add","agents:bin":"node brigade.mjs agents","convex:dev":"node scripts/install-convex.mjs && node scripts/convex-dev.mjs","doctor:bin":"node brigade.mjs doctor","extensions":"node scripts/run-brigade.mjs extensions list","status:bin":"node brigade.mjs status","store:mode":"node scripts/run-brigade.mjs store mode show","update:bin":"node brigade.mjs update","agent:watch":"tsx --watch src/entry.ts agent","agents:bind":"node scripts/run-brigade.mjs agents bind","agents:list":"node scripts/run-brigade.mjs agents list","build:watch":"tsc -p tsconfig.build.json --watch","config:file":"node scripts/run-brigade.mjs config file","config:list":"node scripts/run-brigade.mjs config list","connect:bin":"node brigade.mjs connect","convex:push":"node scripts/convex-push.mjs","doctor:json":"node scripts/run-brigade.mjs doctor --json","expose:stop":"node scripts/run-brigade.mjs expose stop","gateway:bin":"node brigade.mjs gateway","logs:follow":"node scripts/run-brigade.mjs logs --follow","onboard:bin":"node brigade.mjs onboard","postinstall":"node scripts/brand-oauth-page.mjs","skills:info":"node scripts/run-brigade.mjs skills info","skills:list":"node scripts/run-brigade.mjs skills list","status:json":"node scripts/run-brigade.mjs status --json","store:reset":"node scripts/run-brigade.mjs store reset","upgrade:bin":"node brigade.mjs upgrade","channels:add":"node scripts/run-brigade.mjs channels add","gateway:stop":"node scripts/run-brigade.mjs gateway stop","pairing:list":"node scripts/run-brigade.mjs pairing list --channel whatsapp","update:check":"node scripts/run-brigade.mjs update --check","agents:delete":"node scripts/run-brigade.mjs agents delete","agents:unbind":"node scripts/run-brigade.mjs agents unbind","backup:create":"node scripts/run-brigade.mjs backup create","backup:verify":"node scripts/run-brigade.mjs backup verify","channels:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels:list":"node scripts/run-brigade.mjs channels list","config:schema":"node scripts/run-brigade.mjs config schema","connect:watch":"tsx --watch src/entry.ts connect","doctor:strict":"node scripts/run-brigade.mjs doctor --strict","expose:status":"node scripts/run-brigade.mjs expose status","gateway:watch":"tsx --watch src/entry.ts gateway","onboard:watch":"tsx --watch src/entry.ts onboard","secrets:audit":"node scripts/run-brigade.mjs secrets audit","sessions:list":"node scripts/run-brigade.mjs sessions list","store:migrate":"node scripts/run-brigade.mjs store migrate","backup:restore":"node scripts/run-brigade.mjs backup restore","channels:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","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","convex:install":"node scripts/install-convex.mjs","extensions:add":"node scripts/run-brigade.mjs extensions add","gateway:status":"node scripts/run-brigade.mjs gateway status","pairing:revoke":"node scripts/run-brigade.mjs pairing revoke --channel whatsapp","store:mode:set":"node scripts/run-brigade.mjs store mode set","telegram:allow":"node scripts/run-brigade.mjs channels allow list --channel telegram","telegram:token":"node scripts/run-brigade.mjs channels add --channel telegram","agents:bindings":"node scripts/run-brigade.mjs agents bindings","channels:enable":"node scripts/run-brigade.mjs channels enable --channel whatsapp","channels:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","channels:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","config:validate":"node scripts/run-brigade.mjs config validate","extensions:init":"node scripts/run-brigade.mjs extensions init","extensions:list":"node scripts/run-brigade.mjs extensions list","gateway:install":"node scripts/run-brigade.mjs gateway install","gateway:restart":"node scripts/run-brigade.mjs gateway restart","pairing:approve":"node scripts/run-brigade.mjs pairing approve --channel whatsapp","store:mode:show":"node scripts/run-brigade.mjs store mode show","telegram:enable":"node scripts/run-brigade.mjs channels enable --channel telegram","telegram:status":"node scripts/run-brigade.mjs channels status --channel telegram","bloody benchmark":"node scripts/run-brigade.mjs bloody benchmark","channels:disable":"node scripts/run-brigade.mjs channels disable --channel whatsapp","sessions:cleanup":"node scripts/run-brigade.mjs sessions cleanup","telegram:disable":"node scripts/run-brigade.mjs channels disable --channel telegram","extensions:doctor":"node scripts/run-brigade.mjs extensions doctor","extensions:remove":"node scripts/run-brigade.mjs extensions remove","gateway:uninstall":"node scripts/run-brigade.mjs gateway uninstall","smoke:strict-zero":"tsx scripts/strict-zero-smoke.mjs","store:reset:purge":"node scripts/run-brigade.mjs store reset --purge-local","channels:allow:add":"node scripts/run-brigade.mjs channels allow add --channel whatsapp","telegram:allow:add":"node scripts/run-brigade.mjs channels allow add --channel telegram","agents:set-identity":"node scripts/run-brigade.mjs agents set-identity","channels:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel whatsapp","telegram:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel telegram"},"_npmUser":{"name":"spinabot-labs","email":"npm@spinabot.com"},"overrides":{"ws":"$ws","exceljs":{"uuid":"^11.1.1"},"discord.js":{"undici":"^6.27.0"},"@discordjs/rest":{"undici":"^6.27.0"}},"repository":{"url":"git+https://github.com/spinabot/brigade.git","type":"git"},"_npmVersion":"11.18.0","description":"Brigade — your personal AI crew","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.0","tar":"^7.5.15","zod":"^3.23.8","docx":"^9.7.1","jimp":"^1.6.1","jiti":"^2.6.1","yaml":"^2.9.0","chalk":"^5.3.0","json5":"^2.2.3","unpdf":"^1.6.2","cfonts":"^3.3.1","convex":"^1.40.0","croner":"^10.0.1","fflate":"^0.8.3","grammy":"^1.42.0","undici":"^7.25.0","exceljs":"^4.4.0","prompts":"^2.4.2","linkedom":"^0.18.12","commander":"^12.1.0","minimatch":"^10.2.5","pptxgenjs":"^4.0.1","discord.js":"^14.26.4","cli-highlight":"^2.1.11","@composio/core":"^0.10.0","@slack/web-api":"^7.17.0","@cantoo/pdf-lib":"^2.7.1","@grammyjs/types":"^3.21.0","playwright-core":"^1.59.0","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@pdf-lib/fontkit":"^1.1.1","https-proxy-agent":"^7.0.6","socks-proxy-agent":"^10.1.0","@slack/socket-mode":"^2.0.7","@mozilla/readability":"^0.6.0","@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@whiskeysockets/baileys":"7.0.0-rc13","@earendil-works/pi-agent-core":"0.79.9","@earendil-works/pi-coding-agent":"0.79.9","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","@types/ws":"^8.18.1","@types/tar":"^6.1.13","typescript":"^5.6.3","@types/node":"^22.10.0","@types/prompts":"^2.4.9","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2"},"_npmOperationalInternal":{"tmp":"tmp/brigade_1.19.3_1782959447273_0.6562235152718634","host":"s3://npm-registry-packages-npm-production"}},"1.19.4":{"name":"@spinabot/brigade","version":"1.19.4","keywords":["ai","agent","agents","ai-agent","cli","tui","llm","claude","openai","gemini","ollama","whatsapp","gateway","brigade"],"author":{"name":"Spinabot","email":"hello@brigade-agent.ai"},"license":"MIT","_id":"@spinabot/brigade@1.19.4","maintainers":[{"name":"dev-spinabot","email":"bhasvanth02@gmail.com"},{"name":"spinabot-labs","email":"npm@spinabot.com"}],"homepage":"https://brigade.spinabot.com","bugs":{"url":"https://github.com/spinabot/brigade/issues","email":"hello@brigade-agent.ai"},"bin":{"brigade":"brigade.mjs"},"dist":{"shasum":"9e4bb6acd292c31249e1bb6650e625429f3df3a8","tarball":"https://registry.npmjs.org/@spinabot/brigade/-/brigade-1.19.4.tgz","fileCount":2724,"integrity":"sha512-BLVIfWerXFevhVYuudXjCdTU2RqbfC6OZg4Hk1TxNERKqk344lzBEL3Uocv4tE3Es9yHkw/19gyxdd7Gvp/2zw==","signatures":[{"sig":"MEUCIFC4Js91WvajfETnK7U3VFu3dPywZRXGb7eG0JFKKEXIAiEAtQi85li7FdTxfv/ln8FQ9o8T/KkqYrUUx/U/JymFhhI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spinabot%2fbrigade@1.19.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":20060889},"main":"dist/entry.js","type":"module","types":"./dist/entry.d.ts","engines":{"node":">=22.12"},"exports":{".":"./brigade.mjs","./channel-sdk":{"types":"./dist/channel-sdk.d.ts","import":"./dist/channel-sdk.js"},"./package.json":"./package.json","./extension-sdk":{"types":"./dist/extension-sdk.d.ts","import":"./dist/extension-sdk.js"}},"gitHead":"a8a51b2e7aa32a458a07608f6109176c9174587f","scripts":{"wa":"node scripts/run-brigade.mjs channels status --channel whatsapp","dev":"node scripts/run-brigade.mjs","tui":"node scripts/run-brigade.mjs tui","auth":"node scripts/run-brigade.mjs auth","logs":"node scripts/run-brigade.mjs logs","test":"node scripts/run-tests.mjs","agent":"node scripts/run-brigade.mjs agent","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","build":"tsc -p tsconfig.build.json","clean":"node -e \"import('node:fs').then(fs => fs.rmSync('dist', { recursive: true, force: true }))\"","login":"node scripts/run-brigade.mjs login","start":"node scripts/run-brigade.mjs","store":"node scripts/run-brigade.mjs store","watch":"tsx --watch src/entry.ts","agents":"node scripts/run-brigade.mjs agents","backup":"node scripts/run-brigade.mjs backup create","doctor":"node scripts/run-brigade.mjs doctor","expose":"node scripts/run-brigade.mjs expose","skills":"node scripts/run-brigade.mjs skills list","status":"node scripts/run-brigade.mjs status","update":"node scripts/run-brigade.mjs update","brigade":"node brigade.mjs","connect":"node scripts/run-brigade.mjs connect","dev:tsx":"tsx src/entry.ts","gateway":"node scripts/run-brigade.mjs gateway","onboard":"node scripts/run-brigade.mjs onboard","pairing":"node scripts/run-brigade.mjs pairing list --channel whatsapp","prepack":"npm run build","tui:bin":"node brigade.mjs tui","upgrade":"node scripts/run-brigade.mjs upgrade","wa:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels":"node scripts/run-brigade.mjs channels","sessions":"node scripts/run-brigade.mjs sessions list","telegram":"node scripts/run-brigade.mjs channels status --channel telegram","wa:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","agent:bin":"node brigade.mjs agent","exec:list":"node scripts/run-brigade.mjs exec list","login:bin":"node brigade.mjs login","postbuild":"node scripts/build-done.mjs","tui:watch":"tsx --watch src/entry.ts tui","typecheck":"tsc -p tsconfig.json --noEmit","wa:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","wa:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","agents:add":"node scripts/run-brigade.mjs agents add","agents:bin":"node brigade.mjs agents","convex:dev":"node scripts/install-convex.mjs && node scripts/convex-dev.mjs","doctor:bin":"node brigade.mjs doctor","extensions":"node scripts/run-brigade.mjs extensions list","status:bin":"node brigade.mjs status","store:mode":"node scripts/run-brigade.mjs store mode show","update:bin":"node brigade.mjs update","agent:watch":"tsx --watch src/entry.ts agent","agents:bind":"node scripts/run-brigade.mjs agents bind","agents:list":"node scripts/run-brigade.mjs agents list","build:watch":"tsc -p tsconfig.build.json --watch","config:file":"node scripts/run-brigade.mjs config file","config:list":"node scripts/run-brigade.mjs config list","connect:bin":"node brigade.mjs connect","convex:push":"node scripts/convex-push.mjs","doctor:json":"node scripts/run-brigade.mjs doctor --json","expose:stop":"node scripts/run-brigade.mjs expose stop","gateway:bin":"node brigade.mjs gateway","logs:follow":"node scripts/run-brigade.mjs logs --follow","onboard:bin":"node brigade.mjs onboard","postinstall":"node scripts/brand-oauth-page.mjs","skills:info":"node scripts/run-brigade.mjs skills info","skills:list":"node scripts/run-brigade.mjs skills list","status:json":"node scripts/run-brigade.mjs status --json","store:reset":"node scripts/run-brigade.mjs store reset","upgrade:bin":"node brigade.mjs upgrade","channels:add":"node scripts/run-brigade.mjs channels add","gateway:stop":"node scripts/run-brigade.mjs gateway stop","pairing:list":"node scripts/run-brigade.mjs pairing list --channel whatsapp","update:check":"node scripts/run-brigade.mjs update --check","agents:delete":"node scripts/run-brigade.mjs agents delete","agents:unbind":"node scripts/run-brigade.mjs agents unbind","backup:create":"node scripts/run-brigade.mjs backup create","backup:verify":"node scripts/run-brigade.mjs backup verify","channels:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels:list":"node scripts/run-brigade.mjs channels list","config:schema":"node scripts/run-brigade.mjs config schema","connect:watch":"tsx --watch src/entry.ts connect","doctor:strict":"node scripts/run-brigade.mjs doctor --strict","expose:status":"node scripts/run-brigade.mjs expose status","gateway:watch":"tsx --watch src/entry.ts gateway","onboard:watch":"tsx --watch src/entry.ts onboard","secrets:audit":"node scripts/run-brigade.mjs secrets audit","sessions:list":"node scripts/run-brigade.mjs sessions list","store:migrate":"node scripts/run-brigade.mjs store migrate","backup:restore":"node scripts/run-brigade.mjs backup restore","channels:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","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","convex:install":"node scripts/install-convex.mjs","extensions:add":"node scripts/run-brigade.mjs extensions add","gateway:status":"node scripts/run-brigade.mjs gateway status","pairing:revoke":"node scripts/run-brigade.mjs pairing revoke --channel whatsapp","store:mode:set":"node scripts/run-brigade.mjs store mode set","telegram:allow":"node scripts/run-brigade.mjs channels allow list --channel telegram","telegram:token":"node scripts/run-brigade.mjs channels add --channel telegram","agents:bindings":"node scripts/run-brigade.mjs agents bindings","channels:enable":"node scripts/run-brigade.mjs channels enable --channel whatsapp","channels:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","channels:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","config:validate":"node scripts/run-brigade.mjs config validate","extensions:init":"node scripts/run-brigade.mjs extensions init","extensions:list":"node scripts/run-brigade.mjs extensions list","gateway:install":"node scripts/run-brigade.mjs gateway install","gateway:restart":"node scripts/run-brigade.mjs gateway restart","pairing:approve":"node scripts/run-brigade.mjs pairing approve --channel whatsapp","store:mode:show":"node scripts/run-brigade.mjs store mode show","telegram:enable":"node scripts/run-brigade.mjs channels enable --channel telegram","telegram:status":"node scripts/run-brigade.mjs channels status --channel telegram","bloody benchmark":"node scripts/run-brigade.mjs bloody benchmark","channels:disable":"node scripts/run-brigade.mjs channels disable --channel whatsapp","sessions:cleanup":"node scripts/run-brigade.mjs sessions cleanup","telegram:disable":"node scripts/run-brigade.mjs channels disable --channel telegram","extensions:doctor":"node scripts/run-brigade.mjs extensions doctor","extensions:remove":"node scripts/run-brigade.mjs extensions remove","gateway:uninstall":"node scripts/run-brigade.mjs gateway uninstall","smoke:strict-zero":"tsx scripts/strict-zero-smoke.mjs","store:reset:purge":"node scripts/run-brigade.mjs store reset --purge-local","channels:allow:add":"node scripts/run-brigade.mjs channels allow add --channel whatsapp","telegram:allow:add":"node scripts/run-brigade.mjs channels allow add --channel telegram","agents:set-identity":"node scripts/run-brigade.mjs agents set-identity","channels:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel whatsapp","telegram:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel telegram"},"_npmUser":{"name":"spinabot-labs","email":"npm@spinabot.com"},"overrides":{"ws":"$ws","exceljs":{"uuid":"^11.1.1"},"discord.js":{"undici":"^6.27.0"},"@discordjs/rest":{"undici":"^6.27.0"}},"repository":{"url":"git+https://github.com/spinabot/brigade.git","type":"git"},"_npmVersion":"11.18.0","description":"Brigade — your personal AI crew","directories":{},"_nodeVersion":"24.17.0","dependencies":{"ws":"^8.21.0","tar":"^7.5.15","zod":"^3.23.8","docx":"^9.7.1","jimp":"^1.6.1","jiti":"^2.6.1","yaml":"^2.9.0","chalk":"^5.3.0","json5":"^2.2.3","unpdf":"^1.6.2","cfonts":"^3.3.1","convex":"^1.40.0","croner":"^10.0.1","fflate":"^0.8.3","grammy":"^1.42.0","undici":"^7.25.0","exceljs":"^4.4.0","prompts":"^2.4.2","linkedom":"^0.18.12","commander":"^12.1.0","minimatch":"^10.2.5","pptxgenjs":"^4.0.1","discord.js":"^14.26.4","cli-highlight":"^2.1.11","@composio/core":"^0.10.0","@slack/web-api":"^7.17.0","@cantoo/pdf-lib":"^2.7.1","@grammyjs/types":"^3.21.0","playwright-core":"^1.59.0","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@pdf-lib/fontkit":"^1.1.1","https-proxy-agent":"^7.0.6","socks-proxy-agent":"^10.1.0","@slack/socket-mode":"^2.0.7","@mozilla/readability":"^0.6.0","@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@whiskeysockets/baileys":"7.0.0-rc13","@earendil-works/pi-agent-core":"0.79.9","@earendil-works/pi-coding-agent":"0.79.9","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","@types/ws":"^8.18.1","@types/tar":"^6.1.13","typescript":"^5.6.3","@types/node":"^22.10.0","@types/prompts":"^2.4.9","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2"},"_npmOperationalInternal":{"tmp":"tmp/brigade_1.19.4_1782962740902_0.6374275746685347","host":"s3://npm-registry-packages-npm-production"}},"1.20.0":{"name":"@spinabot/brigade","version":"1.20.0","keywords":["ai","agent","agents","ai-agent","cli","tui","llm","claude","openai","gemini","ollama","whatsapp","gateway","brigade"],"author":{"name":"Spinabot","email":"hello@brigade-agent.ai"},"license":"MIT","_id":"@spinabot/brigade@1.20.0","maintainers":[{"name":"dev-spinabot","email":"bhasvanth02@gmail.com"},{"name":"spinabot-labs","email":"npm@spinabot.com"}],"homepage":"https://brigade.spinabot.com","bugs":{"url":"https://github.com/spinabot/brigade/issues","email":"hello@brigade-agent.ai"},"bin":{"brigade":"brigade.mjs"},"dist":{"shasum":"850b6e39cc2c429e15de08656420116b8bcc9722","tarball":"https://registry.npmjs.org/@spinabot/brigade/-/brigade-1.20.0.tgz","fileCount":2728,"integrity":"sha512-HeP9qkz6Jlof9X5Jm3rS4bKjj8uC+9SH+PWvA4sFJxIKrpLsiBQ4QsBpPNw7a4uQvSIsOGuMCcsLHQDROY9PnQ==","signatures":[{"sig":"MEYCIQC7epPwhQEiwoBMjhP3HtnOb5uI53vEh3w1v2P2yrd2zgIhAJJkp1aIkIII07X6gNOCz/+KbyCFF2JvumOGr1tq8r+T","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spinabot%2fbrigade@1.20.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":20091311},"main":"dist/entry.js","type":"module","types":"./dist/entry.d.ts","engines":{"node":">=22.12"},"exports":{".":"./brigade.mjs","./channel-sdk":{"types":"./dist/channel-sdk.d.ts","import":"./dist/channel-sdk.js"},"./package.json":"./package.json","./extension-sdk":{"types":"./dist/extension-sdk.d.ts","import":"./dist/extension-sdk.js"}},"gitHead":"ce030190b246169487c005e8b3c5c5dffd1fcec8","scripts":{"wa":"node scripts/run-brigade.mjs channels status --channel whatsapp","dev":"node scripts/run-brigade.mjs","tui":"node scripts/run-brigade.mjs tui","auth":"node scripts/run-brigade.mjs auth","logs":"node scripts/run-brigade.mjs logs","test":"node scripts/run-tests.mjs","agent":"node scripts/run-brigade.mjs agent","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","build":"tsc -p tsconfig.build.json","clean":"node -e \"import('node:fs').then(fs => fs.rmSync('dist', { recursive: true, force: true }))\"","login":"node scripts/run-brigade.mjs login","start":"node scripts/run-brigade.mjs","store":"node scripts/run-brigade.mjs store","watch":"tsx --watch src/entry.ts","agents":"node scripts/run-brigade.mjs agents","backup":"node scripts/run-brigade.mjs backup create","doctor":"node scripts/run-brigade.mjs doctor","expose":"node scripts/run-brigade.mjs expose","skills":"node scripts/run-brigade.mjs skills list","status":"node scripts/run-brigade.mjs status","update":"node scripts/run-brigade.mjs update","brigade":"node brigade.mjs","connect":"node scripts/run-brigade.mjs connect","dev:tsx":"tsx src/entry.ts","gateway":"node scripts/run-brigade.mjs gateway","onboard":"node scripts/run-brigade.mjs onboard","pairing":"node scripts/run-brigade.mjs pairing list --channel whatsapp","prepack":"npm run build","tui:bin":"node brigade.mjs tui","upgrade":"node scripts/run-brigade.mjs upgrade","wa:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels":"node scripts/run-brigade.mjs channels","sessions":"node scripts/run-brigade.mjs sessions list","telegram":"node scripts/run-brigade.mjs channels status --channel telegram","wa:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","agent:bin":"node brigade.mjs agent","exec:list":"node scripts/run-brigade.mjs exec list","login:bin":"node brigade.mjs login","postbuild":"node scripts/build-done.mjs","tui:watch":"tsx --watch src/entry.ts tui","typecheck":"tsc -p tsconfig.json --noEmit","wa:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","wa:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","agents:add":"node scripts/run-brigade.mjs agents add","agents:bin":"node brigade.mjs agents","convex:dev":"node scripts/install-convex.mjs && node scripts/convex-dev.mjs","doctor:bin":"node brigade.mjs doctor","extensions":"node scripts/run-brigade.mjs extensions list","status:bin":"node brigade.mjs status","store:mode":"node scripts/run-brigade.mjs store mode show","update:bin":"node brigade.mjs update","agent:watch":"tsx --watch src/entry.ts agent","agents:bind":"node scripts/run-brigade.mjs agents bind","agents:list":"node scripts/run-brigade.mjs agents list","build:watch":"tsc -p tsconfig.build.json --watch","config:file":"node scripts/run-brigade.mjs config file","config:list":"node scripts/run-brigade.mjs config list","connect:bin":"node brigade.mjs connect","convex:push":"node scripts/convex-push.mjs","doctor:json":"node scripts/run-brigade.mjs doctor --json","expose:stop":"node scripts/run-brigade.mjs expose stop","gateway:bin":"node brigade.mjs gateway","logs:follow":"node scripts/run-brigade.mjs logs --follow","onboard:bin":"node brigade.mjs onboard","postinstall":"node scripts/brand-oauth-page.mjs","skills:info":"node scripts/run-brigade.mjs skills info","skills:list":"node scripts/run-brigade.mjs skills list","status:json":"node scripts/run-brigade.mjs status --json","store:reset":"node scripts/run-brigade.mjs store reset","upgrade:bin":"node brigade.mjs upgrade","channels:add":"node scripts/run-brigade.mjs channels add","gateway:stop":"node scripts/run-brigade.mjs gateway stop","pairing:list":"node scripts/run-brigade.mjs pairing list --channel whatsapp","update:check":"node scripts/run-brigade.mjs update --check","agents:delete":"node scripts/run-brigade.mjs agents delete","agents:unbind":"node scripts/run-brigade.mjs agents unbind","backup:create":"node scripts/run-brigade.mjs backup create","backup:verify":"node scripts/run-brigade.mjs backup verify","channels:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels:list":"node scripts/run-brigade.mjs channels list","config:schema":"node scripts/run-brigade.mjs config schema","connect:watch":"tsx --watch src/entry.ts connect","doctor:strict":"node scripts/run-brigade.mjs doctor --strict","expose:status":"node scripts/run-brigade.mjs expose status","gateway:watch":"tsx --watch src/entry.ts gateway","onboard:watch":"tsx --watch src/entry.ts onboard","secrets:audit":"node scripts/run-brigade.mjs secrets audit","sessions:list":"node scripts/run-brigade.mjs sessions list","store:migrate":"node scripts/run-brigade.mjs store migrate","backup:restore":"node scripts/run-brigade.mjs backup restore","channels:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","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","convex:install":"node scripts/install-convex.mjs","extensions:add":"node scripts/run-brigade.mjs extensions add","gateway:status":"node scripts/run-brigade.mjs gateway status","pairing:revoke":"node scripts/run-brigade.mjs pairing revoke --channel whatsapp","store:mode:set":"node scripts/run-brigade.mjs store mode set","telegram:allow":"node scripts/run-brigade.mjs channels allow list --channel telegram","telegram:token":"node scripts/run-brigade.mjs channels add --channel telegram","agents:bindings":"node scripts/run-brigade.mjs agents bindings","channels:enable":"node scripts/run-brigade.mjs channels enable --channel whatsapp","channels:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","channels:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","config:validate":"node scripts/run-brigade.mjs config validate","extensions:init":"node scripts/run-brigade.mjs extensions init","extensions:list":"node scripts/run-brigade.mjs extensions list","gateway:install":"node scripts/run-brigade.mjs gateway install","gateway:restart":"node scripts/run-brigade.mjs gateway restart","pairing:approve":"node scripts/run-brigade.mjs pairing approve --channel whatsapp","store:mode:show":"node scripts/run-brigade.mjs store mode show","telegram:enable":"node scripts/run-brigade.mjs channels enable --channel telegram","telegram:status":"node scripts/run-brigade.mjs channels status --channel telegram","bloody benchmark":"node scripts/run-brigade.mjs bloody benchmark","channels:disable":"node scripts/run-brigade.mjs channels disable --channel whatsapp","sessions:cleanup":"node scripts/run-brigade.mjs sessions cleanup","telegram:disable":"node scripts/run-brigade.mjs channels disable --channel telegram","extensions:doctor":"node scripts/run-brigade.mjs extensions doctor","extensions:remove":"node scripts/run-brigade.mjs extensions remove","gateway:uninstall":"node scripts/run-brigade.mjs gateway uninstall","smoke:strict-zero":"tsx scripts/strict-zero-smoke.mjs","store:reset:purge":"node scripts/run-brigade.mjs store reset --purge-local","channels:allow:add":"node scripts/run-brigade.mjs channels allow add --channel whatsapp","telegram:allow:add":"node scripts/run-brigade.mjs channels allow add --channel telegram","agents:set-identity":"node scripts/run-brigade.mjs agents set-identity","channels:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel whatsapp","telegram:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel telegram"},"_npmUser":{"name":"spinabot-labs","email":"npm@spinabot.com"},"overrides":{"ws":"$ws","exceljs":{"uuid":"^11.1.1"},"discord.js":{"undici":"^6.27.0"},"@discordjs/rest":{"undici":"^6.27.0"},"@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@earendil-works/pi-agent-core":"0.79.9"},"repository":{"url":"git+https://github.com/spinabot/brigade.git","type":"git"},"_npmVersion":"11.18.0","description":"Brigade — your personal AI crew","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.0","tar":"^7.5.15","zod":"^3.23.8","docx":"^9.7.1","jimp":"^1.6.1","jiti":"^2.6.1","yaml":"^2.9.0","chalk":"^5.3.0","json5":"^2.2.3","unpdf":"^1.6.2","cfonts":"^3.3.1","convex":"^1.40.0","croner":"^10.0.1","fflate":"^0.8.3","grammy":"^1.42.0","undici":"^7.25.0","exceljs":"^4.4.0","prompts":"^2.4.2","linkedom":"^0.18.12","commander":"^12.1.0","minimatch":"^10.2.5","pptxgenjs":"^4.0.1","discord.js":"^14.26.4","cli-highlight":"^2.1.11","@composio/core":"^0.10.0","@slack/web-api":"^7.17.0","@cantoo/pdf-lib":"^2.7.1","@grammyjs/types":"^3.21.0","playwright-core":"^1.59.0","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@pdf-lib/fontkit":"^1.1.1","https-proxy-agent":"^7.0.6","socks-proxy-agent":"^10.1.0","@slack/socket-mode":"^2.0.7","@mozilla/readability":"^0.6.0","@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@whiskeysockets/baileys":"7.0.0-rc13","@earendil-works/pi-agent-core":"0.79.9","@earendil-works/pi-coding-agent":"0.79.9","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","@types/ws":"^8.18.1","@types/tar":"^6.1.13","typescript":"^5.6.3","@types/node":"^22.10.0","@types/prompts":"^2.4.9","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2"},"_npmOperationalInternal":{"tmp":"tmp/brigade_1.20.0_1783014622167_0.14813019754879986","host":"s3://npm-registry-packages-npm-production"}},"1.21.0":{"name":"@spinabot/brigade","version":"1.21.0","keywords":["ai","agent","agents","ai-agent","cli","tui","llm","claude","openai","gemini","ollama","whatsapp","gateway","brigade"],"author":{"name":"Spinabot","email":"hello@brigade-agent.ai"},"license":"MIT","_id":"@spinabot/brigade@1.21.0","maintainers":[{"name":"dev-spinabot","email":"bhasvanth02@gmail.com"},{"name":"spinabot-labs","email":"npm@spinabot.com"}],"homepage":"https://brigade.spinabot.com","bugs":{"url":"https://github.com/spinabot/brigade/issues","email":"hello@brigade-agent.ai"},"bin":{"brigade":"brigade.mjs"},"dist":{"shasum":"f34df6a49de35676c1ca065bdc28d4ec3d644002","tarball":"https://registry.npmjs.org/@spinabot/brigade/-/brigade-1.21.0.tgz","fileCount":2732,"integrity":"sha512-QcCnrMT2aEHEnS9GHRv93SaW2cNKji9T8+PfMFGfAhgXGQg8tGGiu3AHAbh3L5BY2NqcwZP4Rybg37nTeU7Hbw==","signatures":[{"sig":"MEQCIFiYAHu0IfE0F9D+GxS1Y+wAv7d1IRHKztX8gV7VGlEjAiBxpsrk+IbNQt9A/oi01Mfdz9Ti6UjOIL8r7asLDTqRww==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spinabot%2fbrigade@1.21.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":20174995},"main":"dist/entry.js","type":"module","types":"./dist/entry.d.ts","engines":{"node":">=22.12"},"exports":{".":"./brigade.mjs","./channel-sdk":{"types":"./dist/channel-sdk.d.ts","import":"./dist/channel-sdk.js"},"./package.json":"./package.json","./extension-sdk":{"types":"./dist/extension-sdk.d.ts","import":"./dist/extension-sdk.js"}},"gitHead":"fa761fc2c4797e6f92f343d1c98d86088141a852","scripts":{"wa":"node scripts/run-brigade.mjs channels status --channel whatsapp","dev":"node scripts/run-brigade.mjs","tui":"node scripts/run-brigade.mjs tui","auth":"node scripts/run-brigade.mjs auth","logs":"node scripts/run-brigade.mjs logs","test":"node scripts/run-tests.mjs","agent":"node scripts/run-brigade.mjs agent","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","build":"tsc -p tsconfig.build.json","clean":"node -e \"import('node:fs').then(fs => fs.rmSync('dist', { recursive: true, force: true }))\"","login":"node scripts/run-brigade.mjs login","start":"node scripts/run-brigade.mjs","store":"node scripts/run-brigade.mjs store","watch":"tsx --watch src/entry.ts","agents":"node scripts/run-brigade.mjs agents","backup":"node scripts/run-brigade.mjs backup create","doctor":"node scripts/run-brigade.mjs doctor","expose":"node scripts/run-brigade.mjs expose","skills":"node scripts/run-brigade.mjs skills list","status":"node scripts/run-brigade.mjs status","update":"node scripts/run-brigade.mjs update","brigade":"node brigade.mjs","connect":"node scripts/run-brigade.mjs connect","dev:tsx":"tsx src/entry.ts","gateway":"node scripts/run-brigade.mjs gateway","onboard":"node scripts/run-brigade.mjs onboard","pairing":"node scripts/run-brigade.mjs pairing list --channel whatsapp","prepack":"npm run build","tui:bin":"node brigade.mjs tui","upgrade":"node scripts/run-brigade.mjs upgrade","wa:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels":"node scripts/run-brigade.mjs channels","sessions":"node scripts/run-brigade.mjs sessions list","telegram":"node scripts/run-brigade.mjs channels status --channel telegram","wa:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","agent:bin":"node brigade.mjs agent","exec:list":"node scripts/run-brigade.mjs exec list","login:bin":"node brigade.mjs login","postbuild":"node scripts/build-done.mjs","tui:watch":"tsx --watch src/entry.ts tui","typecheck":"tsc -p tsconfig.json --noEmit","wa:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","wa:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","agents:add":"node scripts/run-brigade.mjs agents add","agents:bin":"node brigade.mjs agents","convex:dev":"node scripts/install-convex.mjs && node scripts/convex-dev.mjs","doctor:bin":"node brigade.mjs doctor","extensions":"node scripts/run-brigade.mjs extensions list","status:bin":"node brigade.mjs status","store:mode":"node scripts/run-brigade.mjs store mode show","update:bin":"node brigade.mjs update","agent:watch":"tsx --watch src/entry.ts agent","agents:bind":"node scripts/run-brigade.mjs agents bind","agents:list":"node scripts/run-brigade.mjs agents list","build:watch":"tsc -p tsconfig.build.json --watch","config:file":"node scripts/run-brigade.mjs config file","config:list":"node scripts/run-brigade.mjs config list","connect:bin":"node brigade.mjs connect","convex:push":"node scripts/convex-push.mjs","doctor:json":"node scripts/run-brigade.mjs doctor --json","expose:stop":"node scripts/run-brigade.mjs expose stop","gateway:bin":"node brigade.mjs gateway","logs:follow":"node scripts/run-brigade.mjs logs --follow","onboard:bin":"node brigade.mjs onboard","postinstall":"node scripts/brand-oauth-page.mjs","skills:info":"node scripts/run-brigade.mjs skills info","skills:list":"node scripts/run-brigade.mjs skills list","status:json":"node scripts/run-brigade.mjs status --json","store:reset":"node scripts/run-brigade.mjs store reset","upgrade:bin":"node brigade.mjs upgrade","channels:add":"node scripts/run-brigade.mjs channels add","gateway:stop":"node scripts/run-brigade.mjs gateway stop","pairing:list":"node scripts/run-brigade.mjs pairing list --channel whatsapp","update:check":"node scripts/run-brigade.mjs update --check","agents:delete":"node scripts/run-brigade.mjs agents delete","agents:unbind":"node scripts/run-brigade.mjs agents unbind","backup:create":"node scripts/run-brigade.mjs backup create","backup:verify":"node scripts/run-brigade.mjs backup verify","channels:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels:list":"node scripts/run-brigade.mjs channels list","config:schema":"node scripts/run-brigade.mjs config schema","connect:watch":"tsx --watch src/entry.ts connect","doctor:strict":"node scripts/run-brigade.mjs doctor --strict","expose:status":"node scripts/run-brigade.mjs expose status","gateway:watch":"tsx --watch src/entry.ts gateway","onboard:watch":"tsx --watch src/entry.ts onboard","secrets:audit":"node scripts/run-brigade.mjs secrets audit","sessions:list":"node scripts/run-brigade.mjs sessions list","store:migrate":"node scripts/run-brigade.mjs store migrate","backup:restore":"node scripts/run-brigade.mjs backup restore","channels:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","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","convex:install":"node scripts/install-convex.mjs","extensions:add":"node scripts/run-brigade.mjs extensions add","gateway:status":"node scripts/run-brigade.mjs gateway status","pairing:revoke":"node scripts/run-brigade.mjs pairing revoke --channel whatsapp","store:mode:set":"node scripts/run-brigade.mjs store mode set","telegram:allow":"node scripts/run-brigade.mjs channels allow list --channel telegram","telegram:token":"node scripts/run-brigade.mjs channels add --channel telegram","agents:bindings":"node scripts/run-brigade.mjs agents bindings","channels:enable":"node scripts/run-brigade.mjs channels enable --channel whatsapp","channels:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","channels:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","config:validate":"node scripts/run-brigade.mjs config validate","extensions:init":"node scripts/run-brigade.mjs extensions init","extensions:list":"node scripts/run-brigade.mjs extensions list","gateway:install":"node scripts/run-brigade.mjs gateway install","gateway:restart":"node scripts/run-brigade.mjs gateway restart","pairing:approve":"node scripts/run-brigade.mjs pairing approve --channel whatsapp","store:mode:show":"node scripts/run-brigade.mjs store mode show","telegram:enable":"node scripts/run-brigade.mjs channels enable --channel telegram","telegram:status":"node scripts/run-brigade.mjs channels status --channel telegram","bloody benchmark":"node scripts/run-brigade.mjs bloody benchmark","channels:disable":"node scripts/run-brigade.mjs channels disable --channel whatsapp","sessions:cleanup":"node scripts/run-brigade.mjs sessions cleanup","telegram:disable":"node scripts/run-brigade.mjs channels disable --channel telegram","extensions:doctor":"node scripts/run-brigade.mjs extensions doctor","extensions:remove":"node scripts/run-brigade.mjs extensions remove","gateway:uninstall":"node scripts/run-brigade.mjs gateway uninstall","smoke:strict-zero":"tsx scripts/strict-zero-smoke.mjs","store:reset:purge":"node scripts/run-brigade.mjs store reset --purge-local","channels:allow:add":"node scripts/run-brigade.mjs channels allow add --channel whatsapp","telegram:allow:add":"node scripts/run-brigade.mjs channels allow add --channel telegram","agents:set-identity":"node scripts/run-brigade.mjs agents set-identity","channels:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel whatsapp","telegram:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel telegram"},"_npmUser":{"name":"spinabot-labs","email":"npm@spinabot.com"},"overrides":{"ws":"$ws","exceljs":{"uuid":"^11.1.1"},"discord.js":{"undici":"^6.27.0"},"@discordjs/rest":{"undici":"^6.27.0"},"@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@earendil-works/pi-agent-core":"0.79.9"},"repository":{"url":"git+https://github.com/spinabot/brigade.git","type":"git"},"_npmVersion":"11.18.0","description":"Brigade — your personal AI crew","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.0","tar":"^7.5.15","zod":"^3.23.8","docx":"^9.7.1","jimp":"^1.6.1","jiti":"^2.6.1","yaml":"^2.9.0","chalk":"^5.3.0","json5":"^2.2.3","unpdf":"^1.6.2","cfonts":"^3.3.1","convex":"^1.40.0","croner":"^10.0.1","fflate":"^0.8.3","grammy":"^1.42.0","undici":"^7.25.0","exceljs":"^4.4.0","prompts":"^2.4.2","linkedom":"^0.18.12","commander":"^12.1.0","minimatch":"^10.2.5","pptxgenjs":"^4.0.1","discord.js":"^14.26.4","cli-highlight":"^2.1.11","@composio/core":"^0.10.0","@slack/web-api":"^7.17.0","@cantoo/pdf-lib":"^2.7.1","@grammyjs/types":"^3.21.0","playwright-core":"^1.59.0","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@pdf-lib/fontkit":"^1.1.1","https-proxy-agent":"^7.0.6","socks-proxy-agent":"^10.1.0","@slack/socket-mode":"^2.0.7","@mozilla/readability":"^0.6.0","@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@whiskeysockets/baileys":"7.0.0-rc13","@earendil-works/pi-agent-core":"0.79.9","@earendil-works/pi-coding-agent":"0.79.9","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","@types/ws":"^8.18.1","@types/tar":"^6.1.13","typescript":"^5.6.3","@types/node":"^22.10.0","@types/prompts":"^2.4.9","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2"},"_npmOperationalInternal":{"tmp":"tmp/brigade_1.21.0_1783033932869_0.16832156890336858","host":"s3://npm-registry-packages-npm-production"}},"1.22.0":{"name":"@spinabot/brigade","version":"1.22.0","keywords":["ai","agent","agents","ai-agent","cli","tui","llm","claude","openai","gemini","ollama","whatsapp","gateway","brigade"],"author":{"name":"Spinabot","email":"hello@brigade-agent.ai"},"license":"MIT","_id":"@spinabot/brigade@1.22.0","maintainers":[{"name":"dev-spinabot","email":"bhasvanth02@gmail.com"},{"name":"spinabot-labs","email":"npm@spinabot.com"}],"homepage":"https://brigade.spinabot.com","bugs":{"url":"https://github.com/spinabot/brigade/issues","email":"hello@brigade-agent.ai"},"bin":{"brigade":"brigade.mjs"},"dist":{"shasum":"4a85e33981e2200f09813a61194bb57ca6cb3866","tarball":"https://registry.npmjs.org/@spinabot/brigade/-/brigade-1.22.0.tgz","fileCount":2732,"integrity":"sha512-IJ2P2aLumA6XoVWP4XJi+aXPSO7f2wY7QL3Gt2OT9p+TqPWtIhSqgVeiQHObJ7KnFu0n1Vh1B6zQPSJ6ju6iKg==","signatures":[{"sig":"MEUCIFkX3oIqGsiDIo/DDk/TwgD+z/J5rMB5pgxO36ATQtE0AiEAz9M+tY+mSAdvlezS35uosxnA2t6KSpZ3K2bXRtP6Myc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spinabot%2fbrigade@1.22.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":20177123},"main":"dist/entry.js","type":"module","types":"./dist/entry.d.ts","engines":{"node":">=22.12"},"exports":{".":"./brigade.mjs","./channel-sdk":{"types":"./dist/channel-sdk.d.ts","import":"./dist/channel-sdk.js"},"./package.json":"./package.json","./extension-sdk":{"types":"./dist/extension-sdk.d.ts","import":"./dist/extension-sdk.js"}},"gitHead":"2343abad96243fd7789da387bdf6de7a4a4ce901","scripts":{"wa":"node scripts/run-brigade.mjs channels status --channel whatsapp","dev":"node scripts/run-brigade.mjs","tui":"node scripts/run-brigade.mjs tui","auth":"node scripts/run-brigade.mjs auth","logs":"node scripts/run-brigade.mjs logs","test":"node scripts/run-tests.mjs","agent":"node scripts/run-brigade.mjs agent","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","build":"tsc -p tsconfig.build.json","clean":"node -e \"import('node:fs').then(fs => fs.rmSync('dist', { recursive: true, force: true }))\"","login":"node scripts/run-brigade.mjs login","start":"node scripts/run-brigade.mjs","store":"node scripts/run-brigade.mjs store","watch":"tsx --watch src/entry.ts","agents":"node scripts/run-brigade.mjs agents","backup":"node scripts/run-brigade.mjs backup create","doctor":"node scripts/run-brigade.mjs doctor","expose":"node scripts/run-brigade.mjs expose","skills":"node scripts/run-brigade.mjs skills list","status":"node scripts/run-brigade.mjs status","update":"node scripts/run-brigade.mjs update","brigade":"node brigade.mjs","connect":"node scripts/run-brigade.mjs connect","dev:tsx":"tsx src/entry.ts","gateway":"node scripts/run-brigade.mjs gateway","onboard":"node scripts/run-brigade.mjs onboard","pairing":"node scripts/run-brigade.mjs pairing list --channel whatsapp","prepack":"npm run build","tui:bin":"node brigade.mjs tui","upgrade":"node scripts/run-brigade.mjs upgrade","wa:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels":"node scripts/run-brigade.mjs channels","sessions":"node scripts/run-brigade.mjs sessions list","telegram":"node scripts/run-brigade.mjs channels status --channel telegram","wa:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","agent:bin":"node brigade.mjs agent","exec:list":"node scripts/run-brigade.mjs exec list","login:bin":"node brigade.mjs login","postbuild":"node scripts/build-done.mjs","tui:watch":"tsx --watch src/entry.ts tui","typecheck":"tsc -p tsconfig.json --noEmit","wa:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","wa:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","agents:add":"node scripts/run-brigade.mjs agents add","agents:bin":"node brigade.mjs agents","convex:dev":"node scripts/install-convex.mjs && node scripts/convex-dev.mjs","doctor:bin":"node brigade.mjs doctor","extensions":"node scripts/run-brigade.mjs extensions list","status:bin":"node brigade.mjs status","store:mode":"node scripts/run-brigade.mjs store mode show","update:bin":"node brigade.mjs update","agent:watch":"tsx --watch src/entry.ts agent","agents:bind":"node scripts/run-brigade.mjs agents bind","agents:list":"node scripts/run-brigade.mjs agents list","build:watch":"tsc -p tsconfig.build.json --watch","config:file":"node scripts/run-brigade.mjs config file","config:list":"node scripts/run-brigade.mjs config list","connect:bin":"node brigade.mjs connect","convex:push":"node scripts/convex-push.mjs","doctor:json":"node scripts/run-brigade.mjs doctor --json","expose:stop":"node scripts/run-brigade.mjs expose stop","gateway:bin":"node brigade.mjs gateway","logs:follow":"node scripts/run-brigade.mjs logs --follow","onboard:bin":"node brigade.mjs onboard","postinstall":"node scripts/brand-oauth-page.mjs","skills:info":"node scripts/run-brigade.mjs skills info","skills:list":"node scripts/run-brigade.mjs skills list","status:json":"node scripts/run-brigade.mjs status --json","store:reset":"node scripts/run-brigade.mjs store reset","upgrade:bin":"node brigade.mjs upgrade","channels:add":"node scripts/run-brigade.mjs channels add","gateway:stop":"node scripts/run-brigade.mjs gateway stop","pairing:list":"node scripts/run-brigade.mjs pairing list --channel whatsapp","update:check":"node scripts/run-brigade.mjs update --check","agents:delete":"node scripts/run-brigade.mjs agents delete","agents:unbind":"node scripts/run-brigade.mjs agents unbind","backup:create":"node scripts/run-brigade.mjs backup create","backup:verify":"node scripts/run-brigade.mjs backup verify","channels:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels:list":"node scripts/run-brigade.mjs channels list","config:schema":"node scripts/run-brigade.mjs config schema","connect:watch":"tsx --watch src/entry.ts connect","doctor:strict":"node scripts/run-brigade.mjs doctor --strict","expose:status":"node scripts/run-brigade.mjs expose status","gateway:watch":"tsx --watch src/entry.ts gateway","onboard:watch":"tsx --watch src/entry.ts onboard","secrets:audit":"node scripts/run-brigade.mjs secrets audit","sessions:list":"node scripts/run-brigade.mjs sessions list","store:migrate":"node scripts/run-brigade.mjs store migrate","backup:restore":"node scripts/run-brigade.mjs backup restore","channels:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","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","convex:install":"node scripts/install-convex.mjs","extensions:add":"node scripts/run-brigade.mjs extensions add","gateway:status":"node scripts/run-brigade.mjs gateway status","pairing:revoke":"node scripts/run-brigade.mjs pairing revoke --channel whatsapp","store:mode:set":"node scripts/run-brigade.mjs store mode set","telegram:allow":"node scripts/run-brigade.mjs channels allow list --channel telegram","telegram:token":"node scripts/run-brigade.mjs channels add --channel telegram","agents:bindings":"node scripts/run-brigade.mjs agents bindings","channels:enable":"node scripts/run-brigade.mjs channels enable --channel whatsapp","channels:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","channels:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","config:validate":"node scripts/run-brigade.mjs config validate","extensions:init":"node scripts/run-brigade.mjs extensions init","extensions:list":"node scripts/run-brigade.mjs extensions list","gateway:install":"node scripts/run-brigade.mjs gateway install","gateway:restart":"node scripts/run-brigade.mjs gateway restart","pairing:approve":"node scripts/run-brigade.mjs pairing approve --channel whatsapp","store:mode:show":"node scripts/run-brigade.mjs store mode show","telegram:enable":"node scripts/run-brigade.mjs channels enable --channel telegram","telegram:status":"node scripts/run-brigade.mjs channels status --channel telegram","bloody benchmark":"node scripts/run-brigade.mjs bloody benchmark","channels:disable":"node scripts/run-brigade.mjs channels disable --channel whatsapp","sessions:cleanup":"node scripts/run-brigade.mjs sessions cleanup","telegram:disable":"node scripts/run-brigade.mjs channels disable --channel telegram","extensions:doctor":"node scripts/run-brigade.mjs extensions doctor","extensions:remove":"node scripts/run-brigade.mjs extensions remove","gateway:uninstall":"node scripts/run-brigade.mjs gateway uninstall","smoke:strict-zero":"tsx scripts/strict-zero-smoke.mjs","store:reset:purge":"node scripts/run-brigade.mjs store reset --purge-local","channels:allow:add":"node scripts/run-brigade.mjs channels allow add --channel whatsapp","telegram:allow:add":"node scripts/run-brigade.mjs channels allow add --channel telegram","agents:set-identity":"node scripts/run-brigade.mjs agents set-identity","channels:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel whatsapp","telegram:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel telegram"},"_npmUser":{"name":"spinabot-labs","email":"npm@spinabot.com"},"overrides":{"ws":"$ws","exceljs":{"uuid":"^11.1.1"},"discord.js":{"undici":"^6.27.0"},"@discordjs/rest":{"undici":"^6.27.0"},"@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@earendil-works/pi-agent-core":"0.79.9"},"repository":{"url":"git+https://github.com/spinabot/brigade.git","type":"git"},"_npmVersion":"11.18.0","description":"Brigade — your personal AI crew","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.0","tar":"^7.5.15","zod":"^3.23.8","docx":"^9.7.1","jimp":"^1.6.1","jiti":"^2.6.1","yaml":"^2.9.0","chalk":"^5.3.0","json5":"^2.2.3","unpdf":"^1.6.2","cfonts":"^3.3.1","convex":"^1.40.0","croner":"^10.0.1","fflate":"^0.8.3","grammy":"^1.42.0","undici":"^7.25.0","exceljs":"^4.4.0","prompts":"^2.4.2","linkedom":"^0.18.12","commander":"^12.1.0","minimatch":"^10.2.5","pptxgenjs":"^4.0.1","discord.js":"^14.26.4","cli-highlight":"^2.1.11","@composio/core":"^0.10.0","@slack/web-api":"^7.17.0","@cantoo/pdf-lib":"^2.7.1","@grammyjs/types":"^3.21.0","playwright-core":"^1.59.0","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@pdf-lib/fontkit":"^1.1.1","https-proxy-agent":"^7.0.6","socks-proxy-agent":"^10.1.0","@slack/socket-mode":"^2.0.7","@mozilla/readability":"^0.6.0","@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@whiskeysockets/baileys":"7.0.0-rc13","@earendil-works/pi-agent-core":"0.79.9","@earendil-works/pi-coding-agent":"0.79.9","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","@types/ws":"^8.18.1","@types/tar":"^6.1.13","typescript":"^5.6.3","@types/node":"^22.10.0","@types/prompts":"^2.4.9","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2"},"_npmOperationalInternal":{"tmp":"tmp/brigade_1.22.0_1783034711025_0.8973939442107248","host":"s3://npm-registry-packages-npm-production"}},"1.22.1":{"name":"@spinabot/brigade","version":"1.22.1","keywords":["ai","agent","agents","ai-agent","cli","tui","llm","claude","openai","gemini","ollama","whatsapp","gateway","brigade"],"author":{"name":"Spinabot","email":"hello@brigade-agent.ai"},"license":"MIT","_id":"@spinabot/brigade@1.22.1","maintainers":[{"name":"dev-spinabot","email":"bhasvanth02@gmail.com"},{"name":"spinabot-labs","email":"npm@spinabot.com"}],"homepage":"https://brigade.spinabot.com","bugs":{"url":"https://github.com/spinabot/brigade/issues","email":"hello@brigade-agent.ai"},"bin":{"brigade":"brigade.mjs"},"dist":{"shasum":"6dd112f66169de4656d0b1388ecea06940653e41","tarball":"https://registry.npmjs.org/@spinabot/brigade/-/brigade-1.22.1.tgz","fileCount":2728,"integrity":"sha512-GeHyzuLhlcaST5xw4alGJuPoYuWWS/CnZRcQYhY5IjKFXm8EDucVYia/xaOVpAqgcb3mHm523G+JQb33TY/rEQ==","signatures":[{"sig":"MEQCIGUgE0r+V6b0DPKCPe4axKSqH5DeuW5PD0503fOMdwqdAiBS9zFKr8HnnKpGNl2LQeGAE1Roo7kMpx5UosKP5JpRcA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spinabot%2fbrigade@1.22.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":20126032},"main":"dist/entry.js","type":"module","types":"./dist/entry.d.ts","engines":{"node":">=22.12"},"exports":{".":"./brigade.mjs","./channel-sdk":{"types":"./dist/channel-sdk.d.ts","import":"./dist/channel-sdk.js"},"./package.json":"./package.json","./extension-sdk":{"types":"./dist/extension-sdk.d.ts","import":"./dist/extension-sdk.js"}},"gitHead":"7dff6705a3a227debe589f466df0d8cb0fa25c19","scripts":{"wa":"node scripts/run-brigade.mjs channels status --channel whatsapp","dev":"node scripts/run-brigade.mjs","tui":"node scripts/run-brigade.mjs tui","auth":"node scripts/run-brigade.mjs auth","logs":"node scripts/run-brigade.mjs logs","test":"node scripts/run-tests.mjs","agent":"node scripts/run-brigade.mjs agent","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","build":"tsc -p tsconfig.build.json","clean":"node -e \"import('node:fs').then(fs => fs.rmSync('dist', { recursive: true, force: true }))\"","login":"node scripts/run-brigade.mjs login","start":"node scripts/run-brigade.mjs","store":"node scripts/run-brigade.mjs store","watch":"tsx --watch src/entry.ts","agents":"node scripts/run-brigade.mjs agents","backup":"node scripts/run-brigade.mjs backup create","doctor":"node scripts/run-brigade.mjs doctor","expose":"node scripts/run-brigade.mjs expose","skills":"node scripts/run-brigade.mjs skills list","status":"node scripts/run-brigade.mjs status","update":"node scripts/run-brigade.mjs update","brigade":"node brigade.mjs","connect":"node scripts/run-brigade.mjs connect","dev:tsx":"tsx src/entry.ts","gateway":"node scripts/run-brigade.mjs gateway","onboard":"node scripts/run-brigade.mjs onboard","pairing":"node scripts/run-brigade.mjs pairing list --channel whatsapp","prepack":"npm run build","tui:bin":"node brigade.mjs tui","upgrade":"node scripts/run-brigade.mjs upgrade","wa:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels":"node scripts/run-brigade.mjs channels","sessions":"node scripts/run-brigade.mjs sessions list","telegram":"node scripts/run-brigade.mjs channels status --channel telegram","wa:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","agent:bin":"node brigade.mjs agent","exec:list":"node scripts/run-brigade.mjs exec list","login:bin":"node brigade.mjs login","postbuild":"node scripts/build-done.mjs","tui:watch":"tsx --watch src/entry.ts tui","typecheck":"tsc -p tsconfig.json --noEmit","wa:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","wa:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","agents:add":"node scripts/run-brigade.mjs agents add","agents:bin":"node brigade.mjs agents","convex:dev":"node scripts/install-convex.mjs && node scripts/convex-dev.mjs","doctor:bin":"node brigade.mjs doctor","extensions":"node scripts/run-brigade.mjs extensions list","status:bin":"node brigade.mjs status","store:mode":"node scripts/run-brigade.mjs store mode show","update:bin":"node brigade.mjs update","agent:watch":"tsx --watch src/entry.ts agent","agents:bind":"node scripts/run-brigade.mjs agents bind","agents:list":"node scripts/run-brigade.mjs agents list","build:watch":"tsc -p tsconfig.build.json --watch","config:file":"node scripts/run-brigade.mjs config file","config:list":"node scripts/run-brigade.mjs config list","connect:bin":"node brigade.mjs connect","convex:push":"node scripts/convex-push.mjs","doctor:json":"node scripts/run-brigade.mjs doctor --json","expose:stop":"node scripts/run-brigade.mjs expose stop","gateway:bin":"node brigade.mjs gateway","logs:follow":"node scripts/run-brigade.mjs logs --follow","onboard:bin":"node brigade.mjs onboard","postinstall":"node scripts/brand-oauth-page.mjs","skills:info":"node scripts/run-brigade.mjs skills info","skills:list":"node scripts/run-brigade.mjs skills list","status:json":"node scripts/run-brigade.mjs status --json","store:reset":"node scripts/run-brigade.mjs store reset","upgrade:bin":"node brigade.mjs upgrade","channels:add":"node scripts/run-brigade.mjs channels add","gateway:stop":"node scripts/run-brigade.mjs gateway stop","pairing:list":"node scripts/run-brigade.mjs pairing list --channel whatsapp","update:check":"node scripts/run-brigade.mjs update --check","agents:delete":"node scripts/run-brigade.mjs agents delete","agents:unbind":"node scripts/run-brigade.mjs agents unbind","backup:create":"node scripts/run-brigade.mjs backup create","backup:verify":"node scripts/run-brigade.mjs backup verify","channels:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels:list":"node scripts/run-brigade.mjs channels list","config:schema":"node scripts/run-brigade.mjs config schema","connect:watch":"tsx --watch src/entry.ts connect","doctor:strict":"node scripts/run-brigade.mjs doctor --strict","expose:status":"node scripts/run-brigade.mjs expose status","gateway:watch":"tsx --watch src/entry.ts gateway","onboard:watch":"tsx --watch src/entry.ts onboard","secrets:audit":"node scripts/run-brigade.mjs secrets audit","sessions:list":"node scripts/run-brigade.mjs sessions list","store:migrate":"node scripts/run-brigade.mjs store migrate","backup:restore":"node scripts/run-brigade.mjs backup restore","channels:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","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","convex:install":"node scripts/install-convex.mjs","extensions:add":"node scripts/run-brigade.mjs extensions add","gateway:status":"node scripts/run-brigade.mjs gateway status","pairing:revoke":"node scripts/run-brigade.mjs pairing revoke --channel whatsapp","store:mode:set":"node scripts/run-brigade.mjs store mode set","telegram:allow":"node scripts/run-brigade.mjs channels allow list --channel telegram","telegram:token":"node scripts/run-brigade.mjs channels add --channel telegram","agents:bindings":"node scripts/run-brigade.mjs agents bindings","channels:enable":"node scripts/run-brigade.mjs channels enable --channel whatsapp","channels:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","channels:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","config:validate":"node scripts/run-brigade.mjs config validate","extensions:init":"node scripts/run-brigade.mjs extensions init","extensions:list":"node scripts/run-brigade.mjs extensions list","gateway:install":"node scripts/run-brigade.mjs gateway install","gateway:restart":"node scripts/run-brigade.mjs gateway restart","pairing:approve":"node scripts/run-brigade.mjs pairing approve --channel whatsapp","store:mode:show":"node scripts/run-brigade.mjs store mode show","telegram:enable":"node scripts/run-brigade.mjs channels enable --channel telegram","telegram:status":"node scripts/run-brigade.mjs channels status --channel telegram","bloody benchmark":"node scripts/run-brigade.mjs bloody benchmark","channels:disable":"node scripts/run-brigade.mjs channels disable --channel whatsapp","sessions:cleanup":"node scripts/run-brigade.mjs sessions cleanup","telegram:disable":"node scripts/run-brigade.mjs channels disable --channel telegram","extensions:doctor":"node scripts/run-brigade.mjs extensions doctor","extensions:remove":"node scripts/run-brigade.mjs extensions remove","gateway:uninstall":"node scripts/run-brigade.mjs gateway uninstall","smoke:strict-zero":"tsx scripts/strict-zero-smoke.mjs","store:reset:purge":"node scripts/run-brigade.mjs store reset --purge-local","channels:allow:add":"node scripts/run-brigade.mjs channels allow add --channel whatsapp","telegram:allow:add":"node scripts/run-brigade.mjs channels allow add --channel telegram","agents:set-identity":"node scripts/run-brigade.mjs agents set-identity","channels:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel whatsapp","telegram:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel telegram"},"_npmUser":{"name":"spinabot-labs","email":"npm@spinabot.com"},"overrides":{"ws":"$ws","exceljs":{"uuid":"^11.1.1"},"discord.js":{"undici":"^6.27.0"},"@discordjs/rest":{"undici":"^6.27.0"},"@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@earendil-works/pi-agent-core":"0.79.9"},"repository":{"url":"git+https://github.com/spinabot/brigade.git","type":"git"},"_npmVersion":"11.18.0","description":"Brigade — your personal AI crew","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.0","tar":"^7.5.15","zod":"^3.23.8","docx":"^9.7.1","jimp":"^1.6.1","jiti":"^2.6.1","yaml":"^2.9.0","chalk":"^5.3.0","json5":"^2.2.3","unpdf":"^1.6.2","cfonts":"^3.3.1","convex":"^1.40.0","croner":"^10.0.1","fflate":"^0.8.3","grammy":"^1.42.0","undici":"^7.25.0","exceljs":"^4.4.0","prompts":"^2.4.2","linkedom":"^0.18.12","commander":"^12.1.0","minimatch":"^10.2.5","pptxgenjs":"^4.0.1","discord.js":"^14.26.4","cli-highlight":"^2.1.11","@composio/core":"^0.10.0","@slack/web-api":"^7.17.0","@cantoo/pdf-lib":"^2.7.1","@grammyjs/types":"^3.21.0","playwright-core":"^1.59.0","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@pdf-lib/fontkit":"^1.1.1","https-proxy-agent":"^7.0.6","socks-proxy-agent":"^10.1.0","@slack/socket-mode":"^2.0.7","@mozilla/readability":"^0.6.0","@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@whiskeysockets/baileys":"7.0.0-rc13","@earendil-works/pi-agent-core":"0.79.9","@earendil-works/pi-coding-agent":"0.79.9","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","@types/ws":"^8.18.1","@types/tar":"^6.1.13","typescript":"^5.6.3","@types/node":"^22.10.0","@types/prompts":"^2.4.9","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2"},"_npmOperationalInternal":{"tmp":"tmp/brigade_1.22.1_1783042139499_0.4891493319110025","host":"s3://npm-registry-packages-npm-production"}},"1.23.0":{"name":"@spinabot/brigade","version":"1.23.0","keywords":["ai","agent","agents","ai-agent","cli","tui","llm","claude","openai","gemini","ollama","whatsapp","gateway","brigade"],"author":{"name":"Spinabot","email":"hello@brigade-agent.ai"},"license":"MIT","_id":"@spinabot/brigade@1.23.0","maintainers":[{"name":"dev-spinabot","email":"bhasvanth02@gmail.com"},{"name":"spinabot-labs","email":"npm@spinabot.com"}],"homepage":"https://brigade.spinabot.com","bugs":{"url":"https://github.com/spinabot/brigade/issues","email":"hello@brigade-agent.ai"},"bin":{"brigade":"brigade.mjs"},"dist":{"shasum":"bf7c37b0c3946675cd28799dbb5fd607c2a16a98","tarball":"https://registry.npmjs.org/@spinabot/brigade/-/brigade-1.23.0.tgz","fileCount":2728,"integrity":"sha512-vjOwLeAScSDJReMWBjEJhBquoykhxGYWt7+0tuytFk6fHe+JboNQ9Ud5nXYlm8G4DZUwjJf3n8mnygcH4L+cPg==","signatures":[{"sig":"MEUCIQC2SPFtYjeFQH0htr7F6mX05sJHDY+PRtpVaKL+qDSlTgIgdAheRKDsNIuapiMsivFk7vOUbPRBx0J/DlHek/IyySI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spinabot%2fbrigade@1.23.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":20138518},"main":"dist/entry.js","type":"module","types":"./dist/entry.d.ts","engines":{"node":">=22.12"},"exports":{".":"./brigade.mjs","./channel-sdk":{"types":"./dist/channel-sdk.d.ts","import":"./dist/channel-sdk.js"},"./package.json":"./package.json","./extension-sdk":{"types":"./dist/extension-sdk.d.ts","import":"./dist/extension-sdk.js"}},"gitHead":"db99206cdc347b0828acd198b0abd428b6d773b3","scripts":{"wa":"node scripts/run-brigade.mjs channels status --channel whatsapp","dev":"node scripts/run-brigade.mjs","tui":"node scripts/run-brigade.mjs tui","auth":"node scripts/run-brigade.mjs auth","logs":"node scripts/run-brigade.mjs logs","test":"node scripts/run-tests.mjs","agent":"node scripts/run-brigade.mjs agent","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","build":"tsc -p tsconfig.build.json","clean":"node -e \"import('node:fs').then(fs => fs.rmSync('dist', { recursive: true, force: true }))\"","login":"node scripts/run-brigade.mjs login","start":"node scripts/run-brigade.mjs","store":"node scripts/run-brigade.mjs store","watch":"tsx --watch src/entry.ts","agents":"node scripts/run-brigade.mjs agents","backup":"node scripts/run-brigade.mjs backup create","doctor":"node scripts/run-brigade.mjs doctor","expose":"node scripts/run-brigade.mjs expose","skills":"node scripts/run-brigade.mjs skills list","status":"node scripts/run-brigade.mjs status","update":"node scripts/run-brigade.mjs update","brigade":"node brigade.mjs","connect":"node scripts/run-brigade.mjs connect","dev:tsx":"tsx src/entry.ts","gateway":"node scripts/run-brigade.mjs gateway","onboard":"node scripts/run-brigade.mjs onboard","pairing":"node scripts/run-brigade.mjs pairing list --channel whatsapp","prepack":"npm run build","tui:bin":"node brigade.mjs tui","upgrade":"node scripts/run-brigade.mjs upgrade","wa:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels":"node scripts/run-brigade.mjs channels","sessions":"node scripts/run-brigade.mjs sessions list","telegram":"node scripts/run-brigade.mjs channels status --channel telegram","wa:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","agent:bin":"node brigade.mjs agent","exec:list":"node scripts/run-brigade.mjs exec list","login:bin":"node brigade.mjs login","postbuild":"node scripts/build-done.mjs","tui:watch":"tsx --watch src/entry.ts tui","typecheck":"tsc -p tsconfig.json --noEmit","wa:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","wa:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","agents:add":"node scripts/run-brigade.mjs agents add","agents:bin":"node brigade.mjs agents","convex:dev":"node scripts/install-convex.mjs && node scripts/convex-dev.mjs","doctor:bin":"node brigade.mjs doctor","extensions":"node scripts/run-brigade.mjs extensions list","status:bin":"node brigade.mjs status","store:mode":"node scripts/run-brigade.mjs store mode show","update:bin":"node brigade.mjs update","agent:watch":"tsx --watch src/entry.ts agent","agents:bind":"node scripts/run-brigade.mjs agents bind","agents:list":"node scripts/run-brigade.mjs agents list","build:watch":"tsc -p tsconfig.build.json --watch","config:file":"node scripts/run-brigade.mjs config file","config:list":"node scripts/run-brigade.mjs config list","connect:bin":"node brigade.mjs connect","convex:push":"node scripts/convex-push.mjs","doctor:json":"node scripts/run-brigade.mjs doctor --json","expose:stop":"node scripts/run-brigade.mjs expose stop","gateway:bin":"node brigade.mjs gateway","logs:follow":"node scripts/run-brigade.mjs logs --follow","onboard:bin":"node brigade.mjs onboard","postinstall":"node scripts/brand-oauth-page.mjs","skills:info":"node scripts/run-brigade.mjs skills info","skills:list":"node scripts/run-brigade.mjs skills list","status:json":"node scripts/run-brigade.mjs status --json","store:reset":"node scripts/run-brigade.mjs store reset","upgrade:bin":"node brigade.mjs upgrade","channels:add":"node scripts/run-brigade.mjs channels add","gateway:stop":"node scripts/run-brigade.mjs gateway stop","pairing:list":"node scripts/run-brigade.mjs pairing list --channel whatsapp","update:check":"node scripts/run-brigade.mjs update --check","agents:delete":"node scripts/run-brigade.mjs agents delete","agents:unbind":"node scripts/run-brigade.mjs agents unbind","backup:create":"node scripts/run-brigade.mjs backup create","backup:verify":"node scripts/run-brigade.mjs backup verify","channels:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels:list":"node scripts/run-brigade.mjs channels list","config:schema":"node scripts/run-brigade.mjs config schema","connect:watch":"tsx --watch src/entry.ts connect","doctor:strict":"node scripts/run-brigade.mjs doctor --strict","expose:status":"node scripts/run-brigade.mjs expose status","gateway:watch":"tsx --watch src/entry.ts gateway","onboard:watch":"tsx --watch src/entry.ts onboard","secrets:audit":"node scripts/run-brigade.mjs secrets audit","sessions:list":"node scripts/run-brigade.mjs sessions list","store:migrate":"node scripts/run-brigade.mjs store migrate","backup:restore":"node scripts/run-brigade.mjs backup restore","channels:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","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","convex:install":"node scripts/install-convex.mjs","extensions:add":"node scripts/run-brigade.mjs extensions add","gateway:status":"node scripts/run-brigade.mjs gateway status","pairing:revoke":"node scripts/run-brigade.mjs pairing revoke --channel whatsapp","store:mode:set":"node scripts/run-brigade.mjs store mode set","telegram:allow":"node scripts/run-brigade.mjs channels allow list --channel telegram","telegram:token":"node scripts/run-brigade.mjs channels add --channel telegram","agents:bindings":"node scripts/run-brigade.mjs agents bindings","channels:enable":"node scripts/run-brigade.mjs channels enable --channel whatsapp","channels:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","channels:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","config:validate":"node scripts/run-brigade.mjs config validate","extensions:init":"node scripts/run-brigade.mjs extensions init","extensions:list":"node scripts/run-brigade.mjs extensions list","gateway:install":"node scripts/run-brigade.mjs gateway install","gateway:restart":"node scripts/run-brigade.mjs gateway restart","pairing:approve":"node scripts/run-brigade.mjs pairing approve --channel whatsapp","store:mode:show":"node scripts/run-brigade.mjs store mode show","telegram:enable":"node scripts/run-brigade.mjs channels enable --channel telegram","telegram:status":"node scripts/run-brigade.mjs channels status --channel telegram","bloody benchmark":"node scripts/run-brigade.mjs bloody benchmark","channels:disable":"node scripts/run-brigade.mjs channels disable --channel whatsapp","sessions:cleanup":"node scripts/run-brigade.mjs sessions cleanup","telegram:disable":"node scripts/run-brigade.mjs channels disable --channel telegram","extensions:doctor":"node scripts/run-brigade.mjs extensions doctor","extensions:remove":"node scripts/run-brigade.mjs extensions remove","gateway:uninstall":"node scripts/run-brigade.mjs gateway uninstall","smoke:strict-zero":"tsx scripts/strict-zero-smoke.mjs","store:reset:purge":"node scripts/run-brigade.mjs store reset --purge-local","channels:allow:add":"node scripts/run-brigade.mjs channels allow add --channel whatsapp","telegram:allow:add":"node scripts/run-brigade.mjs channels allow add --channel telegram","agents:set-identity":"node scripts/run-brigade.mjs agents set-identity","channels:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel whatsapp","telegram:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel telegram"},"_npmUser":{"name":"spinabot-labs","email":"npm@spinabot.com"},"overrides":{"ws":"$ws","exceljs":{"uuid":"^11.1.1"},"discord.js":{"undici":"^6.27.0"},"@discordjs/rest":{"undici":"^6.27.0"},"@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@earendil-works/pi-agent-core":"0.79.9"},"repository":{"url":"git+https://github.com/spinabot/brigade.git","type":"git"},"_npmVersion":"11.18.0","description":"Brigade — your personal AI crew","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.0","tar":"^7.5.15","zod":"^3.23.8","docx":"^9.7.1","jimp":"^1.6.1","jiti":"^2.6.1","yaml":"^2.9.0","chalk":"^5.3.0","json5":"^2.2.3","unpdf":"^1.6.2","cfonts":"^3.3.1","convex":"^1.40.0","croner":"^10.0.1","fflate":"^0.8.3","grammy":"^1.42.0","undici":"^7.25.0","exceljs":"^4.4.0","prompts":"^2.4.2","linkedom":"^0.18.12","commander":"^12.1.0","minimatch":"^10.2.5","pptxgenjs":"^4.0.1","discord.js":"^14.26.4","cli-highlight":"^2.1.11","@composio/core":"^0.10.0","@slack/web-api":"^7.17.0","@cantoo/pdf-lib":"^2.7.1","@grammyjs/types":"^3.21.0","playwright-core":"^1.59.0","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@pdf-lib/fontkit":"^1.1.1","https-proxy-agent":"^7.0.6","socks-proxy-agent":"^10.1.0","@slack/socket-mode":"^2.0.7","@mozilla/readability":"^0.6.0","@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@whiskeysockets/baileys":"7.0.0-rc13","@earendil-works/pi-agent-core":"0.79.9","@earendil-works/pi-coding-agent":"0.79.9","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","@types/ws":"^8.18.1","@types/tar":"^6.1.13","typescript":"^5.6.3","@types/node":"^22.10.0","@types/prompts":"^2.4.9","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2"},"_npmOperationalInternal":{"tmp":"tmp/brigade_1.23.0_1783135321148_0.49672754492693394","host":"s3://npm-registry-packages-npm-production"}},"1.24.0":{"name":"@spinabot/brigade","version":"1.24.0","keywords":["ai","agent","agents","ai-agent","cli","tui","llm","claude","openai","gemini","ollama","whatsapp","gateway","brigade"],"author":{"name":"Spinabot","email":"hello@brigade-agent.ai"},"license":"MIT","_id":"@spinabot/brigade@1.24.0","maintainers":[{"name":"dev-spinabot","email":"bhasvanth02@gmail.com"},{"name":"spinabot-labs","email":"npm@spinabot.com"}],"homepage":"https://brigade.spinabot.com","bugs":{"url":"https://github.com/spinabot/brigade/issues","email":"hello@brigade-agent.ai"},"bin":{"brigade":"brigade.mjs"},"dist":{"shasum":"ec936b1ea7a855b522f502cde06a836513a10221","tarball":"https://registry.npmjs.org/@spinabot/brigade/-/brigade-1.24.0.tgz","fileCount":2756,"integrity":"sha512-SGFdlU1BV4nmYl9ozoRYMfUxWWFBBhtHJQhCHz7GvqD+Nsev00V/Ftymkblt7PUzoAObUb0cz3LuODu+51JqGw==","signatures":[{"sig":"MEYCIQDoYbFCWbUzh38FnGM1sSZ+1PwUPynnupBpjuVIg3yk7AIhAO7PESzaB8EU6y2LCwHlyp/JzBttDPtBAQtewMJn7ahg","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spinabot%2fbrigade@1.24.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":20337458},"main":"dist/entry.js","type":"module","types":"./dist/entry.d.ts","engines":{"node":">=22.12"},"exports":{".":"./brigade.mjs","./channel-sdk":{"types":"./dist/channel-sdk.d.ts","import":"./dist/channel-sdk.js"},"./package.json":"./package.json","./extension-sdk":{"types":"./dist/extension-sdk.d.ts","import":"./dist/extension-sdk.js"}},"gitHead":"84aa6f14a66782ede47bacf097a362fb13348cd0","scripts":{"wa":"node scripts/run-brigade.mjs channels status --channel whatsapp","dev":"node scripts/run-brigade.mjs","tui":"node scripts/run-brigade.mjs tui","auth":"node scripts/run-brigade.mjs auth","logs":"node scripts/run-brigade.mjs logs","test":"node scripts/run-tests.mjs","agent":"node scripts/run-brigade.mjs agent","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","build":"tsc -p tsconfig.build.json","clean":"node -e \"import('node:fs').then(fs => fs.rmSync('dist', { recursive: true, force: true }))\"","login":"node scripts/run-brigade.mjs login","start":"node scripts/run-brigade.mjs","store":"node scripts/run-brigade.mjs store","watch":"tsx --watch src/entry.ts","agents":"node scripts/run-brigade.mjs agents","backup":"node scripts/run-brigade.mjs backup create","doctor":"node scripts/run-brigade.mjs doctor","expose":"node scripts/run-brigade.mjs expose","skills":"node scripts/run-brigade.mjs skills list","status":"node scripts/run-brigade.mjs status","update":"node scripts/run-brigade.mjs update","brigade":"node brigade.mjs","connect":"node scripts/run-brigade.mjs connect","dev:tsx":"tsx src/entry.ts","gateway":"node scripts/run-brigade.mjs gateway","onboard":"node scripts/run-brigade.mjs onboard","pairing":"node scripts/run-brigade.mjs pairing list --channel whatsapp","prepack":"npm run build","tui:bin":"node brigade.mjs tui","upgrade":"node scripts/run-brigade.mjs upgrade","wa:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels":"node scripts/run-brigade.mjs channels","sessions":"node scripts/run-brigade.mjs sessions list","telegram":"node scripts/run-brigade.mjs channels status --channel telegram","wa:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","agent:bin":"node brigade.mjs agent","exec:list":"node scripts/run-brigade.mjs exec list","login:bin":"node brigade.mjs login","postbuild":"node scripts/build-done.mjs","tui:watch":"tsx --watch src/entry.ts tui","typecheck":"tsc -p tsconfig.json --noEmit","wa:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","wa:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","agents:add":"node scripts/run-brigade.mjs agents add","agents:bin":"node brigade.mjs agents","convex:dev":"node scripts/install-convex.mjs && node scripts/convex-dev.mjs","doctor:bin":"node brigade.mjs doctor","extensions":"node scripts/run-brigade.mjs extensions list","status:bin":"node brigade.mjs status","store:mode":"node scripts/run-brigade.mjs store mode show","update:bin":"node brigade.mjs update","agent:watch":"tsx --watch src/entry.ts agent","agents:bind":"node scripts/run-brigade.mjs agents bind","agents:list":"node scripts/run-brigade.mjs agents list","build:watch":"tsc -p tsconfig.build.json --watch","config:file":"node scripts/run-brigade.mjs config file","config:list":"node scripts/run-brigade.mjs config list","connect:bin":"node brigade.mjs connect","convex:push":"node scripts/convex-push.mjs","doctor:json":"node scripts/run-brigade.mjs doctor --json","expose:stop":"node scripts/run-brigade.mjs expose stop","gateway:bin":"node brigade.mjs gateway","logs:follow":"node scripts/run-brigade.mjs logs --follow","onboard:bin":"node brigade.mjs onboard","postinstall":"node scripts/brand-oauth-page.mjs","skills:info":"node scripts/run-brigade.mjs skills info","skills:list":"node scripts/run-brigade.mjs skills list","status:json":"node scripts/run-brigade.mjs status --json","store:reset":"node scripts/run-brigade.mjs store reset","upgrade:bin":"node brigade.mjs upgrade","channels:add":"node scripts/run-brigade.mjs channels add","gateway:stop":"node scripts/run-brigade.mjs gateway stop","pairing:list":"node scripts/run-brigade.mjs pairing list --channel whatsapp","update:check":"node scripts/run-brigade.mjs update --check","agents:delete":"node scripts/run-brigade.mjs agents delete","agents:unbind":"node scripts/run-brigade.mjs agents unbind","backup:create":"node scripts/run-brigade.mjs backup create","backup:verify":"node scripts/run-brigade.mjs backup verify","channels:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels:list":"node scripts/run-brigade.mjs channels list","config:schema":"node scripts/run-brigade.mjs config schema","connect:watch":"tsx --watch src/entry.ts connect","doctor:strict":"node scripts/run-brigade.mjs doctor --strict","expose:status":"node scripts/run-brigade.mjs expose status","gateway:watch":"tsx --watch src/entry.ts gateway","onboard:watch":"tsx --watch src/entry.ts onboard","secrets:audit":"node scripts/run-brigade.mjs secrets audit","sessions:list":"node scripts/run-brigade.mjs sessions list","store:migrate":"node scripts/run-brigade.mjs store migrate","backup:restore":"node scripts/run-brigade.mjs backup restore","channels:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","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","convex:install":"node scripts/install-convex.mjs","extensions:add":"node scripts/run-brigade.mjs extensions add","gateway:status":"node scripts/run-brigade.mjs gateway status","pairing:revoke":"node scripts/run-brigade.mjs pairing revoke --channel whatsapp","store:mode:set":"node scripts/run-brigade.mjs store mode set","telegram:allow":"node scripts/run-brigade.mjs channels allow list --channel telegram","telegram:token":"node scripts/run-brigade.mjs channels add --channel telegram","agents:bindings":"node scripts/run-brigade.mjs agents bindings","channels:enable":"node scripts/run-brigade.mjs channels enable --channel whatsapp","channels:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","channels:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","config:validate":"node scripts/run-brigade.mjs config validate","extensions:init":"node scripts/run-brigade.mjs extensions init","extensions:list":"node scripts/run-brigade.mjs extensions list","gateway:install":"node scripts/run-brigade.mjs gateway install","gateway:restart":"node scripts/run-brigade.mjs gateway restart","pairing:approve":"node scripts/run-brigade.mjs pairing approve --channel whatsapp","store:mode:show":"node scripts/run-brigade.mjs store mode show","telegram:enable":"node scripts/run-brigade.mjs channels enable --channel telegram","telegram:status":"node scripts/run-brigade.mjs channels status --channel telegram","bloody benchmark":"node scripts/run-brigade.mjs bloody benchmark","channels:disable":"node scripts/run-brigade.mjs channels disable --channel whatsapp","sessions:cleanup":"node scripts/run-brigade.mjs sessions cleanup","telegram:disable":"node scripts/run-brigade.mjs channels disable --channel telegram","extensions:doctor":"node scripts/run-brigade.mjs extensions doctor","extensions:remove":"node scripts/run-brigade.mjs extensions remove","gateway:uninstall":"node scripts/run-brigade.mjs gateway uninstall","smoke:strict-zero":"tsx scripts/strict-zero-smoke.mjs","store:reset:purge":"node scripts/run-brigade.mjs store reset --purge-local","channels:allow:add":"node scripts/run-brigade.mjs channels allow add --channel whatsapp","telegram:allow:add":"node scripts/run-brigade.mjs channels allow add --channel telegram","agents:set-identity":"node scripts/run-brigade.mjs agents set-identity","channels:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel whatsapp","telegram:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel telegram"},"_npmUser":{"name":"spinabot-labs","email":"npm@spinabot.com"},"overrides":{"ws":"$ws","exceljs":{"uuid":"^11.1.1"},"discord.js":{"undici":"^6.27.0"},"@discordjs/rest":{"undici":"^6.27.0"},"@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@earendil-works/pi-agent-core":"0.79.9"},"repository":{"url":"git+https://github.com/spinabot/brigade.git","type":"git"},"_npmVersion":"11.18.0","description":"Brigade — your personal AI crew","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.0","tar":"^7.5.15","zod":"^3.23.8","docx":"^9.7.1","jimp":"^1.6.1","jiti":"^2.6.1","yaml":"^2.9.0","chalk":"^5.3.0","json5":"^2.2.3","unpdf":"^1.6.2","cfonts":"^3.3.1","convex":"^1.40.0","croner":"^10.0.1","fflate":"^0.8.3","grammy":"^1.42.0","undici":"^7.25.0","exceljs":"^4.4.0","prompts":"^2.4.2","linkedom":"^0.18.12","commander":"^12.1.0","minimatch":"^10.2.5","pptxgenjs":"^4.0.1","discord.js":"^14.26.4","cli-highlight":"^2.1.11","@composio/core":"^0.10.0","@slack/web-api":"^7.17.0","@cantoo/pdf-lib":"^2.7.1","@grammyjs/types":"^3.21.0","playwright-core":"^1.59.0","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@pdf-lib/fontkit":"^1.1.1","https-proxy-agent":"^7.0.6","socks-proxy-agent":"^10.1.0","@slack/socket-mode":"^2.0.7","@mozilla/readability":"^0.6.0","@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@whiskeysockets/baileys":"7.0.0-rc13","@anthropic-ai/claude-code":"^2.1.0","@earendil-works/pi-agent-core":"0.79.9","@earendil-works/pi-coding-agent":"0.79.9","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","@types/ws":"^8.18.1","@types/tar":"^6.1.13","typescript":"^5.6.3","@types/node":"^22.10.0","@types/prompts":"^2.4.9","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2"},"_npmOperationalInternal":{"tmp":"tmp/brigade_1.24.0_1783226083268_0.773517362434833","host":"s3://npm-registry-packages-npm-production"}},"1.24.1":{"name":"@spinabot/brigade","version":"1.24.1","keywords":["ai","agent","agents","ai-agent","cli","tui","llm","claude","openai","gemini","ollama","whatsapp","gateway","brigade"],"author":{"name":"Spinabot","email":"hello@brigade-agent.ai"},"license":"MIT","_id":"@spinabot/brigade@1.24.1","maintainers":[{"name":"dev-spinabot","email":"bhasvanth02@gmail.com"},{"name":"spinabot-labs","email":"npm@spinabot.com"}],"homepage":"https://brigade.spinabot.com","bugs":{"url":"https://github.com/spinabot/brigade/issues","email":"hello@brigade-agent.ai"},"bin":{"brigade":"brigade.mjs"},"dist":{"shasum":"197e0b3aea0ae4c176f5f825c9b5895a368a9585","tarball":"https://registry.npmjs.org/@spinabot/brigade/-/brigade-1.24.1.tgz","fileCount":2756,"integrity":"sha512-G5nz//KYoECOF608lATtT9nRv1ey9cA0kgr5qaJ6vHNq1tLZXfANCaF/g5fr20nT9jwY8zoUvvN/Wk7GAcP/sw==","signatures":[{"sig":"MEQCHx2xU7eUvZ2QuZj7CkWczB5Qf9KaLIv1sLJ9Np9jq1ECIQDr++jmvg/qUDaffSDLSSJaWFLhN16T5T5bqQvj4HVUKQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spinabot%2fbrigade@1.24.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":20337458},"main":"dist/entry.js","type":"module","types":"./dist/entry.d.ts","engines":{"node":">=22.12"},"exports":{".":"./brigade.mjs","./channel-sdk":{"types":"./dist/channel-sdk.d.ts","import":"./dist/channel-sdk.js"},"./package.json":"./package.json","./extension-sdk":{"types":"./dist/extension-sdk.d.ts","import":"./dist/extension-sdk.js"}},"gitHead":"2dba014a6c99811691c0fe70666312f919a770e8","scripts":{"wa":"node scripts/run-brigade.mjs channels status --channel whatsapp","dev":"node scripts/run-brigade.mjs","tui":"node scripts/run-brigade.mjs tui","auth":"node scripts/run-brigade.mjs auth","logs":"node scripts/run-brigade.mjs logs","test":"node scripts/run-tests.mjs","agent":"node scripts/run-brigade.mjs agent","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","build":"tsc -p tsconfig.build.json","clean":"node -e \"import('node:fs').then(fs => fs.rmSync('dist', { recursive: true, force: true }))\"","login":"node scripts/run-brigade.mjs login","start":"node scripts/run-brigade.mjs","store":"node scripts/run-brigade.mjs store","watch":"tsx --watch src/entry.ts","agents":"node scripts/run-brigade.mjs agents","backup":"node scripts/run-brigade.mjs backup create","doctor":"node scripts/run-brigade.mjs doctor","expose":"node scripts/run-brigade.mjs expose","skills":"node scripts/run-brigade.mjs skills list","status":"node scripts/run-brigade.mjs status","update":"node scripts/run-brigade.mjs update","brigade":"node brigade.mjs","connect":"node scripts/run-brigade.mjs connect","dev:tsx":"tsx src/entry.ts","gateway":"node scripts/run-brigade.mjs gateway","onboard":"node scripts/run-brigade.mjs onboard","pairing":"node scripts/run-brigade.mjs pairing list --channel whatsapp","prepack":"npm run build","tui:bin":"node brigade.mjs tui","upgrade":"node scripts/run-brigade.mjs upgrade","wa:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels":"node scripts/run-brigade.mjs channels","sessions":"node scripts/run-brigade.mjs sessions list","telegram":"node scripts/run-brigade.mjs channels status --channel telegram","wa:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","agent:bin":"node brigade.mjs agent","exec:list":"node scripts/run-brigade.mjs exec list","login:bin":"node brigade.mjs login","postbuild":"node scripts/build-done.mjs","tui:watch":"tsx --watch src/entry.ts tui","typecheck":"tsc -p tsconfig.json --noEmit","wa:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","wa:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","agents:add":"node scripts/run-brigade.mjs agents add","agents:bin":"node brigade.mjs agents","convex:dev":"node scripts/install-convex.mjs && node scripts/convex-dev.mjs","doctor:bin":"node brigade.mjs doctor","extensions":"node scripts/run-brigade.mjs extensions list","status:bin":"node brigade.mjs status","store:mode":"node scripts/run-brigade.mjs store mode show","update:bin":"node brigade.mjs update","agent:watch":"tsx --watch src/entry.ts agent","agents:bind":"node scripts/run-brigade.mjs agents bind","agents:list":"node scripts/run-brigade.mjs agents list","build:watch":"tsc -p tsconfig.build.json --watch","config:file":"node scripts/run-brigade.mjs config file","config:list":"node scripts/run-brigade.mjs config list","connect:bin":"node brigade.mjs connect","convex:push":"node scripts/convex-push.mjs","doctor:json":"node scripts/run-brigade.mjs doctor --json","expose:stop":"node scripts/run-brigade.mjs expose stop","gateway:bin":"node brigade.mjs gateway","logs:follow":"node scripts/run-brigade.mjs logs --follow","onboard:bin":"node brigade.mjs onboard","postinstall":"node scripts/brand-oauth-page.mjs","skills:info":"node scripts/run-brigade.mjs skills info","skills:list":"node scripts/run-brigade.mjs skills list","status:json":"node scripts/run-brigade.mjs status --json","store:reset":"node scripts/run-brigade.mjs store reset","upgrade:bin":"node brigade.mjs upgrade","channels:add":"node scripts/run-brigade.mjs channels add","gateway:stop":"node scripts/run-brigade.mjs gateway stop","pairing:list":"node scripts/run-brigade.mjs pairing list --channel whatsapp","update:check":"node scripts/run-brigade.mjs update --check","agents:delete":"node scripts/run-brigade.mjs agents delete","agents:unbind":"node scripts/run-brigade.mjs agents unbind","backup:create":"node scripts/run-brigade.mjs backup create","backup:verify":"node scripts/run-brigade.mjs backup verify","channels:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels:list":"node scripts/run-brigade.mjs channels list","config:schema":"node scripts/run-brigade.mjs config schema","connect:watch":"tsx --watch src/entry.ts connect","doctor:strict":"node scripts/run-brigade.mjs doctor --strict","expose:status":"node scripts/run-brigade.mjs expose status","gateway:watch":"tsx --watch src/entry.ts gateway","onboard:watch":"tsx --watch src/entry.ts onboard","secrets:audit":"node scripts/run-brigade.mjs secrets audit","sessions:list":"node scripts/run-brigade.mjs sessions list","store:migrate":"node scripts/run-brigade.mjs store migrate","backup:restore":"node scripts/run-brigade.mjs backup restore","channels:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","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","convex:install":"node scripts/install-convex.mjs","extensions:add":"node scripts/run-brigade.mjs extensions add","gateway:status":"node scripts/run-brigade.mjs gateway status","pairing:revoke":"node scripts/run-brigade.mjs pairing revoke --channel whatsapp","store:mode:set":"node scripts/run-brigade.mjs store mode set","telegram:allow":"node scripts/run-brigade.mjs channels allow list --channel telegram","telegram:token":"node scripts/run-brigade.mjs channels add --channel telegram","agents:bindings":"node scripts/run-brigade.mjs agents bindings","channels:enable":"node scripts/run-brigade.mjs channels enable --channel whatsapp","channels:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","channels:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","config:validate":"node scripts/run-brigade.mjs config validate","extensions:init":"node scripts/run-brigade.mjs extensions init","extensions:list":"node scripts/run-brigade.mjs extensions list","gateway:install":"node scripts/run-brigade.mjs gateway install","gateway:restart":"node scripts/run-brigade.mjs gateway restart","pairing:approve":"node scripts/run-brigade.mjs pairing approve --channel whatsapp","store:mode:show":"node scripts/run-brigade.mjs store mode show","telegram:enable":"node scripts/run-brigade.mjs channels enable --channel telegram","telegram:status":"node scripts/run-brigade.mjs channels status --channel telegram","bloody benchmark":"node scripts/run-brigade.mjs bloody benchmark","channels:disable":"node scripts/run-brigade.mjs channels disable --channel whatsapp","sessions:cleanup":"node scripts/run-brigade.mjs sessions cleanup","telegram:disable":"node scripts/run-brigade.mjs channels disable --channel telegram","extensions:doctor":"node scripts/run-brigade.mjs extensions doctor","extensions:remove":"node scripts/run-brigade.mjs extensions remove","gateway:uninstall":"node scripts/run-brigade.mjs gateway uninstall","smoke:strict-zero":"tsx scripts/strict-zero-smoke.mjs","store:reset:purge":"node scripts/run-brigade.mjs store reset --purge-local","channels:allow:add":"node scripts/run-brigade.mjs channels allow add --channel whatsapp","telegram:allow:add":"node scripts/run-brigade.mjs channels allow add --channel telegram","agents:set-identity":"node scripts/run-brigade.mjs agents set-identity","channels:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel whatsapp","telegram:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel telegram"},"_npmUser":{"name":"spinabot-labs","email":"npm@spinabot.com"},"overrides":{"ws":"$ws","exceljs":{"uuid":"^11.1.1"},"discord.js":{"undici":"^6.27.0"},"@discordjs/rest":{"undici":"^6.27.0"},"@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@earendil-works/pi-agent-core":"0.79.9"},"repository":{"url":"git+https://github.com/spinabot/brigade.git","type":"git"},"_npmVersion":"11.18.0","description":"Brigade — your personal AI crew","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.0","tar":"^7.5.15","zod":"^3.23.8","docx":"^9.7.1","jimp":"^1.6.1","jiti":"^2.6.1","yaml":"^2.9.0","chalk":"^5.3.0","json5":"^2.2.3","unpdf":"^1.6.2","cfonts":"^3.3.1","convex":"^1.40.0","croner":"^10.0.1","fflate":"^0.8.3","grammy":"^1.42.0","undici":"^7.25.0","exceljs":"^4.4.0","prompts":"^2.4.2","linkedom":"^0.18.12","commander":"^12.1.0","minimatch":"^10.2.5","pptxgenjs":"^4.0.1","discord.js":"^14.26.4","cli-highlight":"^2.1.11","@composio/core":"^0.10.0","@slack/web-api":"^7.17.0","@cantoo/pdf-lib":"^2.7.1","@grammyjs/types":"^3.21.0","playwright-core":"^1.59.0","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@pdf-lib/fontkit":"^1.1.1","https-proxy-agent":"^7.0.6","socks-proxy-agent":"^10.1.0","@slack/socket-mode":"^2.0.7","@mozilla/readability":"^0.6.0","@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@whiskeysockets/baileys":"7.0.0-rc13","@anthropic-ai/claude-code":"^2.1.0","@earendil-works/pi-agent-core":"0.79.9","@earendil-works/pi-coding-agent":"0.79.9","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","@types/ws":"^8.18.1","@types/tar":"^6.1.13","typescript":"^5.6.3","@types/node":"^22.10.0","@types/prompts":"^2.4.9","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2"},"_npmOperationalInternal":{"tmp":"tmp/brigade_1.24.1_1783227013149_0.40455707613321845","host":"s3://npm-registry-packages-npm-production"}},"1.24.2":{"name":"@spinabot/brigade","version":"1.24.2","keywords":["ai","agent","agents","ai-agent","cli","tui","llm","claude","openai","gemini","ollama","whatsapp","gateway","brigade"],"author":{"name":"Spinabot","email":"hello@brigade-agent.ai"},"license":"MIT","_id":"@spinabot/brigade@1.24.2","maintainers":[{"name":"dev-spinabot","email":"bhasvanth02@gmail.com"},{"name":"spinabot-labs","email":"npm@spinabot.com"}],"homepage":"https://brigade.spinabot.com","bugs":{"url":"https://github.com/spinabot/brigade/issues","email":"hello@brigade-agent.ai"},"bin":{"brigade":"brigade.mjs"},"dist":{"shasum":"d4a8d7c1614a3a138ee4ae6a59620c8b99524ae5","tarball":"https://registry.npmjs.org/@spinabot/brigade/-/brigade-1.24.2.tgz","fileCount":2760,"integrity":"sha512-GNpmaJEdA3WmObUS7C0MQdrfOMJyExygzeoqARSkCL9lJ3IUqoJQuIVmOdzG9SkqesXkpD6Ql6R2B9j31BaS9A==","signatures":[{"sig":"MEYCIQDw74OE0xttSbVe7AqDJH0pYTrUfYVSb6Tj/T+F2I2ucAIhAOwhgSTbtYMXRzAyljSnZlf19aAbSD20GgjrXphAAIzS","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spinabot%2fbrigade@1.24.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":20352486},"main":"dist/entry.js","type":"module","types":"./dist/entry.d.ts","engines":{"node":">=22.12"},"exports":{".":"./brigade.mjs","./channel-sdk":{"types":"./dist/channel-sdk.d.ts","import":"./dist/channel-sdk.js"},"./package.json":"./package.json","./extension-sdk":{"types":"./dist/extension-sdk.d.ts","import":"./dist/extension-sdk.js"}},"gitHead":"d4009868d20aa3dd28e01ba219f468d8991e70df","scripts":{"wa":"node scripts/run-brigade.mjs channels status --channel whatsapp","dev":"node scripts/run-brigade.mjs","tui":"node scripts/run-brigade.mjs tui","auth":"node scripts/run-brigade.mjs auth","logs":"node scripts/run-brigade.mjs logs","test":"node scripts/run-tests.mjs","agent":"node scripts/run-brigade.mjs agent","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","build":"tsc -p tsconfig.build.json","clean":"node -e \"import('node:fs').then(fs => fs.rmSync('dist', { recursive: true, force: true }))\"","login":"node scripts/run-brigade.mjs login","start":"node scripts/run-brigade.mjs","store":"node scripts/run-brigade.mjs store","watch":"tsx --watch src/entry.ts","agents":"node scripts/run-brigade.mjs agents","backup":"node scripts/run-brigade.mjs backup create","doctor":"node scripts/run-brigade.mjs doctor","expose":"node scripts/run-brigade.mjs expose","skills":"node scripts/run-brigade.mjs skills list","status":"node scripts/run-brigade.mjs status","update":"node scripts/run-brigade.mjs update","brigade":"node brigade.mjs","connect":"node scripts/run-brigade.mjs connect","dev:tsx":"tsx src/entry.ts","gateway":"node scripts/run-brigade.mjs gateway","onboard":"node scripts/run-brigade.mjs onboard","pairing":"node scripts/run-brigade.mjs pairing list --channel whatsapp","prepack":"npm run build","tui:bin":"node brigade.mjs tui","upgrade":"node scripts/run-brigade.mjs upgrade","wa:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels":"node scripts/run-brigade.mjs channels","sessions":"node scripts/run-brigade.mjs sessions list","telegram":"node scripts/run-brigade.mjs channels status --channel telegram","wa:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","agent:bin":"node brigade.mjs agent","exec:list":"node scripts/run-brigade.mjs exec list","login:bin":"node brigade.mjs login","postbuild":"node scripts/build-done.mjs","tui:watch":"tsx --watch src/entry.ts tui","typecheck":"tsc -p tsconfig.json --noEmit","wa:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","wa:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","agents:add":"node scripts/run-brigade.mjs agents add","agents:bin":"node brigade.mjs agents","convex:dev":"node scripts/install-convex.mjs && node scripts/convex-dev.mjs","doctor:bin":"node brigade.mjs doctor","extensions":"node scripts/run-brigade.mjs extensions list","status:bin":"node brigade.mjs status","store:mode":"node scripts/run-brigade.mjs store mode show","update:bin":"node brigade.mjs update","agent:watch":"tsx --watch src/entry.ts agent","agents:bind":"node scripts/run-brigade.mjs agents bind","agents:list":"node scripts/run-brigade.mjs agents list","build:watch":"tsc -p tsconfig.build.json --watch","config:file":"node scripts/run-brigade.mjs config file","config:list":"node scripts/run-brigade.mjs config list","connect:bin":"node brigade.mjs connect","convex:push":"node scripts/convex-push.mjs","doctor:json":"node scripts/run-brigade.mjs doctor --json","expose:stop":"node scripts/run-brigade.mjs expose stop","gateway:bin":"node brigade.mjs gateway","logs:follow":"node scripts/run-brigade.mjs logs --follow","onboard:bin":"node brigade.mjs onboard","postinstall":"node scripts/brand-oauth-page.mjs","skills:info":"node scripts/run-brigade.mjs skills info","skills:list":"node scripts/run-brigade.mjs skills list","status:json":"node scripts/run-brigade.mjs status --json","store:reset":"node scripts/run-brigade.mjs store reset","upgrade:bin":"node brigade.mjs upgrade","channels:add":"node scripts/run-brigade.mjs channels add","gateway:stop":"node scripts/run-brigade.mjs gateway stop","pairing:list":"node scripts/run-brigade.mjs pairing list --channel whatsapp","update:check":"node scripts/run-brigade.mjs update --check","agents:delete":"node scripts/run-brigade.mjs agents delete","agents:unbind":"node scripts/run-brigade.mjs agents unbind","backup:create":"node scripts/run-brigade.mjs backup create","backup:verify":"node scripts/run-brigade.mjs backup verify","channels:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels:list":"node scripts/run-brigade.mjs channels list","config:schema":"node scripts/run-brigade.mjs config schema","connect:watch":"tsx --watch src/entry.ts connect","doctor:strict":"node scripts/run-brigade.mjs doctor --strict","expose:status":"node scripts/run-brigade.mjs expose status","gateway:watch":"tsx --watch src/entry.ts gateway","onboard:watch":"tsx --watch src/entry.ts onboard","secrets:audit":"node scripts/run-brigade.mjs secrets audit","sessions:list":"node scripts/run-brigade.mjs sessions list","store:migrate":"node scripts/run-brigade.mjs store migrate","backup:restore":"node scripts/run-brigade.mjs backup restore","channels:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","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","convex:install":"node scripts/install-convex.mjs","extensions:add":"node scripts/run-brigade.mjs extensions add","gateway:status":"node scripts/run-brigade.mjs gateway status","pairing:revoke":"node scripts/run-brigade.mjs pairing revoke --channel whatsapp","store:mode:set":"node scripts/run-brigade.mjs store mode set","telegram:allow":"node scripts/run-brigade.mjs channels allow list --channel telegram","telegram:token":"node scripts/run-brigade.mjs channels add --channel telegram","agents:bindings":"node scripts/run-brigade.mjs agents bindings","channels:enable":"node scripts/run-brigade.mjs channels enable --channel whatsapp","channels:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","channels:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","config:validate":"node scripts/run-brigade.mjs config validate","extensions:init":"node scripts/run-brigade.mjs extensions init","extensions:list":"node scripts/run-brigade.mjs extensions list","gateway:install":"node scripts/run-brigade.mjs gateway install","gateway:restart":"node scripts/run-brigade.mjs gateway restart","pairing:approve":"node scripts/run-brigade.mjs pairing approve --channel whatsapp","store:mode:show":"node scripts/run-brigade.mjs store mode show","telegram:enable":"node scripts/run-brigade.mjs channels enable --channel telegram","telegram:status":"node scripts/run-brigade.mjs channels status --channel telegram","bloody benchmark":"node scripts/run-brigade.mjs bloody benchmark","channels:disable":"node scripts/run-brigade.mjs channels disable --channel whatsapp","sessions:cleanup":"node scripts/run-brigade.mjs sessions cleanup","telegram:disable":"node scripts/run-brigade.mjs channels disable --channel telegram","extensions:doctor":"node scripts/run-brigade.mjs extensions doctor","extensions:remove":"node scripts/run-brigade.mjs extensions remove","gateway:uninstall":"node scripts/run-brigade.mjs gateway uninstall","smoke:strict-zero":"tsx scripts/strict-zero-smoke.mjs","store:reset:purge":"node scripts/run-brigade.mjs store reset --purge-local","channels:allow:add":"node scripts/run-brigade.mjs channels allow add --channel whatsapp","telegram:allow:add":"node scripts/run-brigade.mjs channels allow add --channel telegram","agents:set-identity":"node scripts/run-brigade.mjs agents set-identity","channels:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel whatsapp","telegram:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel telegram"},"_npmUser":{"name":"spinabot-labs","email":"npm@spinabot.com"},"overrides":{"ws":"$ws","exceljs":{"uuid":"^11.1.1"},"discord.js":{"undici":"^6.27.0"},"@discordjs/rest":{"undici":"^6.27.0"},"@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@earendil-works/pi-agent-core":"0.79.9"},"repository":{"url":"git+https://github.com/spinabot/brigade.git","type":"git"},"_npmVersion":"11.18.0","description":"Brigade — your personal AI crew","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.0","tar":"^7.5.15","zod":"^3.23.8","docx":"^9.7.1","jimp":"^1.6.1","jiti":"^2.6.1","yaml":"^2.9.0","chalk":"^5.3.0","json5":"^2.2.3","unpdf":"^1.6.2","cfonts":"^3.3.1","convex":"^1.40.0","croner":"^10.0.1","fflate":"^0.8.3","grammy":"^1.42.0","undici":"^7.25.0","exceljs":"^4.4.0","prompts":"^2.4.2","linkedom":"^0.18.12","commander":"^12.1.0","minimatch":"^10.2.5","pptxgenjs":"^4.0.1","discord.js":"^14.26.4","cli-highlight":"^2.1.11","@composio/core":"^0.10.0","@slack/web-api":"^7.17.0","@cantoo/pdf-lib":"^2.7.1","@grammyjs/types":"^3.21.0","playwright-core":"^1.59.0","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@pdf-lib/fontkit":"^1.1.1","https-proxy-agent":"^7.0.6","socks-proxy-agent":"^10.1.0","@slack/socket-mode":"^2.0.7","@mozilla/readability":"^0.6.0","@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@whiskeysockets/baileys":"7.0.0-rc13","@anthropic-ai/claude-code":"^2.1.0","@earendil-works/pi-agent-core":"0.79.9","@earendil-works/pi-coding-agent":"0.79.9","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","@types/ws":"^8.18.1","@types/tar":"^6.1.13","typescript":"^5.6.3","@types/node":"^22.10.0","@types/prompts":"^2.4.9","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2"},"_npmOperationalInternal":{"tmp":"tmp/brigade_1.24.2_1783230746994_0.5250757084066517","host":"s3://npm-registry-packages-npm-production"}},"1.25.0":{"name":"@spinabot/brigade","version":"1.25.0","keywords":["ai","agent","agents","ai-agent","cli","tui","llm","claude","openai","gemini","ollama","whatsapp","gateway","brigade"],"author":{"name":"Spinabot","email":"hello@brigade-agent.ai"},"license":"MIT","_id":"@spinabot/brigade@1.25.0","maintainers":[{"name":"dev-spinabot","email":"bhasvanth02@gmail.com"},{"name":"spinabot-labs","email":"npm@spinabot.com"}],"homepage":"https://brigade.spinabot.com","bugs":{"url":"https://github.com/spinabot/brigade/issues","email":"hello@brigade-agent.ai"},"bin":{"brigade":"brigade.mjs"},"dist":{"shasum":"4abc11a4f73fd43d27d6147781524f433894fed1","tarball":"https://registry.npmjs.org/@spinabot/brigade/-/brigade-1.25.0.tgz","fileCount":2773,"integrity":"sha512-UJhItPOWF4g6D8KSm3DGBcuEHbXFh0TXgzL4XKSPghbNNxd7xogSTof5YyLPryDttSyAvtzPA1FJktlz+NxxKQ==","signatures":[{"sig":"MEUCIChtpQaWeVgLASdI3Jmd8RmnClIVYXra6BsgJEeuEyvmAiEA8orMpvZgIeBU5waHfkG/NPerteyPGPWEZeehfKMxjH8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spinabot%2fbrigade@1.25.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":20425877},"main":"dist/entry.js","type":"module","types":"./dist/entry.d.ts","engines":{"node":">=22.12"},"exports":{".":"./brigade.mjs","./channel-sdk":{"types":"./dist/channel-sdk.d.ts","import":"./dist/channel-sdk.js"},"./package.json":"./package.json","./extension-sdk":{"types":"./dist/extension-sdk.d.ts","import":"./dist/extension-sdk.js"}},"gitHead":"e18dda9701a5c70e9f19eaa52d44888c38d85c18","scripts":{"wa":"node scripts/run-brigade.mjs channels status --channel whatsapp","dev":"node scripts/run-brigade.mjs","tui":"node scripts/run-brigade.mjs tui","auth":"node scripts/run-brigade.mjs auth","logs":"node scripts/run-brigade.mjs logs","test":"node scripts/run-tests.mjs","agent":"node scripts/run-brigade.mjs agent","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","build":"tsc -p tsconfig.build.json","clean":"node -e \"import('node:fs').then(fs => fs.rmSync('dist', { recursive: true, force: true }))\"","login":"node scripts/run-brigade.mjs login","start":"node scripts/run-brigade.mjs","store":"node scripts/run-brigade.mjs store","watch":"tsx --watch src/entry.ts","agents":"node scripts/run-brigade.mjs agents","backup":"node scripts/run-brigade.mjs backup create","doctor":"node scripts/run-brigade.mjs doctor","expose":"node scripts/run-brigade.mjs expose","skills":"node scripts/run-brigade.mjs skills list","status":"node scripts/run-brigade.mjs status","update":"node scripts/run-brigade.mjs update","brigade":"node brigade.mjs","connect":"node scripts/run-brigade.mjs connect","dev:tsx":"tsx src/entry.ts","gateway":"node scripts/run-brigade.mjs gateway","onboard":"node scripts/run-brigade.mjs onboard","pairing":"node scripts/run-brigade.mjs pairing list --channel whatsapp","prepack":"npm run build","tui:bin":"node brigade.mjs tui","upgrade":"node scripts/run-brigade.mjs upgrade","wa:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels":"node scripts/run-brigade.mjs channels","sessions":"node scripts/run-brigade.mjs sessions list","telegram":"node scripts/run-brigade.mjs channels status --channel telegram","wa:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","agent:bin":"node brigade.mjs agent","exec:list":"node scripts/run-brigade.mjs exec list","login:bin":"node brigade.mjs login","postbuild":"node scripts/build-done.mjs","tui:watch":"tsx --watch src/entry.ts tui","typecheck":"tsc -p tsconfig.json --noEmit","wa:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","wa:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","agents:add":"node scripts/run-brigade.mjs agents add","agents:bin":"node brigade.mjs agents","convex:dev":"node scripts/install-convex.mjs && node scripts/convex-dev.mjs","doctor:bin":"node brigade.mjs doctor","extensions":"node scripts/run-brigade.mjs extensions list","status:bin":"node brigade.mjs status","store:mode":"node scripts/run-brigade.mjs store mode show","update:bin":"node brigade.mjs update","agent:watch":"tsx --watch src/entry.ts agent","agents:bind":"node scripts/run-brigade.mjs agents bind","agents:list":"node scripts/run-brigade.mjs agents list","build:watch":"tsc -p tsconfig.build.json --watch","config:file":"node scripts/run-brigade.mjs config file","config:list":"node scripts/run-brigade.mjs config list","connect:bin":"node brigade.mjs connect","convex:push":"node scripts/convex-push.mjs","doctor:json":"node scripts/run-brigade.mjs doctor --json","expose:stop":"node scripts/run-brigade.mjs expose stop","gateway:bin":"node brigade.mjs gateway","logs:follow":"node scripts/run-brigade.mjs logs --follow","onboard:bin":"node brigade.mjs onboard","postinstall":"node scripts/brand-oauth-page.mjs","skills:info":"node scripts/run-brigade.mjs skills info","skills:list":"node scripts/run-brigade.mjs skills list","status:json":"node scripts/run-brigade.mjs status --json","store:reset":"node scripts/run-brigade.mjs store reset","upgrade:bin":"node brigade.mjs upgrade","channels:add":"node scripts/run-brigade.mjs channels add","gateway:stop":"node scripts/run-brigade.mjs gateway stop","pairing:list":"node scripts/run-brigade.mjs pairing list --channel whatsapp","update:check":"node scripts/run-brigade.mjs update --check","agents:delete":"node scripts/run-brigade.mjs agents delete","agents:unbind":"node scripts/run-brigade.mjs agents unbind","backup:create":"node scripts/run-brigade.mjs backup create","backup:verify":"node scripts/run-brigade.mjs backup verify","channels:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels:list":"node scripts/run-brigade.mjs channels list","config:schema":"node scripts/run-brigade.mjs config schema","connect:watch":"tsx --watch src/entry.ts connect","doctor:strict":"node scripts/run-brigade.mjs doctor --strict","expose:status":"node scripts/run-brigade.mjs expose status","gateway:watch":"tsx --watch src/entry.ts gateway","onboard:watch":"tsx --watch src/entry.ts onboard","secrets:audit":"node scripts/run-brigade.mjs secrets audit","sessions:list":"node scripts/run-brigade.mjs sessions list","store:migrate":"node scripts/run-brigade.mjs store migrate","backup:restore":"node scripts/run-brigade.mjs backup restore","channels:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","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","convex:install":"node scripts/install-convex.mjs","extensions:add":"node scripts/run-brigade.mjs extensions add","gateway:status":"node scripts/run-brigade.mjs gateway status","pairing:revoke":"node scripts/run-brigade.mjs pairing revoke --channel whatsapp","store:mode:set":"node scripts/run-brigade.mjs store mode set","telegram:allow":"node scripts/run-brigade.mjs channels allow list --channel telegram","telegram:token":"node scripts/run-brigade.mjs channels add --channel telegram","agents:bindings":"node scripts/run-brigade.mjs agents bindings","channels:enable":"node scripts/run-brigade.mjs channels enable --channel whatsapp","channels:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","channels:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","config:validate":"node scripts/run-brigade.mjs config validate","extensions:init":"node scripts/run-brigade.mjs extensions init","extensions:list":"node scripts/run-brigade.mjs extensions list","gateway:install":"node scripts/run-brigade.mjs gateway install","gateway:restart":"node scripts/run-brigade.mjs gateway restart","pairing:approve":"node scripts/run-brigade.mjs pairing approve --channel whatsapp","store:mode:show":"node scripts/run-brigade.mjs store mode show","telegram:enable":"node scripts/run-brigade.mjs channels enable --channel telegram","telegram:status":"node scripts/run-brigade.mjs channels status --channel telegram","bloody benchmark":"node scripts/run-brigade.mjs bloody benchmark","channels:disable":"node scripts/run-brigade.mjs channels disable --channel whatsapp","sessions:cleanup":"node scripts/run-brigade.mjs sessions cleanup","telegram:disable":"node scripts/run-brigade.mjs channels disable --channel telegram","extensions:doctor":"node scripts/run-brigade.mjs extensions doctor","extensions:remove":"node scripts/run-brigade.mjs extensions remove","gateway:uninstall":"node scripts/run-brigade.mjs gateway uninstall","smoke:strict-zero":"tsx scripts/strict-zero-smoke.mjs","store:reset:purge":"node scripts/run-brigade.mjs store reset --purge-local","channels:allow:add":"node scripts/run-brigade.mjs channels allow add --channel whatsapp","telegram:allow:add":"node scripts/run-brigade.mjs channels allow add --channel telegram","agents:set-identity":"node scripts/run-brigade.mjs agents set-identity","channels:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel whatsapp","telegram:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel telegram"},"_npmUser":{"name":"spinabot-labs","email":"npm@spinabot.com"},"overrides":{"ws":"$ws","exceljs":{"uuid":"^11.1.1"},"discord.js":{"undici":"^6.27.0"},"@discordjs/rest":{"undici":"^6.27.0"},"@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@earendil-works/pi-agent-core":"0.79.9"},"repository":{"url":"git+https://github.com/spinabot/brigade.git","type":"git"},"_npmVersion":"11.18.0","description":"Brigade — your personal AI crew","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.0","tar":"^7.5.15","zod":"^3.23.8","docx":"^9.7.1","jimp":"^1.6.1","jiti":"^2.6.1","yaml":"^2.9.0","chalk":"^5.3.0","json5":"^2.2.3","unpdf":"^1.6.2","cfonts":"^3.3.1","convex":"^1.40.0","croner":"^10.0.1","fflate":"^0.8.3","grammy":"^1.42.0","undici":"^7.25.0","exceljs":"^4.4.0","prompts":"^2.4.2","linkedom":"^0.18.12","commander":"^12.1.0","minimatch":"^10.2.5","pptxgenjs":"^4.0.1","discord.js":"^14.26.4","cli-highlight":"^2.1.11","@composio/core":"^0.10.0","@slack/web-api":"^7.17.0","@cantoo/pdf-lib":"^2.7.1","@grammyjs/types":"^3.21.0","playwright-core":"^1.59.0","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@pdf-lib/fontkit":"^1.1.1","https-proxy-agent":"^7.0.6","socks-proxy-agent":"^10.1.0","@slack/socket-mode":"^2.0.7","@mozilla/readability":"^0.6.0","@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@whiskeysockets/baileys":"7.0.0-rc13","@anthropic-ai/claude-code":"^2.1.0","@earendil-works/pi-agent-core":"0.79.9","@earendil-works/pi-coding-agent":"0.79.9","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","@types/ws":"^8.18.1","@types/tar":"^6.1.13","typescript":"^5.6.3","@types/node":"^22.10.0","@types/prompts":"^2.4.9","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2"},"_npmOperationalInternal":{"tmp":"tmp/brigade_1.25.0_1783287064762_0.6477735170364451","host":"s3://npm-registry-packages-npm-production"}},"1.25.1":{"name":"@spinabot/brigade","version":"1.25.1","keywords":["ai","agent","agents","ai-agent","cli","tui","llm","claude","openai","gemini","ollama","whatsapp","gateway","brigade"],"author":{"name":"Spinabot","email":"hello@brigade-agent.ai"},"license":"MIT","_id":"@spinabot/brigade@1.25.1","maintainers":[{"name":"dev-spinabot","email":"bhasvanth02@gmail.com"},{"name":"spinabot-labs","email":"npm@spinabot.com"}],"homepage":"https://brigade.spinabot.com","bugs":{"url":"https://github.com/spinabot/brigade/issues","email":"hello@brigade-agent.ai"},"bin":{"brigade":"brigade.mjs"},"dist":{"shasum":"8406c22f675a0a956ec1c6a4d7b36ad7a59666de","tarball":"https://registry.npmjs.org/@spinabot/brigade/-/brigade-1.25.1.tgz","fileCount":2777,"integrity":"sha512-le3GcLjKlw6FYN+AOerKAlqH6whFTvSkbuZ7V1DrduKWMtc6hYGkcnUNLxyk6sZDwAs7L9Fj3wSXh6ULyF/SgA==","signatures":[{"sig":"MEUCIHLzvUd8p+UqvzvZsLIYdTuvGZYSIDoWBObOkeMdE0KQAiEAvu7w84CNTDZeiMkc9KHFhxN3t6TZHdY++HGhFPbXErM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spinabot%2fbrigade@1.25.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":20466226},"main":"dist/entry.js","type":"module","types":"./dist/entry.d.ts","engines":{"node":">=22.12"},"exports":{".":"./brigade.mjs","./channel-sdk":{"types":"./dist/channel-sdk.d.ts","import":"./dist/channel-sdk.js"},"./package.json":"./package.json","./extension-sdk":{"types":"./dist/extension-sdk.d.ts","import":"./dist/extension-sdk.js"}},"gitHead":"e74428381584e700454a45d4f23c1174ec27a88c","scripts":{"wa":"node scripts/run-brigade.mjs channels status --channel whatsapp","dev":"node scripts/run-brigade.mjs","tui":"node scripts/run-brigade.mjs tui","auth":"node scripts/run-brigade.mjs auth","logs":"node scripts/run-brigade.mjs logs","test":"node scripts/run-tests.mjs","agent":"node scripts/run-brigade.mjs agent","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","build":"tsc -p tsconfig.build.json","clean":"node -e \"import('node:fs').then(fs => fs.rmSync('dist', { recursive: true, force: true }))\"","login":"node scripts/run-brigade.mjs login","start":"node scripts/run-brigade.mjs","store":"node scripts/run-brigade.mjs store","watch":"tsx --watch src/entry.ts","agents":"node scripts/run-brigade.mjs agents","backup":"node scripts/run-brigade.mjs backup create","doctor":"node scripts/run-brigade.mjs doctor","expose":"node scripts/run-brigade.mjs expose","skills":"node scripts/run-brigade.mjs skills list","status":"node scripts/run-brigade.mjs status","update":"node scripts/run-brigade.mjs update","brigade":"node brigade.mjs","connect":"node scripts/run-brigade.mjs connect","dev:tsx":"tsx src/entry.ts","gateway":"node scripts/run-brigade.mjs gateway","onboard":"node scripts/run-brigade.mjs onboard","pairing":"node scripts/run-brigade.mjs pairing list --channel whatsapp","prepack":"npm run build","tui:bin":"node brigade.mjs tui","upgrade":"node scripts/run-brigade.mjs upgrade","wa:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels":"node scripts/run-brigade.mjs channels","sessions":"node scripts/run-brigade.mjs sessions list","telegram":"node scripts/run-brigade.mjs channels status --channel telegram","wa:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","agent:bin":"node brigade.mjs agent","exec:list":"node scripts/run-brigade.mjs exec list","login:bin":"node brigade.mjs login","postbuild":"node scripts/build-done.mjs","tui:watch":"tsx --watch src/entry.ts tui","typecheck":"tsc -p tsconfig.json --noEmit","wa:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","wa:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","agents:add":"node scripts/run-brigade.mjs agents add","agents:bin":"node brigade.mjs agents","convex:dev":"node scripts/install-convex.mjs && node scripts/convex-dev.mjs","doctor:bin":"node brigade.mjs doctor","extensions":"node scripts/run-brigade.mjs extensions list","status:bin":"node brigade.mjs status","store:mode":"node scripts/run-brigade.mjs store mode show","update:bin":"node brigade.mjs update","agent:watch":"tsx --watch src/entry.ts agent","agents:bind":"node scripts/run-brigade.mjs agents bind","agents:list":"node scripts/run-brigade.mjs agents list","build:watch":"tsc -p tsconfig.build.json --watch","config:file":"node scripts/run-brigade.mjs config file","config:list":"node scripts/run-brigade.mjs config list","connect:bin":"node brigade.mjs connect","convex:push":"node scripts/convex-push.mjs","doctor:json":"node scripts/run-brigade.mjs doctor --json","expose:stop":"node scripts/run-brigade.mjs expose stop","gateway:bin":"node brigade.mjs gateway","logs:follow":"node scripts/run-brigade.mjs logs --follow","onboard:bin":"node brigade.mjs onboard","postinstall":"node scripts/brand-oauth-page.mjs","skills:info":"node scripts/run-brigade.mjs skills info","skills:list":"node scripts/run-brigade.mjs skills list","status:json":"node scripts/run-brigade.mjs status --json","store:reset":"node scripts/run-brigade.mjs store reset","upgrade:bin":"node brigade.mjs upgrade","channels:add":"node scripts/run-brigade.mjs channels add","gateway:stop":"node scripts/run-brigade.mjs gateway stop","pairing:list":"node scripts/run-brigade.mjs pairing list --channel whatsapp","update:check":"node scripts/run-brigade.mjs update --check","agents:delete":"node scripts/run-brigade.mjs agents delete","agents:unbind":"node scripts/run-brigade.mjs agents unbind","backup:create":"node scripts/run-brigade.mjs backup create","backup:verify":"node scripts/run-brigade.mjs backup verify","channels:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels:list":"node scripts/run-brigade.mjs channels list","config:schema":"node scripts/run-brigade.mjs config schema","connect:watch":"tsx --watch src/entry.ts connect","doctor:strict":"node scripts/run-brigade.mjs doctor --strict","expose:status":"node scripts/run-brigade.mjs expose status","gateway:watch":"tsx --watch src/entry.ts gateway","onboard:watch":"tsx --watch src/entry.ts onboard","secrets:audit":"node scripts/run-brigade.mjs secrets audit","sessions:list":"node scripts/run-brigade.mjs sessions list","store:migrate":"node scripts/run-brigade.mjs store migrate","backup:restore":"node scripts/run-brigade.mjs backup restore","channels:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","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","convex:install":"node scripts/install-convex.mjs","extensions:add":"node scripts/run-brigade.mjs extensions add","gateway:status":"node scripts/run-brigade.mjs gateway status","pairing:revoke":"node scripts/run-brigade.mjs pairing revoke --channel whatsapp","store:mode:set":"node scripts/run-brigade.mjs store mode set","telegram:allow":"node scripts/run-brigade.mjs channels allow list --channel telegram","telegram:token":"node scripts/run-brigade.mjs channels add --channel telegram","agents:bindings":"node scripts/run-brigade.mjs agents bindings","channels:enable":"node scripts/run-brigade.mjs channels enable --channel whatsapp","channels:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","channels:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","config:validate":"node scripts/run-brigade.mjs config validate","extensions:init":"node scripts/run-brigade.mjs extensions init","extensions:list":"node scripts/run-brigade.mjs extensions list","gateway:install":"node scripts/run-brigade.mjs gateway install","gateway:restart":"node scripts/run-brigade.mjs gateway restart","pairing:approve":"node scripts/run-brigade.mjs pairing approve --channel whatsapp","store:mode:show":"node scripts/run-brigade.mjs store mode show","telegram:enable":"node scripts/run-brigade.mjs channels enable --channel telegram","telegram:status":"node scripts/run-brigade.mjs channels status --channel telegram","bloody benchmark":"node scripts/run-brigade.mjs bloody benchmark","channels:disable":"node scripts/run-brigade.mjs channels disable --channel whatsapp","sessions:cleanup":"node scripts/run-brigade.mjs sessions cleanup","telegram:disable":"node scripts/run-brigade.mjs channels disable --channel telegram","extensions:doctor":"node scripts/run-brigade.mjs extensions doctor","extensions:remove":"node scripts/run-brigade.mjs extensions remove","gateway:uninstall":"node scripts/run-brigade.mjs gateway uninstall","smoke:strict-zero":"tsx scripts/strict-zero-smoke.mjs","store:reset:purge":"node scripts/run-brigade.mjs store reset --purge-local","channels:allow:add":"node scripts/run-brigade.mjs channels allow add --channel whatsapp","telegram:allow:add":"node scripts/run-brigade.mjs channels allow add --channel telegram","agents:set-identity":"node scripts/run-brigade.mjs agents set-identity","channels:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel whatsapp","telegram:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel telegram"},"_npmUser":{"name":"spinabot-labs","email":"npm@spinabot.com"},"overrides":{"ws":"$ws","exceljs":{"uuid":"^11.1.1"},"discord.js":{"undici":"^6.27.0"},"@discordjs/rest":{"undici":"^6.27.0"},"@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@earendil-works/pi-agent-core":"0.79.9"},"repository":{"url":"git+https://github.com/spinabot/brigade.git","type":"git"},"_npmVersion":"11.18.0","description":"Brigade — your personal AI crew","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.0","tar":"^7.5.15","zod":"^3.23.8","docx":"^9.7.1","jimp":"^1.6.1","jiti":"^2.6.1","yaml":"^2.9.0","chalk":"^5.3.0","json5":"^2.2.3","unpdf":"^1.6.2","cfonts":"^3.3.1","convex":"^1.40.0","croner":"^10.0.1","fflate":"^0.8.3","grammy":"^1.42.0","undici":"^7.25.0","exceljs":"^4.4.0","prompts":"^2.4.2","linkedom":"^0.18.12","commander":"^12.1.0","minimatch":"^10.2.5","pptxgenjs":"^4.0.1","discord.js":"^14.26.4","cli-highlight":"^2.1.11","@composio/core":"^0.10.0","@slack/web-api":"^7.17.0","@cantoo/pdf-lib":"^2.7.1","@grammyjs/types":"^3.21.0","playwright-core":"^1.59.0","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@pdf-lib/fontkit":"^1.1.1","https-proxy-agent":"^7.0.6","socks-proxy-agent":"^10.1.0","@slack/socket-mode":"^2.0.7","@mozilla/readability":"^0.6.0","@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@whiskeysockets/baileys":"7.0.0-rc13","@anthropic-ai/claude-code":"^2.1.0","@earendil-works/pi-agent-core":"0.79.9","@earendil-works/pi-coding-agent":"0.79.9","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","@types/ws":"^8.18.1","@types/tar":"^6.1.13","typescript":"^5.6.3","@types/node":"^22.10.0","@types/prompts":"^2.4.9","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2"},"_npmOperationalInternal":{"tmp":"tmp/brigade_1.25.1_1783398359713_0.4134910515825143","host":"s3://npm-registry-packages-npm-production"}},"1.25.2":{"name":"@spinabot/brigade","version":"1.25.2","keywords":["ai","agent","agents","ai-agent","cli","tui","llm","claude","openai","gemini","ollama","whatsapp","gateway","brigade"],"author":{"name":"Spinabot","email":"hello@brigade-agent.ai"},"license":"MIT","_id":"@spinabot/brigade@1.25.2","maintainers":[{"name":"dev-spinabot","email":"bhasvanth02@gmail.com"},{"name":"spinabot-labs","email":"npm@spinabot.com"}],"homepage":"https://brigade.spinabot.com","bugs":{"url":"https://github.com/spinabot/brigade/issues","email":"hello@brigade-agent.ai"},"bin":{"brigade":"brigade.mjs"},"dist":{"shasum":"d8684df04bb798c8d8a0979913cbcf5e439478b5","tarball":"https://registry.npmjs.org/@spinabot/brigade/-/brigade-1.25.2.tgz","fileCount":2777,"integrity":"sha512-buQ0MlkTpnZcy9KQi8jY7+ocihka7uhu5YaA6AaKOc+m7H66zC0Hmjx4PC6O4BwOviDlSQVU8lZHzx8CkBcBLA==","signatures":[{"sig":"MEQCIHn0ioYdcJm9J3nWKj8cg6Isep3sJOH3NhXyJQr1K39SAiBuqt5MwB3RADR0unr64V/XtTruNVjYyox5rLoKUshBPg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spinabot%2fbrigade@1.25.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":20483835},"main":"dist/entry.js","type":"module","types":"./dist/entry.d.ts","engines":{"node":">=22.12"},"exports":{".":"./brigade.mjs","./channel-sdk":{"types":"./dist/channel-sdk.d.ts","import":"./dist/channel-sdk.js"},"./package.json":"./package.json","./extension-sdk":{"types":"./dist/extension-sdk.d.ts","import":"./dist/extension-sdk.js"}},"gitHead":"265e64f967556f2946ebd75091aa435654820774","scripts":{"wa":"node scripts/run-brigade.mjs channels status --channel whatsapp","dev":"node scripts/run-brigade.mjs","tui":"node scripts/run-brigade.mjs tui","auth":"node scripts/run-brigade.mjs auth","logs":"node scripts/run-brigade.mjs logs","test":"node scripts/run-tests.mjs","agent":"node scripts/run-brigade.mjs agent","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","build":"tsc -p tsconfig.build.json","clean":"node -e \"import('node:fs').then(fs => fs.rmSync('dist', { recursive: true, force: true }))\"","login":"node scripts/run-brigade.mjs login","start":"node scripts/run-brigade.mjs","store":"node scripts/run-brigade.mjs store","watch":"tsx --watch src/entry.ts","agents":"node scripts/run-brigade.mjs agents","backup":"node scripts/run-brigade.mjs backup create","doctor":"node scripts/run-brigade.mjs doctor","expose":"node scripts/run-brigade.mjs expose","skills":"node scripts/run-brigade.mjs skills list","status":"node scripts/run-brigade.mjs status","update":"node scripts/run-brigade.mjs update","brigade":"node brigade.mjs","connect":"node scripts/run-brigade.mjs connect","dev:tsx":"tsx src/entry.ts","gateway":"node scripts/run-brigade.mjs gateway","onboard":"node scripts/run-brigade.mjs onboard","pairing":"node scripts/run-brigade.mjs pairing list --channel whatsapp","prepack":"npm run build","tui:bin":"node brigade.mjs tui","upgrade":"node scripts/run-brigade.mjs upgrade","wa:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels":"node scripts/run-brigade.mjs channels","sessions":"node scripts/run-brigade.mjs sessions list","telegram":"node scripts/run-brigade.mjs channels status --channel telegram","wa:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","agent:bin":"node brigade.mjs agent","exec:list":"node scripts/run-brigade.mjs exec list","login:bin":"node brigade.mjs login","postbuild":"node scripts/build-done.mjs","tui:watch":"tsx --watch src/entry.ts tui","typecheck":"tsc -p tsconfig.json --noEmit","wa:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","wa:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","agents:add":"node scripts/run-brigade.mjs agents add","agents:bin":"node brigade.mjs agents","convex:dev":"node scripts/install-convex.mjs && node scripts/convex-dev.mjs","doctor:bin":"node brigade.mjs doctor","extensions":"node scripts/run-brigade.mjs extensions list","status:bin":"node brigade.mjs status","store:mode":"node scripts/run-brigade.mjs store mode show","update:bin":"node brigade.mjs update","agent:watch":"tsx --watch src/entry.ts agent","agents:bind":"node scripts/run-brigade.mjs agents bind","agents:list":"node scripts/run-brigade.mjs agents list","build:watch":"tsc -p tsconfig.build.json --watch","config:file":"node scripts/run-brigade.mjs config file","config:list":"node scripts/run-brigade.mjs config list","connect:bin":"node brigade.mjs connect","convex:push":"node scripts/convex-push.mjs","doctor:json":"node scripts/run-brigade.mjs doctor --json","expose:stop":"node scripts/run-brigade.mjs expose stop","gateway:bin":"node brigade.mjs gateway","logs:follow":"node scripts/run-brigade.mjs logs --follow","onboard:bin":"node brigade.mjs onboard","postinstall":"node scripts/brand-oauth-page.mjs","skills:info":"node scripts/run-brigade.mjs skills info","skills:list":"node scripts/run-brigade.mjs skills list","status:json":"node scripts/run-brigade.mjs status --json","store:reset":"node scripts/run-brigade.mjs store reset","upgrade:bin":"node brigade.mjs upgrade","channels:add":"node scripts/run-brigade.mjs channels add","gateway:stop":"node scripts/run-brigade.mjs gateway stop","pairing:list":"node scripts/run-brigade.mjs pairing list --channel whatsapp","update:check":"node scripts/run-brigade.mjs update --check","agents:delete":"node scripts/run-brigade.mjs agents delete","agents:unbind":"node scripts/run-brigade.mjs agents unbind","backup:create":"node scripts/run-brigade.mjs backup create","backup:verify":"node scripts/run-brigade.mjs backup verify","channels:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels:list":"node scripts/run-brigade.mjs channels list","config:schema":"node scripts/run-brigade.mjs config schema","connect:watch":"tsx --watch src/entry.ts connect","doctor:strict":"node scripts/run-brigade.mjs doctor --strict","expose:status":"node scripts/run-brigade.mjs expose status","gateway:watch":"tsx --watch src/entry.ts gateway","onboard:watch":"tsx --watch src/entry.ts onboard","secrets:audit":"node scripts/run-brigade.mjs secrets audit","sessions:list":"node scripts/run-brigade.mjs sessions list","store:migrate":"node scripts/run-brigade.mjs store migrate","backup:restore":"node scripts/run-brigade.mjs backup restore","channels:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","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","convex:install":"node scripts/install-convex.mjs","extensions:add":"node scripts/run-brigade.mjs extensions add","gateway:status":"node scripts/run-brigade.mjs gateway status","pairing:revoke":"node scripts/run-brigade.mjs pairing revoke --channel whatsapp","store:mode:set":"node scripts/run-brigade.mjs store mode set","telegram:allow":"node scripts/run-brigade.mjs channels allow list --channel telegram","telegram:token":"node scripts/run-brigade.mjs channels add --channel telegram","agents:bindings":"node scripts/run-brigade.mjs agents bindings","channels:enable":"node scripts/run-brigade.mjs channels enable --channel whatsapp","channels:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","channels:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","config:validate":"node scripts/run-brigade.mjs config validate","extensions:init":"node scripts/run-brigade.mjs extensions init","extensions:list":"node scripts/run-brigade.mjs extensions list","gateway:install":"node scripts/run-brigade.mjs gateway install","gateway:restart":"node scripts/run-brigade.mjs gateway restart","pairing:approve":"node scripts/run-brigade.mjs pairing approve --channel whatsapp","store:mode:show":"node scripts/run-brigade.mjs store mode show","telegram:enable":"node scripts/run-brigade.mjs channels enable --channel telegram","telegram:status":"node scripts/run-brigade.mjs channels status --channel telegram","bloody benchmark":"node scripts/run-brigade.mjs bloody benchmark","channels:disable":"node scripts/run-brigade.mjs channels disable --channel whatsapp","sessions:cleanup":"node scripts/run-brigade.mjs sessions cleanup","telegram:disable":"node scripts/run-brigade.mjs channels disable --channel telegram","extensions:doctor":"node scripts/run-brigade.mjs extensions doctor","extensions:remove":"node scripts/run-brigade.mjs extensions remove","gateway:uninstall":"node scripts/run-brigade.mjs gateway uninstall","smoke:strict-zero":"tsx scripts/strict-zero-smoke.mjs","store:reset:purge":"node scripts/run-brigade.mjs store reset --purge-local","channels:allow:add":"node scripts/run-brigade.mjs channels allow add --channel whatsapp","telegram:allow:add":"node scripts/run-brigade.mjs channels allow add --channel telegram","agents:set-identity":"node scripts/run-brigade.mjs agents set-identity","channels:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel whatsapp","telegram:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel telegram"},"_npmUser":{"name":"spinabot-labs","email":"npm@spinabot.com"},"overrides":{"ws":"$ws","exceljs":{"uuid":"^11.1.1"},"discord.js":{"undici":"^6.27.0"},"@discordjs/rest":{"undici":"^6.27.0"},"@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@earendil-works/pi-agent-core":"0.79.9"},"repository":{"url":"git+https://github.com/spinabot/brigade.git","type":"git"},"_npmVersion":"11.18.0","description":"Brigade — your personal AI crew","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.0","tar":"^7.5.15","zod":"^3.23.8","docx":"^9.7.1","jimp":"^1.6.1","jiti":"^2.6.1","yaml":"^2.9.0","chalk":"^5.3.0","json5":"^2.2.3","unpdf":"^1.6.2","cfonts":"^3.3.1","convex":"^1.40.0","croner":"^10.0.1","fflate":"^0.8.3","grammy":"^1.42.0","undici":"^7.25.0","exceljs":"^4.4.0","prompts":"^2.4.2","linkedom":"^0.18.12","commander":"^12.1.0","minimatch":"^10.2.5","pptxgenjs":"^4.0.1","discord.js":"^14.26.4","cli-highlight":"^2.1.11","@composio/core":"^0.10.0","@slack/web-api":"^7.17.0","@cantoo/pdf-lib":"^2.7.1","@grammyjs/types":"^3.21.0","playwright-core":"^1.59.0","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@pdf-lib/fontkit":"^1.1.1","https-proxy-agent":"^7.0.6","socks-proxy-agent":"^10.1.0","@slack/socket-mode":"^2.0.7","@mozilla/readability":"^0.6.0","@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@whiskeysockets/baileys":"7.0.0-rc13","@anthropic-ai/claude-code":"^2.1.0","@earendil-works/pi-agent-core":"0.79.9","@earendil-works/pi-coding-agent":"0.79.9","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","@types/ws":"^8.18.1","@types/tar":"^6.1.13","typescript":"^5.6.3","@types/node":"^22.10.0","@types/prompts":"^2.4.9","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2"},"_npmOperationalInternal":{"tmp":"tmp/brigade_1.25.2_1783400427694_0.34476384355691425","host":"s3://npm-registry-packages-npm-production"}},"1.25.3":{"name":"@spinabot/brigade","version":"1.25.3","keywords":["ai","agent","agents","ai-agent","cli","tui","llm","claude","openai","gemini","ollama","whatsapp","gateway","brigade"],"author":{"name":"Spinabot","email":"hello@brigade-agent.ai"},"license":"MIT","_id":"@spinabot/brigade@1.25.3","maintainers":[{"name":"dev-spinabot","email":"bhasvanth02@gmail.com"},{"name":"spinabot-labs","email":"npm@spinabot.com"}],"homepage":"https://brigade.spinabot.com","bugs":{"url":"https://github.com/spinabot/brigade/issues","email":"hello@brigade-agent.ai"},"bin":{"brigade":"brigade.mjs"},"dist":{"shasum":"025f46ef11e87eaa319e97dd7439f8af8c5acf59","tarball":"https://registry.npmjs.org/@spinabot/brigade/-/brigade-1.25.3.tgz","fileCount":2777,"integrity":"sha512-xJl4nCefrcjr37xQJx/xTXo/W0uQDiXLqOPhI+iJbVKuw0hl0P27mCUVpLDcOtUnp8j1SHqwouZtTCYqfUX0uA==","signatures":[{"sig":"MEUCIHWrWe6vCfteqhsBp4TinHH+QZC3evZvHYAqK6IWLXu2AiEAl+lu/dROs6fSDeMFAw3c8t1lkDyiGo1dsOzpqIHiJuA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spinabot%2fbrigade@1.25.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":20489342},"main":"dist/entry.js","type":"module","types":"./dist/entry.d.ts","engines":{"node":">=22.12"},"exports":{".":"./brigade.mjs","./channel-sdk":{"types":"./dist/channel-sdk.d.ts","import":"./dist/channel-sdk.js"},"./package.json":"./package.json","./extension-sdk":{"types":"./dist/extension-sdk.d.ts","import":"./dist/extension-sdk.js"}},"gitHead":"d992f65cd5b6578e6d4ae6bab7fde358dc4ac16f","scripts":{"wa":"node scripts/run-brigade.mjs channels status --channel whatsapp","dev":"node scripts/run-brigade.mjs","tui":"node scripts/run-brigade.mjs tui","auth":"node scripts/run-brigade.mjs auth","logs":"node scripts/run-brigade.mjs logs","test":"node scripts/run-tests.mjs","agent":"node scripts/run-brigade.mjs agent","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","build":"tsc -p tsconfig.build.json","clean":"node -e \"import('node:fs').then(fs => fs.rmSync('dist', { recursive: true, force: true }))\"","login":"node scripts/run-brigade.mjs login","start":"node scripts/run-brigade.mjs","store":"node scripts/run-brigade.mjs store","watch":"tsx --watch src/entry.ts","agents":"node scripts/run-brigade.mjs agents","backup":"node scripts/run-brigade.mjs backup create","doctor":"node scripts/run-brigade.mjs doctor","expose":"node scripts/run-brigade.mjs expose","skills":"node scripts/run-brigade.mjs skills list","status":"node scripts/run-brigade.mjs status","update":"node scripts/run-brigade.mjs update","brigade":"node brigade.mjs","connect":"node scripts/run-brigade.mjs connect","dev:tsx":"tsx src/entry.ts","gateway":"node scripts/run-brigade.mjs gateway","onboard":"node scripts/run-brigade.mjs onboard","pairing":"node scripts/run-brigade.mjs pairing list --channel whatsapp","prepack":"npm run build","tui:bin":"node brigade.mjs tui","upgrade":"node scripts/run-brigade.mjs upgrade","wa:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels":"node scripts/run-brigade.mjs channels","sessions":"node scripts/run-brigade.mjs sessions list","telegram":"node scripts/run-brigade.mjs channels status --channel telegram","wa:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","agent:bin":"node brigade.mjs agent","exec:list":"node scripts/run-brigade.mjs exec list","login:bin":"node brigade.mjs login","postbuild":"node scripts/build-done.mjs","tui:watch":"tsx --watch src/entry.ts tui","typecheck":"tsc -p tsconfig.json --noEmit","wa:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","wa:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","agents:add":"node scripts/run-brigade.mjs agents add","agents:bin":"node brigade.mjs agents","convex:dev":"node scripts/install-convex.mjs && node scripts/convex-dev.mjs","doctor:bin":"node brigade.mjs doctor","extensions":"node scripts/run-brigade.mjs extensions list","status:bin":"node brigade.mjs status","store:mode":"node scripts/run-brigade.mjs store mode show","update:bin":"node brigade.mjs update","agent:watch":"tsx --watch src/entry.ts agent","agents:bind":"node scripts/run-brigade.mjs agents bind","agents:list":"node scripts/run-brigade.mjs agents list","build:watch":"tsc -p tsconfig.build.json --watch","config:file":"node scripts/run-brigade.mjs config file","config:list":"node scripts/run-brigade.mjs config list","connect:bin":"node brigade.mjs connect","convex:push":"node scripts/convex-push.mjs","doctor:json":"node scripts/run-brigade.mjs doctor --json","expose:stop":"node scripts/run-brigade.mjs expose stop","gateway:bin":"node brigade.mjs gateway","logs:follow":"node scripts/run-brigade.mjs logs --follow","onboard:bin":"node brigade.mjs onboard","postinstall":"node scripts/brand-oauth-page.mjs","skills:info":"node scripts/run-brigade.mjs skills info","skills:list":"node scripts/run-brigade.mjs skills list","status:json":"node scripts/run-brigade.mjs status --json","store:reset":"node scripts/run-brigade.mjs store reset","upgrade:bin":"node brigade.mjs upgrade","channels:add":"node scripts/run-brigade.mjs channels add","gateway:stop":"node scripts/run-brigade.mjs gateway stop","pairing:list":"node scripts/run-brigade.mjs pairing list --channel whatsapp","update:check":"node scripts/run-brigade.mjs update --check","agents:delete":"node scripts/run-brigade.mjs agents delete","agents:unbind":"node scripts/run-brigade.mjs agents unbind","backup:create":"node scripts/run-brigade.mjs backup create","backup:verify":"node scripts/run-brigade.mjs backup verify","channels:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels:list":"node scripts/run-brigade.mjs channels list","config:schema":"node scripts/run-brigade.mjs config schema","connect:watch":"tsx --watch src/entry.ts connect","doctor:strict":"node scripts/run-brigade.mjs doctor --strict","expose:status":"node scripts/run-brigade.mjs expose status","gateway:watch":"tsx --watch src/entry.ts gateway","onboard:watch":"tsx --watch src/entry.ts onboard","secrets:audit":"node scripts/run-brigade.mjs secrets audit","sessions:list":"node scripts/run-brigade.mjs sessions list","store:migrate":"node scripts/run-brigade.mjs store migrate","backup:restore":"node scripts/run-brigade.mjs backup restore","channels:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","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","convex:install":"node scripts/install-convex.mjs","extensions:add":"node scripts/run-brigade.mjs extensions add","gateway:status":"node scripts/run-brigade.mjs gateway status","pairing:revoke":"node scripts/run-brigade.mjs pairing revoke --channel whatsapp","store:mode:set":"node scripts/run-brigade.mjs store mode set","telegram:allow":"node scripts/run-brigade.mjs channels allow list --channel telegram","telegram:token":"node scripts/run-brigade.mjs channels add --channel telegram","agents:bindings":"node scripts/run-brigade.mjs agents bindings","channels:enable":"node scripts/run-brigade.mjs channels enable --channel whatsapp","channels:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","channels:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","config:validate":"node scripts/run-brigade.mjs config validate","extensions:init":"node scripts/run-brigade.mjs extensions init","extensions:list":"node scripts/run-brigade.mjs extensions list","gateway:install":"node scripts/run-brigade.mjs gateway install","gateway:restart":"node scripts/run-brigade.mjs gateway restart","pairing:approve":"node scripts/run-brigade.mjs pairing approve --channel whatsapp","store:mode:show":"node scripts/run-brigade.mjs store mode show","telegram:enable":"node scripts/run-brigade.mjs channels enable --channel telegram","telegram:status":"node scripts/run-brigade.mjs channels status --channel telegram","bloody benchmark":"node scripts/run-brigade.mjs bloody benchmark","channels:disable":"node scripts/run-brigade.mjs channels disable --channel whatsapp","sessions:cleanup":"node scripts/run-brigade.mjs sessions cleanup","telegram:disable":"node scripts/run-brigade.mjs channels disable --channel telegram","extensions:doctor":"node scripts/run-brigade.mjs extensions doctor","extensions:remove":"node scripts/run-brigade.mjs extensions remove","gateway:uninstall":"node scripts/run-brigade.mjs gateway uninstall","smoke:strict-zero":"tsx scripts/strict-zero-smoke.mjs","store:reset:purge":"node scripts/run-brigade.mjs store reset --purge-local","channels:allow:add":"node scripts/run-brigade.mjs channels allow add --channel whatsapp","telegram:allow:add":"node scripts/run-brigade.mjs channels allow add --channel telegram","agents:set-identity":"node scripts/run-brigade.mjs agents set-identity","channels:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel whatsapp","telegram:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel telegram"},"_npmUser":{"name":"spinabot-labs","email":"npm@spinabot.com"},"overrides":{"ws":"$ws","exceljs":{"uuid":"^11.1.1"},"discord.js":{"undici":"^6.27.0"},"@discordjs/rest":{"undici":"^6.27.0"},"@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@earendil-works/pi-agent-core":"0.79.9"},"repository":{"url":"git+https://github.com/spinabot/brigade.git","type":"git"},"_npmVersion":"11.18.0","description":"Brigade — your personal AI crew","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.0","tar":"^7.5.15","zod":"^3.23.8","docx":"^9.7.1","jimp":"^1.6.1","jiti":"^2.6.1","yaml":"^2.9.0","chalk":"^5.3.0","json5":"^2.2.3","unpdf":"^1.6.2","cfonts":"^3.3.1","convex":"^1.40.0","croner":"^10.0.1","fflate":"^0.8.3","grammy":"^1.42.0","undici":"^7.25.0","exceljs":"^4.4.0","prompts":"^2.4.2","linkedom":"^0.18.12","commander":"^12.1.0","minimatch":"^10.2.5","pptxgenjs":"^4.0.1","discord.js":"^14.26.4","cli-highlight":"^2.1.11","@composio/core":"^0.10.0","@slack/web-api":"^7.17.0","@cantoo/pdf-lib":"^2.7.1","@grammyjs/types":"^3.21.0","playwright-core":"^1.59.0","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@pdf-lib/fontkit":"^1.1.1","https-proxy-agent":"^7.0.6","socks-proxy-agent":"^10.1.0","@slack/socket-mode":"^2.0.7","@mozilla/readability":"^0.6.0","@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@whiskeysockets/baileys":"7.0.0-rc13","@anthropic-ai/claude-code":"^2.1.0","@earendil-works/pi-agent-core":"0.79.9","@earendil-works/pi-coding-agent":"0.79.9","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","@types/ws":"^8.18.1","@types/tar":"^6.1.13","typescript":"^5.6.3","@types/node":"^22.10.0","@types/prompts":"^2.4.9","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2"},"_npmOperationalInternal":{"tmp":"tmp/brigade_1.25.3_1783401370303_0.8439780832475099","host":"s3://npm-registry-packages-npm-production"}},"1.26.1":{"name":"@spinabot/brigade","version":"1.26.1","keywords":["ai","agent","agents","ai-agent","cli","tui","llm","claude","openai","gemini","ollama","whatsapp","gateway","brigade"],"author":{"name":"Spinabot","email":"hello@brigade-agent.ai"},"license":"MIT","_id":"@spinabot/brigade@1.26.1","maintainers":[{"name":"dev-spinabot","email":"bhasvanth02@gmail.com"},{"name":"spinabot-labs","email":"npm@spinabot.com"}],"homepage":"https://brigade.spinabot.com","bugs":{"url":"https://github.com/spinabot/brigade/issues","email":"hello@brigade-agent.ai"},"bin":{"brigade":"brigade.mjs"},"dist":{"shasum":"1a076bf54d6387074a0da55c39c7b0f39c4b1f44","tarball":"https://registry.npmjs.org/@spinabot/brigade/-/brigade-1.26.1.tgz","fileCount":2821,"integrity":"sha512-9+Kl+k94iPy1I3hk6wICfUXfVMu37nUMELjtcNtlknhgcBp01Qou12YzF69V9NeITF/fAppI9ONhJ5/ysqJikg==","signatures":[{"sig":"MEYCIQC9rDVV3THsGnADF6fH5q2c3/lAqPMQrq3AA+evaiG3LgIhALSY6cYQy8hB3GafbeR9TxTyLQra3fGNpXZjpr3NyeTi","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spinabot%2fbrigade@1.26.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":20712046},"main":"dist/entry.js","type":"module","types":"./dist/entry.d.ts","engines":{"node":">=22.12"},"exports":{".":"./brigade.mjs","./channel-sdk":{"types":"./dist/channel-sdk.d.ts","import":"./dist/channel-sdk.js"},"./package.json":"./package.json","./extension-sdk":{"types":"./dist/extension-sdk.d.ts","import":"./dist/extension-sdk.js"}},"gitHead":"6f1df70f1ab4d2206d2f93c4cf6d8c7bf738d8c6","scripts":{"wa":"node scripts/run-brigade.mjs channels status --channel whatsapp","dev":"node scripts/run-brigade.mjs","tui":"node scripts/run-brigade.mjs tui","auth":"node scripts/run-brigade.mjs auth","logs":"node scripts/run-brigade.mjs logs","test":"node scripts/run-tests.mjs","agent":"node scripts/run-brigade.mjs agent","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","build":"tsc -p tsconfig.build.json","clean":"node -e \"import('node:fs').then(fs => fs.rmSync('dist', { recursive: true, force: true }))\"","login":"node scripts/run-brigade.mjs login","start":"node scripts/run-brigade.mjs","store":"node scripts/run-brigade.mjs store","watch":"tsx --watch src/entry.ts","agents":"node scripts/run-brigade.mjs agents","backup":"node scripts/run-brigade.mjs backup create","doctor":"node scripts/run-brigade.mjs doctor","expose":"node scripts/run-brigade.mjs expose","skills":"node scripts/run-brigade.mjs skills list","status":"node scripts/run-brigade.mjs status","update":"node scripts/run-brigade.mjs update","brigade":"node brigade.mjs","connect":"node scripts/run-brigade.mjs connect","dev:tsx":"tsx src/entry.ts","gateway":"node scripts/run-brigade.mjs gateway","onboard":"node scripts/run-brigade.mjs onboard","pairing":"node scripts/run-brigade.mjs pairing list --channel whatsapp","prepack":"npm run build","tui:bin":"node brigade.mjs tui","upgrade":"node scripts/run-brigade.mjs upgrade","wa:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels":"node scripts/run-brigade.mjs channels","sessions":"node scripts/run-brigade.mjs sessions list","telegram":"node scripts/run-brigade.mjs channels status --channel telegram","wa:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","agent:bin":"node brigade.mjs agent","exec:list":"node scripts/run-brigade.mjs exec list","login:bin":"node brigade.mjs login","postbuild":"node scripts/build-done.mjs","tui:watch":"tsx --watch src/entry.ts tui","typecheck":"tsc -p tsconfig.json --noEmit","wa:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","wa:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","agents:add":"node scripts/run-brigade.mjs agents add","agents:bin":"node brigade.mjs agents","convex:dev":"node scripts/install-convex.mjs && node scripts/convex-dev.mjs","doctor:bin":"node brigade.mjs doctor","extensions":"node scripts/run-brigade.mjs extensions list","status:bin":"node brigade.mjs status","store:mode":"node scripts/run-brigade.mjs store mode show","update:bin":"node brigade.mjs update","agent:watch":"tsx --watch src/entry.ts agent","agents:bind":"node scripts/run-brigade.mjs agents bind","agents:list":"node scripts/run-brigade.mjs agents list","build:watch":"tsc -p tsconfig.build.json --watch","config:file":"node scripts/run-brigade.mjs config file","config:list":"node scripts/run-brigade.mjs config list","connect:bin":"node brigade.mjs connect","convex:push":"node scripts/convex-push.mjs","doctor:json":"node scripts/run-brigade.mjs doctor --json","expose:stop":"node scripts/run-brigade.mjs expose stop","gateway:bin":"node brigade.mjs gateway","logs:follow":"node scripts/run-brigade.mjs logs --follow","onboard:bin":"node brigade.mjs onboard","postinstall":"node scripts/brand-oauth-page.mjs","skills:info":"node scripts/run-brigade.mjs skills info","skills:list":"node scripts/run-brigade.mjs skills list","status:json":"node scripts/run-brigade.mjs status --json","store:reset":"node scripts/run-brigade.mjs store reset","upgrade:bin":"node brigade.mjs upgrade","channels:add":"node scripts/run-brigade.mjs channels add","gateway:stop":"node scripts/run-brigade.mjs gateway stop","pairing:list":"node scripts/run-brigade.mjs pairing list --channel whatsapp","update:check":"node scripts/run-brigade.mjs update --check","agents:delete":"node scripts/run-brigade.mjs agents delete","agents:unbind":"node scripts/run-brigade.mjs agents unbind","backup:create":"node scripts/run-brigade.mjs backup create","backup:verify":"node scripts/run-brigade.mjs backup verify","channels:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels:list":"node scripts/run-brigade.mjs channels list","config:schema":"node scripts/run-brigade.mjs config schema","connect:watch":"tsx --watch src/entry.ts connect","doctor:strict":"node scripts/run-brigade.mjs doctor --strict","expose:status":"node scripts/run-brigade.mjs expose status","gateway:watch":"tsx --watch src/entry.ts gateway","onboard:watch":"tsx --watch src/entry.ts onboard","secrets:audit":"node scripts/run-brigade.mjs secrets audit","sessions:list":"node scripts/run-brigade.mjs sessions list","store:migrate":"node scripts/run-brigade.mjs store migrate","backup:restore":"node scripts/run-brigade.mjs backup restore","channels:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","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","convex:install":"node scripts/install-convex.mjs","extensions:add":"node scripts/run-brigade.mjs extensions add","gateway:status":"node scripts/run-brigade.mjs gateway status","pairing:revoke":"node scripts/run-brigade.mjs pairing revoke --channel whatsapp","store:mode:set":"node scripts/run-brigade.mjs store mode set","telegram:allow":"node scripts/run-brigade.mjs channels allow list --channel telegram","telegram:token":"node scripts/run-brigade.mjs channels add --channel telegram","agents:bindings":"node scripts/run-brigade.mjs agents bindings","channels:enable":"node scripts/run-brigade.mjs channels enable --channel whatsapp","channels:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","channels:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","config:validate":"node scripts/run-brigade.mjs config validate","extensions:init":"node scripts/run-brigade.mjs extensions init","extensions:list":"node scripts/run-brigade.mjs extensions list","gateway:install":"node scripts/run-brigade.mjs gateway install","gateway:restart":"node scripts/run-brigade.mjs gateway restart","pairing:approve":"node scripts/run-brigade.mjs pairing approve --channel whatsapp","store:mode:show":"node scripts/run-brigade.mjs store mode show","telegram:enable":"node scripts/run-brigade.mjs channels enable --channel telegram","telegram:status":"node scripts/run-brigade.mjs channels status --channel telegram","bloody benchmark":"node scripts/run-brigade.mjs bloody benchmark","channels:disable":"node scripts/run-brigade.mjs channels disable --channel whatsapp","sessions:cleanup":"node scripts/run-brigade.mjs sessions cleanup","telegram:disable":"node scripts/run-brigade.mjs channels disable --channel telegram","extensions:doctor":"node scripts/run-brigade.mjs extensions doctor","extensions:remove":"node scripts/run-brigade.mjs extensions remove","gateway:uninstall":"node scripts/run-brigade.mjs gateway uninstall","smoke:strict-zero":"tsx scripts/strict-zero-smoke.mjs","store:reset:purge":"node scripts/run-brigade.mjs store reset --purge-local","channels:allow:add":"node scripts/run-brigade.mjs channels allow add --channel whatsapp","telegram:allow:add":"node scripts/run-brigade.mjs channels allow add --channel telegram","agents:set-identity":"node scripts/run-brigade.mjs agents set-identity","channels:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel whatsapp","telegram:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel telegram"},"_npmUser":{"name":"spinabot-labs","email":"npm@spinabot.com"},"overrides":{"ws":"$ws","exceljs":{"uuid":"^11.1.1"},"discord.js":{"undici":"^6.27.0"},"@discordjs/rest":{"undici":"^6.27.0"},"@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@earendil-works/pi-agent-core":"0.79.9"},"repository":{"url":"git+https://github.com/spinabot/brigade.git","type":"git"},"_npmVersion":"11.16.0","description":"Brigade — your personal AI crew","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.0","tar":"^7.5.15","zod":"^3.23.8","docx":"^9.7.1","jimp":"^1.6.1","jiti":"^2.6.1","yaml":"^2.9.0","chalk":"^5.3.0","json5":"^2.2.3","unpdf":"^1.6.2","cfonts":"^3.3.1","convex":"^1.40.0","croner":"^10.0.1","fflate":"^0.8.3","grammy":"^1.42.0","undici":"^7.25.0","exceljs":"^4.4.0","prompts":"^2.4.2","linkedom":"^0.18.12","commander":"^12.1.0","minimatch":"^10.2.5","pptxgenjs":"^4.0.1","discord.js":"^14.26.4","cli-highlight":"^2.1.11","@composio/core":"^0.10.0","@slack/web-api":"^7.17.0","@cantoo/pdf-lib":"^2.7.1","@grammyjs/types":"^3.21.0","playwright-core":"^1.59.0","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@pdf-lib/fontkit":"^1.1.1","https-proxy-agent":"^7.0.6","socks-proxy-agent":"^10.1.0","@slack/socket-mode":"^2.0.7","@mozilla/readability":"^0.6.0","@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@whiskeysockets/baileys":"7.0.0-rc13","@anthropic-ai/claude-code":"^2.1.0","@earendil-works/pi-agent-core":"0.79.9","@earendil-works/pi-coding-agent":"0.79.9","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","@types/ws":"^8.18.1","@types/tar":"^6.1.13","typescript":"^5.6.3","@types/node":"^22.10.0","@types/prompts":"^2.4.9","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2"},"_npmOperationalInternal":{"tmp":"tmp/brigade_1.26.1_1783662716566_0.9059624613967343","host":"s3://npm-registry-packages-npm-production"}},"1.27.0":{"name":"@spinabot/brigade","version":"1.27.0","keywords":["ai","agent","agents","ai-agent","cli","tui","llm","claude","openai","gemini","ollama","whatsapp","gateway","brigade"],"author":{"name":"Spinabot","email":"hello@brigade-agent.ai"},"license":"MIT","_id":"@spinabot/brigade@1.27.0","maintainers":[{"name":"dev-spinabot","email":"bhasvanth02@gmail.com"},{"name":"spinabot-labs","email":"npm@spinabot.com"}],"homepage":"https://brigade.spinabot.com","bugs":{"url":"https://github.com/spinabot/brigade/issues","email":"hello@brigade-agent.ai"},"bin":{"brigade":"brigade.mjs"},"dist":{"shasum":"58c8bfb7d124a410654278db4a907f65bb214011","tarball":"https://registry.npmjs.org/@spinabot/brigade/-/brigade-1.27.0.tgz","fileCount":2825,"integrity":"sha512-oc+1c5rXg9hEfaFzcX5A59PZtaesZNFWn9MkzmL9IBcOKDt++GIzlQpVs84ITo1ZYIT/nzd1mwEUbCwNTxOftQ==","signatures":[{"sig":"MEYCIQDuffMk7jfYqoGLnaGNaK2BuucH8OhMDCZjjp7skJoe5wIhAJLrwr3kg99IQf0Xx2rEBLgNoYJ6+Qg1Uz9EeeL/k5qv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spinabot%2fbrigade@1.27.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":20734116},"main":"dist/entry.js","type":"module","types":"./dist/entry.d.ts","engines":{"node":">=22.12"},"exports":{".":"./brigade.mjs","./channel-sdk":{"types":"./dist/channel-sdk.d.ts","import":"./dist/channel-sdk.js"},"./package.json":"./package.json","./extension-sdk":{"types":"./dist/extension-sdk.d.ts","import":"./dist/extension-sdk.js"}},"gitHead":"70d6c2a87fb28ee625265e46f66d97f4344c56b7","scripts":{"wa":"node scripts/run-brigade.mjs channels status --channel whatsapp","dev":"node scripts/run-brigade.mjs","tui":"node scripts/run-brigade.mjs tui","auth":"node scripts/run-brigade.mjs auth","logs":"node scripts/run-brigade.mjs logs","test":"node scripts/run-tests.mjs","agent":"node scripts/run-brigade.mjs agent","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","build":"tsc -p tsconfig.build.json","clean":"node -e \"import('node:fs').then(fs => fs.rmSync('dist', { recursive: true, force: true }))\"","login":"node scripts/run-brigade.mjs login","start":"node scripts/run-brigade.mjs","store":"node scripts/run-brigade.mjs store","watch":"tsx --watch src/entry.ts","agents":"node scripts/run-brigade.mjs agents","backup":"node scripts/run-brigade.mjs backup create","doctor":"node scripts/run-brigade.mjs doctor","expose":"node scripts/run-brigade.mjs expose","skills":"node scripts/run-brigade.mjs skills list","status":"node scripts/run-brigade.mjs status","update":"node scripts/run-brigade.mjs update","brigade":"node brigade.mjs","connect":"node scripts/run-brigade.mjs connect","dev:tsx":"tsx src/entry.ts","gateway":"node scripts/run-brigade.mjs gateway","onboard":"node scripts/run-brigade.mjs onboard","pairing":"node scripts/run-brigade.mjs pairing list --channel whatsapp","prepack":"npm run build","tui:bin":"node brigade.mjs tui","upgrade":"node scripts/run-brigade.mjs upgrade","wa:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels":"node scripts/run-brigade.mjs channels","sessions":"node scripts/run-brigade.mjs sessions list","telegram":"node scripts/run-brigade.mjs channels status --channel telegram","wa:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","agent:bin":"node brigade.mjs agent","exec:list":"node scripts/run-brigade.mjs exec list","login:bin":"node brigade.mjs login","postbuild":"node scripts/build-done.mjs","tui:watch":"tsx --watch src/entry.ts tui","typecheck":"tsc -p tsconfig.json --noEmit","wa:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","wa:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","agents:add":"node scripts/run-brigade.mjs agents add","agents:bin":"node brigade.mjs agents","convex:dev":"node scripts/install-convex.mjs && node scripts/convex-dev.mjs","doctor:bin":"node brigade.mjs doctor","extensions":"node scripts/run-brigade.mjs extensions list","status:bin":"node brigade.mjs status","store:mode":"node scripts/run-brigade.mjs store mode show","update:bin":"node brigade.mjs update","agent:watch":"tsx --watch src/entry.ts agent","agents:bind":"node scripts/run-brigade.mjs agents bind","agents:list":"node scripts/run-brigade.mjs agents list","build:watch":"tsc -p tsconfig.build.json --watch","config:file":"node scripts/run-brigade.mjs config file","config:list":"node scripts/run-brigade.mjs config list","connect:bin":"node brigade.mjs connect","convex:push":"node scripts/convex-push.mjs","doctor:json":"node scripts/run-brigade.mjs doctor --json","expose:stop":"node scripts/run-brigade.mjs expose stop","gateway:bin":"node brigade.mjs gateway","logs:follow":"node scripts/run-brigade.mjs logs --follow","onboard:bin":"node brigade.mjs onboard","postinstall":"node scripts/brand-oauth-page.mjs","skills:info":"node scripts/run-brigade.mjs skills info","skills:list":"node scripts/run-brigade.mjs skills list","status:json":"node scripts/run-brigade.mjs status --json","store:reset":"node scripts/run-brigade.mjs store reset","upgrade:bin":"node brigade.mjs upgrade","channels:add":"node scripts/run-brigade.mjs channels add","gateway:stop":"node scripts/run-brigade.mjs gateway stop","pairing:list":"node scripts/run-brigade.mjs pairing list --channel whatsapp","update:check":"node scripts/run-brigade.mjs update --check","agents:delete":"node scripts/run-brigade.mjs agents delete","agents:unbind":"node scripts/run-brigade.mjs agents unbind","backup:create":"node scripts/run-brigade.mjs backup create","backup:verify":"node scripts/run-brigade.mjs backup verify","channels:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels:list":"node scripts/run-brigade.mjs channels list","config:schema":"node scripts/run-brigade.mjs config schema","connect:watch":"tsx --watch src/entry.ts connect","doctor:strict":"node scripts/run-brigade.mjs doctor --strict","expose:status":"node scripts/run-brigade.mjs expose status","gateway:watch":"tsx --watch src/entry.ts gateway","onboard:watch":"tsx --watch src/entry.ts onboard","secrets:audit":"node scripts/run-brigade.mjs secrets audit","sessions:list":"node scripts/run-brigade.mjs sessions list","store:migrate":"node scripts/run-brigade.mjs store migrate","backup:restore":"node scripts/run-brigade.mjs backup restore","channels:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","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","convex:install":"node scripts/install-convex.mjs","extensions:add":"node scripts/run-brigade.mjs extensions add","gateway:status":"node scripts/run-brigade.mjs gateway status","pairing:revoke":"node scripts/run-brigade.mjs pairing revoke --channel whatsapp","store:mode:set":"node scripts/run-brigade.mjs store mode set","telegram:allow":"node scripts/run-brigade.mjs channels allow list --channel telegram","telegram:token":"node scripts/run-brigade.mjs channels add --channel telegram","agents:bindings":"node scripts/run-brigade.mjs agents bindings","channels:enable":"node scripts/run-brigade.mjs channels enable --channel whatsapp","channels:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","channels:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","config:validate":"node scripts/run-brigade.mjs config validate","extensions:init":"node scripts/run-brigade.mjs extensions init","extensions:list":"node scripts/run-brigade.mjs extensions list","gateway:install":"node scripts/run-brigade.mjs gateway install","gateway:restart":"node scripts/run-brigade.mjs gateway restart","pairing:approve":"node scripts/run-brigade.mjs pairing approve --channel whatsapp","store:mode:show":"node scripts/run-brigade.mjs store mode show","telegram:enable":"node scripts/run-brigade.mjs channels enable --channel telegram","telegram:status":"node scripts/run-brigade.mjs channels status --channel telegram","bloody benchmark":"node scripts/run-brigade.mjs bloody benchmark","channels:disable":"node scripts/run-brigade.mjs channels disable --channel whatsapp","sessions:cleanup":"node scripts/run-brigade.mjs sessions cleanup","telegram:disable":"node scripts/run-brigade.mjs channels disable --channel telegram","extensions:doctor":"node scripts/run-brigade.mjs extensions doctor","extensions:remove":"node scripts/run-brigade.mjs extensions remove","gateway:uninstall":"node scripts/run-brigade.mjs gateway uninstall","smoke:strict-zero":"tsx scripts/strict-zero-smoke.mjs","store:reset:purge":"node scripts/run-brigade.mjs store reset --purge-local","channels:allow:add":"node scripts/run-brigade.mjs channels allow add --channel whatsapp","telegram:allow:add":"node scripts/run-brigade.mjs channels allow add --channel telegram","agents:set-identity":"node scripts/run-brigade.mjs agents set-identity","channels:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel whatsapp","telegram:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel telegram"},"_npmUser":{"name":"spinabot-labs","email":"npm@spinabot.com"},"overrides":{"ws":"$ws","exceljs":{"uuid":"^11.1.1"},"discord.js":{"undici":"^6.27.0"},"@discordjs/rest":{"undici":"^6.27.0"},"@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@earendil-works/pi-agent-core":"0.79.9"},"repository":{"url":"git+https://github.com/spinabot/brigade.git","type":"git"},"_npmVersion":"11.16.0","description":"Brigade — your personal AI crew","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.0","tar":"^7.5.15","zod":"^3.23.8","docx":"^9.7.1","jimp":"^1.6.1","jiti":"^2.6.1","yaml":"^2.9.0","chalk":"^5.3.0","json5":"^2.2.3","unpdf":"^1.6.2","cfonts":"^3.3.1","convex":"^1.40.0","croner":"^10.0.1","fflate":"^0.8.3","grammy":"^1.42.0","undici":"^7.25.0","exceljs":"^4.4.0","prompts":"^2.4.2","linkedom":"^0.18.12","commander":"^12.1.0","minimatch":"^10.2.5","pptxgenjs":"^4.0.1","discord.js":"^14.26.4","cli-highlight":"^2.1.11","@composio/core":"^0.10.0","@slack/web-api":"^7.17.0","@cantoo/pdf-lib":"^2.7.1","@grammyjs/types":"^3.21.0","playwright-core":"^1.59.0","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@pdf-lib/fontkit":"^1.1.1","https-proxy-agent":"^7.0.6","socks-proxy-agent":"^10.1.0","@slack/socket-mode":"^2.0.7","@mozilla/readability":"^0.6.0","@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@whiskeysockets/baileys":"7.0.0-rc13","@anthropic-ai/claude-code":"^2.1.0","@earendil-works/pi-agent-core":"0.79.9","@earendil-works/pi-coding-agent":"0.79.9","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","@types/ws":"^8.18.1","@types/tar":"^6.1.13","typescript":"^5.6.3","@types/node":"^22.10.0","@types/prompts":"^2.4.9","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2"},"_npmOperationalInternal":{"tmp":"tmp/brigade_1.27.0_1783664034635_0.11910475857554204","host":"s3://npm-registry-packages-npm-production"}},"1.27.1":{"name":"@spinabot/brigade","version":"1.27.1","keywords":["ai","agent","agents","ai-agent","cli","tui","llm","claude","openai","gemini","ollama","whatsapp","gateway","brigade"],"author":{"name":"Spinabot","email":"hello@brigade-agent.ai"},"license":"MIT","_id":"@spinabot/brigade@1.27.1","maintainers":[{"name":"dev-spinabot","email":"bhasvanth02@gmail.com"},{"name":"spinabot-labs","email":"npm@spinabot.com"}],"homepage":"https://brigade.spinabot.com","bugs":{"url":"https://github.com/spinabot/brigade/issues","email":"hello@brigade-agent.ai"},"bin":{"brigade":"brigade.mjs"},"dist":{"shasum":"c3d329bec3362928a49afd3244cd5d40675cdde5","tarball":"https://registry.npmjs.org/@spinabot/brigade/-/brigade-1.27.1.tgz","fileCount":2825,"integrity":"sha512-BynZYf3j28zjBPWEVSV3jslJWVBpfI/ABfuwrYvc+dAuDPeOZqVst0gZE8mcgYfmUlVghOakqMJ2hi8bFJw40w==","signatures":[{"sig":"MEQCIAPWl0xAeSs6p7zLEid3Apf3OnvvKhGDpPVV/ohBM5ygAiB5rFtKO2FBVA1WkEiDQptCulGtKUlJz4hfy9pDjlHFWA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spinabot%2fbrigade@1.27.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":20735888},"main":"dist/entry.js","type":"module","types":"./dist/entry.d.ts","engines":{"node":">=22.12"},"exports":{".":"./brigade.mjs","./channel-sdk":{"types":"./dist/channel-sdk.d.ts","import":"./dist/channel-sdk.js"},"./package.json":"./package.json","./extension-sdk":{"types":"./dist/extension-sdk.d.ts","import":"./dist/extension-sdk.js"}},"gitHead":"3fd82beb7d031cc18f0e66cca5181925ca6ed6c9","scripts":{"wa":"node scripts/run-brigade.mjs channels status --channel whatsapp","dev":"node scripts/run-brigade.mjs","tui":"node scripts/run-brigade.mjs tui","auth":"node scripts/run-brigade.mjs auth","logs":"node scripts/run-brigade.mjs logs","test":"node scripts/run-tests.mjs","agent":"node scripts/run-brigade.mjs agent","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","build":"tsc -p tsconfig.build.json","clean":"node -e \"import('node:fs').then(fs => fs.rmSync('dist', { recursive: true, force: true }))\"","login":"node scripts/run-brigade.mjs login","start":"node scripts/run-brigade.mjs","store":"node scripts/run-brigade.mjs store","watch":"tsx --watch src/entry.ts","agents":"node scripts/run-brigade.mjs agents","backup":"node scripts/run-brigade.mjs backup create","doctor":"node scripts/run-brigade.mjs doctor","expose":"node scripts/run-brigade.mjs expose","skills":"node scripts/run-brigade.mjs skills list","status":"node scripts/run-brigade.mjs status","update":"node scripts/run-brigade.mjs update","brigade":"node brigade.mjs","connect":"node scripts/run-brigade.mjs connect","dev:tsx":"tsx src/entry.ts","gateway":"node scripts/run-brigade.mjs gateway","onboard":"node scripts/run-brigade.mjs onboard","pairing":"node scripts/run-brigade.mjs pairing list --channel whatsapp","prepack":"npm run build","tui:bin":"node brigade.mjs tui","upgrade":"node scripts/run-brigade.mjs upgrade","wa:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels":"node scripts/run-brigade.mjs channels","sessions":"node scripts/run-brigade.mjs sessions list","telegram":"node scripts/run-brigade.mjs channels status --channel telegram","wa:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","agent:bin":"node brigade.mjs agent","exec:list":"node scripts/run-brigade.mjs exec list","login:bin":"node brigade.mjs login","postbuild":"node scripts/build-done.mjs","tui:watch":"tsx --watch src/entry.ts tui","typecheck":"tsc -p tsconfig.json --noEmit","wa:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","wa:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","agents:add":"node scripts/run-brigade.mjs agents add","agents:bin":"node brigade.mjs agents","convex:dev":"node scripts/install-convex.mjs && node scripts/convex-dev.mjs","doctor:bin":"node brigade.mjs doctor","extensions":"node scripts/run-brigade.mjs extensions list","status:bin":"node brigade.mjs status","store:mode":"node scripts/run-brigade.mjs store mode show","update:bin":"node brigade.mjs update","agent:watch":"tsx --watch src/entry.ts agent","agents:bind":"node scripts/run-brigade.mjs agents bind","agents:list":"node scripts/run-brigade.mjs agents list","build:watch":"tsc -p tsconfig.build.json --watch","config:file":"node scripts/run-brigade.mjs config file","config:list":"node scripts/run-brigade.mjs config list","connect:bin":"node brigade.mjs connect","convex:push":"node scripts/convex-push.mjs","doctor:json":"node scripts/run-brigade.mjs doctor --json","expose:stop":"node scripts/run-brigade.mjs expose stop","gateway:bin":"node brigade.mjs gateway","logs:follow":"node scripts/run-brigade.mjs logs --follow","onboard:bin":"node brigade.mjs onboard","postinstall":"node scripts/brand-oauth-page.mjs","skills:info":"node scripts/run-brigade.mjs skills info","skills:list":"node scripts/run-brigade.mjs skills list","status:json":"node scripts/run-brigade.mjs status --json","store:reset":"node scripts/run-brigade.mjs store reset","upgrade:bin":"node brigade.mjs upgrade","channels:add":"node scripts/run-brigade.mjs channels add","gateway:stop":"node scripts/run-brigade.mjs gateway stop","pairing:list":"node scripts/run-brigade.mjs pairing list --channel whatsapp","update:check":"node scripts/run-brigade.mjs update --check","agents:delete":"node scripts/run-brigade.mjs agents delete","agents:unbind":"node scripts/run-brigade.mjs agents unbind","backup:create":"node scripts/run-brigade.mjs backup create","backup:verify":"node scripts/run-brigade.mjs backup verify","channels:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels:list":"node scripts/run-brigade.mjs channels list","config:schema":"node scripts/run-brigade.mjs config schema","connect:watch":"tsx --watch src/entry.ts connect","doctor:strict":"node scripts/run-brigade.mjs doctor --strict","expose:status":"node scripts/run-brigade.mjs expose status","gateway:watch":"tsx --watch src/entry.ts gateway","onboard:watch":"tsx --watch src/entry.ts onboard","secrets:audit":"node scripts/run-brigade.mjs secrets audit","sessions:list":"node scripts/run-brigade.mjs sessions list","store:migrate":"node scripts/run-brigade.mjs store migrate","backup:restore":"node scripts/run-brigade.mjs backup restore","channels:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","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","convex:install":"node scripts/install-convex.mjs","extensions:add":"node scripts/run-brigade.mjs extensions add","gateway:status":"node scripts/run-brigade.mjs gateway status","pairing:revoke":"node scripts/run-brigade.mjs pairing revoke --channel whatsapp","store:mode:set":"node scripts/run-brigade.mjs store mode set","telegram:allow":"node scripts/run-brigade.mjs channels allow list --channel telegram","telegram:token":"node scripts/run-brigade.mjs channels add --channel telegram","agents:bindings":"node scripts/run-brigade.mjs agents bindings","channels:enable":"node scripts/run-brigade.mjs channels enable --channel whatsapp","channels:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","channels:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","config:validate":"node scripts/run-brigade.mjs config validate","extensions:init":"node scripts/run-brigade.mjs extensions init","extensions:list":"node scripts/run-brigade.mjs extensions list","gateway:install":"node scripts/run-brigade.mjs gateway install","gateway:restart":"node scripts/run-brigade.mjs gateway restart","pairing:approve":"node scripts/run-brigade.mjs pairing approve --channel whatsapp","store:mode:show":"node scripts/run-brigade.mjs store mode show","telegram:enable":"node scripts/run-brigade.mjs channels enable --channel telegram","telegram:status":"node scripts/run-brigade.mjs channels status --channel telegram","bloody benchmark":"node scripts/run-brigade.mjs bloody benchmark","channels:disable":"node scripts/run-brigade.mjs channels disable --channel whatsapp","sessions:cleanup":"node scripts/run-brigade.mjs sessions cleanup","telegram:disable":"node scripts/run-brigade.mjs channels disable --channel telegram","extensions:doctor":"node scripts/run-brigade.mjs extensions doctor","extensions:remove":"node scripts/run-brigade.mjs extensions remove","gateway:uninstall":"node scripts/run-brigade.mjs gateway uninstall","smoke:strict-zero":"tsx scripts/strict-zero-smoke.mjs","store:reset:purge":"node scripts/run-brigade.mjs store reset --purge-local","channels:allow:add":"node scripts/run-brigade.mjs channels allow add --channel whatsapp","telegram:allow:add":"node scripts/run-brigade.mjs channels allow add --channel telegram","agents:set-identity":"node scripts/run-brigade.mjs agents set-identity","channels:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel whatsapp","telegram:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel telegram"},"_npmUser":{"name":"spinabot-labs","email":"npm@spinabot.com"},"overrides":{"ws":"$ws","exceljs":{"uuid":"^11.1.1"},"discord.js":{"undici":"^6.27.0"},"@discordjs/rest":{"undici":"^6.27.0"},"@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@earendil-works/pi-agent-core":"0.79.9"},"repository":{"url":"git+https://github.com/spinabot/brigade.git","type":"git"},"_npmVersion":"11.16.0","description":"Brigade — your personal AI crew","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.0","tar":"^7.5.15","zod":"^3.23.8","docx":"^9.7.1","jimp":"^1.6.1","jiti":"^2.6.1","yaml":"^2.9.0","chalk":"^5.3.0","json5":"^2.2.3","unpdf":"^1.6.2","cfonts":"^3.3.1","convex":"^1.40.0","croner":"^10.0.1","fflate":"^0.8.3","grammy":"^1.42.0","undici":"^7.25.0","exceljs":"^4.4.0","prompts":"^2.4.2","linkedom":"^0.18.12","commander":"^12.1.0","minimatch":"^10.2.5","pptxgenjs":"^4.0.1","discord.js":"^14.26.4","cli-highlight":"^2.1.11","@composio/core":"^0.10.0","@slack/web-api":"^7.17.0","@cantoo/pdf-lib":"^2.7.1","@grammyjs/types":"^3.21.0","playwright-core":"^1.59.0","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@pdf-lib/fontkit":"^1.1.1","https-proxy-agent":"^7.0.6","socks-proxy-agent":"^10.1.0","@slack/socket-mode":"^2.0.7","@mozilla/readability":"^0.6.0","@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@whiskeysockets/baileys":"7.0.0-rc13","@anthropic-ai/claude-code":"^2.1.0","@earendil-works/pi-agent-core":"0.79.9","@earendil-works/pi-coding-agent":"0.79.9","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","@types/ws":"^8.18.1","@types/tar":"^6.1.13","typescript":"^5.6.3","@types/node":"^22.10.0","@types/prompts":"^2.4.9","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2"},"_npmOperationalInternal":{"tmp":"tmp/brigade_1.27.1_1783665152452_0.8600326093464377","host":"s3://npm-registry-packages-npm-production"}},"1.28.0":{"name":"@spinabot/brigade","version":"1.28.0","keywords":["ai","agent","agents","ai-agent","cli","tui","llm","claude","openai","gemini","ollama","whatsapp","gateway","brigade"],"author":{"name":"Spinabot","email":"hello@brigade-agent.ai"},"license":"MIT","_id":"@spinabot/brigade@1.28.0","maintainers":[{"name":"dev-spinabot","email":"bhasvanth02@gmail.com"},{"name":"spinabot-labs","email":"npm@spinabot.com"}],"homepage":"https://brigade.spinabot.com","bugs":{"url":"https://github.com/spinabot/brigade/issues","email":"hello@brigade-agent.ai"},"bin":{"brigade":"brigade.mjs"},"dist":{"shasum":"5a8aa1f841f07a3983100da2e51e8eab0d18b51a","tarball":"https://registry.npmjs.org/@spinabot/brigade/-/brigade-1.28.0.tgz","fileCount":2833,"integrity":"sha512-iNyv7RdL6bstL0zXa2QrpG1c3ZS2gVQjqK8XqsxSJ6ikxl+N55OnImyMLT/6XZRqzgGZmT1ifB5OeHAEU/OEaw==","signatures":[{"sig":"MEQCICd4KELn2feF9QbfoVyRnHq6/zmLQ9F5IjeDV8W/vo1tAiByepKduXyqC8c0WSlYIwy9Vlp7P+eegLrKwWrFTyrmVA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spinabot%2fbrigade@1.28.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":20793969},"main":"dist/entry.js","type":"module","types":"./dist/entry.d.ts","engines":{"node":">=22.12"},"exports":{".":"./brigade.mjs","./channel-sdk":{"types":"./dist/channel-sdk.d.ts","import":"./dist/channel-sdk.js"},"./package.json":"./package.json","./extension-sdk":{"types":"./dist/extension-sdk.d.ts","import":"./dist/extension-sdk.js"}},"gitHead":"3a48cfb54f190668953693ee2e0bb0215b5ad690","scripts":{"wa":"node scripts/run-brigade.mjs channels status --channel whatsapp","dev":"node scripts/run-brigade.mjs","tui":"node scripts/run-brigade.mjs tui","auth":"node scripts/run-brigade.mjs auth","logs":"node scripts/run-brigade.mjs logs","test":"node scripts/run-tests.mjs","agent":"node scripts/run-brigade.mjs agent","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","build":"tsc -p tsconfig.build.json","clean":"node -e \"import('node:fs').then(fs => fs.rmSync('dist', { recursive: true, force: true }))\"","login":"node scripts/run-brigade.mjs login","start":"node scripts/run-brigade.mjs","store":"node scripts/run-brigade.mjs store","watch":"tsx --watch src/entry.ts","agents":"node scripts/run-brigade.mjs agents","backup":"node scripts/run-brigade.mjs backup create","doctor":"node scripts/run-brigade.mjs doctor","expose":"node scripts/run-brigade.mjs expose","skills":"node scripts/run-brigade.mjs skills list","status":"node scripts/run-brigade.mjs status","update":"node scripts/run-brigade.mjs update","brigade":"node brigade.mjs","connect":"node scripts/run-brigade.mjs connect","dev:tsx":"tsx src/entry.ts","gateway":"node scripts/run-brigade.mjs gateway","onboard":"node scripts/run-brigade.mjs onboard","pairing":"node scripts/run-brigade.mjs pairing list --channel whatsapp","prepack":"npm run build","tui:bin":"node brigade.mjs tui","upgrade":"node scripts/run-brigade.mjs upgrade","wa:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels":"node scripts/run-brigade.mjs channels","sessions":"node scripts/run-brigade.mjs sessions list","telegram":"node scripts/run-brigade.mjs channels status --channel telegram","wa:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","agent:bin":"node brigade.mjs agent","exec:list":"node scripts/run-brigade.mjs exec list","login:bin":"node brigade.mjs login","postbuild":"node scripts/build-done.mjs","tui:watch":"tsx --watch src/entry.ts tui","typecheck":"tsc -p tsconfig.json --noEmit","wa:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","wa:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","agents:add":"node scripts/run-brigade.mjs agents add","agents:bin":"node brigade.mjs agents","convex:dev":"node scripts/install-convex.mjs && node scripts/convex-dev.mjs","doctor:bin":"node brigade.mjs doctor","extensions":"node scripts/run-brigade.mjs extensions list","status:bin":"node brigade.mjs status","store:mode":"node scripts/run-brigade.mjs store mode show","update:bin":"node brigade.mjs update","agent:watch":"tsx --watch src/entry.ts agent","agents:bind":"node scripts/run-brigade.mjs agents bind","agents:list":"node scripts/run-brigade.mjs agents list","build:watch":"tsc -p tsconfig.build.json --watch","config:file":"node scripts/run-brigade.mjs config file","config:list":"node scripts/run-brigade.mjs config list","connect:bin":"node brigade.mjs connect","convex:push":"node scripts/convex-push.mjs","doctor:json":"node scripts/run-brigade.mjs doctor --json","expose:stop":"node scripts/run-brigade.mjs expose stop","gateway:bin":"node brigade.mjs gateway","logs:follow":"node scripts/run-brigade.mjs logs --follow","onboard:bin":"node brigade.mjs onboard","postinstall":"node scripts/brand-oauth-page.mjs","skills:info":"node scripts/run-brigade.mjs skills info","skills:list":"node scripts/run-brigade.mjs skills list","status:json":"node scripts/run-brigade.mjs status --json","store:reset":"node scripts/run-brigade.mjs store reset","upgrade:bin":"node brigade.mjs upgrade","channels:add":"node scripts/run-brigade.mjs channels add","gateway:stop":"node scripts/run-brigade.mjs gateway stop","pairing:list":"node scripts/run-brigade.mjs pairing list --channel whatsapp","update:check":"node scripts/run-brigade.mjs update --check","agents:delete":"node scripts/run-brigade.mjs agents delete","agents:unbind":"node scripts/run-brigade.mjs agents unbind","backup:create":"node scripts/run-brigade.mjs backup create","backup:verify":"node scripts/run-brigade.mjs backup verify","channels:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels:list":"node scripts/run-brigade.mjs channels list","config:schema":"node scripts/run-brigade.mjs config schema","connect:watch":"tsx --watch src/entry.ts connect","doctor:strict":"node scripts/run-brigade.mjs doctor --strict","expose:status":"node scripts/run-brigade.mjs expose status","gateway:watch":"tsx --watch src/entry.ts gateway","onboard:watch":"tsx --watch src/entry.ts onboard","secrets:audit":"node scripts/run-brigade.mjs secrets audit","sessions:list":"node scripts/run-brigade.mjs sessions list","store:migrate":"node scripts/run-brigade.mjs store migrate","backup:restore":"node scripts/run-brigade.mjs backup restore","channels:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","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","convex:install":"node scripts/install-convex.mjs","extensions:add":"node scripts/run-brigade.mjs extensions add","gateway:status":"node scripts/run-brigade.mjs gateway status","pairing:revoke":"node scripts/run-brigade.mjs pairing revoke --channel whatsapp","store:mode:set":"node scripts/run-brigade.mjs store mode set","telegram:allow":"node scripts/run-brigade.mjs channels allow list --channel telegram","telegram:token":"node scripts/run-brigade.mjs channels add --channel telegram","agents:bindings":"node scripts/run-brigade.mjs agents bindings","channels:enable":"node scripts/run-brigade.mjs channels enable --channel whatsapp","channels:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","channels:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","config:validate":"node scripts/run-brigade.mjs config validate","extensions:init":"node scripts/run-brigade.mjs extensions init","extensions:list":"node scripts/run-brigade.mjs extensions list","gateway:install":"node scripts/run-brigade.mjs gateway install","gateway:restart":"node scripts/run-brigade.mjs gateway restart","pairing:approve":"node scripts/run-brigade.mjs pairing approve --channel whatsapp","store:mode:show":"node scripts/run-brigade.mjs store mode show","telegram:enable":"node scripts/run-brigade.mjs channels enable --channel telegram","telegram:status":"node scripts/run-brigade.mjs channels status --channel telegram","bloody benchmark":"node scripts/run-brigade.mjs bloody benchmark","channels:disable":"node scripts/run-brigade.mjs channels disable --channel whatsapp","sessions:cleanup":"node scripts/run-brigade.mjs sessions cleanup","telegram:disable":"node scripts/run-brigade.mjs channels disable --channel telegram","extensions:doctor":"node scripts/run-brigade.mjs extensions doctor","extensions:remove":"node scripts/run-brigade.mjs extensions remove","gateway:uninstall":"node scripts/run-brigade.mjs gateway uninstall","smoke:strict-zero":"tsx scripts/strict-zero-smoke.mjs","store:reset:purge":"node scripts/run-brigade.mjs store reset --purge-local","channels:allow:add":"node scripts/run-brigade.mjs channels allow add --channel whatsapp","telegram:allow:add":"node scripts/run-brigade.mjs channels allow add --channel telegram","agents:set-identity":"node scripts/run-brigade.mjs agents set-identity","channels:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel whatsapp","telegram:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel telegram"},"_npmUser":{"name":"spinabot-labs","email":"npm@spinabot.com"},"overrides":{"ws":"$ws","exceljs":{"uuid":"^11.1.1"},"discord.js":{"undici":"^6.27.0"},"@discordjs/rest":{"undici":"^6.27.0"},"@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@earendil-works/pi-agent-core":"0.79.9"},"repository":{"url":"git+https://github.com/spinabot/brigade.git","type":"git"},"_npmVersion":"11.16.0","description":"Brigade — your personal AI crew","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.0","tar":"^7.5.15","zod":"^3.23.8","docx":"^9.7.1","jimp":"^1.6.1","jiti":"^2.6.1","yaml":"^2.9.0","chalk":"^5.3.0","json5":"^2.2.3","unpdf":"^1.6.2","cfonts":"^3.3.1","convex":"^1.40.0","croner":"^10.0.1","fflate":"^0.8.3","grammy":"^1.42.0","undici":"^7.25.0","exceljs":"^4.4.0","prompts":"^2.4.2","linkedom":"^0.18.12","commander":"^12.1.0","minimatch":"^10.2.5","pptxgenjs":"^4.0.1","discord.js":"^14.26.4","cli-highlight":"^2.1.11","@composio/core":"^0.10.0","@slack/web-api":"^7.17.0","@cantoo/pdf-lib":"^2.7.1","@grammyjs/types":"^3.21.0","playwright-core":"^1.59.0","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@pdf-lib/fontkit":"^1.1.1","https-proxy-agent":"^7.0.6","socks-proxy-agent":"^10.1.0","@slack/socket-mode":"^2.0.7","@mozilla/readability":"^0.6.0","@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@whiskeysockets/baileys":"7.0.0-rc13","@anthropic-ai/claude-code":"^2.1.0","@earendil-works/pi-agent-core":"0.79.9","@earendil-works/pi-coding-agent":"0.79.9","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","@types/ws":"^8.18.1","@types/tar":"^6.1.13","typescript":"^5.6.3","@types/node":"^22.10.0","@types/prompts":"^2.4.9","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2"},"_npmOperationalInternal":{"tmp":"tmp/brigade_1.28.0_1783672691344_0.8859400228469412","host":"s3://npm-registry-packages-npm-production"}},"1.29.0":{"name":"@spinabot/brigade","version":"1.29.0","keywords":["ai","agent","agents","ai-agent","cli","tui","llm","claude","openai","gemini","ollama","whatsapp","gateway","brigade"],"author":{"name":"Spinabot","email":"hello@brigade-agent.ai"},"license":"MIT","_id":"@spinabot/brigade@1.29.0","maintainers":[{"name":"dev-spinabot","email":"bhasvanth02@gmail.com"},{"name":"spinabot-labs","email":"npm@spinabot.com"}],"homepage":"https://brigade.spinabot.com","bugs":{"url":"https://github.com/spinabot/brigade/issues","email":"hello@brigade-agent.ai"},"bin":{"brigade":"brigade.mjs"},"dist":{"shasum":"931f7257008966f704820a83c6ace0c9185eeef1","tarball":"https://registry.npmjs.org/@spinabot/brigade/-/brigade-1.29.0.tgz","fileCount":2849,"integrity":"sha512-SUo2HWGLujdhLJ1+0Ss7awDLJocvFvOuxnI/NiTOn0M4eMuCY6xA4d0tExQMsYbO1A7rv18btni3RScOHCVIOg==","signatures":[{"sig":"MEUCID5bhO8QhHw18iuKg+vQOVAvNEGstx2urxqTFkCMSE/JAiEAsqd5uTSyG7isS7kJ0LL0SN6+FprGTqPp97PAcKtNlw0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spinabot%2fbrigade@1.29.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":21045018},"main":"dist/entry.js","type":"module","types":"./dist/entry.d.ts","engines":{"node":">=22.12"},"exports":{".":"./brigade.mjs","./channel-sdk":{"types":"./dist/channel-sdk.d.ts","import":"./dist/channel-sdk.js"},"./package.json":"./package.json","./extension-sdk":{"types":"./dist/extension-sdk.d.ts","import":"./dist/extension-sdk.js"}},"gitHead":"849cc8fb9bcb4e1cb06679828a60a1ad73a889ae","scripts":{"wa":"node scripts/run-brigade.mjs channels status --channel whatsapp","dev":"node scripts/run-brigade.mjs","tui":"node scripts/run-brigade.mjs tui","auth":"node scripts/run-brigade.mjs auth","logs":"node scripts/run-brigade.mjs logs","test":"node scripts/run-tests.mjs","agent":"node scripts/run-brigade.mjs agent","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","build":"tsc -p tsconfig.build.json","clean":"node -e \"import('node:fs').then(fs => fs.rmSync('dist', { recursive: true, force: true }))\"","login":"node scripts/run-brigade.mjs login","start":"node scripts/run-brigade.mjs","store":"node scripts/run-brigade.mjs store","watch":"tsx --watch src/entry.ts","agents":"node scripts/run-brigade.mjs agents","backup":"node scripts/run-brigade.mjs backup create","doctor":"node scripts/run-brigade.mjs doctor","expose":"node scripts/run-brigade.mjs expose","skills":"node scripts/run-brigade.mjs skills list","status":"node scripts/run-brigade.mjs status","update":"node scripts/run-brigade.mjs update","brigade":"node brigade.mjs","connect":"node scripts/run-brigade.mjs connect","dev:tsx":"tsx src/entry.ts","gateway":"node scripts/run-brigade.mjs gateway","onboard":"node scripts/run-brigade.mjs onboard","pairing":"node scripts/run-brigade.mjs pairing list --channel whatsapp","prepack":"npm run build","tui:bin":"node brigade.mjs tui","upgrade":"node scripts/run-brigade.mjs upgrade","wa:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels":"node scripts/run-brigade.mjs channels","sessions":"node scripts/run-brigade.mjs sessions list","telegram":"node scripts/run-brigade.mjs channels status --channel telegram","wa:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","agent:bin":"node brigade.mjs agent","exec:list":"node scripts/run-brigade.mjs exec list","login:bin":"node brigade.mjs login","postbuild":"node scripts/build-done.mjs","tui:watch":"tsx --watch src/entry.ts tui","typecheck":"tsc -p tsconfig.json --noEmit","wa:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","wa:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","agents:add":"node scripts/run-brigade.mjs agents add","agents:bin":"node brigade.mjs agents","convex:dev":"node scripts/install-convex.mjs && node scripts/convex-dev.mjs","doctor:bin":"node brigade.mjs doctor","extensions":"node scripts/run-brigade.mjs extensions list","status:bin":"node brigade.mjs status","store:mode":"node scripts/run-brigade.mjs store mode show","update:bin":"node brigade.mjs update","agent:watch":"tsx --watch src/entry.ts agent","agents:bind":"node scripts/run-brigade.mjs agents bind","agents:list":"node scripts/run-brigade.mjs agents list","build:watch":"tsc -p tsconfig.build.json --watch","config:file":"node scripts/run-brigade.mjs config file","config:list":"node scripts/run-brigade.mjs config list","connect:bin":"node brigade.mjs connect","convex:push":"node scripts/convex-push.mjs","doctor:json":"node scripts/run-brigade.mjs doctor --json","expose:stop":"node scripts/run-brigade.mjs expose stop","gateway:bin":"node brigade.mjs gateway","logs:follow":"node scripts/run-brigade.mjs logs --follow","onboard:bin":"node brigade.mjs onboard","postinstall":"node scripts/brand-oauth-page.mjs","skills:info":"node scripts/run-brigade.mjs skills info","skills:list":"node scripts/run-brigade.mjs skills list","status:json":"node scripts/run-brigade.mjs status --json","store:reset":"node scripts/run-brigade.mjs store reset","upgrade:bin":"node brigade.mjs upgrade","channels:add":"node scripts/run-brigade.mjs channels add","gateway:stop":"node scripts/run-brigade.mjs gateway stop","pairing:list":"node scripts/run-brigade.mjs pairing list --channel whatsapp","update:check":"node scripts/run-brigade.mjs update --check","agents:delete":"node scripts/run-brigade.mjs agents delete","agents:unbind":"node scripts/run-brigade.mjs agents unbind","backup:create":"node scripts/run-brigade.mjs backup create","backup:verify":"node scripts/run-brigade.mjs backup verify","channels:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels:list":"node scripts/run-brigade.mjs channels list","config:schema":"node scripts/run-brigade.mjs config schema","connect:watch":"tsx --watch src/entry.ts connect","doctor:strict":"node scripts/run-brigade.mjs doctor --strict","expose:status":"node scripts/run-brigade.mjs expose status","gateway:watch":"tsx --watch src/entry.ts gateway","onboard:watch":"tsx --watch src/entry.ts onboard","secrets:audit":"node scripts/run-brigade.mjs secrets audit","sessions:list":"node scripts/run-brigade.mjs sessions list","store:migrate":"node scripts/run-brigade.mjs store migrate","backup:restore":"node scripts/run-brigade.mjs backup restore","channels:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","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","convex:install":"node scripts/install-convex.mjs","extensions:add":"node scripts/run-brigade.mjs extensions add","gateway:status":"node scripts/run-brigade.mjs gateway status","pairing:revoke":"node scripts/run-brigade.mjs pairing revoke --channel whatsapp","store:mode:set":"node scripts/run-brigade.mjs store mode set","telegram:allow":"node scripts/run-brigade.mjs channels allow list --channel telegram","telegram:token":"node scripts/run-brigade.mjs channels add --channel telegram","agents:bindings":"node scripts/run-brigade.mjs agents bindings","channels:enable":"node scripts/run-brigade.mjs channels enable --channel whatsapp","channels:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","channels:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","config:validate":"node scripts/run-brigade.mjs config validate","extensions:init":"node scripts/run-brigade.mjs extensions init","extensions:list":"node scripts/run-brigade.mjs extensions list","gateway:install":"node scripts/run-brigade.mjs gateway install","gateway:restart":"node scripts/run-brigade.mjs gateway restart","pairing:approve":"node scripts/run-brigade.mjs pairing approve --channel whatsapp","store:mode:show":"node scripts/run-brigade.mjs store mode show","telegram:enable":"node scripts/run-brigade.mjs channels enable --channel telegram","telegram:status":"node scripts/run-brigade.mjs channels status --channel telegram","bloody benchmark":"node scripts/run-brigade.mjs bloody benchmark","channels:disable":"node scripts/run-brigade.mjs channels disable --channel whatsapp","sessions:cleanup":"node scripts/run-brigade.mjs sessions cleanup","telegram:disable":"node scripts/run-brigade.mjs channels disable --channel telegram","extensions:doctor":"node scripts/run-brigade.mjs extensions doctor","extensions:remove":"node scripts/run-brigade.mjs extensions remove","gateway:uninstall":"node scripts/run-brigade.mjs gateway uninstall","smoke:strict-zero":"tsx scripts/strict-zero-smoke.mjs","store:reset:purge":"node scripts/run-brigade.mjs store reset --purge-local","channels:allow:add":"node scripts/run-brigade.mjs channels allow add --channel whatsapp","telegram:allow:add":"node scripts/run-brigade.mjs channels allow add --channel telegram","agents:set-identity":"node scripts/run-brigade.mjs agents set-identity","channels:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel whatsapp","telegram:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel telegram"},"_npmUser":{"name":"spinabot-labs","email":"npm@spinabot.com"},"overrides":{"ws":"$ws","exceljs":{"uuid":"^11.1.1"},"discord.js":{"undici":"^6.27.0"},"@discordjs/rest":{"undici":"^6.27.0"},"@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@earendil-works/pi-agent-core":"0.79.9"},"repository":{"url":"git+https://github.com/spinabot/brigade.git","type":"git"},"_npmVersion":"11.16.0","description":"Brigade — your personal AI crew","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.0","tar":"^7.5.15","zod":"^3.23.8","docx":"^9.7.1","jimp":"^1.6.1","jiti":"^2.6.1","yaml":"^2.9.0","chalk":"^5.3.0","json5":"^2.2.3","unpdf":"^1.6.2","cfonts":"^3.3.1","convex":"^1.40.0","croner":"^10.0.1","fflate":"^0.8.3","grammy":"^1.42.0","undici":"^7.25.0","exceljs":"^4.4.0","prompts":"^2.4.2","linkedom":"^0.18.12","commander":"^12.1.0","minimatch":"^10.2.5","pptxgenjs":"^4.0.1","discord.js":"^14.26.4","cli-highlight":"^2.1.11","@composio/core":"^0.10.0","@slack/web-api":"^7.17.0","@cantoo/pdf-lib":"^2.7.1","@grammyjs/types":"^3.21.0","playwright-core":"^1.59.0","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@pdf-lib/fontkit":"^1.1.1","https-proxy-agent":"^7.0.6","socks-proxy-agent":"^10.1.0","@slack/socket-mode":"^2.0.7","@mozilla/readability":"^0.6.0","@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@whiskeysockets/baileys":"7.0.0-rc13","@anthropic-ai/claude-code":"^2.1.0","@earendil-works/pi-agent-core":"0.79.9","@earendil-works/pi-coding-agent":"0.79.9","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","@types/ws":"^8.18.1","@types/tar":"^6.1.13","typescript":"^5.6.3","@types/node":"^22.10.0","@types/prompts":"^2.4.9","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2"},"_npmOperationalInternal":{"tmp":"tmp/brigade_1.29.0_1783841601431_0.3920719280655287","host":"s3://npm-registry-packages-npm-production"}},"1.29.1":{"name":"@spinabot/brigade","version":"1.29.1","keywords":["ai","agent","agents","ai-agent","cli","tui","llm","claude","openai","gemini","ollama","whatsapp","gateway","brigade"],"author":{"name":"Spinabot","email":"hello@brigade-agent.ai"},"license":"MIT","_id":"@spinabot/brigade@1.29.1","maintainers":[{"name":"dev-spinabot","email":"bhasvanth02@gmail.com"},{"name":"spinabot-labs","email":"npm@spinabot.com"}],"homepage":"https://brigade.spinabot.com","bugs":{"url":"https://github.com/spinabot/brigade/issues","email":"hello@brigade-agent.ai"},"bin":{"brigade":"brigade.mjs"},"dist":{"shasum":"a45a3c822d3d608cb10ba20f8c4569fb3b7cb794","tarball":"https://registry.npmjs.org/@spinabot/brigade/-/brigade-1.29.1.tgz","fileCount":2849,"integrity":"sha512-eq27tYmFCyFp48zBylCs/nIJobhQeds4oTXbzbtfVc04Gj0X7yva6ZO2/b80/en8nFmnSvJzh6NtveC21h3O7Q==","signatures":[{"sig":"MEYCIQDgP1i4OhGi2We6eus+dEUs+6zDh04TwQN2OhrwNMxRaAIhAIXWY1RDtEe2zZaCu/jibQmwCJ9ix3yywAAIzidnxj4w","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spinabot%2fbrigade@1.29.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":21046320},"main":"dist/entry.js","type":"module","types":"./dist/entry.d.ts","engines":{"node":">=22.12"},"exports":{".":"./brigade.mjs","./channel-sdk":{"types":"./dist/channel-sdk.d.ts","import":"./dist/channel-sdk.js"},"./package.json":"./package.json","./extension-sdk":{"types":"./dist/extension-sdk.d.ts","import":"./dist/extension-sdk.js"}},"gitHead":"92942304ba429954f7def87ede6fd7fd35d62f78","scripts":{"wa":"node scripts/run-brigade.mjs channels status --channel whatsapp","dev":"node scripts/run-brigade.mjs","tui":"node scripts/run-brigade.mjs tui","auth":"node scripts/run-brigade.mjs auth","logs":"node scripts/run-brigade.mjs logs","test":"node scripts/run-tests.mjs","agent":"node scripts/run-brigade.mjs agent","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","build":"tsc -p tsconfig.build.json","clean":"node -e \"import('node:fs').then(fs => fs.rmSync('dist', { recursive: true, force: true }))\"","login":"node scripts/run-brigade.mjs login","start":"node scripts/run-brigade.mjs","store":"node scripts/run-brigade.mjs store","watch":"tsx --watch src/entry.ts","agents":"node scripts/run-brigade.mjs agents","backup":"node scripts/run-brigade.mjs backup create","doctor":"node scripts/run-brigade.mjs doctor","expose":"node scripts/run-brigade.mjs expose","skills":"node scripts/run-brigade.mjs skills list","status":"node scripts/run-brigade.mjs status","update":"node scripts/run-brigade.mjs update","brigade":"node brigade.mjs","connect":"node scripts/run-brigade.mjs connect","dev:tsx":"tsx src/entry.ts","gateway":"node scripts/run-brigade.mjs gateway","onboard":"node scripts/run-brigade.mjs onboard","pairing":"node scripts/run-brigade.mjs pairing list --channel whatsapp","prepack":"npm run build","tui:bin":"node brigade.mjs tui","upgrade":"node scripts/run-brigade.mjs upgrade","wa:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels":"node scripts/run-brigade.mjs channels","sessions":"node scripts/run-brigade.mjs sessions list","telegram":"node scripts/run-brigade.mjs channels status --channel telegram","wa:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","agent:bin":"node brigade.mjs agent","exec:list":"node scripts/run-brigade.mjs exec list","login:bin":"node brigade.mjs login","postbuild":"node scripts/build-done.mjs","tui:watch":"tsx --watch src/entry.ts tui","typecheck":"tsc -p tsconfig.json --noEmit","wa:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","wa:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","agents:add":"node scripts/run-brigade.mjs agents add","agents:bin":"node brigade.mjs agents","convex:dev":"node scripts/install-convex.mjs && node scripts/convex-dev.mjs","doctor:bin":"node brigade.mjs doctor","extensions":"node scripts/run-brigade.mjs extensions list","status:bin":"node brigade.mjs status","store:mode":"node scripts/run-brigade.mjs store mode show","update:bin":"node brigade.mjs update","agent:watch":"tsx --watch src/entry.ts agent","agents:bind":"node scripts/run-brigade.mjs agents bind","agents:list":"node scripts/run-brigade.mjs agents list","build:watch":"tsc -p tsconfig.build.json --watch","config:file":"node scripts/run-brigade.mjs config file","config:list":"node scripts/run-brigade.mjs config list","connect:bin":"node brigade.mjs connect","convex:push":"node scripts/convex-push.mjs","doctor:json":"node scripts/run-brigade.mjs doctor --json","expose:stop":"node scripts/run-brigade.mjs expose stop","gateway:bin":"node brigade.mjs gateway","logs:follow":"node scripts/run-brigade.mjs logs --follow","onboard:bin":"node brigade.mjs onboard","postinstall":"node scripts/brand-oauth-page.mjs","skills:info":"node scripts/run-brigade.mjs skills info","skills:list":"node scripts/run-brigade.mjs skills list","status:json":"node scripts/run-brigade.mjs status --json","store:reset":"node scripts/run-brigade.mjs store reset","upgrade:bin":"node brigade.mjs upgrade","channels:add":"node scripts/run-brigade.mjs channels add","gateway:stop":"node scripts/run-brigade.mjs gateway stop","pairing:list":"node scripts/run-brigade.mjs pairing list --channel whatsapp","update:check":"node scripts/run-brigade.mjs update --check","agents:delete":"node scripts/run-brigade.mjs agents delete","agents:unbind":"node scripts/run-brigade.mjs agents unbind","backup:create":"node scripts/run-brigade.mjs backup create","backup:verify":"node scripts/run-brigade.mjs backup verify","channels:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels:list":"node scripts/run-brigade.mjs channels list","config:schema":"node scripts/run-brigade.mjs config schema","connect:watch":"tsx --watch src/entry.ts connect","doctor:strict":"node scripts/run-brigade.mjs doctor --strict","expose:status":"node scripts/run-brigade.mjs expose status","gateway:watch":"tsx --watch src/entry.ts gateway","onboard:watch":"tsx --watch src/entry.ts onboard","secrets:audit":"node scripts/run-brigade.mjs secrets audit","sessions:list":"node scripts/run-brigade.mjs sessions list","store:migrate":"node scripts/run-brigade.mjs store migrate","backup:restore":"node scripts/run-brigade.mjs backup restore","channels:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","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","convex:install":"node scripts/install-convex.mjs","extensions:add":"node scripts/run-brigade.mjs extensions add","gateway:status":"node scripts/run-brigade.mjs gateway status","pairing:revoke":"node scripts/run-brigade.mjs pairing revoke --channel whatsapp","store:mode:set":"node scripts/run-brigade.mjs store mode set","telegram:allow":"node scripts/run-brigade.mjs channels allow list --channel telegram","telegram:token":"node scripts/run-brigade.mjs channels add --channel telegram","agents:bindings":"node scripts/run-brigade.mjs agents bindings","channels:enable":"node scripts/run-brigade.mjs channels enable --channel whatsapp","channels:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","channels:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","config:validate":"node scripts/run-brigade.mjs config validate","extensions:init":"node scripts/run-brigade.mjs extensions init","extensions:list":"node scripts/run-brigade.mjs extensions list","gateway:install":"node scripts/run-brigade.mjs gateway install","gateway:restart":"node scripts/run-brigade.mjs gateway restart","pairing:approve":"node scripts/run-brigade.mjs pairing approve --channel whatsapp","store:mode:show":"node scripts/run-brigade.mjs store mode show","telegram:enable":"node scripts/run-brigade.mjs channels enable --channel telegram","telegram:status":"node scripts/run-brigade.mjs channels status --channel telegram","bloody benchmark":"node scripts/run-brigade.mjs bloody benchmark","channels:disable":"node scripts/run-brigade.mjs channels disable --channel whatsapp","sessions:cleanup":"node scripts/run-brigade.mjs sessions cleanup","telegram:disable":"node scripts/run-brigade.mjs channels disable --channel telegram","extensions:doctor":"node scripts/run-brigade.mjs extensions doctor","extensions:remove":"node scripts/run-brigade.mjs extensions remove","gateway:uninstall":"node scripts/run-brigade.mjs gateway uninstall","smoke:strict-zero":"tsx scripts/strict-zero-smoke.mjs","store:reset:purge":"node scripts/run-brigade.mjs store reset --purge-local","channels:allow:add":"node scripts/run-brigade.mjs channels allow add --channel whatsapp","telegram:allow:add":"node scripts/run-brigade.mjs channels allow add --channel telegram","agents:set-identity":"node scripts/run-brigade.mjs agents set-identity","channels:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel whatsapp","telegram:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel telegram"},"_npmUser":{"name":"spinabot-labs","email":"npm@spinabot.com"},"overrides":{"ws":"$ws","exceljs":{"uuid":"^11.1.1"},"discord.js":{"undici":"^6.27.0"},"@discordjs/rest":{"undici":"^6.27.0"},"@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@earendil-works/pi-agent-core":"0.79.9"},"repository":{"url":"git+https://github.com/spinabot/brigade.git","type":"git"},"_npmVersion":"11.16.0","description":"Brigade — your personal AI crew","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.0","tar":"^7.5.15","zod":"^3.23.8","docx":"^9.7.1","jimp":"^1.6.1","jiti":"^2.6.1","yaml":"^2.9.0","chalk":"^5.3.0","json5":"^2.2.3","unpdf":"^1.6.2","cfonts":"^3.3.1","convex":"^1.40.0","croner":"^10.0.1","fflate":"^0.8.3","grammy":"^1.42.0","undici":"^7.25.0","exceljs":"^4.4.0","prompts":"^2.4.2","linkedom":"^0.18.12","commander":"^12.1.0","minimatch":"^10.2.5","pptxgenjs":"^4.0.1","discord.js":"^14.26.4","cli-highlight":"^2.1.11","@composio/core":"^0.10.0","@slack/web-api":"^7.17.0","@cantoo/pdf-lib":"^2.7.1","@grammyjs/types":"^3.21.0","playwright-core":"^1.59.0","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@pdf-lib/fontkit":"^1.1.1","https-proxy-agent":"^7.0.6","socks-proxy-agent":"^10.1.0","@slack/socket-mode":"^2.0.7","@mozilla/readability":"^0.6.0","@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@whiskeysockets/baileys":"7.0.0-rc13","@anthropic-ai/claude-code":"^2.1.0","@earendil-works/pi-agent-core":"0.79.9","@earendil-works/pi-coding-agent":"0.79.9","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","@types/ws":"^8.18.1","@types/tar":"^6.1.13","typescript":"^5.6.3","@types/node":"^22.10.0","@types/prompts":"^2.4.9","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2"},"_npmOperationalInternal":{"tmp":"tmp/brigade_1.29.1_1783842963452_0.34438437351388607","host":"s3://npm-registry-packages-npm-production"}},"1.29.2":{"name":"@spinabot/brigade","version":"1.29.2","keywords":["ai","agent","agents","ai-agent","cli","tui","llm","claude","openai","gemini","ollama","whatsapp","gateway","brigade"],"author":{"name":"Spinabot","email":"hello@brigade-agent.ai"},"license":"MIT","_id":"@spinabot/brigade@1.29.2","maintainers":[{"name":"dev-spinabot","email":"bhasvanth02@gmail.com"},{"name":"spinabot-labs","email":"npm@spinabot.com"}],"homepage":"https://brigade.spinabot.com","bugs":{"url":"https://github.com/spinabot/brigade/issues","email":"hello@brigade-agent.ai"},"bin":{"brigade":"brigade.mjs"},"dist":{"shasum":"f63943d347afbe7a506348c3aee75d11ddd7bad4","tarball":"https://registry.npmjs.org/@spinabot/brigade/-/brigade-1.29.2.tgz","fileCount":2849,"integrity":"sha512-uYmQkmvwL0nwFxvhKWkYVf7gCNN22ICnVhyVN87RcfoGEoWxkn8G0B+Eg/Z/1UFGj9K5QmRJgh6C5I3iJNfHiw==","signatures":[{"sig":"MEYCIQCmCDLOvI8xIgqYgOzeAa4tzE3E23rZE/ITaqvZ7HzIRAIhAIOJaT+dpEvkH5Dl1YjGMZX3+VGpNZ52HczvRQjXkM8f","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spinabot%2fbrigade@1.29.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":21055965},"main":"dist/entry.js","type":"module","types":"./dist/entry.d.ts","engines":{"node":">=22.12"},"exports":{".":"./brigade.mjs","./channel-sdk":{"types":"./dist/channel-sdk.d.ts","import":"./dist/channel-sdk.js"},"./package.json":"./package.json","./extension-sdk":{"types":"./dist/extension-sdk.d.ts","import":"./dist/extension-sdk.js"}},"gitHead":"3df92d201791820dfbbfe4e7775069d132437db0","scripts":{"wa":"node scripts/run-brigade.mjs channels status --channel whatsapp","dev":"node scripts/run-brigade.mjs","tui":"node scripts/run-brigade.mjs tui","auth":"node scripts/run-brigade.mjs auth","logs":"node scripts/run-brigade.mjs logs","test":"node scripts/run-tests.mjs","agent":"node scripts/run-brigade.mjs agent","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","build":"tsc -p tsconfig.build.json","clean":"node -e \"import('node:fs').then(fs => fs.rmSync('dist', { recursive: true, force: true }))\"","login":"node scripts/run-brigade.mjs login","start":"node scripts/run-brigade.mjs","store":"node scripts/run-brigade.mjs store","watch":"tsx --watch src/entry.ts","agents":"node scripts/run-brigade.mjs agents","backup":"node scripts/run-brigade.mjs backup create","doctor":"node scripts/run-brigade.mjs doctor","expose":"node scripts/run-brigade.mjs expose","skills":"node scripts/run-brigade.mjs skills list","status":"node scripts/run-brigade.mjs status","update":"node scripts/run-brigade.mjs update","brigade":"node brigade.mjs","connect":"node scripts/run-brigade.mjs connect","dev:tsx":"tsx src/entry.ts","gateway":"node scripts/run-brigade.mjs gateway","onboard":"node scripts/run-brigade.mjs onboard","pairing":"node scripts/run-brigade.mjs pairing list --channel whatsapp","prepack":"npm run build","tui:bin":"node brigade.mjs tui","upgrade":"node scripts/run-brigade.mjs upgrade","wa:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels":"node scripts/run-brigade.mjs channels","sessions":"node scripts/run-brigade.mjs sessions list","telegram":"node scripts/run-brigade.mjs channels status --channel telegram","wa:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","agent:bin":"node brigade.mjs agent","exec:list":"node scripts/run-brigade.mjs exec list","login:bin":"node brigade.mjs login","postbuild":"node scripts/build-done.mjs","tui:watch":"tsx --watch src/entry.ts tui","typecheck":"tsc -p tsconfig.json --noEmit","wa:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","wa:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","agents:add":"node scripts/run-brigade.mjs agents add","agents:bin":"node brigade.mjs agents","convex:dev":"node scripts/install-convex.mjs && node scripts/convex-dev.mjs","doctor:bin":"node brigade.mjs doctor","extensions":"node scripts/run-brigade.mjs extensions list","status:bin":"node brigade.mjs status","store:mode":"node scripts/run-brigade.mjs store mode show","update:bin":"node brigade.mjs update","agent:watch":"tsx --watch src/entry.ts agent","agents:bind":"node scripts/run-brigade.mjs agents bind","agents:list":"node scripts/run-brigade.mjs agents list","build:watch":"tsc -p tsconfig.build.json --watch","config:file":"node scripts/run-brigade.mjs config file","config:list":"node scripts/run-brigade.mjs config list","connect:bin":"node brigade.mjs connect","convex:push":"node scripts/convex-push.mjs","doctor:json":"node scripts/run-brigade.mjs doctor --json","expose:stop":"node scripts/run-brigade.mjs expose stop","gateway:bin":"node brigade.mjs gateway","logs:follow":"node scripts/run-brigade.mjs logs --follow","onboard:bin":"node brigade.mjs onboard","postinstall":"node scripts/brand-oauth-page.mjs","skills:info":"node scripts/run-brigade.mjs skills info","skills:list":"node scripts/run-brigade.mjs skills list","status:json":"node scripts/run-brigade.mjs status --json","store:reset":"node scripts/run-brigade.mjs store reset","upgrade:bin":"node brigade.mjs upgrade","channels:add":"node scripts/run-brigade.mjs channels add","gateway:stop":"node scripts/run-brigade.mjs gateway stop","pairing:list":"node scripts/run-brigade.mjs pairing list --channel whatsapp","update:check":"node scripts/run-brigade.mjs update --check","agents:delete":"node scripts/run-brigade.mjs agents delete","agents:unbind":"node scripts/run-brigade.mjs agents unbind","backup:create":"node scripts/run-brigade.mjs backup create","backup:verify":"node scripts/run-brigade.mjs backup verify","channels:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels:list":"node scripts/run-brigade.mjs channels list","config:schema":"node scripts/run-brigade.mjs config schema","connect:watch":"tsx --watch src/entry.ts connect","doctor:strict":"node scripts/run-brigade.mjs doctor --strict","expose:status":"node scripts/run-brigade.mjs expose status","gateway:watch":"tsx --watch src/entry.ts gateway","onboard:watch":"tsx --watch src/entry.ts onboard","secrets:audit":"node scripts/run-brigade.mjs secrets audit","sessions:list":"node scripts/run-brigade.mjs sessions list","store:migrate":"node scripts/run-brigade.mjs store migrate","backup:restore":"node scripts/run-brigade.mjs backup restore","channels:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","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","convex:install":"node scripts/install-convex.mjs","extensions:add":"node scripts/run-brigade.mjs extensions add","gateway:status":"node scripts/run-brigade.mjs gateway status","pairing:revoke":"node scripts/run-brigade.mjs pairing revoke --channel whatsapp","store:mode:set":"node scripts/run-brigade.mjs store mode set","telegram:allow":"node scripts/run-brigade.mjs channels allow list --channel telegram","telegram:token":"node scripts/run-brigade.mjs channels add --channel telegram","agents:bindings":"node scripts/run-brigade.mjs agents bindings","channels:enable":"node scripts/run-brigade.mjs channels enable --channel whatsapp","channels:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","channels:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","config:validate":"node scripts/run-brigade.mjs config validate","extensions:init":"node scripts/run-brigade.mjs extensions init","extensions:list":"node scripts/run-brigade.mjs extensions list","gateway:install":"node scripts/run-brigade.mjs gateway install","gateway:restart":"node scripts/run-brigade.mjs gateway restart","pairing:approve":"node scripts/run-brigade.mjs pairing approve --channel whatsapp","store:mode:show":"node scripts/run-brigade.mjs store mode show","telegram:enable":"node scripts/run-brigade.mjs channels enable --channel telegram","telegram:status":"node scripts/run-brigade.mjs channels status --channel telegram","bloody benchmark":"node scripts/run-brigade.mjs bloody benchmark","channels:disable":"node scripts/run-brigade.mjs channels disable --channel whatsapp","sessions:cleanup":"node scripts/run-brigade.mjs sessions cleanup","telegram:disable":"node scripts/run-brigade.mjs channels disable --channel telegram","extensions:doctor":"node scripts/run-brigade.mjs extensions doctor","extensions:remove":"node scripts/run-brigade.mjs extensions remove","gateway:uninstall":"node scripts/run-brigade.mjs gateway uninstall","smoke:strict-zero":"tsx scripts/strict-zero-smoke.mjs","store:reset:purge":"node scripts/run-brigade.mjs store reset --purge-local","channels:allow:add":"node scripts/run-brigade.mjs channels allow add --channel whatsapp","telegram:allow:add":"node scripts/run-brigade.mjs channels allow add --channel telegram","agents:set-identity":"node scripts/run-brigade.mjs agents set-identity","channels:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel whatsapp","telegram:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel telegram"},"_npmUser":{"name":"spinabot-labs","email":"npm@spinabot.com"},"overrides":{"ws":"$ws","exceljs":{"uuid":"^11.1.1"},"discord.js":{"undici":"^6.27.0"},"@discordjs/rest":{"undici":"^6.27.0"},"@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@earendil-works/pi-agent-core":"0.79.9"},"repository":{"url":"git+https://github.com/spinabot/brigade.git","type":"git"},"_npmVersion":"11.16.0","description":"Brigade — your personal AI crew","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.0","tar":"^7.5.15","zod":"^3.23.8","docx":"^9.7.1","jimp":"^1.6.1","jiti":"^2.6.1","yaml":"^2.9.0","chalk":"^5.3.0","json5":"^2.2.3","unpdf":"^1.6.2","cfonts":"^3.3.1","convex":"^1.40.0","croner":"^10.0.1","fflate":"^0.8.3","grammy":"^1.42.0","undici":"^7.25.0","exceljs":"^4.4.0","prompts":"^2.4.2","linkedom":"^0.18.12","commander":"^12.1.0","minimatch":"^10.2.5","pptxgenjs":"^4.0.1","discord.js":"^14.26.4","cli-highlight":"^2.1.11","@composio/core":"^0.10.0","@slack/web-api":"^7.17.0","@cantoo/pdf-lib":"^2.7.1","@grammyjs/types":"^3.21.0","playwright-core":"^1.59.0","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@pdf-lib/fontkit":"^1.1.1","https-proxy-agent":"^7.0.6","socks-proxy-agent":"^10.1.0","@slack/socket-mode":"^2.0.7","@mozilla/readability":"^0.6.0","@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@whiskeysockets/baileys":"7.0.0-rc13","@anthropic-ai/claude-code":"^2.1.0","@earendil-works/pi-agent-core":"0.79.9","@earendil-works/pi-coding-agent":"0.79.9","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","@types/ws":"^8.18.1","@types/tar":"^6.1.13","typescript":"^5.6.3","@types/node":"^22.10.0","@types/prompts":"^2.4.9","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2"},"_npmOperationalInternal":{"tmp":"tmp/brigade_1.29.2_1784496881267_0.9847507857104576","host":"s3://npm-registry-packages-npm-production"}},"1.29.3":{"name":"@spinabot/brigade","version":"1.29.3","keywords":["ai","agent","agents","ai-agent","cli","tui","llm","claude","openai","gemini","ollama","whatsapp","gateway","brigade"],"author":{"name":"Spinabot","email":"hello@brigade-agent.ai"},"license":"MIT","_id":"@spinabot/brigade@1.29.3","maintainers":[{"name":"dev-spinabot","email":"bhasvanth02@gmail.com"},{"name":"spinabot-labs","email":"npm@spinabot.com"}],"homepage":"https://brigade.spinabot.com","bugs":{"url":"https://github.com/spinabot/brigade/issues","email":"hello@brigade-agent.ai"},"bin":{"brigade":"brigade.mjs"},"dist":{"shasum":"3b19325adda9c8b8fe9c3c1dcc74fc62a231f9fe","tarball":"https://registry.npmjs.org/@spinabot/brigade/-/brigade-1.29.3.tgz","fileCount":2849,"integrity":"sha512-Ait2vtA/zi47e31lz3p6p2STQnxTNjHEd+FHAb6DBCbjTTZbbQubsX9qdgJYz3aTkROPnhn7m816uIFjC7qIyQ==","signatures":[{"sig":"MEUCIHXIjvBKqt4FDxD8D4YmcJWs+D9R9caWZLJbVQhhW0imAiEA5SYwku8ik119KdQBdwBsZ94f/0/oRcMeVxinPKymmjQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spinabot%2fbrigade@1.29.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":21060272},"main":"dist/entry.js","type":"module","types":"./dist/entry.d.ts","engines":{"node":">=22.12"},"exports":{".":"./brigade.mjs","./channel-sdk":{"types":"./dist/channel-sdk.d.ts","import":"./dist/channel-sdk.js"},"./package.json":"./package.json","./extension-sdk":{"types":"./dist/extension-sdk.d.ts","import":"./dist/extension-sdk.js"}},"gitHead":"ead590a73e3edbfb00ac5db56e895465169e8aa6","scripts":{"wa":"node scripts/run-brigade.mjs channels status --channel whatsapp","dev":"node scripts/run-brigade.mjs","tui":"node scripts/run-brigade.mjs tui","auth":"node scripts/run-brigade.mjs auth","logs":"node scripts/run-brigade.mjs logs","test":"node scripts/run-tests.mjs","agent":"node scripts/run-brigade.mjs agent","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","build":"tsc -p tsconfig.build.json","clean":"node -e \"import('node:fs').then(fs => fs.rmSync('dist', { recursive: true, force: true }))\"","login":"node scripts/run-brigade.mjs login","start":"node scripts/run-brigade.mjs","store":"node scripts/run-brigade.mjs store","watch":"tsx --watch src/entry.ts","agents":"node scripts/run-brigade.mjs agents","backup":"node scripts/run-brigade.mjs backup create","doctor":"node scripts/run-brigade.mjs doctor","expose":"node scripts/run-brigade.mjs expose","skills":"node scripts/run-brigade.mjs skills list","status":"node scripts/run-brigade.mjs status","update":"node scripts/run-brigade.mjs update","brigade":"node brigade.mjs","connect":"node scripts/run-brigade.mjs connect","dev:tsx":"tsx src/entry.ts","gateway":"node scripts/run-brigade.mjs gateway","onboard":"node scripts/run-brigade.mjs onboard","pairing":"node scripts/run-brigade.mjs pairing list --channel whatsapp","prepack":"npm run build","tui:bin":"node brigade.mjs tui","upgrade":"node scripts/run-brigade.mjs upgrade","wa:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels":"node scripts/run-brigade.mjs channels","sessions":"node scripts/run-brigade.mjs sessions list","telegram":"node scripts/run-brigade.mjs channels status --channel telegram","wa:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","agent:bin":"node brigade.mjs agent","exec:list":"node scripts/run-brigade.mjs exec list","login:bin":"node brigade.mjs login","postbuild":"node scripts/build-done.mjs","tui:watch":"tsx --watch src/entry.ts tui","typecheck":"tsc -p tsconfig.json --noEmit","wa:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","wa:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","agents:add":"node scripts/run-brigade.mjs agents add","agents:bin":"node brigade.mjs agents","convex:dev":"node scripts/install-convex.mjs && node scripts/convex-dev.mjs","doctor:bin":"node brigade.mjs doctor","extensions":"node scripts/run-brigade.mjs extensions list","status:bin":"node brigade.mjs status","store:mode":"node scripts/run-brigade.mjs store mode show","update:bin":"node brigade.mjs update","agent:watch":"tsx --watch src/entry.ts agent","agents:bind":"node scripts/run-brigade.mjs agents bind","agents:list":"node scripts/run-brigade.mjs agents list","build:watch":"tsc -p tsconfig.build.json --watch","config:file":"node scripts/run-brigade.mjs config file","config:list":"node scripts/run-brigade.mjs config list","connect:bin":"node brigade.mjs connect","convex:push":"node scripts/convex-push.mjs","doctor:json":"node scripts/run-brigade.mjs doctor --json","expose:stop":"node scripts/run-brigade.mjs expose stop","gateway:bin":"node brigade.mjs gateway","logs:follow":"node scripts/run-brigade.mjs logs --follow","onboard:bin":"node brigade.mjs onboard","postinstall":"node scripts/brand-oauth-page.mjs","skills:info":"node scripts/run-brigade.mjs skills info","skills:list":"node scripts/run-brigade.mjs skills list","status:json":"node scripts/run-brigade.mjs status --json","store:reset":"node scripts/run-brigade.mjs store reset","upgrade:bin":"node brigade.mjs upgrade","channels:add":"node scripts/run-brigade.mjs channels add","gateway:stop":"node scripts/run-brigade.mjs gateway stop","pairing:list":"node scripts/run-brigade.mjs pairing list --channel whatsapp","update:check":"node scripts/run-brigade.mjs update --check","agents:delete":"node scripts/run-brigade.mjs agents delete","agents:unbind":"node scripts/run-brigade.mjs agents unbind","backup:create":"node scripts/run-brigade.mjs backup create","backup:verify":"node scripts/run-brigade.mjs backup verify","channels:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels:list":"node scripts/run-brigade.mjs channels list","config:schema":"node scripts/run-brigade.mjs config schema","connect:watch":"tsx --watch src/entry.ts connect","doctor:strict":"node scripts/run-brigade.mjs doctor --strict","expose:status":"node scripts/run-brigade.mjs expose status","gateway:watch":"tsx --watch src/entry.ts gateway","onboard:watch":"tsx --watch src/entry.ts onboard","secrets:audit":"node scripts/run-brigade.mjs secrets audit","sessions:list":"node scripts/run-brigade.mjs sessions list","store:migrate":"node scripts/run-brigade.mjs store migrate","backup:restore":"node scripts/run-brigade.mjs backup restore","channels:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","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","convex:install":"node scripts/install-convex.mjs","extensions:add":"node scripts/run-brigade.mjs extensions add","gateway:status":"node scripts/run-brigade.mjs gateway status","pairing:revoke":"node scripts/run-brigade.mjs pairing revoke --channel whatsapp","store:mode:set":"node scripts/run-brigade.mjs store mode set","telegram:allow":"node scripts/run-brigade.mjs channels allow list --channel telegram","telegram:token":"node scripts/run-brigade.mjs channels add --channel telegram","agents:bindings":"node scripts/run-brigade.mjs agents bindings","channels:enable":"node scripts/run-brigade.mjs channels enable --channel whatsapp","channels:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","channels:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","config:validate":"node scripts/run-brigade.mjs config validate","extensions:init":"node scripts/run-brigade.mjs extensions init","extensions:list":"node scripts/run-brigade.mjs extensions list","gateway:install":"node scripts/run-brigade.mjs gateway install","gateway:restart":"node scripts/run-brigade.mjs gateway restart","pairing:approve":"node scripts/run-brigade.mjs pairing approve --channel whatsapp","store:mode:show":"node scripts/run-brigade.mjs store mode show","telegram:enable":"node scripts/run-brigade.mjs channels enable --channel telegram","telegram:status":"node scripts/run-brigade.mjs channels status --channel telegram","bloody benchmark":"node scripts/run-brigade.mjs bloody benchmark","channels:disable":"node scripts/run-brigade.mjs channels disable --channel whatsapp","sessions:cleanup":"node scripts/run-brigade.mjs sessions cleanup","telegram:disable":"node scripts/run-brigade.mjs channels disable --channel telegram","extensions:doctor":"node scripts/run-brigade.mjs extensions doctor","extensions:remove":"node scripts/run-brigade.mjs extensions remove","gateway:uninstall":"node scripts/run-brigade.mjs gateway uninstall","smoke:strict-zero":"tsx scripts/strict-zero-smoke.mjs","store:reset:purge":"node scripts/run-brigade.mjs store reset --purge-local","channels:allow:add":"node scripts/run-brigade.mjs channels allow add --channel whatsapp","telegram:allow:add":"node scripts/run-brigade.mjs channels allow add --channel telegram","agents:set-identity":"node scripts/run-brigade.mjs agents set-identity","channels:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel whatsapp","telegram:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel telegram"},"_npmUser":{"name":"spinabot-labs","email":"npm@spinabot.com"},"overrides":{"ws":"$ws","exceljs":{"uuid":"^11.1.1"},"discord.js":{"undici":"^6.27.0"},"@discordjs/rest":{"undici":"^6.27.0"},"@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@earendil-works/pi-agent-core":"0.79.9"},"repository":{"url":"git+https://github.com/spinabot/brigade.git","type":"git"},"_npmVersion":"11.16.0","description":"Brigade — your personal AI crew","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.0","tar":"^7.5.15","zod":"^3.23.8","docx":"^9.7.1","jimp":"^1.6.1","jiti":"^2.6.1","yaml":"^2.9.0","chalk":"^5.3.0","json5":"^2.2.3","unpdf":"^1.6.2","cfonts":"^3.3.1","convex":"^1.40.0","croner":"^10.0.1","fflate":"^0.8.3","grammy":"^1.42.0","undici":"^7.25.0","exceljs":"^4.4.0","prompts":"^2.4.2","linkedom":"^0.18.12","commander":"^12.1.0","minimatch":"^10.2.5","pptxgenjs":"^4.0.1","discord.js":"^14.26.4","cli-highlight":"^2.1.11","@composio/core":"^0.10.0","@slack/web-api":"^7.17.0","@cantoo/pdf-lib":"^2.7.1","@grammyjs/types":"^3.21.0","playwright-core":"^1.59.0","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@pdf-lib/fontkit":"^1.1.1","https-proxy-agent":"^7.0.6","socks-proxy-agent":"^10.1.0","@slack/socket-mode":"^2.0.7","@mozilla/readability":"^0.6.0","@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@whiskeysockets/baileys":"7.0.0-rc13","@anthropic-ai/claude-code":"^2.1.0","@earendil-works/pi-agent-core":"0.79.9","@earendil-works/pi-coding-agent":"0.79.9","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","@types/ws":"^8.18.1","@types/tar":"^6.1.13","typescript":"^5.6.3","@types/node":"^22.10.0","@types/prompts":"^2.4.9","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2"},"_npmOperationalInternal":{"tmp":"tmp/brigade_1.29.3_1784498844961_0.9158644561483387","host":"s3://npm-registry-packages-npm-production"}},"1.29.4":{"name":"@spinabot/brigade","version":"1.29.4","keywords":["ai","agent","agents","ai-agent","cli","tui","llm","claude","openai","gemini","ollama","whatsapp","gateway","brigade"],"author":{"name":"Spinabot","email":"hello@brigade-agent.ai"},"license":"MIT","_id":"@spinabot/brigade@1.29.4","maintainers":[{"name":"dev-spinabot","email":"bhasvanth02@gmail.com"},{"name":"spinabot-labs","email":"npm@spinabot.com"}],"homepage":"https://brigade.spinabot.com","bugs":{"url":"https://github.com/spinabot/brigade/issues","email":"hello@brigade-agent.ai"},"bin":{"brigade":"brigade.mjs"},"dist":{"shasum":"551c68e54faa866ec0e777d7bfd051e11ea9f4d2","tarball":"https://registry.npmjs.org/@spinabot/brigade/-/brigade-1.29.4.tgz","fileCount":2849,"integrity":"sha512-Z5kbZrwdyDMyUIulf84AdEnncI247jbmA65jjE80RvX5wXek4aluA/ubBf2tH7G11tBcI5pu0yzFMw1p08ixnw==","signatures":[{"sig":"MEQCIFU24o+8Iw2O3/+GgCr8DvStreXVE/mfKD5/INa+XAe1AiBWAPsk/hLCcQ0DTZmaX108sbGTBmLRXzmbi+SC4B5XCw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spinabot%2fbrigade@1.29.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":21067086},"main":"dist/entry.js","type":"module","types":"./dist/entry.d.ts","engines":{"node":">=22.12"},"exports":{".":"./brigade.mjs","./channel-sdk":{"types":"./dist/channel-sdk.d.ts","import":"./dist/channel-sdk.js"},"./package.json":"./package.json","./extension-sdk":{"types":"./dist/extension-sdk.d.ts","import":"./dist/extension-sdk.js"}},"gitHead":"01f2e43fcd7aa3df44822fa3917d033f37d8bd53","scripts":{"wa":"node scripts/run-brigade.mjs channels status --channel whatsapp","dev":"node scripts/run-brigade.mjs","tui":"node scripts/run-brigade.mjs tui","auth":"node scripts/run-brigade.mjs auth","logs":"node scripts/run-brigade.mjs logs","test":"node scripts/run-tests.mjs","agent":"node scripts/run-brigade.mjs agent","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","build":"tsc -p tsconfig.build.json","clean":"node -e \"import('node:fs').then(fs => fs.rmSync('dist', { recursive: true, force: true }))\"","login":"node scripts/run-brigade.mjs login","start":"node scripts/run-brigade.mjs","store":"node scripts/run-brigade.mjs store","watch":"tsx --watch src/entry.ts","agents":"node scripts/run-brigade.mjs agents","backup":"node scripts/run-brigade.mjs backup create","doctor":"node scripts/run-brigade.mjs doctor","expose":"node scripts/run-brigade.mjs expose","skills":"node scripts/run-brigade.mjs skills list","status":"node scripts/run-brigade.mjs status","update":"node scripts/run-brigade.mjs update","brigade":"node brigade.mjs","connect":"node scripts/run-brigade.mjs connect","dev:tsx":"tsx src/entry.ts","gateway":"node scripts/run-brigade.mjs gateway","onboard":"node scripts/run-brigade.mjs onboard","pairing":"node scripts/run-brigade.mjs pairing list --channel whatsapp","prepack":"npm run build","tui:bin":"node brigade.mjs tui","upgrade":"node scripts/run-brigade.mjs upgrade","wa:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels":"node scripts/run-brigade.mjs channels","sessions":"node scripts/run-brigade.mjs sessions list","telegram":"node scripts/run-brigade.mjs channels status --channel telegram","wa:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","agent:bin":"node brigade.mjs agent","exec:list":"node scripts/run-brigade.mjs exec list","login:bin":"node brigade.mjs login","postbuild":"node scripts/build-done.mjs","tui:watch":"tsx --watch src/entry.ts tui","typecheck":"tsc -p tsconfig.json --noEmit","wa:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","wa:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","agents:add":"node scripts/run-brigade.mjs agents add","agents:bin":"node brigade.mjs agents","convex:dev":"node scripts/install-convex.mjs && node scripts/convex-dev.mjs","doctor:bin":"node brigade.mjs doctor","extensions":"node scripts/run-brigade.mjs extensions list","status:bin":"node brigade.mjs status","store:mode":"node scripts/run-brigade.mjs store mode show","update:bin":"node brigade.mjs update","agent:watch":"tsx --watch src/entry.ts agent","agents:bind":"node scripts/run-brigade.mjs agents bind","agents:list":"node scripts/run-brigade.mjs agents list","build:watch":"tsc -p tsconfig.build.json --watch","config:file":"node scripts/run-brigade.mjs config file","config:list":"node scripts/run-brigade.mjs config list","connect:bin":"node brigade.mjs connect","convex:push":"node scripts/convex-push.mjs","doctor:json":"node scripts/run-brigade.mjs doctor --json","expose:stop":"node scripts/run-brigade.mjs expose stop","gateway:bin":"node brigade.mjs gateway","logs:follow":"node scripts/run-brigade.mjs logs --follow","onboard:bin":"node brigade.mjs onboard","postinstall":"node scripts/brand-oauth-page.mjs","skills:info":"node scripts/run-brigade.mjs skills info","skills:list":"node scripts/run-brigade.mjs skills list","status:json":"node scripts/run-brigade.mjs status --json","store:reset":"node scripts/run-brigade.mjs store reset","upgrade:bin":"node brigade.mjs upgrade","channels:add":"node scripts/run-brigade.mjs channels add","gateway:stop":"node scripts/run-brigade.mjs gateway stop","pairing:list":"node scripts/run-brigade.mjs pairing list --channel whatsapp","update:check":"node scripts/run-brigade.mjs update --check","agents:delete":"node scripts/run-brigade.mjs agents delete","agents:unbind":"node scripts/run-brigade.mjs agents unbind","backup:create":"node scripts/run-brigade.mjs backup create","backup:verify":"node scripts/run-brigade.mjs backup verify","channels:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels:list":"node scripts/run-brigade.mjs channels list","config:schema":"node scripts/run-brigade.mjs config schema","connect:watch":"tsx --watch src/entry.ts connect","doctor:strict":"node scripts/run-brigade.mjs doctor --strict","expose:status":"node scripts/run-brigade.mjs expose status","gateway:watch":"tsx --watch src/entry.ts gateway","onboard:watch":"tsx --watch src/entry.ts onboard","secrets:audit":"node scripts/run-brigade.mjs secrets audit","sessions:list":"node scripts/run-brigade.mjs sessions list","store:migrate":"node scripts/run-brigade.mjs store migrate","backup:restore":"node scripts/run-brigade.mjs backup restore","channels:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","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","convex:install":"node scripts/install-convex.mjs","extensions:add":"node scripts/run-brigade.mjs extensions add","gateway:status":"node scripts/run-brigade.mjs gateway status","pairing:revoke":"node scripts/run-brigade.mjs pairing revoke --channel whatsapp","store:mode:set":"node scripts/run-brigade.mjs store mode set","telegram:allow":"node scripts/run-brigade.mjs channels allow list --channel telegram","telegram:token":"node scripts/run-brigade.mjs channels add --channel telegram","agents:bindings":"node scripts/run-brigade.mjs agents bindings","channels:enable":"node scripts/run-brigade.mjs channels enable --channel whatsapp","channels:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","channels:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","config:validate":"node scripts/run-brigade.mjs config validate","extensions:init":"node scripts/run-brigade.mjs extensions init","extensions:list":"node scripts/run-brigade.mjs extensions list","gateway:install":"node scripts/run-brigade.mjs gateway install","gateway:restart":"node scripts/run-brigade.mjs gateway restart","pairing:approve":"node scripts/run-brigade.mjs pairing approve --channel whatsapp","store:mode:show":"node scripts/run-brigade.mjs store mode show","telegram:enable":"node scripts/run-brigade.mjs channels enable --channel telegram","telegram:status":"node scripts/run-brigade.mjs channels status --channel telegram","bloody benchmark":"node scripts/run-brigade.mjs bloody benchmark","channels:disable":"node scripts/run-brigade.mjs channels disable --channel whatsapp","sessions:cleanup":"node scripts/run-brigade.mjs sessions cleanup","telegram:disable":"node scripts/run-brigade.mjs channels disable --channel telegram","extensions:doctor":"node scripts/run-brigade.mjs extensions doctor","extensions:remove":"node scripts/run-brigade.mjs extensions remove","gateway:uninstall":"node scripts/run-brigade.mjs gateway uninstall","smoke:strict-zero":"tsx scripts/strict-zero-smoke.mjs","store:reset:purge":"node scripts/run-brigade.mjs store reset --purge-local","channels:allow:add":"node scripts/run-brigade.mjs channels allow add --channel whatsapp","telegram:allow:add":"node scripts/run-brigade.mjs channels allow add --channel telegram","agents:set-identity":"node scripts/run-brigade.mjs agents set-identity","channels:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel whatsapp","telegram:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel telegram"},"_npmUser":{"name":"spinabot-labs","email":"npm@spinabot.com"},"overrides":{"ws":"$ws","exceljs":{"uuid":"^11.1.1"},"discord.js":{"undici":"^6.27.0"},"@discordjs/rest":{"undici":"^6.27.0"},"@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@earendil-works/pi-agent-core":"0.79.9"},"repository":{"url":"git+https://github.com/spinabot/brigade.git","type":"git"},"_npmVersion":"11.16.0","description":"Brigade — your personal AI crew","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.0","tar":"^7.5.15","zod":"^3.23.8","docx":"^9.7.1","jimp":"^1.6.1","jiti":"^2.6.1","yaml":"^2.9.0","chalk":"^5.3.0","json5":"^2.2.3","unpdf":"^1.6.2","cfonts":"^3.3.1","convex":"^1.40.0","croner":"^10.0.1","fflate":"^0.8.3","grammy":"^1.42.0","undici":"^7.25.0","exceljs":"^4.4.0","prompts":"^2.4.2","linkedom":"^0.18.12","commander":"^12.1.0","minimatch":"^10.2.5","pptxgenjs":"^4.0.1","discord.js":"^14.26.4","cli-highlight":"^2.1.11","@composio/core":"^0.10.0","@slack/web-api":"^7.17.0","@cantoo/pdf-lib":"^2.7.1","@grammyjs/types":"^3.21.0","playwright-core":"^1.59.0","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@pdf-lib/fontkit":"^1.1.1","https-proxy-agent":"^7.0.6","socks-proxy-agent":"^10.1.0","@slack/socket-mode":"^2.0.7","@mozilla/readability":"^0.6.0","@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@whiskeysockets/baileys":"7.0.0-rc13","@anthropic-ai/claude-code":"^2.1.0","@earendil-works/pi-agent-core":"0.79.9","@earendil-works/pi-coding-agent":"0.79.9","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","@types/ws":"^8.18.1","@types/tar":"^6.1.13","typescript":"^5.6.3","@types/node":"^22.10.0","@types/prompts":"^2.4.9","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2"},"_npmOperationalInternal":{"tmp":"tmp/brigade_1.29.4_1784502960197_0.14298861920088024","host":"s3://npm-registry-packages-npm-production"}},"1.29.5":{"name":"@spinabot/brigade","version":"1.29.5","keywords":["ai","agent","agents","ai-agent","cli","tui","llm","claude","openai","gemini","ollama","whatsapp","gateway","brigade"],"author":{"name":"Spinabot","email":"hello@brigade-agent.ai"},"license":"MIT","_id":"@spinabot/brigade@1.29.5","maintainers":[{"name":"dev-spinabot","email":"bhasvanth02@gmail.com"},{"name":"spinabot-labs","email":"npm@spinabot.com"}],"homepage":"https://brigade.spinabot.com","bugs":{"url":"https://github.com/spinabot/brigade/issues","email":"hello@brigade-agent.ai"},"bin":{"brigade":"brigade.mjs"},"dist":{"shasum":"17e752fedc9101873159edf3e49f6a60415132df","tarball":"https://registry.npmjs.org/@spinabot/brigade/-/brigade-1.29.5.tgz","fileCount":2853,"integrity":"sha512-X9/AkyBj8nKgIvP/K5u4qoDTZsutlz0kzLK/DtA4C5M4fzlOqyJQX+ZZfasLRnvy1uOVi25h2QI138BSqOeNeg==","signatures":[{"sig":"MEUCIQCu7M+jnibkfNvLHVIrHWrDBJ9Xvf0K2LX3/z9qaqEGUQIgIy1OSA63lgsT5J/hCQsByHooRFMjTU/mMOJGMac27XA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spinabot%2fbrigade@1.29.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":21115505},"main":"dist/entry.js","type":"module","types":"./dist/entry.d.ts","engines":{"node":">=22.12"},"exports":{".":"./brigade.mjs","./channel-sdk":{"types":"./dist/channel-sdk.d.ts","import":"./dist/channel-sdk.js"},"./package.json":"./package.json","./extension-sdk":{"types":"./dist/extension-sdk.d.ts","import":"./dist/extension-sdk.js"}},"gitHead":"056d21a4583c88ba42f22b26bb836212e5cfbadc","scripts":{"wa":"node scripts/run-brigade.mjs channels status --channel whatsapp","dev":"node scripts/run-brigade.mjs","tui":"node scripts/run-brigade.mjs tui","auth":"node scripts/run-brigade.mjs auth","logs":"node scripts/run-brigade.mjs logs","test":"node scripts/run-tests.mjs","agent":"node scripts/run-brigade.mjs agent","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","build":"tsc -p tsconfig.build.json","clean":"node -e \"import('node:fs').then(fs => fs.rmSync('dist', { recursive: true, force: true }))\"","login":"node scripts/run-brigade.mjs login","start":"node scripts/run-brigade.mjs","store":"node scripts/run-brigade.mjs store","watch":"tsx --watch src/entry.ts","agents":"node scripts/run-brigade.mjs agents","backup":"node scripts/run-brigade.mjs backup create","doctor":"node scripts/run-brigade.mjs doctor","expose":"node scripts/run-brigade.mjs expose","skills":"node scripts/run-brigade.mjs skills list","status":"node scripts/run-brigade.mjs status","update":"node scripts/run-brigade.mjs update","brigade":"node brigade.mjs","connect":"node scripts/run-brigade.mjs connect","dev:tsx":"tsx src/entry.ts","gateway":"node scripts/run-brigade.mjs gateway","onboard":"node scripts/run-brigade.mjs onboard","pairing":"node scripts/run-brigade.mjs pairing list --channel whatsapp","prepack":"npm run build","tui:bin":"node brigade.mjs tui","upgrade":"node scripts/run-brigade.mjs upgrade","wa:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels":"node scripts/run-brigade.mjs channels","sessions":"node scripts/run-brigade.mjs sessions list","telegram":"node scripts/run-brigade.mjs channels status --channel telegram","wa:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","agent:bin":"node brigade.mjs agent","exec:list":"node scripts/run-brigade.mjs exec list","login:bin":"node brigade.mjs login","postbuild":"node scripts/build-done.mjs","tui:watch":"tsx --watch src/entry.ts tui","typecheck":"tsc -p tsconfig.json --noEmit","wa:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","wa:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","agents:add":"node scripts/run-brigade.mjs agents add","agents:bin":"node brigade.mjs agents","convex:dev":"node scripts/install-convex.mjs && node scripts/convex-dev.mjs","doctor:bin":"node brigade.mjs doctor","extensions":"node scripts/run-brigade.mjs extensions list","status:bin":"node brigade.mjs status","store:mode":"node scripts/run-brigade.mjs store mode show","update:bin":"node brigade.mjs update","agent:watch":"tsx --watch src/entry.ts agent","agents:bind":"node scripts/run-brigade.mjs agents bind","agents:list":"node scripts/run-brigade.mjs agents list","build:watch":"tsc -p tsconfig.build.json --watch","config:file":"node scripts/run-brigade.mjs config file","config:list":"node scripts/run-brigade.mjs config list","connect:bin":"node brigade.mjs connect","convex:push":"node scripts/convex-push.mjs","doctor:json":"node scripts/run-brigade.mjs doctor --json","expose:stop":"node scripts/run-brigade.mjs expose stop","gateway:bin":"node brigade.mjs gateway","logs:follow":"node scripts/run-brigade.mjs logs --follow","onboard:bin":"node brigade.mjs onboard","postinstall":"node scripts/brand-oauth-page.mjs","skills:info":"node scripts/run-brigade.mjs skills info","skills:list":"node scripts/run-brigade.mjs skills list","status:json":"node scripts/run-brigade.mjs status --json","store:reset":"node scripts/run-brigade.mjs store reset","upgrade:bin":"node brigade.mjs upgrade","channels:add":"node scripts/run-brigade.mjs channels add","gateway:stop":"node scripts/run-brigade.mjs gateway stop","pairing:list":"node scripts/run-brigade.mjs pairing list --channel whatsapp","update:check":"node scripts/run-brigade.mjs update --check","agents:delete":"node scripts/run-brigade.mjs agents delete","agents:unbind":"node scripts/run-brigade.mjs agents unbind","backup:create":"node scripts/run-brigade.mjs backup create","backup:verify":"node scripts/run-brigade.mjs backup verify","channels:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels:list":"node scripts/run-brigade.mjs channels list","config:schema":"node scripts/run-brigade.mjs config schema","connect:watch":"tsx --watch src/entry.ts connect","doctor:strict":"node scripts/run-brigade.mjs doctor --strict","expose:status":"node scripts/run-brigade.mjs expose status","gateway:watch":"tsx --watch src/entry.ts gateway","onboard:watch":"tsx --watch src/entry.ts onboard","secrets:audit":"node scripts/run-brigade.mjs secrets audit","sessions:list":"node scripts/run-brigade.mjs sessions list","store:migrate":"node scripts/run-brigade.mjs store migrate","backup:restore":"node scripts/run-brigade.mjs backup restore","channels:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","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","convex:install":"node scripts/install-convex.mjs","extensions:add":"node scripts/run-brigade.mjs extensions add","gateway:status":"node scripts/run-brigade.mjs gateway status","pairing:revoke":"node scripts/run-brigade.mjs pairing revoke --channel whatsapp","store:mode:set":"node scripts/run-brigade.mjs store mode set","telegram:allow":"node scripts/run-brigade.mjs channels allow list --channel telegram","telegram:token":"node scripts/run-brigade.mjs channels add --channel telegram","agents:bindings":"node scripts/run-brigade.mjs agents bindings","channels:enable":"node scripts/run-brigade.mjs channels enable --channel whatsapp","channels:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","channels:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","config:validate":"node scripts/run-brigade.mjs config validate","extensions:init":"node scripts/run-brigade.mjs extensions init","extensions:list":"node scripts/run-brigade.mjs extensions list","gateway:install":"node scripts/run-brigade.mjs gateway install","gateway:restart":"node scripts/run-brigade.mjs gateway restart","pairing:approve":"node scripts/run-brigade.mjs pairing approve --channel whatsapp","store:mode:show":"node scripts/run-brigade.mjs store mode show","telegram:enable":"node scripts/run-brigade.mjs channels enable --channel telegram","telegram:status":"node scripts/run-brigade.mjs channels status --channel telegram","bloody benchmark":"node scripts/run-brigade.mjs bloody benchmark","channels:disable":"node scripts/run-brigade.mjs channels disable --channel whatsapp","sessions:cleanup":"node scripts/run-brigade.mjs sessions cleanup","telegram:disable":"node scripts/run-brigade.mjs channels disable --channel telegram","extensions:doctor":"node scripts/run-brigade.mjs extensions doctor","extensions:remove":"node scripts/run-brigade.mjs extensions remove","gateway:uninstall":"node scripts/run-brigade.mjs gateway uninstall","smoke:strict-zero":"tsx scripts/strict-zero-smoke.mjs","store:reset:purge":"node scripts/run-brigade.mjs store reset --purge-local","channels:allow:add":"node scripts/run-brigade.mjs channels allow add --channel whatsapp","telegram:allow:add":"node scripts/run-brigade.mjs channels allow add --channel telegram","agents:set-identity":"node scripts/run-brigade.mjs agents set-identity","channels:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel whatsapp","telegram:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel telegram"},"_npmUser":{"name":"spinabot-labs","email":"npm@spinabot.com"},"overrides":{"ws":"$ws","exceljs":{"uuid":"^11.1.1"},"discord.js":{"undici":"^6.27.0"},"@discordjs/rest":{"undici":"^6.27.0"},"@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@earendil-works/pi-agent-core":"0.79.9"},"repository":{"url":"git+https://github.com/spinabot/brigade.git","type":"git"},"_npmVersion":"11.16.0","description":"Brigade — your personal AI crew","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.0","tar":"^7.5.15","zod":"^3.23.8","docx":"^9.7.1","jimp":"^1.6.1","jiti":"^2.6.1","yaml":"^2.9.0","chalk":"^5.3.0","json5":"^2.2.3","unpdf":"^1.6.2","cfonts":"^3.3.1","convex":"^1.40.0","croner":"^10.0.1","fflate":"^0.8.3","grammy":"^1.42.0","undici":"^7.25.0","exceljs":"^4.4.0","prompts":"^2.4.2","linkedom":"^0.18.12","commander":"^12.1.0","minimatch":"^10.2.5","pptxgenjs":"^4.0.1","discord.js":"^14.26.4","cli-highlight":"^2.1.11","@composio/core":"^0.10.0","@slack/web-api":"^7.17.0","@cantoo/pdf-lib":"^2.7.1","@grammyjs/types":"^3.21.0","playwright-core":"^1.59.0","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@pdf-lib/fontkit":"^1.1.1","https-proxy-agent":"^7.0.6","socks-proxy-agent":"^10.1.0","@slack/socket-mode":"^2.0.7","@mozilla/readability":"^0.6.0","@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@whiskeysockets/baileys":"7.0.0-rc13","@anthropic-ai/claude-code":"^2.1.0","@earendil-works/pi-agent-core":"0.79.9","@earendil-works/pi-coding-agent":"0.79.9","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","@types/ws":"^8.18.1","@types/tar":"^6.1.13","typescript":"^5.6.3","@types/node":"^22.10.0","@types/prompts":"^2.4.9","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2"},"_npmOperationalInternal":{"tmp":"tmp/brigade_1.29.5_1786122146253_0.970292572141483","host":"s3://npm-registry-packages-npm-production"}},"1.29.6":{"name":"@spinabot/brigade","version":"1.29.6","keywords":["ai","agent","agents","ai-agent","cli","tui","llm","claude","openai","gemini","ollama","whatsapp","gateway","brigade"],"author":{"name":"Spinabot","email":"hello@brigade-agent.ai"},"license":"MIT","_id":"@spinabot/brigade@1.29.6","maintainers":[{"name":"dev-spinabot","email":"bhasvanth02@gmail.com"},{"name":"spinabot-labs","email":"npm@spinabot.com"}],"homepage":"https://brigade.spinabot.com","bugs":{"url":"https://github.com/spinabot/brigade/issues","email":"hello@brigade-agent.ai"},"bin":{"brigade":"brigade.mjs"},"dist":{"shasum":"c22965930d982287a1b738fd2298c19ee514b06f","tarball":"https://registry.npmjs.org/@spinabot/brigade/-/brigade-1.29.6.tgz","fileCount":2853,"integrity":"sha512-iYOX3n59T4Qx1ZAj79iqo9AZlJr3h3c70eSwIX3vZ0P5uKwMKQ0jqjbjBELIEsFETtP/y/OWtzNis9u7zvAqfA==","signatures":[{"sig":"MEQCIGciX8tHEvG1R+OKWUrVcmGQo4LvQv93Gx3D4+iIkFB7AiAp1nWLLezyCVVyP4V93lbWM7C9U9h5a1YiJku/LIrbQA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spinabot%2fbrigade@1.29.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":21138348},"main":"dist/entry.js","type":"module","types":"./dist/entry.d.ts","engines":{"node":">=22.12"},"exports":{".":"./brigade.mjs","./channel-sdk":{"types":"./dist/channel-sdk.d.ts","import":"./dist/channel-sdk.js"},"./package.json":"./package.json","./extension-sdk":{"types":"./dist/extension-sdk.d.ts","import":"./dist/extension-sdk.js"}},"gitHead":"52aed0d8d0a79f726d6a090916d8c62bb6b2db7e","scripts":{"wa":"node scripts/run-brigade.mjs channels status --channel whatsapp","dev":"node scripts/run-brigade.mjs","tui":"node scripts/run-brigade.mjs tui","auth":"node scripts/run-brigade.mjs auth","logs":"node scripts/run-brigade.mjs logs","test":"node scripts/run-tests.mjs","agent":"node scripts/run-brigade.mjs agent","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","build":"tsc -p tsconfig.build.json","clean":"node -e \"import('node:fs').then(fs => fs.rmSync('dist', { recursive: true, force: true }))\"","login":"node scripts/run-brigade.mjs login","start":"node scripts/run-brigade.mjs","store":"node scripts/run-brigade.mjs store","watch":"tsx --watch src/entry.ts","agents":"node scripts/run-brigade.mjs agents","backup":"node scripts/run-brigade.mjs backup create","doctor":"node scripts/run-brigade.mjs doctor","expose":"node scripts/run-brigade.mjs expose","skills":"node scripts/run-brigade.mjs skills list","status":"node scripts/run-brigade.mjs status","update":"node scripts/run-brigade.mjs update","brigade":"node brigade.mjs","connect":"node scripts/run-brigade.mjs connect","dev:tsx":"tsx src/entry.ts","gateway":"node scripts/run-brigade.mjs gateway","onboard":"node scripts/run-brigade.mjs onboard","pairing":"node scripts/run-brigade.mjs pairing list --channel whatsapp","prepack":"npm run build","tui:bin":"node brigade.mjs tui","upgrade":"node scripts/run-brigade.mjs upgrade","wa:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels":"node scripts/run-brigade.mjs channels","sessions":"node scripts/run-brigade.mjs sessions list","telegram":"node scripts/run-brigade.mjs channels status --channel telegram","wa:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","agent:bin":"node brigade.mjs agent","exec:list":"node scripts/run-brigade.mjs exec list","login:bin":"node brigade.mjs login","postbuild":"node scripts/build-done.mjs","tui:watch":"tsx --watch src/entry.ts tui","typecheck":"tsc -p tsconfig.json --noEmit","wa:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","wa:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","agents:add":"node scripts/run-brigade.mjs agents add","agents:bin":"node brigade.mjs agents","convex:dev":"node scripts/install-convex.mjs && node scripts/convex-dev.mjs","doctor:bin":"node brigade.mjs doctor","extensions":"node scripts/run-brigade.mjs extensions list","status:bin":"node brigade.mjs status","store:mode":"node scripts/run-brigade.mjs store mode show","update:bin":"node brigade.mjs update","agent:watch":"tsx --watch src/entry.ts agent","agents:bind":"node scripts/run-brigade.mjs agents bind","agents:list":"node scripts/run-brigade.mjs agents list","build:watch":"tsc -p tsconfig.build.json --watch","config:file":"node scripts/run-brigade.mjs config file","config:list":"node scripts/run-brigade.mjs config list","connect:bin":"node brigade.mjs connect","convex:push":"node scripts/convex-push.mjs","doctor:json":"node scripts/run-brigade.mjs doctor --json","expose:stop":"node scripts/run-brigade.mjs expose stop","gateway:bin":"node brigade.mjs gateway","logs:follow":"node scripts/run-brigade.mjs logs --follow","onboard:bin":"node brigade.mjs onboard","postinstall":"node scripts/brand-oauth-page.mjs","skills:info":"node scripts/run-brigade.mjs skills info","skills:list":"node scripts/run-brigade.mjs skills list","status:json":"node scripts/run-brigade.mjs status --json","store:reset":"node scripts/run-brigade.mjs store reset","upgrade:bin":"node brigade.mjs upgrade","channels:add":"node scripts/run-brigade.mjs channels add","gateway:stop":"node scripts/run-brigade.mjs gateway stop","pairing:list":"node scripts/run-brigade.mjs pairing list --channel whatsapp","update:check":"node scripts/run-brigade.mjs update --check","agents:delete":"node scripts/run-brigade.mjs agents delete","agents:unbind":"node scripts/run-brigade.mjs agents unbind","backup:create":"node scripts/run-brigade.mjs backup create","backup:verify":"node scripts/run-brigade.mjs backup verify","channels:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels:list":"node scripts/run-brigade.mjs channels list","config:schema":"node scripts/run-brigade.mjs config schema","connect:watch":"tsx --watch src/entry.ts connect","doctor:strict":"node scripts/run-brigade.mjs doctor --strict","expose:status":"node scripts/run-brigade.mjs expose status","gateway:watch":"tsx --watch src/entry.ts gateway","onboard:watch":"tsx --watch src/entry.ts onboard","secrets:audit":"node scripts/run-brigade.mjs secrets audit","sessions:list":"node scripts/run-brigade.mjs sessions list","store:migrate":"node scripts/run-brigade.mjs store migrate","backup:restore":"node scripts/run-brigade.mjs backup restore","channels:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","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","convex:install":"node scripts/install-convex.mjs","extensions:add":"node scripts/run-brigade.mjs extensions add","gateway:status":"node scripts/run-brigade.mjs gateway status","pairing:revoke":"node scripts/run-brigade.mjs pairing revoke --channel whatsapp","store:mode:set":"node scripts/run-brigade.mjs store mode set","telegram:allow":"node scripts/run-brigade.mjs channels allow list --channel telegram","telegram:token":"node scripts/run-brigade.mjs channels add --channel telegram","agents:bindings":"node scripts/run-brigade.mjs agents bindings","channels:enable":"node scripts/run-brigade.mjs channels enable --channel whatsapp","channels:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","channels:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","config:validate":"node scripts/run-brigade.mjs config validate","extensions:init":"node scripts/run-brigade.mjs extensions init","extensions:list":"node scripts/run-brigade.mjs extensions list","gateway:install":"node scripts/run-brigade.mjs gateway install","gateway:restart":"node scripts/run-brigade.mjs gateway restart","pairing:approve":"node scripts/run-brigade.mjs pairing approve --channel whatsapp","store:mode:show":"node scripts/run-brigade.mjs store mode show","telegram:enable":"node scripts/run-brigade.mjs channels enable --channel telegram","telegram:status":"node scripts/run-brigade.mjs channels status --channel telegram","bloody benchmark":"node scripts/run-brigade.mjs bloody benchmark","channels:disable":"node scripts/run-brigade.mjs channels disable --channel whatsapp","sessions:cleanup":"node scripts/run-brigade.mjs sessions cleanup","telegram:disable":"node scripts/run-brigade.mjs channels disable --channel telegram","extensions:doctor":"node scripts/run-brigade.mjs extensions doctor","extensions:remove":"node scripts/run-brigade.mjs extensions remove","gateway:uninstall":"node scripts/run-brigade.mjs gateway uninstall","smoke:strict-zero":"tsx scripts/strict-zero-smoke.mjs","store:reset:purge":"node scripts/run-brigade.mjs store reset --purge-local","channels:allow:add":"node scripts/run-brigade.mjs channels allow add --channel whatsapp","telegram:allow:add":"node scripts/run-brigade.mjs channels allow add --channel telegram","agents:set-identity":"node scripts/run-brigade.mjs agents set-identity","channels:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel whatsapp","telegram:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel telegram"},"_npmUser":{"name":"spinabot-labs","email":"npm@spinabot.com"},"overrides":{"ws":"$ws","exceljs":{"uuid":"^11.1.1"},"discord.js":{"undici":"^6.27.0"},"@discordjs/rest":{"undici":"^6.27.0"},"@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@earendil-works/pi-agent-core":"0.79.9"},"repository":{"url":"git+https://github.com/spinabot/brigade.git","type":"git"},"_npmVersion":"11.16.0","description":"Brigade — your personal AI crew","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.0","tar":"^7.5.15","zod":"^3.23.8","docx":"^9.7.1","jimp":"^1.6.1","jiti":"^2.6.1","yaml":"^2.9.0","chalk":"^5.3.0","json5":"^2.2.3","unpdf":"^1.6.2","cfonts":"^3.3.1","convex":"^1.40.0","croner":"^10.0.1","fflate":"^0.8.3","grammy":"^1.42.0","undici":"^7.25.0","exceljs":"^4.4.0","prompts":"^2.4.2","linkedom":"^0.18.12","commander":"^12.1.0","minimatch":"^10.2.5","pptxgenjs":"^4.0.1","discord.js":"^14.26.4","cli-highlight":"^2.1.11","@composio/core":"^0.10.0","@slack/web-api":"^7.17.0","@cantoo/pdf-lib":"^2.7.1","@grammyjs/types":"^3.21.0","playwright-core":"^1.59.0","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@pdf-lib/fontkit":"^1.1.1","https-proxy-agent":"^7.0.6","socks-proxy-agent":"^10.1.0","@slack/socket-mode":"^2.0.7","@mozilla/readability":"^0.6.0","@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@whiskeysockets/baileys":"7.0.0-rc13","@anthropic-ai/claude-code":"^2.1.0","@earendil-works/pi-agent-core":"0.79.9","@earendil-works/pi-coding-agent":"0.79.9","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","@types/ws":"^8.18.1","@types/tar":"^6.1.13","typescript":"^5.6.3","@types/node":"^22.10.0","@types/prompts":"^2.4.9","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2"},"_npmOperationalInternal":{"tmp":"tmp/brigade_1.29.6_1786230736601_0.3132584222257826","host":"s3://npm-registry-packages-npm-production"}},"1.30.0":{"name":"@spinabot/brigade","version":"1.30.0","keywords":["ai","agent","agents","ai-agent","cli","tui","llm","claude","openai","gemini","ollama","whatsapp","gateway","brigade"],"author":{"name":"Spinabot","email":"hello@brigade-agent.ai"},"license":"MIT","_id":"@spinabot/brigade@1.30.0","maintainers":[{"name":"dev-spinabot","email":"bhasvanth02@gmail.com"},{"name":"spinabot-labs","email":"npm@spinabot.com"}],"homepage":"https://brigade.spinabot.com","bugs":{"url":"https://github.com/spinabot/brigade/issues","email":"hello@brigade-agent.ai"},"bin":{"brigade":"brigade.mjs"},"dist":{"shasum":"9e3cd9aea7779c0878bad2c288aaf120ff0e30bc","tarball":"https://registry.npmjs.org/@spinabot/brigade/-/brigade-1.30.0.tgz","fileCount":2853,"integrity":"sha512-YLrey0Ui1BGgM6sO7NcYcMk7p4jNejv3llPpOv/OAHuqEAccBd50n4lfj7HNxvkQ8O43Sad84S5sYyCjfucpEw==","signatures":[{"sig":"MEUCIQDTI7DBod6d5qR0hUJgJ+ep83MTNfOdAiuiBS6hRs2PugIgHSKibrmxHY6cYRM7U+ovQduGeVFKit4MeBv/yswnpS0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spinabot%2fbrigade@1.30.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":21166725},"main":"dist/entry.js","type":"module","types":"./dist/entry.d.ts","engines":{"node":">=22.12"},"exports":{".":"./brigade.mjs","./channel-sdk":{"types":"./dist/channel-sdk.d.ts","import":"./dist/channel-sdk.js"},"./package.json":"./package.json","./extension-sdk":{"types":"./dist/extension-sdk.d.ts","import":"./dist/extension-sdk.js"}},"gitHead":"b47cae85a0c4726163687a47ad0b8a20d281354e","scripts":{"wa":"node scripts/run-brigade.mjs channels status --channel whatsapp","dev":"node scripts/run-brigade.mjs","tui":"node scripts/run-brigade.mjs tui","auth":"node scripts/run-brigade.mjs auth","logs":"node scripts/run-brigade.mjs logs","test":"node scripts/run-tests.mjs","agent":"node scripts/run-brigade.mjs agent","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","build":"tsc -p tsconfig.build.json","clean":"node -e \"import('node:fs').then(fs => fs.rmSync('dist', { recursive: true, force: true }))\"","login":"node scripts/run-brigade.mjs login","start":"node scripts/run-brigade.mjs","store":"node scripts/run-brigade.mjs store","watch":"tsx --watch src/entry.ts","agents":"node scripts/run-brigade.mjs agents","backup":"node scripts/run-brigade.mjs backup create","doctor":"node scripts/run-brigade.mjs doctor","expose":"node scripts/run-brigade.mjs expose","skills":"node scripts/run-brigade.mjs skills list","status":"node scripts/run-brigade.mjs status","update":"node scripts/run-brigade.mjs update","brigade":"node brigade.mjs","connect":"node scripts/run-brigade.mjs connect","dev:tsx":"tsx src/entry.ts","gateway":"node scripts/run-brigade.mjs gateway","onboard":"node scripts/run-brigade.mjs onboard","pairing":"node scripts/run-brigade.mjs pairing list --channel whatsapp","prepack":"npm run build","tui:bin":"node brigade.mjs tui","upgrade":"node scripts/run-brigade.mjs upgrade","wa:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels":"node scripts/run-brigade.mjs channels","sessions":"node scripts/run-brigade.mjs sessions list","telegram":"node scripts/run-brigade.mjs channels status --channel telegram","wa:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","agent:bin":"node brigade.mjs agent","exec:list":"node scripts/run-brigade.mjs exec list","login:bin":"node brigade.mjs login","postbuild":"node scripts/build-done.mjs","tui:watch":"tsx --watch src/entry.ts tui","typecheck":"tsc -p tsconfig.json --noEmit","wa:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","wa:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","agents:add":"node scripts/run-brigade.mjs agents add","agents:bin":"node brigade.mjs agents","convex:dev":"node scripts/install-convex.mjs && node scripts/convex-dev.mjs","doctor:bin":"node brigade.mjs doctor","extensions":"node scripts/run-brigade.mjs extensions list","status:bin":"node brigade.mjs status","store:mode":"node scripts/run-brigade.mjs store mode show","update:bin":"node brigade.mjs update","agent:watch":"tsx --watch src/entry.ts agent","agents:bind":"node scripts/run-brigade.mjs agents bind","agents:list":"node scripts/run-brigade.mjs agents list","build:watch":"tsc -p tsconfig.build.json --watch","config:file":"node scripts/run-brigade.mjs config file","config:list":"node scripts/run-brigade.mjs config list","connect:bin":"node brigade.mjs connect","convex:push":"node scripts/convex-push.mjs","doctor:json":"node scripts/run-brigade.mjs doctor --json","expose:stop":"node scripts/run-brigade.mjs expose stop","gateway:bin":"node brigade.mjs gateway","logs:follow":"node scripts/run-brigade.mjs logs --follow","onboard:bin":"node brigade.mjs onboard","postinstall":"node scripts/brand-oauth-page.mjs","skills:info":"node scripts/run-brigade.mjs skills info","skills:list":"node scripts/run-brigade.mjs skills list","status:json":"node scripts/run-brigade.mjs status --json","store:reset":"node scripts/run-brigade.mjs store reset","upgrade:bin":"node brigade.mjs upgrade","channels:add":"node scripts/run-brigade.mjs channels add","gateway:stop":"node scripts/run-brigade.mjs gateway stop","pairing:list":"node scripts/run-brigade.mjs pairing list --channel whatsapp","update:check":"node scripts/run-brigade.mjs update --check","agents:delete":"node scripts/run-brigade.mjs agents delete","agents:unbind":"node scripts/run-brigade.mjs agents unbind","backup:create":"node scripts/run-brigade.mjs backup create","backup:verify":"node scripts/run-brigade.mjs backup verify","channels:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels:list":"node scripts/run-brigade.mjs channels list","config:schema":"node scripts/run-brigade.mjs config schema","connect:watch":"tsx --watch src/entry.ts connect","doctor:strict":"node scripts/run-brigade.mjs doctor --strict","expose:status":"node scripts/run-brigade.mjs expose status","gateway:watch":"tsx --watch src/entry.ts gateway","onboard:watch":"tsx --watch src/entry.ts onboard","secrets:audit":"node scripts/run-brigade.mjs secrets audit","sessions:list":"node scripts/run-brigade.mjs sessions list","store:migrate":"node scripts/run-brigade.mjs store migrate","backup:restore":"node scripts/run-brigade.mjs backup restore","channels:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","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","convex:install":"node scripts/install-convex.mjs","extensions:add":"node scripts/run-brigade.mjs extensions add","gateway:status":"node scripts/run-brigade.mjs gateway status","pairing:revoke":"node scripts/run-brigade.mjs pairing revoke --channel whatsapp","store:mode:set":"node scripts/run-brigade.mjs store mode set","telegram:allow":"node scripts/run-brigade.mjs channels allow list --channel telegram","telegram:token":"node scripts/run-brigade.mjs channels add --channel telegram","agents:bindings":"node scripts/run-brigade.mjs agents bindings","channels:enable":"node scripts/run-brigade.mjs channels enable --channel whatsapp","channels:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","channels:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","config:validate":"node scripts/run-brigade.mjs config validate","extensions:init":"node scripts/run-brigade.mjs extensions init","extensions:list":"node scripts/run-brigade.mjs extensions list","gateway:install":"node scripts/run-brigade.mjs gateway install","gateway:restart":"node scripts/run-brigade.mjs gateway restart","pairing:approve":"node scripts/run-brigade.mjs pairing approve --channel whatsapp","store:mode:show":"node scripts/run-brigade.mjs store mode show","telegram:enable":"node scripts/run-brigade.mjs channels enable --channel telegram","telegram:status":"node scripts/run-brigade.mjs channels status --channel telegram","bloody benchmark":"node scripts/run-brigade.mjs bloody benchmark","channels:disable":"node scripts/run-brigade.mjs channels disable --channel whatsapp","sessions:cleanup":"node scripts/run-brigade.mjs sessions cleanup","telegram:disable":"node scripts/run-brigade.mjs channels disable --channel telegram","extensions:doctor":"node scripts/run-brigade.mjs extensions doctor","extensions:remove":"node scripts/run-brigade.mjs extensions remove","gateway:uninstall":"node scripts/run-brigade.mjs gateway uninstall","smoke:strict-zero":"tsx scripts/strict-zero-smoke.mjs","store:reset:purge":"node scripts/run-brigade.mjs store reset --purge-local","channels:allow:add":"node scripts/run-brigade.mjs channels allow add --channel whatsapp","telegram:allow:add":"node scripts/run-brigade.mjs channels allow add --channel telegram","agents:set-identity":"node scripts/run-brigade.mjs agents set-identity","channels:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel whatsapp","telegram:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel telegram"},"_npmUser":{"name":"spinabot-labs","email":"npm@spinabot.com"},"overrides":{"ws":"$ws","exceljs":{"uuid":"^11.1.1"},"discord.js":{"undici":"^6.27.0"},"@discordjs/rest":{"undici":"^6.27.0"},"@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@earendil-works/pi-agent-core":"0.79.9"},"repository":{"url":"git+https://github.com/spinabot/brigade.git","type":"git"},"_npmVersion":"11.16.0","description":"Brigade — your personal AI crew","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.0","tar":"^7.5.15","zod":"^3.23.8","docx":"^9.7.1","jimp":"^1.6.1","jiti":"^2.6.1","yaml":"^2.9.0","chalk":"^5.3.0","json5":"^2.2.3","unpdf":"^1.6.2","cfonts":"^3.3.1","convex":"^1.40.0","croner":"^10.0.1","fflate":"^0.8.3","grammy":"^1.42.0","undici":"^7.25.0","exceljs":"^4.4.0","prompts":"^2.4.2","linkedom":"^0.18.12","commander":"^12.1.0","minimatch":"^10.2.5","pptxgenjs":"^4.0.1","discord.js":"^14.26.4","cli-highlight":"^2.1.11","@composio/core":"^0.10.0","@slack/web-api":"^7.17.0","@cantoo/pdf-lib":"^2.7.1","@grammyjs/types":"^3.21.0","playwright-core":"^1.59.0","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@pdf-lib/fontkit":"^1.1.1","https-proxy-agent":"^7.0.6","socks-proxy-agent":"^10.1.0","@slack/socket-mode":"^2.0.7","@mozilla/readability":"^0.6.0","@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@whiskeysockets/baileys":"7.0.0-rc13","@anthropic-ai/claude-code":"^2.1.0","@earendil-works/pi-agent-core":"0.79.9","@earendil-works/pi-coding-agent":"0.79.9","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","@types/ws":"^8.18.1","@types/tar":"^6.1.13","typescript":"^5.6.3","@types/node":"^22.10.0","@types/prompts":"^2.4.9","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2"},"_npmOperationalInternal":{"tmp":"tmp/brigade_1.30.0_1786232761810_0.9321704569057345","host":"s3://npm-registry-packages-npm-production"}},"1.31.0":{"name":"@spinabot/brigade","version":"1.31.0","keywords":["ai","agent","agents","ai-agent","cli","tui","llm","claude","openai","gemini","ollama","whatsapp","gateway","brigade"],"author":{"name":"Spinabot","email":"hello@brigade-agent.ai"},"license":"MIT","_id":"@spinabot/brigade@1.31.0","maintainers":[{"name":"dev-spinabot","email":"bhasvanth02@gmail.com"},{"name":"spinabot-labs","email":"npm@spinabot.com"}],"homepage":"https://brigade.spinabot.com","bugs":{"url":"https://github.com/spinabot/brigade/issues","email":"hello@brigade-agent.ai"},"bin":{"brigade":"brigade.mjs"},"dist":{"shasum":"8503b1f99350088c42b5ca0c3e7ffcdfc01242fb","tarball":"https://registry.npmjs.org/@spinabot/brigade/-/brigade-1.31.0.tgz","fileCount":2861,"integrity":"sha512-wxzmixmVQuUP9485I46vnRtt6MQ8CLRuzkB+Bpr8cePHy2BMK86XBh2JXUVDIYB4kaXui7JKCKBbaoItbhv6SQ==","signatures":[{"sig":"MEUCIFby3bZtnBL1CXBjev1549cDcCraNiwA34S1ctc3JxEYAiEA+XJOZtnLGtGCA2v2qLEl8X6JYOIH4vWlnLzero7rPng=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spinabot%2fbrigade@1.31.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":21230692},"main":"dist/entry.js","type":"module","types":"./dist/entry.d.ts","engines":{"node":">=22.12"},"exports":{".":"./brigade.mjs","./channel-sdk":{"types":"./dist/channel-sdk.d.ts","import":"./dist/channel-sdk.js"},"./package.json":"./package.json","./extension-sdk":{"types":"./dist/extension-sdk.d.ts","import":"./dist/extension-sdk.js"}},"gitHead":"6839064a1e872971fc52ef7780934d7f46cf31e9","scripts":{"wa":"node scripts/run-brigade.mjs channels status --channel whatsapp","dev":"node scripts/run-brigade.mjs","tui":"node scripts/run-brigade.mjs tui","auth":"node scripts/run-brigade.mjs auth","logs":"node scripts/run-brigade.mjs logs","test":"node scripts/run-tests.mjs","agent":"node scripts/run-brigade.mjs agent","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","build":"tsc -p tsconfig.build.json","clean":"node -e \"import('node:fs').then(fs => fs.rmSync('dist', { recursive: true, force: true }))\"","login":"node scripts/run-brigade.mjs login","start":"node scripts/run-brigade.mjs","store":"node scripts/run-brigade.mjs store","watch":"tsx --watch src/entry.ts","agents":"node scripts/run-brigade.mjs agents","backup":"node scripts/run-brigade.mjs backup create","doctor":"node scripts/run-brigade.mjs doctor","expose":"node scripts/run-brigade.mjs expose","skills":"node scripts/run-brigade.mjs skills list","status":"node scripts/run-brigade.mjs status","update":"node scripts/run-brigade.mjs update","brigade":"node brigade.mjs","connect":"node scripts/run-brigade.mjs connect","dev:tsx":"tsx src/entry.ts","gateway":"node scripts/run-brigade.mjs gateway","onboard":"node scripts/run-brigade.mjs onboard","pairing":"node scripts/run-brigade.mjs pairing list --channel whatsapp","prepack":"npm run build","tui:bin":"node brigade.mjs tui","upgrade":"node scripts/run-brigade.mjs upgrade","wa:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels":"node scripts/run-brigade.mjs channels","sessions":"node scripts/run-brigade.mjs sessions list","telegram":"node scripts/run-brigade.mjs channels status --channel telegram","wa:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","agent:bin":"node brigade.mjs agent","exec:list":"node scripts/run-brigade.mjs exec list","login:bin":"node brigade.mjs login","postbuild":"node scripts/build-done.mjs","tui:watch":"tsx --watch src/entry.ts tui","typecheck":"tsc -p tsconfig.json --noEmit","wa:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","wa:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","agents:add":"node scripts/run-brigade.mjs agents add","agents:bin":"node brigade.mjs agents","convex:dev":"node scripts/install-convex.mjs && node scripts/convex-dev.mjs","doctor:bin":"node brigade.mjs doctor","extensions":"node scripts/run-brigade.mjs extensions list","status:bin":"node brigade.mjs status","store:mode":"node scripts/run-brigade.mjs store mode show","update:bin":"node brigade.mjs update","agent:watch":"tsx --watch src/entry.ts agent","agents:bind":"node scripts/run-brigade.mjs agents bind","agents:list":"node scripts/run-brigade.mjs agents list","build:watch":"tsc -p tsconfig.build.json --watch","config:file":"node scripts/run-brigade.mjs config file","config:list":"node scripts/run-brigade.mjs config list","connect:bin":"node brigade.mjs connect","convex:push":"node scripts/convex-push.mjs","doctor:json":"node scripts/run-brigade.mjs doctor --json","expose:stop":"node scripts/run-brigade.mjs expose stop","gateway:bin":"node brigade.mjs gateway","logs:follow":"node scripts/run-brigade.mjs logs --follow","onboard:bin":"node brigade.mjs onboard","postinstall":"node scripts/brand-oauth-page.mjs","skills:info":"node scripts/run-brigade.mjs skills info","skills:list":"node scripts/run-brigade.mjs skills list","status:json":"node scripts/run-brigade.mjs status --json","store:reset":"node scripts/run-brigade.mjs store reset","upgrade:bin":"node brigade.mjs upgrade","channels:add":"node scripts/run-brigade.mjs channels add","gateway:stop":"node scripts/run-brigade.mjs gateway stop","pairing:list":"node scripts/run-brigade.mjs pairing list --channel whatsapp","update:check":"node scripts/run-brigade.mjs update --check","agents:delete":"node scripts/run-brigade.mjs agents delete","agents:unbind":"node scripts/run-brigade.mjs agents unbind","backup:create":"node scripts/run-brigade.mjs backup create","backup:verify":"node scripts/run-brigade.mjs backup verify","channels:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels:list":"node scripts/run-brigade.mjs channels list","config:schema":"node scripts/run-brigade.mjs config schema","connect:watch":"tsx --watch src/entry.ts connect","doctor:strict":"node scripts/run-brigade.mjs doctor --strict","expose:status":"node scripts/run-brigade.mjs expose status","gateway:watch":"tsx --watch src/entry.ts gateway","onboard:watch":"tsx --watch src/entry.ts onboard","secrets:audit":"node scripts/run-brigade.mjs secrets audit","sessions:list":"node scripts/run-brigade.mjs sessions list","store:migrate":"node scripts/run-brigade.mjs store migrate","backup:restore":"node scripts/run-brigade.mjs backup restore","channels:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","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","convex:install":"node scripts/install-convex.mjs","extensions:add":"node scripts/run-brigade.mjs extensions add","gateway:status":"node scripts/run-brigade.mjs gateway status","pairing:revoke":"node scripts/run-brigade.mjs pairing revoke --channel whatsapp","store:mode:set":"node scripts/run-brigade.mjs store mode set","telegram:allow":"node scripts/run-brigade.mjs channels allow list --channel telegram","telegram:token":"node scripts/run-brigade.mjs channels add --channel telegram","agents:bindings":"node scripts/run-brigade.mjs agents bindings","channels:enable":"node scripts/run-brigade.mjs channels enable --channel whatsapp","channels:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","channels:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","config:validate":"node scripts/run-brigade.mjs config validate","extensions:init":"node scripts/run-brigade.mjs extensions init","extensions:list":"node scripts/run-brigade.mjs extensions list","gateway:install":"node scripts/run-brigade.mjs gateway install","gateway:restart":"node scripts/run-brigade.mjs gateway restart","pairing:approve":"node scripts/run-brigade.mjs pairing approve --channel whatsapp","store:mode:show":"node scripts/run-brigade.mjs store mode show","telegram:enable":"node scripts/run-brigade.mjs channels enable --channel telegram","telegram:status":"node scripts/run-brigade.mjs channels status --channel telegram","bloody benchmark":"node scripts/run-brigade.mjs bloody benchmark","channels:disable":"node scripts/run-brigade.mjs channels disable --channel whatsapp","sessions:cleanup":"node scripts/run-brigade.mjs sessions cleanup","telegram:disable":"node scripts/run-brigade.mjs channels disable --channel telegram","extensions:doctor":"node scripts/run-brigade.mjs extensions doctor","extensions:remove":"node scripts/run-brigade.mjs extensions remove","gateway:uninstall":"node scripts/run-brigade.mjs gateway uninstall","smoke:strict-zero":"tsx scripts/strict-zero-smoke.mjs","store:reset:purge":"node scripts/run-brigade.mjs store reset --purge-local","channels:allow:add":"node scripts/run-brigade.mjs channels allow add --channel whatsapp","telegram:allow:add":"node scripts/run-brigade.mjs channels allow add --channel telegram","agents:set-identity":"node scripts/run-brigade.mjs agents set-identity","channels:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel whatsapp","telegram:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel telegram"},"_npmUser":{"name":"spinabot-labs","email":"npm@spinabot.com"},"overrides":{"ws":"$ws","exceljs":{"uuid":"^11.1.1"},"discord.js":{"undici":"^6.28.0"},"ip-address":"^10.5.0","protobufjs":"^7.6.5","@discordjs/rest":{"undici":"^6.28.0"},"brace-expansion@1":"^1.1.18","brace-expansion@2":"^2.1.4","brace-expansion@5":"^5.0.9","@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@earendil-works/pi-agent-core":"0.79.9","@earendil-works/pi-coding-agent":{"undici":"^8.9.0"}},"repository":{"url":"git+https://github.com/spinabot/brigade.git","type":"git"},"_npmVersion":"11.16.0","description":"Brigade — your personal AI crew","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.0","tar":"^7.5.22","zod":"^3.23.8","docx":"^9.7.1","jimp":"^1.6.1","jiti":"^2.6.1","yaml":"^2.9.0","chalk":"^5.3.0","json5":"^2.2.3","unpdf":"^1.6.2","cfonts":"^3.3.1","convex":"^1.40.0","croner":"^10.0.1","fflate":"^0.8.3","grammy":"^1.42.0","undici":"^7.29.0","exceljs":"^4.4.0","prompts":"^2.4.2","linkedom":"^0.18.12","commander":"^12.1.0","minimatch":"^10.2.5","pptxgenjs":"^4.0.1","discord.js":"^14.26.4","cli-highlight":"^2.1.11","@composio/core":"^0.10.0","@slack/web-api":"^7.17.0","@cantoo/pdf-lib":"^2.7.1","@grammyjs/types":"^3.21.0","playwright-core":"^1.59.0","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@pdf-lib/fontkit":"^1.1.1","https-proxy-agent":"^7.0.6","socks-proxy-agent":"^10.1.0","@slack/socket-mode":"^2.0.7","@mozilla/readability":"^0.6.0","@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@whiskeysockets/baileys":"7.0.0-rc13","@anthropic-ai/claude-code":"^2.1.0","@earendil-works/pi-agent-core":"0.79.9","@earendil-works/pi-coding-agent":"0.79.9","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","@types/ws":"^8.18.1","@types/tar":"^6.1.13","typescript":"^5.6.3","@types/node":"^22.10.0","@types/prompts":"^2.4.9","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2"},"_npmOperationalInternal":{"tmp":"tmp/brigade_1.31.0_1786656559314_0.12450276499445567","host":"s3://npm-registry-packages-npm-production"}},"1.31.1":{"name":"@spinabot/brigade","version":"1.31.1","keywords":["ai","agent","agents","ai-agent","cli","tui","llm","claude","openai","gemini","ollama","whatsapp","gateway","brigade"],"author":{"name":"Spinabot","email":"hello@brigade-agent.ai"},"license":"MIT","_id":"@spinabot/brigade@1.31.1","maintainers":[{"name":"dev-spinabot","email":"bhasvanth02@gmail.com"},{"name":"spinabot-labs","email":"npm@spinabot.com"}],"homepage":"https://brigade.spinabot.com","bugs":{"url":"https://github.com/spinabot/brigade/issues","email":"hello@brigade-agent.ai"},"bin":{"brigade":"brigade.mjs"},"dist":{"shasum":"f91d1a2f5a4ed0043251fdeed6664ffb27e6ad17","tarball":"https://registry.npmjs.org/@spinabot/brigade/-/brigade-1.31.1.tgz","fileCount":2861,"integrity":"sha512-kLK7TS/Fvt7o+dl/mxS1oneqCdbm7ahZiIO6cvDMRSZeKyrQK1mVyRXiHwp3o5mwGOxIKvvrV4hs1zBECuUOzw==","signatures":[{"sig":"MEUCID6ale4jcExpUMV+KAR8FL6tT/U6m4jCF6PgJEmSZVGyAiEAyBXKxQmKoMveEwcPqz1mj+cc0x9pD6Y7bhiXcrWyNEk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spinabot%2fbrigade@1.31.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":21234513},"main":"dist/entry.js","type":"module","types":"./dist/entry.d.ts","engines":{"node":">=22.12"},"exports":{".":"./brigade.mjs","./channel-sdk":{"types":"./dist/channel-sdk.d.ts","import":"./dist/channel-sdk.js"},"./package.json":"./package.json","./extension-sdk":{"types":"./dist/extension-sdk.d.ts","import":"./dist/extension-sdk.js"}},"gitHead":"d0a1674d79615e0a31015c4dcb7f605fc0d93a06","scripts":{"wa":"node scripts/run-brigade.mjs channels status --channel whatsapp","dev":"node scripts/run-brigade.mjs","tui":"node scripts/run-brigade.mjs tui","auth":"node scripts/run-brigade.mjs auth","logs":"node scripts/run-brigade.mjs logs","test":"node scripts/run-tests.mjs","agent":"node scripts/run-brigade.mjs agent","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","build":"tsc -p tsconfig.build.json","clean":"node -e \"import('node:fs').then(fs => fs.rmSync('dist', { recursive: true, force: true }))\"","login":"node scripts/run-brigade.mjs login","start":"node scripts/run-brigade.mjs","store":"node scripts/run-brigade.mjs store","watch":"tsx --watch src/entry.ts","agents":"node scripts/run-brigade.mjs agents","backup":"node scripts/run-brigade.mjs backup create","doctor":"node scripts/run-brigade.mjs doctor","expose":"node scripts/run-brigade.mjs expose","skills":"node scripts/run-brigade.mjs skills list","status":"node scripts/run-brigade.mjs status","update":"node scripts/run-brigade.mjs update","brigade":"node brigade.mjs","connect":"node scripts/run-brigade.mjs connect","dev:tsx":"tsx src/entry.ts","gateway":"node scripts/run-brigade.mjs gateway","onboard":"node scripts/run-brigade.mjs onboard","pairing":"node scripts/run-brigade.mjs pairing list --channel whatsapp","prepack":"npm run build","tui:bin":"node brigade.mjs tui","upgrade":"node scripts/run-brigade.mjs upgrade","wa:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels":"node scripts/run-brigade.mjs channels","sessions":"node scripts/run-brigade.mjs sessions list","telegram":"node scripts/run-brigade.mjs channels status --channel telegram","wa:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","agent:bin":"node brigade.mjs agent","exec:list":"node scripts/run-brigade.mjs exec list","login:bin":"node brigade.mjs login","postbuild":"node scripts/build-done.mjs","tui:watch":"tsx --watch src/entry.ts tui","typecheck":"tsc -p tsconfig.json --noEmit","wa:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","wa:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","agents:add":"node scripts/run-brigade.mjs agents add","agents:bin":"node brigade.mjs agents","convex:dev":"node scripts/install-convex.mjs && node scripts/convex-dev.mjs","doctor:bin":"node brigade.mjs doctor","extensions":"node scripts/run-brigade.mjs extensions list","status:bin":"node brigade.mjs status","store:mode":"node scripts/run-brigade.mjs store mode show","update:bin":"node brigade.mjs update","agent:watch":"tsx --watch src/entry.ts agent","agents:bind":"node scripts/run-brigade.mjs agents bind","agents:list":"node scripts/run-brigade.mjs agents list","build:watch":"tsc -p tsconfig.build.json --watch","config:file":"node scripts/run-brigade.mjs config file","config:list":"node scripts/run-brigade.mjs config list","connect:bin":"node brigade.mjs connect","convex:push":"node scripts/convex-push.mjs","doctor:json":"node scripts/run-brigade.mjs doctor --json","expose:stop":"node scripts/run-brigade.mjs expose stop","gateway:bin":"node brigade.mjs gateway","logs:follow":"node scripts/run-brigade.mjs logs --follow","onboard:bin":"node brigade.mjs onboard","postinstall":"node scripts/brand-oauth-page.mjs","skills:info":"node scripts/run-brigade.mjs skills info","skills:list":"node scripts/run-brigade.mjs skills list","status:json":"node scripts/run-brigade.mjs status --json","store:reset":"node scripts/run-brigade.mjs store reset","upgrade:bin":"node brigade.mjs upgrade","channels:add":"node scripts/run-brigade.mjs channels add","gateway:stop":"node scripts/run-brigade.mjs gateway stop","pairing:list":"node scripts/run-brigade.mjs pairing list --channel whatsapp","update:check":"node scripts/run-brigade.mjs update --check","agents:delete":"node scripts/run-brigade.mjs agents delete","agents:unbind":"node scripts/run-brigade.mjs agents unbind","backup:create":"node scripts/run-brigade.mjs backup create","backup:verify":"node scripts/run-brigade.mjs backup verify","channels:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels:list":"node scripts/run-brigade.mjs channels list","config:schema":"node scripts/run-brigade.mjs config schema","connect:watch":"tsx --watch src/entry.ts connect","doctor:strict":"node scripts/run-brigade.mjs doctor --strict","expose:status":"node scripts/run-brigade.mjs expose status","gateway:watch":"tsx --watch src/entry.ts gateway","onboard:watch":"tsx --watch src/entry.ts onboard","secrets:audit":"node scripts/run-brigade.mjs secrets audit","sessions:list":"node scripts/run-brigade.mjs sessions list","store:migrate":"node scripts/run-brigade.mjs store migrate","backup:restore":"node scripts/run-brigade.mjs backup restore","channels:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","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","convex:install":"node scripts/install-convex.mjs","extensions:add":"node scripts/run-brigade.mjs extensions add","gateway:status":"node scripts/run-brigade.mjs gateway status","pairing:revoke":"node scripts/run-brigade.mjs pairing revoke --channel whatsapp","store:mode:set":"node scripts/run-brigade.mjs store mode set","telegram:allow":"node scripts/run-brigade.mjs channels allow list --channel telegram","telegram:token":"node scripts/run-brigade.mjs channels add --channel telegram","agents:bindings":"node scripts/run-brigade.mjs agents bindings","channels:enable":"node scripts/run-brigade.mjs channels enable --channel whatsapp","channels:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","channels:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","config:validate":"node scripts/run-brigade.mjs config validate","extensions:init":"node scripts/run-brigade.mjs extensions init","extensions:list":"node scripts/run-brigade.mjs extensions list","gateway:install":"node scripts/run-brigade.mjs gateway install","gateway:restart":"node scripts/run-brigade.mjs gateway restart","pairing:approve":"node scripts/run-brigade.mjs pairing approve --channel whatsapp","store:mode:show":"node scripts/run-brigade.mjs store mode show","telegram:enable":"node scripts/run-brigade.mjs channels enable --channel telegram","telegram:status":"node scripts/run-brigade.mjs channels status --channel telegram","bloody benchmark":"node scripts/run-brigade.mjs bloody benchmark","channels:disable":"node scripts/run-brigade.mjs channels disable --channel whatsapp","sessions:cleanup":"node scripts/run-brigade.mjs sessions cleanup","telegram:disable":"node scripts/run-brigade.mjs channels disable --channel telegram","extensions:doctor":"node scripts/run-brigade.mjs extensions doctor","extensions:remove":"node scripts/run-brigade.mjs extensions remove","gateway:uninstall":"node scripts/run-brigade.mjs gateway uninstall","smoke:strict-zero":"tsx scripts/strict-zero-smoke.mjs","store:reset:purge":"node scripts/run-brigade.mjs store reset --purge-local","channels:allow:add":"node scripts/run-brigade.mjs channels allow add --channel whatsapp","telegram:allow:add":"node scripts/run-brigade.mjs channels allow add --channel telegram","agents:set-identity":"node scripts/run-brigade.mjs agents set-identity","channels:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel whatsapp","telegram:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel telegram"},"_npmUser":{"name":"spinabot-labs","email":"npm@spinabot.com"},"overrides":{"ws":"$ws","exceljs":{"uuid":"^11.1.1"},"discord.js":{"undici":"^6.28.0"},"ip-address":"^10.5.0","protobufjs":"^7.6.5","@discordjs/rest":{"undici":"^6.28.0"},"brace-expansion@1":"^1.1.18","brace-expansion@2":"^2.1.4","brace-expansion@5":"^5.0.9","@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@earendil-works/pi-agent-core":"0.79.9","@earendil-works/pi-coding-agent":{"undici":"^8.9.0"}},"repository":{"url":"git+https://github.com/spinabot/brigade.git","type":"git"},"_npmVersion":"11.17.0","description":"Brigade — your personal AI crew","directories":{},"_nodeVersion":"24.19.0","dependencies":{"ws":"^8.21.0","tar":"^7.5.22","zod":"^3.23.8","docx":"^9.7.1","jimp":"^1.6.1","jiti":"^2.6.1","yaml":"^2.9.0","chalk":"^5.3.0","json5":"^2.2.3","unpdf":"^1.6.2","cfonts":"^3.3.1","convex":"^1.40.0","croner":"^10.0.1","fflate":"^0.8.3","grammy":"^1.42.0","undici":"^7.29.0","exceljs":"^4.4.0","prompts":"^2.4.2","linkedom":"^0.18.12","commander":"^12.1.0","minimatch":"^10.2.5","pptxgenjs":"^4.0.1","discord.js":"^14.26.4","cli-highlight":"^2.1.11","@composio/core":"^0.14.1","@slack/web-api":"^7.17.0","@cantoo/pdf-lib":"^2.7.1","@grammyjs/types":"^3.21.0","playwright-core":"^1.59.0","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@pdf-lib/fontkit":"^1.1.1","https-proxy-agent":"^7.0.6","socks-proxy-agent":"^10.1.0","@slack/socket-mode":"^2.0.7","@mozilla/readability":"^0.6.0","@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@whiskeysockets/baileys":"7.0.0-rc13","@anthropic-ai/claude-code":"^2.1.0","@earendil-works/pi-agent-core":"0.79.9","@earendil-works/pi-coding-agent":"0.79.9","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","@types/ws":"^8.18.1","@types/tar":"^6.1.13","typescript":"^5.6.3","@types/node":"^22.10.0","@types/prompts":"^2.4.9","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2"},"_npmOperationalInternal":{"tmp":"tmp/brigade_1.31.1_1787239956470_0.4091421040941121","host":"s3://npm-registry-packages-npm-production"}},"1.31.2":{"name":"@spinabot/brigade","version":"1.31.2","keywords":["ai","agent","agents","ai-agent","cli","tui","llm","claude","openai","gemini","ollama","whatsapp","gateway","brigade"],"author":{"name":"Spinabot","email":"hello@brigade-agent.ai"},"license":"MIT","_id":"@spinabot/brigade@1.31.2","maintainers":[{"name":"dev-spinabot","email":"bhasvanth02@gmail.com"},{"name":"spinabot-labs","email":"npm@spinabot.com"}],"homepage":"https://brigade.spinabot.com","bugs":{"url":"https://github.com/spinabot/brigade/issues","email":"hello@brigade-agent.ai"},"bin":{"brigade":"brigade.mjs"},"dist":{"shasum":"133a1d0081cac94033bdb4ee25258bfbd95ad862","tarball":"https://registry.npmjs.org/@spinabot/brigade/-/brigade-1.31.2.tgz","fileCount":2861,"integrity":"sha512-kcQ+4aOKFeL/H59cvXrXimOM/cxlRdsbtYUpxFNTsoGwCZbeCZMceehAF6638wI0fN/WEUxHClYPPZOVJnGhFQ==","signatures":[{"sig":"MEQCIFH3lm2gZAWj6vyV+n5NaJny6qRZ85xXThn+aV8XJ6AlAiAF3wCXHwaoSsn3FBI7OnDPxb77U7JX95rwW4W7LDRpSw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spinabot%2fbrigade@1.31.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":21252613},"main":"dist/entry.js","type":"module","types":"./dist/entry.d.ts","engines":{"node":">=22.12"},"exports":{".":"./brigade.mjs","./channel-sdk":{"types":"./dist/channel-sdk.d.ts","import":"./dist/channel-sdk.js"},"./package.json":"./package.json","./extension-sdk":{"types":"./dist/extension-sdk.d.ts","import":"./dist/extension-sdk.js"}},"gitHead":"63605d142a3216259863140a76f5578977b2641a","scripts":{"wa":"node scripts/run-brigade.mjs channels status --channel whatsapp","dev":"node scripts/run-brigade.mjs","tui":"node scripts/run-brigade.mjs tui","auth":"node scripts/run-brigade.mjs auth","logs":"node scripts/run-brigade.mjs logs","test":"node scripts/run-tests.mjs","agent":"node scripts/run-brigade.mjs agent","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","build":"tsc -p tsconfig.build.json","clean":"node -e \"import('node:fs').then(fs => fs.rmSync('dist', { recursive: true, force: true }))\"","login":"node scripts/run-brigade.mjs login","start":"node scripts/run-brigade.mjs","store":"node scripts/run-brigade.mjs store","watch":"tsx --watch src/entry.ts","agents":"node scripts/run-brigade.mjs agents","backup":"node scripts/run-brigade.mjs backup create","doctor":"node scripts/run-brigade.mjs doctor","expose":"node scripts/run-brigade.mjs expose","skills":"node scripts/run-brigade.mjs skills list","status":"node scripts/run-brigade.mjs status","update":"node scripts/run-brigade.mjs update","brigade":"node brigade.mjs","connect":"node scripts/run-brigade.mjs connect","dev:tsx":"tsx src/entry.ts","gateway":"node scripts/run-brigade.mjs gateway","onboard":"node scripts/run-brigade.mjs onboard","pairing":"node scripts/run-brigade.mjs pairing list --channel whatsapp","prepack":"npm run build","tui:bin":"node brigade.mjs tui","upgrade":"node scripts/run-brigade.mjs upgrade","wa:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels":"node scripts/run-brigade.mjs channels","sessions":"node scripts/run-brigade.mjs sessions list","telegram":"node scripts/run-brigade.mjs channels status --channel telegram","wa:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","agent:bin":"node brigade.mjs agent","exec:list":"node scripts/run-brigade.mjs exec list","login:bin":"node brigade.mjs login","postbuild":"node scripts/build-done.mjs","tui:watch":"tsx --watch src/entry.ts tui","typecheck":"tsc -p tsconfig.json --noEmit","wa:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","wa:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","agents:add":"node scripts/run-brigade.mjs agents add","agents:bin":"node brigade.mjs agents","convex:dev":"node scripts/install-convex.mjs && node scripts/convex-dev.mjs","doctor:bin":"node brigade.mjs doctor","extensions":"node scripts/run-brigade.mjs extensions list","status:bin":"node brigade.mjs status","store:mode":"node scripts/run-brigade.mjs store mode show","update:bin":"node brigade.mjs update","agent:watch":"tsx --watch src/entry.ts agent","agents:bind":"node scripts/run-brigade.mjs agents bind","agents:list":"node scripts/run-brigade.mjs agents list","build:watch":"tsc -p tsconfig.build.json --watch","config:file":"node scripts/run-brigade.mjs config file","config:list":"node scripts/run-brigade.mjs config list","connect:bin":"node brigade.mjs connect","convex:push":"node scripts/convex-push.mjs","doctor:json":"node scripts/run-brigade.mjs doctor --json","expose:stop":"node scripts/run-brigade.mjs expose stop","gateway:bin":"node brigade.mjs gateway","logs:follow":"node scripts/run-brigade.mjs logs --follow","onboard:bin":"node brigade.mjs onboard","postinstall":"node scripts/brand-oauth-page.mjs","skills:info":"node scripts/run-brigade.mjs skills info","skills:list":"node scripts/run-brigade.mjs skills list","status:json":"node scripts/run-brigade.mjs status --json","store:reset":"node scripts/run-brigade.mjs store reset","upgrade:bin":"node brigade.mjs upgrade","channels:add":"node scripts/run-brigade.mjs channels add","gateway:stop":"node scripts/run-brigade.mjs gateway stop","pairing:list":"node scripts/run-brigade.mjs pairing list --channel whatsapp","update:check":"node scripts/run-brigade.mjs update --check","agents:delete":"node scripts/run-brigade.mjs agents delete","agents:unbind":"node scripts/run-brigade.mjs agents unbind","backup:create":"node scripts/run-brigade.mjs backup create","backup:verify":"node scripts/run-brigade.mjs backup verify","channels:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels:list":"node scripts/run-brigade.mjs channels list","config:schema":"node scripts/run-brigade.mjs config schema","connect:watch":"tsx --watch src/entry.ts connect","doctor:strict":"node scripts/run-brigade.mjs doctor --strict","expose:status":"node scripts/run-brigade.mjs expose status","gateway:watch":"tsx --watch src/entry.ts gateway","onboard:watch":"tsx --watch src/entry.ts onboard","secrets:audit":"node scripts/run-brigade.mjs secrets audit","sessions:list":"node scripts/run-brigade.mjs sessions list","store:migrate":"node scripts/run-brigade.mjs store migrate","backup:restore":"node scripts/run-brigade.mjs backup restore","channels:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","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","convex:install":"node scripts/install-convex.mjs","extensions:add":"node scripts/run-brigade.mjs extensions add","gateway:status":"node scripts/run-brigade.mjs gateway status","pairing:revoke":"node scripts/run-brigade.mjs pairing revoke --channel whatsapp","store:mode:set":"node scripts/run-brigade.mjs store mode set","telegram:allow":"node scripts/run-brigade.mjs channels allow list --channel telegram","telegram:token":"node scripts/run-brigade.mjs channels add --channel telegram","agents:bindings":"node scripts/run-brigade.mjs agents bindings","channels:enable":"node scripts/run-brigade.mjs channels enable --channel whatsapp","channels:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","channels:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","config:validate":"node scripts/run-brigade.mjs config validate","extensions:init":"node scripts/run-brigade.mjs extensions init","extensions:list":"node scripts/run-brigade.mjs extensions list","gateway:install":"node scripts/run-brigade.mjs gateway install","gateway:restart":"node scripts/run-brigade.mjs gateway restart","pairing:approve":"node scripts/run-brigade.mjs pairing approve --channel whatsapp","store:mode:show":"node scripts/run-brigade.mjs store mode show","telegram:enable":"node scripts/run-brigade.mjs channels enable --channel telegram","telegram:status":"node scripts/run-brigade.mjs channels status --channel telegram","bloody benchmark":"node scripts/run-brigade.mjs bloody benchmark","channels:disable":"node scripts/run-brigade.mjs channels disable --channel whatsapp","sessions:cleanup":"node scripts/run-brigade.mjs sessions cleanup","telegram:disable":"node scripts/run-brigade.mjs channels disable --channel telegram","extensions:doctor":"node scripts/run-brigade.mjs extensions doctor","extensions:remove":"node scripts/run-brigade.mjs extensions remove","gateway:uninstall":"node scripts/run-brigade.mjs gateway uninstall","smoke:strict-zero":"tsx scripts/strict-zero-smoke.mjs","store:reset:purge":"node scripts/run-brigade.mjs store reset --purge-local","channels:allow:add":"node scripts/run-brigade.mjs channels allow add --channel whatsapp","telegram:allow:add":"node scripts/run-brigade.mjs channels allow add --channel telegram","agents:set-identity":"node scripts/run-brigade.mjs agents set-identity","channels:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel whatsapp","telegram:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel telegram"},"_npmUser":{"name":"spinabot-labs","email":"npm@spinabot.com"},"overrides":{"ws":"$ws","exceljs":{"uuid":"^11.1.1"},"discord.js":{"undici":"^6.28.0"},"ip-address":"^10.5.0","protobufjs":"^7.6.5","@discordjs/rest":{"undici":"^6.28.0"},"brace-expansion@1":"^1.1.18","brace-expansion@2":"^2.1.4","brace-expansion@5":"^5.0.9","@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@earendil-works/pi-agent-core":"0.79.9","@earendil-works/pi-coding-agent":{"undici":"^8.9.0"}},"repository":{"url":"git+https://github.com/spinabot/brigade.git","type":"git"},"_npmVersion":"11.17.0","description":"Brigade — your personal AI crew","directories":{},"_nodeVersion":"24.19.0","dependencies":{"ws":"^8.21.0","tar":"^7.5.22","zod":"^3.23.8","docx":"^9.7.1","jimp":"^1.6.1","jiti":"^2.6.1","yaml":"^2.9.0","chalk":"^5.3.0","json5":"^2.2.3","unpdf":"^1.6.2","cfonts":"^3.3.1","convex":"^1.40.0","croner":"^10.0.1","fflate":"^0.8.3","grammy":"^1.42.0","undici":"^7.29.0","exceljs":"^4.4.0","prompts":"^2.4.2","linkedom":"^0.18.12","commander":"^12.1.0","minimatch":"^10.2.5","pptxgenjs":"^4.0.1","discord.js":"^14.26.4","cli-highlight":"^2.1.11","@composio/core":"^0.14.1","@slack/web-api":"^7.17.0","@cantoo/pdf-lib":"^2.7.1","@grammyjs/types":"^3.21.0","playwright-core":"^1.59.0","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@pdf-lib/fontkit":"^1.1.1","https-proxy-agent":"^7.0.6","socks-proxy-agent":"^10.1.0","@slack/socket-mode":"^2.0.7","@mozilla/readability":"^0.6.0","@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@whiskeysockets/baileys":"7.0.0-rc13","@anthropic-ai/claude-code":"^2.1.0","@earendil-works/pi-agent-core":"0.79.9","@earendil-works/pi-coding-agent":"0.79.9","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","@types/ws":"^8.18.1","@types/tar":"^6.1.13","typescript":"^5.6.3","@types/node":"^22.10.0","@types/prompts":"^2.4.9","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2"},"_npmOperationalInternal":{"tmp":"tmp/brigade_1.31.2_1787336757475_0.9353542468496987","host":"s3://npm-registry-packages-npm-production"}},"1.31.3":{"name":"@spinabot/brigade","version":"1.31.3","keywords":["ai","agent","agents","ai-agent","cli","tui","llm","claude","openai","gemini","ollama","whatsapp","gateway","brigade"],"author":{"name":"Spinabot","email":"hello@brigade-agent.ai"},"license":"MIT","_id":"@spinabot/brigade@1.31.3","maintainers":[{"name":"dev-spinabot","email":"bhasvanth02@gmail.com"},{"name":"spinabot-labs","email":"npm@spinabot.com"}],"homepage":"https://brigade.spinabot.com","bugs":{"url":"https://github.com/spinabot/brigade/issues","email":"hello@brigade-agent.ai"},"bin":{"brigade":"brigade.mjs"},"dist":{"shasum":"b68860dd9ab2530f6bf8ef1940e2d2db2e863d6f","tarball":"https://registry.npmjs.org/@spinabot/brigade/-/brigade-1.31.3.tgz","fileCount":2861,"integrity":"sha512-7pgt61zDowciempmizxKJX991MYW+YWjfbtjMz6KS950xH9sC7KwYKctYQqatN/1g9I9lXQ/Wn+julG9NFMK/A==","signatures":[{"sig":"MEYCIQDk8t3lHOd7SxPuJqHsi6anGhfUhG3tJye0gFjkgCI6qAIhAK/t5o5X6nvpHN+dVEh0fRp1BuWFFh2/IoNb1NKrXmSv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spinabot%2fbrigade@1.31.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":21259627},"main":"dist/entry.js","type":"module","types":"./dist/entry.d.ts","engines":{"node":">=22.12"},"exports":{".":"./brigade.mjs","./channel-sdk":{"types":"./dist/channel-sdk.d.ts","import":"./dist/channel-sdk.js"},"./package.json":"./package.json","./extension-sdk":{"types":"./dist/extension-sdk.d.ts","import":"./dist/extension-sdk.js"}},"gitHead":"9c85564763b04f97b037d0d02fbb4144e6c860ac","scripts":{"wa":"node scripts/run-brigade.mjs channels status --channel whatsapp","dev":"node scripts/run-brigade.mjs","tui":"node scripts/run-brigade.mjs tui","auth":"node scripts/run-brigade.mjs auth","logs":"node scripts/run-brigade.mjs logs","test":"node scripts/run-tests.mjs","agent":"node scripts/run-brigade.mjs agent","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","build":"tsc -p tsconfig.build.json","clean":"node -e \"import('node:fs').then(fs => fs.rmSync('dist', { recursive: true, force: true }))\"","login":"node scripts/run-brigade.mjs login","start":"node scripts/run-brigade.mjs","store":"node scripts/run-brigade.mjs store","watch":"tsx --watch src/entry.ts","agents":"node scripts/run-brigade.mjs agents","backup":"node scripts/run-brigade.mjs backup create","doctor":"node scripts/run-brigade.mjs doctor","expose":"node scripts/run-brigade.mjs expose","skills":"node scripts/run-brigade.mjs skills list","status":"node scripts/run-brigade.mjs status","update":"node scripts/run-brigade.mjs update","brigade":"node brigade.mjs","connect":"node scripts/run-brigade.mjs connect","dev:tsx":"tsx src/entry.ts","gateway":"node scripts/run-brigade.mjs gateway","onboard":"node scripts/run-brigade.mjs onboard","pairing":"node scripts/run-brigade.mjs pairing list --channel whatsapp","prepack":"npm run build","tui:bin":"node brigade.mjs tui","upgrade":"node scripts/run-brigade.mjs upgrade","wa:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels":"node scripts/run-brigade.mjs channels","sessions":"node scripts/run-brigade.mjs sessions list","telegram":"node scripts/run-brigade.mjs channels status --channel telegram","wa:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","agent:bin":"node brigade.mjs agent","exec:list":"node scripts/run-brigade.mjs exec list","login:bin":"node brigade.mjs login","postbuild":"node scripts/build-done.mjs","tui:watch":"tsx --watch src/entry.ts tui","typecheck":"tsc -p tsconfig.json --noEmit","wa:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","wa:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","agents:add":"node scripts/run-brigade.mjs agents add","agents:bin":"node brigade.mjs agents","convex:dev":"node scripts/install-convex.mjs && node scripts/convex-dev.mjs","doctor:bin":"node brigade.mjs doctor","extensions":"node scripts/run-brigade.mjs extensions list","status:bin":"node brigade.mjs status","store:mode":"node scripts/run-brigade.mjs store mode show","update:bin":"node brigade.mjs update","agent:watch":"tsx --watch src/entry.ts agent","agents:bind":"node scripts/run-brigade.mjs agents bind","agents:list":"node scripts/run-brigade.mjs agents list","build:watch":"tsc -p tsconfig.build.json --watch","config:file":"node scripts/run-brigade.mjs config file","config:list":"node scripts/run-brigade.mjs config list","connect:bin":"node brigade.mjs connect","convex:push":"node scripts/convex-push.mjs","doctor:json":"node scripts/run-brigade.mjs doctor --json","expose:stop":"node scripts/run-brigade.mjs expose stop","gateway:bin":"node brigade.mjs gateway","logs:follow":"node scripts/run-brigade.mjs logs --follow","onboard:bin":"node brigade.mjs onboard","postinstall":"node scripts/brand-oauth-page.mjs","skills:info":"node scripts/run-brigade.mjs skills info","skills:list":"node scripts/run-brigade.mjs skills list","status:json":"node scripts/run-brigade.mjs status --json","store:reset":"node scripts/run-brigade.mjs store reset","upgrade:bin":"node brigade.mjs upgrade","channels:add":"node scripts/run-brigade.mjs channels add","gateway:stop":"node scripts/run-brigade.mjs gateway stop","pairing:list":"node scripts/run-brigade.mjs pairing list --channel whatsapp","update:check":"node scripts/run-brigade.mjs update --check","agents:delete":"node scripts/run-brigade.mjs agents delete","agents:unbind":"node scripts/run-brigade.mjs agents unbind","backup:create":"node scripts/run-brigade.mjs backup create","backup:verify":"node scripts/run-brigade.mjs backup verify","channels:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels:list":"node scripts/run-brigade.mjs channels list","config:schema":"node scripts/run-brigade.mjs config schema","connect:watch":"tsx --watch src/entry.ts connect","doctor:strict":"node scripts/run-brigade.mjs doctor --strict","expose:status":"node scripts/run-brigade.mjs expose status","gateway:watch":"tsx --watch src/entry.ts gateway","onboard:watch":"tsx --watch src/entry.ts onboard","secrets:audit":"node scripts/run-brigade.mjs secrets audit","sessions:list":"node scripts/run-brigade.mjs sessions list","store:migrate":"node scripts/run-brigade.mjs store migrate","backup:restore":"node scripts/run-brigade.mjs backup restore","channels:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","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","convex:install":"node scripts/install-convex.mjs","extensions:add":"node scripts/run-brigade.mjs extensions add","gateway:status":"node scripts/run-brigade.mjs gateway status","pairing:revoke":"node scripts/run-brigade.mjs pairing revoke --channel whatsapp","store:mode:set":"node scripts/run-brigade.mjs store mode set","telegram:allow":"node scripts/run-brigade.mjs channels allow list --channel telegram","telegram:token":"node scripts/run-brigade.mjs channels add --channel telegram","agents:bindings":"node scripts/run-brigade.mjs agents bindings","channels:enable":"node scripts/run-brigade.mjs channels enable --channel whatsapp","channels:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","channels:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","config:validate":"node scripts/run-brigade.mjs config validate","extensions:init":"node scripts/run-brigade.mjs extensions init","extensions:list":"node scripts/run-brigade.mjs extensions list","gateway:install":"node scripts/run-brigade.mjs gateway install","gateway:restart":"node scripts/run-brigade.mjs gateway restart","pairing:approve":"node scripts/run-brigade.mjs pairing approve --channel whatsapp","store:mode:show":"node scripts/run-brigade.mjs store mode show","telegram:enable":"node scripts/run-brigade.mjs channels enable --channel telegram","telegram:status":"node scripts/run-brigade.mjs channels status --channel telegram","bloody benchmark":"node scripts/run-brigade.mjs bloody benchmark","channels:disable":"node scripts/run-brigade.mjs channels disable --channel whatsapp","sessions:cleanup":"node scripts/run-brigade.mjs sessions cleanup","telegram:disable":"node scripts/run-brigade.mjs channels disable --channel telegram","extensions:doctor":"node scripts/run-brigade.mjs extensions doctor","extensions:remove":"node scripts/run-brigade.mjs extensions remove","gateway:uninstall":"node scripts/run-brigade.mjs gateway uninstall","smoke:strict-zero":"tsx scripts/strict-zero-smoke.mjs","store:reset:purge":"node scripts/run-brigade.mjs store reset --purge-local","channels:allow:add":"node scripts/run-brigade.mjs channels allow add --channel whatsapp","telegram:allow:add":"node scripts/run-brigade.mjs channels allow add --channel telegram","agents:set-identity":"node scripts/run-brigade.mjs agents set-identity","channels:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel whatsapp","telegram:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel telegram"},"_npmUser":{"name":"spinabot-labs","email":"npm@spinabot.com"},"overrides":{"ws":"$ws","exceljs":{"uuid":"^11.1.1"},"discord.js":{"undici":"^6.28.0"},"ip-address":"^10.5.0","protobufjs":"^7.6.5","@discordjs/rest":{"undici":"^6.28.0"},"brace-expansion@1":"^1.1.18","brace-expansion@2":"^2.1.4","brace-expansion@5":"^5.0.9","@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@earendil-works/pi-agent-core":"0.79.9","@earendil-works/pi-coding-agent":{"undici":"^8.9.0"}},"repository":{"url":"git+https://github.com/spinabot/brigade.git","type":"git"},"_npmVersion":"11.17.0","description":"Brigade — your personal AI crew","directories":{},"_nodeVersion":"24.19.0","dependencies":{"ws":"^8.21.0","tar":"^7.5.22","zod":"^3.23.8","docx":"^9.7.1","jimp":"^1.6.1","jiti":"^2.6.1","yaml":"^2.9.0","chalk":"^5.3.0","json5":"^2.2.3","unpdf":"^1.6.2","cfonts":"^3.3.1","convex":"^1.40.0","croner":"^10.0.1","fflate":"^0.8.3","grammy":"^1.42.0","undici":"^7.29.0","exceljs":"^4.4.0","prompts":"^2.4.2","linkedom":"^0.18.12","commander":"^12.1.0","minimatch":"^10.2.5","pptxgenjs":"^4.0.1","discord.js":"^14.26.4","cli-highlight":"^2.1.11","@composio/core":"^0.14.1","@slack/web-api":"^7.17.0","@cantoo/pdf-lib":"^2.7.1","@grammyjs/types":"^3.21.0","playwright-core":"^1.59.0","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@pdf-lib/fontkit":"^1.1.1","https-proxy-agent":"^7.0.6","socks-proxy-agent":"^10.1.0","@slack/socket-mode":"^2.0.7","@mozilla/readability":"^0.6.0","@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@whiskeysockets/baileys":"7.0.0-rc13","@anthropic-ai/claude-code":"^2.1.0","@earendil-works/pi-agent-core":"0.79.9","@earendil-works/pi-coding-agent":"0.79.9","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","@types/ws":"^8.18.1","@types/tar":"^6.1.13","typescript":"^5.6.3","@types/node":"^22.10.0","@types/prompts":"^2.4.9","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2"},"_npmOperationalInternal":{"tmp":"tmp/brigade_1.31.3_1787389444695_0.7404373839896616","host":"s3://npm-registry-packages-npm-production"}},"1.31.4":{"name":"@spinabot/brigade","version":"1.31.4","keywords":["ai","agent","agents","ai-agent","cli","tui","llm","claude","openai","gemini","ollama","whatsapp","gateway","brigade"],"author":{"name":"Spinabot","email":"hello@brigade-agent.ai"},"license":"MIT","_id":"@spinabot/brigade@1.31.4","maintainers":[{"name":"dev-spinabot","email":"bhasvanth02@gmail.com"},{"name":"spinabot-labs","email":"npm@spinabot.com"}],"homepage":"https://brigade.spinabot.com","bugs":{"url":"https://github.com/spinabot/brigade/issues","email":"hello@brigade-agent.ai"},"bin":{"brigade":"brigade.mjs"},"dist":{"shasum":"ce24517fbbc03734149c6b1ddf1d21d8dd25718d","tarball":"https://registry.npmjs.org/@spinabot/brigade/-/brigade-1.31.4.tgz","fileCount":2861,"integrity":"sha512-nI+mXo/ozDH5qu+tAu9jX/KF900C1hy4vXHc3DKyHyByxnsArqx6wSv+fd9VrwS3uXTaYOgyMIRPMOzndmI5/g==","signatures":[{"sig":"MEQCIBGVv3O+27eNSjB0uV1K826sdgFIYEBDtfInOGON4UD0AiA4yf9xRnFo3B6HXhDGzUbqDcHcw4GGDaxh5WFK/RxVYg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spinabot%2fbrigade@1.31.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":21261092},"main":"dist/entry.js","type":"module","types":"./dist/entry.d.ts","engines":{"node":">=22.12"},"exports":{".":"./brigade.mjs","./channel-sdk":{"types":"./dist/channel-sdk.d.ts","import":"./dist/channel-sdk.js"},"./package.json":"./package.json","./extension-sdk":{"types":"./dist/extension-sdk.d.ts","import":"./dist/extension-sdk.js"}},"gitHead":"b1a1766f9f275b9adb05163535f86a2695cb065f","scripts":{"wa":"node scripts/run-brigade.mjs channels status --channel whatsapp","dev":"node scripts/run-brigade.mjs","tui":"node scripts/run-brigade.mjs tui","auth":"node scripts/run-brigade.mjs auth","logs":"node scripts/run-brigade.mjs logs","test":"node scripts/run-tests.mjs","agent":"node scripts/run-brigade.mjs agent","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","build":"tsc -p tsconfig.build.json","clean":"node -e \"import('node:fs').then(fs => fs.rmSync('dist', { recursive: true, force: true }))\"","login":"node scripts/run-brigade.mjs login","start":"node scripts/run-brigade.mjs","store":"node scripts/run-brigade.mjs store","watch":"tsx --watch src/entry.ts","agents":"node scripts/run-brigade.mjs agents","backup":"node scripts/run-brigade.mjs backup create","doctor":"node scripts/run-brigade.mjs doctor","expose":"node scripts/run-brigade.mjs expose","skills":"node scripts/run-brigade.mjs skills list","status":"node scripts/run-brigade.mjs status","update":"node scripts/run-brigade.mjs update","brigade":"node brigade.mjs","connect":"node scripts/run-brigade.mjs connect","dev:tsx":"tsx src/entry.ts","gateway":"node scripts/run-brigade.mjs gateway","onboard":"node scripts/run-brigade.mjs onboard","pairing":"node scripts/run-brigade.mjs pairing list --channel whatsapp","prepack":"npm run build","tui:bin":"node brigade.mjs tui","upgrade":"node scripts/run-brigade.mjs upgrade","wa:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels":"node scripts/run-brigade.mjs channels","sessions":"node scripts/run-brigade.mjs sessions list","telegram":"node scripts/run-brigade.mjs channels status --channel telegram","wa:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","agent:bin":"node brigade.mjs agent","exec:list":"node scripts/run-brigade.mjs exec list","login:bin":"node brigade.mjs login","postbuild":"node scripts/build-done.mjs","tui:watch":"tsx --watch src/entry.ts tui","typecheck":"tsc -p tsconfig.json --noEmit","wa:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","wa:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","agents:add":"node scripts/run-brigade.mjs agents add","agents:bin":"node brigade.mjs agents","convex:dev":"node scripts/install-convex.mjs && node scripts/convex-dev.mjs","doctor:bin":"node brigade.mjs doctor","extensions":"node scripts/run-brigade.mjs extensions list","status:bin":"node brigade.mjs status","store:mode":"node scripts/run-brigade.mjs store mode show","update:bin":"node brigade.mjs update","agent:watch":"tsx --watch src/entry.ts agent","agents:bind":"node scripts/run-brigade.mjs agents bind","agents:list":"node scripts/run-brigade.mjs agents list","build:watch":"tsc -p tsconfig.build.json --watch","config:file":"node scripts/run-brigade.mjs config file","config:list":"node scripts/run-brigade.mjs config list","connect:bin":"node brigade.mjs connect","convex:push":"node scripts/convex-push.mjs","doctor:json":"node scripts/run-brigade.mjs doctor --json","expose:stop":"node scripts/run-brigade.mjs expose stop","gateway:bin":"node brigade.mjs gateway","logs:follow":"node scripts/run-brigade.mjs logs --follow","onboard:bin":"node brigade.mjs onboard","postinstall":"node scripts/brand-oauth-page.mjs","skills:info":"node scripts/run-brigade.mjs skills info","skills:list":"node scripts/run-brigade.mjs skills list","status:json":"node scripts/run-brigade.mjs status --json","store:reset":"node scripts/run-brigade.mjs store reset","upgrade:bin":"node brigade.mjs upgrade","channels:add":"node scripts/run-brigade.mjs channels add","gateway:stop":"node scripts/run-brigade.mjs gateway stop","pairing:list":"node scripts/run-brigade.mjs pairing list --channel whatsapp","update:check":"node scripts/run-brigade.mjs update --check","agents:delete":"node scripts/run-brigade.mjs agents delete","agents:unbind":"node scripts/run-brigade.mjs agents unbind","backup:create":"node scripts/run-brigade.mjs backup create","backup:verify":"node scripts/run-brigade.mjs backup verify","channels:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels:list":"node scripts/run-brigade.mjs channels list","config:schema":"node scripts/run-brigade.mjs config schema","connect:watch":"tsx --watch src/entry.ts connect","doctor:strict":"node scripts/run-brigade.mjs doctor --strict","expose:status":"node scripts/run-brigade.mjs expose status","gateway:watch":"tsx --watch src/entry.ts gateway","onboard:watch":"tsx --watch src/entry.ts onboard","secrets:audit":"node scripts/run-brigade.mjs secrets audit","sessions:list":"node scripts/run-brigade.mjs sessions list","store:migrate":"node scripts/run-brigade.mjs store migrate","backup:restore":"node scripts/run-brigade.mjs backup restore","channels:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","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","convex:install":"node scripts/install-convex.mjs","extensions:add":"node scripts/run-brigade.mjs extensions add","gateway:status":"node scripts/run-brigade.mjs gateway status","pairing:revoke":"node scripts/run-brigade.mjs pairing revoke --channel whatsapp","store:mode:set":"node scripts/run-brigade.mjs store mode set","telegram:allow":"node scripts/run-brigade.mjs channels allow list --channel telegram","telegram:token":"node scripts/run-brigade.mjs channels add --channel telegram","agents:bindings":"node scripts/run-brigade.mjs agents bindings","channels:enable":"node scripts/run-brigade.mjs channels enable --channel whatsapp","channels:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","channels:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","config:validate":"node scripts/run-brigade.mjs config validate","extensions:init":"node scripts/run-brigade.mjs extensions init","extensions:list":"node scripts/run-brigade.mjs extensions list","gateway:install":"node scripts/run-brigade.mjs gateway install","gateway:restart":"node scripts/run-brigade.mjs gateway restart","pairing:approve":"node scripts/run-brigade.mjs pairing approve --channel whatsapp","store:mode:show":"node scripts/run-brigade.mjs store mode show","telegram:enable":"node scripts/run-brigade.mjs channels enable --channel telegram","telegram:status":"node scripts/run-brigade.mjs channels status --channel telegram","bloody benchmark":"node scripts/run-brigade.mjs bloody benchmark","channels:disable":"node scripts/run-brigade.mjs channels disable --channel whatsapp","sessions:cleanup":"node scripts/run-brigade.mjs sessions cleanup","telegram:disable":"node scripts/run-brigade.mjs channels disable --channel telegram","extensions:doctor":"node scripts/run-brigade.mjs extensions doctor","extensions:remove":"node scripts/run-brigade.mjs extensions remove","gateway:uninstall":"node scripts/run-brigade.mjs gateway uninstall","smoke:strict-zero":"tsx scripts/strict-zero-smoke.mjs","store:reset:purge":"node scripts/run-brigade.mjs store reset --purge-local","channels:allow:add":"node scripts/run-brigade.mjs channels allow add --channel whatsapp","telegram:allow:add":"node scripts/run-brigade.mjs channels allow add --channel telegram","agents:set-identity":"node scripts/run-brigade.mjs agents set-identity","channels:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel whatsapp","telegram:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel telegram"},"_npmUser":{"name":"spinabot-labs","email":"npm@spinabot.com"},"overrides":{"ws":"$ws","exceljs":{"uuid":"^11.1.1"},"discord.js":{"undici":"^6.28.0"},"ip-address":"^10.5.0","protobufjs":"^7.6.5","@discordjs/rest":{"undici":"^6.28.0"},"brace-expansion@1":"^1.1.18","brace-expansion@2":"^2.1.4","brace-expansion@5":"^5.0.9","@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@earendil-works/pi-agent-core":"0.79.9","@earendil-works/pi-coding-agent":{"undici":"^8.9.0"}},"repository":{"url":"git+https://github.com/spinabot/brigade.git","type":"git"},"_npmVersion":"11.17.0","description":"Brigade — your personal AI crew","directories":{},"_nodeVersion":"24.19.0","dependencies":{"ws":"^8.21.0","tar":"^7.5.22","zod":"^3.23.8","docx":"^9.7.1","jimp":"^1.6.1","jiti":"^2.6.1","yaml":"^2.9.0","chalk":"^5.3.0","json5":"^2.2.3","unpdf":"^1.6.2","cfonts":"^3.3.1","convex":"^1.40.0","croner":"^10.0.1","fflate":"^0.8.3","grammy":"^1.42.0","undici":"^7.29.0","exceljs":"^4.4.0","prompts":"^2.4.2","linkedom":"^0.18.12","commander":"^12.1.0","minimatch":"^10.2.5","pptxgenjs":"^4.0.1","discord.js":"^14.26.4","cli-highlight":"^2.1.11","@composio/core":"^0.14.1","@slack/web-api":"^7.17.0","@cantoo/pdf-lib":"^2.7.1","@grammyjs/types":"^3.21.0","playwright-core":"^1.59.0","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@pdf-lib/fontkit":"^1.1.1","https-proxy-agent":"^7.0.6","socks-proxy-agent":"^10.1.0","@slack/socket-mode":"^2.0.7","@mozilla/readability":"^0.6.0","@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@whiskeysockets/baileys":"7.0.0-rc13","@anthropic-ai/claude-code":"^2.1.0","@earendil-works/pi-agent-core":"0.79.9","@earendil-works/pi-coding-agent":"0.79.9","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","@types/ws":"^8.18.1","@types/tar":"^6.1.13","typescript":"^5.6.3","@types/node":"^22.10.0","@types/prompts":"^2.4.9","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2"},"_npmOperationalInternal":{"tmp":"tmp/brigade_1.31.4_1787391048342_0.1594669873974779","host":"s3://npm-registry-packages-npm-production"}},"1.32.0":{"name":"@spinabot/brigade","version":"1.32.0","keywords":["ai","agent","agents","ai-agent","cli","tui","llm","claude","openai","gemini","ollama","whatsapp","gateway","brigade"],"author":{"name":"Spinabot","email":"hello@brigade-agent.ai"},"license":"MIT","_id":"@spinabot/brigade@1.32.0","maintainers":[{"name":"dev-spinabot","email":"bhasvanth02@gmail.com"},{"name":"spinabot-labs","email":"npm@spinabot.com"}],"homepage":"https://brigade.spinabot.com","bugs":{"url":"https://github.com/spinabot/brigade/issues","email":"hello@brigade-agent.ai"},"bin":{"brigade":"brigade.mjs"},"dist":{"shasum":"be8d9d16521af50ca76760285695f89d785328bf","tarball":"https://registry.npmjs.org/@spinabot/brigade/-/brigade-1.32.0.tgz","fileCount":2865,"integrity":"sha512-epQc/QvNDm0USB58mYbAq+52OyJsTrmR22YAhBeg9QIXlXYRbpZ3cBdYaNkL0YnxIj/k4YVtJmIRtU22IrJsLg==","signatures":[{"sig":"MEQCIAVxwSeHFJJvpjjjsTGyDg1Zd/l9qKYlWNRPjR2nc0M5AiA59oSOPsTpleIEsEQElXTg5sNuEQgM0iyoozCQrEBC8Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spinabot%2fbrigade@1.32.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":21320530},"main":"dist/entry.js","type":"module","types":"./dist/entry.d.ts","engines":{"node":">=22.12"},"exports":{".":"./brigade.mjs","./channel-sdk":{"types":"./dist/channel-sdk.d.ts","import":"./dist/channel-sdk.js"},"./package.json":"./package.json","./extension-sdk":{"types":"./dist/extension-sdk.d.ts","import":"./dist/extension-sdk.js"}},"gitHead":"9fa2d8995762b4522ff6e2684ad6cddba82edddb","scripts":{"wa":"node scripts/run-brigade.mjs channels status --channel whatsapp","dev":"node scripts/run-brigade.mjs","tui":"node scripts/run-brigade.mjs tui","auth":"node scripts/run-brigade.mjs auth","logs":"node scripts/run-brigade.mjs logs","test":"node scripts/run-tests.mjs","agent":"node scripts/run-brigade.mjs agent","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","build":"tsc -p tsconfig.build.json","clean":"node -e \"import('node:fs').then(fs => fs.rmSync('dist', { recursive: true, force: true }))\"","login":"node scripts/run-brigade.mjs login","start":"node scripts/run-brigade.mjs","store":"node scripts/run-brigade.mjs store","watch":"tsx --watch src/entry.ts","agents":"node scripts/run-brigade.mjs agents","backup":"node scripts/run-brigade.mjs backup create","doctor":"node scripts/run-brigade.mjs doctor","expose":"node scripts/run-brigade.mjs expose","skills":"node scripts/run-brigade.mjs skills list","status":"node scripts/run-brigade.mjs status","update":"node scripts/run-brigade.mjs update","brigade":"node brigade.mjs","connect":"node scripts/run-brigade.mjs connect","dev:tsx":"tsx src/entry.ts","gateway":"node scripts/run-brigade.mjs gateway","onboard":"node scripts/run-brigade.mjs onboard","pairing":"node scripts/run-brigade.mjs pairing list --channel whatsapp","prepack":"npm run build","tui:bin":"node brigade.mjs tui","upgrade":"node scripts/run-brigade.mjs upgrade","wa:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels":"node scripts/run-brigade.mjs channels","sessions":"node scripts/run-brigade.mjs sessions list","telegram":"node scripts/run-brigade.mjs channels status --channel telegram","wa:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","agent:bin":"node brigade.mjs agent","exec:list":"node scripts/run-brigade.mjs exec list","login:bin":"node brigade.mjs login","postbuild":"node scripts/build-done.mjs","tui:watch":"tsx --watch src/entry.ts tui","typecheck":"tsc -p tsconfig.json --noEmit","wa:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","wa:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","agents:add":"node scripts/run-brigade.mjs agents add","agents:bin":"node brigade.mjs agents","convex:dev":"node scripts/install-convex.mjs && node scripts/convex-dev.mjs","doctor:bin":"node brigade.mjs doctor","extensions":"node scripts/run-brigade.mjs extensions list","status:bin":"node brigade.mjs status","store:mode":"node scripts/run-brigade.mjs store mode show","update:bin":"node brigade.mjs update","agent:watch":"tsx --watch src/entry.ts agent","agents:bind":"node scripts/run-brigade.mjs agents bind","agents:list":"node scripts/run-brigade.mjs agents list","build:watch":"tsc -p tsconfig.build.json --watch","config:file":"node scripts/run-brigade.mjs config file","config:list":"node scripts/run-brigade.mjs config list","connect:bin":"node brigade.mjs connect","convex:push":"node scripts/convex-push.mjs","doctor:json":"node scripts/run-brigade.mjs doctor --json","expose:stop":"node scripts/run-brigade.mjs expose stop","gateway:bin":"node brigade.mjs gateway","logs:follow":"node scripts/run-brigade.mjs logs --follow","onboard:bin":"node brigade.mjs onboard","postinstall":"node scripts/brand-oauth-page.mjs","skills:info":"node scripts/run-brigade.mjs skills info","skills:list":"node scripts/run-brigade.mjs skills list","status:json":"node scripts/run-brigade.mjs status --json","store:reset":"node scripts/run-brigade.mjs store reset","upgrade:bin":"node brigade.mjs upgrade","channels:add":"node scripts/run-brigade.mjs channels add","gateway:stop":"node scripts/run-brigade.mjs gateway stop","pairing:list":"node scripts/run-brigade.mjs pairing list --channel whatsapp","update:check":"node scripts/run-brigade.mjs update --check","agents:delete":"node scripts/run-brigade.mjs agents delete","agents:unbind":"node scripts/run-brigade.mjs agents unbind","backup:create":"node scripts/run-brigade.mjs backup create","backup:verify":"node scripts/run-brigade.mjs backup verify","channels:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels:list":"node scripts/run-brigade.mjs channels list","config:schema":"node scripts/run-brigade.mjs config schema","connect:watch":"tsx --watch src/entry.ts connect","doctor:strict":"node scripts/run-brigade.mjs doctor --strict","expose:status":"node scripts/run-brigade.mjs expose status","gateway:watch":"tsx --watch src/entry.ts gateway","onboard:watch":"tsx --watch src/entry.ts onboard","secrets:audit":"node scripts/run-brigade.mjs secrets audit","sessions:list":"node scripts/run-brigade.mjs sessions list","store:migrate":"node scripts/run-brigade.mjs store migrate","backup:restore":"node scripts/run-brigade.mjs backup restore","channels:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","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","convex:install":"node scripts/install-convex.mjs","extensions:add":"node scripts/run-brigade.mjs extensions add","gateway:status":"node scripts/run-brigade.mjs gateway status","pairing:revoke":"node scripts/run-brigade.mjs pairing revoke --channel whatsapp","store:mode:set":"node scripts/run-brigade.mjs store mode set","telegram:allow":"node scripts/run-brigade.mjs channels allow list --channel telegram","telegram:token":"node scripts/run-brigade.mjs channels add --channel telegram","agents:bindings":"node scripts/run-brigade.mjs agents bindings","channels:enable":"node scripts/run-brigade.mjs channels enable --channel whatsapp","channels:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","channels:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","config:validate":"node scripts/run-brigade.mjs config validate","extensions:init":"node scripts/run-brigade.mjs extensions init","extensions:list":"node scripts/run-brigade.mjs extensions list","gateway:install":"node scripts/run-brigade.mjs gateway install","gateway:restart":"node scripts/run-brigade.mjs gateway restart","pairing:approve":"node scripts/run-brigade.mjs pairing approve --channel whatsapp","store:mode:show":"node scripts/run-brigade.mjs store mode show","telegram:enable":"node scripts/run-brigade.mjs channels enable --channel telegram","telegram:status":"node scripts/run-brigade.mjs channels status --channel telegram","bloody benchmark":"node scripts/run-brigade.mjs bloody benchmark","channels:disable":"node scripts/run-brigade.mjs channels disable --channel whatsapp","sessions:cleanup":"node scripts/run-brigade.mjs sessions cleanup","telegram:disable":"node scripts/run-brigade.mjs channels disable --channel telegram","extensions:doctor":"node scripts/run-brigade.mjs extensions doctor","extensions:remove":"node scripts/run-brigade.mjs extensions remove","gateway:uninstall":"node scripts/run-brigade.mjs gateway uninstall","smoke:strict-zero":"tsx scripts/strict-zero-smoke.mjs","store:reset:purge":"node scripts/run-brigade.mjs store reset --purge-local","channels:allow:add":"node scripts/run-brigade.mjs channels allow add --channel whatsapp","telegram:allow:add":"node scripts/run-brigade.mjs channels allow add --channel telegram","agents:set-identity":"node scripts/run-brigade.mjs agents set-identity","channels:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel whatsapp","telegram:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel telegram"},"_npmUser":{"name":"spinabot-labs","email":"npm@spinabot.com"},"overrides":{"ws":"$ws","exceljs":{"uuid":"^11.1.1"},"discord.js":{"undici":"^6.28.0"},"ip-address":"^10.5.0","protobufjs":"^7.6.5","@discordjs/rest":{"undici":"^6.28.0"},"brace-expansion@1":"^1.1.18","brace-expansion@2":"^2.1.4","brace-expansion@5":"^5.0.9","@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@earendil-works/pi-agent-core":"0.79.9","@earendil-works/pi-coding-agent":{"undici":"^8.9.0"}},"repository":{"url":"git+https://github.com/spinabot/brigade.git","type":"git"},"_npmVersion":"11.17.0","description":"Brigade — your personal AI crew","directories":{},"_nodeVersion":"24.19.0","dependencies":{"ws":"^8.21.0","tar":"^7.5.22","zod":"^3.23.8","docx":"^9.7.1","jimp":"^1.6.1","jiti":"^2.6.1","yaml":"^2.9.0","chalk":"^5.3.0","json5":"^2.2.3","unpdf":"^1.6.2","cfonts":"^3.3.1","convex":"^1.40.0","croner":"^10.0.1","fflate":"^0.8.3","grammy":"^1.42.0","undici":"^7.29.0","exceljs":"^4.4.0","prompts":"^2.4.2","linkedom":"^0.18.12","commander":"^12.1.0","minimatch":"^10.2.5","pptxgenjs":"^4.0.1","discord.js":"^14.26.4","cli-highlight":"^2.1.11","@composio/core":"^0.14.1","@slack/web-api":"^7.17.0","@cantoo/pdf-lib":"^2.7.1","@grammyjs/types":"^3.21.0","playwright-core":"^1.59.0","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@pdf-lib/fontkit":"^1.1.1","https-proxy-agent":"^7.0.6","socks-proxy-agent":"^10.1.0","@slack/socket-mode":"^2.0.7","@mozilla/readability":"^0.6.0","@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@whiskeysockets/baileys":"7.0.0-rc13","@anthropic-ai/claude-code":"^2.1.0","@earendil-works/pi-agent-core":"0.79.9","@earendil-works/pi-coding-agent":"0.79.9","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","@types/ws":"^8.18.1","@types/tar":"^6.1.13","typescript":"^5.6.3","@types/node":"^22.10.0","@types/prompts":"^2.4.9","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2"},"_npmOperationalInternal":{"tmp":"tmp/brigade_1.32.0_1787423645307_0.8129573409194026","host":"s3://npm-registry-packages-npm-production"}},"1.32.1":{"name":"@spinabot/brigade","version":"1.32.1","keywords":["ai","agent","agents","ai-agent","cli","tui","llm","claude","openai","gemini","ollama","whatsapp","gateway","brigade"],"author":{"name":"Spinabot","email":"hello@brigade-agent.ai"},"license":"MIT","_id":"@spinabot/brigade@1.32.1","maintainers":[{"name":"dev-spinabot","email":"bhasvanth02@gmail.com"},{"name":"spinabot-labs","email":"npm@spinabot.com"}],"homepage":"https://brigade.spinabot.com","bugs":{"url":"https://github.com/spinabot/brigade/issues","email":"hello@brigade-agent.ai"},"bin":{"brigade":"brigade.mjs"},"dist":{"shasum":"5952c42c9e102fa42323e22a7b34907a37d94b3a","tarball":"https://registry.npmjs.org/@spinabot/brigade/-/brigade-1.32.1.tgz","fileCount":2865,"integrity":"sha512-/rTMK3ZuEhI7d+a/8PwDwnWg3TckGqml6b8JDzb5Qo7akc6CG8MT9S9ni15LSKMDVVoG0Iu1ru+lnQysLXA6kA==","signatures":[{"sig":"MEUCIAV9E37Gj5qBB9s+F175A9BBQcVdDO1VJ+SC4wbe4j27AiEAwD7UQfHt5EkCJE4H2trpV1I+OO4BOlDULk7CA7ARYYo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spinabot%2fbrigade@1.32.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":21321389},"main":"dist/entry.js","type":"module","types":"./dist/entry.d.ts","engines":{"node":">=22.12"},"exports":{".":"./brigade.mjs","./channel-sdk":{"types":"./dist/channel-sdk.d.ts","import":"./dist/channel-sdk.js"},"./package.json":"./package.json","./extension-sdk":{"types":"./dist/extension-sdk.d.ts","import":"./dist/extension-sdk.js"}},"gitHead":"9ab0222ebc8d3923a53548b0a870477db2fb80fb","scripts":{"wa":"node scripts/run-brigade.mjs channels status --channel whatsapp","dev":"node scripts/run-brigade.mjs","tui":"node scripts/run-brigade.mjs tui","auth":"node scripts/run-brigade.mjs auth","logs":"node scripts/run-brigade.mjs logs","test":"node scripts/run-tests.mjs","agent":"node scripts/run-brigade.mjs agent","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","build":"tsc -p tsconfig.build.json","clean":"node -e \"import('node:fs').then(fs => fs.rmSync('dist', { recursive: true, force: true }))\"","login":"node scripts/run-brigade.mjs login","start":"node scripts/run-brigade.mjs","store":"node scripts/run-brigade.mjs store","watch":"tsx --watch src/entry.ts","agents":"node scripts/run-brigade.mjs agents","backup":"node scripts/run-brigade.mjs backup create","doctor":"node scripts/run-brigade.mjs doctor","expose":"node scripts/run-brigade.mjs expose","skills":"node scripts/run-brigade.mjs skills list","status":"node scripts/run-brigade.mjs status","update":"node scripts/run-brigade.mjs update","brigade":"node brigade.mjs","connect":"node scripts/run-brigade.mjs connect","dev:tsx":"tsx src/entry.ts","gateway":"node scripts/run-brigade.mjs gateway","onboard":"node scripts/run-brigade.mjs onboard","pairing":"node scripts/run-brigade.mjs pairing list --channel whatsapp","prepack":"npm run build","tui:bin":"node brigade.mjs tui","upgrade":"node scripts/run-brigade.mjs upgrade","wa:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels":"node scripts/run-brigade.mjs channels","sessions":"node scripts/run-brigade.mjs sessions list","telegram":"node scripts/run-brigade.mjs channels status --channel telegram","wa:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","agent:bin":"node brigade.mjs agent","exec:list":"node scripts/run-brigade.mjs exec list","login:bin":"node brigade.mjs login","postbuild":"node scripts/build-done.mjs","tui:watch":"tsx --watch src/entry.ts tui","typecheck":"tsc -p tsconfig.json --noEmit","wa:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","wa:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","agents:add":"node scripts/run-brigade.mjs agents add","agents:bin":"node brigade.mjs agents","convex:dev":"node scripts/install-convex.mjs && node scripts/convex-dev.mjs","doctor:bin":"node brigade.mjs doctor","extensions":"node scripts/run-brigade.mjs extensions list","status:bin":"node brigade.mjs status","store:mode":"node scripts/run-brigade.mjs store mode show","update:bin":"node brigade.mjs update","agent:watch":"tsx --watch src/entry.ts agent","agents:bind":"node scripts/run-brigade.mjs agents bind","agents:list":"node scripts/run-brigade.mjs agents list","build:watch":"tsc -p tsconfig.build.json --watch","config:file":"node scripts/run-brigade.mjs config file","config:list":"node scripts/run-brigade.mjs config list","connect:bin":"node brigade.mjs connect","convex:push":"node scripts/convex-push.mjs","doctor:json":"node scripts/run-brigade.mjs doctor --json","expose:stop":"node scripts/run-brigade.mjs expose stop","gateway:bin":"node brigade.mjs gateway","logs:follow":"node scripts/run-brigade.mjs logs --follow","onboard:bin":"node brigade.mjs onboard","postinstall":"node scripts/brand-oauth-page.mjs","skills:info":"node scripts/run-brigade.mjs skills info","skills:list":"node scripts/run-brigade.mjs skills list","status:json":"node scripts/run-brigade.mjs status --json","store:reset":"node scripts/run-brigade.mjs store reset","upgrade:bin":"node brigade.mjs upgrade","channels:add":"node scripts/run-brigade.mjs channels add","gateway:stop":"node scripts/run-brigade.mjs gateway stop","pairing:list":"node scripts/run-brigade.mjs pairing list --channel whatsapp","update:check":"node scripts/run-brigade.mjs update --check","agents:delete":"node scripts/run-brigade.mjs agents delete","agents:unbind":"node scripts/run-brigade.mjs agents unbind","backup:create":"node scripts/run-brigade.mjs backup create","backup:verify":"node scripts/run-brigade.mjs backup verify","channels:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels:list":"node scripts/run-brigade.mjs channels list","config:schema":"node scripts/run-brigade.mjs config schema","connect:watch":"tsx --watch src/entry.ts connect","doctor:strict":"node scripts/run-brigade.mjs doctor --strict","expose:status":"node scripts/run-brigade.mjs expose status","gateway:watch":"tsx --watch src/entry.ts gateway","onboard:watch":"tsx --watch src/entry.ts onboard","secrets:audit":"node scripts/run-brigade.mjs secrets audit","sessions:list":"node scripts/run-brigade.mjs sessions list","store:migrate":"node scripts/run-brigade.mjs store migrate","backup:restore":"node scripts/run-brigade.mjs backup restore","channels:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","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","convex:install":"node scripts/install-convex.mjs","extensions:add":"node scripts/run-brigade.mjs extensions add","gateway:status":"node scripts/run-brigade.mjs gateway status","pairing:revoke":"node scripts/run-brigade.mjs pairing revoke --channel whatsapp","store:mode:set":"node scripts/run-brigade.mjs store mode set","telegram:allow":"node scripts/run-brigade.mjs channels allow list --channel telegram","telegram:token":"node scripts/run-brigade.mjs channels add --channel telegram","agents:bindings":"node scripts/run-brigade.mjs agents bindings","channels:enable":"node scripts/run-brigade.mjs channels enable --channel whatsapp","channels:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","channels:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","config:validate":"node scripts/run-brigade.mjs config validate","extensions:init":"node scripts/run-brigade.mjs extensions init","extensions:list":"node scripts/run-brigade.mjs extensions list","gateway:install":"node scripts/run-brigade.mjs gateway install","gateway:restart":"node scripts/run-brigade.mjs gateway restart","pairing:approve":"node scripts/run-brigade.mjs pairing approve --channel whatsapp","store:mode:show":"node scripts/run-brigade.mjs store mode show","telegram:enable":"node scripts/run-brigade.mjs channels enable --channel telegram","telegram:status":"node scripts/run-brigade.mjs channels status --channel telegram","bloody benchmark":"node scripts/run-brigade.mjs bloody benchmark","channels:disable":"node scripts/run-brigade.mjs channels disable --channel whatsapp","sessions:cleanup":"node scripts/run-brigade.mjs sessions cleanup","telegram:disable":"node scripts/run-brigade.mjs channels disable --channel telegram","extensions:doctor":"node scripts/run-brigade.mjs extensions doctor","extensions:remove":"node scripts/run-brigade.mjs extensions remove","gateway:uninstall":"node scripts/run-brigade.mjs gateway uninstall","smoke:strict-zero":"tsx scripts/strict-zero-smoke.mjs","store:reset:purge":"node scripts/run-brigade.mjs store reset --purge-local","channels:allow:add":"node scripts/run-brigade.mjs channels allow add --channel whatsapp","telegram:allow:add":"node scripts/run-brigade.mjs channels allow add --channel telegram","agents:set-identity":"node scripts/run-brigade.mjs agents set-identity","channels:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel whatsapp","telegram:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel telegram"},"_npmUser":{"name":"spinabot-labs","email":"npm@spinabot.com"},"overrides":{"ws":"$ws","exceljs":{"uuid":"^11.1.1"},"discord.js":{"undici":"^6.28.0"},"ip-address":"^10.5.0","protobufjs":"^7.6.5","@discordjs/rest":{"undici":"^6.28.0"},"brace-expansion@1":"^1.1.18","brace-expansion@2":"^2.1.4","brace-expansion@5":"^5.0.9","@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@earendil-works/pi-agent-core":"0.79.9","@earendil-works/pi-coding-agent":{"undici":"^8.9.0"}},"repository":{"url":"git+https://github.com/spinabot/brigade.git","type":"git"},"_npmVersion":"11.17.0","description":"Brigade — your personal AI crew","directories":{},"_nodeVersion":"24.19.0","dependencies":{"ws":"^8.21.0","tar":"^7.5.22","zod":"^3.23.8","docx":"^9.7.1","jimp":"^1.6.1","jiti":"^2.6.1","yaml":"^2.9.0","chalk":"^5.3.0","json5":"^2.2.3","unpdf":"^1.6.2","cfonts":"^3.3.1","convex":"^1.40.0","croner":"^10.0.1","fflate":"^0.8.3","grammy":"^1.42.0","undici":"^7.29.0","exceljs":"^4.4.0","prompts":"^2.4.2","linkedom":"^0.18.12","commander":"^12.1.0","minimatch":"^10.2.5","pptxgenjs":"^4.0.1","discord.js":"^14.26.4","cli-highlight":"^2.1.11","@composio/core":"^0.14.1","@slack/web-api":"^7.17.0","@cantoo/pdf-lib":"^2.7.1","@grammyjs/types":"^3.21.0","playwright-core":"^1.59.0","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@pdf-lib/fontkit":"^1.1.1","https-proxy-agent":"^7.0.6","socks-proxy-agent":"^10.1.0","@slack/socket-mode":"^2.0.7","@mozilla/readability":"^0.6.0","@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@whiskeysockets/baileys":"7.0.0-rc13","@anthropic-ai/claude-code":"^2.1.0","@earendil-works/pi-agent-core":"0.79.9","@earendil-works/pi-coding-agent":"0.79.9","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","@types/ws":"^8.18.1","@types/tar":"^6.1.13","typescript":"^5.6.3","@types/node":"^22.10.0","@types/prompts":"^2.4.9","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2"},"_npmOperationalInternal":{"tmp":"tmp/brigade_1.32.1_1787433145366_0.5976739761772363","host":"s3://npm-registry-packages-npm-production"}},"1.33.0":{"name":"@spinabot/brigade","version":"1.33.0","keywords":["ai","agent","agents","ai-agent","cli","tui","llm","claude","openai","gemini","ollama","whatsapp","gateway","brigade"],"author":{"name":"Spinabot","email":"hello@brigade-agent.ai"},"license":"MIT","_id":"@spinabot/brigade@1.33.0","maintainers":[{"name":"dev-spinabot","email":"bhasvanth02@gmail.com"},{"name":"spinabot-labs","email":"npm@spinabot.com"}],"homepage":"https://brigade.spinabot.com","bugs":{"url":"https://github.com/spinabot/brigade/issues","email":"hello@brigade-agent.ai"},"bin":{"brigade":"brigade.mjs"},"dist":{"shasum":"360c3c19874a2199e5b29d3b484cf9ffd060a897","tarball":"https://registry.npmjs.org/@spinabot/brigade/-/brigade-1.33.0.tgz","fileCount":2869,"integrity":"sha512-zhvhLZSuTi2E6WOjOF9JzkksbLFVz1SNiXSN2E8AvqtwD3jPns9RIwo3d0vOe8PnJFsa2MQ8lpvqj6gtxNRbcQ==","signatures":[{"sig":"MEUCIQComYxrXn0LzFzocA7QfUVPfWpGs/jfkeG7hLoaZJUsLgIgEJHkzo6xuUmsV+l1G1OO95ZCo2YNCXyLpJZBdKiS0Ng=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spinabot%2fbrigade@1.33.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":21356845},"main":"dist/entry.js","type":"module","types":"./dist/entry.d.ts","engines":{"node":">=22.12"},"exports":{".":"./brigade.mjs","./channel-sdk":{"types":"./dist/channel-sdk.d.ts","import":"./dist/channel-sdk.js"},"./package.json":"./package.json","./extension-sdk":{"types":"./dist/extension-sdk.d.ts","import":"./dist/extension-sdk.js"}},"gitHead":"e084f08dfb9aafa01e991c738cfd88e4c554ab4d","scripts":{"wa":"node scripts/run-brigade.mjs channels status --channel whatsapp","dev":"node scripts/run-brigade.mjs","tui":"node scripts/run-brigade.mjs tui","auth":"node scripts/run-brigade.mjs auth","logs":"node scripts/run-brigade.mjs logs","test":"node scripts/run-tests.mjs","agent":"node scripts/run-brigade.mjs agent","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","build":"tsc -p tsconfig.build.json","clean":"node -e \"import('node:fs').then(fs => fs.rmSync('dist', { recursive: true, force: true }))\"","login":"node scripts/run-brigade.mjs login","start":"node scripts/run-brigade.mjs","store":"node scripts/run-brigade.mjs store","watch":"tsx --watch src/entry.ts","agents":"node scripts/run-brigade.mjs agents","backup":"node scripts/run-brigade.mjs backup create","doctor":"node scripts/run-brigade.mjs doctor","expose":"node scripts/run-brigade.mjs expose","skills":"node scripts/run-brigade.mjs skills list","status":"node scripts/run-brigade.mjs status","update":"node scripts/run-brigade.mjs update","brigade":"node brigade.mjs","connect":"node scripts/run-brigade.mjs connect","dev:tsx":"tsx src/entry.ts","gateway":"node scripts/run-brigade.mjs gateway","onboard":"node scripts/run-brigade.mjs onboard","pairing":"node scripts/run-brigade.mjs pairing list --channel whatsapp","prepack":"npm run build","tui:bin":"node brigade.mjs tui","upgrade":"node scripts/run-brigade.mjs upgrade","wa:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels":"node scripts/run-brigade.mjs channels","sessions":"node scripts/run-brigade.mjs sessions list","telegram":"node scripts/run-brigade.mjs channels status --channel telegram","wa:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","agent:bin":"node brigade.mjs agent","exec:list":"node scripts/run-brigade.mjs exec list","login:bin":"node brigade.mjs login","postbuild":"node scripts/build-done.mjs","tui:watch":"tsx --watch src/entry.ts tui","typecheck":"tsc -p tsconfig.json --noEmit","wa:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","wa:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","agents:add":"node scripts/run-brigade.mjs agents add","agents:bin":"node brigade.mjs agents","convex:dev":"node scripts/install-convex.mjs && node scripts/convex-dev.mjs","doctor:bin":"node brigade.mjs doctor","extensions":"node scripts/run-brigade.mjs extensions list","status:bin":"node brigade.mjs status","store:mode":"node scripts/run-brigade.mjs store mode show","update:bin":"node brigade.mjs update","agent:watch":"tsx --watch src/entry.ts agent","agents:bind":"node scripts/run-brigade.mjs agents bind","agents:list":"node scripts/run-brigade.mjs agents list","build:watch":"tsc -p tsconfig.build.json --watch","config:file":"node scripts/run-brigade.mjs config file","config:list":"node scripts/run-brigade.mjs config list","connect:bin":"node brigade.mjs connect","convex:push":"node scripts/convex-push.mjs","doctor:json":"node scripts/run-brigade.mjs doctor --json","expose:stop":"node scripts/run-brigade.mjs expose stop","gateway:bin":"node brigade.mjs gateway","logs:follow":"node scripts/run-brigade.mjs logs --follow","onboard:bin":"node brigade.mjs onboard","postinstall":"node scripts/brand-oauth-page.mjs","skills:info":"node scripts/run-brigade.mjs skills info","skills:list":"node scripts/run-brigade.mjs skills list","status:json":"node scripts/run-brigade.mjs status --json","store:reset":"node scripts/run-brigade.mjs store reset","upgrade:bin":"node brigade.mjs upgrade","channels:add":"node scripts/run-brigade.mjs channels add","gateway:stop":"node scripts/run-brigade.mjs gateway stop","pairing:list":"node scripts/run-brigade.mjs pairing list --channel whatsapp","update:check":"node scripts/run-brigade.mjs update --check","agents:delete":"node scripts/run-brigade.mjs agents delete","agents:unbind":"node scripts/run-brigade.mjs agents unbind","backup:create":"node scripts/run-brigade.mjs backup create","backup:verify":"node scripts/run-brigade.mjs backup verify","channels:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels:list":"node scripts/run-brigade.mjs channels list","config:schema":"node scripts/run-brigade.mjs config schema","connect:watch":"tsx --watch src/entry.ts connect","doctor:strict":"node scripts/run-brigade.mjs doctor --strict","expose:status":"node scripts/run-brigade.mjs expose status","gateway:watch":"tsx --watch src/entry.ts gateway","onboard:watch":"tsx --watch src/entry.ts onboard","secrets:audit":"node scripts/run-brigade.mjs secrets audit","sessions:list":"node scripts/run-brigade.mjs sessions list","store:migrate":"node scripts/run-brigade.mjs store migrate","backup:restore":"node scripts/run-brigade.mjs backup restore","channels:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","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","convex:install":"node scripts/install-convex.mjs","extensions:add":"node scripts/run-brigade.mjs extensions add","gateway:status":"node scripts/run-brigade.mjs gateway status","pairing:revoke":"node scripts/run-brigade.mjs pairing revoke --channel whatsapp","store:mode:set":"node scripts/run-brigade.mjs store mode set","telegram:allow":"node scripts/run-brigade.mjs channels allow list --channel telegram","telegram:token":"node scripts/run-brigade.mjs channels add --channel telegram","agents:bindings":"node scripts/run-brigade.mjs agents bindings","channels:enable":"node scripts/run-brigade.mjs channels enable --channel whatsapp","channels:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","channels:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","config:validate":"node scripts/run-brigade.mjs config validate","extensions:init":"node scripts/run-brigade.mjs extensions init","extensions:list":"node scripts/run-brigade.mjs extensions list","gateway:install":"node scripts/run-brigade.mjs gateway install","gateway:restart":"node scripts/run-brigade.mjs gateway restart","pairing:approve":"node scripts/run-brigade.mjs pairing approve --channel whatsapp","store:mode:show":"node scripts/run-brigade.mjs store mode show","telegram:enable":"node scripts/run-brigade.mjs channels enable --channel telegram","telegram:status":"node scripts/run-brigade.mjs channels status --channel telegram","bloody benchmark":"node scripts/run-brigade.mjs bloody benchmark","channels:disable":"node scripts/run-brigade.mjs channels disable --channel whatsapp","sessions:cleanup":"node scripts/run-brigade.mjs sessions cleanup","telegram:disable":"node scripts/run-brigade.mjs channels disable --channel telegram","extensions:doctor":"node scripts/run-brigade.mjs extensions doctor","extensions:remove":"node scripts/run-brigade.mjs extensions remove","gateway:uninstall":"node scripts/run-brigade.mjs gateway uninstall","smoke:strict-zero":"tsx scripts/strict-zero-smoke.mjs","store:reset:purge":"node scripts/run-brigade.mjs store reset --purge-local","channels:allow:add":"node scripts/run-brigade.mjs channels allow add --channel whatsapp","telegram:allow:add":"node scripts/run-brigade.mjs channels allow add --channel telegram","agents:set-identity":"node scripts/run-brigade.mjs agents set-identity","channels:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel whatsapp","telegram:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel telegram"},"_npmUser":{"name":"spinabot-labs","email":"npm@spinabot.com"},"overrides":{"ws":"$ws","exceljs":{"uuid":"^11.1.1"},"discord.js":{"undici":"^6.28.0"},"ip-address":"^10.5.0","protobufjs":"^7.6.5","@discordjs/rest":{"undici":"^6.28.0"},"brace-expansion@1":"^1.1.18","brace-expansion@2":"^2.1.4","brace-expansion@5":"^5.0.9","@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@earendil-works/pi-agent-core":"0.79.9","@earendil-works/pi-coding-agent":{"undici":"^8.9.0"}},"repository":{"url":"git+https://github.com/spinabot/brigade.git","type":"git"},"_npmVersion":"11.17.0","description":"Brigade — your personal AI crew","directories":{},"_nodeVersion":"24.19.0","dependencies":{"ws":"^8.21.0","tar":"^7.5.22","zod":"^3.23.8","docx":"^9.7.1","jimp":"^1.6.1","jiti":"^2.6.1","yaml":"^2.9.0","chalk":"^5.3.0","json5":"^2.2.3","unpdf":"^1.6.2","cfonts":"^3.3.1","convex":"^1.40.0","croner":"^10.0.1","fflate":"^0.8.3","grammy":"^1.42.0","undici":"^7.29.0","exceljs":"^4.4.0","prompts":"^2.4.2","linkedom":"^0.18.12","commander":"^12.1.0","minimatch":"^10.2.5","pptxgenjs":"^4.0.1","discord.js":"^14.26.4","cli-highlight":"^2.1.11","@composio/core":"^0.14.1","@slack/web-api":"^7.17.0","@cantoo/pdf-lib":"^2.7.1","@grammyjs/types":"^3.21.0","playwright-core":"^1.59.0","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@pdf-lib/fontkit":"^1.1.1","https-proxy-agent":"^7.0.6","socks-proxy-agent":"^10.1.0","@slack/socket-mode":"^2.0.7","@mozilla/readability":"^0.6.0","@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@whiskeysockets/baileys":"7.0.0-rc13","@anthropic-ai/claude-code":"^2.1.0","@earendil-works/pi-agent-core":"0.79.9","@earendil-works/pi-coding-agent":"0.79.9","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","@types/ws":"^8.18.1","@types/tar":"^6.1.13","typescript":"^5.6.3","@types/node":"^22.10.0","@types/prompts":"^2.4.9","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2"},"_npmOperationalInternal":{"tmp":"tmp/brigade_1.33.0_1787845076685_0.8123061717677769","host":"s3://npm-registry-packages-npm-production"}},"1.34.0":{"name":"@spinabot/brigade","version":"1.34.0","keywords":["ai","agent","agents","ai-agent","cli","tui","llm","claude","openai","gemini","ollama","whatsapp","gateway","brigade"],"author":{"name":"Spinabot","email":"hello@brigade-agent.ai"},"license":"MIT","_id":"@spinabot/brigade@1.34.0","maintainers":[{"name":"dev-spinabot","email":"bhasvanth02@gmail.com"},{"name":"spinabot-labs","email":"npm@spinabot.com"}],"homepage":"https://brigade.spinabot.com","bugs":{"url":"https://github.com/spinabot/brigade/issues","email":"hello@brigade-agent.ai"},"bin":{"brigade":"brigade.mjs"},"dist":{"shasum":"a9ac3428c3005a6b3693c9099d39ef284269e39c","tarball":"https://registry.npmjs.org/@spinabot/brigade/-/brigade-1.34.0.tgz","fileCount":2973,"integrity":"sha512-ue/FttByv5RgoEMNA7aIJ62V2lHS9NGxQR/5raq7sDRllSINhUQUzpb/PBuCPkCgAVsJMycydmlVEQ4r+RdQjQ==","signatures":[{"sig":"MEQCIBubPXRVF+vWHTXKQBGyHjDiRwq8zshGS9YypBT6QH2yAiBZw7AHG4imGGCFvw5j6hmHn2kH62kpDQyyOmI70n+xfw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spinabot%2fbrigade@1.34.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22158722},"main":"dist/entry.js","type":"module","types":"./dist/entry.d.ts","engines":{"node":">=22.12"},"exports":{".":"./brigade.mjs","./channel-sdk":{"types":"./dist/channel-sdk.d.ts","import":"./dist/channel-sdk.js"},"./package.json":"./package.json","./extension-sdk":{"types":"./dist/extension-sdk.d.ts","import":"./dist/extension-sdk.js"}},"gitHead":"dad0c68fd1af29f58b0c69cc5e5e50cc974cc40a","scripts":{"wa":"node scripts/run-brigade.mjs channels status --channel whatsapp","dev":"node scripts/run-brigade.mjs","tui":"node scripts/run-brigade.mjs tui","auth":"node scripts/run-brigade.mjs auth","logs":"node scripts/run-brigade.mjs logs","test":"node scripts/run-tests.mjs","agent":"node scripts/run-brigade.mjs agent","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","build":"tsc -p tsconfig.build.json","clean":"node -e \"import('node:fs').then(fs => fs.rmSync('dist', { recursive: true, force: true }))\"","login":"node scripts/run-brigade.mjs login","start":"node scripts/run-brigade.mjs","store":"node scripts/run-brigade.mjs store","watch":"tsx --watch src/entry.ts","agents":"node scripts/run-brigade.mjs agents","backup":"node scripts/run-brigade.mjs backup create","doctor":"node scripts/run-brigade.mjs doctor","expose":"node scripts/run-brigade.mjs expose","skills":"node scripts/run-brigade.mjs skills list","status":"node scripts/run-brigade.mjs status","update":"node scripts/run-brigade.mjs update","brigade":"node brigade.mjs","connect":"node scripts/run-brigade.mjs connect","dev:tsx":"tsx src/entry.ts","gateway":"node scripts/run-brigade.mjs gateway","onboard":"node scripts/run-brigade.mjs onboard","pairing":"node scripts/run-brigade.mjs pairing list --channel whatsapp","prepack":"npm run build","tui:bin":"node brigade.mjs tui","upgrade":"node scripts/run-brigade.mjs upgrade","wa:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels":"node scripts/run-brigade.mjs channels","sessions":"node scripts/run-brigade.mjs sessions list","telegram":"node scripts/run-brigade.mjs channels status --channel telegram","wa:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","agent:bin":"node brigade.mjs agent","exec:list":"node scripts/run-brigade.mjs exec list","login:bin":"node brigade.mjs login","postbuild":"node scripts/build-done.mjs","tui:watch":"tsx --watch src/entry.ts tui","typecheck":"tsc -p tsconfig.json --noEmit","wa:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","wa:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","agents:add":"node scripts/run-brigade.mjs agents add","agents:bin":"node brigade.mjs agents","convex:dev":"node scripts/install-convex.mjs && node scripts/convex-dev.mjs","doctor:bin":"node brigade.mjs doctor","extensions":"node scripts/run-brigade.mjs extensions list","status:bin":"node brigade.mjs status","store:mode":"node scripts/run-brigade.mjs store mode show","update:bin":"node brigade.mjs update","agent:watch":"tsx --watch src/entry.ts agent","agents:bind":"node scripts/run-brigade.mjs agents bind","agents:list":"node scripts/run-brigade.mjs agents list","build:watch":"tsc -p tsconfig.build.json --watch","config:file":"node scripts/run-brigade.mjs config file","config:list":"node scripts/run-brigade.mjs config list","connect:bin":"node brigade.mjs connect","convex:push":"node scripts/convex-push.mjs","doctor:json":"node scripts/run-brigade.mjs doctor --json","expose:stop":"node scripts/run-brigade.mjs expose stop","gateway:bin":"node brigade.mjs gateway","logs:follow":"node scripts/run-brigade.mjs logs --follow","onboard:bin":"node brigade.mjs onboard","postinstall":"node scripts/brand-oauth-page.mjs","skills:info":"node scripts/run-brigade.mjs skills info","skills:list":"node scripts/run-brigade.mjs skills list","status:json":"node scripts/run-brigade.mjs status --json","store:reset":"node scripts/run-brigade.mjs store reset","upgrade:bin":"node brigade.mjs upgrade","channels:add":"node scripts/run-brigade.mjs channels add","gateway:stop":"node scripts/run-brigade.mjs gateway stop","pairing:list":"node scripts/run-brigade.mjs pairing list --channel whatsapp","update:check":"node scripts/run-brigade.mjs update --check","agents:delete":"node scripts/run-brigade.mjs agents delete","agents:unbind":"node scripts/run-brigade.mjs agents unbind","backup:create":"node scripts/run-brigade.mjs backup create","backup:verify":"node scripts/run-brigade.mjs backup verify","channels:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels:list":"node scripts/run-brigade.mjs channels list","config:schema":"node scripts/run-brigade.mjs config schema","connect:watch":"tsx --watch src/entry.ts connect","doctor:strict":"node scripts/run-brigade.mjs doctor --strict","expose:status":"node scripts/run-brigade.mjs expose status","gateway:watch":"tsx --watch src/entry.ts gateway","onboard:watch":"tsx --watch src/entry.ts onboard","secrets:audit":"node scripts/run-brigade.mjs secrets audit","sessions:list":"node scripts/run-brigade.mjs sessions list","store:migrate":"node scripts/run-brigade.mjs store migrate","test:mutation":"node scripts/mutation-check.mjs","backup:restore":"node scripts/run-brigade.mjs backup restore","channels:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","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","convex:install":"node scripts/install-convex.mjs","extensions:add":"node scripts/run-brigade.mjs extensions add","gateway:status":"node scripts/run-brigade.mjs gateway status","pairing:revoke":"node scripts/run-brigade.mjs pairing revoke --channel whatsapp","store:mode:set":"node scripts/run-brigade.mjs store mode set","telegram:allow":"node scripts/run-brigade.mjs channels allow list --channel telegram","telegram:token":"node scripts/run-brigade.mjs channels add --channel telegram","agents:bindings":"node scripts/run-brigade.mjs agents bindings","channels:enable":"node scripts/run-brigade.mjs channels enable --channel whatsapp","channels:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","channels:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","config:validate":"node scripts/run-brigade.mjs config validate","extensions:init":"node scripts/run-brigade.mjs extensions init","extensions:list":"node scripts/run-brigade.mjs extensions list","gateway:install":"node scripts/run-brigade.mjs gateway install","gateway:restart":"node scripts/run-brigade.mjs gateway restart","pairing:approve":"node scripts/run-brigade.mjs pairing approve --channel whatsapp","store:mode:show":"node scripts/run-brigade.mjs store mode show","telegram:enable":"node scripts/run-brigade.mjs channels enable --channel telegram","telegram:status":"node scripts/run-brigade.mjs channels status --channel telegram","bloody benchmark":"node scripts/run-brigade.mjs bloody benchmark","channels:disable":"node scripts/run-brigade.mjs channels disable --channel whatsapp","sessions:cleanup":"node scripts/run-brigade.mjs sessions cleanup","telegram:disable":"node scripts/run-brigade.mjs channels disable --channel telegram","extensions:doctor":"node scripts/run-brigade.mjs extensions doctor","extensions:remove":"node scripts/run-brigade.mjs extensions remove","gateway:uninstall":"node scripts/run-brigade.mjs gateway uninstall","smoke:strict-zero":"tsx scripts/strict-zero-smoke.mjs","store:reset:purge":"node scripts/run-brigade.mjs store reset --purge-local","channels:allow:add":"node scripts/run-brigade.mjs channels allow add --channel whatsapp","telegram:allow:add":"node scripts/run-brigade.mjs channels allow add --channel telegram","agents:set-identity":"node scripts/run-brigade.mjs agents set-identity","channels:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel whatsapp","telegram:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel telegram"},"_npmUser":{"name":"spinabot-labs","email":"npm@spinabot.com"},"overrides":{"ws":"$ws","exceljs":{"uuid":"^11.1.1"},"discord.js":{"undici":"^6.28.0"},"ip-address":"^10.5.0","protobufjs":"^7.6.5","@discordjs/rest":{"undici":"^6.28.0"},"brace-expansion@1":"^1.1.18","brace-expansion@2":"^2.1.4","brace-expansion@5":"^5.0.9","@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@earendil-works/pi-agent-core":"0.79.9","@earendil-works/pi-coding-agent":{"undici":"^8.9.0"}},"repository":{"url":"git+https://github.com/spinabot/brigade.git","type":"git"},"_npmVersion":"11.17.0","description":"Brigade — your personal AI crew","directories":{},"_nodeVersion":"24.19.0","dependencies":{"ws":"^8.21.0","tar":"^7.5.22","zod":"^3.23.8","docx":"^9.7.1","jimp":"^1.6.1","jiti":"^2.6.1","yaml":"^2.9.0","chalk":"^5.3.0","json5":"^2.2.3","unpdf":"^1.6.2","cfonts":"^3.3.1","convex":"^1.40.0","croner":"^10.0.1","fflate":"^0.8.3","grammy":"^1.42.0","undici":"^7.29.0","exceljs":"^4.4.0","prompts":"^2.4.2","linkedom":"^0.18.12","commander":"^12.1.0","minimatch":"^10.2.5","pptxgenjs":"^4.0.1","discord.js":"^14.26.4","cli-highlight":"^2.1.11","@composio/core":"^0.14.1","@slack/web-api":"^7.17.0","@cantoo/pdf-lib":"^2.7.1","@grammyjs/types":"^3.21.0","playwright-core":"^1.59.0","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@pdf-lib/fontkit":"^1.1.1","https-proxy-agent":"^7.0.6","socks-proxy-agent":"^10.1.0","@slack/socket-mode":"^2.0.7","@mozilla/readability":"^0.6.0","@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@whiskeysockets/baileys":"7.0.0-rc13","@anthropic-ai/claude-code":"^2.1.0","@earendil-works/pi-agent-core":"0.79.9","@earendil-works/pi-coding-agent":"0.79.9","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","@types/ws":"^8.18.1","@types/tar":"^6.1.13","typescript":"^5.6.3","@types/node":"^22.10.0","@types/prompts":"^2.4.9","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2"},"_npmOperationalInternal":{"tmp":"tmp/brigade_1.34.0_1788154003581_0.3167356623651225","host":"s3://npm-registry-packages-npm-production"}},"1.35.0":{"name":"@spinabot/brigade","version":"1.35.0","keywords":["ai","agent","agents","ai-agent","cli","tui","llm","claude","openai","gemini","ollama","whatsapp","gateway","brigade"],"author":{"name":"Spinabot","email":"hello@brigade-agent.ai"},"license":"MIT","_id":"@spinabot/brigade@1.35.0","maintainers":[{"name":"dev-spinabot","email":"bhasvanth02@gmail.com"},{"name":"spinabot-labs","email":"npm@spinabot.com"}],"homepage":"https://brigade.spinabot.com","bugs":{"url":"https://github.com/spinabot/brigade/issues","email":"hello@brigade-agent.ai"},"bin":{"brigade":"brigade.mjs"},"dist":{"shasum":"c8ce8216b7230b02834d2bbaf1927c2bc668029f","tarball":"https://registry.npmjs.org/@spinabot/brigade/-/brigade-1.35.0.tgz","fileCount":2977,"integrity":"sha512-itSLTdKn9WXNvwUYJX+k7T0z5lvAXjcY2IWmEKFcYJZCqShV+PxpEUWdOmNOzZHUeyNp0vIJkAmxy0XQDazVFQ==","signatures":[{"sig":"MEQCIHkOCmC9l/aZaiWsrFMvWpfkXV3Aykv3ehaO9c6pJ5EXAiAdTkBA89oJ7ZuOz6biLYm3KPRwOjxmAKmNvo0Pf5uixw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spinabot%2fbrigade@1.35.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22225235},"main":"dist/entry.js","type":"module","types":"./dist/entry.d.ts","engines":{"node":">=22.12"},"exports":{".":"./brigade.mjs","./channel-sdk":{"types":"./dist/channel-sdk.d.ts","import":"./dist/channel-sdk.js"},"./package.json":"./package.json","./extension-sdk":{"types":"./dist/extension-sdk.d.ts","import":"./dist/extension-sdk.js"}},"gitHead":"5c36f3784aa630c18eeafab2929599faefbda54e","scripts":{"wa":"node scripts/run-brigade.mjs channels status --channel whatsapp","dev":"node scripts/run-brigade.mjs","tui":"node scripts/run-brigade.mjs tui","auth":"node scripts/run-brigade.mjs auth","logs":"node scripts/run-brigade.mjs logs","test":"node scripts/run-tests.mjs","agent":"node scripts/run-brigade.mjs agent","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","build":"tsc -p tsconfig.build.json","clean":"node -e \"import('node:fs').then(fs => fs.rmSync('dist', { recursive: true, force: true }))\"","login":"node scripts/run-brigade.mjs login","start":"node scripts/run-brigade.mjs","store":"node scripts/run-brigade.mjs store","watch":"tsx --watch src/entry.ts","agents":"node scripts/run-brigade.mjs agents","backup":"node scripts/run-brigade.mjs backup create","doctor":"node scripts/run-brigade.mjs doctor","expose":"node scripts/run-brigade.mjs expose","skills":"node scripts/run-brigade.mjs skills list","status":"node scripts/run-brigade.mjs status","update":"node scripts/run-brigade.mjs update","brigade":"node brigade.mjs","connect":"node scripts/run-brigade.mjs connect","dev:tsx":"tsx src/entry.ts","gateway":"node scripts/run-brigade.mjs gateway","onboard":"node scripts/run-brigade.mjs onboard","pairing":"node scripts/run-brigade.mjs pairing list --channel whatsapp","prepack":"npm run build","tui:bin":"node brigade.mjs tui","upgrade":"node scripts/run-brigade.mjs upgrade","wa:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels":"node scripts/run-brigade.mjs channels","sessions":"node scripts/run-brigade.mjs sessions list","telegram":"node scripts/run-brigade.mjs channels status --channel telegram","wa:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","agent:bin":"node brigade.mjs agent","exec:list":"node scripts/run-brigade.mjs exec list","login:bin":"node brigade.mjs login","postbuild":"node scripts/build-done.mjs","tui:watch":"tsx --watch src/entry.ts tui","typecheck":"tsc -p tsconfig.json --noEmit","wa:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","wa:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","agents:add":"node scripts/run-brigade.mjs agents add","agents:bin":"node brigade.mjs agents","convex:dev":"node scripts/install-convex.mjs && node scripts/convex-dev.mjs","doctor:bin":"node brigade.mjs doctor","extensions":"node scripts/run-brigade.mjs extensions list","status:bin":"node brigade.mjs status","store:mode":"node scripts/run-brigade.mjs store mode show","update:bin":"node brigade.mjs update","agent:watch":"tsx --watch src/entry.ts agent","agents:bind":"node scripts/run-brigade.mjs agents bind","agents:list":"node scripts/run-brigade.mjs agents list","build:watch":"tsc -p tsconfig.build.json --watch","config:file":"node scripts/run-brigade.mjs config file","config:list":"node scripts/run-brigade.mjs config list","connect:bin":"node brigade.mjs connect","convex:push":"node scripts/convex-push.mjs","doctor:json":"node scripts/run-brigade.mjs doctor --json","expose:stop":"node scripts/run-brigade.mjs expose stop","gateway:bin":"node brigade.mjs gateway","logs:follow":"node scripts/run-brigade.mjs logs --follow","onboard:bin":"node brigade.mjs onboard","postinstall":"node scripts/brand-oauth-page.mjs","skills:info":"node scripts/run-brigade.mjs skills info","skills:list":"node scripts/run-brigade.mjs skills list","status:json":"node scripts/run-brigade.mjs status --json","store:reset":"node scripts/run-brigade.mjs store reset","upgrade:bin":"node brigade.mjs upgrade","channels:add":"node scripts/run-brigade.mjs channels add","gateway:stop":"node scripts/run-brigade.mjs gateway stop","pairing:list":"node scripts/run-brigade.mjs pairing list --channel whatsapp","update:check":"node scripts/run-brigade.mjs update --check","agents:delete":"node scripts/run-brigade.mjs agents delete","agents:unbind":"node scripts/run-brigade.mjs agents unbind","backup:create":"node scripts/run-brigade.mjs backup create","backup:verify":"node scripts/run-brigade.mjs backup verify","channels:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels:list":"node scripts/run-brigade.mjs channels list","config:schema":"node scripts/run-brigade.mjs config schema","connect:watch":"tsx --watch src/entry.ts connect","doctor:strict":"node scripts/run-brigade.mjs doctor --strict","expose:status":"node scripts/run-brigade.mjs expose status","gateway:watch":"tsx --watch src/entry.ts gateway","onboard:watch":"tsx --watch src/entry.ts onboard","secrets:audit":"node scripts/run-brigade.mjs secrets audit","sessions:list":"node scripts/run-brigade.mjs sessions list","store:migrate":"node scripts/run-brigade.mjs store migrate","test:mutation":"node scripts/mutation-check.mjs","backup:restore":"node scripts/run-brigade.mjs backup restore","channels:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","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","convex:install":"node scripts/install-convex.mjs","extensions:add":"node scripts/run-brigade.mjs extensions add","gateway:status":"node scripts/run-brigade.mjs gateway status","pairing:revoke":"node scripts/run-brigade.mjs pairing revoke --channel whatsapp","store:mode:set":"node scripts/run-brigade.mjs store mode set","telegram:allow":"node scripts/run-brigade.mjs channels allow list --channel telegram","telegram:token":"node scripts/run-brigade.mjs channels add --channel telegram","agents:bindings":"node scripts/run-brigade.mjs agents bindings","channels:enable":"node scripts/run-brigade.mjs channels enable --channel whatsapp","channels:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","channels:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","config:validate":"node scripts/run-brigade.mjs config validate","extensions:init":"node scripts/run-brigade.mjs extensions init","extensions:list":"node scripts/run-brigade.mjs extensions list","gateway:install":"node scripts/run-brigade.mjs gateway install","gateway:restart":"node scripts/run-brigade.mjs gateway restart","pairing:approve":"node scripts/run-brigade.mjs pairing approve --channel whatsapp","store:mode:show":"node scripts/run-brigade.mjs store mode show","telegram:enable":"node scripts/run-brigade.mjs channels enable --channel telegram","telegram:status":"node scripts/run-brigade.mjs channels status --channel telegram","bloody benchmark":"node scripts/run-brigade.mjs bloody benchmark","channels:disable":"node scripts/run-brigade.mjs channels disable --channel whatsapp","sessions:cleanup":"node scripts/run-brigade.mjs sessions cleanup","telegram:disable":"node scripts/run-brigade.mjs channels disable --channel telegram","extensions:doctor":"node scripts/run-brigade.mjs extensions doctor","extensions:remove":"node scripts/run-brigade.mjs extensions remove","gateway:uninstall":"node scripts/run-brigade.mjs gateway uninstall","smoke:strict-zero":"tsx scripts/strict-zero-smoke.mjs","store:reset:purge":"node scripts/run-brigade.mjs store reset --purge-local","channels:allow:add":"node scripts/run-brigade.mjs channels allow add --channel whatsapp","telegram:allow:add":"node scripts/run-brigade.mjs channels allow add --channel telegram","agents:set-identity":"node scripts/run-brigade.mjs agents set-identity","channels:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel whatsapp","telegram:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel telegram"},"_npmUser":{"name":"spinabot-labs","email":"npm@spinabot.com"},"overrides":{"ws":"$ws","exceljs":{"uuid":"^11.1.1"},"discord.js":{"undici":"^6.28.0"},"ip-address":"^10.5.0","protobufjs":"^7.6.5","@discordjs/rest":{"undici":"^6.28.0"},"brace-expansion@1":"^1.1.18","brace-expansion@2":"^2.1.4","brace-expansion@5":"^5.0.9","@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@earendil-works/pi-agent-core":"0.79.9","@earendil-works/pi-coding-agent":{"undici":"^8.9.0"}},"repository":{"url":"git+https://github.com/spinabot/brigade.git","type":"git"},"_npmVersion":"11.17.0","description":"Brigade — your personal AI crew","directories":{},"_nodeVersion":"24.19.0","dependencies":{"ws":"^8.21.0","tar":"^7.5.22","zod":"^3.23.8","docx":"^9.7.1","jimp":"^1.6.1","jiti":"^2.6.1","yaml":"^2.9.0","chalk":"^5.3.0","json5":"^2.2.3","unpdf":"^1.6.2","cfonts":"^3.3.1","convex":"^1.40.0","croner":"^10.0.1","fflate":"^0.8.3","grammy":"^1.42.0","undici":"^7.29.0","exceljs":"^4.4.0","prompts":"^2.4.2","linkedom":"^0.18.12","commander":"^12.1.0","minimatch":"^10.2.5","pptxgenjs":"^4.0.1","discord.js":"^14.26.4","cli-highlight":"^2.1.11","@composio/core":"^0.14.1","@slack/web-api":"^7.17.0","@cantoo/pdf-lib":"^2.7.1","@grammyjs/types":"^3.21.0","playwright-core":"^1.59.0","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@pdf-lib/fontkit":"^1.1.1","https-proxy-agent":"^7.0.6","socks-proxy-agent":"^10.1.0","@slack/socket-mode":"^2.0.7","@mozilla/readability":"^0.6.0","@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@whiskeysockets/baileys":"7.0.0-rc13","@anthropic-ai/claude-code":"^2.1.0","@earendil-works/pi-agent-core":"0.79.9","@earendil-works/pi-coding-agent":"0.79.9","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","@types/ws":"^8.18.1","@types/tar":"^6.1.13","typescript":"^5.6.3","@types/node":"^22.10.0","@types/prompts":"^2.4.9","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2"},"_npmOperationalInternal":{"tmp":"tmp/brigade_1.35.0_1788196878051_0.7812301146210874","host":"s3://npm-registry-packages-npm-production"}},"1.35.1":{"name":"@spinabot/brigade","version":"1.35.1","keywords":["ai","agent","agents","ai-agent","cli","tui","llm","claude","openai","gemini","ollama","whatsapp","gateway","brigade"],"author":{"name":"Spinabot","email":"hello@brigade-agent.ai"},"license":"MIT","_id":"@spinabot/brigade@1.35.1","maintainers":[{"name":"dev-spinabot","email":"bhasvanth02@gmail.com"},{"name":"spinabot-labs","email":"npm@spinabot.com"}],"homepage":"https://brigade.spinabot.com","bugs":{"url":"https://github.com/spinabot/brigade/issues","email":"hello@brigade-agent.ai"},"bin":{"brigade":"brigade.mjs"},"dist":{"shasum":"0c7dc5f30c11ebaa093c087ea2a0f8b53fc083aa","tarball":"https://registry.npmjs.org/@spinabot/brigade/-/brigade-1.35.1.tgz","fileCount":2981,"integrity":"sha512-OBApKcuvTcf7EkB00mti1VOCHYX5sOQFa+L7zKzgh5FeMlN369BGsnpxITMSFIu7y/dUCE6+zL5/q0279xNxrw==","signatures":[{"sig":"MEUCIQCp2MvdhJIZUWzhI2DuGB5NiPlG2Hn+8yka1rnJ7AxtiAIgdwMDCXYnpQFdLK7u8MfRqCRPCkX4RlXro9dSQhHOcqo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spinabot%2fbrigade@1.35.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22253703},"main":"dist/entry.js","type":"module","types":"./dist/entry.d.ts","engines":{"node":">=22.12"},"exports":{".":"./brigade.mjs","./channel-sdk":{"types":"./dist/channel-sdk.d.ts","import":"./dist/channel-sdk.js"},"./package.json":"./package.json","./extension-sdk":{"types":"./dist/extension-sdk.d.ts","import":"./dist/extension-sdk.js"}},"gitHead":"14583441de2e9f92bb5fea32c5bcee41d8258bfc","scripts":{"wa":"node scripts/run-brigade.mjs channels status --channel whatsapp","dev":"node scripts/run-brigade.mjs","tui":"node scripts/run-brigade.mjs tui","auth":"node scripts/run-brigade.mjs auth","logs":"node scripts/run-brigade.mjs logs","test":"node scripts/run-tests.mjs","agent":"node scripts/run-brigade.mjs agent","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","build":"tsc -p tsconfig.build.json","clean":"node -e \"import('node:fs').then(fs => fs.rmSync('dist', { recursive: true, force: true }))\"","login":"node scripts/run-brigade.mjs login","start":"node scripts/run-brigade.mjs","store":"node scripts/run-brigade.mjs store","watch":"tsx --watch src/entry.ts","agents":"node scripts/run-brigade.mjs agents","backup":"node scripts/run-brigade.mjs backup create","doctor":"node scripts/run-brigade.mjs doctor","expose":"node scripts/run-brigade.mjs expose","skills":"node scripts/run-brigade.mjs skills list","status":"node scripts/run-brigade.mjs status","update":"node scripts/run-brigade.mjs update","brigade":"node brigade.mjs","connect":"node scripts/run-brigade.mjs connect","dev:tsx":"tsx src/entry.ts","gateway":"node scripts/run-brigade.mjs gateway","onboard":"node scripts/run-brigade.mjs onboard","pairing":"node scripts/run-brigade.mjs pairing list --channel whatsapp","prepack":"npm run build","tui:bin":"node brigade.mjs tui","upgrade":"node scripts/run-brigade.mjs upgrade","wa:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels":"node scripts/run-brigade.mjs channels","sessions":"node scripts/run-brigade.mjs sessions list","telegram":"node scripts/run-brigade.mjs channels status --channel telegram","wa:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","agent:bin":"node brigade.mjs agent","exec:list":"node scripts/run-brigade.mjs exec list","login:bin":"node brigade.mjs login","postbuild":"node scripts/build-done.mjs","tui:watch":"tsx --watch src/entry.ts tui","typecheck":"tsc -p tsconfig.json --noEmit","wa:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","wa:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","agents:add":"node scripts/run-brigade.mjs agents add","agents:bin":"node brigade.mjs agents","convex:dev":"node scripts/install-convex.mjs && node scripts/convex-dev.mjs","doctor:bin":"node brigade.mjs doctor","extensions":"node scripts/run-brigade.mjs extensions list","status:bin":"node brigade.mjs status","store:mode":"node scripts/run-brigade.mjs store mode show","update:bin":"node brigade.mjs update","agent:watch":"tsx --watch src/entry.ts agent","agents:bind":"node scripts/run-brigade.mjs agents bind","agents:list":"node scripts/run-brigade.mjs agents list","build:watch":"tsc -p tsconfig.build.json --watch","config:file":"node scripts/run-brigade.mjs config file","config:list":"node scripts/run-brigade.mjs config list","connect:bin":"node brigade.mjs connect","convex:push":"node scripts/convex-push.mjs","doctor:json":"node scripts/run-brigade.mjs doctor --json","expose:stop":"node scripts/run-brigade.mjs expose stop","gateway:bin":"node brigade.mjs gateway","logs:follow":"node scripts/run-brigade.mjs logs --follow","onboard:bin":"node brigade.mjs onboard","postinstall":"node scripts/brand-oauth-page.mjs","skills:info":"node scripts/run-brigade.mjs skills info","skills:list":"node scripts/run-brigade.mjs skills list","status:json":"node scripts/run-brigade.mjs status --json","store:reset":"node scripts/run-brigade.mjs store reset","upgrade:bin":"node brigade.mjs upgrade","channels:add":"node scripts/run-brigade.mjs channels add","gateway:stop":"node scripts/run-brigade.mjs gateway stop","pairing:list":"node scripts/run-brigade.mjs pairing list --channel whatsapp","update:check":"node scripts/run-brigade.mjs update --check","agents:delete":"node scripts/run-brigade.mjs agents delete","agents:unbind":"node scripts/run-brigade.mjs agents unbind","backup:create":"node scripts/run-brigade.mjs backup create","backup:verify":"node scripts/run-brigade.mjs backup verify","channels:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels:list":"node scripts/run-brigade.mjs channels list","config:schema":"node scripts/run-brigade.mjs config schema","connect:watch":"tsx --watch src/entry.ts connect","doctor:strict":"node scripts/run-brigade.mjs doctor --strict","expose:status":"node scripts/run-brigade.mjs expose status","gateway:watch":"tsx --watch src/entry.ts gateway","onboard:watch":"tsx --watch src/entry.ts onboard","secrets:audit":"node scripts/run-brigade.mjs secrets audit","sessions:list":"node scripts/run-brigade.mjs sessions list","store:migrate":"node scripts/run-brigade.mjs store migrate","test:mutation":"node scripts/mutation-check.mjs","backup:restore":"node scripts/run-brigade.mjs backup restore","channels:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","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","convex:install":"node scripts/install-convex.mjs","extensions:add":"node scripts/run-brigade.mjs extensions add","gateway:status":"node scripts/run-brigade.mjs gateway status","pairing:revoke":"node scripts/run-brigade.mjs pairing revoke --channel whatsapp","store:mode:set":"node scripts/run-brigade.mjs store mode set","telegram:allow":"node scripts/run-brigade.mjs channels allow list --channel telegram","telegram:token":"node scripts/run-brigade.mjs channels add --channel telegram","agents:bindings":"node scripts/run-brigade.mjs agents bindings","channels:enable":"node scripts/run-brigade.mjs channels enable --channel whatsapp","channels:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","channels:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","config:validate":"node scripts/run-brigade.mjs config validate","extensions:init":"node scripts/run-brigade.mjs extensions init","extensions:list":"node scripts/run-brigade.mjs extensions list","gateway:install":"node scripts/run-brigade.mjs gateway install","gateway:restart":"node scripts/run-brigade.mjs gateway restart","pairing:approve":"node scripts/run-brigade.mjs pairing approve --channel whatsapp","store:mode:show":"node scripts/run-brigade.mjs store mode show","telegram:enable":"node scripts/run-brigade.mjs channels enable --channel telegram","telegram:status":"node scripts/run-brigade.mjs channels status --channel telegram","bloody benchmark":"node scripts/run-brigade.mjs bloody benchmark","channels:disable":"node scripts/run-brigade.mjs channels disable --channel whatsapp","sessions:cleanup":"node scripts/run-brigade.mjs sessions cleanup","telegram:disable":"node scripts/run-brigade.mjs channels disable --channel telegram","extensions:doctor":"node scripts/run-brigade.mjs extensions doctor","extensions:remove":"node scripts/run-brigade.mjs extensions remove","gateway:uninstall":"node scripts/run-brigade.mjs gateway uninstall","smoke:strict-zero":"tsx scripts/strict-zero-smoke.mjs","store:reset:purge":"node scripts/run-brigade.mjs store reset --purge-local","channels:allow:add":"node scripts/run-brigade.mjs channels allow add --channel whatsapp","telegram:allow:add":"node scripts/run-brigade.mjs channels allow add --channel telegram","agents:set-identity":"node scripts/run-brigade.mjs agents set-identity","channels:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel whatsapp","telegram:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel telegram"},"_npmUser":{"name":"spinabot-labs","email":"npm@spinabot.com"},"overrides":{"ws":"$ws","exceljs":{"uuid":"^11.1.1"},"discord.js":{"undici":"^6.28.0"},"ip-address":"^10.5.0","protobufjs":"^7.6.5","@discordjs/rest":{"undici":"^6.28.0"},"brace-expansion@1":"^1.1.18","brace-expansion@2":"^2.1.4","brace-expansion@5":"^5.0.9","@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@earendil-works/pi-agent-core":"0.79.9","@earendil-works/pi-coding-agent":{"undici":"^8.9.0"}},"repository":{"url":"git+https://github.com/spinabot/brigade.git","type":"git"},"_npmVersion":"11.17.0","description":"Brigade — your personal AI crew","directories":{},"_nodeVersion":"24.19.0","dependencies":{"ws":"^8.21.0","tar":"^7.5.22","zod":"^3.23.8","docx":"^9.7.1","jimp":"^1.6.1","jiti":"^2.6.1","yaml":"^2.9.0","chalk":"^5.3.0","json5":"^2.2.3","unpdf":"^1.6.2","cfonts":"^3.3.1","convex":"^1.40.0","croner":"^10.0.1","fflate":"^0.8.3","grammy":"^1.42.0","undici":"^7.29.0","exceljs":"^4.4.0","prompts":"^2.4.2","linkedom":"^0.18.12","commander":"^12.1.0","minimatch":"^10.2.5","pptxgenjs":"^4.0.1","discord.js":"^14.26.4","cli-highlight":"^2.1.11","@composio/core":"^0.14.1","@slack/web-api":"^7.17.0","@cantoo/pdf-lib":"^2.7.1","@grammyjs/types":"^3.21.0","playwright-core":"^1.59.0","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@pdf-lib/fontkit":"^1.1.1","https-proxy-agent":"^7.0.6","socks-proxy-agent":"^10.1.0","@slack/socket-mode":"^2.0.7","@mozilla/readability":"^0.6.0","@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@whiskeysockets/baileys":"7.0.0-rc13","@anthropic-ai/claude-code":"^2.1.0","@earendil-works/pi-agent-core":"0.79.9","@earendil-works/pi-coding-agent":"0.79.9","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","@types/ws":"^8.18.1","@types/tar":"^6.1.13","typescript":"^5.6.3","@types/node":"^22.10.0","@types/prompts":"^2.4.9","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2"},"_npmOperationalInternal":{"tmp":"tmp/brigade_1.35.1_1788200310252_0.006725963036961158","host":"s3://npm-registry-packages-npm-production"}},"1.35.2":{"name":"@spinabot/brigade","version":"1.35.2","keywords":["ai","agent","agents","ai-agent","cli","tui","llm","claude","openai","gemini","ollama","whatsapp","gateway","brigade"],"author":{"name":"Spinabot","email":"hello@brigade-agent.ai"},"license":"MIT","_id":"@spinabot/brigade@1.35.2","maintainers":[{"name":"dev-spinabot","email":"bhasvanth02@gmail.com"},{"name":"spinabot-labs","email":"npm@spinabot.com"}],"homepage":"https://brigade.spinabot.com","bugs":{"url":"https://github.com/spinabot/brigade/issues","email":"hello@brigade-agent.ai"},"bin":{"brigade":"brigade.mjs"},"dist":{"shasum":"14887101865ba4fe8aa8de2f05bcbb4f7a252079","tarball":"https://registry.npmjs.org/@spinabot/brigade/-/brigade-1.35.2.tgz","fileCount":2985,"integrity":"sha512-QVL4pJN3lWxOYrPOFQ0jrD04m8PyZoB8+JgKOm4c0LM4LJy4pPZbAqCqmoWt2x99zSUV+GBMfCzeJxrqUFRpcQ==","signatures":[{"sig":"MEUCIQCdLBXFTPJEGI58uGcka3zFaIVbvbllRIhXOvSioUO8nAIgB6aFzV0asUn4mDPx4leRA9q9p7u5EVnJ1aF3Hg+Uxck=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spinabot%2fbrigade@1.35.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22274639},"main":"dist/entry.js","type":"module","types":"./dist/entry.d.ts","engines":{"node":">=22.12"},"exports":{".":"./brigade.mjs","./channel-sdk":{"types":"./dist/channel-sdk.d.ts","import":"./dist/channel-sdk.js"},"./package.json":"./package.json","./extension-sdk":{"types":"./dist/extension-sdk.d.ts","import":"./dist/extension-sdk.js"}},"gitHead":"1b89c934f53c09587cf470d6e122f553eea2fa2d","scripts":{"wa":"node scripts/run-brigade.mjs channels status --channel whatsapp","dev":"node scripts/run-brigade.mjs","tui":"node scripts/run-brigade.mjs tui","auth":"node scripts/run-brigade.mjs auth","logs":"node scripts/run-brigade.mjs logs","test":"node scripts/run-tests.mjs","agent":"node scripts/run-brigade.mjs agent","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","build":"tsc -p tsconfig.build.json","clean":"node -e \"import('node:fs').then(fs => fs.rmSync('dist', { recursive: true, force: true }))\"","login":"node scripts/run-brigade.mjs login","start":"node scripts/run-brigade.mjs","store":"node scripts/run-brigade.mjs store","watch":"tsx --watch src/entry.ts","agents":"node scripts/run-brigade.mjs agents","backup":"node scripts/run-brigade.mjs backup create","doctor":"node scripts/run-brigade.mjs doctor","expose":"node scripts/run-brigade.mjs expose","skills":"node scripts/run-brigade.mjs skills list","status":"node scripts/run-brigade.mjs status","update":"node scripts/run-brigade.mjs update","brigade":"node brigade.mjs","connect":"node scripts/run-brigade.mjs connect","dev:tsx":"tsx src/entry.ts","gateway":"node scripts/run-brigade.mjs gateway","onboard":"node scripts/run-brigade.mjs onboard","pairing":"node scripts/run-brigade.mjs pairing list --channel whatsapp","prepack":"npm run build","tui:bin":"node brigade.mjs tui","upgrade":"node scripts/run-brigade.mjs upgrade","wa:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels":"node scripts/run-brigade.mjs channels","sessions":"node scripts/run-brigade.mjs sessions list","telegram":"node scripts/run-brigade.mjs channels status --channel telegram","wa:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","agent:bin":"node brigade.mjs agent","exec:list":"node scripts/run-brigade.mjs exec list","login:bin":"node brigade.mjs login","postbuild":"node scripts/build-done.mjs","tui:watch":"tsx --watch src/entry.ts tui","typecheck":"tsc -p tsconfig.json --noEmit","wa:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","wa:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","agents:add":"node scripts/run-brigade.mjs agents add","agents:bin":"node brigade.mjs agents","convex:dev":"node scripts/install-convex.mjs && node scripts/convex-dev.mjs","doctor:bin":"node brigade.mjs doctor","extensions":"node scripts/run-brigade.mjs extensions list","status:bin":"node brigade.mjs status","store:mode":"node scripts/run-brigade.mjs store mode show","update:bin":"node brigade.mjs update","agent:watch":"tsx --watch src/entry.ts agent","agents:bind":"node scripts/run-brigade.mjs agents bind","agents:list":"node scripts/run-brigade.mjs agents list","build:watch":"tsc -p tsconfig.build.json --watch","config:file":"node scripts/run-brigade.mjs config file","config:list":"node scripts/run-brigade.mjs config list","connect:bin":"node brigade.mjs connect","convex:push":"node scripts/convex-push.mjs","doctor:json":"node scripts/run-brigade.mjs doctor --json","expose:stop":"node scripts/run-brigade.mjs expose stop","gateway:bin":"node brigade.mjs gateway","logs:follow":"node scripts/run-brigade.mjs logs --follow","onboard:bin":"node brigade.mjs onboard","postinstall":"node scripts/brand-oauth-page.mjs","skills:info":"node scripts/run-brigade.mjs skills info","skills:list":"node scripts/run-brigade.mjs skills list","status:json":"node scripts/run-brigade.mjs status --json","store:reset":"node scripts/run-brigade.mjs store reset","upgrade:bin":"node brigade.mjs upgrade","channels:add":"node scripts/run-brigade.mjs channels add","gateway:stop":"node scripts/run-brigade.mjs gateway stop","pairing:list":"node scripts/run-brigade.mjs pairing list --channel whatsapp","update:check":"node scripts/run-brigade.mjs update --check","agents:delete":"node scripts/run-brigade.mjs agents delete","agents:unbind":"node scripts/run-brigade.mjs agents unbind","backup:create":"node scripts/run-brigade.mjs backup create","backup:verify":"node scripts/run-brigade.mjs backup verify","channels:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels:list":"node scripts/run-brigade.mjs channels list","config:schema":"node scripts/run-brigade.mjs config schema","connect:watch":"tsx --watch src/entry.ts connect","doctor:strict":"node scripts/run-brigade.mjs doctor --strict","expose:status":"node scripts/run-brigade.mjs expose status","gateway:watch":"tsx --watch src/entry.ts gateway","onboard:watch":"tsx --watch src/entry.ts onboard","secrets:audit":"node scripts/run-brigade.mjs secrets audit","sessions:list":"node scripts/run-brigade.mjs sessions list","store:migrate":"node scripts/run-brigade.mjs store migrate","test:mutation":"node scripts/mutation-check.mjs","backup:restore":"node scripts/run-brigade.mjs backup restore","channels:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","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","convex:install":"node scripts/install-convex.mjs","extensions:add":"node scripts/run-brigade.mjs extensions add","gateway:status":"node scripts/run-brigade.mjs gateway status","pairing:revoke":"node scripts/run-brigade.mjs pairing revoke --channel whatsapp","store:mode:set":"node scripts/run-brigade.mjs store mode set","telegram:allow":"node scripts/run-brigade.mjs channels allow list --channel telegram","telegram:token":"node scripts/run-brigade.mjs channels add --channel telegram","agents:bindings":"node scripts/run-brigade.mjs agents bindings","channels:enable":"node scripts/run-brigade.mjs channels enable --channel whatsapp","channels:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","channels:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","config:validate":"node scripts/run-brigade.mjs config validate","extensions:init":"node scripts/run-brigade.mjs extensions init","extensions:list":"node scripts/run-brigade.mjs extensions list","gateway:install":"node scripts/run-brigade.mjs gateway install","gateway:restart":"node scripts/run-brigade.mjs gateway restart","pairing:approve":"node scripts/run-brigade.mjs pairing approve --channel whatsapp","store:mode:show":"node scripts/run-brigade.mjs store mode show","telegram:enable":"node scripts/run-brigade.mjs channels enable --channel telegram","telegram:status":"node scripts/run-brigade.mjs channels status --channel telegram","bloody benchmark":"node scripts/run-brigade.mjs bloody benchmark","channels:disable":"node scripts/run-brigade.mjs channels disable --channel whatsapp","sessions:cleanup":"node scripts/run-brigade.mjs sessions cleanup","telegram:disable":"node scripts/run-brigade.mjs channels disable --channel telegram","extensions:doctor":"node scripts/run-brigade.mjs extensions doctor","extensions:remove":"node scripts/run-brigade.mjs extensions remove","gateway:uninstall":"node scripts/run-brigade.mjs gateway uninstall","smoke:strict-zero":"tsx scripts/strict-zero-smoke.mjs","store:reset:purge":"node scripts/run-brigade.mjs store reset --purge-local","channels:allow:add":"node scripts/run-brigade.mjs channels allow add --channel whatsapp","telegram:allow:add":"node scripts/run-brigade.mjs channels allow add --channel telegram","agents:set-identity":"node scripts/run-brigade.mjs agents set-identity","channels:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel whatsapp","telegram:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel telegram"},"_npmUser":{"name":"spinabot-labs","email":"npm@spinabot.com"},"overrides":{"ws":"$ws","exceljs":{"uuid":"^11.1.1"},"discord.js":{"undici":"^6.28.0"},"ip-address":"^10.5.0","protobufjs":"^7.6.5","@discordjs/rest":{"undici":"^6.28.0"},"brace-expansion@1":"^1.1.18","brace-expansion@2":"^2.1.4","brace-expansion@5":"^5.0.9","@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@earendil-works/pi-agent-core":"0.79.9","@earendil-works/pi-coding-agent":{"undici":"^8.9.0"}},"repository":{"url":"git+https://github.com/spinabot/brigade.git","type":"git"},"_npmVersion":"11.17.0","description":"Brigade — your personal AI crew","directories":{},"_nodeVersion":"24.19.0","dependencies":{"ws":"^8.21.0","tar":"^7.5.22","zod":"^3.23.8","docx":"^9.7.1","jimp":"^1.6.1","jiti":"^2.6.1","yaml":"^2.9.0","chalk":"^5.3.0","json5":"^2.2.3","unpdf":"^1.6.2","cfonts":"^3.3.1","convex":"^1.40.0","croner":"^10.0.1","fflate":"^0.8.3","grammy":"^1.42.0","undici":"^7.29.0","exceljs":"^4.4.0","prompts":"^2.4.2","linkedom":"^0.18.12","commander":"^12.1.0","minimatch":"^10.2.5","pptxgenjs":"^4.0.1","discord.js":"^14.26.4","cli-highlight":"^2.1.11","@composio/core":"^0.14.1","@slack/web-api":"^7.17.0","@cantoo/pdf-lib":"^2.7.1","@grammyjs/types":"^3.21.0","playwright-core":"^1.59.0","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@pdf-lib/fontkit":"^1.1.1","https-proxy-agent":"^7.0.6","socks-proxy-agent":"^10.1.0","@slack/socket-mode":"^2.0.7","@mozilla/readability":"^0.6.0","@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@whiskeysockets/baileys":"7.0.0-rc13","@anthropic-ai/claude-code":"^2.1.0","@earendil-works/pi-agent-core":"0.79.9","@earendil-works/pi-coding-agent":"0.79.9","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","@types/ws":"^8.18.1","@types/tar":"^6.1.13","typescript":"^5.6.3","@types/node":"^22.10.0","@types/prompts":"^2.4.9","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2"},"_npmOperationalInternal":{"tmp":"tmp/brigade_1.35.2_1788205106942_0.851551441783603","host":"s3://npm-registry-packages-npm-production"}},"1.35.3":{"name":"@spinabot/brigade","version":"1.35.3","keywords":["ai","agent","agents","ai-agent","cli","tui","llm","claude","openai","gemini","ollama","whatsapp","gateway","brigade"],"author":{"name":"Spinabot","email":"hello@brigade-agent.ai"},"license":"MIT","_id":"@spinabot/brigade@1.35.3","maintainers":[{"name":"dev-spinabot","email":"bhasvanth02@gmail.com"},{"name":"spinabot-labs","email":"npm@spinabot.com"}],"homepage":"https://brigade.spinabot.com","bugs":{"url":"https://github.com/spinabot/brigade/issues","email":"hello@brigade-agent.ai"},"bin":{"brigade":"brigade.mjs"},"dist":{"shasum":"8637309005d1559813ddff7368975357503e3297","tarball":"https://registry.npmjs.org/@spinabot/brigade/-/brigade-1.35.3.tgz","fileCount":2985,"integrity":"sha512-IXcQ6RHFgbmmU1P1+x6LiGwNUK375un91tmUGKAFTkzgLdGj7hNT949TgXIPIbpr/o0wI24IRL3SRw9ftlou+Q==","signatures":[{"sig":"MEQCIFegx6stm6bdCJGc8/sdcVtTxrdg6WXiwPM/ceuf47ZJAiBPm4e+5PaF/t+orazUp6hTMdQgHxE2HfnhqHlSCWBk+Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spinabot%2fbrigade@1.35.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22308232},"main":"dist/entry.js","type":"module","types":"./dist/entry.d.ts","engines":{"node":">=22.12"},"exports":{".":"./brigade.mjs","./channel-sdk":{"types":"./dist/channel-sdk.d.ts","import":"./dist/channel-sdk.js"},"./package.json":"./package.json","./extension-sdk":{"types":"./dist/extension-sdk.d.ts","import":"./dist/extension-sdk.js"}},"gitHead":"d1ca84b2fe67f8e00aa04e7a619106d879b75478","scripts":{"wa":"node scripts/run-brigade.mjs channels status --channel whatsapp","dev":"node scripts/run-brigade.mjs","tui":"node scripts/run-brigade.mjs tui","auth":"node scripts/run-brigade.mjs auth","logs":"node scripts/run-brigade.mjs logs","test":"node scripts/run-tests.mjs","agent":"node scripts/run-brigade.mjs agent","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","build":"tsc -p tsconfig.build.json","clean":"node -e \"import('node:fs').then(fs => fs.rmSync('dist', { recursive: true, force: true }))\"","login":"node scripts/run-brigade.mjs login","start":"node scripts/run-brigade.mjs","store":"node scripts/run-brigade.mjs store","watch":"tsx --watch src/entry.ts","agents":"node scripts/run-brigade.mjs agents","backup":"node scripts/run-brigade.mjs backup create","doctor":"node scripts/run-brigade.mjs doctor","expose":"node scripts/run-brigade.mjs expose","skills":"node scripts/run-brigade.mjs skills list","status":"node scripts/run-brigade.mjs status","update":"node scripts/run-brigade.mjs update","brigade":"node brigade.mjs","connect":"node scripts/run-brigade.mjs connect","dev:tsx":"tsx src/entry.ts","gateway":"node scripts/run-brigade.mjs gateway","onboard":"node scripts/run-brigade.mjs onboard","pairing":"node scripts/run-brigade.mjs pairing list --channel whatsapp","prepack":"npm run build","tui:bin":"node brigade.mjs tui","upgrade":"node scripts/run-brigade.mjs upgrade","wa:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels":"node scripts/run-brigade.mjs channels","sessions":"node scripts/run-brigade.mjs sessions list","telegram":"node scripts/run-brigade.mjs channels status --channel telegram","wa:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","agent:bin":"node brigade.mjs agent","exec:list":"node scripts/run-brigade.mjs exec list","login:bin":"node brigade.mjs login","postbuild":"node scripts/build-done.mjs","tui:watch":"tsx --watch src/entry.ts tui","typecheck":"tsc -p tsconfig.json --noEmit","wa:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","wa:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","agents:add":"node scripts/run-brigade.mjs agents add","agents:bin":"node brigade.mjs agents","convex:dev":"node scripts/install-convex.mjs && node scripts/convex-dev.mjs","doctor:bin":"node brigade.mjs doctor","extensions":"node scripts/run-brigade.mjs extensions list","status:bin":"node brigade.mjs status","store:mode":"node scripts/run-brigade.mjs store mode show","update:bin":"node brigade.mjs update","agent:watch":"tsx --watch src/entry.ts agent","agents:bind":"node scripts/run-brigade.mjs agents bind","agents:list":"node scripts/run-brigade.mjs agents list","build:watch":"tsc -p tsconfig.build.json --watch","config:file":"node scripts/run-brigade.mjs config file","config:list":"node scripts/run-brigade.mjs config list","connect:bin":"node brigade.mjs connect","convex:push":"node scripts/convex-push.mjs","doctor:json":"node scripts/run-brigade.mjs doctor --json","expose:stop":"node scripts/run-brigade.mjs expose stop","gateway:bin":"node brigade.mjs gateway","logs:follow":"node scripts/run-brigade.mjs logs --follow","onboard:bin":"node brigade.mjs onboard","postinstall":"node scripts/brand-oauth-page.mjs","skills:info":"node scripts/run-brigade.mjs skills info","skills:list":"node scripts/run-brigade.mjs skills list","status:json":"node scripts/run-brigade.mjs status --json","store:reset":"node scripts/run-brigade.mjs store reset","upgrade:bin":"node brigade.mjs upgrade","channels:add":"node scripts/run-brigade.mjs channels add","gateway:stop":"node scripts/run-brigade.mjs gateway stop","pairing:list":"node scripts/run-brigade.mjs pairing list --channel whatsapp","update:check":"node scripts/run-brigade.mjs update --check","agents:delete":"node scripts/run-brigade.mjs agents delete","agents:unbind":"node scripts/run-brigade.mjs agents unbind","backup:create":"node scripts/run-brigade.mjs backup create","backup:verify":"node scripts/run-brigade.mjs backup verify","channels:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels:list":"node scripts/run-brigade.mjs channels list","config:schema":"node scripts/run-brigade.mjs config schema","connect:watch":"tsx --watch src/entry.ts connect","doctor:strict":"node scripts/run-brigade.mjs doctor --strict","expose:status":"node scripts/run-brigade.mjs expose status","gateway:watch":"tsx --watch src/entry.ts gateway","onboard:watch":"tsx --watch src/entry.ts onboard","secrets:audit":"node scripts/run-brigade.mjs secrets audit","sessions:list":"node scripts/run-brigade.mjs sessions list","store:migrate":"node scripts/run-brigade.mjs store migrate","test:mutation":"node scripts/mutation-check.mjs","backup:restore":"node scripts/run-brigade.mjs backup restore","channels:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","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","convex:install":"node scripts/install-convex.mjs","extensions:add":"node scripts/run-brigade.mjs extensions add","gateway:status":"node scripts/run-brigade.mjs gateway status","pairing:revoke":"node scripts/run-brigade.mjs pairing revoke --channel whatsapp","store:mode:set":"node scripts/run-brigade.mjs store mode set","telegram:allow":"node scripts/run-brigade.mjs channels allow list --channel telegram","telegram:token":"node scripts/run-brigade.mjs channels add --channel telegram","agents:bindings":"node scripts/run-brigade.mjs agents bindings","channels:enable":"node scripts/run-brigade.mjs channels enable --channel whatsapp","channels:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","channels:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","config:validate":"node scripts/run-brigade.mjs config validate","extensions:init":"node scripts/run-brigade.mjs extensions init","extensions:list":"node scripts/run-brigade.mjs extensions list","gateway:install":"node scripts/run-brigade.mjs gateway install","gateway:restart":"node scripts/run-brigade.mjs gateway restart","pairing:approve":"node scripts/run-brigade.mjs pairing approve --channel whatsapp","store:mode:show":"node scripts/run-brigade.mjs store mode show","telegram:enable":"node scripts/run-brigade.mjs channels enable --channel telegram","telegram:status":"node scripts/run-brigade.mjs channels status --channel telegram","bloody benchmark":"node scripts/run-brigade.mjs bloody benchmark","channels:disable":"node scripts/run-brigade.mjs channels disable --channel whatsapp","sessions:cleanup":"node scripts/run-brigade.mjs sessions cleanup","telegram:disable":"node scripts/run-brigade.mjs channels disable --channel telegram","extensions:doctor":"node scripts/run-brigade.mjs extensions doctor","extensions:remove":"node scripts/run-brigade.mjs extensions remove","gateway:uninstall":"node scripts/run-brigade.mjs gateway uninstall","smoke:strict-zero":"tsx scripts/strict-zero-smoke.mjs","store:reset:purge":"node scripts/run-brigade.mjs store reset --purge-local","channels:allow:add":"node scripts/run-brigade.mjs channels allow add --channel whatsapp","telegram:allow:add":"node scripts/run-brigade.mjs channels allow add --channel telegram","agents:set-identity":"node scripts/run-brigade.mjs agents set-identity","channels:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel whatsapp","telegram:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel telegram"},"_npmUser":{"name":"spinabot-labs","email":"npm@spinabot.com"},"overrides":{"ws":"$ws","exceljs":{"uuid":"^11.1.1"},"discord.js":{"undici":"^6.28.0"},"ip-address":"^10.5.0","protobufjs":"^7.6.5","@discordjs/rest":{"undici":"^6.28.0"},"brace-expansion@1":"^1.1.18","brace-expansion@2":"^2.1.4","brace-expansion@5":"^5.0.9","@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@earendil-works/pi-agent-core":"0.79.9","@earendil-works/pi-coding-agent":{"undici":"^8.9.0"}},"repository":{"url":"git+https://github.com/spinabot/brigade.git","type":"git"},"_npmVersion":"11.17.0","description":"Brigade — your personal AI crew","directories":{},"_nodeVersion":"24.19.0","dependencies":{"ws":"^8.21.0","tar":"^7.5.22","zod":"^3.23.8","docx":"^9.7.1","jimp":"^1.6.1","jiti":"^2.6.1","yaml":"^2.9.0","chalk":"^5.3.0","json5":"^2.2.3","unpdf":"^1.6.2","cfonts":"^3.3.1","convex":"^1.40.0","croner":"^10.0.1","fflate":"^0.8.3","grammy":"^1.42.0","undici":"^7.29.0","exceljs":"^4.4.0","prompts":"^2.4.2","linkedom":"^0.18.12","commander":"^12.1.0","minimatch":"^10.2.5","pptxgenjs":"^4.0.1","discord.js":"^14.26.4","cli-highlight":"^2.1.11","@composio/core":"^0.14.1","@slack/web-api":"^7.17.0","@cantoo/pdf-lib":"^2.7.1","@grammyjs/types":"^3.21.0","playwright-core":"^1.59.0","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@pdf-lib/fontkit":"^1.1.1","https-proxy-agent":"^7.0.6","socks-proxy-agent":"^10.1.0","@slack/socket-mode":"^2.0.7","@mozilla/readability":"^0.6.0","@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@whiskeysockets/baileys":"7.0.0-rc13","@anthropic-ai/claude-code":"^2.1.0","@earendil-works/pi-agent-core":"0.79.9","@earendil-works/pi-coding-agent":"0.79.9","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","@types/ws":"^8.18.1","@types/tar":"^6.1.13","typescript":"^5.6.3","@types/node":"^22.10.0","@types/prompts":"^2.4.9","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2"},"_npmOperationalInternal":{"tmp":"tmp/brigade_1.35.3_1788205734865_0.5738910725742907","host":"s3://npm-registry-packages-npm-production"}},"1.36.0":{"name":"@spinabot/brigade","version":"1.36.0","keywords":["ai","agent","agents","ai-agent","cli","tui","llm","claude","openai","gemini","ollama","whatsapp","gateway","brigade"],"author":{"name":"Spinabot","email":"hello@brigade-agent.ai"},"license":"MIT","_id":"@spinabot/brigade@1.36.0","maintainers":[{"name":"dev-spinabot","email":"bhasvanth02@gmail.com"},{"name":"spinabot-labs","email":"npm@spinabot.com"}],"homepage":"https://brigade.spinabot.com","bugs":{"url":"https://github.com/spinabot/brigade/issues","email":"hello@brigade-agent.ai"},"bin":{"brigade":"brigade.mjs"},"dist":{"shasum":"07f9f43e4a3fafe995e6d0e69e05a540b8dbca82","tarball":"https://registry.npmjs.org/@spinabot/brigade/-/brigade-1.36.0.tgz","fileCount":2985,"integrity":"sha512-eo/fW1FiF6Rzg7WPQ4K5H/53Ty9soMz65UCjdqia9s7rEtmCorhkFTwQrwBt4B1fz6faI3Op5Kutz/yCnFC0Tg==","signatures":[{"sig":"MEUCIHdC/NeuIghf+Js33U4PYtPjYNevnfZUwbAYOqVyvO8fAiEAvk9XzogeQbpowDfts/hjmchP9bITfB1mM4NfC8NnJbk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spinabot%2fbrigade@1.36.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22343203},"main":"dist/entry.js","type":"module","types":"./dist/entry.d.ts","engines":{"node":">=22.12"},"exports":{".":"./brigade.mjs","./channel-sdk":{"types":"./dist/channel-sdk.d.ts","import":"./dist/channel-sdk.js"},"./package.json":"./package.json","./extension-sdk":{"types":"./dist/extension-sdk.d.ts","import":"./dist/extension-sdk.js"}},"gitHead":"6a8bc025c16bf2fbc5f7cae35157443d9c6e28f9","scripts":{"wa":"node scripts/run-brigade.mjs channels status --channel whatsapp","dev":"node scripts/run-brigade.mjs","tui":"node scripts/run-brigade.mjs tui","auth":"node scripts/run-brigade.mjs auth","logs":"node scripts/run-brigade.mjs logs","test":"node scripts/run-tests.mjs","agent":"node scripts/run-brigade.mjs agent","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","build":"tsc -p tsconfig.build.json","clean":"node -e \"import('node:fs').then(fs => fs.rmSync('dist', { recursive: true, force: true }))\"","login":"node scripts/run-brigade.mjs login","start":"node scripts/run-brigade.mjs","store":"node scripts/run-brigade.mjs store","watch":"tsx --watch src/entry.ts","agents":"node scripts/run-brigade.mjs agents","backup":"node scripts/run-brigade.mjs backup create","doctor":"node scripts/run-brigade.mjs doctor","expose":"node scripts/run-brigade.mjs expose","skills":"node scripts/run-brigade.mjs skills list","status":"node scripts/run-brigade.mjs status","update":"node scripts/run-brigade.mjs update","brigade":"node brigade.mjs","connect":"node scripts/run-brigade.mjs connect","dev:tsx":"tsx src/entry.ts","gateway":"node scripts/run-brigade.mjs gateway","onboard":"node scripts/run-brigade.mjs onboard","pairing":"node scripts/run-brigade.mjs pairing list --channel whatsapp","prepack":"npm run build","tui:bin":"node brigade.mjs tui","upgrade":"node scripts/run-brigade.mjs upgrade","wa:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels":"node scripts/run-brigade.mjs channels","sessions":"node scripts/run-brigade.mjs sessions list","telegram":"node scripts/run-brigade.mjs channels status --channel telegram","wa:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","agent:bin":"node brigade.mjs agent","exec:list":"node scripts/run-brigade.mjs exec list","login:bin":"node brigade.mjs login","postbuild":"node scripts/build-done.mjs","tui:watch":"tsx --watch src/entry.ts tui","typecheck":"tsc -p tsconfig.json --noEmit","wa:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","wa:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","agents:add":"node scripts/run-brigade.mjs agents add","agents:bin":"node brigade.mjs agents","convex:dev":"node scripts/install-convex.mjs && node scripts/convex-dev.mjs","doctor:bin":"node brigade.mjs doctor","extensions":"node scripts/run-brigade.mjs extensions list","status:bin":"node brigade.mjs status","store:mode":"node scripts/run-brigade.mjs store mode show","update:bin":"node brigade.mjs update","agent:watch":"tsx --watch src/entry.ts agent","agents:bind":"node scripts/run-brigade.mjs agents bind","agents:list":"node scripts/run-brigade.mjs agents list","build:watch":"tsc -p tsconfig.build.json --watch","config:file":"node scripts/run-brigade.mjs config file","config:list":"node scripts/run-brigade.mjs config list","connect:bin":"node brigade.mjs connect","convex:push":"node scripts/convex-push.mjs","doctor:json":"node scripts/run-brigade.mjs doctor --json","expose:stop":"node scripts/run-brigade.mjs expose stop","gateway:bin":"node brigade.mjs gateway","logs:follow":"node scripts/run-brigade.mjs logs --follow","onboard:bin":"node brigade.mjs onboard","postinstall":"node scripts/brand-oauth-page.mjs","skills:info":"node scripts/run-brigade.mjs skills info","skills:list":"node scripts/run-brigade.mjs skills list","status:json":"node scripts/run-brigade.mjs status --json","store:reset":"node scripts/run-brigade.mjs store reset","upgrade:bin":"node brigade.mjs upgrade","channels:add":"node scripts/run-brigade.mjs channels add","gateway:stop":"node scripts/run-brigade.mjs gateway stop","pairing:list":"node scripts/run-brigade.mjs pairing list --channel whatsapp","update:check":"node scripts/run-brigade.mjs update --check","agents:delete":"node scripts/run-brigade.mjs agents delete","agents:unbind":"node scripts/run-brigade.mjs agents unbind","backup:create":"node scripts/run-brigade.mjs backup create","backup:verify":"node scripts/run-brigade.mjs backup verify","channels:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels:list":"node scripts/run-brigade.mjs channels list","config:schema":"node scripts/run-brigade.mjs config schema","connect:watch":"tsx --watch src/entry.ts connect","doctor:strict":"node scripts/run-brigade.mjs doctor --strict","expose:status":"node scripts/run-brigade.mjs expose status","gateway:watch":"tsx --watch src/entry.ts gateway","onboard:watch":"tsx --watch src/entry.ts onboard","secrets:audit":"node scripts/run-brigade.mjs secrets audit","sessions:list":"node scripts/run-brigade.mjs sessions list","store:migrate":"node scripts/run-brigade.mjs store migrate","test:mutation":"node scripts/mutation-check.mjs","backup:restore":"node scripts/run-brigade.mjs backup restore","channels:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","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","convex:install":"node scripts/install-convex.mjs","extensions:add":"node scripts/run-brigade.mjs extensions add","gateway:status":"node scripts/run-brigade.mjs gateway status","pairing:revoke":"node scripts/run-brigade.mjs pairing revoke --channel whatsapp","store:mode:set":"node scripts/run-brigade.mjs store mode set","telegram:allow":"node scripts/run-brigade.mjs channels allow list --channel telegram","telegram:token":"node scripts/run-brigade.mjs channels add --channel telegram","agents:bindings":"node scripts/run-brigade.mjs agents bindings","channels:enable":"node scripts/run-brigade.mjs channels enable --channel whatsapp","channels:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","channels:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","config:validate":"node scripts/run-brigade.mjs config validate","extensions:init":"node scripts/run-brigade.mjs extensions init","extensions:list":"node scripts/run-brigade.mjs extensions list","gateway:install":"node scripts/run-brigade.mjs gateway install","gateway:restart":"node scripts/run-brigade.mjs gateway restart","pairing:approve":"node scripts/run-brigade.mjs pairing approve --channel whatsapp","store:mode:show":"node scripts/run-brigade.mjs store mode show","telegram:enable":"node scripts/run-brigade.mjs channels enable --channel telegram","telegram:status":"node scripts/run-brigade.mjs channels status --channel telegram","bloody benchmark":"node scripts/run-brigade.mjs bloody benchmark","channels:disable":"node scripts/run-brigade.mjs channels disable --channel whatsapp","sessions:cleanup":"node scripts/run-brigade.mjs sessions cleanup","telegram:disable":"node scripts/run-brigade.mjs channels disable --channel telegram","extensions:doctor":"node scripts/run-brigade.mjs extensions doctor","extensions:remove":"node scripts/run-brigade.mjs extensions remove","gateway:uninstall":"node scripts/run-brigade.mjs gateway uninstall","smoke:strict-zero":"tsx scripts/strict-zero-smoke.mjs","store:reset:purge":"node scripts/run-brigade.mjs store reset --purge-local","channels:allow:add":"node scripts/run-brigade.mjs channels allow add --channel whatsapp","telegram:allow:add":"node scripts/run-brigade.mjs channels allow add --channel telegram","agents:set-identity":"node scripts/run-brigade.mjs agents set-identity","channels:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel whatsapp","telegram:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel telegram"},"_npmUser":{"name":"spinabot-labs","email":"npm@spinabot.com"},"overrides":{"ws":"$ws","exceljs":{"uuid":"^11.1.1"},"discord.js":{"undici":"^6.28.0"},"ip-address":"^10.5.0","protobufjs":"^7.6.5","@discordjs/rest":{"undici":"^6.28.0"},"brace-expansion@1":"^1.1.18","brace-expansion@2":"^2.1.4","brace-expansion@5":"^5.0.9","@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@earendil-works/pi-agent-core":"0.79.9","@earendil-works/pi-coding-agent":{"undici":"^8.9.0"}},"repository":{"url":"git+https://github.com/spinabot/brigade.git","type":"git"},"_npmVersion":"11.17.0","description":"Brigade — your personal AI crew","directories":{},"_nodeVersion":"24.19.0","dependencies":{"ws":"^8.21.0","tar":"^7.5.22","zod":"^3.23.8","docx":"^9.7.1","jimp":"^1.6.1","jiti":"^2.6.1","yaml":"^2.9.0","chalk":"^5.3.0","json5":"^2.2.3","unpdf":"^1.6.2","cfonts":"^3.3.1","convex":"^1.40.0","croner":"^10.0.1","fflate":"^0.8.3","grammy":"^1.42.0","undici":"^7.29.0","exceljs":"^4.4.0","prompts":"^2.4.2","linkedom":"^0.18.12","commander":"^12.1.0","minimatch":"^10.2.5","pptxgenjs":"^4.0.1","discord.js":"^14.26.4","cli-highlight":"^2.1.11","@composio/core":"^0.14.1","@slack/web-api":"^7.17.0","@cantoo/pdf-lib":"^2.7.1","@grammyjs/types":"^3.21.0","playwright-core":"^1.59.0","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@pdf-lib/fontkit":"^1.1.1","https-proxy-agent":"^7.0.6","socks-proxy-agent":"^10.1.0","@slack/socket-mode":"^2.0.7","@mozilla/readability":"^0.6.0","@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@whiskeysockets/baileys":"7.0.0-rc13","@anthropic-ai/claude-code":"^2.1.0","@earendil-works/pi-agent-core":"0.79.9","@earendil-works/pi-coding-agent":"0.79.9","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","@types/ws":"^8.18.1","@types/tar":"^6.1.13","typescript":"^5.6.3","@types/node":"^22.10.0","@types/prompts":"^2.4.9","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2"},"_npmOperationalInternal":{"tmp":"tmp/brigade_1.36.0_1788210208108_0.5371215058733156","host":"s3://npm-registry-packages-npm-production"}},"1.36.1":{"name":"@spinabot/brigade","version":"1.36.1","keywords":["ai","agent","agents","ai-agent","cli","tui","llm","claude","openai","gemini","ollama","whatsapp","gateway","brigade"],"author":{"name":"Spinabot","email":"hello@brigade-agent.ai"},"license":"MIT","_id":"@spinabot/brigade@1.36.1","maintainers":[{"name":"dev-spinabot","email":"bhasvanth02@gmail.com"},{"name":"spinabot-labs","email":"npm@spinabot.com"}],"homepage":"https://brigade.spinabot.com","bugs":{"url":"https://github.com/spinabot/brigade/issues","email":"hello@brigade-agent.ai"},"bin":{"brigade":"brigade.mjs"},"dist":{"shasum":"2434f6a59072377a885538e51e345f824e2c9f1a","tarball":"https://registry.npmjs.org/@spinabot/brigade/-/brigade-1.36.1.tgz","fileCount":2985,"integrity":"sha512-48QAANO9S20cZ7has5bl4BxiZqRkE8z1WLTr4f7wkQF7WRmcc99N3k5Gi8pHtc2VNUKQBhdxO44Otstcr63kVA==","signatures":[{"sig":"MEYCIQCi7VryZqNaTdoBN+/varew0H8Q8zJDbkrDD2FzLNkfxQIhAOixcbeBfYcUeeySYUl65toq1TbUKwX5YAReSw59pB2G","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spinabot%2fbrigade@1.36.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22346459},"main":"dist/entry.js","type":"module","types":"./dist/entry.d.ts","engines":{"node":">=22.12"},"exports":{".":"./brigade.mjs","./channel-sdk":{"types":"./dist/channel-sdk.d.ts","import":"./dist/channel-sdk.js"},"./package.json":"./package.json","./extension-sdk":{"types":"./dist/extension-sdk.d.ts","import":"./dist/extension-sdk.js"}},"gitHead":"03a1ebb9bccc9890fb10b677d83b228b2b28e510","scripts":{"wa":"node scripts/run-brigade.mjs channels status --channel whatsapp","dev":"node scripts/run-brigade.mjs","tui":"node scripts/run-brigade.mjs tui","auth":"node scripts/run-brigade.mjs auth","logs":"node scripts/run-brigade.mjs logs","test":"node scripts/run-tests.mjs","agent":"node scripts/run-brigade.mjs agent","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","build":"tsc -p tsconfig.build.json","clean":"node -e \"import('node:fs').then(fs => fs.rmSync('dist', { recursive: true, force: true }))\"","login":"node scripts/run-brigade.mjs login","start":"node scripts/run-brigade.mjs","store":"node scripts/run-brigade.mjs store","watch":"tsx --watch src/entry.ts","agents":"node scripts/run-brigade.mjs agents","backup":"node scripts/run-brigade.mjs backup create","doctor":"node scripts/run-brigade.mjs doctor","expose":"node scripts/run-brigade.mjs expose","skills":"node scripts/run-brigade.mjs skills list","status":"node scripts/run-brigade.mjs status","update":"node scripts/run-brigade.mjs update","brigade":"node brigade.mjs","connect":"node scripts/run-brigade.mjs connect","dev:tsx":"tsx src/entry.ts","gateway":"node scripts/run-brigade.mjs gateway","onboard":"node scripts/run-brigade.mjs onboard","pairing":"node scripts/run-brigade.mjs pairing list --channel whatsapp","prepack":"npm run build","tui:bin":"node brigade.mjs tui","upgrade":"node scripts/run-brigade.mjs upgrade","wa:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels":"node scripts/run-brigade.mjs channels","sessions":"node scripts/run-brigade.mjs sessions list","telegram":"node scripts/run-brigade.mjs channels status --channel telegram","wa:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","agent:bin":"node brigade.mjs agent","exec:list":"node scripts/run-brigade.mjs exec list","login:bin":"node brigade.mjs login","postbuild":"node scripts/build-done.mjs","tui:watch":"tsx --watch src/entry.ts tui","typecheck":"tsc -p tsconfig.json --noEmit","wa:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","wa:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","agents:add":"node scripts/run-brigade.mjs agents add","agents:bin":"node brigade.mjs agents","convex:dev":"node scripts/install-convex.mjs && node scripts/convex-dev.mjs","doctor:bin":"node brigade.mjs doctor","extensions":"node scripts/run-brigade.mjs extensions list","status:bin":"node brigade.mjs status","store:mode":"node scripts/run-brigade.mjs store mode show","update:bin":"node brigade.mjs update","agent:watch":"tsx --watch src/entry.ts agent","agents:bind":"node scripts/run-brigade.mjs agents bind","agents:list":"node scripts/run-brigade.mjs agents list","build:watch":"tsc -p tsconfig.build.json --watch","config:file":"node scripts/run-brigade.mjs config file","config:list":"node scripts/run-brigade.mjs config list","connect:bin":"node brigade.mjs connect","convex:push":"node scripts/convex-push.mjs","doctor:json":"node scripts/run-brigade.mjs doctor --json","expose:stop":"node scripts/run-brigade.mjs expose stop","gateway:bin":"node brigade.mjs gateway","logs:follow":"node scripts/run-brigade.mjs logs --follow","onboard:bin":"node brigade.mjs onboard","postinstall":"node scripts/brand-oauth-page.mjs","skills:info":"node scripts/run-brigade.mjs skills info","skills:list":"node scripts/run-brigade.mjs skills list","status:json":"node scripts/run-brigade.mjs status --json","store:reset":"node scripts/run-brigade.mjs store reset","upgrade:bin":"node brigade.mjs upgrade","channels:add":"node scripts/run-brigade.mjs channels add","gateway:stop":"node scripts/run-brigade.mjs gateway stop","pairing:list":"node scripts/run-brigade.mjs pairing list --channel whatsapp","update:check":"node scripts/run-brigade.mjs update --check","agents:delete":"node scripts/run-brigade.mjs agents delete","agents:unbind":"node scripts/run-brigade.mjs agents unbind","backup:create":"node scripts/run-brigade.mjs backup create","backup:verify":"node scripts/run-brigade.mjs backup verify","channels:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels:list":"node scripts/run-brigade.mjs channels list","config:schema":"node scripts/run-brigade.mjs config schema","connect:watch":"tsx --watch src/entry.ts connect","doctor:strict":"node scripts/run-brigade.mjs doctor --strict","expose:status":"node scripts/run-brigade.mjs expose status","gateway:watch":"tsx --watch src/entry.ts gateway","onboard:watch":"tsx --watch src/entry.ts onboard","secrets:audit":"node scripts/run-brigade.mjs secrets audit","sessions:list":"node scripts/run-brigade.mjs sessions list","store:migrate":"node scripts/run-brigade.mjs store migrate","test:mutation":"node scripts/mutation-check.mjs","backup:restore":"node scripts/run-brigade.mjs backup restore","channels:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","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","convex:install":"node scripts/install-convex.mjs","extensions:add":"node scripts/run-brigade.mjs extensions add","gateway:status":"node scripts/run-brigade.mjs gateway status","pairing:revoke":"node scripts/run-brigade.mjs pairing revoke --channel whatsapp","store:mode:set":"node scripts/run-brigade.mjs store mode set","telegram:allow":"node scripts/run-brigade.mjs channels allow list --channel telegram","telegram:token":"node scripts/run-brigade.mjs channels add --channel telegram","agents:bindings":"node scripts/run-brigade.mjs agents bindings","channels:enable":"node scripts/run-brigade.mjs channels enable --channel whatsapp","channels:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","channels:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","config:validate":"node scripts/run-brigade.mjs config validate","extensions:init":"node scripts/run-brigade.mjs extensions init","extensions:list":"node scripts/run-brigade.mjs extensions list","gateway:install":"node scripts/run-brigade.mjs gateway install","gateway:restart":"node scripts/run-brigade.mjs gateway restart","pairing:approve":"node scripts/run-brigade.mjs pairing approve --channel whatsapp","store:mode:show":"node scripts/run-brigade.mjs store mode show","telegram:enable":"node scripts/run-brigade.mjs channels enable --channel telegram","telegram:status":"node scripts/run-brigade.mjs channels status --channel telegram","bloody benchmark":"node scripts/run-brigade.mjs bloody benchmark","channels:disable":"node scripts/run-brigade.mjs channels disable --channel whatsapp","sessions:cleanup":"node scripts/run-brigade.mjs sessions cleanup","telegram:disable":"node scripts/run-brigade.mjs channels disable --channel telegram","extensions:doctor":"node scripts/run-brigade.mjs extensions doctor","extensions:remove":"node scripts/run-brigade.mjs extensions remove","gateway:uninstall":"node scripts/run-brigade.mjs gateway uninstall","smoke:strict-zero":"tsx scripts/strict-zero-smoke.mjs","store:reset:purge":"node scripts/run-brigade.mjs store reset --purge-local","channels:allow:add":"node scripts/run-brigade.mjs channels allow add --channel whatsapp","telegram:allow:add":"node scripts/run-brigade.mjs channels allow add --channel telegram","agents:set-identity":"node scripts/run-brigade.mjs agents set-identity","channels:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel whatsapp","telegram:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel telegram"},"_npmUser":{"name":"spinabot-labs","email":"npm@spinabot.com"},"overrides":{"ws":"$ws","exceljs":{"uuid":"^11.1.1"},"discord.js":{"undici":"^6.28.0"},"ip-address":"^10.5.0","protobufjs":"^7.6.5","@discordjs/rest":{"undici":"^6.28.0"},"brace-expansion@1":"^1.1.18","brace-expansion@2":"^2.1.4","brace-expansion@5":"^5.0.9","@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@earendil-works/pi-agent-core":"0.79.9","@earendil-works/pi-coding-agent":{"undici":"^8.9.0"}},"repository":{"url":"git+https://github.com/spinabot/brigade.git","type":"git"},"_npmVersion":"11.17.0","description":"Brigade — your personal AI crew","directories":{},"_nodeVersion":"24.19.0","dependencies":{"ws":"^8.21.0","tar":"^7.5.22","zod":"^3.23.8","docx":"^9.7.1","jimp":"^1.6.1","jiti":"^2.6.1","yaml":"^2.9.0","chalk":"^5.3.0","json5":"^2.2.3","unpdf":"^1.6.2","cfonts":"^3.3.1","convex":"^1.40.0","croner":"^10.0.1","fflate":"^0.8.3","grammy":"^1.42.0","undici":"^7.29.0","exceljs":"^4.4.0","prompts":"^2.4.2","linkedom":"^0.18.12","commander":"^12.1.0","minimatch":"^10.2.5","pptxgenjs":"^4.0.1","discord.js":"^14.26.4","cli-highlight":"^2.1.11","@composio/core":"^0.14.1","@slack/web-api":"^7.17.0","@cantoo/pdf-lib":"^2.7.1","@grammyjs/types":"^3.21.0","playwright-core":"^1.59.0","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@pdf-lib/fontkit":"^1.1.1","https-proxy-agent":"^7.0.6","socks-proxy-agent":"^10.1.0","@slack/socket-mode":"^2.0.7","@mozilla/readability":"^0.6.0","@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@whiskeysockets/baileys":"7.0.0-rc13","@anthropic-ai/claude-code":"^2.1.0","@earendil-works/pi-agent-core":"0.79.9","@earendil-works/pi-coding-agent":"0.79.9","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","@types/ws":"^8.18.1","@types/tar":"^6.1.13","typescript":"^5.6.3","@types/node":"^22.10.0","@types/prompts":"^2.4.9","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2"},"_npmOperationalInternal":{"tmp":"tmp/brigade_1.36.1_1788214219938_0.4028752181490316","host":"s3://npm-registry-packages-npm-production"}},"1.37.0":{"name":"@spinabot/brigade","version":"1.37.0","keywords":["ai","agent","agents","ai-agent","cli","tui","llm","claude","openai","gemini","ollama","whatsapp","gateway","brigade"],"author":{"name":"Spinabot","email":"hello@brigade-agent.ai"},"license":"MIT","_id":"@spinabot/brigade@1.37.0","maintainers":[{"name":"dev-spinabot","email":"bhasvanth02@gmail.com"},{"name":"spinabot-labs","email":"npm@spinabot.com"}],"homepage":"https://brigade.spinabot.com","bugs":{"url":"https://github.com/spinabot/brigade/issues","email":"hello@brigade-agent.ai"},"bin":{"brigade":"brigade.mjs"},"dist":{"shasum":"8330c6eb7bbe4f1d6789e40251613ea7415e5486","tarball":"https://registry.npmjs.org/@spinabot/brigade/-/brigade-1.37.0.tgz","fileCount":2997,"integrity":"sha512-lymH04h8K7YsurPhCbhel9+wYenvWB8643gv8284v9PTQ+nkqxyAO9aEva6TagX6oN7B70twF3F40H/OKFpoCw==","signatures":[{"sig":"MEUCIAju8iEOjJ8x1IDBt1HpbramP0kF5c4xUQ+tvQq+0+iFAiEAx/AyLNoSa4XIvhmiUhjp0xRwrW2UOwvzhm5t4C4DoVk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spinabot%2fbrigade@1.37.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22441128},"main":"dist/entry.js","type":"module","types":"./dist/entry.d.ts","engines":{"node":">=22.12"},"exports":{".":"./brigade.mjs","./channel-sdk":{"types":"./dist/channel-sdk.d.ts","import":"./dist/channel-sdk.js"},"./package.json":"./package.json","./extension-sdk":{"types":"./dist/extension-sdk.d.ts","import":"./dist/extension-sdk.js"}},"gitHead":"f1775839281c2fda4322693c943353fadd6498a8","scripts":{"wa":"node scripts/run-brigade.mjs channels status --channel whatsapp","dev":"node scripts/run-brigade.mjs","tui":"node scripts/run-brigade.mjs tui","auth":"node scripts/run-brigade.mjs auth","logs":"node scripts/run-brigade.mjs logs","test":"node scripts/run-tests.mjs","agent":"node scripts/run-brigade.mjs agent","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","build":"tsc -p tsconfig.build.json","clean":"node -e \"import('node:fs').then(fs => fs.rmSync('dist', { recursive: true, force: true }))\"","login":"node scripts/run-brigade.mjs login","start":"node scripts/run-brigade.mjs","store":"node scripts/run-brigade.mjs store","watch":"tsx --watch src/entry.ts","agents":"node scripts/run-brigade.mjs agents","backup":"node scripts/run-brigade.mjs backup create","doctor":"node scripts/run-brigade.mjs doctor","expose":"node scripts/run-brigade.mjs expose","skills":"node scripts/run-brigade.mjs skills list","status":"node scripts/run-brigade.mjs status","update":"node scripts/run-brigade.mjs update","brigade":"node brigade.mjs","connect":"node scripts/run-brigade.mjs connect","dev:tsx":"tsx src/entry.ts","gateway":"node scripts/run-brigade.mjs gateway","onboard":"node scripts/run-brigade.mjs onboard","pairing":"node scripts/run-brigade.mjs pairing list --channel whatsapp","prepack":"npm run build","tui:bin":"node brigade.mjs tui","upgrade":"node scripts/run-brigade.mjs upgrade","wa:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels":"node scripts/run-brigade.mjs channels","sessions":"node scripts/run-brigade.mjs sessions list","telegram":"node scripts/run-brigade.mjs channels status --channel telegram","wa:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","agent:bin":"node brigade.mjs agent","exec:list":"node scripts/run-brigade.mjs exec list","login:bin":"node brigade.mjs login","postbuild":"node scripts/build-done.mjs","tui:watch":"tsx --watch src/entry.ts tui","typecheck":"tsc -p tsconfig.json --noEmit","wa:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","wa:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","agents:add":"node scripts/run-brigade.mjs agents add","agents:bin":"node brigade.mjs agents","convex:dev":"node scripts/install-convex.mjs && node scripts/convex-dev.mjs","doctor:bin":"node brigade.mjs doctor","extensions":"node scripts/run-brigade.mjs extensions list","status:bin":"node brigade.mjs status","store:mode":"node scripts/run-brigade.mjs store mode show","update:bin":"node brigade.mjs update","agent:watch":"tsx --watch src/entry.ts agent","agents:bind":"node scripts/run-brigade.mjs agents bind","agents:list":"node scripts/run-brigade.mjs agents list","build:watch":"tsc -p tsconfig.build.json --watch","config:file":"node scripts/run-brigade.mjs config file","config:list":"node scripts/run-brigade.mjs config list","connect:bin":"node brigade.mjs connect","convex:push":"node scripts/convex-push.mjs","doctor:json":"node scripts/run-brigade.mjs doctor --json","expose:stop":"node scripts/run-brigade.mjs expose stop","gateway:bin":"node brigade.mjs gateway","logs:follow":"node scripts/run-brigade.mjs logs --follow","onboard:bin":"node brigade.mjs onboard","postinstall":"node scripts/brand-oauth-page.mjs","skills:info":"node scripts/run-brigade.mjs skills info","skills:list":"node scripts/run-brigade.mjs skills list","status:json":"node scripts/run-brigade.mjs status --json","store:reset":"node scripts/run-brigade.mjs store reset","upgrade:bin":"node brigade.mjs upgrade","channels:add":"node scripts/run-brigade.mjs channels add","gateway:stop":"node scripts/run-brigade.mjs gateway stop","pairing:list":"node scripts/run-brigade.mjs pairing list --channel whatsapp","update:check":"node scripts/run-brigade.mjs update --check","agents:delete":"node scripts/run-brigade.mjs agents delete","agents:unbind":"node scripts/run-brigade.mjs agents unbind","backup:create":"node scripts/run-brigade.mjs backup create","backup:verify":"node scripts/run-brigade.mjs backup verify","channels:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels:list":"node scripts/run-brigade.mjs channels list","config:schema":"node scripts/run-brigade.mjs config schema","connect:watch":"tsx --watch src/entry.ts connect","doctor:strict":"node scripts/run-brigade.mjs doctor --strict","expose:status":"node scripts/run-brigade.mjs expose status","gateway:watch":"tsx --watch src/entry.ts gateway","onboard:watch":"tsx --watch src/entry.ts onboard","secrets:audit":"node scripts/run-brigade.mjs secrets audit","sessions:list":"node scripts/run-brigade.mjs sessions list","store:migrate":"node scripts/run-brigade.mjs store migrate","test:mutation":"node scripts/mutation-check.mjs","backup:restore":"node scripts/run-brigade.mjs backup restore","channels:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","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","convex:install":"node scripts/install-convex.mjs","extensions:add":"node scripts/run-brigade.mjs extensions add","gateway:status":"node scripts/run-brigade.mjs gateway status","pairing:revoke":"node scripts/run-brigade.mjs pairing revoke --channel whatsapp","store:mode:set":"node scripts/run-brigade.mjs store mode set","telegram:allow":"node scripts/run-brigade.mjs channels allow list --channel telegram","telegram:token":"node scripts/run-brigade.mjs channels add --channel telegram","agents:bindings":"node scripts/run-brigade.mjs agents bindings","channels:enable":"node scripts/run-brigade.mjs channels enable --channel whatsapp","channels:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","channels:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","config:validate":"node scripts/run-brigade.mjs config validate","extensions:init":"node scripts/run-brigade.mjs extensions init","extensions:list":"node scripts/run-brigade.mjs extensions list","gateway:install":"node scripts/run-brigade.mjs gateway install","gateway:restart":"node scripts/run-brigade.mjs gateway restart","pairing:approve":"node scripts/run-brigade.mjs pairing approve --channel whatsapp","store:mode:show":"node scripts/run-brigade.mjs store mode show","telegram:enable":"node scripts/run-brigade.mjs channels enable --channel telegram","telegram:status":"node scripts/run-brigade.mjs channels status --channel telegram","bloody benchmark":"node scripts/run-brigade.mjs bloody benchmark","channels:disable":"node scripts/run-brigade.mjs channels disable --channel whatsapp","sessions:cleanup":"node scripts/run-brigade.mjs sessions cleanup","telegram:disable":"node scripts/run-brigade.mjs channels disable --channel telegram","extensions:doctor":"node scripts/run-brigade.mjs extensions doctor","extensions:remove":"node scripts/run-brigade.mjs extensions remove","gateway:uninstall":"node scripts/run-brigade.mjs gateway uninstall","smoke:strict-zero":"tsx scripts/strict-zero-smoke.mjs","store:reset:purge":"node scripts/run-brigade.mjs store reset --purge-local","channels:allow:add":"node scripts/run-brigade.mjs channels allow add --channel whatsapp","telegram:allow:add":"node scripts/run-brigade.mjs channels allow add --channel telegram","agents:set-identity":"node scripts/run-brigade.mjs agents set-identity","channels:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel whatsapp","telegram:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel telegram"},"_npmUser":{"name":"spinabot-labs","email":"npm@spinabot.com"},"overrides":{"ws":"$ws","exceljs":{"uuid":"^11.1.1"},"discord.js":{"undici":"^6.28.0"},"ip-address":"^10.5.0","protobufjs":"^7.6.5","@discordjs/rest":{"undici":"^6.28.0"},"brace-expansion@1":"^1.1.18","brace-expansion@2":"^2.1.4","brace-expansion@5":"^5.0.9","@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@earendil-works/pi-agent-core":"0.79.9","@earendil-works/pi-coding-agent":{"undici":"^8.9.0"}},"repository":{"url":"git+https://github.com/spinabot/brigade.git","type":"git"},"_npmVersion":"11.17.0","description":"Brigade — your personal AI crew","directories":{},"_nodeVersion":"24.19.0","dependencies":{"ws":"^8.21.0","tar":"^7.5.22","zod":"^3.23.8","docx":"^9.7.1","jimp":"^1.6.1","jiti":"^2.6.1","yaml":"^2.9.0","chalk":"^5.3.0","json5":"^2.2.3","unpdf":"^1.6.2","cfonts":"^3.3.1","convex":"^1.40.0","croner":"^10.0.1","fflate":"^0.8.3","grammy":"^1.42.0","undici":"^7.29.0","exceljs":"^4.4.0","prompts":"^2.4.2","linkedom":"^0.18.12","commander":"^12.1.0","minimatch":"^10.2.5","pptxgenjs":"^4.0.1","discord.js":"^14.26.4","cli-highlight":"^2.1.11","@composio/core":"^0.14.1","@slack/web-api":"^7.17.0","@cantoo/pdf-lib":"^2.7.1","@grammyjs/types":"^3.21.0","playwright-core":"^1.59.0","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@pdf-lib/fontkit":"^1.1.1","https-proxy-agent":"^7.0.6","socks-proxy-agent":"^10.1.0","@slack/socket-mode":"^2.0.7","@mozilla/readability":"^0.6.0","@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@whiskeysockets/baileys":"7.0.0-rc13","@anthropic-ai/claude-code":"^2.1.0","@earendil-works/pi-agent-core":"0.79.9","@earendil-works/pi-coding-agent":"0.79.9","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","@types/ws":"^8.18.1","@types/tar":"^6.1.13","typescript":"^5.6.3","@types/node":"^22.10.0","@types/prompts":"^2.4.9","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2"},"_npmOperationalInternal":{"tmp":"tmp/brigade_1.37.0_1788324627101_0.04308535165635652","host":"s3://npm-registry-packages-npm-production"}},"1.37.1":{"name":"@spinabot/brigade","version":"1.37.1","keywords":["ai","agent","agents","ai-agent","cli","tui","llm","claude","openai","gemini","ollama","whatsapp","gateway","brigade"],"author":{"name":"Spinabot","email":"hello@brigade-agent.ai"},"license":"MIT","_id":"@spinabot/brigade@1.37.1","maintainers":[{"name":"dev-spinabot","email":"bhasvanth02@gmail.com"},{"name":"spinabot-labs","email":"npm@spinabot.com"}],"homepage":"https://brigade.spinabot.com","bugs":{"url":"https://github.com/spinabot/brigade/issues","email":"hello@brigade-agent.ai"},"bin":{"brigade":"brigade.mjs"},"dist":{"shasum":"989f49ea0e6b87ebfe495942a879261a60b33edb","tarball":"https://registry.npmjs.org/@spinabot/brigade/-/brigade-1.37.1.tgz","fileCount":3157,"integrity":"sha512-CaoarQ406L9NMfUJffRBjwGvCAnAIgXINse6E3qQxqpU1PyxuC2ToRwPtr+nut5SGC4ROS3t4vzvD8qoTrE0+Q==","signatures":[{"sig":"MEYCIQCtQDdKTPYJa060ynZmFhzriBVkSL9+uLaIjfNFsbMj8AIhANqqPzXzAKkLYEt+33HU4yqT5ZNpV5LaCO6CsOvVIe8L","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spinabot%2fbrigade@1.37.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22497474},"main":"dist/entry.js","type":"module","types":"./dist/entry.d.ts","engines":{"node":">=22.12"},"exports":{".":"./brigade.mjs","./channel-sdk":{"types":"./dist/channel-sdk.d.ts","import":"./dist/channel-sdk.js"},"./package.json":"./package.json","./extension-sdk":{"types":"./dist/extension-sdk.d.ts","import":"./dist/extension-sdk.js"}},"gitHead":"e24cee8bc2fbc9e2365185fa24044a982ac8a621","scripts":{"wa":"node scripts/run-brigade.mjs channels status --channel whatsapp","dev":"node scripts/run-brigade.mjs","tui":"node scripts/run-brigade.mjs tui","auth":"node scripts/run-brigade.mjs auth","logs":"node scripts/run-brigade.mjs logs","test":"node scripts/run-tests.mjs","agent":"node scripts/run-brigade.mjs agent","bench":"node --import tsx --test src/tideline/eval/comparison.test.ts src/tideline/eval/gold-hard.test.ts src/agents/memory/eval/gold-parity.test.ts src/tideline/eval/asr-bench.test.ts","build":"tsc -p tsconfig.build.json","clean":"node -e \"import('node:fs').then(fs => fs.rmSync('dist', { recursive: true, force: true }))\"","login":"node scripts/run-brigade.mjs login","start":"node scripts/run-brigade.mjs","store":"node scripts/run-brigade.mjs store","watch":"tsx --watch src/entry.ts","agents":"node scripts/run-brigade.mjs agents","backup":"node scripts/run-brigade.mjs backup create","doctor":"node scripts/run-brigade.mjs doctor","expose":"node scripts/run-brigade.mjs expose","skills":"node scripts/run-brigade.mjs skills list","status":"node scripts/run-brigade.mjs status","update":"node scripts/run-brigade.mjs update","brigade":"node brigade.mjs","connect":"node scripts/run-brigade.mjs connect","dev:tsx":"tsx src/entry.ts","gateway":"node scripts/run-brigade.mjs gateway","onboard":"node scripts/run-brigade.mjs onboard","pairing":"node scripts/run-brigade.mjs pairing list --channel whatsapp","prepack":"npm run build","tui:bin":"node brigade.mjs tui","upgrade":"node scripts/run-brigade.mjs upgrade","wa:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels":"node scripts/run-brigade.mjs channels","sessions":"node scripts/run-brigade.mjs sessions list","telegram":"node scripts/run-brigade.mjs channels status --channel telegram","wa:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","agent:bin":"node brigade.mjs agent","exec:list":"node scripts/run-brigade.mjs exec list","login:bin":"node brigade.mjs login","postbuild":"node scripts/build-done.mjs","tui:watch":"tsx --watch src/entry.ts tui","typecheck":"tsc -p tsconfig.json --noEmit","wa:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","wa:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","agents:add":"node scripts/run-brigade.mjs agents add","agents:bin":"node brigade.mjs agents","convex:dev":"node scripts/install-convex.mjs && node scripts/convex-dev.mjs","doctor:bin":"node brigade.mjs doctor","extensions":"node scripts/run-brigade.mjs extensions list","status:bin":"node brigade.mjs status","store:mode":"node scripts/run-brigade.mjs store mode show","update:bin":"node brigade.mjs update","agent:watch":"tsx --watch src/entry.ts agent","agents:bind":"node scripts/run-brigade.mjs agents bind","agents:list":"node scripts/run-brigade.mjs agents list","build:watch":"tsc -p tsconfig.build.json --watch","config:file":"node scripts/run-brigade.mjs config file","config:list":"node scripts/run-brigade.mjs config list","connect:bin":"node brigade.mjs connect","convex:push":"node scripts/convex-push.mjs","doctor:json":"node scripts/run-brigade.mjs doctor --json","expose:stop":"node scripts/run-brigade.mjs expose stop","gateway:bin":"node brigade.mjs gateway","logs:follow":"node scripts/run-brigade.mjs logs --follow","onboard:bin":"node brigade.mjs onboard","postinstall":"node scripts/brand-oauth-page.mjs","skills:info":"node scripts/run-brigade.mjs skills info","skills:list":"node scripts/run-brigade.mjs skills list","status:json":"node scripts/run-brigade.mjs status --json","store:reset":"node scripts/run-brigade.mjs store reset","upgrade:bin":"node brigade.mjs upgrade","channels:add":"node scripts/run-brigade.mjs channels add","gateway:stop":"node scripts/run-brigade.mjs gateway stop","pairing:list":"node scripts/run-brigade.mjs pairing list --channel whatsapp","update:check":"node scripts/run-brigade.mjs update --check","agents:delete":"node scripts/run-brigade.mjs agents delete","agents:unbind":"node scripts/run-brigade.mjs agents unbind","backup:create":"node scripts/run-brigade.mjs backup create","backup:verify":"node scripts/run-brigade.mjs backup verify","channels:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels:list":"node scripts/run-brigade.mjs channels list","config:schema":"node scripts/run-brigade.mjs config schema","connect:watch":"tsx --watch src/entry.ts connect","doctor:strict":"node scripts/run-brigade.mjs doctor --strict","expose:status":"node scripts/run-brigade.mjs expose status","gateway:watch":"tsx --watch src/entry.ts gateway","onboard:watch":"tsx --watch src/entry.ts onboard","secrets:audit":"node scripts/run-brigade.mjs secrets audit","sessions:list":"node scripts/run-brigade.mjs sessions list","store:migrate":"node scripts/run-brigade.mjs store migrate","test:mutation":"node scripts/mutation-check.mjs","backup:restore":"node scripts/run-brigade.mjs backup restore","build:tideline":"node scripts/build-tideline.mjs","channels:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","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","convex:install":"node scripts/install-convex.mjs","extensions:add":"node scripts/run-brigade.mjs extensions add","gateway:status":"node scripts/run-brigade.mjs gateway status","pairing:revoke":"node scripts/run-brigade.mjs pairing revoke --channel whatsapp","store:mode:set":"node scripts/run-brigade.mjs store mode set","telegram:allow":"node scripts/run-brigade.mjs channels allow list --channel telegram","telegram:token":"node scripts/run-brigade.mjs channels add --channel telegram","agents:bindings":"node scripts/run-brigade.mjs agents bindings","channels:enable":"node scripts/run-brigade.mjs channels enable --channel whatsapp","channels:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","channels:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","config:validate":"node scripts/run-brigade.mjs config validate","extensions:init":"node scripts/run-brigade.mjs extensions init","extensions:list":"node scripts/run-brigade.mjs extensions list","gateway:install":"node scripts/run-brigade.mjs gateway install","gateway:restart":"node scripts/run-brigade.mjs gateway restart","pairing:approve":"node scripts/run-brigade.mjs pairing approve --channel whatsapp","store:mode:show":"node scripts/run-brigade.mjs store mode show","telegram:enable":"node scripts/run-brigade.mjs channels enable --channel telegram","telegram:status":"node scripts/run-brigade.mjs channels status --channel telegram","bloody benchmark":"node scripts/run-brigade.mjs bloody benchmark","channels:disable":"node scripts/run-brigade.mjs channels disable --channel whatsapp","sessions:cleanup":"node scripts/run-brigade.mjs sessions cleanup","telegram:disable":"node scripts/run-brigade.mjs channels disable --channel telegram","extensions:doctor":"node scripts/run-brigade.mjs extensions doctor","extensions:remove":"node scripts/run-brigade.mjs extensions remove","gateway:uninstall":"node scripts/run-brigade.mjs gateway uninstall","smoke:strict-zero":"tsx scripts/strict-zero-smoke.mjs","store:reset:purge":"node scripts/run-brigade.mjs store reset --purge-local","channels:allow:add":"node scripts/run-brigade.mjs channels allow add --channel whatsapp","telegram:allow:add":"node scripts/run-brigade.mjs channels allow add --channel telegram","agents:set-identity":"node scripts/run-brigade.mjs agents set-identity","channels:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel whatsapp","telegram:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel telegram","test:tideline-package":"npm run build:tideline && node scripts/test-tideline-package.mjs"},"_npmUser":{"name":"spinabot-labs","email":"npm@spinabot.com"},"overrides":{"ws":"$ws","exceljs":{"uuid":"^11.1.1"},"discord.js":{"undici":"^6.28.0"},"ip-address":"^10.5.0","protobufjs":"^7.6.5","@discordjs/rest":{"undici":"^6.28.0"},"brace-expansion@1":"^1.1.18","brace-expansion@2":"^2.1.4","brace-expansion@5":"^5.0.9","@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@earendil-works/pi-agent-core":"0.79.9","@earendil-works/pi-coding-agent":{"undici":"^8.9.0"}},"repository":{"url":"git+https://github.com/spinabot/brigade.git","type":"git"},"_npmVersion":"11.19.0","description":"Brigade — your personal AI crew","directories":{},"_nodeVersion":"24.20.0","dependencies":{"ws":"^8.21.0","tar":"^7.5.22","zod":"^3.23.8","docx":"^9.7.1","jimp":"^1.6.1","jiti":"^2.6.1","yaml":"^2.9.0","chalk":"^5.3.0","json5":"^2.2.3","unpdf":"^1.6.2","cfonts":"^3.3.1","convex":"^1.40.0","croner":"^10.0.1","fflate":"^0.8.3","grammy":"^1.42.0","undici":"^7.29.0","exceljs":"^4.4.0","prompts":"^2.4.2","linkedom":"^0.18.12","commander":"^12.1.0","minimatch":"^10.2.5","pptxgenjs":"^4.0.1","discord.js":"^14.26.4","cli-highlight":"^2.1.11","@composio/core":"^0.14.1","@slack/web-api":"^7.17.0","@cantoo/pdf-lib":"^2.7.1","@grammyjs/types":"^3.21.0","playwright-core":"^1.59.0","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@pdf-lib/fontkit":"^1.1.1","https-proxy-agent":"^7.0.6","socks-proxy-agent":"^10.1.0","@slack/socket-mode":"^2.0.7","@mozilla/readability":"^0.6.0","@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@whiskeysockets/baileys":"7.0.0-rc13","@anthropic-ai/claude-code":"^2.1.0","@earendil-works/pi-agent-core":"0.79.9","@earendil-works/pi-coding-agent":"0.79.9","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","@types/ws":"^8.18.1","@types/tar":"^6.1.13","typescript":"^5.6.3","@types/node":"^22.10.0","@types/prompts":"^2.4.9","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2"},"_npmOperationalInternal":{"tmp":"tmp/brigade_1.37.1_1788943059745_0.6434497697696244","host":"s3://npm-registry-packages-npm-production"}},"1.38.0":{"name":"@spinabot/brigade","version":"1.38.0","keywords":["ai","agent","agents","ai-agent","cli","tui","llm","claude","openai","gemini","ollama","whatsapp","gateway","brigade"],"author":{"name":"Spinabot","email":"hello@brigade-agent.ai"},"license":"MIT","_id":"@spinabot/brigade@1.38.0","maintainers":[{"name":"dev-spinabot","email":"bhasvanth02@gmail.com"},{"name":"spinabot-labs","email":"npm@spinabot.com"}],"homepage":"https://brigade.spinabot.com","bugs":{"url":"https://github.com/spinabot/brigade/issues","email":"hello@brigade-agent.ai"},"bin":{"brigade":"brigade.mjs"},"dist":{"shasum":"c745c972dc4ab1b1f0b908e1d3c2cfd5f1e53e6f","tarball":"https://registry.npmjs.org/@spinabot/brigade/-/brigade-1.38.0.tgz","fileCount":3157,"integrity":"sha512-EsqzH0NSJKLOgd+McfEDuc3dbzOJMpqPZFgyw+sJioe0ELammrlqAxqG/HsCNA9gRqOqEmbmtsk8JLwX3YaqHg==","signatures":[{"sig":"MEYCIQDpG9a3QpgnczZW1Y91LjPLIBgzt0uEBZqDkpMZkTdgMwIhALU1TM6zxEz9/IGT6sv5Un2ZF8M7v03RnA7h/4GTtLeM","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spinabot%2fbrigade@1.38.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22498215},"main":"dist/entry.js","type":"module","types":"./dist/entry.d.ts","engines":{"node":">=22.12"},"exports":{".":"./brigade.mjs","./channel-sdk":{"types":"./dist/channel-sdk.d.ts","import":"./dist/channel-sdk.js"},"./package.json":"./package.json","./extension-sdk":{"types":"./dist/extension-sdk.d.ts","import":"./dist/extension-sdk.js"}},"gitHead":"b6a37c006678b07ce02f952c3eef9e09f2a6f0bb","scripts":{"wa":"node scripts/run-brigade.mjs channels status --channel whatsapp","dev":"node scripts/run-brigade.mjs","tui":"node scripts/run-brigade.mjs tui","auth":"node scripts/run-brigade.mjs auth","logs":"node scripts/run-brigade.mjs logs","test":"node scripts/run-tests.mjs","agent":"node scripts/run-brigade.mjs agent","bench":"node --import tsx --test src/tideline/eval/comparison.test.ts src/tideline/eval/gold-hard.test.ts src/agents/memory/eval/gold-parity.test.ts src/tideline/eval/asr-bench.test.ts","build":"tsc -p tsconfig.build.json","clean":"node -e \"import('node:fs').then(fs => fs.rmSync('dist', { recursive: true, force: true }))\"","login":"node scripts/run-brigade.mjs login","start":"node scripts/run-brigade.mjs","store":"node scripts/run-brigade.mjs store","watch":"tsx --watch src/entry.ts","agents":"node scripts/run-brigade.mjs agents","backup":"node scripts/run-brigade.mjs backup create","doctor":"node scripts/run-brigade.mjs doctor","expose":"node scripts/run-brigade.mjs expose","skills":"node scripts/run-brigade.mjs skills list","status":"node scripts/run-brigade.mjs status","update":"node scripts/run-brigade.mjs update","brigade":"node brigade.mjs","connect":"node scripts/run-brigade.mjs connect","dev:tsx":"tsx src/entry.ts","gateway":"node scripts/run-brigade.mjs gateway","onboard":"node scripts/run-brigade.mjs onboard","pairing":"node scripts/run-brigade.mjs pairing list --channel whatsapp","prepack":"npm run build","tui:bin":"node brigade.mjs tui","upgrade":"node scripts/run-brigade.mjs upgrade","wa:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels":"node scripts/run-brigade.mjs channels","sessions":"node scripts/run-brigade.mjs sessions list","telegram":"node scripts/run-brigade.mjs channels status --channel telegram","wa:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","agent:bin":"node brigade.mjs agent","exec:list":"node scripts/run-brigade.mjs exec list","login:bin":"node brigade.mjs login","postbuild":"node scripts/build-done.mjs","tui:watch":"tsx --watch src/entry.ts tui","typecheck":"tsc -p tsconfig.json --noEmit","wa:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","wa:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","agents:add":"node scripts/run-brigade.mjs agents add","agents:bin":"node brigade.mjs agents","convex:dev":"node scripts/install-convex.mjs && node scripts/convex-dev.mjs","doctor:bin":"node brigade.mjs doctor","extensions":"node scripts/run-brigade.mjs extensions list","status:bin":"node brigade.mjs status","store:mode":"node scripts/run-brigade.mjs store mode show","update:bin":"node brigade.mjs update","agent:watch":"tsx --watch src/entry.ts agent","agents:bind":"node scripts/run-brigade.mjs agents bind","agents:list":"node scripts/run-brigade.mjs agents list","build:watch":"tsc -p tsconfig.build.json --watch","config:file":"node scripts/run-brigade.mjs config file","config:list":"node scripts/run-brigade.mjs config list","connect:bin":"node brigade.mjs connect","convex:push":"node scripts/convex-push.mjs","doctor:json":"node scripts/run-brigade.mjs doctor --json","expose:stop":"node scripts/run-brigade.mjs expose stop","gateway:bin":"node brigade.mjs gateway","logs:follow":"node scripts/run-brigade.mjs logs --follow","onboard:bin":"node brigade.mjs onboard","postinstall":"node scripts/brand-oauth-page.mjs","skills:info":"node scripts/run-brigade.mjs skills info","skills:list":"node scripts/run-brigade.mjs skills list","status:json":"node scripts/run-brigade.mjs status --json","store:reset":"node scripts/run-brigade.mjs store reset","upgrade:bin":"node brigade.mjs upgrade","channels:add":"node scripts/run-brigade.mjs channels add","gateway:stop":"node scripts/run-brigade.mjs gateway stop","pairing:list":"node scripts/run-brigade.mjs pairing list --channel whatsapp","update:check":"node scripts/run-brigade.mjs update --check","agents:delete":"node scripts/run-brigade.mjs agents delete","agents:unbind":"node scripts/run-brigade.mjs agents unbind","backup:create":"node scripts/run-brigade.mjs backup create","backup:verify":"node scripts/run-brigade.mjs backup verify","channels:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels:list":"node scripts/run-brigade.mjs channels list","config:schema":"node scripts/run-brigade.mjs config schema","connect:watch":"tsx --watch src/entry.ts connect","doctor:strict":"node scripts/run-brigade.mjs doctor --strict","expose:status":"node scripts/run-brigade.mjs expose status","gateway:watch":"tsx --watch src/entry.ts gateway","onboard:watch":"tsx --watch src/entry.ts onboard","secrets:audit":"node scripts/run-brigade.mjs secrets audit","sessions:list":"node scripts/run-brigade.mjs sessions list","store:migrate":"node scripts/run-brigade.mjs store migrate","test:mutation":"node scripts/mutation-check.mjs","backup:restore":"node scripts/run-brigade.mjs backup restore","build:tideline":"node scripts/build-tideline.mjs","channels:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","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","convex:install":"node scripts/install-convex.mjs","extensions:add":"node scripts/run-brigade.mjs extensions add","gateway:status":"node scripts/run-brigade.mjs gateway status","pairing:revoke":"node scripts/run-brigade.mjs pairing revoke --channel whatsapp","store:mode:set":"node scripts/run-brigade.mjs store mode set","telegram:allow":"node scripts/run-brigade.mjs channels allow list --channel telegram","telegram:token":"node scripts/run-brigade.mjs channels add --channel telegram","agents:bindings":"node scripts/run-brigade.mjs agents bindings","channels:enable":"node scripts/run-brigade.mjs channels enable --channel whatsapp","channels:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","channels:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","config:validate":"node scripts/run-brigade.mjs config validate","extensions:init":"node scripts/run-brigade.mjs extensions init","extensions:list":"node scripts/run-brigade.mjs extensions list","gateway:install":"node scripts/run-brigade.mjs gateway install","gateway:restart":"node scripts/run-brigade.mjs gateway restart","pairing:approve":"node scripts/run-brigade.mjs pairing approve --channel whatsapp","store:mode:show":"node scripts/run-brigade.mjs store mode show","telegram:enable":"node scripts/run-brigade.mjs channels enable --channel telegram","telegram:status":"node scripts/run-brigade.mjs channels status --channel telegram","bloody benchmark":"node scripts/run-brigade.mjs bloody benchmark","channels:disable":"node scripts/run-brigade.mjs channels disable --channel whatsapp","sessions:cleanup":"node scripts/run-brigade.mjs sessions cleanup","telegram:disable":"node scripts/run-brigade.mjs channels disable --channel telegram","extensions:doctor":"node scripts/run-brigade.mjs extensions doctor","extensions:remove":"node scripts/run-brigade.mjs extensions remove","gateway:uninstall":"node scripts/run-brigade.mjs gateway uninstall","smoke:strict-zero":"tsx scripts/strict-zero-smoke.mjs","store:reset:purge":"node scripts/run-brigade.mjs store reset --purge-local","channels:allow:add":"node scripts/run-brigade.mjs channels allow add --channel whatsapp","telegram:allow:add":"node scripts/run-brigade.mjs channels allow add --channel telegram","agents:set-identity":"node scripts/run-brigade.mjs agents set-identity","channels:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel whatsapp","telegram:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel telegram","test:tideline-package":"npm run build:tideline && node scripts/test-tideline-package.mjs"},"_npmUser":{"name":"spinabot-labs","email":"npm@spinabot.com"},"overrides":{"ws":"$ws","exceljs":{"uuid":"^11.1.1"},"discord.js":{"undici":"^6.28.0"},"ip-address":"^10.5.0","protobufjs":"^7.6.5","@discordjs/rest":{"undici":"^6.28.0"},"brace-expansion@1":"^1.1.18","brace-expansion@2":"^2.1.4","brace-expansion@5":"^5.0.9","@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@earendil-works/pi-agent-core":"0.79.9","@earendil-works/pi-coding-agent":{"undici":"^8.9.0"}},"repository":{"url":"git+https://github.com/spinabot/brigade.git","type":"git"},"_npmVersion":"11.19.0","description":"Brigade — your personal AI crew","directories":{},"_nodeVersion":"24.20.0","dependencies":{"ws":"^8.21.0","tar":"^7.5.22","zod":"^3.23.8","docx":"^9.7.1","jimp":"^1.6.1","jiti":"^2.6.1","yaml":"^2.9.0","chalk":"^5.3.0","json5":"^2.2.3","unpdf":"^1.6.2","cfonts":"^3.3.1","convex":"^1.40.0","croner":"^10.0.1","fflate":"^0.8.3","grammy":"^1.42.0","undici":"^7.29.0","exceljs":"^4.4.0","prompts":"^2.4.2","linkedom":"^0.18.12","commander":"^12.1.0","minimatch":"^10.2.5","pptxgenjs":"^4.0.1","discord.js":"^14.26.4","cli-highlight":"^2.1.11","@composio/core":"^0.14.1","@slack/web-api":"^7.17.0","@cantoo/pdf-lib":"^2.7.1","@grammyjs/types":"^3.21.0","playwright-core":"^1.59.0","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@pdf-lib/fontkit":"^1.1.1","https-proxy-agent":"^7.0.6","socks-proxy-agent":"^10.1.0","@slack/socket-mode":"^2.0.7","@mozilla/readability":"^0.6.0","@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@whiskeysockets/baileys":"7.0.0-rc13","@anthropic-ai/claude-code":"^2.1.0","@earendil-works/pi-agent-core":"0.79.9","@earendil-works/pi-coding-agent":"0.79.9","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","@types/ws":"^8.18.1","@types/tar":"^6.1.13","typescript":"^5.6.3","@types/node":"^22.10.0","@types/prompts":"^2.4.9","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2"},"_npmOperationalInternal":{"tmp":"tmp/brigade_1.38.0_1789013979057_0.5579708059729849","host":"s3://npm-registry-packages-npm-production"}},"1.39.0":{"_id":"@spinabot/brigade@1.39.0","bin":{"brigade":"brigade.mjs"},"bugs":{"url":"https://github.com/spinabot/brigade/issues","email":"hello@brigade-agent.ai"},"dist":{"shasum":"b0b65bc29ee40438fb4f5650a73a7219eb6bdad0","tarball":"https://registry.npmjs.org/@spinabot/brigade/-/brigade-1.39.0.tgz","fileCount":3284,"integrity":"sha512-ymmmvTpV091ZdWubRYVtVSyZQoJgyRRhyEZqE1L/sVEKqGYP52satgUYhgnLZ2GQkQQVLI3SR7OgqrpvJ5EDpg==","signatures":[{"sig":"MEQCIApym6f3d9D4NeRLePKeTnOTJlMx2QEPqkB6+geU1M7bAiBj0wX+2V+Z1tD/oR+8Uc/F/TpcABLbhh2Spq3iycOx4Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCi3AmyyA3BOSoyTw3rbZkVmiWCNx8xMSSJaJdoLsnmYAIhAJn1tsw/7/g89Qugt8cFSbxEHPxY91kTtaMoZwWtTFT4"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spinabot%2fbrigade@1.39.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23665563},"main":"dist/entry.js","name":"@spinabot/brigade","type":"module","types":"./dist/entry.d.ts","author":{"name":"Spinabot","email":"hello@brigade-agent.ai"},"engines":{"node":">=22.12"},"exports":{".":"./brigade.mjs","./channel-sdk":{"types":"./dist/channel-sdk.d.ts","import":"./dist/channel-sdk.js"},"./package.json":"./package.json","./extension-sdk":{"types":"./dist/extension-sdk.d.ts","import":"./dist/extension-sdk.js"}},"gitHead":"4c2a18fba9a7224fbddd07557ad3933866f60495","license":"MIT","scripts":{"wa":"node scripts/run-brigade.mjs channels status --channel whatsapp","dev":"node scripts/run-brigade.mjs","tui":"node scripts/run-brigade.mjs tui","auth":"node scripts/run-brigade.mjs auth","logs":"node scripts/run-brigade.mjs logs","test":"node scripts/run-tests.mjs","agent":"node scripts/run-brigade.mjs agent","bench":"node --import tsx --test src/tideline/eval/comparison.test.ts src/tideline/eval/gold-hard.test.ts src/agents/memory/eval/gold-parity.test.ts src/tideline/eval/asr-bench.test.ts","build":"tsc -p tsconfig.build.json","clean":"node -e \"import('node:fs').then(fs => fs.rmSync('dist', { recursive: true, force: true }))\"","login":"node scripts/run-brigade.mjs login","start":"node scripts/run-brigade.mjs","store":"node scripts/run-brigade.mjs store","watch":"tsx --watch src/entry.ts","agents":"node scripts/run-brigade.mjs agents","backup":"node scripts/run-brigade.mjs backup create","doctor":"node scripts/run-brigade.mjs doctor","expose":"node scripts/run-brigade.mjs expose","skills":"node scripts/run-brigade.mjs skills list","status":"node scripts/run-brigade.mjs status","update":"node scripts/run-brigade.mjs update","brigade":"node brigade.mjs","connect":"node scripts/run-brigade.mjs connect","dev:tsx":"tsx src/entry.ts","gateway":"node scripts/run-brigade.mjs gateway","onboard":"node scripts/run-brigade.mjs onboard","pairing":"node scripts/run-brigade.mjs pairing list --channel whatsapp","prepack":"npm run build","tui:bin":"node brigade.mjs tui","upgrade":"node scripts/run-brigade.mjs upgrade","wa:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels":"node scripts/run-brigade.mjs channels","sessions":"node scripts/run-brigade.mjs sessions list","telegram":"node scripts/run-brigade.mjs channels status --channel telegram","wa:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","agent:bin":"node brigade.mjs agent","exec:list":"node scripts/run-brigade.mjs exec list","login:bin":"node brigade.mjs login","postbuild":"node scripts/build-done.mjs","tui:watch":"tsx --watch src/entry.ts tui","typecheck":"tsc -p tsconfig.json --noEmit","wa:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","wa:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","agents:add":"node scripts/run-brigade.mjs agents add","agents:bin":"node brigade.mjs agents","convex:dev":"node scripts/install-convex.mjs && node scripts/convex-dev.mjs","doctor:bin":"node brigade.mjs doctor","extensions":"node scripts/run-brigade.mjs extensions list","status:bin":"node brigade.mjs status","store:mode":"node scripts/run-brigade.mjs store mode show","update:bin":"node brigade.mjs update","agent:watch":"tsx --watch src/entry.ts agent","agents:bind":"node scripts/run-brigade.mjs agents bind","agents:list":"node scripts/run-brigade.mjs agents list","build:watch":"tsc -p tsconfig.build.json --watch","config:file":"node scripts/run-brigade.mjs config file","config:list":"node scripts/run-brigade.mjs config list","connect:bin":"node brigade.mjs connect","convex:push":"node scripts/convex-push.mjs","doctor:json":"node scripts/run-brigade.mjs doctor --json","expose:stop":"node scripts/run-brigade.mjs expose stop","gateway:bin":"node brigade.mjs gateway","logs:follow":"node scripts/run-brigade.mjs logs --follow","onboard:bin":"node brigade.mjs onboard","postinstall":"node scripts/brand-oauth-page.mjs","skills:info":"node scripts/run-brigade.mjs skills info","skills:list":"node scripts/run-brigade.mjs skills list","status:json":"node scripts/run-brigade.mjs status --json","store:reset":"node scripts/run-brigade.mjs store reset","upgrade:bin":"node brigade.mjs upgrade","channels:add":"node scripts/run-brigade.mjs channels add","gateway:stop":"node scripts/run-brigade.mjs gateway stop","pairing:list":"node scripts/run-brigade.mjs pairing list --channel whatsapp","update:check":"node scripts/run-brigade.mjs update --check","agents:delete":"node scripts/run-brigade.mjs agents delete","agents:unbind":"node scripts/run-brigade.mjs agents unbind","backup:create":"node scripts/run-brigade.mjs backup create","backup:verify":"node scripts/run-brigade.mjs backup verify","channels:link":"node scripts/run-brigade.mjs channels link --channel whatsapp","channels:list":"node scripts/run-brigade.mjs channels list","config:schema":"node scripts/run-brigade.mjs config schema","connect:watch":"tsx --watch src/entry.ts connect","doctor:strict":"node scripts/run-brigade.mjs doctor --strict","expose:status":"node scripts/run-brigade.mjs expose status","gateway:watch":"tsx --watch src/entry.ts gateway","onboard:watch":"tsx --watch src/entry.ts onboard","secrets:audit":"node scripts/run-brigade.mjs secrets audit","sessions:list":"node scripts/run-brigade.mjs sessions list","store:migrate":"node scripts/run-brigade.mjs store migrate","test:mutation":"node scripts/mutation-check.mjs","backup:restore":"node scripts/run-brigade.mjs backup restore","build:tideline":"node scripts/build-tideline.mjs","channels:allow":"node scripts/run-brigade.mjs channels allow list --channel whatsapp","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","convex:install":"node scripts/install-convex.mjs","extensions:add":"node scripts/run-brigade.mjs extensions add","gateway:status":"node scripts/run-brigade.mjs gateway status","pairing:revoke":"node scripts/run-brigade.mjs pairing revoke --channel whatsapp","store:mode:set":"node scripts/run-brigade.mjs store mode set","telegram:allow":"node scripts/run-brigade.mjs channels allow list --channel telegram","telegram:token":"node scripts/run-brigade.mjs channels add --channel telegram","agents:bindings":"node scripts/run-brigade.mjs agents bindings","channels:enable":"node scripts/run-brigade.mjs channels enable --channel whatsapp","channels:status":"node scripts/run-brigade.mjs channels status --channel whatsapp","channels:unlink":"node scripts/run-brigade.mjs channels unlink --channel whatsapp","config:validate":"node scripts/run-brigade.mjs config validate","extensions:init":"node scripts/run-brigade.mjs extensions init","extensions:list":"node scripts/run-brigade.mjs extensions list","gateway:install":"node scripts/run-brigade.mjs gateway install","gateway:restart":"node scripts/run-brigade.mjs gateway restart","pairing:approve":"node scripts/run-brigade.mjs pairing approve --channel whatsapp","store:mode:show":"node scripts/run-brigade.mjs store mode show","telegram:enable":"node scripts/run-brigade.mjs channels enable --channel telegram","telegram:status":"node scripts/run-brigade.mjs channels status --channel telegram","bloody benchmark":"node scripts/run-brigade.mjs bloody benchmark","channels:disable":"node scripts/run-brigade.mjs channels disable --channel whatsapp","sessions:cleanup":"node scripts/run-brigade.mjs sessions cleanup","telegram:disable":"node scripts/run-brigade.mjs channels disable --channel telegram","extensions:doctor":"node scripts/run-brigade.mjs extensions doctor","extensions:remove":"node scripts/run-brigade.mjs extensions remove","gateway:uninstall":"node scripts/run-brigade.mjs gateway uninstall","smoke:strict-zero":"tsx scripts/strict-zero-smoke.mjs","store:reset:purge":"node scripts/run-brigade.mjs store reset --purge-local","channels:allow:add":"node scripts/run-brigade.mjs channels allow add --channel whatsapp","telegram:allow:add":"node scripts/run-brigade.mjs channels allow add --channel telegram","agents:set-identity":"node scripts/run-brigade.mjs agents set-identity","channels:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel whatsapp","telegram:allow:remove":"node scripts/run-brigade.mjs channels allow remove --channel telegram","test:tideline-package":"npm run build:tideline && node scripts/test-tideline-package.mjs"},"version":"1.39.0","_npmUser":{"name":"spinabot-labs","email":"npm@spinabot.com"},"homepage":"https://brigade.spinabot.com","keywords":["ai","agent","agents","ai-agent","cli","tui","llm","claude","openai","gemini","ollama","whatsapp","gateway","brigade"],"overrides":{"ws":"$ws","exceljs":{"uuid":"^11.1.1"},"pptxgenjs":{"image-size":"^2.0.4"},"discord.js":{"undici":"^6.28.0"},"ip-address":"^10.5.0","protobufjs":"^7.6.5","@discordjs/rest":{"undici":"^6.28.0"},"brace-expansion@1":"^1.1.18","brace-expansion@2":"^2.1.4","brace-expansion@5":"^5.0.9","@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@earendil-works/pi-agent-core":"0.79.9","@earendil-works/pi-coding-agent":{"undici":"^8.9.0"}},"repository":{"url":"git+https://github.com/spinabot/brigade.git","type":"git"},"_npmVersion":"11.19.0","description":"Brigade — your personal AI crew","directories":{},"maintainers":[{"name":"dev-spinabot","email":"bhasvanth02@gmail.com"},{"name":"spinabot-labs","email":"npm@spinabot.com"}],"_nodeVersion":"24.20.0","dependencies":{"ws":"^8.21.0","tar":"^7.5.22","zod":"^3.23.8","docx":"^9.7.1","jimp":"^1.6.1","jiti":"^2.6.1","yaml":"^2.9.0","chalk":"^5.3.0","json5":"^2.2.3","unpdf":"^1.6.2","cfonts":"^3.3.1","convex":"^1.40.0","croner":"^10.0.1","fflate":"^0.8.3","grammy":"^1.42.0","undici":"^7.29.0","exceljs":"^4.4.0","prompts":"^2.4.2","linkedom":"^0.18.12","commander":"^12.1.0","minimatch":"^10.2.5","pptxgenjs":"^4.0.1","discord.js":"^14.26.4","cli-highlight":"^2.1.11","@composio/core":"^0.14.1","@slack/web-api":"^7.17.0","@cantoo/pdf-lib":"^2.7.1","@grammyjs/types":"^3.21.0","playwright-core":"^1.59.0","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@pdf-lib/fontkit":"^1.1.1","https-proxy-agent":"^7.0.6","socks-proxy-agent":"^10.1.0","@slack/socket-mode":"^2.0.7","@mozilla/readability":"^0.6.0","@earendil-works/pi-ai":"0.79.9","@earendil-works/pi-tui":"0.79.9","@whiskeysockets/baileys":"7.0.0-rc13","@anthropic-ai/claude-code":"^2.1.0","@earendil-works/pi-agent-core":"0.79.9","@earendil-works/pi-coding-agent":"0.79.9","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","@types/ws":"^8.18.1","@types/tar":"^6.1.13","typescript":"^5.6.3","@types/node":"^22.10.0","@types/prompts":"^2.4.9","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/brigade_1.39.0_1789485236562_0.6616337643458501"}}},"time":{"created":"2026-05-02T04:28:21.330Z","modified":"2026-09-15T15:13:57.083Z","0.1.0":"2026-05-02T04:28:21.903Z","0.1.1":"2026-05-03T07:14:09.120Z","0.1.2":"2026-05-03T07:29:28.271Z","1.0.0":"2026-06-21T05:25:11.875Z","1.0.1":"2026-06-21T06:14:07.725Z","1.0.2":"2026-06-21T06:29:45.721Z","1.1.0":"2026-06-21T07:22:23.331Z","1.2.0":"2026-06-21T07:45:24.981Z","1.2.1":"2026-06-21T07:58:01.500Z","1.2.2":"2026-06-21T08:12:25.532Z","1.3.0":"2026-06-22T18:04:11.631Z","1.3.1":"2026-06-23T01:36:10.406Z","1.3.2":"2026-06-23T02:16:14.337Z","1.4.0":"2026-06-23T16:35:27.885Z","1.5.0":"2026-06-24T13:40:52.587Z","1.6.0":"2026-06-24T16:48:09.646Z","1.6.1":"2026-06-24T18:12:09.160Z","1.7.0":"2026-06-25T05:39:55.804Z","1.8.0":"2026-06-25T14:48:38.628Z","1.9.0":"2026-06-25T18:43:44.958Z","1.10.0":"2026-06-25T22:06:52.340Z","1.11.0":"2026-06-25T22:24:55.617Z","1.11.1":"2026-06-25T22:45:57.507Z","1.11.2":"2026-06-25T23:02:15.127Z","1.12.0":"2026-06-26T13:11:47.164Z","1.13.0":"2026-06-26T15:22:11.641Z","1.14.0":"2026-06-26T17:23:55.394Z","1.15.0":"2026-06-27T19:48:55.331Z","1.16.0":"2026-06-27T20:44:57.930Z","1.17.0":"2026-06-28T16:21:43.430Z","1.17.1":"2026-06-28T18:07:59.048Z","1.18.0":"2026-06-29T20:17:05.568Z","1.19.0":"2026-06-29T22:13:30.374Z","1.19.1":"2026-06-29T22:41:00.902Z","1.19.2":"2026-06-30T17:15:10.389Z","1.19.3":"2026-07-02T02:30:47.660Z","1.19.4":"2026-07-02T03:25:41.198Z","1.20.0":"2026-07-02T17:50:22.441Z","1.21.0":"2026-07-02T23:12:13.174Z","1.22.0":"2026-07-02T23:25:11.323Z","1.22.1":"2026-07-03T01:28:59.811Z","1.23.0":"2026-07-04T03:22:01.438Z","1.24.0":"2026-07-05T04:34:43.524Z","1.24.1":"2026-07-05T04:50:13.391Z","1.24.2":"2026-07-05T05:52:27.255Z","1.25.0":"2026-07-05T21:31:05.014Z","1.25.1":"2026-07-07T04:26:00.041Z","1.25.2":"2026-07-07T05:00:28.009Z","1.25.3":"2026-07-07T05:16:10.579Z","1.26.1":"2026-07-10T05:51:56.878Z","1.27.0":"2026-07-10T06:13:55.018Z","1.27.1":"2026-07-10T06:32:32.712Z","1.28.0":"2026-07-10T08:38:11.628Z","1.29.0":"2026-07-12T07:33:21.700Z","1.29.1":"2026-07-12T07:56:03.700Z","1.29.2":"2026-07-19T21:34:41.566Z","1.29.3":"2026-07-19T22:07:25.366Z","1.29.4":"2026-07-19T23:16:00.489Z","1.29.5":"2026-08-07T17:02:26.569Z","1.29.6":"2026-08-08T23:12:16.851Z","1.30.0":"2026-08-08T23:46:02.052Z","1.31.0":"2026-08-13T21:29:19.756Z","1.31.1":"2026-08-20T15:32:36.770Z","1.31.2":"2026-08-21T18:25:57.825Z","1.31.3":"2026-08-22T09:04:04.954Z","1.31.4":"2026-08-22T09:30:48.657Z","1.32.0":"2026-08-22T18:34:05.577Z","1.32.1":"2026-08-22T21:12:25.659Z","1.33.0":"2026-08-27T15:37:56.957Z","1.34.0":"2026-08-31T05:26:43.882Z","1.35.0":"2026-08-31T17:21:18.448Z","1.35.1":"2026-08-31T18:18:30.780Z","1.35.2":"2026-08-31T19:38:27.327Z","1.35.3":"2026-08-31T19:48:55.205Z","1.36.0":"2026-08-31T21:03:28.411Z","1.36.1":"2026-08-31T22:10:20.234Z","1.37.0":"2026-09-02T04:50:27.504Z","1.37.1":"2026-09-09T08:37:40.085Z","1.38.0":"2026-09-10T04:19:39.369Z","1.39.0":"2026-09-15T15:13:56.775Z"},"bugs":{"url":"https://github.com/spinabot/brigade/issues","email":"hello@brigade-agent.ai"},"author":{"name":"Spinabot","email":"hello@brigade-agent.ai"},"license":"MIT","homepage":"https://brigade.spinabot.com","keywords":["ai","agent","agents","ai-agent","cli","tui","llm","claude","openai","gemini","ollama","whatsapp","gateway","brigade"],"repository":{"url":"git+https://github.com/spinabot/brigade.git","type":"git"},"description":"Brigade — your personal AI crew","maintainers":[{"name":"dev-spinabot","email":"bhasvanth02@gmail.com"},{"name":"spinabot-labs","email":"npm@spinabot.com"}],"readme":"# 🦁 Brigade — Your personal intelligence, built enterprise-grade\n\n<p align=\"center\">\n  <picture>\n    <source media=\"(prefers-color-scheme: light)\" srcset=\"https://raw.githubusercontent.com/spinabot/brigade/main/assets/brigade-banner-on-black.gif\" />\n    <source media=\"(prefers-color-scheme: dark)\" srcset=\"https://raw.githubusercontent.com/spinabot/brigade/main/assets/brigade-banner.gif\" />\n    <img src=\"https://raw.githubusercontent.com/spinabot/brigade/main/assets/brigade-banner.gif\" alt=\"Brigade — your personal intelligence, built enterprise-grade\" width=\"900\" />\n  </picture>\n</p>\n\n<p align=\"center\">\n  <strong>Built for enterprise scale. Open for everyone.</strong> &middot; <em>An ecosystem, not an app.</em>\n</p>\n\n<p align=\"center\">\n  🔐 <strong>No tokens to juggle. No drama.</strong> No copy-pasting secrets, no telemetry —\n  <strong>we handle them, not you</strong>. Your API keys stay on your own machine, never sent to a middleman.\n</p>\n\n<p align=\"center\">\n  🔑 <strong>No API key? No problem.</strong> Sign in with your <strong>Claude</strong>, <strong>ChatGPT</strong>, or\n  <strong>Copilot</strong> subscription — or, if you're already signed into the <strong>Claude Code</strong> or\n  <strong>Codex</strong> CLI, reuse that login (no browser, no re-auth).\n</p>\n\n<p align=\"center\">\n  🩸💥 <strong>B³ — Brigade Bloody Benchmark</strong> 💥🩸<br/>\n  <sub><strong>NEW in v1.9.0</strong> · the one command that throws your crew to the wolves (lovingly)</sub>\n</p>\n\n<p align=\"center\">\n  <strong><em>Three B's. One bloody command. Your crew — loose on the open internet.</em></strong>\n</p>\n\n<p align=\"center\">\n  <strong>Brigade</strong> is your crew. <strong>Bloody</strong> is what you do to it — fling it into the open with no net, down a red-hot tunnel to the wild. <strong>Benchmark</strong> is the punchline: the only test that ever mattered isn't a lab, it's <em>strangers poking your agents at 3&nbsp;a.m.</em> Survive that, and you've shipped.\n</p>\n\n<p align=\"center\">\n  Under the hood it's tame — HTTPS at the edge, no account, no setup. Cloudflare by default, or bring your own relay (<code>bore</code> · <code>frp</code> · <code>sish</code>, all open-source). A secret key rides along <strong>invisibly</strong>: you never see it, and gate-crashers just bleed out on a <code>401</code>. Not feeling the name? It also answers to the buttoned-up <code>brigade expose</code>. 🩸\n</p>\n\n<p align=\"center\">\n  <code>brigade bloody&nbsp;benchmark</code> &nbsp;·&nbsp; <code>brigade expose</code> &nbsp;·&nbsp; <code>brigade expose stop</code> &nbsp;🩸\n</p>\n\n<p align=\"center\">\n  <a href=\"https://trendshift.io/repositories/118354?utm_source=trendshift-badge&amp;utm_medium=badge&amp;utm_campaign=badge-trendshift-118354\" target=\"_blank\" rel=\"noopener noreferrer\"><img src=\"https://trendshift.io/api/badge/trendshift/repositories/118354/daily?language=TypeScript\" alt=\"spinabot/brigade on Trendshift\" width=\"250\" height=\"55\" /></a>\n</p>\n\n<p align=\"center\">\n  <a href=\"https://github.com/spinabot/brigade/actions/workflows/ci.yml\"><img src=\"https://img.shields.io/github/actions/workflow/status/spinabot/brigade/ci.yml?branch=main&style=for-the-badge&logo=githubactions&logoColor=white&label=CI\" alt=\"CI status\"></a>\n  <a href=\"https://www.npmjs.com/package/@spinabot/brigade\"><img src=\"https://img.shields.io/npm/v/@spinabot/brigade?style=for-the-badge&logo=npm&logoColor=white&color=CB3837\" alt=\"npm version\"></a>\n  <a href=\"https://www.npmjs.com/package/@spinabot/brigade\"><img src=\"https://badgen.net/npm/dt/@spinabot/brigade?icon=npm&color=CB3837\" alt=\"npm total downloads\"></a>\n  <a href=\"https://nodejs.org\"><img src=\"https://img.shields.io/node/v/@spinabot/brigade?style=for-the-badge&logo=nodedotjs&logoColor=white&color=5FA04E&label=node\" alt=\"node engine\"></a>\n  <a href=\"LICENSE\"><img src=\"https://img.shields.io/badge/License-MIT-blue.svg?style=for-the-badge\" alt=\"MIT License\"></a>\n  <a href=\"https://brigade.spinabot.com\"><img src=\"https://img.shields.io/badge/website-brigade.spinabot.com-E8B021?style=for-the-badge&logo=googlechrome&logoColor=white\" alt=\"website\"></a>\n</p>\n\n**Brigade is your personal intelligence, built on enterprise-grade tech**: a crew of\nAI agents on a real org chart that share one long-term memory, Tideline, so what one\nagent learns, the rest can use. They delegate to each other, switch models mid-task\nwithout losing the thread, and act inside the 1,000+ apps you already use. It's an\necosystem you host yourself, with the controls and data sovereignty of enterprise\ntech: no account to create, no SaaS in the middle.\n\nThe same crew runs on a Raspberry Pi or a server. By default it's a small filesystem\ninstall; switch to a self-hosted Convex database when you want one. Bring any model:\nClaude, GPT, Gemini, Llama, or a local Ollama. Privileged actions wait for your\napproval, and your keys and data never leave your machine. No telemetry.\n\nIt's an ecosystem, not an app: one crew you reach from the terminal, WhatsApp, Telegram,\nSlack, Discord, iMessage, and BlueBubbles, and from your watch, Meta smart glasses, and Meta Quest.\n\n```bash\n# macOS / Linux — installs Node if needed, then Brigade (no sudo)\ncurl -fsSL https://brigade.spinabot.com/install.sh | sh\nbrigade\n```\n\nStart it and you get a fast chat TUI. Keep going and you get isolated agents with\ntheir own workspaces and credentials, persistent memory, a skill system, a cron\nscheduler, sub-agent fan-out, an org hierarchy, messaging channels like WhatsApp and Telegram,\n1,000+ app connectors, an MCP memory server, and an optional self-hosted Convex\nbackend — all under one `~/.brigade/` directory you fully own.\n\n> One owner, a whole crew — many agents that coordinate through a real org chart,\n> all on hardware and storage **you** control.\n\n---\n\n## Table of contents\n\n- [Why Brigade](#why-brigade)\n- [Install](#install)\n- [Quick start](#quick-start)\n- [How it works](#how-it-works)\n- [Features](#features)\n- [CLI reference](#cli-reference)\n- [In-chat commands](#in-chat-commands)\n- [Built-in tools](#built-in-tools)\n- [Team Mode](#team-mode)\n- [Multi-agent isolation](#multi-agent-isolation)\n- [Providers & web search](#providers--web-search)\n- [Configuration & storage](#configuration--storage)\n- [Storage modes: filesystem vs. Convex](#storage-modes-filesystem-vs-convex)\n- [MCP memory server](#mcp-memory-server)\n- [Tideline (long-term memory)](#tideline-long-term-memory)\n- [Extending Brigade](#extending-brigade)\n- [Privacy](#privacy)\n- [Develop from source](#develop-from-source)\n- [Contributing](#contributing)\n- [License](#license)\n- [🦁 Brigadiers](#-brigadiers)\n\n---\n\n## Why Brigade\n\n| | |\n|---|---|\n| 🖥️ **Terminal-first** | A flicker-free chat TUI by default. No browser, no Electron. |\n| 🧠 **Memory that lasts** | Facts persist across sessions with origin scoping, decay, and hybrid (keyword + vector) recall — the **Tideline** engine. |\n| 👥 **A real crew** | Spawn isolated agents with their own personas, credentials, and memory; wire them into an **org chart** that governs who can talk to whom. |\n| 🔌 **Bring any model** | Anthropic, OpenAI, Gemini, OpenRouter, OrcaRouter, Token Market, Groq, Cerebras, xAI, DeepSeek, Mistral, local Ollama, or any OpenAI-compatible endpoint. Switch mid-conversation. |\n| 📅 **Always-on** | Run as a headless WebSocket gateway with a crash supervisor, cron jobs, and OS service install. |\n| 💬 **Channels** | Talk to your crew from WhatsApp, Telegram, Slack, Discord, iMessage, and BlueBubbles today; the adapter contract is built for more. |\n| 🔗 **1,000+ connectors** | Gmail, Slack, GitHub, Notion, Calendar, Linear… via the built-in Composio tool. |\n| 📄 **Reads & writes documents** | Send a PDF, Office doc, image, audio, or video and your crew *understands* it — then have it **create or edit** Word, Excel, PowerPoint, and PDF files and hand them back. |\n| 🧩 **MCP** | Expose your long-term memory to any MCP client (`brigade mcp`), or connect MCP servers in. |\n| 🗄️ **Your storage** | Default filesystem mode, or an optional **fully self-hosted Convex** backend with at-rest encryption. |\n| 🔐 **Yours** | Everything lives under `~/.brigade/`. Keys are stored locally at mode `0600`. `rm -rf ~/.brigade` wipes it clean. |\n\n---\n\n## Install\n\n**Fastest — handles Node for you** (installs Node 22.12+ if you don't have it, then Brigade):\n\n```bash\n# macOS / Linux\ncurl -fsSL https://brigade.spinabot.com/install.sh | sh\n# …or straight from GitHub:\ncurl -fsSL https://raw.githubusercontent.com/spinabot/brigade/main/packaging/install/install.sh | sh\n```\n\n```powershell\n# Windows (PowerShell)\nirm https://brigade.spinabot.com/install.ps1 | iex\n# …or straight from GitHub:\nirm https://raw.githubusercontent.com/spinabot/brigade/main/packaging/install/install.ps1 | iex\n```\n\n**Already on Node 22.12+?** Install straight from npm:\n\n```bash\nnpm i -g @spinabot/brigade\n```\n\n> **Hitting `EACCES` / permission denied?** Your Node's global folder needs admin rights. **Don't `sudo`** — either use the `curl … | sh` installer above (it sets up a private, user-owned runtime, no root needed), or point npm at a user-writable prefix: `npm config set prefix ~/.npm-global`, then add `~/.npm-global/bin` to your `PATH`.\n\nThen launch onboarding:\n\n```bash\nbrigade\n```\n\n---\n\n## Quick start\n\n```bash\n# 1. Set up — pick a provider, paste an API key (or scan local Ollama), choose a model\nbrigade onboard\n\n# 2. Start the always-on gateway — your crew, channels, and cron jobs live here\nbrigade gateway run\n\n# 3. Chat with your crew\nbrigade tui\n```\n\nThe onboarding wizard walks you through **five steps**: **(0) storage mode**\n(filesystem or self-hosted Convex), **(1) pick a provider** (Anthropic, OpenAI, Gemini,\nOpenRouter, OrcaRouter, Token Market, Ollama, and more), **(2) connect it** (paste an API key, **sign in with a\nClaude/ChatGPT/Copilot subscription**, reuse your Claude Code or Codex CLI login, or\nconnect local Ollama), **(3) choose a default model**, and **(4) web search** (pick a\nsearch backend; keyless options work out of the box). Subsequent launches resume right\nwhere you left off.\n\n`brigade tui` (or just `brigade`) auto-starts the gateway if it isn't already running,\nso for a quick local session you can skip step 2. To keep the gateway alive across\nreboots, run `brigade gateway install` (installs a launchd / systemd / Task Scheduler\nservice).\n\nOther handy entry points:\n\n```bash\nbrigade agent -m \"summarize ~/today.md\"   # one-shot turn, no TUI\nbrigade connect                            # attach a client to a running gateway\nbrigade doctor                             # health-check your install\n```\n\n---\n\n## How it works\n\nBrigade is one binary that can act as a **gateway** (the long-lived process that\nholds all state and runs agents) or as a **thin client** that attaches to it.\n\n```\n            ┌─────────────────────────── ~/.brigade/ ───────────────────────────┐\n            │  config · per-agent workspaces · sessions (JSONL) · memory · cron  │\n            └───────────────────────────────────────────────────────────────────┘\n                                          ▲\n                                          │ reads/writes (filesystem OR Convex)\n                        ┌─────────────────┴─────────────────┐\n   brigade tui ──ws──▶  │            GATEWAY  :7777          │  ◀──ws── brigade connect\n   brigade chat         │  per-turn agent loop · routing    │\n   WhatsApp·Telegram ──▶│  tools · sub-agents · supervisor  │◀──────── cron jobs\n   MCP client ─stdio──▶ │  (brigade mcp → memory server)    │\n                        └───────────────────────────────────┘\n```\n\n- **Clients are thin.** The TUI (`brigade`/`brigade tui`), `brigade connect`, and\n  channel adapters are all WebSocket clients of the gateway. State lives only in\n  the gateway; clients mirror it. Disconnect, walk away, reconnect later — your\n  agents keep running.\n- **One turn at a time.** Each message runs through a resilient agent loop: resolve\n  the session, assemble the system prompt (persona + skills + org context), stream\n  the model, run tool calls through approval and ownership guards, persist the\n  transcript, reply.\n- **Inbound from anywhere.** A WhatsApp message and a TUI keystroke flow through the\n  same routing pipeline that resolves them to an `(agent, session)` pair, so a peer\n  on one channel never bleeds into another's context.\n- **It stays up.** A heartbeat file plus an out-of-process supervisor restart the\n  gateway if its event loop wedges; per-OS service installers bring it up at login.\n\n---\n\n## Features\n\n### 🧠 Memory (Tideline)\nFile-backed facts (`facts.jsonl`) tagged with an **origin** (owner vs. channel peer)\nso a peer's facts never leak into your context. Facts **decay** on three tiers and\nare deduped at write time, behind a **provenance write-gate** that stops untrusted\nsources from overwriting your identity/preferences. The **Tideline** engine adds\n**hybrid recall** (BM25 keyword + model-free vector lane), a typed link graph, and a\nnightly reflect/consolidate pass. Auto-recall injects only origin-matched facts\nbefore each turn. Tools: `recall_memory`, `read_memory`, `write_memory`,\n`manage_memory`. → **[docs/tideline.md](docs/tideline.md)**\n\n### 🪪 Skills\nDrop a folder with a `SKILL.md` into your workspace and Brigade discovers it next\nturn. Skills are **prompt-resident** (name + description injected; the model reads\nthe body on demand). Six discovery roots merge in precedence order with eligibility\nfilters for OS, required binaries, env vars, and config. 56 skills ship bundled.\nManage with `manage_skill`.\n\n### 👥 Sub-agents\nDelegate work to child agents: `spawn_agent` (single) and `spawn_agents` (parallel\nfan-out). Depth-capped (default 3) and child-count-capped (default 5), with an\n**abort cascade** and a completion bridge that wakes the parent when children settle.\n\n### 🏢 Org / Pride hierarchy\nDefine a crew as a real org chart (`cfg.org`): members, departments, reporting\nlines. An **A2A (agent-to-agent) policy** derives from the graph and governs which\nagents may message which. Inspect it with `brigade org show` / `explain` / `doctor`,\nor render a 🦁 Pride chart with the `org` tool.\n\n### 💬 Channels\nA typed channel-adapter contract with a shared inbound pipeline (access control,\ndedupe, abort triggers, approval routing). **WhatsApp** (Baileys, QR/code pairing,\nmulti-account, reconnect backoff), **Telegram** (Bot API token, inline-button\napprovals, owner bootstrapped on the gateway), **Slack** (Socket Mode, bot + app\ntokens, channel/thread chat), **Discord** (bot token, DM/server/thread chat),\n**iMessage** (via the `imsg` CLI, plain-text only), and **BlueBubbles** (macOS\nserver, REST-out + webhook-in, reactions/edit/unsend) ship today; the contract is\nbuilt for more. See [Telegram setup](#telegram-setup-end-to-end) for the full\nwalkthrough.\n\n### ⏰ Cron\nSchedule recurring or one-shot work: cron expressions (with IANA timezones and\nstagger), fixed intervals, or one-shot timestamps. Payloads can be a system event\ninto your main session, a full agent turn in an isolated session, or a shell script.\nJobs survive restarts.\n\n### 🔗 Connectors (Composio)\nAn owner-only `composio` tool brings **1,000+ app connectors** (Gmail, Slack, GitHub,\nNotion, Calendar, Linear, …) with managed OAuth. Set a key once, then just ask your\ncrew in plain language: *\"connect my Gmail\"*, *\"post to #team\"*.\n\n**Getting the key:** Brigade uses the Composio **SDK**, so it needs a **PLATFORM** key\n(starts with `ak_`), *not* the \"FOR YOU\" consumer key (`ck_`) that Brigade rejects. At\n[dashboard.composio.dev](https://dashboard.composio.dev), set the top-left mode toggle\nto **PLATFORM**, open **Settings → API Keys**, and copy the `ak_…` key. Hand it to\nBrigade once (*\"set my Composio key to `ak_…`\"*) and it's verified and stored encrypted.\nFull guide: **[docs/composio.md](docs/composio.md)**.\n\n### 📄 Documents & media\nSend your crew a file and it actually **reads** it: the `analyze_media` tool\nunderstands PDFs (text or scanned), Word / Excel / PowerPoint (including the images\nembedded inside them), plain images, audio, and video — auto-selecting the right\nprovider and caching the result. The write side, `make_document` and\n`edit_document`, **creates and edits** Word / Excel / PowerPoint / PDF in place:\nfill templates and form fields, set cells and formulas, add charts, and\nmerge / split / stamp / watermark PDFs — all with pure-JS libraries, no sandbox.\nDrop a document into a channel and Brigade sees it; ask for a report and it hands\none back with `send_media`.\n\n### 📎 Attach files in the terminal\nSend your crew an image, a PDF, a screenshot, a video — from the chat TUI, with\nno ceremony. Four ways in, and they all land as a real attachment:\n\n- **Drag a file onto the window** — the path turns into a `[filename]` chip the\n  instant it lands, before you press anything.\n- **`Ctrl+V`** — paste an image and it attaches; paste text and it types, exactly\n  as before. Brigade reads the clipboard on the paste event your terminal sends,\n  so a copied screenshot just works.\n- **`@path`** — an autocompleting file picker; type `@` and fuzzy-find.\n- **`/attach <path>`**, **`/paste`**, **`/detach`** — the explicit backbone, plus\n  `/clipboard` to see what's on your clipboard and which build is running.\n\nAn **image** on a vision-capable model rides the turn inline — the model actually\n*sees* it. A **text or source file** is read and its contents are inlined\ndirectly. **PDFs, Office docs, video and audio** go through `analyze_media` (see\nabove). A persistent clipboard worker keeps a paste to a few milliseconds on every\nplatform, and a `📎 attached` bar shows what will ride your next message. Works\nagainst a local gateway (files travel as paths, so a 400 MB video costs nothing on\nthe wire).\n\n### 🎬 Motion-graphics video (HyperFrames)\n`render_video` turns an HTML composition into a **deterministic MP4** — animated\ncharts and dashboards, data explainers, quote/announcement cards, kinetic\ntypography, branded short-form social clips. Your crew writes a self-contained\nGSAP-timeline composition (the `hyperframes` skill teaches the conventions) and\nBrigade renders it frame-by-frame in an **isolated worker** (headless Chrome +\nFFmpeg), then hands back the file with `send_media`. It's the deterministic,\ndata-driven counterpart to `generate_video` (generative AI footage). The engine is\nan **optional** dependency — the tool stays dormant until you install it with\n`brigade video install`, so it adds nothing to a lean setup. (Install it that way,\nnot with a bare `npm i`: Brigade keeps engine dependencies in its own directory, and\nnpm run from your shell would put it somewhere Brigade never looks.)\n\n### 🧩 MCP\nRun `brigade mcp` to expose your long-term memory to any MCP client (Claude Desktop,\neditors, etc.) as add/search/context tools over stdio, owner-bound.\n\nBrigade is also an MCP **server for its own agent**. See below.\n\n### 🔌 Subscription backends — your Claude login, Brigade's tools\nAlready signed into **Claude Code**? Pick `claude-cli` as your provider and Brigade\ndrives that binary directly, on your existing subscription. No API key, no per-token\nbill.\n\nMost tools that wrap a CLI give the model whatever the CLI already had. Brigade does\nthe opposite: it **denies the binary's own filesystem, shell, network and sub-agent\ntools**, and serves it Brigade's entire guarded surface — all 30+ native tools plus\n`read`/`write`/`edit`/`bash`/`grep`/`ls` — over a loopback MCP endpoint scoped to that\nsingle turn.\n\nThe consequence is the point: every call the binary makes runs through the *same*\nobjects a normal turn uses. The same ownership gate, the same exec approval prompt,\nthe same path-write and config-write guards, the same memory origin, bound to your\nreal working directory. It cannot reach anything a normal turn could not, because it\nis holding the same tools. Tool calls appear live in the TUI, land in the session\ntranscript, and are remembered on the next turn.\n\n```\n[mcp/tool-plane] tool-plane connected  agentId=main tools=39\n[mcp/tool-plane] tool call  tool=bash  ms=63\n```\n\nThe per-turn credential is a 256-bit token, is never logged, and dies with the turn.\n\n### 🛡️ Safety & ownership\nPrivileged tools use either a **per-call ownership gate** (`cron list` is visible to\npeers; `cron add` is not) or a blanket owner-only refusal. The `bash` tool is gated\nby a per-agent approval allowlist (`brigade exec`). Secrets in config use `${VAR}`\nreferences that resolve at read time and are never persisted resolved. Optional\n**AES-256-GCM at-rest encryption** in Convex mode (`brigade encrypt`).\n\n**Optional gateway tokens.** The gateway is unauthenticated and localhost-only by\ndefault — ideal for a single machine. Want more? Add one or more access tokens\n(`brigade gateway token new`) and every connection must then present a valid one\n(`Authorization: Bearer`, `x-brigade-token`, or `?token=`). **Multiple tokens** are\nsupported, so you can hand a distinct token to each device and revoke one without\ndisturbing the rest, and the same tokens secure `brigade expose`. Entirely opt-in:\nwith no tokens configured, nothing changes.\n\n### 🔀 Carrow — cross-model continuity\nSwitch models mid-conversation **without losing context**. Carrow carries the full\ntranscript onto the new model (it's the same session), **re-anchors your thinking\nlevel** to what the target supports (preserved when it can reason, forced off for a\nnon-reasoning model, bumped for a reasoning-only one), and sanitizes provider-specific\nreasoning blocks the next provider would reject. It works **mid-turn** (abort the\nin-flight run and replay your last message on the new model) or **next-turn**. This is\nwhat makes `/model` and `/provider` switches seamless.\n\n### 🔁 Autonomous loops\nA **loop-runner** drives an agent (or a planner/executor stage) step-by-step under hard\nguards — token / iteration / time **budget**, plus **no-progress** and **repetition**\ndetection — and stops only when **independent done-checks** pass or a guard fires,\n*never on the agent's own say-so*. Each step's output is gated through the slop\ndetector with a bounded repair retry.\n\n### 🧹 Anti-slop quality gate\nA deterministic, zero-dependency **AI-slop detector** scans generated text in four\npasses (vocabulary crutches, cliché phrases, formulaic openers, structural patterns)\nand flags **density, not single words**. When output trips the threshold it triggers\n**one bounded repair retry**, wired as a post-generation hook — an objective check, not\nthe model grading itself.\n\n### 📈 Self-improvement (human-gated)\nTideline ships a **human-gated** self-improvement loop: propose changes from telemetry\n→ **gate on evaluation** → human approve → apply → revert if needed. Brigade also\nreviews its own behavior and curates/reviews skills from usage. Nothing that affects\nrecall changes without passing the eval bar **and** a human approval. Throughout, the\nprinciple is the same: *independent verification, never the agent judging itself.*\n\n---\n\n## CLI reference\n\n`brigade` on its own is shorthand for `brigade tui`. Run `brigade --help` or\n`brigade <command> --help` for full flags.\n\n### Core\n\n| Command | What it does |\n|---|---|\n| `brigade` · `brigade tui` | Start the chat TUI (auto-starts the gateway if needed) |\n| `brigade connect` | Attach a thin TUI to an already-running gateway (`--host`, `--port`) |\n| `brigade agent <msg>` | Drive a single turn through the agent pipeline (`--provider`, `--model`, `-m`) |\n| `brigade onboard` | Run the provider/model setup wizard |\n| `brigade status` | Snapshot config, sessions, and gateway state (`--json`) |\n| `brigade doctor` | Health-check Node, config, providers, prompts, logs, gateway (`--json`, `--strict`, `--gateway <url>`) |\n| `brigade logs` | Tail today's gateway log (`--follow`) |\n| `brigade update` · `upgrade` | Update Brigade to the latest code and restart the gateway (`--check`, `--no-restart`) |\n\n### Gateway\n\n| Command | What it does |\n|---|---|\n| `brigade gateway run` | Run the headless WebSocket gateway (`--port`, `--host`, `--verbose`, `--quiet`, `--log-level`) |\n| `brigade gateway status` · `stop` · `restart` | Inspect / stop / restart the running gateway |\n| `brigade gateway install` · `uninstall` | Install/remove as a system service (launchd / systemd / Task Scheduler) |\n| `brigade gateway supervise` | Out-of-process crash watchdog (respawns a wedged gateway) |\n| `brigade expose` · `expose stop` | Publish the gateway to the public internet via a secure, token-gated tunnel (alias: `bloody benchmark`) |\n| `brigade gateway token new` · `list` · `add` · `revoke` | Manage **optional** access tokens (multiple supported). No tokens → the gateway stays unauthenticated + localhost-only |\n\n### Agents\n\n| Command | What it does |\n|---|---|\n| `brigade agents` · `agents list` | List every configured agent (`--json`, `--bindings`) |\n| `brigade agents add [name]` | Create an isolated agent (`--workspace`, `--model`, `--provider`, `--bind`, `--non-interactive`) |\n| `brigade agents delete <id>` | Delete an agent + its workspace/sessions (`--force`) |\n| `brigade agents bind` · `unbind` | Claim / release channel-account routing slots (`--agent`, `--bind`, `--all`) |\n| `brigade agents bindings` | List routing bindings (`--agent`) |\n| `brigade agents set-identity` | Set name / theme / emoji / avatar (`--agent`, `--from-identity`) |\n\n### Org / Pride\n\n| Command | What it does |\n|---|---|\n| `brigade org init` | Write a starter `cfg.org` block (`--template solo\\|family\\|company\\|custom`, `--skip-editor`) |\n| `brigade org show` | Print an ASCII tree of the current org |\n| `brigade org explain <from> <to>` | Show whether `from` can message `to`, and the derivation/denial reason |\n| `brigade org doctor` | Run org lints (single-member dept, dangling overrides, depth > 5, …) |\n\n### Channels & pairing\n\n| Command | What it does |\n|---|---|\n| `brigade channels list` · `status` · `add` | List channels, probe status, add an account |\n| `brigade channels link` · `unlink` | Pair / unpair a channel (e.g. WhatsApp QR) |\n| `brigade channels enable` · `disable` | Toggle a channel |\n| `brigade channels allow list\\|add\\|remove` | Manage the per-channel allowlist |\n| `brigade pairing list\\|approve\\|revoke` | Review / approve / revoke pending pairing codes |\n\n### Cron\n\n| Command | What it does |\n|---|---|\n| `brigade cron list` · `status` · `runs <jobId>` | List jobs, service status, per-job run history |\n| `brigade cron add` | Create a job (`--cron`/`--every`/`--at`, `--tz`, `--message`/`--system-event`, `--model`, `--tools`, `--channel`/`--to`) |\n| `brigade cron edit <jobId>` · `rm <jobId>` | Modify / remove a job |\n| `brigade cron enable\\|disable\\|run <jobId>` | Toggle or run a job on demand |\n\n### Storage, encryption & data\n\n| Command | What it does |\n|---|---|\n| `brigade store mode show` | Print the active storage mode (filesystem / convex) |\n| `brigade store mode set <mode>` | Pin the mode (`--convex-url` for convex) |\n| `brigade store migrate --to <mode>` | Copy data between backends (`--convex-url`, `--dry-run`, `--keep-source`) |\n| `brigade store reset` | Factory-reset the Convex backend (`--yes`, `--purge-local`) |\n| `brigade convex dev` · `start` | Run the **bundled** self-hosted Convex backend + dashboard in the foreground (`brigade convex:dev` also works) |\n| `brigade convex status` · `stop` | Probe whether the backend is running / how to stop it (Ctrl-C) |\n| `brigade convex push` · `codegen` | Deploy the bundled Convex functions to the backend / regenerate the client |\n| `brigade encrypt status` · `init` · `test` | Manage the AES-256-GCM at-rest key |\n| `brigade backup create` · `verify` · `restore` | Snapshot / verify / restore your install as a `.tar.gz` |\n| `brigade secrets audit` | Find suspected leaked credentials in your install |\n\n### Config, skills, sessions, exec, MCP\n\n| Command | What it does |\n|---|---|\n| `brigade config list\\|get\\|set\\|unset\\|file\\|schema\\|validate` | Read & write configuration |\n| `brigade skills list\\|info <name>` | Inspect installed skills |\n| `brigade sessions list\\|cleanup` | List + clean up session transcripts |\n| `brigade exec list\\|allow\\|allow-pattern\\|remove\\|deny-test\\|file` | Manage the `bash`-tool approval allowlist |\n| `brigade mcp` | Serve your long-term memory as an MCP server over stdio (`--agent <id>`) |\n\n### `brigade gateway`\n\nRuns Brigade as a WebSocket server with no terminal UI of its own — the long-lived\nprocess that channel adapters, cron jobs, and sub-agent spawns all need running.\n\n```bash\nbrigade gateway run --port 7777 --host 127.0.0.1 --verbose\nbrigade gateway status\nbrigade gateway stop\nbrigade gateway restart\nbrigade gateway install      # install as a system service (launchd / systemd / Task Scheduler)\nbrigade gateway supervise    # out-of-process crash watchdog\n\nbrigade gateway token new        # generate + store an access token (printed once)\nbrigade gateway token list       # show configured tokens (masked) + whether auth is on\nbrigade gateway token revoke 1   # remove a token by its number (or its exact value)\n```\n\n| Flag | Default | Notes |\n|---|---|---|\n| `--port N` | `7777` | Listen port (also `BRIGADE_PORT`) |\n| `--host A` | `127.0.0.1` | Bind address (loopback by design) |\n| `--verbose` | off | Stream a one-line summary of every event |\n| `--quiet` | off | Suppress the live console stream |\n| `--log-level X` | `info` | `debug` / `info` / `warn` / `error` |\n\n**Optional authentication.** By default the gateway is unauthenticated and refuses to\nbind anywhere but loopback. To require a token, run `brigade gateway token new` (repeat\nfor multiple tokens) and restart the gateway. On the same machine, clients read the\ntoken from config automatically; elsewhere pass `--token <t>` or set\n`BRIGADE_GATEWAY_TOKEN`. `BRIGADE_GATEWAY_TOKENS` (comma-separated) adds tokens via the\nenvironment. Remove every token to return to open, localhost-only mode.\n\n### `brigade connect`\n\nAttaches a TUI to a running gateway. Same chat experience as `brigade`, but the\nagent runs in the gateway process — so you can disconnect, walk away, reconnect\nlater, and pick up where you left off while channel adapters and cron jobs keep\nrunning.\n\n```bash\nbrigade connect --host 127.0.0.1 --port 7777\n```\n\n### `brigade agents`\n\nBrigade ships with a default agent called `main`. Add more — each agent has its own\nworkspace (persona files), auth profiles, exec allowlist, sessions, and optional\nchannel/account routing bindings.\n\n```bash\nbrigade agents                                          # list every agent (default)\nbrigade agents list [--json] [--bindings]\nbrigade agents bindings [--agent <id>] [--json]\nbrigade agents bind --agent <id> --bind <spec> [--bind <spec> …] [--json]\nbrigade agents unbind --agent <id> (--bind <spec> … | --all) [--json]\nbrigade agents add [name] [--workspace <dir>] [--model <id>] [--provider <id>]\n                  [--agent-dir <dir>] [--bind <spec> …] [--non-interactive] [--json]\nbrigade agents set-identity --agent <id> [--from-identity]\n                  [--name <…>] [--theme <…>] [--emoji <…>] [--avatar <…>] [--json]\nbrigade agents delete <id> --force [--json]\n```\n\n`agents add` without `--workspace` defaults to `~/.brigade/agents/<id>/workspace/`.\nA binding `<spec>` is `\"<channel>\"` or `\"<channel>:<accountId>\"`. Delete requires\n`--force`.\n\n### `brigade doctor`\n\nHealth-checks Node version, your `~/.brigade/` directory, config, configured\nproviders, log sink, prompt files, and (optionally) a running gateway. Exits 0 on\npass, 1 on failure.\n\n```bash\nbrigade doctor\nbrigade doctor --gateway ws://127.0.0.1:7777\nbrigade doctor --json            # machine-readable\nbrigade doctor --strict          # exit 1 on warnings (CI mode)\n```\n\n### `brigade update`\n\nBring Brigade up to date and reload the gateway. It auto-detects how Brigade is\ninstalled and does the right thing:\n\n- **npm global** — `npm i -g @spinabot/brigade@latest`, then restart.\n- **source checkout** — `git pull` (fast-forward, only when your tree is clean and\n  behind upstream — a dirty tree is left untouched and rebuilt as-is), then\n  `npm install`, `npm run build`, then restart.\n\n```bash\nbrigade update            # update + restart the gateway\nbrigade upgrade           # alias of update\nbrigade update --check    # report whether newer code is available; change nothing\nbrigade update --no-restart\n```\n\nIf Brigade is installed as a background service (`brigade gateway install`) the\nrestart is automatic; if you run the gateway in the foreground, restart it yourself\nto load the new code. Same behavior on macOS, Linux, and Windows.\n\n### `brigade config`\n\nRead and write the local config without opening the TUI.\n\n```bash\nbrigade config list\nbrigade config get agents.defaults.provider\nbrigade config set agents.defaults.provider openrouter\nbrigade config unset agents.defaults.thinking\nbrigade config file              # print the resolved config path\nbrigade config validate          # schema-check the current config\n```\n\n### `brigade cron`\n\nSchedule recurring or one-shot agent turns. Pick exactly one of `--cron`, `--every`,\nor `--at`; pair `--cron` with an IANA `--tz`.\n\n```bash\nbrigade cron list\nbrigade cron add --cron \"0 9 * * *\" --tz \"Asia/Kolkata\" --message \"good morning\"\nbrigade cron add --at \"2026-06-04T09:00:00+05:30\" --message \"stand-up reminder\"\nbrigade cron run <jobId>         # fire it now\nbrigade cron enable <jobId>      # / disable / rm <jobId>\n```\n\nA payload can be a `--message` (system event into your main session), an isolated\nagent turn (`--model`, `--tools`, `--light-context`), and an optional delivery\ntarget (`--channel`, `--to`).\n\n### `brigade channels`\n\nConnect external messaging channels — WhatsApp, Telegram, Slack, Discord, iMessage,\nand BlueBubbles ship today.\n\n```bash\nbrigade channels list\nbrigade channels link --channel whatsapp         # WhatsApp: pair via QR / code\nbrigade channels add  --channel telegram         # Telegram: set up a bot token\nbrigade channels status --channel telegram\nbrigade channels allow list --channel telegram   # add / remove allowed senders\nbrigade pairing approve <code> --channel telegram # approve a waiting sender\nbrigade channels disable --channel whatsapp\n```\n\n### Telegram setup (end to end)\n\nA Telegram bot is a separate account from you, so Brigade establishes ownership on\nthe **gateway** — never by whoever texts the bot first.\n\n1. **Create the bot.** In Telegram, message [@BotFather](https://t.me/BotFather),\n   send `/newbot`, and copy the API token it returns.\n2. **Add it to Brigade** (on the gateway machine), then start the gateway:\n   ```bash\n   brigade channels add --channel telegram    # paste the bot token when prompted\n   brigade gateway restart                     # load the channel\n   ```\n3. **Claim ownership.** DM your bot anything — it replies with a one-time code and\n   asks an admin to approve it. Approve it once, from the gateway:\n   ```bash\n   brigade pairing approve <code> --channel telegram\n   ```\n   The **first** approval on a Telegram bot makes you the owner. Because approving\n   requires access to the gateway machine, that access *is* the proof it's really\n   you — nobody becomes owner just by sending `/start`.\n4. **Run it from the chat.** As owner you're never challenged again, and you manage\n   everyone else from Telegram itself:\n\n   | Command | Who | What |\n   |---|---|---|\n   | `/start` · `/help` | admitted | welcome + command list |\n   | `/pending` | owner | list people waiting for approval |\n   | `/approve <code>` | owner | admit a waiting person — takes effect immediately, no restart |\n   | `/deny <code>` | owner | reject a pending request |\n   | `/allowlist add\\|remove <id>` | owner | manage approved senders directly |\n   | `/whoami` · `/agent <id>` | admitted | see / pin which agent answers you |\n\nEveryone else who messages the bot gets a pairing challenge; only you (in chat) or\nthe gateway CLI can let them in. Multiple bots or accounts each track their own owner.\n\n---\n\n## In-chat commands\n\nWhen you're in the chat TUI (`brigade` or `brigade connect`):\n\n| Command | What it does |\n|---|---|\n| `/agent [<id>]` | Show or switch the agent this connection is bound to |\n| `/agents` | List every agent the gateway knows about |\n| `/sessions`, `/session <key>` | List or switch sessions for the current agent |\n| `/model [<id>]`, `/provider` | Switch model (picker or by id), or add a provider mid-session |\n| `/thinking <level>` | Reasoning effort (off, minimal, low, medium, high) |\n| `/reasoning [on\\|off]` | Toggle whether thinking blocks render |\n| `/compact` | Force a context compaction now |\n| `/abort`, `/steer \"<text>\"` | Stop the current turn, or inject mid-turn guidance |\n| `/attach <path>`, `/paste`, `/detach [<n>\\|all]` | Stage a file, pull from the clipboard, or unstage |\n| `/clipboard` | What's on your clipboard, plus the running build + worker health |\n| `/usage` | Token + cost usage for this session |\n| `/help`, `/exit` | Show all commands / quit |\n\nKeyboard: **Enter** sends · **Ctrl+C** stops the current response · **Ctrl+D**\nquits · **↑/↓** history · **Ctrl+V** pastes an image as an attachment · drag a\nfile onto the window to attach it.\n\n---\n\n## Built-in tools\n\nEvery agent gets a curated toolset. Mutating/privileged tools are owner-gated\n(either per-call or owner-only).\n\n- **Coding (pi SDK):** `read`, `write`, `edit`, `bash`, `grep`, `find`, `ls`\n- **Memory:** `recall_memory`, `read_memory`, `write_memory`, `manage_memory`\n- **Sub-agents:** `spawn_agent` (sync), `spawn_agents` (parallel fan-out)\n- **Team Mode:** `team` (owner orchestration); leased workers get only coding\n  tools plus the attempt-scoped `team_task` capability\n- **Cross-session:** `sessions_send`, `sessions_spawn`, `sessions_list`,\n  `sessions_history` (gated by visibility + A2A policy)\n- **Crew management:** `agents_list`, `manage_agent`, `manage_skill`,\n  `manage_provider`, `manage_access`, `manage_channel_access`, `org` (when\n  `cfg.org` is set)\n- **Scheduling:** `cron` (schedule jobs from inside a turn)\n- **Web:** `web_search`, `fetch_url`, `browser` (when a provider is configured)\n- **Connectors:** `composio` (1,000+ apps), `oauth_authorize`\n- **Generation:** `generate_image`, `generate_video`, `generate_speech`, `generate_music`, `render_video` (HTML→MP4 motion graphics, optional engine)\n- **Documents & media:** `analyze_media` (read/understand PDF · Office · image · audio · video), `make_document` · `edit_document` (create & edit Word/Excel/PowerPoint/PDF)\n- **Channels:** `send_message`, `send_media` (when a channel is linked)\n\n---\n\n## Team Mode\n\nTeam Mode adds durable rooms and multi-agent task graphs on top of Brigade's\nexisting agent loop. It supports dependency joins (`all`, `any`, quorum),\nretries, leases and fencing, cancellation and timeouts, run budgets, approvals,\nhandoffs, artifacts, restart recovery, and a room-scoped streaming protocol for\nUIs. A room is a durable group/channel: its public conversation supports\nthreads, replies, explicit agent mentions, attachment references, search,\nreactions, pins, edits, soft deletion, reconnect history, and authoritative\nmetrics. Mentions communicate but never silently launch work; delegation,\nconsultation, and ownership handoff remain explicit operations. Worker attempts\nhave isolated transcripts, results return durably to the room coordinator, and\nthe owner can launch a validated graph with one `team.delegate` call. The same\ntool can update configured room membership or archive an idle room without\nbypassing the store's membership and active-run guards. It works in both default filesystem mode and optional\nConvex mode; it does not require Tideline or a SaaS control plane. The current\nConvex collaboration adapter is a single-owner Phase-1 scale profile whose\nretained core state must stay below its documented 16 MiB hydration boundary;\nfilesystem mode does not have that Convex transaction limit.\n\nSee **[docs/team-mode.md](docs/team-mode.md)** for the execution model, agent\ntools, storage guarantees, and versioned WebSocket API. Brigade ships Team Mode\nas a headless backend so products can build their own web, desktop, or mobile\nroom experience without coupling UI code to the runtime package.\n\n---\n\n## Multi-agent isolation\n\nEvery agent has its own workspace, persona, credentials, memory, sessions, exec\napprovals, and routing bindings. By design:\n\n- Agent A cannot read agent B's session transcripts (unless visibility ≠ `self`).\n- Agent A cannot send to agent B's session unless `cfg.session.agentToAgent` (the\n  A2A policy) permits it.\n- Memory facts are per-agent and origin-scoped — they don't bleed between agents.\n- Provider credentials are per-agent — e.g. `support` and `prod-bot` can use\n  different accounts.\n\nThe default policy is `visibility: \"self\"` (an agent only sees its own sessions);\nswitch to `\"tree\"` to let a parent see sub-agents it spawned.\n\n---\n\n## Providers & web search\n\n**Models out of the box:** Anthropic, OpenAI, Google Gemini, OpenRouter, OrcaRouter, Token Market,\nGroq, Cerebras, xAI, DeepSeek, Mistral, **Ollama** (local), and **Custom**\nOpenAI-compatible endpoints (Together, Fireworks, vLLM, LM Studio, on-prem gateways\n— anything that speaks `/v1/chat/completions`). Connect several at once, switch with\n`/model`, and Brigade keeps your context across the switch.\n\n**Sign in with a subscription — no API key.** Don't want to manage keys, consoles,\nand billing? Use the subscription you already pay for. Two ways, both keyless:\n\n- **Browser sign-in** — `brigade login` signs in to **Claude Pro/Max**, **ChatGPT\n  Plus/Pro**, or **GitHub Copilot** over OAuth (also offered inside `brigade onboard`).\n- **Reuse a CLI login** — already signed into the **Claude Code** or **Codex** CLI on\n  this machine? `brigade onboard` offers *\"Reuse this machine's login\"* — one keystroke,\n  no browser, no re-auth.\n\nKeys still work if you prefer them; either way the credential is sealed on your own\nmachine (auto-refreshed when the provider supports it).\n\nThe `claude-cli` provider goes one step further: it runs the `claude` binary as\nBrigade's engine, with the binary's own tools denied and **Brigade's guarded toolset\nserved back to it** over a per-turn loopback MCP endpoint. Your crew, your memory,\nyour approval prompts — on a subscription, at no marginal token cost. See\n[Subscription backends](#-subscription-backends--your-claude-login-brigades-tools).\n\n**Web search** is pluggable and auto-selected by what you've configured: Tavily,\nBrave, Exa, Perplexity, Firecrawl, SearXNG (keyed) and DuckDuckGo, Wikipedia, Hacker\nNews, arXiv, GitHub, npm, local Ollama (keyless).\n\n---\n\n## Configuration & storage\n\nBrigade keeps every byte of state under `~/.brigade/` — `rm -rf ~/.brigade` truly\nwipes everything it knows.\n\n```\n~/.brigade/\n├── brigade.json              # main config (JSON5; ${VAR} secret refs preserved on write)\n├── brigade.json.bak{,.1..4}  # rotating forensic backups (mode 0600)\n├── models.json               # custom provider catalog (Ollama / custom endpoints)\n├── workspace/                # default agent (main): SOUL/IDENTITY/AGENTS/USER/TOOLS/\n│   │                         #   BOOTSTRAP/HEARTBEAT.md persona files\n│   ├── memory/facts.jsonl    # write_memory / recall_memory\n│   └── skills/               # drop-a-folder skills\n├── agents/<id>/              # per-agent isolation\n│   ├── workspace/            # same shape, per agent\n│   ├── sessions/<id>.jsonl   # transcripts (one file per session)\n│   └── agent/                # auth-profiles.json, models.json (mode 0600)\n├── channels/<id>/<account>/  # channel state (auth, allow-from, pairings)\n├── cron/runs/<jobId>.jsonl   # cron state + per-run logs\n├── logs/                     # daily rolling logs + config audit\n└── gateway.{pid,lock,heartbeat}\n```\n\n**Useful environment overrides:**\n\n| Var | Purpose |\n|---|---|\n| `BRIGADE_STATE_DIR` | Alternate state directory (default `~/.brigade`) |\n| `BRIGADE_CONFIG_PATH` | Alternate config file path |\n| `BRIGADE_PORT` | Gateway port (default `7777`) |\n| `BRIGADE_PROFILE` | Named profile (`workspace-<profile>/`) |\n| `BRIGADE_MODE` | `filesystem` or `convex` |\n| `BRIGADE_CONVEX_URL` | Convex deployment URL (implies convex mode) |\n| `BRIGADE_ENCRYPTION_KEY` | At-rest encryption master key (hex) |\n| `BRIGADE_ENABLE_INBOX_PERSIST` | Persist the sub-agent inbox to JSONL (auto-on at gateway boot) |\n| `BRIGADE_HOST_ENV` | Override the host-environment tag in the system prompt's runtime line |\n\n---\n\n## Storage modes: filesystem vs. Convex\n\nBrigade defaults to **filesystem** mode (everything under `~/.brigade/`). It also\nships an optional **Convex** backend you can run **fully self-hosted** — no cloud\naccount, no telemetry. The mode resolves from a sticky sentinel and **freezes once\nat boot**.\n\n```bash\nbrigade store mode show                                   # what mode am I in?\nbrigade store mode set convex --convex-url http://127.0.0.1:3210\nbrigade store migrate --to convex --dry-run               # preview a migration\nbrigade store migrate --to filesystem                     # copy data back\n```\n\nRun the **bundled** self-hosted Convex backend — no Convex account, no separate\ninstall. The backend binary + functions ship inside Brigade, so this works from\nanywhere once `brigade` is installed, not just a repo checkout:\n\n```bash\nbrigade convex dev       # download the backend if needed, then run it + dashboard (foreground)\nbrigade convex status    # is the backend up? (probes :3210)\nbrigade convex push      # deploy the bundled Convex functions to the backend\nbrigade convex codegen   # regenerate convex/_generated/ against the local backend\n```\n\n`brigade convex dev` runs the backend on `:3210`, the site proxy on `:3211`, and\nthe dashboard on `:6791`, with binaries + data under `~/.brigade/convex/`. Ctrl-C\nto stop; the `brigade convex:dev` colon form works too. Then point Brigade at it\nwith `brigade store mode set convex --convex-url http://127.0.0.1:3210` (above).\n\n> Running from a repo checkout? The `npm run convex:install` / `convex:dev` /\n> `convex:codegen` scripts still work and write into the repo's `bin/` + `.convex-data/`.\n\nTurn on **at-rest encryption** for Convex byte columns (credentials, persona,\nmemory, cron payloads, transcripts) with `BRIGADE_ENCRYPTION_KEY`:\n\n```bash\nbrigade encrypt init     # generate a 32-byte key\nbrigade encrypt status   # is a key configured? self-check\nbrigade encrypt test     # round-trip seal/open\n```\n\nSee [docs/convex-mode.md](docs/convex-mode.md) for the full runbook.\n\n---\n\n## MCP memory server\n\nBrigade can expose your long-term memory to any MCP client over stdio:\n\n```bash\nbrigade mcp                 # serves the `main` agent's memory\nbrigade mcp --agent support # a specific agent\n```\n\nIt surfaces add / search / context tools, owner-bound. Point an MCP client (an\neditor, a desktop assistant, etc.) at the command `brigade mcp`.\n\n---\n\n## Tideline (long-term memory)\n\nTideline is the **model-agnostic long-term memory engine** that backs Brigade.\nWhere a transcript is what an agent *just said*, Tideline is what it *knows* —\ndurable facts about you and your work, written under a trust gate, recalled by\nmeaning, decayed when stale, and reconciled over time. It's structured to be lifted\nout as its own package (`brigade-tideline`).\n\nIt's built to survive the three ways naive \"vector store\" memory breaks:\n\n| Pillar | What it does |\n|---|---|\n| 🛡️ **Provenance write-gate** | An untrusted source (a web page, a tool result) can't author or overwrite your identity/preferences/corrections. Poisoning writes are rejected. |\n| 🔒 **Per-origin isolation** | Owner facts and per-channel/peer facts are scoped so one principal's memory never surfaces in another's recall. |\n| 🔎 **Hybrid recall, no model needed** | BM25 keyword search + a **model-free** HRR vector recovery lane, so semantically-close phrasings match offline. Plug in a learned embedder to upgrade. |\n| ⏳ **Bi-temporal decay + trust** | Recency/usage decay and source-trust fold into one effective ranking score; `permanent` facts never decay. |\n| 🔗 **Typed link graph** | `supersedes` / `corrects` / `relates` / `supports` / `contradicts` edges power graph-recall and contradiction handling. |\n| 🌙 **Reflect / consolidate** | A nightly pass confirms repeated beliefs, merges duplicates, writes association edges, and evicts decayed noise. |\n\n**The flow, end to end:**\n\n```\nWRITE    add() → write-gate (trusted vs untrusted × protected segment) → dedup → store\nRECALL   query → BM25 + HRR vector → graph walk → decay×trust score → origin filter → budgeted block\nMAINTAIN decay GC → nightly dream (consolidate/relate) → contradiction detection\n```\n\nEach record carries a `segment` (identity / preference / correction / relationship /\nproject / knowledge / context), a `tier` (short / long / permanent), an `importance`,\nand an `origin`.\n\n```ts\nimport { Tideline } from \"brigade-tideline\";\n\nconst memory = Tideline.open(\"/path/to/workspace\");\nmemory.add({ content: \"I keep a strict vegetarian diet.\", segment: \"preference\" });\nconst block = memory.context(\"dietary restrictions\", { maxChars: 800 });\n```\n\nIn Brigade you reach it through the `recall_memory` / `read_memory` / `write_memory` /\n`manage_memory` tools and via auto-recall (which **fails closed** for unknown peers,\nso operator memory never leaks). An evaluation harness (`brigade-tideline/eval`)\nmeasures recall@k / MRR / nDCG@k on deterministic gold sets — run `npm run bench`.\n\n📖 Full write-up: **[docs/tideline.md](docs/tideline.md)** ·\npackage surface: [`src/tideline/`](src/tideline/)\n\n---\n\n## Extending Brigade\n\nBrigade ships a typed extension SDK. Drop a module into `~/.brigade/extensions/` and\nregister against a slot:\n\n```ts\nimport { defineModule } from \"@spinabot/brigade/extension-sdk\";\n\nexport default defineModule((b) => {\n  b.tool({ /* a custom agent tool */ });\n  b.webSearch({ /* a search provider */ });\n  b.channel({ /* a messaging adapter */ });\n  b.gatewayMethod({ /* a gateway RPC */ });\n});\n```\n\nShipped slots include `tool`, `hook`, `command`, `modelProvider`, `channel`,\n`webSearch`, `webFetch`, `integration`, `service`, `httpRoute`, and `gatewayMethod`.\nVoice/media slots (`tts`, `stt`, `mediaGen`) and pluggable `memory` backends have\nlocked contracts with implementations on the roadmap. See [AGENTS.md](AGENTS.md) for\nhow to add a tool, channel, skill, or provider.\n\n---\n\n## Privacy\n\nBrigade is a local CLI. Your API keys never leave your computer; they're stored in\nyour home directory at mode `0600` and used only to talk to the providers you\nconnect. **No telemetry, no analytics, no cloud component.** For Ollama and custom\nendpoints, requests stay on your network. The gateway binds to `127.0.0.1` by\ndefault.\n\n---\n\n## Develop from source\n\n```bash\ngit clone https://github.com/spinabot/brigade.git\ncd brigade\nnpm install\nnpm run build        # tsc → dist/\n```\n\n**Run from your checkout** (npm scripts wrap the binary so you don't type `node`):\n\n```bash\nnpm run dev          # smart runner: rebuilds dist/ if src/ is newer, then runs\nnpm run dev:tsx      # run TypeScript directly via tsx (no build, slower per call)\nnpm run watch        # tsx --watch: auto-restart on edit\nnpm link             # make `brigade` available globally → this checkout\n```\n\n**Surface shortcuts** (all wrap `scripts/run-brigade.mjs`):\n\n```bash\nnpm run onboard          # brigade onboard\nnpm run tui              # brigade tui\nnpm run gateway          # brigade gateway run     (also gateway:status / gateway:stop)\nnpm run connect          # brigade connect\nnpm run agent -- -m hi   # brigade agent -m hi\nnpm run agents:list      # brigade agents list     (agents:add / agents:bind / …)\nnpm run status           # brigade status          (status:json)\nnpm run doctor           # brigade doctor          (doctor:json / doctor:strict)\nnpm run channels:list    # brigade channels list   (wa:link / pairing:list / …)\nnpm run skills:list      # brigade skills list\nnpm run logs             # brigade logs            (logs:follow)\n```\n\n**Checks** (CI runs the same three):\n\n```bash\nnpm run typecheck    # tsc --noEmit, strict\nnpm test             # node:test, tempdir-isolated (281 test files)\nnpm run build        # ensure the production build compiles\nnpm run bench        # memory / recall evaluation benchmarks\n```\n\n**Storage / Convex dev:** `npm run store:mode:show`, `npm run convex:install`,\n`npm run convex:dev`, `npm run convex:codegen`.\n\nFull contributor guide, repo layout, and conventions live in **[AGENTS.md](AGENTS.md)**.\n\n---\n\n## Contributing\n\nContributions are welcome! Read **[CONTRIBUTING.md](CONTRIBUTING.md)** for dev setup,\ncoding conventions, and the Conventional-Commits release flow. For security issues, see\n**[SECURITY.md](SECURITY.md)** — please report privately. Releases are automated with\nrelease-please; see **[docs/RELEASING.md](docs/RELEASING.md)**.\n\nQuestions or ideas? Open a\n[discussion](https://github.com/spinabot/brigade/discussions) or email\n**hello@brigade-agent.ai** (security → **security@brigade-agent.ai**).\n\n---\n\n## License\n\n[MIT](LICENSE) © Spinabot\n\n## 🦁 Brigadiers\n\nA pride of contributors who make Brigade better. Thank you to everyone who has\njoined the crew!\n\n<!-- brigadiers:start -->\n<a href=\"https://github.com/Bhasvanth-Dev9380\" title=\"Bhasvanth-Dev9380\"><img src=\"https://avatars.githubusercontent.com/u/157608971?v=4&s=48\" width=\"48\" height=\"48\" alt=\"Bhasvanth-Dev9380\" /></a> <a href=\"https://github.com/Bhasvanth-Spinabot\" title=\"Bhasvanth-Spinabot\"><img src=\"https://avatars.githubusercontent.com/u/314351905?v=4&s=48\" width=\"48\" height=\"48\" alt=\"Bhasvanth-Spinabot\" /></a> <a href=\"https://github.com/Ranjithsingh2004\" title=\"Ranjithsingh2004\"><img src=\"https://avatars.githubusercontent.com/u/122562396?v=4&s=48\" width=\"48\" height=\"48\" alt=\"Ranjithsingh2004\" /></a> <a href=\"https://github.com/FitBBC\" title=\"FitBBC\"><img src=\"https://avatars.githubusercontent.com/u/2372724?v=4&s=48\" width=\"48\" height=\"48\" alt=\"FitBBC\" /></a> <a href=\"https://github.com/ssh-den\" title=\"ssh-den\"><img src=\"https://avatars.githubusercontent.com/u/103561857?v=4&s=48\" width=\"48\" height=\"48\" alt=\"ssh-den\" /></a> <a href=\"https://github.com/viveknadig\" title=\"viveknadig\"><img src=\"https://avatars.githubusercontent.com/u/96881767?v=4&s=48\" width=\"48\" height=\"48\" alt=\"viveknadig\" /></a> <a href=\"https://github.com/dulcestentaciones2920-debug\" title=\"dulcestentaciones2920-debug\"><img src=\"https://avatars.githubusercontent.com/u/321300431?v=4&s=48\" width=\"48\" height=\"48\" alt=\"dulcestentaciones2920-debug\" /></a>\n<!-- brigadiers:end -->\n\nWant to join the pride? See [CONTRIBUTING.md](CONTRIBUTING.md).\n","readmeFilename":"README.md"}