feat: full service exposure with grammy bot + claudegram patterns

- Rewrote bot/index.js using grammy (@grammyjs/auto-retry + runner)
- Added deduplication.js (adapted from claudegram)
- Added request-queue.js (per-chat sequential processing)
- Added message-sender.js (chunking + Markdown fallback)
- Wired all JS-shim services: tools, skills, agents, config, RTK
- Added function calling support to ZAIProvider.chat()
- Added dynamic command routing (tools, skills, agents, model, stats)
- Added per-agent delegation commands (/agent_coder, /agent_architect, etc.)
- Added dedup + queue patterns from claudegram's battle-tested codebase
- Updated zcode.js to pass agents to initBot()
- Updated README feature comparison table to reflect real capabilities
This commit is contained in:
admin
2026-05-05 12:41:15 +00:00
Unverified
parent 4db82f78a6
commit cbe816a421
9 changed files with 964 additions and 174 deletions

View File

@@ -45,7 +45,7 @@ export async function zcode(options) {
if (options.bot !== false && env.TELEGRAM_BOT_TOKEN) {
// Import bot module dynamically to avoid circular dependency
const botModule = await import('./bot/index.js');
const bot = await botModule.initBot(config, api, tools, skills);
const bot = await botModule.initBot(config, api, tools, skills, agents);
logger.info('✓ Telegram bot initialized');
// Keep process alive for bot