Files
zCode-CLI-X/src/tools/SendMessageTool.js
admin 0a81aa2b82 feat: wire 10 new tools — file_read, file_write, glob, grep, web_fetch, task CRUD, send_message, schedule_cron
- 10 new JS tool classes in src/tools/ (clean, no framework deps)
- tools/index.js: registry-based init with env toggles
- bot/index.js: 16 tool definitions + 16 handlers (was 4)
- Added glob npm dependency
- Tools: bash, file_edit, file_read, file_write, glob, grep, web_search, web_fetch, git, task_create/update/list, send_message, schedule_cron, delegate_agent, run_skill
2026-05-05 16:43:05 +00:00

38 lines
1.0 KiB
JavaScript

import { logger } from '../utils/logger.js';
import axios from 'axios';
export class SendMessageTool {
constructor() {
this.name = 'send_message';
this.description = 'Send a message to Telegram chat or channel';
}
async execute(args) {
const { chat_id, message, parse_mode = 'HTML' } = args;
const botToken = process.env.TELEGRAM_BOT_TOKEN;
if (!botToken) return '❌ TELEGRAM_BOT_TOKEN not set';
const target = chat_id || process.env.TELEGRAM_CHAT_ID;
if (!target) return '❌ No chat_id provided and TELEGRAM_CHAT_ID not set';
try {
const response = await axios.post(
`https://api.telegram.org/bot${botToken}/sendMessage`,
{
chat_id: target,
text: message,
parse_mode,
disable_web_page_preview: true,
},
{ timeout: 10000 }
);
return response.data.ok
? `✅ Message sent to chat ${target}`
: `❌ Telegram error: ${JSON.stringify(response.data)}`;
} catch (e) {
return `❌ Send error: ${e.message}`;
}
}
}