@hxnnxs/opencode-voice 0.1.0 → 0.1.2
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,23 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project are documented here.
|
|
4
4
|
|
|
5
|
+
## 0.1.2 - 2026-06-15
|
|
6
|
+
|
|
7
|
+
### Fixed
|
|
8
|
+
|
|
9
|
+
- Pinned npm package README metadata to the primary English `README.md`.
|
|
10
|
+
- Moved localized READMEs under `docs/` so npm does not select them as the package README.
|
|
11
|
+
|
|
12
|
+
## 0.1.1 - 2026-06-15
|
|
13
|
+
|
|
14
|
+
### Fixed
|
|
15
|
+
|
|
16
|
+
- Fixed Windows managed engine install/import probing by keeping temporary `whisper-cli` binaries executable as `.exe` files.
|
|
17
|
+
|
|
18
|
+
### Changed
|
|
19
|
+
|
|
20
|
+
- Ignored local CodeGraph index files.
|
|
21
|
+
|
|
5
22
|
## 0.1.0 - 2026-06-12
|
|
6
23
|
|
|
7
24
|
### 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" />
|
|
@@ -17,9 +19,9 @@
|
|
|
17
19
|
|
|
18
20
|
<p align="center">
|
|
19
21
|
<a href="README.md">English</a> |
|
|
20
|
-
<a href="README.ru.md">Русский</a> |
|
|
21
|
-
<a href="README.zh.md">简体中文</a> |
|
|
22
|
-
<a href="README.es.md">Español</a>
|
|
22
|
+
<a href="docs/README.ru.md">Русский</a> |
|
|
23
|
+
<a href="docs/README.zh.md">简体中文</a> |
|
|
24
|
+
<a href="docs/README.es.md">Español</a>
|
|
23
25
|
</p>
|
|
24
26
|
|
|
25
27
|
---
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
<p align="center">
|
|
2
2
|
<a href="https://github.com/ihxnnxs/opencode-voice">
|
|
3
3
|
<picture>
|
|
4
|
-
<source srcset="assets/opencode-voice-dark.svg" media="(prefers-color-scheme: dark)">
|
|
5
|
-
<source srcset="assets/opencode-voice-light.svg" media="(prefers-color-scheme: light)">
|
|
6
|
-
<img src="assets/opencode-voice-light.svg" alt="opencode voice logo">
|
|
4
|
+
<source srcset="../assets/opencode-voice-dark.svg" media="(prefers-color-scheme: dark)">
|
|
5
|
+
<source srcset="../assets/opencode-voice-light.svg" media="(prefers-color-scheme: light)">
|
|
6
|
+
<img src="../assets/opencode-voice-light.svg" alt="opencode voice logo">
|
|
7
7
|
</picture>
|
|
8
8
|
</a>
|
|
9
9
|
</p>
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
</p>
|
|
17
17
|
|
|
18
18
|
<p align="center">
|
|
19
|
-
<a href="README.md">English</a> |
|
|
19
|
+
<a href="../README.md">English</a> |
|
|
20
20
|
<a href="README.ru.md">Русский</a> |
|
|
21
21
|
<a href="README.zh.md">简体中文</a> |
|
|
22
22
|
<a href="README.es.md">Español</a>
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
<p align="center">
|
|
2
2
|
<a href="https://github.com/ihxnnxs/opencode-voice">
|
|
3
3
|
<picture>
|
|
4
|
-
<source srcset="assets/opencode-voice-dark.svg" media="(prefers-color-scheme: dark)">
|
|
5
|
-
<source srcset="assets/opencode-voice-light.svg" media="(prefers-color-scheme: light)">
|
|
6
|
-
<img src="assets/opencode-voice-light.svg" alt="opencode voice logo">
|
|
4
|
+
<source srcset="../assets/opencode-voice-dark.svg" media="(prefers-color-scheme: dark)">
|
|
5
|
+
<source srcset="../assets/opencode-voice-light.svg" media="(prefers-color-scheme: light)">
|
|
6
|
+
<img src="../assets/opencode-voice-light.svg" alt="opencode voice logo">
|
|
7
7
|
</picture>
|
|
8
8
|
</a>
|
|
9
9
|
</p>
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
</p>
|
|
17
17
|
|
|
18
18
|
<p align="center">
|
|
19
|
-
<a href="README.md">English</a> |
|
|
19
|
+
<a href="../README.md">English</a> |
|
|
20
20
|
<a href="README.ru.md">Русский</a> |
|
|
21
21
|
<a href="README.zh.md">简体中文</a> |
|
|
22
22
|
<a href="README.es.md">Español</a>
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
<p align="center">
|
|
2
2
|
<a href="https://github.com/ihxnnxs/opencode-voice">
|
|
3
3
|
<picture>
|
|
4
|
-
<source srcset="assets/opencode-voice-dark.svg" media="(prefers-color-scheme: dark)">
|
|
5
|
-
<source srcset="assets/opencode-voice-light.svg" media="(prefers-color-scheme: light)">
|
|
6
|
-
<img src="assets/opencode-voice-light.svg" alt="opencode voice logo">
|
|
4
|
+
<source srcset="../assets/opencode-voice-dark.svg" media="(prefers-color-scheme: dark)">
|
|
5
|
+
<source srcset="../assets/opencode-voice-light.svg" media="(prefers-color-scheme: light)">
|
|
6
|
+
<img src="../assets/opencode-voice-light.svg" alt="opencode voice logo">
|
|
7
7
|
</picture>
|
|
8
8
|
</a>
|
|
9
9
|
</p>
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
</p>
|
|
17
17
|
|
|
18
18
|
<p align="center">
|
|
19
|
-
<a href="README.md">English</a> |
|
|
19
|
+
<a href="../README.md">English</a> |
|
|
20
20
|
<a href="README.ru.md">Русский</a> |
|
|
21
21
|
<a href="README.zh.md">简体中文</a> |
|
|
22
22
|
<a href="README.es.md">Español</a>
|
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 =
|
|
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 =
|
|
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,9 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hxnnxs/opencode-voice",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.2",
|
|
4
4
|
"description": "Local voice input plugin for OpenCode",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
7
|
+
"readmeFilename": "README.md",
|
|
7
8
|
"repository": {
|
|
8
9
|
"type": "git",
|
|
9
10
|
"url": "git+https://github.com/ihxnnxs/opencode-voice.git"
|
|
@@ -35,7 +36,8 @@
|
|
|
35
36
|
"CHANGELOG.md",
|
|
36
37
|
"CONTRIBUTING.md",
|
|
37
38
|
"PUBLISHING.md",
|
|
38
|
-
"README
|
|
39
|
+
"README.md",
|
|
40
|
+
"docs/README*.md",
|
|
39
41
|
"SECURITY.md",
|
|
40
42
|
"LICENSE"
|
|
41
43
|
],
|