@seawork/server 1.0.15 → 1.0.16

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.
Files changed (35) hide show
  1. package/dist/server/server/agent/providers/claude-agent.d.ts +16 -0
  2. package/dist/server/server/agent/providers/claude-agent.d.ts.map +1 -1
  3. package/dist/server/server/agent/providers/claude-agent.js +36 -23
  4. package/dist/server/server/agent/providers/claude-agent.js.map +1 -1
  5. package/dist/server/server/agent/providers/seawork-models.d.ts.map +1 -1
  6. package/dist/server/server/agent/providers/seawork-models.js +47 -9
  7. package/dist/server/server/agent/providers/seawork-models.js.map +1 -1
  8. package/dist/server/server/daemon-config-store.d.ts +1 -0
  9. package/dist/server/server/daemon-config-store.d.ts.map +1 -1
  10. package/dist/server/server/daemon-config-store.js.map +1 -1
  11. package/dist/server/server/dictation/dictation-stream-manager.d.ts +9 -0
  12. package/dist/server/server/dictation/dictation-stream-manager.d.ts.map +1 -1
  13. package/dist/server/server/dictation/dictation-stream-manager.js +21 -1
  14. package/dist/server/server/dictation/dictation-stream-manager.js.map +1 -1
  15. package/dist/server/server/persisted-config.d.ts +145 -39
  16. package/dist/server/server/persisted-config.d.ts.map +1 -1
  17. package/dist/server/server/persisted-config.js +113 -13
  18. package/dist/server/server/persisted-config.js.map +1 -1
  19. package/dist/server/server/session.js +1 -1
  20. package/dist/server/server/session.js.map +1 -1
  21. package/dist/server/server/speech/providers/openai/config.d.ts +6 -0
  22. package/dist/server/server/speech/providers/openai/config.d.ts.map +1 -1
  23. package/dist/server/server/speech/providers/openai/config.js +92 -22
  24. package/dist/server/server/speech/providers/openai/config.js.map +1 -1
  25. package/dist/server/server/speech/providers/openai/runtime.d.ts.map +1 -1
  26. package/dist/server/server/speech/providers/openai/runtime.js +43 -12
  27. package/dist/server/server/speech/providers/openai/runtime.js.map +1 -1
  28. package/dist/server/server/speech/providers/openai/stt.d.ts +1 -0
  29. package/dist/server/server/speech/providers/openai/stt.d.ts.map +1 -1
  30. package/dist/server/server/speech/providers/openai/stt.js +2 -1
  31. package/dist/server/server/speech/providers/openai/stt.js.map +1 -1
  32. package/dist/server/server/workspace-registry-model.d.ts.map +1 -1
  33. package/dist/server/server/workspace-registry-model.js +21 -48
  34. package/dist/server/server/workspace-registry-model.js.map +1 -1
  35. package/package.json +3 -3
@@ -1,4 +1,38 @@
1
1
  import { z } from "zod";
2
+ declare const LocalAgentModelSchema: z.ZodObject<{
3
+ id: z.ZodString;
4
+ label: z.ZodString;
5
+ description: z.ZodOptional<z.ZodString>;
6
+ isDefault: z.ZodOptional<z.ZodBoolean>;
7
+ }, "strict", z.ZodTypeAny, {
8
+ id: string;
9
+ label: string;
10
+ description?: string | undefined;
11
+ isDefault?: boolean | undefined;
12
+ }, {
13
+ id: string;
14
+ label: string;
15
+ description?: string | undefined;
16
+ isDefault?: boolean | undefined;
17
+ }>;
18
+ export type LocalAgentModel = z.infer<typeof LocalAgentModelSchema>;
19
+ export declare const LocalAgentModelsSchema: z.ZodRecord<z.ZodString, z.ZodArray<z.ZodObject<{
20
+ id: z.ZodString;
21
+ label: z.ZodString;
22
+ description: z.ZodOptional<z.ZodString>;
23
+ isDefault: z.ZodOptional<z.ZodBoolean>;
24
+ }, "strict", z.ZodTypeAny, {
25
+ id: string;
26
+ label: string;
27
+ description?: string | undefined;
28
+ isDefault?: boolean | undefined;
29
+ }, {
30
+ id: string;
31
+ label: string;
32
+ description?: string | undefined;
33
+ isDefault?: boolean | undefined;
34
+ }>, "many">>;
35
+ export type LocalAgentModelsConfig = z.infer<typeof LocalAgentModelsSchema>;
2
36
  export declare const PersistedConfigSchema: z.ZodObject<{
3
37
  version: z.ZodOptional<z.ZodLiteral<1>>;
4
38
  daemon: z.ZodOptional<z.ZodObject<{
@@ -75,10 +109,13 @@ export declare const PersistedConfigSchema: z.ZodObject<{
75
109
  providers: z.ZodOptional<z.ZodObject<{
76
110
  openai: z.ZodOptional<z.ZodObject<{
77
111
  apiKey: z.ZodOptional<z.ZodString>;
112
+ baseURL: z.ZodOptional<z.ZodString>;
78
113
  }, "strict", z.ZodTypeAny, {
79
114
  apiKey?: string | undefined;
115
+ baseURL?: string | undefined;
80
116
  }, {
81
117
  apiKey?: string | undefined;
118
+ baseURL?: string | undefined;
82
119
  }>>;
83
120
  local: z.ZodOptional<z.ZodObject<{
84
121
  modelsDir: z.ZodOptional<z.ZodString>;
@@ -93,6 +130,7 @@ export declare const PersistedConfigSchema: z.ZodObject<{
93
130
  } | undefined;
94
131
  openai?: {
95
132
  apiKey?: string | undefined;
133
+ baseURL?: string | undefined;
96
134
  } | undefined;
97
135
  }, {
98
136
  local?: {
@@ -100,6 +138,7 @@ export declare const PersistedConfigSchema: z.ZodObject<{
100
138
  } | undefined;
101
139
  openai?: {
102
140
  apiKey?: string | undefined;
141
+ baseURL?: string | undefined;
103
142
  } | undefined;
104
143
  }>>;
105
144
  agents: z.ZodOptional<z.ZodObject<{
@@ -153,7 +192,9 @@ export declare const PersistedConfigSchema: z.ZodObject<{
153
192
  } | undefined;
154
193
  env?: Record<string, string> | undefined;
155
194
  }>>>;
195
+ models: z.ZodOptional<z.ZodUnknown>;
156
196
  }, "strict", z.ZodTypeAny, {
197
+ models?: unknown;
157
198
  providers?: Record<string, {
158
199
  command?: {
159
200
  mode: "default";
@@ -167,6 +208,7 @@ export declare const PersistedConfigSchema: z.ZodObject<{
167
208
  env?: Record<string, string> | undefined;
168
209
  }> | undefined;
169
210
  }, {
211
+ models?: unknown;
170
212
  providers?: Record<string, {
171
213
  command?: {
172
214
  mode: "default";
@@ -187,25 +229,48 @@ export declare const PersistedConfigSchema: z.ZodObject<{
187
229
  provider: z.ZodOptional<z.ZodPipeline<z.ZodString, z.ZodEnum<["openai", "local"]>>>;
188
230
  model: z.ZodOptional<z.ZodString>;
189
231
  confidenceThreshold: z.ZodOptional<z.ZodNumber>;
232
+ language: z.ZodOptional<z.ZodString>;
190
233
  }, "strict", z.ZodTypeAny, {
234
+ language?: string | undefined;
191
235
  provider?: "local" | "openai" | undefined;
192
236
  model?: string | undefined;
193
237
  confidenceThreshold?: number | undefined;
194
238
  }, {
239
+ language?: string | undefined;
195
240
  provider?: string | undefined;
196
241
  model?: string | undefined;
197
242
  confidenceThreshold?: number | undefined;
198
243
  }>>;
244
+ openai: z.ZodOptional<z.ZodObject<{
245
+ apiKey: z.ZodOptional<z.ZodString>;
246
+ baseURL: z.ZodOptional<z.ZodString>;
247
+ }, "strict", z.ZodTypeAny, {
248
+ apiKey?: string | undefined;
249
+ baseURL?: string | undefined;
250
+ }, {
251
+ apiKey?: string | undefined;
252
+ baseURL?: string | undefined;
253
+ }>>;
199
254
  }, "strict", z.ZodTypeAny, {
200
255
  enabled?: boolean | undefined;
256
+ openai?: {
257
+ apiKey?: string | undefined;
258
+ baseURL?: string | undefined;
259
+ } | undefined;
201
260
  stt?: {
261
+ language?: string | undefined;
202
262
  provider?: "local" | "openai" | undefined;
203
263
  model?: string | undefined;
204
264
  confidenceThreshold?: number | undefined;
205
265
  } | undefined;
206
266
  }, {
207
267
  enabled?: boolean | undefined;
268
+ openai?: {
269
+ apiKey?: string | undefined;
270
+ baseURL?: string | undefined;
271
+ } | undefined;
208
272
  stt?: {
273
+ language?: string | undefined;
209
274
  provider?: string | undefined;
210
275
  model?: string | undefined;
211
276
  confidenceThreshold?: number | undefined;
@@ -261,13 +326,6 @@ export declare const PersistedConfigSchema: z.ZodObject<{
261
326
  }>>;
262
327
  }, "strict", z.ZodTypeAny, {
263
328
  enabled?: boolean | undefined;
264
- tts?: {
265
- provider?: "local" | "openai" | undefined;
266
- model?: string | undefined;
267
- voice?: "alloy" | "echo" | "fable" | "onyx" | "nova" | "shimmer" | undefined;
268
- speakerId?: number | undefined;
269
- speed?: number | undefined;
270
- } | undefined;
271
329
  stt?: {
272
330
  provider?: "local" | "openai" | undefined;
273
331
  model?: string | undefined;
@@ -279,15 +337,15 @@ export declare const PersistedConfigSchema: z.ZodObject<{
279
337
  turnDetection?: {
280
338
  provider?: "local" | "openai" | undefined;
281
339
  } | undefined;
282
- }, {
283
- enabled?: boolean | undefined;
284
340
  tts?: {
285
- provider?: string | undefined;
341
+ provider?: "local" | "openai" | undefined;
286
342
  model?: string | undefined;
287
343
  voice?: "alloy" | "echo" | "fable" | "onyx" | "nova" | "shimmer" | undefined;
288
344
  speakerId?: number | undefined;
289
345
  speed?: number | undefined;
290
346
  } | undefined;
347
+ }, {
348
+ enabled?: boolean | undefined;
291
349
  stt?: {
292
350
  provider?: string | undefined;
293
351
  model?: string | undefined;
@@ -299,11 +357,23 @@ export declare const PersistedConfigSchema: z.ZodObject<{
299
357
  turnDetection?: {
300
358
  provider?: string | undefined;
301
359
  } | undefined;
360
+ tts?: {
361
+ provider?: string | undefined;
362
+ model?: string | undefined;
363
+ voice?: "alloy" | "echo" | "fable" | "onyx" | "nova" | "shimmer" | undefined;
364
+ speakerId?: number | undefined;
365
+ speed?: number | undefined;
366
+ } | undefined;
302
367
  }>>;
303
368
  }, "strict", z.ZodTypeAny, {
304
369
  dictation?: {
305
370
  enabled?: boolean | undefined;
371
+ openai?: {
372
+ apiKey?: string | undefined;
373
+ baseURL?: string | undefined;
374
+ } | undefined;
306
375
  stt?: {
376
+ language?: string | undefined;
307
377
  provider?: "local" | "openai" | undefined;
308
378
  model?: string | undefined;
309
379
  confidenceThreshold?: number | undefined;
@@ -311,13 +381,6 @@ export declare const PersistedConfigSchema: z.ZodObject<{
311
381
  } | undefined;
312
382
  voiceMode?: {
313
383
  enabled?: boolean | undefined;
314
- tts?: {
315
- provider?: "local" | "openai" | undefined;
316
- model?: string | undefined;
317
- voice?: "alloy" | "echo" | "fable" | "onyx" | "nova" | "shimmer" | undefined;
318
- speakerId?: number | undefined;
319
- speed?: number | undefined;
320
- } | undefined;
321
384
  stt?: {
322
385
  provider?: "local" | "openai" | undefined;
323
386
  model?: string | undefined;
@@ -329,11 +392,23 @@ export declare const PersistedConfigSchema: z.ZodObject<{
329
392
  turnDetection?: {
330
393
  provider?: "local" | "openai" | undefined;
331
394
  } | undefined;
395
+ tts?: {
396
+ provider?: "local" | "openai" | undefined;
397
+ model?: string | undefined;
398
+ voice?: "alloy" | "echo" | "fable" | "onyx" | "nova" | "shimmer" | undefined;
399
+ speakerId?: number | undefined;
400
+ speed?: number | undefined;
401
+ } | undefined;
332
402
  } | undefined;
333
403
  }, {
334
404
  dictation?: {
335
405
  enabled?: boolean | undefined;
406
+ openai?: {
407
+ apiKey?: string | undefined;
408
+ baseURL?: string | undefined;
409
+ } | undefined;
336
410
  stt?: {
411
+ language?: string | undefined;
337
412
  provider?: string | undefined;
338
413
  model?: string | undefined;
339
414
  confidenceThreshold?: number | undefined;
@@ -341,13 +416,6 @@ export declare const PersistedConfigSchema: z.ZodObject<{
341
416
  } | undefined;
342
417
  voiceMode?: {
343
418
  enabled?: boolean | undefined;
344
- tts?: {
345
- provider?: string | undefined;
346
- model?: string | undefined;
347
- voice?: "alloy" | "echo" | "fable" | "onyx" | "nova" | "shimmer" | undefined;
348
- speakerId?: number | undefined;
349
- speed?: number | undefined;
350
- } | undefined;
351
419
  stt?: {
352
420
  provider?: string | undefined;
353
421
  model?: string | undefined;
@@ -359,6 +427,13 @@ export declare const PersistedConfigSchema: z.ZodObject<{
359
427
  turnDetection?: {
360
428
  provider?: string | undefined;
361
429
  } | undefined;
430
+ tts?: {
431
+ provider?: string | undefined;
432
+ model?: string | undefined;
433
+ voice?: "alloy" | "echo" | "fable" | "onyx" | "nova" | "shimmer" | undefined;
434
+ speakerId?: number | undefined;
435
+ speed?: number | undefined;
436
+ } | undefined;
362
437
  } | undefined;
363
438
  }>>;
364
439
  log: z.ZodOptional<z.ZodObject<{
@@ -437,7 +512,12 @@ export declare const PersistedConfigSchema: z.ZodObject<{
437
512
  features?: {
438
513
  dictation?: {
439
514
  enabled?: boolean | undefined;
515
+ openai?: {
516
+ apiKey?: string | undefined;
517
+ baseURL?: string | undefined;
518
+ } | undefined;
440
519
  stt?: {
520
+ language?: string | undefined;
441
521
  provider?: "local" | "openai" | undefined;
442
522
  model?: string | undefined;
443
523
  confidenceThreshold?: number | undefined;
@@ -445,13 +525,6 @@ export declare const PersistedConfigSchema: z.ZodObject<{
445
525
  } | undefined;
446
526
  voiceMode?: {
447
527
  enabled?: boolean | undefined;
448
- tts?: {
449
- provider?: "local" | "openai" | undefined;
450
- model?: string | undefined;
451
- voice?: "alloy" | "echo" | "fable" | "onyx" | "nova" | "shimmer" | undefined;
452
- speakerId?: number | undefined;
453
- speed?: number | undefined;
454
- } | undefined;
455
528
  stt?: {
456
529
  provider?: "local" | "openai" | undefined;
457
530
  model?: string | undefined;
@@ -463,9 +536,17 @@ export declare const PersistedConfigSchema: z.ZodObject<{
463
536
  turnDetection?: {
464
537
  provider?: "local" | "openai" | undefined;
465
538
  } | undefined;
539
+ tts?: {
540
+ provider?: "local" | "openai" | undefined;
541
+ model?: string | undefined;
542
+ voice?: "alloy" | "echo" | "fable" | "onyx" | "nova" | "shimmer" | undefined;
543
+ speakerId?: number | undefined;
544
+ speed?: number | undefined;
545
+ } | undefined;
466
546
  } | undefined;
467
547
  } | undefined;
468
548
  agents?: {
549
+ models?: unknown;
469
550
  providers?: Record<string, {
470
551
  command?: {
471
552
  mode: "default";
@@ -485,6 +566,7 @@ export declare const PersistedConfigSchema: z.ZodObject<{
485
566
  } | undefined;
486
567
  openai?: {
487
568
  apiKey?: string | undefined;
569
+ baseURL?: string | undefined;
488
570
  } | undefined;
489
571
  } | undefined;
490
572
  version?: 1 | undefined;
@@ -527,7 +609,12 @@ export declare const PersistedConfigSchema: z.ZodObject<{
527
609
  features?: {
528
610
  dictation?: {
529
611
  enabled?: boolean | undefined;
612
+ openai?: {
613
+ apiKey?: string | undefined;
614
+ baseURL?: string | undefined;
615
+ } | undefined;
530
616
  stt?: {
617
+ language?: string | undefined;
531
618
  provider?: string | undefined;
532
619
  model?: string | undefined;
533
620
  confidenceThreshold?: number | undefined;
@@ -535,13 +622,6 @@ export declare const PersistedConfigSchema: z.ZodObject<{
535
622
  } | undefined;
536
623
  voiceMode?: {
537
624
  enabled?: boolean | undefined;
538
- tts?: {
539
- provider?: string | undefined;
540
- model?: string | undefined;
541
- voice?: "alloy" | "echo" | "fable" | "onyx" | "nova" | "shimmer" | undefined;
542
- speakerId?: number | undefined;
543
- speed?: number | undefined;
544
- } | undefined;
545
625
  stt?: {
546
626
  provider?: string | undefined;
547
627
  model?: string | undefined;
@@ -553,9 +633,17 @@ export declare const PersistedConfigSchema: z.ZodObject<{
553
633
  turnDetection?: {
554
634
  provider?: string | undefined;
555
635
  } | undefined;
636
+ tts?: {
637
+ provider?: string | undefined;
638
+ model?: string | undefined;
639
+ voice?: "alloy" | "echo" | "fable" | "onyx" | "nova" | "shimmer" | undefined;
640
+ speakerId?: number | undefined;
641
+ speed?: number | undefined;
642
+ } | undefined;
556
643
  } | undefined;
557
644
  } | undefined;
558
645
  agents?: {
646
+ models?: unknown;
559
647
  providers?: Record<string, {
560
648
  command?: {
561
649
  mode: "default";
@@ -575,6 +663,7 @@ export declare const PersistedConfigSchema: z.ZodObject<{
575
663
  } | undefined;
576
664
  openai?: {
577
665
  apiKey?: string | undefined;
666
+ baseURL?: string | undefined;
578
667
  } | undefined;
579
668
  } | undefined;
580
669
  version?: 1 | undefined;
@@ -614,12 +703,29 @@ export declare const PersistedConfigSchema: z.ZodObject<{
614
703
  baseUrl?: string | undefined;
615
704
  } | undefined;
616
705
  }>;
617
- export type PersistedConfig = z.infer<typeof PersistedConfigSchema>;
706
+ type PersistedConfigRaw = z.infer<typeof PersistedConfigSchema>;
707
+ export type PersistedConfig = Omit<PersistedConfigRaw, "agents"> & {
708
+ agents?: {
709
+ providers?: NonNullable<PersistedConfigRaw["agents"]>["providers"];
710
+ models?: LocalAgentModelsConfig;
711
+ };
712
+ };
618
713
  type LoggerLike = {
619
714
  child(bindings: Record<string, unknown>): LoggerLike;
620
715
  info(...args: any[]): void;
716
+ warn(...args: any[]): void;
621
717
  };
622
718
  export declare function loadPersistedConfig(seaworkHome: string, logger?: LoggerLike): PersistedConfig;
719
+ /**
720
+ * Best-effort, side-effect-free read of the persisted config for consumers
721
+ * that should never crash on bad disk state and never write to disk
722
+ * (provider model overrides, dictation language hint, …). Returns null if
723
+ * the file is missing or fails to load. Going through this single helper
724
+ * keeps the “strict schema + silent fallback” contract in one place — a
725
+ * hand-rolled `JSON.parse(config.json)` would otherwise drift (e.g. accept
726
+ * entries the strict schema would reject).
727
+ */
728
+ export declare function tryLoadPersistedConfig(seaworkHome: string): PersistedConfig | null;
623
729
  export declare function savePersistedConfig(seaworkHome: string, config: PersistedConfig, logger?: LoggerLike): void;
624
730
  export {};
625
731
  //# sourceMappingURL=persisted-config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"persisted-config.d.ts","sourceRoot":"","sources":["../../../src/server/persisted-config.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAiHxB,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2DvB,CAAC;AAEZ,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAmBpE,KAAK,UAAU,GAAG;IAChB,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,UAAU,CAAC;IACrD,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;CAC5B,CAAC;AAyCF,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,UAAU,GAAG,eAAe,CA0C7F;AAED,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,eAAe,EACvB,MAAM,CAAC,EAAE,UAAU,GAClB,IAAI,CAmBN"}
1
+ {"version":3,"file":"persisted-config.d.ts","sourceRoot":"","sources":["../../../src/server/persisted-config.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,QAAA,MAAM,qBAAqB;;;;;;;;;;;;;;;EAOhB,CAAC;AAEZ,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;YAAgE,CAAC;AAEpG,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AA+H5E,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+DvB,CAAC;AAEZ,KAAK,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAOhE,MAAM,MAAM,eAAe,GAAG,IAAI,CAAC,kBAAkB,EAAE,QAAQ,CAAC,GAAG;IACjE,MAAM,CAAC,EAAE;QACP,SAAS,CAAC,EAAE,WAAW,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;QACnE,MAAM,CAAC,EAAE,sBAAsB,CAAC;KACjC,CAAC;CACH,CAAC;AAqBF,KAAK,UAAU,GAAG;IAChB,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,UAAU,CAAC;IACrD,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAC3B,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;CAC5B,CAAC;AA2GF,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,UAAU,GAAG,eAAe,CAsB7F;AAED;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CAMlF;AAED,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,eAAe,EACvB,MAAM,CAAC,EAAE,UAAU,GAClB,IAAI,CA8BN"}
@@ -2,6 +2,16 @@ import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
2
2
  import path from "node:path";
3
3
  import { z } from "zod";
4
4
  import { AgentProviderRuntimeSettingsMapSchema } from "./agent/provider-launch-config.js";
5
+ import { AgentProviderSchema } from "./agent/provider-manifest.js";
6
+ const LocalAgentModelSchema = z
7
+ .object({
8
+ id: z.string().min(1),
9
+ label: z.string().min(1),
10
+ description: z.string().optional(),
11
+ isDefault: z.boolean().optional(),
12
+ })
13
+ .strict();
14
+ export const LocalAgentModelsSchema = z.record(AgentProviderSchema, z.array(LocalAgentModelSchema));
5
15
  const LogLevelSchema = z.enum(["trace", "debug", "info", "warn", "error", "fatal"]);
6
16
  const LogFormatSchema = z.enum(["pretty", "json"]);
7
17
  const LogConfigSchema = z
@@ -35,6 +45,7 @@ const LogConfigSchema = z
35
45
  const ProviderCredentialsSchema = z
36
46
  .object({
37
47
  apiKey: z.string().min(1).optional(),
48
+ baseURL: z.string().min(1).optional(),
38
49
  })
39
50
  .strict();
40
51
  const LocalSpeechProviderSchema = z
@@ -61,6 +72,21 @@ const FeatureDictationSchema = z
61
72
  provider: SpeechProviderIdSchema.optional(),
62
73
  model: z.string().min(1).optional(),
63
74
  confidenceThreshold: z.number().optional(),
75
+ // ISO-639-1 language hint forwarded to the STT provider (e.g. "zh", "en", "ja").
76
+ // Improves transcription accuracy by skipping language auto-detection.
77
+ language: z.string().min(1).optional(),
78
+ })
79
+ .strict()
80
+ .optional(),
81
+ // Dictation-only OpenAI override. Lets the user point dictation at an
82
+ // OpenAI-compatible endpoint (e.g. Groq) without affecting Voice Mode.
83
+ // Voice Mode credentials are resolved from env OPENAI_API_KEY first,
84
+ // then from the top-level providers.openai.apiKey as a fallback for
85
+ // self-hosted users; never from this dictation-scoped override.
86
+ openai: z
87
+ .object({
88
+ apiKey: z.string().min(1).optional(),
89
+ baseURL: z.string().min(1).optional(),
64
90
  })
65
91
  .strict()
66
92
  .optional(),
@@ -144,6 +170,10 @@ export const PersistedConfigSchema = z
144
170
  agents: z
145
171
  .object({
146
172
  providers: AgentProviderRuntimeSettingsMapSchema.optional(),
173
+ // `models` validated lazily in loadPersistedConfig so a malformed local
174
+ // override silently falls back to the gateway list instead of crashing
175
+ // daemon startup. See seawork-models.ts:loadLocalModelOverrides.
176
+ models: z.unknown().optional(),
147
177
  })
148
178
  .strict()
149
179
  .optional(),
@@ -158,6 +188,8 @@ export const PersistedConfigSchema = z
158
188
  })
159
189
  .strict();
160
190
  const CONFIG_FILENAME = "config.json";
191
+ // Defaults never include `agents.models`, so the `unknown` → typed mismatch
192
+ // between `PersistedConfigRaw` and `PersistedConfig` is safe to cast away.
161
193
  const DEFAULT_PERSISTED_CONFIG = PersistedConfigSchema.parse({
162
194
  version: 1,
163
195
  daemon: {
@@ -204,20 +236,17 @@ function stripDeprecatedLocalSpeechConfigFields(parsed) {
204
236
  root.providers = providersRecord;
205
237
  return root;
206
238
  }
207
- export function loadPersistedConfig(seaworkHome, logger) {
239
+ /**
240
+ * Pure read + validate of `~/.seawork/config.json`. Returns null if the file
241
+ * does not exist; throws on read errors, malformed JSON, or strict-schema
242
+ * violations. No disk side effects — callers that want to materialize a
243
+ * default file when missing should use `loadPersistedConfig`.
244
+ */
245
+ function readPersistedConfig(seaworkHome, logger) {
208
246
  const log = getLogger(logger);
209
247
  const configPath = getConfigPath(seaworkHome);
210
- if (!existsSync(configPath)) {
211
- try {
212
- mkdirSync(path.dirname(configPath), { recursive: true });
213
- writeFileSync(configPath, JSON.stringify(DEFAULT_PERSISTED_CONFIG, null, 2) + "\n");
214
- log?.info(`Initialized config file at ${configPath}`);
215
- }
216
- catch (err) {
217
- const message = err instanceof Error ? err.message : String(err);
218
- throw new Error(`[Config] Failed to initialize ${configPath}: ${message}`);
219
- }
220
- }
248
+ if (!existsSync(configPath))
249
+ return null;
221
250
  let raw;
222
251
  try {
223
252
  raw = readFileSync(configPath, "utf-8");
@@ -242,8 +271,69 @@ export function loadPersistedConfig(seaworkHome, logger) {
242
271
  .join("\n");
243
272
  throw new Error(`[Config] Invalid config in ${configPath}:\n${issues}`);
244
273
  }
274
+ const config = result.data;
275
+ // Lazily validate agents.models so a malformed user-supplied override gets
276
+ // dropped (with a warning) instead of crashing daemon startup. The strict
277
+ // top-level schema gives clear diagnostics for daemon-controlled fields,
278
+ // but local model lists are user-edited and must degrade gracefully.
279
+ const rawModels = config.agents?.models;
280
+ if (rawModels !== undefined) {
281
+ const modelsResult = LocalAgentModelsSchema.safeParse(rawModels);
282
+ if (modelsResult.success) {
283
+ config.agents = { ...config.agents, models: modelsResult.data };
284
+ }
285
+ else {
286
+ const issues = modelsResult.error.issues
287
+ .map((i) => ` - agents.models.${i.path.join(".")}: ${i.message}`)
288
+ .join("\n");
289
+ log?.warn(`Ignoring malformed agents.models in ${configPath}; falling back to gateway list:\n${issues}`);
290
+ if (config.agents) {
291
+ const { providers } = config.agents;
292
+ config.agents = providers !== undefined ? { providers } : undefined;
293
+ }
294
+ }
295
+ }
245
296
  log?.info(`Loaded from ${configPath}`);
246
- return result.data;
297
+ return config;
298
+ }
299
+ export function loadPersistedConfig(seaworkHome, logger) {
300
+ const log = getLogger(logger);
301
+ const configPath = getConfigPath(seaworkHome);
302
+ if (!existsSync(configPath)) {
303
+ try {
304
+ mkdirSync(path.dirname(configPath), { recursive: true });
305
+ writeFileSync(configPath, JSON.stringify(DEFAULT_PERSISTED_CONFIG, null, 2) + "\n");
306
+ log?.info(`Initialized config file at ${configPath}`);
307
+ }
308
+ catch (err) {
309
+ const message = err instanceof Error ? err.message : String(err);
310
+ throw new Error(`[Config] Failed to initialize ${configPath}: ${message}`);
311
+ }
312
+ }
313
+ // Initialize-if-missing above guarantees the file now exists, so the read
314
+ // path will return a non-null config.
315
+ const config = readPersistedConfig(seaworkHome, logger);
316
+ if (!config) {
317
+ throw new Error(`[Config] Expected ${configPath} to exist after initialization`);
318
+ }
319
+ return config;
320
+ }
321
+ /**
322
+ * Best-effort, side-effect-free read of the persisted config for consumers
323
+ * that should never crash on bad disk state and never write to disk
324
+ * (provider model overrides, dictation language hint, …). Returns null if
325
+ * the file is missing or fails to load. Going through this single helper
326
+ * keeps the “strict schema + silent fallback” contract in one place — a
327
+ * hand-rolled `JSON.parse(config.json)` would otherwise drift (e.g. accept
328
+ * entries the strict schema would reject).
329
+ */
330
+ export function tryLoadPersistedConfig(seaworkHome) {
331
+ try {
332
+ return readPersistedConfig(seaworkHome);
333
+ }
334
+ catch {
335
+ return null;
336
+ }
247
337
  }
248
338
  export function savePersistedConfig(seaworkHome, config, logger) {
249
339
  const log = getLogger(logger);
@@ -255,6 +345,16 @@ export function savePersistedConfig(seaworkHome, config, logger) {
255
345
  .join("\n");
256
346
  throw new Error(`[Config] Invalid config to save:\n${issues}`);
257
347
  }
348
+ if (result.data.agents?.models !== undefined) {
349
+ const modelsResult = LocalAgentModelsSchema.safeParse(result.data.agents.models);
350
+ if (!modelsResult.success) {
351
+ const issues = modelsResult.error.issues
352
+ .map((i) => ` - agents.models.${i.path.join(".")}: ${i.message}`)
353
+ .join("\n");
354
+ throw new Error(`[Config] Invalid agents.models to save:\n${issues}`);
355
+ }
356
+ result.data.agents = { ...result.data.agents, models: modelsResult.data };
357
+ }
258
358
  try {
259
359
  writeFileSync(configPath, JSON.stringify(result.data, null, 2) + "\n");
260
360
  log?.info(`Saved to ${configPath}`);
@@ -1 +1 @@
1
- {"version":3,"file":"persisted-config.js","sourceRoot":"","sources":["../../../src/server/persisted-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"persisted-config.js","sourceRoot":"","sources":["../../../src/server/persisted-config.ts"],"names":[],"mappings":"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"}
@@ -4754,7 +4754,7 @@ export class Session {
4754
4754
  }
4755
4755
  const archivedAt = new Date().toISOString();
4756
4756
  await this.archiveWorkspaceRecord(request.workspaceId, archivedAt);
4757
- await this.emitWorkspaceUpdateForCwd(existing.cwd);
4757
+ await this.emitWorkspaceUpdatesForWorkspaceIds([request.workspaceId]);
4758
4758
  this.emit({
4759
4759
  type: "archive_workspace_response",
4760
4760
  payload: {