@qvac/sdk 0.7.0 → 0.8.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 (218) hide show
  1. package/NOTICE +57 -331
  2. package/README.md +2 -2
  3. package/bare-imports.json +9 -0
  4. package/dist/client/api/completion-stream.d.ts +2 -1
  5. package/dist/client/api/completion-stream.js +2 -1
  6. package/dist/client/api/download-asset.d.ts +3 -2
  7. package/dist/client/api/download-asset.js +4 -3
  8. package/dist/client/api/embed.d.ts +5 -2
  9. package/dist/client/api/embed.js +2 -2
  10. package/dist/client/api/get-model-info.d.ts +1 -1
  11. package/dist/client/api/invoke-plugin.d.ts +3 -2
  12. package/dist/client/api/invoke-plugin.js +4 -4
  13. package/dist/client/api/load-model.d.ts +12 -10
  14. package/dist/client/api/load-model.js +3 -3
  15. package/dist/client/api/rag.d.ts +10 -10
  16. package/dist/client/api/rag.js +21 -21
  17. package/dist/client/api/text-to-speech.d.ts +2 -2
  18. package/dist/client/api/text-to-speech.js +3 -3
  19. package/dist/client/api/transcribe.d.ts +5 -3
  20. package/dist/client/api/transcribe.js +6 -4
  21. package/dist/client/api/translate.d.ts +2 -2
  22. package/dist/client/api/translate.js +3 -3
  23. package/dist/client/rpc/node-rpc-client.d.ts +2 -7
  24. package/dist/client/rpc/node-rpc-client.js +2 -39
  25. package/dist/client/rpc/profiling/index.d.ts +2 -0
  26. package/dist/client/rpc/profiling/index.js +1 -0
  27. package/dist/client/rpc/profiling/profiler.d.ts +27 -0
  28. package/dist/client/rpc/profiling/profiler.js +139 -0
  29. package/dist/client/rpc/rpc-client.d.ts +2 -2
  30. package/dist/client/rpc/rpc-client.js +174 -12
  31. package/dist/examples/delegated-inference/consumer-profiled.d.ts +2 -0
  32. package/dist/examples/delegated-inference/consumer-profiled.js +67 -0
  33. package/dist/examples/llamacpp-multimodal.js +1 -1
  34. package/dist/examples/parallel-download.js +45 -13
  35. package/dist/examples/profiling/basic.d.ts +2 -0
  36. package/dist/examples/profiling/basic.js +71 -0
  37. package/dist/examples/profiling/per-call.d.ts +2 -0
  38. package/dist/examples/profiling/per-call.js +30 -0
  39. package/dist/examples/transcription/parakeet-ctc-filesystem.d.ts +2 -0
  40. package/dist/examples/transcription/parakeet-ctc-filesystem.js +40 -0
  41. package/dist/examples/transcription/parakeet-microphone-record.d.ts +2 -0
  42. package/dist/examples/transcription/parakeet-microphone-record.js +95 -0
  43. package/dist/examples/transcription/parakeet-sortformer.d.ts +2 -0
  44. package/dist/examples/transcription/parakeet-sortformer.js +115 -0
  45. package/dist/examples/transcription/parakeet-tdt-filesystem.d.ts +2 -0
  46. package/dist/examples/transcription/parakeet-tdt-filesystem.js +44 -0
  47. package/dist/examples/translation/translation-bergamot-pivot.d.ts +2 -0
  48. package/dist/examples/translation/translation-bergamot-pivot.js +73 -0
  49. package/dist/examples/translation/translation-llm-afriquegemma.d.ts +2 -0
  50. package/dist/examples/translation/translation-llm-afriquegemma.js +39 -0
  51. package/dist/index.d.ts +3 -1
  52. package/dist/index.js +2 -0
  53. package/dist/logging/index.d.ts +1 -1
  54. package/dist/logging/index.js +1 -1
  55. package/dist/logging/namespaces.d.ts +3 -9
  56. package/dist/logging/namespaces.js +2 -8
  57. package/dist/logging/registry.js +15 -1
  58. package/dist/models/registry/models.d.ts +1606 -245
  59. package/dist/models/registry/models.js +2127 -721
  60. package/dist/models/update-models/codegen.js +2 -2
  61. package/dist/models/update-models/history.d.ts +11 -0
  62. package/dist/models/update-models/history.js +24 -5
  63. package/dist/models/update-models/index.js +17 -16
  64. package/dist/models/update-models/naming.js +56 -0
  65. package/dist/profiling/aggregator.d.ts +15 -0
  66. package/dist/profiling/aggregator.js +100 -0
  67. package/dist/profiling/clock.d.ts +12 -0
  68. package/dist/profiling/clock.js +51 -0
  69. package/dist/profiling/controller.d.ts +33 -0
  70. package/dist/profiling/controller.js +123 -0
  71. package/dist/profiling/envelope.d.ts +10 -0
  72. package/dist/profiling/envelope.js +36 -0
  73. package/dist/profiling/events.d.ts +20 -0
  74. package/dist/profiling/events.js +37 -0
  75. package/dist/profiling/exporters.d.ts +10 -0
  76. package/dist/profiling/exporters.js +236 -0
  77. package/dist/profiling/index.d.ts +36 -0
  78. package/dist/profiling/index.js +31 -0
  79. package/dist/profiling/ring-buffer.d.ts +19 -0
  80. package/dist/profiling/ring-buffer.js +83 -0
  81. package/dist/profiling/types.d.ts +47 -0
  82. package/dist/profiling/types.js +1 -0
  83. package/dist/schemas/common.d.ts +1888 -133
  84. package/dist/schemas/common.js +2 -0
  85. package/dist/schemas/completion-stream.d.ts +31 -0
  86. package/dist/schemas/completion-stream.js +13 -0
  87. package/dist/schemas/download-asset.d.ts +14 -3
  88. package/dist/schemas/download-asset.js +3 -1
  89. package/dist/schemas/engine-addon-map.js +9 -6
  90. package/dist/schemas/get-model-info.d.ts +2 -0
  91. package/dist/schemas/get-model-info.js +1 -0
  92. package/dist/schemas/index.d.ts +2 -1
  93. package/dist/schemas/index.js +2 -1
  94. package/dist/schemas/llamacpp-config.d.ts +140 -14
  95. package/dist/schemas/llamacpp-config.js +11 -7
  96. package/dist/schemas/load-model.d.ts +9649 -2515
  97. package/dist/schemas/load-model.js +142 -182
  98. package/dist/schemas/model-src-utils.d.ts +10 -2
  99. package/dist/schemas/model-types.d.ts +19 -1
  100. package/dist/schemas/model-types.js +11 -0
  101. package/dist/schemas/ocr.d.ts +37 -0
  102. package/dist/schemas/ocr.js +5 -0
  103. package/dist/schemas/plugin.d.ts +51 -5
  104. package/dist/schemas/plugin.js +26 -0
  105. package/dist/schemas/profiling.d.ts +105 -0
  106. package/dist/schemas/profiling.js +66 -0
  107. package/dist/schemas/registry.d.ts +18 -0
  108. package/dist/schemas/registry.js +2 -0
  109. package/dist/schemas/reload-config.d.ts +126 -6
  110. package/dist/schemas/reload-config.js +1 -1
  111. package/dist/schemas/sdk-config.d.ts +2280 -24
  112. package/dist/schemas/sdk-config.js +6 -1
  113. package/dist/schemas/sdk-errors-client.d.ts +1 -0
  114. package/dist/schemas/sdk-errors-client.js +7 -0
  115. package/dist/schemas/sdk-errors-server.d.ts +3 -0
  116. package/dist/schemas/sdk-errors-server.js +15 -0
  117. package/dist/schemas/text-to-speech.d.ts +90 -68
  118. package/dist/schemas/text-to-speech.js +16 -33
  119. package/dist/schemas/transcription-config.d.ts +383 -0
  120. package/dist/schemas/{whispercpp-config.js → transcription-config.js} +29 -1
  121. package/dist/schemas/translation-config.d.ts +463 -8
  122. package/dist/schemas/translation-config.js +35 -2
  123. package/dist/server/bare/delegate-rpc-client.js +11 -1
  124. package/dist/server/bare/ops/load-model.d.ts +7 -1
  125. package/dist/server/bare/ops/load-model.js +41 -42
  126. package/dist/server/bare/ops/transcribe.d.ts +3 -0
  127. package/dist/server/bare/ops/transcribe.js +75 -0
  128. package/dist/server/bare/ops/translate.d.ts +2 -0
  129. package/dist/server/bare/ops/translate.js +12 -4
  130. package/dist/server/bare/plugins/index.d.ts +1 -0
  131. package/dist/server/bare/plugins/index.js +1 -0
  132. package/dist/server/bare/plugins/llamacpp-completion/ops/completion-stream.d.ts +2 -1
  133. package/dist/server/bare/plugins/llamacpp-completion/ops/completion-stream.js +8 -6
  134. package/dist/server/bare/plugins/llamacpp-completion/plugin.d.ts +108 -3
  135. package/dist/server/bare/plugins/llamacpp-completion/plugin.js +19 -6
  136. package/dist/server/bare/plugins/llamacpp-embedding/plugin.d.ts +32 -2
  137. package/dist/server/bare/plugins/llamacpp-embedding/plugin.js +31 -17
  138. package/dist/server/bare/plugins/nmtcpp-translation/plugin.d.ts +325 -3
  139. package/dist/server/bare/plugins/nmtcpp-translation/plugin.js +117 -10
  140. package/dist/server/bare/plugins/onnx-ocr/plugin.d.ts +50 -2
  141. package/dist/server/bare/plugins/onnx-ocr/plugin.js +46 -5
  142. package/dist/server/bare/plugins/onnx-tts/plugin.d.ts +351 -4
  143. package/dist/server/bare/plugins/onnx-tts/plugin.js +81 -61
  144. package/dist/server/bare/plugins/parakeet-transcription/plugin.d.ts +317 -0
  145. package/dist/server/bare/plugins/parakeet-transcription/plugin.js +154 -0
  146. package/dist/server/bare/plugins/whispercpp-transcription/plugin.d.ts +209 -3
  147. package/dist/server/bare/plugins/whispercpp-transcription/plugin.js +21 -9
  148. package/dist/server/bare/rag-hyperdb/rag-workspace-manager.js +2 -2
  149. package/dist/server/bare/registry/model-config-utils.js +3 -1
  150. package/dist/server/bare/utils/audio-input.d.ts +10 -0
  151. package/dist/server/bare/utils/audio-input.js +33 -0
  152. package/dist/server/error-handlers.d.ts +3 -2
  153. package/dist/server/error-handlers.js +11 -8
  154. package/dist/server/plugins/registry.js +5 -1
  155. package/dist/server/rpc/delegate-transport.d.ts +11 -3
  156. package/dist/server/rpc/delegate-transport.js +158 -3
  157. package/dist/server/rpc/handle-request.js +43 -4
  158. package/dist/server/rpc/handler-registry.js +7 -1
  159. package/dist/server/rpc/handler-utils.d.ts +5 -4
  160. package/dist/server/rpc/handler-utils.js +72 -31
  161. package/dist/server/rpc/handlers/completion-stream-delegated.d.ts +3 -1
  162. package/dist/server/rpc/handlers/completion-stream-delegated.js +11 -2
  163. package/dist/server/rpc/handlers/download-asset.js +55 -3
  164. package/dist/server/rpc/handlers/load-model/download-stats.d.ts +6 -0
  165. package/dist/server/rpc/handlers/load-model/download-stats.js +87 -0
  166. package/dist/server/rpc/handlers/load-model/handler.js +108 -123
  167. package/dist/server/rpc/handlers/load-model/http.d.ts +2 -1
  168. package/dist/server/rpc/handlers/load-model/http.js +21 -5
  169. package/dist/server/rpc/handlers/load-model/hyperdrive.d.ts +2 -1
  170. package/dist/server/rpc/handlers/load-model/hyperdrive.js +19 -14
  171. package/dist/server/rpc/handlers/load-model/registry.d.ts +2 -1
  172. package/dist/server/rpc/handlers/load-model/registry.js +123 -130
  173. package/dist/server/rpc/handlers/load-model/resolve.d.ts +2 -0
  174. package/dist/server/rpc/handlers/load-model/resolve.js +55 -22
  175. package/dist/server/rpc/handlers/load-model/types.d.ts +29 -0
  176. package/dist/server/rpc/handlers/load-model/types.js +1 -0
  177. package/dist/server/rpc/handlers/load-model-delegated.d.ts +5 -1
  178. package/dist/server/rpc/handlers/load-model-delegated.js +35 -7
  179. package/dist/server/rpc/handlers/plugin-dispatch.js +15 -10
  180. package/dist/server/rpc/handlers/plugin-invoke.js +56 -51
  181. package/dist/server/rpc/handlers/rag.js +24 -0
  182. package/dist/server/rpc/handlers/unload-model-delegated.d.ts +3 -0
  183. package/dist/server/rpc/handlers/unload-model-delegated.js +32 -0
  184. package/dist/server/rpc/profiling/context.d.ts +18 -0
  185. package/dist/server/rpc/profiling/context.js +38 -0
  186. package/dist/server/rpc/profiling/delegation-profiler.d.ts +32 -0
  187. package/dist/server/rpc/profiling/delegation-profiler.js +154 -0
  188. package/dist/server/rpc/profiling/index.d.ts +5 -0
  189. package/dist/server/rpc/profiling/index.js +4 -0
  190. package/dist/server/rpc/profiling/operation-metrics.d.ts +25 -0
  191. package/dist/server/rpc/profiling/operation-metrics.js +199 -0
  192. package/dist/server/rpc/profiling/operation-wrappers.d.ts +18 -0
  193. package/dist/server/rpc/profiling/operation-wrappers.js +124 -0
  194. package/dist/server/rpc/profiling/profiler.d.ts +13 -0
  195. package/dist/server/rpc/profiling/profiler.js +97 -0
  196. package/dist/server/utils/cache.d.ts +2 -1
  197. package/dist/server/utils/cache.js +5 -1
  198. package/dist/server/utils/checksum.d.ts +2 -0
  199. package/dist/server/utils/checksum.js +7 -0
  200. package/dist/server/utils/formatting.d.ts +6 -0
  201. package/dist/server/utils/formatting.js +35 -0
  202. package/dist/server/worker.js +2 -1
  203. package/dist/utils/errors-client.d.ts +3 -0
  204. package/dist/utils/errors-client.js +6 -0
  205. package/dist/utils/errors-server.d.ts +9 -0
  206. package/dist/utils/errors-server.js +15 -0
  207. package/dist/utils/global-singleton.d.ts +2 -0
  208. package/dist/utils/global-singleton.js +10 -0
  209. package/package.json +14 -17
  210. package/dist/schemas/whispercpp-config.d.ts +0 -70
  211. package/dist/server/bare/plugins/whispercpp-transcription/ops/transcribe-stream.d.ts +0 -3
  212. package/dist/server/bare/plugins/whispercpp-transcription/ops/transcribe-stream.js +0 -81
  213. /package/dist/examples/{whispercpp-filesystem.d.ts → transcription/whispercpp-filesystem.d.ts} +0 -0
  214. /package/dist/examples/{whispercpp-filesystem.js → transcription/whispercpp-filesystem.js} +0 -0
  215. /package/dist/examples/{whispercpp-microphone-record.d.ts → transcription/whispercpp-microphone-record.d.ts} +0 -0
  216. /package/dist/examples/{whispercpp-microphone-record.js → transcription/whispercpp-microphone-record.js} +0 -0
  217. /package/dist/examples/{whispercpp-prompt.d.ts → transcription/whispercpp-prompt.d.ts} +0 -0
  218. /package/dist/examples/{whispercpp-prompt.js → transcription/whispercpp-prompt.js} +0 -0
@@ -1,96 +1,99 @@
1
1
  import { z } from "zod";
2
2
  import { llmConfigBaseSchema, embedConfigBaseSchema, } from "./llamacpp-config.js";
3
- import { whisperConfigSchema } from "./whispercpp-config.js";
3
+ import { whisperConfigSchema, parakeetConfigSchema, } from "./transcription-config.js";
4
4
  import { delegateSchema } from "./delegate.js";
5
5
  import { nmtConfigSchema } from "./translation-config.js";
6
- import { ttsConfigSchema, ttsChatterboxRequestConfigSchema, ttsSupertonicRequestConfigSchema, ttsRequestConfigSchema, } from "./text-to-speech.js";
6
+ import { ttsConfigSchema } from "./text-to-speech.js";
7
7
  import { ocrConfigSchema } from "./ocr.js";
8
8
  import { modelSrcInputSchema, modelInputToSrcSchema, modelInputToNameSchema, } from "./model-src-utils.js";
9
- import { llmModelTypeSchema, whisperModelTypeSchema, embeddingsModelTypeSchema, nmtModelTypeSchema, ttsModelTypeSchema, ocrModelTypeSchema, ModelType, ModelTypeAliases, } from "./model-types.js";
9
+ import { llmModelTypeSchema, whisperModelTypeSchema, parakeetModelTypeSchema, embeddingsModelTypeSchema, nmtModelTypeSchema, ttsModelTypeSchema, ocrModelTypeSchema, ModelType, ModelTypeAliases, } from "./model-types.js";
10
10
  // Set of all built-in model types (canonical + aliases) for catch-all exclusion
11
11
  const builtInModelTypes = new Set([
12
12
  ...Object.values(ModelType),
13
13
  ...Object.keys(ModelTypeAliases),
14
14
  ]);
15
15
  import { reloadConfigRequestSchema } from "./reload-config.js";
16
- const loadModelOptionsBaseSchema = z.union([
17
- z.object({
18
- modelSrc: modelSrcInputSchema,
16
+ const loadModelCommonFields = {
17
+ modelSrc: modelSrcInputSchema,
18
+ seed: z.boolean().optional(),
19
+ delegate: delegateSchema,
20
+ };
21
+ const loadModelRequestCommonFields = {
22
+ ...loadModelCommonFields,
23
+ onProgress: z.unknown().optional(),
24
+ withProgress: z.boolean().optional(),
25
+ };
26
+ export const loadModelOptionsBaseSchema = z.union([
27
+ z
28
+ .object({
29
+ ...loadModelCommonFields,
19
30
  modelType: llmModelTypeSchema,
20
31
  modelConfig: llmConfigBaseSchema.strict().optional(),
21
- seed: z.boolean().optional(),
22
- projectionModelSrc: modelSrcInputSchema.optional(),
23
- delegate: delegateSchema,
24
- toolFormat: z.enum(["json", "xml"]).default("json"),
25
- }),
26
- z.object({
27
- modelSrc: modelSrcInputSchema,
32
+ })
33
+ .strict(),
34
+ z
35
+ .object({
36
+ ...loadModelCommonFields,
28
37
  modelType: whisperModelTypeSchema,
29
38
  modelConfig: whisperConfigSchema.partial().strict().optional(),
30
- seed: z.boolean().optional(),
31
- vadModelSrc: modelSrcInputSchema.optional(),
32
- delegate: delegateSchema,
33
- }),
34
- z.object({
35
- modelSrc: modelSrcInputSchema,
39
+ })
40
+ .strict(),
41
+ z
42
+ .object({
43
+ ...loadModelCommonFields,
44
+ modelType: parakeetModelTypeSchema,
45
+ modelConfig: parakeetConfigSchema,
46
+ })
47
+ .strict(),
48
+ z
49
+ .object({
50
+ ...loadModelCommonFields,
36
51
  modelType: embeddingsModelTypeSchema,
37
52
  modelConfig: embedConfigBaseSchema.strict().optional(),
38
- seed: z.boolean().optional(),
39
- delegate: delegateSchema,
40
- }),
41
- z.object({
42
- modelSrc: modelSrcInputSchema,
53
+ })
54
+ .strict(),
55
+ z
56
+ .object({
57
+ ...loadModelCommonFields,
43
58
  modelType: nmtModelTypeSchema,
44
59
  modelConfig: nmtConfigSchema,
45
- srcVocabSrc: modelSrcInputSchema.optional(),
46
- dstVocabSrc: modelSrcInputSchema.optional(),
47
- seed: z.boolean().optional(),
48
- delegate: delegateSchema,
49
- }),
50
- // TTS (supports both Chatterbox and Supertonic via ttsEngine discriminator)
51
- z.object({
52
- modelSrc: modelSrcInputSchema,
60
+ })
61
+ .strict(),
62
+ z
63
+ .object({
64
+ ...loadModelCommonFields,
53
65
  modelType: ttsModelTypeSchema,
54
66
  modelConfig: ttsConfigSchema,
55
- seed: z.boolean().optional(),
56
- delegate: delegateSchema,
57
- }),
58
- z.object({
59
- modelSrc: modelSrcInputSchema,
67
+ })
68
+ .strict(),
69
+ z
70
+ .object({
71
+ ...loadModelCommonFields,
60
72
  modelType: ocrModelTypeSchema,
61
73
  modelConfig: ocrConfigSchema.partial().strict().optional(),
62
- detectorModelSrc: modelSrcInputSchema.optional(),
63
- seed: z.boolean().optional(),
64
- delegate: delegateSchema,
65
- }),
74
+ })
75
+ .strict(),
66
76
  // Custom plugin catch-all: accepts any modelType string EXCEPT built-ins
67
77
  z.object({
68
- modelSrc: modelSrcInputSchema,
78
+ ...loadModelCommonFields,
69
79
  modelType: z.string().refine((val) => !builtInModelTypes.has(val), {
70
80
  message: "Built-in model types must use their specific schema",
71
81
  }),
72
82
  modelConfig: z.record(z.string(), z.unknown()).optional(),
73
- seed: z.boolean().optional(),
74
- delegate: delegateSchema,
75
83
  }),
76
84
  ]);
77
85
  export const loadModelOptionsSchema = loadModelOptionsBaseSchema.transform((data) => ({
78
86
  ...data,
79
87
  seed: data.seed ?? false,
80
88
  }));
81
- export const loadModelOptionsToRequestSchema = z.union([
89
+ const loadModelOptionsToRequestBaseSchema = z.union([
82
90
  z
83
91
  .object({
84
- modelSrc: modelSrcInputSchema,
92
+ ...loadModelRequestCommonFields,
85
93
  modelType: llmModelTypeSchema,
86
94
  modelConfig: llmConfigBaseSchema.strict().optional(),
87
- seed: z.boolean().optional(),
88
- projectionModelSrc: modelSrcInputSchema.optional(),
89
- delegate: delegateSchema,
90
- toolFormat: z.enum(["json", "xml"]).default("json"),
91
- onProgress: z.unknown().optional(),
92
- withProgress: z.boolean().optional(),
93
95
  })
96
+ .strict()
94
97
  .transform((data) => ({
95
98
  type: "loadModel",
96
99
  modelType: ModelType.llamacppCompletion,
@@ -100,21 +103,14 @@ export const loadModelOptionsToRequestSchema = z.union([
100
103
  seed: data.seed ?? false,
101
104
  withProgress: data.withProgress ?? !!data.onProgress,
102
105
  delegate: data.delegate,
103
- projectionModelSrc: data.projectionModelSrc
104
- ? modelInputToSrcSchema.parse(data.projectionModelSrc)
105
- : undefined,
106
106
  })),
107
107
  z
108
108
  .object({
109
- modelSrc: modelSrcInputSchema,
109
+ ...loadModelRequestCommonFields,
110
110
  modelType: whisperModelTypeSchema,
111
111
  modelConfig: whisperConfigSchema.partial().strict().optional(),
112
- seed: z.boolean().optional(),
113
- vadModelSrc: modelSrcInputSchema.optional(),
114
- delegate: delegateSchema,
115
- onProgress: z.unknown().optional(),
116
- withProgress: z.boolean().optional(),
117
112
  })
113
+ .strict()
118
114
  .transform((data) => ({
119
115
  type: "loadModel",
120
116
  modelType: ModelType.whispercppTranscription,
@@ -124,20 +120,31 @@ export const loadModelOptionsToRequestSchema = z.union([
124
120
  seed: data.seed ?? false,
125
121
  withProgress: data.withProgress ?? !!data.onProgress,
126
122
  delegate: data.delegate,
127
- vadModelSrc: data.vadModelSrc
128
- ? modelInputToSrcSchema.parse(data.vadModelSrc)
129
- : undefined,
130
123
  })),
131
124
  z
132
125
  .object({
133
- modelSrc: modelSrcInputSchema,
126
+ ...loadModelRequestCommonFields,
127
+ modelType: parakeetModelTypeSchema,
128
+ modelConfig: parakeetConfigSchema,
129
+ })
130
+ .strict()
131
+ .transform((data) => ({
132
+ type: "loadModel",
133
+ modelType: ModelType.parakeetTranscription,
134
+ modelSrc: modelInputToSrcSchema.parse(data.modelSrc),
135
+ modelName: modelInputToNameSchema.parse(data.modelSrc),
136
+ modelConfig: data.modelConfig,
137
+ seed: data.seed ?? false,
138
+ withProgress: data.withProgress ?? !!data.onProgress,
139
+ delegate: data.delegate,
140
+ })),
141
+ z
142
+ .object({
143
+ ...loadModelRequestCommonFields,
134
144
  modelType: embeddingsModelTypeSchema,
135
145
  modelConfig: embedConfigBaseSchema.strict().optional(),
136
- seed: z.boolean().optional(),
137
- delegate: delegateSchema,
138
- onProgress: z.unknown().optional(),
139
- withProgress: z.boolean().optional(),
140
146
  })
147
+ .strict()
141
148
  .transform((data) => ({
142
149
  type: "loadModel",
143
150
  modelType: ModelType.llamacppEmbedding,
@@ -150,99 +157,51 @@ export const loadModelOptionsToRequestSchema = z.union([
150
157
  })),
151
158
  z
152
159
  .object({
153
- modelSrc: modelSrcInputSchema,
160
+ ...loadModelRequestCommonFields,
154
161
  modelType: nmtModelTypeSchema,
155
162
  modelConfig: nmtConfigSchema,
156
- srcVocabSrc: modelSrcInputSchema.optional(),
157
- dstVocabSrc: modelSrcInputSchema.optional(),
158
- seed: z.boolean().optional(),
159
- delegate: delegateSchema,
160
- onProgress: z.unknown().optional(),
161
- withProgress: z.boolean().optional(),
162
163
  })
164
+ .strict()
163
165
  .transform((data) => ({
164
166
  type: "loadModel",
165
167
  modelType: ModelType.nmtcppTranslation,
166
168
  modelSrc: modelInputToSrcSchema.parse(data.modelSrc),
167
169
  modelName: modelInputToNameSchema.parse(data.modelSrc),
168
- modelConfig: data.modelConfig,
169
- srcVocabSrc: data.srcVocabSrc
170
- ? modelInputToSrcSchema.parse(data.srcVocabSrc)
171
- : undefined,
172
- dstVocabSrc: data.dstVocabSrc
173
- ? modelInputToSrcSchema.parse(data.dstVocabSrc)
174
- : undefined,
170
+ modelConfig: (data.modelConfig.engine === "Bergamot" && data.modelConfig.pivotModel) ? {
171
+ ...data.modelConfig,
172
+ pivotModel: {
173
+ ...data.modelConfig.pivotModel,
174
+ modelSrc: modelInputToSrcSchema.parse(data.modelConfig.pivotModel.modelSrc),
175
+ },
176
+ } : data.modelConfig,
175
177
  seed: data.seed ?? false,
176
178
  withProgress: data.withProgress ?? !!data.onProgress,
177
179
  delegate: data.delegate,
178
180
  })),
179
181
  z
180
182
  .object({
181
- modelSrc: modelSrcInputSchema,
183
+ ...loadModelRequestCommonFields,
182
184
  modelType: ttsModelTypeSchema,
183
185
  modelConfig: ttsConfigSchema,
184
- seed: z.boolean().optional(),
185
- delegate: delegateSchema,
186
- onProgress: z.unknown().optional(),
187
- withProgress: z.boolean().optional(),
188
186
  })
189
- .transform((data) => {
190
- // Keep modelConfig intact, just convert ModelSrcInput values to strings
191
- if (data.modelConfig.ttsEngine === "chatterbox") {
192
- return {
193
- type: "loadModel",
194
- modelType: ModelType.onnxTts,
195
- modelSrc: modelInputToSrcSchema.parse(data.modelSrc),
196
- modelName: modelInputToNameSchema.parse(data.modelSrc),
197
- modelConfig: {
198
- ttsEngine: "chatterbox",
199
- language: data.modelConfig.language,
200
- ttsTokenizerSrc: modelInputToSrcSchema.parse(data.modelConfig.ttsTokenizerSrc),
201
- ttsSpeechEncoderSrc: modelInputToSrcSchema.parse(data.modelConfig.ttsSpeechEncoderSrc),
202
- ttsEmbedTokensSrc: modelInputToSrcSchema.parse(data.modelConfig.ttsEmbedTokensSrc),
203
- ttsConditionalDecoderSrc: modelInputToSrcSchema.parse(data.modelConfig.ttsConditionalDecoderSrc),
204
- ttsLanguageModelSrc: modelInputToSrcSchema.parse(data.modelConfig.ttsLanguageModelSrc),
205
- referenceAudioSrc: modelInputToSrcSchema.parse(data.modelConfig.referenceAudioSrc),
206
- },
207
- seed: data.seed ?? false,
208
- withProgress: data.withProgress ?? !!data.onProgress,
209
- delegate: data.delegate,
210
- };
211
- }
212
- else {
213
- return {
214
- type: "loadModel",
215
- modelType: ModelType.onnxTts,
216
- modelSrc: modelInputToSrcSchema.parse(data.modelSrc),
217
- modelName: modelInputToNameSchema.parse(data.modelSrc),
218
- modelConfig: {
219
- ttsEngine: "supertonic",
220
- language: data.modelConfig.language,
221
- ttsTokenizerSrc: modelInputToSrcSchema.parse(data.modelConfig.ttsTokenizerSrc),
222
- ttsTextEncoderSrc: modelInputToSrcSchema.parse(data.modelConfig.ttsTextEncoderSrc),
223
- ttsLatentDenoiserSrc: modelInputToSrcSchema.parse(data.modelConfig.ttsLatentDenoiserSrc),
224
- ttsVoiceDecoderSrc: modelInputToSrcSchema.parse(data.modelConfig.ttsVoiceDecoderSrc),
225
- ttsVoiceSrc: modelInputToSrcSchema.parse(data.modelConfig.ttsVoiceSrc),
226
- ttsSpeed: data.modelConfig.ttsSpeed,
227
- ttsNumInferenceSteps: data.modelConfig.ttsNumInferenceSteps,
228
- },
229
- seed: data.seed ?? false,
230
- withProgress: data.withProgress ?? !!data.onProgress,
231
- delegate: data.delegate,
232
- };
233
- }
234
- }),
187
+ .strict()
188
+ .transform((data) => ({
189
+ type: "loadModel",
190
+ modelType: ModelType.onnxTts,
191
+ modelSrc: modelInputToSrcSchema.parse(data.modelSrc),
192
+ modelName: modelInputToNameSchema.parse(data.modelSrc),
193
+ modelConfig: data.modelConfig,
194
+ seed: data.seed ?? false,
195
+ withProgress: data.withProgress ?? !!data.onProgress,
196
+ delegate: data.delegate,
197
+ })),
235
198
  z
236
199
  .object({
237
- modelSrc: modelSrcInputSchema,
200
+ ...loadModelRequestCommonFields,
238
201
  modelType: ocrModelTypeSchema,
239
202
  modelConfig: ocrConfigSchema.partial().strict().optional(),
240
- detectorModelSrc: modelSrcInputSchema.optional(),
241
- seed: z.boolean().optional(),
242
- delegate: delegateSchema,
243
- onProgress: z.unknown().optional(),
244
- withProgress: z.boolean().optional(),
245
203
  })
204
+ .strict()
246
205
  .transform((data) => ({
247
206
  type: "loadModel",
248
207
  modelType: ModelType.onnxOcr,
@@ -252,22 +211,14 @@ export const loadModelOptionsToRequestSchema = z.union([
252
211
  seed: data.seed ?? false,
253
212
  withProgress: data.withProgress ?? !!data.onProgress,
254
213
  delegate: data.delegate,
255
- detectorModelSrc: data.detectorModelSrc
256
- ? modelInputToSrcSchema.parse(data.detectorModelSrc)
257
- : undefined,
258
214
  })),
259
- // Custom plugin catch-all: accepts any modelType string EXCEPT built-ins
260
215
  z
261
216
  .object({
262
- modelSrc: modelSrcInputSchema,
217
+ ...loadModelRequestCommonFields,
263
218
  modelType: z.string().refine((val) => !builtInModelTypes.has(val), {
264
219
  message: "Built-in model types must use their specific schema",
265
220
  }),
266
221
  modelConfig: z.record(z.string(), z.unknown()).optional(),
267
- seed: z.boolean().optional(),
268
- delegate: delegateSchema,
269
- onProgress: z.unknown().optional(),
270
- withProgress: z.boolean().optional(),
271
222
  })
272
223
  .transform((data) => ({
273
224
  type: "loadModel",
@@ -280,13 +231,11 @@ export const loadModelOptionsToRequestSchema = z.union([
280
231
  delegate: data.delegate,
281
232
  })),
282
233
  ]);
234
+ export const loadModelOptionsToRequestSchema = loadModelOptionsToRequestBaseSchema;
283
235
  const commonModelConfigSchema = z.object({
284
236
  type: z.literal("loadModel"),
285
237
  modelSrc: z.string(),
286
238
  modelName: z.string().optional(),
287
- projectionModelSrc: z.string().optional(),
288
- vadModelSrc: z.string().optional(),
289
- detectorModelSrc: z.string().optional(),
290
239
  withProgress: z.boolean().optional(),
291
240
  seed: z.boolean().optional(),
292
241
  delegate: delegateSchema,
@@ -294,40 +243,48 @@ const commonModelConfigSchema = z.object({
294
243
  // Request schemas for each model type (use canonical types since transforms normalize)
295
244
  // Use base schemas (no defaults) for client-side validation.
296
245
  // Server applies device defaults, then full schema defaults.
297
- export const loadLlmModelRequestSchema = commonModelConfigSchema.extend({
246
+ export const loadLlmModelRequestSchema = commonModelConfigSchema
247
+ .extend({
298
248
  modelType: z.literal(ModelType.llamacppCompletion),
299
249
  modelConfig: llmConfigBaseSchema,
300
- });
301
- export const loadWhisperModelRequestSchema = commonModelConfigSchema.extend({
250
+ })
251
+ .strict();
252
+ export const loadWhisperModelRequestSchema = commonModelConfigSchema
253
+ .extend({
302
254
  modelType: z.literal(ModelType.whispercppTranscription),
303
- modelConfig: whisperConfigSchema, // whisper has no defaults
304
- });
305
- export const loadEmbeddingsModelRequestSchema = commonModelConfigSchema.extend({
255
+ modelConfig: whisperConfigSchema,
256
+ })
257
+ .strict();
258
+ export const loadParakeetModelRequestSchema = commonModelConfigSchema
259
+ .extend({
260
+ modelType: z.literal(ModelType.parakeetTranscription),
261
+ modelConfig: parakeetConfigSchema,
262
+ })
263
+ .strict();
264
+ export const loadEmbeddingsModelRequestSchema = commonModelConfigSchema
265
+ .extend({
306
266
  modelType: z.literal(ModelType.llamacppEmbedding),
307
267
  modelConfig: embedConfigBaseSchema,
308
- });
309
- export const loadNmtModelRequestSchema = commonModelConfigSchema.extend({
268
+ })
269
+ .strict();
270
+ export const loadNmtModelRequestSchema = commonModelConfigSchema
271
+ .extend({
310
272
  modelType: z.literal(ModelType.nmtcppTranslation),
311
- modelConfig: nmtConfigSchema, // nmt has no defaults
312
- srcVocabSrc: z.string().optional(),
313
- dstVocabSrc: z.string().optional(),
314
- });
315
- export const loadTtsChatterboxModelRequestSchema = commonModelConfigSchema.extend({
316
- modelType: z.literal(ModelType.onnxTts),
317
- modelConfig: ttsChatterboxRequestConfigSchema,
318
- });
319
- export const loadTtsSupertonicModelRequestSchema = commonModelConfigSchema.extend({
320
- modelType: z.literal(ModelType.onnxTts),
321
- modelConfig: ttsSupertonicRequestConfigSchema,
322
- });
323
- export const loadTtsModelRequestSchema = commonModelConfigSchema.extend({
273
+ modelConfig: nmtConfigSchema,
274
+ })
275
+ .strict();
276
+ export const loadTtsModelRequestSchema = commonModelConfigSchema
277
+ .extend({
324
278
  modelType: z.literal(ModelType.onnxTts),
325
- modelConfig: ttsRequestConfigSchema,
326
- });
327
- export const loadOcrModelRequestSchema = commonModelConfigSchema.extend({
279
+ modelConfig: ttsConfigSchema,
280
+ })
281
+ .strict();
282
+ export const loadOcrModelRequestSchema = commonModelConfigSchema
283
+ .extend({
328
284
  modelType: z.literal(ModelType.onnxOcr),
329
- modelConfig: ocrConfigSchema, // ocr has no defaults
330
- });
285
+ modelConfig: ocrConfigSchema,
286
+ })
287
+ .strict();
331
288
  // Custom plugin catch-all: accepts any modelType string EXCEPT built-ins
332
289
  export const loadCustomPluginModelRequestSchema = commonModelConfigSchema.extend({
333
290
  modelType: z.string().refine((val) => !builtInModelTypes.has(val), {
@@ -340,6 +297,7 @@ export const loadModelSrcRequestSchema = z
340
297
  .union([
341
298
  loadLlmModelRequestSchema,
342
299
  loadWhisperModelRequestSchema,
300
+ loadParakeetModelRequestSchema,
343
301
  loadEmbeddingsModelRequestSchema,
344
302
  loadNmtModelRequestSchema,
345
303
  loadTtsModelRequestSchema,
@@ -410,12 +368,14 @@ export const registryUrlSchema = z
410
368
  registryPath: match[2], // Path without source prefix
411
369
  };
412
370
  });
371
+ const loadModelServerOptionsSchema = commonModelConfigSchema.extend({
372
+ modelType: z.string(),
373
+ modelConfig: z.record(z.string(), z.unknown()).optional(),
374
+ });
413
375
  export const loadModelServerParamsSchema = z.object({
414
376
  modelId: z.string(),
415
377
  modelPath: z.string(),
416
- options: loadModelSrcRequestSchema,
417
- projectionModelPath: z.string().optional(),
418
- vadModelPath: z.string().optional(),
419
- detectorModelPath: z.string().optional(),
378
+ options: loadModelServerOptionsSchema,
379
+ artifacts: z.record(z.string(), z.string()).optional(),
420
380
  modelName: z.string().optional(),
421
381
  });
@@ -16,11 +16,13 @@ export declare const modelDescriptorSchema: z.ZodObject<{
16
16
  "llamacpp-embedding": "llamacpp-embedding";
17
17
  "nmtcpp-translation": "nmtcpp-translation";
18
18
  "onnx-tts": "onnx-tts";
19
+ "parakeet-transcription": "parakeet-transcription";
19
20
  "onnx-ocr": "onnx-ocr";
20
21
  llm: "llm";
21
22
  whisper: "whisper";
22
23
  embeddings: "embeddings";
23
24
  nmt: "nmt";
25
+ parakeet: "parakeet";
24
26
  tts: "tts";
25
27
  ocr: "ocr";
26
28
  }>, z.ZodLiteral<"vad">]>>;
@@ -42,11 +44,13 @@ export declare const modelSrcInputSchema: z.ZodUnion<readonly [z.ZodString, z.Zo
42
44
  "llamacpp-embedding": "llamacpp-embedding";
43
45
  "nmtcpp-translation": "nmtcpp-translation";
44
46
  "onnx-tts": "onnx-tts";
47
+ "parakeet-transcription": "parakeet-transcription";
45
48
  "onnx-ocr": "onnx-ocr";
46
49
  llm: "llm";
47
50
  whisper: "whisper";
48
51
  embeddings: "embeddings";
49
52
  nmt: "nmt";
53
+ parakeet: "parakeet";
50
54
  tts: "tts";
51
55
  ocr: "ocr";
52
56
  }>, z.ZodLiteral<"vad">]>>;
@@ -74,11 +78,13 @@ export declare const modelInputToSrcSchema: z.ZodPipe<z.ZodUnion<readonly [z.Zod
74
78
  "llamacpp-embedding": "llamacpp-embedding";
75
79
  "nmtcpp-translation": "nmtcpp-translation";
76
80
  "onnx-tts": "onnx-tts";
81
+ "parakeet-transcription": "parakeet-transcription";
77
82
  "onnx-ocr": "onnx-ocr";
78
83
  llm: "llm";
79
84
  whisper: "whisper";
80
85
  embeddings: "embeddings";
81
86
  nmt: "nmt";
87
+ parakeet: "parakeet";
82
88
  tts: "tts";
83
89
  ocr: "ocr";
84
90
  }>, z.ZodLiteral<"vad">]>>;
@@ -93,7 +99,7 @@ export declare const modelInputToSrcSchema: z.ZodPipe<z.ZodUnion<readonly [z.Zod
93
99
  engine?: string | undefined;
94
100
  expectedSize?: number | undefined;
95
101
  sha256Checksum?: string | undefined;
96
- addon?: "llamacpp-completion" | "whispercpp-transcription" | "llamacpp-embedding" | "nmtcpp-translation" | "onnx-tts" | "onnx-ocr" | "llm" | "whisper" | "embeddings" | "nmt" | "tts" | "ocr" | "vad" | undefined;
102
+ addon?: "llamacpp-completion" | "whispercpp-transcription" | "llamacpp-embedding" | "nmtcpp-translation" | "onnx-tts" | "parakeet-transcription" | "onnx-ocr" | "llm" | "whisper" | "embeddings" | "nmt" | "parakeet" | "tts" | "ocr" | "vad" | undefined;
97
103
  }>>;
98
104
  /**
99
105
  * Schema that transforms ModelSrc to its optional name
@@ -116,11 +122,13 @@ export declare const modelInputToNameSchema: z.ZodPipe<z.ZodUnion<readonly [z.Zo
116
122
  "llamacpp-embedding": "llamacpp-embedding";
117
123
  "nmtcpp-translation": "nmtcpp-translation";
118
124
  "onnx-tts": "onnx-tts";
125
+ "parakeet-transcription": "parakeet-transcription";
119
126
  "onnx-ocr": "onnx-ocr";
120
127
  llm: "llm";
121
128
  whisper: "whisper";
122
129
  embeddings: "embeddings";
123
130
  nmt: "nmt";
131
+ parakeet: "parakeet";
124
132
  tts: "tts";
125
133
  ocr: "ocr";
126
134
  }>, z.ZodLiteral<"vad">]>>;
@@ -135,6 +143,6 @@ export declare const modelInputToNameSchema: z.ZodPipe<z.ZodUnion<readonly [z.Zo
135
143
  engine?: string | undefined;
136
144
  expectedSize?: number | undefined;
137
145
  sha256Checksum?: string | undefined;
138
- addon?: "llamacpp-completion" | "whispercpp-transcription" | "llamacpp-embedding" | "nmtcpp-translation" | "onnx-tts" | "onnx-ocr" | "llm" | "whisper" | "embeddings" | "nmt" | "tts" | "ocr" | "vad" | undefined;
146
+ addon?: "llamacpp-completion" | "whispercpp-transcription" | "llamacpp-embedding" | "nmtcpp-translation" | "onnx-tts" | "parakeet-transcription" | "onnx-ocr" | "llm" | "whisper" | "embeddings" | "nmt" | "parakeet" | "tts" | "ocr" | "vad" | undefined;
139
147
  }>>;
140
148
  //# sourceMappingURL=model-src-utils.d.ts.map
@@ -10,6 +10,7 @@ export declare const ModelType: {
10
10
  readonly llamacppEmbedding: "llamacpp-embedding";
11
11
  readonly nmtcppTranslation: "nmtcpp-translation";
12
12
  readonly onnxTts: "onnx-tts";
13
+ readonly parakeetTranscription: "parakeet-transcription";
13
14
  readonly onnxOcr: "onnx-ocr";
14
15
  };
15
16
  /**
@@ -21,6 +22,7 @@ export declare const ModelTypeAliases: {
21
22
  readonly whisper: "whispercpp-transcription";
22
23
  readonly embeddings: "llamacpp-embedding";
23
24
  readonly nmt: "nmtcpp-translation";
25
+ readonly parakeet: "parakeet-transcription";
24
26
  readonly tts: "onnx-tts";
25
27
  readonly ocr: "onnx-ocr";
26
28
  };
@@ -48,6 +50,7 @@ export declare const PUBLIC_MODEL_TYPES: {
48
50
  readonly whisper: "whispercpp-transcription";
49
51
  readonly embeddings: "llamacpp-embedding";
50
52
  readonly nmt: "nmtcpp-translation";
53
+ readonly parakeet: "parakeet-transcription";
51
54
  readonly tts: "onnx-tts";
52
55
  readonly ocr: "onnx-ocr";
53
56
  readonly llamacppCompletion: "llamacpp-completion";
@@ -55,6 +58,7 @@ export declare const PUBLIC_MODEL_TYPES: {
55
58
  readonly llamacppEmbedding: "llamacpp-embedding";
56
59
  readonly nmtcppTranslation: "nmtcpp-translation";
57
60
  readonly onnxTts: "onnx-tts";
61
+ readonly parakeetTranscription: "parakeet-transcription";
58
62
  readonly onnxOcr: "onnx-ocr";
59
63
  };
60
64
  /** Schema accepting both canonical and alias model type inputs */
@@ -64,11 +68,13 @@ export declare const modelTypeInputSchema: z.ZodEnum<{
64
68
  "llamacpp-embedding": "llamacpp-embedding";
65
69
  "nmtcpp-translation": "nmtcpp-translation";
66
70
  "onnx-tts": "onnx-tts";
71
+ "parakeet-transcription": "parakeet-transcription";
67
72
  "onnx-ocr": "onnx-ocr";
68
73
  llm: "llm";
69
74
  whisper: "whisper";
70
75
  embeddings: "embeddings";
71
76
  nmt: "nmt";
77
+ parakeet: "parakeet";
72
78
  tts: "tts";
73
79
  ocr: "ocr";
74
80
  }>;
@@ -79,14 +85,16 @@ export declare const modelTypeSchema: z.ZodPipe<z.ZodEnum<{
79
85
  "llamacpp-embedding": "llamacpp-embedding";
80
86
  "nmtcpp-translation": "nmtcpp-translation";
81
87
  "onnx-tts": "onnx-tts";
88
+ "parakeet-transcription": "parakeet-transcription";
82
89
  "onnx-ocr": "onnx-ocr";
83
90
  llm: "llm";
84
91
  whisper: "whisper";
85
92
  embeddings: "embeddings";
86
93
  nmt: "nmt";
94
+ parakeet: "parakeet";
87
95
  tts: "tts";
88
96
  ocr: "ocr";
89
- }>, z.ZodTransform<"llamacpp-completion" | "whispercpp-transcription" | "llamacpp-embedding" | "nmtcpp-translation" | "onnx-tts" | "onnx-ocr", "llamacpp-completion" | "whispercpp-transcription" | "llamacpp-embedding" | "nmtcpp-translation" | "onnx-tts" | "onnx-ocr" | "llm" | "whisper" | "embeddings" | "nmt" | "tts" | "ocr">>;
97
+ }>, z.ZodTransform<"llamacpp-completion" | "whispercpp-transcription" | "llamacpp-embedding" | "nmtcpp-translation" | "onnx-tts" | "parakeet-transcription" | "onnx-ocr", "llamacpp-completion" | "whispercpp-transcription" | "llamacpp-embedding" | "nmtcpp-translation" | "onnx-tts" | "parakeet-transcription" | "onnx-ocr" | "llm" | "whisper" | "embeddings" | "nmt" | "parakeet" | "tts" | "ocr">>;
90
98
  /**
91
99
  * Normalize model type input to canonical form.
92
100
  * Custom plugin types (not in built-ins) are returned as-is.
@@ -122,6 +130,16 @@ export declare const whisperModelTypeSchema: z.ZodEnum<{
122
130
  whisper: "whisper";
123
131
  }>;
124
132
  export type WhisperModelTypeInput = z.infer<typeof whisperModelTypeSchema>;
133
+ /**
134
+ * Parakeet/Transcription model type schema.
135
+ * - Alias: `"parakeet"` → resolves to `"parakeet-transcription"`
136
+ * - Canonical: `"parakeet-transcription"`
137
+ */
138
+ export declare const parakeetModelTypeSchema: z.ZodEnum<{
139
+ "parakeet-transcription": "parakeet-transcription";
140
+ parakeet: "parakeet";
141
+ }>;
142
+ export type ParakeetModelTypeInput = z.infer<typeof parakeetModelTypeSchema>;
125
143
  /**
126
144
  * Embeddings model type schema.
127
145
  * - Alias: `"embeddings"` → resolves to `"llamacpp-embedding"`
@@ -11,6 +11,7 @@ export const ModelType = {
11
11
  llamacppEmbedding: "llamacpp-embedding",
12
12
  nmtcppTranslation: "nmtcpp-translation",
13
13
  onnxTts: "onnx-tts",
14
+ parakeetTranscription: "parakeet-transcription",
14
15
  onnxOcr: "onnx-ocr",
15
16
  };
16
17
  // === INTERNAL: Alias keys (backward compat names) ===
@@ -19,6 +20,7 @@ const AliasKeys = {
19
20
  whisper: "whisper",
20
21
  embeddings: "embeddings",
21
22
  nmt: "nmt",
23
+ parakeet: "parakeet",
22
24
  tts: "tts",
23
25
  ocr: "ocr",
24
26
  };
@@ -32,6 +34,7 @@ export const ModelTypeAliases = {
32
34
  [AliasKeys.whisper]: ModelType.whispercppTranscription,
33
35
  [AliasKeys.embeddings]: ModelType.llamacppEmbedding,
34
36
  [AliasKeys.nmt]: ModelType.nmtcppTranslation,
37
+ [AliasKeys.parakeet]: ModelType.parakeetTranscription,
35
38
  [AliasKeys.tts]: ModelType.onnxTts,
36
39
  [AliasKeys.ocr]: ModelType.onnxOcr,
37
40
  };
@@ -123,6 +126,14 @@ export const llmModelTypeSchema = modelTypeInputSchema
123
126
  export const whisperModelTypeSchema = modelTypeInputSchema
124
127
  .extract([AliasKeys.whisper, ModelType.whispercppTranscription])
125
128
  .describe('Whisper model type: "whisper" (alias) or "whispercpp-transcription" (canonical)');
129
+ /**
130
+ * Parakeet/Transcription model type schema.
131
+ * - Alias: `"parakeet"` → resolves to `"parakeet-transcription"`
132
+ * - Canonical: `"parakeet-transcription"`
133
+ */
134
+ export const parakeetModelTypeSchema = modelTypeInputSchema
135
+ .extract([AliasKeys.parakeet, ModelType.parakeetTranscription])
136
+ .describe('Parakeet model type: "parakeet" (alias) or "parakeet-transcription" (canonical)');
126
137
  /**
127
138
  * Embeddings model type schema.
128
139
  * - Alias: `"embeddings"` → resolves to `"llamacpp-embedding"`