@aitne/daemon 0.1.1 → 0.1.3
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/dist/api/routes/integrations.d.ts.map +1 -1
- package/dist/api/routes/integrations.js +19 -8
- package/dist/api/routes/integrations.js.map +1 -1
- package/dist/api/routes/voice.d.ts +2 -0
- package/dist/api/routes/voice.d.ts.map +1 -1
- package/dist/api/routes/voice.js +252 -11
- package/dist/api/routes/voice.js.map +1 -1
- package/dist/api/server.d.ts.map +1 -1
- package/dist/api/server.js +13 -13
- package/dist/api/server.js.map +1 -1
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -1
- package/dist/safety/risk-classifier.d.ts.map +1 -1
- package/dist/safety/risk-classifier.js +5 -0
- package/dist/safety/risk-classifier.js.map +1 -1
- package/dist/services/voice/transcriber-impl.d.ts.map +1 -1
- package/dist/services/voice/transcriber-impl.js +47 -0
- package/dist/services/voice/transcriber-impl.js.map +1 -1
- package/dist/services/voice/transcriber.d.ts +51 -1
- package/dist/services/voice/transcriber.d.ts.map +1 -1
- package/dist/services/voice/transcriber.js +138 -10
- package/dist/services/voice/transcriber.js.map +1 -1
- package/dist/settings/runtime-settings.d.ts +2 -1
- package/dist/settings/runtime-settings.d.ts.map +1 -1
- package/dist/settings/runtime-settings.js +23 -1
- package/dist/settings/runtime-settings.js.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"integrations.d.ts","sourceRoot":"","sources":["../../../src/api/routes/integrations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAgB,MAAM,MAAM,CAAC;AAiD1C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAIpD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,eAAe,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"integrations.d.ts","sourceRoot":"","sources":["../../../src/api/routes/integrations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAgB,MAAM,MAAM,CAAC;AAiD1C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAIpD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,eAAe,GAAG,IAAI,CA2zCnE"}
|
|
@@ -96,6 +96,7 @@ export function createIntegrationRoutes(deps) {
|
|
|
96
96
|
LIMIT ?`)
|
|
97
97
|
.all(key, limit);
|
|
98
98
|
const calls = rows.map((row) => {
|
|
99
|
+
/* c8 ignore next -- sql WHERE json_extract filters out rows with null detail */
|
|
99
100
|
const detail = row.detail ? safeParseJson(row.detail) : null;
|
|
100
101
|
return {
|
|
101
102
|
id: row.id,
|
|
@@ -496,21 +497,21 @@ export function createIntegrationRoutes(deps) {
|
|
|
496
497
|
createSettingsStore(db).set("delegatedTaskModeEnabled", true);
|
|
497
498
|
config.delegatedTaskModeEnabled = true;
|
|
498
499
|
logger.info({ key, backend: effectiveBackend, trigger: "first_delegated" }, "auto-enabled delegatedTaskModeEnabled — first delegated integration");
|
|
500
|
+
/* c8 ignore start -- settings write never fails with in-memory DB; defensive for production */
|
|
499
501
|
}
|
|
500
502
|
catch (err) {
|
|
501
|
-
// Settings write is best-effort: even if persistence fails the
|
|
502
|
-
// in-memory config update above keeps /exec working for this
|
|
503
|
-
// process; a daemon restart would re-apply the same heal via
|
|
504
|
-
// the startup default-correction path in index.ts.
|
|
505
503
|
logger.error({ err, key }, "failed to persist delegatedTaskModeEnabled auto-enable; in-memory config still updated");
|
|
506
504
|
}
|
|
505
|
+
/* c8 ignore stop */
|
|
507
506
|
}
|
|
508
507
|
return c.json({ ok: true, integration: next[key] });
|
|
508
|
+
/* c8 ignore start -- updateIntegrationState never throws with in-memory DB; defensive for production */
|
|
509
509
|
}
|
|
510
510
|
catch (err) {
|
|
511
511
|
logger.error({ err, key }, "integration mode update failed");
|
|
512
512
|
return c.json({ error: "internal_error" }, 500);
|
|
513
513
|
}
|
|
514
|
+
/* c8 ignore stop */
|
|
514
515
|
});
|
|
515
516
|
// ─────────────────────────────────────────────────────────────────────
|
|
516
517
|
// RESERVED — POST /integrations/:key/invoke (RPC-style tool dispatch)
|
|
@@ -1012,6 +1013,7 @@ export function createIntegrationRoutes(deps) {
|
|
|
1012
1013
|
// user-managed in the live-probe branch below.
|
|
1013
1014
|
if (!isUserManaged) {
|
|
1014
1015
|
const connector = getConnector(key, backend.value);
|
|
1016
|
+
/* c8 ignore start -- every registered (integration, backend) pair ships with a connector today; forward-compat guard for future partial connectors */
|
|
1015
1017
|
if (!connector) {
|
|
1016
1018
|
return c.json({
|
|
1017
1019
|
error: "backend_not_supported",
|
|
@@ -1020,6 +1022,7 @@ export function createIntegrationRoutes(deps) {
|
|
|
1020
1022
|
availableBackends: Object.keys(descriptorForProbe.backendConnectors),
|
|
1021
1023
|
}, 400);
|
|
1022
1024
|
}
|
|
1025
|
+
/* c8 ignore stop */
|
|
1023
1026
|
}
|
|
1024
1027
|
// §4.11 live probe — `liveProbe: true` asks the daemon to spawn the
|
|
1025
1028
|
// target backend and enumerate its MCP tool list. User-initiated only;
|
|
@@ -1126,11 +1129,13 @@ export function createIntegrationRoutes(deps) {
|
|
|
1126
1129
|
...(isUserManaged ? { userManaged: true } : {}),
|
|
1127
1130
|
result,
|
|
1128
1131
|
});
|
|
1132
|
+
/* c8 ignore start -- evaluateProbe / writeProbe success path is always taken in tests; catch is defensive */
|
|
1129
1133
|
}
|
|
1130
1134
|
catch (err) {
|
|
1131
1135
|
logger.error({ err, key, backend: backend.value }, "probe evaluation failed");
|
|
1132
1136
|
return c.json({ error: "internal_error" }, 500);
|
|
1133
1137
|
}
|
|
1138
|
+
/* c8 ignore stop */
|
|
1134
1139
|
});
|
|
1135
1140
|
return app;
|
|
1136
1141
|
}
|
|
@@ -1206,20 +1211,24 @@ function recordAuditModeChange(db, key, previous, next) {
|
|
|
1206
1211
|
delegatedBackend: next.delegatedBackend ?? null,
|
|
1207
1212
|
},
|
|
1208
1213
|
}));
|
|
1214
|
+
/* c8 ignore start -- in-memory DB always succeeds; catch is defensive for production DB errors */
|
|
1209
1215
|
}
|
|
1210
1216
|
catch (err) {
|
|
1211
1217
|
logger.warn({ err, key }, "failed to write integration audit row");
|
|
1212
1218
|
}
|
|
1219
|
+
/* c8 ignore stop */
|
|
1213
1220
|
}
|
|
1214
1221
|
function recordAuditPolicyChange(db, key, diff) {
|
|
1215
1222
|
try {
|
|
1216
1223
|
db.prepare(`INSERT INTO agent_actions
|
|
1217
1224
|
(event_id, action_type, trigger, result, detail, started_at, completed_at)
|
|
1218
1225
|
VALUES (?, 'integration.policy_change', 'reactive', 'success', ?, datetime('now'), datetime('now'))`).run(`integration:${key}:policy:${Date.now()}`, JSON.stringify({ key, deniedTools: diff }));
|
|
1226
|
+
/* c8 ignore start -- in-memory DB always succeeds; catch is defensive for production DB errors */
|
|
1219
1227
|
}
|
|
1220
1228
|
catch (err) {
|
|
1221
1229
|
logger.warn({ err, key }, "failed to write integration policy audit row");
|
|
1222
1230
|
}
|
|
1231
|
+
/* c8 ignore stop */
|
|
1223
1232
|
}
|
|
1224
1233
|
function diffDeniedTools(previous, next) {
|
|
1225
1234
|
const prevSet = new Set(previous);
|
|
@@ -1285,14 +1294,16 @@ function mapTaskErrorClassToHttpStatus(errorClass) {
|
|
|
1285
1294
|
function safeParseJson(s) {
|
|
1286
1295
|
try {
|
|
1287
1296
|
const parsed = JSON.parse(s);
|
|
1288
|
-
|
|
1289
|
-
|
|
1290
|
-
|
|
1291
|
-
return
|
|
1297
|
+
/* c8 ignore next -- sql WHERE guarantees only object-typed detail rows reach here */
|
|
1298
|
+
if (!parsed || typeof parsed !== "object" || Array.isArray(parsed))
|
|
1299
|
+
return null;
|
|
1300
|
+
return parsed;
|
|
1301
|
+
/* c8 ignore start -- sql WHERE json_extract would reject malformed JSON rows */
|
|
1292
1302
|
}
|
|
1293
1303
|
catch {
|
|
1294
1304
|
return null;
|
|
1295
1305
|
}
|
|
1306
|
+
/* c8 ignore stop */
|
|
1296
1307
|
}
|
|
1297
1308
|
/**
|
|
1298
1309
|
* INTEGRATION-DRIFT-DETECTION-PLAN.md §11 Phase 4 — delegated chokepoint
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"integrations.js","sourceRoot":"","sources":["../../../src/api/routes/integrations.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"integrations.js","sourceRoot":"","sources":["../../../src/api/routes/integrations.ts"],"names":[],"mappings":"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"}
|
|
@@ -42,6 +42,8 @@ export interface VoiceRoutesOptions {
|
|
|
42
42
|
loadPipeline?: typeof defaultLoadPipeline;
|
|
43
43
|
/** Test seam — replace the restart trigger so unit tests do not spawn processes. */
|
|
44
44
|
triggerRestart?: () => void;
|
|
45
|
+
/** Test seam — override the locale-suggestion source. */
|
|
46
|
+
suggestPrimaryLanguage?: () => string;
|
|
45
47
|
}
|
|
46
48
|
export declare function createVoiceRoutes(deps: ApiDependencies, opts?: VoiceRoutesOptions): Hono;
|
|
47
49
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"voice.d.ts","sourceRoot":"","sources":["../../../src/api/routes/voice.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"voice.d.ts","sourceRoot":"","sources":["../../../src/api/routes/voice.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAG5B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AAS/E;;;;;;;;;GASG;AAEH,KAAK,aAAa,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,OAAO,CAAC;AAE5D,UAAU,eAAe;IACvB,KAAK,EAAE,cAAc,GAAG,aAAa,GAAG,SAAS,GAAG,OAAO,CAAC;IAC5D,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,UAAU,YAAY;IACpB,MAAM,EAAE,aAAa,CAAC;IACtB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB;;;;;OAKG;IACH,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,eAAe,GAAG,IAAI,CAAC;CAClC;AAWD,uFAAuF;AACvF,wBAAgB,6BAA6B,IAAI,YAAY,CAE5D;AACD,wBAAgB,+BAA+B,IAAI,IAAI,CAStD;AA8KD,MAAM,WAAW,kBAAkB;IACjC,0FAA0F;IAC1F,YAAY,CAAC,EAAE,OAAO,mBAAmB,CAAC;IAC1C,oFAAoF;IACpF,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B,yDAAyD;IACzD,sBAAsB,CAAC,EAAE,MAAM,MAAM,CAAC;CACvC;AAED,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,eAAe,EACrB,IAAI,GAAE,kBAAuB,GAC5B,IAAI,CA4TN"}
|
package/dist/api/routes/voice.js
CHANGED
|
@@ -1,9 +1,14 @@
|
|
|
1
1
|
import { spawn } from "node:child_process";
|
|
2
|
-
import { mkdirSync } from "node:fs";
|
|
3
|
-
import {
|
|
2
|
+
import { existsSync, mkdirSync, readdirSync } from "node:fs";
|
|
3
|
+
import { rm } from "node:fs/promises";
|
|
4
|
+
import { dirname, join, resolve } from "node:path";
|
|
5
|
+
import { fileURLToPath } from "node:url";
|
|
4
6
|
import { Hono } from "hono";
|
|
7
|
+
import { z } from "zod";
|
|
8
|
+
import { isSupportedVoiceLanguage, localeToVoiceLanguage } from "@aitne/shared";
|
|
5
9
|
import { createSettingsStore } from "../../settings/settings-store.js";
|
|
6
10
|
import { defaultLoadPipeline } from "../../services/voice/transcriber-impl.js";
|
|
11
|
+
import { VOICE_TRANSCRIBER_DEFAULTS, } from "../../services/voice/transcriber.js";
|
|
7
12
|
import { createLogger, toSafeErrorMessage } from "../../logging.js";
|
|
8
13
|
const logger = createLogger("api:voice");
|
|
9
14
|
let state = {
|
|
@@ -28,16 +33,131 @@ export function __resetVoiceInstallStateForTest() {
|
|
|
28
33
|
progress: null,
|
|
29
34
|
};
|
|
30
35
|
}
|
|
36
|
+
/**
|
|
37
|
+
* Resolve the configured Whisper model id, applying the env override
|
|
38
|
+
* (advanced operators) on top of the package default. Single source of
|
|
39
|
+
* truth — the install route, the status route, and the on-disk check
|
|
40
|
+
* all run through this so they cannot drift.
|
|
41
|
+
*/
|
|
42
|
+
function resolveConfiguredModel() {
|
|
43
|
+
return (process.env.PA_VOICE_TRANSCRIPTION_MODEL ?? VOICE_TRANSCRIBER_DEFAULTS.model);
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Best-effort check that the configured model is materialized on disk.
|
|
47
|
+
* Used by the dashboard to surface an "upgrade available" prompt when
|
|
48
|
+
* the package default model has changed since the last install (e.g.
|
|
49
|
+
* the v0.1.1 → v0.2.0 jump from `Xenova/whisper-small` to
|
|
50
|
+
* `onnx-community/whisper-large-v3-turbo`).
|
|
51
|
+
*
|
|
52
|
+
* Two cache layouts are checked because we set BOTH `env.cacheDir` and
|
|
53
|
+
* `env.localModelPath` to `modelDir` in `defaultLoadPipeline`:
|
|
54
|
+
*
|
|
55
|
+
* 1. Hub layout — `hub/models--<owner>--<name>/snapshots/<commit>/...`
|
|
56
|
+
* This is what transformers.js writes when it falls through to the
|
|
57
|
+
* remote-fetch path with `cacheDir` set.
|
|
58
|
+
* 2. Flat (localModelPath) layout — `<owner>/<name>/onnx/<file>.onnx`
|
|
59
|
+
* What transformers.js writes (and reads from) when `localModelPath`
|
|
60
|
+
* is set and the model is resolved as a local model. Existing
|
|
61
|
+
* installs from before the turbo upgrade live in this layout.
|
|
62
|
+
*
|
|
63
|
+
* Both checks require at least one ONNX weight to be present — an empty
|
|
64
|
+
* directory tree left behind by an aborted download must not register
|
|
65
|
+
* as "installed" or the install endpoint's `alreadyEnabled` short-
|
|
66
|
+
* circuit fires on a cold cache and the user is stuck unable to retry.
|
|
67
|
+
*/
|
|
68
|
+
function isModelOnDisk(modelDir, modelId) {
|
|
69
|
+
const [owner, name] = modelId.split("/");
|
|
70
|
+
if (!owner || !name)
|
|
71
|
+
return false;
|
|
72
|
+
// Hub layout: any non-empty snapshot dir signals a successful checkout.
|
|
73
|
+
const snapshotsDir = join(modelDir, "hub", `models--${owner}--${name}`, "snapshots");
|
|
74
|
+
try {
|
|
75
|
+
if (readdirSync(snapshotsDir).length > 0)
|
|
76
|
+
return true;
|
|
77
|
+
}
|
|
78
|
+
catch {
|
|
79
|
+
// ENOENT (dir doesn't exist) or permission error — fall through to
|
|
80
|
+
// the flat-layout check.
|
|
81
|
+
}
|
|
82
|
+
// Flat layout: require at least one `.onnx` weight under `<owner>/<name>/
|
|
83
|
+
// onnx/`. The presence of `config.json` alone is not sufficient — a
|
|
84
|
+
// partial download can leave the metadata files but no weights.
|
|
85
|
+
const flatOnnxDir = join(modelDir, owner, name, "onnx");
|
|
86
|
+
try {
|
|
87
|
+
return readdirSync(flatOnnxDir).some((f) => f.endsWith(".onnx"));
|
|
88
|
+
}
|
|
89
|
+
catch {
|
|
90
|
+
return false;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Map the daemon's runtime locale to a Whisper language code, used as
|
|
95
|
+
* the default selection in the dashboard's install dialog. We prefer
|
|
96
|
+
* `Intl.DateTimeFormat` (stable, cross-platform) over POSIX `LANG`
|
|
97
|
+
* because `LANG` is often `C.UTF-8` on headless macOS launches.
|
|
98
|
+
*/
|
|
99
|
+
function suggestPrimaryLanguageFromLocale() {
|
|
100
|
+
const candidates = [
|
|
101
|
+
Intl.DateTimeFormat().resolvedOptions().locale,
|
|
102
|
+
process.env.LANG ?? null,
|
|
103
|
+
process.env.LC_ALL ?? null,
|
|
104
|
+
];
|
|
105
|
+
for (const candidate of candidates) {
|
|
106
|
+
const mapped = localeToVoiceLanguage(candidate);
|
|
107
|
+
if (mapped)
|
|
108
|
+
return mapped;
|
|
109
|
+
}
|
|
110
|
+
return "en";
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Walk up from `start` looking for a directory that contains
|
|
114
|
+
* `bin/aitne.mjs`. Returns the resolved path to the bin script, or
|
|
115
|
+
* `null` if no ancestor matches before reaching the filesystem root.
|
|
116
|
+
*
|
|
117
|
+
* Used by `triggerSelfRestart` so the restart works regardless of the
|
|
118
|
+
* daemon's launch cwd — the bin script lives at `<package-root>/bin/
|
|
119
|
+
* aitne.mjs` whether the package was installed via npm into a global
|
|
120
|
+
* prefix, into a project's node_modules, or run from the source repo.
|
|
121
|
+
*
|
|
122
|
+
* Bounded at AITNE_BIN_SEARCH_MAX_DEPTH iterations as a defensive guard
|
|
123
|
+
* against pathological inputs; the deepest realistic distance is
|
|
124
|
+
* `packages/daemon/dist/api/routes` → package root, which is 5.
|
|
125
|
+
*/
|
|
126
|
+
const AITNE_BIN_SEARCH_MAX_DEPTH = 10;
|
|
127
|
+
function findAitneBin(start) {
|
|
128
|
+
let dir = start;
|
|
129
|
+
for (let i = 0; i < AITNE_BIN_SEARCH_MAX_DEPTH; i += 1) {
|
|
130
|
+
const candidate = join(dir, "bin", "aitne.mjs");
|
|
131
|
+
if (existsSync(candidate))
|
|
132
|
+
return candidate;
|
|
133
|
+
const parent = dirname(dir);
|
|
134
|
+
if (parent === dir)
|
|
135
|
+
return null;
|
|
136
|
+
dir = parent;
|
|
137
|
+
}
|
|
138
|
+
return null;
|
|
139
|
+
}
|
|
31
140
|
/**
|
|
32
141
|
* Spawn a detached `aitne restart` so the daemon picks up the new
|
|
33
142
|
* `voiceTranscriptionEnabled` flag. The detached child SIGTERMs the
|
|
34
143
|
* current daemon as part of its `cmdStop`, then starts a fresh one;
|
|
35
144
|
* we do NOT exit ourselves because the child needs us alive long enough
|
|
36
145
|
* to find our PID file.
|
|
146
|
+
*
|
|
147
|
+
* The bin script is resolved by walking up from this module's own URL,
|
|
148
|
+
* not from `process.cwd()`. The previous cwd-based lookup only worked
|
|
149
|
+
* when the daemon was launched via the `aitne` CLI (which chdirs to the
|
|
150
|
+
* package root); a direct `node packages/daemon/dist/index.js` would
|
|
151
|
+
* silently fail to restart.
|
|
37
152
|
*/
|
|
38
153
|
function triggerSelfRestart() {
|
|
39
154
|
try {
|
|
40
|
-
const
|
|
155
|
+
const moduleDir = dirname(fileURLToPath(import.meta.url));
|
|
156
|
+
const aitneBin = findAitneBin(moduleDir) ?? findAitneBin(resolve(process.cwd()));
|
|
157
|
+
if (!aitneBin) {
|
|
158
|
+
logger.error({ moduleDir, cwd: process.cwd() }, "could not locate aitne bin for restart after voice install");
|
|
159
|
+
return;
|
|
160
|
+
}
|
|
41
161
|
const child = spawn(process.execPath, [aitneBin, "restart", "--no-open"], {
|
|
42
162
|
detached: true,
|
|
43
163
|
stdio: "ignore",
|
|
@@ -47,28 +167,65 @@ function triggerSelfRestart() {
|
|
|
47
167
|
env: { ...process.env },
|
|
48
168
|
});
|
|
49
169
|
child.unref();
|
|
50
|
-
logger.info({ pid: child.pid }, "spawned aitne restart for voice install");
|
|
170
|
+
logger.info({ pid: child.pid, aitneBin }, "spawned aitne restart for voice install");
|
|
51
171
|
}
|
|
52
172
|
catch (err) {
|
|
53
173
|
logger.error({ err }, "failed to spawn aitne restart after voice install");
|
|
54
174
|
}
|
|
55
175
|
}
|
|
176
|
+
const voiceInstallBodySchema = z
|
|
177
|
+
.object({
|
|
178
|
+
/**
|
|
179
|
+
* Whisper language code persisted as `voiceTranscriptionPrimaryLanguage`.
|
|
180
|
+
* Used as the fallback target when post-install auto-detect produces a
|
|
181
|
+
* placeholder hallucination. Optional — when omitted, an existing
|
|
182
|
+
* setting is preserved; on a fresh install with no existing setting,
|
|
183
|
+
* the dashboard pre-selects the OS-locale suggestion.
|
|
184
|
+
*/
|
|
185
|
+
primaryLanguage: z
|
|
186
|
+
.string()
|
|
187
|
+
.refine(isSupportedVoiceLanguage, {
|
|
188
|
+
message: "primaryLanguage is not a Whisper-supported language code.",
|
|
189
|
+
})
|
|
190
|
+
.nullish(),
|
|
191
|
+
})
|
|
192
|
+
.strict();
|
|
56
193
|
export function createVoiceRoutes(deps, opts = {}) {
|
|
57
194
|
const app = new Hono();
|
|
58
195
|
const { db, config } = deps;
|
|
59
196
|
const loadPipeline = opts.loadPipeline ?? defaultLoadPipeline;
|
|
60
197
|
const triggerRestart = opts.triggerRestart ?? triggerSelfRestart;
|
|
198
|
+
const suggestPrimaryLanguage = opts.suggestPrimaryLanguage ?? suggestPrimaryLanguageFromLocale;
|
|
61
199
|
app.get("/voice/status", (c) => {
|
|
200
|
+
const modelDir = join(config.dataDir, "models", "whisper");
|
|
201
|
+
const model = resolveConfiguredModel();
|
|
202
|
+
const modelOnDisk = isModelOnDisk(modelDir, model);
|
|
62
203
|
return c.json({
|
|
63
204
|
enabled: config.voiceTranscriptionEnabled,
|
|
64
205
|
installing: state.status === "running",
|
|
206
|
+
// `installed` is the legacy "voice mode is set up at all" signal,
|
|
207
|
+
// preserved for backward compat with older dashboard builds.
|
|
65
208
|
installed: state.installed || config.voiceTranscriptionEnabled,
|
|
209
|
+
// `modelOnDisk` is the precise filesystem check — if the package
|
|
210
|
+
// default model has changed (an upgrade), this flips to false even
|
|
211
|
+
// while `enabled` and `installed` remain true. The dashboard reads
|
|
212
|
+
// this to surface the "Upgrade available" CTA.
|
|
213
|
+
modelOnDisk,
|
|
66
214
|
status: state.status,
|
|
67
215
|
error: state.error,
|
|
68
216
|
startedAt: state.startedAt,
|
|
69
217
|
finishedAt: state.finishedAt,
|
|
70
|
-
model
|
|
218
|
+
model,
|
|
71
219
|
progress: state.progress,
|
|
220
|
+
primaryLanguage: config.voiceTranscriptionPrimaryLanguage,
|
|
221
|
+
suggestedPrimaryLanguage: suggestPrimaryLanguage(),
|
|
222
|
+
// The picker UI imports VOICE_LANGUAGE_TOP / VOICE_LANGUAGE_FULL
|
|
223
|
+
// directly from @aitne/shared rather than receiving them in this
|
|
224
|
+
// payload — the lists are static, ~3KB, and were previously sent
|
|
225
|
+
// on every status poll (1.5s during install + restart-wait) for
|
|
226
|
+
// no UI gain. The daemon doesn't authoritatively pick which
|
|
227
|
+
// languages Whisper supports; it just validates the persisted
|
|
228
|
+
// value against the same shared registry.
|
|
72
229
|
});
|
|
73
230
|
});
|
|
74
231
|
app.post("/voice/install", async (c) => {
|
|
@@ -78,8 +235,34 @@ export function createVoiceRoutes(deps, opts = {}) {
|
|
|
78
235
|
startedAt: state.startedAt,
|
|
79
236
|
}, 202);
|
|
80
237
|
}
|
|
81
|
-
|
|
82
|
-
|
|
238
|
+
const rawBody = await c.req.json().catch(() => ({}));
|
|
239
|
+
const parsedBody = voiceInstallBodySchema.safeParse(rawBody);
|
|
240
|
+
if (!parsedBody.success) {
|
|
241
|
+
return c.json({
|
|
242
|
+
status: "error",
|
|
243
|
+
error: "Invalid request body",
|
|
244
|
+
issues: parsedBody.error.issues,
|
|
245
|
+
}, 400);
|
|
246
|
+
}
|
|
247
|
+
const requestedPrimary = parsedBody.data.primaryLanguage ?? null;
|
|
248
|
+
const settings = createSettingsStore(db);
|
|
249
|
+
// Persist the primary language up front (before the long-running
|
|
250
|
+
// download) so the dashboard can read it back via /voice/status while
|
|
251
|
+
// the install is in flight. Null in the body preserves any existing
|
|
252
|
+
// setting; an explicit non-null value overwrites.
|
|
253
|
+
if (requestedPrimary !== null) {
|
|
254
|
+
settings.set("voiceTranscriptionPrimaryLanguage", requestedPrimary);
|
|
255
|
+
config.voiceTranscriptionPrimaryLanguage = requestedPrimary;
|
|
256
|
+
}
|
|
257
|
+
const model = resolveConfiguredModel();
|
|
258
|
+
const modelDir = join(config.dataDir, "models", "whisper");
|
|
259
|
+
if (config.voiceTranscriptionEnabled
|
|
260
|
+
&& state.status !== "error"
|
|
261
|
+
&& isModelOnDisk(modelDir, model)) {
|
|
262
|
+
// Already enabled in a prior boot AND the configured model is on
|
|
263
|
+
// disk; nothing to download. (If the model is NOT on disk — e.g.
|
|
264
|
+
// a package upgrade switched the default — we still fall through
|
|
265
|
+
// to the install path below so the new weights land.)
|
|
83
266
|
return c.json({ status: "ready", alreadyEnabled: true });
|
|
84
267
|
}
|
|
85
268
|
state = {
|
|
@@ -97,9 +280,6 @@ export function createVoiceRoutes(deps, opts = {}) {
|
|
|
97
280
|
filesDownloaded: 0,
|
|
98
281
|
},
|
|
99
282
|
};
|
|
100
|
-
const modelDir = join(config.dataDir, "models", "whisper");
|
|
101
|
-
const model = process.env.PA_VOICE_TRANSCRIPTION_MODEL
|
|
102
|
-
?? "Xenova/whisper-small";
|
|
103
283
|
// The transcriber constructor mkdirs this dir, but only when the flag is
|
|
104
284
|
// already on at boot — at install time the flag is still false, so create
|
|
105
285
|
// the dir explicitly here. Without it, transformers.js's FileCache.put
|
|
@@ -189,7 +369,6 @@ export function createVoiceRoutes(deps, opts = {}) {
|
|
|
189
369
|
// resolved end-to-end. A successful return means the next boot can
|
|
190
370
|
// load from cache without network.
|
|
191
371
|
await loadPipeline({ model, modelDir, onProgress });
|
|
192
|
-
const settings = createSettingsStore(db);
|
|
193
372
|
settings.set("voiceTranscriptionEnabled", true);
|
|
194
373
|
config.voiceTranscriptionEnabled = true;
|
|
195
374
|
state = {
|
|
@@ -227,6 +406,68 @@ export function createVoiceRoutes(deps, opts = {}) {
|
|
|
227
406
|
})();
|
|
228
407
|
return c.json({ status: "running", startedAt: state.startedAt }, 202);
|
|
229
408
|
});
|
|
409
|
+
/**
|
|
410
|
+
* Remove the on-disk Whisper model so the operator can re-install from
|
|
411
|
+
* scratch. Used after a half-failed download has poisoned the in-memory
|
|
412
|
+
* `state.error` and left the dashboard's "Upgrade available" prompt
|
|
413
|
+
* stuck. Both the flat (`<owner>/<name>/`) and hub
|
|
414
|
+
* (`hub/models--<owner>--<name>/`) layouts are removed because
|
|
415
|
+
* transformers.js may have written into either depending on which
|
|
416
|
+
* lookup path resolved first. `voiceTranscriptionEnabled` is preserved
|
|
417
|
+
* so the dashboard's next /voice/status poll surfaces "Upgrade & install"
|
|
418
|
+
* (modelOnDisk=false) rather than reverting to the disabled state. The
|
|
419
|
+
* route refuses while a download is in flight to avoid pulling the
|
|
420
|
+
* weights out from under the install pipeline.
|
|
421
|
+
*/
|
|
422
|
+
app.delete("/voice/model", async (c) => {
|
|
423
|
+
if (state.status === "running") {
|
|
424
|
+
return c.json({
|
|
425
|
+
status: "error",
|
|
426
|
+
error: "Install in progress; cannot delete the model right now.",
|
|
427
|
+
}, 409);
|
|
428
|
+
}
|
|
429
|
+
const model = resolveConfiguredModel();
|
|
430
|
+
const modelDir = join(config.dataDir, "models", "whisper");
|
|
431
|
+
const [owner, name] = model.split("/");
|
|
432
|
+
if (!owner || !name) {
|
|
433
|
+
return c.json({ status: "error", error: `Invalid configured model id: "${model}"` }, 400);
|
|
434
|
+
}
|
|
435
|
+
const candidates = [
|
|
436
|
+
join(modelDir, owner, name),
|
|
437
|
+
join(modelDir, "hub", `models--${owner}--${name}`),
|
|
438
|
+
];
|
|
439
|
+
const removed = [];
|
|
440
|
+
const errors = [];
|
|
441
|
+
for (const dir of candidates) {
|
|
442
|
+
const existedBefore = existsSync(dir);
|
|
443
|
+
try {
|
|
444
|
+
await rm(dir, { recursive: true, force: true });
|
|
445
|
+
if (existedBefore)
|
|
446
|
+
removed.push(dir);
|
|
447
|
+
}
|
|
448
|
+
catch (err) {
|
|
449
|
+
errors.push({ dir, error: toSafeErrorMessage(err) });
|
|
450
|
+
logger.warn({ err, dir }, "voice model dir removal failed");
|
|
451
|
+
}
|
|
452
|
+
}
|
|
453
|
+
// Reset in-memory install state so the dashboard's stale error banner
|
|
454
|
+
// clears and a subsequent /voice/install runs against a fresh slate.
|
|
455
|
+
// We deliberately leave `installed` at false because nothing is on
|
|
456
|
+
// disk anymore — the next install round-trip flips it back to true.
|
|
457
|
+
state = {
|
|
458
|
+
status: "idle",
|
|
459
|
+
startedAt: null,
|
|
460
|
+
finishedAt: null,
|
|
461
|
+
error: null,
|
|
462
|
+
installed: false,
|
|
463
|
+
progress: null,
|
|
464
|
+
};
|
|
465
|
+
logger.info({ model, removed, errors }, "voice model deleted");
|
|
466
|
+
if (errors.length > 0 && removed.length === 0) {
|
|
467
|
+
return c.json({ status: "error", model, removed, errors }, 500);
|
|
468
|
+
}
|
|
469
|
+
return c.json({ status: "deleted", model, removed, errors });
|
|
470
|
+
});
|
|
230
471
|
return app;
|
|
231
472
|
}
|
|
232
473
|
//# sourceMappingURL=voice.js.map
|