speechflow 2.3.1 → 2.4.0

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 (63) hide show
  1. package/.ase/service.log +10272 -0
  2. package/.claude/CLAUDE.md +1 -0
  3. package/AGENTS.md +1 -1
  4. package/CHANGELOG.md +10 -0
  5. package/README.md +10 -37
  6. package/package.json +6 -6
  7. package/speechflow-cli/dst/speechflow-main-graph.js +14 -5
  8. package/speechflow-cli/dst/speechflow-main-graph.js.map +1 -1
  9. package/speechflow-cli/dst/speechflow-node-a2t-deepgram.d.ts +7 -0
  10. package/speechflow-cli/dst/speechflow-node-a2t-deepgram.js +145 -62
  11. package/speechflow-cli/dst/speechflow-node-a2t-deepgram.js.map +1 -1
  12. package/speechflow-cli/dst/speechflow-node-a2t-google.js +10 -4
  13. package/speechflow-cli/dst/speechflow-node-a2t-google.js.map +1 -1
  14. package/speechflow-cli/dst/speechflow-node-a2t-openai.js +10 -4
  15. package/speechflow-cli/dst/speechflow-node-a2t-openai.js.map +1 -1
  16. package/speechflow-cli/dst/{speechflow-node-t2t-spellcheck.d.ts → speechflow-node-t2t-proofread.d.ts} +1 -1
  17. package/speechflow-cli/dst/{speechflow-node-t2t-spellcheck.js → speechflow-node-t2t-proofread.js} +38 -54
  18. package/speechflow-cli/dst/speechflow-node-t2t-proofread.js.map +1 -0
  19. package/speechflow-cli/dst/speechflow-node-t2t-sentence.js +44 -11
  20. package/speechflow-cli/dst/speechflow-node-t2t-sentence.js.map +1 -1
  21. package/speechflow-cli/dst/speechflow-node-t2t-summary.js +1 -1
  22. package/speechflow-cli/dst/speechflow-node-t2t-summary.js.map +1 -1
  23. package/speechflow-cli/dst/speechflow-node-t2t-translate.js +1 -1
  24. package/speechflow-cli/dst/speechflow-node-t2t-translate.js.map +1 -1
  25. package/speechflow-cli/dst/speechflow-node-xio-device.js +4 -1
  26. package/speechflow-cli/dst/speechflow-node-xio-device.js.map +1 -1
  27. package/speechflow-cli/dst/speechflow-node-xio-exec.js +4 -1
  28. package/speechflow-cli/dst/speechflow-node-xio-exec.js.map +1 -1
  29. package/speechflow-cli/dst/speechflow-util-llm.d.ts +1 -0
  30. package/speechflow-cli/dst/speechflow-util-llm.js +6 -2
  31. package/speechflow-cli/dst/speechflow-util-llm.js.map +1 -1
  32. package/speechflow-cli/dst/speechflow-util-misc.js +28 -14
  33. package/speechflow-cli/dst/speechflow-util-misc.js.map +1 -1
  34. package/speechflow-cli/dst/speechflow.js.map +1 -1
  35. package/speechflow-cli/etc/oxlint.jsonc +9 -2
  36. package/speechflow-cli/package.d/{@typescript-eslint+typescript-estree+8.57.2.patch → @typescript-eslint+typescript-estree+8.59.3.patch} +1 -1
  37. package/speechflow-cli/package.json +30 -30
  38. package/speechflow-cli/src/speechflow-main-graph.ts +14 -5
  39. package/speechflow-cli/src/speechflow-node-a2t-deepgram.ts +156 -66
  40. package/speechflow-cli/src/speechflow-node-a2t-google.ts +10 -4
  41. package/speechflow-cli/src/speechflow-node-a2t-openai.ts +10 -4
  42. package/speechflow-cli/src/{speechflow-node-t2t-spellcheck.ts → speechflow-node-t2t-proofread.ts} +46 -59
  43. package/speechflow-cli/src/speechflow-node-t2t-summary.ts +1 -1
  44. package/speechflow-cli/src/speechflow-node-t2t-translate.ts +1 -1
  45. package/speechflow-cli/src/speechflow-node-xio-device.ts +4 -1
  46. package/speechflow-cli/src/speechflow-node-xio-exec.ts +4 -1
  47. package/speechflow-cli/src/speechflow-util-llm.ts +7 -2
  48. package/speechflow-cli/src/speechflow-util-misc.ts +33 -16
  49. package/speechflow-cli/src/speechflow.ts +1 -0
  50. package/speechflow-ui-db/dst/index.js +19 -16
  51. package/speechflow-ui-db/etc/oxlint.jsonc +0 -1
  52. package/speechflow-ui-db/package.d/{@typescript-eslint+typescript-estree+8.57.2.patch → @typescript-eslint+typescript-estree+8.59.3.patch} +1 -1
  53. package/speechflow-ui-db/package.json +15 -15
  54. package/speechflow-ui-st/dst/index.js +33 -33
  55. package/speechflow-ui-st/etc/oxlint.jsonc +2 -2
  56. package/speechflow-ui-st/package.d/{@typescript-eslint+typescript-estree+8.57.2.patch → @typescript-eslint+typescript-estree+8.59.3.patch} +1 -1
  57. package/speechflow-ui-st/package.json +15 -15
  58. package/.claude/settings.local.json +0 -3
  59. package/speechflow-cli/dst/speechflow-node-t2t-punctuation.d.ts +0 -13
  60. package/speechflow-cli/dst/speechflow-node-t2t-punctuation.js +0 -219
  61. package/speechflow-cli/dst/speechflow-node-t2t-punctuation.js.map +0 -1
  62. package/speechflow-cli/dst/speechflow-node-t2t-spellcheck.js.map +0 -1
  63. package/speechflow-cli/src/speechflow-node-t2t-punctuation.ts +0 -200
@@ -46,35 +46,52 @@ export const deepClone = (value: any): any => {
46
46
  }
47
47
 
48
48
  /* sleep: wait a duration of time and then resolve */
49
- export function sleep (durationMs: number, signal?: AbortSignal) {
49
+ export function sleep (durationMs: number, signal?: AbortSignal): Promise<void> {
50
50
  return new Promise<void>((resolve) => {
51
- const ac = new AbortController()
52
- const timer = setTimeout(() => {
53
- ac.abort()
51
+ const ac: AbortController | undefined =
52
+ signal !== undefined ? new AbortController() : undefined
53
+ let timer: ReturnType<typeof setTimeout> | null = setTimeout(() => {
54
+ timer = null
55
+ if (signal !== undefined)
56
+ ac!.abort()
54
57
  resolve()
55
58
  }, durationMs)
56
59
  timer.unref()
57
- if (signal !== undefined)
58
- signal.addEventListener("abort", () => {
59
- clearTimeout(timer)
60
+ if (signal !== undefined) {
61
+ if (signal.aborted)
60
62
  resolve()
61
- }, { once: true, signal: ac.signal })
63
+ else
64
+ signal.addEventListener("abort", () => {
65
+ if (timer !== null)
66
+ clearTimeout(timer)
67
+ resolve()
68
+ }, { once: true, signal: ac!.signal })
69
+ }
62
70
  })
63
71
  }
64
72
 
65
73
  /* timeout: wait a duration of time and then reject */
66
- export function timeout (durationMs: number, info = "timeout", signal?: AbortSignal) {
74
+ export function timeout (durationMs: number, info = "timeout", signal?: AbortSignal): Promise<never> {
67
75
  return new Promise<never>((resolve, reject) => {
68
- const ac = new AbortController()
69
- const timer = setTimeout(() => {
70
- ac.abort()
76
+ const ac: AbortController | undefined =
77
+ signal !== undefined ? new AbortController() : undefined
78
+ let timer: ReturnType<typeof setTimeout> | null = setTimeout(() => {
79
+ timer = null
80
+ if (signal !== undefined)
81
+ ac!.abort()
71
82
  reject(new Error(info))
72
83
  }, durationMs)
73
84
  timer.unref()
74
- if (signal !== undefined)
75
- signal.addEventListener("abort", () => {
76
- clearTimeout(timer)
85
+ if (signal !== undefined) {
86
+ if (signal.aborted)
77
87
  resolve(undefined as never)
78
- }, { once: true, signal: ac.signal })
88
+ else
89
+ signal.addEventListener("abort", () => {
90
+ if (timer !== null)
91
+ clearTimeout(timer)
92
+ resolve(undefined as never)
93
+ }, { once: true, signal: ac!.signal })
94
+ }
79
95
  })
80
96
  }
97
+
@@ -7,5 +7,6 @@
7
7
 
8
8
  /* pass-through control to the main module */
9
9
  import Main from "./speechflow-main"
10
+
10
11
  Main.main()
11
12