cd <skill-directory> && npm install --silent 2>/dev/null
User messages look like: [Telegram username id:8716240840 ...]
The number after id: is the target. You MUST use this number in every message tool call.
Example: target is "8716240840".
node scripts/read-url.js "<url>" 0
Returns: { title, language, totalParagraphs, totalCharacters, paragraphs[] }
Reply with this text:
📖 {title}
🌐 {language} · 📝 {totalParagraphs} paragraphs · 📊 {totalCharacters} chars
📋 Summary:
{write 2-3 sentence summary from paragraphs}
Reply a number to choose:
1️⃣ Listen to full article (~{totalCharacters} chars, ~{Math.ceil(totalCharacters / 200)} sec to generate)
2️⃣ Listen to summary only (~{summary_char_count} chars, ~{Math.ceil(summary_char_count / 200)} sec to generate)
STOP. Wait for user to reply 1 or 2.
Reply: 🎙️ Generating full audio (~{totalCharacters} chars, ~{Math.ceil(totalCharacters / 200)} seconds)...
node scripts/read-url.js "<url>" all
Then send the audio file using the message tool:
{"action":"send", "target":"<chatId>", "channel":"telegram", "filePath":"<audioFile>", "caption":"🔊 {title}"}
Reply: ✅ Done!
Reply: 🎙️ Generating summary audio...
Save the SAME summary text you showed in Step 2 to a file and generate:
echo "<summary text>" > /tmp/castreader-summary.txt
node scripts/generate-text.js /tmp/castreader-summary.txt <language>
Then send the audio file using the message tool:
{"action":"send", "target":"<chatId>", "channel":"telegram", "filePath":"/tmp/castreader-summary.mp3", "caption":"📋 Summary: {title}"}
Reply: ✅ Done!
message tool with target (numeric chatId) and channel ("telegram"). Never just print the file path.read-url.js and generate-text.js.read-url.js.共 1 个版本