Files
lettabot/package.json
Cameron fe233b2f8f feat: add e2e tests with Letta Cloud (#149)
E2E testing infrastructure that tests the full message flow against a real Letta Cloud agent.

Changes:
- Add MockChannelAdapter for simulating inbound/outbound messages
- Add e2e/bot.e2e.test.ts with 4 e2e tests:
  - Simple message/response
  - /status command
  - /help command
  - Conversation context retention
- Add 'mock' to ChannelId type
- Update CI workflow with separate e2e job (uses secrets)
- Add npm run test:e2e script

E2E tests require:
- LETTA_API_KEY (already in repo secrets)
- LETTA_E2E_AGENT_ID (needs to be added)

E2E tests are skipped locally without these env vars.

Written by Cameron ◯ Letta Code

"Trust, but verify." - Ronald Reagan (on e2e testing)
2026-02-04 17:51:23 -08:00

75 lines
2.1 KiB
JSON

{
"name": "lettabot",
"version": "1.0.0",
"type": "module",
"main": "dist/main.js",
"bin": {
"lettabot": "./dist/cli.js",
"lettabot-schedule": "./dist/cron/cli.js",
"lettabot-message": "./dist/cli/message.js",
"lettabot-react": "./dist/cli/react.js",
"lettabot-channels": "./dist/cli/channels.js"
},
"scripts": {
"setup": "tsx src/setup.ts",
"dev": "tsx src/main.ts",
"build": "tsc",
"start": "node dist/main.js",
"test": "vitest",
"test:run": "vitest run",
"test:e2e": "vitest run e2e/",
"skills": "tsx src/cli.ts skills",
"skills:list": "tsx src/cli.ts skills list",
"skills:status": "tsx src/cli.ts skills status",
"cron": "tsx src/cron/cli.ts",
"pairing": "tsx src/cli.ts pairing",
"skill:install": "npx clawdhub install --dir ~/.letta/skills",
"skill:search": "npx clawdhub search",
"skill:list": "npx clawdhub list --dir ~/.letta/skills",
"skills:add": "npx skills add --global --yes",
"skills:find": "npx skills find"
},
"keywords": [
"telegram",
"bot",
"letta",
"ai",
"agent"
],
"author": "",
"license": "Apache-2.0",
"description": "Multi-channel AI assistant with persistent memory - Telegram, Slack, WhatsApp",
"dependencies": {
"@clack/prompts": "^0.11.0",
"@hapi/boom": "^10.0.1",
"@letta-ai/letta-client": "^1.7.7",
"@letta-ai/letta-code-sdk": "^0.0.5",
"@types/express": "^5.0.6",
"@types/node": "^25.0.10",
"@types/node-schedule": "^2.1.8",
"dotenv": "^17.2.3",
"express": "^5.2.1",
"googleapis": "^170.1.0",
"grammy": "^1.39.3",
"gray-matter": "^4.0.3",
"node-schedule": "^2.1.1",
"open": "^11.0.0",
"openai": "^6.17.0",
"qrcode-terminal": "^0.12.0",
"telegram-markdown-v2": "^0.0.4",
"tsx": "^4.21.0",
"typescript": "^5.9.3",
"update-notifier": "^7.3.1",
"yaml": "^2.8.2"
},
"optionalDependencies": {
"@slack/bolt": "^4.6.0",
"@whiskeysockets/baileys": "^6.7.21",
"discord.js": "^14.25.1"
},
"devDependencies": {
"@types/update-notifier": "^6.0.8",
"vitest": "^4.0.18"
}
}