package.json
Rama main · réplica de lectura del repositorio original.
{
"name": "scallopbot",
"version": "0.1.0",
"description": "An economical and smart bot architecture",
"main": "dist/index.js",
"type": "module",
"bin": {
"scallopbot": "dist/cli.js",
"scallopbot-mcp": "dist/mcp-server/index.js"
},
"files": [
"dist",
"public",
".env.example",
"ecosystem.config.cjs"
],
"engines": {
"node": ">=24.0.0"
},
"scripts": {
"clean": "rm -rf dist",
"build:web": "cd web && npm install && npm run build",
"build": "npm run build:web && rm -rf dist && tsc && node -e \"const fs=require('fs'),p=require('path');function cpDir(s,t){fs.mkdirSync(t,{recursive:true});fs.readdirSync(s,{withFileTypes:true}).forEach(e=>{const sp=p.join(s,e.name),tp=p.join(t,e.name);e.isDirectory()?cpDir(sp,tp):fs.copyFileSync(sp,tp)})}fs.readdirSync('src/skills/bundled').forEach(d=>{const s=p.join('src/skills/bundled',d),t=p.join('dist/skills/bundled',d);if(fs.existsSync(p.join(s,'SKILL.md')))cpDir(s,t)})\"",
"start": "node dist/cli.js start",
"dev": "tsx watch src/index.ts",
"test": "vitest",
"test:proactive": "vitest run src/e2e/proactive-humanlike.test.ts src/memory/gap-scanner.test.ts src/memory/proactive-evaluator.test.ts src/memory/scheduled-item-state.test.ts src/proactive/message-quality.test.ts src/proactive/message-safety.test.ts src/proactive/timing-model.test.ts src/proactive/feedback.test.ts src/proactive/scheduler.test.ts src/proactive/scheduler-durable-task.test.ts src/channels/telegram-proactive-reply.test.ts",
"benchmark:intelligence": "vitest run src/routing/routing-quality.test.ts src/memory/retrieval-quality.test.ts src/memory/semantic-index.test.ts src/proactive/feedback.test.ts src/proactive/message-safety.test.ts src/proactive/scheduler.test.ts src/security/redaction.test.ts src/skills/executor.test.ts src/routing/trace-tap.test.ts src/agent/tool-policy-dispatch.test.ts src/brain/outcome-brain.test.ts src/goals/verified-goal.test.ts src/goals/skill.test.ts src/workflow/executor.test.ts src/skills/bundled/mcp/mcp.test.ts src/evolution/fitness.test.ts src/evolution/privacy.test.ts src/evolution/verify.test.ts src/evolution/procedure-skill.test.ts src/evolution/optimizer.e2e.test.ts src/evolution/version-ledger.test.ts src/evolution/units.test.ts src/board/durable-workers.test.ts src/proactive/scheduler-durable-task.test.ts src/e2e/intelligence-scorecard.test.ts src/e2e/intelligence-regression.test.ts --reporter=verbose",
"benchmark:proactive": "tsx benchmarks/proactive-humanlike-live.ts",
"benchmark:hardening": "tsx benchmarks/hardening-scorecard.ts",
"recover:session": "tsx scripts/recover-session.ts",
"benchmark:evolution-live": "tsx benchmarks/evolution-skill-live.ts",
"benchmark:memory": "node --expose-gc --import tsx benchmarks/memory-semantic-retrieval.ts",
"typecheck": "tsc --noEmit && tsc --noEmit -p tsconfig.bench.json",
"bench:agentic": "tsx evals/agentic/run.ts",
"postmortem": "tsx scripts/postmortem.ts",
"bench:compaction": "tsx benchmarks/compaction-recall.ts",
"bench:locomo": "vitest run -c /dev/null src/eval/locomo-landing.test.ts",
"bench:codemode": "tsx evals/codemode/bench.ts",
"lint": "eslint src/",
"check:secrets": "node scripts/check-no-secrets.mjs",
"format": "prettier --write src/"
},
"keywords": [
"bot",
"ai",
"assistant",
"llm",
"economical"
],
"author": "Squarestock",
"license": "MIT",
"devDependencies": {
"@eslint/js": "^9.39.2",
"@types/bcrypt": "^6.0.0",
"@types/better-sqlite3": "^7.6.13",
"@types/js-yaml": "^4.0.9",
"@types/mailparser": "^3.9.0",
"@types/node": "^20.0.0",
"@types/nodemailer": "^8.0.2",
"@types/ws": "^8.18.1",
"eslint": "^9.0.0",
"prettier": "^3.0.0",
"typescript": "^5.0.0",
"typescript-eslint": "^8.54.0",
"vitest": "^3.2.7"
},
"dependencies": {
"@anthropic-ai/sdk": "^0.72.1",
"acorn": "^8.15.0",
"afinn-165": "^2.0.2",
"agent-browser": "^0.31.1",
"bcrypt": "^6.0.0",
"better-sqlite3": "^12.6.2",
"chalk": "^5.6.2",
"commander": "^14.0.3",
"discord.js": "^14.26.4",
"dotenv": "^17.2.3",
"fflate": "^0.8.2",
"grammy": "^1.39.3",
"groq-sdk": "^0.37.0",
"ical.js": "^2.2.1",
"imapflow": "^2.2.1",
"js-yaml": "^4.3.0",
"mailparser": "^3.9.33",
"nanoid": "^5.1.6",
"node-cron": "^4.2.1",
"nodemailer": "^10.0.13",
"openai": "^6.17.0",
"pino": "^10.3.0",
"tsx": "^4.0.0",
"ws": "^8.21.0",
"zod": "^4.3.6"
},
"optionalDependencies": {
"@hapi/boom": "^10.0.1",
"@slack/bolt": "^4.3.1",
"@whiskeysockets/baileys": "^7.0.0-rc13",
"matrix-js-sdk": "^41.9.0"
},
"overrides": {
"undici": "6.28.1"
}
}