Add HyperFrames skills

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011h6NB8JQtfPc6eRCefEzBB
This commit is contained in:
Claude committed 2026-10-14 21:51:46 +00:00
1 parent 6bd8165e6d
commit 1b2c8439f0
964 files changed
+142321

No files matched your search

@@ -0,0 +1,69 @@
import assert from "node:assert/strict";
import { execFileSync } from "node:child_process";
import { existsSync, mkdirSync, mkdtempSync, readFileSync, rmSync, writeFileSync } from "node:fs";
import { tmpdir } from "node:os";
import { join } from "node:path";
import test from "node:test";
import { fileURLToPath } from "node:url";
// A stub CLI answers as `transcribe --json` does when --engine auto ran Parakeet.
const STUB_CLI = `
const fs = require("fs"), path = require("path");
const project = process.argv[process.argv.indexOf("-d") + 1];
const transcriptPath = path.join(project, "cli-words.json");
fs.writeFileSync(transcriptPath, JSON.stringify([{ text: "hello", start: 0.1, end: 0.5 }]));
console.log(JSON.stringify({ ok: true, engine: "parakeet", model: "parakeet-tdt-0.6b-v3", transcriptPath }));
`;
test("the CLI fallback labels the transcript with the engine the CLI ran", () => {
const root = mkdtempSync(join(tmpdir(), "embedded-captions-transcribe-"));
try {
const cliDir = join(root, "hf", "packages", "cli", "dist");
mkdirSync(cliDir, { recursive: true });
writeFileSync(join(cliDir, "cli.js"), STUB_CLI);
const project = join(root, "project");
mkdirSync(project);
writeFileSync(join(project, "source.mp4"), "");
writeFileSync(join(project, "audio.mp3"), "");
execFileSync(
process.execPath,
[fileURLToPath(new URL("./transcribe.cjs", import.meta.url)), project],
{
stdio: "ignore",
env: { ...process.env, HYPERFRAMES_ROOT: join(root, "hf"), TRANSCRIBE_ENGINE: "whisper" },
},
);
const transcript = JSON.parse(readFileSync(join(project, "transcript.json"), "utf8"));
assert.equal(transcript.engine, "parakeet(parakeet-tdt-0.6b-v3)");
} finally {
rmSync(root, { recursive: true, force: true });
}
});
test("the extracted audio scratch file does not outlive the run", () => {
const root = mkdtempSync(join(tmpdir(), "embedded-captions-transcribe-"));
try {
const cliDir = join(root, "hf", "packages", "cli", "dist");
mkdirSync(cliDir, { recursive: true });
writeFileSync(join(cliDir, "cli.js"), STUB_CLI);
const project = join(root, "project");
mkdirSync(project);
execFileSync(
"ffmpeg",
["-y", "-f", "lavfi", "-i", "sine=frequency=440:duration=1", join(project, "source.mp4")],
{ stdio: "ignore" },
);
execFileSync(
process.execPath,
[fileURLToPath(new URL("./transcribe.cjs", import.meta.url)), project],
{
stdio: "ignore",
env: { ...process.env, HYPERFRAMES_ROOT: join(root, "hf"), TRANSCRIBE_ENGINE: "whisper" },
},
);
assert.equal(existsSync(join(project, "audio.mp3")), false);
assert.equal(existsSync(join(project, "transcript.json")), true);
} finally {
rmSync(root, { recursive: true, force: true });
}
});