{"_id":"bestie-agent","_rev":"69-4e7c2aae5cb493a2643c1cd5a614e163","name":"bestie-agent","dist-tags":{"latest":"0.1.76"},"versions":{"0.1.1":{"name":"bestie-agent","version":"0.1.1","_id":"bestie-agent@0.1.1","maintainers":[{"name":"andynguyenn","email":"j22487069@icloud.com"}],"bin":{"bestie":"dist/cli/index.js"},"dist":{"shasum":"ed96afa63154c7814cba29f01cf5ab711ff63a4e","tarball":"https://registry.npmjs.org/bestie-agent/-/bestie-agent-0.1.1.tgz","fileCount":68,"integrity":"sha512-unpMhXoZe4g2ihBsg52d5ZIKoJo6jeNuhdJ6JZd5lrCg95RNX4MRbOQtLlD17Q0Z84vPk+IU5FWg4MLMxKatzA==","signatures":[{"sig":"MEYCIQDjWgATmEpRmkOQLKYF0dzlwRtXulad1yYIhzSnMcmpogIhAMImWskxxtAN8RIE2CPsb8kaXpihRUo7Aou0q5sHX+CM","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":434280},"type":"module","engines":{"node":">=20"},"gitHead":"5b05a602b752ae6fe4d7be521274ae917baf821c","scripts":{"dev":"tsx src/cli/index.ts","test":"npm run build && node --test dist/**/*.test.js","build":"tsc -p tsconfig.json","smoke":"npm run build && npm run smoke:status:run && npm run smoke:doctor:run && npm run smoke:doctor:json:run && npm run smoke:doctor:fix:run && npm run smoke:chat:run && npm run smoke:onboard:run","start":"node dist/cli/index.js","smoke:mcp":"npm run build && npm run smoke:mcp:run","smoke:chat":"npm run build && npm run smoke:chat:run","smoke:tools":"npm run build && npm run smoke:tools:run","smoke:doctor":"npm run build && npm run smoke:doctor:run","smoke:status":"npm run build && npm run smoke:status:run","smoke:mcp:run":"node scripts/smoke-mcp.mjs","smoke:onboard":"npm run build && npm run smoke:onboard:run","eval:character":"npm run build && node --test dist/character/prompt-generator.test.js dist/character/character-eval-cases.test.js","smoke:chat:run":"printf '/exit\\n' | npm run start -- chat","smoke:telegram":"npm run build && npm run smoke:telegram:run","smoke:installer":"npm run build && node scripts/smoke-installer.mjs","smoke:tools:run":"node dist/cli/index.js tools logs --lines 5 | grep -q 'action_permission_decision' && node dist/cli/index.js tools memories --limit 5 >/dev/null && node dist/cli/index.js tools git status >/dev/null","smoke:doctor:fix":"npm run build && npm run smoke:doctor:fix:run","smoke:doctor:run":"npm run start -- doctor","smoke:status:run":"npm run start -- status","smoke:doctor:json":"npm run build && npm run smoke:doctor:json:run","smoke:onboard:run":"tmpdir=$(mktemp -d) && cd $tmpdir && printf 'Bestie\\nBoss\\nvi\\n7\\nask\\nopenai-compatible\\nhttp://127.0.0.1:9/v1\\ntest-model\\ntest-key\\n' | node $INIT_CWD/dist/cli/index.js onboard --skip-provider-test; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:run":"tmpdir=$(mktemp -d) && cd $tmpdir && node $INIT_CWD/dist/cli/index.js telegram 2>&1 | grep -q 'Telegram is not enabled'; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:real":"npm run build && node scripts/smoke-telegram-real.mjs","eval:character:cases":"npm run build && node --test dist/character/character-eval-cases.test.js","smoke:doctor:fix:run":"node scripts/smoke-doctor-fix.mjs","smoke:telegram:setup":"npm run build && npm run smoke:telegram:setup:run","smoke:doctor:json:run":"node scripts/smoke-doctor-json.mjs","smoke:doctor:exit-code":"npm run build && node scripts/smoke-doctor-exit-code.mjs","smoke:telegram:setup:run":"tmpdir=$(mktemp -d) && cd $tmpdir && printf 'Bestie\nBoss\nvi\n7\nask\nopenai-compatible\nhttp://127.0.0.1:9/v1\ntest-model\ntest-key\n' | node $INIT_CWD/dist/cli/index.js onboard --skip-provider-test >/dev/null && printf '12345\ntest-telegram-token\n' | node $INIT_CWD/dist/cli/index.js telegram setup >/dev/null && grep -q 'BESTIE_TELEGRAM_BOT_TOKEN' .bestie/.env && grep -q '\"ownerUserId\": \"12345\"' .bestie/config.json; code=$?; rm -rf $tmpdir; exit $code"},"_npmUser":{"name":"andynguyenn","email":"j22487069@icloud.com"},"_npmVersion":"11.13.0","description":"Vietnamese-first bestie agent CLI.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"grammy":"^1.44.0","mammoth":"^1.12.0","pdf-parse":"^1.1.1","better-sqlite3":"^12.11.1","@grammyjs/types":"^3.28.0","@elevenlabs/elevenlabs-js":"^2.57.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.2","typescript":"^5.5.4","@types/node":"^20.14.15","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/bestie-agent_0.1.1_1783932718840_0.36843029027747254","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"bestie-agent","version":"0.1.2","_id":"bestie-agent@0.1.2","maintainers":[{"name":"andynguyenn","email":"j22487069@icloud.com"}],"bin":{"bestie":"dist/cli/index.js"},"dist":{"shasum":"1495d34d269d8c8100449c04e24d3cbf4d436bc5","tarball":"https://registry.npmjs.org/bestie-agent/-/bestie-agent-0.1.2.tgz","fileCount":68,"integrity":"sha512-lERfdhZZYybaeu7VuA0HM1DZeyESunmWkXSc3rM1A5D0A/ZAJPtKshOel6wNCzqO/agtDOth7uK/irkni5pgzw==","signatures":[{"sig":"MEUCIFKhXW3MgSt/Nt8FqppEdzloqRVQDVvOMXKoLEVSos6wAiEAufdlOSPc/3luDjasHWCBRQiIuTiiHnyQ0HX81yc0vt4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":437329},"type":"module","engines":{"node":">=20"},"gitHead":"3d3c14d52d493f1f4fedf1bbc8bd4a7027318a9c","scripts":{"dev":"tsx src/cli/index.ts","test":"npm run build && node --test dist/**/*.test.js","build":"tsc -p tsconfig.json","smoke":"npm run build && npm run smoke:status:run && npm run smoke:doctor:run && npm run smoke:doctor:json:run && npm run smoke:doctor:fix:run && npm run smoke:chat:run && npm run smoke:onboard:run","start":"node dist/cli/index.js","smoke:mcp":"npm run build && npm run smoke:mcp:run","smoke:chat":"npm run build && npm run smoke:chat:run","smoke:tools":"npm run build && npm run smoke:tools:run","smoke:doctor":"npm run build && npm run smoke:doctor:run","smoke:status":"npm run build && npm run smoke:status:run","smoke:mcp:run":"node scripts/smoke-mcp.mjs","smoke:onboard":"npm run build && npm run smoke:onboard:run","eval:character":"npm run build && node --test dist/character/prompt-generator.test.js dist/character/character-eval-cases.test.js","smoke:chat:run":"printf '/exit\\n' | npm run start -- chat","smoke:telegram":"npm run build && npm run smoke:telegram:run","smoke:installer":"npm run build && node scripts/smoke-installer.mjs","smoke:tools:run":"node dist/cli/index.js tools logs --lines 5 | grep -q 'action_permission_decision' && node dist/cli/index.js tools memories --limit 5 >/dev/null && node dist/cli/index.js tools git status >/dev/null","smoke:doctor:fix":"npm run build && npm run smoke:doctor:fix:run","smoke:doctor:run":"npm run start -- doctor","smoke:status:run":"npm run start -- status","smoke:doctor:json":"npm run build && npm run smoke:doctor:json:run","smoke:onboard:run":"tmpdir=$(mktemp -d) && cd $tmpdir && printf 'Bestie\\nBoss\\nvi\\n7\\nask\\nopenai-compatible\\nhttp://127.0.0.1:9/v1\\ntest-model\\ntest-key\\n' | node $INIT_CWD/dist/cli/index.js onboard --skip-provider-test; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:run":"tmpdir=$(mktemp -d) && cd $tmpdir && node $INIT_CWD/dist/cli/index.js telegram 2>&1 | grep -q 'Telegram is not enabled'; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:real":"npm run build && node scripts/smoke-telegram-real.mjs","eval:character:cases":"npm run build && node --test dist/character/character-eval-cases.test.js","smoke:doctor:fix:run":"node scripts/smoke-doctor-fix.mjs","smoke:telegram:setup":"npm run build && npm run smoke:telegram:setup:run","smoke:doctor:json:run":"node scripts/smoke-doctor-json.mjs","smoke:doctor:exit-code":"npm run build && node scripts/smoke-doctor-exit-code.mjs","smoke:telegram:setup:run":"tmpdir=$(mktemp -d) && cd $tmpdir && printf 'Bestie\nBoss\nvi\n7\nask\nopenai-compatible\nhttp://127.0.0.1:9/v1\ntest-model\ntest-key\n' | node $INIT_CWD/dist/cli/index.js onboard --skip-provider-test >/dev/null && printf '12345\ntest-telegram-token\n' | node $INIT_CWD/dist/cli/index.js telegram setup >/dev/null && grep -q 'BESTIE_TELEGRAM_BOT_TOKEN' .bestie/.env && grep -q '\"ownerUserId\": \"12345\"' .bestie/config.json; code=$?; rm -rf $tmpdir; exit $code"},"_npmUser":{"name":"andynguyenn","email":"j22487069@icloud.com"},"_npmVersion":"11.13.0","description":"Vietnamese-first bestie agent CLI.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"grammy":"^1.44.0","mammoth":"^1.12.0","pdf-parse":"^1.1.1","better-sqlite3":"^12.11.1","@grammyjs/types":"^3.28.0","@elevenlabs/elevenlabs-js":"^2.57.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.2","typescript":"^5.5.4","@types/node":"^20.14.15","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/bestie-agent_0.1.2_1783934823493_0.4402872146968706","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"bestie-agent","version":"0.1.3","_id":"bestie-agent@0.1.3","maintainers":[{"name":"andynguyenn","email":"j22487069@icloud.com"}],"bin":{"bestie":"dist/cli/index.js"},"dist":{"shasum":"a89258a638005358abc1c36acf02cdceeb56bcc7","tarball":"https://registry.npmjs.org/bestie-agent/-/bestie-agent-0.1.3.tgz","fileCount":68,"integrity":"sha512-cWmHNYvREFb/62bxJCrTZQ0fFuoftNNYLnKyadyhGqZlvRrrLYtnyJO0JXailqb0pTq+hG6BFPd/OCbB9IeM/A==","signatures":[{"sig":"MEYCIQDUNTfK0oFJ5smWYPpD1Ah41l330KrYtJTRYXxKl/lyuAIhAIZzdtnMrQU7I2oDEPI1PwR9x/9/31Fa3OEJ0b7AhurC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":439960},"type":"module","engines":{"node":">=20"},"gitHead":"d9ca9a63a4b2439c884ce4c920737421a06e6c1c","scripts":{"dev":"tsx src/cli/index.ts","test":"npm run build && node --test dist/**/*.test.js","build":"tsc -p tsconfig.json","smoke":"npm run build && npm run smoke:status:run && npm run smoke:doctor:run && npm run smoke:doctor:json:run && npm run smoke:doctor:fix:run && npm run smoke:chat:run && npm run smoke:onboard:run","start":"node dist/cli/index.js","smoke:mcp":"npm run build && npm run smoke:mcp:run","smoke:chat":"npm run build && npm run smoke:chat:run","smoke:tools":"npm run build && npm run smoke:tools:run","smoke:doctor":"npm run build && npm run smoke:doctor:run","smoke:status":"npm run build && npm run smoke:status:run","smoke:mcp:run":"node scripts/smoke-mcp.mjs","smoke:onboard":"npm run build && npm run smoke:onboard:run","eval:character":"npm run build && node --test dist/character/prompt-generator.test.js dist/character/character-eval-cases.test.js","smoke:chat:run":"printf '/exit\\n' | npm run start -- chat","smoke:telegram":"npm run build && npm run smoke:telegram:run","smoke:installer":"npm run build && node scripts/smoke-installer.mjs","smoke:tools:run":"node dist/cli/index.js tools logs --lines 5 | grep -q 'action_permission_decision' && node dist/cli/index.js tools memories --limit 5 >/dev/null && node dist/cli/index.js tools git status >/dev/null","smoke:doctor:fix":"npm run build && npm run smoke:doctor:fix:run","smoke:doctor:run":"npm run start -- doctor","smoke:status:run":"npm run start -- status","smoke:doctor:json":"npm run build && npm run smoke:doctor:json:run","smoke:onboard:run":"tmpdir=$(mktemp -d) && cd $tmpdir && printf 'Bestie\\nBoss\\nvi\\n7\\nask\\nopenai-compatible\\nhttp://127.0.0.1:9/v1\\ntest-model\\ntest-key\\n' | node $INIT_CWD/dist/cli/index.js onboard --skip-provider-test; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:run":"tmpdir=$(mktemp -d) && cd $tmpdir && node $INIT_CWD/dist/cli/index.js telegram 2>&1 | grep -q 'Telegram is not enabled'; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:real":"npm run build && node scripts/smoke-telegram-real.mjs","eval:character:cases":"npm run build && node --test dist/character/character-eval-cases.test.js","smoke:doctor:fix:run":"node scripts/smoke-doctor-fix.mjs","smoke:telegram:setup":"npm run build && npm run smoke:telegram:setup:run","smoke:doctor:json:run":"node scripts/smoke-doctor-json.mjs","smoke:doctor:exit-code":"npm run build && node scripts/smoke-doctor-exit-code.mjs","smoke:telegram:setup:run":"tmpdir=$(mktemp -d) && cd $tmpdir && printf 'Bestie\nBoss\nvi\n7\nask\nopenai-compatible\nhttp://127.0.0.1:9/v1\ntest-model\ntest-key\n' | node $INIT_CWD/dist/cli/index.js onboard --skip-provider-test >/dev/null && printf '12345\ntest-telegram-token\n' | node $INIT_CWD/dist/cli/index.js telegram setup >/dev/null && grep -q 'BESTIE_TELEGRAM_BOT_TOKEN' .bestie/.env && grep -q '\"ownerUserId\": \"12345\"' .bestie/config.json; code=$?; rm -rf $tmpdir; exit $code"},"_npmUser":{"name":"andynguyenn","email":"j22487069@icloud.com"},"_npmVersion":"11.13.0","description":"Vietnamese-first bestie agent CLI.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"grammy":"^1.44.0","mammoth":"^1.12.0","pdf-parse":"^1.1.1","better-sqlite3":"^12.11.1","@grammyjs/types":"^3.28.0","@elevenlabs/elevenlabs-js":"^2.57.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.2","typescript":"^5.5.4","@types/node":"^20.14.15","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/bestie-agent_0.1.3_1783943002347_0.727124450549467","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"bestie-agent","version":"0.1.4","_id":"bestie-agent@0.1.4","maintainers":[{"name":"andynguyenn","email":"j22487069@icloud.com"}],"bin":{"bestie":"dist/cli/index.js"},"dist":{"shasum":"b3d6fbfbb39f5ef81039b1b777ff7c8817cc7468","tarball":"https://registry.npmjs.org/bestie-agent/-/bestie-agent-0.1.4.tgz","fileCount":72,"integrity":"sha512-KL3orPq4OJmzoYypoo7nFHupTF1tBqfMIrLpYTivxblgaFZxs7Mn2k53nkdcjEziswtrxyLuciPn/ULXpfdSQw==","signatures":[{"sig":"MEQCIBF/x9Ge7Ine11jBnkhoaDQIKB4uGsXUtVGEwZDV1rHWAiBYr2CIiphd5E6mqNBwope+w3XO7inTztkPbMTlFnCeQw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":495356},"type":"module","engines":{"node":">=20"},"gitHead":"4c961decfcc53f31fe8d4417d6d37f9ecf86e22a","scripts":{"dev":"tsx src/cli/index.ts","test":"npm run build && node --test dist/**/*.test.js","build":"tsc -p tsconfig.json","smoke":"npm run build && npm run smoke:status:run && npm run smoke:doctor:run && npm run smoke:doctor:json:run && npm run smoke:channels:doctor:json:run && npm run smoke:doctor:fix:run && npm run smoke:chat:run && npm run smoke:onboard:run","start":"node dist/cli/index.js","smoke:mcp":"npm run build && npm run smoke:mcp:run","smoke:chat":"npm run build && npm run smoke:chat:run","smoke:zalo":"npm run build && npm run smoke:zalo:run","smoke:tools":"npm run build && npm run smoke:tools:run","smoke:doctor":"npm run build && npm run smoke:doctor:run","smoke:status":"npm run build && npm run smoke:status:run","smoke:mcp:run":"node scripts/smoke-mcp.mjs","smoke:onboard":"npm run build && npm run smoke:onboard:run","eval:character":"npm run build && node --test dist/character/prompt-generator.test.js dist/character/character-eval-cases.test.js","smoke:chat:run":"node scripts/smoke-cli-temp-runtime.mjs chat","smoke:telegram":"npm run build && npm run smoke:telegram:run","smoke:zalo:run":"node scripts/smoke-zalo-disabled.mjs","smoke:installer":"npm run build && node scripts/smoke-installer.mjs","smoke:tools:run":"node dist/cli/index.js tools logs --lines 5 | grep -q 'action_permission_decision' && node dist/cli/index.js tools memories --limit 5 >/dev/null && node dist/cli/index.js tools git status >/dev/null","smoke:zalo:real":"npm run build && node scripts/smoke-zalo-real.mjs","smoke:doctor:fix":"npm run build && npm run smoke:doctor:fix:run","smoke:doctor:run":"node scripts/smoke-cli-temp-runtime.mjs doctor","smoke:status:run":"node scripts/smoke-cli-temp-runtime.mjs status","smoke:zalo:setup":"npm run build && npm run smoke:zalo:setup:run","smoke:doctor:json":"npm run build && npm run smoke:doctor:json:run","smoke:onboard:run":"tmpdir=$(mktemp -d) && cd $tmpdir && printf 'Bestie\\nBoss\\nvi\\n7\\nask\\nopenai-compatible\\nhttp://127.0.0.1:9/v1\\ntest-model\\ntest-key\\n' | HOME=$tmpdir node $INIT_CWD/dist/cli/index.js onboard --skip-provider-test; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:run":"tmpdir=$(mktemp -d) && cd $tmpdir && HOME=$tmpdir node $INIT_CWD/dist/cli/index.js channels telegram 2>&1 | grep -q 'Telegram is not enabled'; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:real":"npm run build && node scripts/smoke-telegram-real.mjs","eval:character:cases":"npm run build && node --test dist/character/character-eval-cases.test.js","smoke:doctor:fix:run":"node scripts/smoke-doctor-fix.mjs","smoke:telegram:setup":"npm run build && npm run smoke:telegram:setup:run","smoke:zalo:setup:run":"node scripts/smoke-zalo-setup.mjs","smoke:doctor:json:run":"node scripts/smoke-cli-temp-runtime.mjs doctor-json","smoke:doctor:exit-code":"npm run build && node scripts/smoke-doctor-exit-code.mjs","smoke:telegram:setup:run":"node scripts/smoke-telegram-setup.mjs","smoke:channels:doctor:json":"npm run build && npm run smoke:channels:doctor:json:run","smoke:channels:doctor:json:run":"node scripts/smoke-channels-doctor-json.mjs"},"_npmUser":{"name":"andynguyenn","email":"j22487069@icloud.com"},"_npmVersion":"11.13.0","description":"Vietnamese-first bestie agent CLI.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"grammy":"^1.44.0","mammoth":"^1.12.0","pdf-parse":"^1.1.1","better-sqlite3":"^12.11.1","@grammyjs/types":"^3.28.0","@elevenlabs/elevenlabs-js":"^2.57.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.2","typescript":"^5.5.4","@types/node":"^20.14.15","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/bestie-agent_0.1.4_1784028616288_0.4225431415405809","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"bestie-agent","version":"0.1.5","_id":"bestie-agent@0.1.5","maintainers":[{"name":"andynguyenn","email":"j22487069@icloud.com"}],"bin":{"bestie":"dist/cli/index.js"},"dist":{"shasum":"bbfed2b2cc3236090ca882c40b1c8fe4ddaab850","tarball":"https://registry.npmjs.org/bestie-agent/-/bestie-agent-0.1.5.tgz","fileCount":72,"integrity":"sha512-f94eTo8xu8bXxXcsMrNKBtea70ye+PfTQpmeAP4Daz2woIZ2tY5mCnHqmNvFd1J6bRBVpsobCbZZRfKmtEkamA==","signatures":[{"sig":"MEYCIQD5isZFm4DhoRSDwEZ0hSY1PGiFSuAgtVxeTguPyqJHwAIhAJZruDdGYS5rSL8Suu+59EldMZgYkYTOVaTSY4pRieuQ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":501404},"type":"module","engines":{"node":">=20"},"gitHead":"32e8338076b41c2e06e06c0b9646488f682dbe6c","scripts":{"dev":"tsx src/cli/index.ts","test":"npm run build && node --test dist/**/*.test.js","build":"tsc -p tsconfig.json","smoke":"npm run build && npm run smoke:status:run && npm run smoke:doctor:run && npm run smoke:doctor:json:run && npm run smoke:channels:doctor:json:run && npm run smoke:doctor:fix:run && npm run smoke:chat:run && npm run smoke:onboard:run","start":"node dist/cli/index.js","smoke:mcp":"npm run build && npm run smoke:mcp:run","smoke:chat":"npm run build && npm run smoke:chat:run","smoke:zalo":"npm run build && npm run smoke:zalo:run","smoke:tools":"npm run build && npm run smoke:tools:run","smoke:doctor":"npm run build && npm run smoke:doctor:run","smoke:status":"npm run build && npm run smoke:status:run","smoke:mcp:run":"node scripts/smoke-mcp.mjs","smoke:onboard":"npm run build && npm run smoke:onboard:run","eval:character":"npm run build && node --test dist/character/prompt-generator.test.js dist/character/character-eval-cases.test.js","smoke:chat:run":"node scripts/smoke-cli-temp-runtime.mjs chat","smoke:telegram":"npm run build && npm run smoke:telegram:run","smoke:zalo:run":"node scripts/smoke-zalo-disabled.mjs","smoke:installer":"npm run build && node scripts/smoke-installer.mjs","smoke:tools:run":"node dist/cli/index.js tools logs --lines 5 | grep -q 'action_permission_decision' && node dist/cli/index.js tools memories --limit 5 >/dev/null && node dist/cli/index.js tools git status >/dev/null","smoke:zalo:real":"npm run build && node scripts/smoke-zalo-real.mjs","smoke:doctor:fix":"npm run build && npm run smoke:doctor:fix:run","smoke:doctor:run":"node scripts/smoke-cli-temp-runtime.mjs doctor","smoke:status:run":"node scripts/smoke-cli-temp-runtime.mjs status","smoke:zalo:setup":"npm run build && npm run smoke:zalo:setup:run","smoke:doctor:json":"npm run build && npm run smoke:doctor:json:run","smoke:onboard:run":"tmpdir=$(mktemp -d) && cd $tmpdir && printf 'Bestie\\nBoss\\nvi\\n7\\nask\\nopenai-compatible\\nhttp://127.0.0.1:9/v1\\ntest-model\\ntest-key\\n' | HOME=$tmpdir node $INIT_CWD/dist/cli/index.js onboard --skip-provider-test; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:run":"tmpdir=$(mktemp -d) && cd $tmpdir && HOME=$tmpdir node $INIT_CWD/dist/cli/index.js channels telegram 2>&1 | grep -q 'Telegram is not enabled'; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:real":"npm run build && node scripts/smoke-telegram-real.mjs","eval:character:cases":"npm run build && node --test dist/character/character-eval-cases.test.js","smoke:doctor:fix:run":"node scripts/smoke-doctor-fix.mjs","smoke:telegram:setup":"npm run build && npm run smoke:telegram:setup:run","smoke:zalo:setup:run":"node scripts/smoke-zalo-setup.mjs","smoke:doctor:json:run":"node scripts/smoke-cli-temp-runtime.mjs doctor-json","smoke:doctor:exit-code":"npm run build && node scripts/smoke-doctor-exit-code.mjs","smoke:telegram:setup:run":"node scripts/smoke-telegram-setup.mjs","smoke:channels:doctor:json":"npm run build && npm run smoke:channels:doctor:json:run","smoke:channels:doctor:json:run":"node scripts/smoke-channels-doctor-json.mjs"},"_npmUser":{"name":"andynguyenn","email":"j22487069@icloud.com"},"_npmVersion":"11.13.0","description":"Vietnamese-first bestie agent CLI.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"grammy":"^1.44.0","mammoth":"^1.12.0","pdf-parse":"^1.1.1","better-sqlite3":"^12.11.1","@grammyjs/types":"^3.28.0","@elevenlabs/elevenlabs-js":"^2.57.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.2","typescript":"^5.5.4","@types/node":"^20.14.15","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/bestie-agent_0.1.5_1784038655373_0.6596551653660445","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"bestie-agent","version":"0.1.6","_id":"bestie-agent@0.1.6","maintainers":[{"name":"andynguyenn","email":"j22487069@icloud.com"}],"bin":{"bestie":"dist/cli/index.js"},"dist":{"shasum":"b9deac59c0e817b4e04a9993d7d2a4d1decebe16","tarball":"https://registry.npmjs.org/bestie-agent/-/bestie-agent-0.1.6.tgz","fileCount":77,"integrity":"sha512-pXuhTlcRaDbkJwzyaAcd/cwetxDOjpmen4XPX2C4WIh9Q9VQpHSVFafN/V7j99Jk+Is7MpdsnbatahOIF6ewrQ==","signatures":[{"sig":"MEYCIQD6t/Q/EIbhrDQKoK0bS0hqfDNmwzUIdomg6bdvTlh3+QIhAPHvk+E8iKs9HESId7tLORoqrY8h7MTKVbo0vN9VAwk+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":515105},"type":"module","engines":{"node":">=20"},"gitHead":"f26f578fdea69d0c698e4f2869fd6d8f7996ddef","scripts":{"dev":"tsx src/cli/index.ts","test":"npm run build && node --test dist/**/*.test.js","build":"tsc -p tsconfig.json","smoke":"npm run build && npm run smoke:status:run && npm run smoke:doctor:run && npm run smoke:doctor:json:run && npm run smoke:channels:doctor:json:run && npm run smoke:doctor:fix:run && npm run smoke:chat:run && npm run smoke:onboard:run","start":"node dist/cli/index.js","smoke:mcp":"npm run build && npm run smoke:mcp:run","smoke:chat":"npm run build && npm run smoke:chat:run","smoke:zalo":"npm run build && npm run smoke:zalo:run","smoke:tools":"npm run build && npm run smoke:tools:run","smoke:doctor":"npm run build && npm run smoke:doctor:run","smoke:status":"npm run build && npm run smoke:status:run","smoke:mcp:run":"node scripts/smoke-mcp.mjs","smoke:onboard":"npm run build && npm run smoke:onboard:run","eval:character":"npm run build && node --test dist/character/prompt-generator.test.js dist/character/character-eval-cases.test.js","smoke:chat:run":"node scripts/smoke-cli-temp-runtime.mjs chat","smoke:telegram":"npm run build && npm run smoke:telegram:run","smoke:zalo:run":"node scripts/smoke-zalo-disabled.mjs","smoke:installer":"npm run build && node scripts/smoke-installer.mjs","smoke:tools:run":"node dist/cli/index.js tools logs --lines 5 | grep -q 'action_permission_decision' && node dist/cli/index.js tools memories --limit 5 >/dev/null && node dist/cli/index.js tools git status >/dev/null","smoke:zalo:real":"npm run build && node scripts/smoke-zalo-real.mjs","smoke:doctor:fix":"npm run build && npm run smoke:doctor:fix:run","smoke:doctor:run":"node scripts/smoke-cli-temp-runtime.mjs doctor","smoke:status:run":"node scripts/smoke-cli-temp-runtime.mjs status","smoke:zalo:setup":"npm run build && npm run smoke:zalo:setup:run","smoke:doctor:json":"npm run build && npm run smoke:doctor:json:run","smoke:onboard:run":"tmpdir=$(mktemp -d) && cd $tmpdir && printf 'Bestie\\nBoss\\nvi\\n7\\nask\\nopenai-compatible\\nhttp://127.0.0.1:9/v1\\ntest-model\\ntest-key\\n' | HOME=$tmpdir node $INIT_CWD/dist/cli/index.js onboard --skip-provider-test; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:run":"tmpdir=$(mktemp -d) && cd $tmpdir && HOME=$tmpdir node $INIT_CWD/dist/cli/index.js channels telegram 2>&1 | grep -q 'Telegram is not enabled'; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:real":"npm run build && node scripts/smoke-telegram-real.mjs","eval:character:cases":"npm run build && node --test dist/character/character-eval-cases.test.js","smoke:doctor:fix:run":"node scripts/smoke-doctor-fix.mjs","smoke:telegram:setup":"npm run build && npm run smoke:telegram:setup:run","smoke:zalo:setup:run":"node scripts/smoke-zalo-setup.mjs","smoke:doctor:json:run":"node scripts/smoke-cli-temp-runtime.mjs doctor-json","smoke:doctor:exit-code":"npm run build && node scripts/smoke-doctor-exit-code.mjs","smoke:telegram:setup:run":"node scripts/smoke-telegram-setup.mjs","smoke:channels:doctor:json":"npm run build && npm run smoke:channels:doctor:json:run","smoke:channels:doctor:json:run":"node scripts/smoke-channels-doctor-json.mjs"},"_npmUser":{"name":"andynguyenn","email":"j22487069@icloud.com"},"_npmVersion":"11.13.0","description":"Vietnamese-first bestie agent CLI.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"grammy":"^1.44.0","mammoth":"^1.12.0","pdf-parse":"^1.1.1","better-sqlite3":"^12.11.1","@grammyjs/types":"^3.28.0","@elevenlabs/elevenlabs-js":"^2.57.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.2","typescript":"^5.5.4","@types/node":"^20.14.15","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/bestie-agent_0.1.6_1784042391745_0.4709263998251363","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"bestie-agent","version":"0.1.7","_id":"bestie-agent@0.1.7","maintainers":[{"name":"andynguyenn","email":"j22487069@icloud.com"}],"bin":{"bestie":"dist/cli/index.js"},"dist":{"shasum":"dbf25c3d30b39e6d663fb1ec6742c3f24dac79c2","tarball":"https://registry.npmjs.org/bestie-agent/-/bestie-agent-0.1.7.tgz","fileCount":80,"integrity":"sha512-0sxzVqA2H5fFGfB8ZvBnDF4eWpzsmSKh42l0YzbJId5a4fPX/aDaZQJGN6qr8z0nagaQRpAqnIOvkB3ucpRaaQ==","signatures":[{"sig":"MEYCIQC9aQX+4+G4jQnw+ZKRzX4OdiHMFTaZnUTHe0LSsPHDtAIhAIrgZh9fF/Tj1rQyXPA83QFfFdVxL1cxuD77EfPfaAUc","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":530329},"type":"module","engines":{"node":">=20"},"gitHead":"3369f8f740260f79b32a94c0004a2248669843f5","scripts":{"dev":"tsx src/cli/index.ts","test":"npm run build && node --test dist/**/*.test.js","build":"tsc -p tsconfig.json","smoke":"npm run build && npm run smoke:status:run && npm run smoke:doctor:run && npm run smoke:doctor:json:run && npm run smoke:channels:doctor:json:run && npm run smoke:doctor:fix:run && npm run smoke:chat:run && npm run smoke:onboard:run && npm run smoke:telegram:setup:run && npm run smoke:zalo:setup:run","start":"node dist/cli/index.js","smoke:mcp":"npm run build && npm run smoke:mcp:run","smoke:chat":"npm run build && npm run smoke:chat:run","smoke:zalo":"npm run build && npm run smoke:zalo:run","smoke:tools":"npm run build && npm run smoke:tools:run","smoke:doctor":"npm run build && npm run smoke:doctor:run","smoke:status":"npm run build && npm run smoke:status:run","smoke:mcp:run":"node scripts/smoke-mcp.mjs","smoke:onboard":"npm run build && npm run smoke:onboard:run","eval:character":"npm run build && node --test dist/character/prompt-generator.test.js dist/character/character-eval-cases.test.js","smoke:chat:run":"node scripts/smoke-cli-temp-runtime.mjs chat","smoke:telegram":"npm run build && npm run smoke:telegram:run","smoke:zalo:run":"node scripts/smoke-zalo-disabled.mjs","smoke:installer":"npm run build && node scripts/smoke-installer.mjs","smoke:tools:run":"node dist/cli/index.js tools logs --lines 5 | grep -q 'action_permission_decision' && node dist/cli/index.js tools memories --limit 5 >/dev/null && node dist/cli/index.js tools git status >/dev/null","smoke:zalo:real":"npm run build && node scripts/smoke-zalo-real.mjs","smoke:doctor:fix":"npm run build && npm run smoke:doctor:fix:run","smoke:doctor:run":"node scripts/smoke-cli-temp-runtime.mjs doctor","smoke:status:run":"node scripts/smoke-cli-temp-runtime.mjs status","smoke:zalo:setup":"npm run build && npm run smoke:zalo:setup:run","smoke:doctor:json":"npm run build && npm run smoke:doctor:json:run","smoke:onboard:run":"tmpdir=$(mktemp -d) && cd $tmpdir && printf 'Bestie\\nBoss\\nvi\\nUTC\\n7\\nask\\nopenai-compatible\\nhttp://127.0.0.1:9/v1\\ntest-model\\ntest-key\\n' | HOME=$tmpdir node $INIT_CWD/dist/cli/index.js onboard --skip-provider-test; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:run":"tmpdir=$(mktemp -d) && cd $tmpdir && HOME=$tmpdir node $INIT_CWD/dist/cli/index.js channels telegram 2>&1 | grep -q 'Telegram is not enabled'; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:real":"npm run build && node scripts/smoke-telegram-real.mjs","eval:character:cases":"npm run build && node --test dist/character/character-eval-cases.test.js","smoke:doctor:fix:run":"node scripts/smoke-doctor-fix.mjs","smoke:telegram:setup":"npm run build && npm run smoke:telegram:setup:run","smoke:zalo:setup:run":"node scripts/smoke-zalo-setup.mjs","smoke:doctor:json:run":"node scripts/smoke-cli-temp-runtime.mjs doctor-json","smoke:doctor:exit-code":"npm run build && node scripts/smoke-doctor-exit-code.mjs","smoke:telegram:setup:run":"node scripts/smoke-telegram-setup.mjs","smoke:channels:doctor:json":"npm run build && npm run smoke:channels:doctor:json:run","smoke:channels:doctor:json:run":"node scripts/smoke-channels-doctor-json.mjs"},"_npmUser":{"name":"andynguyenn","email":"j22487069@icloud.com"},"_npmVersion":"11.13.0","description":"Vietnamese-first bestie agent CLI.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"grammy":"^1.44.0","mammoth":"^1.12.0","commander":"^14.0.3","iso-639-1":"^3.1.6","pdf-parse":"^1.1.1","better-sqlite3":"^12.11.1","@grammyjs/types":"^3.28.0","@inquirer/prompts":"^8.5.2","@elevenlabs/elevenlabs-js":"^2.57.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.2","typescript":"^5.5.4","@types/node":"^20.14.15","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/bestie-agent_0.1.7_1784103515715_0.7193129868192902","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"name":"bestie-agent","version":"0.1.8","_id":"bestie-agent@0.1.8","maintainers":[{"name":"andynguyenn","email":"j22487069@icloud.com"}],"bin":{"bestie":"dist/cli/index.js"},"dist":{"shasum":"7246e3c82e5e2ce9ba297b9c25152e61209d35ef","tarball":"https://registry.npmjs.org/bestie-agent/-/bestie-agent-0.1.8.tgz","fileCount":80,"integrity":"sha512-wCSlKb/JvKwVGw0Gowib1coqwfZRa2X2EBwvFfhvZ6WEx7SsdT2/kEq5u7wHh5zq2NEyVMtyk1j58fFUZV8PjA==","signatures":[{"sig":"MEYCIQDqc6Upf12je/X72fFWLj7c6tfH2H+DFgviw8qb1WrcvwIhANcYeCVQcCQzjUvgHlUZWWf6vT+vP4cjibro/dQ4FN1p","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":530545},"type":"module","engines":{"node":">=20"},"gitHead":"8de69902a36c9a05b087906fa6e4447d4281d0eb","scripts":{"dev":"tsx src/cli/index.ts","test":"npm run build && node --test dist/**/*.test.js","build":"tsc -p tsconfig.json && chmod 755 dist/cli/index.js","clean":"rm -rf dist","smoke":"npm run build && npm run smoke:status:run && npm run smoke:doctor:run && npm run smoke:doctor:json:run && npm run smoke:channels:doctor:json:run && npm run smoke:doctor:fix:run && npm run smoke:chat:run && npm run smoke:onboard:run && npm run smoke:telegram:setup:run && npm run smoke:zalo:setup:run","start":"node dist/cli/index.js","prepack":"npm run clean && npm run build","smoke:mcp":"npm run build && npm run smoke:mcp:run","pack:check":"npm run clean && npm run build && npm pack --dry-run","smoke:chat":"npm run build && npm run smoke:chat:run","smoke:zalo":"npm run build && npm run smoke:zalo:run","smoke:tools":"npm run build && npm run smoke:tools:run","smoke:doctor":"npm run build && npm run smoke:doctor:run","smoke:status":"npm run build && npm run smoke:status:run","smoke:mcp:run":"node scripts/smoke-mcp.mjs","smoke:onboard":"npm run build && npm run smoke:onboard:run","eval:character":"npm run build && node --test dist/character/prompt-generator.test.js dist/character/character-eval-cases.test.js","prepublishOnly":"npm test","smoke:chat:run":"node scripts/smoke-cli-temp-runtime.mjs chat","smoke:telegram":"npm run build && npm run smoke:telegram:run","smoke:zalo:run":"node scripts/smoke-zalo-disabled.mjs","smoke:installer":"npm run build && node scripts/smoke-installer.mjs","smoke:tools:run":"node dist/cli/index.js tools logs --lines 5 | grep -q 'action_permission_decision' && node dist/cli/index.js tools memories --limit 5 >/dev/null && node dist/cli/index.js tools git status >/dev/null","smoke:zalo:real":"npm run build && node scripts/smoke-zalo-real.mjs","smoke:doctor:fix":"npm run build && npm run smoke:doctor:fix:run","smoke:doctor:run":"node scripts/smoke-cli-temp-runtime.mjs doctor","smoke:status:run":"node scripts/smoke-cli-temp-runtime.mjs status","smoke:zalo:setup":"npm run build && npm run smoke:zalo:setup:run","smoke:doctor:json":"npm run build && npm run smoke:doctor:json:run","smoke:onboard:run":"tmpdir=$(mktemp -d) && cd $tmpdir && printf 'Bestie\\nBoss\\nvi\\nUTC\\n7\\nask\\nopenai-compatible\\nhttp://127.0.0.1:9/v1\\ntest-model\\ntest-key\\n' | HOME=$tmpdir node $INIT_CWD/dist/cli/index.js onboard --skip-provider-test; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:run":"tmpdir=$(mktemp -d) && cd $tmpdir && HOME=$tmpdir node $INIT_CWD/dist/cli/index.js channels telegram 2>&1 | grep -q 'Telegram is not enabled'; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:real":"npm run build && node scripts/smoke-telegram-real.mjs","eval:character:cases":"npm run build && node --test dist/character/character-eval-cases.test.js","smoke:doctor:fix:run":"node scripts/smoke-doctor-fix.mjs","smoke:telegram:setup":"npm run build && npm run smoke:telegram:setup:run","smoke:zalo:setup:run":"node scripts/smoke-zalo-setup.mjs","smoke:doctor:json:run":"node scripts/smoke-cli-temp-runtime.mjs doctor-json","smoke:doctor:exit-code":"npm run build && node scripts/smoke-doctor-exit-code.mjs","smoke:telegram:setup:run":"node scripts/smoke-telegram-setup.mjs","smoke:channels:doctor:json":"npm run build && npm run smoke:channels:doctor:json:run","smoke:channels:doctor:json:run":"node scripts/smoke-channels-doctor-json.mjs"},"_npmUser":{"name":"andynguyenn","email":"j22487069@icloud.com"},"_npmVersion":"11.13.0","description":"Vietnamese-first bestie agent CLI.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"grammy":"^1.44.0","mammoth":"^1.12.0","commander":"^14.0.3","iso-639-1":"^3.1.6","pdf-parse":"^1.1.1","better-sqlite3":"^12.11.1","@grammyjs/types":"^3.28.0","@inquirer/prompts":"^8.5.2","@elevenlabs/elevenlabs-js":"^2.57.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.2","typescript":"^5.5.4","@types/node":"^20.14.15","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/bestie-agent_0.1.8_1784104459305_0.24293458730659978","host":"s3://npm-registry-packages-npm-production"}},"0.1.9":{"name":"bestie-agent","version":"0.1.9","_id":"bestie-agent@0.1.9","maintainers":[{"name":"andynguyenn","email":"j22487069@icloud.com"}],"bin":{"bestie":"dist/cli/index.js"},"dist":{"shasum":"e2b476c438e668554bbc09a22723144a9aed7964","tarball":"https://registry.npmjs.org/bestie-agent/-/bestie-agent-0.1.9.tgz","fileCount":80,"integrity":"sha512-mQQbKaEXGcKWzywVwlqfJYTif2cykYWWuKoztZfIh2WGT5rdNgbOsCJEBspouuENl2FKY2AlrDXExzGtc3WUkg==","signatures":[{"sig":"MEYCIQDX9z9YUHprZaw+8VfKXzIrhzpYCyJpneYUCQ3+JfuOvgIhAI5X52ugbEIkoLrzBk08Y98S3FJ0hT0rpr+vJW3YSRcq","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":530584},"type":"module","engines":{"node":">=20"},"gitHead":"9f20e25dd61fe8436162f6be03108a6e1554e5c8","scripts":{"dev":"tsx src/cli/index.ts","test":"npm run build && node --test dist/**/*.test.js","build":"tsc -p tsconfig.json && chmod 755 dist/cli/index.js","clean":"rm -rf dist","smoke":"npm run build && npm run smoke:status:run && npm run smoke:doctor:run && npm run smoke:doctor:json:run && npm run smoke:channels:doctor:json:run && npm run smoke:doctor:fix:run && npm run smoke:chat:run && npm run smoke:onboard:run && npm run smoke:telegram:setup:run && npm run smoke:zalo:setup:run","start":"node dist/cli/index.js","prepack":"npm run clean && npm run build","smoke:mcp":"npm run build && npm run smoke:mcp:run","pack:check":"npm run clean && npm run build && npm pack --dry-run","smoke:chat":"npm run build && npm run smoke:chat:run","smoke:zalo":"npm run build && npm run smoke:zalo:run","smoke:tools":"npm run build && npm run smoke:tools:run","smoke:doctor":"npm run build && npm run smoke:doctor:run","smoke:status":"npm run build && npm run smoke:status:run","smoke:mcp:run":"node scripts/smoke-mcp.mjs","smoke:onboard":"npm run build && npm run smoke:onboard:run","eval:character":"npm run build && node --test dist/character/prompt-generator.test.js dist/character/character-eval-cases.test.js","prepublishOnly":"npm test","smoke:chat:run":"node scripts/smoke-cli-temp-runtime.mjs chat","smoke:telegram":"npm run build && npm run smoke:telegram:run","smoke:zalo:run":"node scripts/smoke-zalo-disabled.mjs","smoke:installer":"npm run build && node scripts/smoke-installer.mjs","smoke:tools:run":"node dist/cli/index.js tools logs --lines 5 | grep -q 'action_permission_decision' && node dist/cli/index.js tools memories --limit 5 >/dev/null && node dist/cli/index.js tools git status >/dev/null","smoke:zalo:real":"npm run build && node scripts/smoke-zalo-real.mjs","smoke:doctor:fix":"npm run build && npm run smoke:doctor:fix:run","smoke:doctor:run":"node scripts/smoke-cli-temp-runtime.mjs doctor","smoke:status:run":"node scripts/smoke-cli-temp-runtime.mjs status","smoke:zalo:setup":"npm run build && npm run smoke:zalo:setup:run","smoke:doctor:json":"npm run build && npm run smoke:doctor:json:run","smoke:onboard:run":"tmpdir=$(mktemp -d) && cd $tmpdir && printf 'Bestie\\nBoss\\nvi\\nUTC\\n7\\nask\\nopenai-compatible\\nhttp://127.0.0.1:9/v1\\ntest-model\\ntest-key\\n' | HOME=$tmpdir node $INIT_CWD/dist/cli/index.js onboard --skip-provider-test; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:run":"tmpdir=$(mktemp -d) && cd $tmpdir && HOME=$tmpdir node $INIT_CWD/dist/cli/index.js channels telegram 2>&1 | grep -q 'Telegram is not enabled'; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:real":"npm run build && node scripts/smoke-telegram-real.mjs","eval:character:cases":"npm run build && node --test dist/character/character-eval-cases.test.js","smoke:doctor:fix:run":"node scripts/smoke-doctor-fix.mjs","smoke:telegram:setup":"npm run build && npm run smoke:telegram:setup:run","smoke:zalo:setup:run":"node scripts/smoke-zalo-setup.mjs","smoke:doctor:json:run":"node scripts/smoke-cli-temp-runtime.mjs doctor-json","smoke:doctor:exit-code":"npm run build && node scripts/smoke-doctor-exit-code.mjs","smoke:telegram:setup:run":"node scripts/smoke-telegram-setup.mjs","smoke:channels:doctor:json":"npm run build && npm run smoke:channels:doctor:json:run","smoke:channels:doctor:json:run":"node scripts/smoke-channels-doctor-json.mjs"},"_npmUser":{"name":"andynguyenn","email":"j22487069@icloud.com"},"_npmVersion":"11.13.0","description":"Vietnamese-first bestie agent CLI.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"grammy":"^1.44.0","mammoth":"^1.12.0","commander":"^14.0.3","iso-639-1":"^3.1.6","pdf-parse":"^1.1.1","better-sqlite3":"^12.11.1","@grammyjs/types":"^3.28.0","@inquirer/prompts":"^8.5.2","@elevenlabs/elevenlabs-js":"^2.57.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.2","typescript":"^5.5.4","@types/node":"^20.14.15","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/bestie-agent_0.1.9_1784105600656_0.16334969242476127","host":"s3://npm-registry-packages-npm-production"}},"0.1.10":{"name":"bestie-agent","version":"0.1.10","_id":"bestie-agent@0.1.10","maintainers":[{"name":"andynguyenn","email":"j22487069@icloud.com"}],"bin":{"bestie":"dist/cli/index.js"},"dist":{"shasum":"faef9ea342536dace3b9bd56e3885c0f3c174831","tarball":"https://registry.npmjs.org/bestie-agent/-/bestie-agent-0.1.10.tgz","fileCount":80,"integrity":"sha512-C+OEgGNxY90Q4Rta2MFgI1RjB3VnRKJAlaSSestgEkGOnfH98WQYSm3pYVdH5ygtW7N9h8DJPKJWb/AUBL3SSA==","signatures":[{"sig":"MEYCIQD05XfC9Lt4FJVzSAIp8fypp5vRWudp5L31125ZU+6tLAIhAMrjBUFzkuayGOD1IqwX5vW8Dm11f7UkD2Jngd0pkHQW","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":530589},"type":"module","engines":{"node":">=20"},"gitHead":"062fe1857663bc71a93ef04471a11588137501ca","scripts":{"dev":"tsx src/cli/index.ts","test":"npm run build && node --test dist/**/*.test.js","build":"tsc -p tsconfig.json && chmod 755 dist/cli/index.js","clean":"rm -rf dist","smoke":"npm run build && npm run smoke:status:run && npm run smoke:doctor:run && npm run smoke:doctor:json:run && npm run smoke:channels:doctor:json:run && npm run smoke:doctor:fix:run && npm run smoke:chat:run && npm run smoke:onboard:run && npm run smoke:telegram:setup:run && npm run smoke:zalo:setup:run","start":"node dist/cli/index.js","prepack":"npm run clean && npm run build","smoke:mcp":"npm run build && npm run smoke:mcp:run","pack:check":"npm run clean && npm run build && npm pack --dry-run","smoke:chat":"npm run build && npm run smoke:chat:run","smoke:zalo":"npm run build && npm run smoke:zalo:run","smoke:tools":"npm run build && npm run smoke:tools:run","smoke:doctor":"npm run build && npm run smoke:doctor:run","smoke:status":"npm run build && npm run smoke:status:run","smoke:mcp:run":"node scripts/smoke-mcp.mjs","smoke:onboard":"npm run build && npm run smoke:onboard:run","eval:character":"npm run build && node --test dist/character/prompt-generator.test.js dist/character/character-eval-cases.test.js","prepublishOnly":"npm test","smoke:chat:run":"node scripts/smoke-cli-temp-runtime.mjs chat","smoke:telegram":"npm run build && npm run smoke:telegram:run","smoke:zalo:run":"node scripts/smoke-zalo-disabled.mjs","smoke:installer":"npm run build && node scripts/smoke-installer.mjs","smoke:tools:run":"node dist/cli/index.js tools logs --lines 5 | grep -q 'action_permission_decision' && node dist/cli/index.js tools memories --limit 5 >/dev/null && node dist/cli/index.js tools git status >/dev/null","smoke:zalo:real":"npm run build && node scripts/smoke-zalo-real.mjs","smoke:doctor:fix":"npm run build && npm run smoke:doctor:fix:run","smoke:doctor:run":"node scripts/smoke-cli-temp-runtime.mjs doctor","smoke:status:run":"node scripts/smoke-cli-temp-runtime.mjs status","smoke:zalo:setup":"npm run build && npm run smoke:zalo:setup:run","smoke:doctor:json":"npm run build && npm run smoke:doctor:json:run","smoke:onboard:run":"tmpdir=$(mktemp -d) && cd $tmpdir && printf 'Bestie\\nBoss\\nvi\\nUTC\\n7\\nask\\nopenai-compatible\\nhttp://127.0.0.1:9/v1\\ntest-model\\ntest-key\\n' | HOME=$tmpdir node $INIT_CWD/dist/cli/index.js onboard --skip-provider-test; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:run":"tmpdir=$(mktemp -d) && cd $tmpdir && HOME=$tmpdir node $INIT_CWD/dist/cli/index.js channels telegram 2>&1 | grep -q 'Telegram is not enabled'; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:real":"npm run build && node scripts/smoke-telegram-real.mjs","eval:character:cases":"npm run build && node --test dist/character/character-eval-cases.test.js","smoke:doctor:fix:run":"node scripts/smoke-doctor-fix.mjs","smoke:telegram:setup":"npm run build && npm run smoke:telegram:setup:run","smoke:zalo:setup:run":"node scripts/smoke-zalo-setup.mjs","smoke:doctor:json:run":"node scripts/smoke-cli-temp-runtime.mjs doctor-json","smoke:doctor:exit-code":"npm run build && node scripts/smoke-doctor-exit-code.mjs","smoke:telegram:setup:run":"node scripts/smoke-telegram-setup.mjs","smoke:channels:doctor:json":"npm run build && npm run smoke:channels:doctor:json:run","smoke:channels:doctor:json:run":"node scripts/smoke-channels-doctor-json.mjs"},"_npmUser":{"name":"andynguyenn","email":"j22487069@icloud.com"},"_npmVersion":"11.13.0","description":"Vietnamese-first bestie agent CLI.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"grammy":"^1.44.0","mammoth":"^1.12.0","commander":"^14.0.3","iso-639-1":"^3.1.6","pdf-parse":"^1.1.1","better-sqlite3":"^12.11.1","@grammyjs/types":"^3.28.0","@inquirer/prompts":"^8.5.2","@elevenlabs/elevenlabs-js":"^2.57.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.2","typescript":"^5.5.4","@types/node":"^20.14.15","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/bestie-agent_0.1.10_1784113186407_0.14195425801451145","host":"s3://npm-registry-packages-npm-production"}},"0.1.11":{"name":"bestie-agent","version":"0.1.11","_id":"bestie-agent@0.1.11","maintainers":[{"name":"andynguyenn","email":"j22487069@icloud.com"}],"bin":{"bestie":"dist/cli/index.js"},"dist":{"shasum":"6c46898d5804bf1c4660ea794af2af710388f76a","tarball":"https://registry.npmjs.org/bestie-agent/-/bestie-agent-0.1.11.tgz","fileCount":85,"integrity":"sha512-5U2puvKUwepex965SJ69cYHO2tUjRU4MfnzP6/r1YYgPdSjbty/dUTFdUs6/9PCyXUX1Rim0kIowWF7KXUt/Tw==","signatures":[{"sig":"MEYCIQDTBrqFfIRyJEukZgsgH2MMklZDN9XE44ZFL5Ux5ISv6AIhALv6hSc92bOfbiYqu5pyecEMS7FrnkxEYffI/dnE0GfX","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":564437},"type":"module","engines":{"node":">=20"},"gitHead":"79796db58995ff0b3adddd5323363ceccb002344","scripts":{"dev":"tsx src/cli/index.ts","test":"npm run build && node --test dist/**/*.test.js","build":"tsc -p tsconfig.json && chmod 755 dist/cli/index.js","clean":"rm -rf dist","smoke":"npm run build && npm run smoke:status:run && npm run smoke:doctor:run && npm run smoke:doctor:json:run && npm run smoke:channels:doctor:json:run && npm run smoke:doctor:fix:run && npm run smoke:chat:run && npm run smoke:onboard:run && npm run smoke:telegram:setup:run && npm run smoke:zalo:setup:run","start":"node dist/cli/index.js","prepack":"npm run clean && npm run build","smoke:mcp":"npm run build && npm run smoke:mcp:run","pack:check":"npm run clean && npm run build && npm pack --dry-run","smoke:chat":"npm run build && npm run smoke:chat:run","smoke:zalo":"npm run build && npm run smoke:zalo:run","smoke:tools":"npm run build && npm run smoke:tools:run","smoke:doctor":"npm run build && npm run smoke:doctor:run","smoke:status":"npm run build && npm run smoke:status:run","smoke:mcp:run":"node scripts/smoke-mcp.mjs","smoke:onboard":"npm run build && npm run smoke:onboard:run","eval:character":"npm run build && node --test dist/character/prompt-generator.test.js dist/character/character-eval-cases.test.js","prepublishOnly":"npm test","smoke:chat:run":"node scripts/smoke-cli-temp-runtime.mjs chat","smoke:telegram":"npm run build && npm run smoke:telegram:run","smoke:zalo:run":"node scripts/smoke-zalo-disabled.mjs","smoke:installer":"npm run build && node scripts/smoke-installer.mjs","smoke:tools:run":"node dist/cli/index.js tools logs --lines 5 | grep -q 'action_permission_decision' && node dist/cli/index.js tools memories --limit 5 >/dev/null && node dist/cli/index.js tools git status >/dev/null","smoke:zalo:real":"npm run build && node scripts/smoke-zalo-real.mjs","smoke:doctor:fix":"npm run build && npm run smoke:doctor:fix:run","smoke:doctor:run":"node scripts/smoke-cli-temp-runtime.mjs doctor","smoke:status:run":"node scripts/smoke-cli-temp-runtime.mjs status","smoke:zalo:setup":"npm run build && npm run smoke:zalo:setup:run","smoke:doctor:json":"npm run build && npm run smoke:doctor:json:run","smoke:onboard:run":"tmpdir=$(mktemp -d) && cd $tmpdir && printf 'Bestie\\nBoss\\nvi\\nUTC\\n7\\nask\\nopenai-compatible\\nhttp://127.0.0.1:9/v1\\ntest-model\\ntest-key\\n' | HOME=$tmpdir node $INIT_CWD/dist/cli/index.js onboard --skip-provider-test; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:run":"tmpdir=$(mktemp -d) && cd $tmpdir && HOME=$tmpdir node $INIT_CWD/dist/cli/index.js channels telegram 2>&1 | grep -q 'Telegram is not enabled'; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:real":"npm run build && node scripts/smoke-telegram-real.mjs","eval:character:cases":"npm run build && node --test dist/character/character-eval-cases.test.js","smoke:doctor:fix:run":"node scripts/smoke-doctor-fix.mjs","smoke:telegram:setup":"npm run build && npm run smoke:telegram:setup:run","smoke:zalo:setup:run":"node scripts/smoke-zalo-setup.mjs","smoke:doctor:json:run":"node scripts/smoke-cli-temp-runtime.mjs doctor-json","smoke:doctor:exit-code":"npm run build && node scripts/smoke-doctor-exit-code.mjs","smoke:telegram:setup:run":"node scripts/smoke-telegram-setup.mjs","smoke:channels:doctor:json":"npm run build && npm run smoke:channels:doctor:json:run","smoke:channels:doctor:json:run":"node scripts/smoke-channels-doctor-json.mjs"},"_npmUser":{"name":"andynguyenn","email":"j22487069@icloud.com"},"_npmVersion":"11.13.0","description":"Vietnamese-first bestie agent CLI.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"grammy":"^1.44.0","mammoth":"^1.12.0","commander":"^14.0.3","iso-639-1":"^3.1.6","pdf-parse":"^1.1.1","better-sqlite3":"^12.11.1","@grammyjs/types":"^3.28.0","@inquirer/prompts":"^8.5.2","@elevenlabs/elevenlabs-js":"^2.57.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.2","typescript":"^5.5.4","@types/node":"^20.14.15","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/bestie-agent_0.1.11_1784117284862_0.3811001676676731","host":"s3://npm-registry-packages-npm-production"}},"0.1.12":{"name":"bestie-agent","version":"0.1.12","_id":"bestie-agent@0.1.12","maintainers":[{"name":"andynguyenn","email":"j22487069@icloud.com"}],"bin":{"bestie":"dist/cli/index.js"},"dist":{"shasum":"9cce2ea91924f55f84b1640c89e403ef8cb3d4df","tarball":"https://registry.npmjs.org/bestie-agent/-/bestie-agent-0.1.12.tgz","fileCount":88,"integrity":"sha512-TlHOg/7assgoG/eDxHIZjf/RVOP4OcxdzdzE++EbUN3kWP6VMr7FUeSju+QB/CcBfFgV3ztfOFEq+ElU0ATK0w==","signatures":[{"sig":"MEQCIHGp4xSPKlJ4onpeC81L7iIzACisEfl1GXpoTeWAP3LqAiB1QHOqyC/nMWnBnbr9t7FZHDxU0rtln/JIQCiukkHGWQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":588160},"type":"module","engines":{"node":">=20"},"gitHead":"af95d25fe824727d2c8d8c92f1b685a46ecbb40e","scripts":{"dev":"tsx src/cli/index.ts","test":"npm run build && node --test dist/**/*.test.js","build":"tsc -p tsconfig.json && chmod 755 dist/cli/index.js","clean":"rm -rf dist","smoke":"npm run build && npm run smoke:status:run && npm run smoke:doctor:run && npm run smoke:doctor:json:run && npm run smoke:channels:doctor:json:run && npm run smoke:doctor:fix:run && npm run smoke:chat:run && npm run smoke:onboard:run && npm run smoke:telegram:setup:run && npm run smoke:zalo:setup:run","start":"node dist/cli/index.js","prepack":"npm run clean && npm run build","smoke:mcp":"npm run build && npm run smoke:mcp:run","pack:check":"npm run clean && npm run build && npm pack --dry-run","smoke:chat":"npm run build && npm run smoke:chat:run","smoke:zalo":"npm run build && npm run smoke:zalo:run","smoke:tools":"npm run build && npm run smoke:tools:run","smoke:doctor":"npm run build && npm run smoke:doctor:run","smoke:status":"npm run build && npm run smoke:status:run","smoke:mcp:run":"node scripts/smoke-mcp.mjs","smoke:onboard":"npm run build && npm run smoke:onboard:run","eval:character":"npm run build && node --test dist/character/prompt-generator.test.js dist/character/character-eval-cases.test.js","prepublishOnly":"npm test","smoke:chat:run":"node scripts/smoke-cli-temp-runtime.mjs chat","smoke:telegram":"npm run build && npm run smoke:telegram:run","smoke:zalo:run":"node scripts/smoke-zalo-disabled.mjs","smoke:installer":"npm run build && node scripts/smoke-installer.mjs","smoke:tools:run":"node dist/cli/index.js tools logs --lines 5 | grep -q 'action_permission_decision' && node dist/cli/index.js tools memories --limit 5 >/dev/null && node dist/cli/index.js tools git status >/dev/null","smoke:zalo:real":"npm run build && node scripts/smoke-zalo-real.mjs","smoke:doctor:fix":"npm run build && npm run smoke:doctor:fix:run","smoke:doctor:run":"node scripts/smoke-cli-temp-runtime.mjs doctor","smoke:status:run":"node scripts/smoke-cli-temp-runtime.mjs status","smoke:zalo:setup":"npm run build && npm run smoke:zalo:setup:run","smoke:doctor:json":"npm run build && npm run smoke:doctor:json:run","smoke:onboard:run":"tmpdir=$(mktemp -d) && cd $tmpdir && printf 'Bestie\\nBoss\\nvi\\nUTC\\n7\\nask\\nopenai-compatible\\nhttp://127.0.0.1:9/v1\\ntest-model\\ntest-key\\n' | HOME=$tmpdir node $INIT_CWD/dist/cli/index.js onboard --skip-provider-test; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:run":"tmpdir=$(mktemp -d) && cd $tmpdir && HOME=$tmpdir node $INIT_CWD/dist/cli/index.js channels telegram 2>&1 | grep -q 'Telegram is not enabled'; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:real":"npm run build && node scripts/smoke-telegram-real.mjs","eval:character:cases":"npm run build && node --test dist/character/character-eval-cases.test.js","smoke:doctor:fix:run":"node scripts/smoke-doctor-fix.mjs","smoke:telegram:setup":"npm run build && npm run smoke:telegram:setup:run","smoke:zalo:setup:run":"node scripts/smoke-zalo-setup.mjs","smoke:doctor:json:run":"node scripts/smoke-cli-temp-runtime.mjs doctor-json","smoke:doctor:exit-code":"npm run build && node scripts/smoke-doctor-exit-code.mjs","smoke:telegram:setup:run":"node scripts/smoke-telegram-setup.mjs","smoke:channels:doctor:json":"npm run build && npm run smoke:channels:doctor:json:run","smoke:channels:doctor:json:run":"node scripts/smoke-channels-doctor-json.mjs"},"_npmUser":{"name":"andynguyenn","email":"j22487069@icloud.com"},"_npmVersion":"11.13.0","description":"Vietnamese-first bestie agent CLI.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"grammy":"^1.44.0","mammoth":"^1.12.0","commander":"^14.0.3","iso-639-1":"^3.1.6","pdf-parse":"^1.1.1","better-sqlite3":"^12.11.1","@grammyjs/types":"^3.28.0","@inquirer/prompts":"^8.5.2","@elevenlabs/elevenlabs-js":"^2.57.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.2","typescript":"^5.5.4","@types/node":"^20.14.15","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/bestie-agent_0.1.12_1784132867020_0.12469966022133594","host":"s3://npm-registry-packages-npm-production"}},"0.1.13":{"name":"bestie-agent","version":"0.1.13","_id":"bestie-agent@0.1.13","maintainers":[{"name":"andynguyenn","email":"j22487069@icloud.com"}],"bin":{"bestie":"dist/cli/index.js"},"dist":{"shasum":"bd99938fe627f35b17333431469710defbe4743d","tarball":"https://registry.npmjs.org/bestie-agent/-/bestie-agent-0.1.13.tgz","fileCount":88,"integrity":"sha512-R6qgJGX0Ps2GKhyJVE08mMukN3am/ivsbx4hIu4yte9mxGyt9FWu3YlB7BalR11ETtJATMUEMwL5m5Wu4eHxUw==","signatures":[{"sig":"MEQCIDDetaQ6+29UqgZdSJfmZmjAUSkAOwkD1mP6NEcqQQbRAiA16BeIcSubuh8b5OQenvYMBzuEZjxmYAxOvGls0jBOVw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":588060},"type":"module","engines":{"node":">=20"},"gitHead":"e4eba016212bc1b6fa8e726e23d7423c1aa48dcd","scripts":{"dev":"tsx src/cli/index.ts","test":"npm run build && node --test dist/**/*.test.js","build":"tsc -p tsconfig.json && chmod 755 dist/cli/index.js","clean":"rm -rf dist","smoke":"npm run build && npm run smoke:status:run && npm run smoke:doctor:run && npm run smoke:doctor:json:run && npm run smoke:channels:doctor:json:run && npm run smoke:doctor:fix:run && npm run smoke:chat:run && npm run smoke:onboard:run && npm run smoke:telegram:setup:run && npm run smoke:zalo:setup:run","start":"node dist/cli/index.js","prepack":"npm run clean && npm run build","smoke:mcp":"npm run build && npm run smoke:mcp:run","pack:check":"npm run clean && npm run build && npm pack --dry-run","smoke:chat":"npm run build && npm run smoke:chat:run","smoke:zalo":"npm run build && npm run smoke:zalo:run","smoke:tools":"npm run build && npm run smoke:tools:run","smoke:doctor":"npm run build && npm run smoke:doctor:run","smoke:status":"npm run build && npm run smoke:status:run","smoke:mcp:run":"node scripts/smoke-mcp.mjs","smoke:onboard":"npm run build && npm run smoke:onboard:run","eval:character":"npm run build && node --test dist/character/prompt-generator.test.js dist/character/character-eval-cases.test.js","prepublishOnly":"npm test","smoke:chat:run":"node scripts/smoke-cli-temp-runtime.mjs chat","smoke:telegram":"npm run build && npm run smoke:telegram:run","smoke:zalo:run":"node scripts/smoke-zalo-disabled.mjs","smoke:installer":"npm run build && node scripts/smoke-installer.mjs","smoke:tools:run":"node dist/cli/index.js tools logs --lines 5 | grep -q 'action_permission_decision' && node dist/cli/index.js tools memories --limit 5 >/dev/null && node dist/cli/index.js tools git status >/dev/null","smoke:zalo:real":"npm run build && node scripts/smoke-zalo-real.mjs","smoke:doctor:fix":"npm run build && npm run smoke:doctor:fix:run","smoke:doctor:run":"node scripts/smoke-cli-temp-runtime.mjs doctor","smoke:status:run":"node scripts/smoke-cli-temp-runtime.mjs status","smoke:zalo:setup":"npm run build && npm run smoke:zalo:setup:run","smoke:doctor:json":"npm run build && npm run smoke:doctor:json:run","smoke:onboard:run":"tmpdir=$(mktemp -d) && cd $tmpdir && printf 'Bestie\\nBoss\\nvi\\nUTC\\n7\\nask\\nopenai-compatible\\nhttp://127.0.0.1:9/v1\\ntest-model\\ntest-key\\n' | HOME=$tmpdir node $INIT_CWD/dist/cli/index.js onboard --skip-provider-test; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:run":"tmpdir=$(mktemp -d) && cd $tmpdir && HOME=$tmpdir node $INIT_CWD/dist/cli/index.js channels telegram 2>&1 | grep -q 'Telegram is not enabled'; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:real":"npm run build && node scripts/smoke-telegram-real.mjs","eval:character:cases":"npm run build && node --test dist/character/character-eval-cases.test.js","smoke:doctor:fix:run":"node scripts/smoke-doctor-fix.mjs","smoke:telegram:setup":"npm run build && npm run smoke:telegram:setup:run","smoke:zalo:setup:run":"node scripts/smoke-zalo-setup.mjs","smoke:doctor:json:run":"node scripts/smoke-cli-temp-runtime.mjs doctor-json","smoke:doctor:exit-code":"npm run build && node scripts/smoke-doctor-exit-code.mjs","smoke:telegram:setup:run":"node scripts/smoke-telegram-setup.mjs","smoke:channels:doctor:json":"npm run build && npm run smoke:channels:doctor:json:run","smoke:channels:doctor:json:run":"node scripts/smoke-channels-doctor-json.mjs"},"_npmUser":{"name":"andynguyenn","email":"j22487069@icloud.com"},"_npmVersion":"11.13.0","description":"Vietnamese-first bestie agent CLI.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"grammy":"^1.44.0","mammoth":"^1.12.0","commander":"^14.0.3","iso-639-1":"^3.1.6","pdf-parse":"^1.1.1","better-sqlite3":"^12.11.1","@grammyjs/types":"^3.28.0","@inquirer/prompts":"^8.5.2","@elevenlabs/elevenlabs-js":"^2.57.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.2","typescript":"^5.5.4","@types/node":"^20.14.15","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/bestie-agent_0.1.13_1784135897564_0.8655561736539843","host":"s3://npm-registry-packages-npm-production"}},"0.1.14":{"name":"bestie-agent","version":"0.1.14","_id":"bestie-agent@0.1.14","maintainers":[{"name":"andynguyenn","email":"j22487069@icloud.com"}],"bin":{"bestie":"dist/cli/index.js"},"dist":{"shasum":"2ae8ba48aac4df80588ee02826805f2bdf040809","tarball":"https://registry.npmjs.org/bestie-agent/-/bestie-agent-0.1.14.tgz","fileCount":89,"integrity":"sha512-l79PTSBeRB7LV8r5NydF16aOofzg6NVPfHJzAS/XVOYPghly5tuM3kOFsGIxSKSJ65afJCUSrQvLlECo9mceQg==","signatures":[{"sig":"MEYCIQD7Tuzrc/bkPUWIiKi2WeYOsZdYliWB5g2LSgRunPT/HgIhAP1fw43A49+ikRqljY6XW9G4p7MuCmfimMFPPHcYe2Pq","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":609095},"type":"module","engines":{"node":">=20"},"gitHead":"fd1499e8e51c76fd504a0ef1eaa23034676afa16","scripts":{"dev":"tsx src/cli/index.ts","test":"npm run build && node --test dist/**/*.test.js","build":"tsc -p tsconfig.json && chmod 755 dist/cli/index.js","clean":"rm -rf dist","smoke":"npm run build && npm run smoke:status:run && npm run smoke:doctor:run && npm run smoke:doctor:json:run && npm run smoke:channels:doctor:json:run && npm run smoke:doctor:fix:run && npm run smoke:chat:run && npm run smoke:onboard:run && npm run smoke:telegram:setup:run && npm run smoke:zalo:setup:run","start":"node dist/cli/index.js","prepack":"npm run clean && npm run build","smoke:mcp":"npm run build && npm run smoke:mcp:run","pack:check":"npm run clean && npm run build && npm pack --dry-run","smoke:chat":"npm run build && npm run smoke:chat:run","smoke:zalo":"npm run build && npm run smoke:zalo:run","smoke:tools":"npm run build && npm run smoke:tools:run","smoke:doctor":"npm run build && npm run smoke:doctor:run","smoke:status":"npm run build && npm run smoke:status:run","smoke:mcp:run":"node scripts/smoke-mcp.mjs","smoke:onboard":"npm run build && npm run smoke:onboard:run","eval:character":"npm run build && node --test dist/character/prompt-generator.test.js dist/character/character-eval-cases.test.js","prepublishOnly":"npm test","smoke:chat:run":"node scripts/smoke-cli-temp-runtime.mjs chat","smoke:telegram":"npm run build && npm run smoke:telegram:run","smoke:zalo:run":"node scripts/smoke-zalo-disabled.mjs","smoke:installer":"npm run build && node scripts/smoke-installer.mjs","smoke:tools:run":"node dist/cli/index.js tools logs --lines 5 | grep -q 'action_permission_decision' && node dist/cli/index.js tools memories --limit 5 >/dev/null && node dist/cli/index.js tools git status >/dev/null","smoke:zalo:real":"npm run build && node scripts/smoke-zalo-real.mjs","smoke:doctor:fix":"npm run build && npm run smoke:doctor:fix:run","smoke:doctor:run":"node scripts/smoke-cli-temp-runtime.mjs doctor","smoke:status:run":"node scripts/smoke-cli-temp-runtime.mjs status","smoke:zalo:setup":"npm run build && npm run smoke:zalo:setup:run","smoke:doctor:json":"npm run build && npm run smoke:doctor:json:run","smoke:onboard:run":"tmpdir=$(mktemp -d) && cd $tmpdir && printf 'Bestie\\nBoss\\nvi\\nUTC\\n7\\nask\\nopenai-compatible\\nhttp://127.0.0.1:9/v1\\ntest-model\\ntest-key\\n' | HOME=$tmpdir node $INIT_CWD/dist/cli/index.js onboard --skip-provider-test; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:run":"tmpdir=$(mktemp -d) && cd $tmpdir && HOME=$tmpdir node $INIT_CWD/dist/cli/index.js channels telegram 2>&1 | grep -q 'Telegram is not enabled'; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:real":"npm run build && node scripts/smoke-telegram-real.mjs","eval:character:cases":"npm run build && node --test dist/character/character-eval-cases.test.js","smoke:doctor:fix:run":"node scripts/smoke-doctor-fix.mjs","smoke:telegram:setup":"npm run build && npm run smoke:telegram:setup:run","smoke:zalo:setup:run":"node scripts/smoke-zalo-setup.mjs","smoke:doctor:json:run":"node scripts/smoke-cli-temp-runtime.mjs doctor-json","smoke:doctor:exit-code":"npm run build && node scripts/smoke-doctor-exit-code.mjs","smoke:telegram:setup:run":"node scripts/smoke-telegram-setup.mjs","smoke:channels:doctor:json":"npm run build && npm run smoke:channels:doctor:json:run","smoke:channels:doctor:json:run":"node scripts/smoke-channels-doctor-json.mjs"},"_npmUser":{"name":"andynguyenn","email":"j22487069@icloud.com"},"_npmVersion":"11.13.0","description":"Vietnamese-first bestie agent CLI.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"grammy":"^1.44.0","mammoth":"^1.12.0","commander":"^14.0.3","iso-639-1":"^3.1.6","pdf-parse":"^1.1.1","better-sqlite3":"^12.11.1","@grammyjs/types":"^3.28.0","@inquirer/prompts":"^8.5.2","@elevenlabs/elevenlabs-js":"^2.57.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.2","typescript":"^5.5.4","@types/node":"^20.14.15","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/bestie-agent_0.1.14_1784173488447_0.8234962153718426","host":"s3://npm-registry-packages-npm-production"}},"0.1.15":{"name":"bestie-agent","version":"0.1.15","_id":"bestie-agent@0.1.15","maintainers":[{"name":"andynguyenn","email":"j22487069@icloud.com"}],"bin":{"bestie":"dist/cli/index.js"},"dist":{"shasum":"4bf8f169da567ba7bde7d658f0b123947d1eff4a","tarball":"https://registry.npmjs.org/bestie-agent/-/bestie-agent-0.1.15.tgz","fileCount":99,"integrity":"sha512-eRHh7ID2DoYN1hkcYIbhI+DzBCueBeiafhnjod/pA6lQfxpyiEZTaY77rdfTVUGOSNaexD7i09qQaLdgpZI/IA==","signatures":[{"sig":"MEUCIQCNSmqtRi4spmrw/hfilAZaLg5mRgY9KbxQmVGFambBNAIgKpjQII0s1PZkfkH/2nCfsx0ELj5ILrIcXlihWdveL40=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":779164},"type":"module","engines":{"node":">=24"},"gitHead":"d38a69c597d2602b32b12ac63b35582825079b34","scripts":{"dev":"tsx src/cli/index.ts","test":"npm run build && node --test dist/**/*.test.js","build":"tsc -p tsconfig.json && chmod 755 dist/cli/index.js","clean":"rm -rf dist","smoke":"npm run build && npm run smoke:status:run && npm run smoke:doctor:run && npm run smoke:doctor:json:run && npm run smoke:channels:doctor:json:run && npm run smoke:doctor:fix:run && npm run smoke:chat:run && npm run smoke:onboard:run && npm run smoke:telegram:setup:run && npm run smoke:zalo:setup:run","start":"node dist/cli/index.js","prepack":"npm run clean && npm run build","smoke:mcp":"npm run build && npm run smoke:mcp:run","pack:check":"npm run clean && npm run build && npm pack --dry-run","smoke:chat":"npm run build && npm run smoke:chat:run","smoke:zalo":"npm run build && npm run smoke:zalo:run","smoke:tools":"npm run build && npm run smoke:tools:run","smoke:doctor":"npm run build && npm run smoke:doctor:run","smoke:status":"npm run build && npm run smoke:status:run","smoke:mcp:run":"node scripts/smoke-mcp.mjs","smoke:onboard":"npm run build && npm run smoke:onboard:run","eval:character":"npm run build && node --test dist/character/prompt-generator.test.js dist/character/character-eval-cases.test.js","prepublishOnly":"npm test","smoke:chat:run":"node scripts/smoke-cli-temp-runtime.mjs chat","smoke:telegram":"npm run build && npm run smoke:telegram:run","smoke:zalo:run":"node scripts/smoke-zalo-disabled.mjs","smoke:installer":"npm run build && node scripts/smoke-installer.mjs","smoke:tools:run":"node dist/cli/index.js tools logs --lines 5 | grep -q 'action_permission_decision' && node dist/cli/index.js tools memories --limit 5 >/dev/null && node dist/cli/index.js tools git status >/dev/null","smoke:zalo:real":"npm run build && node scripts/smoke-zalo-real.mjs","smoke:doctor:fix":"npm run build && npm run smoke:doctor:fix:run","smoke:doctor:run":"node scripts/smoke-cli-temp-runtime.mjs doctor","smoke:status:run":"node scripts/smoke-cli-temp-runtime.mjs status","smoke:zalo:setup":"npm run build && npm run smoke:zalo:setup:run","smoke:doctor:json":"npm run build && npm run smoke:doctor:json:run","smoke:onboard:run":"tmpdir=$(mktemp -d) && cd $tmpdir && printf 'Bestie\\nBoss\\nvi\\nUTC\\n7\\nask\\nopenai-compatible\\nhttp://127.0.0.1:9/v1\\ntest-model\\ntest-key\\n' | HOME=$tmpdir node $INIT_CWD/dist/cli/index.js onboard --skip-provider-test; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:run":"tmpdir=$(mktemp -d) && cd $tmpdir && HOME=$tmpdir node $INIT_CWD/dist/cli/index.js channels telegram 2>&1 | grep -q 'Telegram is not enabled'; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:real":"npm run build && node scripts/smoke-telegram-real.mjs","eval:character:cases":"npm run build && node --test dist/character/character-eval-cases.test.js","smoke:doctor:fix:run":"node scripts/smoke-doctor-fix.mjs","smoke:telegram:setup":"npm run build && npm run smoke:telegram:setup:run","smoke:zalo:setup:run":"node scripts/smoke-zalo-setup.mjs","smoke:doctor:json:run":"node scripts/smoke-cli-temp-runtime.mjs doctor-json","smoke:doctor:exit-code":"npm run build && node scripts/smoke-doctor-exit-code.mjs","smoke:telegram:setup:run":"node scripts/smoke-telegram-setup.mjs","smoke:channels:doctor:json":"npm run build && npm run smoke:channels:doctor:json:run","smoke:channels:doctor:json:run":"node scripts/smoke-channels-doctor-json.mjs"},"_npmUser":{"name":"andynguyenn","email":"j22487069@icloud.com"},"_npmVersion":"11.13.0","description":"Vietnamese-first bestie agent CLI.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"grammy":"^1.44.0","mammoth":"^1.12.0","commander":"^14.0.3","iso-639-1":"^3.1.6","pdf-parse":"^1.1.1","better-sqlite3":"^12.11.1","@grammyjs/types":"^3.28.0","@inquirer/prompts":"^8.5.2","@elevenlabs/elevenlabs-js":"^2.57.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.2","typescript":"^5.5.4","@types/node":"^20.14.15","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/bestie-agent_0.1.15_1784377465237_0.45355519374924547","host":"s3://npm-registry-packages-npm-production"}},"0.1.16":{"name":"bestie-agent","version":"0.1.16","_id":"bestie-agent@0.1.16","maintainers":[{"name":"andynguyenn","email":"j22487069@icloud.com"}],"bin":{"bestie":"dist/cli/index.js"},"dist":{"shasum":"cbef4c97192f720efcfae0d1d4d86bc3d85af244","tarball":"https://registry.npmjs.org/bestie-agent/-/bestie-agent-0.1.16.tgz","fileCount":113,"integrity":"sha512-cYmpMGmzaEFOTPH/x0u4OeaTG6g2i/3tf3+JyAzHwOIXCs1Q17QzRoaR+qI+qWR60bxcsLukJPwXzqLXTdWCOQ==","signatures":[{"sig":"MEUCIQC9pKmUaBG33hmnd4yrI7isqUdMcm39l/2KmgjDH6W6oQIgSmgnA25nc2WRKtfn3R6Dyt70USq6GS74AKX7BXjbj7Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":832890},"type":"module","engines":{"node":">=24"},"gitHead":"948065d80b25f4bca180677aa2949465284a3aef","scripts":{"dev":"tsx src/cli/index.ts","test":"npm run build && node --test dist/**/*.test.js","build":"tsc -p tsconfig.json && chmod 755 dist/cli/index.js","clean":"rm -rf dist","smoke":"npm run build && npm run smoke:status:run && npm run smoke:doctor:run && npm run smoke:doctor:json:run && npm run smoke:channels:doctor:json:run && npm run smoke:doctor:fix:run && npm run smoke:chat:run && npm run smoke:onboard:run && npm run smoke:telegram:setup:run && npm run smoke:zalo:setup:run","start":"node dist/cli/index.js","prepack":"npm run clean && npm run build","smoke:mcp":"npm run build && npm run smoke:mcp:run","pack:check":"npm run clean && npm run build && npm pack --dry-run","smoke:chat":"npm run build && npm run smoke:chat:run","smoke:zalo":"npm run build && npm run smoke:zalo:run","smoke:tools":"npm run build && npm run smoke:tools:run","smoke:doctor":"npm run build && npm run smoke:doctor:run","smoke:status":"npm run build && npm run smoke:status:run","smoke:mcp:run":"node scripts/smoke-mcp.mjs","smoke:onboard":"npm run build && npm run smoke:onboard:run","eval:character":"npm run build && node --test dist/character/prompt-generator.test.js dist/character/character-eval-cases.test.js","prepublishOnly":"npm test","smoke:chat:run":"node scripts/smoke-cli-temp-runtime.mjs chat","smoke:telegram":"npm run build && npm run smoke:telegram:run","smoke:zalo:run":"node scripts/smoke-zalo-disabled.mjs","smoke:installer":"npm run build && node scripts/smoke-installer.mjs","smoke:tools:run":"node dist/cli/index.js tools logs --lines 5 | grep -q 'action_permission_decision' && node dist/cli/index.js tools memories --limit 5 >/dev/null && node dist/cli/index.js tools git status >/dev/null","smoke:zalo:real":"npm run build && node scripts/smoke-zalo-real.mjs","smoke:doctor:fix":"npm run build && npm run smoke:doctor:fix:run","smoke:doctor:run":"node scripts/smoke-cli-temp-runtime.mjs doctor","smoke:status:run":"node scripts/smoke-cli-temp-runtime.mjs status","smoke:zalo:setup":"npm run build && npm run smoke:zalo:setup:run","smoke:doctor:json":"npm run build && npm run smoke:doctor:json:run","smoke:onboard:run":"tmpdir=$(mktemp -d) && cd $tmpdir && printf 'Bestie\\nBoss\\nask\\nopenai-compatible\\nhttp://127.0.0.1:9/v1\\ntest-model\\ntest-key\\n' | HOME=$tmpdir node $INIT_CWD/dist/cli/index.js onboard --skip-provider-test; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:run":"tmpdir=$(mktemp -d) && cd $tmpdir && HOME=$tmpdir node $INIT_CWD/dist/cli/index.js channels telegram 2>&1 | grep -q 'Telegram is not enabled'; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:real":"npm run build && node scripts/smoke-telegram-real.mjs","eval:character:cases":"npm run build && node --test dist/character/character-eval-cases.test.js","smoke:doctor:fix:run":"node scripts/smoke-doctor-fix.mjs","smoke:telegram:setup":"npm run build && npm run smoke:telegram:setup:run","smoke:zalo:setup:run":"node scripts/smoke-zalo-setup.mjs","smoke:doctor:json:run":"node scripts/smoke-cli-temp-runtime.mjs doctor-json","smoke:doctor:exit-code":"npm run build && node scripts/smoke-doctor-exit-code.mjs","smoke:telegram:setup:run":"node scripts/smoke-telegram-setup.mjs","smoke:channels:doctor:json":"npm run build && npm run smoke:channels:doctor:json:run","smoke:channels:doctor:json:run":"node scripts/smoke-channels-doctor-json.mjs"},"_npmUser":{"name":"andynguyenn","email":"j22487069@icloud.com"},"_npmVersion":"11.13.0","description":"Vietnamese-first bestie agent CLI.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"grammy":"^1.44.0","mammoth":"^1.12.0","commander":"^14.0.3","iso-639-1":"^3.1.6","pdf-parse":"^1.1.1","@google/genai":"^2.12.0","better-sqlite3":"^12.11.1","@grammyjs/types":"^3.28.0","@inquirer/prompts":"^8.5.2","@elevenlabs/elevenlabs-js":"^2.57.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.2","typescript":"^5.5.4","@types/node":"^20.14.15","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/bestie-agent_0.1.16_1784618563916_0.7265567242211126","host":"s3://npm-registry-packages-npm-production"}},"0.1.17":{"name":"bestie-agent","version":"0.1.17","_id":"bestie-agent@0.1.17","maintainers":[{"name":"andynguyenn","email":"j22487069@icloud.com"}],"bin":{"bestie":"dist/cli/index.js"},"dist":{"shasum":"2b54314d2e1e9a6c6c9a0c6a7dcf3ce54af94562","tarball":"https://registry.npmjs.org/bestie-agent/-/bestie-agent-0.1.17.tgz","fileCount":113,"integrity":"sha512-/B3R8qoto8rMyMEAzgSHcVMUy2bHzk8VJdJUYG3IvuPjwaPLn9QWjOmBhCne8ah/Tt8VoSxWdzxqtyA9eC3mkw==","signatures":[{"sig":"MEUCIQDuRtn5XcUCgzGcEV2Qbw9wvivbtw1qBjNn3t79BggyLgIgTr5B1uavbg873SyazqPj4+bWciOZBZq5gudoMp44olA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":833260},"type":"module","engines":{"node":">=24"},"gitHead":"fd44c6b4f446827c3d96c229965e35ff85ae9d1d","scripts":{"dev":"tsx src/cli/index.ts","test":"npm run build && node --test dist/**/*.test.js","build":"tsc -p tsconfig.json && chmod 755 dist/cli/index.js","clean":"rm -rf dist","smoke":"npm run build && npm run smoke:status:run && npm run smoke:doctor:run && npm run smoke:doctor:json:run && npm run smoke:channels:doctor:json:run && npm run smoke:doctor:fix:run && npm run smoke:chat:run && npm run smoke:onboard:run && npm run smoke:telegram:setup:run && npm run smoke:zalo:setup:run","start":"node dist/cli/index.js","prepack":"npm run clean && npm run build","smoke:mcp":"npm run build && npm run smoke:mcp:run","pack:check":"npm run clean && npm run build && npm pack --dry-run","smoke:chat":"npm run build && npm run smoke:chat:run","smoke:zalo":"npm run build && npm run smoke:zalo:run","smoke:tools":"npm run build && npm run smoke:tools:run","smoke:doctor":"npm run build && npm run smoke:doctor:run","smoke:status":"npm run build && npm run smoke:status:run","smoke:mcp:run":"node scripts/smoke-mcp.mjs","smoke:onboard":"npm run build && npm run smoke:onboard:run","eval:character":"npm run build && node --test dist/character/prompt-generator.test.js dist/character/character-eval-cases.test.js","prepublishOnly":"npm test","smoke:chat:run":"node scripts/smoke-cli-temp-runtime.mjs chat","smoke:telegram":"npm run build && npm run smoke:telegram:run","smoke:zalo:run":"node scripts/smoke-zalo-disabled.mjs","smoke:installer":"npm run build && node scripts/smoke-installer.mjs","smoke:tools:run":"node dist/cli/index.js tools logs --lines 5 | grep -q 'action_permission_decision' && node dist/cli/index.js tools memories --limit 5 >/dev/null && node dist/cli/index.js tools git status >/dev/null","smoke:zalo:real":"npm run build && node scripts/smoke-zalo-real.mjs","smoke:doctor:fix":"npm run build && npm run smoke:doctor:fix:run","smoke:doctor:run":"node scripts/smoke-cli-temp-runtime.mjs doctor","smoke:status:run":"node scripts/smoke-cli-temp-runtime.mjs status","smoke:zalo:setup":"npm run build && npm run smoke:zalo:setup:run","smoke:doctor:json":"npm run build && npm run smoke:doctor:json:run","smoke:onboard:run":"tmpdir=$(mktemp -d) && cd $tmpdir && printf 'Bestie\\nBoss\\nask\\nopenai-compatible\\nhttp://127.0.0.1:9/v1\\ntest-model\\ntest-key\\n' | HOME=$tmpdir node $INIT_CWD/dist/cli/index.js onboard --skip-provider-test; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:run":"tmpdir=$(mktemp -d) && cd $tmpdir && HOME=$tmpdir node $INIT_CWD/dist/cli/index.js channels telegram 2>&1 | grep -q 'Telegram is not enabled'; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:real":"npm run build && node scripts/smoke-telegram-real.mjs","eval:character:cases":"npm run build && node --test dist/character/character-eval-cases.test.js","smoke:doctor:fix:run":"node scripts/smoke-doctor-fix.mjs","smoke:telegram:setup":"npm run build && npm run smoke:telegram:setup:run","smoke:zalo:setup:run":"node scripts/smoke-zalo-setup.mjs","smoke:doctor:json:run":"node scripts/smoke-cli-temp-runtime.mjs doctor-json","smoke:doctor:exit-code":"npm run build && node scripts/smoke-doctor-exit-code.mjs","smoke:telegram:setup:run":"node scripts/smoke-telegram-setup.mjs","smoke:channels:doctor:json":"npm run build && npm run smoke:channels:doctor:json:run","smoke:channels:doctor:json:run":"node scripts/smoke-channels-doctor-json.mjs"},"_npmUser":{"name":"andynguyenn","email":"j22487069@icloud.com"},"_npmVersion":"11.13.0","description":"Vietnamese-first bestie agent CLI.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"grammy":"^1.44.0","mammoth":"^1.12.0","commander":"^14.0.3","iso-639-1":"^3.1.6","pdf-parse":"^1.1.1","@google/genai":"^2.12.0","better-sqlite3":"^12.11.1","@grammyjs/types":"^3.28.0","@inquirer/prompts":"^8.5.2","@elevenlabs/elevenlabs-js":"^2.57.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.2","typescript":"^5.5.4","@types/node":"^20.14.15","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/bestie-agent_0.1.17_1784619282436_0.40265995317390524","host":"s3://npm-registry-packages-npm-production"}},"0.1.18":{"name":"bestie-agent","version":"0.1.18","_id":"bestie-agent@0.1.18","maintainers":[{"name":"andynguyenn","email":"j22487069@icloud.com"}],"bin":{"bestie":"dist/cli/index.js"},"dist":{"shasum":"6ff6f24d9052b328c7012813e44a3b073db7ad8d","tarball":"https://registry.npmjs.org/bestie-agent/-/bestie-agent-0.1.18.tgz","fileCount":135,"integrity":"sha512-ib75h7GjIJ85QIe81gSG2hLm62dG5gK12abzdXmQLmS+kRUiD4//bgW+5Q2neaxvJTbK+yaivqOTOAuAlUBDvw==","signatures":[{"sig":"MEUCIF6QSumjC+BDc3LXeCjfOeVJD/tf2hwoFsZ2k/hkthkQAiEAlgwFGI0iMND0oauyZpEhCKhK2WXhH7+sQW2/fkxe63Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1422074},"type":"module","engines":{"node":">=24"},"gitHead":"faf4aaceb6b57e6c5fbde21498572b2a6ec69b76","scripts":{"dev":"tsx src/cli/index.ts","test":"npm run build && node --test dist/**/*.test.js","build":"tsc -p tsconfig.json && chmod 755 dist/cli/index.js","clean":"rm -rf dist","smoke":"npm run build && npm run smoke:status:run && npm run smoke:doctor:run && npm run smoke:doctor:json:run && npm run smoke:channels:doctor:json:run && npm run smoke:doctor:fix:run && npm run smoke:chat:run && npm run smoke:onboard:run && npm run smoke:telegram:setup:run && npm run smoke:zalo:setup:run","start":"node dist/cli/index.js","prepack":"npm run clean && npm run build","smoke:ui":"npm run build && npm run smoke:ui:run","smoke:mcp":"npm run build && npm run smoke:mcp:run","pack:check":"npm run clean && npm run build && npm pack --dry-run","smoke:chat":"npm run build && npm run smoke:chat:run","smoke:zalo":"npm run build && npm run smoke:zalo:run","smoke:tools":"npm run build && npm run smoke:tools:run","smoke:doctor":"npm run build && npm run smoke:doctor:run","smoke:status":"npm run build && npm run smoke:status:run","smoke:ui:all":"npm run build && npm run smoke:ui:run && npm run smoke:ui:browser:run","smoke:ui:run":"node scripts/smoke-ui.mjs","smoke:mcp:run":"node scripts/smoke-mcp.mjs","smoke:onboard":"npm run build && npm run smoke:onboard:run","eval:character":"npm run build && node --test dist/character/prompt-generator.test.js dist/character/character-eval-cases.test.js","prepublishOnly":"npm test","smoke:chat:run":"node scripts/smoke-cli-temp-runtime.mjs chat","smoke:telegram":"npm run build && npm run smoke:telegram:run","smoke:zalo:run":"node scripts/smoke-zalo-disabled.mjs","smoke:installer":"npm run build && node scripts/smoke-installer.mjs","smoke:tools:run":"node dist/cli/index.js tools logs --lines 5 | grep -q 'action_permission_decision' && node dist/cli/index.js tools memories --limit 5 >/dev/null && node dist/cli/index.js tools git status >/dev/null","smoke:zalo:real":"npm run build && node scripts/smoke-zalo-real.mjs","smoke:doctor:fix":"npm run build && npm run smoke:doctor:fix:run","smoke:doctor:run":"node scripts/smoke-cli-temp-runtime.mjs doctor","smoke:status:run":"node scripts/smoke-cli-temp-runtime.mjs status","smoke:ui:browser":"npm run build && npm run smoke:ui:browser:run","smoke:zalo:setup":"npm run build && npm run smoke:zalo:setup:run","smoke:doctor:json":"npm run build && npm run smoke:doctor:json:run","smoke:onboard:run":"tmpdir=$(mktemp -d) && cd $tmpdir && printf 'Bestie\\nBoss\\nask\\nopenai-compatible\\nhttp://127.0.0.1:9/v1\\ntest-model\\ntest-key\\n' | HOME=$tmpdir node $INIT_CWD/dist/cli/index.js onboard --skip-provider-test; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:run":"tmpdir=$(mktemp -d) && cd $tmpdir && HOME=$tmpdir node $INIT_CWD/dist/cli/index.js channels telegram 2>&1 | grep -q 'Telegram is not enabled'; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:real":"npm run build && node scripts/smoke-telegram-real.mjs","eval:character:cases":"npm run build && node --test dist/character/character-eval-cases.test.js","smoke:doctor:fix:run":"node scripts/smoke-doctor-fix.mjs","smoke:telegram:setup":"npm run build && npm run smoke:telegram:setup:run","smoke:ui:browser:run":"node scripts/smoke-ui-browser.mjs","smoke:zalo:setup:run":"node scripts/smoke-zalo-setup.mjs","smoke:doctor:json:run":"node scripts/smoke-cli-temp-runtime.mjs doctor-json","smoke:doctor:exit-code":"npm run build && node scripts/smoke-doctor-exit-code.mjs","smoke:telegram:setup:run":"node scripts/smoke-telegram-setup.mjs","smoke:channels:doctor:json":"npm run build && npm run smoke:channels:doctor:json:run","smoke:channels:doctor:json:run":"node scripts/smoke-channels-doctor-json.mjs"},"_npmUser":{"name":"andynguyenn","email":"j22487069@icloud.com"},"_npmVersion":"11.13.0","description":"Vietnamese-first bestie agent CLI.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"grammy":"^1.44.0","mammoth":"^1.12.0","commander":"^14.0.3","cytoscape":"^3.34.0","iso-639-1":"^3.1.6","pdf-parse":"^1.1.1","@google/genai":"^2.12.0","better-sqlite3":"^12.11.1","@grammyjs/types":"^3.28.0","@inquirer/prompts":"^8.5.2","@elevenlabs/elevenlabs-js":"^2.57.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.2","playwright":"^1.61.1","typescript":"^5.5.4","@types/node":"^20.14.15","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/bestie-agent_0.1.18_1784917034663_0.5726211901820839","host":"s3://npm-registry-packages-npm-production"}},"0.1.19":{"name":"bestie-agent","version":"0.1.19","_id":"bestie-agent@0.1.19","maintainers":[{"name":"andynguyenn","email":"j22487069@icloud.com"}],"bin":{"bestie":"dist/cli/index.js"},"dist":{"shasum":"acd2a92d5d9b0325523570f201923344790eb6d5","tarball":"https://registry.npmjs.org/bestie-agent/-/bestie-agent-0.1.19.tgz","fileCount":139,"integrity":"sha512-qUkcYZ3pZfxHy1kZwXDaFwzkB+mzpbhswC3Y55BMnBbfbKz2Ir+pPJUYEeP9S6RP4tI3j0xeK8xkZFx46b1K/A==","signatures":[{"sig":"MEYCIQCFebijbpW1pRFLtJUNXLAQ6bFTnLkKJZsTbsM+sPeKPAIhAIMALL4daA51XEyy0dJeEvWn3W+XeKlOFMAL1l++3HUh","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1546782},"type":"module","engines":{"node":">=24"},"gitHead":"3c52623f60bc4497219b23a9e83b2f74598c3545","scripts":{"dev":"tsx src/cli/index.ts","test":"npm run build && node --test dist/**/*.test.js","build":"tsc -p tsconfig.json && chmod 755 dist/cli/index.js","clean":"rm -rf dist","smoke":"npm run build && npm run smoke:status:run && npm run smoke:doctor:run && npm run smoke:doctor:json:run && npm run smoke:channels:doctor:json:run && npm run smoke:doctor:fix:run && npm run smoke:chat:run && npm run smoke:onboard:run && npm run smoke:telegram:setup:run && npm run smoke:zalo:setup:run","start":"node dist/cli/index.js","prepack":"npm run clean && npm run build","smoke:ui":"npm run build && npm run smoke:ui:run","smoke:mcp":"npm run build && npm run smoke:mcp:run","pack:check":"npm run clean && npm run build && npm pack --dry-run","smoke:chat":"npm run build && npm run smoke:chat:run","smoke:zalo":"npm run build && npm run smoke:zalo:run","smoke:tools":"npm run build && npm run smoke:tools:run","smoke:doctor":"npm run build && npm run smoke:doctor:run","smoke:status":"npm run build && npm run smoke:status:run","smoke:ui:all":"npm run build && npm run smoke:ui:run && npm run smoke:ui:browser:run","smoke:ui:run":"node scripts/smoke-ui.mjs","smoke:mcp:run":"node scripts/smoke-mcp.mjs","smoke:onboard":"npm run build && npm run smoke:onboard:run","eval:character":"npm run build && node --test dist/character/prompt-generator.test.js dist/character/character-eval-cases.test.js","prepublishOnly":"npm test","smoke:chat:run":"node scripts/smoke-cli-temp-runtime.mjs chat","smoke:telegram":"npm run build && npm run smoke:telegram:run","smoke:zalo:run":"node scripts/smoke-zalo-disabled.mjs","smoke:installer":"npm run build && node scripts/smoke-installer.mjs","smoke:tools:run":"node dist/cli/index.js tools logs --lines 5 | grep -q 'action_permission_decision' && node dist/cli/index.js tools memories --limit 5 >/dev/null && node dist/cli/index.js tools git status >/dev/null","smoke:zalo:real":"npm run build && node scripts/smoke-zalo-real.mjs","smoke:doctor:fix":"npm run build && npm run smoke:doctor:fix:run","smoke:doctor:run":"node scripts/smoke-cli-temp-runtime.mjs doctor","smoke:status:run":"node scripts/smoke-cli-temp-runtime.mjs status","smoke:ui:browser":"npm run build && npm run smoke:ui:browser:run","smoke:zalo:setup":"npm run build && npm run smoke:zalo:setup:run","smoke:doctor:json":"npm run build && npm run smoke:doctor:json:run","smoke:onboard:run":"tmpdir=$(mktemp -d) && cd $tmpdir && printf 'Bestie\\nBoss\\nask\\nopenai-compatible\\nhttp://127.0.0.1:9/v1\\ntest-model\\ntest-key\\n' | HOME=$tmpdir node $INIT_CWD/dist/cli/index.js onboard --skip-provider-test; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:run":"tmpdir=$(mktemp -d) && cd $tmpdir && HOME=$tmpdir node $INIT_CWD/dist/cli/index.js channels telegram 2>&1 | grep -q 'Telegram is not enabled'; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:real":"npm run build && node scripts/smoke-telegram-real.mjs","eval:character:cases":"npm run build && node --test dist/character/character-eval-cases.test.js","smoke:doctor:fix:run":"node scripts/smoke-doctor-fix.mjs","smoke:telegram:setup":"npm run build && npm run smoke:telegram:setup:run","smoke:ui:browser:run":"node scripts/smoke-ui-browser.mjs","smoke:zalo:setup:run":"node scripts/smoke-zalo-setup.mjs","smoke:doctor:json:run":"node scripts/smoke-cli-temp-runtime.mjs doctor-json","smoke:doctor:exit-code":"npm run build && node scripts/smoke-doctor-exit-code.mjs","smoke:telegram:setup:run":"node scripts/smoke-telegram-setup.mjs","smoke:channels:doctor:json":"npm run build && npm run smoke:channels:doctor:json:run","smoke:channels:doctor:json:run":"node scripts/smoke-channels-doctor-json.mjs"},"_npmUser":{"name":"andynguyenn","email":"j22487069@icloud.com"},"_npmVersion":"11.13.0","description":"Vietnamese-first bestie agent CLI.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"grammy":"^1.44.0","mammoth":"^1.12.0","commander":"^14.0.3","cytoscape":"^3.34.0","iso-639-1":"^3.1.6","pdf-parse":"^1.1.1","@google/genai":"^2.12.0","better-sqlite3":"^12.11.1","@grammyjs/types":"^3.28.0","@inquirer/prompts":"^8.5.2","@elevenlabs/elevenlabs-js":"^2.57.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.2","playwright":"^1.61.1","typescript":"^5.5.4","@types/node":"^20.14.15","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/bestie-agent_0.1.19_1785123724379_0.6297106132411787","host":"s3://npm-registry-packages-npm-production"}},"0.1.20":{"name":"bestie-agent","version":"0.1.20","_id":"bestie-agent@0.1.20","maintainers":[{"name":"andynguyenn","email":"j22487069@icloud.com"}],"bin":{"bestie":"dist/cli/index.js"},"dist":{"shasum":"baee8b2cfd4e641e884eb4b1f4c43c366a6823d0","tarball":"https://registry.npmjs.org/bestie-agent/-/bestie-agent-0.1.20.tgz","fileCount":141,"integrity":"sha512-WJkhSbA5uBsrbTDWq/u5Ysq4qTcDySMJ+TsqjIqzTayTCXNcZ4qHrMkJfj9EGpV6Km1lS1HfUrZhRbrH54+zuw==","signatures":[{"sig":"MEQCIB5VzL9EJXpEd1flINEu6ULI1JbJnglPiZrLbVcP/u33AiAHdRyTVq1EqWYwD2imRBH7DG6KSuD7kpkPd9WTbUX+BQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1578183},"type":"module","engines":{"node":">=24"},"gitHead":"f65e61299d5bb2790d290a682dc1ac16bd222f9d","scripts":{"dev":"tsx src/cli/index.ts","test":"npm run build && node --test dist/**/*.test.js","build":"tsc -p tsconfig.json && chmod 755 dist/cli/index.js","clean":"rm -rf dist","smoke":"npm run build && npm run smoke:status:run && npm run smoke:doctor:run && npm run smoke:doctor:json:run && npm run smoke:channels:doctor:json:run && npm run smoke:doctor:fix:run && npm run smoke:chat:run && npm run smoke:onboard:run && npm run smoke:telegram:setup:run && npm run smoke:zalo:setup:run","start":"node dist/cli/index.js","prepack":"npm run clean && npm run build","smoke:ui":"npm run build && npm run smoke:ui:run","smoke:mcp":"npm run build && npm run smoke:mcp:run","pack:check":"npm run clean && npm run build && npm pack --dry-run","smoke:chat":"npm run build && npm run smoke:chat:run","smoke:zalo":"npm run build && npm run smoke:zalo:run","smoke:tools":"npm run build && npm run smoke:tools:run","smoke:doctor":"npm run build && npm run smoke:doctor:run","smoke:status":"npm run build && npm run smoke:status:run","smoke:ui:all":"npm run build && npm run smoke:ui:run && npm run smoke:ui:browser:run","smoke:ui:run":"node scripts/smoke-ui.mjs","smoke:mcp:run":"node scripts/smoke-mcp.mjs","smoke:onboard":"npm run build && npm run smoke:onboard:run","eval:character":"npm run build && node --test dist/character/prompt-generator.test.js dist/character/character-eval-cases.test.js","prepublishOnly":"npm test","smoke:chat:run":"node scripts/smoke-cli-temp-runtime.mjs chat","smoke:telegram":"npm run build && npm run smoke:telegram:run","smoke:zalo:run":"node scripts/smoke-zalo-disabled.mjs","smoke:installer":"npm run build && node scripts/smoke-installer.mjs","smoke:tools:run":"node dist/cli/index.js tools logs --lines 5 | grep -q 'action_permission_decision' && node dist/cli/index.js tools memories --limit 5 >/dev/null && node dist/cli/index.js tools git status >/dev/null","smoke:zalo:real":"npm run build && node scripts/smoke-zalo-real.mjs","smoke:doctor:fix":"npm run build && npm run smoke:doctor:fix:run","smoke:doctor:run":"node scripts/smoke-cli-temp-runtime.mjs doctor","smoke:status:run":"node scripts/smoke-cli-temp-runtime.mjs status","smoke:ui:browser":"npm run build && npm run smoke:ui:browser:run","smoke:zalo:setup":"npm run build && npm run smoke:zalo:setup:run","smoke:doctor:json":"npm run build && npm run smoke:doctor:json:run","smoke:onboard:run":"tmpdir=$(mktemp -d) && cd $tmpdir && printf 'Bestie\\nBoss\\nask\\nopenai-compatible\\nhttp://127.0.0.1:9/v1\\ntest-model\\ntest-key\\n' | HOME=$tmpdir node $INIT_CWD/dist/cli/index.js onboard --skip-provider-test; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:run":"tmpdir=$(mktemp -d) && cd $tmpdir && HOME=$tmpdir node $INIT_CWD/dist/cli/index.js channels telegram 2>&1 | grep -q 'Telegram is not enabled'; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:real":"npm run build && node scripts/smoke-telegram-real.mjs","eval:character:cases":"npm run build && node --test dist/character/character-eval-cases.test.js","smoke:doctor:fix:run":"node scripts/smoke-doctor-fix.mjs","smoke:telegram:setup":"npm run build && npm run smoke:telegram:setup:run","smoke:ui:browser:run":"node scripts/smoke-ui-browser.mjs","smoke:zalo:setup:run":"node scripts/smoke-zalo-setup.mjs","smoke:doctor:json:run":"node scripts/smoke-cli-temp-runtime.mjs doctor-json","smoke:doctor:exit-code":"npm run build && node scripts/smoke-doctor-exit-code.mjs","smoke:telegram:setup:run":"node scripts/smoke-telegram-setup.mjs","smoke:channels:doctor:json":"npm run build && npm run smoke:channels:doctor:json:run","smoke:channels:doctor:json:run":"node scripts/smoke-channels-doctor-json.mjs"},"_npmUser":{"name":"andynguyenn","email":"j22487069@icloud.com"},"_npmVersion":"11.13.0","description":"Vietnamese-first bestie agent CLI.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"grammy":"^1.44.0","mammoth":"^1.12.0","commander":"^14.0.3","cytoscape":"^3.34.0","iso-639-1":"^3.1.6","pdf-parse":"^1.1.1","@google/genai":"^2.12.0","better-sqlite3":"^12.11.1","@grammyjs/types":"^3.28.0","@inquirer/prompts":"^8.5.2","@elevenlabs/elevenlabs-js":"^2.57.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.2","playwright":"^1.61.1","typescript":"^5.5.4","@types/node":"^20.14.15","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/bestie-agent_0.1.20_1785290287260_0.24234820016236158","host":"s3://npm-registry-packages-npm-production"}},"0.1.21":{"name":"bestie-agent","version":"0.1.21","_id":"bestie-agent@0.1.21","maintainers":[{"name":"andynguyenn","email":"j22487069@icloud.com"}],"bin":{"bestie":"dist/cli/index.js"},"dist":{"shasum":"485122b5b32f6192b0a4c32f9f3afbdf7f31a753","tarball":"https://registry.npmjs.org/bestie-agent/-/bestie-agent-0.1.21.tgz","fileCount":151,"integrity":"sha512-Oawz8n/zqkgC/0BbNf13qQm6B49QLbFoWCNcTyo5ZXGprcIsvg3wdJa5SK9BorY8zUU15O8BKuOxVm36qhFqTg==","signatures":[{"sig":"MEUCIQDl3LX/ibROz8GpZzi06tEWxDr8GetlC4pih5YSnXpDjQIgcMnUc6J+ZscQc9H4g2bhJS2krxqju37tyjXGQjKRaXc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4896483},"type":"module","engines":{"node":">=24"},"gitHead":"fbe71d1296b19ff4edda94fa46e939ce2148780f","scripts":{"dev":"tsx src/cli/index.ts","test":"npm run build && node --test dist/**/*.test.js","build":"tsc -p tsconfig.json && npm run build:ui && chmod 755 dist/cli/index.js","clean":"rm -rf dist","smoke":"npm run build && npm run smoke:status:run && npm run smoke:doctor:run && npm run smoke:doctor:json:run && npm run smoke:channels:doctor:json:run && npm run smoke:doctor:fix:run && npm run smoke:chat:run && npm run smoke:onboard:run && npm run smoke:telegram:setup:run && npm run smoke:zalo:setup:run","start":"node dist/cli/index.js","prepack":"npm run clean && npm run build","build:ui":"tsc -p web/tsconfig.json --noEmit && vite build --config web/vite.config.ts","smoke:ui":"npm run build && npm run smoke:ui:run","smoke:mcp":"npm run build && npm run smoke:mcp:run","pack:check":"npm run clean && npm run build && npm pack --dry-run","smoke:chat":"npm run build && npm run smoke:chat:run","smoke:zalo":"npm run build && npm run smoke:zalo:run","smoke:tools":"npm run build && npm run smoke:tools:run","smoke:doctor":"npm run build && npm run smoke:doctor:run","smoke:status":"npm run build && npm run smoke:status:run","smoke:ui:all":"npm run build && npm run smoke:ui:run && npm run smoke:ui:browser:run","smoke:ui:run":"node scripts/smoke-ui.mjs","smoke:mcp:run":"node scripts/smoke-mcp.mjs","smoke:onboard":"npm run build && npm run smoke:onboard:run","eval:character":"npm run build && node --test dist/character/prompt-generator.test.js dist/character/character-eval-cases.test.js","prepublishOnly":"npm test","smoke:chat:run":"node scripts/smoke-cli-temp-runtime.mjs chat","smoke:telegram":"npm run build && npm run smoke:telegram:run","smoke:zalo:run":"node scripts/smoke-zalo-disabled.mjs","smoke:installer":"npm run build && node scripts/smoke-installer.mjs","smoke:tools:run":"node dist/cli/index.js tools logs --lines 5 | grep -q 'action_permission_decision' && node dist/cli/index.js tools memories --limit 5 >/dev/null && node dist/cli/index.js tools git status >/dev/null","smoke:zalo:real":"npm run build && node scripts/smoke-zalo-real.mjs","smoke:doctor:fix":"npm run build && npm run smoke:doctor:fix:run","smoke:doctor:run":"node scripts/smoke-cli-temp-runtime.mjs doctor","smoke:status:run":"node scripts/smoke-cli-temp-runtime.mjs status","smoke:ui:browser":"npm run build && npm run smoke:ui:browser:run","smoke:zalo:setup":"npm run build && npm run smoke:zalo:setup:run","smoke:doctor:json":"npm run build && npm run smoke:doctor:json:run","smoke:onboard:run":"tmpdir=$(mktemp -d) && cd $tmpdir && printf 'Bestie\\nBoss\\nask\\nopenai-compatible\\nhttp://127.0.0.1:9/v1\\ntest-model\\ntest-key\\n' | HOME=$tmpdir node $INIT_CWD/dist/cli/index.js onboard --skip-provider-test; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:run":"tmpdir=$(mktemp -d) && cd $tmpdir && HOME=$tmpdir node $INIT_CWD/dist/cli/index.js channels telegram 2>&1 | grep -q 'Telegram is not enabled'; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:real":"npm run build && node scripts/smoke-telegram-real.mjs","eval:character:cases":"npm run build && node --test dist/character/character-eval-cases.test.js","smoke:doctor:fix:run":"node scripts/smoke-doctor-fix.mjs","smoke:telegram:setup":"npm run build && npm run smoke:telegram:setup:run","smoke:ui:browser:run":"node scripts/smoke-ui-browser.mjs","smoke:zalo:setup:run":"node scripts/smoke-zalo-setup.mjs","smoke:doctor:json:run":"node scripts/smoke-cli-temp-runtime.mjs doctor-json","smoke:doctor:exit-code":"npm run build && node scripts/smoke-doctor-exit-code.mjs","smoke:telegram:setup:run":"node scripts/smoke-telegram-setup.mjs","smoke:channels:doctor:json":"npm run build && npm run smoke:channels:doctor:json:run","smoke:channels:doctor:json:run":"node scripts/smoke-channels-doctor-json.mjs"},"_npmUser":{"name":"andynguyenn","email":"j22487069@icloud.com"},"_npmVersion":"11.16.0","description":"Vietnamese-first bestie agent CLI.","directories":{},"_nodeVersion":"24.18.1","dependencies":{"clsx":"^2.1.1","react":"^19.2.8","three":"^0.185.1","grammy":"^1.44.0","mammoth":"^1.12.0","commander":"^14.0.3","cytoscape":"^3.34.0","iso-639-1":"^3.1.6","pdf-parse":"^1.1.1","react-dom":"^19.2.8","lucide-react":"^1.28.0","@google/genai":"^2.12.0","3d-force-graph":"^1.80.0","better-sqlite3":"^12.11.1","tailwind-merge":"^3.6.0","@grammyjs/types":"^3.28.0","three-spritetext":"^1.10.0","@inquirer/prompts":"^8.5.2","@radix-ui/react-slot":"^1.3.3","class-variance-authority":"^0.7.1","@elevenlabs/elevenlabs-js":"^2.57.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.2","vite":"^8.2.0","postcss":"^8.5.25","playwright":"^1.61.1","typescript":"^5.5.4","@types/node":"^20.14.15","tailwindcss":"^3.4.17","@types/react":"^19.2.18","@types/three":"^0.185.3","autoprefixer":"^10.5.4","@types/react-dom":"^19.2.4","@vitejs/plugin-react":"^6.0.5","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/bestie-agent_0.1.21_1785584178082_0.3551879715581385","host":"s3://npm-registry-packages-npm-production"}},"0.1.22":{"name":"bestie-agent","version":"0.1.22","_id":"bestie-agent@0.1.22","maintainers":[{"name":"andynguyenn","email":"j22487069@icloud.com"}],"bin":{"bestie":"dist/cli/index.js"},"dist":{"shasum":"1cab2540301e3fc0fd2b95b8809c81c6013c3cfc","tarball":"https://registry.npmjs.org/bestie-agent/-/bestie-agent-0.1.22.tgz","fileCount":151,"integrity":"sha512-CDVSXrZPdBNCjAihmCViIiCKij42P/Qtv0QeiTvXLUWV27PYFTJLEMRVmfZorNkauZSBJwzx44vpDnreFr8MSQ==","signatures":[{"sig":"MEQCIE0KH43qSZVXA8by+CbUZLUFQbDYxzD8VZQaxP/EV7/UAiAmiT1CQgicmTIcICskACgOiCz2+PJqD6RA1d+mlR7Awg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4898405},"type":"module","engines":{"node":">=24"},"gitHead":"7de9112f94faa2afa4526a218db87cec494a7e9a","scripts":{"dev":"tsx src/cli/index.ts","test":"npm run build && node --test dist/**/*.test.js","build":"tsc -p tsconfig.json && npm run build:ui && chmod 755 dist/cli/index.js","clean":"rm -rf dist","smoke":"npm run build && npm run smoke:status:run && npm run smoke:doctor:run && npm run smoke:doctor:json:run && npm run smoke:channels:doctor:json:run && npm run smoke:doctor:fix:run && npm run smoke:chat:run && npm run smoke:onboard:run && npm run smoke:telegram:setup:run && npm run smoke:zalo:setup:run","start":"node dist/cli/index.js","prepack":"npm run clean && npm run build","build:ui":"tsc -p web/tsconfig.json --noEmit && vite build --config web/vite.config.ts","smoke:ui":"npm run build && npm run smoke:ui:run","smoke:mcp":"npm run build && npm run smoke:mcp:run","pack:check":"npm run clean && npm run build && npm pack --dry-run","smoke:chat":"npm run build && npm run smoke:chat:run","smoke:zalo":"npm run build && npm run smoke:zalo:run","smoke:tools":"npm run build && npm run smoke:tools:run","smoke:doctor":"npm run build && npm run smoke:doctor:run","smoke:status":"npm run build && npm run smoke:status:run","smoke:ui:all":"npm run build && npm run smoke:ui:run && npm run smoke:ui:browser:run","smoke:ui:run":"node scripts/smoke-ui.mjs","smoke:mcp:run":"node scripts/smoke-mcp.mjs","smoke:onboard":"npm run build && npm run smoke:onboard:run","eval:character":"npm run build && node --test dist/character/prompt-generator.test.js dist/character/character-eval-cases.test.js","prepublishOnly":"npm test","smoke:chat:run":"node scripts/smoke-cli-temp-runtime.mjs chat","smoke:telegram":"npm run build && npm run smoke:telegram:run","smoke:zalo:run":"node scripts/smoke-zalo-disabled.mjs","smoke:installer":"npm run build && node scripts/smoke-installer.mjs","smoke:tools:run":"node dist/cli/index.js tools logs --lines 5 | grep -q 'action_permission_decision' && node dist/cli/index.js tools memories --limit 5 >/dev/null && node dist/cli/index.js tools git status >/dev/null","smoke:zalo:real":"npm run build && node scripts/smoke-zalo-real.mjs","smoke:doctor:fix":"npm run build && npm run smoke:doctor:fix:run","smoke:doctor:run":"node scripts/smoke-cli-temp-runtime.mjs doctor","smoke:status:run":"node scripts/smoke-cli-temp-runtime.mjs status","smoke:ui:browser":"npm run build && npm run smoke:ui:browser:run","smoke:zalo:setup":"npm run build && npm run smoke:zalo:setup:run","smoke:doctor:json":"npm run build && npm run smoke:doctor:json:run","smoke:onboard:run":"tmpdir=$(mktemp -d) && cd $tmpdir && printf 'Bestie\\nBoss\\nask\\nopenai-compatible\\nhttp://127.0.0.1:9/v1\\ntest-model\\ntest-key\\n' | HOME=$tmpdir node $INIT_CWD/dist/cli/index.js onboard --skip-provider-test; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:run":"tmpdir=$(mktemp -d) && cd $tmpdir && HOME=$tmpdir node $INIT_CWD/dist/cli/index.js channels telegram 2>&1 | grep -q 'Telegram is not enabled'; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:real":"npm run build && node scripts/smoke-telegram-real.mjs","eval:character:cases":"npm run build && node --test dist/character/character-eval-cases.test.js","smoke:doctor:fix:run":"node scripts/smoke-doctor-fix.mjs","smoke:telegram:setup":"npm run build && npm run smoke:telegram:setup:run","smoke:ui:browser:run":"node scripts/smoke-ui-browser.mjs","smoke:zalo:setup:run":"node scripts/smoke-zalo-setup.mjs","smoke:doctor:json:run":"node scripts/smoke-cli-temp-runtime.mjs doctor-json","smoke:doctor:exit-code":"npm run build && node scripts/smoke-doctor-exit-code.mjs","smoke:telegram:setup:run":"node scripts/smoke-telegram-setup.mjs","smoke:channels:doctor:json":"npm run build && npm run smoke:channels:doctor:json:run","smoke:channels:doctor:json:run":"node scripts/smoke-channels-doctor-json.mjs"},"_npmUser":{"name":"andynguyenn","email":"j22487069@icloud.com"},"_npmVersion":"11.16.0","description":"Vietnamese-first bestie agent CLI.","directories":{},"_nodeVersion":"24.18.1","dependencies":{"clsx":"^2.1.1","react":"^19.2.8","three":"^0.185.1","grammy":"^1.44.0","mammoth":"^1.12.0","commander":"^14.0.3","cytoscape":"^3.34.0","iso-639-1":"^3.1.6","pdf-parse":"^1.1.1","react-dom":"^19.2.8","lucide-react":"^1.28.0","@google/genai":"^2.12.0","3d-force-graph":"^1.80.0","better-sqlite3":"^12.11.1","tailwind-merge":"^3.6.0","@grammyjs/types":"^3.28.0","three-spritetext":"^1.10.0","@inquirer/prompts":"^8.5.2","@radix-ui/react-slot":"^1.3.3","class-variance-authority":"^0.7.1","@elevenlabs/elevenlabs-js":"^2.57.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.2","vite":"^8.2.0","postcss":"^8.5.25","playwright":"^1.61.1","typescript":"^5.5.4","@types/node":"^20.14.15","tailwindcss":"^3.4.17","@types/react":"^19.2.18","@types/three":"^0.185.3","autoprefixer":"^10.5.4","@types/react-dom":"^19.2.4","@vitejs/plugin-react":"^6.0.5","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/bestie-agent_0.1.22_1785642565617_0.20468248068141381","host":"s3://npm-registry-packages-npm-production"}},"0.1.23":{"name":"bestie-agent","version":"0.1.23","_id":"bestie-agent@0.1.23","maintainers":[{"name":"andynguyenn","email":"j22487069@icloud.com"}],"bin":{"bestie":"dist/cli/index.js"},"dist":{"shasum":"d20523aa3493dec51b37747f17265a612ef4585d","tarball":"https://registry.npmjs.org/bestie-agent/-/bestie-agent-0.1.23.tgz","fileCount":151,"integrity":"sha512-irz/fz3y6Wg7KS9Swx/GCqqTveD5VL+UzwDYqhZkehMiXFLQbf6gIl/7MDqaYsFTSPDkebbgBlVMjZcLOVEFeQ==","signatures":[{"sig":"MEUCIQDoTicF14JM1nzn0z0JzYxB/Nq+wLz+NHGwBaP44MHarAIgBI2/76W5/TwGqYVPyzAlIOdA0RMStCaSnYPEZM2Kbug=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4914163},"type":"module","engines":{"node":">=24"},"gitHead":"bf8287f93f230a635965413920da3a2521721ba7","scripts":{"dev":"tsx src/cli/index.ts","test":"npm run build && node --test dist/**/*.test.js","build":"tsc -p tsconfig.json && npm run build:ui && chmod 755 dist/cli/index.js","clean":"rm -rf dist","smoke":"npm run build && npm run smoke:status:run && npm run smoke:doctor:run && npm run smoke:doctor:json:run && npm run smoke:channels:doctor:json:run && npm run smoke:doctor:fix:run && npm run smoke:chat:run && npm run smoke:onboard:run && npm run smoke:telegram:setup:run && npm run smoke:zalo:setup:run","start":"node dist/cli/index.js","prepack":"npm run clean && npm run build","build:ui":"tsc -p web/tsconfig.json --noEmit && vite build --config web/vite.config.ts","smoke:ui":"npm run build && npm run smoke:ui:run","smoke:mcp":"npm run build && npm run smoke:mcp:run","pack:check":"npm run clean && npm run build && npm pack --dry-run","smoke:chat":"npm run build && npm run smoke:chat:run","smoke:zalo":"npm run build && npm run smoke:zalo:run","smoke:tools":"npm run build && npm run smoke:tools:run","smoke:doctor":"npm run build && npm run smoke:doctor:run","smoke:status":"npm run build && npm run smoke:status:run","smoke:ui:all":"npm run build && npm run smoke:ui:run && npm run smoke:ui:browser:run","smoke:ui:run":"node scripts/smoke-ui.mjs","smoke:mcp:run":"node scripts/smoke-mcp.mjs","smoke:onboard":"npm run build && npm run smoke:onboard:run","eval:character":"npm run build && node --test dist/character/prompt-generator.test.js dist/character/character-eval-cases.test.js","prepublishOnly":"npm test","smoke:chat:run":"node scripts/smoke-cli-temp-runtime.mjs chat","smoke:telegram":"npm run build && npm run smoke:telegram:run","smoke:zalo:run":"node scripts/smoke-zalo-disabled.mjs","smoke:installer":"npm run build && node scripts/smoke-installer.mjs","smoke:tools:run":"node dist/cli/index.js tools logs --lines 5 | grep -q 'action_permission_decision' && node dist/cli/index.js tools memories --limit 5 >/dev/null && node dist/cli/index.js tools git status >/dev/null","smoke:zalo:real":"npm run build && node scripts/smoke-zalo-real.mjs","smoke:doctor:fix":"npm run build && npm run smoke:doctor:fix:run","smoke:doctor:run":"node scripts/smoke-cli-temp-runtime.mjs doctor","smoke:status:run":"node scripts/smoke-cli-temp-runtime.mjs status","smoke:ui:browser":"npm run build && npm run smoke:ui:browser:run","smoke:zalo:setup":"npm run build && npm run smoke:zalo:setup:run","smoke:doctor:json":"npm run build && npm run smoke:doctor:json:run","smoke:onboard:run":"tmpdir=$(mktemp -d) && cd $tmpdir && printf 'Bestie\\nBoss\\nask\\nopenai-compatible\\nhttp://127.0.0.1:9/v1\\ntest-model\\ntest-key\\n' | HOME=$tmpdir node $INIT_CWD/dist/cli/index.js onboard --skip-provider-test; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:run":"tmpdir=$(mktemp -d) && cd $tmpdir && HOME=$tmpdir node $INIT_CWD/dist/cli/index.js channels telegram 2>&1 | grep -q 'Telegram is not enabled'; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:real":"npm run build && node scripts/smoke-telegram-real.mjs","eval:character:cases":"npm run build && node --test dist/character/character-eval-cases.test.js","smoke:doctor:fix:run":"node scripts/smoke-doctor-fix.mjs","smoke:telegram:setup":"npm run build && npm run smoke:telegram:setup:run","smoke:ui:browser:run":"node scripts/smoke-ui-browser.mjs","smoke:zalo:setup:run":"node scripts/smoke-zalo-setup.mjs","smoke:doctor:json:run":"node scripts/smoke-cli-temp-runtime.mjs doctor-json","smoke:doctor:exit-code":"npm run build && node scripts/smoke-doctor-exit-code.mjs","smoke:telegram:setup:run":"node scripts/smoke-telegram-setup.mjs","smoke:channels:doctor:json":"npm run build && npm run smoke:channels:doctor:json:run","smoke:channels:doctor:json:run":"node scripts/smoke-channels-doctor-json.mjs"},"_npmUser":{"name":"andynguyenn","email":"j22487069@icloud.com"},"_npmVersion":"11.16.0","description":"Vietnamese-first bestie agent CLI.","directories":{},"_nodeVersion":"24.18.1","dependencies":{"clsx":"^2.1.1","react":"^19.2.8","three":"^0.185.1","grammy":"^1.44.0","mammoth":"^1.12.0","commander":"^14.0.3","cytoscape":"^3.34.0","iso-639-1":"^3.1.6","pdf-parse":"^1.1.1","react-dom":"^19.2.8","lucide-react":"^1.28.0","@google/genai":"^2.12.0","3d-force-graph":"^1.80.0","better-sqlite3":"^12.11.1","tailwind-merge":"^3.6.0","@grammyjs/types":"^3.28.0","three-spritetext":"^1.10.0","@inquirer/prompts":"^8.5.2","@radix-ui/react-slot":"^1.3.3","class-variance-authority":"^0.7.1","@elevenlabs/elevenlabs-js":"^2.57.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.2","vite":"^8.2.0","postcss":"^8.5.25","playwright":"^1.61.1","typescript":"^5.5.4","@types/node":"^20.14.15","tailwindcss":"^3.4.17","@types/react":"^19.2.18","@types/three":"^0.185.3","autoprefixer":"^10.5.4","@types/react-dom":"^19.2.4","@vitejs/plugin-react":"^6.0.5","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/bestie-agent_0.1.23_1785734138490_0.3313900765065507","host":"s3://npm-registry-packages-npm-production"}},"0.1.24":{"name":"bestie-agent","version":"0.1.24","_id":"bestie-agent@0.1.24","maintainers":[{"name":"andynguyenn","email":"j22487069@icloud.com"}],"bin":{"bestie":"dist/cli/index.js"},"dist":{"shasum":"017ede7828e2cbbc00cb6e3de89d57f6701f42cb","tarball":"https://registry.npmjs.org/bestie-agent/-/bestie-agent-0.1.24.tgz","fileCount":151,"integrity":"sha512-OQs8tDSx4WKavVEWXwXHyrlm0FwQAZrdMdDq68jDhpfJVdA0EeiHzZULuFqMoUo1wDHjUU8Z3in1/oFJS66PUQ==","signatures":[{"sig":"MEUCIQDKB8ORJ2vkZ1AmxSe0LYFXnfNZIO7+LokJ4CU/v5C3GgIge2z1LcOwqf3H3JRpFffs2v+rwryOjadxL+I8vUaNBT4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4916600},"type":"module","engines":{"node":">=24"},"gitHead":"3907d3e5154fb2518c50a34ef8454fc2bcbf34ba","scripts":{"dev":"tsx src/cli/index.ts","test":"npm run build && node --test dist/**/*.test.js","build":"tsc -p tsconfig.json && npm run build:ui && chmod 755 dist/cli/index.js","clean":"rm -rf dist","smoke":"npm run build && npm run smoke:status:run && npm run smoke:doctor:run && npm run smoke:doctor:json:run && npm run smoke:channels:doctor:json:run && npm run smoke:doctor:fix:run && npm run smoke:chat:run && npm run smoke:onboard:run && npm run smoke:telegram:setup:run && npm run smoke:zalo:setup:run","start":"node dist/cli/index.js","prepack":"npm run clean && npm run build","build:ui":"tsc -p web/tsconfig.json --noEmit && vite build --config web/vite.config.ts","smoke:ui":"npm run build && npm run smoke:ui:run","smoke:mcp":"npm run build && npm run smoke:mcp:run","pack:check":"npm run clean && npm run build && npm pack --dry-run","smoke:chat":"npm run build && npm run smoke:chat:run","smoke:zalo":"npm run build && npm run smoke:zalo:run","smoke:tools":"npm run build && npm run smoke:tools:run","smoke:doctor":"npm run build && npm run smoke:doctor:run","smoke:status":"npm run build && npm run smoke:status:run","smoke:ui:all":"npm run build && npm run smoke:ui:run && npm run smoke:ui:browser:run","smoke:ui:run":"node scripts/smoke-ui.mjs","smoke:mcp:run":"node scripts/smoke-mcp.mjs","smoke:onboard":"npm run build && npm run smoke:onboard:run","eval:character":"npm run build && node --test dist/character/prompt-generator.test.js dist/character/character-eval-cases.test.js","prepublishOnly":"npm test","smoke:chat:run":"node scripts/smoke-cli-temp-runtime.mjs chat","smoke:telegram":"npm run build && npm run smoke:telegram:run","smoke:zalo:run":"node scripts/smoke-zalo-disabled.mjs","smoke:installer":"npm run build && node scripts/smoke-installer.mjs","smoke:tools:run":"node dist/cli/index.js tools logs --lines 5 | grep -q 'action_permission_decision' && node dist/cli/index.js tools memories --limit 5 >/dev/null && node dist/cli/index.js tools git status >/dev/null","smoke:zalo:real":"npm run build && node scripts/smoke-zalo-real.mjs","smoke:doctor:fix":"npm run build && npm run smoke:doctor:fix:run","smoke:doctor:run":"node scripts/smoke-cli-temp-runtime.mjs doctor","smoke:status:run":"node scripts/smoke-cli-temp-runtime.mjs status","smoke:ui:browser":"npm run build && npm run smoke:ui:browser:run","smoke:zalo:setup":"npm run build && npm run smoke:zalo:setup:run","smoke:doctor:json":"npm run build && npm run smoke:doctor:json:run","smoke:onboard:run":"tmpdir=$(mktemp -d) && cd $tmpdir && printf 'Bestie\\nBoss\\nask\\nopenai-compatible\\nhttp://127.0.0.1:9/v1\\ntest-model\\ntest-key\\n' | HOME=$tmpdir node $INIT_CWD/dist/cli/index.js onboard --skip-provider-test; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:run":"tmpdir=$(mktemp -d) && cd $tmpdir && HOME=$tmpdir node $INIT_CWD/dist/cli/index.js channels telegram 2>&1 | grep -q 'Telegram is not enabled'; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:real":"npm run build && node scripts/smoke-telegram-real.mjs","eval:character:cases":"npm run build && node --test dist/character/character-eval-cases.test.js","smoke:doctor:fix:run":"node scripts/smoke-doctor-fix.mjs","smoke:telegram:setup":"npm run build && npm run smoke:telegram:setup:run","smoke:ui:browser:run":"node scripts/smoke-ui-browser.mjs","smoke:zalo:setup:run":"node scripts/smoke-zalo-setup.mjs","smoke:doctor:json:run":"node scripts/smoke-cli-temp-runtime.mjs doctor-json","smoke:doctor:exit-code":"npm run build && node scripts/smoke-doctor-exit-code.mjs","smoke:telegram:setup:run":"node scripts/smoke-telegram-setup.mjs","smoke:channels:doctor:json":"npm run build && npm run smoke:channels:doctor:json:run","smoke:channels:doctor:json:run":"node scripts/smoke-channels-doctor-json.mjs"},"_npmUser":{"name":"andynguyenn","email":"j22487069@icloud.com"},"_npmVersion":"11.16.0","description":"Vietnamese-first bestie agent CLI.","directories":{},"_nodeVersion":"24.18.1","dependencies":{"clsx":"^2.1.1","react":"^19.2.8","three":"^0.185.1","grammy":"^1.44.0","mammoth":"^1.12.0","commander":"^14.0.3","cytoscape":"^3.34.0","iso-639-1":"^3.1.6","pdf-parse":"^1.1.1","react-dom":"^19.2.8","lucide-react":"^1.28.0","@google/genai":"^2.12.0","3d-force-graph":"^1.80.0","better-sqlite3":"^12.11.1","tailwind-merge":"^3.6.0","@grammyjs/types":"^3.28.0","three-spritetext":"^1.10.0","@inquirer/prompts":"^8.5.2","@radix-ui/react-slot":"^1.3.3","class-variance-authority":"^0.7.1","@elevenlabs/elevenlabs-js":"^2.57.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.2","vite":"^8.2.0","postcss":"^8.5.25","playwright":"^1.61.1","typescript":"^5.5.4","@types/node":"^20.14.15","tailwindcss":"^3.4.17","@types/react":"^19.2.18","@types/three":"^0.185.3","autoprefixer":"^10.5.4","@types/react-dom":"^19.2.4","@vitejs/plugin-react":"^6.0.5","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/bestie-agent_0.1.24_1785744276485_0.3385509970890386","host":"s3://npm-registry-packages-npm-production"}},"0.1.25":{"name":"bestie-agent","version":"0.1.25","_id":"bestie-agent@0.1.25","maintainers":[{"name":"andynguyenn","email":"j22487069@icloud.com"}],"bin":{"bestie":"dist/cli/index.js"},"dist":{"shasum":"42df2f75a5af6f72061ba02fbfb45f26a633b586","tarball":"https://registry.npmjs.org/bestie-agent/-/bestie-agent-0.1.25.tgz","fileCount":151,"integrity":"sha512-QPnUlQvLWwkJTVLthh2OI7XHVuwclKnDOvwS8dLestGjuj8tLL32vxmnuux/vIKJr+9f8gyqGCISotdwGvtbCQ==","signatures":[{"sig":"MEQCIF8kKE9MlGXJYBeJbgQJwd7etN3s3elYob49ICKcmx9UAiBBeA8JjSZ4UinRiIAPBOm3643sPSkt94GzIURq6iSDvA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4921444},"type":"module","engines":{"node":">=24"},"gitHead":"eea8f28e81d9b8c1c71dc2029d51f1f5cf5d9d17","scripts":{"dev":"tsx src/cli/index.ts","test":"npm run build && node --test dist/**/*.test.js","build":"tsc -p tsconfig.json && npm run build:ui && chmod 755 dist/cli/index.js","clean":"rm -rf dist","smoke":"npm run build && npm run smoke:status:run && npm run smoke:doctor:run && npm run smoke:doctor:json:run && npm run smoke:channels:doctor:json:run && npm run smoke:doctor:fix:run && npm run smoke:chat:run && npm run smoke:onboard:run && npm run smoke:telegram:setup:run && npm run smoke:zalo:setup:run","start":"node dist/cli/index.js","prepack":"npm run clean && npm run build","build:ui":"tsc -p web/tsconfig.json --noEmit && vite build --config web/vite.config.ts","smoke:ui":"npm run build && npm run smoke:ui:run","smoke:mcp":"npm run build && npm run smoke:mcp:run","pack:check":"npm run clean && npm run build && npm pack --dry-run","smoke:chat":"npm run build && npm run smoke:chat:run","smoke:zalo":"npm run build && npm run smoke:zalo:run","smoke:tools":"npm run build && npm run smoke:tools:run","smoke:doctor":"npm run build && npm run smoke:doctor:run","smoke:status":"npm run build && npm run smoke:status:run","smoke:ui:all":"npm run build && npm run smoke:ui:run && npm run smoke:ui:browser:run","smoke:ui:run":"node scripts/smoke-ui.mjs","smoke:mcp:run":"node scripts/smoke-mcp.mjs","smoke:onboard":"npm run build && npm run smoke:onboard:run","eval:character":"npm run build && node --test dist/character/prompt-generator.test.js dist/character/character-eval-cases.test.js","prepublishOnly":"npm test","smoke:chat:run":"node scripts/smoke-cli-temp-runtime.mjs chat","smoke:telegram":"npm run build && npm run smoke:telegram:run","smoke:zalo:run":"node scripts/smoke-zalo-disabled.mjs","smoke:installer":"npm run build && node scripts/smoke-installer.mjs","smoke:tools:run":"node dist/cli/index.js tools logs --lines 5 | grep -q 'action_permission_decision' && node dist/cli/index.js tools memories --limit 5 >/dev/null && node dist/cli/index.js tools git status >/dev/null","smoke:zalo:real":"npm run build && node scripts/smoke-zalo-real.mjs","smoke:doctor:fix":"npm run build && npm run smoke:doctor:fix:run","smoke:doctor:run":"node scripts/smoke-cli-temp-runtime.mjs doctor","smoke:status:run":"node scripts/smoke-cli-temp-runtime.mjs status","smoke:ui:browser":"npm run build && npm run smoke:ui:browser:run","smoke:zalo:setup":"npm run build && npm run smoke:zalo:setup:run","smoke:doctor:json":"npm run build && npm run smoke:doctor:json:run","smoke:onboard:run":"tmpdir=$(mktemp -d) && cd $tmpdir && printf 'Bestie\\nBoss\\nask\\nopenai-compatible\\nhttp://127.0.0.1:9/v1\\ntest-model\\ntest-key\\n' | HOME=$tmpdir node $INIT_CWD/dist/cli/index.js onboard --skip-provider-test; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:run":"tmpdir=$(mktemp -d) && cd $tmpdir && HOME=$tmpdir node $INIT_CWD/dist/cli/index.js channels telegram 2>&1 | grep -q 'Telegram is not enabled'; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:real":"npm run build && node scripts/smoke-telegram-real.mjs","eval:character:cases":"npm run build && node --test dist/character/character-eval-cases.test.js","smoke:doctor:fix:run":"node scripts/smoke-doctor-fix.mjs","smoke:telegram:setup":"npm run build && npm run smoke:telegram:setup:run","smoke:ui:browser:run":"node scripts/smoke-ui-browser.mjs","smoke:zalo:setup:run":"node scripts/smoke-zalo-setup.mjs","smoke:doctor:json:run":"node scripts/smoke-cli-temp-runtime.mjs doctor-json","smoke:doctor:exit-code":"npm run build && node scripts/smoke-doctor-exit-code.mjs","smoke:telegram:setup:run":"node scripts/smoke-telegram-setup.mjs","smoke:channels:doctor:json":"npm run build && npm run smoke:channels:doctor:json:run","smoke:channels:doctor:json:run":"node scripts/smoke-channels-doctor-json.mjs"},"_npmUser":{"name":"andynguyenn","email":"j22487069@icloud.com"},"_npmVersion":"11.16.0","description":"Vietnamese-first bestie agent CLI.","directories":{},"_nodeVersion":"24.18.1","dependencies":{"clsx":"^2.1.1","react":"^19.2.8","three":"^0.185.1","grammy":"^1.44.0","mammoth":"^1.12.0","commander":"^14.0.3","cytoscape":"^3.34.0","iso-639-1":"^3.1.6","pdf-parse":"^1.1.1","react-dom":"^19.2.8","lucide-react":"^1.28.0","@google/genai":"^2.12.0","3d-force-graph":"^1.80.0","better-sqlite3":"^12.11.1","tailwind-merge":"^3.6.0","@grammyjs/types":"^3.28.0","three-spritetext":"^1.10.0","@inquirer/prompts":"^8.5.2","@radix-ui/react-slot":"^1.3.3","class-variance-authority":"^0.7.1","@elevenlabs/elevenlabs-js":"^2.57.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.2","vite":"^8.2.0","postcss":"^8.5.25","playwright":"^1.61.1","typescript":"^5.5.4","@types/node":"^20.14.15","tailwindcss":"^3.4.17","@types/react":"^19.2.18","@types/three":"^0.185.3","autoprefixer":"^10.5.4","@types/react-dom":"^19.2.4","@vitejs/plugin-react":"^6.0.5","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/bestie-agent_0.1.25_1785750003648_0.9943908983210816","host":"s3://npm-registry-packages-npm-production"}},"0.1.26":{"name":"bestie-agent","version":"0.1.26","_id":"bestie-agent@0.1.26","maintainers":[{"name":"andynguyenn","email":"j22487069@icloud.com"}],"bin":{"bestie":"dist/cli/index.js"},"dist":{"shasum":"e62fe6ba7150ad48c1994f7f785e2e665befbe67","tarball":"https://registry.npmjs.org/bestie-agent/-/bestie-agent-0.1.26.tgz","fileCount":152,"integrity":"sha512-9qrQJtybZs7MSqfUlLh+5OhZIOMtfv3b2RByYTIOvEODHcL2JcHHeeT5R36jb3p0tEwszm1YbRUxFKwX3dkBag==","signatures":[{"sig":"MEQCIBl0CPMrzXVsVf4h0fgPeAeMKPES52G3CQeiCG5aTklHAiBSREjDbzkctaGvZcoTtzy8/A0g24Gw2u5ApqqwzXknbw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4924140},"type":"module","engines":{"node":">=24"},"gitHead":"497a2dc63359d92aab9fe9782056cd714c7422cb","scripts":{"dev":"tsx src/cli/index.ts","test":"npm run build && node --test dist/**/*.test.js","build":"tsc -p tsconfig.json && npm run build:ui && chmod 755 dist/cli/index.js","clean":"rm -rf dist","smoke":"npm run build && npm run smoke:status:run && npm run smoke:doctor:run && npm run smoke:doctor:json:run && npm run smoke:channels:doctor:json:run && npm run smoke:doctor:fix:run && npm run smoke:chat:run && npm run smoke:onboard:run && npm run smoke:telegram:setup:run && npm run smoke:zalo:setup:run","start":"node dist/cli/index.js","prepack":"npm run clean && npm run build","build:ui":"tsc -p web/tsconfig.json --noEmit && vite build --config web/vite.config.ts","smoke:ui":"npm run build && npm run smoke:ui:run","smoke:mcp":"npm run build && npm run smoke:mcp:run","pack:check":"npm run clean && npm run build && npm pack --dry-run","smoke:chat":"npm run build && npm run smoke:chat:run","smoke:zalo":"npm run build && npm run smoke:zalo:run","smoke:tools":"npm run build && npm run smoke:tools:run","smoke:doctor":"npm run build && npm run smoke:doctor:run","smoke:status":"npm run build && npm run smoke:status:run","smoke:ui:all":"npm run build && npm run smoke:ui:run && npm run smoke:ui:browser:run","smoke:ui:run":"node scripts/smoke-ui.mjs","smoke:mcp:run":"node scripts/smoke-mcp.mjs","smoke:onboard":"npm run build && npm run smoke:onboard:run","eval:character":"npm run build && node --test dist/character/prompt-generator.test.js dist/character/character-eval-cases.test.js","prepublishOnly":"npm test","smoke:chat:run":"node scripts/smoke-cli-temp-runtime.mjs chat","smoke:telegram":"npm run build && npm run smoke:telegram:run","smoke:zalo:run":"node scripts/smoke-zalo-disabled.mjs","smoke:installer":"npm run build && node scripts/smoke-installer.mjs","smoke:tools:run":"node dist/cli/index.js tools logs --lines 5 | grep -q 'action_permission_decision' && node dist/cli/index.js tools memories --limit 5 >/dev/null && node dist/cli/index.js tools git status >/dev/null","smoke:zalo:real":"npm run build && node scripts/smoke-zalo-real.mjs","smoke:doctor:fix":"npm run build && npm run smoke:doctor:fix:run","smoke:doctor:run":"node scripts/smoke-cli-temp-runtime.mjs doctor","smoke:status:run":"node scripts/smoke-cli-temp-runtime.mjs status","smoke:ui:browser":"npm run build && npm run smoke:ui:browser:run","smoke:zalo:setup":"npm run build && npm run smoke:zalo:setup:run","smoke:doctor:json":"npm run build && npm run smoke:doctor:json:run","smoke:onboard:run":"tmpdir=$(mktemp -d) && cd $tmpdir && printf 'Bestie\\nBoss\\nask\\nopenai-compatible\\nhttp://127.0.0.1:9/v1\\ntest-model\\ntest-key\\n' | HOME=$tmpdir node $INIT_CWD/dist/cli/index.js onboard --skip-provider-test; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:run":"tmpdir=$(mktemp -d) && cd $tmpdir && HOME=$tmpdir node $INIT_CWD/dist/cli/index.js channels telegram 2>&1 | grep -q 'Telegram is not enabled'; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:real":"npm run build && node scripts/smoke-telegram-real.mjs","eval:character:cases":"npm run build && node --test dist/character/character-eval-cases.test.js","smoke:doctor:fix:run":"node scripts/smoke-doctor-fix.mjs","smoke:telegram:setup":"npm run build && npm run smoke:telegram:setup:run","smoke:ui:browser:run":"node scripts/smoke-ui-browser.mjs","smoke:zalo:setup:run":"node scripts/smoke-zalo-setup.mjs","smoke:doctor:json:run":"node scripts/smoke-cli-temp-runtime.mjs doctor-json","smoke:doctor:exit-code":"npm run build && node scripts/smoke-doctor-exit-code.mjs","smoke:telegram:setup:run":"node scripts/smoke-telegram-setup.mjs","smoke:channels:doctor:json":"npm run build && npm run smoke:channels:doctor:json:run","smoke:channels:doctor:json:run":"node scripts/smoke-channels-doctor-json.mjs"},"_npmUser":{"name":"andynguyenn","email":"j22487069@icloud.com"},"_npmVersion":"11.16.0","description":"Vietnamese-first bestie agent CLI.","directories":{},"_nodeVersion":"24.18.1","dependencies":{"clsx":"^2.1.1","react":"^19.2.8","three":"^0.185.1","grammy":"^1.44.0","mammoth":"^1.12.0","commander":"^14.0.3","cytoscape":"^3.34.0","iso-639-1":"^3.1.6","pdf-parse":"^1.1.1","react-dom":"^19.2.8","lucide-react":"^1.28.0","@google/genai":"^2.12.0","3d-force-graph":"^1.80.0","better-sqlite3":"^12.11.1","tailwind-merge":"^3.6.0","@grammyjs/types":"^3.28.0","three-spritetext":"^1.10.0","@inquirer/prompts":"^8.5.2","@radix-ui/react-slot":"^1.3.3","class-variance-authority":"^0.7.1","@elevenlabs/elevenlabs-js":"^2.57.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.2","vite":"^8.2.0","postcss":"^8.5.25","playwright":"^1.61.1","typescript":"^5.5.4","@types/node":"^20.14.15","tailwindcss":"^3.4.17","@types/react":"^19.2.18","@types/three":"^0.185.3","autoprefixer":"^10.5.4","@types/react-dom":"^19.2.4","@vitejs/plugin-react":"^6.0.5","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/bestie-agent_0.1.26_1785751454394_0.257637530052675","host":"s3://npm-registry-packages-npm-production"}},"0.1.27":{"name":"bestie-agent","version":"0.1.27","_id":"bestie-agent@0.1.27","maintainers":[{"name":"andynguyenn","email":"j22487069@icloud.com"}],"bin":{"bestie":"dist/cli/index.js"},"dist":{"shasum":"8810101a08c4f34e980ddc6babc1d7da0d729fa3","tarball":"https://registry.npmjs.org/bestie-agent/-/bestie-agent-0.1.27.tgz","fileCount":152,"integrity":"sha512-du2aJPPLwgQtUV7jFUELcR4bVxbRpsvQIUqmYO6Ga9bk5TcJH6A0xHZgug6INVEJErdRPBY00rtpYUQtXRW7Mg==","signatures":[{"sig":"MEYCIQDS7IWoCsyubu3/7XTAnzJH2tMcDfXYSOkuL6iKq8CryAIhANdwzV3hKgLWWfwXM4QDpIOYMKvv2+oKbWV6eIpJeWkV","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4926206},"type":"module","engines":{"node":">=24"},"gitHead":"6924a2c25a75abd617091afd2cdbda6de665646e","scripts":{"dev":"tsx src/cli/index.ts","test":"npm run build && node --test dist/**/*.test.js","build":"tsc -p tsconfig.json && npm run build:ui && chmod 755 dist/cli/index.js","clean":"rm -rf dist","smoke":"npm run build && npm run smoke:status:run && npm run smoke:doctor:run && npm run smoke:doctor:json:run && npm run smoke:channels:doctor:json:run && npm run smoke:doctor:fix:run && npm run smoke:chat:run && npm run smoke:onboard:run && npm run smoke:telegram:setup:run && npm run smoke:zalo:setup:run","start":"node dist/cli/index.js","prepack":"npm run clean && npm run build","build:ui":"tsc -p web/tsconfig.json --noEmit && vite build --config web/vite.config.ts","smoke:ui":"npm run build && npm run smoke:ui:run","smoke:mcp":"npm run build && npm run smoke:mcp:run","pack:check":"npm run clean && npm run build && npm pack --dry-run","smoke:chat":"npm run build && npm run smoke:chat:run","smoke:zalo":"npm run build && npm run smoke:zalo:run","smoke:tools":"npm run build && npm run smoke:tools:run","smoke:doctor":"npm run build && npm run smoke:doctor:run","smoke:status":"npm run build && npm run smoke:status:run","smoke:ui:all":"npm run build && npm run smoke:ui:run && npm run smoke:ui:browser:run","smoke:ui:run":"node scripts/smoke-ui.mjs","smoke:mcp:run":"node scripts/smoke-mcp.mjs","smoke:onboard":"npm run build && npm run smoke:onboard:run","eval:character":"npm run build && node --test dist/character/prompt-generator.test.js dist/character/character-eval-cases.test.js","prepublishOnly":"npm test","smoke:chat:run":"node scripts/smoke-cli-temp-runtime.mjs chat","smoke:telegram":"npm run build && npm run smoke:telegram:run","smoke:zalo:run":"node scripts/smoke-zalo-disabled.mjs","smoke:installer":"npm run build && node scripts/smoke-installer.mjs","smoke:tools:run":"node dist/cli/index.js tools logs --lines 5 | grep -q 'action_permission_decision' && node dist/cli/index.js tools memories --limit 5 >/dev/null && node dist/cli/index.js tools git status >/dev/null","smoke:zalo:real":"npm run build && node scripts/smoke-zalo-real.mjs","smoke:doctor:fix":"npm run build && npm run smoke:doctor:fix:run","smoke:doctor:run":"node scripts/smoke-cli-temp-runtime.mjs doctor","smoke:status:run":"node scripts/smoke-cli-temp-runtime.mjs status","smoke:ui:browser":"npm run build && npm run smoke:ui:browser:run","smoke:zalo:setup":"npm run build && npm run smoke:zalo:setup:run","smoke:doctor:json":"npm run build && npm run smoke:doctor:json:run","smoke:onboard:run":"tmpdir=$(mktemp -d) && cd $tmpdir && printf 'Bestie\\nBoss\\nask\\nopenai-compatible\\nhttp://127.0.0.1:9/v1\\ntest-model\\ntest-key\\n' | HOME=$tmpdir node $INIT_CWD/dist/cli/index.js onboard --skip-provider-test; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:run":"tmpdir=$(mktemp -d) && cd $tmpdir && HOME=$tmpdir node $INIT_CWD/dist/cli/index.js channels telegram 2>&1 | grep -q 'Telegram is not enabled'; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:real":"npm run build && node scripts/smoke-telegram-real.mjs","eval:character:cases":"npm run build && node --test dist/character/character-eval-cases.test.js","smoke:doctor:fix:run":"node scripts/smoke-doctor-fix.mjs","smoke:telegram:setup":"npm run build && npm run smoke:telegram:setup:run","smoke:ui:browser:run":"node scripts/smoke-ui-browser.mjs","smoke:zalo:setup:run":"node scripts/smoke-zalo-setup.mjs","smoke:doctor:json:run":"node scripts/smoke-cli-temp-runtime.mjs doctor-json","smoke:doctor:exit-code":"npm run build && node scripts/smoke-doctor-exit-code.mjs","smoke:telegram:setup:run":"node scripts/smoke-telegram-setup.mjs","smoke:channels:doctor:json":"npm run build && npm run smoke:channels:doctor:json:run","smoke:channels:doctor:json:run":"node scripts/smoke-channels-doctor-json.mjs"},"_npmUser":{"name":"andynguyenn","email":"j22487069@icloud.com"},"_npmVersion":"11.16.0","description":"Vietnamese-first bestie agent CLI.","directories":{},"_nodeVersion":"24.18.1","dependencies":{"clsx":"^2.1.1","react":"^19.2.8","three":"^0.185.1","grammy":"^1.44.0","mammoth":"^1.12.0","commander":"^14.0.3","cytoscape":"^3.34.0","iso-639-1":"^3.1.6","pdf-parse":"^1.1.1","react-dom":"^19.2.8","lucide-react":"^1.28.0","@google/genai":"^2.12.0","3d-force-graph":"^1.80.0","better-sqlite3":"^12.11.1","tailwind-merge":"^3.6.0","@grammyjs/types":"^3.28.0","three-spritetext":"^1.10.0","@inquirer/prompts":"^8.5.2","@radix-ui/react-slot":"^1.3.3","class-variance-authority":"^0.7.1","@elevenlabs/elevenlabs-js":"^2.57.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.2","vite":"^8.2.0","postcss":"^8.5.25","playwright":"^1.61.1","typescript":"^5.5.4","@types/node":"^20.14.15","tailwindcss":"^3.4.17","@types/react":"^19.2.18","@types/three":"^0.185.3","autoprefixer":"^10.5.4","@types/react-dom":"^19.2.4","@vitejs/plugin-react":"^6.0.5","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/bestie-agent_0.1.27_1785765110834_0.06564199724771158","host":"s3://npm-registry-packages-npm-production"}},"0.1.28":{"name":"bestie-agent","version":"0.1.28","_id":"bestie-agent@0.1.28","maintainers":[{"name":"andynguyenn","email":"j22487069@icloud.com"}],"bin":{"bestie":"dist/cli/index.js"},"dist":{"shasum":"b545402c8a5ed46d19b0f4b1b67df6a581407890","tarball":"https://registry.npmjs.org/bestie-agent/-/bestie-agent-0.1.28.tgz","fileCount":153,"integrity":"sha512-wdsRncX4xdbHy2ULxQtxaMHRF2yit+iAfFMRLRk/SHswiKysLFEHU9hERQ1Knhpq3NofZbiuktDwxrugqJierw==","signatures":[{"sig":"MEQCIDunHIYeLhWkUZrGT7YYuRWYkNhZtFsTlV1KzFv7aeg3AiBIkqddlB9Xerl3Lh9ysFBBg9Egj2+zXvPFMNRn5BDA+Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4932459},"type":"module","engines":{"node":">=24"},"gitHead":"18184ae044217538b295159ab2ecf71afe72dc75","scripts":{"dev":"tsx src/cli/index.ts","test":"npm run build && node --test dist/**/*.test.js","build":"tsc -p tsconfig.json && npm run build:ui && chmod 755 dist/cli/index.js","clean":"rm -rf dist","smoke":"npm run build && npm run smoke:status:run && npm run smoke:doctor:run && npm run smoke:doctor:json:run && npm run smoke:channels:doctor:json:run && npm run smoke:doctor:fix:run && npm run smoke:chat:run && npm run smoke:onboard:run && npm run smoke:telegram:setup:run && npm run smoke:zalo:setup:run","start":"node dist/cli/index.js","prepack":"npm run clean && npm run build","build:ui":"tsc -p web/tsconfig.json --noEmit && vite build --config web/vite.config.ts","smoke:ui":"npm run build && npm run smoke:ui:run","smoke:mcp":"npm run build && npm run smoke:mcp:run","pack:check":"npm run clean && npm run build && npm pack --dry-run","smoke:chat":"npm run build && npm run smoke:chat:run","smoke:zalo":"npm run build && npm run smoke:zalo:run","smoke:tools":"npm run build && npm run smoke:tools:run","smoke:doctor":"npm run build && npm run smoke:doctor:run","smoke:status":"npm run build && npm run smoke:status:run","smoke:ui:all":"npm run build && npm run smoke:ui:run && npm run smoke:ui:browser:run","smoke:ui:run":"node scripts/smoke-ui.mjs","smoke:mcp:run":"node scripts/smoke-mcp.mjs","smoke:onboard":"npm run build && npm run smoke:onboard:run","eval:character":"npm run build && node --test dist/character/prompt-generator.test.js dist/character/character-eval-cases.test.js","prepublishOnly":"npm test","smoke:chat:run":"node scripts/smoke-cli-temp-runtime.mjs chat","smoke:telegram":"npm run build && npm run smoke:telegram:run","smoke:zalo:run":"node scripts/smoke-zalo-disabled.mjs","smoke:installer":"npm run build && node scripts/smoke-installer.mjs","smoke:tools:run":"node dist/cli/index.js tools logs --lines 5 | grep -q 'action_permission_decision' && node dist/cli/index.js tools memories --limit 5 >/dev/null && node dist/cli/index.js tools git status >/dev/null","smoke:zalo:real":"npm run build && node scripts/smoke-zalo-real.mjs","smoke:doctor:fix":"npm run build && npm run smoke:doctor:fix:run","smoke:doctor:run":"node scripts/smoke-cli-temp-runtime.mjs doctor","smoke:status:run":"node scripts/smoke-cli-temp-runtime.mjs status","smoke:ui:browser":"npm run build && npm run smoke:ui:browser:run","smoke:zalo:setup":"npm run build && npm run smoke:zalo:setup:run","smoke:doctor:json":"npm run build && npm run smoke:doctor:json:run","smoke:onboard:run":"tmpdir=$(mktemp -d) && cd $tmpdir && printf 'Bestie\\nBoss\\nask\\nopenai-compatible\\nhttp://127.0.0.1:9/v1\\ntest-model\\ntest-key\\n' | HOME=$tmpdir node $INIT_CWD/dist/cli/index.js onboard --skip-provider-test; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:run":"tmpdir=$(mktemp -d) && cd $tmpdir && HOME=$tmpdir node $INIT_CWD/dist/cli/index.js channels telegram 2>&1 | grep -q 'Telegram is not enabled'; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:real":"npm run build && node scripts/smoke-telegram-real.mjs","eval:character:cases":"npm run build && node --test dist/character/character-eval-cases.test.js","smoke:doctor:fix:run":"node scripts/smoke-doctor-fix.mjs","smoke:telegram:setup":"npm run build && npm run smoke:telegram:setup:run","smoke:ui:browser:run":"node scripts/smoke-ui-browser.mjs","smoke:zalo:setup:run":"node scripts/smoke-zalo-setup.mjs","smoke:doctor:json:run":"node scripts/smoke-cli-temp-runtime.mjs doctor-json","smoke:doctor:exit-code":"npm run build && node scripts/smoke-doctor-exit-code.mjs","smoke:telegram:setup:run":"node scripts/smoke-telegram-setup.mjs","smoke:channels:doctor:json":"npm run build && npm run smoke:channels:doctor:json:run","smoke:channels:doctor:json:run":"node scripts/smoke-channels-doctor-json.mjs"},"_npmUser":{"name":"andynguyenn","email":"j22487069@icloud.com"},"_npmVersion":"11.16.0","description":"Vietnamese-first bestie agent CLI.","directories":{},"_nodeVersion":"24.18.1","dependencies":{"clsx":"^2.1.1","react":"^19.2.8","three":"^0.185.1","grammy":"^1.44.0","mammoth":"^1.12.0","commander":"^14.0.3","cytoscape":"^3.34.0","iso-639-1":"^3.1.6","pdf-parse":"^1.1.1","react-dom":"^19.2.8","lucide-react":"^1.28.0","@google/genai":"^2.12.0","3d-force-graph":"^1.80.0","better-sqlite3":"^12.11.1","tailwind-merge":"^3.6.0","@grammyjs/types":"^3.28.0","three-spritetext":"^1.10.0","@inquirer/prompts":"^8.5.2","@radix-ui/react-slot":"^1.3.3","class-variance-authority":"^0.7.1","@elevenlabs/elevenlabs-js":"^2.57.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.2","vite":"^8.2.0","postcss":"^8.5.25","playwright":"^1.61.1","typescript":"^5.5.4","@types/node":"^20.14.15","tailwindcss":"^3.4.17","@types/react":"^19.2.18","@types/three":"^0.185.3","autoprefixer":"^10.5.4","@types/react-dom":"^19.2.4","@vitejs/plugin-react":"^6.0.5","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/bestie-agent_0.1.28_1785767703088_0.40073649756151686","host":"s3://npm-registry-packages-npm-production"}},"0.1.29":{"name":"bestie-agent","version":"0.1.29","_id":"bestie-agent@0.1.29","maintainers":[{"name":"andynguyenn","email":"j22487069@icloud.com"}],"bin":{"bestie":"dist/cli/index.js"},"dist":{"shasum":"eabf9ae742e92f64b87e37e95510f47d4c53ca00","tarball":"https://registry.npmjs.org/bestie-agent/-/bestie-agent-0.1.29.tgz","fileCount":154,"integrity":"sha512-gNd27GKBtx6FkQouVse8rfBKnrgU3YWvg4CXdjF3LiWGc21AvQrAi6xeRt1o9B7jWatJldhRqwlJgbfIodpK1A==","signatures":[{"sig":"MEUCIQDh+g7Y/8FW0YvbUwJxKJxQJNdmgyNfXCm5M+CwWDnZzAIgZd4l1LTBKI0+lbRX+b9XteBrgtB46i7Xkaa2tc4JpN0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4933171},"type":"module","engines":{"node":">=24"},"gitHead":"0ec270ef9fccd1474feb101119b3e823e89ccde6","scripts":{"dev":"tsx src/cli/index.ts","test":"npm run build && node --test dist/**/*.test.js","build":"tsc -p tsconfig.json && npm run build:ui && chmod 755 dist/cli/index.js","clean":"rm -rf dist","smoke":"npm run build && npm run smoke:status:run && npm run smoke:doctor:run && npm run smoke:doctor:json:run && npm run smoke:channels:doctor:json:run && npm run smoke:doctor:fix:run && npm run smoke:chat:run && npm run smoke:onboard:run && npm run smoke:telegram:setup:run && npm run smoke:zalo:setup:run","start":"node dist/cli/index.js","prepack":"npm run clean && npm run build","build:ui":"tsc -p web/tsconfig.json --noEmit && vite build --config web/vite.config.ts","smoke:ui":"npm run build && npm run smoke:ui:run","smoke:mcp":"npm run build && npm run smoke:mcp:run","pack:check":"npm run clean && npm run build && npm pack --dry-run","smoke:chat":"npm run build && npm run smoke:chat:run","smoke:zalo":"npm run build && npm run smoke:zalo:run","smoke:tools":"npm run build && npm run smoke:tools:run","smoke:doctor":"npm run build && npm run smoke:doctor:run","smoke:status":"npm run build && npm run smoke:status:run","smoke:ui:all":"npm run build && npm run smoke:ui:run && npm run smoke:ui:browser:run","smoke:ui:run":"node scripts/smoke-ui.mjs","smoke:mcp:run":"node scripts/smoke-mcp.mjs","smoke:onboard":"npm run build && npm run smoke:onboard:run","eval:character":"npm run build && node --test dist/character/prompt-generator.test.js dist/character/character-eval-cases.test.js","prepublishOnly":"npm test","smoke:chat:run":"node scripts/smoke-cli-temp-runtime.mjs chat","smoke:telegram":"npm run build && npm run smoke:telegram:run","smoke:zalo:run":"node scripts/smoke-zalo-disabled.mjs","smoke:installer":"npm run build && node scripts/smoke-installer.mjs","smoke:tools:run":"node dist/cli/index.js tools logs --lines 5 | grep -q 'action_permission_decision' && node dist/cli/index.js tools memories --limit 5 >/dev/null && node dist/cli/index.js tools git status >/dev/null","smoke:zalo:real":"npm run build && node scripts/smoke-zalo-real.mjs","smoke:doctor:fix":"npm run build && npm run smoke:doctor:fix:run","smoke:doctor:run":"node scripts/smoke-cli-temp-runtime.mjs doctor","smoke:status:run":"node scripts/smoke-cli-temp-runtime.mjs status","smoke:ui:browser":"npm run build && npm run smoke:ui:browser:run","smoke:zalo:setup":"npm run build && npm run smoke:zalo:setup:run","smoke:doctor:json":"npm run build && npm run smoke:doctor:json:run","smoke:onboard:run":"tmpdir=$(mktemp -d) && cd $tmpdir && printf 'Bestie\\nBoss\\nask\\nopenai-compatible\\nhttp://127.0.0.1:9/v1\\ntest-model\\ntest-key\\n' | HOME=$tmpdir node $INIT_CWD/dist/cli/index.js onboard --skip-provider-test; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:run":"tmpdir=$(mktemp -d) && cd $tmpdir && HOME=$tmpdir node $INIT_CWD/dist/cli/index.js channels telegram 2>&1 | grep -q 'Telegram is not enabled'; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:real":"npm run build && node scripts/smoke-telegram-real.mjs","eval:character:cases":"npm run build && node --test dist/character/character-eval-cases.test.js","smoke:doctor:fix:run":"node scripts/smoke-doctor-fix.mjs","smoke:telegram:setup":"npm run build && npm run smoke:telegram:setup:run","smoke:ui:browser:run":"node scripts/smoke-ui-browser.mjs","smoke:zalo:setup:run":"node scripts/smoke-zalo-setup.mjs","smoke:doctor:json:run":"node scripts/smoke-cli-temp-runtime.mjs doctor-json","smoke:doctor:exit-code":"npm run build && node scripts/smoke-doctor-exit-code.mjs","smoke:telegram:setup:run":"node scripts/smoke-telegram-setup.mjs","smoke:channels:doctor:json":"npm run build && npm run smoke:channels:doctor:json:run","smoke:channels:doctor:json:run":"node scripts/smoke-channels-doctor-json.mjs"},"_npmUser":{"name":"andynguyenn","email":"j22487069@icloud.com"},"_npmVersion":"11.16.0","description":"Vietnamese-first bestie agent CLI.","directories":{},"_nodeVersion":"24.18.1","dependencies":{"clsx":"^2.1.1","react":"^19.2.8","three":"^0.185.1","grammy":"^1.44.0","mammoth":"^1.12.0","commander":"^14.0.3","cytoscape":"^3.34.0","iso-639-1":"^3.1.6","pdf-parse":"^1.1.1","react-dom":"^19.2.8","lucide-react":"^1.28.0","@google/genai":"^2.12.0","3d-force-graph":"^1.80.0","better-sqlite3":"^12.11.1","tailwind-merge":"^3.6.0","@grammyjs/types":"^3.28.0","three-spritetext":"^1.10.0","@inquirer/prompts":"^8.5.2","@radix-ui/react-slot":"^1.3.3","class-variance-authority":"^0.7.1","@elevenlabs/elevenlabs-js":"^2.57.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.2","vite":"^8.2.0","postcss":"^8.5.25","playwright":"^1.61.1","typescript":"^5.5.4","@types/node":"^20.14.15","tailwindcss":"^3.4.17","@types/react":"^19.2.18","@types/three":"^0.185.3","autoprefixer":"^10.5.4","@types/react-dom":"^19.2.4","@vitejs/plugin-react":"^6.0.5","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/bestie-agent_0.1.29_1785768802296_0.7167455293917036","host":"s3://npm-registry-packages-npm-production"}},"0.1.30":{"name":"bestie-agent","version":"0.1.30","_id":"bestie-agent@0.1.30","maintainers":[{"name":"andynguyenn","email":"j22487069@icloud.com"}],"bin":{"bestie":"dist/cli/index.js"},"dist":{"shasum":"bc4fca6376e41756ee3c9a8a6d53a8dc1b7c45fb","tarball":"https://registry.npmjs.org/bestie-agent/-/bestie-agent-0.1.30.tgz","fileCount":154,"integrity":"sha512-5iAS84v7tPzDJRC0NLEuv2iJ8+U8h6oLE5cVJeqR9I3ECxpGILFR2jUo2nxNKkT9cfVE39Tpxw0YOpaOa9WMSw==","signatures":[{"sig":"MEUCIQCvdtmqjZiRbhWHgvDDLWDU4+Nrf6FLgYoozmuTelC07gIgNFkNRUl9r1eNnCVl7EfWjEPO1OS7LS3sGMpI5rRTrec=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4924336},"type":"module","engines":{"node":">=24"},"gitHead":"bc3213c992c9a9cb28f7bc40a5bf75db3b0e7278","scripts":{"dev":"tsx src/cli/index.ts","test":"npm run build && node --test dist/**/*.test.js","build":"tsc -p tsconfig.json && npm run build:ui && chmod 755 dist/cli/index.js","clean":"rm -rf dist","smoke":"npm run build && npm run smoke:status:run && npm run smoke:doctor:run && npm run smoke:doctor:json:run && npm run smoke:channels:doctor:json:run && npm run smoke:doctor:fix:run && npm run smoke:chat:run && npm run smoke:onboard:run && npm run smoke:telegram:setup:run && npm run smoke:zalo:setup:run","start":"node dist/cli/index.js","prepack":"npm run clean && npm run build","build:ui":"tsc -p web/tsconfig.json --noEmit && vite build --config web/vite.config.ts","smoke:ui":"npm run build && npm run smoke:ui:run","smoke:mcp":"npm run build && npm run smoke:mcp:run","pack:check":"npm run clean && npm run build && npm pack --dry-run","smoke:chat":"npm run build && npm run smoke:chat:run","smoke:zalo":"npm run build && npm run smoke:zalo:run","smoke:tools":"npm run build && npm run smoke:tools:run","smoke:doctor":"npm run build && npm run smoke:doctor:run","smoke:status":"npm run build && npm run smoke:status:run","smoke:ui:all":"npm run build && npm run smoke:ui:run && npm run smoke:ui:browser:run","smoke:ui:run":"node scripts/smoke-ui.mjs","smoke:mcp:run":"node scripts/smoke-mcp.mjs","smoke:onboard":"npm run build && npm run smoke:onboard:run","eval:character":"npm run build && node --test dist/character/prompt-generator.test.js dist/character/character-eval-cases.test.js","prepublishOnly":"npm test","smoke:chat:run":"node scripts/smoke-cli-temp-runtime.mjs chat","smoke:telegram":"npm run build && npm run smoke:telegram:run","smoke:zalo:run":"node scripts/smoke-zalo-disabled.mjs","smoke:installer":"npm run build && node scripts/smoke-installer.mjs","smoke:tools:run":"node dist/cli/index.js tools logs --lines 5 | grep -q 'action_permission_decision' && node dist/cli/index.js tools memories --limit 5 >/dev/null && node dist/cli/index.js tools git status >/dev/null","smoke:zalo:real":"npm run build && node scripts/smoke-zalo-real.mjs","smoke:doctor:fix":"npm run build && npm run smoke:doctor:fix:run","smoke:doctor:run":"node scripts/smoke-cli-temp-runtime.mjs doctor","smoke:status:run":"node scripts/smoke-cli-temp-runtime.mjs status","smoke:ui:browser":"npm run build && npm run smoke:ui:browser:run","smoke:zalo:setup":"npm run build && npm run smoke:zalo:setup:run","smoke:doctor:json":"npm run build && npm run smoke:doctor:json:run","smoke:onboard:run":"tmpdir=$(mktemp -d) && cd $tmpdir && printf 'Bestie\\nBoss\\nask\\nopenai-compatible\\nhttp://127.0.0.1:9/v1\\ntest-model\\ntest-key\\n' | HOME=$tmpdir node $INIT_CWD/dist/cli/index.js onboard --skip-provider-test; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:run":"tmpdir=$(mktemp -d) && cd $tmpdir && HOME=$tmpdir node $INIT_CWD/dist/cli/index.js channels telegram 2>&1 | grep -q 'Telegram is not enabled'; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:real":"npm run build && node scripts/smoke-telegram-real.mjs","eval:character:cases":"npm run build && node --test dist/character/character-eval-cases.test.js","smoke:doctor:fix:run":"node scripts/smoke-doctor-fix.mjs","smoke:telegram:setup":"npm run build && npm run smoke:telegram:setup:run","smoke:ui:browser:run":"node scripts/smoke-ui-browser.mjs","smoke:zalo:setup:run":"node scripts/smoke-zalo-setup.mjs","smoke:doctor:json:run":"node scripts/smoke-cli-temp-runtime.mjs doctor-json","smoke:doctor:exit-code":"npm run build && node scripts/smoke-doctor-exit-code.mjs","smoke:telegram:setup:run":"node scripts/smoke-telegram-setup.mjs","smoke:channels:doctor:json":"npm run build && npm run smoke:channels:doctor:json:run","smoke:channels:doctor:json:run":"node scripts/smoke-channels-doctor-json.mjs"},"_npmUser":{"name":"andynguyenn","email":"j22487069@icloud.com"},"_npmVersion":"11.16.0","description":"Vietnamese-first bestie agent CLI.","directories":{},"_nodeVersion":"24.18.1","dependencies":{"clsx":"^2.1.1","react":"^19.2.8","three":"^0.185.1","grammy":"^1.44.0","mammoth":"^1.12.0","commander":"^14.0.3","cytoscape":"^3.34.0","iso-639-1":"^3.1.6","pdf-parse":"^1.1.1","react-dom":"^19.2.8","lucide-react":"^1.28.0","@google/genai":"^2.12.0","3d-force-graph":"^1.80.0","better-sqlite3":"^12.11.1","tailwind-merge":"^3.6.0","@grammyjs/types":"^3.28.0","three-spritetext":"^1.10.0","@inquirer/prompts":"^8.5.2","@radix-ui/react-slot":"^1.3.3","class-variance-authority":"^0.7.1","@elevenlabs/elevenlabs-js":"^2.57.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.2","vite":"^8.2.0","postcss":"^8.5.25","playwright":"^1.61.1","typescript":"^5.5.4","@types/node":"^20.14.15","tailwindcss":"^3.4.17","@types/react":"^19.2.18","@types/three":"^0.185.3","autoprefixer":"^10.5.4","@types/react-dom":"^19.2.4","@vitejs/plugin-react":"^6.0.5","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/bestie-agent_0.1.30_1785776012314_0.7475175926402595","host":"s3://npm-registry-packages-npm-production"}},"0.1.31":{"name":"bestie-agent","version":"0.1.31","_id":"bestie-agent@0.1.31","maintainers":[{"name":"andynguyenn","email":"j22487069@icloud.com"}],"bin":{"bestie":"dist/cli/index.js"},"dist":{"shasum":"71d23f4fbafb87b2840f243b9a272a3647e54835","tarball":"https://registry.npmjs.org/bestie-agent/-/bestie-agent-0.1.31.tgz","fileCount":154,"integrity":"sha512-Nv0DzN2q7b7XgwMxuPG21w52yku6B+ypbxhwObeztpGb6ZkIwRPx5r8qQ5X8e2OPj6dqchuGHDUvKxG6oDR2rw==","signatures":[{"sig":"MEQCIDFXcBByqg3wLAnUmz7wu1bC3lLBPs0baXt6yAPYOfFeAiBdSNA4gT0nYJQkhmMWT6JJxjFUv4DyzoJViJd8uvxILw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4924687},"type":"module","engines":{"node":">=24"},"gitHead":"4a29950b7ebed26e344f77801be6583d7f1ce45f","scripts":{"dev":"tsx src/cli/index.ts","test":"npm run build && node --test dist/**/*.test.js","build":"tsc -p tsconfig.json && npm run build:ui && chmod 755 dist/cli/index.js","clean":"rm -rf dist","smoke":"npm run build && npm run smoke:status:run && npm run smoke:doctor:run && npm run smoke:doctor:json:run && npm run smoke:channels:doctor:json:run && npm run smoke:doctor:fix:run && npm run smoke:chat:run && npm run smoke:onboard:run && npm run smoke:telegram:setup:run && npm run smoke:zalo:setup:run","start":"node dist/cli/index.js","prepack":"npm run clean && npm run build","build:ui":"tsc -p web/tsconfig.json --noEmit && vite build --config web/vite.config.ts","smoke:ui":"npm run build && npm run smoke:ui:run","smoke:mcp":"npm run build && npm run smoke:mcp:run","pack:check":"npm run clean && npm run build && npm pack --dry-run","smoke:chat":"npm run build && npm run smoke:chat:run","smoke:zalo":"npm run build && npm run smoke:zalo:run","smoke:tools":"npm run build && npm run smoke:tools:run","smoke:doctor":"npm run build && npm run smoke:doctor:run","smoke:status":"npm run build && npm run smoke:status:run","smoke:ui:all":"npm run build && npm run smoke:ui:run && npm run smoke:ui:browser:run","smoke:ui:run":"node scripts/smoke-ui.mjs","smoke:mcp:run":"node scripts/smoke-mcp.mjs","smoke:onboard":"npm run build && npm run smoke:onboard:run","eval:character":"npm run build && node --test dist/character/prompt-generator.test.js dist/character/character-eval-cases.test.js","prepublishOnly":"npm test","smoke:chat:run":"node scripts/smoke-cli-temp-runtime.mjs chat","smoke:telegram":"npm run build && npm run smoke:telegram:run","smoke:zalo:run":"node scripts/smoke-zalo-disabled.mjs","smoke:installer":"npm run build && node scripts/smoke-installer.mjs","smoke:tools:run":"node dist/cli/index.js tools logs --lines 5 | grep -q 'action_permission_decision' && node dist/cli/index.js tools memories --limit 5 >/dev/null && node dist/cli/index.js tools git status >/dev/null","smoke:zalo:real":"npm run build && node scripts/smoke-zalo-real.mjs","smoke:doctor:fix":"npm run build && npm run smoke:doctor:fix:run","smoke:doctor:run":"node scripts/smoke-cli-temp-runtime.mjs doctor","smoke:status:run":"node scripts/smoke-cli-temp-runtime.mjs status","smoke:ui:browser":"npm run build && npm run smoke:ui:browser:run","smoke:zalo:setup":"npm run build && npm run smoke:zalo:setup:run","smoke:doctor:json":"npm run build && npm run smoke:doctor:json:run","smoke:onboard:run":"tmpdir=$(mktemp -d) && cd $tmpdir && printf 'Bestie\\nBoss\\nask\\nopenai-compatible\\nhttp://127.0.0.1:9/v1\\ntest-model\\ntest-key\\n' | HOME=$tmpdir node $INIT_CWD/dist/cli/index.js onboard --skip-provider-test; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:run":"tmpdir=$(mktemp -d) && cd $tmpdir && HOME=$tmpdir node $INIT_CWD/dist/cli/index.js channels telegram 2>&1 | grep -q 'Telegram is not enabled'; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:real":"npm run build && node scripts/smoke-telegram-real.mjs","eval:character:cases":"npm run build && node --test dist/character/character-eval-cases.test.js","smoke:doctor:fix:run":"node scripts/smoke-doctor-fix.mjs","smoke:telegram:setup":"npm run build && npm run smoke:telegram:setup:run","smoke:ui:browser:run":"node scripts/smoke-ui-browser.mjs","smoke:zalo:setup:run":"node scripts/smoke-zalo-setup.mjs","smoke:doctor:json:run":"node scripts/smoke-cli-temp-runtime.mjs doctor-json","smoke:doctor:exit-code":"npm run build && node scripts/smoke-doctor-exit-code.mjs","smoke:telegram:setup:run":"node scripts/smoke-telegram-setup.mjs","smoke:channels:doctor:json":"npm run build && npm run smoke:channels:doctor:json:run","smoke:channels:doctor:json:run":"node scripts/smoke-channels-doctor-json.mjs"},"_npmUser":{"name":"andynguyenn","email":"j22487069@icloud.com"},"_npmVersion":"11.16.0","description":"Vietnamese-first bestie agent CLI.","directories":{},"_nodeVersion":"24.18.1","dependencies":{"clsx":"^2.1.1","react":"^19.2.8","three":"^0.185.1","grammy":"^1.44.0","mammoth":"^1.12.0","commander":"^14.0.3","cytoscape":"^3.34.0","iso-639-1":"^3.1.6","pdf-parse":"^1.1.1","react-dom":"^19.2.8","lucide-react":"^1.28.0","@google/genai":"^2.12.0","3d-force-graph":"^1.80.0","better-sqlite3":"^12.11.1","tailwind-merge":"^3.6.0","@grammyjs/types":"^3.28.0","three-spritetext":"^1.10.0","@inquirer/prompts":"^8.5.2","@radix-ui/react-slot":"^1.3.3","class-variance-authority":"^0.7.1","@elevenlabs/elevenlabs-js":"^2.57.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.2","vite":"^8.2.0","postcss":"^8.5.25","playwright":"^1.61.1","typescript":"^5.5.4","@types/node":"^20.14.15","tailwindcss":"^3.4.17","@types/react":"^19.2.18","@types/three":"^0.185.3","autoprefixer":"^10.5.4","@types/react-dom":"^19.2.4","@vitejs/plugin-react":"^6.0.5","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/bestie-agent_0.1.31_1785777778010_0.29108176982761713","host":"s3://npm-registry-packages-npm-production"}},"0.1.33":{"name":"bestie-agent","version":"0.1.33","_id":"bestie-agent@0.1.33","maintainers":[{"name":"andynguyenn","email":"j22487069@icloud.com"}],"bin":{"bestie":"dist/cli/index.js"},"dist":{"shasum":"3c7bcbcea10d61c216db74e55a640fd883ff0297","tarball":"https://registry.npmjs.org/bestie-agent/-/bestie-agent-0.1.33.tgz","fileCount":163,"integrity":"sha512-wEOJnx8Q+LCQXQ2MjwGXGc/SHO1l3AF02BvhzXj9GJUFqJNQu7JsDztYIelZd5bEj07qXU5+MEbSG2mJYzH84Q==","signatures":[{"sig":"MEYCIQCowxNd0WuJODlqHpD5CIHrqI3IPGBv9Ff7kYmL4X8dGwIhAI2X+tJx79SOW1kb+Xi991llZr2ojZ5LzN2M1l0FYFUN","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5064828},"type":"module","engines":{"node":">=24"},"gitHead":"a5affb59ac9d3b152e59946ccbd5202842d10f2c","scripts":{"dev":"tsx src/cli/index.ts","test":"npm run build && node --test dist/**/*.test.js","build":"tsc -p tsconfig.json && npm run build:ui && chmod 755 dist/cli/index.js","clean":"rm -rf dist","smoke":"npm run build && npm run smoke:status:run && npm run smoke:doctor:run && npm run smoke:doctor:json:run && npm run smoke:channels:doctor:json:run && npm run smoke:doctor:fix:run && npm run smoke:chat:run && npm run smoke:onboard:run && npm run smoke:telegram:setup:run && npm run smoke:zalo:setup:run","start":"node dist/cli/index.js","prepack":"npm run clean && npm run build","build:ui":"tsc -p web/tsconfig.json --noEmit && vite build --config web/vite.config.ts","smoke:ui":"npm run build && npm run smoke:ui:run","smoke:mcp":"npm run build && npm run smoke:mcp:run","pack:check":"npm run clean && npm run build && npm pack --dry-run","smoke:chat":"npm run build && npm run smoke:chat:run","smoke:zalo":"npm run build && npm run smoke:zalo:run","smoke:tools":"npm run build && npm run smoke:tools:run","smoke:doctor":"npm run build && npm run smoke:doctor:run","smoke:status":"npm run build && npm run smoke:status:run","smoke:ui:all":"npm run build && npm run smoke:ui:run && npm run smoke:ui:browser:run","smoke:ui:run":"node scripts/smoke-ui.mjs","smoke:mcp:run":"node scripts/smoke-mcp.mjs","smoke:onboard":"npm run build && npm run smoke:onboard:run","eval:character":"npm run build && node --test dist/character/prompt-generator.test.js dist/character/character-eval-cases.test.js","prepublishOnly":"npm test","smoke:chat:run":"node scripts/smoke-cli-temp-runtime.mjs chat","smoke:telegram":"npm run build && npm run smoke:telegram:run","smoke:zalo:run":"node scripts/smoke-zalo-disabled.mjs","smoke:installer":"npm run build && node scripts/smoke-installer.mjs","smoke:tools:run":"node dist/cli/index.js tools logs --lines 5 | grep -q 'action_permission_decision' && node dist/cli/index.js tools memories --limit 5 >/dev/null && node dist/cli/index.js tools git status >/dev/null","smoke:zalo:real":"npm run build && node scripts/smoke-zalo-real.mjs","smoke:doctor:fix":"npm run build && npm run smoke:doctor:fix:run","smoke:doctor:run":"node scripts/smoke-cli-temp-runtime.mjs doctor","smoke:status:run":"node scripts/smoke-cli-temp-runtime.mjs status","smoke:ui:browser":"npm run build && npm run smoke:ui:browser:run","smoke:zalo:setup":"npm run build && npm run smoke:zalo:setup:run","smoke:doctor:json":"npm run build && npm run smoke:doctor:json:run","smoke:onboard:run":"tmpdir=$(mktemp -d) && cd $tmpdir && printf 'Bestie\\nBoss\\nask\\nopenai-compatible\\nhttp://127.0.0.1:9/v1\\ntest-model\\ntest-key\\n' | HOME=$tmpdir node $INIT_CWD/dist/cli/index.js onboard --skip-provider-test; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:run":"tmpdir=$(mktemp -d) && cd $tmpdir && HOME=$tmpdir node $INIT_CWD/dist/cli/index.js channels telegram 2>&1 | grep -q 'Telegram is not enabled'; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:real":"npm run build && node scripts/smoke-telegram-real.mjs","eval:character:cases":"npm run build && node --test dist/character/character-eval-cases.test.js","smoke:doctor:fix:run":"node scripts/smoke-doctor-fix.mjs","smoke:telegram:setup":"npm run build && npm run smoke:telegram:setup:run","smoke:ui:browser:run":"node scripts/smoke-ui-browser.mjs","smoke:zalo:setup:run":"node scripts/smoke-zalo-setup.mjs","smoke:doctor:json:run":"node scripts/smoke-cli-temp-runtime.mjs doctor-json","smoke:doctor:exit-code":"npm run build && node scripts/smoke-doctor-exit-code.mjs","smoke:telegram:setup:run":"node scripts/smoke-telegram-setup.mjs","smoke:channels:doctor:json":"npm run build && npm run smoke:channels:doctor:json:run","smoke:channels:doctor:json:run":"node scripts/smoke-channels-doctor-json.mjs"},"_npmUser":{"name":"andynguyenn","email":"j22487069@icloud.com"},"_npmVersion":"11.17.0","description":"Vietnamese-first bestie agent CLI.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"clsx":"^2.1.1","react":"^19.2.8","three":"^0.185.1","grammy":"^1.44.0","mammoth":"^1.12.0","commander":"^14.0.3","cytoscape":"^3.34.0","iso-639-1":"^3.1.6","pdf-parse":"^1.1.1","react-dom":"^19.2.8","lucide-react":"^1.28.0","@google/genai":"^2.12.0","3d-force-graph":"^1.80.0","better-sqlite3":"^12.11.1","tailwind-merge":"^3.6.0","@grammyjs/types":"^3.28.0","three-spritetext":"^1.10.0","@inquirer/prompts":"^8.5.2","@radix-ui/react-slot":"^1.3.3","class-variance-authority":"^0.7.1","@elevenlabs/elevenlabs-js":"^2.57.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.2","vite":"^8.2.0","postcss":"^8.5.25","playwright":"^1.61.1","typescript":"^5.5.4","@types/node":"^20.14.15","tailwindcss":"^3.4.17","@types/react":"^19.2.18","@types/three":"^0.185.3","autoprefixer":"^10.5.4","@types/react-dom":"^19.2.4","@vitejs/plugin-react":"^6.0.5","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/bestie-agent_0.1.33_1786028441785_0.09684053095928857","host":"s3://npm-registry-packages-npm-production"}},"0.1.34":{"name":"bestie-agent","version":"0.1.34","_id":"bestie-agent@0.1.34","maintainers":[{"name":"andynguyenn","email":"j22487069@icloud.com"}],"bin":{"bestie":"dist/cli/index.js"},"dist":{"shasum":"fffb36c7b3a133a925e67b1e36ab4fe01da3b250","tarball":"https://registry.npmjs.org/bestie-agent/-/bestie-agent-0.1.34.tgz","fileCount":163,"integrity":"sha512-URuPy85gtd2QfPEVXMQx32s7KaMZlxkURyIjmg4aadjqSnt8fuhXPEhYj1Q4qOva7f95+o8iyfjZ9C45X5e3Kg==","signatures":[{"sig":"MEUCIGnIXkKYH4LG8wPpmlYJ17WvVrm/fWRG3Q3XU56xqKvFAiEAwKGjNFvkKYKVKSmEPd5rr89GDBaGOdPnyvFNskNNOE0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5064718},"type":"module","engines":{"node":">=24"},"gitHead":"5b50468c0137316694628e0375c74b02691d86a6","scripts":{"dev":"tsx src/cli/index.ts","test":"npm run build && node --test dist/**/*.test.js","build":"tsc -p tsconfig.json && npm run build:ui && chmod 755 dist/cli/index.js","clean":"rm -rf dist","smoke":"npm run build && npm run smoke:status:run && npm run smoke:doctor:run && npm run smoke:doctor:json:run && npm run smoke:channels:doctor:json:run && npm run smoke:doctor:fix:run && npm run smoke:chat:run && npm run smoke:onboard:run && npm run smoke:telegram:setup:run && npm run smoke:zalo:setup:run","start":"node dist/cli/index.js","prepack":"npm run clean && npm run build","build:ui":"tsc -p web/tsconfig.json --noEmit && vite build --config web/vite.config.ts","smoke:ui":"npm run build && npm run smoke:ui:run","smoke:mcp":"npm run build && npm run smoke:mcp:run","pack:check":"npm run clean && npm run build && npm pack --dry-run","smoke:chat":"npm run build && npm run smoke:chat:run","smoke:zalo":"npm run build && npm run smoke:zalo:run","smoke:tools":"npm run build && npm run smoke:tools:run","smoke:doctor":"npm run build && npm run smoke:doctor:run","smoke:status":"npm run build && npm run smoke:status:run","smoke:ui:all":"npm run build && npm run smoke:ui:run && npm run smoke:ui:browser:run","smoke:ui:run":"node scripts/smoke-ui.mjs","smoke:mcp:run":"node scripts/smoke-mcp.mjs","smoke:onboard":"npm run build && npm run smoke:onboard:run","eval:character":"npm run build && node --test dist/character/prompt-generator.test.js dist/character/character-eval-cases.test.js","prepublishOnly":"npm test","smoke:chat:run":"node scripts/smoke-cli-temp-runtime.mjs chat","smoke:telegram":"npm run build && npm run smoke:telegram:run","smoke:zalo:run":"node scripts/smoke-zalo-disabled.mjs","smoke:installer":"npm run build && node scripts/smoke-installer.mjs","smoke:tools:run":"node dist/cli/index.js tools logs --lines 5 | grep -q 'action_permission_decision' && node dist/cli/index.js tools memories --limit 5 >/dev/null && node dist/cli/index.js tools git status >/dev/null","smoke:zalo:real":"npm run build && node scripts/smoke-zalo-real.mjs","smoke:doctor:fix":"npm run build && npm run smoke:doctor:fix:run","smoke:doctor:run":"node scripts/smoke-cli-temp-runtime.mjs doctor","smoke:status:run":"node scripts/smoke-cli-temp-runtime.mjs status","smoke:ui:browser":"npm run build && npm run smoke:ui:browser:run","smoke:zalo:setup":"npm run build && npm run smoke:zalo:setup:run","smoke:doctor:json":"npm run build && npm run smoke:doctor:json:run","smoke:onboard:run":"tmpdir=$(mktemp -d) && cd $tmpdir && printf 'Bestie\\nBoss\\nask\\nopenai-compatible\\nhttp://127.0.0.1:9/v1\\ntest-model\\ntest-key\\n' | HOME=$tmpdir node $INIT_CWD/dist/cli/index.js onboard --skip-provider-test; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:run":"tmpdir=$(mktemp -d) && cd $tmpdir && HOME=$tmpdir node $INIT_CWD/dist/cli/index.js channels telegram 2>&1 | grep -q 'Telegram is not enabled'; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:real":"npm run build && node scripts/smoke-telegram-real.mjs","eval:character:cases":"npm run build && node --test dist/character/character-eval-cases.test.js","smoke:doctor:fix:run":"node scripts/smoke-doctor-fix.mjs","smoke:telegram:setup":"npm run build && npm run smoke:telegram:setup:run","smoke:ui:browser:run":"node scripts/smoke-ui-browser.mjs","smoke:zalo:setup:run":"node scripts/smoke-zalo-setup.mjs","smoke:doctor:json:run":"node scripts/smoke-cli-temp-runtime.mjs doctor-json","smoke:doctor:exit-code":"npm run build && node scripts/smoke-doctor-exit-code.mjs","smoke:telegram:setup:run":"node scripts/smoke-telegram-setup.mjs","smoke:channels:doctor:json":"npm run build && npm run smoke:channels:doctor:json:run","smoke:channels:doctor:json:run":"node scripts/smoke-channels-doctor-json.mjs"},"_npmUser":{"name":"andynguyenn","email":"j22487069@icloud.com"},"_npmVersion":"11.17.0","description":"Vietnamese-first bestie agent CLI.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"clsx":"^2.1.1","react":"^19.2.8","three":"^0.185.1","grammy":"^1.44.0","mammoth":"^1.12.0","commander":"^14.0.3","cytoscape":"^3.34.0","iso-639-1":"^3.1.6","pdf-parse":"^1.1.1","react-dom":"^19.2.8","lucide-react":"^1.28.0","@google/genai":"^2.12.0","3d-force-graph":"^1.80.0","better-sqlite3":"^12.11.1","tailwind-merge":"^3.6.0","@grammyjs/types":"^3.28.0","three-spritetext":"^1.10.0","@inquirer/prompts":"^8.5.2","@radix-ui/react-slot":"^1.3.3","class-variance-authority":"^0.7.1","@elevenlabs/elevenlabs-js":"^2.57.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.2","vite":"^8.2.0","postcss":"^8.5.25","playwright":"^1.61.1","typescript":"^5.5.4","@types/node":"^20.14.15","tailwindcss":"^3.4.17","@types/react":"^19.2.18","@types/three":"^0.185.3","autoprefixer":"^10.5.4","@types/react-dom":"^19.2.4","@vitejs/plugin-react":"^6.0.5","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/bestie-agent_0.1.34_1786029593976_0.15016000336273394","host":"s3://npm-registry-packages-npm-production"}},"0.1.35":{"name":"bestie-agent","version":"0.1.35","_id":"bestie-agent@0.1.35","maintainers":[{"name":"andynguyenn","email":"j22487069@icloud.com"}],"bin":{"bestie":"dist/cli/index.js"},"dist":{"shasum":"bba55f7fec469c33b0798dbd030e8cc8c63684b7","tarball":"https://registry.npmjs.org/bestie-agent/-/bestie-agent-0.1.35.tgz","fileCount":163,"integrity":"sha512-owS0FufS0eyvJ8c4COyqg4QB0tQ/YosO6aBjzbcJZPfUN8K/UH8Vo0I+LSqeEucwbRzY5zX5SA1ViS9diuYYLA==","signatures":[{"sig":"MEUCIQDAr71QftH1FriQoeSNuiI0guV16h7PTexB78fjikvAFgIgaVX4TOcgbiAlHXJVYyua0D0zactEQekg1Nzo+44fDyg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5084107},"type":"module","engines":{"node":">=24"},"gitHead":"d4885193a24bcbd70245908e08d7d9aaafccd86c","scripts":{"dev":"tsx src/cli/index.ts","test":"npm run build && node --test dist/**/*.test.js","build":"tsc -p tsconfig.json && npm run build:ui && chmod 755 dist/cli/index.js","clean":"rm -rf dist","smoke":"npm run build && npm run smoke:status:run && npm run smoke:doctor:run && npm run smoke:doctor:json:run && npm run smoke:channels:doctor:json:run && npm run smoke:doctor:fix:run && npm run smoke:chat:run && npm run smoke:onboard:run && npm run smoke:telegram:setup:run && npm run smoke:zalo:setup:run","start":"node dist/cli/index.js","prepack":"npm run clean && npm run build","build:ui":"tsc -p web/tsconfig.json --noEmit && vite build --config web/vite.config.ts","smoke:ui":"npm run build && npm run smoke:ui:run","smoke:mcp":"npm run build && npm run smoke:mcp:run","pack:check":"npm run clean && npm run build && npm pack --dry-run","smoke:chat":"npm run build && npm run smoke:chat:run","smoke:zalo":"npm run build && npm run smoke:zalo:run","smoke:tools":"npm run build && npm run smoke:tools:run","smoke:doctor":"npm run build && npm run smoke:doctor:run","smoke:status":"npm run build && npm run smoke:status:run","smoke:ui:all":"npm run build && npm run smoke:ui:run && npm run smoke:ui:browser:run","smoke:ui:run":"node scripts/smoke-ui.mjs","smoke:mcp:run":"node scripts/smoke-mcp.mjs","smoke:onboard":"npm run build && npm run smoke:onboard:run","eval:character":"npm run build && node --test dist/character/prompt-generator.test.js dist/character/character-eval-cases.test.js","prepublishOnly":"npm test","smoke:chat:run":"node scripts/smoke-cli-temp-runtime.mjs chat","smoke:telegram":"npm run build && npm run smoke:telegram:run","smoke:zalo:run":"node scripts/smoke-zalo-disabled.mjs","smoke:installer":"npm run build && node scripts/smoke-installer.mjs","smoke:tools:run":"node dist/cli/index.js tools logs --lines 5 | grep -q 'action_permission_decision' && node dist/cli/index.js tools memories --limit 5 >/dev/null && node dist/cli/index.js tools git status >/dev/null","smoke:zalo:real":"npm run build && node scripts/smoke-zalo-real.mjs","smoke:doctor:fix":"npm run build && npm run smoke:doctor:fix:run","smoke:doctor:run":"node scripts/smoke-cli-temp-runtime.mjs doctor","smoke:status:run":"node scripts/smoke-cli-temp-runtime.mjs status","smoke:ui:browser":"npm run build && npm run smoke:ui:browser:run","smoke:zalo:setup":"npm run build && npm run smoke:zalo:setup:run","smoke:doctor:json":"npm run build && npm run smoke:doctor:json:run","smoke:onboard:run":"tmpdir=$(mktemp -d) && cd $tmpdir && printf 'Bestie\\nBoss\\nask\\nopenai-compatible\\nhttp://127.0.0.1:9/v1\\ntest-model\\ntest-key\\n' | HOME=$tmpdir node $INIT_CWD/dist/cli/index.js onboard --skip-provider-test; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:run":"tmpdir=$(mktemp -d) && cd $tmpdir && HOME=$tmpdir node $INIT_CWD/dist/cli/index.js channels telegram 2>&1 | grep -q 'Telegram is not enabled'; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:real":"npm run build && node scripts/smoke-telegram-real.mjs","eval:character:cases":"npm run build && node --test dist/character/character-eval-cases.test.js","smoke:doctor:fix:run":"node scripts/smoke-doctor-fix.mjs","smoke:telegram:setup":"npm run build && npm run smoke:telegram:setup:run","smoke:ui:browser:run":"node scripts/smoke-ui-browser.mjs","smoke:zalo:setup:run":"node scripts/smoke-zalo-setup.mjs","smoke:doctor:json:run":"node scripts/smoke-cli-temp-runtime.mjs doctor-json","smoke:doctor:exit-code":"npm run build && node scripts/smoke-doctor-exit-code.mjs","smoke:telegram:setup:run":"node scripts/smoke-telegram-setup.mjs","smoke:channels:doctor:json":"npm run build && npm run smoke:channels:doctor:json:run","smoke:channels:doctor:json:run":"node scripts/smoke-channels-doctor-json.mjs"},"_npmUser":{"name":"andynguyenn","email":"j22487069@icloud.com"},"_npmVersion":"11.17.0","description":"Vietnamese-first bestie agent CLI.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"clsx":"^2.1.1","react":"^19.2.8","three":"^0.185.1","grammy":"^1.44.0","mammoth":"^1.12.0","commander":"^14.0.3","cytoscape":"^3.34.0","iso-639-1":"^3.1.6","pdf-parse":"^1.1.1","react-dom":"^19.2.8","lucide-react":"^1.28.0","@google/genai":"^2.12.0","3d-force-graph":"^1.80.0","better-sqlite3":"^12.11.1","tailwind-merge":"^3.6.0","@grammyjs/types":"^3.28.0","three-spritetext":"^1.10.0","@inquirer/prompts":"^8.5.2","@radix-ui/react-slot":"^1.3.3","class-variance-authority":"^0.7.1","@elevenlabs/elevenlabs-js":"^2.57.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.2","vite":"^8.2.0","postcss":"^8.5.25","playwright":"^1.61.1","typescript":"^5.5.4","@types/node":"^20.14.15","tailwindcss":"^3.4.17","@types/react":"^19.2.18","@types/three":"^0.185.3","autoprefixer":"^10.5.4","@types/react-dom":"^19.2.4","@vitejs/plugin-react":"^6.0.5","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/bestie-agent_0.1.35_1786113459734_0.9188507933715078","host":"s3://npm-registry-packages-npm-production"}},"0.1.36":{"name":"bestie-agent","version":"0.1.36","_id":"bestie-agent@0.1.36","maintainers":[{"name":"andynguyenn","email":"j22487069@icloud.com"}],"bin":{"bestie":"dist/cli/index.js"},"dist":{"shasum":"ed151bc0e57529bdf8ecf9fdc3c97b443bd22056","tarball":"https://registry.npmjs.org/bestie-agent/-/bestie-agent-0.1.36.tgz","fileCount":163,"integrity":"sha512-R7BKAKgFuYE5/ANgZJR6xSy0ihv18VOZVqn88HnHCB1P3OHbaP3QLApWE7nrkimX5NFwWeNAVVyUAC2naCNZgA==","signatures":[{"sig":"MEQCIFyuGvyhVbvgMmHoIkNz4fQJ9gpyvyj7aQ+qp2yTl1JdAiAZTsP7Nw3QEwUBX0vsC7HEouF+uXGJqEMQLpIil/eNkw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5084282},"type":"module","engines":{"node":">=24"},"gitHead":"01b2292ff9197e22cc3db086945c5283858e9995","scripts":{"dev":"tsx src/cli/index.ts","test":"npm run build && node --test dist/**/*.test.js","build":"tsc -p tsconfig.json && npm run build:ui && chmod 755 dist/cli/index.js","clean":"rm -rf dist","smoke":"npm run build && npm run smoke:status:run && npm run smoke:doctor:run && npm run smoke:doctor:json:run && npm run smoke:channels:doctor:json:run && npm run smoke:doctor:fix:run && npm run smoke:chat:run && npm run smoke:onboard:run && npm run smoke:telegram:setup:run && npm run smoke:zalo:setup:run","start":"node dist/cli/index.js","prepack":"npm run clean && npm run build","build:ui":"tsc -p web/tsconfig.json --noEmit && vite build --config web/vite.config.ts","smoke:ui":"npm run build && npm run smoke:ui:run","smoke:mcp":"npm run build && npm run smoke:mcp:run","pack:check":"npm run clean && npm run build && npm pack --dry-run","smoke:chat":"npm run build && npm run smoke:chat:run","smoke:zalo":"npm run build && npm run smoke:zalo:run","smoke:tools":"npm run build && npm run smoke:tools:run","smoke:doctor":"npm run build && npm run smoke:doctor:run","smoke:status":"npm run build && npm run smoke:status:run","smoke:ui:all":"npm run build && npm run smoke:ui:run && npm run smoke:ui:browser:run","smoke:ui:run":"node scripts/smoke-ui.mjs","smoke:mcp:run":"node scripts/smoke-mcp.mjs","smoke:onboard":"npm run build && npm run smoke:onboard:run","eval:character":"npm run build && node --test dist/character/prompt-generator.test.js dist/character/character-eval-cases.test.js","prepublishOnly":"npm test","smoke:chat:run":"node scripts/smoke-cli-temp-runtime.mjs chat","smoke:telegram":"npm run build && npm run smoke:telegram:run","smoke:zalo:run":"node scripts/smoke-zalo-disabled.mjs","smoke:installer":"npm run build && node scripts/smoke-installer.mjs","smoke:tools:run":"node dist/cli/index.js tools logs --lines 5 | grep -q 'action_permission_decision' && node dist/cli/index.js tools memories --limit 5 >/dev/null && node dist/cli/index.js tools git status >/dev/null","smoke:zalo:real":"npm run build && node scripts/smoke-zalo-real.mjs","smoke:doctor:fix":"npm run build && npm run smoke:doctor:fix:run","smoke:doctor:run":"node scripts/smoke-cli-temp-runtime.mjs doctor","smoke:status:run":"node scripts/smoke-cli-temp-runtime.mjs status","smoke:ui:browser":"npm run build && npm run smoke:ui:browser:run","smoke:zalo:setup":"npm run build && npm run smoke:zalo:setup:run","smoke:doctor:json":"npm run build && npm run smoke:doctor:json:run","smoke:onboard:run":"tmpdir=$(mktemp -d) && cd $tmpdir && printf 'Bestie\\nBoss\\nask\\nopenai-compatible\\nhttp://127.0.0.1:9/v1\\ntest-model\\ntest-key\\n' | HOME=$tmpdir node $INIT_CWD/dist/cli/index.js onboard --skip-provider-test; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:run":"tmpdir=$(mktemp -d) && cd $tmpdir && HOME=$tmpdir node $INIT_CWD/dist/cli/index.js channels telegram 2>&1 | grep -q 'Telegram is not enabled'; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:real":"npm run build && node scripts/smoke-telegram-real.mjs","eval:character:cases":"npm run build && node --test dist/character/character-eval-cases.test.js","smoke:doctor:fix:run":"node scripts/smoke-doctor-fix.mjs","smoke:telegram:setup":"npm run build && npm run smoke:telegram:setup:run","smoke:ui:browser:run":"node scripts/smoke-ui-browser.mjs","smoke:zalo:setup:run":"node scripts/smoke-zalo-setup.mjs","smoke:doctor:json:run":"node scripts/smoke-cli-temp-runtime.mjs doctor-json","smoke:doctor:exit-code":"npm run build && node scripts/smoke-doctor-exit-code.mjs","smoke:telegram:setup:run":"node scripts/smoke-telegram-setup.mjs","smoke:channels:doctor:json":"npm run build && npm run smoke:channels:doctor:json:run","smoke:channels:doctor:json:run":"node scripts/smoke-channels-doctor-json.mjs"},"_npmUser":{"name":"andynguyenn","email":"j22487069@icloud.com"},"_npmVersion":"11.17.0","description":"Vietnamese-first bestie agent CLI.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"clsx":"^2.1.1","react":"^19.2.8","three":"^0.185.1","grammy":"^1.44.0","mammoth":"^1.12.0","commander":"^14.0.3","cytoscape":"^3.34.0","iso-639-1":"^3.1.6","pdf-parse":"^1.1.1","react-dom":"^19.2.8","lucide-react":"^1.28.0","@google/genai":"^2.12.0","3d-force-graph":"^1.80.0","better-sqlite3":"^12.11.1","tailwind-merge":"^3.6.0","@grammyjs/types":"^3.28.0","three-spritetext":"^1.10.0","@inquirer/prompts":"^8.5.2","@radix-ui/react-slot":"^1.3.3","class-variance-authority":"^0.7.1","@elevenlabs/elevenlabs-js":"^2.57.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.2","vite":"^8.2.0","postcss":"^8.5.25","playwright":"^1.61.1","typescript":"^5.5.4","@types/node":"^20.14.15","tailwindcss":"^3.4.17","@types/react":"^19.2.18","@types/three":"^0.185.3","autoprefixer":"^10.5.4","@types/react-dom":"^19.2.4","@vitejs/plugin-react":"^6.0.5","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/bestie-agent_0.1.36_1786115590729_0.13882718151683293","host":"s3://npm-registry-packages-npm-production"}},"0.1.37":{"name":"bestie-agent","version":"0.1.37","_id":"bestie-agent@0.1.37","maintainers":[{"name":"andynguyenn","email":"j22487069@icloud.com"}],"bin":{"bestie":"dist/cli/index.js"},"dist":{"shasum":"7b6d5abd3bda9d965f7a6dba5acf6cd3fa4ed745","tarball":"https://registry.npmjs.org/bestie-agent/-/bestie-agent-0.1.37.tgz","fileCount":163,"integrity":"sha512-6S7diSUowdkKholFLWIP2zKbRmoiVnrerY10PudFh/EqQw2bcdq8cmXaPw6ou2BfmLfyETU429+zUqyTiOcgPw==","signatures":[{"sig":"MEQCIEOgIWaughC6cRAQB8/N2LpNuQ6YvZwlXi3rGAx8f+xPAiAl+k85cVtWdykef9LVqnku4DLXWKOnsNG9d+iLliy6bw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5085829},"type":"module","engines":{"node":">=24"},"gitHead":"b90d2de7609b29e25c572f156b47553ede37e70d","scripts":{"dev":"tsx src/cli/index.ts","test":"npm run build && node --test dist/**/*.test.js","build":"tsc -p tsconfig.json && npm run build:ui && chmod 755 dist/cli/index.js","clean":"rm -rf dist","smoke":"npm run build && npm run smoke:status:run && npm run smoke:doctor:run && npm run smoke:doctor:json:run && npm run smoke:channels:doctor:json:run && npm run smoke:doctor:fix:run && npm run smoke:chat:run && npm run smoke:onboard:run && npm run smoke:telegram:setup:run && npm run smoke:zalo:setup:run","start":"node dist/cli/index.js","prepack":"npm run clean && npm run build","build:ui":"tsc -p web/tsconfig.json --noEmit && vite build --config web/vite.config.ts","smoke:ui":"npm run build && npm run smoke:ui:run","smoke:mcp":"npm run build && npm run smoke:mcp:run","pack:check":"npm run clean && npm run build && npm pack --dry-run","smoke:chat":"npm run build && npm run smoke:chat:run","smoke:zalo":"npm run build && npm run smoke:zalo:run","smoke:tools":"npm run build && npm run smoke:tools:run","smoke:doctor":"npm run build && npm run smoke:doctor:run","smoke:status":"npm run build && npm run smoke:status:run","smoke:ui:all":"npm run build && npm run smoke:ui:run && npm run smoke:ui:browser:run","smoke:ui:run":"node scripts/smoke-ui.mjs","smoke:mcp:run":"node scripts/smoke-mcp.mjs","smoke:onboard":"npm run build && npm run smoke:onboard:run","eval:character":"npm run build && node --test dist/character/prompt-generator.test.js dist/character/character-eval-cases.test.js","prepublishOnly":"npm test","smoke:chat:run":"node scripts/smoke-cli-temp-runtime.mjs chat","smoke:telegram":"npm run build && npm run smoke:telegram:run","smoke:zalo:run":"node scripts/smoke-zalo-disabled.mjs","smoke:installer":"npm run build && node scripts/smoke-installer.mjs","smoke:tools:run":"node dist/cli/index.js tools logs --lines 5 | grep -q 'action_permission_decision' && node dist/cli/index.js tools memories --limit 5 >/dev/null && node dist/cli/index.js tools git status >/dev/null","smoke:zalo:real":"npm run build && node scripts/smoke-zalo-real.mjs","smoke:doctor:fix":"npm run build && npm run smoke:doctor:fix:run","smoke:doctor:run":"node scripts/smoke-cli-temp-runtime.mjs doctor","smoke:status:run":"node scripts/smoke-cli-temp-runtime.mjs status","smoke:ui:browser":"npm run build && npm run smoke:ui:browser:run","smoke:zalo:setup":"npm run build && npm run smoke:zalo:setup:run","smoke:doctor:json":"npm run build && npm run smoke:doctor:json:run","smoke:onboard:run":"tmpdir=$(mktemp -d) && cd $tmpdir && printf 'Bestie\\nBoss\\nask\\nopenai-compatible\\nhttp://127.0.0.1:9/v1\\ntest-model\\ntest-key\\n' | HOME=$tmpdir node $INIT_CWD/dist/cli/index.js onboard --skip-provider-test; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:run":"tmpdir=$(mktemp -d) && cd $tmpdir && HOME=$tmpdir node $INIT_CWD/dist/cli/index.js channels telegram 2>&1 | grep -q 'Telegram is not enabled'; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:real":"npm run build && node scripts/smoke-telegram-real.mjs","eval:character:cases":"npm run build && node --test dist/character/character-eval-cases.test.js","smoke:doctor:fix:run":"node scripts/smoke-doctor-fix.mjs","smoke:telegram:setup":"npm run build && npm run smoke:telegram:setup:run","smoke:ui:browser:run":"node scripts/smoke-ui-browser.mjs","smoke:zalo:setup:run":"node scripts/smoke-zalo-setup.mjs","smoke:doctor:json:run":"node scripts/smoke-cli-temp-runtime.mjs doctor-json","smoke:doctor:exit-code":"npm run build && node scripts/smoke-doctor-exit-code.mjs","smoke:telegram:setup:run":"node scripts/smoke-telegram-setup.mjs","smoke:channels:doctor:json":"npm run build && npm run smoke:channels:doctor:json:run","smoke:channels:doctor:json:run":"node scripts/smoke-channels-doctor-json.mjs"},"_npmUser":{"name":"andynguyenn","email":"j22487069@icloud.com"},"_npmVersion":"11.17.0","description":"Vietnamese-first bestie agent CLI.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"clsx":"^2.1.1","react":"^19.2.8","three":"^0.185.1","grammy":"^1.44.0","mammoth":"^1.12.0","commander":"^14.0.3","cytoscape":"^3.34.0","iso-639-1":"^3.1.6","pdf-parse":"^1.1.1","react-dom":"^19.2.8","lucide-react":"^1.28.0","@google/genai":"^2.12.0","3d-force-graph":"^1.80.0","better-sqlite3":"^12.11.1","tailwind-merge":"^3.6.0","@grammyjs/types":"^3.28.0","three-spritetext":"^1.10.0","@inquirer/prompts":"^8.5.2","@radix-ui/react-slot":"^1.3.3","class-variance-authority":"^0.7.1","@elevenlabs/elevenlabs-js":"^2.57.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.2","vite":"^8.2.0","postcss":"^8.5.25","playwright":"^1.61.1","typescript":"^5.5.4","@types/node":"^20.14.15","tailwindcss":"^3.4.17","@types/react":"^19.2.18","@types/three":"^0.185.3","autoprefixer":"^10.5.4","@types/react-dom":"^19.2.4","@vitejs/plugin-react":"^6.0.5","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/bestie-agent_0.1.37_1786166842249_0.6732132863806126","host":"s3://npm-registry-packages-npm-production"}},"0.1.39":{"name":"bestie-agent","version":"0.1.39","_id":"bestie-agent@0.1.39","maintainers":[{"name":"andynguyenn","email":"j22487069@icloud.com"}],"bin":{"bestie":"dist/cli/index.js"},"dist":{"shasum":"d778ccf050d78e09e3b059a454e5c3acf4a12c92","tarball":"https://registry.npmjs.org/bestie-agent/-/bestie-agent-0.1.39.tgz","fileCount":167,"integrity":"sha512-zdM66qQyWI8wWfGsTH27yoifL5IJcqgnyiTdxVLMJwksgaDSacZL8zjjn2LTja4TL9lpO0yTNbMBtpiYm52RNQ==","signatures":[{"sig":"MEUCIGLEqEuGI+cUMFVugWKhcV2uI0dvbWaMleyDP6dexxgCAiEA/KHKmOOcLbkOkwGp7rG/g2kglnb97vunBW9EGpHt5uk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5115590},"type":"module","engines":{"node":">=24"},"gitHead":"7fbf4dc75aa938791917301c40a259e461cbdc79","scripts":{"dev":"tsx src/cli/index.ts","test":"npm run build && node --test dist/**/*.test.js","build":"tsc -p tsconfig.json && npm run build:ui && chmod 755 dist/cli/index.js","clean":"rm -rf dist","smoke":"npm run build && npm run smoke:status:run && npm run smoke:doctor:run && npm run smoke:doctor:json:run && npm run smoke:channels:doctor:json:run && npm run smoke:doctor:fix:run && npm run smoke:chat:run && npm run smoke:onboard:run && npm run smoke:telegram:setup:run && npm run smoke:zalo:setup:run","start":"node dist/cli/index.js","prepack":"npm run clean && npm run build","build:ui":"tsc -p web/tsconfig.json --noEmit && vite build --config web/vite.config.ts","smoke:ui":"npm run build && npm run smoke:ui:run","smoke:mcp":"npm run build && npm run smoke:mcp:run","pack:check":"npm run clean && npm run build && npm pack --dry-run","smoke:chat":"npm run build && npm run smoke:chat:run","smoke:zalo":"npm run build && npm run smoke:zalo:run","smoke:tools":"npm run build && npm run smoke:tools:run","smoke:doctor":"npm run build && npm run smoke:doctor:run","smoke:status":"npm run build && npm run smoke:status:run","smoke:ui:all":"npm run build && npm run smoke:ui:run && npm run smoke:ui:browser:run && node scripts/smoke-ui-onboarding-browser.mjs","smoke:ui:run":"node scripts/smoke-ui.mjs","smoke:mcp:run":"node scripts/smoke-mcp.mjs","smoke:onboard":"npm run build && npm run smoke:onboard:run","eval:character":"npm run build && node --test dist/character/prompt-generator.test.js dist/character/character-eval-cases.test.js","prepublishOnly":"npm test","smoke:chat:run":"node scripts/smoke-cli-temp-runtime.mjs chat","smoke:telegram":"npm run build && npm run smoke:telegram:run","smoke:zalo:run":"node scripts/smoke-zalo-disabled.mjs","smoke:installer":"npm run build && node scripts/smoke-installer.mjs","smoke:tools:run":"node dist/cli/index.js tools logs --lines 5 | grep -q 'action_permission_decision' && node dist/cli/index.js tools memories --limit 5 >/dev/null && node dist/cli/index.js tools git status >/dev/null","smoke:zalo:real":"npm run build && node scripts/smoke-zalo-real.mjs","smoke:doctor:fix":"npm run build && npm run smoke:doctor:fix:run","smoke:doctor:run":"node scripts/smoke-cli-temp-runtime.mjs doctor","smoke:status:run":"node scripts/smoke-cli-temp-runtime.mjs status","smoke:ui:browser":"npm run build && npm run smoke:ui:browser:run","smoke:zalo:setup":"npm run build && npm run smoke:zalo:setup:run","smoke:doctor:json":"npm run build && npm run smoke:doctor:json:run","smoke:onboard:run":"tmpdir=$(mktemp -d) && cd $tmpdir && printf 'Bestie\\nBoss\\nask\\nopenai-compatible\\nhttp://127.0.0.1:9/v1\\ntest-model\\ntest-key\\n' | HOME=$tmpdir node $INIT_CWD/dist/cli/index.js onboard --skip-provider-test; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:run":"tmpdir=$(mktemp -d) && cd $tmpdir && HOME=$tmpdir node $INIT_CWD/dist/cli/index.js channels telegram 2>&1 | grep -q 'Telegram is not enabled'; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:real":"npm run build && node scripts/smoke-telegram-real.mjs","eval:character:cases":"npm run build && node --test dist/character/character-eval-cases.test.js","smoke:doctor:fix:run":"node scripts/smoke-doctor-fix.mjs","smoke:telegram:setup":"npm run build && npm run smoke:telegram:setup:run","smoke:ui:browser:run":"node scripts/smoke-ui-browser.mjs","smoke:zalo:setup:run":"node scripts/smoke-zalo-setup.mjs","smoke:doctor:json:run":"node scripts/smoke-cli-temp-runtime.mjs doctor-json","smoke:doctor:exit-code":"npm run build && node scripts/smoke-doctor-exit-code.mjs","smoke:telegram:setup:run":"node scripts/smoke-telegram-setup.mjs","smoke:channels:doctor:json":"npm run build && npm run smoke:channels:doctor:json:run","smoke:ui:onboarding:browser":"npm run build && node scripts/smoke-ui-onboarding-browser.mjs","smoke:channels:doctor:json:run":"node scripts/smoke-channels-doctor-json.mjs"},"_npmUser":{"name":"andynguyenn","email":"j22487069@icloud.com"},"_npmVersion":"11.17.0","description":"Vietnamese-first bestie agent CLI.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"clsx":"^2.1.1","react":"^19.2.8","three":"^0.185.1","grammy":"^1.44.0","mammoth":"^1.12.0","commander":"^14.0.3","cytoscape":"^3.34.0","iso-639-1":"^3.1.6","pdf-parse":"^1.1.1","react-dom":"^19.2.8","lucide-react":"^1.28.0","@google/genai":"^2.12.0","3d-force-graph":"^1.80.0","better-sqlite3":"^12.11.1","tailwind-merge":"^3.6.0","@grammyjs/types":"^3.28.0","three-spritetext":"^1.10.0","@inquirer/prompts":"^8.5.2","@radix-ui/react-slot":"^1.3.3","class-variance-authority":"^0.7.1","@elevenlabs/elevenlabs-js":"^2.57.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.2","vite":"^8.2.0","postcss":"^8.5.25","playwright":"^1.61.1","typescript":"^5.5.4","@types/node":"^20.14.15","tailwindcss":"^3.4.17","@types/react":"^19.2.18","@types/three":"^0.185.3","autoprefixer":"^10.5.4","@types/react-dom":"^19.2.4","@vitejs/plugin-react":"^6.0.5","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/bestie-agent_0.1.39_1786259459520_0.5987837380317789","host":"s3://npm-registry-packages-npm-production"}},"0.1.40":{"name":"bestie-agent","version":"0.1.40","_id":"bestie-agent@0.1.40","maintainers":[{"name":"andynguyenn","email":"j22487069@icloud.com"}],"bin":{"bestie":"dist/cli/index.js"},"dist":{"shasum":"01aad88bc5e4cdf5a48560938a78021d8415e497","tarball":"https://registry.npmjs.org/bestie-agent/-/bestie-agent-0.1.40.tgz","fileCount":177,"integrity":"sha512-oq2I2NotdhwkO4FOjP32VU59bczXEGpIq4gG33Y2t1dyKlQRrzkHSfGNqoPxs3Xiwt+ko1iFseYNREA6XMcwcA==","signatures":[{"sig":"MEQCIBcVmuyrOp7ofCinmf88y1DSSBMt4MvM+a0d4ExNRQ7JAiBwtZ5ZhXTTuBLrgQ0Dqkur6OLSpPOR7WdZKHtKuI1n3A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5175369},"type":"module","engines":{"node":">=24"},"gitHead":"754b005c674fbcfbd66d133263c7a2f7cc9fe2aa","scripts":{"dev":"tsx src/cli/index.ts","test":"npm run build && node --test dist/**/*.test.js","build":"tsc -p tsconfig.json && npm run build:ui && chmod 755 dist/cli/index.js","clean":"rm -rf dist","smoke":"npm run build && npm run smoke:status:run && npm run smoke:doctor:run && npm run smoke:doctor:json:run && npm run smoke:channels:doctor:json:run && npm run smoke:doctor:fix:run && npm run smoke:chat:run && npm run smoke:onboard:run && npm run smoke:telegram:setup:run && npm run smoke:zalo:setup:run","start":"node dist/cli/index.js","prepack":"npm run clean && npm run build","build:ui":"tsc -p web/tsconfig.json --noEmit && vite build --config web/vite.config.ts","smoke:ui":"npm run build && npm run smoke:ui:run","smoke:mcp":"npm run build && npm run smoke:mcp:run","pack:check":"npm run clean && npm run build && npm pack --dry-run","smoke:chat":"npm run build && npm run smoke:chat:run","smoke:zalo":"npm run build && npm run smoke:zalo:run","smoke:tools":"npm run build && npm run smoke:tools:run","smoke:doctor":"npm run build && npm run smoke:doctor:run","smoke:status":"npm run build && npm run smoke:status:run","smoke:ui:all":"npm run build && npm run smoke:ui:run && npm run smoke:ui:browser:run && node scripts/smoke-ui-onboarding-browser.mjs","smoke:ui:run":"node scripts/smoke-ui.mjs","smoke:mcp:run":"node scripts/smoke-mcp.mjs","smoke:onboard":"npm run build && npm run smoke:onboard:run","eval:character":"npm run build && node --test dist/character/prompt-generator.test.js dist/character/character-eval-cases.test.js","prepublishOnly":"npm test","smoke:chat:run":"node scripts/smoke-cli-temp-runtime.mjs chat","smoke:telegram":"npm run build && npm run smoke:telegram:run","smoke:zalo:run":"node scripts/smoke-zalo-disabled.mjs","smoke:installer":"npm run build && node scripts/smoke-installer.mjs","smoke:tools:run":"node dist/cli/index.js tools logs --lines 5 | grep -q 'action_permission_decision' && node dist/cli/index.js tools memories --limit 5 >/dev/null && node dist/cli/index.js tools git status >/dev/null","smoke:zalo:real":"npm run build && node scripts/smoke-zalo-real.mjs","smoke:doctor:fix":"npm run build && npm run smoke:doctor:fix:run","smoke:doctor:run":"node scripts/smoke-cli-temp-runtime.mjs doctor","smoke:status:run":"node scripts/smoke-cli-temp-runtime.mjs status","smoke:ui:browser":"npm run build && npm run smoke:ui:browser:run","smoke:zalo:setup":"npm run build && npm run smoke:zalo:setup:run","smoke:doctor:json":"npm run build && npm run smoke:doctor:json:run","smoke:onboard:run":"tmpdir=$(mktemp -d) && cd $tmpdir && printf 'Bestie\\nBoss\\nask\\nopenai-compatible\\nhttp://127.0.0.1:9/v1\\ntest-model\\ntest-key\\n' | HOME=$tmpdir node $INIT_CWD/dist/cli/index.js onboard --skip-provider-test; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:run":"tmpdir=$(mktemp -d) && cd $tmpdir && HOME=$tmpdir node $INIT_CWD/dist/cli/index.js channels telegram 2>&1 | grep -q 'Telegram is not enabled'; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:real":"npm run build && node scripts/smoke-telegram-real.mjs","eval:character:cases":"npm run build && node --test dist/character/character-eval-cases.test.js","smoke:doctor:fix:run":"node scripts/smoke-doctor-fix.mjs","smoke:telegram:setup":"npm run build && npm run smoke:telegram:setup:run","smoke:ui:browser:run":"node scripts/smoke-ui-browser.mjs","smoke:zalo:setup:run":"node scripts/smoke-zalo-setup.mjs","smoke:doctor:json:run":"node scripts/smoke-cli-temp-runtime.mjs doctor-json","smoke:doctor:exit-code":"npm run build && node scripts/smoke-doctor-exit-code.mjs","smoke:telegram:setup:run":"node scripts/smoke-telegram-setup.mjs","smoke:channels:doctor:json":"npm run build && npm run smoke:channels:doctor:json:run","smoke:ui:onboarding:browser":"npm run build && node scripts/smoke-ui-onboarding-browser.mjs","smoke:channels:doctor:json:run":"node scripts/smoke-channels-doctor-json.mjs"},"_npmUser":{"name":"andynguyenn","email":"j22487069@icloud.com"},"_npmVersion":"11.17.0","description":"Vietnamese-first bestie agent CLI.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"clsx":"^2.1.1","react":"^19.2.8","three":"^0.185.1","grammy":"^1.44.0","mammoth":"^1.12.0","commander":"^14.0.3","cytoscape":"^3.34.0","iso-639-1":"^3.1.6","pdf-parse":"^1.1.1","react-dom":"^19.2.8","lucide-react":"^1.28.0","@google/genai":"^2.12.0","3d-force-graph":"^1.80.0","better-sqlite3":"^12.11.1","tailwind-merge":"^3.6.0","@grammyjs/types":"^3.28.0","three-spritetext":"^1.10.0","@inquirer/prompts":"^8.5.2","@radix-ui/react-slot":"^1.3.3","class-variance-authority":"^0.7.1","@elevenlabs/elevenlabs-js":"^2.57.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.2","vite":"^8.2.0","postcss":"^8.5.25","playwright":"^1.61.1","typescript":"^5.5.4","@types/node":"^20.14.15","tailwindcss":"^3.4.17","@types/react":"^19.2.18","@types/three":"^0.185.3","autoprefixer":"^10.5.4","@types/react-dom":"^19.2.4","@vitejs/plugin-react":"^6.0.5","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/bestie-agent_0.1.40_1786455574538_0.8250151610830678","host":"s3://npm-registry-packages-npm-production"}},"0.1.41":{"name":"bestie-agent","version":"0.1.41","_id":"bestie-agent@0.1.41","maintainers":[{"name":"andynguyenn","email":"j22487069@icloud.com"}],"bin":{"bestie":"dist/cli/index.js"},"dist":{"shasum":"d67f680f05f8ad81a5aae22ae65babc61095ea66","tarball":"https://registry.npmjs.org/bestie-agent/-/bestie-agent-0.1.41.tgz","fileCount":178,"integrity":"sha512-APAjiWbdaw0/5UdNZkvfAa7vGCkD4jbFD+sOMAoO0dZFsENjgbZUA73KMj7pKqyXW+Am4m6ZbjkhZlU/S65ZCg==","signatures":[{"sig":"MEUCIQCVjjlYBLxK7+GMRI8pUH/mUw05Sd+AMBYmmE61N82acwIgeIqs1ZF654hLH5gF1GYSsTuSmBwcBY0meOQamIJoOSI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5180541},"type":"module","engines":{"node":">=24"},"gitHead":"c9e01859f805d968dc3affc057bb22c22590e047","scripts":{"dev":"tsx src/cli/index.ts","test":"npm run build && node --test dist/**/*.test.js","build":"tsc -p tsconfig.json && npm run build:ui && chmod 755 dist/cli/index.js","clean":"rm -rf dist","smoke":"npm run build && npm run smoke:status:run && npm run smoke:doctor:run && npm run smoke:doctor:json:run && npm run smoke:channels:doctor:json:run && npm run smoke:doctor:fix:run && npm run smoke:chat:run && npm run smoke:onboard:run && npm run smoke:telegram:setup:run && npm run smoke:zalo:setup:run","start":"node dist/cli/index.js","prepack":"npm run clean && npm run build","build:ui":"tsc -p web/tsconfig.json --noEmit && vite build --config web/vite.config.ts","smoke:ui":"npm run build && npm run smoke:ui:run","smoke:mcp":"npm run build && npm run smoke:mcp:run","pack:check":"npm run clean && npm run build && npm pack --dry-run","smoke:chat":"npm run build && npm run smoke:chat:run","smoke:zalo":"npm run build && npm run smoke:zalo:run","smoke:tools":"npm run build && npm run smoke:tools:run","smoke:doctor":"npm run build && npm run smoke:doctor:run","smoke:status":"npm run build && npm run smoke:status:run","smoke:ui:all":"npm run build && npm run smoke:ui:run && npm run smoke:ui:browser:run && node scripts/smoke-ui-onboarding-browser.mjs","smoke:ui:run":"node scripts/smoke-ui.mjs","smoke:mcp:run":"node scripts/smoke-mcp.mjs","smoke:onboard":"npm run build && npm run smoke:onboard:run","eval:character":"npm run build && node --test dist/character/prompt-generator.test.js dist/character/character-eval-cases.test.js","prepublishOnly":"npm test","smoke:chat:run":"node scripts/smoke-cli-temp-runtime.mjs chat","smoke:telegram":"npm run build && npm run smoke:telegram:run","smoke:zalo:run":"node scripts/smoke-zalo-disabled.mjs","smoke:installer":"npm run build && node scripts/smoke-installer.mjs","smoke:tools:run":"node dist/cli/index.js tools logs --lines 5 | grep -q 'action_permission_decision' && node dist/cli/index.js tools memories --limit 5 >/dev/null && node dist/cli/index.js tools git status >/dev/null","smoke:zalo:real":"npm run build && node scripts/smoke-zalo-real.mjs","smoke:doctor:fix":"npm run build && npm run smoke:doctor:fix:run","smoke:doctor:run":"node scripts/smoke-cli-temp-runtime.mjs doctor","smoke:status:run":"node scripts/smoke-cli-temp-runtime.mjs status","smoke:ui:browser":"npm run build && npm run smoke:ui:browser:run","smoke:zalo:setup":"npm run build && npm run smoke:zalo:setup:run","smoke:doctor:json":"npm run build && npm run smoke:doctor:json:run","smoke:onboard:run":"tmpdir=$(mktemp -d) && cd $tmpdir && printf 'Bestie\\nBoss\\nask\\nopenai-compatible\\nhttp://127.0.0.1:9/v1\\ntest-model\\ntest-key\\n' | HOME=$tmpdir node $INIT_CWD/dist/cli/index.js onboard --skip-provider-test; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:run":"tmpdir=$(mktemp -d) && cd $tmpdir && HOME=$tmpdir node $INIT_CWD/dist/cli/index.js channels telegram 2>&1 | grep -q 'Telegram is not enabled'; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:real":"npm run build && node scripts/smoke-telegram-real.mjs","eval:character:cases":"npm run build && node --test dist/character/character-eval-cases.test.js","smoke:doctor:fix:run":"node scripts/smoke-doctor-fix.mjs","smoke:telegram:setup":"npm run build && npm run smoke:telegram:setup:run","smoke:ui:browser:run":"node scripts/smoke-ui-browser.mjs","smoke:zalo:setup:run":"node scripts/smoke-zalo-setup.mjs","smoke:doctor:json:run":"node scripts/smoke-cli-temp-runtime.mjs doctor-json","smoke:doctor:exit-code":"npm run build && node scripts/smoke-doctor-exit-code.mjs","smoke:telegram:setup:run":"node scripts/smoke-telegram-setup.mjs","smoke:channels:doctor:json":"npm run build && npm run smoke:channels:doctor:json:run","smoke:ui:onboarding:browser":"npm run build && node scripts/smoke-ui-onboarding-browser.mjs","smoke:channels:doctor:json:run":"node scripts/smoke-channels-doctor-json.mjs"},"_npmUser":{"name":"andynguyenn","email":"j22487069@icloud.com"},"_npmVersion":"11.17.0","description":"Vietnamese-first bestie agent CLI.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"clsx":"^2.1.1","react":"^19.2.8","three":"^0.185.1","grammy":"^1.44.0","mammoth":"^1.12.0","commander":"^14.0.3","cytoscape":"^3.34.0","iso-639-1":"^3.1.6","pdf-parse":"^1.1.1","react-dom":"^19.2.8","lucide-react":"^1.28.0","@google/genai":"^2.12.0","3d-force-graph":"^1.80.0","better-sqlite3":"^12.11.1","tailwind-merge":"^3.6.0","@grammyjs/types":"^3.28.0","three-spritetext":"^1.10.0","@inquirer/prompts":"^8.5.2","@radix-ui/react-slot":"^1.3.3","class-variance-authority":"^0.7.1","@elevenlabs/elevenlabs-js":"^2.57.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.2","vite":"^8.2.0","postcss":"^8.5.25","playwright":"^1.61.1","typescript":"^5.5.4","@types/node":"^20.14.15","tailwindcss":"^3.4.17","@types/react":"^19.2.18","@types/three":"^0.185.3","autoprefixer":"^10.5.4","@types/react-dom":"^19.2.4","@vitejs/plugin-react":"^6.0.5","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/bestie-agent_0.1.41_1786461035762_0.2235015127439548","host":"s3://npm-registry-packages-npm-production"}},"0.1.42":{"name":"bestie-agent","version":"0.1.42","_id":"bestie-agent@0.1.42","maintainers":[{"name":"andynguyenn","email":"j22487069@icloud.com"}],"bin":{"bestie":"dist/cli/index.js"},"dist":{"shasum":"6c1c04cb45a1cc9df99d1001bf1f75c66c577131","tarball":"https://registry.npmjs.org/bestie-agent/-/bestie-agent-0.1.42.tgz","fileCount":178,"integrity":"sha512-aBIlHUJFXXm1bP+i7ZYFoZv2lBBepiIOI26+uyLxDSNoiROXRmR5uYguQ/amuc1LQmaUqjnmgvbvSy9NScMVHg==","signatures":[{"sig":"MEQCIEcdF05rdA6Bx7/A4HqP9IQf83Xm9ZkT/Rso2W/3KpR7AiBjjdEkjBR0WjbRF2njDC8eMcsG6ie4Jfx6sjKWr/bPFQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5174469},"type":"module","engines":{"node":">=24"},"gitHead":"ae67754f070b06d6c21b4213919e0b83bec6ce55","scripts":{"dev":"tsx src/cli/index.ts","test":"npm run build && node --test dist/**/*.test.js","build":"tsc -p tsconfig.json && npm run build:ui && chmod 755 dist/cli/index.js","clean":"rm -rf dist","smoke":"npm run build && npm run smoke:status:run && npm run smoke:doctor:run && npm run smoke:doctor:json:run && npm run smoke:channels:doctor:json:run && npm run smoke:doctor:fix:run && npm run smoke:chat:run && npm run smoke:onboard:run && npm run smoke:telegram:setup:run && npm run smoke:zalo:setup:run","start":"node dist/cli/index.js","prepack":"npm run clean && npm run build","build:ui":"tsc -p web/tsconfig.json --noEmit && vite build --config web/vite.config.ts","smoke:ui":"npm run build && npm run smoke:ui:run","smoke:mcp":"npm run build && npm run smoke:mcp:run","pack:check":"npm run clean && npm run build && npm pack --dry-run","smoke:chat":"npm run build && npm run smoke:chat:run","smoke:zalo":"npm run build && npm run smoke:zalo:run","smoke:tools":"npm run build && npm run smoke:tools:run","smoke:doctor":"npm run build && npm run smoke:doctor:run","smoke:status":"npm run build && npm run smoke:status:run","smoke:ui:all":"npm run build && npm run smoke:ui:run && npm run smoke:ui:browser:run && node scripts/smoke-ui-onboarding-browser.mjs","smoke:ui:run":"node scripts/smoke-ui.mjs","smoke:mcp:run":"node scripts/smoke-mcp.mjs","smoke:onboard":"npm run build && npm run smoke:onboard:run","eval:character":"npm run build && node --test dist/character/prompt-generator.test.js dist/character/character-eval-cases.test.js","prepublishOnly":"npm test","smoke:chat:run":"node scripts/smoke-cli-temp-runtime.mjs chat","smoke:telegram":"npm run build && npm run smoke:telegram:run","smoke:zalo:run":"node scripts/smoke-zalo-disabled.mjs","smoke:installer":"npm run build && node scripts/smoke-installer.mjs","smoke:tools:run":"node dist/cli/index.js tools logs --lines 5 | grep -q 'action_permission_decision' && node dist/cli/index.js tools memories --limit 5 >/dev/null && node dist/cli/index.js tools git status >/dev/null","smoke:zalo:real":"npm run build && node scripts/smoke-zalo-real.mjs","smoke:doctor:fix":"npm run build && npm run smoke:doctor:fix:run","smoke:doctor:run":"node scripts/smoke-cli-temp-runtime.mjs doctor","smoke:status:run":"node scripts/smoke-cli-temp-runtime.mjs status","smoke:ui:browser":"npm run build && npm run smoke:ui:browser:run","smoke:zalo:setup":"npm run build && npm run smoke:zalo:setup:run","smoke:doctor:json":"npm run build && npm run smoke:doctor:json:run","smoke:onboard:run":"tmpdir=$(mktemp -d) && cd $tmpdir && printf 'Bestie\\nBoss\\nask\\nopenai-compatible\\nhttp://127.0.0.1:9/v1\\ntest-model\\ntest-key\\n' | HOME=$tmpdir node $INIT_CWD/dist/cli/index.js onboard --skip-provider-test; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:run":"tmpdir=$(mktemp -d) && cd $tmpdir && HOME=$tmpdir node $INIT_CWD/dist/cli/index.js channels telegram 2>&1 | grep -q 'Telegram is not enabled'; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:real":"npm run build && node scripts/smoke-telegram-real.mjs","eval:character:cases":"npm run build && node --test dist/character/character-eval-cases.test.js","smoke:doctor:fix:run":"node scripts/smoke-doctor-fix.mjs","smoke:telegram:setup":"npm run build && npm run smoke:telegram:setup:run","smoke:ui:browser:run":"node scripts/smoke-ui-browser.mjs","smoke:zalo:setup:run":"node scripts/smoke-zalo-setup.mjs","smoke:doctor:json:run":"node scripts/smoke-cli-temp-runtime.mjs doctor-json","smoke:doctor:exit-code":"npm run build && node scripts/smoke-doctor-exit-code.mjs","smoke:telegram:setup:run":"node scripts/smoke-telegram-setup.mjs","smoke:channels:doctor:json":"npm run build && npm run smoke:channels:doctor:json:run","smoke:ui:onboarding:browser":"npm run build && node scripts/smoke-ui-onboarding-browser.mjs","smoke:channels:doctor:json:run":"node scripts/smoke-channels-doctor-json.mjs"},"_npmUser":{"name":"andynguyenn","email":"j22487069@icloud.com"},"_npmVersion":"11.17.0","description":"Vietnamese-first bestie agent CLI.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"clsx":"^2.1.1","react":"^19.2.8","three":"^0.185.1","grammy":"^1.44.0","mammoth":"^1.12.0","commander":"^14.0.3","cytoscape":"^3.34.0","iso-639-1":"^3.1.6","pdf-parse":"^1.1.1","react-dom":"^19.2.8","lucide-react":"^1.28.0","@google/genai":"^2.12.0","3d-force-graph":"^1.80.0","better-sqlite3":"^12.11.1","tailwind-merge":"^3.6.0","@grammyjs/types":"^3.28.0","three-spritetext":"^1.10.0","@inquirer/prompts":"^8.5.2","@radix-ui/react-slot":"^1.3.3","class-variance-authority":"^0.7.1","@elevenlabs/elevenlabs-js":"^2.57.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.2","vite":"^8.2.0","postcss":"^8.5.25","playwright":"^1.61.1","typescript":"^5.5.4","@types/node":"^20.14.15","tailwindcss":"^3.4.17","@types/react":"^19.2.18","@types/three":"^0.185.3","autoprefixer":"^10.5.4","@types/react-dom":"^19.2.4","@vitejs/plugin-react":"^6.0.5","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/bestie-agent_0.1.42_1786466236920_0.5958536745311838","host":"s3://npm-registry-packages-npm-production"}},"0.1.43":{"name":"bestie-agent","version":"0.1.43","_id":"bestie-agent@0.1.43","maintainers":[{"name":"andynguyenn","email":"j22487069@icloud.com"}],"bin":{"bestie":"dist/cli/index.js"},"dist":{"shasum":"225220b8fdc358a475682968e3bbe5273fe20ffb","tarball":"https://registry.npmjs.org/bestie-agent/-/bestie-agent-0.1.43.tgz","fileCount":178,"integrity":"sha512-GYl62lSAcneSNNjCQDllfrUO5q2DtqAjZq1fkdOGaCMG4FfjJIAwxjW6ndo58v7pFPNkXnvH9iUd0irn2rY9Ag==","signatures":[{"sig":"MEUCIQCJSENwKkn3iUF1nFISeSf/wNU6jYOv9yGR31d6T0iZrwIgYejCMG0wf0IMBqNE3Bh5NQsY9MR6pa4cg8kqs0fbIWE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5175024},"type":"module","engines":{"node":">=24"},"gitHead":"f049d67b35ea5f2915e3186404e3e8814ea71102","scripts":{"dev":"tsx src/cli/index.ts","test":"npm run build && node --test dist/**/*.test.js","build":"tsc -p tsconfig.json && npm run build:ui && chmod 755 dist/cli/index.js","clean":"rm -rf dist","smoke":"npm run build && npm run smoke:status:run && npm run smoke:doctor:run && npm run smoke:doctor:json:run && npm run smoke:channels:doctor:json:run && npm run smoke:doctor:fix:run && npm run smoke:chat:run && npm run smoke:onboard:run && npm run smoke:telegram:setup:run && npm run smoke:zalo:setup:run","start":"node dist/cli/index.js","prepack":"npm run clean && npm run build","build:ui":"tsc -p web/tsconfig.json --noEmit && vite build --config web/vite.config.ts","smoke:ui":"npm run build && npm run smoke:ui:run","smoke:mcp":"npm run build && npm run smoke:mcp:run","pack:check":"npm run clean && npm run build && npm pack --dry-run","smoke:chat":"npm run build && npm run smoke:chat:run","smoke:zalo":"npm run build && npm run smoke:zalo:run","smoke:tools":"npm run build && npm run smoke:tools:run","smoke:doctor":"npm run build && npm run smoke:doctor:run","smoke:status":"npm run build && npm run smoke:status:run","smoke:ui:all":"npm run build && npm run smoke:ui:run && npm run smoke:ui:browser:run && node scripts/smoke-ui-onboarding-browser.mjs","smoke:ui:run":"node scripts/smoke-ui.mjs","smoke:mcp:run":"node scripts/smoke-mcp.mjs","smoke:onboard":"npm run build && npm run smoke:onboard:run","eval:character":"npm run build && node --test dist/character/prompt-generator.test.js dist/character/character-eval-cases.test.js","prepublishOnly":"npm test","smoke:chat:run":"node scripts/smoke-cli-temp-runtime.mjs chat","smoke:telegram":"npm run build && npm run smoke:telegram:run","smoke:zalo:run":"node scripts/smoke-zalo-disabled.mjs","smoke:installer":"npm run build && node scripts/smoke-installer.mjs","smoke:tools:run":"node dist/cli/index.js tools logs --lines 5 | grep -q 'action_permission_decision' && node dist/cli/index.js tools memories --limit 5 >/dev/null && node dist/cli/index.js tools git status >/dev/null","smoke:zalo:real":"npm run build && node scripts/smoke-zalo-real.mjs","smoke:doctor:fix":"npm run build && npm run smoke:doctor:fix:run","smoke:doctor:run":"node scripts/smoke-cli-temp-runtime.mjs doctor","smoke:status:run":"node scripts/smoke-cli-temp-runtime.mjs status","smoke:ui:browser":"npm run build && npm run smoke:ui:browser:run","smoke:zalo:setup":"npm run build && npm run smoke:zalo:setup:run","smoke:doctor:json":"npm run build && npm run smoke:doctor:json:run","smoke:onboard:run":"tmpdir=$(mktemp -d) && cd $tmpdir && printf 'Bestie\\nBoss\\nask\\nopenai-compatible\\nhttp://127.0.0.1:9/v1\\ntest-model\\ntest-key\\n' | HOME=$tmpdir node $INIT_CWD/dist/cli/index.js onboard --skip-provider-test; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:run":"tmpdir=$(mktemp -d) && cd $tmpdir && HOME=$tmpdir node $INIT_CWD/dist/cli/index.js channels telegram 2>&1 | grep -q 'Telegram is not enabled'; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:real":"npm run build && node scripts/smoke-telegram-real.mjs","eval:character:cases":"npm run build && node --test dist/character/character-eval-cases.test.js","smoke:doctor:fix:run":"node scripts/smoke-doctor-fix.mjs","smoke:telegram:setup":"npm run build && npm run smoke:telegram:setup:run","smoke:ui:browser:run":"node scripts/smoke-ui-browser.mjs","smoke:zalo:setup:run":"node scripts/smoke-zalo-setup.mjs","smoke:doctor:json:run":"node scripts/smoke-cli-temp-runtime.mjs doctor-json","smoke:doctor:exit-code":"npm run build && node scripts/smoke-doctor-exit-code.mjs","smoke:telegram:setup:run":"node scripts/smoke-telegram-setup.mjs","smoke:channels:doctor:json":"npm run build && npm run smoke:channels:doctor:json:run","smoke:ui:onboarding:browser":"npm run build && node scripts/smoke-ui-onboarding-browser.mjs","smoke:channels:doctor:json:run":"node scripts/smoke-channels-doctor-json.mjs"},"_npmUser":{"name":"andynguyenn","email":"j22487069@icloud.com"},"_npmVersion":"11.17.0","description":"Vietnamese-first bestie agent CLI.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"clsx":"^2.1.1","react":"^19.2.8","three":"^0.185.1","grammy":"^1.44.0","mammoth":"^1.12.0","commander":"^14.0.3","cytoscape":"^3.34.0","iso-639-1":"^3.1.6","pdf-parse":"^1.1.1","react-dom":"^19.2.8","lucide-react":"^1.28.0","@google/genai":"^2.12.0","3d-force-graph":"^1.80.0","better-sqlite3":"^12.11.1","tailwind-merge":"^3.6.0","@grammyjs/types":"^3.28.0","three-spritetext":"^1.10.0","@inquirer/prompts":"^8.5.2","@radix-ui/react-slot":"^1.3.3","class-variance-authority":"^0.7.1","@elevenlabs/elevenlabs-js":"^2.57.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.2","vite":"^8.2.0","postcss":"^8.5.25","playwright":"^1.61.1","typescript":"^5.5.4","@types/node":"^20.14.15","tailwindcss":"^3.4.17","@types/react":"^19.2.18","@types/three":"^0.185.3","autoprefixer":"^10.5.4","@types/react-dom":"^19.2.4","@vitejs/plugin-react":"^6.0.5","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/bestie-agent_0.1.43_1786467438646_0.21686044637758384","host":"s3://npm-registry-packages-npm-production"}},"0.1.44":{"name":"bestie-agent","version":"0.1.44","_id":"bestie-agent@0.1.44","maintainers":[{"name":"andynguyenn","email":"j22487069@icloud.com"}],"bin":{"bestie":"dist/cli/index.js"},"dist":{"shasum":"bd426036a8af547f5777e9a15c8f069032c43717","tarball":"https://registry.npmjs.org/bestie-agent/-/bestie-agent-0.1.44.tgz","fileCount":178,"integrity":"sha512-+ka0L4Z12KApGubCxW/EhQB3G99XtbJqEOTcb95ter5Grhh5ZB7DVovRmlkgab5MtZK6sczxSn49f7lORYj8Sw==","signatures":[{"sig":"MEUCIFw69zIHGAvXY9IAJ867jQFlf1G7mdhqMdOw4AmjrcmdAiEA5ldKcXosXoLByxrZRYWQQEDcBWInSCSYETcyQu2RABA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5175023},"type":"module","engines":{"node":">=22"},"gitHead":"53867375de021aed3f1f79e2acf3e0ae79dd0de1","scripts":{"dev":"tsx src/cli/index.ts","test":"npm run build && node --test dist/**/*.test.js","build":"tsc -p tsconfig.json && npm run build:ui && chmod 755 dist/cli/index.js","clean":"rm -rf dist","smoke":"npm run build && npm run smoke:status:run && npm run smoke:doctor:run && npm run smoke:doctor:json:run && npm run smoke:channels:doctor:json:run && npm run smoke:doctor:fix:run && npm run smoke:chat:run && npm run smoke:onboard:run && npm run smoke:telegram:setup:run && npm run smoke:zalo:setup:run","start":"node dist/cli/index.js","prepack":"npm run clean && npm run build","build:ui":"tsc -p web/tsconfig.json --noEmit && vite build --config web/vite.config.ts","smoke:ui":"npm run build && npm run smoke:ui:run","smoke:mcp":"npm run build && npm run smoke:mcp:run","pack:check":"npm run clean && npm run build && npm pack --dry-run","smoke:chat":"npm run build && npm run smoke:chat:run","smoke:zalo":"npm run build && npm run smoke:zalo:run","smoke:tools":"npm run build && npm run smoke:tools:run","smoke:doctor":"npm run build && npm run smoke:doctor:run","smoke:status":"npm run build && npm run smoke:status:run","smoke:ui:all":"npm run build && npm run smoke:ui:run && npm run smoke:ui:browser:run && node scripts/smoke-ui-onboarding-browser.mjs","smoke:ui:run":"node scripts/smoke-ui.mjs","smoke:mcp:run":"node scripts/smoke-mcp.mjs","smoke:onboard":"npm run build && npm run smoke:onboard:run","eval:character":"npm run build && node --test dist/character/prompt-generator.test.js dist/character/character-eval-cases.test.js","prepublishOnly":"npm test","smoke:chat:run":"node scripts/smoke-cli-temp-runtime.mjs chat","smoke:telegram":"npm run build && npm run smoke:telegram:run","smoke:zalo:run":"node scripts/smoke-zalo-disabled.mjs","smoke:installer":"npm run build && node scripts/smoke-installer.mjs","smoke:tools:run":"node dist/cli/index.js tools logs --lines 5 | grep -q 'action_permission_decision' && node dist/cli/index.js tools memories --limit 5 >/dev/null && node dist/cli/index.js tools git status >/dev/null","smoke:zalo:real":"npm run build && node scripts/smoke-zalo-real.mjs","smoke:doctor:fix":"npm run build && npm run smoke:doctor:fix:run","smoke:doctor:run":"node scripts/smoke-cli-temp-runtime.mjs doctor","smoke:status:run":"node scripts/smoke-cli-temp-runtime.mjs status","smoke:ui:browser":"npm run build && npm run smoke:ui:browser:run","smoke:zalo:setup":"npm run build && npm run smoke:zalo:setup:run","smoke:doctor:json":"npm run build && npm run smoke:doctor:json:run","smoke:onboard:run":"tmpdir=$(mktemp -d) && cd $tmpdir && printf 'Bestie\\nBoss\\nask\\nopenai-compatible\\nhttp://127.0.0.1:9/v1\\ntest-model\\ntest-key\\n' | HOME=$tmpdir node $INIT_CWD/dist/cli/index.js onboard --skip-provider-test; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:run":"tmpdir=$(mktemp -d) && cd $tmpdir && HOME=$tmpdir node $INIT_CWD/dist/cli/index.js channels telegram 2>&1 | grep -q 'Telegram is not enabled'; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:real":"npm run build && node scripts/smoke-telegram-real.mjs","eval:character:cases":"npm run build && node --test dist/character/character-eval-cases.test.js","smoke:doctor:fix:run":"node scripts/smoke-doctor-fix.mjs","smoke:telegram:setup":"npm run build && npm run smoke:telegram:setup:run","smoke:ui:browser:run":"node scripts/smoke-ui-browser.mjs","smoke:zalo:setup:run":"node scripts/smoke-zalo-setup.mjs","smoke:doctor:json:run":"node scripts/smoke-cli-temp-runtime.mjs doctor-json","smoke:doctor:exit-code":"npm run build && node scripts/smoke-doctor-exit-code.mjs","smoke:telegram:setup:run":"node scripts/smoke-telegram-setup.mjs","smoke:channels:doctor:json":"npm run build && npm run smoke:channels:doctor:json:run","smoke:ui:onboarding:browser":"npm run build && node scripts/smoke-ui-onboarding-browser.mjs","smoke:channels:doctor:json:run":"node scripts/smoke-channels-doctor-json.mjs"},"_npmUser":{"name":"andynguyenn","email":"j22487069@icloud.com"},"_npmVersion":"11.17.0","description":"Vietnamese-first bestie agent CLI.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"clsx":"^2.1.1","react":"^19.2.8","three":"^0.185.1","grammy":"^1.44.0","mammoth":"^1.12.0","commander":"^14.0.3","cytoscape":"^3.34.0","iso-639-1":"^3.1.6","pdf-parse":"^1.1.1","react-dom":"^19.2.8","lucide-react":"^1.28.0","@google/genai":"^2.12.0","3d-force-graph":"^1.80.0","better-sqlite3":"^12.11.1","tailwind-merge":"^3.6.0","@grammyjs/types":"^3.28.0","three-spritetext":"^1.10.0","@inquirer/prompts":"^8.5.2","@radix-ui/react-slot":"^1.3.3","class-variance-authority":"^0.7.1","@elevenlabs/elevenlabs-js":"^2.57.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.2","vite":"^8.2.0","postcss":"^8.5.25","playwright":"^1.61.1","typescript":"^5.5.4","@types/node":"^20.14.15","tailwindcss":"^3.4.17","@types/react":"^19.2.18","@types/three":"^0.185.3","autoprefixer":"^10.5.4","@types/react-dom":"^19.2.4","@vitejs/plugin-react":"^6.0.5","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/bestie-agent_0.1.44_1786506650486_0.10041480346512088","host":"s3://npm-registry-packages-npm-production"}},"0.1.46":{"name":"bestie-agent","version":"0.1.46","_id":"bestie-agent@0.1.46","maintainers":[{"name":"andynguyenn","email":"j22487069@icloud.com"}],"bin":{"bestie":"dist/cli/index.js"},"dist":{"shasum":"c6b6a9075b42f2c6d48d514fab7b199c2fae5b95","tarball":"https://registry.npmjs.org/bestie-agent/-/bestie-agent-0.1.46.tgz","fileCount":178,"integrity":"sha512-mKHNk6cdLLL8MPd1hmLAKG480Es5pz8EHPWd4AUMVAQkKA6t01rfpvu9LU1c1WpL4pSb9x4c8/J6+ecx7ZZldA==","signatures":[{"sig":"MEYCIQCDRhUcVon0/ZJKj/6vXRdl/hDyy3xURv7i9ns8vN52KAIhAMQ83+jN477/7KmGLklr0kqawEvO4h75RFgv2u8kDfcn","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5184200},"type":"module","engines":{"node":">=22"},"gitHead":"450b4c96e41dd0d947adf2c4ba625bef9db2642d","scripts":{"dev":"tsx src/cli/index.ts","test":"npm run build && node --test dist/**/*.test.js","build":"tsc -p tsconfig.json && npm run build:ui && chmod 755 dist/cli/index.js","clean":"rm -rf dist","smoke":"npm run build && npm run smoke:status:run && npm run smoke:doctor:run && npm run smoke:doctor:json:run && npm run smoke:channels:doctor:json:run && npm run smoke:doctor:fix:run && npm run smoke:chat:run && npm run smoke:onboard:run && npm run smoke:telegram:setup:run && npm run smoke:zalo:setup:run","start":"node dist/cli/index.js","prepack":"npm run clean && npm run build","build:ui":"tsc -p web/tsconfig.json --noEmit && vite build --config web/vite.config.ts","smoke:ui":"npm run build && npm run smoke:ui:run","smoke:mcp":"npm run build && npm run smoke:mcp:run","pack:check":"npm run clean && npm run build && npm pack --dry-run","smoke:chat":"npm run build && npm run smoke:chat:run","smoke:zalo":"npm run build && npm run smoke:zalo:run","smoke:tools":"npm run build && npm run smoke:tools:run","smoke:doctor":"npm run build && npm run smoke:doctor:run","smoke:status":"npm run build && npm run smoke:status:run","smoke:ui:all":"npm run build && npm run smoke:ui:run && npm run smoke:ui:browser:run && node scripts/smoke-ui-onboarding-browser.mjs","smoke:ui:run":"node scripts/smoke-ui.mjs","smoke:mcp:run":"node scripts/smoke-mcp.mjs","smoke:onboard":"npm run build && npm run smoke:onboard:run","eval:character":"npm run build && node --test dist/character/prompt-generator.test.js dist/character/character-eval-cases.test.js","prepublishOnly":"npm test","smoke:chat:run":"node scripts/smoke-cli-temp-runtime.mjs chat","smoke:telegram":"npm run build && npm run smoke:telegram:run","smoke:zalo:run":"node scripts/smoke-zalo-disabled.mjs","smoke:installer":"npm run build && node scripts/smoke-installer.mjs","smoke:tools:run":"node dist/cli/index.js tools logs --lines 5 | grep -q 'action_permission_decision' && node dist/cli/index.js tools memories --limit 5 >/dev/null && node dist/cli/index.js tools git status >/dev/null","smoke:zalo:real":"npm run build && node scripts/smoke-zalo-real.mjs","smoke:doctor:fix":"npm run build && npm run smoke:doctor:fix:run","smoke:doctor:run":"node scripts/smoke-cli-temp-runtime.mjs doctor","smoke:status:run":"node scripts/smoke-cli-temp-runtime.mjs status","smoke:ui:browser":"npm run build && npm run smoke:ui:browser:run","smoke:zalo:setup":"npm run build && npm run smoke:zalo:setup:run","smoke:doctor:json":"npm run build && npm run smoke:doctor:json:run","smoke:onboard:run":"tmpdir=$(mktemp -d) && cd $tmpdir && printf 'Bestie\\nBoss\\nask\\nopenai-compatible\\nhttp://127.0.0.1:9/v1\\ntest-model\\ntest-key\\n' | HOME=$tmpdir node $INIT_CWD/dist/cli/index.js onboard --skip-provider-test; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:run":"tmpdir=$(mktemp -d) && cd $tmpdir && HOME=$tmpdir node $INIT_CWD/dist/cli/index.js channels telegram 2>&1 | grep -q 'Telegram is not enabled'; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:real":"npm run build && node scripts/smoke-telegram-real.mjs","eval:character:cases":"npm run build && node --test dist/character/character-eval-cases.test.js","smoke:doctor:fix:run":"node scripts/smoke-doctor-fix.mjs","smoke:telegram:setup":"npm run build && npm run smoke:telegram:setup:run","smoke:ui:browser:run":"node scripts/smoke-ui-browser.mjs","smoke:zalo:setup:run":"node scripts/smoke-zalo-setup.mjs","smoke:doctor:json:run":"node scripts/smoke-cli-temp-runtime.mjs doctor-json","smoke:doctor:exit-code":"npm run build && node scripts/smoke-doctor-exit-code.mjs","smoke:telegram:setup:run":"node scripts/smoke-telegram-setup.mjs","smoke:channels:doctor:json":"npm run build && npm run smoke:channels:doctor:json:run","smoke:ui:onboarding:browser":"npm run build && node scripts/smoke-ui-onboarding-browser.mjs","smoke:channels:doctor:json:run":"node scripts/smoke-channels-doctor-json.mjs"},"_npmUser":{"name":"andynguyenn","email":"j22487069@icloud.com"},"_npmVersion":"11.17.0","description":"Vietnamese-first bestie agent CLI.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"clsx":"^2.1.1","react":"^19.2.8","three":"^0.185.1","grammy":"^1.44.0","mammoth":"^1.12.0","commander":"^14.0.3","cytoscape":"^3.34.0","iso-639-1":"^3.1.6","pdf-parse":"^1.1.1","react-dom":"^19.2.8","lucide-react":"^1.28.0","@google/genai":"^2.12.0","3d-force-graph":"^1.80.0","better-sqlite3":"^12.11.1","tailwind-merge":"^3.6.0","@grammyjs/types":"^3.28.0","three-spritetext":"^1.10.0","@inquirer/prompts":"^8.5.2","@radix-ui/react-slot":"^1.3.3","class-variance-authority":"^0.7.1","@elevenlabs/elevenlabs-js":"^2.57.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.2","vite":"^8.2.0","postcss":"^8.5.25","playwright":"^1.61.1","typescript":"^5.5.4","@types/node":"^20.14.15","tailwindcss":"^3.4.17","@types/react":"^19.2.18","@types/three":"^0.185.3","autoprefixer":"^10.5.4","@types/react-dom":"^19.2.4","@vitejs/plugin-react":"^6.0.5","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/bestie-agent_0.1.46_1786518077436_0.639850875161166","host":"s3://npm-registry-packages-npm-production"}},"0.1.47":{"name":"bestie-agent","version":"0.1.47","_id":"bestie-agent@0.1.47","maintainers":[{"name":"andynguyenn","email":"j22487069@icloud.com"}],"bin":{"bestie":"dist/cli/index.js"},"dist":{"shasum":"6a073ad364d600c97b5b233768b565b6d463dd74","tarball":"https://registry.npmjs.org/bestie-agent/-/bestie-agent-0.1.47.tgz","fileCount":178,"integrity":"sha512-5NUxcQ5qgBOrQ8nImtEXYMykUb2mtmSEOlJGEhq2juIp/brR9nCMPzc+13y3jvBi9myUG6ueK+pVxsRbZWIDxQ==","signatures":[{"sig":"MEUCIQCYWxv5CsrBkWoLz/pybsvTwNHcTXy8AR059Sp+irsH8AIgMOW0w0j3m/RzjkJ3TGF7gzTW1T4mdOgjdM+/mLyi+fY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5190839},"type":"module","engines":{"node":">=22"},"gitHead":"5ea60e2d04676d84e968909368e4a536c8f730d3","scripts":{"dev":"tsx src/cli/index.ts","test":"npm run build && node --test dist/**/*.test.js","build":"tsc -p tsconfig.json && npm run build:ui && chmod 755 dist/cli/index.js","clean":"rm -rf dist","smoke":"npm run build && npm run smoke:status:run && npm run smoke:doctor:run && npm run smoke:doctor:json:run && npm run smoke:channels:doctor:json:run && npm run smoke:doctor:fix:run && npm run smoke:chat:run && npm run smoke:onboard:run && npm run smoke:telegram:setup:run && npm run smoke:zalo:setup:run","start":"node dist/cli/index.js","prepack":"npm run clean && npm run build","build:ui":"tsc -p web/tsconfig.json --noEmit && vite build --config web/vite.config.ts","smoke:ui":"npm run build && npm run smoke:ui:run","smoke:mcp":"npm run build && npm run smoke:mcp:run","pack:check":"npm run clean && npm run build && npm pack --dry-run","smoke:chat":"npm run build && npm run smoke:chat:run","smoke:zalo":"npm run build && npm run smoke:zalo:run","smoke:tools":"npm run build && npm run smoke:tools:run","smoke:doctor":"npm run build && npm run smoke:doctor:run","smoke:status":"npm run build && npm run smoke:status:run","smoke:ui:all":"npm run build && npm run smoke:ui:run && npm run smoke:ui:browser:run && node scripts/smoke-ui-onboarding-browser.mjs","smoke:ui:run":"node scripts/smoke-ui.mjs","smoke:mcp:run":"node scripts/smoke-mcp.mjs","smoke:onboard":"npm run build && npm run smoke:onboard:run","eval:character":"npm run build && node --test dist/character/prompt-generator.test.js dist/character/character-eval-cases.test.js","prepublishOnly":"npm test","smoke:chat:run":"node scripts/smoke-cli-temp-runtime.mjs chat","smoke:telegram":"npm run build && npm run smoke:telegram:run","smoke:zalo:run":"node scripts/smoke-zalo-disabled.mjs","smoke:installer":"npm run build && node scripts/smoke-installer.mjs","smoke:tools:run":"node dist/cli/index.js tools logs --lines 5 | grep -q 'action_permission_decision' && node dist/cli/index.js tools memories --limit 5 >/dev/null && node dist/cli/index.js tools git status >/dev/null","smoke:zalo:real":"npm run build && node scripts/smoke-zalo-real.mjs","smoke:doctor:fix":"npm run build && npm run smoke:doctor:fix:run","smoke:doctor:run":"node scripts/smoke-cli-temp-runtime.mjs doctor","smoke:status:run":"node scripts/smoke-cli-temp-runtime.mjs status","smoke:ui:browser":"npm run build && npm run smoke:ui:browser:run","smoke:zalo:setup":"npm run build && npm run smoke:zalo:setup:run","smoke:doctor:json":"npm run build && npm run smoke:doctor:json:run","smoke:onboard:run":"tmpdir=$(mktemp -d) && cd $tmpdir && printf 'Bestie\\nBoss\\nask\\nopenai-compatible\\nhttp://127.0.0.1:9/v1\\ntest-model\\ntest-key\\n' | HOME=$tmpdir node $INIT_CWD/dist/cli/index.js onboard --skip-provider-test; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:run":"tmpdir=$(mktemp -d) && cd $tmpdir && HOME=$tmpdir node $INIT_CWD/dist/cli/index.js channels telegram 2>&1 | grep -q 'Telegram is not enabled'; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:real":"npm run build && node scripts/smoke-telegram-real.mjs","eval:character:cases":"npm run build && node --test dist/character/character-eval-cases.test.js","smoke:doctor:fix:run":"node scripts/smoke-doctor-fix.mjs","smoke:telegram:setup":"npm run build && npm run smoke:telegram:setup:run","smoke:ui:browser:run":"node scripts/smoke-ui-browser.mjs","smoke:zalo:setup:run":"node scripts/smoke-zalo-setup.mjs","smoke:doctor:json:run":"node scripts/smoke-cli-temp-runtime.mjs doctor-json","smoke:doctor:exit-code":"npm run build && node scripts/smoke-doctor-exit-code.mjs","smoke:telegram:setup:run":"node scripts/smoke-telegram-setup.mjs","smoke:channels:doctor:json":"npm run build && npm run smoke:channels:doctor:json:run","smoke:ui:onboarding:browser":"npm run build && node scripts/smoke-ui-onboarding-browser.mjs","smoke:channels:doctor:json:run":"node scripts/smoke-channels-doctor-json.mjs"},"_npmUser":{"name":"andynguyenn","email":"j22487069@icloud.com"},"_npmVersion":"11.17.0","description":"Vietnamese-first bestie agent CLI.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"clsx":"^2.1.1","react":"^19.2.8","three":"^0.185.1","grammy":"^1.44.0","mammoth":"^1.12.0","commander":"^14.0.3","cytoscape":"^3.34.0","iso-639-1":"^3.1.6","pdf-parse":"^1.1.1","react-dom":"^19.2.8","lucide-react":"^1.28.0","@google/genai":"^2.12.0","3d-force-graph":"^1.80.0","better-sqlite3":"^12.11.1","tailwind-merge":"^3.6.0","@grammyjs/types":"^3.28.0","three-spritetext":"^1.10.0","@inquirer/prompts":"^8.5.2","@radix-ui/react-slot":"^1.3.3","class-variance-authority":"^0.7.1","@elevenlabs/elevenlabs-js":"^2.57.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.2","vite":"^8.2.0","postcss":"^8.5.25","playwright":"^1.61.1","typescript":"^5.5.4","@types/node":"^20.14.15","tailwindcss":"^3.4.17","@types/react":"^19.2.18","@types/three":"^0.185.3","autoprefixer":"^10.5.4","@types/react-dom":"^19.2.4","@vitejs/plugin-react":"^6.0.5","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/bestie-agent_0.1.47_1786540303053_0.47638160149676834","host":"s3://npm-registry-packages-npm-production"}},"0.1.48":{"name":"bestie-agent","version":"0.1.48","_id":"bestie-agent@0.1.48","maintainers":[{"name":"andynguyenn","email":"j22487069@icloud.com"}],"bin":{"bestie":"dist/cli/index.js"},"dist":{"shasum":"fcfe9c8bb27809b3faea277989aa337d524d60fc","tarball":"https://registry.npmjs.org/bestie-agent/-/bestie-agent-0.1.48.tgz","fileCount":180,"integrity":"sha512-hbuQ2YaUdT7N9uCBtyHRJKQ1AwP314/02A1/trfqG5m0ZIeotB30DCzvMtBQ7pgSjxCdf7WqYwo9esrUWlsVtg==","signatures":[{"sig":"MEYCIQC0Qcb5xMO5dTEcWgwbnZSJmG1cIeO1CjjqO4qrnjpmHwIhAIDphyZ8J6c5inl3ZpSurvIICeH4EVv/QK3SPrxp674l","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5196386},"type":"module","engines":{"node":">=22"},"gitHead":"053e6f2cfb06e056e2476fcb9e1020d6c3fd003d","scripts":{"dev":"tsx src/cli/index.ts","test":"npm run build && node --test dist/**/*.test.js","build":"tsc -p tsconfig.json && npm run build:ui && chmod 755 dist/cli/index.js","clean":"rm -rf dist","smoke":"npm run build && npm run smoke:status:run && npm run smoke:doctor:run && npm run smoke:doctor:json:run && npm run smoke:channels:doctor:json:run && npm run smoke:doctor:fix:run && npm run smoke:chat:run && npm run smoke:onboard:run && npm run smoke:telegram:setup:run && npm run smoke:zalo:setup:run","start":"node dist/cli/index.js","prepack":"npm run clean && npm run build","build:ui":"tsc -p web/tsconfig.json --noEmit && vite build --config web/vite.config.ts","smoke:ui":"npm run build && npm run smoke:ui:run","smoke:mcp":"npm run build && npm run smoke:mcp:run","pack:check":"npm run clean && npm run build && npm pack --dry-run","smoke:chat":"npm run build && npm run smoke:chat:run","smoke:zalo":"npm run build && npm run smoke:zalo:run","smoke:tools":"npm run build && npm run smoke:tools:run","smoke:doctor":"npm run build && npm run smoke:doctor:run","smoke:status":"npm run build && npm run smoke:status:run","smoke:ui:all":"npm run build && npm run smoke:ui:run && npm run smoke:ui:browser:run && node scripts/smoke-ui-onboarding-browser.mjs","smoke:ui:run":"node scripts/smoke-ui.mjs","smoke:mcp:run":"node scripts/smoke-mcp.mjs","smoke:onboard":"npm run build && npm run smoke:onboard:run","eval:character":"npm run build && node --test dist/character/prompt-generator.test.js dist/character/character-eval-cases.test.js","prepublishOnly":"npm test","smoke:chat:run":"node scripts/smoke-cli-temp-runtime.mjs chat","smoke:telegram":"npm run build && npm run smoke:telegram:run","smoke:zalo:run":"node scripts/smoke-zalo-disabled.mjs","smoke:installer":"npm run build && node scripts/smoke-installer.mjs","smoke:tools:run":"node dist/cli/index.js tools logs --lines 5 | grep -q 'action_permission_decision' && node dist/cli/index.js tools memories --limit 5 >/dev/null && node dist/cli/index.js tools git status >/dev/null","smoke:zalo:real":"npm run build && node scripts/smoke-zalo-real.mjs","smoke:doctor:fix":"npm run build && npm run smoke:doctor:fix:run","smoke:doctor:run":"node scripts/smoke-cli-temp-runtime.mjs doctor","smoke:status:run":"node scripts/smoke-cli-temp-runtime.mjs status","smoke:ui:browser":"npm run build && npm run smoke:ui:browser:run","smoke:zalo:setup":"npm run build && npm run smoke:zalo:setup:run","smoke:doctor:json":"npm run build && npm run smoke:doctor:json:run","smoke:onboard:run":"tmpdir=$(mktemp -d) && cd $tmpdir && printf 'Bestie\\nBoss\\nask\\nopenai-compatible\\nhttp://127.0.0.1:9/v1\\ntest-model\\ntest-key\\n' | HOME=$tmpdir node $INIT_CWD/dist/cli/index.js onboard --skip-provider-test; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:run":"tmpdir=$(mktemp -d) && cd $tmpdir && HOME=$tmpdir node $INIT_CWD/dist/cli/index.js channels telegram 2>&1 | grep -q 'Telegram is not enabled'; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:real":"npm run build && node scripts/smoke-telegram-real.mjs","eval:character:cases":"npm run build && node --test dist/character/character-eval-cases.test.js","smoke:doctor:fix:run":"node scripts/smoke-doctor-fix.mjs","smoke:telegram:setup":"npm run build && npm run smoke:telegram:setup:run","smoke:ui:browser:run":"node scripts/smoke-ui-browser.mjs","smoke:zalo:setup:run":"node scripts/smoke-zalo-setup.mjs","smoke:doctor:json:run":"node scripts/smoke-cli-temp-runtime.mjs doctor-json","smoke:doctor:exit-code":"npm run build && node scripts/smoke-doctor-exit-code.mjs","smoke:telegram:setup:run":"node scripts/smoke-telegram-setup.mjs","smoke:channels:doctor:json":"npm run build && npm run smoke:channels:doctor:json:run","smoke:ui:onboarding:browser":"npm run build && node scripts/smoke-ui-onboarding-browser.mjs","smoke:channels:doctor:json:run":"node scripts/smoke-channels-doctor-json.mjs"},"_npmUser":{"name":"andynguyenn","email":"j22487069@icloud.com"},"_npmVersion":"11.17.0","description":"Vietnamese-first bestie agent CLI.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"clsx":"^2.1.1","react":"^19.2.8","three":"^0.185.1","grammy":"^1.44.0","mammoth":"^1.12.0","commander":"^14.0.3","cytoscape":"^3.34.0","iso-639-1":"^3.1.6","pdf-parse":"^1.1.1","react-dom":"^19.2.8","lucide-react":"^1.28.0","@google/genai":"^2.12.0","3d-force-graph":"^1.80.0","better-sqlite3":"^12.11.1","tailwind-merge":"^3.6.0","@grammyjs/types":"^3.28.0","three-spritetext":"^1.10.0","@inquirer/prompts":"^8.5.2","@radix-ui/react-slot":"^1.3.3","class-variance-authority":"^0.7.1","@elevenlabs/elevenlabs-js":"^2.57.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.2","vite":"^8.2.0","postcss":"^8.5.25","playwright":"^1.61.1","typescript":"^5.5.4","@types/node":"^20.14.15","tailwindcss":"^3.4.17","@types/react":"^19.2.18","@types/three":"^0.185.3","autoprefixer":"^10.5.4","@types/react-dom":"^19.2.4","@vitejs/plugin-react":"^6.0.5","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/bestie-agent_0.1.48_1786671588376_0.9437878523097649","host":"s3://npm-registry-packages-npm-production"}},"0.1.49":{"name":"bestie-agent","version":"0.1.49","_id":"bestie-agent@0.1.49","maintainers":[{"name":"andynguyenn","email":"j22487069@icloud.com"}],"bin":{"bestie":"dist/cli/index.js"},"dist":{"shasum":"5de4bdf8a3b59d376d726f0a40223c8a2662e2bb","tarball":"https://registry.npmjs.org/bestie-agent/-/bestie-agent-0.1.49.tgz","fileCount":180,"integrity":"sha512-ek7yhnIqbLV6+F+HvSUrbx436X/xMpNmQcCWYSKZKwPfkokYG4BFcE38I3JIOg5Pao9QHlxun19FfoD2hAotVw==","signatures":[{"sig":"MEQCICeJYUtAlWegqGgu8YnZOs7FRiap02NrtxlkgKC1/taXAiA/XiBXrUVAgnGpBSw6sW7IbkeBTLUWSmTCpwbK+UkOXg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5209610},"type":"module","engines":{"node":">=22"},"gitHead":"a2c9b5da95ff25f521757de15be03bbeabc65cba","scripts":{"dev":"tsx src/cli/index.ts","test":"npm run build && node --test dist/**/*.test.js","build":"tsc -p tsconfig.json && npm run build:ui && chmod 755 dist/cli/index.js","clean":"rm -rf dist","smoke":"npm run build && npm run smoke:status:run && npm run smoke:doctor:run && npm run smoke:doctor:json:run && npm run smoke:channels:doctor:json:run && npm run smoke:doctor:fix:run && npm run smoke:chat:run && npm run smoke:onboard:run && npm run smoke:telegram:setup:run && npm run smoke:zalo:setup:run","start":"node dist/cli/index.js","prepack":"npm run clean && npm run build","build:ui":"tsc -p web/tsconfig.json --noEmit && vite build --config web/vite.config.ts","smoke:ui":"npm run build && npm run smoke:ui:run","smoke:mcp":"npm run build && npm run smoke:mcp:run","pack:check":"npm run clean && npm run build && npm pack --dry-run","smoke:chat":"npm run build && npm run smoke:chat:run","smoke:zalo":"npm run build && npm run smoke:zalo:run","smoke:tools":"npm run build && npm run smoke:tools:run","smoke:doctor":"npm run build && npm run smoke:doctor:run","smoke:status":"npm run build && npm run smoke:status:run","smoke:ui:all":"npm run build && npm run smoke:ui:run && npm run smoke:ui:browser:run && node scripts/smoke-ui-onboarding-browser.mjs","smoke:ui:run":"node scripts/smoke-ui.mjs","smoke:mcp:run":"node scripts/smoke-mcp.mjs","smoke:onboard":"npm run build && npm run smoke:onboard:run","eval:character":"npm run build && node --test dist/character/prompt-generator.test.js dist/character/character-eval-cases.test.js","prepublishOnly":"npm test","smoke:chat:run":"node scripts/smoke-cli-temp-runtime.mjs chat","smoke:telegram":"npm run build && npm run smoke:telegram:run","smoke:zalo:run":"node scripts/smoke-zalo-disabled.mjs","smoke:installer":"npm run build && node scripts/smoke-installer.mjs","smoke:tools:run":"node dist/cli/index.js tools logs --lines 5 | grep -q 'action_permission_decision' && node dist/cli/index.js tools memories --limit 5 >/dev/null && node dist/cli/index.js tools git status >/dev/null","smoke:zalo:real":"npm run build && node scripts/smoke-zalo-real.mjs","smoke:doctor:fix":"npm run build && npm run smoke:doctor:fix:run","smoke:doctor:run":"node scripts/smoke-cli-temp-runtime.mjs doctor","smoke:status:run":"node scripts/smoke-cli-temp-runtime.mjs status","smoke:ui:browser":"npm run build && npm run smoke:ui:browser:run","smoke:zalo:setup":"npm run build && npm run smoke:zalo:setup:run","smoke:doctor:json":"npm run build && npm run smoke:doctor:json:run","smoke:onboard:run":"tmpdir=$(mktemp -d) && cd $tmpdir && printf 'Bestie\\nBoss\\nask\\nopenai-compatible\\nhttp://127.0.0.1:9/v1\\ntest-model\\ntest-key\\n' | HOME=$tmpdir node $INIT_CWD/dist/cli/index.js onboard --skip-provider-test; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:run":"tmpdir=$(mktemp -d) && cd $tmpdir && HOME=$tmpdir node $INIT_CWD/dist/cli/index.js channels telegram 2>&1 | grep -q 'Telegram is not enabled'; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:real":"npm run build && node scripts/smoke-telegram-real.mjs","eval:character:cases":"npm run build && node --test dist/character/character-eval-cases.test.js","smoke:doctor:fix:run":"node scripts/smoke-doctor-fix.mjs","smoke:telegram:setup":"npm run build && npm run smoke:telegram:setup:run","smoke:ui:browser:run":"node scripts/smoke-ui-browser.mjs","smoke:zalo:setup:run":"node scripts/smoke-zalo-setup.mjs","smoke:doctor:json:run":"node scripts/smoke-cli-temp-runtime.mjs doctor-json","smoke:doctor:exit-code":"npm run build && node scripts/smoke-doctor-exit-code.mjs","smoke:telegram:setup:run":"node scripts/smoke-telegram-setup.mjs","smoke:channels:doctor:json":"npm run build && npm run smoke:channels:doctor:json:run","smoke:ui:onboarding:browser":"npm run build && node scripts/smoke-ui-onboarding-browser.mjs","smoke:channels:doctor:json:run":"node scripts/smoke-channels-doctor-json.mjs"},"_npmUser":{"name":"andynguyenn","email":"j22487069@icloud.com"},"_npmVersion":"11.17.0","description":"Vietnamese-first bestie agent CLI.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"clsx":"^2.1.1","react":"^19.2.8","three":"^0.185.1","grammy":"^1.44.0","mammoth":"^1.12.0","commander":"^14.0.3","cytoscape":"^3.34.0","iso-639-1":"^3.1.6","pdf-parse":"^1.1.1","react-dom":"^19.2.8","lucide-react":"^1.28.0","@google/genai":"^2.12.0","3d-force-graph":"^1.80.0","better-sqlite3":"^12.11.1","tailwind-merge":"^3.6.0","@grammyjs/types":"^3.28.0","three-spritetext":"^1.10.0","@inquirer/prompts":"^8.5.2","@radix-ui/react-slot":"^1.3.3","class-variance-authority":"^0.7.1","@elevenlabs/elevenlabs-js":"^2.57.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.2","vite":"^8.2.0","postcss":"^8.5.25","playwright":"^1.61.1","typescript":"^5.5.4","@types/node":"^20.14.15","tailwindcss":"^3.4.17","@types/react":"^19.2.18","@types/three":"^0.185.3","autoprefixer":"^10.5.4","@types/react-dom":"^19.2.4","@vitejs/plugin-react":"^6.0.5","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/bestie-agent_0.1.49_1787020498385_0.4834797555045396","host":"s3://npm-registry-packages-npm-production"}},"0.1.50":{"name":"bestie-agent","version":"0.1.50","_id":"bestie-agent@0.1.50","maintainers":[{"name":"andynguyenn","email":"j22487069@icloud.com"}],"bin":{"bestie":"dist/cli/index.js"},"dist":{"shasum":"7faafb4ba2944673dd44c6e6b086a8ea8522317f","tarball":"https://registry.npmjs.org/bestie-agent/-/bestie-agent-0.1.50.tgz","fileCount":180,"integrity":"sha512-EwJmMMV+NFuEIOxAE+ZrtN7kxPHZH0OvXcYcBocLKbca2a3PO3F9oitr1ZNuffH1OYXlYcUoNWJNvz+SYNow1Q==","signatures":[{"sig":"MEUCIDYfD4a2ZkQnBPwdhpieiKNdZOrVIKy7NqVZPcwKiSqtAiEA2asYUWtDxeelwncS956GEGiSauOmWezhz1V+8bc3DbE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5209615},"type":"module","engines":{"node":">=22"},"gitHead":"41b9d05ba0704fe1930763818e9355e7db202c6a","scripts":{"dev":"tsx src/cli/index.ts","test":"npm run build && node --test dist/**/*.test.js","build":"tsc -p tsconfig.json && npm run build:ui && chmod 755 dist/cli/index.js","clean":"rm -rf dist","smoke":"npm run build && npm run smoke:status:run && npm run smoke:doctor:run && npm run smoke:doctor:json:run && npm run smoke:channels:doctor:json:run && npm run smoke:doctor:fix:run && npm run smoke:chat:run && npm run smoke:onboard:run && npm run smoke:telegram:setup:run && npm run smoke:zalo:setup:run","start":"node dist/cli/index.js","prepack":"npm run clean && npm run build","build:ui":"tsc -p web/tsconfig.json --noEmit && vite build --config web/vite.config.ts","smoke:ui":"npm run build && npm run smoke:ui:run","smoke:mcp":"npm run build && npm run smoke:mcp:run","pack:check":"npm run clean && npm run build && npm pack --dry-run","smoke:chat":"npm run build && npm run smoke:chat:run","smoke:zalo":"npm run build && npm run smoke:zalo:run","smoke:tools":"npm run build && npm run smoke:tools:run","smoke:doctor":"npm run build && npm run smoke:doctor:run","smoke:status":"npm run build && npm run smoke:status:run","smoke:ui:all":"npm run build && npm run smoke:ui:run && npm run smoke:ui:browser:run && node scripts/smoke-ui-onboarding-browser.mjs","smoke:ui:run":"node scripts/smoke-ui.mjs","smoke:mcp:run":"node scripts/smoke-mcp.mjs","smoke:onboard":"npm run build && npm run smoke:onboard:run","eval:character":"npm run build && node --test dist/character/prompt-generator.test.js dist/character/character-eval-cases.test.js","prepublishOnly":"npm test","smoke:chat:run":"node scripts/smoke-cli-temp-runtime.mjs chat","smoke:telegram":"npm run build && npm run smoke:telegram:run","smoke:zalo:run":"node scripts/smoke-zalo-disabled.mjs","smoke:installer":"npm run build && node scripts/smoke-installer.mjs","smoke:tools:run":"node dist/cli/index.js tools logs --lines 5 | grep -q 'action_permission_decision' && node dist/cli/index.js tools memories --limit 5 >/dev/null && node dist/cli/index.js tools git status >/dev/null","smoke:zalo:real":"npm run build && node scripts/smoke-zalo-real.mjs","smoke:doctor:fix":"npm run build && npm run smoke:doctor:fix:run","smoke:doctor:run":"node scripts/smoke-cli-temp-runtime.mjs doctor","smoke:status:run":"node scripts/smoke-cli-temp-runtime.mjs status","smoke:ui:browser":"npm run build && npm run smoke:ui:browser:run","smoke:zalo:setup":"npm run build && npm run smoke:zalo:setup:run","smoke:doctor:json":"npm run build && npm run smoke:doctor:json:run","smoke:onboard:run":"tmpdir=$(mktemp -d) && cd $tmpdir && printf 'Bestie\\nBoss\\nask\\nopenai-compatible\\nhttp://127.0.0.1:9/v1\\ntest-model\\ntest-key\\n' | HOME=$tmpdir node $INIT_CWD/dist/cli/index.js onboard --skip-provider-test; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:run":"tmpdir=$(mktemp -d) && cd $tmpdir && HOME=$tmpdir node $INIT_CWD/dist/cli/index.js channels telegram 2>&1 | grep -q 'Telegram is not enabled'; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:real":"npm run build && node scripts/smoke-telegram-real.mjs","eval:character:cases":"npm run build && node --test dist/character/character-eval-cases.test.js","smoke:doctor:fix:run":"node scripts/smoke-doctor-fix.mjs","smoke:telegram:setup":"npm run build && npm run smoke:telegram:setup:run","smoke:ui:browser:run":"node scripts/smoke-ui-browser.mjs","smoke:zalo:setup:run":"node scripts/smoke-zalo-setup.mjs","smoke:doctor:json:run":"node scripts/smoke-cli-temp-runtime.mjs doctor-json","smoke:doctor:exit-code":"npm run build && node scripts/smoke-doctor-exit-code.mjs","smoke:telegram:setup:run":"node scripts/smoke-telegram-setup.mjs","smoke:channels:doctor:json":"npm run build && npm run smoke:channels:doctor:json:run","smoke:ui:onboarding:browser":"npm run build && node scripts/smoke-ui-onboarding-browser.mjs","smoke:channels:doctor:json:run":"node scripts/smoke-channels-doctor-json.mjs"},"_npmUser":{"name":"andynguyenn","email":"j22487069@icloud.com"},"_npmVersion":"11.17.0","description":"Vietnamese-first bestie agent CLI.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"clsx":"^2.1.1","react":"^19.2.8","three":"^0.185.1","grammy":"^1.44.0","mammoth":"^1.12.0","commander":"^14.0.3","cytoscape":"^3.34.0","iso-639-1":"^3.1.6","pdf-parse":"^1.1.1","react-dom":"^19.2.8","lucide-react":"^1.28.0","@google/genai":"^2.12.0","3d-force-graph":"^1.80.0","better-sqlite3":"^12.11.1","tailwind-merge":"^3.6.0","@grammyjs/types":"^3.28.0","three-spritetext":"^1.10.0","@inquirer/prompts":"^8.5.2","@radix-ui/react-slot":"^1.3.3","class-variance-authority":"^0.7.1","@elevenlabs/elevenlabs-js":"^2.57.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.2","vite":"^8.2.0","postcss":"^8.5.25","playwright":"^1.61.1","typescript":"^5.5.4","@types/node":"^20.14.15","tailwindcss":"^3.4.17","@types/react":"^19.2.18","@types/three":"^0.185.3","autoprefixer":"^10.5.4","@types/react-dom":"^19.2.4","@vitejs/plugin-react":"^6.0.5","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/bestie-agent_0.1.50_1787021713321_0.7241817231755625","host":"s3://npm-registry-packages-npm-production"}},"0.1.52":{"name":"bestie-agent","version":"0.1.52","_id":"bestie-agent@0.1.52","maintainers":[{"name":"andynguyenn","email":"j22487069@icloud.com"}],"bin":{"bestie":"dist/cli/index.js"},"dist":{"shasum":"6beb76e86ea31b8e12a6f9d0c53f2dfe50b20454","tarball":"https://registry.npmjs.org/bestie-agent/-/bestie-agent-0.1.52.tgz","fileCount":187,"integrity":"sha512-wLn4yAGEAer733imqBGVJxVciCDIP5fCIOfygrUSqUHHlfad9Uzzam99uZPlgtWoVmENpzD1G/7iJ52a0l0QKA==","signatures":[{"sig":"MEUCIBEIzBnMYxKD3BMeKP9X/VYtuMjTb4sr/EMAd4v/A9upAiEA2EAkilBAGqbNGSWvpEfyWGZV1zPcLRF7G5E+7IzwgFk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5269495},"type":"module","engines":{"node":">=22"},"gitHead":"2dd46ab152dd6d11fef05979fdcfcb94abe7c7c7","scripts":{"dev":"tsx src/cli/index.ts","test":"npm run build && node --test dist/**/*.test.js","build":"tsc -p tsconfig.json && npm run build:ui && node -e \"import('node:fs/promises').then(({ chmod }) => chmod('dist/cli/index.js', 0o755))\"","clean":"rm -rf dist","smoke":"npm run build && npm run smoke:status:run && npm run smoke:doctor:run && npm run smoke:doctor:json:run && npm run smoke:channels:doctor:json:run && npm run smoke:doctor:fix:run && npm run smoke:chat:run && npm run smoke:onboard:run && npm run smoke:telegram:setup:run && npm run smoke:zalo:setup:run","start":"node dist/cli/index.js","prepack":"npm run clean && npm run build","build:ui":"tsc -p web/tsconfig.json --noEmit && vite build --config web/vite.config.ts","smoke:ui":"npm run build && npm run smoke:ui:run","smoke:mcp":"npm run build && npm run smoke:mcp:run","pack:check":"npm run clean && npm run build && npm pack --dry-run","smoke:chat":"npm run build && npm run smoke:chat:run","smoke:zalo":"npm run build && npm run smoke:zalo:run","smoke:tools":"npm run build && npm run smoke:tools:run","smoke:doctor":"npm run build && npm run smoke:doctor:run","smoke:status":"npm run build && npm run smoke:status:run","smoke:ui:all":"npm run build && npm run smoke:ui:run && npm run smoke:ui:browser:run && node scripts/smoke-ui-onboarding-browser.mjs","smoke:ui:run":"node scripts/smoke-ui.mjs","smoke:mcp:run":"node scripts/smoke-mcp.mjs","smoke:onboard":"npm run build && npm run smoke:onboard:run","eval:character":"npm run build && node --test dist/character/prompt-generator.test.js dist/character/character-eval-cases.test.js","prepublishOnly":"npm test","smoke:chat:run":"node scripts/smoke-cli-temp-runtime.mjs chat","smoke:telegram":"npm run build && npm run smoke:telegram:run","smoke:zalo:run":"node scripts/smoke-zalo-disabled.mjs","smoke:installer":"npm run build && node scripts/smoke-installer.mjs","smoke:tools:run":"node dist/cli/index.js tools logs --lines 5 | grep -q 'action_permission_decision' && node dist/cli/index.js tools memories --limit 5 >/dev/null && node dist/cli/index.js tools git status >/dev/null","smoke:zalo:real":"npm run build && node scripts/smoke-zalo-real.mjs","smoke:doctor:fix":"npm run build && npm run smoke:doctor:fix:run","smoke:doctor:run":"node scripts/smoke-cli-temp-runtime.mjs doctor","smoke:status:run":"node scripts/smoke-cli-temp-runtime.mjs status","smoke:ui:browser":"npm run build && npm run smoke:ui:browser:run","smoke:zalo:setup":"npm run build && npm run smoke:zalo:setup:run","smoke:doctor:json":"npm run build && npm run smoke:doctor:json:run","smoke:onboard:run":"tmpdir=$(mktemp -d) && cd $tmpdir && printf 'Bestie\\nBoss\\nask\\nopenai-compatible\\nhttp://127.0.0.1:9/v1\\ntest-model\\ntest-key\\n' | HOME=$tmpdir node $INIT_CWD/dist/cli/index.js onboard --skip-provider-test; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:run":"tmpdir=$(mktemp -d) && cd $tmpdir && HOME=$tmpdir node $INIT_CWD/dist/cli/index.js channels telegram 2>&1 | grep -q 'Telegram is not enabled'; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:real":"npm run build && node scripts/smoke-telegram-real.mjs","eval:character:cases":"npm run build && node --test dist/character/character-eval-cases.test.js","smoke:doctor:fix:run":"node scripts/smoke-doctor-fix.mjs","smoke:telegram:setup":"npm run build && npm run smoke:telegram:setup:run","smoke:ui:browser:run":"node scripts/smoke-ui-browser.mjs","smoke:zalo:setup:run":"node scripts/smoke-zalo-setup.mjs","smoke:doctor:json:run":"node scripts/smoke-cli-temp-runtime.mjs doctor-json","smoke:doctor:exit-code":"npm run build && node scripts/smoke-doctor-exit-code.mjs","smoke:telegram:setup:run":"node scripts/smoke-telegram-setup.mjs","smoke:channels:doctor:json":"npm run build && npm run smoke:channels:doctor:json:run","smoke:ui:onboarding:browser":"npm run build && node scripts/smoke-ui-onboarding-browser.mjs","smoke:channels:doctor:json:run":"node scripts/smoke-channels-doctor-json.mjs"},"_npmUser":{"name":"andynguyenn","email":"j22487069@icloud.com"},"_npmVersion":"11.17.0","description":"Vietnamese-first bestie agent CLI.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"clsx":"^2.1.1","react":"^19.2.8","three":"^0.185.1","grammy":"^1.44.0","zca-js":"2.1.2","mammoth":"^1.12.0","commander":"^14.0.3","cytoscape":"^3.34.0","iso-639-1":"^3.1.6","pdf-parse":"^1.1.1","react-dom":"^19.2.8","lucide-react":"^1.28.0","@google/genai":"^2.12.0","3d-force-graph":"^1.80.0","better-sqlite3":"^12.11.1","tailwind-merge":"^3.6.0","@grammyjs/types":"^3.28.0","qrcode-terminal":"^0.12.0","three-spritetext":"^1.10.0","@inquirer/prompts":"^8.5.2","@radix-ui/react-slot":"^1.3.3","class-variance-authority":"^0.7.1","@elevenlabs/elevenlabs-js":"^2.57.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.2","vite":"^8.2.0","postcss":"^8.5.25","playwright":"^1.61.1","typescript":"^5.5.4","@types/node":"^20.14.15","tailwindcss":"^3.4.17","@types/react":"^19.2.18","@types/three":"^0.185.3","autoprefixer":"^10.5.4","@types/react-dom":"^19.2.4","@vitejs/plugin-react":"^6.0.5","@types/better-sqlite3":"^7.6.13","@types/qrcode-terminal":"^0.12.2"},"_npmOperationalInternal":{"tmp":"tmp/bestie-agent_0.1.52_1787108833676_0.651800869651656","host":"s3://npm-registry-packages-npm-production"}},"0.1.53":{"name":"bestie-agent","version":"0.1.53","_id":"bestie-agent@0.1.53","maintainers":[{"name":"andynguyenn","email":"j22487069@icloud.com"}],"bin":{"bestie":"dist/cli/index.js"},"dist":{"shasum":"b07713e3851bb51d9bdf0dabd93de58c27086b0d","tarball":"https://registry.npmjs.org/bestie-agent/-/bestie-agent-0.1.53.tgz","fileCount":188,"integrity":"sha512-5CKLiJ9w38jA0JdC0BiR4IyDXDYK9rWMD1PqBfxM7K8+7yaaeSlRfcqjDNohQnXBjk4ELzu1YeV+Iwxp/2r9gA==","signatures":[{"sig":"MEUCIQDzXwAT+hYjBNE9MO/GI+WMWxMZnNGdR4pKCjvv5Yf2PgIgSgbGAjJIy+7HoBPeZimStnKiUqa1nrEtdb3RUK4EjII=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5272394},"type":"module","engines":{"node":">=22"},"gitHead":"a717f6d67380a2289cd42211336f527f84941f9e","scripts":{"dev":"tsx src/cli/index.ts","test":"npm run build && node --test dist/**/*.test.js","build":"tsc -p tsconfig.json && npm run build:ui && node -e \"import('node:fs/promises').then(({ chmod }) => chmod('dist/cli/index.js', 0o755))\"","clean":"rm -rf dist","smoke":"npm run build && npm run smoke:status:run && npm run smoke:doctor:run && npm run smoke:doctor:json:run && npm run smoke:channels:doctor:json:run && npm run smoke:doctor:fix:run && npm run smoke:chat:run && npm run smoke:onboard:run && npm run smoke:telegram:setup:run && npm run smoke:zalo:setup:run","start":"node dist/cli/index.js","prepack":"npm run clean && npm run build","build:ui":"tsc -p web/tsconfig.json --noEmit && vite build --config web/vite.config.ts","smoke:ui":"npm run build && npm run smoke:ui:run","smoke:mcp":"npm run build && npm run smoke:mcp:run","pack:check":"npm run clean && npm run build && npm pack --dry-run","smoke:chat":"npm run build && npm run smoke:chat:run","smoke:zalo":"npm run build && npm run smoke:zalo:run","smoke:tools":"npm run build && npm run smoke:tools:run","smoke:doctor":"npm run build && npm run smoke:doctor:run","smoke:status":"npm run build && npm run smoke:status:run","smoke:ui:all":"npm run build && npm run smoke:ui:run && npm run smoke:ui:browser:run && node scripts/smoke-ui-onboarding-browser.mjs","smoke:ui:run":"node scripts/smoke-ui.mjs","smoke:mcp:run":"node scripts/smoke-mcp.mjs","smoke:onboard":"npm run build && npm run smoke:onboard:run","eval:character":"npm run build && node --test dist/character/prompt-generator.test.js dist/character/character-eval-cases.test.js","prepublishOnly":"npm test","smoke:chat:run":"node scripts/smoke-cli-temp-runtime.mjs chat","smoke:telegram":"npm run build && npm run smoke:telegram:run","smoke:zalo:run":"node scripts/smoke-zalo-disabled.mjs","smoke:installer":"npm run build && node scripts/smoke-installer.mjs","smoke:tools:run":"node dist/cli/index.js tools logs --lines 5 | grep -q 'action_permission_decision' && node dist/cli/index.js tools memories --limit 5 >/dev/null && node dist/cli/index.js tools git status >/dev/null","smoke:zalo:real":"npm run build && node scripts/smoke-zalo-real.mjs","smoke:doctor:fix":"npm run build && npm run smoke:doctor:fix:run","smoke:doctor:run":"node scripts/smoke-cli-temp-runtime.mjs doctor","smoke:status:run":"node scripts/smoke-cli-temp-runtime.mjs status","smoke:ui:browser":"npm run build && npm run smoke:ui:browser:run","smoke:zalo:setup":"npm run build && npm run smoke:zalo:setup:run","smoke:doctor:json":"npm run build && npm run smoke:doctor:json:run","smoke:onboard:run":"tmpdir=$(mktemp -d) && cd $tmpdir && printf 'Bestie\\nBoss\\nask\\nopenai-compatible\\nhttp://127.0.0.1:9/v1\\ntest-model\\ntest-key\\n' | HOME=$tmpdir node $INIT_CWD/dist/cli/index.js onboard --skip-provider-test; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:run":"tmpdir=$(mktemp -d) && cd $tmpdir && HOME=$tmpdir node $INIT_CWD/dist/cli/index.js channels telegram 2>&1 | grep -q 'Telegram is not enabled'; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:real":"npm run build && node scripts/smoke-telegram-real.mjs","eval:character:cases":"npm run build && node --test dist/character/character-eval-cases.test.js","smoke:doctor:fix:run":"node scripts/smoke-doctor-fix.mjs","smoke:telegram:setup":"npm run build && npm run smoke:telegram:setup:run","smoke:ui:browser:run":"node scripts/smoke-ui-browser.mjs","smoke:zalo:setup:run":"node scripts/smoke-zalo-setup.mjs","smoke:doctor:json:run":"node scripts/smoke-cli-temp-runtime.mjs doctor-json","smoke:doctor:exit-code":"npm run build && node scripts/smoke-doctor-exit-code.mjs","smoke:telegram:setup:run":"node scripts/smoke-telegram-setup.mjs","smoke:channels:doctor:json":"npm run build && npm run smoke:channels:doctor:json:run","smoke:ui:onboarding:browser":"npm run build && node scripts/smoke-ui-onboarding-browser.mjs","smoke:channels:doctor:json:run":"node scripts/smoke-channels-doctor-json.mjs"},"_npmUser":{"name":"andynguyenn","email":"j22487069@icloud.com"},"_npmVersion":"11.17.0","description":"Vietnamese-first bestie agent CLI.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"clsx":"^2.1.1","pngjs":"^7.0.0","react":"^19.2.8","three":"^0.185.1","grammy":"^1.44.0","zca-js":"2.1.2","mammoth":"^1.12.0","commander":"^14.0.3","cytoscape":"^3.34.0","iso-639-1":"^3.1.6","pdf-parse":"^1.1.1","react-dom":"^19.2.8","lucide-react":"^1.28.0","@google/genai":"^2.12.0","3d-force-graph":"^1.80.0","better-sqlite3":"^12.11.1","tailwind-merge":"^3.6.0","@grammyjs/types":"^3.28.0","three-spritetext":"^1.10.0","@inquirer/prompts":"^8.5.2","@radix-ui/react-slot":"^1.3.3","class-variance-authority":"^0.7.1","@elevenlabs/elevenlabs-js":"^2.57.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.2","vite":"^8.2.0","postcss":"^8.5.25","playwright":"^1.61.1","typescript":"^5.5.4","@types/node":"^20.14.15","tailwindcss":"^3.4.17","@types/pngjs":"^6.0.5","@types/react":"^19.2.18","@types/three":"^0.185.3","autoprefixer":"^10.5.4","@types/react-dom":"^19.2.4","@vitejs/plugin-react":"^6.0.5","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/bestie-agent_0.1.53_1787110699667_0.4871022453826981","host":"s3://npm-registry-packages-npm-production"}},"0.1.54":{"name":"bestie-agent","version":"0.1.54","_id":"bestie-agent@0.1.54","maintainers":[{"name":"andynguyenn","email":"j22487069@icloud.com"}],"bin":{"bestie":"dist/cli/index.js"},"dist":{"shasum":"2655d00a692a2c5d0df4e8413d7fc4b2578beda0","tarball":"https://registry.npmjs.org/bestie-agent/-/bestie-agent-0.1.54.tgz","fileCount":188,"integrity":"sha512-hdT0nOwrbzEHpv31pZ+tpONMpxSdbKtO7dJy7zu423VE35KIzpFjOXO2zx0CuA09NqzCu8FBk7IVfnFvWSq6mA==","signatures":[{"sig":"MEUCIQCrSGljyEZgdUwxrpDw7+sUpoQi5rEKNegAT9MqamZ2AgIgL4rgvqOQdA3m2VpMbHdd5UAbcprni357m01G55n92s0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5291601},"type":"module","engines":{"node":">=22"},"gitHead":"08b0cbdd90fe6b56bf0fe8f93d8e94c69b5f8dc8","scripts":{"dev":"tsx src/cli/index.ts","test":"npm run build && node --test dist/**/*.test.js","build":"tsc -p tsconfig.json && npm run build:ui && node -e \"import('node:fs/promises').then(({ chmod }) => chmod('dist/cli/index.js', 0o755))\"","clean":"rm -rf dist","smoke":"npm run build && npm run smoke:status:run && npm run smoke:doctor:run && npm run smoke:doctor:json:run && npm run smoke:channels:doctor:json:run && npm run smoke:doctor:fix:run && npm run smoke:chat:run && npm run smoke:onboard:run && npm run smoke:telegram:setup:run && npm run smoke:zalo:setup:run","start":"node dist/cli/index.js","prepack":"npm run clean && npm run build","build:ui":"tsc -p web/tsconfig.json --noEmit && vite build --config web/vite.config.ts","smoke:ui":"npm run build && npm run smoke:ui:run","smoke:mcp":"npm run build && npm run smoke:mcp:run","pack:check":"npm run clean && npm run build && npm pack --dry-run","smoke:chat":"npm run build && npm run smoke:chat:run","smoke:zalo":"npm run build && npm run smoke:zalo:run","smoke:tools":"npm run build && npm run smoke:tools:run","smoke:doctor":"npm run build && npm run smoke:doctor:run","smoke:status":"npm run build && npm run smoke:status:run","smoke:ui:all":"npm run build && npm run smoke:ui:run && npm run smoke:ui:browser:run && node scripts/smoke-ui-onboarding-browser.mjs","smoke:ui:run":"node scripts/smoke-ui.mjs","smoke:mcp:run":"node scripts/smoke-mcp.mjs","smoke:onboard":"npm run build && npm run smoke:onboard:run","eval:character":"npm run build && node --test dist/character/prompt-generator.test.js dist/character/character-eval-cases.test.js","prepublishOnly":"npm test","smoke:chat:run":"node scripts/smoke-cli-temp-runtime.mjs chat","smoke:telegram":"npm run build && npm run smoke:telegram:run","smoke:zalo:run":"node scripts/smoke-zalo-disabled.mjs","smoke:installer":"npm run build && node scripts/smoke-installer.mjs","smoke:tools:run":"node dist/cli/index.js tools logs --lines 5 | grep -q 'action_permission_decision' && node dist/cli/index.js tools memories --limit 5 >/dev/null && node dist/cli/index.js tools git status >/dev/null","smoke:zalo:real":"npm run build && node scripts/smoke-zalo-real.mjs","smoke:doctor:fix":"npm run build && npm run smoke:doctor:fix:run","smoke:doctor:run":"node scripts/smoke-cli-temp-runtime.mjs doctor","smoke:status:run":"node scripts/smoke-cli-temp-runtime.mjs status","smoke:ui:browser":"npm run build && npm run smoke:ui:browser:run","smoke:zalo:setup":"npm run build && npm run smoke:zalo:setup:run","smoke:doctor:json":"npm run build && npm run smoke:doctor:json:run","smoke:onboard:run":"tmpdir=$(mktemp -d) && cd $tmpdir && printf 'Bestie\\nBoss\\nask\\nopenai-compatible\\nhttp://127.0.0.1:9/v1\\ntest-model\\ntest-key\\n' | HOME=$tmpdir node $INIT_CWD/dist/cli/index.js onboard --skip-provider-test; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:run":"tmpdir=$(mktemp -d) && cd $tmpdir && HOME=$tmpdir node $INIT_CWD/dist/cli/index.js channels telegram 2>&1 | grep -q 'Telegram is not enabled'; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:real":"npm run build && node scripts/smoke-telegram-real.mjs","eval:character:cases":"npm run build && node --test dist/character/character-eval-cases.test.js","smoke:doctor:fix:run":"node scripts/smoke-doctor-fix.mjs","smoke:telegram:setup":"npm run build && npm run smoke:telegram:setup:run","smoke:ui:browser:run":"node scripts/smoke-ui-browser.mjs","smoke:zalo:setup:run":"node scripts/smoke-zalo-setup.mjs","smoke:doctor:json:run":"node scripts/smoke-cli-temp-runtime.mjs doctor-json","smoke:doctor:exit-code":"npm run build && node scripts/smoke-doctor-exit-code.mjs","smoke:telegram:setup:run":"node scripts/smoke-telegram-setup.mjs","smoke:channels:doctor:json":"npm run build && npm run smoke:channels:doctor:json:run","smoke:ui:onboarding:browser":"npm run build && node scripts/smoke-ui-onboarding-browser.mjs","smoke:channels:doctor:json:run":"node scripts/smoke-channels-doctor-json.mjs"},"_npmUser":{"name":"andynguyenn","email":"j22487069@icloud.com"},"_npmVersion":"11.17.0","description":"Vietnamese-first bestie agent CLI.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"clsx":"^2.1.1","pngjs":"^7.0.0","react":"^19.2.8","three":"^0.185.1","grammy":"^1.44.0","zca-js":"2.1.2","mammoth":"^1.12.0","commander":"^14.0.3","cytoscape":"^3.34.0","iso-639-1":"^3.1.6","pdf-parse":"^1.1.1","react-dom":"^19.2.8","lucide-react":"^1.28.0","@google/genai":"^2.12.0","3d-force-graph":"^1.80.0","better-sqlite3":"^12.11.1","tailwind-merge":"^3.6.0","@grammyjs/types":"^3.28.0","three-spritetext":"^1.10.0","@inquirer/prompts":"^8.5.2","@radix-ui/react-slot":"^1.3.3","class-variance-authority":"^0.7.1","@elevenlabs/elevenlabs-js":"^2.57.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.2","vite":"^8.2.0","postcss":"^8.5.25","playwright":"^1.61.1","typescript":"^5.5.4","@types/node":"^20.14.15","tailwindcss":"^3.4.17","@types/pngjs":"^6.0.5","@types/react":"^19.2.18","@types/three":"^0.185.3","autoprefixer":"^10.5.4","@types/react-dom":"^19.2.4","@vitejs/plugin-react":"^6.0.5","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/bestie-agent_0.1.54_1787136530714_0.9950333860767342","host":"s3://npm-registry-packages-npm-production"}},"0.1.55":{"name":"bestie-agent","version":"0.1.55","_id":"bestie-agent@0.1.55","maintainers":[{"name":"andynguyenn","email":"j22487069@icloud.com"}],"bin":{"bestie":"dist/cli/index.js"},"dist":{"shasum":"5f9cf179257dd6322fae03d1ce738dcdd31ad9a9","tarball":"https://registry.npmjs.org/bestie-agent/-/bestie-agent-0.1.55.tgz","fileCount":188,"integrity":"sha512-lcAG2Nntd2QNkL7YqMr967MH+dCSWQMth7SxyNvfq8nbr5JSZArC3Dd9pK5Xt1cEnK0Q4KPrCPEuBwTKQv61Fg==","signatures":[{"sig":"MEQCIEy1YsoWMjsKo77E52Ho+ZQQYNWrbvFkhnKlk/NVfdhtAiBCCvufp3Zz0jh0nL17FatWHMr5Ao9pLZtS3xd6tsJ2Mw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5301325},"type":"module","engines":{"node":">=22"},"gitHead":"58f80ea7163b3e279f1ae42cb4fe7a3bcdacc200","scripts":{"dev":"tsx src/cli/index.ts","test":"npm run build && node --test dist/**/*.test.js","build":"tsc -p tsconfig.json && npm run build:ui && node -e \"import('node:fs/promises').then(({ chmod }) => chmod('dist/cli/index.js', 0o755))\"","clean":"rm -rf dist","smoke":"npm run build && npm run smoke:status:run && npm run smoke:doctor:run && npm run smoke:doctor:json:run && npm run smoke:channels:doctor:json:run && npm run smoke:doctor:fix:run && npm run smoke:chat:run && npm run smoke:onboard:run && npm run smoke:telegram:setup:run && npm run smoke:zalo:setup:run","start":"node dist/cli/index.js","prepack":"npm run clean && npm run build","build:ui":"tsc -p web/tsconfig.json --noEmit && vite build --config web/vite.config.ts","smoke:ui":"npm run build && npm run smoke:ui:run","smoke:mcp":"npm run build && npm run smoke:mcp:run","pack:check":"npm run clean && npm run build && npm pack --dry-run","smoke:chat":"npm run build && npm run smoke:chat:run","smoke:zalo":"npm run build && npm run smoke:zalo:run","smoke:tools":"npm run build && npm run smoke:tools:run","smoke:doctor":"npm run build && npm run smoke:doctor:run","smoke:status":"npm run build && npm run smoke:status:run","smoke:ui:all":"npm run build && npm run smoke:ui:run && npm run smoke:ui:browser:run && node scripts/smoke-ui-onboarding-browser.mjs","smoke:ui:run":"node scripts/smoke-ui.mjs","smoke:mcp:run":"node scripts/smoke-mcp.mjs","smoke:onboard":"npm run build && npm run smoke:onboard:run","eval:character":"npm run build && node --test dist/character/prompt-generator.test.js dist/character/character-eval-cases.test.js","prepublishOnly":"npm test","smoke:chat:run":"node scripts/smoke-cli-temp-runtime.mjs chat","smoke:telegram":"npm run build && npm run smoke:telegram:run","smoke:zalo:run":"node scripts/smoke-zalo-disabled.mjs","smoke:installer":"npm run build && node scripts/smoke-installer.mjs","smoke:tools:run":"node dist/cli/index.js tools logs --lines 5 | grep -q 'action_permission_decision' && node dist/cli/index.js tools memories --limit 5 >/dev/null && node dist/cli/index.js tools git status >/dev/null","smoke:zalo:real":"npm run build && node scripts/smoke-zalo-real.mjs","smoke:doctor:fix":"npm run build && npm run smoke:doctor:fix:run","smoke:doctor:run":"node scripts/smoke-cli-temp-runtime.mjs doctor","smoke:status:run":"node scripts/smoke-cli-temp-runtime.mjs status","smoke:ui:browser":"npm run build && npm run smoke:ui:browser:run","smoke:zalo:setup":"npm run build && npm run smoke:zalo:setup:run","smoke:doctor:json":"npm run build && npm run smoke:doctor:json:run","smoke:onboard:run":"tmpdir=$(mktemp -d) && cd $tmpdir && printf 'Bestie\\nBoss\\nask\\nopenai-compatible\\nhttp://127.0.0.1:9/v1\\ntest-model\\ntest-key\\n' | HOME=$tmpdir node $INIT_CWD/dist/cli/index.js onboard --skip-provider-test; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:run":"tmpdir=$(mktemp -d) && cd $tmpdir && HOME=$tmpdir node $INIT_CWD/dist/cli/index.js channels telegram 2>&1 | grep -q 'Telegram is not enabled'; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:real":"npm run build && node scripts/smoke-telegram-real.mjs","eval:character:cases":"npm run build && node --test dist/character/character-eval-cases.test.js","smoke:doctor:fix:run":"node scripts/smoke-doctor-fix.mjs","smoke:telegram:setup":"npm run build && npm run smoke:telegram:setup:run","smoke:ui:browser:run":"node scripts/smoke-ui-browser.mjs","smoke:zalo:setup:run":"node scripts/smoke-zalo-setup.mjs","smoke:doctor:json:run":"node scripts/smoke-cli-temp-runtime.mjs doctor-json","smoke:doctor:exit-code":"npm run build && node scripts/smoke-doctor-exit-code.mjs","smoke:telegram:setup:run":"node scripts/smoke-telegram-setup.mjs","smoke:channels:doctor:json":"npm run build && npm run smoke:channels:doctor:json:run","smoke:ui:onboarding:browser":"npm run build && node scripts/smoke-ui-onboarding-browser.mjs","smoke:channels:doctor:json:run":"node scripts/smoke-channels-doctor-json.mjs"},"_npmUser":{"name":"andynguyenn","email":"j22487069@icloud.com"},"_npmVersion":"11.17.0","description":"Vietnamese-first bestie agent CLI.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"clsx":"^2.1.1","pngjs":"^7.0.0","react":"^19.2.8","three":"^0.185.1","grammy":"^1.44.0","zca-js":"2.1.2","mammoth":"^1.12.0","commander":"^14.0.3","cytoscape":"^3.34.0","iso-639-1":"^3.1.6","pdf-parse":"^1.1.1","react-dom":"^19.2.8","lucide-react":"^1.28.0","@google/genai":"^2.12.0","3d-force-graph":"^1.80.0","better-sqlite3":"^12.11.1","tailwind-merge":"^3.6.0","@grammyjs/types":"^3.28.0","three-spritetext":"^1.10.0","@inquirer/prompts":"^8.5.2","@radix-ui/react-slot":"^1.3.3","class-variance-authority":"^0.7.1","@elevenlabs/elevenlabs-js":"^2.57.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.2","vite":"^8.2.0","postcss":"^8.5.25","playwright":"^1.61.1","typescript":"^5.5.4","@types/node":"^20.14.15","tailwindcss":"^3.4.17","@types/pngjs":"^6.0.5","@types/react":"^19.2.18","@types/three":"^0.185.3","autoprefixer":"^10.5.4","@types/react-dom":"^19.2.4","@vitejs/plugin-react":"^6.0.5","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/bestie-agent_0.1.55_1787192692920_0.39147465677032334","host":"s3://npm-registry-packages-npm-production"}},"0.1.56":{"name":"bestie-agent","version":"0.1.56","_id":"bestie-agent@0.1.56","maintainers":[{"name":"andynguyenn","email":"j22487069@icloud.com"}],"bin":{"bestie":"dist/cli/index.js"},"dist":{"shasum":"d2d78ebc3cfca8c4707cf88c1ab4f1562bed0596","tarball":"https://registry.npmjs.org/bestie-agent/-/bestie-agent-0.1.56.tgz","fileCount":188,"integrity":"sha512-hi6bQ1xuQim+VhzmgRGEL4965hxXohP6y9T05Og3VFLaw8ccOfbMqDqu0XBA+znQMBT1dQAVKXNEbpOazNWTbA==","signatures":[{"sig":"MEUCIEaAGdeqZuFRcOuLrOQZ3vGzaZy0K6qDYpx8rFGA9uZ3AiEA6YqJIi0DzX9L77hEIGFolhNAmCz03+QgEQ7Q/6TM9gU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5300773},"type":"module","engines":{"node":">=22"},"gitHead":"1f513d21745254d99e12c8fdaa2da1350ee3c793","scripts":{"dev":"tsx src/cli/index.ts","test":"npm run build && node --test dist/**/*.test.js","build":"tsc -p tsconfig.json && npm run build:ui && node -e \"import('node:fs/promises').then(({ chmod }) => chmod('dist/cli/index.js', 0o755))\"","clean":"rm -rf dist","smoke":"npm run build && npm run smoke:status:run && npm run smoke:doctor:run && npm run smoke:doctor:json:run && npm run smoke:channels:doctor:json:run && npm run smoke:doctor:fix:run && npm run smoke:chat:run && npm run smoke:onboard:run && npm run smoke:telegram:setup:run && npm run smoke:zalo:setup:run","start":"node dist/cli/index.js","prepack":"npm run clean && npm run build","build:ui":"tsc -p web/tsconfig.json --noEmit && vite build --config web/vite.config.ts","smoke:ui":"npm run build && npm run smoke:ui:run","smoke:mcp":"npm run build && npm run smoke:mcp:run","pack:check":"npm run clean && npm run build && npm pack --dry-run","smoke:chat":"npm run build && npm run smoke:chat:run","smoke:zalo":"npm run build && npm run smoke:zalo:run","smoke:tools":"npm run build && npm run smoke:tools:run","smoke:doctor":"npm run build && npm run smoke:doctor:run","smoke:status":"npm run build && npm run smoke:status:run","smoke:ui:all":"npm run build && npm run smoke:ui:run && npm run smoke:ui:browser:run && node scripts/smoke-ui-onboarding-browser.mjs","smoke:ui:run":"node scripts/smoke-ui.mjs","smoke:mcp:run":"node scripts/smoke-mcp.mjs","smoke:onboard":"npm run build && npm run smoke:onboard:run","eval:character":"npm run build && node --test dist/character/prompt-generator.test.js dist/character/character-eval-cases.test.js","prepublishOnly":"npm test","smoke:chat:run":"node scripts/smoke-cli-temp-runtime.mjs chat","smoke:telegram":"npm run build && npm run smoke:telegram:run","smoke:zalo:run":"node scripts/smoke-zalo-disabled.mjs","smoke:installer":"npm run build && node scripts/smoke-installer.mjs","smoke:tools:run":"node dist/cli/index.js tools logs --lines 5 | grep -q 'action_permission_decision' && node dist/cli/index.js tools memories --limit 5 >/dev/null && node dist/cli/index.js tools git status >/dev/null","smoke:zalo:real":"npm run build && node scripts/smoke-zalo-real.mjs","smoke:doctor:fix":"npm run build && npm run smoke:doctor:fix:run","smoke:doctor:run":"node scripts/smoke-cli-temp-runtime.mjs doctor","smoke:status:run":"node scripts/smoke-cli-temp-runtime.mjs status","smoke:ui:browser":"npm run build && npm run smoke:ui:browser:run","smoke:zalo:setup":"npm run build && npm run smoke:zalo:setup:run","smoke:doctor:json":"npm run build && npm run smoke:doctor:json:run","smoke:onboard:run":"tmpdir=$(mktemp -d) && cd $tmpdir && printf 'Bestie\\nBoss\\nask\\nopenai-compatible\\nhttp://127.0.0.1:9/v1\\ntest-model\\ntest-key\\n' | HOME=$tmpdir node $INIT_CWD/dist/cli/index.js onboard --skip-provider-test; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:run":"tmpdir=$(mktemp -d) && cd $tmpdir && HOME=$tmpdir node $INIT_CWD/dist/cli/index.js channels telegram 2>&1 | grep -q 'Telegram is not enabled'; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:real":"npm run build && node scripts/smoke-telegram-real.mjs","eval:character:cases":"npm run build && node --test dist/character/character-eval-cases.test.js","smoke:doctor:fix:run":"node scripts/smoke-doctor-fix.mjs","smoke:telegram:setup":"npm run build && npm run smoke:telegram:setup:run","smoke:ui:browser:run":"node scripts/smoke-ui-browser.mjs","smoke:zalo:setup:run":"node scripts/smoke-zalo-setup.mjs","smoke:doctor:json:run":"node scripts/smoke-cli-temp-runtime.mjs doctor-json","smoke:doctor:exit-code":"npm run build && node scripts/smoke-doctor-exit-code.mjs","smoke:telegram:setup:run":"node scripts/smoke-telegram-setup.mjs","smoke:channels:doctor:json":"npm run build && npm run smoke:channels:doctor:json:run","smoke:ui:onboarding:browser":"npm run build && node scripts/smoke-ui-onboarding-browser.mjs","smoke:channels:doctor:json:run":"node scripts/smoke-channels-doctor-json.mjs"},"_npmUser":{"name":"andynguyenn","email":"j22487069@icloud.com"},"_npmVersion":"11.17.0","description":"Vietnamese-first bestie agent CLI.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"clsx":"^2.1.1","pngjs":"^7.0.0","react":"^19.2.8","three":"^0.185.1","grammy":"^1.44.0","zca-js":"2.1.2","mammoth":"^1.12.0","commander":"^14.0.3","cytoscape":"^3.34.0","iso-639-1":"^3.1.6","pdf-parse":"^1.1.1","react-dom":"^19.2.8","lucide-react":"^1.28.0","@google/genai":"^2.12.0","3d-force-graph":"^1.80.0","better-sqlite3":"^12.11.1","tailwind-merge":"^3.6.0","@grammyjs/types":"^3.28.0","three-spritetext":"^1.10.0","@inquirer/prompts":"^8.5.2","@radix-ui/react-slot":"^1.3.3","class-variance-authority":"^0.7.1","@elevenlabs/elevenlabs-js":"^2.57.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.2","vite":"^8.2.0","postcss":"^8.5.25","playwright":"^1.61.1","typescript":"^5.5.4","@types/node":"^20.14.15","tailwindcss":"^3.4.17","@types/pngjs":"^6.0.5","@types/react":"^19.2.18","@types/three":"^0.185.3","autoprefixer":"^10.5.4","@types/react-dom":"^19.2.4","@vitejs/plugin-react":"^6.0.5","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/bestie-agent_0.1.56_1787201213259_0.6581933425076543","host":"s3://npm-registry-packages-npm-production"}},"0.1.57":{"name":"bestie-agent","version":"0.1.57","_id":"bestie-agent@0.1.57","maintainers":[{"name":"andynguyenn","email":"j22487069@icloud.com"}],"bin":{"bestie":"dist/cli/index.js"},"dist":{"shasum":"ab93d767466f22905a5ea0b2d33b4c9c87b50a74","tarball":"https://registry.npmjs.org/bestie-agent/-/bestie-agent-0.1.57.tgz","fileCount":188,"integrity":"sha512-iNDoiQCJ/RiRAFEq+fD40OUVegOwErcT/nGwsQao18XepK4BTLuNoIENNaHvF9UeEcZ1xqAFHBbmswgx/8KPjw==","signatures":[{"sig":"MEQCIA6m3RCYa3MknnqP+Aw+ho9hpt7x4t4XgOZwo5ZLhuCfAiBJB2NeWT19ushBF7RS0cIT54wrSPex5haK3iQ4D4PwJA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5301214},"type":"module","engines":{"node":">=22"},"gitHead":"7b239e651ba2751d9d43c90f41602e63375f5f36","scripts":{"dev":"tsx src/cli/index.ts","test":"npm run build && node --test dist/**/*.test.js","build":"tsc -p tsconfig.json && npm run build:ui && node -e \"import('node:fs/promises').then(({ chmod }) => chmod('dist/cli/index.js', 0o755))\"","clean":"rm -rf dist","smoke":"npm run build && npm run smoke:status:run && npm run smoke:doctor:run && npm run smoke:doctor:json:run && npm run smoke:channels:doctor:json:run && npm run smoke:doctor:fix:run && npm run smoke:chat:run && npm run smoke:onboard:run && npm run smoke:telegram:setup:run && npm run smoke:zalo:setup:run","start":"node dist/cli/index.js","prepack":"npm run clean && npm run build","build:ui":"tsc -p web/tsconfig.json --noEmit && vite build --config web/vite.config.ts","smoke:ui":"npm run build && npm run smoke:ui:run","smoke:mcp":"npm run build && npm run smoke:mcp:run","pack:check":"npm run clean && npm run build && npm pack --dry-run","smoke:chat":"npm run build && npm run smoke:chat:run","smoke:zalo":"npm run build && npm run smoke:zalo:run","smoke:tools":"npm run build && npm run smoke:tools:run","smoke:doctor":"npm run build && npm run smoke:doctor:run","smoke:status":"npm run build && npm run smoke:status:run","smoke:ui:all":"npm run build && npm run smoke:ui:run && npm run smoke:ui:browser:run && node scripts/smoke-ui-onboarding-browser.mjs","smoke:ui:run":"node scripts/smoke-ui.mjs","smoke:mcp:run":"node scripts/smoke-mcp.mjs","smoke:onboard":"npm run build && npm run smoke:onboard:run","eval:character":"npm run build && node --test dist/character/prompt-generator.test.js dist/character/character-eval-cases.test.js","prepublishOnly":"npm test","smoke:chat:run":"node scripts/smoke-cli-temp-runtime.mjs chat","smoke:telegram":"npm run build && npm run smoke:telegram:run","smoke:zalo:run":"node scripts/smoke-zalo-disabled.mjs","smoke:installer":"npm run build && node scripts/smoke-installer.mjs","smoke:tools:run":"node dist/cli/index.js tools logs --lines 5 | grep -q 'action_permission_decision' && node dist/cli/index.js tools memories --limit 5 >/dev/null && node dist/cli/index.js tools git status >/dev/null","smoke:zalo:real":"npm run build && node scripts/smoke-zalo-real.mjs","smoke:doctor:fix":"npm run build && npm run smoke:doctor:fix:run","smoke:doctor:run":"node scripts/smoke-cli-temp-runtime.mjs doctor","smoke:status:run":"node scripts/smoke-cli-temp-runtime.mjs status","smoke:ui:browser":"npm run build && npm run smoke:ui:browser:run","smoke:zalo:setup":"npm run build && npm run smoke:zalo:setup:run","smoke:doctor:json":"npm run build && npm run smoke:doctor:json:run","smoke:onboard:run":"tmpdir=$(mktemp -d) && cd $tmpdir && printf 'Bestie\\nBoss\\nask\\nopenai-compatible\\nhttp://127.0.0.1:9/v1\\ntest-model\\ntest-key\\n' | HOME=$tmpdir node $INIT_CWD/dist/cli/index.js onboard --skip-provider-test; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:run":"tmpdir=$(mktemp -d) && cd $tmpdir && HOME=$tmpdir node $INIT_CWD/dist/cli/index.js channels telegram 2>&1 | grep -q 'Telegram is not enabled'; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:real":"npm run build && node scripts/smoke-telegram-real.mjs","eval:character:cases":"npm run build && node --test dist/character/character-eval-cases.test.js","smoke:doctor:fix:run":"node scripts/smoke-doctor-fix.mjs","smoke:telegram:setup":"npm run build && npm run smoke:telegram:setup:run","smoke:ui:browser:run":"node scripts/smoke-ui-browser.mjs","smoke:zalo:setup:run":"node scripts/smoke-zalo-setup.mjs","smoke:doctor:json:run":"node scripts/smoke-cli-temp-runtime.mjs doctor-json","smoke:doctor:exit-code":"npm run build && node scripts/smoke-doctor-exit-code.mjs","smoke:telegram:setup:run":"node scripts/smoke-telegram-setup.mjs","smoke:channels:doctor:json":"npm run build && npm run smoke:channels:doctor:json:run","smoke:ui:onboarding:browser":"npm run build && node scripts/smoke-ui-onboarding-browser.mjs","smoke:channels:doctor:json:run":"node scripts/smoke-channels-doctor-json.mjs"},"_npmUser":{"name":"andynguyenn","email":"j22487069@icloud.com"},"_npmVersion":"11.17.0","description":"Vietnamese-first bestie agent CLI.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"clsx":"^2.1.1","pngjs":"^7.0.0","react":"^19.2.8","three":"^0.185.1","grammy":"^1.44.0","zca-js":"2.1.2","mammoth":"^1.12.0","commander":"^14.0.3","cytoscape":"^3.34.0","iso-639-1":"^3.1.6","pdf-parse":"^1.1.1","react-dom":"^19.2.8","lucide-react":"^1.28.0","@google/genai":"^2.12.0","3d-force-graph":"^1.80.0","better-sqlite3":"^12.11.1","tailwind-merge":"^3.6.0","@grammyjs/types":"^3.28.0","three-spritetext":"^1.10.0","@inquirer/prompts":"^8.5.2","@radix-ui/react-slot":"^1.3.3","class-variance-authority":"^0.7.1","@elevenlabs/elevenlabs-js":"^2.57.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.2","vite":"^8.2.0","postcss":"^8.5.25","playwright":"^1.61.1","typescript":"^5.5.4","@types/node":"^20.14.15","tailwindcss":"^3.4.17","@types/pngjs":"^6.0.5","@types/react":"^19.2.18","@types/three":"^0.185.3","autoprefixer":"^10.5.4","@types/react-dom":"^19.2.4","@vitejs/plugin-react":"^6.0.5","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/bestie-agent_0.1.57_1787210222695_0.16041254612902844","host":"s3://npm-registry-packages-npm-production"}},"0.1.58":{"name":"bestie-agent","version":"0.1.58","_id":"bestie-agent@0.1.58","maintainers":[{"name":"andynguyenn","email":"j22487069@icloud.com"}],"bin":{"bestie":"dist/cli/index.js"},"dist":{"shasum":"f69b603985f162b5bb2dd3fbd2bbdfdab3cffe7f","tarball":"https://registry.npmjs.org/bestie-agent/-/bestie-agent-0.1.58.tgz","fileCount":190,"integrity":"sha512-n+wZwTVNlYmzsGX1ze2fY6M99g3I+roJRfVp5xr5uNBmaWR/TIpSPpv/ZRD/WSzCFG2ozlG+A/HZ+AUgJSd2dQ==","signatures":[{"sig":"MEUCIQDJk0mtwcn6D/gdgmSNN0LPJtDhkcVheYKjrTsl4I5QeQIgUdY11qqSTlKwR/MpFm534TyX6c98x8gBvWOpPCgkfqw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5326959},"type":"module","engines":{"node":">=22"},"gitHead":"189a940fd28f8200079148f7838b2cf48632ff06","scripts":{"dev":"tsx src/cli/index.ts","test":"npm run build && node --test dist/**/*.test.js","build":"tsc -p tsconfig.json && npm run build:ui && node -e \"import('node:fs/promises').then(({ chmod }) => chmod('dist/cli/index.js', 0o755))\"","clean":"rm -rf dist","smoke":"npm run build && npm run smoke:status:run && npm run smoke:doctor:run && npm run smoke:doctor:json:run && npm run smoke:channels:doctor:json:run && npm run smoke:doctor:fix:run && npm run smoke:chat:run && npm run smoke:onboard:run && npm run smoke:telegram:setup:run && npm run smoke:zalo:setup:run","start":"node dist/cli/index.js","prepack":"npm run clean && npm run build","build:ui":"tsc -p web/tsconfig.json --noEmit && vite build --config web/vite.config.ts","smoke:ui":"npm run build && npm run smoke:ui:run","smoke:mcp":"npm run build && npm run smoke:mcp:run","pack:check":"npm run clean && npm run build && npm pack --dry-run","smoke:chat":"npm run build && npm run smoke:chat:run","smoke:zalo":"npm run build && npm run smoke:zalo:run","smoke:tools":"npm run build && npm run smoke:tools:run","smoke:doctor":"npm run build && npm run smoke:doctor:run","smoke:status":"npm run build && npm run smoke:status:run","smoke:ui:all":"npm run build && npm run smoke:ui:run && npm run smoke:ui:browser:run && node scripts/smoke-ui-onboarding-browser.mjs","smoke:ui:run":"node scripts/smoke-ui.mjs","smoke:mcp:run":"node scripts/smoke-mcp.mjs","smoke:onboard":"npm run build && npm run smoke:onboard:run","eval:character":"npm run build && node --test dist/character/prompt-generator.test.js dist/character/character-eval-cases.test.js","prepublishOnly":"npm test","smoke:chat:run":"node scripts/smoke-cli-temp-runtime.mjs chat","smoke:telegram":"npm run build && npm run smoke:telegram:run","smoke:zalo:run":"node scripts/smoke-zalo-disabled.mjs","smoke:installer":"npm run build && node scripts/smoke-installer.mjs","smoke:tools:run":"node dist/cli/index.js tools logs --lines 5 | grep -q 'action_permission_decision' && node dist/cli/index.js tools memories --limit 5 >/dev/null && node dist/cli/index.js tools git status >/dev/null","smoke:zalo:real":"npm run build && node scripts/smoke-zalo-real.mjs","smoke:doctor:fix":"npm run build && npm run smoke:doctor:fix:run","smoke:doctor:run":"node scripts/smoke-cli-temp-runtime.mjs doctor","smoke:status:run":"node scripts/smoke-cli-temp-runtime.mjs status","smoke:ui:browser":"npm run build && npm run smoke:ui:browser:run","smoke:zalo:setup":"npm run build && npm run smoke:zalo:setup:run","smoke:doctor:json":"npm run build && npm run smoke:doctor:json:run","smoke:onboard:run":"tmpdir=$(mktemp -d) && cd $tmpdir && printf 'Bestie\\nBoss\\nask\\nopenai-compatible\\nhttp://127.0.0.1:9/v1\\ntest-model\\ntest-key\\n' | HOME=$tmpdir node $INIT_CWD/dist/cli/index.js onboard --skip-provider-test; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:run":"tmpdir=$(mktemp -d) && cd $tmpdir && HOME=$tmpdir node $INIT_CWD/dist/cli/index.js channels telegram 2>&1 | grep -q 'Telegram is not enabled'; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:real":"npm run build && node scripts/smoke-telegram-real.mjs","eval:character:cases":"npm run build && node --test dist/character/character-eval-cases.test.js","smoke:doctor:fix:run":"node scripts/smoke-doctor-fix.mjs","smoke:telegram:setup":"npm run build && npm run smoke:telegram:setup:run","smoke:ui:browser:run":"node scripts/smoke-ui-browser.mjs","smoke:zalo:setup:run":"node scripts/smoke-zalo-setup.mjs","smoke:doctor:json:run":"node scripts/smoke-cli-temp-runtime.mjs doctor-json","smoke:doctor:exit-code":"npm run build && node scripts/smoke-doctor-exit-code.mjs","smoke:telegram:setup:run":"node scripts/smoke-telegram-setup.mjs","smoke:channels:doctor:json":"npm run build && npm run smoke:channels:doctor:json:run","smoke:ui:onboarding:browser":"npm run build && node scripts/smoke-ui-onboarding-browser.mjs","smoke:channels:doctor:json:run":"node scripts/smoke-channels-doctor-json.mjs"},"_npmUser":{"name":"andynguyenn","email":"j22487069@icloud.com"},"_npmVersion":"11.17.0","description":"Vietnamese-first bestie agent CLI.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"clsx":"^2.1.1","pngjs":"^7.0.0","react":"^19.2.8","three":"^0.185.1","grammy":"^1.44.0","zca-js":"2.1.2","mammoth":"^1.12.0","commander":"^14.0.3","cytoscape":"^3.34.0","iso-639-1":"^3.1.6","pdf-parse":"^1.1.1","react-dom":"^19.2.8","lucide-react":"^1.28.0","@google/genai":"^2.12.0","3d-force-graph":"^1.80.0","better-sqlite3":"^12.11.1","tailwind-merge":"^3.6.0","@grammyjs/types":"^3.28.0","three-spritetext":"^1.10.0","@inquirer/prompts":"^8.5.2","@radix-ui/react-slot":"^1.3.3","class-variance-authority":"^0.7.1","@elevenlabs/elevenlabs-js":"^2.57.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.2","vite":"^8.2.0","postcss":"^8.5.25","playwright":"^1.61.1","typescript":"^5.5.4","@types/node":"^20.14.15","tailwindcss":"^3.4.17","@types/pngjs":"^6.0.5","@types/react":"^19.2.18","@types/three":"^0.185.3","autoprefixer":"^10.5.4","@types/react-dom":"^19.2.4","@vitejs/plugin-react":"^6.0.5","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/bestie-agent_0.1.58_1787237155405_0.7926034402021132","host":"s3://npm-registry-packages-npm-production"}},"0.1.59":{"name":"bestie-agent","version":"0.1.59","_id":"bestie-agent@0.1.59","maintainers":[{"name":"andynguyenn","email":"j22487069@icloud.com"}],"bin":{"bestie":"dist/cli/index.js"},"dist":{"shasum":"ce137e4003f9f4bcb3660de2668788e465f2c825","tarball":"https://registry.npmjs.org/bestie-agent/-/bestie-agent-0.1.59.tgz","fileCount":191,"integrity":"sha512-48EpUnvO0XIBCuofln7zwLPOTMz2pQzmfP1K1SLDlZ7vWFa77dKBa5VqzB5K8bd4uD4309lQ3q6SCoMDM3RF8A==","signatures":[{"sig":"MEUCIGPvqqX/jlaTq6m3xHk17Nv9W3dryFhcnH2h1PrHtlhNAiEAvqL6Qg15kfoRDFX+++cwmw+dNYooL0jdndRhFQjBP00=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5329617},"type":"module","engines":{"node":">=22"},"gitHead":"3c2cf24ee52f11e001c268d318df9321f7544cf1","scripts":{"dev":"tsx src/cli/index.ts","test":"npm run build && node --test dist/**/*.test.js","build":"tsc -p tsconfig.json && npm run build:ui && node -e \"import('node:fs/promises').then(({ chmod }) => chmod('dist/cli/index.js', 0o755))\"","clean":"rm -rf dist","smoke":"npm run build && npm run smoke:status:run && npm run smoke:doctor:run && npm run smoke:doctor:json:run && npm run smoke:channels:doctor:json:run && npm run smoke:doctor:fix:run && npm run smoke:chat:run && npm run smoke:onboard:run && npm run smoke:telegram:setup:run && npm run smoke:zalo:setup:run","start":"node dist/cli/index.js","prepack":"npm run clean && npm run build","build:ui":"tsc -p web/tsconfig.json --noEmit && vite build --config web/vite.config.ts","smoke:ui":"npm run build && npm run smoke:ui:run","smoke:mcp":"npm run build && npm run smoke:mcp:run","pack:check":"npm run clean && npm run build && npm pack --dry-run","smoke:chat":"npm run build && npm run smoke:chat:run","smoke:zalo":"npm run build && npm run smoke:zalo:run","smoke:tools":"npm run build && npm run smoke:tools:run","smoke:doctor":"npm run build && npm run smoke:doctor:run","smoke:status":"npm run build && npm run smoke:status:run","smoke:ui:all":"npm run build && npm run smoke:ui:run && npm run smoke:ui:browser:run && node scripts/smoke-ui-onboarding-browser.mjs","smoke:ui:run":"node scripts/smoke-ui.mjs","smoke:mcp:run":"node scripts/smoke-mcp.mjs","smoke:onboard":"npm run build && npm run smoke:onboard:run","eval:character":"npm run build && node --test dist/character/prompt-generator.test.js dist/character/character-eval-cases.test.js","prepublishOnly":"npm test","smoke:chat:run":"node scripts/smoke-cli-temp-runtime.mjs chat","smoke:telegram":"npm run build && npm run smoke:telegram:run","smoke:zalo:run":"node scripts/smoke-zalo-disabled.mjs","smoke:installer":"npm run build && node scripts/smoke-installer.mjs","smoke:tools:run":"node dist/cli/index.js tools logs --lines 5 | grep -q 'action_permission_decision' && node dist/cli/index.js tools memories --limit 5 >/dev/null && node dist/cli/index.js tools git status >/dev/null","smoke:zalo:real":"npm run build && node scripts/smoke-zalo-real.mjs","smoke:doctor:fix":"npm run build && npm run smoke:doctor:fix:run","smoke:doctor:run":"node scripts/smoke-cli-temp-runtime.mjs doctor","smoke:status:run":"node scripts/smoke-cli-temp-runtime.mjs status","smoke:ui:browser":"npm run build && npm run smoke:ui:browser:run","smoke:zalo:setup":"npm run build && npm run smoke:zalo:setup:run","smoke:doctor:json":"npm run build && npm run smoke:doctor:json:run","smoke:onboard:run":"tmpdir=$(mktemp -d) && cd $tmpdir && printf 'Bestie\\nBoss\\nask\\nopenai-compatible\\nhttp://127.0.0.1:9/v1\\ntest-model\\ntest-key\\n' | HOME=$tmpdir node $INIT_CWD/dist/cli/index.js onboard --skip-provider-test; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:run":"tmpdir=$(mktemp -d) && cd $tmpdir && HOME=$tmpdir node $INIT_CWD/dist/cli/index.js channels telegram 2>&1 | grep -q 'Telegram is not enabled'; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:real":"npm run build && node scripts/smoke-telegram-real.mjs","eval:character:cases":"npm run build && node --test dist/character/character-eval-cases.test.js","smoke:doctor:fix:run":"node scripts/smoke-doctor-fix.mjs","smoke:telegram:setup":"npm run build && npm run smoke:telegram:setup:run","smoke:ui:browser:run":"node scripts/smoke-ui-browser.mjs","smoke:zalo:setup:run":"node scripts/smoke-zalo-setup.mjs","smoke:doctor:json:run":"node scripts/smoke-cli-temp-runtime.mjs doctor-json","smoke:doctor:exit-code":"npm run build && node scripts/smoke-doctor-exit-code.mjs","smoke:telegram:setup:run":"node scripts/smoke-telegram-setup.mjs","smoke:channels:doctor:json":"npm run build && npm run smoke:channels:doctor:json:run","smoke:ui:onboarding:browser":"npm run build && node scripts/smoke-ui-onboarding-browser.mjs","smoke:channels:doctor:json:run":"node scripts/smoke-channels-doctor-json.mjs"},"_npmUser":{"name":"andynguyenn","email":"j22487069@icloud.com"},"_npmVersion":"11.17.0","description":"Vietnamese-first bestie agent CLI.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"clsx":"^2.1.1","pngjs":"^7.0.0","react":"^19.2.8","three":"^0.185.1","grammy":"^1.44.0","zca-js":"2.1.2","mammoth":"^1.12.0","commander":"^14.0.3","cytoscape":"^3.34.0","iso-639-1":"^3.1.6","pdf-parse":"^1.1.1","react-dom":"^19.2.8","lucide-react":"^1.28.0","@google/genai":"^2.12.0","3d-force-graph":"^1.80.0","better-sqlite3":"^12.11.1","tailwind-merge":"^3.6.0","@grammyjs/types":"^3.28.0","three-spritetext":"^1.10.0","@inquirer/prompts":"^8.5.2","@radix-ui/react-slot":"^1.3.3","class-variance-authority":"^0.7.1","@elevenlabs/elevenlabs-js":"^2.57.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.2","vite":"^8.2.0","postcss":"^8.5.25","playwright":"^1.61.1","typescript":"^5.5.4","@types/node":"^20.14.15","tailwindcss":"^3.4.17","@types/pngjs":"^6.0.5","@types/react":"^19.2.18","@types/three":"^0.185.3","autoprefixer":"^10.5.4","@types/react-dom":"^19.2.4","@vitejs/plugin-react":"^6.0.5","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/bestie-agent_0.1.59_1787304246676_0.9731355206059535","host":"s3://npm-registry-packages-npm-production"}},"0.1.60":{"name":"bestie-agent","version":"0.1.60","_id":"bestie-agent@0.1.60","maintainers":[{"name":"andynguyenn","email":"j22487069@icloud.com"}],"bin":{"bestie":"dist/cli/index.js"},"dist":{"shasum":"a401be63b2c2e2ce7f55eb72478bdeecbd705caf","tarball":"https://registry.npmjs.org/bestie-agent/-/bestie-agent-0.1.60.tgz","fileCount":190,"integrity":"sha512-V4zTx4rkA8qBjDBJKoDu9B7BqrhX8bMNpfg2XL5D32X+Qv2rrj8hkeIy4osJ2Los0FL5puQYyXEZ/bbawJ9WYw==","signatures":[{"sig":"MEYCIQDu4DsnK6F2KK5rTY6hvBKmsaCASL/dt7VA25fznluvHAIhAJEqoQfw51yNxnFp/VdlvTdPZmEpNBzNFwUqo4IoWyJt","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5330668},"type":"module","engines":{"node":">=22"},"gitHead":"0546905c1fc4fcd43e159f1610ae1fc6e999f586","scripts":{"dev":"tsx src/cli/index.ts","test":"npm run build && node --test dist/**/*.test.js","build":"tsc -p tsconfig.json && npm run build:ui && node -e \"import('node:fs/promises').then(({ chmod }) => chmod('dist/cli/index.js', 0o755))\"","clean":"rm -rf dist","smoke":"npm run build && npm run smoke:status:run && npm run smoke:doctor:run && npm run smoke:doctor:json:run && npm run smoke:channels:doctor:json:run && npm run smoke:doctor:fix:run && npm run smoke:chat:run && npm run smoke:onboard:run && npm run smoke:telegram:setup:run && npm run smoke:zalo:setup:run","start":"node dist/cli/index.js","prepack":"npm run clean && npm run build","build:ui":"tsc -p web/tsconfig.json --noEmit && vite build --config web/vite.config.ts","smoke:ui":"npm run build && npm run smoke:ui:run","smoke:mcp":"npm run build && npm run smoke:mcp:run","pack:check":"npm run clean && npm run build && npm pack --dry-run","smoke:chat":"npm run build && npm run smoke:chat:run","smoke:zalo":"npm run build && npm run smoke:zalo:run","smoke:tools":"npm run build && npm run smoke:tools:run","smoke:doctor":"npm run build && npm run smoke:doctor:run","smoke:status":"npm run build && npm run smoke:status:run","smoke:ui:all":"npm run build && npm run smoke:ui:run && npm run smoke:ui:browser:run && node scripts/smoke-ui-onboarding-browser.mjs","smoke:ui:run":"node scripts/smoke-ui.mjs","smoke:mcp:run":"node scripts/smoke-mcp.mjs","smoke:onboard":"npm run build && npm run smoke:onboard:run","eval:character":"npm run build && node --test dist/character/prompt-generator.test.js dist/character/character-eval-cases.test.js","prepublishOnly":"npm test","smoke:chat:run":"node scripts/smoke-cli-temp-runtime.mjs chat","smoke:telegram":"npm run build && npm run smoke:telegram:run","smoke:zalo:run":"node scripts/smoke-zalo-disabled.mjs","smoke:installer":"npm run build && node scripts/smoke-installer.mjs","smoke:tools:run":"node dist/cli/index.js tools logs --lines 5 | grep -q 'action_permission_decision' && node dist/cli/index.js tools memories --limit 5 >/dev/null && node dist/cli/index.js tools git status >/dev/null","smoke:zalo:real":"npm run build && node scripts/smoke-zalo-real.mjs","smoke:doctor:fix":"npm run build && npm run smoke:doctor:fix:run","smoke:doctor:run":"node scripts/smoke-cli-temp-runtime.mjs doctor","smoke:status:run":"node scripts/smoke-cli-temp-runtime.mjs status","smoke:ui:browser":"npm run build && npm run smoke:ui:browser:run","smoke:zalo:setup":"npm run build && npm run smoke:zalo:setup:run","smoke:doctor:json":"npm run build && npm run smoke:doctor:json:run","smoke:onboard:run":"tmpdir=$(mktemp -d) && cd $tmpdir && printf 'Bestie\\nBoss\\nask\\nopenai-compatible\\nhttp://127.0.0.1:9/v1\\ntest-model\\ntest-key\\n' | HOME=$tmpdir node $INIT_CWD/dist/cli/index.js onboard --skip-provider-test; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:run":"tmpdir=$(mktemp -d) && cd $tmpdir && HOME=$tmpdir node $INIT_CWD/dist/cli/index.js channels telegram 2>&1 | grep -q 'Telegram is not enabled'; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:real":"npm run build && node scripts/smoke-telegram-real.mjs","eval:character:cases":"npm run build && node --test dist/character/character-eval-cases.test.js","smoke:doctor:fix:run":"node scripts/smoke-doctor-fix.mjs","smoke:telegram:setup":"npm run build && npm run smoke:telegram:setup:run","smoke:ui:browser:run":"node scripts/smoke-ui-browser.mjs","smoke:zalo:setup:run":"node scripts/smoke-zalo-setup.mjs","smoke:doctor:json:run":"node scripts/smoke-cli-temp-runtime.mjs doctor-json","smoke:doctor:exit-code":"npm run build && node scripts/smoke-doctor-exit-code.mjs","smoke:telegram:setup:run":"node scripts/smoke-telegram-setup.mjs","smoke:channels:doctor:json":"npm run build && npm run smoke:channels:doctor:json:run","smoke:ui:onboarding:browser":"npm run build && node scripts/smoke-ui-onboarding-browser.mjs","smoke:channels:doctor:json:run":"node scripts/smoke-channels-doctor-json.mjs"},"_npmUser":{"name":"andynguyenn","email":"j22487069@icloud.com"},"_npmVersion":"11.17.0","description":"Vietnamese-first bestie agent CLI.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"clsx":"^2.1.1","pngjs":"^7.0.0","react":"^19.2.8","three":"^0.185.1","grammy":"^1.44.0","zca-js":"2.1.2","mammoth":"^1.12.0","commander":"^14.0.3","cytoscape":"^3.34.0","iso-639-1":"^3.1.6","pdf-parse":"^1.1.1","react-dom":"^19.2.8","lucide-react":"^1.28.0","@google/genai":"^2.12.0","3d-force-graph":"^1.80.0","better-sqlite3":"^12.11.1","tailwind-merge":"^3.6.0","@grammyjs/types":"^3.28.0","three-spritetext":"^1.10.0","@inquirer/prompts":"^8.5.2","@radix-ui/react-slot":"^1.3.3","class-variance-authority":"^0.7.1","@elevenlabs/elevenlabs-js":"^2.57.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.2","vite":"^8.2.0","postcss":"^8.5.25","playwright":"^1.61.1","typescript":"^5.5.4","@types/node":"^20.14.15","tailwindcss":"^3.4.17","@types/pngjs":"^6.0.5","@types/react":"^19.2.18","@types/three":"^0.185.3","autoprefixer":"^10.5.4","@types/react-dom":"^19.2.4","@vitejs/plugin-react":"^6.0.5","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/bestie-agent_0.1.60_1787636160216_0.4413187973460617","host":"s3://npm-registry-packages-npm-production"}},"0.1.61":{"name":"bestie-agent","version":"0.1.61","_id":"bestie-agent@0.1.61","maintainers":[{"name":"andynguyenn","email":"j22487069@icloud.com"}],"bin":{"bestie":"dist/cli/index.js"},"dist":{"shasum":"d249f4f6c9cac7d0cd54da8e00a5f6f7ea3adc01","tarball":"https://registry.npmjs.org/bestie-agent/-/bestie-agent-0.1.61.tgz","fileCount":190,"integrity":"sha512-lCkkE5L+e56G1w2R37gAas69Ulik4n7OUFnr78YjX8RhQHHDuMhCfdQcuJylXcdK5XhUpYCMc+Ois4R0xmzRVw==","signatures":[{"sig":"MEUCIF358rX4IHJCjXdDw1USUlfwCznjl1fvAgzo1s2ufookAiEAs27WS5rgvvQvoI68zbPUkPiEEK2AiSbp51RiUxdhyKU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5331488},"type":"module","engines":{"node":">=22"},"gitHead":"1ebebd59d8dbf994734c1ca4ef0582c5085c2a37","scripts":{"dev":"tsx src/cli/index.ts","test":"npm run build && node --test dist/**/*.test.js","build":"tsc -p tsconfig.json && npm run build:ui && node -e \"import('node:fs/promises').then(({ chmod }) => chmod('dist/cli/index.js', 0o755))\"","clean":"rm -rf dist","smoke":"npm run build && npm run smoke:status:run && npm run smoke:doctor:run && npm run smoke:doctor:json:run && npm run smoke:channels:doctor:json:run && npm run smoke:doctor:fix:run && npm run smoke:chat:run && npm run smoke:onboard:run && npm run smoke:telegram:setup:run && npm run smoke:zalo:setup:run","start":"node dist/cli/index.js","prepack":"npm run clean && npm run build","build:ui":"tsc -p web/tsconfig.json --noEmit && vite build --config web/vite.config.ts","smoke:ui":"npm run build && npm run smoke:ui:run","smoke:mcp":"npm run build && npm run smoke:mcp:run","pack:check":"npm run clean && npm run build && npm pack --dry-run","smoke:chat":"npm run build && npm run smoke:chat:run","smoke:zalo":"npm run build && npm run smoke:zalo:run","smoke:tools":"npm run build && npm run smoke:tools:run","smoke:doctor":"npm run build && npm run smoke:doctor:run","smoke:status":"npm run build && npm run smoke:status:run","smoke:ui:all":"npm run build && npm run smoke:ui:run && npm run smoke:ui:browser:run && node scripts/smoke-ui-onboarding-browser.mjs","smoke:ui:run":"node scripts/smoke-ui.mjs","smoke:mcp:run":"node scripts/smoke-mcp.mjs","smoke:onboard":"npm run build && npm run smoke:onboard:run","eval:character":"npm run build && node --test dist/character/prompt-generator.test.js dist/character/character-eval-cases.test.js","prepublishOnly":"npm test","smoke:chat:run":"node scripts/smoke-cli-temp-runtime.mjs chat","smoke:telegram":"npm run build && npm run smoke:telegram:run","smoke:zalo:run":"node scripts/smoke-zalo-disabled.mjs","smoke:installer":"npm run build && node scripts/smoke-installer.mjs","smoke:tools:run":"node dist/cli/index.js tools logs --lines 5 | grep -q 'action_permission_decision' && node dist/cli/index.js tools memories --limit 5 >/dev/null && node dist/cli/index.js tools git status >/dev/null","smoke:zalo:real":"npm run build && node scripts/smoke-zalo-real.mjs","smoke:doctor:fix":"npm run build && npm run smoke:doctor:fix:run","smoke:doctor:run":"node scripts/smoke-cli-temp-runtime.mjs doctor","smoke:status:run":"node scripts/smoke-cli-temp-runtime.mjs status","smoke:ui:browser":"npm run build && npm run smoke:ui:browser:run","smoke:zalo:setup":"npm run build && npm run smoke:zalo:setup:run","smoke:doctor:json":"npm run build && npm run smoke:doctor:json:run","smoke:onboard:run":"tmpdir=$(mktemp -d) && cd $tmpdir && printf 'Bestie\\nBoss\\nask\\nopenai-compatible\\nhttp://127.0.0.1:9/v1\\ntest-model\\ntest-key\\n' | HOME=$tmpdir node $INIT_CWD/dist/cli/index.js onboard --skip-provider-test; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:run":"tmpdir=$(mktemp -d) && cd $tmpdir && HOME=$tmpdir node $INIT_CWD/dist/cli/index.js channels telegram 2>&1 | grep -q 'Telegram is not enabled'; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:real":"npm run build && node scripts/smoke-telegram-real.mjs","eval:character:cases":"npm run build && node --test dist/character/character-eval-cases.test.js","smoke:doctor:fix:run":"node scripts/smoke-doctor-fix.mjs","smoke:telegram:setup":"npm run build && npm run smoke:telegram:setup:run","smoke:ui:browser:run":"node scripts/smoke-ui-browser.mjs","smoke:zalo:setup:run":"node scripts/smoke-zalo-setup.mjs","smoke:doctor:json:run":"node scripts/smoke-cli-temp-runtime.mjs doctor-json","smoke:doctor:exit-code":"npm run build && node scripts/smoke-doctor-exit-code.mjs","smoke:telegram:setup:run":"node scripts/smoke-telegram-setup.mjs","smoke:channels:doctor:json":"npm run build && npm run smoke:channels:doctor:json:run","smoke:ui:onboarding:browser":"npm run build && node scripts/smoke-ui-onboarding-browser.mjs","smoke:channels:doctor:json:run":"node scripts/smoke-channels-doctor-json.mjs"},"_npmUser":{"name":"andynguyenn","email":"j22487069@icloud.com"},"_npmVersion":"11.17.0","description":"Vietnamese-first bestie agent CLI.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"clsx":"^2.1.1","pngjs":"^7.0.0","react":"^19.2.8","three":"^0.185.1","grammy":"^1.44.0","zca-js":"2.1.2","mammoth":"^1.12.0","commander":"^14.0.3","cytoscape":"^3.34.0","iso-639-1":"^3.1.6","pdf-parse":"^1.1.1","react-dom":"^19.2.8","lucide-react":"^1.28.0","@google/genai":"^2.12.0","3d-force-graph":"^1.80.0","better-sqlite3":"^12.11.1","tailwind-merge":"^3.6.0","@grammyjs/types":"^3.28.0","three-spritetext":"^1.10.0","@inquirer/prompts":"^8.5.2","@radix-ui/react-slot":"^1.3.3","class-variance-authority":"^0.7.1","@elevenlabs/elevenlabs-js":"^2.57.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.2","vite":"^8.2.0","postcss":"^8.5.25","playwright":"^1.61.1","typescript":"^5.5.4","@types/node":"^20.14.15","tailwindcss":"^3.4.17","@types/pngjs":"^6.0.5","@types/react":"^19.2.18","@types/three":"^0.185.3","autoprefixer":"^10.5.4","@types/react-dom":"^19.2.4","@vitejs/plugin-react":"^6.0.5","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/bestie-agent_0.1.61_1787637697004_0.441793940464998","host":"s3://npm-registry-packages-npm-production"}},"0.1.62":{"name":"bestie-agent","version":"0.1.62","_id":"bestie-agent@0.1.62","maintainers":[{"name":"andynguyenn","email":"j22487069@icloud.com"}],"bin":{"bestie":"dist/cli/index.js"},"dist":{"shasum":"254b5d227aecd6e87650b04f081cfaa5ee524b95","tarball":"https://registry.npmjs.org/bestie-agent/-/bestie-agent-0.1.62.tgz","fileCount":191,"integrity":"sha512-5m2n2ZQCgeXd3dN3k+ZZB5UxobTUWW9k5Vetb2GiN3t0esyWUfLaedi6YuNvy8xoWnoaujV8bk7Jb0ICd7dNOQ==","signatures":[{"sig":"MEQCIGscpNfiEbUKeQDdQ2heP1bqw0/uFAV7n0Ko7min41FXAiAFFL7rEO7FK5c+G9PD7VaWupaNi8XIp1AUhAtWrwwndA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5333809},"type":"module","engines":{"node":">=22"},"gitHead":"9af27856068e92eb18b866c5323a9e37899e4727","scripts":{"dev":"tsx src/cli/index.ts","test":"npm run build && node --test dist/**/*.test.js","build":"tsc -p tsconfig.json && npm run build:ui && node -e \"import('node:fs/promises').then(({ chmod }) => chmod('dist/cli/index.js', 0o755))\"","clean":"rm -rf dist","smoke":"npm run build && npm run smoke:status:run && npm run smoke:doctor:run && npm run smoke:doctor:json:run && npm run smoke:channels:doctor:json:run && npm run smoke:doctor:fix:run && npm run smoke:chat:run && npm run smoke:onboard:run && npm run smoke:telegram:setup:run && npm run smoke:zalo:setup:run","start":"node dist/cli/index.js","prepack":"npm run clean && npm run build","build:ui":"tsc -p web/tsconfig.json --noEmit && vite build --config web/vite.config.ts","smoke:ui":"npm run build && npm run smoke:ui:run","smoke:mcp":"npm run build && npm run smoke:mcp:run","pack:check":"npm run clean && npm run build && npm pack --dry-run","smoke:chat":"npm run build && npm run smoke:chat:run","smoke:zalo":"npm run build && npm run smoke:zalo:run","smoke:tools":"npm run build && npm run smoke:tools:run","smoke:doctor":"npm run build && npm run smoke:doctor:run","smoke:status":"npm run build && npm run smoke:status:run","smoke:ui:all":"npm run build && npm run smoke:ui:run && npm run smoke:ui:browser:run && node scripts/smoke-ui-onboarding-browser.mjs","smoke:ui:run":"node scripts/smoke-ui.mjs","smoke:mcp:run":"node scripts/smoke-mcp.mjs","smoke:onboard":"npm run build && npm run smoke:onboard:run","eval:character":"npm run build && node --test dist/character/prompt-generator.test.js dist/character/character-eval-cases.test.js","prepublishOnly":"npm test","smoke:chat:run":"node scripts/smoke-cli-temp-runtime.mjs chat","smoke:telegram":"npm run build && npm run smoke:telegram:run","smoke:zalo:run":"node scripts/smoke-zalo-disabled.mjs","smoke:installer":"npm run build && node scripts/smoke-installer.mjs","smoke:tools:run":"node dist/cli/index.js tools logs --lines 5 | grep -q 'action_permission_decision' && node dist/cli/index.js tools memories --limit 5 >/dev/null && node dist/cli/index.js tools git status >/dev/null","smoke:zalo:real":"npm run build && node scripts/smoke-zalo-real.mjs","smoke:doctor:fix":"npm run build && npm run smoke:doctor:fix:run","smoke:doctor:run":"node scripts/smoke-cli-temp-runtime.mjs doctor","smoke:status:run":"node scripts/smoke-cli-temp-runtime.mjs status","smoke:ui:browser":"npm run build && npm run smoke:ui:browser:run","smoke:zalo:setup":"npm run build && npm run smoke:zalo:setup:run","smoke:doctor:json":"npm run build && npm run smoke:doctor:json:run","smoke:onboard:run":"tmpdir=$(mktemp -d) && cd $tmpdir && printf 'Bestie\\nBoss\\nask\\nopenai-compatible\\nhttp://127.0.0.1:9/v1\\ntest-model\\ntest-key\\n' | HOME=$tmpdir node $INIT_CWD/dist/cli/index.js onboard --skip-provider-test; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:run":"tmpdir=$(mktemp -d) && cd $tmpdir && HOME=$tmpdir node $INIT_CWD/dist/cli/index.js channels telegram 2>&1 | grep -q 'Telegram is not enabled'; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:real":"npm run build && node scripts/smoke-telegram-real.mjs","eval:character:cases":"npm run build && node --test dist/character/character-eval-cases.test.js","smoke:doctor:fix:run":"node scripts/smoke-doctor-fix.mjs","smoke:telegram:setup":"npm run build && npm run smoke:telegram:setup:run","smoke:ui:browser:run":"node scripts/smoke-ui-browser.mjs","smoke:zalo:setup:run":"node scripts/smoke-zalo-setup.mjs","smoke:doctor:json:run":"node scripts/smoke-cli-temp-runtime.mjs doctor-json","smoke:doctor:exit-code":"npm run build && node scripts/smoke-doctor-exit-code.mjs","smoke:telegram:setup:run":"node scripts/smoke-telegram-setup.mjs","smoke:channels:doctor:json":"npm run build && npm run smoke:channels:doctor:json:run","smoke:ui:onboarding:browser":"npm run build && node scripts/smoke-ui-onboarding-browser.mjs","smoke:channels:doctor:json:run":"node scripts/smoke-channels-doctor-json.mjs"},"_npmUser":{"name":"andynguyenn","email":"j22487069@icloud.com"},"_npmVersion":"11.17.0","description":"Vietnamese-first bestie agent CLI.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"clsx":"^2.1.1","pngjs":"^7.0.0","react":"^19.2.8","three":"^0.185.1","grammy":"^1.44.0","zca-js":"2.1.2","mammoth":"^1.12.0","commander":"^14.0.3","cytoscape":"^3.34.0","iso-639-1":"^3.1.6","pdf-parse":"^1.1.1","react-dom":"^19.2.8","lucide-react":"^1.28.0","@google/genai":"^2.12.0","3d-force-graph":"^1.80.0","better-sqlite3":"^12.11.1","tailwind-merge":"^3.6.0","@grammyjs/types":"^3.28.0","three-spritetext":"^1.10.0","@inquirer/prompts":"^8.5.2","@radix-ui/react-slot":"^1.3.3","class-variance-authority":"^0.7.1","@elevenlabs/elevenlabs-js":"^2.57.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.2","vite":"^8.2.0","postcss":"^8.5.25","playwright":"^1.61.1","typescript":"^5.5.4","@types/node":"^20.14.15","tailwindcss":"^3.4.17","@types/pngjs":"^6.0.5","@types/react":"^19.2.18","@types/three":"^0.185.3","autoprefixer":"^10.5.4","@types/react-dom":"^19.2.4","@vitejs/plugin-react":"^6.0.5","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/bestie-agent_0.1.62_1787640016730_0.1489901230427242","host":"s3://npm-registry-packages-npm-production"}},"0.1.64":{"name":"bestie-agent","version":"0.1.64","_id":"bestie-agent@0.1.64","maintainers":[{"name":"andynguyenn","email":"j22487069@icloud.com"}],"bin":{"bestie":"dist/cli/index.js"},"dist":{"shasum":"fd2a3f36db304245b615ec0a637f79de6468f311","tarball":"https://registry.npmjs.org/bestie-agent/-/bestie-agent-0.1.64.tgz","fileCount":191,"integrity":"sha512-NffWquyffGIepTp2ezpK1kxoCfV5NJw3HDuUorK99VO5NqxJbPWQdJynV1705z10FwFVlzbfR7XQ7m/zvP3wEQ==","signatures":[{"sig":"MEUCIBlq873q/2C7DvD3Pvh4hcvlEdJrmAuN9wxy21p0LFcxAiEAka7Yhfo5QTz1yC5hJPvioH2GxSm/3wqK394Q9RNOshI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5335922},"type":"module","engines":{"node":">=22"},"gitHead":"7e3d1d31677fd7cd24e41354cbe83ef5ef184a16","scripts":{"dev":"tsx src/cli/index.ts","test":"npm run build && node --test dist/**/*.test.js","build":"tsc -p tsconfig.json && npm run build:ui && node -e \"import('node:fs/promises').then(({ chmod }) => chmod('dist/cli/index.js', 0o755))\"","clean":"rm -rf dist","smoke":"npm run build && npm run smoke:status:run && npm run smoke:doctor:run && npm run smoke:doctor:json:run && npm run smoke:channels:doctor:json:run && npm run smoke:doctor:fix:run && npm run smoke:chat:run && npm run smoke:onboard:run && npm run smoke:telegram:setup:run && npm run smoke:zalo:setup:run","start":"node dist/cli/index.js","prepack":"npm run clean && npm run build","build:ui":"tsc -p web/tsconfig.json --noEmit && vite build --config web/vite.config.ts","smoke:ui":"npm run build && npm run smoke:ui:run","smoke:mcp":"npm run build && npm run smoke:mcp:run","pack:check":"npm run clean && npm run build && npm pack --dry-run","smoke:chat":"npm run build && npm run smoke:chat:run","smoke:zalo":"npm run build && npm run smoke:zalo:run","smoke:tools":"npm run build && npm run smoke:tools:run","smoke:doctor":"npm run build && npm run smoke:doctor:run","smoke:status":"npm run build && npm run smoke:status:run","smoke:ui:all":"npm run build && npm run smoke:ui:run && npm run smoke:ui:browser:run && node scripts/smoke-ui-onboarding-browser.mjs","smoke:ui:run":"node scripts/smoke-ui.mjs","smoke:mcp:run":"node scripts/smoke-mcp.mjs","smoke:onboard":"npm run build && npm run smoke:onboard:run","eval:character":"npm run build && node --test dist/character/prompt-generator.test.js dist/character/character-eval-cases.test.js","prepublishOnly":"npm test","smoke:chat:run":"node scripts/smoke-cli-temp-runtime.mjs chat","smoke:telegram":"npm run build && npm run smoke:telegram:run","smoke:zalo:run":"node scripts/smoke-zalo-disabled.mjs","smoke:installer":"npm run build && node scripts/smoke-installer.mjs","smoke:tools:run":"node dist/cli/index.js tools logs --lines 5 | grep -q 'action_permission_decision' && node dist/cli/index.js tools memories --limit 5 >/dev/null && node dist/cli/index.js tools git status >/dev/null","smoke:zalo:real":"npm run build && node scripts/smoke-zalo-real.mjs","smoke:doctor:fix":"npm run build && npm run smoke:doctor:fix:run","smoke:doctor:run":"node scripts/smoke-cli-temp-runtime.mjs doctor","smoke:status:run":"node scripts/smoke-cli-temp-runtime.mjs status","smoke:ui:browser":"npm run build && npm run smoke:ui:browser:run","smoke:zalo:setup":"npm run build && npm run smoke:zalo:setup:run","smoke:doctor:json":"npm run build && npm run smoke:doctor:json:run","smoke:onboard:run":"tmpdir=$(mktemp -d) && cd $tmpdir && printf 'Bestie\\nBoss\\nask\\nopenai-compatible\\nhttp://127.0.0.1:9/v1\\ntest-model\\ntest-key\\n' | HOME=$tmpdir node $INIT_CWD/dist/cli/index.js onboard --skip-provider-test; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:run":"tmpdir=$(mktemp -d) && cd $tmpdir && HOME=$tmpdir node $INIT_CWD/dist/cli/index.js channels telegram 2>&1 | grep -q 'Telegram is not enabled'; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:real":"npm run build && node scripts/smoke-telegram-real.mjs","eval:character:cases":"npm run build && node --test dist/character/character-eval-cases.test.js","smoke:doctor:fix:run":"node scripts/smoke-doctor-fix.mjs","smoke:telegram:setup":"npm run build && npm run smoke:telegram:setup:run","smoke:ui:browser:run":"node scripts/smoke-ui-browser.mjs","smoke:zalo:setup:run":"node scripts/smoke-zalo-setup.mjs","smoke:doctor:json:run":"node scripts/smoke-cli-temp-runtime.mjs doctor-json","smoke:doctor:exit-code":"npm run build && node scripts/smoke-doctor-exit-code.mjs","smoke:telegram:setup:run":"node scripts/smoke-telegram-setup.mjs","smoke:channels:doctor:json":"npm run build && npm run smoke:channels:doctor:json:run","smoke:ui:onboarding:browser":"npm run build && node scripts/smoke-ui-onboarding-browser.mjs","smoke:channels:doctor:json:run":"node scripts/smoke-channels-doctor-json.mjs"},"_npmUser":{"name":"andynguyenn","email":"j22487069@icloud.com"},"_npmVersion":"11.17.0","description":"Vietnamese-first bestie agent CLI.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"clsx":"^2.1.1","pngjs":"^7.0.0","react":"^19.2.8","three":"^0.185.1","grammy":"^1.44.0","zca-js":"2.1.2","mammoth":"^1.12.0","commander":"^14.0.3","cytoscape":"^3.34.0","iso-639-1":"^3.1.6","pdf-parse":"^1.1.1","react-dom":"^19.2.8","lucide-react":"^1.28.0","@google/genai":"^2.12.0","3d-force-graph":"^1.80.0","better-sqlite3":"^12.11.1","tailwind-merge":"^3.6.0","@grammyjs/types":"^3.28.0","three-spritetext":"^1.10.0","@inquirer/prompts":"^8.5.2","@radix-ui/react-slot":"^1.3.3","class-variance-authority":"^0.7.1","@elevenlabs/elevenlabs-js":"^2.57.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.2","vite":"^8.2.0","postcss":"^8.5.25","playwright":"^1.61.1","typescript":"^5.5.4","@types/node":"^20.14.15","tailwindcss":"^3.4.17","@types/pngjs":"^6.0.5","@types/react":"^19.2.18","@types/three":"^0.185.3","autoprefixer":"^10.5.4","@types/react-dom":"^19.2.4","@vitejs/plugin-react":"^6.0.5","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/bestie-agent_0.1.64_1787642879318_0.870612886834262","host":"s3://npm-registry-packages-npm-production"}},"0.1.66":{"name":"bestie-agent","version":"0.1.66","_id":"bestie-agent@0.1.66","maintainers":[{"name":"andynguyenn","email":"j22487069@icloud.com"}],"bin":{"bestie":"dist/cli/index.js"},"dist":{"shasum":"6860733b9ea5c660971e328fdf2e9d71e1d971c8","tarball":"https://registry.npmjs.org/bestie-agent/-/bestie-agent-0.1.66.tgz","fileCount":191,"integrity":"sha512-j2KLFWQwy3qB5tZr8qTp9JmJ5nSZzS01qH798clq6r7FcmAMe+u0ZkFrymIwqIDPoKDPstVX0jU+06dHx3HjoA==","signatures":[{"sig":"MEQCIBKn3PTOSxHFszBTRBEY3jDN6vfOb1EXrRqNHKX3AEx3AiB43clIHqFVijJ8hIhyISXVU76DieyFjkn0sZPSY4uMtQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5336790},"type":"module","engines":{"node":">=22"},"gitHead":"eaf60650532b4ddc63d2cf70ddc39b31e86de4f5","scripts":{"dev":"tsx src/cli/index.ts","test":"npm run build && node --test dist/**/*.test.js","build":"tsc -p tsconfig.json && npm run build:ui && node -e \"import('node:fs/promises').then(({ chmod }) => chmod('dist/cli/index.js', 0o755))\"","clean":"rm -rf dist","smoke":"npm run build && npm run smoke:status:run && npm run smoke:doctor:run && npm run smoke:doctor:json:run && npm run smoke:channels:doctor:json:run && npm run smoke:doctor:fix:run && npm run smoke:chat:run && npm run smoke:onboard:run && npm run smoke:telegram:setup:run && npm run smoke:zalo:setup:run","start":"node dist/cli/index.js","prepack":"npm run clean && npm run build","build:ui":"tsc -p web/tsconfig.json --noEmit && vite build --config web/vite.config.ts","smoke:ui":"npm run build && npm run smoke:ui:run","smoke:mcp":"npm run build && npm run smoke:mcp:run","pack:check":"npm run clean && npm run build && npm pack --dry-run","smoke:chat":"npm run build && npm run smoke:chat:run","smoke:zalo":"npm run build && npm run smoke:zalo:run","smoke:tools":"npm run build && npm run smoke:tools:run","smoke:doctor":"npm run build && npm run smoke:doctor:run","smoke:status":"npm run build && npm run smoke:status:run","smoke:ui:all":"npm run build && npm run smoke:ui:run && npm run smoke:ui:browser:run && node scripts/smoke-ui-onboarding-browser.mjs","smoke:ui:run":"node scripts/smoke-ui.mjs","smoke:mcp:run":"node scripts/smoke-mcp.mjs","smoke:onboard":"npm run build && npm run smoke:onboard:run","eval:character":"npm run build && node --test dist/character/prompt-generator.test.js dist/character/character-eval-cases.test.js","prepublishOnly":"npm test","smoke:chat:run":"node scripts/smoke-cli-temp-runtime.mjs chat","smoke:telegram":"npm run build && npm run smoke:telegram:run","smoke:zalo:run":"node scripts/smoke-zalo-disabled.mjs","smoke:installer":"npm run build && node scripts/smoke-installer.mjs","smoke:tools:run":"node dist/cli/index.js tools logs --lines 5 | grep -q 'action_permission_decision' && node dist/cli/index.js tools memories --limit 5 >/dev/null && node dist/cli/index.js tools git status >/dev/null","smoke:zalo:real":"npm run build && node scripts/smoke-zalo-real.mjs","smoke:doctor:fix":"npm run build && npm run smoke:doctor:fix:run","smoke:doctor:run":"node scripts/smoke-cli-temp-runtime.mjs doctor","smoke:status:run":"node scripts/smoke-cli-temp-runtime.mjs status","smoke:ui:browser":"npm run build && npm run smoke:ui:browser:run","smoke:zalo:setup":"npm run build && npm run smoke:zalo:setup:run","smoke:doctor:json":"npm run build && npm run smoke:doctor:json:run","smoke:onboard:run":"tmpdir=$(mktemp -d) && cd $tmpdir && printf 'Bestie\\nBoss\\nask\\nopenai-compatible\\nhttp://127.0.0.1:9/v1\\ntest-model\\ntest-key\\n' | HOME=$tmpdir node $INIT_CWD/dist/cli/index.js onboard --skip-provider-test; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:run":"tmpdir=$(mktemp -d) && cd $tmpdir && HOME=$tmpdir node $INIT_CWD/dist/cli/index.js channels telegram 2>&1 | grep -q 'Telegram is not enabled'; code=$?; rm -rf $tmpdir; exit $code","smoke:telegram:real":"npm run build && node scripts/smoke-telegram-real.mjs","eval:character:cases":"npm run build && node --test dist/character/character-eval-cases.test.js","smoke:doctor:fix:run":"node scripts/smoke-doctor-fix.mjs","smoke:telegram:setup":"npm run build && npm run smoke:telegram:setup:run","smoke:ui:browser:run":"node scripts/smoke-ui-browser.mjs","smoke:zalo:setup:run":"node scripts/smoke-zalo-setup.mjs","smoke:doctor:json:run":"node scripts/smoke-cli-temp-runtime.mjs doctor-json","smoke:doctor:exit-code":"npm run build && node scripts/smoke-doctor-exit-code.mjs","smoke:telegram:setup:run":"node scripts/smoke-telegram-setup.mjs","smoke:channels:doctor:json":"npm run build && npm run smoke:channels:doctor:json:run","smoke:ui:onboarding:browser":"npm run build && node scripts/smoke-ui-onboarding-browser.mjs","smoke:channels:doctor:json:run":"node scripts/smoke-channels-doctor-json.mjs"},"_npmUser":{"name":"andynguyenn","email":"j22487069@icloud.com"},"_npmVersion":"11.17.0","description":"Vietnamese-first bestie agent CLI.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"clsx":"^2.1.1","pngjs":"^7.0.0","react":"^19.2.8","three":"^0.185.1","grammy":"^1.44.0","zca-js":"2.1.2","mammoth":"^1.12.0","commander":"^14.0.3","cytoscape":"^3.34.0","iso-639-1":"^3.1.6","pdf-parse":"^1.1.1","react-dom":"^19.2.8","lucide-react":"^1.28.0","@google/genai":"^2.12.0","3d-force-graph":"^1.80.0","better-sqlite3":"^12.11.1","tailwind-merge":"^3.6.0","@grammyjs/types":"^3.28.0","three-spritetext":"^1.10.0","@inquirer/prompts":"^8.5.2","@radix-ui/react-slot":"^1.3.3","class-variance-authority":"^0.7.1","@elevenlabs/elevenlabs-js":"^2.57.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.2","vite":"^8.2.0","postcss":"^8.5.25","playwright":"^1.61.1","typescript":"^5.5.4","@types/node":"^20.14.15","tailwindcss":"^3.4.17","@types/pngjs":"^6.0.5","@types/react":"^19.2.18","@types/three":"^0.185.3","autoprefixer":"^10.5.4","@types/react-dom":"^19.2.4","@vitejs/plugin-react":"^6.0.5","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/bestie-agent_0.1.66_1787644821276_0.9205662739975882","host":"s3://npm-registry-packages-npm-production"}},"0.1.67":{"name":"bestie-agent","version":"0.1.67","_id":"bestie-agent@0.1.67","maintainers":[{"name":"andynguyenn","email":"j22487069@icloud.com"}],"bin":{"bestie":"dist/cli/index.js"},"dist":{"shasum":"ca2fad1cc6bbfa53bd7cb0bcb5b1006ac27bb8f6","tarball":"https://registry.npmjs.org/bestie-agent/-/bestie-agent-0.1.67.tgz","fileCount":192,"integrity":"sha512-ySQ1r7Dq/ioDf8JEfjn4GhRUzo8asSe5nhDF9c6OXwKkokkjpjIjR9Sr3amyjksWy/9v3CP9ew9kgHCkPAe4uQ==","signatures":[{"sig":"MEYCIQC+QdCKI+eWWi14oteJx5lyI5YiEwdRhT9wqriUje0a/gIhAPLQBv0NWJmKFNWcULCyyWv7QLvJuwkhsDG4z+/aylsP","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5339514},"type":"module","_from":"file:D:/projects/bestie/.release-artifacts/bestie-agent-0.1.67.tgz","engines":{"node":">=22"},"scripts":{"dev":"tsx src/cli/index.ts","test":"npm run build && node --test dist/**/*.test.js","build":"tsc -p tsconfig.json && npm run build:ui && node -e \"import('node:fs/promises').then(({ chmod }) => chmod('dist/cli/index.js', 0o755))\"","clean":"rm -rf dist","smoke":"npm run build && npm run smoke:status:run && npm run smoke:doctor:run && npm run smoke:doctor:json:run && npm run smoke:channels:doctor:json:run && npm run smoke:doctor:fix:run && npm run smoke:chat:run && npm run smoke:onboard:run && npm run smoke:telegram:setup:run && npm run smoke:zalo:setup:run","start":"node dist/cli/index.js","prepack":"npm run clean && npm run build","release":"node scripts/release.mjs","build:ui":"tsc -p web/tsconfig.json --noEmit && vite build --config web/vite.config.ts","smoke:ui":"npm run build && npm run smoke:ui:run","smoke:mcp":"npm run build && npm run smoke:mcp:run","pack:check":"npm run clean && npm run build && npm pack --dry-run","smoke:chat":"npm run build && npm run smoke:chat:run","smoke:zalo":"npm run build && npm run smoke:zalo:run","smoke:tools":"npm run build && npm run smoke:tools:run","smoke:doctor":"npm run build && npm run smoke:doctor:run","smoke:status":"npm run build && npm run smoke:status:run","smoke:ui:all":"npm run build && npm run smoke:ui:run && npm run smoke:ui:browser:run && node scripts/smoke-ui-onboarding-browser.mjs","smoke:ui:run":"node scripts/smoke-ui.mjs","smoke:mcp:run":"node scripts/smoke-mcp.mjs","smoke:onboard":"npm run build && npm run smoke:onboard:run","eval:character":"npm run build && node --test dist/character/prompt-generator.test.js dist/character/character-eval-cases.test.js","prepublishOnly":"npm test","smoke:chat:run":"node scripts/smoke-cli-temp-runtime.mjs chat","smoke:telegram":"npm run build && npm run smoke:telegram:run","smoke:zalo:run":"node scripts/smoke-zalo-disabled.mjs","smoke:installer":"npm run build && node scripts/smoke-installer.mjs","smoke:tools:run":"node dist/cli/index.js tools logs --lines 5 | grep -q 'action_permission_decision' && node dist/cli/index.js tools memories --limit 5 >/dev/null && node dist/cli/index.js tools git status >/dev/null","smoke:zalo:real":"npm run build && node scripts/smoke-zalo-real.mjs","smoke:doctor:fix":"npm run build && npm run smoke:doctor:fix:run","smoke:doctor:run":"node scripts/smoke-cli-temp-runtime.mjs doctor","smoke:status:run":"node scripts/smoke-cli-temp-runtime.mjs status","smoke:ui:browser":"npm run build && npm run smoke:ui:browser:run","smoke:zalo:setup":"npm run build && npm run smoke:zalo:setup:run","smoke:doctor:json":"npm run build && npm run smoke:doctor:json:run","smoke:onboard:run":"node scripts/smoke-onboard.mjs","smoke:telegram:run":"node scripts/smoke-telegram-disabled.mjs","smoke:telegram:real":"npm run build && node scripts/smoke-telegram-real.mjs","eval:character:cases":"npm run build && node --test dist/character/character-eval-cases.test.js","smoke:doctor:fix:run":"node scripts/smoke-doctor-fix.mjs","smoke:telegram:setup":"npm run build && npm run smoke:telegram:setup:run","smoke:ui:browser:run":"node scripts/smoke-ui-browser.mjs","smoke:zalo:setup:run":"node scripts/smoke-zalo-setup.mjs","smoke:doctor:json:run":"node scripts/smoke-cli-temp-runtime.mjs doctor-json","smoke:doctor:exit-code":"npm run build && node scripts/smoke-doctor-exit-code.mjs","smoke:telegram:setup:run":"node scripts/smoke-telegram-setup.mjs","smoke:channels:doctor:json":"npm run build && npm run smoke:channels:doctor:json:run","smoke:ui:onboarding:browser":"npm run build && node scripts/smoke-ui-onboarding-browser.mjs","smoke:channels:doctor:json:run":"node scripts/smoke-channels-doctor-json.mjs"},"_npmUser":{"name":"andynguyenn","email":"j22487069@icloud.com"},"_resolved":"D:\\projects\\bestie\\.release-artifacts\\bestie-agent-0.1.67.tgz","_integrity":"sha512-ySQ1r7Dq/ioDf8JEfjn4GhRUzo8asSe5nhDF9c6OXwKkokkjpjIjR9Sr3amyjksWy/9v3CP9ew9kgHCkPAe4uQ==","_npmVersion":"11.17.0","description":"Vietnamese-first bestie agent CLI.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"clsx":"^2.1.1","pngjs":"^7.0.0","react":"^19.2.8","three":"^0.185.1","grammy":"^1.44.0","zca-js":"2.1.2","mammoth":"^1.12.0","commander":"^14.0.3","cytoscape":"^3.34.0","iso-639-1":"^3.1.6","pdf-parse":"^1.1.1","react-dom":"^19.2.8","lucide-react":"^1.28.0","@google/genai":"^2.12.0","3d-force-graph":"^1.80.0","better-sqlite3":"^12.11.1","tailwind-merge":"^3.6.0","@grammyjs/types":"^3.28.0","three-spritetext":"^1.10.0","@inquirer/prompts":"^8.5.2","@radix-ui/react-slot":"^1.3.3","class-variance-authority":"^0.7.1","@elevenlabs/elevenlabs-js":"^2.57.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.2","vite":"^8.2.0","postcss":"^8.5.25","playwright":"^1.61.1","typescript":"^5.5.4","@types/node":"^20.14.15","tailwindcss":"^3.4.17","@types/pngjs":"^6.0.5","@types/react":"^19.2.18","@types/three":"^0.185.3","autoprefixer":"^10.5.4","@types/react-dom":"^19.2.4","@vitejs/plugin-react":"^6.0.5","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/bestie-agent_0.1.67_1787721121796_0.36192616545973766","host":"s3://npm-registry-packages-npm-production"}},"0.1.68":{"name":"bestie-agent","version":"0.1.68","_id":"bestie-agent@0.1.68","maintainers":[{"name":"andynguyenn","email":"j22487069@icloud.com"}],"bin":{"bestie":"dist/cli/index.js"},"dist":{"shasum":"93f3a396898da7d92ec938e9d0f2d4564d56d9cb","tarball":"https://registry.npmjs.org/bestie-agent/-/bestie-agent-0.1.68.tgz","fileCount":192,"integrity":"sha512-EztsEx13Kr6HZ8WYoiAv6vBwxngcBPdV43qqtdYJa662YlWgPjhdoFmwDxuwl4So+P+GR5Fv736tTCnDcDxuLA==","signatures":[{"sig":"MEUCIBS01BOuECsgpMWwCoASuB47m/PHn1OAaO1unLhYtqWTAiEAl77kEigPQiTxTB//mECxH/LgftkI1S+67jcnjVIM8qk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5339514},"type":"module","_from":"file:D:/projects/bestie/.release-artifacts/bestie-agent-0.1.68.tgz","engines":{"node":">=22"},"scripts":{"dev":"tsx src/cli/index.ts","test":"npm run build && node --test dist/**/*.test.js","build":"tsc -p tsconfig.json && npm run build:ui && node -e \"import('node:fs/promises').then(({ chmod }) => chmod('dist/cli/index.js', 0o755))\"","clean":"rm -rf dist","smoke":"npm run build && npm run smoke:status:run && npm run smoke:doctor:run && npm run smoke:doctor:json:run && npm run smoke:channels:doctor:json:run && npm run smoke:doctor:fix:run && npm run smoke:chat:run && npm run smoke:onboard:run && npm run smoke:telegram:setup:run && npm run smoke:zalo:setup:run","start":"node dist/cli/index.js","prepack":"npm run clean && npm run build","release":"node scripts/release.mjs","build:ui":"tsc -p web/tsconfig.json --noEmit && vite build --config web/vite.config.ts","smoke:ui":"npm run build && npm run smoke:ui:run","smoke:mcp":"npm run build && npm run smoke:mcp:run","pack:check":"npm run clean && npm run build && npm pack --dry-run","smoke:chat":"npm run build && npm run smoke:chat:run","smoke:zalo":"npm run build && npm run smoke:zalo:run","smoke:tools":"npm run build && npm run smoke:tools:run","smoke:doctor":"npm run build && npm run smoke:doctor:run","smoke:status":"npm run build && npm run smoke:status:run","smoke:ui:all":"npm run build && npm run smoke:ui:run && npm run smoke:ui:browser:run && node scripts/smoke-ui-onboarding-browser.mjs","smoke:ui:run":"node scripts/smoke-ui.mjs","smoke:mcp:run":"node scripts/smoke-mcp.mjs","smoke:onboard":"npm run build && npm run smoke:onboard:run","eval:character":"npm run build && node --test dist/character/prompt-generator.test.js dist/character/character-eval-cases.test.js","prepublishOnly":"npm test","smoke:chat:run":"node scripts/smoke-cli-temp-runtime.mjs chat","smoke:telegram":"npm run build && npm run smoke:telegram:run","smoke:zalo:run":"node scripts/smoke-zalo-disabled.mjs","smoke:installer":"npm run build && node scripts/smoke-installer.mjs","smoke:tools:run":"node dist/cli/index.js tools logs --lines 5 | grep -q 'action_permission_decision' && node dist/cli/index.js tools memories --limit 5 >/dev/null && node dist/cli/index.js tools git status >/dev/null","smoke:zalo:real":"npm run build && node scripts/smoke-zalo-real.mjs","smoke:doctor:fix":"npm run build && npm run smoke:doctor:fix:run","smoke:doctor:run":"node scripts/smoke-cli-temp-runtime.mjs doctor","smoke:status:run":"node scripts/smoke-cli-temp-runtime.mjs status","smoke:ui:browser":"npm run build && npm run smoke:ui:browser:run","smoke:zalo:setup":"npm run build && npm run smoke:zalo:setup:run","smoke:doctor:json":"npm run build && npm run smoke:doctor:json:run","smoke:onboard:run":"node scripts/smoke-onboard.mjs","smoke:telegram:run":"node scripts/smoke-telegram-disabled.mjs","smoke:telegram:real":"npm run build && node scripts/smoke-telegram-real.mjs","eval:character:cases":"npm run build && node --test dist/character/character-eval-cases.test.js","smoke:doctor:fix:run":"node scripts/smoke-doctor-fix.mjs","smoke:telegram:setup":"npm run build && npm run smoke:telegram:setup:run","smoke:ui:browser:run":"node scripts/smoke-ui-browser.mjs","smoke:zalo:setup:run":"node scripts/smoke-zalo-setup.mjs","smoke:doctor:json:run":"node scripts/smoke-cli-temp-runtime.mjs doctor-json","smoke:doctor:exit-code":"npm run build && node scripts/smoke-doctor-exit-code.mjs","smoke:telegram:setup:run":"node scripts/smoke-telegram-setup.mjs","smoke:channels:doctor:json":"npm run build && npm run smoke:channels:doctor:json:run","smoke:ui:onboarding:browser":"npm run build && node scripts/smoke-ui-onboarding-browser.mjs","smoke:channels:doctor:json:run":"node scripts/smoke-channels-doctor-json.mjs"},"_npmUser":{"name":"andynguyenn","email":"j22487069@icloud.com"},"_resolved":"D:\\projects\\bestie\\.release-artifacts\\bestie-agent-0.1.68.tgz","_integrity":"sha512-EztsEx13Kr6HZ8WYoiAv6vBwxngcBPdV43qqtdYJa662YlWgPjhdoFmwDxuwl4So+P+GR5Fv736tTCnDcDxuLA==","_npmVersion":"11.17.0","description":"Vietnamese-first bestie agent CLI.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"clsx":"^2.1.1","pngjs":"^7.0.0","react":"^19.2.8","three":"^0.185.1","grammy":"^1.44.0","zca-js":"2.1.2","mammoth":"^1.12.0","commander":"^14.0.3","cytoscape":"^3.34.0","iso-639-1":"^3.1.6","pdf-parse":"^1.1.1","react-dom":"^19.2.8","lucide-react":"^1.28.0","@google/genai":"^2.12.0","3d-force-graph":"^1.80.0","better-sqlite3":"^12.11.1","tailwind-merge":"^3.6.0","@grammyjs/types":"^3.28.0","three-spritetext":"^1.10.0","@inquirer/prompts":"^8.5.2","@radix-ui/react-slot":"^1.3.3","class-variance-authority":"^0.7.1","@elevenlabs/elevenlabs-js":"^2.57.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.2","vite":"^8.2.0","postcss":"^8.5.25","playwright":"^1.61.1","typescript":"^5.5.4","@types/node":"^20.14.15","tailwindcss":"^3.4.17","@types/pngjs":"^6.0.5","@types/react":"^19.2.18","@types/three":"^0.185.3","autoprefixer":"^10.5.4","@types/react-dom":"^19.2.4","@vitejs/plugin-react":"^6.0.5","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/bestie-agent_0.1.68_1787722386938_0.32462279688171414","host":"s3://npm-registry-packages-npm-production"}},"0.1.69":{"name":"bestie-agent","version":"0.1.69","_id":"bestie-agent@0.1.69","maintainers":[{"name":"andynguyenn","email":"j22487069@icloud.com"}],"bin":{"bestie":"dist/cli/index.js"},"dist":{"shasum":"d9b4bb390aa0097af722ad2b49c957925f0641be","tarball":"https://registry.npmjs.org/bestie-agent/-/bestie-agent-0.1.69.tgz","fileCount":194,"integrity":"sha512-gvDmdz6V+1CU3LLguD/XuKm883dBuu9bkUtNA8tKmu744IymUE3+19Q4/VOs8Ge3W1teQuZrY3e0Inr9aVXw4A==","signatures":[{"sig":"MEYCIQCDfN8OmEK4jYsiihqP2e70dHQMD8BNTE+GV/qUkK7HjAIhAKW6ic83m5wuzGbZPSuPyiMGMcJzlRheLQefSJRiVQN1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5351205},"type":"module","_from":"file:D:/projects/bestie/.release-artifacts/bestie-agent-0.1.69.tgz","engines":{"node":">=22"},"scripts":{"dev":"tsx src/cli/index.ts","test":"npm run build && node --test dist/**/*.test.js","build":"tsc -p tsconfig.json && npm run build:ui && node -e \"import('node:fs/promises').then(({ chmod }) => chmod('dist/cli/index.js', 0o755))\"","clean":"rm -rf dist","smoke":"npm run build && npm run smoke:status:run && npm run smoke:doctor:run && npm run smoke:doctor:json:run && npm run smoke:channels:doctor:json:run && npm run smoke:doctor:fix:run && npm run smoke:chat:run && npm run smoke:onboard:run && npm run smoke:telegram:setup:run && npm run smoke:zalo:setup:run","start":"node dist/cli/index.js","prepack":"npm run clean && npm run build","release":"node scripts/release.mjs","build:ui":"tsc -p web/tsconfig.json --noEmit && vite build --config web/vite.config.ts","smoke:ui":"npm run build && npm run smoke:ui:run","smoke:mcp":"npm run build && npm run smoke:mcp:run","pack:check":"npm run clean && npm run build && npm pack --dry-run","smoke:chat":"npm run build && npm run smoke:chat:run","smoke:zalo":"npm run build && npm run smoke:zalo:run","smoke:tools":"npm run build && npm run smoke:tools:run","smoke:doctor":"npm run build && npm run smoke:doctor:run","smoke:status":"npm run build && npm run smoke:status:run","smoke:ui:all":"npm run build && npm run smoke:ui:run && npm run smoke:ui:browser:run && node scripts/smoke-ui-onboarding-browser.mjs","smoke:ui:run":"node scripts/smoke-ui.mjs","smoke:mcp:run":"node scripts/smoke-mcp.mjs","smoke:onboard":"npm run build && npm run smoke:onboard:run","eval:character":"npm run build && node --test dist/character/prompt-generator.test.js dist/character/character-eval-cases.test.js","prepublishOnly":"npm test","smoke:chat:run":"node scripts/smoke-cli-temp-runtime.mjs chat","smoke:telegram":"npm run build && npm run smoke:telegram:run","smoke:zalo:run":"node scripts/smoke-zalo-disabled.mjs","smoke:installer":"npm run build && node scripts/smoke-installer.mjs","smoke:tools:run":"node dist/cli/index.js tools logs --lines 5 | grep -q 'action_permission_decision' && node dist/cli/index.js tools memories --limit 5 >/dev/null && node dist/cli/index.js tools git status >/dev/null","smoke:zalo:real":"npm run build && node scripts/smoke-zalo-real.mjs","smoke:doctor:fix":"npm run build && npm run smoke:doctor:fix:run","smoke:doctor:run":"node scripts/smoke-cli-temp-runtime.mjs doctor","smoke:status:run":"node scripts/smoke-cli-temp-runtime.mjs status","smoke:ui:browser":"npm run build && npm run smoke:ui:browser:run","smoke:zalo:setup":"npm run build && npm run smoke:zalo:setup:run","smoke:doctor:json":"npm run build && npm run smoke:doctor:json:run","smoke:onboard:run":"node scripts/smoke-onboard.mjs","smoke:telegram:run":"node scripts/smoke-telegram-disabled.mjs","smoke:telegram:real":"npm run build && node scripts/smoke-telegram-real.mjs","eval:character:cases":"npm run build && node --test dist/character/character-eval-cases.test.js","smoke:doctor:fix:run":"node scripts/smoke-doctor-fix.mjs","smoke:telegram:setup":"npm run build && npm run smoke:telegram:setup:run","smoke:ui:browser:run":"node scripts/smoke-ui-browser.mjs","smoke:zalo:setup:run":"node scripts/smoke-zalo-setup.mjs","smoke:doctor:json:run":"node scripts/smoke-cli-temp-runtime.mjs doctor-json","smoke:doctor:exit-code":"npm run build && node scripts/smoke-doctor-exit-code.mjs","smoke:telegram:setup:run":"node scripts/smoke-telegram-setup.mjs","smoke:channels:doctor:json":"npm run build && npm run smoke:channels:doctor:json:run","smoke:ui:onboarding:browser":"npm run build && node scripts/smoke-ui-onboarding-browser.mjs","smoke:channels:doctor:json:run":"node scripts/smoke-channels-doctor-json.mjs"},"_npmUser":{"name":"andynguyenn","email":"j22487069@icloud.com"},"_resolved":"D:\\projects\\bestie\\.release-artifacts\\bestie-agent-0.1.69.tgz","_integrity":"sha512-gvDmdz6V+1CU3LLguD/XuKm883dBuu9bkUtNA8tKmu744IymUE3+19Q4/VOs8Ge3W1teQuZrY3e0Inr9aVXw4A==","_npmVersion":"11.17.0","description":"Vietnamese-first bestie agent CLI.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"clsx":"^2.1.1","pngjs":"^7.0.0","react":"^19.2.8","three":"^0.185.1","grammy":"^1.44.0","zca-js":"2.1.2","mammoth":"^1.12.0","commander":"^14.0.3","cytoscape":"^3.34.0","iso-639-1":"^3.1.6","pdf-parse":"^1.1.1","react-dom":"^19.2.8","playwright":"^1.61.1","lucide-react":"^1.28.0","@google/genai":"^2.12.0","3d-force-graph":"^1.80.0","better-sqlite3":"^12.11.1","tailwind-merge":"^3.6.0","@grammyjs/types":"^3.28.0","three-spritetext":"^1.10.0","@inquirer/prompts":"^8.5.2","@radix-ui/react-slot":"^1.3.3","class-variance-authority":"^0.7.1","@elevenlabs/elevenlabs-js":"^2.57.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.2","vite":"^8.2.0","postcss":"^8.5.25","typescript":"^5.5.4","@types/node":"^20.14.15","tailwindcss":"^3.4.17","@types/pngjs":"^6.0.5","@types/react":"^19.2.18","@types/three":"^0.185.3","autoprefixer":"^10.5.4","@types/react-dom":"^19.2.4","@vitejs/plugin-react":"^6.0.5","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/bestie-agent_0.1.69_1787839563325_0.35089436139493224","host":"s3://npm-registry-packages-npm-production"}},"0.1.70":{"name":"bestie-agent","version":"0.1.70","_id":"bestie-agent@0.1.70","maintainers":[{"name":"andynguyenn","email":"j22487069@icloud.com"}],"bin":{"bestie":"dist/cli/index.js"},"dist":{"shasum":"2e620ade79d15315ca4de60dee3fe41d7458fd4a","tarball":"https://registry.npmjs.org/bestie-agent/-/bestie-agent-0.1.70.tgz","fileCount":194,"integrity":"sha512-M+G58p2jhjFs4Tn7X0olUhyYL+QYlDh5hobntkHvjFNy73Ppy/i0OlXw7KgotO0+0+qhaD4b1DC0mqsaUTLehw==","signatures":[{"sig":"MEQCIDNLzFGW+9jnuefEBopLMvg26BVQVJhG0qIYTvueySusAiBjiAIkv0Gp9WYTOgi+jUYvzBxL4ThiscKJglF5LfIazw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5353281},"type":"module","_from":"file:D:/projects/bestie/.release-artifacts/bestie-agent-0.1.70.tgz","engines":{"node":">=22"},"scripts":{"dev":"tsx src/cli/index.ts","test":"npm run build && node --test dist/**/*.test.js","build":"tsc -p tsconfig.json && npm run build:ui && node -e \"import('node:fs/promises').then(({ chmod }) => chmod('dist/cli/index.js', 0o755))\"","clean":"rm -rf dist","smoke":"npm run build && npm run smoke:status:run && npm run smoke:doctor:run && npm run smoke:doctor:json:run && npm run smoke:channels:doctor:json:run && npm run smoke:doctor:fix:run && npm run smoke:chat:run && npm run smoke:onboard:run && npm run smoke:telegram:setup:run && npm run smoke:zalo:setup:run","start":"node dist/cli/index.js","prepack":"npm run clean && npm run build","release":"node scripts/release.mjs","build:ui":"tsc -p web/tsconfig.json --noEmit && vite build --config web/vite.config.ts","smoke:ui":"npm run build && npm run smoke:ui:run","smoke:mcp":"npm run build && npm run smoke:mcp:run","pack:check":"npm run clean && npm run build && npm pack --dry-run","smoke:chat":"npm run build && npm run smoke:chat:run","smoke:zalo":"npm run build && npm run smoke:zalo:run","smoke:tools":"npm run build && npm run smoke:tools:run","smoke:doctor":"npm run build && npm run smoke:doctor:run","smoke:status":"npm run build && npm run smoke:status:run","smoke:ui:all":"npm run build && npm run smoke:ui:run && npm run smoke:ui:browser:run && node scripts/smoke-ui-onboarding-browser.mjs","smoke:ui:run":"node scripts/smoke-ui.mjs","smoke:mcp:run":"node scripts/smoke-mcp.mjs","smoke:onboard":"npm run build && npm run smoke:onboard:run","eval:character":"npm run build && node --test dist/character/prompt-generator.test.js dist/character/character-eval-cases.test.js","prepublishOnly":"npm test","smoke:chat:run":"node scripts/smoke-cli-temp-runtime.mjs chat","smoke:telegram":"npm run build && npm run smoke:telegram:run","smoke:zalo:run":"node scripts/smoke-zalo-disabled.mjs","smoke:installer":"npm run build && node scripts/smoke-installer.mjs","smoke:tools:run":"node dist/cli/index.js tools logs --lines 5 | grep -q 'action_permission_decision' && node dist/cli/index.js tools memories --limit 5 >/dev/null && node dist/cli/index.js tools git status >/dev/null","smoke:zalo:real":"npm run build && node scripts/smoke-zalo-real.mjs","smoke:doctor:fix":"npm run build && npm run smoke:doctor:fix:run","smoke:doctor:run":"node scripts/smoke-cli-temp-runtime.mjs doctor","smoke:status:run":"node scripts/smoke-cli-temp-runtime.mjs status","smoke:ui:browser":"npm run build && npm run smoke:ui:browser:run","smoke:zalo:setup":"npm run build && npm run smoke:zalo:setup:run","smoke:doctor:json":"npm run build && npm run smoke:doctor:json:run","smoke:onboard:run":"node scripts/smoke-onboard.mjs","smoke:telegram:run":"node scripts/smoke-telegram-disabled.mjs","smoke:telegram:real":"npm run build && node scripts/smoke-telegram-real.mjs","eval:character:cases":"npm run build && node --test dist/character/character-eval-cases.test.js","smoke:doctor:fix:run":"node scripts/smoke-doctor-fix.mjs","smoke:telegram:setup":"npm run build && npm run smoke:telegram:setup:run","smoke:ui:browser:run":"node scripts/smoke-ui-browser.mjs","smoke:zalo:setup:run":"node scripts/smoke-zalo-setup.mjs","smoke:doctor:json:run":"node scripts/smoke-cli-temp-runtime.mjs doctor-json","smoke:doctor:exit-code":"npm run build && node scripts/smoke-doctor-exit-code.mjs","smoke:telegram:setup:run":"node scripts/smoke-telegram-setup.mjs","smoke:channels:doctor:json":"npm run build && npm run smoke:channels:doctor:json:run","smoke:ui:onboarding:browser":"npm run build && node scripts/smoke-ui-onboarding-browser.mjs","smoke:channels:doctor:json:run":"node scripts/smoke-channels-doctor-json.mjs"},"_npmUser":{"name":"andynguyenn","email":"j22487069@icloud.com"},"_resolved":"D:\\projects\\bestie\\.release-artifacts\\bestie-agent-0.1.70.tgz","_integrity":"sha512-M+G58p2jhjFs4Tn7X0olUhyYL+QYlDh5hobntkHvjFNy73Ppy/i0OlXw7KgotO0+0+qhaD4b1DC0mqsaUTLehw==","_npmVersion":"11.17.0","description":"Vietnamese-first bestie agent CLI.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"clsx":"^2.1.1","pngjs":"^7.0.0","react":"^19.2.8","three":"^0.185.1","grammy":"^1.44.0","zca-js":"2.1.2","mammoth":"^1.12.0","commander":"^14.0.3","cytoscape":"^3.34.0","iso-639-1":"^3.1.6","pdf-parse":"^1.1.1","react-dom":"^19.2.8","playwright":"^1.61.1","lucide-react":"^1.28.0","@google/genai":"^2.12.0","3d-force-graph":"^1.80.0","better-sqlite3":"^12.11.1","tailwind-merge":"^3.6.0","@grammyjs/types":"^3.28.0","three-spritetext":"^1.10.0","@inquirer/prompts":"^8.5.2","@radix-ui/react-slot":"^1.3.3","class-variance-authority":"^0.7.1","@elevenlabs/elevenlabs-js":"^2.57.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.2","vite":"^8.2.0","postcss":"^8.5.25","typescript":"^5.5.4","@types/node":"^20.14.15","tailwindcss":"^3.4.17","@types/pngjs":"^6.0.5","@types/react":"^19.2.18","@types/three":"^0.185.3","autoprefixer":"^10.5.4","@types/react-dom":"^19.2.4","@vitejs/plugin-react":"^6.0.5","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/bestie-agent_0.1.70_1788497467635_0.07862383684877106","host":"s3://npm-registry-packages-npm-production"}},"0.1.71":{"name":"bestie-agent","version":"0.1.71","_id":"bestie-agent@0.1.71","maintainers":[{"name":"andynguyenn","email":"j22487069@icloud.com"}],"bin":{"bestie":"dist/cli/index.js"},"dist":{"shasum":"8497578b39b39efa48384dae8ac097e832f34320","tarball":"https://registry.npmjs.org/bestie-agent/-/bestie-agent-0.1.71.tgz","fileCount":196,"integrity":"sha512-9f1cfhq+D6P2kVVD24jnjYjTB1bsmziUSC/Y2t9S4dC/BMrT9Q9WDTj89owajesYExb/vkdQN8OmSLUqBVZCfw==","signatures":[{"sig":"MEYCIQDriFBHgop51ZgukrJjeX2aIx+pPCp2P0MctPb9KBzrrAIhAPc3b7jZewAJ1vMRjyfUogOmnZrylI4t0MO4u2LFqUCi","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5359468},"type":"module","_from":"file:D:/projects/bestie/.release-artifacts/bestie-agent-0.1.71.tgz","engines":{"node":">=22"},"scripts":{"dev":"tsx src/cli/index.ts","test":"npm run build && node --test dist/**/*.test.js","build":"tsc -p tsconfig.json && npm run build:ui && node -e \"import('node:fs/promises').then(({ chmod }) => chmod('dist/cli/index.js', 0o755))\"","clean":"node scripts/clean.mjs","smoke":"npm run build && npm run smoke:status:run && npm run smoke:doctor:run && npm run smoke:doctor:json:run && npm run smoke:channels:doctor:json:run && npm run smoke:doctor:fix:run && npm run smoke:chat:run && npm run smoke:onboard:run && npm run smoke:telegram:setup:run && npm run smoke:zalo:setup:run","start":"node dist/cli/index.js","prepack":"npm run clean && npm run build","release":"node scripts/release.mjs","build:ui":"tsc -p web/tsconfig.json --noEmit && vite build --config web/vite.config.ts","smoke:ui":"npm run build && npm run smoke:ui:run","smoke:mcp":"npm run build && npm run smoke:mcp:run","pack:check":"npm run clean && npm run build && npm pack --dry-run","smoke:chat":"npm run build && npm run smoke:chat:run","smoke:zalo":"npm run build && npm run smoke:zalo:run","smoke:tools":"npm run build && npm run smoke:tools:run","smoke:doctor":"npm run build && npm run smoke:doctor:run","smoke:status":"npm run build && npm run smoke:status:run","smoke:ui:all":"npm run build && npm run smoke:ui:run && npm run smoke:ui:browser:run && node scripts/smoke-ui-onboarding-browser.mjs","smoke:ui:run":"node scripts/smoke-ui.mjs","smoke:mcp:run":"node scripts/smoke-mcp.mjs","smoke:onboard":"npm run build && npm run smoke:onboard:run","eval:character":"npm run build && node --test dist/character/prompt-generator.test.js dist/character/character-eval-cases.test.js","prepublishOnly":"npm test","smoke:chat:run":"node scripts/smoke-cli-temp-runtime.mjs chat","smoke:telegram":"npm run build && npm run smoke:telegram:run","smoke:zalo:run":"node scripts/smoke-zalo-disabled.mjs","smoke:installer":"npm run build && node scripts/smoke-installer.mjs","smoke:tools:run":"node dist/cli/index.js tools logs --lines 5 | grep -q 'action_permission_decision' && node dist/cli/index.js tools memories --limit 5 >/dev/null && node dist/cli/index.js tools git status >/dev/null","smoke:zalo:real":"npm run build && node scripts/smoke-zalo-real.mjs","smoke:doctor:fix":"npm run build && npm run smoke:doctor:fix:run","smoke:doctor:run":"node scripts/smoke-cli-temp-runtime.mjs doctor","smoke:status:run":"node scripts/smoke-cli-temp-runtime.mjs status","smoke:ui:browser":"npm run build && npm run smoke:ui:browser:run","smoke:zalo:setup":"npm run build && npm run smoke:zalo:setup:run","smoke:doctor:json":"npm run build && npm run smoke:doctor:json:run","smoke:onboard:run":"node scripts/smoke-onboard.mjs","smoke:telegram:run":"node scripts/smoke-telegram-disabled.mjs","smoke:telegram:real":"npm run build && node scripts/smoke-telegram-real.mjs","eval:character:cases":"npm run build && node --test dist/character/character-eval-cases.test.js","smoke:doctor:fix:run":"node scripts/smoke-doctor-fix.mjs","smoke:telegram:setup":"npm run build && npm run smoke:telegram:setup:run","smoke:ui:browser:run":"node scripts/smoke-ui-browser.mjs","smoke:zalo:setup:run":"node scripts/smoke-zalo-setup.mjs","smoke:doctor:json:run":"node scripts/smoke-cli-temp-runtime.mjs doctor-json","smoke:doctor:exit-code":"npm run build && node scripts/smoke-doctor-exit-code.mjs","smoke:telegram:setup:run":"node scripts/smoke-telegram-setup.mjs","smoke:channels:doctor:json":"npm run build && npm run smoke:channels:doctor:json:run","smoke:ui:onboarding:browser":"npm run build && node scripts/smoke-ui-onboarding-browser.mjs","smoke:channels:doctor:json:run":"node scripts/smoke-channels-doctor-json.mjs"},"_npmUser":{"name":"andynguyenn","email":"j22487069@icloud.com"},"_resolved":"D:\\projects\\bestie\\.release-artifacts\\bestie-agent-0.1.71.tgz","_integrity":"sha512-9f1cfhq+D6P2kVVD24jnjYjTB1bsmziUSC/Y2t9S4dC/BMrT9Q9WDTj89owajesYExb/vkdQN8OmSLUqBVZCfw==","_npmVersion":"11.17.0","description":"Vietnamese-first bestie agent CLI.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"clsx":"^2.1.1","pngjs":"^7.0.0","react":"^19.2.8","three":"^0.185.1","grammy":"^1.44.0","zca-js":"2.1.2","mammoth":"^1.12.0","commander":"^14.0.3","cytoscape":"^3.34.0","iso-639-1":"^3.1.6","pdf-parse":"^1.1.1","react-dom":"^19.2.8","playwright":"^1.61.1","lucide-react":"^1.28.0","@google/genai":"^2.12.0","3d-force-graph":"^1.80.0","better-sqlite3":"^12.11.1","tailwind-merge":"^3.6.0","@grammyjs/types":"^3.28.0","three-spritetext":"^1.10.0","@inquirer/prompts":"^8.5.2","@radix-ui/react-slot":"^1.3.3","class-variance-authority":"^0.7.1","@elevenlabs/elevenlabs-js":"^2.57.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.2","vite":"^8.2.0","postcss":"^8.5.25","typescript":"^5.5.4","@types/node":"^20.14.15","tailwindcss":"^3.4.17","@types/pngjs":"^6.0.5","@types/react":"^19.2.18","@types/three":"^0.185.3","autoprefixer":"^10.5.4","@types/react-dom":"^19.2.4","@vitejs/plugin-react":"^6.0.5","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/bestie-agent_0.1.71_1788590239678_0.9804074108402705","host":"s3://npm-registry-packages-npm-production"}},"0.1.72":{"name":"bestie-agent","version":"0.1.72","_id":"bestie-agent@0.1.72","maintainers":[{"name":"andynguyenn","email":"j22487069@icloud.com"}],"bin":{"bestie":"dist/cli/index.js"},"dist":{"shasum":"91e8609dc0da85ec4231c3cbe3214bb06fd4b943","tarball":"https://registry.npmjs.org/bestie-agent/-/bestie-agent-0.1.72.tgz","fileCount":196,"integrity":"sha512-gZ7X5IrukU7TZJSPVIKpuVKpyPkn3shuLCswlDFlcUAO9WMIs5hnXbi014Me6jn46SsNFIY7zo4waQfz26j1yA==","signatures":[{"sig":"MEUCIAq41/0wCNAPrkCusk/+EQ7n1O+7drtvdJxFudItKEyCAiEA8RsExrMBORLABiAA4B3vX/YJgJX6c6DEyTZe9sJkMJU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIHAqq0NvD+EwwDiRRgdUgpoLwBSdqV3zh/S3f+aWxfv2AiB1wLii8sOgK6VhKQUBPuAkGjGvo8wrF69J5QmhG6Li1w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5361454},"type":"module","_from":"file:C:/Users/quynp/workspace/bestie/.release-artifacts/bestie-agent-0.1.72.tgz","engines":{"node":">=22"},"scripts":{"dev":"tsx src/cli/index.ts","test":"npm run build && node --test dist/**/*.test.js","build":"tsc -p tsconfig.json && npm run build:ui && node -e \"import('node:fs/promises').then(({ chmod }) => chmod('dist/cli/index.js', 0o755))\"","clean":"node scripts/clean.mjs","smoke":"npm run build && npm run smoke:status:run && npm run smoke:doctor:run && npm run smoke:doctor:json:run && npm run smoke:channels:doctor:json:run && npm run smoke:doctor:fix:run && npm run smoke:chat:run && npm run smoke:onboard:run && npm run smoke:telegram:setup:run && npm run smoke:zalo:setup:run","start":"node dist/cli/index.js","prepack":"npm run clean && npm run build","release":"node scripts/release.mjs","build:ui":"tsc -p web/tsconfig.json --noEmit && vite build --config web/vite.config.ts","smoke:ui":"npm run build && npm run smoke:ui:run","smoke:mcp":"npm run build && npm run smoke:mcp:run","pack:check":"npm run clean && npm run build && npm pack --dry-run","smoke:chat":"npm run build && npm run smoke:chat:run","smoke:zalo":"npm run build && npm run smoke:zalo:run","smoke:tools":"npm run build && npm run smoke:tools:run","smoke:doctor":"npm run build && npm run smoke:doctor:run","smoke:status":"npm run build && npm run smoke:status:run","smoke:ui:all":"npm run build && npm run smoke:ui:run && npm run smoke:ui:browser:run && node scripts/smoke-ui-onboarding-browser.mjs","smoke:ui:run":"node scripts/smoke-ui.mjs","smoke:mcp:run":"node scripts/smoke-mcp.mjs","smoke:onboard":"npm run build && npm run smoke:onboard:run","eval:character":"npm run build && node --test dist/character/prompt-generator.test.js dist/character/character-eval-cases.test.js","prepublishOnly":"npm test","smoke:chat:run":"node scripts/smoke-cli-temp-runtime.mjs chat","smoke:telegram":"npm run build && npm run smoke:telegram:run","smoke:zalo:run":"node scripts/smoke-zalo-disabled.mjs","smoke:installer":"npm run build && node scripts/smoke-installer.mjs","smoke:tools:run":"node dist/cli/index.js tools logs --lines 5 | grep -q 'action_permission_decision' && node dist/cli/index.js tools memories --limit 5 >/dev/null && node dist/cli/index.js tools git status >/dev/null","smoke:zalo:real":"npm run build && node scripts/smoke-zalo-real.mjs","smoke:doctor:fix":"npm run build && npm run smoke:doctor:fix:run","smoke:doctor:run":"node scripts/smoke-cli-temp-runtime.mjs doctor","smoke:status:run":"node scripts/smoke-cli-temp-runtime.mjs status","smoke:ui:browser":"npm run build && npm run smoke:ui:browser:run","smoke:zalo:setup":"npm run build && npm run smoke:zalo:setup:run","smoke:doctor:json":"npm run build && npm run smoke:doctor:json:run","smoke:onboard:run":"node scripts/smoke-onboard.mjs","smoke:telegram:run":"node scripts/smoke-telegram-disabled.mjs","smoke:telegram:real":"npm run build && node scripts/smoke-telegram-real.mjs","eval:character:cases":"npm run build && node --test dist/character/character-eval-cases.test.js","smoke:doctor:fix:run":"node scripts/smoke-doctor-fix.mjs","smoke:telegram:setup":"npm run build && npm run smoke:telegram:setup:run","smoke:ui:browser:run":"node scripts/smoke-ui-browser.mjs","smoke:zalo:setup:run":"node scripts/smoke-zalo-setup.mjs","smoke:doctor:json:run":"node scripts/smoke-cli-temp-runtime.mjs doctor-json","smoke:doctor:exit-code":"npm run build && node scripts/smoke-doctor-exit-code.mjs","smoke:telegram:setup:run":"node scripts/smoke-telegram-setup.mjs","smoke:channels:doctor:json":"npm run build && npm run smoke:channels:doctor:json:run","smoke:ui:onboarding:browser":"npm run build && node scripts/smoke-ui-onboarding-browser.mjs","smoke:channels:doctor:json:run":"node scripts/smoke-channels-doctor-json.mjs"},"_npmUser":{"name":"andynguyenn","email":"j22487069@icloud.com"},"_resolved":"C:\\Users\\quynp\\workspace\\bestie\\.release-artifacts\\bestie-agent-0.1.72.tgz","_integrity":"sha512-gZ7X5IrukU7TZJSPVIKpuVKpyPkn3shuLCswlDFlcUAO9WMIs5hnXbi014Me6jn46SsNFIY7zo4waQfz26j1yA==","_npmVersion":"11.19.0","description":"Vietnamese-first bestie agent CLI.","directories":{},"_nodeVersion":"24.21.0","dependencies":{"clsx":"^2.1.1","pngjs":"^7.0.0","react":"^19.2.8","three":"^0.185.1","grammy":"^1.44.0","zca-js":"2.1.2","mammoth":"^1.12.0","commander":"^14.0.3","cytoscape":"^3.34.0","iso-639-1":"^3.1.6","pdf-parse":"^1.1.1","react-dom":"^19.2.8","playwright":"^1.61.1","lucide-react":"^1.28.0","@google/genai":"^2.12.0","3d-force-graph":"^1.80.0","better-sqlite3":"^12.11.1","tailwind-merge":"^3.6.0","@grammyjs/types":"^3.28.0","three-spritetext":"^1.10.0","@inquirer/prompts":"^8.5.2","@radix-ui/react-slot":"^1.3.3","class-variance-authority":"^0.7.1","@elevenlabs/elevenlabs-js":"^2.57.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.2","vite":"^8.2.0","postcss":"^8.5.25","typescript":"^5.5.4","@types/node":"^20.14.15","tailwindcss":"^3.4.17","@types/pngjs":"^6.0.5","@types/react":"^19.2.18","@types/three":"^0.185.3","autoprefixer":"^10.5.4","@types/react-dom":"^19.2.4","@vitejs/plugin-react":"^6.0.5","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/bestie-agent_0.1.72_1789972201542_0.5794445959045864","host":"s3://npm-registry-packages-npm-production"}},"0.1.74":{"name":"bestie-agent","version":"0.1.74","_id":"bestie-agent@0.1.74","maintainers":[{"name":"andynguyenn","email":"j22487069@icloud.com"}],"bin":{"bestie":"dist/cli/index.js"},"dist":{"shasum":"7974d6e3c9403ecbbf3ef15e9700b6c952675bc7","tarball":"https://registry.npmjs.org/bestie-agent/-/bestie-agent-0.1.74.tgz","fileCount":196,"integrity":"sha512-IOAm4l+Lxe8tHVH2+EZhECC3vYB32dPYbaEvF4KkT2tbzVSVMf2nZ6sekHfkYZjT3+b8I3TiInO+e5Efrgeayw==","signatures":[{"sig":"MEYCIQCbh3yvD2WmQu7+I5USPeHFLOAilPhV6aeaXeGXAgx70QIhAI5Bgz0KI4SkU0aOZ8+GBrnpImkSn1CB+B29porFpu43","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIDn4YsOeYlKGVncpKnn80e+sLe5Njq+0H1XzJUvz0q1oAiEAosGy2h1j5aYL0BwbhafVC0U01D1dNmcUxIcD5kOPubE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5361763},"type":"module","_from":"file:C:/Users/quynp/workspace/bestie/.release-artifacts/bestie-agent-0.1.74.tgz","engines":{"node":">=22"},"scripts":{"dev":"tsx src/cli/index.ts","test":"npm run build && node --test dist/**/*.test.js","build":"tsc -p tsconfig.json && npm run build:ui && node -e \"import('node:fs/promises').then(({ chmod }) => chmod('dist/cli/index.js', 0o755))\"","clean":"node scripts/clean.mjs","smoke":"npm run build && npm run smoke:status:run && npm run smoke:doctor:run && npm run smoke:doctor:json:run && npm run smoke:channels:doctor:json:run && npm run smoke:doctor:fix:run && npm run smoke:chat:run && npm run smoke:onboard:run && npm run smoke:telegram:setup:run && npm run smoke:zalo:setup:run","start":"node dist/cli/index.js","prepack":"npm run clean && npm run build","release":"node scripts/release.mjs","build:ui":"tsc -p web/tsconfig.json --noEmit && vite build --config web/vite.config.ts","smoke:ui":"npm run build && npm run smoke:ui:run","smoke:mcp":"npm run build && npm run smoke:mcp:run","pack:check":"npm run clean && npm run build && npm pack --dry-run","smoke:chat":"npm run build && npm run smoke:chat:run","smoke:zalo":"npm run build && npm run smoke:zalo:run","smoke:tools":"npm run build && npm run smoke:tools:run","smoke:doctor":"npm run build && npm run smoke:doctor:run","smoke:status":"npm run build && npm run smoke:status:run","smoke:ui:all":"npm run build && npm run smoke:ui:run && npm run smoke:ui:browser:run && node scripts/smoke-ui-onboarding-browser.mjs","smoke:ui:run":"node scripts/smoke-ui.mjs","smoke:mcp:run":"node scripts/smoke-mcp.mjs","smoke:onboard":"npm run build && npm run smoke:onboard:run","eval:character":"npm run build && node --test dist/character/prompt-generator.test.js dist/character/character-eval-cases.test.js","prepublishOnly":"npm test","smoke:chat:run":"node scripts/smoke-cli-temp-runtime.mjs chat","smoke:telegram":"npm run build && npm run smoke:telegram:run","smoke:zalo:run":"node scripts/smoke-zalo-disabled.mjs","smoke:installer":"npm run build && node scripts/smoke-installer.mjs","smoke:tools:run":"node dist/cli/index.js tools logs --lines 5 | grep -q 'action_permission_decision' && node dist/cli/index.js tools memories --limit 5 >/dev/null && node dist/cli/index.js tools git status >/dev/null","smoke:zalo:real":"npm run build && node scripts/smoke-zalo-real.mjs","smoke:doctor:fix":"npm run build && npm run smoke:doctor:fix:run","smoke:doctor:run":"node scripts/smoke-cli-temp-runtime.mjs doctor","smoke:status:run":"node scripts/smoke-cli-temp-runtime.mjs status","smoke:ui:browser":"npm run build && npm run smoke:ui:browser:run","smoke:zalo:setup":"npm run build && npm run smoke:zalo:setup:run","smoke:doctor:json":"npm run build && npm run smoke:doctor:json:run","smoke:onboard:run":"node scripts/smoke-onboard.mjs","smoke:telegram:run":"node scripts/smoke-telegram-disabled.mjs","smoke:telegram:real":"npm run build && node scripts/smoke-telegram-real.mjs","eval:character:cases":"npm run build && node --test dist/character/character-eval-cases.test.js","smoke:doctor:fix:run":"node scripts/smoke-doctor-fix.mjs","smoke:telegram:setup":"npm run build && npm run smoke:telegram:setup:run","smoke:ui:browser:run":"node scripts/smoke-ui-browser.mjs","smoke:zalo:setup:run":"node scripts/smoke-zalo-setup.mjs","smoke:doctor:json:run":"node scripts/smoke-cli-temp-runtime.mjs doctor-json","smoke:doctor:exit-code":"npm run build && node scripts/smoke-doctor-exit-code.mjs","smoke:telegram:setup:run":"node scripts/smoke-telegram-setup.mjs","smoke:channels:doctor:json":"npm run build && npm run smoke:channels:doctor:json:run","smoke:ui:onboarding:browser":"npm run build && node scripts/smoke-ui-onboarding-browser.mjs","smoke:channels:doctor:json:run":"node scripts/smoke-channels-doctor-json.mjs"},"_npmUser":{"name":"andynguyenn","email":"j22487069@icloud.com"},"_resolved":"C:\\Users\\quynp\\workspace\\bestie\\.release-artifacts\\bestie-agent-0.1.74.tgz","_integrity":"sha512-IOAm4l+Lxe8tHVH2+EZhECC3vYB32dPYbaEvF4KkT2tbzVSVMf2nZ6sekHfkYZjT3+b8I3TiInO+e5Efrgeayw==","_npmVersion":"11.19.0","description":"Vietnamese-first bestie agent CLI.","directories":{},"_nodeVersion":"24.21.0","dependencies":{"clsx":"^2.1.1","pngjs":"^7.0.0","react":"^19.2.8","three":"^0.185.1","grammy":"^1.44.0","zca-js":"2.1.2","mammoth":"^1.12.0","commander":"^14.0.3","cytoscape":"^3.34.0","iso-639-1":"^3.1.6","pdf-parse":"^1.1.1","react-dom":"^19.2.8","playwright":"^1.61.1","lucide-react":"^1.28.0","@google/genai":"^2.12.0","3d-force-graph":"^1.80.0","better-sqlite3":"^12.11.1","tailwind-merge":"^3.6.0","@grammyjs/types":"^3.28.0","three-spritetext":"^1.10.0","@inquirer/prompts":"^8.5.2","@radix-ui/react-slot":"^1.3.3","class-variance-authority":"^0.7.1","@elevenlabs/elevenlabs-js":"^2.57.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.2","vite":"^8.2.0","postcss":"^8.5.25","typescript":"^5.5.4","@types/node":"^20.14.15","tailwindcss":"^3.4.17","@types/pngjs":"^6.0.5","@types/react":"^19.2.18","@types/three":"^0.185.3","autoprefixer":"^10.5.4","@types/react-dom":"^19.2.4","@vitejs/plugin-react":"^6.0.5","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/bestie-agent_0.1.74_1789975787744_0.26569295797843107","host":"s3://npm-registry-packages-npm-production"}},"0.1.75":{"name":"bestie-agent","version":"0.1.75","_id":"bestie-agent@0.1.75","maintainers":[{"name":"andynguyenn","email":"j22487069@icloud.com"}],"bin":{"bestie":"dist/cli/index.js"},"dist":{"shasum":"795e5ca51ce2e096cde09af3a6705c6881803204","tarball":"https://registry.npmjs.org/bestie-agent/-/bestie-agent-0.1.75.tgz","fileCount":196,"integrity":"sha512-RQX5TSAEYhIE1igWu2eb/DOcXGcItMFv1JnYhxu+943cBlNHg95sxuwDRM1u5gdHkSAkGz2RiQY6sOBwk1Ze1A==","signatures":[{"sig":"MEYCIQDbbbC5kQcoqnsSWMvkZOqOGi7e+YDYzThlBT1ZXQMcVwIhAKODTMZhjDd4THQO06aRgULJxFTjUEAvSBQKxSJHBPsG","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIC5Rim2Fxu+NgwoE2OffDWjPOhdswuAeSbOajnXmBj1gAiAh7JNgHk1xSYm7rQLHmzxiNTNh+El53i6TLwV+vwgS4A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5361692},"type":"module","_from":"file:C:/Users/quynp/workspace/bestie/.release-artifacts/bestie-agent-0.1.75.tgz","engines":{"node":">=22"},"scripts":{"dev":"tsx src/cli/index.ts","test":"npm run build && node --test dist/**/*.test.js","build":"tsc -p tsconfig.json && npm run build:ui && node -e \"import('node:fs/promises').then(({ chmod }) => chmod('dist/cli/index.js', 0o755))\"","clean":"node scripts/clean.mjs","smoke":"npm run build && npm run smoke:status:run && npm run smoke:doctor:run && npm run smoke:doctor:json:run && npm run smoke:channels:doctor:json:run && npm run smoke:doctor:fix:run && npm run smoke:chat:run && npm run smoke:onboard:run && npm run smoke:telegram:setup:run && npm run smoke:zalo:setup:run","start":"node dist/cli/index.js","prepack":"npm run clean && npm run build","release":"node scripts/release.mjs","build:ui":"tsc -p web/tsconfig.json --noEmit && vite build --config web/vite.config.ts","smoke:ui":"npm run build && npm run smoke:ui:run","smoke:mcp":"npm run build && npm run smoke:mcp:run","pack:check":"npm run clean && npm run build && npm pack --dry-run","smoke:chat":"npm run build && npm run smoke:chat:run","smoke:zalo":"npm run build && npm run smoke:zalo:run","smoke:tools":"npm run build && npm run smoke:tools:run","smoke:doctor":"npm run build && npm run smoke:doctor:run","smoke:status":"npm run build && npm run smoke:status:run","smoke:ui:all":"npm run build && npm run smoke:ui:run && npm run smoke:ui:browser:run && node scripts/smoke-ui-onboarding-browser.mjs","smoke:ui:run":"node scripts/smoke-ui.mjs","smoke:mcp:run":"node scripts/smoke-mcp.mjs","smoke:onboard":"npm run build && npm run smoke:onboard:run","eval:character":"npm run build && node --test dist/character/prompt-generator.test.js dist/character/character-eval-cases.test.js","prepublishOnly":"npm test","smoke:chat:run":"node scripts/smoke-cli-temp-runtime.mjs chat","smoke:telegram":"npm run build && npm run smoke:telegram:run","smoke:zalo:run":"node scripts/smoke-zalo-disabled.mjs","smoke:installer":"npm run build && node scripts/smoke-installer.mjs","smoke:tools:run":"node dist/cli/index.js tools logs --lines 5 | grep -q 'action_permission_decision' && node dist/cli/index.js tools memories --limit 5 >/dev/null && node dist/cli/index.js tools git status >/dev/null","smoke:zalo:real":"npm run build && node scripts/smoke-zalo-real.mjs","smoke:doctor:fix":"npm run build && npm run smoke:doctor:fix:run","smoke:doctor:run":"node scripts/smoke-cli-temp-runtime.mjs doctor","smoke:status:run":"node scripts/smoke-cli-temp-runtime.mjs status","smoke:ui:browser":"npm run build && npm run smoke:ui:browser:run","smoke:zalo:setup":"npm run build && npm run smoke:zalo:setup:run","smoke:doctor:json":"npm run build && npm run smoke:doctor:json:run","smoke:onboard:run":"node scripts/smoke-onboard.mjs","smoke:telegram:run":"node scripts/smoke-telegram-disabled.mjs","smoke:telegram:real":"npm run build && node scripts/smoke-telegram-real.mjs","eval:character:cases":"npm run build && node --test dist/character/character-eval-cases.test.js","smoke:doctor:fix:run":"node scripts/smoke-doctor-fix.mjs","smoke:telegram:setup":"npm run build && npm run smoke:telegram:setup:run","smoke:ui:browser:run":"node scripts/smoke-ui-browser.mjs","smoke:zalo:setup:run":"node scripts/smoke-zalo-setup.mjs","smoke:doctor:json:run":"node scripts/smoke-cli-temp-runtime.mjs doctor-json","smoke:doctor:exit-code":"npm run build && node scripts/smoke-doctor-exit-code.mjs","smoke:telegram:setup:run":"node scripts/smoke-telegram-setup.mjs","smoke:channels:doctor:json":"npm run build && npm run smoke:channels:doctor:json:run","smoke:ui:onboarding:browser":"npm run build && node scripts/smoke-ui-onboarding-browser.mjs","smoke:channels:doctor:json:run":"node scripts/smoke-channels-doctor-json.mjs"},"_npmUser":{"name":"andynguyenn","email":"j22487069@icloud.com"},"_resolved":"C:\\Users\\quynp\\workspace\\bestie\\.release-artifacts\\bestie-agent-0.1.75.tgz","_integrity":"sha512-RQX5TSAEYhIE1igWu2eb/DOcXGcItMFv1JnYhxu+943cBlNHg95sxuwDRM1u5gdHkSAkGz2RiQY6sOBwk1Ze1A==","_npmVersion":"11.19.0","description":"Vietnamese-first bestie agent CLI.","directories":{},"_nodeVersion":"24.21.0","dependencies":{"clsx":"^2.1.1","pngjs":"^7.0.0","react":"^19.2.8","three":"^0.185.1","grammy":"^1.44.0","zca-js":"2.1.2","mammoth":"^1.12.0","commander":"^14.0.3","cytoscape":"^3.34.0","iso-639-1":"^3.1.6","pdf-parse":"^1.1.1","react-dom":"^19.2.8","playwright":"^1.61.1","lucide-react":"^1.28.0","@google/genai":"^2.12.0","3d-force-graph":"^1.80.0","better-sqlite3":"^12.11.1","tailwind-merge":"^3.6.0","@grammyjs/types":"^3.28.0","three-spritetext":"^1.10.0","@inquirer/prompts":"^8.5.2","@radix-ui/react-slot":"^1.3.3","class-variance-authority":"^0.7.1","@elevenlabs/elevenlabs-js":"^2.57.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.2","vite":"^8.2.0","postcss":"^8.5.25","typescript":"^5.5.4","@types/node":"^20.14.15","tailwindcss":"^3.4.17","@types/pngjs":"^6.0.5","@types/react":"^19.2.18","@types/three":"^0.185.3","autoprefixer":"^10.5.4","@types/react-dom":"^19.2.4","@vitejs/plugin-react":"^6.0.5","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/bestie-agent_0.1.75_1789976516345_0.8626628971448727","host":"s3://npm-registry-packages-npm-production"}},"0.1.76":{"_id":"bestie-agent@0.1.76","bin":{"bestie":"dist/cli/index.js"},"dist":{"shasum":"0546b3f2f4eec704885c19b5936504e4a1e82061","tarball":"https://registry.npmjs.org/bestie-agent/-/bestie-agent-0.1.76.tgz","fileCount":198,"integrity":"sha512-Qf5/0qIGV+z9KUUNj1cO2RIU/mV8WXcmUoAVoZTNAK+lucCbuWrHafO7RsmPB54xG/tfmFcSeGP9aBqvpAQ8Fw==","signatures":[{"sig":"MEUCIG4l11QSkXgCpmF9owf5/N3QdmkqAwMhgiK7jH5zdWDbAiEA7fB4HUMcKb3U99LU7QTshSHBtKiGXGtamj2F6itWwY0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIHFR63C2UcZvTNVp6gJWu1/A6iEMOXwOKZsSLUJ0zgRRAiBHsQU4ELMfQ7Jik4hyv51/dW9fI38I9u4sm5DpvaKPEA=="}],"unpackedSize":5367937},"name":"bestie-agent","type":"module","_from":"file:C:/Users/quynp/workspace/bestie/.release-artifacts/bestie-agent-0.1.76.tgz","engines":{"node":">=22"},"scripts":{"dev":"tsx src/cli/index.ts","test":"npm run build && node --test dist/**/*.test.js","build":"tsc -p tsconfig.json && npm run build:ui && node -e \"import('node:fs/promises').then(({ chmod }) => chmod('dist/cli/index.js', 0o755))\"","clean":"node scripts/clean.mjs","smoke":"npm run build && npm run smoke:status:run && npm run smoke:doctor:run && npm run smoke:doctor:json:run && npm run smoke:channels:doctor:json:run && npm run smoke:doctor:fix:run && npm run smoke:chat:run && npm run smoke:onboard:run && npm run smoke:telegram:setup:run && npm run smoke:zalo:setup:run","start":"node dist/cli/index.js","prepack":"npm run clean && npm run build","release":"node scripts/release.mjs","build:ui":"tsc -p web/tsconfig.json --noEmit && vite build --config web/vite.config.ts","smoke:ui":"npm run build && npm run smoke:ui:run","smoke:mcp":"npm run build && npm run smoke:mcp:run","pack:check":"npm run clean && npm run build && npm pack --dry-run","smoke:chat":"npm run build && npm run smoke:chat:run","smoke:zalo":"npm run build && npm run smoke:zalo:run","smoke:tools":"npm run build && npm run smoke:tools:run","smoke:doctor":"npm run build && npm run smoke:doctor:run","smoke:status":"npm run build && npm run smoke:status:run","smoke:ui:all":"npm run build && npm run smoke:ui:run && npm run smoke:ui:browser:run && node scripts/smoke-ui-onboarding-browser.mjs","smoke:ui:run":"node scripts/smoke-ui.mjs","smoke:mcp:run":"node scripts/smoke-mcp.mjs","smoke:onboard":"npm run build && npm run smoke:onboard:run","eval:character":"npm run build && node --test dist/character/prompt-generator.test.js dist/character/character-eval-cases.test.js","prepublishOnly":"npm test","smoke:chat:run":"node scripts/smoke-cli-temp-runtime.mjs chat","smoke:telegram":"npm run build && npm run smoke:telegram:run","smoke:zalo:run":"node scripts/smoke-zalo-disabled.mjs","smoke:installer":"npm run build && node scripts/smoke-installer.mjs","smoke:tools:run":"node dist/cli/index.js tools logs --lines 5 | grep -q 'action_permission_decision' && node dist/cli/index.js tools memories --limit 5 >/dev/null && node dist/cli/index.js tools git status >/dev/null","smoke:zalo:real":"npm run build && node scripts/smoke-zalo-real.mjs","smoke:doctor:fix":"npm run build && npm run smoke:doctor:fix:run","smoke:doctor:run":"node scripts/smoke-cli-temp-runtime.mjs doctor","smoke:status:run":"node scripts/smoke-cli-temp-runtime.mjs status","smoke:ui:browser":"npm run build && npm run smoke:ui:browser:run","smoke:zalo:setup":"npm run build && npm run smoke:zalo:setup:run","smoke:doctor:json":"npm run build && npm run smoke:doctor:json:run","smoke:onboard:run":"node scripts/smoke-onboard.mjs","smoke:telegram:run":"node scripts/smoke-telegram-disabled.mjs","smoke:telegram:real":"npm run build && node scripts/smoke-telegram-real.mjs","eval:character:cases":"npm run build && node --test dist/character/character-eval-cases.test.js","smoke:doctor:fix:run":"node scripts/smoke-doctor-fix.mjs","smoke:telegram:setup":"npm run build && npm run smoke:telegram:setup:run","smoke:ui:browser:run":"node scripts/smoke-ui-browser.mjs","smoke:zalo:setup:run":"node scripts/smoke-zalo-setup.mjs","smoke:doctor:json:run":"node scripts/smoke-cli-temp-runtime.mjs doctor-json","smoke:doctor:exit-code":"npm run build && node scripts/smoke-doctor-exit-code.mjs","smoke:telegram:setup:run":"node scripts/smoke-telegram-setup.mjs","smoke:channels:doctor:json":"npm run build && npm run smoke:channels:doctor:json:run","smoke:ui:onboarding:browser":"npm run build && node scripts/smoke-ui-onboarding-browser.mjs","smoke:channels:doctor:json:run":"node scripts/smoke-channels-doctor-json.mjs"},"version":"0.1.76","_npmUser":{"name":"andynguyenn","email":"j22487069@icloud.com"},"_resolved":"C:\\Users\\quynp\\workspace\\bestie\\.release-artifacts\\bestie-agent-0.1.76.tgz","_integrity":"sha512-Qf5/0qIGV+z9KUUNj1cO2RIU/mV8WXcmUoAVoZTNAK+lucCbuWrHafO7RsmPB54xG/tfmFcSeGP9aBqvpAQ8Fw==","_npmVersion":"11.19.0","description":"Vietnamese-first bestie agent CLI.","directories":{},"maintainers":[{"name":"andynguyenn","email":"j22487069@icloud.com"}],"_nodeVersion":"24.21.0","dependencies":{"clsx":"^2.1.1","pngjs":"^7.0.0","react":"^19.2.8","three":"^0.185.1","grammy":"^1.44.0","zca-js":"2.1.2","mammoth":"^1.12.0","commander":"^14.0.3","cytoscape":"^3.34.0","iso-639-1":"^3.1.6","pdf-parse":"^1.1.1","react-dom":"^19.2.8","playwright":"^1.61.1","lucide-react":"^1.28.0","@google/genai":"^2.12.0","3d-force-graph":"^1.80.0","better-sqlite3":"^12.11.1","tailwind-merge":"^3.6.0","@grammyjs/types":"^3.28.0","three-spritetext":"^1.10.0","@inquirer/prompts":"^8.5.2","@radix-ui/react-slot":"^1.3.3","class-variance-authority":"^0.7.1","@elevenlabs/elevenlabs-js":"^2.57.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.2","vite":"^8.2.0","postcss":"^8.5.25","typescript":"^5.5.4","@types/node":"^20.14.15","tailwindcss":"^3.4.17","@types/pngjs":"^6.0.5","@types/react":"^19.2.18","@types/three":"^0.185.3","autoprefixer":"^10.5.4","@types/react-dom":"^19.2.4","@vitejs/plugin-react":"^6.0.5","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/bestie-agent_0.1.76_1790224500318_0.7141712105072591"}}},"time":{"created":"2026-07-13T08:51:58.658Z","modified":"2026-09-24T04:35:00.964Z","0.1.1":"2026-07-13T08:51:58.973Z","0.1.2":"2026-07-13T09:27:03.682Z","0.1.3":"2026-07-13T11:43:22.484Z","0.1.4":"2026-07-14T11:30:16.420Z","0.1.5":"2026-07-14T14:17:35.625Z","0.1.6":"2026-07-14T15:19:51.903Z","0.1.7":"2026-07-15T08:18:35.884Z","0.1.8":"2026-07-15T08:34:19.464Z","0.1.9":"2026-07-15T08:53:20.824Z","0.1.10":"2026-07-15T10:59:46.543Z","0.1.11":"2026-07-15T12:08:04.993Z","0.1.12":"2026-07-15T16:27:47.162Z","0.1.13":"2026-07-15T17:18:17.767Z","0.1.14":"2026-07-16T03:44:48.650Z","0.1.15":"2026-07-18T12:24:25.442Z","0.1.16":"2026-07-21T07:22:44.087Z","0.1.17":"2026-07-21T07:34:42.586Z","0.1.18":"2026-07-24T18:17:14.857Z","0.1.19":"2026-07-27T03:42:04.563Z","0.1.20":"2026-07-29T01:58:07.439Z","0.1.21":"2026-08-01T11:36:18.323Z","0.1.22":"2026-08-02T03:49:25.808Z","0.1.23":"2026-08-03T05:15:38.657Z","0.1.24":"2026-08-03T08:04:36.704Z","0.1.25":"2026-08-03T09:40:03.823Z","0.1.26":"2026-08-03T10:04:14.609Z","0.1.27":"2026-08-03T13:51:51.071Z","0.1.28":"2026-08-03T14:35:03.283Z","0.1.29":"2026-08-03T14:53:22.491Z","0.1.30":"2026-08-03T16:53:32.548Z","0.1.31":"2026-08-03T17:22:58.273Z","0.1.33":"2026-08-06T15:00:42.003Z","0.1.34":"2026-08-06T15:19:54.223Z","0.1.35":"2026-08-07T14:37:39.936Z","0.1.36":"2026-08-07T15:13:10.970Z","0.1.37":"2026-08-08T05:27:22.435Z","0.1.39":"2026-08-09T07:10:59.771Z","0.1.40":"2026-08-11T13:39:34.785Z","0.1.41":"2026-08-11T15:10:36.027Z","0.1.42":"2026-08-11T16:37:17.152Z","0.1.43":"2026-08-11T16:57:18.859Z","0.1.44":"2026-08-12T03:50:50.658Z","0.1.46":"2026-08-12T07:01:17.662Z","0.1.47":"2026-08-12T13:11:43.247Z","0.1.48":"2026-08-14T01:39:48.588Z","0.1.49":"2026-08-18T02:34:58.648Z","0.1.50":"2026-08-18T02:55:13.554Z","0.1.52":"2026-08-19T03:07:13.921Z","0.1.53":"2026-08-19T03:38:19.949Z","0.1.54":"2026-08-19T10:48:50.938Z","0.1.55":"2026-08-20T02:24:53.137Z","0.1.56":"2026-08-20T04:46:53.485Z","0.1.57":"2026-08-20T07:17:02.903Z","0.1.58":"2026-08-20T14:45:55.601Z","0.1.59":"2026-08-21T09:24:06.906Z","0.1.60":"2026-08-25T05:36:00.424Z","0.1.61":"2026-08-25T06:01:37.201Z","0.1.62":"2026-08-25T06:40:16.947Z","0.1.64":"2026-08-25T07:27:59.565Z","0.1.66":"2026-08-25T08:00:21.469Z","0.1.67":"2026-08-26T05:12:01.981Z","0.1.68":"2026-08-26T05:33:07.150Z","0.1.69":"2026-08-27T14:06:03.558Z","0.1.70":"2026-09-04T04:51:07.836Z","0.1.71":"2026-09-05T06:37:19.879Z","0.1.72":"2026-09-21T06:30:01.716Z","0.1.74":"2026-09-21T07:29:47.910Z","0.1.75":"2026-09-21T07:41:56.470Z","0.1.76":"2026-09-24T04:35:00.787Z"},"description":"Vietnamese-first bestie agent CLI.","maintainers":[{"name":"andynguyenn","email":"j22487069@icloud.com"}],"readme":"# Bestie\r\n\r\n<p align=\"center\">\r\n  <img src=\"assets/bestie-logo-horizontal.jpg\" alt=\"Bestie Agent\" width=\"520\" />\r\n</p>\r\n\r\nBestie is a self-hosted, local-first AI companion runtime with a Vietnamese-first character, local memory, provider diagnostics, Telegram/Zalo channels, skills, update checks, a localhost Web UI, and a safety-first permission model.\r\n\r\nThe project is active and practical: the shipped npm CLI/runtime is designed to be inspected, configured, and run locally by its owner.\r\n\r\n## What Bestie Is\r\n\r\n- A TypeScript CLI/runtime for running a personalized AI companion.\r\n- Vietnamese-first by default, with editable character files and prompt files.\r\n- A local Web UI through `bestie ui` for chat, diagnostics, providers, character, memory, knowledge graph, channels, approvals, MCP, tools, skills, and settings.\r\n- Configurable LLM providers with model refs, auth profiles, fallbacks, and provider diagnostics.\r\n- A local-first memory system backed by SQLite and explicit approval/governance controls.\r\n- A channel runtime for Telegram, Zalo, and cron schedules, with daemon/service management.\r\n- A permission-gated tool runtime for local files/actions, media generation, permission-gated MCP calls, and bounded internal subagents.\r\n\r\n## What Bestie Is Not\r\n\r\nBestie is not conscious, human, a therapist replacement, a romantic companion, or a promise of perfect memory. It should not be used as a replacement for professional mental health, legal, medical, or financial advice.\r\n\r\n## Current Status\r\n\r\nThe local MVP foundation is implemented and includes:\r\n\r\n- Terminal chat with editable character prompt loading.\r\n- Local Web UI built with Vite/React, served by `bestie ui`, with responsive layout, PWA install support, modal confirmations, toast notifications, and update banner.\r\n- Provider setup and tests for Gemini CLI, Claude CLI, and Codex CLI local middleware, OpenAI/ChatGPT, Anthropic Claude, OpenAI-compatible providers, Groq, OpenRouter, QuotaCheap, Ollama, and native Gemini API-key mode.\r\n- Provider model refs, fallback order, diagnostics, and default LLM timeout of `300000ms`.\r\n- Local SQLite memory, pending approvals, pause/resume, hygiene/governance helpers, and knowledge graph UI.\r\n- Telegram and Zalo polling runtimes, shared attachment pipeline, channel-neutral voice helpers, and cron schedules.\r\n- Daemon management for `telegram`, `zalo`, `cron`, `workforce`, `ui`, or `all`, with duplicate-process cleanup safeguards.\r\n- User service support for Linux systemd, macOS launchd, and Windows Startup folder.\r\n- Permission-gated local read/write/action tools, external workspace path allowlist, configurable exec timeout, image/video generation tools, and bounded internal subagents.\r\n- MVP Agent Workforce registry and task inbox for fixed role agents with profile, prompt file, memory scope, approval policy, and `bestie agents` management commands.\r\n- SDK-backed MCP add/list/show/test/tools/classify/login/call with classified read calls.\r\n- Skills installed from `~/.bestie/skills`, plus an official remote GitHub skill registry (`sirquy/bestie-skills`) with verification, cache, preview, diff, install/update, rollback, enable/disable, and uninstall flows.\r\n- `bestie update` and throttled update notices for new npm versions.\r\n- Doctor diagnostics, safe local fixes, redacted logs, smoke tests, and character regression evals.\r\n\r\nStill intentionally later: hosted/SaaS mode, public marketplace, avatar/body layer, broad autonomous external actions, unrestricted MCP execution, Bestie manager routing, and general multi-agent collaboration beyond the fixed-role Agent Workforce.\r\n\r\n## Requirements\r\n\r\n- Node.js 24+\r\n- npm\r\n- At least one LLM provider API key for cloud chat, a local Ollama setup, or a logged-in Gemini CLI/Claude CLI/Codex CLI install\r\n- Optional: Telegram bot token, Zalo credentials, `ffmpeg`, and media provider keys for channel/media features\r\n\r\n## Quickstart\r\n\r\n```bash\r\nnpm ci\r\nnpm run build\r\nnpm run dev -- onboard\r\nnpm run dev -- doctor\r\nnpm run dev -- chat\r\nnpm run dev -- ui\r\n```\r\n\r\nFor a local user install:\r\n\r\n```bash\r\n./install.sh --skip-onboard\r\nbestie onboard\r\nbestie doctor\r\nbestie chat\r\nbestie ui\r\n```\r\n\r\nFor npm install:\r\n\r\n```bash\r\nnpm install -g bestie-agent\r\nbestie onboard\r\nbestie doctor\r\nbestie chat\r\nbestie ui\r\n```\r\n\r\nTo publish a release locally to npm and GitHub (requires authenticated `npm`\r\nand GitHub CLI `gh`):\r\n\r\n```bash\r\nnpm run release -- patch\r\n```\r\n\r\nThe release script runs tests, updates `package.json` and `package-lock.json`,\r\ncommits and pushes the matching `vX.Y.Z` tag, publishes the package to npm,\r\nand creates the GitHub Release with the packed `.tgz` attached. Use\r\n`npm run release -- minor --dry-run` to inspect the planned release first.\r\n\r\nUseful runtime commands:\r\n\r\n```bash\r\nbestie status\r\nbestie doctor\r\nbestie ui\r\nbestie ui --port 8717\r\nbestie ui --port 0 --no-open\r\nbestie ui auth reset\r\nbestie ui tunnel setup\r\nbestie ui tunnel status\r\nbestie ui tunnel start\r\nbestie ui tunnel stop\r\nbestie agents hire --id researcher --name Mika --role \"Research Assistant\" --description \"Research and summarize information\"\r\nbestie agents assign --agent researcher --title \"Market brief\" --brief \"Summarize this week\"\r\nbestie agents list\r\nbestie agents tasks --agent researcher\r\nbestie agents run --agent researcher --limit 1\r\nbestie agents run --watch --interval-ms 30000\r\nbestie channels telegram setup\r\nbestie channels telegram\r\nbestie channels zalo\r\nbestie daemon status --channel all\r\nbestie daemon restart --channel telegram\r\nbestie daemon restart --channel zalo\r\nbestie daemon restart --channel cron\r\nbestie daemon restart --channel workforce\r\nbestie service install\r\nbestie service status\r\nbestie cron list\r\nbestie mcp list\r\nbestie mcp add demo --url https://mcp.example.com/mcp\r\nbestie mcp login demo\r\nbestie skills\r\nbestie update\r\nbestie update --apply\r\n```\r\n\r\nShared voice helpers:\r\n\r\n```bash\r\nbestie voice setup-local\r\nbestie voice setup-elevenlabs\r\nbestie voice setup-voicebox\r\nbestie voice models\r\nbestie voice download-model small\r\nbestie voice download-model small --confirm --use\r\n```\r\n\r\n`voice` is channel-neutral: Telegram, Zalo, Web UI, and future channels should reuse the same top-level speech/transcription config. Use only `bestie voice ...` for voice setup; channel commands should consume the shared config rather than expose voice setup aliases. `setup-local` configures local whisper.cpp transcription when the local binary, model, and `ffmpeg` are present. `setup-elevenlabs` configures ElevenLabs speech replies and stores only the API key environment value in `~/.bestie/.env`. `setup-voicebox` configures local Voicebox speech and transcription at `http://127.0.0.1:17493` by default. `models` lists local `.bin` models and marks the configured one; `download-model` previews by default and downloads only with `--confirm`.\r\n\r\nDuring `bestie channels telegram setup`, leave the owner prompt blank to detect the owner from the latest message sent to the bot. You can also run `bestie channels telegram whoami` after messaging the bot to print the numeric id and username.\r\n\r\nHuman-facing CLI commands print a built-in `Bestie Agent` ASCII banner. In an interactive terminal the banner animates briefly; piped output uses the static banner. Set `BESTIE_NO_BANNER=1` to hide it, or `BESTIE_BANNER=static` to keep it still. JSON modes such as `bestie doctor --json` suppress the banner automatically.\r\n\r\nBestie uses colored badges, tables, and short progress indicators for human output. Set `NO_COLOR=1` to disable ANSI colors. Raw and machine-readable commands stay script-friendly.\r\n\r\n## Configuration\r\n\r\nBestie keeps local runtime files under `~/.bestie/` by default. Secrets belong in `~/.bestie/.env`; config files store environment variable names, not secret values.\r\n\r\nExample `~/.bestie/.env`:\r\n\r\n```bash\r\nOPENAI_API_KEY=your-openai-key\r\nANTHROPIC_API_KEY=your-claude-key\r\nGEMINI_API_KEY=your-gemini-key\r\nOPENROUTER_API_KEY=your-openrouter-key\r\nQUOTACHEAP_API_KEY=your-quotacheap-key\r\nBESTIE_TELEGRAM_BOT_TOKEN=your-telegram-token\r\n```\r\n\r\nExample provider config:\r\n\r\n```json\r\n{\r\n  \"llm\": {\r\n    \"primary\": \"openai/gpt-4o-mini\",\r\n    \"fallbacks\": [\"anthropic/claude-sonnet-4-5\"],\r\n    \"authProfile\": \"openai:api-key\",\r\n    \"timeoutMs\": 300000,\r\n    \"profiles\": {\r\n      \"openai:api-key\": {\r\n        \"provider\": \"openai\",\r\n        \"mode\": \"api-key\",\r\n        \"baseUrl\": \"https://api.openai.com/v1\",\r\n        \"apiKeyEnv\": \"OPENAI_API_KEY\"\r\n      },\r\n      \"anthropic:api-key\": {\r\n        \"provider\": \"anthropic\",\r\n        \"mode\": \"api-key\",\r\n        \"baseUrl\": \"https://api.anthropic.com/v1\",\r\n        \"apiKeyEnv\": \"ANTHROPIC_API_KEY\"\r\n      },\r\n      \"gemini:api-key\": {\r\n        \"provider\": \"gemini\",\r\n        \"mode\": \"api-key\",\r\n        \"apiKeyEnv\": \"GEMINI_API_KEY\"\r\n      }\r\n    },\r\n    \"modelCatalog\": {\r\n      \"openai/gpt-4o-mini\": { \"profile\": \"openai:api-key\" },\r\n      \"anthropic/claude-sonnet-4-5\": { \"profile\": \"anthropic:api-key\" },\r\n      \"gemini/gemini-2.5-flash\": { \"profile\": \"gemini:api-key\" }\r\n    }\r\n  }\r\n}\r\n```\r\n\r\nModel refs use `provider/model`. Profiles hold endpoint and auth metadata; secrets live in `.env` through `apiKeyEnv`. HTTP providers store `baseUrl`; native Gemini API-key profiles intentionally omit `baseUrl`; local Ollama profiles use `mode: \"local\"` and do not need an API key. Gemini CLI, Claude CLI, and Codex CLI profiles use `provider: \"gemini-cli\"`, `provider: \"claude-cli\"`, or `provider: \"codex-cli\"`, `mode: \"local\"`, no `baseUrl`, and reuse the user's local CLI login/config as middleware.\r\n\r\nRun `bestie llm providers` to list supported providers, `bestie llm models --provider gemini` to inspect built-in refs, `bestie llm setup --provider gemini-cli --set-default`, `bestie llm setup --provider claude-cli --set-default`, or `bestie llm setup --provider codex-cli --set-default` to route Bestie through a local CLI, `bestie llm setup` to configure another provider, `bestie llm test --model provider/model` to test without switching primary, and `bestie llm fallbacks list|add|remove` to manage fallback order.\r\n\r\nSee `docs/CONFIG_SPEC.md` for full config details, including `llm.image`, `workspace.externalPaths`, `internalTools.exec.timeoutMs`, `skills.registry`, channels, MCP, transcription, and speech.\r\n\r\n## Local Web UI\r\n\r\nRun the local console with:\r\n\r\n```bash\r\nbestie ui\r\n```\r\n\r\nBy default it binds to `127.0.0.1`. Use `bestie ui --no-open` for terminal-only sessions, `bestie ui --port 8717` for a fixed port, or `bestie ui --port 0 --no-open` for smoke-friendly dynamic ports. The current CLI prints the local URL; automatic browser opening is intentionally conservative.\r\n\r\nThe Web UI is a Vite/React app served by the local Node UI server. It uses the same `~/.bestie/` runtime files as the CLI and exposes:\r\n\r\n- Chat with sessions, markdown rendering, attachments, retry/copy/fork controls, fullscreen chat, model select, auto-scroll, and session title editing.\r\n- Doctor diagnostics and confirmation-gated fixes.\r\n- Provider tabs for model management, adding providers, saved profiles/models, and tests.\r\n- Character editor for identity/tone/prompt files.\r\n- Memory and Channels pages organized with tabs.\r\n- 3D knowledge graph map and inventory/review controls.\r\n- Approvals, MCP, Tools & Permissions, Skills, and Settings.\r\n- PWA install support for mobile, responsive sidebar, app icon, update banner, toasts, and modal confirmations.\r\n\r\nThe UI reports secret presence and env var names only; raw `.env` values are not returned by UI APIs.\r\n\r\n## Skills\r\n\r\nBestie loads installed skills from:\r\n\r\n```text\r\n~/.bestie/skills/<skill-name>/SKILL.md\r\n```\r\n\r\nThe Web UI skill library uses the official remote registry by default:\r\n\r\n```text\r\nhttps://raw.githubusercontent.com/sirquy/bestie-skills/master/registry.json\r\n```\r\n\r\nRemote registry installs require HTTPS, verification, `installPolicy: \"ask\"`, and explicit owner confirmation. Library previews and installed skill editing open in modals; the editor is only for installed skills.\r\n\r\n## Development Commands\r\n\r\n```bash\r\nnpm run build\r\nnpm test\r\nnpm run smoke\r\nnpm run smoke:ui\r\nnpm run smoke:ui:all\r\nnpm run eval:character\r\n```\r\n\r\nUse focused tests while iterating, then run the full suite before opening a pull request. `npm run smoke:ui` runs API/static UI smoke; `npm run smoke:ui:all` also launches a browser and checks desktop/mobile layout.\r\n\r\n## Safety And Privacy\r\n\r\n- Do not commit `.bestie/`, `.env`, logs, local databases, generated assets, or provider keys.\r\n- Do not print API keys, bot tokens, auth headers, or raw `.env` contents.\r\n- External content from files, web pages, Telegram, Zalo, MCP, skills, and tools is untrusted.\r\n- Public/external/destructive/money-related actions must require explicit approval.\r\n- Telemetry, if added, must be opt-in and privacy-first.\r\n\r\nSee `SECURITY.md` and `docs/SECURITY_PRIVACY.md`.\r\n\r\n## Contributing\r\n\r\nContributions are welcome, especially small, well-tested improvements. Start with `CONTRIBUTING.md`, check open issues, and keep pull requests focused.\r\n\r\nGood first contributions include documentation clarity, diagnostics, focused tests, provider compatibility fixes, safe channel/runtime polish, and Web UI usability improvements.\r\n\r\n## License\r\n\r\nThis project is released under the MIT License. See `LICENSE`.\r\n","readmeFilename":"README.md"}