@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.
@@ -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,CAszCnE"}
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
- if (parsed && typeof parsed === "object" && !Array.isArray(parsed)) {
1289
- return parsed;
1290
- }
1291
- return null;
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":"AAGA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AAM/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;AA2BD,MAAM,WAAW,kBAAkB;IACjC,0FAA0F;IAC1F,YAAY,CAAC,EAAE,OAAO,mBAAmB,CAAC;IAC1C,oFAAoF;IACpF,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;CAC7B;AAED,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,eAAe,EACrB,IAAI,GAAE,kBAAuB,GAC5B,IAAI,CA6LN"}
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"}
@@ -1,9 +1,14 @@
1
1
  import { spawn } from "node:child_process";
2
- import { mkdirSync } from "node:fs";
3
- import { join } from "node:path";
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 aitneBin = join(process.cwd(), "bin", "aitne.mjs");
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: process.env.PA_VOICE_TRANSCRIPTION_MODEL ?? "Xenova/whisper-small",
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
- if (config.voiceTranscriptionEnabled && state.status !== "error") {
82
- // Already enabled in a prior boot; nothing to do.
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