aura-code 0.3.6 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (109) hide show
  1. package/README.md +54 -2
  2. package/dist/agent/compactor.d.ts +26 -0
  3. package/dist/agent/compactor.js +156 -0
  4. package/dist/agent/compactor.js.map +1 -0
  5. package/dist/agent/design.d.ts +17 -0
  6. package/dist/agent/design.js +175 -0
  7. package/dist/agent/design.js.map +1 -0
  8. package/dist/agent/loop.js +8 -1
  9. package/dist/agent/loop.js.map +1 -1
  10. package/dist/agent/system-prompt.d.ts +1 -1
  11. package/dist/agent/system-prompt.js +5 -2
  12. package/dist/agent/system-prompt.js.map +1 -1
  13. package/dist/cli/display.js +40 -4
  14. package/dist/cli/display.js.map +1 -1
  15. package/dist/cli/index.js +258 -44
  16. package/dist/cli/index.js.map +1 -1
  17. package/dist/config/defaults.js +1 -1
  18. package/dist/config/defaults.js.map +1 -1
  19. package/dist/config/project-config.d.ts +6 -0
  20. package/dist/config/project-config.js +2 -0
  21. package/dist/config/project-config.js.map +1 -1
  22. package/dist/dream/dream.d.ts +48 -0
  23. package/dist/dream/dream.js +187 -0
  24. package/dist/dream/dream.js.map +1 -0
  25. package/dist/kanban/index.d.ts +5 -0
  26. package/dist/kanban/index.js +11 -0
  27. package/dist/kanban/index.js.map +1 -0
  28. package/dist/kanban/pipeline.d.ts +16 -0
  29. package/dist/kanban/pipeline.js +910 -0
  30. package/dist/kanban/pipeline.js.map +1 -0
  31. package/dist/kanban/server.d.ts +5 -0
  32. package/dist/kanban/server.js +820 -0
  33. package/dist/kanban/server.js.map +1 -0
  34. package/dist/kanban/types.d.ts +75 -0
  35. package/dist/kanban/types.js +6 -0
  36. package/dist/kanban/types.js.map +1 -0
  37. package/dist/learnlight/driven.d.ts +2 -0
  38. package/dist/learnlight/driven.js +109 -0
  39. package/dist/learnlight/driven.js.map +1 -0
  40. package/dist/learnlight/index.d.ts +4 -0
  41. package/dist/learnlight/index.js +32 -0
  42. package/dist/learnlight/index.js.map +1 -0
  43. package/dist/learnlight/lesson-prep.d.ts +36 -0
  44. package/dist/learnlight/lesson-prep.js +224 -0
  45. package/dist/learnlight/lesson-prep.js.map +1 -0
  46. package/dist/learnlight/report.d.ts +2 -0
  47. package/dist/learnlight/report.js +37 -0
  48. package/dist/learnlight/report.js.map +1 -0
  49. package/dist/learnlight/types.d.ts +72 -0
  50. package/dist/learnlight/types.js +6 -0
  51. package/dist/learnlight/types.js.map +1 -0
  52. package/dist/perception/graph-store.d.ts +11 -0
  53. package/dist/perception/graph-store.js +33 -0
  54. package/dist/perception/graph-store.js.map +1 -1
  55. package/dist/perception/index.d.ts +1 -1
  56. package/dist/perception/index.js +2 -1
  57. package/dist/perception/index.js.map +1 -1
  58. package/dist/providers/factory.d.ts +16 -0
  59. package/dist/providers/factory.js +72 -0
  60. package/dist/providers/factory.js.map +1 -1
  61. package/dist/providers/openai-compatible.js +80 -49
  62. package/dist/providers/openai-compatible.js.map +1 -1
  63. package/dist/research/council.d.ts +26 -0
  64. package/dist/research/council.js +225 -0
  65. package/dist/research/council.js.map +1 -0
  66. package/dist/research/research.d.ts +24 -0
  67. package/dist/research/research.js +116 -0
  68. package/dist/research/research.js.map +1 -0
  69. package/dist/ruby/alternator.d.ts +36 -1
  70. package/dist/ruby/alternator.js +40 -31
  71. package/dist/ruby/alternator.js.map +1 -1
  72. package/dist/ruby/stats.js +10 -11
  73. package/dist/ruby/stats.js.map +1 -1
  74. package/dist/ruby/types.js +1 -1
  75. package/dist/ruby/types.js.map +1 -1
  76. package/dist/safety/permissions.d.ts +8 -0
  77. package/dist/safety/permissions.js +12 -0
  78. package/dist/safety/permissions.js.map +1 -1
  79. package/dist/setup/provider-registry.js +14 -0
  80. package/dist/setup/provider-registry.js.map +1 -1
  81. package/dist/setup/provider-test.js +24 -2
  82. package/dist/setup/provider-test.js.map +1 -1
  83. package/dist/setup/telegram-wizard.d.ts +57 -0
  84. package/dist/setup/telegram-wizard.js +343 -0
  85. package/dist/setup/telegram-wizard.js.map +1 -0
  86. package/dist/tools/audio-transcribe.d.ts +20 -0
  87. package/dist/tools/audio-transcribe.js +39 -28
  88. package/dist/tools/audio-transcribe.js.map +1 -1
  89. package/dist/tools/gmail-tool.d.ts +11 -0
  90. package/dist/tools/gmail-tool.js +221 -0
  91. package/dist/tools/gmail-tool.js.map +1 -0
  92. package/dist/tools/read-file.js +13 -0
  93. package/dist/tools/read-file.js.map +1 -1
  94. package/dist/tools/telegram-bot.js +103 -18
  95. package/dist/tools/telegram-bot.js.map +1 -1
  96. package/dist/tools/telegram-voice.d.ts +22 -0
  97. package/dist/tools/telegram-voice.js +203 -0
  98. package/dist/tools/telegram-voice.js.map +1 -0
  99. package/dist/tools/telegram.d.ts +6 -1
  100. package/dist/tools/telegram.js +115 -5
  101. package/dist/tools/telegram.js.map +1 -1
  102. package/dist/tools/video-render.d.ts +11 -0
  103. package/dist/tools/video-render.js +189 -0
  104. package/dist/tools/video-render.js.map +1 -0
  105. package/dist/util/errors.js +6 -0
  106. package/dist/util/errors.js.map +1 -1
  107. package/dist/viz/index.js +816 -30
  108. package/dist/viz/index.js.map +1 -1
  109. package/package.json +3 -2
@@ -0,0 +1,203 @@
1
+ "use strict";
2
+ // ─────────────────────────────────────────────────────────────────────────────
3
+ // Telegram voice messages — download, transcribe, synthesize, send
4
+ // ─────────────────────────────────────────────────────────────────────────────
5
+ // Deliberately separate from telegram-bot.ts, which starts a real polling
6
+ // loop unconditionally at module scope — importing that file directly (even
7
+ // just to test these helpers) would start live polling against Telegram's
8
+ // real API. This module has no side effects at import time, so it's safe
9
+ // to import directly in tests.
10
+ //
11
+ // All network calls shell out to the real `curl` binary, matching the exact
12
+ // pattern already proven reliable everywhere else in telegram-bot.ts
13
+ // (curlPost/curlGet). This is deliberate, not stylistic: Node's native
14
+ // fetch was tried first here and failed with ETIMEDOUT/ENETUNREACH on the
15
+ // deployed machine — a known class of issue where Node's dual-stack
16
+ // "Happy Eyeballs" connection racing breaks on networks where IPv6 is
17
+ // advertised but not actually routable. `curl` does not hit the same
18
+ // failure on the same machine, so it's the safe choice here, not just a
19
+ // style preference.
20
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
21
+ if (k2 === undefined) k2 = k;
22
+ var desc = Object.getOwnPropertyDescriptor(m, k);
23
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
24
+ desc = { enumerable: true, get: function() { return m[k]; } };
25
+ }
26
+ Object.defineProperty(o, k2, desc);
27
+ }) : (function(o, m, k, k2) {
28
+ if (k2 === undefined) k2 = k;
29
+ o[k2] = m[k];
30
+ }));
31
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
32
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
33
+ }) : function(o, v) {
34
+ o["default"] = v;
35
+ });
36
+ var __importStar = (this && this.__importStar) || (function () {
37
+ var ownKeys = function(o) {
38
+ ownKeys = Object.getOwnPropertyNames || function (o) {
39
+ var ar = [];
40
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
41
+ return ar;
42
+ };
43
+ return ownKeys(o);
44
+ };
45
+ return function (mod) {
46
+ if (mod && mod.__esModule) return mod;
47
+ var result = {};
48
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
49
+ __setModuleDefault(result, mod);
50
+ return result;
51
+ };
52
+ })();
53
+ Object.defineProperty(exports, "__esModule", { value: true });
54
+ exports.downloadTelegramFile = downloadTelegramFile;
55
+ exports.textToSpeech = textToSpeech;
56
+ exports.sendVoiceMessage = sendVoiceMessage;
57
+ exports.transcribeVoiceMessage = transcribeVoiceMessage;
58
+ const fs = __importStar(require("fs"));
59
+ const os = __importStar(require("os"));
60
+ const path = __importStar(require("path"));
61
+ const crypto_1 = require("crypto");
62
+ const child_process_1 = require("child_process");
63
+ const util_1 = require("util");
64
+ const env_js_1 = require("../util/env.js");
65
+ const execAsync = (0, util_1.promisify)(child_process_1.exec);
66
+ const VOICE_TTS_CHAR_LIMIT = 800; // conservative cap; full text always still sent separately as a regular message
67
+ /** Shell-escapes a string for safe embedding inside single quotes in a curl command. */
68
+ function shellEscape(value) {
69
+ return value.replace(/'/g, "'\\''");
70
+ }
71
+ /** Downloads a Telegram-hosted file (by file_id) to a local temp path. */
72
+ async function downloadTelegramFile(token, fileId) {
73
+ const getFileUrl = `https://api.telegram.org/bot${token}/getFile?file_id=${encodeURIComponent(fileId)}`;
74
+ const { stdout: getFileOut } = await execAsync(`curl -s "${getFileUrl}"`, { timeout: 30_000 });
75
+ let parsed;
76
+ try {
77
+ parsed = JSON.parse(getFileOut);
78
+ }
79
+ catch {
80
+ throw new Error(`getFile returned non-JSON response: ${getFileOut.slice(0, 200)}`);
81
+ }
82
+ if (!parsed.ok) {
83
+ throw new Error(`Telegram getFile error: ${parsed.description} (${parsed.error_code})`);
84
+ }
85
+ const filePath = parsed.result?.file_path;
86
+ if (!filePath)
87
+ throw new Error('getFile did not return a file_path');
88
+ // Telegram voice messages report a file_path ending in .oga internally,
89
+ // but Groq's Whisper API rejects that extension outright (even though
90
+ // the actual content is genuine Ogg/Opus audio it does accept under
91
+ // .ogg/.opus) — confirmed directly: "file must be one of the following
92
+ // types: [flac mp3 mp4 mpeg mpga m4a ogg opus wav webm]". Since this
93
+ // function is currently only ever used for voice messages, always
94
+ // labeling the local copy .ogg sidesteps that extension-based rejection
95
+ // without touching the actual bytes at all. Revisit if this function
96
+ // ever gets reused for non-voice file downloads.
97
+ const localPath = path.join(os.tmpdir(), `tg-voice-${(0, crypto_1.randomUUID)()}.ogg`);
98
+ const fileUrl = `https://api.telegram.org/file/bot${token}/${filePath}`;
99
+ await execAsync(`curl -s -o "${localPath}" "${fileUrl}"`, { timeout: 60_000 });
100
+ if (!fs.existsSync(localPath) || fs.statSync(localPath).size === 0) {
101
+ throw new Error('Downloaded voice file is missing or empty');
102
+ }
103
+ return localPath;
104
+ }
105
+ /**
106
+ * Calls Groq's text-to-speech endpoint and returns raw audio bytes.
107
+ * Requests 'ogg' specifically — that's the one format both Groq supports
108
+ * as a response_format AND Telegram's sendVoice expects natively for the
109
+ * round voice-bubble UI, so no local transcoding/ffmpeg step is needed.
110
+ */
111
+ async function textToSpeech(text, apiKey) {
112
+ const truncated = text.length > VOICE_TTS_CHAR_LIMIT
113
+ ? text.slice(0, VOICE_TTS_CHAR_LIMIT) + '... see full message above for the rest.'
114
+ : text;
115
+ const body = JSON.stringify({
116
+ model: 'playai-tts',
117
+ voice: 'Fritz-PlayAI',
118
+ input: truncated,
119
+ response_format: 'ogg',
120
+ });
121
+ const outPath = path.join(os.tmpdir(), `tts-out-${(0, crypto_1.randomUUID)()}.ogg`);
122
+ const errPath = path.join(os.tmpdir(), `tts-err-${(0, crypto_1.randomUUID)()}.json`);
123
+ try {
124
+ // -f makes curl exit non-zero on an HTTP error instead of writing the
125
+ // error body to outPath as if it were audio; capture that error body
126
+ // separately via -o on failure so the real message can still surface.
127
+ await execAsync(`curl -sS -f -X POST ` +
128
+ `-H "Authorization: Bearer ${apiKey}" ` +
129
+ `-H "Content-Type: application/json" ` +
130
+ `-d '${shellEscape(body)}' ` +
131
+ `-o "${outPath}" "https://api.groq.com/openai/v1/audio/speech"`, { timeout: 60_000 });
132
+ }
133
+ catch (e) {
134
+ // Re-run without -f to capture the actual error body for a useful message.
135
+ try {
136
+ await execAsync(`curl -sS -X POST -H "Authorization: Bearer ${apiKey}" -H "Content-Type: application/json" ` +
137
+ `-d '${shellEscape(body)}' -o "${errPath}" "https://api.groq.com/openai/v1/audio/speech"`, { timeout: 60_000 });
138
+ const errBody = fs.existsSync(errPath) ? fs.readFileSync(errPath, 'utf8') : '';
139
+ throw new Error(`Groq TTS API error: ${errBody.slice(0, 500)}`);
140
+ }
141
+ finally {
142
+ fs.rm(errPath, () => { });
143
+ }
144
+ }
145
+ if (!fs.existsSync(outPath) || fs.statSync(outPath).size === 0) {
146
+ throw new Error('Groq TTS returned an empty response');
147
+ }
148
+ const audio = fs.readFileSync(outPath);
149
+ fs.rm(outPath, () => { });
150
+ return audio;
151
+ }
152
+ /** Sends a voice reply (ogg/opus audio) to a chat via Telegram's sendVoice. */
153
+ async function sendVoiceMessage(token, chatId, audioBuffer) {
154
+ const tempPath = path.join(os.tmpdir(), `voice-reply-${(0, crypto_1.randomUUID)()}.ogg`);
155
+ fs.writeFileSync(tempPath, audioBuffer);
156
+ try {
157
+ const url = `https://api.telegram.org/bot${token}/sendVoice`;
158
+ const { stdout } = await execAsync(`curl -s -X POST -F "chat_id=${String(chatId)}" -F "voice=@${tempPath}" "${url}"`, { timeout: 30_000 });
159
+ const parsed = JSON.parse(stdout);
160
+ if (!parsed.ok) {
161
+ throw new Error(`sendVoice failed: ${parsed.description} (${parsed.error_code})`);
162
+ }
163
+ }
164
+ finally {
165
+ fs.rm(tempPath, () => { });
166
+ }
167
+ }
168
+ /**
169
+ * Downloads a voice message, transcribes it via Groq Whisper, and returns
170
+ * the raw transcribed text — ready to feed straight into the same pipeline
171
+ * that handles typed text. Throws on any failure; caller decides how to
172
+ * report that back to the chat.
173
+ *
174
+ * Deliberately has its own curl-based Whisper call rather than reusing
175
+ * audio-transcribe.ts's callGroqWhisper (which uses native fetch) — keeps
176
+ * the bot's voice pipeline fully insulated from the fetch issue above.
177
+ */
178
+ async function transcribeVoiceMessage(token, fileId) {
179
+ const groqKey = (0, env_js_1.getApiKey)('GROQ_API_KEY', 'groq_api_key');
180
+ if (!groqKey) {
181
+ throw new Error('GROQ_API_KEY not set — voice messages need it for transcription.');
182
+ }
183
+ const localPath = await downloadTelegramFile(token, fileId);
184
+ const outPath = path.join(os.tmpdir(), `whisper-out-${(0, crypto_1.randomUUID)()}.json`);
185
+ try {
186
+ await execAsync(`curl -sS -X POST -H "Authorization: Bearer ${groqKey}" ` +
187
+ `-F "file=@${localPath}" -F "model=whisper-large-v3-turbo" -F "response_format=verbose_json" ` +
188
+ `-o "${outPath}" "https://api.groq.com/openai/v1/audio/transcriptions"`, { timeout: 120_000 });
189
+ if (!fs.existsSync(outPath))
190
+ throw new Error('Whisper API returned no response');
191
+ const parsed = JSON.parse(fs.readFileSync(outPath, 'utf8'));
192
+ if (parsed.error)
193
+ throw new Error(`Groq Whisper API error: ${JSON.stringify(parsed.error)}`);
194
+ if (typeof parsed.text !== 'string')
195
+ throw new Error(`Unexpected Whisper response: ${JSON.stringify(parsed).slice(0, 300)}`);
196
+ return parsed.text.trim();
197
+ }
198
+ finally {
199
+ fs.rm(localPath, () => { });
200
+ fs.rm(outPath, () => { });
201
+ }
202
+ }
203
+ //# sourceMappingURL=telegram-voice.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telegram-voice.js","sourceRoot":"","sources":["../../src/tools/telegram-voice.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,18 @@
1
1
  import type { ToolDefinition } from '../providers/types.js';
2
2
  export interface TelegramInput {
3
- action: 'send' | 'send_photo' | 'send_document' | 'get_updates' | 'get_chat' | 'set_webhook' | 'info';
3
+ action: 'send' | 'send_photo' | 'send_video' | 'send_document' | 'get_updates' | 'get_chat' | 'set_webhook' | 'info';
4
4
  chat_id?: string;
5
5
  text?: string;
6
6
  photo?: string;
7
+ video?: string;
7
8
  document?: string;
8
9
  caption?: string;
9
10
  parse_mode?: 'HTML' | 'Markdown' | 'MarkdownV2';
10
11
  reply_to?: number;
12
+ duration?: number;
13
+ width?: number;
14
+ height?: number;
15
+ supports_streaming?: boolean;
11
16
  offset?: number;
12
17
  limit?: number;
13
18
  webhook_url?: string;
@@ -40,20 +40,25 @@ const path = __importStar(require("path"));
40
40
  const os = __importStar(require("os"));
41
41
  exports.TELEGRAM_DEFINITION = {
42
42
  name: 'telegram',
43
- description: 'Communicate via Telegram Bot. Send text messages, photos, documents. Read incoming messages. ' +
43
+ description: 'Communicate via Telegram Bot. Send text messages, photos, videos, documents. Read incoming messages. ' +
44
44
  'Configure ~/.aura/telegram.json with { "bot_token": "...", "default_chat_id": "..." }. ' +
45
45
  'Create a bot via @BotFather on Telegram.',
46
46
  parameters: {
47
47
  type: 'object',
48
48
  properties: {
49
- action: { type: 'string', description: 'Action: send, send_photo, send_document, get_updates, get_chat, set_webhook, info' },
49
+ action: { type: 'string', description: 'Action: send, send_photo, send_video, send_document, get_updates, get_chat, set_webhook, info' },
50
50
  chat_id: { type: 'string', description: 'Chat ID (uses default from config if omitted)' },
51
51
  text: { type: 'string', description: 'Message text (for send)' },
52
52
  photo: { type: 'string', description: 'Photo path or URL (for send_photo)' },
53
+ video: { type: 'string', description: 'Video URL or file_id (for send_video). Local files not yet supported — use a hosted URL.' },
53
54
  document: { type: 'string', description: 'Document path or URL (for send_document)' },
54
- caption: { type: 'string', description: 'Caption for photo/document' },
55
+ caption: { type: 'string', description: 'Caption for photo/video/document' },
55
56
  parse_mode: { type: 'string', description: 'Parse mode: HTML, Markdown, MarkdownV2' },
56
57
  reply_to: { type: 'number', description: 'Message ID to reply to' },
58
+ duration: { type: 'number', description: 'Video duration in seconds (for send_video)' },
59
+ width: { type: 'number', description: 'Video width in pixels (for send_video)' },
60
+ height: { type: 'number', description: 'Video height in pixels (for send_video)' },
61
+ supports_streaming: { type: 'boolean', description: 'Pass True if the video supports streaming (for send_video)' },
57
62
  offset: { type: 'number', description: 'Update offset for get_updates (to acknowledge processed updates)' },
58
63
  limit: { type: 'number', description: 'Max updates to fetch (default: 10)' },
59
64
  webhook_url: { type: 'string', description: 'Webhook URL for set_webhook' },
@@ -109,6 +114,59 @@ async function apiGet(token, method, params) {
109
114
  return data.result;
110
115
  }
111
116
  // ─────────────────────────────────────────────────────────────────────────────
117
+ // Helpers
118
+ // ─────────────────────────────────────────────────────────────────────────────
119
+ /** Check if a path is a local file (exists on disk), not a URL */
120
+ function isLocalPath(p) {
121
+ return !p.startsWith('http://') && !p.startsWith('https://') && fs.existsSync(p);
122
+ }
123
+ /** Get MIME type from file extension */
124
+ function mimeFromExt(filePath) {
125
+ const ext = path.extname(filePath).toLowerCase();
126
+ const mimeMap = {
127
+ '.jpg': 'image/jpeg',
128
+ '.jpeg': 'image/jpeg',
129
+ '.png': 'image/png',
130
+ '.gif': 'image/gif',
131
+ '.webp': 'image/webp',
132
+ '.bmp': 'image/bmp',
133
+ '.mp4': 'video/mp4',
134
+ '.avi': 'video/x-msvideo',
135
+ '.mov': 'video/quicktime',
136
+ '.webm': 'video/webm',
137
+ '.pdf': 'application/pdf',
138
+ '.txt': 'text/plain',
139
+ '.zip': 'application/zip',
140
+ };
141
+ return mimeMap[ext] ?? 'application/octet-stream';
142
+ }
143
+ /**
144
+ * Send a file to Telegram via multipart/form-data upload.
145
+ * Used when the file is a local path rather than a URL.
146
+ */
147
+ async function sendFileMultipart(token, method, fields, fileField, filePath) {
148
+ const url = `${API_BASE}/bot${token}/${method}`;
149
+ const formData = new FormData();
150
+ for (const [key, val] of Object.entries(fields)) {
151
+ formData.append(key, val);
152
+ }
153
+ const fileName = path.basename(filePath);
154
+ const mimeType = mimeFromExt(filePath);
155
+ const fileBuffer = fs.readFileSync(filePath);
156
+ const file = new File([fileBuffer], fileName, { type: mimeType });
157
+ formData.append(fileField, file);
158
+ const response = await fetch(url, {
159
+ method: 'POST',
160
+ body: formData,
161
+ signal: AbortSignal.timeout(30_000),
162
+ });
163
+ const data = await response.json();
164
+ if (!data.ok) {
165
+ throw new Error(`Telegram API error: ${data.description ?? 'Unknown error'} (code: ${data.error_code})`);
166
+ }
167
+ return data.result;
168
+ }
169
+ // ─────────────────────────────────────────────────────────────────────────────
112
170
  // Actions
113
171
  // ─────────────────────────────────────────────────────────────────────────────
114
172
  async function doSend(config, input) {
@@ -134,9 +192,21 @@ async function doSendPhoto(config, input) {
134
192
  return 'Error: chat_id required';
135
193
  if (!input.photo)
136
194
  return 'Error: photo required';
195
+ const photo = input.photo;
196
+ if (isLocalPath(photo)) {
197
+ // Local file — upload via multipart/form-data
198
+ const fields = { chat_id: chatId };
199
+ if (input.caption)
200
+ fields.caption = input.caption;
201
+ if (input.parse_mode)
202
+ fields.parse_mode = input.parse_mode;
203
+ const result = await sendFileMultipart(config.bot_token, 'sendPhoto', fields, 'photo', photo);
204
+ return `Photo sent to ${chatId} (msg_id: ${result.message_id})`;
205
+ }
206
+ // URL or file_id — send as JSON (Telegram fetches the URL)
137
207
  const body = {
138
208
  chat_id: chatId,
139
- photo: input.photo,
209
+ photo: photo,
140
210
  };
141
211
  if (input.caption)
142
212
  body.caption = input.caption;
@@ -145,15 +215,54 @@ async function doSendPhoto(config, input) {
145
215
  const result = await api(config.bot_token, 'sendPhoto', body);
146
216
  return `Photo sent to ${chatId} (msg_id: ${result.message_id})`;
147
217
  }
218
+ async function doSendVideo(config, input) {
219
+ const chatId = input.chat_id ?? config.default_chat_id;
220
+ if (!chatId)
221
+ return 'Error: chat_id required';
222
+ if (!input.video)
223
+ return 'Error: video required (URL or file_id)';
224
+ const body = {
225
+ chat_id: chatId,
226
+ video: input.video,
227
+ };
228
+ if (input.caption)
229
+ body.caption = input.caption;
230
+ if (input.parse_mode)
231
+ body.parse_mode = input.parse_mode;
232
+ if (input.duration !== undefined)
233
+ body.duration = input.duration;
234
+ if (input.width !== undefined)
235
+ body.width = input.width;
236
+ if (input.height !== undefined)
237
+ body.height = input.height;
238
+ if (input.supports_streaming !== undefined)
239
+ body.supports_streaming = input.supports_streaming;
240
+ if (input.reply_to)
241
+ body.reply_to_message_id = input.reply_to;
242
+ const result = await api(config.bot_token, 'sendVideo', body);
243
+ return `Video sent to ${chatId} (msg_id: ${result.message_id})`;
244
+ }
148
245
  async function doSendDocument(config, input) {
149
246
  const chatId = input.chat_id ?? config.default_chat_id;
150
247
  if (!chatId)
151
248
  return 'Error: chat_id required';
152
249
  if (!input.document)
153
250
  return 'Error: document required';
251
+ const document = input.document;
252
+ if (isLocalPath(document)) {
253
+ // Local file — upload via multipart/form-data
254
+ const fields = { chat_id: chatId };
255
+ if (input.caption)
256
+ fields.caption = input.caption;
257
+ if (input.parse_mode)
258
+ fields.parse_mode = input.parse_mode;
259
+ const result = await sendFileMultipart(config.bot_token, 'sendDocument', fields, 'document', document);
260
+ return `Document sent to ${chatId} (msg_id: ${result.message_id})`;
261
+ }
262
+ // URL — send as JSON (Telegram fetches the URL)
154
263
  const body = {
155
264
  chat_id: chatId,
156
- document: input.document,
265
+ document: document,
157
266
  };
158
267
  if (input.caption)
159
268
  body.caption = input.caption;
@@ -212,6 +321,7 @@ async function telegramTool(input) {
212
321
  switch (input.action) {
213
322
  case 'send': return await doSend(config, input);
214
323
  case 'send_photo': return await doSendPhoto(config, input);
324
+ case 'send_video': return await doSendVideo(config, input);
215
325
  case 'send_document': return await doSendDocument(config, input);
216
326
  case 'get_updates': return await doGetUpdates(config, input);
217
327
  case 'get_chat': return await doGetChat(config, input);
@@ -1 +1 @@
1
- {"version":3,"file":"telegram.js","sourceRoot":"","sources":["../../src/tools/telegram.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"telegram.js","sourceRoot":"","sources":["../../src/tools/telegram.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ export interface RenderOptions {
2
+ htmlPath: string;
3
+ output: string;
4
+ fps?: number;
5
+ width?: number;
6
+ height?: number;
7
+ duration?: number;
8
+ keepFrames?: boolean;
9
+ onProgress?: (current: number, total: number) => void;
10
+ }
11
+ export declare function renderVideo(options: RenderOptions): Promise<string>;