* Slack: convert Markdown to mrkdwn * Slack: avoid literal dynamic import for optional dep * Slack formatter: cache optional dependency load state * fix: remove slackify-markdown from lockfile dependencies The lockfile had slackify-markdown in both `dependencies` (pinned) and `optionalDependencies`, but package.json only lists it in optionalDependencies. This caused npm ci to treat it as required, defeating the optional dependency pattern. Regenerated lockfile with clean npm install to fix. Written by Cameron ◯ Letta Code "The lockfile giveth, and the lockfile taketh away." - npm, probably --------- Co-authored-by: Cameron <cameron@pfiffer.org>
101 lines
2.7 KiB
JSON
101 lines
2.7 KiB
JSON
{
|
|
"name": "lettabot",
|
|
"version": "0.2.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-history": "./dist/cli/history.js",
|
|
"lettabot-channels": "./dist/cli/channels.js"
|
|
},
|
|
"scripts": {
|
|
"setup": "tsx src/setup.ts",
|
|
"dev": "tsx src/main.ts",
|
|
"build": "tsc",
|
|
"prepare": "npx patch-package || true",
|
|
"prepublishOnly": "npm run build && npm run test:run",
|
|
"start": "node dist/main.js",
|
|
"test": "vitest",
|
|
"test:run": "vitest run --exclude 'e2e/**'",
|
|
"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": [
|
|
"letta",
|
|
"ai",
|
|
"agent",
|
|
"chatbot",
|
|
"telegram",
|
|
"slack",
|
|
"whatsapp",
|
|
"signal",
|
|
"discord",
|
|
"multi-agent"
|
|
],
|
|
"author": "Letta <team@letta.com>",
|
|
"license": "Apache-2.0",
|
|
"description": "Multi-channel AI assistant with persistent memory - Telegram, Slack, WhatsApp, Signal, Discord",
|
|
"repository": {
|
|
"type": "git",
|
|
"url": "https://github.com/letta-ai/lettabot.git"
|
|
},
|
|
"homepage": "https://github.com/letta-ai/lettabot",
|
|
"engines": {
|
|
"node": ">=20"
|
|
},
|
|
"files": [
|
|
"dist/",
|
|
".skills/",
|
|
"patches/"
|
|
],
|
|
"dependencies": {
|
|
"@clack/prompts": "^0.11.0",
|
|
"@hapi/boom": "^10.0.1",
|
|
"@letta-ai/letta-client": "^1.7.8",
|
|
"@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",
|
|
"keyv": "^5.6.0",
|
|
"node-schedule": "^2.1.1",
|
|
"open": "^11.0.0",
|
|
"openai": "^6.17.0",
|
|
"qrcode-terminal": "^0.12.0",
|
|
"telegramify-markdown": "^1.0.0",
|
|
"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",
|
|
"slackify-markdown": "^5.0.0"
|
|
},
|
|
"devDependencies": {
|
|
"@types/update-notifier": "^6.0.8",
|
|
"vitest": "^4.0.18"
|
|
},
|
|
"overrides": {
|
|
"keyv": "$keyv"
|
|
}
|
|
}
|