shadok-ai 0.14.18 → 0.15.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.
package/README.md CHANGED
@@ -156,6 +156,14 @@ Enter to skip; you can add it later from the web UI).
156
156
  `SHADOK_WHISPER_MODEL` picks a bigger one if your recordings need it.
157
157
  Set `SHADOK_WHISPER_DIR` to a directory shared between containers and one copy
158
158
  serves them all.
159
+ - **Videos on Telegram** — share a video (or a GIF, or a round video note) and
160
+ the agent actually sees it: shadok pulls a handful of stills out of the clip
161
+ for it to look at, and transcribes the sound when there is speech. Both run
162
+ on the same locally-installed toolchain as voice notes, so nothing leaves the
163
+ machine. Clips longer than two minutes keep their stills and the prompt says
164
+ the audio was left unheard — ask and the agent can listen. Telegram caps what
165
+ a bot may download at 20 MB; past that you get a clear notice instead of
166
+ silence.
159
167
  - **Run the command an agent asks you to** — when an agent writes `! cmd` for
160
168
  you to run (typically because it cannot), a ▶ button under its message runs it
161
169
  in the agent's shell after a confirmation showing the exact command. It is
@@ -148,14 +148,30 @@ export interface TgAttachment {
148
148
  fileUniqueId: string;
149
149
  /** `voice` is spoken input, not a file to hand the agent: it is transcribed
150
150
  * and the TEXT becomes the prompt. Keeping it a separate kind is what stops
151
- * an .ogg being dropped on an agent that cannot read audio. */
152
- kind: "image" | "file" | "voice";
151
+ * an .ogg being dropped on an agent that cannot read audio. `video` is the
152
+ * same idea one step further: an mp4 is unreadable too, so the bridge turns
153
+ * it into stills (and, when there is speech, a transcript). */
154
+ kind: "image" | "file" | "voice" | "video";
153
155
  fileName?: string;
154
156
  fileSize?: number;
157
+ mimeType?: string;
158
+ durationSec?: number;
155
159
  }
156
- /** Extract the attachment of a message: a photo (largest size — Telegram
157
- * sorts sizes small → large) or any document (PDF, zip, image sent as
158
- * file…). Text-only messages → null. */
160
+ /**
161
+ * Extract the attachment of a message — and the list of fields this looks at IS
162
+ * the list of messages the bot can receive at all: `handleMessage` drops
163
+ * anything with neither text nor attachment, so a shape missing here is a
164
+ * message swallowed in silence.
165
+ *
166
+ * That is exactly how a shared VIDEO disappeared: it carries `msg.video`, its
167
+ * caption in `msg.caption`, and no `msg.text` whatsoever. The voice note had
168
+ * been the same bug one shape earlier. So the order below is: spoken input, the
169
+ * moving pictures, then the still ones, then anything else as a file.
170
+ *
171
+ * A `sticker` is deliberately NOT here. It is a reaction, not content, and
172
+ * waking a whole agent turn for an emoji-equivalent costs more than it tells
173
+ * anyone — a decision, not an oversight.
174
+ */
159
175
  export declare function attachmentOf(msg: any): TgAttachment | null;
160
176
  /**
161
177
  * The file extension for an image pasted into the cockpit, from its
@@ -175,17 +191,50 @@ export declare function pasteExtension(contentType: string): string;
175
191
  * type, then a neutral `bin`; the agent reads by content anyway. Pure/testable.
176
192
  */
177
193
  export declare function pasteFileName(id: string, name: string, contentType: string): string;
194
+ /** The extension a downloaded attachment should carry, or null when unknown.
195
+ * ffmpeg sniffs the container anyway, so this is for the humans and for the
196
+ * agent reading the path — being truthful matters more than being clever. */
197
+ export declare function mediaExtension(att: TgAttachment): string | null;
178
198
  /** Storage name under ~/.shadok-ai/media: keep the original name so Claude
179
199
  * has context, prefix with file_unique_id to avoid collisions, and strip
180
200
  * anything path-ish or shell-hostile. */
181
201
  export declare function mediaFileName(att: TgAttachment): string;
182
- /** The prompt sent to the session for downloaded attachments: one absolute
183
- * path per line (Claude reads them itself — Read for images/PDF/text,
184
- * Bash for the rest), then the user's caption if any. */
185
- export declare function attachmentPrompt(items: {
202
+ /** One downloaded attachment, as the prompt describes it. */
203
+ export interface PromptItem {
186
204
  path: string;
187
- kind: "image" | "file";
188
- }[], caption?: string): string;
205
+ kind: "image" | "file" | "video";
206
+ /** Video only: its length, and the stills pulled out of it. */
207
+ durationSec?: number;
208
+ frames?: {
209
+ path: string;
210
+ atSec: number;
211
+ }[];
212
+ /** Video only: the speech heard in the audio track. */
213
+ transcript?: string;
214
+ /** Video only: why there is no transcript, when that is worth saying — an
215
+ * agent that is told nothing about the audio assumes there was none. */
216
+ audioNote?: string;
217
+ }
218
+ /**
219
+ * The prompt sent to the session for downloaded attachments: one absolute path
220
+ * per line (Claude reads them itself — Read for images/PDF/text, Bash for the
221
+ * rest), then the user's caption if any.
222
+ *
223
+ * A video is the one that needs words around it. The path alone is a dead end
224
+ * (nothing in `Read` opens an mp4), so it comes with its stills — and with the
225
+ * sentence that says to READ them: a model told about a video and handed images
226
+ * next to it still answers "I can't watch videos" unless the link between the
227
+ * two is spelled out. Verified on exactly that failure.
228
+ */
229
+ export declare function attachmentPrompt(items: PromptItem[], caption?: string): string;
230
+ /** What a bot simply cannot fetch: the Bot API caps `getFile` at 20 MB, and no
231
+ * code on our side lifts it — so the notice names both sizes and the two
232
+ * things that do work. */
233
+ export declare function tooLargeNotice(att: TgAttachment): string;
234
+ /** Was this download refused by the 20 MB ceiling rather than broken? The size
235
+ * we were told is the honest signal; Telegram's own wording is the fallback
236
+ * for a file it never sized. */
237
+ export declare function tooBigFor(att: TgAttachment, err: any): boolean;
189
238
  /**
190
239
  * Render an agent's Markdown into the small HTML subset Telegram accepts
191
240
  * (`parse_mode: "HTML"`): code fences → <pre>, inline `code`, **bold**, *italic*,
package/dist/telegram.js CHANGED
@@ -5,6 +5,7 @@ import { loadChannels, upsertChannel, removeChannel, channelForTelegram, homeCha
5
5
  import { secretNames, setSecret, deleteSecret } from "./secrets.js";
6
6
  import { telegramPhotoable } from "./download.js";
7
7
  import { transcribe, heardNotice } from "./whisper.js";
8
+ import { clock, lookAtVideo, MAX_FRAMES, ALBUM_FRAMES } from "./video.js";
8
9
  import { authStatus, startLogin, submitLoginCode } from "./claude-auth.js";
9
10
  import { getProfile, profileNames } from "./profiles.js";
10
11
  import { tmuxHasSession } from "./tmux.js";
@@ -253,9 +254,21 @@ export function migratedGroupId(msg, currentBound) {
253
254
  return null;
254
255
  return msg?.chat?.id === currentBound ? newId : null;
255
256
  }
256
- /** Extract the attachment of a message: a photo (largest size — Telegram
257
- * sorts sizes small → large) or any document (PDF, zip, image sent as
258
- * file…). Text-only messages → null. */
257
+ /**
258
+ * Extract the attachment of a message — and the list of fields this looks at IS
259
+ * the list of messages the bot can receive at all: `handleMessage` drops
260
+ * anything with neither text nor attachment, so a shape missing here is a
261
+ * message swallowed in silence.
262
+ *
263
+ * That is exactly how a shared VIDEO disappeared: it carries `msg.video`, its
264
+ * caption in `msg.caption`, and no `msg.text` whatsoever. The voice note had
265
+ * been the same bug one shape earlier. So the order below is: spoken input, the
266
+ * moving pictures, then the still ones, then anything else as a file.
267
+ *
268
+ * A `sticker` is deliberately NOT here. It is a reaction, not content, and
269
+ * waking a whole agent turn for an emoji-equivalent costs more than it tells
270
+ * anyone — a decision, not an oversight.
271
+ */
259
272
  export function attachmentOf(msg) {
260
273
  // Voice FIRST: a voice note also carries no photo and no document, and used
261
274
  // to fall through to `null` — so the message was dropped in silence, which is
@@ -267,20 +280,58 @@ export function attachmentOf(msg) {
267
280
  fileUniqueId: v.file_unique_id,
268
281
  kind: "voice",
269
282
  ...(v.file_size != null ? { fileSize: v.file_size } : {}),
283
+ ...(v.duration != null ? { durationSec: v.duration } : {}),
284
+ };
285
+ }
286
+ // A video, a GIF (`animation` — Telegram stores it as a soundless mp4) or a
287
+ // round "telescope" clip (`video_note`). `animation` comes BEFORE `document`
288
+ // on purpose: Telegram sends both fields for a GIF, and as a document it
289
+ // would lose its duration and its stills.
290
+ const mov = msg.video ?? msg.animation ?? msg.video_note;
291
+ if (mov?.file_id) {
292
+ return {
293
+ fileId: mov.file_id,
294
+ fileUniqueId: mov.file_unique_id,
295
+ kind: "video",
296
+ ...(mov.file_name ? { fileName: mov.file_name } : {}),
297
+ ...(mov.file_size != null ? { fileSize: mov.file_size } : {}),
298
+ ...(mov.mime_type ? { mimeType: mov.mime_type } : {}),
299
+ ...(mov.duration != null ? { durationSec: mov.duration } : {}),
270
300
  };
271
301
  }
272
302
  if (Array.isArray(msg.photo) && msg.photo.length) {
273
303
  const p = msg.photo[msg.photo.length - 1];
274
304
  return { fileId: p.file_id, fileUniqueId: p.file_unique_id, kind: "image", fileSize: p.file_size };
275
305
  }
306
+ // An audio FILE (a music track, a forwarded memo) — handed over as a file
307
+ // rather than transcribed: a 40-minute track would hold a turn hostage for
308
+ // the best part of an hour, and nobody shares an album for its lyrics. The
309
+ // point here is that it stops vanishing.
310
+ const a = msg.audio;
311
+ if (a?.file_id) {
312
+ return {
313
+ fileId: a.file_id,
314
+ fileUniqueId: a.file_unique_id,
315
+ kind: "file",
316
+ ...(a.file_name ? { fileName: a.file_name } : {}),
317
+ ...(a.file_size != null ? { fileSize: a.file_size } : {}),
318
+ ...(a.mime_type ? { mimeType: a.mime_type } : {}),
319
+ ...(a.duration != null ? { durationSec: a.duration } : {}),
320
+ };
321
+ }
276
322
  const d = msg.document;
277
323
  if (d?.file_id) {
278
324
  return {
279
325
  fileId: d.file_id,
280
326
  fileUniqueId: d.file_unique_id,
281
- kind: typeof d.mime_type === "string" && d.mime_type.startsWith("image/") ? "image" : "file",
327
+ kind: typeof d.mime_type === "string" && d.mime_type.startsWith("video/")
328
+ ? "video"
329
+ : typeof d.mime_type === "string" && d.mime_type.startsWith("image/")
330
+ ? "image"
331
+ : "file",
282
332
  ...(d.file_name ? { fileName: d.file_name } : {}),
283
333
  ...(d.file_size != null ? { fileSize: d.file_size } : {}),
334
+ ...(d.mime_type ? { mimeType: d.mime_type } : {}),
284
335
  };
285
336
  }
286
337
  return null;
@@ -330,6 +381,40 @@ export function pasteFileName(id, name, contentType) {
330
381
  const ext = pasteExtension(contentType);
331
382
  return base ? `paste-${id}-${base}.${ext}` : `paste-${id}.${ext}`;
332
383
  }
384
+ /**
385
+ * A WHITELIST from Telegram's mime type to an extension, for the media that
386
+ * arrives without a file name — a camera video has none.
387
+ *
388
+ * Same rule as `pasteExtension`: never split on "/", since the result lands in
389
+ * a filename. Unknown → null, and the caller decides what is honest.
390
+ */
391
+ const MEDIA_EXT = {
392
+ "video/mp4": "mp4",
393
+ "video/quicktime": "mov",
394
+ "video/webm": "webm",
395
+ "video/x-matroska": "mkv",
396
+ "video/mpeg": "mpeg",
397
+ "audio/mpeg": "mp3",
398
+ "audio/mp4": "m4a",
399
+ "audio/ogg": "ogg",
400
+ "audio/x-wav": "wav",
401
+ "audio/wav": "wav",
402
+ };
403
+ /** The extension a downloaded attachment should carry, or null when unknown.
404
+ * ffmpeg sniffs the container anyway, so this is for the humans and for the
405
+ * agent reading the path — being truthful matters more than being clever. */
406
+ export function mediaExtension(att) {
407
+ const fromMime = att.mimeType ? MEDIA_EXT[att.mimeType.split(";")[0].trim().toLowerCase()] : undefined;
408
+ if (fromMime)
409
+ return fromMime;
410
+ if (att.kind === "image")
411
+ return "jpg";
412
+ // A video Telegram transcoded itself is always mp4; saying nothing would
413
+ // leave the file extension-less, which reads as "unknown binary".
414
+ if (att.kind === "video")
415
+ return "mp4";
416
+ return null;
417
+ }
333
418
  /** Storage name under ~/.shadok-ai/media: keep the original name so Claude
334
419
  * has context, prefix with file_unique_id to avoid collisions, and strip
335
420
  * anything path-ish or shell-hostile. */
@@ -337,15 +422,56 @@ export function mediaFileName(att) {
337
422
  const base = att.fileName ? path.basename(att.fileName).replace(/[^\w.\- ]+/g, "_") : "";
338
423
  if (base)
339
424
  return `${att.fileUniqueId}-${base}`;
340
- return att.kind === "image" ? `${att.fileUniqueId}.jpg` : att.fileUniqueId;
425
+ const ext = mediaExtension(att);
426
+ return ext ? `${att.fileUniqueId}.${ext}` : att.fileUniqueId;
341
427
  }
342
- /** The prompt sent to the session for downloaded attachments: one absolute
343
- * path per line (Claude reads them itself — Read for images/PDF/text,
344
- * Bash for the rest), then the user's caption if any. */
428
+ /**
429
+ * The prompt sent to the session for downloaded attachments: one absolute path
430
+ * per line (Claude reads them itself — Read for images/PDF/text, Bash for the
431
+ * rest), then the user's caption if any.
432
+ *
433
+ * A video is the one that needs words around it. The path alone is a dead end
434
+ * (nothing in `Read` opens an mp4), so it comes with its stills — and with the
435
+ * sentence that says to READ them: a model told about a video and handed images
436
+ * next to it still answers "I can't watch videos" unless the link between the
437
+ * two is spelled out. Verified on exactly that failure.
438
+ */
345
439
  export function attachmentPrompt(items, caption) {
346
- const lines = items.map((i) => (i.kind === "image" ? `[Attached image: ${i.path}]` : `[Attached file: ${i.path}]`));
440
+ const lines = [];
441
+ for (const i of items) {
442
+ if (i.kind === "video") {
443
+ const len = i.durationSec ? ` (${clock(i.durationSec)})` : "";
444
+ lines.push(`[Attached video: ${i.path}${len}]`);
445
+ if (i.frames?.length) {
446
+ lines.push("Stills from it — read these images to see the video:");
447
+ i.frames.forEach((f, n) => lines.push(`[Attached image: ${f.path}] frame ${n + 1}/${i.frames.length} at ${clock(f.atSec)}`));
448
+ }
449
+ if (i.transcript?.trim())
450
+ lines.push(`⟦heard in the video⟧ "${i.transcript.trim()}"`);
451
+ else if (i.audioNote)
452
+ lines.push(`⟦video audio⟧ ${i.audioNote}`);
453
+ continue;
454
+ }
455
+ lines.push(i.kind === "image" ? `[Attached image: ${i.path}]` : `[Attached file: ${i.path}]`);
456
+ }
347
457
  return caption?.trim() ? lines.join("\n") + "\n" + caption : lines.join("\n");
348
458
  }
459
+ /** What a bot simply cannot fetch: the Bot API caps `getFile` at 20 MB, and no
460
+ * code on our side lifts it — so the notice names both sizes and the two
461
+ * things that do work. */
462
+ export function tooLargeNotice(att) {
463
+ const mb = att.fileSize ? `${(att.fileSize / 1_000_000).toFixed(1)} MB` : "this file";
464
+ const what = att.kind === "video" ? "video" : att.kind === "image" ? "image" : "file";
465
+ return `⚠️ Telegram only lets a bot download up to 20 MB, and this ${what} is ${mb}. Send a shorter clip, or compress it — a link to the file works too.`;
466
+ }
467
+ /** Was this download refused by the 20 MB ceiling rather than broken? The size
468
+ * we were told is the honest signal; Telegram's own wording is the fallback
469
+ * for a file it never sized. */
470
+ export function tooBigFor(att, err) {
471
+ if (att.fileSize && att.fileSize > TG_FILE_LIMIT)
472
+ return true;
473
+ return /too (big|large)/i.test(String(err?.message ?? err ?? ""));
474
+ }
349
475
  const htmlEscape = (s) => s.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;");
350
476
  /**
351
477
  * Render an agent's Markdown into the small HTML subset Telegram accepts
@@ -1062,10 +1188,30 @@ export function startTelegram(port, authCookie) {
1062
1188
  // read audio, and a defensive skip is cheaper than finding out.
1063
1189
  if (i.att.kind === "voice")
1064
1190
  continue;
1065
- ok.push({ path: await downloadAttachment(i.att), kind: i.att.kind });
1191
+ const p = await downloadAttachment(i.att);
1192
+ const item = { path: p, kind: i.att.kind };
1193
+ if (i.att.kind === "video") {
1194
+ // Two stills per clip and no transcription: ten videos in one album
1195
+ // would otherwise mean sixty images and several minutes of whisper
1196
+ // before the agent is even woken.
1197
+ const look = await lookAtVideo(p, {
1198
+ durationSec: i.att.durationSec,
1199
+ maxFrames: ALBUM_FRAMES,
1200
+ transcribe: false,
1201
+ notify: (line) => void reply(b.chatId, b.threadId, line),
1202
+ });
1203
+ Object.assign(item, {
1204
+ ...(look.durationSec ? { durationSec: look.durationSec } : {}),
1205
+ ...(look.frames ? { frames: look.frames } : {}),
1206
+ ...(look.audioNote ? { audioNote: look.audioNote } : {}),
1207
+ });
1208
+ }
1209
+ ok.push(item);
1066
1210
  }
1067
1211
  catch (e) {
1068
- failed.push(`${i.att.fileName ?? i.att.fileUniqueId} (${e?.message ?? e})`);
1212
+ failed.push(tooBigFor(i.att, e)
1213
+ ? `${i.att.fileName ?? i.att.fileUniqueId} (over the 20 MB Telegram ceiling)`
1214
+ : `${i.att.fileName ?? i.att.fileUniqueId} (${e?.message ?? e})`);
1069
1215
  }
1070
1216
  }
1071
1217
  if (failed.length)
@@ -1456,12 +1602,37 @@ export function startTelegram(port, authCookie) {
1456
1602
  return;
1457
1603
  }
1458
1604
  const attQuote = replyContext(msg);
1459
- const attText = attachmentPrompt([{ path: p, kind: att.kind }], caption);
1605
+ // A video is not readable as a file: it is looked AT (stills) and
1606
+ // listened to (its audio track), both over the ffmpeg the voice
1607
+ // pipeline already provisions. Without this the agent received a path
1608
+ // to an mp4 and answered that it cannot watch videos.
1609
+ const item = { path: p, kind: att.kind };
1610
+ if (att.kind === "video") {
1611
+ const look = await lookAtVideo(p, {
1612
+ durationSec: att.durationSec,
1613
+ maxFrames: MAX_FRAMES,
1614
+ notify: (line) => void reply(chat.id, threadId, line),
1615
+ });
1616
+ if (look.trouble)
1617
+ await reply(chat.id, threadId, look.trouble);
1618
+ Object.assign(item, {
1619
+ ...(look.durationSec ? { durationSec: look.durationSec } : {}),
1620
+ ...(look.frames ? { frames: look.frames } : {}),
1621
+ ...(look.transcript ? { transcript: look.transcript } : {}),
1622
+ ...(look.audioNote ? { audioNote: look.audioNote } : {}),
1623
+ });
1624
+ }
1625
+ const attText = attachmentPrompt([item], caption);
1460
1626
  promptTo(b, attQuote ? attQuote + "\n" + attText : attText, senderName(msg.from));
1461
1627
  }
1462
1628
  catch (e) {
1463
1629
  b.typing.stop();
1464
- await reply(chat.id, threadId, `⚠️ could not download ${att.fileName ?? "the attachment"} (${e?.message ?? e})`);
1630
+ // The 20 MB ceiling is the common case for a phone video, and it is not
1631
+ // an error on anyone's side — so it gets its own actionable wording
1632
+ // instead of a raw message the user can do nothing with.
1633
+ await reply(chat.id, threadId, tooBigFor(att, e)
1634
+ ? tooLargeNotice(att)
1635
+ : `⚠️ could not download ${att.fileName ?? "the attachment"} (${e?.message ?? e})`);
1465
1636
  }
1466
1637
  return;
1467
1638
  }
@@ -1 +1 @@
1
- {"version":3,"file":"telegram.js","sourceRoot":"","sources":["../src/telegram.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"telegram.js","sourceRoot":"","sources":["../src/telegram.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,103 @@
1
+ /** Stills for a lone video. Six is a storyboard; more is a context bill nobody
2
+ * asked for, since each one is an image the model has to look at. */
3
+ export declare const MAX_FRAMES = 6;
4
+ /** In an album, per video: ten clips × six stills is sixty images in one turn. */
5
+ export declare const ALBUM_FRAMES = 2;
6
+ /** One still per ~5 s of footage, until the cap. */
7
+ export declare const FRAME_EVERY_SEC = 5;
8
+ /**
9
+ * Pure: when to take the stills, in seconds.
10
+ *
11
+ * Telegram sends `duration` with every video, so nothing here needs `ffprobe`.
12
+ * Each instant sits in the MIDDLE of its slice rather than at its start: the
13
+ * first frame of a clip is routinely black (a fade-in, a camera still opening),
14
+ * and a black still is a frame budget spent on nothing.
15
+ *
16
+ * An unknown duration is the one case that takes `0` — with no length there is
17
+ * nothing to place a frame against, and one still from the start beats none.
18
+ */
19
+ export declare function frameTimestamps(durationSec: number | undefined, max?: number): number[];
20
+ /** Pure: `0:07`, `1:05`, `12:03` — the way a player shows a position. */
21
+ export declare function clock(sec: number): string;
22
+ /**
23
+ * Pure: does ffmpeg's own stream listing mention an audio track?
24
+ *
25
+ * Read rather than guessed, per invariant 27. A silent screen recording and a
26
+ * conversion that failed must not produce the same notice: one is a fact about
27
+ * the clip, the other is a bug to report.
28
+ */
29
+ export declare function hasAudioStream(ffmpegStderr: string): boolean;
30
+ /** One extracted still: the file, and where in the clip it was taken. */
31
+ export interface VideoFrame {
32
+ path: string;
33
+ atSec: number;
34
+ }
35
+ /** Why no still could be produced — shown to the user, so it names the cause. */
36
+ export type FramesOutcome = {
37
+ ok: true;
38
+ frames: VideoFrame[];
39
+ } | {
40
+ ok: false;
41
+ reason: string;
42
+ };
43
+ /**
44
+ * Extract stills next to the video, one ffmpeg call per instant.
45
+ *
46
+ * `-ss` BEFORE `-i` so the seek is the fast one (it jumps instead of decoding
47
+ * everything up to that point); `-frames:v 1` so each call writes exactly one
48
+ * image. Capped at 1280px wide: the model reads a 1280px screenshot fine and a
49
+ * phone's 4K frame is four times the pixels for nothing.
50
+ */
51
+ export declare function extractFrames(src: string, times: number[], notify?: (line: string) => void): Promise<FramesOutcome>;
52
+ /**
53
+ * Pure: the clip's length, off ffmpeg's `Duration: 00:00:18.43` line.
54
+ *
55
+ * Telegram usually tells us, but not always — a video sent AS A FILE arrives as
56
+ * a `document` with no duration at all, and without this it would get a single
57
+ * still from the first frame instead of a storyboard.
58
+ */
59
+ export declare function parseDurationSec(ffmpegStderr: string): number | undefined;
60
+ /**
61
+ * What ffmpeg can tell us about a file without decoding it.
62
+ *
63
+ * `audio: null` means we could not look (no static ffmpeg for this platform),
64
+ * which is NOT the same answer as "it is silent" — invariant 27 again: only
65
+ * what was observed gets asserted.
66
+ */
67
+ export declare function probeVideo(src: string): Promise<{
68
+ audio: boolean | null;
69
+ durationSec?: number;
70
+ }>;
71
+ /**
72
+ * How long a clip may be before its sound is left unheard.
73
+ *
74
+ * whisper runs at roughly 1.4x realtime on the default model and the agent's
75
+ * turn cannot start until the prompt is sent, so a ten-minute clip would hold
76
+ * the conversation for a quarter of an hour. Past the ceiling the prompt SAYS
77
+ * the audio was not listened to, which is what lets the agent offer to do it
78
+ * instead of assuming silence.
79
+ */
80
+ export declare const TRANSCRIBE_MAX_SEC = 120;
81
+ /** Everything the bridge could learn about a clip. `trouble` is for the USER
82
+ * (a Telegram notice), the rest goes into the agent's prompt. */
83
+ export interface VideoLook {
84
+ durationSec?: number;
85
+ frames?: VideoFrame[];
86
+ transcript?: string;
87
+ audioNote?: string;
88
+ trouble?: string;
89
+ }
90
+ /**
91
+ * Look at a downloaded video: stills always, speech when it is worth the wait.
92
+ *
93
+ * The audio track is PROBED rather than assumed. A silent clip then says
94
+ * nothing at all (there is nothing to report), while audio we chose not to
95
+ * transcribe, or failed to, is named in the prompt — an agent told nothing
96
+ * about the sound concludes there was none.
97
+ */
98
+ export declare function lookAtVideo(src: string, opts?: {
99
+ durationSec?: number;
100
+ maxFrames?: number;
101
+ transcribe?: boolean;
102
+ notify?: (line: string) => void;
103
+ }): Promise<VideoLook>;
package/dist/video.js ADDED
@@ -0,0 +1,181 @@
1
+ import fs from "node:fs";
2
+ import path from "node:path";
3
+ import { execFile } from "node:child_process";
4
+ import { promisify } from "node:util";
5
+ import { ensureFfmpeg, transcribe } from "./whisper.js";
6
+ /**
7
+ * Turning a video into things an agent can actually read.
8
+ *
9
+ * A Telegram video used to be dropped before it reached any binding (it has no
10
+ * `msg.text`, and `attachmentOf` did not know the field). Recognising it is only
11
+ * half the fix: `Read` opens images, PDFs and text — never an mp4 — and this
12
+ * container has no `ffmpeg` on PATH, so an agent handed a path cannot help
13
+ * itself either. So the bridge does the work the voice pipeline already does for
14
+ * speech: it extracts STILLS (vision, i.e. actually seeing the clip) over the
15
+ * same static ffmpeg `src/whisper.ts` provisions on demand.
16
+ *
17
+ * See docs/superpowers/specs/2026-10-16-telegram-video-design.md.
18
+ */
19
+ const run = promisify(execFile);
20
+ /** Stills for a lone video. Six is a storyboard; more is a context bill nobody
21
+ * asked for, since each one is an image the model has to look at. */
22
+ export const MAX_FRAMES = 6;
23
+ /** In an album, per video: ten clips × six stills is sixty images in one turn. */
24
+ export const ALBUM_FRAMES = 2;
25
+ /** One still per ~5 s of footage, until the cap. */
26
+ export const FRAME_EVERY_SEC = 5;
27
+ /**
28
+ * Pure: when to take the stills, in seconds.
29
+ *
30
+ * Telegram sends `duration` with every video, so nothing here needs `ffprobe`.
31
+ * Each instant sits in the MIDDLE of its slice rather than at its start: the
32
+ * first frame of a clip is routinely black (a fade-in, a camera still opening),
33
+ * and a black still is a frame budget spent on nothing.
34
+ *
35
+ * An unknown duration is the one case that takes `0` — with no length there is
36
+ * nothing to place a frame against, and one still from the start beats none.
37
+ */
38
+ export function frameTimestamps(durationSec, max = MAX_FRAMES) {
39
+ const d = typeof durationSec === "number" && Number.isFinite(durationSec) && durationSec > 0 ? durationSec : 0;
40
+ if (!d)
41
+ return [0];
42
+ const n = Math.max(1, Math.min(max, Math.ceil(d / FRAME_EVERY_SEC)));
43
+ const slice = d / n;
44
+ return Array.from({ length: n }, (_, i) => Math.round((i + 0.5) * slice * 100) / 100);
45
+ }
46
+ /** Pure: `0:07`, `1:05`, `12:03` — the way a player shows a position. */
47
+ export function clock(sec) {
48
+ const s = Math.max(0, Math.round(sec));
49
+ return `${Math.floor(s / 60)}:${String(s % 60).padStart(2, "0")}`;
50
+ }
51
+ /**
52
+ * Pure: does ffmpeg's own stream listing mention an audio track?
53
+ *
54
+ * Read rather than guessed, per invariant 27. A silent screen recording and a
55
+ * conversion that failed must not produce the same notice: one is a fact about
56
+ * the clip, the other is a bug to report.
57
+ */
58
+ export function hasAudioStream(ffmpegStderr) {
59
+ return /^\s*Stream #\d+:\d+.*:\s*Audio:/m.test(ffmpegStderr);
60
+ }
61
+ /**
62
+ * Extract stills next to the video, one ffmpeg call per instant.
63
+ *
64
+ * `-ss` BEFORE `-i` so the seek is the fast one (it jumps instead of decoding
65
+ * everything up to that point); `-frames:v 1` so each call writes exactly one
66
+ * image. Capped at 1280px wide: the model reads a 1280px screenshot fine and a
67
+ * phone's 4K frame is four times the pixels for nothing.
68
+ */
69
+ export async function extractFrames(src, times, notify) {
70
+ const st = await ensureFfmpeg(notify);
71
+ if (st.kind !== "ready")
72
+ return { ok: false, reason: st.reason };
73
+ const dir = path.dirname(src);
74
+ const base = path.basename(src).replace(/\.[^.]+$/, "");
75
+ const frames = [];
76
+ for (let i = 0; i < times.length; i++) {
77
+ const out = path.join(dir, `${base}-f${i + 1}.jpg`);
78
+ try {
79
+ await run(st.ffmpeg, ["-nostdin", "-y", "-ss", String(times[i]), "-i", src, "-frames:v", "1",
80
+ // The comma inside min() is escaped: unescaped it would split the
81
+ // filtergraph in two and ffmpeg would refuse the whole thing.
82
+ "-vf", "scale=min(1280\\,iw):-2", "-q:v", "4", out], { timeout: 30_000 });
83
+ // A seek past a truncated stream exits 0 and writes nothing, so the file
84
+ // is what proves the frame exists — not the exit code.
85
+ if (fs.existsSync(out) && fs.statSync(out).size > 0)
86
+ frames.push({ path: out, atSec: times[i] });
87
+ }
88
+ catch {
89
+ // One unreadable instant must not lose the frames that did come out.
90
+ }
91
+ }
92
+ return frames.length ? { ok: true, frames } : { ok: false, reason: "ffmpeg produced no still" };
93
+ }
94
+ /**
95
+ * Pure: the clip's length, off ffmpeg's `Duration: 00:00:18.43` line.
96
+ *
97
+ * Telegram usually tells us, but not always — a video sent AS A FILE arrives as
98
+ * a `document` with no duration at all, and without this it would get a single
99
+ * still from the first frame instead of a storyboard.
100
+ */
101
+ export function parseDurationSec(ffmpegStderr) {
102
+ const m = /Duration:\s*(\d+):(\d\d):(\d\d(?:\.\d+)?)/.exec(ffmpegStderr);
103
+ if (!m)
104
+ return undefined;
105
+ const sec = Number(m[1]) * 3600 + Number(m[2]) * 60 + Number(m[3]);
106
+ return Number.isFinite(sec) && sec > 0 ? sec : undefined;
107
+ }
108
+ /**
109
+ * What ffmpeg can tell us about a file without decoding it.
110
+ *
111
+ * `audio: null` means we could not look (no static ffmpeg for this platform),
112
+ * which is NOT the same answer as "it is silent" — invariant 27 again: only
113
+ * what was observed gets asserted.
114
+ */
115
+ export async function probeVideo(src) {
116
+ const st = await ensureFfmpeg();
117
+ if (st.kind !== "ready")
118
+ return { audio: null };
119
+ const read = (err) => ({ audio: hasAudioStream(err), durationSec: parseDurationSec(err) });
120
+ try {
121
+ // No output file, so ffmpeg prints the stream listing and exits non-zero —
122
+ // the listing is the point, the exit code is noise here.
123
+ const { stderr } = await run(st.ffmpeg, ["-hide_banner", "-nostdin", "-i", src], { timeout: 30_000 });
124
+ return read(stderr);
125
+ }
126
+ catch (e) {
127
+ const err = typeof e?.stderr === "string" ? e.stderr : "";
128
+ return err ? read(err) : { audio: null };
129
+ }
130
+ }
131
+ /**
132
+ * How long a clip may be before its sound is left unheard.
133
+ *
134
+ * whisper runs at roughly 1.4x realtime on the default model and the agent's
135
+ * turn cannot start until the prompt is sent, so a ten-minute clip would hold
136
+ * the conversation for a quarter of an hour. Past the ceiling the prompt SAYS
137
+ * the audio was not listened to, which is what lets the agent offer to do it
138
+ * instead of assuming silence.
139
+ */
140
+ export const TRANSCRIBE_MAX_SEC = 120;
141
+ /**
142
+ * Look at a downloaded video: stills always, speech when it is worth the wait.
143
+ *
144
+ * The audio track is PROBED rather than assumed. A silent clip then says
145
+ * nothing at all (there is nothing to report), while audio we chose not to
146
+ * transcribe, or failed to, is named in the prompt — an agent told nothing
147
+ * about the sound concludes there was none.
148
+ */
149
+ export async function lookAtVideo(src, opts = {}) {
150
+ const probed = await probeVideo(src);
151
+ const durationSec = opts.durationSec ?? probed.durationSec;
152
+ const shot = await extractFrames(src, frameTimestamps(durationSec, opts.maxFrames ?? MAX_FRAMES), opts.notify);
153
+ const look = { ...(durationSec ? { durationSec } : {}), ...(shot.ok ? { frames: shot.frames } : {}) };
154
+ if (!shot.ok) {
155
+ look.trouble = `🎬 I could not pull any still out of that video (${shot.reason}) — the agent has the file itself.`;
156
+ }
157
+ if (probed.audio === null) {
158
+ // We could not even look, which is not the same as "it is silent".
159
+ look.audioNote = "the audio track was not examined (no ffmpeg available here).";
160
+ return look;
161
+ }
162
+ if (!probed.audio)
163
+ return look; // genuinely silent: nothing to say
164
+ if (opts.transcribe === false) {
165
+ look.audioNote = "this clip has sound, left untranscribed because several arrived at once — say so if it matters.";
166
+ return look;
167
+ }
168
+ if (durationSec && durationSec > TRANSCRIBE_MAX_SEC) {
169
+ look.audioNote = `this clip has sound, not transcribed because it runs ${clock(durationSec)} (ceiling ${clock(TRANSCRIBE_MAX_SEC)}) — ask and it can be.`;
170
+ return look;
171
+ }
172
+ const out = await transcribe(src, opts.notify);
173
+ if (out.ok)
174
+ look.transcript = out.text;
175
+ else if (out.kind === "empty")
176
+ look.audioNote = "it has an audio track, but no speech was recognised in it.";
177
+ else
178
+ look.audioNote = "it has an audio track, which could not be transcribed here.";
179
+ return look;
180
+ }
181
+ //# sourceMappingURL=video.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"video.js","sourceRoot":"","sources":["../src/video.ts"],"names":[],"mappings":"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"}
package/dist/whisper.d.ts CHANGED
@@ -85,19 +85,29 @@ export declare function installFailure(reason: string): string;
85
85
  */
86
86
  export declare function parseWhisperText(stdout: string): string;
87
87
  /**
88
- * Pure: what to do with a transcription.
88
+ * Why there is no text, not merely that there is none.
89
89
  *
90
- * An empty result is REPORTED, never passed on as an empty prompt: a voice
91
- * message that produced nothing must say so, or it is indistinguishable from
92
- * the silent drop this whole feature exists to remove.
90
+ * A voice note shows the same notice either way, but a VIDEO must not: "I
91
+ * understood nothing in that voice message" is wrong twice over for a silent
92
+ * screen recording nobody asked to be transcribed. `empty` is a fact about the
93
+ * audio, `failed`/`unavailable` are faults on our side.
93
94
  */
94
- export declare function transcriptionOutcome(text: string): {
95
+ export type TranscriptionResult = {
95
96
  ok: true;
96
97
  text: string;
97
98
  } | {
98
99
  ok: false;
100
+ kind: "empty" | "failed" | "unavailable";
99
101
  notice: string;
100
102
  };
103
+ /**
104
+ * Pure: what to do with a transcription.
105
+ *
106
+ * An empty result is REPORTED, never passed on as an empty prompt: a voice
107
+ * message that produced nothing must say so, or it is indistinguishable from
108
+ * the silent drop this whole feature exists to remove.
109
+ */
110
+ export declare function transcriptionOutcome(text: string): TranscriptionResult;
101
111
  /**
102
112
  * Pure: what the topic shows for a transcription that WILL be acted on.
103
113
  *
@@ -135,6 +145,25 @@ export type WhisperState = {
135
145
  export declare function whisperState(): WhisperState | null;
136
146
  /** Test seam: forget what this process decided. */
137
147
  export declare function resetWhisper(): void;
148
+ export type FfmpegState = {
149
+ kind: "ready";
150
+ ffmpeg: string;
151
+ } | {
152
+ kind: "unavailable";
153
+ reason: string;
154
+ };
155
+ /** Said once, before the first byte moves: a download nobody announced looks
156
+ * like a bot that stopped answering. */
157
+ export declare const FFMPEG_NOTICE = "\uD83C\uDFAC first time: fetching the video toolchain (~80 MB), one moment.";
158
+ /**
159
+ * The static ffmpeg alone — no cmake, no whisper build, no 600 MB model.
160
+ *
161
+ * Split out of `ensureWhisper` because the video path needs ONLY this: stills
162
+ * from a silent clip must not cost a speech-to-text install. Single-flight and
163
+ * sticky-on-failure for the same reasons stated there, and it is now the one
164
+ * place that writes `ffmpeg` — `ensureWhisper` goes through it too.
165
+ */
166
+ export declare function ensureFfmpeg(notify?: (line: string) => void): Promise<FfmpegState>;
138
167
  /**
139
168
  * Provision everything, once. Returns the same answer to every later caller.
140
169
  *
@@ -149,10 +178,4 @@ export declare function ensureWhisper(notify?: (line: string) => void): Promise<
149
178
  * reads 16 kHz mono PCM and Telegram sends OGG/Opus, so the conversion is not
150
179
  * optional.
151
180
  */
152
- export declare function transcribe(audioPath: string, notify?: (line: string) => void): Promise<{
153
- ok: true;
154
- text: string;
155
- } | {
156
- ok: false;
157
- notice: string;
158
- }>;
181
+ export declare function transcribe(audioPath: string, notify?: (line: string) => void): Promise<TranscriptionResult>;
package/dist/whisper.js CHANGED
@@ -116,7 +116,12 @@ export function parseWhisperText(stdout) {
116
116
  return String(stdout ?? "")
117
117
  .split("\n")
118
118
  .map((l) => l.replace(/^\s*\[[0-9:.\s\->]+\]\s*/, "").trim())
119
- .filter((l) => l && !/^\[.*\]$/.test(l))
119
+ // A line that is NOTHING BUT a sound tag is not speech. whisper.cpp writes
120
+ // those in brackets AND in parentheses — `[MUSIC]`, `(Bell)`, `(wind
121
+ // blowing)` — and a 440 Hz tone really did come back as `(Bell)`, which
122
+ // the video path would have quoted to the agent as something that was said.
123
+ // Only a whole-line tag goes: "(laughs) yes, ship it" is speech.
124
+ .filter((l) => l && !/^[[(][^[\]()]*[\])]$/.test(l))
120
125
  .join(" ")
121
126
  .replace(/\s+/g, " ")
122
127
  .trim();
@@ -131,7 +136,7 @@ export function parseWhisperText(stdout) {
131
136
  export function transcriptionOutcome(text) {
132
137
  const t = parseWhisperText(text);
133
138
  if (!t)
134
- return { ok: false, notice: "🎙 je n'ai rien compris dans ce vocal — peux-tu réessayer ou écrire ?" };
139
+ return { ok: false, kind: "empty", notice: "🎙 je n'ai rien compris dans ce vocal — peux-tu réessayer ou écrire ?" };
135
140
  return { ok: true, text: t };
136
141
  }
137
142
  /**
@@ -212,6 +217,8 @@ export function whisperState() {
212
217
  export function resetWhisper() {
213
218
  inFlight = null;
214
219
  settled = null;
220
+ ffInFlight = null;
221
+ ffSettled = null;
215
222
  }
216
223
  import { execFile, execFileSync } from "node:child_process";
217
224
  import { promisify } from "node:util";
@@ -255,6 +262,47 @@ async function installPkg(pkg) {
255
262
  }
256
263
  await run(cmd, args, { timeout: 900_000 });
257
264
  }
265
+ let ffInFlight = null;
266
+ let ffSettled = null;
267
+ /** Said once, before the first byte moves: a download nobody announced looks
268
+ * like a bot that stopped answering. */
269
+ export const FFMPEG_NOTICE = "🎬 first time: fetching the video toolchain (~80 MB), one moment.";
270
+ /**
271
+ * The static ffmpeg alone — no cmake, no whisper build, no 600 MB model.
272
+ *
273
+ * Split out of `ensureWhisper` because the video path needs ONLY this: stills
274
+ * from a silent clip must not cost a speech-to-text install. Single-flight and
275
+ * sticky-on-failure for the same reasons stated there, and it is now the one
276
+ * place that writes `ffmpeg` — `ensureWhisper` goes through it too.
277
+ */
278
+ export async function ensureFfmpeg(notify) {
279
+ if (ffSettled)
280
+ return ffSettled;
281
+ if (ffInFlight)
282
+ return ffInFlight;
283
+ ffInFlight = (async () => {
284
+ const p = whisperPaths(whisperDir());
285
+ try {
286
+ if (!fs.existsSync(p.ffmpeg)) {
287
+ const url = ffmpegAsset(process.platform, process.arch);
288
+ if (!url)
289
+ throw new Error(`no static ffmpeg for ${process.platform}/${process.arch}`);
290
+ notify?.(FFMPEG_NOTICE);
291
+ await fs.promises.mkdir(p.dir, { recursive: true });
292
+ await fetchTo(url, p.ffmpeg, 0o755);
293
+ }
294
+ ffSettled = { kind: "ready", ffmpeg: p.ffmpeg };
295
+ console.log(`ffmpeg: ready (${p.ffmpeg})`);
296
+ }
297
+ catch (e) {
298
+ const reason = e instanceof Error ? e.message : String(e);
299
+ ffSettled = { kind: "unavailable", reason };
300
+ console.log(`ffmpeg: unavailable — ${reason}`);
301
+ }
302
+ return ffSettled;
303
+ })().finally(() => { ffInFlight = null; });
304
+ return ffInFlight;
305
+ }
258
306
  /**
259
307
  * Provision everything, once. Returns the same answer to every later caller.
260
308
  *
@@ -284,10 +332,12 @@ export async function ensureWhisper(notify) {
284
332
  if (!present.cmake)
285
333
  await installPkg("cmake");
286
334
  if (!present.ffmpeg) {
287
- const url = ffmpegAsset(process.platform, process.arch);
288
- if (!url)
289
- throw new Error(`no static ffmpeg for ${process.platform}/${process.arch}`);
290
- await fetchTo(url, p.ffmpeg, 0o755);
335
+ // Through the SAME single-flight as the video path: two provisioners
336
+ // writing `${dest}.part-${pid}` from one pid is the ENOTEMPTY-shaped
337
+ // race this file already pays for once.
338
+ const ff = await ensureFfmpeg();
339
+ if (ff.kind !== "ready")
340
+ throw new Error(ff.reason);
291
341
  }
292
342
  if (!present.whisper) {
293
343
  const tgz = path.join(dir, `whisper-${WHISPER_TAG}.tar.gz`);
@@ -336,7 +386,7 @@ export async function ensureWhisper(notify) {
336
386
  export async function transcribe(audioPath, notify) {
337
387
  const state = await ensureWhisper(notify);
338
388
  if (state.kind !== "ready")
339
- return { ok: false, notice: installFailure(state.reason) };
389
+ return { ok: false, kind: "unavailable", notice: installFailure(state.reason) };
340
390
  const wav = `${audioPath}.16k.wav`;
341
391
  try {
342
392
  await run(state.ffmpeg, ["-nostdin", "-y", "-i", audioPath, "-ar", "16000", "-ac", "1", "-f", "wav", wav], { timeout: 120_000 });
@@ -344,7 +394,7 @@ export async function transcribe(audioPath, notify) {
344
394
  return transcriptionOutcome(stdout);
345
395
  }
346
396
  catch (e) {
347
- return { ok: false, notice: `🎙 la transcription a échoué : ${e instanceof Error ? e.message.slice(0, 200) : e}` };
397
+ return { ok: false, kind: "failed", notice: `🎙 la transcription a échoué : ${e instanceof Error ? e.message.slice(0, 200) : e}` };
348
398
  }
349
399
  finally {
350
400
  await fs.promises.rm(wav, { force: true }).catch(() => { });
@@ -1 +1 @@
1
- {"version":3,"file":"whisper.js","sourceRoot":"","sources":["../src/whisper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"whisper.js","sourceRoot":"","sources":["../src/whisper.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "shadok-ai",
3
- "version": "0.14.18",
3
+ "version": "0.15.0",
4
4
  "main": "dist/session.js",
5
5
  "scripts": {
6
6
  "test": "node --import tsx --test --test-timeout=120000 test/*.ts context/*/test/*.test.mjs",