From 738f5d453317c9c91d30e776e088af9669d2d179 Mon Sep 17 00:00:00 2001 From: bmendonca3 Date: Mon, 2 Mar 2026 10:22:49 -0700 Subject: [PATCH] skills: make sherpa-onnx-tts bin ESM-compatible --- skills/sherpa-onnx-tts/bin/sherpa-onnx-tts | 6 ++--- src/agents/skills.sherpa-onnx-tts-bin.test.ts | 23 +++++++++++++++++++ 2 files changed, 26 insertions(+), 3 deletions(-) create mode 100644 src/agents/skills.sherpa-onnx-tts-bin.test.ts diff --git a/skills/sherpa-onnx-tts/bin/sherpa-onnx-tts b/skills/sherpa-onnx-tts/bin/sherpa-onnx-tts index 82a7cceaf16..1d7b29974e0 100755 --- a/skills/sherpa-onnx-tts/bin/sherpa-onnx-tts +++ b/skills/sherpa-onnx-tts/bin/sherpa-onnx-tts @@ -1,8 +1,8 @@ #!/usr/bin/env node -const fs = require("node:fs"); -const path = require("node:path"); -const { spawnSync } = require("node:child_process"); +import fs from "node:fs"; +import path from "node:path"; +import { spawnSync } from "node:child_process"; function usage(message) { if (message) { diff --git a/src/agents/skills.sherpa-onnx-tts-bin.test.ts b/src/agents/skills.sherpa-onnx-tts-bin.test.ts new file mode 100644 index 00000000000..a8453366222 --- /dev/null +++ b/src/agents/skills.sherpa-onnx-tts-bin.test.ts @@ -0,0 +1,23 @@ +import { spawnSync } from "node:child_process"; +import path from "node:path"; +import { describe, expect, it } from "vitest"; + +describe("skills/sherpa-onnx-tts bin script", () => { + it("loads as ESM and falls through to usage output when env is missing", () => { + const scriptPath = path.resolve( + process.cwd(), + "skills", + "sherpa-onnx-tts", + "bin", + "sherpa-onnx-tts", + ); + const result = spawnSync(process.execPath, [scriptPath], { + encoding: "utf8", + }); + + expect(result.status).toBe(1); + expect(result.stderr).toContain("Missing runtime/model directory."); + expect(result.stderr).toContain("Usage: sherpa-onnx-tts"); + expect(result.stderr).not.toContain("require is not defined in ES module scope"); + }); +});