@hxnnxs/opencode-voice 0.1.0 → 0.1.1

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/CHANGELOG.md CHANGED
@@ -2,6 +2,16 @@
2
2
 
3
3
  All notable changes to this project are documented here.
4
4
 
5
+ ## 0.1.1 - 2026-06-15
6
+
7
+ ### Fixed
8
+
9
+ - Fixed Windows managed engine install/import probing by keeping temporary `whisper-cli` binaries executable as `.exe` files.
10
+
11
+ ### Changed
12
+
13
+ - Ignored local CodeGraph index files.
14
+
5
15
  ## 0.1.0 - 2026-06-12
6
16
 
7
17
  ### Added
package/README.md CHANGED
@@ -10,6 +10,8 @@
10
10
  <p align="center">Local speech-to-text for the OpenCode TUI.</p>
11
11
  <p align="center">
12
12
  <img alt="status" src="https://img.shields.io/badge/status-mvp-orange?style=flat-square" />
13
+ <a href="https://www.npmjs.com/package/@hxnnxs/opencode-voice"><img alt="npm version" src="https://img.shields.io/npm/v/@hxnnxs/opencode-voice?style=flat-square" /></a>
14
+ <a href="https://www.npmjs.com/package/@hxnnxs/opencode-voice"><img alt="npm downloads" src="https://img.shields.io/npm/dm/@hxnnxs/opencode-voice?style=flat-square" /></a>
13
15
  <img alt="license" src="https://img.shields.io/badge/license-MIT-blue?style=flat-square" />
14
16
  <img alt="opencode" src="https://img.shields.io/badge/opencode-%3E%3D1.17.4-black?style=flat-square" />
15
17
  <img alt="stt" src="https://img.shields.io/badge/STT-local_whisper.cpp-purple?style=flat-square" />
package/lib/engines.js CHANGED
@@ -26,6 +26,12 @@ function executableName() {
26
26
  return process.platform === "win32" ? "whisper-cli.exe" : "whisper-cli";
27
27
  }
28
28
 
29
+ function temporaryBinaryPath(binaryPath) {
30
+ const extension = path.extname(binaryPath);
31
+ if (!extension) return `${binaryPath}.tmp-${process.pid}`;
32
+ return path.join(path.dirname(binaryPath), `${path.basename(binaryPath, extension)}.tmp-${process.pid}${extension}`);
33
+ }
34
+
29
35
  function normalizePlatform(value) {
30
36
  if (value === "x64" || value === "arm64") return value;
31
37
  if (value === "amd64") return "x64";
@@ -250,7 +256,7 @@ export async function installManagedEngine(engineId = ENGINE.id, options = {}, s
250
256
 
251
257
  await ensureDir(managedDir);
252
258
  const compressedFile = path.join(managedDir, `${path.basename(asset.url || `${platform}.gz`)}.download`);
253
- const tmpBinary = `${managedBinary}.tmp-${process.pid}`;
259
+ const tmpBinary = temporaryBinaryPath(managedBinary);
254
260
  const attempts = Number(options.engineDownloadRetries || hooks.retries || 3);
255
261
  let lastError;
256
262
 
@@ -313,7 +319,7 @@ export async function importManagedEngine(engineId = ENGINE.id, sourcePath, opti
313
319
 
314
320
  const managedDir = getManagedEngineDir(engineId, options, settings);
315
321
  const managedBinary = getManagedEngineBinary(engineId, options, settings);
316
- const tmp = `${managedBinary}.tmp-${process.pid}`;
322
+ const tmp = temporaryBinaryPath(managedBinary);
317
323
  await ensureDir(managedDir);
318
324
  await fs.promises.copyFile(source, tmp);
319
325
  await fs.promises.chmod(tmp, 0o755);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hxnnxs/opencode-voice",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "description": "Local voice input plugin for OpenCode",
5
5
  "type": "module",
6
6
  "license": "MIT",