speechflow 1.6.7 → 1.7.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.
Files changed (152) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/README.md +77 -52
  3. package/etc/secretlint.json +7 -0
  4. package/etc/speechflow.yaml +13 -4
  5. package/etc/stx.conf +3 -2
  6. package/package.json +8 -6
  7. package/speechflow-cli/dst/speechflow-main-api.js +9 -8
  8. package/speechflow-cli/dst/speechflow-main-api.js.map +1 -1
  9. package/speechflow-cli/dst/speechflow-main-graph.js +13 -14
  10. package/speechflow-cli/dst/speechflow-main-graph.js.map +1 -1
  11. package/speechflow-cli/dst/speechflow-main-status.js +38 -8
  12. package/speechflow-cli/dst/speechflow-main-status.js.map +1 -1
  13. package/speechflow-cli/dst/speechflow-node-a2a-compressor-wt.js +3 -0
  14. package/speechflow-cli/dst/speechflow-node-a2a-compressor-wt.js.map +1 -1
  15. package/speechflow-cli/dst/speechflow-node-a2a-compressor.js +4 -2
  16. package/speechflow-cli/dst/speechflow-node-a2a-compressor.js.map +1 -1
  17. package/speechflow-cli/dst/speechflow-node-a2a-expander-wt.js +1 -1
  18. package/speechflow-cli/dst/speechflow-node-a2a-expander.js +4 -2
  19. package/speechflow-cli/dst/speechflow-node-a2a-expander.js.map +1 -1
  20. package/speechflow-cli/dst/speechflow-node-a2a-ffmpeg.js +2 -2
  21. package/speechflow-cli/dst/speechflow-node-a2a-ffmpeg.js.map +1 -1
  22. package/speechflow-cli/dst/speechflow-node-a2a-filler.js +46 -17
  23. package/speechflow-cli/dst/speechflow-node-a2a-filler.js.map +1 -1
  24. package/speechflow-cli/dst/speechflow-node-a2a-gain.js +0 -5
  25. package/speechflow-cli/dst/speechflow-node-a2a-gain.js.map +1 -1
  26. package/speechflow-cli/dst/speechflow-node-a2a-gender.js +3 -4
  27. package/speechflow-cli/dst/speechflow-node-a2a-gender.js.map +1 -1
  28. package/speechflow-cli/dst/speechflow-node-a2a-mute.js +0 -5
  29. package/speechflow-cli/dst/speechflow-node-a2a-mute.js.map +1 -1
  30. package/speechflow-cli/dst/speechflow-node-a2a-pitch.js +1 -2
  31. package/speechflow-cli/dst/speechflow-node-a2a-pitch.js.map +1 -1
  32. package/speechflow-cli/dst/speechflow-node-a2a-rnnoise.js +0 -5
  33. package/speechflow-cli/dst/speechflow-node-a2a-rnnoise.js.map +1 -1
  34. package/speechflow-cli/dst/speechflow-node-a2a-speex.js +0 -5
  35. package/speechflow-cli/dst/speechflow-node-a2a-speex.js.map +1 -1
  36. package/speechflow-cli/dst/speechflow-node-a2a-wav.js +8 -2
  37. package/speechflow-cli/dst/speechflow-node-a2a-wav.js.map +1 -1
  38. package/speechflow-cli/dst/speechflow-node-a2t-amazon.d.ts +0 -1
  39. package/speechflow-cli/dst/speechflow-node-a2t-amazon.js +17 -19
  40. package/speechflow-cli/dst/speechflow-node-a2t-amazon.js.map +1 -1
  41. package/speechflow-cli/dst/speechflow-node-a2t-deepgram.d.ts +0 -1
  42. package/speechflow-cli/dst/speechflow-node-a2t-deepgram.js +30 -25
  43. package/speechflow-cli/dst/speechflow-node-a2t-deepgram.js.map +1 -1
  44. package/speechflow-cli/dst/speechflow-node-a2t-openai.js +79 -48
  45. package/speechflow-cli/dst/speechflow-node-a2t-openai.js.map +1 -1
  46. package/speechflow-cli/dst/speechflow-node-t2a-amazon.js +6 -11
  47. package/speechflow-cli/dst/speechflow-node-t2a-amazon.js.map +1 -1
  48. package/speechflow-cli/dst/speechflow-node-t2a-elevenlabs.js +45 -44
  49. package/speechflow-cli/dst/speechflow-node-t2a-elevenlabs.js.map +1 -1
  50. package/speechflow-cli/dst/speechflow-node-t2a-kokoro.d.ts +2 -0
  51. package/speechflow-cli/dst/speechflow-node-t2a-kokoro.js +19 -7
  52. package/speechflow-cli/dst/speechflow-node-t2a-kokoro.js.map +1 -1
  53. package/speechflow-cli/dst/speechflow-node-t2t-amazon.js +1 -2
  54. package/speechflow-cli/dst/speechflow-node-t2t-amazon.js.map +1 -1
  55. package/speechflow-cli/dst/speechflow-node-t2t-deepl.js +0 -1
  56. package/speechflow-cli/dst/speechflow-node-t2t-deepl.js.map +1 -1
  57. package/speechflow-cli/dst/speechflow-node-t2t-format.js +0 -1
  58. package/speechflow-cli/dst/speechflow-node-t2t-format.js.map +1 -1
  59. package/speechflow-cli/dst/speechflow-node-t2t-google.js +0 -1
  60. package/speechflow-cli/dst/speechflow-node-t2t-google.js.map +1 -1
  61. package/speechflow-cli/dst/speechflow-node-t2t-modify.js +0 -1
  62. package/speechflow-cli/dst/speechflow-node-t2t-modify.js.map +1 -1
  63. package/speechflow-cli/dst/speechflow-node-t2t-ollama.js +0 -1
  64. package/speechflow-cli/dst/speechflow-node-t2t-ollama.js.map +1 -1
  65. package/speechflow-cli/dst/speechflow-node-t2t-openai.js +0 -1
  66. package/speechflow-cli/dst/speechflow-node-t2t-openai.js.map +1 -1
  67. package/speechflow-cli/dst/speechflow-node-t2t-subtitle.js +173 -29
  68. package/speechflow-cli/dst/speechflow-node-t2t-subtitle.js.map +1 -1
  69. package/speechflow-cli/dst/speechflow-node-x2x-filter.d.ts +1 -0
  70. package/speechflow-cli/dst/speechflow-node-x2x-filter.js +10 -1
  71. package/speechflow-cli/dst/speechflow-node-x2x-filter.js.map +1 -1
  72. package/speechflow-cli/dst/speechflow-node-x2x-trace.js +0 -5
  73. package/speechflow-cli/dst/speechflow-node-x2x-trace.js.map +1 -1
  74. package/speechflow-cli/dst/speechflow-node-xio-device.js +5 -5
  75. package/speechflow-cli/dst/speechflow-node-xio-device.js.map +1 -1
  76. package/speechflow-cli/dst/speechflow-node-xio-file.js +4 -4
  77. package/speechflow-cli/dst/speechflow-node-xio-file.js.map +1 -1
  78. package/speechflow-cli/dst/speechflow-node-xio-mqtt.js +9 -3
  79. package/speechflow-cli/dst/speechflow-node-xio-mqtt.js.map +1 -1
  80. package/speechflow-cli/dst/speechflow-node-xio-websocket.js +16 -5
  81. package/speechflow-cli/dst/speechflow-node-xio-websocket.js.map +1 -1
  82. package/speechflow-cli/dst/speechflow-util-audio.js +3 -3
  83. package/speechflow-cli/dst/speechflow-util-audio.js.map +1 -1
  84. package/speechflow-cli/dst/speechflow-util-error.d.ts +0 -1
  85. package/speechflow-cli/dst/speechflow-util-error.js +0 -7
  86. package/speechflow-cli/dst/speechflow-util-error.js.map +1 -1
  87. package/speechflow-cli/dst/speechflow-util-misc.d.ts +2 -0
  88. package/speechflow-cli/dst/speechflow-util-misc.js +26 -0
  89. package/speechflow-cli/dst/speechflow-util-misc.js.map +1 -0
  90. package/speechflow-cli/dst/speechflow-util-queue.d.ts +9 -2
  91. package/speechflow-cli/dst/speechflow-util-queue.js +36 -15
  92. package/speechflow-cli/dst/speechflow-util-queue.js.map +1 -1
  93. package/speechflow-cli/dst/speechflow-util-stream.d.ts +2 -2
  94. package/speechflow-cli/dst/speechflow-util-stream.js +17 -19
  95. package/speechflow-cli/dst/speechflow-util-stream.js.map +1 -1
  96. package/speechflow-cli/dst/speechflow-util.d.ts +1 -0
  97. package/speechflow-cli/dst/speechflow-util.js +1 -0
  98. package/speechflow-cli/dst/speechflow-util.js.map +1 -1
  99. package/speechflow-cli/etc/oxlint.jsonc +6 -1
  100. package/speechflow-cli/etc/stx.conf +1 -0
  101. package/speechflow-cli/package.json +28 -27
  102. package/speechflow-cli/src/speechflow-main-api.ts +9 -11
  103. package/speechflow-cli/src/speechflow-main-graph.ts +15 -16
  104. package/speechflow-cli/src/speechflow-main-status.ts +6 -10
  105. package/speechflow-cli/src/speechflow-node-a2a-compressor-wt.ts +4 -0
  106. package/speechflow-cli/src/speechflow-node-a2a-compressor.ts +4 -2
  107. package/speechflow-cli/src/speechflow-node-a2a-expander-wt.ts +1 -1
  108. package/speechflow-cli/src/speechflow-node-a2a-expander.ts +4 -2
  109. package/speechflow-cli/src/speechflow-node-a2a-ffmpeg.ts +4 -2
  110. package/speechflow-cli/src/speechflow-node-a2a-filler.ts +57 -20
  111. package/speechflow-cli/src/speechflow-node-a2a-gain.ts +0 -5
  112. package/speechflow-cli/src/speechflow-node-a2a-gender.ts +3 -4
  113. package/speechflow-cli/src/speechflow-node-a2a-mute.ts +0 -5
  114. package/speechflow-cli/src/speechflow-node-a2a-pitch.ts +1 -2
  115. package/speechflow-cli/src/speechflow-node-a2a-rnnoise.ts +0 -5
  116. package/speechflow-cli/src/speechflow-node-a2a-speex.ts +0 -5
  117. package/speechflow-cli/src/speechflow-node-a2a-wav.ts +9 -3
  118. package/speechflow-cli/src/speechflow-node-a2t-amazon.ts +27 -27
  119. package/speechflow-cli/src/speechflow-node-a2t-deepgram.ts +37 -28
  120. package/speechflow-cli/src/speechflow-node-a2t-openai.ts +92 -56
  121. package/speechflow-cli/src/speechflow-node-t2a-amazon.ts +7 -11
  122. package/speechflow-cli/src/speechflow-node-t2a-elevenlabs.ts +47 -43
  123. package/speechflow-cli/src/speechflow-node-t2a-kokoro.ts +22 -7
  124. package/speechflow-cli/src/speechflow-node-t2t-amazon.ts +1 -2
  125. package/speechflow-cli/src/speechflow-node-t2t-deepl.ts +0 -1
  126. package/speechflow-cli/src/speechflow-node-t2t-format.ts +0 -1
  127. package/speechflow-cli/src/speechflow-node-t2t-google.ts +0 -1
  128. package/speechflow-cli/src/speechflow-node-t2t-modify.ts +0 -1
  129. package/speechflow-cli/src/speechflow-node-t2t-ollama.ts +0 -1
  130. package/speechflow-cli/src/speechflow-node-t2t-openai.ts +0 -1
  131. package/speechflow-cli/src/speechflow-node-t2t-subtitle.ts +205 -33
  132. package/speechflow-cli/src/speechflow-node-x2x-filter.ts +16 -4
  133. package/speechflow-cli/src/speechflow-node-x2x-trace.ts +3 -8
  134. package/speechflow-cli/src/speechflow-node-xio-device.ts +6 -9
  135. package/speechflow-cli/src/speechflow-node-xio-file.ts +4 -4
  136. package/speechflow-cli/src/speechflow-node-xio-mqtt.ts +10 -4
  137. package/speechflow-cli/src/speechflow-node-xio-websocket.ts +16 -5
  138. package/speechflow-cli/src/speechflow-util-audio-wt.ts +4 -4
  139. package/speechflow-cli/src/speechflow-util-audio.ts +7 -7
  140. package/speechflow-cli/src/speechflow-util-error.ts +0 -7
  141. package/speechflow-cli/src/speechflow-util-misc.ts +23 -0
  142. package/speechflow-cli/src/speechflow-util-queue.ts +40 -20
  143. package/speechflow-cli/src/speechflow-util-stream.ts +29 -24
  144. package/speechflow-cli/src/speechflow-util.ts +1 -0
  145. package/speechflow-ui-db/dst/index.css +1 -5
  146. package/speechflow-ui-db/dst/index.js +14 -58
  147. package/speechflow-ui-db/etc/stx.conf +5 -16
  148. package/speechflow-ui-db/package.json +16 -15
  149. package/speechflow-ui-st/dst/index.css +1 -5
  150. package/speechflow-ui-st/dst/index.js +31 -160
  151. package/speechflow-ui-st/etc/stx.conf +5 -16
  152. package/speechflow-ui-st/package.json +17 -16
@@ -38,7 +38,7 @@ var __importStar = (this && this.__importStar) || (function () {
38
38
  };
39
39
  })();
40
40
  Object.defineProperty(exports, "__esModule", { value: true });
41
- exports.CachedRegExp = exports.AsyncQueue = exports.TimeStore = exports.Queue = exports.QueuePointer = exports.DoubleQueue = exports.SingleQueue = void 0;
41
+ exports.PromiseSet = exports.CachedRegExp = exports.AsyncQueue = exports.TimeStore = exports.Queue = exports.QueuePointer = exports.DoubleQueue = exports.SingleQueue = void 0;
42
42
  exports.importObject = importObject;
43
43
  /* standard dependencies */
44
44
  const node_events_1 = require("node:events");
@@ -64,11 +64,10 @@ class SingleQueue extends node_events_1.EventEmitter {
64
64
  this.emit("dequeue");
65
65
  }
66
66
  read() {
67
- return new Promise((resolve, reject) => {
68
- const consume = () => this.queue.length > 0 ? this.queue.pop() : null;
67
+ return new Promise((resolve) => {
69
68
  const tryToConsume = () => {
70
- const item = consume();
71
- if (item !== null)
69
+ const item = this.queue.pop();
70
+ if (item !== undefined)
72
71
  resolve(item);
73
72
  else
74
73
  this.once("dequeue", tryToConsume);
@@ -76,6 +75,11 @@ class SingleQueue extends node_events_1.EventEmitter {
76
75
  tryToConsume();
77
76
  });
78
77
  }
78
+ drain() {
79
+ const items = this.queue;
80
+ this.queue = new Array();
81
+ return items;
82
+ }
79
83
  }
80
84
  exports.SingleQueue = SingleQueue;
81
85
  /* helper class for double-item queue */
@@ -95,18 +99,18 @@ class DoubleQueue extends node_events_1.EventEmitter {
95
99
  this.notify();
96
100
  }
97
101
  read() {
98
- return new Promise((resolve, reject) => {
102
+ return new Promise((resolve) => {
99
103
  const consume = () => {
100
104
  if (this.queue0.length > 0 && this.queue1.length > 0) {
101
105
  const item0 = this.queue0.pop();
102
106
  const item1 = this.queue1.pop();
103
107
  return [item0, item1];
104
108
  }
105
- return null;
109
+ return undefined;
106
110
  };
107
111
  const tryToConsume = () => {
108
112
  const items = consume();
109
- if (items !== null)
113
+ if (items !== undefined)
110
114
  resolve(items);
111
115
  else
112
116
  this.once("dequeue", tryToConsume);
@@ -247,7 +251,7 @@ class Queue extends node_events_1.EventEmitter {
247
251
  }
248
252
  pointerDelete(name) {
249
253
  if (!this.pointers.has(name))
250
- throw new Error("pointer not exists");
254
+ throw new Error("pointer does not exist");
251
255
  this.pointers.delete(name);
252
256
  }
253
257
  trim() {
@@ -292,9 +296,9 @@ class AsyncQueue {
292
296
  queue = [];
293
297
  resolvers = [];
294
298
  write(v) {
295
- const resolve = this.resolvers.shift();
296
- if (resolve)
297
- resolve(v);
299
+ const resolver = this.resolvers.shift();
300
+ if (resolver)
301
+ resolver.resolve(v);
298
302
  else
299
303
  this.queue.push(v);
300
304
  }
@@ -302,11 +306,14 @@ class AsyncQueue {
302
306
  if (this.queue.length > 0)
303
307
  return this.queue.shift();
304
308
  else
305
- return new Promise((resolve) => this.resolvers.push(resolve));
309
+ return new Promise((resolve, reject) => this.resolvers.push({ resolve, reject }));
310
+ }
311
+ empty() {
312
+ return this.queue.length === 0;
306
313
  }
307
314
  destroy() {
308
- for (const resolve of this.resolvers)
309
- resolve(null);
315
+ for (const resolver of this.resolvers)
316
+ resolver.reject(new Error("AsyncQueue destroyed"));
310
317
  this.resolvers = [];
311
318
  this.queue = [];
312
319
  }
@@ -335,4 +342,18 @@ class CachedRegExp {
335
342
  }
336
343
  }
337
344
  exports.CachedRegExp = CachedRegExp;
345
+ /* set of promises */
346
+ class PromiseSet {
347
+ promises = new Set();
348
+ add(promise) {
349
+ this.promises.add(promise);
350
+ promise.finally(() => {
351
+ this.promises.delete(promise);
352
+ }).catch(() => { });
353
+ }
354
+ async awaitAll() {
355
+ await Promise.all(this.promises);
356
+ }
357
+ }
358
+ exports.PromiseSet = PromiseSet;
338
359
  //# sourceMappingURL=speechflow-util-queue.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"speechflow-util-queue.js","sourceRoot":"","sources":["../src/speechflow-util-queue.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"speechflow-util-queue.js","sourceRoot":"","sources":["../src/speechflow-util-queue.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  import Stream from "node:stream";
2
2
  import { DateTime } from "luxon";
3
3
  import { SpeechFlowChunk } from "./speechflow-node";
4
- export declare function createTransformStreamForWritableSide(): Stream.Transform;
5
- export declare function createTransformStreamForReadableSide(type: "text" | "audio", getTimeZero: () => DateTime, highWaterMark?: number): Stream.Transform;
4
+ export declare function createTransformStreamForWritableSide(type: "text" | "audio", readableHighWaterMark?: number): Stream.Transform;
5
+ export declare function createTransformStreamForReadableSide(type: "text" | "audio", getTimeZero: () => DateTime, writableHighWaterMark?: number): Stream.Transform;
6
6
  export declare function ensureStreamChunk(type: "audio" | "text", chunk: SpeechFlowChunk | Buffer | string): string | Buffer<ArrayBufferLike> | SpeechFlowChunk;
7
7
  export declare function streamChunkEncode(chunk: SpeechFlowChunk): Uint8Array<ArrayBufferLike>;
8
8
  export declare function streamChunkDecode(_data: Uint8Array): SpeechFlowChunk;
@@ -57,37 +57,35 @@ const CBOR = __importStar(require("cbor2"));
57
57
  const speechflow_node_1 = require("./speechflow-node");
58
58
  const util = __importStar(require("./speechflow-util"));
59
59
  /* create a Duplex/Transform stream which has
60
- object-mode on Writable side and buffer/string-mode on Readable side */
61
- function createTransformStreamForWritableSide() {
60
+ object-mode on Writable side and
61
+ buffer/string-mode on Readable side */
62
+ function createTransformStreamForWritableSide(type, readableHighWaterMark) {
62
63
  return new node_stream_1.default.Transform({
63
- readableObjectMode: true,
64
64
  writableObjectMode: true,
65
+ readableObjectMode: false,
66
+ writableHighWaterMark: 1,
67
+ readableHighWaterMark: readableHighWaterMark ?? (type === "audio" ? 19200 /* 400ms */ : 65536 /* 64KB */),
65
68
  decodeStrings: false,
66
- highWaterMark: 1,
67
69
  transform(chunk, encoding, callback) {
68
70
  this.push(chunk.payload);
69
71
  callback();
70
72
  },
71
73
  final(callback) {
72
- this.push(null);
73
74
  callback();
74
75
  }
75
76
  });
76
77
  }
77
78
  /* create a Duplex/Transform stream which has
78
- object-mode on Readable side and buffer/string-mode on Writable side */
79
- function createTransformStreamForReadableSide(type, getTimeZero, highWaterMark) {
79
+ buffer/string-mode on Writable side and
80
+ object-mode on Readable side */
81
+ function createTransformStreamForReadableSide(type, getTimeZero, writableHighWaterMark) {
80
82
  return new node_stream_1.default.Transform({
83
+ writableObjectMode: false,
81
84
  readableObjectMode: true,
82
- writableObjectMode: true,
85
+ writableHighWaterMark: writableHighWaterMark ?? (type === "audio" ? 19200 /* 400ms */ : 65536 /* 64KB */),
86
+ readableHighWaterMark: 1,
83
87
  decodeStrings: false,
84
- highWaterMark: highWaterMark ?? (type === "audio" ? 19200 /* 400ms */ : 65536 /* 64KB */),
85
88
  transform(chunk, encoding, callback) {
86
- if (chunk === null) {
87
- this.push(null);
88
- callback();
89
- return;
90
- }
91
89
  const timeZero = getTimeZero();
92
90
  const start = luxon_1.DateTime.now().diff(timeZero);
93
91
  let end = start;
@@ -101,7 +99,6 @@ function createTransformStreamForReadableSide(type, getTimeZero, highWaterMark)
101
99
  callback();
102
100
  },
103
101
  final(callback) {
104
- this.push(null);
105
102
  callback();
106
103
  }
107
104
  });
@@ -138,8 +135,7 @@ function streamChunkEncode(chunk) {
138
135
  };
139
136
  if (chunk.meta.size > 0)
140
137
  data.meta = Array.from(chunk.meta.entries());
141
- const _data = CBOR.encode(data);
142
- return _data;
138
+ return CBOR.encode(data);
143
139
  }
144
140
  /* decode/unserialize chunk of data */
145
141
  function streamChunkDecode(_data) {
@@ -231,8 +227,10 @@ async function destroyStream(stream) {
231
227
  new Promise((resolve) => {
232
228
  stream.end(() => { resolve(); });
233
229
  }),
234
- util.timeoutPromise(5000, "stream end timeout")
235
- ]);
230
+ util.timeout(5000, "stream end timeout")
231
+ ]).catch(() => {
232
+ /* ignore timeout -- stream will be destroyed anyway */
233
+ });
236
234
  /* destroy the stream */
237
235
  stream.destroy();
238
236
  }
@@ -1 +1 @@
1
- {"version":3,"file":"speechflow-util-stream.js","sourceRoot":"","sources":["../src/speechflow-util-stream.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"speechflow-util-stream.js","sourceRoot":"","sources":["../src/speechflow-util-stream.ts"],"names":[],"mappings":"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"}
@@ -2,3 +2,4 @@ export * from "./speechflow-util-audio";
2
2
  export * from "./speechflow-util-error";
3
3
  export * from "./speechflow-util-stream";
4
4
  export * from "./speechflow-util-queue";
5
+ export * from "./speechflow-util-misc";
@@ -23,4 +23,5 @@ __exportStar(require("./speechflow-util-audio"), exports);
23
23
  __exportStar(require("./speechflow-util-error"), exports);
24
24
  __exportStar(require("./speechflow-util-stream"), exports);
25
25
  __exportStar(require("./speechflow-util-queue"), exports);
26
+ __exportStar(require("./speechflow-util-misc"), exports);
26
27
  //# sourceMappingURL=speechflow-util.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"speechflow-util.js","sourceRoot":"","sources":["../src/speechflow-util.ts"],"names":[],"mappings":";AAAA;;;;EAIE;;;;;;;;;;;;;;;;AAEF,0DAAuC;AACvC,0DAAuC;AACvC,2DAAwC;AACxC,0DAAuC"}
1
+ {"version":3,"file":"speechflow-util.js","sourceRoot":"","sources":["../src/speechflow-util.ts"],"names":[],"mappings":";AAAA;;;;EAIE;;;;;;;;;;;;;;;;AAEF,0DAAuC;AACvC,0DAAuC;AACvC,2DAAwC;AACxC,0DAAuC;AACvC,yDAAsC"}
@@ -121,7 +121,12 @@
121
121
  "no-process-exit": "off",
122
122
  "no-cycle": "off",
123
123
  "class-methods-use-this": "off",
124
- "no-named-export": "off"
124
+ "no-named-export": "off",
125
+ "prefer-at": "off",
126
+ "no-param-reassign": "off",
127
+ "prefer-top-level-await": "off",
128
+ "no-process-env": "off",
129
+ "no-warning-comments": "off"
125
130
  }
126
131
  }
127
132
 
@@ -23,6 +23,7 @@ dev
23
23
 
24
24
  # [speechflow-cli] static code analysis (linting)
25
25
  lint:
26
+ check-dependencies && \
26
27
  tsc --project etc/tsconfig.json --noEmit && \
27
28
  oxlint --config etc/oxlint.jsonc src/*.ts && \
28
29
  biome lint --diagnostic-level=warn --config-path=etc/biome.jsonc src/*.ts && \
@@ -18,34 +18,34 @@
18
18
  "cli-io": "0.9.13",
19
19
  "yargs": "18.0.0",
20
20
  "flowlink": "1.2.3",
21
- "js-yaml": "4.1.0",
21
+ "js-yaml": "4.1.1",
22
22
  "@gpeng/naudiodon": "2.4.1",
23
23
  "@deepgram/sdk": "4.11.2",
24
- "deepl-node": "1.19.1",
25
- "@elevenlabs/elevenlabs-js": "2.17.0",
24
+ "deepl-node": "1.22.0",
25
+ "@elevenlabs/elevenlabs-js": "2.26.0",
26
26
  "get-stream": "9.0.1",
27
- "@dotenvx/dotenvx": "1.51.0",
27
+ "@dotenvx/dotenvx": "1.51.1",
28
28
  "speex-resampler": "3.0.1",
29
29
  "@sapphi-red/speex-preprocess-wasm": "0.4.0",
30
30
  "@shiguredo/rnnoise-wasm": "2025.1.5",
31
- "@aws-sdk/client-transcribe-streaming": "3.901.0",
32
- "@aws-sdk/client-translate": "3.901.0",
33
- "@aws-sdk/client-polly": "3.901.0",
34
- "@google-cloud/translate": "9.2.0",
35
- "node-web-audio-api": "1.0.4",
31
+ "@aws-sdk/client-transcribe-streaming": "3.946.0",
32
+ "@aws-sdk/client-translate": "3.946.0",
33
+ "@aws-sdk/client-polly": "3.946.0",
34
+ "@google-cloud/translate": "9.3.0",
35
+ "node-web-audio-api": "1.0.7",
36
36
  "object-path": "0.11.8",
37
- "glob": "11.0.3",
37
+ "glob": "13.0.0",
38
38
  "ws": "8.18.3",
39
39
  "bufferutil": "4.0.9",
40
40
  "utf-8-validate": "6.0.5",
41
- "@hapi/hapi": "21.4.3",
41
+ "@hapi/hapi": "21.4.4",
42
42
  "@hapi/boom": "10.0.1",
43
43
  "@hapi/inert": "7.1.0",
44
44
  "hapi-plugin-header": "1.1.8",
45
45
  "hapi-plugin-websocket": "2.4.11",
46
46
  "@opensumi/reconnecting-websocket": "4.4.0",
47
- "ollama": "0.6.0",
48
- "openai": "6.1.0",
47
+ "ollama": "0.6.3",
48
+ "openai": "6.10.0",
49
49
  "@rse/ffmpeg": "1.4.2",
50
50
  "ffmpeg-stream": "1.0.1",
51
51
  "installed-packages": "1.0.13",
@@ -53,11 +53,11 @@
53
53
  "wav": "1.0.2",
54
54
  "mqtt": "5.14.1",
55
55
  "cbor2": "2.0.1",
56
- "arktype": "2.1.22",
56
+ "arktype": "2.1.28",
57
57
  "pure-uuid": "1.8.1",
58
58
  "wavefile": "11.0.0",
59
59
  "audio-inspect": "0.0.4",
60
- "@huggingface/transformers": "3.7.5",
60
+ "@huggingface/transformers": "3.8.1",
61
61
  "kokoro-js": "1.2.1",
62
62
  "@ericedouard/vad-node-realtime": "0.2.0",
63
63
  "osc-js": "2.4.1",
@@ -69,22 +69,22 @@
69
69
  "@rse/stx": "1.1.2"
70
70
  },
71
71
  "devDependencies": {
72
- "eslint": "9.37.0",
73
- "@eslint/js": "9.37.0",
72
+ "eslint": "9.39.1",
73
+ "@eslint/js": "9.39.1",
74
74
  "neostandard": "0.12.2",
75
75
  "eslint-plugin-promise": "7.2.1",
76
76
  "eslint-plugin-import": "2.32.0",
77
77
  "eslint-plugin-node": "11.1.0",
78
- "typescript-eslint": "8.45.0",
79
- "@typescript-eslint/eslint-plugin": "8.45.0",
80
- "@typescript-eslint/parser": "8.45.0",
81
- "oxlint": "1.19.0",
82
- "eslint-plugin-oxlint": "1.19.0",
78
+ "typescript-eslint": "8.48.1",
79
+ "@typescript-eslint/eslint-plugin": "8.48.1",
80
+ "@typescript-eslint/parser": "8.48.1",
81
+ "oxlint": "1.31.0",
82
+ "eslint-plugin-oxlint": "1.31.0",
83
83
  "@biomejs/biome": "2.0.6",
84
84
  "eslint-config-biome": "2.1.3",
85
85
 
86
- "@types/node": "24.6.2",
87
- "@types/yargs": "17.0.33",
86
+ "@types/node": "24.10.1",
87
+ "@types/yargs": "17.0.35",
88
88
  "@types/js-yaml": "4.0.9",
89
89
  "@types/object-path": "0.11.4",
90
90
  "@types/ws": "8.18.1",
@@ -93,13 +93,14 @@
93
93
  "@types/luxon": "3.7.1",
94
94
  "@types/wrap-text": "1.0.2",
95
95
 
96
+ "check-dependencies": "2.0.0",
96
97
  "patch-package": "8.0.1",
97
98
  "stmux": "1.8.11",
98
- "nodemon": "3.1.10",
99
+ "nodemon": "3.1.11",
99
100
  "shx": "0.4.0",
100
- "@yao-pkg/pkg": "6.7.0",
101
+ "@yao-pkg/pkg": "6.10.1",
101
102
  "typescript": "5.9.3",
102
- "delay-cli": "2.0.0",
103
+ "delay-cli": "3.0.0",
103
104
  "cross-env": "10.1.0"
104
105
  },
105
106
  "overrides": {
@@ -69,8 +69,7 @@ export class APIServer {
69
69
  else {
70
70
  await Promise.race<void>([
71
71
  foundNode.receiveRequest(argList),
72
- new Promise<never>((resolve, reject) => setTimeout(() =>
73
- reject(new Error("timeout")), 10 * 1000))
72
+ util.timeout(10 * 1000)
74
73
  ]).catch((err: Error) => {
75
74
  this.cli.log("warning", `external request to node <${name}> failed: ${err.message}`)
76
75
  throw err
@@ -102,7 +101,7 @@ export class APIServer {
102
101
  "response=" + ("statusCode" in request.response ? request.response.statusCode : "<unknown>")
103
102
  this.cli.log("info", `HAPI: request: ${msg}`)
104
103
  })
105
- this.hapi.events.on({ name: "request", channels: [ "error" ] }, (request: HAPI.Request, event: HAPI.RequestEvent, tags: { [key: string]: true }) => {
104
+ this.hapi.events.on({ name: "request", channels: [ "error" ] }, (_request: HAPI.Request, event: HAPI.RequestEvent, _tags: { [key: string]: true }) => {
106
105
  if (event.error instanceof Error)
107
106
  this.cli.log("error", `HAPI: request-error: ${event.error.message}`)
108
107
  else
@@ -226,9 +225,9 @@ export class APIServer {
226
225
  const osc = new OSC({ plugin: new OSC.DatagramPlugin({ type: "udp4" }) })
227
226
  const m = args.o.match(/^(.+?):(\d+)$/)
228
227
  if (m === null)
229
- throw new Error("invalid OSC/UDP endpoint (expected <ip-adress>:<udp-port>)")
228
+ throw new Error("invalid OSC/UDP endpoint (expected <ip-address>:<udp-port>)")
230
229
  const host = m[1]
231
- const port = m[2]
230
+ const port = Number.parseInt(m[2], 10)
232
231
  this.sendOSC = (url: string, ...argList: any[]) => {
233
232
  const msg = new OSC.Message(url, ...argList)
234
233
  osc.send(msg, { host, port })
@@ -248,15 +247,15 @@ export class APIServer {
248
247
  node: "",
249
248
  args: [ info.type, info.id, info.kind, info.value ]
250
249
  })
251
- for (const [ peer, info ] of this.wsPeers.entries()) {
250
+ for (const [ peer, peerInfo ] of this.wsPeers.entries()) {
252
251
  this.cli.log("debug", `HAPI: dashboard peer ${peer}: send ${data}`)
253
- info.ws.send(data)
252
+ if (peerInfo.ws.readyState === WebSocket.OPEN)
253
+ peerInfo.ws.send(data)
254
254
  }
255
255
  for (const n of graph.getGraphNodes()) {
256
256
  Promise.race<void>([
257
257
  n.receiveDashboard(info.type, info.id, info.kind, info.value),
258
- new Promise<never>((resolve, reject) => setTimeout(() =>
259
- reject(new Error("timeout")), 10 * 1000))
258
+ util.timeout(10 * 1000)
260
259
  ]).catch((err: Error) => {
261
260
  this.cli.log("warning", `sending dashboard info to node <${n.id}> failed: ${err.message}`)
262
261
  })
@@ -297,8 +296,7 @@ export class APIServer {
297
296
  }
298
297
  await Promise.race([
299
298
  Promise.all(closePromises),
300
- new Promise((resolve, reject) =>
301
- setTimeout(() => reject(new Error("timeout for all peers")), 5 * 1000))
299
+ util.timeout(5 * 1000)
302
300
  ]).catch((error: unknown) => {
303
301
  this.cli.log("warning", `HAPI: WebSockets failed to close: ${util.ensureError(error).message}`)
304
302
  })
@@ -54,6 +54,11 @@ export class NodeGraph {
54
54
  variables: { argv: any[], env: any },
55
55
  accessBus: (name: string) => EventEmitter
56
56
  ): Promise<void> {
57
+ /* internal helper for extracting error messages */
58
+ const flowlinkErrorMsg = (err: unknown): string =>
59
+ err instanceof Error && err.name === "FlowLinkError"
60
+ ? err.toString() : (err instanceof Error ? err.message : "internal error")
61
+
57
62
  const flowlink = new FlowLink<SpeechFlowNode>({
58
63
  trace: (msg: string) => {
59
64
  this.cli.log("debug", msg)
@@ -65,9 +70,7 @@ export class NodeGraph {
65
70
  ast = flowlink.compile(config)
66
71
  }
67
72
  catch (err) {
68
- const errorMsg = err instanceof Error && err.name === "FlowLinkError"
69
- ? err.toString() : (err instanceof Error ? err.message : "internal error")
70
- this.cli.log("error", `failed to parse SpeechFlow configuration: ${errorMsg}`)
73
+ this.cli.log("error", `failed to parse SpeechFlow configuration: ${flowlinkErrorMsg(err)}`)
71
74
  process.exit(1)
72
75
  }
73
76
  try {
@@ -117,9 +120,7 @@ export class NodeGraph {
117
120
  })
118
121
  }
119
122
  catch (err) {
120
- const errorMsg = err instanceof Error && err.name === "FlowLinkError"
121
- ? err.toString() : (err instanceof Error ? err.message : "internal error")
122
- this.cli.log("error", `failed to materialize SpeechFlow configuration: ${errorMsg}`)
123
+ this.cli.log("error", `failed to materialize SpeechFlow configuration: ${flowlinkErrorMsg(err)}`)
123
124
  process.exit(1)
124
125
  }
125
126
  }
@@ -174,8 +175,7 @@ export class NodeGraph {
174
175
  node.setTimeZero(this.timeZero)
175
176
  await Promise.race<void>([
176
177
  node.open(),
177
- new Promise<never>((resolve, reject) => setTimeout(() =>
178
- reject(new Error("timeout")), 30 * 1000))
178
+ util.timeout(30 * 1000)
179
179
  ]).catch((err: Error) => {
180
180
  this.cli.log("error", `<${node.id}>: failed to open node <${node.id}>: ${err.message}`)
181
181
  throw new Error(`failed to open node <${node.id}>: ${err.message}`)
@@ -218,18 +218,18 @@ export class NodeGraph {
218
218
  this.cli.log("info", `${msg} (${this.activeNodes.size} active nodes remaining)`)
219
219
  if (this.activeNodes.size === 0) {
220
220
  const timeFinished = DateTime.now()
221
- const duration = timeFinished.diff(this.timeZero!)
221
+ const duration = this.timeZero !== null ? timeFinished.diff(this.timeZero) : null
222
222
  this.cli.log("info", "**** everything finished -- stream processing in SpeechFlow graph stops " +
223
- `(total duration: ${duration.toFormat("hh:mm:ss.SSS")}) ****`)
223
+ `(total duration: ${duration?.toFormat("hh:mm:ss.SSS") ?? "unknown"}) ****`)
224
224
  this.finishEvents.emit("finished")
225
225
  this.shutdown("finished", args, api)
226
226
  }
227
227
  }
228
- node.stream.on("end", () => {
229
- deactivateNode(node, `readable stream side of node <${node.id}> raised "end" event`)
230
- })
231
228
  node.stream.on("finish", () => {
232
- deactivateNode(node, `writable stream side of node <${node.id}> raised "finish" event`)
229
+ deactivateNode(node, `writable stream side (input) of node <${node.id}> raised "finish" event`)
230
+ })
231
+ node.stream.on("end", () => {
232
+ deactivateNode(node, `readable stream side (output) of node <${node.id}> raised "end" event`)
233
233
  })
234
234
  }
235
235
 
@@ -271,8 +271,7 @@ export class NodeGraph {
271
271
  this.cli.log("info", `close node <${node.id}>`)
272
272
  await Promise.race<void>([
273
273
  node.close(),
274
- new Promise<never>((resolve, reject) => setTimeout(() =>
275
- reject(new Error("timeout")), 10 * 1000))
274
+ util.timeout(10 * 1000)
276
275
  ]).catch((err: Error) => {
277
276
  this.cli.log("warning", `node <${node.id}> failed to close: ${err.message}`)
278
277
  })
@@ -4,7 +4,7 @@
4
4
  ** Licensed under GPL 3.0 <https://spdx.org/licenses/GPL-3.0-only>
5
5
  */
6
6
 
7
- /* internal dependencies */
7
+ /* standard dependencies */
8
8
  import { EventEmitter } from "node:events"
9
9
 
10
10
  /* external dependencies */
@@ -15,6 +15,7 @@ import chalk from "chalk"
15
15
  /* internal dependencies */
16
16
  import SpeechFlowNode from "./speechflow-node"
17
17
  import { NodeConfig } from "./speechflow-main-config"
18
+ import * as util from "./speechflow-util"
18
19
 
19
20
  /* the node status manager */
20
21
  export class NodeStatusManager {
@@ -48,21 +49,16 @@ export class NodeStatusManager {
48
49
  node._accessBus = accessBus
49
50
  const status = await Promise.race<{ [ key: string ]: string | number }>([
50
51
  node.status(),
51
- new Promise<never>((resolve, reject) => setTimeout(() =>
52
- reject(new Error("timeout")), 10 * 1000))
52
+ util.timeout(10 * 1000)
53
53
  ]).catch((err: Error) => {
54
54
  this.cli.log("warning", `[${node.id}]: failed to gather status of node <${node.id}>: ${err.message}`)
55
55
  return {} as { [ key: string ]: string | number }
56
56
  })
57
57
 
58
58
  /* render output as a table row */
59
- if (Object.keys(status).length > 0) {
60
- let first = true
61
- for (const key of Object.keys(status)) {
62
- table.push([ first ? chalk.bold(name) : "", key, chalk.blue(status[key]) ])
63
- first = false
64
- }
65
- }
59
+ const keys = Object.keys(status)
60
+ for (let i = 0; i < keys.length; i++)
61
+ table.push([ i === 0 ? chalk.bold(name) : "", keys[i], chalk.blue(status[keys[i]]) ])
66
62
  }
67
63
  const output = table.toString()
68
64
  process.stdout.write(output + "\n")