@qvac/sdk 0.4.1 → 0.5.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 (179) hide show
  1. package/README.md +328 -200
  2. package/dist/client/api/completion-stream.d.ts +15 -5
  3. package/dist/client/api/completion-stream.js +50 -14
  4. package/dist/client/api/embed.d.ts +17 -3
  5. package/dist/client/api/embed.js +0 -8
  6. package/dist/client/api/get-model-info.d.ts +1 -1
  7. package/dist/client/api/index.d.ts +0 -1
  8. package/dist/client/api/index.js +0 -1
  9. package/dist/client/api/load-model.d.ts +37 -11
  10. package/dist/client/api/load-model.js +29 -117
  11. package/dist/client/api/logging-stream.d.ts +6 -3
  12. package/dist/client/api/logging-stream.js +6 -3
  13. package/dist/client/api/unload-model.js +5 -2
  14. package/dist/client/config-loader/config-utils.d.ts +5 -0
  15. package/dist/client/config-loader/config-utils.js +20 -0
  16. package/dist/client/config-loader/resolve-config.bare.d.ts +9 -0
  17. package/dist/client/config-loader/resolve-config.bare.js +87 -0
  18. package/dist/client/config-loader/resolve-config.expo.d.ts +11 -0
  19. package/dist/client/config-loader/resolve-config.expo.js +62 -0
  20. package/dist/client/config-loader/resolve-config.node.d.ts +9 -0
  21. package/dist/client/config-loader/resolve-config.node.js +118 -0
  22. package/dist/client/init-hooks.d.ts +17 -3
  23. package/dist/client/init-hooks.js +37 -18
  24. package/dist/client/logging-stream-registry.d.ts +1 -1
  25. package/dist/client/logging-stream-registry.js +14 -13
  26. package/dist/client/rpc/bare-client.d.ts +10 -14
  27. package/dist/client/rpc/bare-client.js +28 -2
  28. package/dist/client/rpc/bare-rpc-client.d.ts +1 -1
  29. package/dist/client/rpc/bare-rpc-client.js +16 -13
  30. package/dist/client/rpc/expo-rpc-client.d.ts +2 -2
  31. package/dist/client/rpc/expo-rpc-client.js +15 -12
  32. package/dist/client/rpc/node-rpc-client.d.ts +1 -1
  33. package/dist/client/rpc/node-rpc-client.js +10 -7
  34. package/dist/client/rpc/rpc-client.js +16 -15
  35. package/dist/examples/config/config-path.d.ts +8 -0
  36. package/dist/examples/config/config-path.js +13 -0
  37. package/dist/examples/config-reload.d.ts +2 -0
  38. package/dist/examples/config-reload.js +49 -0
  39. package/dist/examples/download-with-blind-relays.js +20 -20
  40. package/dist/examples/embed-hyperdrive.js +35 -3
  41. package/dist/examples/kv-cache-cleanup.js +1 -1
  42. package/dist/examples/kv-cache-custom-key.js +1 -1
  43. package/dist/examples/kv-cache-example.js +1 -1
  44. package/dist/examples/llamacpp-hyperdrive.js +1 -1
  45. package/dist/examples/llamacpp-sharded.js +1 -1
  46. package/dist/examples/logging-file-transport.d.ts +2 -0
  47. package/dist/examples/{llamacpp-file-logging.js → logging-file-transport.js} +3 -7
  48. package/dist/examples/logging-streaming.d.ts +2 -0
  49. package/dist/examples/logging-streaming.js +75 -0
  50. package/dist/examples/mcp-websearch.d.ts +13 -0
  51. package/dist/examples/mcp-websearch.js +176 -0
  52. package/dist/index.d.ts +4 -4
  53. package/dist/index.js +2 -2
  54. package/dist/logging/addon.d.ts +6 -0
  55. package/dist/logging/addon.js +59 -0
  56. package/dist/logging/base-logger.js +24 -14
  57. package/dist/logging/client-logger.d.ts +3 -0
  58. package/dist/logging/client-logger.js +13 -0
  59. package/dist/logging/index.d.ts +6 -1
  60. package/dist/logging/index.js +6 -1
  61. package/dist/logging/logger.d.ts +0 -2
  62. package/dist/logging/logger.js +0 -3
  63. package/dist/logging/namespaces.d.ts +11 -0
  64. package/dist/logging/namespaces.js +11 -0
  65. package/dist/logging/registry.d.ts +26 -0
  66. package/dist/logging/registry.js +36 -0
  67. package/dist/logging/server-logger.d.ts +3 -0
  68. package/dist/logging/server-logger.js +16 -0
  69. package/dist/logging/stream-logger.d.ts +1 -1
  70. package/dist/logging/stream-logger.js +6 -3
  71. package/dist/logging/types.d.ts +2 -0
  72. package/dist/models/hyperdrive/models.d.ts +789 -51
  73. package/dist/models/hyperdrive/models.js +979 -200
  74. package/dist/schemas/common.d.ts +86 -23
  75. package/dist/schemas/common.js +0 -3
  76. package/dist/schemas/download-asset.d.ts +5 -5
  77. package/dist/schemas/embed.d.ts +3 -3
  78. package/dist/schemas/embed.js +9 -2
  79. package/dist/schemas/get-model-info.d.ts +2 -2
  80. package/dist/schemas/index.d.ts +5 -1
  81. package/dist/schemas/index.js +5 -1
  82. package/dist/schemas/json-schema.d.ts +16 -0
  83. package/dist/schemas/json-schema.js +2 -0
  84. package/dist/schemas/llamacpp-config.d.ts +5 -4
  85. package/dist/schemas/llamacpp-config.js +7 -5
  86. package/dist/schemas/load-model.d.ts +931 -211
  87. package/dist/schemas/load-model.js +7 -1
  88. package/dist/schemas/logging-stream.d.ts +10 -3
  89. package/dist/schemas/logging-stream.js +4 -3
  90. package/dist/schemas/mcp-adapter.d.ts +47 -0
  91. package/dist/schemas/mcp-adapter.js +1 -0
  92. package/dist/schemas/model-src-utils.d.ts +8 -6
  93. package/dist/schemas/model-src-utils.js +8 -3
  94. package/dist/schemas/reload-config.d.ts +344 -0
  95. package/dist/schemas/reload-config.js +42 -0
  96. package/dist/schemas/sdk-config.d.ts +22 -0
  97. package/dist/schemas/sdk-config.js +33 -0
  98. package/dist/schemas/sdk-errors-client.d.ts +4 -0
  99. package/dist/schemas/sdk-errors-client.js +20 -0
  100. package/dist/schemas/sdk-errors-server.d.ts +3 -0
  101. package/dist/schemas/sdk-errors-server.js +15 -0
  102. package/dist/schemas/tools.d.ts +3 -0
  103. package/dist/schemas/translation-config.d.ts +81 -0
  104. package/dist/schemas/translation-config.js +3 -4
  105. package/dist/schemas/whispercpp-config.d.ts +9 -1
  106. package/dist/schemas/whispercpp-config.js +2 -1
  107. package/dist/server/bare/addons/llamacpp/create-model.js +13 -4
  108. package/dist/server/bare/addons/llamacpp/handlers/embed.d.ts +9 -1
  109. package/dist/server/bare/addons/llamacpp/handlers/embed.js +18 -4
  110. package/dist/server/bare/addons/llamacpp/kv-cache-utils.js +6 -4
  111. package/dist/server/bare/addons/load-model.js +10 -4
  112. package/dist/server/bare/addons/unload-model.js +6 -3
  113. package/dist/server/bare/addons/whispercpp/handlers/transcribe-stream.js +56 -37
  114. package/dist/server/bare/delegate-rpc-client.js +12 -10
  115. package/dist/server/bare/hyperswarm.js +7 -5
  116. package/dist/server/bare/rag-hyperdb/rag-manager.js +3 -1
  117. package/dist/server/bare/registry/config-registry.d.ts +13 -4
  118. package/dist/server/bare/registry/config-registry.js +42 -10
  119. package/dist/server/bare/registry/logging-stream-registry.d.ts +24 -7
  120. package/dist/server/bare/registry/logging-stream-registry.js +99 -20
  121. package/dist/server/bare/registry/model-registry.d.ts +3 -0
  122. package/dist/server/bare/registry/model-registry.js +9 -6
  123. package/dist/server/rpc/create-server.js +5 -3
  124. package/dist/server/rpc/handle-request.js +30 -16
  125. package/dist/server/rpc/handlers/cancelHandler.js +3 -1
  126. package/dist/server/rpc/handlers/completion-stream-delegated.js +4 -2
  127. package/dist/server/rpc/handlers/delete-cache.js +3 -1
  128. package/dist/server/rpc/handlers/download-asset.js +3 -1
  129. package/dist/server/rpc/handlers/embed.js +3 -1
  130. package/dist/server/rpc/handlers/index.d.ts +0 -1
  131. package/dist/server/rpc/handlers/index.js +0 -2
  132. package/dist/server/rpc/handlers/load-model/download-manager.js +4 -2
  133. package/dist/server/rpc/handlers/load-model/http.js +20 -18
  134. package/dist/server/rpc/handlers/load-model/hyperdrive.js +21 -19
  135. package/dist/server/rpc/handlers/load-model/resolve.js +7 -5
  136. package/dist/server/rpc/handlers/load-model-delegated.d.ts +2 -2
  137. package/dist/server/rpc/handlers/load-model-delegated.js +10 -8
  138. package/dist/server/rpc/handlers/load-model.js +55 -3
  139. package/dist/server/rpc/handlers/logging-stream.js +4 -4
  140. package/dist/server/rpc/handlers/provideHandler/connection.js +12 -10
  141. package/dist/server/rpc/handlers/provideHandler/handler.js +18 -16
  142. package/dist/server/rpc/handlers/provideHandler/proxy.js +8 -6
  143. package/dist/server/rpc/handlers/rag.js +3 -1
  144. package/dist/server/rpc/handlers/stopProvideHandler.js +3 -1
  145. package/dist/server/rpc/handlers/transcribe-stream.js +3 -1
  146. package/dist/server/rpc/handlers/translate.js +3 -1
  147. package/dist/server/rpc/handlers/unload-model.js +4 -2
  148. package/dist/server/utils/audio/decoder.d.ts +2 -1
  149. package/dist/server/utils/audio/decoder.js +48 -11
  150. package/dist/server/utils/cache.js +7 -5
  151. package/dist/server/utils/config-transform.d.ts +3 -0
  152. package/dist/server/utils/config-transform.js +21 -0
  153. package/dist/server/utils/index.d.ts +1 -0
  154. package/dist/server/utils/index.js +1 -0
  155. package/dist/server/worker.js +41 -16
  156. package/dist/utils/errors-client.d.ts +12 -0
  157. package/dist/utils/errors-client.js +20 -0
  158. package/dist/utils/errors-server.d.ts +9 -0
  159. package/dist/utils/errors-server.js +16 -0
  160. package/dist/utils/getProcessSafe.d.ts +7 -0
  161. package/dist/utils/getProcessSafe.js +17 -0
  162. package/dist/utils/mcp-adapter.d.ts +12 -0
  163. package/dist/utils/mcp-adapter.js +103 -0
  164. package/dist/utils/object.d.ts +2 -0
  165. package/dist/utils/object.js +3 -0
  166. package/dist/utils/runtime.d.ts +30 -0
  167. package/dist/utils/runtime.js +48 -0
  168. package/dist/utils/tool-helpers.d.ts +10 -2
  169. package/dist/utils/tool-helpers.js +24 -11
  170. package/package.json +46 -33
  171. package/dist/client/api/set-config.d.ts +0 -7
  172. package/dist/client/api/set-config.js +0 -20
  173. package/dist/client/config-manager.d.ts +0 -4
  174. package/dist/client/config-manager.js +0 -8
  175. package/dist/examples/llamacpp-file-logging.d.ts +0 -2
  176. package/dist/schemas/set-config.d.ts +0 -21
  177. package/dist/schemas/set-config.js +0 -14
  178. package/dist/server/rpc/handlers/set-config.d.ts +0 -3
  179. package/dist/server/rpc/handlers/set-config.js +0 -18
@@ -5,6 +5,7 @@ import { delegateSchema } from "./delegate.js";
5
5
  import { nmtConfigSchema } from "./translation-config.js";
6
6
  import { ttsConfigSchema } from "./text-to-speech.js";
7
7
  import { modelSrcInputSchema, modelInputToSrcSchema, modelInputToNameSchema, } from "./model-src-utils.js";
8
+ import { reloadConfigRequestSchema } from "./reload-config.js";
8
9
  const loadModelOptionsBaseSchema = z.union([
9
10
  z.object({
10
11
  modelSrc: modelSrcInputSchema,
@@ -201,7 +202,7 @@ export const loadTtsModelRequestSchema = commonModelConfigSchema.extend({
201
202
  eSpeakDataPath: z.string(),
202
203
  });
203
204
  // Union of all load model request types
204
- export const loadModelRequestSchema = z
205
+ export const loadModelSrcRequestSchema = z
205
206
  .discriminatedUnion("modelType", [
206
207
  loadLlmModelRequestSchema,
207
208
  loadWhisperModelRequestSchema,
@@ -213,6 +214,11 @@ export const loadModelRequestSchema = z
213
214
  ...data,
214
215
  seed: data.seed ?? false,
215
216
  }));
217
+ // Combined request schema: load new model OR reload config
218
+ export const loadModelRequestSchema = z.union([
219
+ loadModelSrcRequestSchema,
220
+ reloadConfigRequestSchema,
221
+ ]);
216
222
  export const loadModelResponseSchema = z.object({
217
223
  type: z.literal("loadModel"),
218
224
  success: z.boolean(),
@@ -1,14 +1,21 @@
1
1
  import { z } from "zod";
2
+ export declare const logLevelSchema: z.ZodEnum<{
3
+ error: "error";
4
+ warn: "warn";
5
+ info: "info";
6
+ debug: "debug";
7
+ off: "off";
8
+ }>;
2
9
  declare const loggingParamsSchema: z.ZodObject<{
3
- modelId: z.ZodString;
10
+ id: z.ZodString;
4
11
  }, z.core.$strip>;
5
12
  export declare const loggingStreamRequestSchema: z.ZodObject<{
6
- modelId: z.ZodString;
13
+ id: z.ZodString;
7
14
  type: z.ZodLiteral<"loggingStream">;
8
15
  }, z.core.$strip>;
9
16
  export declare const loggingStreamResponseSchema: z.ZodObject<{
10
17
  type: z.ZodLiteral<"loggingStream">;
11
- modelId: z.ZodString;
18
+ id: z.ZodString;
12
19
  level: z.ZodEnum<{
13
20
  error: "error";
14
21
  warn: "warn";
@@ -1,15 +1,16 @@
1
1
  import { z } from "zod";
2
2
  const logLevelValues = ["error", "warn", "info", "debug"];
3
+ export const logLevelSchema = z.enum(logLevelValues);
3
4
  const loggingParamsSchema = z.object({
4
- modelId: z.string(),
5
+ id: z.string(),
5
6
  });
6
7
  export const loggingStreamRequestSchema = loggingParamsSchema.extend({
7
8
  type: z.literal("loggingStream"),
8
9
  });
9
10
  export const loggingStreamResponseSchema = z.object({
10
11
  type: z.literal("loggingStream"),
11
- modelId: z.string(),
12
- level: z.enum(logLevelValues),
12
+ id: z.string(),
13
+ level: logLevelSchema,
13
14
  namespace: z.string(),
14
15
  message: z.string(),
15
16
  timestamp: z.number(),
@@ -0,0 +1,47 @@
1
+ import type { JsonSchema } from "./json-schema";
2
+ export type McpTool = {
3
+ name: string;
4
+ description?: string | undefined;
5
+ inputSchema: JsonSchema | Record<string, unknown>;
6
+ };
7
+ export type McpResource = {
8
+ uri: string;
9
+ name: string;
10
+ description?: string | undefined;
11
+ mimeType?: string | undefined;
12
+ };
13
+ export type McpToolCallResult = {
14
+ content?: Array<{
15
+ type: string;
16
+ text?: string | undefined;
17
+ data?: string | undefined;
18
+ mimeType?: string | undefined;
19
+ }>;
20
+ toolResult?: unknown;
21
+ isError?: boolean | undefined;
22
+ };
23
+ export type McpClient = {
24
+ listTools: () => Promise<{
25
+ tools: McpTool[];
26
+ [key: string]: unknown;
27
+ }>;
28
+ callTool: (params: {
29
+ name: string;
30
+ arguments: Record<string, unknown>;
31
+ }) => Promise<McpToolCallResult | Record<string, unknown>>;
32
+ listResources?: () => Promise<{
33
+ resources: McpResource[];
34
+ [key: string]: unknown;
35
+ }>;
36
+ readResource?: (params: {
37
+ uri: string;
38
+ }) => Promise<{
39
+ contents: unknown[];
40
+ [key: string]: unknown;
41
+ }>;
42
+ };
43
+ export type McpClientInput = {
44
+ client: McpClient;
45
+ includeResources?: boolean;
46
+ };
47
+ //# sourceMappingURL=mcp-adapter.d.ts.map
@@ -0,0 +1 @@
1
+ export {};
@@ -1,4 +1,6 @@
1
1
  import { z } from "zod";
2
+ export declare const MODEL_TYPES: readonly ["llm", "whisper", "embeddings", "nmt", "tts"];
3
+ export type ModelType = (typeof MODEL_TYPES)[number];
2
4
  export declare const modelDescriptorSchema: z.ZodObject<{
3
5
  src: z.ZodString;
4
6
  name: z.ZodOptional<z.ZodString>;
@@ -12,8 +14,8 @@ export declare const modelDescriptorSchema: z.ZodObject<{
12
14
  whisper: "whisper";
13
15
  embeddings: "embeddings";
14
16
  nmt: "nmt";
15
- vad: "vad";
16
17
  tts: "tts";
18
+ vad: "vad";
17
19
  }>>;
18
20
  }, z.core.$strip>;
19
21
  export declare const modelSrcInputSchema: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
@@ -29,8 +31,8 @@ export declare const modelSrcInputSchema: z.ZodUnion<readonly [z.ZodString, z.Zo
29
31
  whisper: "whisper";
30
32
  embeddings: "embeddings";
31
33
  nmt: "nmt";
32
- vad: "vad";
33
34
  tts: "tts";
35
+ vad: "vad";
34
36
  }>>;
35
37
  }, z.core.$strip>]>;
36
38
  export type ModelDescriptor = z.infer<typeof modelDescriptorSchema>;
@@ -52,8 +54,8 @@ export declare const modelInputToSrcSchema: z.ZodPipe<z.ZodUnion<readonly [z.Zod
52
54
  whisper: "whisper";
53
55
  embeddings: "embeddings";
54
56
  nmt: "nmt";
55
- vad: "vad";
56
57
  tts: "tts";
58
+ vad: "vad";
57
59
  }>>;
58
60
  }, z.core.$strip>]>, z.ZodTransform<string, string | {
59
61
  src: string;
@@ -63,7 +65,7 @@ export declare const modelInputToSrcSchema: z.ZodPipe<z.ZodUnion<readonly [z.Zod
63
65
  hyperbeeKey?: string | undefined;
64
66
  expectedSize?: number | undefined;
65
67
  sha256Checksum?: string | undefined;
66
- addon?: "llm" | "whisper" | "embeddings" | "nmt" | "vad" | "tts" | undefined;
68
+ addon?: "llm" | "whisper" | "embeddings" | "nmt" | "tts" | "vad" | undefined;
67
69
  }>>;
68
70
  /**
69
71
  * Schema that transforms ModelSrc to its optional name
@@ -82,8 +84,8 @@ export declare const modelInputToNameSchema: z.ZodPipe<z.ZodUnion<readonly [z.Zo
82
84
  whisper: "whisper";
83
85
  embeddings: "embeddings";
84
86
  nmt: "nmt";
85
- vad: "vad";
86
87
  tts: "tts";
88
+ vad: "vad";
87
89
  }>>;
88
90
  }, z.core.$strip>]>, z.ZodTransform<string | undefined, string | {
89
91
  src: string;
@@ -93,6 +95,6 @@ export declare const modelInputToNameSchema: z.ZodPipe<z.ZodUnion<readonly [z.Zo
93
95
  hyperbeeKey?: string | undefined;
94
96
  expectedSize?: number | undefined;
95
97
  sha256Checksum?: string | undefined;
96
- addon?: "llm" | "whisper" | "embeddings" | "nmt" | "vad" | "tts" | undefined;
98
+ addon?: "llm" | "whisper" | "embeddings" | "nmt" | "tts" | "vad" | undefined;
97
99
  }>>;
98
100
  //# sourceMappingURL=model-src-utils.d.ts.map
@@ -1,4 +1,11 @@
1
1
  import { z } from "zod";
2
+ export const MODEL_TYPES = [
3
+ "llm",
4
+ "whisper",
5
+ "embeddings",
6
+ "nmt",
7
+ "tts",
8
+ ];
2
9
  export const modelDescriptorSchema = z.object({
3
10
  src: z.string(),
4
11
  name: z.string().optional(),
@@ -7,9 +14,7 @@ export const modelDescriptorSchema = z.object({
7
14
  hyperbeeKey: z.string().optional(),
8
15
  expectedSize: z.number().optional(),
9
16
  sha256Checksum: z.string().optional(),
10
- addon: z
11
- .enum(["llm", "whisper", "embeddings", "nmt", "vad", "tts"])
12
- .optional(),
17
+ addon: z.enum([...MODEL_TYPES, "vad"]).optional(),
13
18
  });
14
19
  export const modelSrcInputSchema = z.union([z.string(), modelDescriptorSchema]);
15
20
  /**
@@ -0,0 +1,344 @@
1
+ import { z } from "zod";
2
+ import { whisperConfigSchema } from "./whispercpp-config";
3
+ export declare const modelIdSchema: z.ZodString;
4
+ export declare const reloadConfigOptionsSchema: z.ZodUnion<readonly [z.ZodObject<{
5
+ modelId: z.ZodString;
6
+ modelType: z.ZodLiteral<"whisper">;
7
+ modelConfig: z.ZodObject<{
8
+ strategy: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
9
+ greedy: "greedy";
10
+ beam_search: "beam_search";
11
+ }>>>;
12
+ n_threads: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
13
+ n_max_text_ctx: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
14
+ offset_ms: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
15
+ duration_ms: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
16
+ audio_ctx: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
17
+ translate: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
18
+ no_context: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
19
+ no_timestamps: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
20
+ single_segment: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
21
+ print_special: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
22
+ print_progress: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
23
+ print_realtime: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
24
+ print_timestamps: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
25
+ token_timestamps: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
26
+ thold_pt: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
27
+ thold_ptsum: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
28
+ max_len: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
29
+ split_on_word: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
30
+ max_tokens: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
31
+ debug_mode: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
32
+ tdrz_enable: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
33
+ suppress_regex: z.ZodOptional<z.ZodOptional<z.ZodString>>;
34
+ initial_prompt: z.ZodOptional<z.ZodOptional<z.ZodString>>;
35
+ language: z.ZodOptional<z.ZodOptional<z.ZodString>>;
36
+ detect_language: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
37
+ suppress_blank: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
38
+ suppress_nst: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
39
+ temperature: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
40
+ length_penalty: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
41
+ temperature_inc: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
42
+ entropy_thold: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
43
+ logprob_thold: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
44
+ greedy_best_of: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
45
+ beam_search_beam_size: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
46
+ vad_model_path: z.ZodOptional<z.ZodOptional<z.ZodString>>;
47
+ vad_params: z.ZodOptional<z.ZodOptional<z.ZodObject<{
48
+ threshold: z.ZodOptional<z.ZodNumber>;
49
+ min_speech_duration_ms: z.ZodOptional<z.ZodNumber>;
50
+ min_silence_duration_ms: z.ZodOptional<z.ZodNumber>;
51
+ max_speech_duration_s: z.ZodOptional<z.ZodNumber>;
52
+ speech_pad_ms: z.ZodOptional<z.ZodNumber>;
53
+ samples_overlap: z.ZodOptional<z.ZodNumber>;
54
+ }, z.core.$strip>>>;
55
+ audio_format: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
56
+ f32le: "f32le";
57
+ s16le: "s16le";
58
+ }>>>;
59
+ contextParams: z.ZodOptional<z.ZodOptional<z.ZodObject<{
60
+ model: z.ZodOptional<z.ZodString>;
61
+ use_gpu: z.ZodOptional<z.ZodBoolean>;
62
+ flash_attn: z.ZodOptional<z.ZodBoolean>;
63
+ gpu_device: z.ZodOptional<z.ZodNumber>;
64
+ }, z.core.$strip>>>;
65
+ miscConfig: z.ZodOptional<z.ZodOptional<z.ZodObject<{
66
+ caption_enabled: z.ZodOptional<z.ZodBoolean>;
67
+ }, z.core.$strip>>>;
68
+ }, z.core.$strict>;
69
+ }, z.core.$strip>]>;
70
+ export declare const reloadConfigOptionsToRequestSchema: z.ZodUnion<readonly [z.ZodPipe<z.ZodObject<{
71
+ modelId: z.ZodString;
72
+ modelType: z.ZodLiteral<"whisper">;
73
+ modelConfig: z.ZodObject<{
74
+ strategy: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
75
+ greedy: "greedy";
76
+ beam_search: "beam_search";
77
+ }>>>;
78
+ n_threads: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
79
+ n_max_text_ctx: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
80
+ offset_ms: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
81
+ duration_ms: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
82
+ audio_ctx: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
83
+ translate: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
84
+ no_context: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
85
+ no_timestamps: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
86
+ single_segment: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
87
+ print_special: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
88
+ print_progress: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
89
+ print_realtime: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
90
+ print_timestamps: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
91
+ token_timestamps: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
92
+ thold_pt: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
93
+ thold_ptsum: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
94
+ max_len: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
95
+ split_on_word: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
96
+ max_tokens: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
97
+ debug_mode: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
98
+ tdrz_enable: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
99
+ suppress_regex: z.ZodOptional<z.ZodOptional<z.ZodString>>;
100
+ initial_prompt: z.ZodOptional<z.ZodOptional<z.ZodString>>;
101
+ language: z.ZodOptional<z.ZodOptional<z.ZodString>>;
102
+ detect_language: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
103
+ suppress_blank: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
104
+ suppress_nst: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
105
+ temperature: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
106
+ length_penalty: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
107
+ temperature_inc: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
108
+ entropy_thold: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
109
+ logprob_thold: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
110
+ greedy_best_of: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
111
+ beam_search_beam_size: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
112
+ vad_model_path: z.ZodOptional<z.ZodOptional<z.ZodString>>;
113
+ vad_params: z.ZodOptional<z.ZodOptional<z.ZodObject<{
114
+ threshold: z.ZodOptional<z.ZodNumber>;
115
+ min_speech_duration_ms: z.ZodOptional<z.ZodNumber>;
116
+ min_silence_duration_ms: z.ZodOptional<z.ZodNumber>;
117
+ max_speech_duration_s: z.ZodOptional<z.ZodNumber>;
118
+ speech_pad_ms: z.ZodOptional<z.ZodNumber>;
119
+ samples_overlap: z.ZodOptional<z.ZodNumber>;
120
+ }, z.core.$strip>>>;
121
+ audio_format: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
122
+ f32le: "f32le";
123
+ s16le: "s16le";
124
+ }>>>;
125
+ contextParams: z.ZodOptional<z.ZodOptional<z.ZodObject<{
126
+ model: z.ZodOptional<z.ZodString>;
127
+ use_gpu: z.ZodOptional<z.ZodBoolean>;
128
+ flash_attn: z.ZodOptional<z.ZodBoolean>;
129
+ gpu_device: z.ZodOptional<z.ZodNumber>;
130
+ }, z.core.$strip>>>;
131
+ miscConfig: z.ZodOptional<z.ZodOptional<z.ZodObject<{
132
+ caption_enabled: z.ZodOptional<z.ZodBoolean>;
133
+ }, z.core.$strip>>>;
134
+ }, z.core.$strict>;
135
+ }, z.core.$strip>, z.ZodTransform<{
136
+ type: "loadModel";
137
+ modelId: string;
138
+ modelType: "whisper";
139
+ modelConfig: z.infer<typeof whisperConfigSchema>;
140
+ }, {
141
+ modelId: string;
142
+ modelType: "whisper";
143
+ modelConfig: {
144
+ strategy?: "greedy" | "beam_search" | undefined;
145
+ n_threads?: number | undefined;
146
+ n_max_text_ctx?: number | undefined;
147
+ offset_ms?: number | undefined;
148
+ duration_ms?: number | undefined;
149
+ audio_ctx?: number | undefined;
150
+ translate?: boolean | undefined;
151
+ no_context?: boolean | undefined;
152
+ no_timestamps?: boolean | undefined;
153
+ single_segment?: boolean | undefined;
154
+ print_special?: boolean | undefined;
155
+ print_progress?: boolean | undefined;
156
+ print_realtime?: boolean | undefined;
157
+ print_timestamps?: boolean | undefined;
158
+ token_timestamps?: boolean | undefined;
159
+ thold_pt?: number | undefined;
160
+ thold_ptsum?: number | undefined;
161
+ max_len?: number | undefined;
162
+ split_on_word?: boolean | undefined;
163
+ max_tokens?: number | undefined;
164
+ debug_mode?: boolean | undefined;
165
+ tdrz_enable?: boolean | undefined;
166
+ suppress_regex?: string | undefined;
167
+ initial_prompt?: string | undefined;
168
+ language?: string | undefined;
169
+ detect_language?: boolean | undefined;
170
+ suppress_blank?: boolean | undefined;
171
+ suppress_nst?: boolean | undefined;
172
+ temperature?: number | undefined;
173
+ length_penalty?: number | undefined;
174
+ temperature_inc?: number | undefined;
175
+ entropy_thold?: number | undefined;
176
+ logprob_thold?: number | undefined;
177
+ greedy_best_of?: number | undefined;
178
+ beam_search_beam_size?: number | undefined;
179
+ vad_model_path?: string | undefined;
180
+ vad_params?: {
181
+ threshold?: number | undefined;
182
+ min_speech_duration_ms?: number | undefined;
183
+ min_silence_duration_ms?: number | undefined;
184
+ max_speech_duration_s?: number | undefined;
185
+ speech_pad_ms?: number | undefined;
186
+ samples_overlap?: number | undefined;
187
+ } | undefined;
188
+ audio_format?: "f32le" | "s16le" | undefined;
189
+ contextParams?: {
190
+ model?: string | undefined;
191
+ use_gpu?: boolean | undefined;
192
+ flash_attn?: boolean | undefined;
193
+ gpu_device?: number | undefined;
194
+ } | undefined;
195
+ miscConfig?: {
196
+ caption_enabled?: boolean | undefined;
197
+ } | undefined;
198
+ };
199
+ }>>]>;
200
+ export declare const reloadConfigWhisperRequestSchema: z.ZodObject<{
201
+ type: z.ZodLiteral<"loadModel">;
202
+ modelId: z.ZodString;
203
+ modelSrc: z.ZodOptional<z.ZodNever>;
204
+ withProgress: z.ZodOptional<z.ZodNever>;
205
+ delegate: z.ZodOptional<z.ZodNever>;
206
+ seed: z.ZodOptional<z.ZodNever>;
207
+ modelType: z.ZodLiteral<"whisper">;
208
+ modelConfig: z.ZodObject<{
209
+ strategy: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
210
+ greedy: "greedy";
211
+ beam_search: "beam_search";
212
+ }>>>;
213
+ n_threads: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
214
+ n_max_text_ctx: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
215
+ offset_ms: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
216
+ duration_ms: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
217
+ audio_ctx: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
218
+ translate: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
219
+ no_context: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
220
+ no_timestamps: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
221
+ single_segment: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
222
+ print_special: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
223
+ print_progress: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
224
+ print_realtime: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
225
+ print_timestamps: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
226
+ token_timestamps: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
227
+ thold_pt: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
228
+ thold_ptsum: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
229
+ max_len: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
230
+ split_on_word: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
231
+ max_tokens: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
232
+ debug_mode: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
233
+ tdrz_enable: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
234
+ suppress_regex: z.ZodOptional<z.ZodOptional<z.ZodString>>;
235
+ initial_prompt: z.ZodOptional<z.ZodOptional<z.ZodString>>;
236
+ language: z.ZodOptional<z.ZodOptional<z.ZodString>>;
237
+ detect_language: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
238
+ suppress_blank: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
239
+ suppress_nst: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
240
+ temperature: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
241
+ length_penalty: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
242
+ temperature_inc: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
243
+ entropy_thold: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
244
+ logprob_thold: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
245
+ greedy_best_of: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
246
+ beam_search_beam_size: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
247
+ vad_model_path: z.ZodOptional<z.ZodOptional<z.ZodString>>;
248
+ vad_params: z.ZodOptional<z.ZodOptional<z.ZodObject<{
249
+ threshold: z.ZodOptional<z.ZodNumber>;
250
+ min_speech_duration_ms: z.ZodOptional<z.ZodNumber>;
251
+ min_silence_duration_ms: z.ZodOptional<z.ZodNumber>;
252
+ max_speech_duration_s: z.ZodOptional<z.ZodNumber>;
253
+ speech_pad_ms: z.ZodOptional<z.ZodNumber>;
254
+ samples_overlap: z.ZodOptional<z.ZodNumber>;
255
+ }, z.core.$strip>>>;
256
+ audio_format: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
257
+ f32le: "f32le";
258
+ s16le: "s16le";
259
+ }>>>;
260
+ contextParams: z.ZodOptional<z.ZodOptional<z.ZodObject<{
261
+ model: z.ZodOptional<z.ZodString>;
262
+ use_gpu: z.ZodOptional<z.ZodBoolean>;
263
+ flash_attn: z.ZodOptional<z.ZodBoolean>;
264
+ gpu_device: z.ZodOptional<z.ZodNumber>;
265
+ }, z.core.$strip>>>;
266
+ miscConfig: z.ZodOptional<z.ZodOptional<z.ZodObject<{
267
+ caption_enabled: z.ZodOptional<z.ZodBoolean>;
268
+ }, z.core.$strip>>>;
269
+ }, z.core.$strip>;
270
+ }, z.core.$strip>;
271
+ export declare const reloadConfigRequestSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
272
+ type: z.ZodLiteral<"loadModel">;
273
+ modelId: z.ZodString;
274
+ modelSrc: z.ZodOptional<z.ZodNever>;
275
+ withProgress: z.ZodOptional<z.ZodNever>;
276
+ delegate: z.ZodOptional<z.ZodNever>;
277
+ seed: z.ZodOptional<z.ZodNever>;
278
+ modelType: z.ZodLiteral<"whisper">;
279
+ modelConfig: z.ZodObject<{
280
+ strategy: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
281
+ greedy: "greedy";
282
+ beam_search: "beam_search";
283
+ }>>>;
284
+ n_threads: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
285
+ n_max_text_ctx: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
286
+ offset_ms: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
287
+ duration_ms: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
288
+ audio_ctx: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
289
+ translate: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
290
+ no_context: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
291
+ no_timestamps: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
292
+ single_segment: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
293
+ print_special: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
294
+ print_progress: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
295
+ print_realtime: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
296
+ print_timestamps: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
297
+ token_timestamps: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
298
+ thold_pt: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
299
+ thold_ptsum: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
300
+ max_len: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
301
+ split_on_word: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
302
+ max_tokens: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
303
+ debug_mode: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
304
+ tdrz_enable: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
305
+ suppress_regex: z.ZodOptional<z.ZodOptional<z.ZodString>>;
306
+ initial_prompt: z.ZodOptional<z.ZodOptional<z.ZodString>>;
307
+ language: z.ZodOptional<z.ZodOptional<z.ZodString>>;
308
+ detect_language: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
309
+ suppress_blank: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
310
+ suppress_nst: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
311
+ temperature: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
312
+ length_penalty: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
313
+ temperature_inc: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
314
+ entropy_thold: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
315
+ logprob_thold: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
316
+ greedy_best_of: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
317
+ beam_search_beam_size: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
318
+ vad_model_path: z.ZodOptional<z.ZodOptional<z.ZodString>>;
319
+ vad_params: z.ZodOptional<z.ZodOptional<z.ZodObject<{
320
+ threshold: z.ZodOptional<z.ZodNumber>;
321
+ min_speech_duration_ms: z.ZodOptional<z.ZodNumber>;
322
+ min_silence_duration_ms: z.ZodOptional<z.ZodNumber>;
323
+ max_speech_duration_s: z.ZodOptional<z.ZodNumber>;
324
+ speech_pad_ms: z.ZodOptional<z.ZodNumber>;
325
+ samples_overlap: z.ZodOptional<z.ZodNumber>;
326
+ }, z.core.$strip>>>;
327
+ audio_format: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
328
+ f32le: "f32le";
329
+ s16le: "s16le";
330
+ }>>>;
331
+ contextParams: z.ZodOptional<z.ZodOptional<z.ZodObject<{
332
+ model: z.ZodOptional<z.ZodString>;
333
+ use_gpu: z.ZodOptional<z.ZodBoolean>;
334
+ flash_attn: z.ZodOptional<z.ZodBoolean>;
335
+ gpu_device: z.ZodOptional<z.ZodNumber>;
336
+ }, z.core.$strip>>>;
337
+ miscConfig: z.ZodOptional<z.ZodOptional<z.ZodObject<{
338
+ caption_enabled: z.ZodOptional<z.ZodBoolean>;
339
+ }, z.core.$strip>>>;
340
+ }, z.core.$strip>;
341
+ }, z.core.$strip>], "modelType">;
342
+ export type ReloadConfigRequest = z.infer<typeof reloadConfigRequestSchema>;
343
+ export type ReloadConfigOptions = z.infer<typeof reloadConfigOptionsSchema>;
344
+ //# sourceMappingURL=reload-config.d.ts.map
@@ -0,0 +1,42 @@
1
+ import { z } from "zod";
2
+ import { whisperConfigSchema } from "./whispercpp-config.js";
3
+ export const modelIdSchema = z
4
+ .string()
5
+ .regex(/^[0-9a-f]{16}$/, "Invalid modelId format");
6
+ export const reloadConfigOptionsSchema = z.union([
7
+ z.object({
8
+ modelId: modelIdSchema,
9
+ modelType: z.literal("whisper"),
10
+ modelConfig: whisperConfigSchema.partial().strict(),
11
+ }),
12
+ ]);
13
+ export const reloadConfigOptionsToRequestSchema = z.union([
14
+ z
15
+ .object({
16
+ modelId: modelIdSchema,
17
+ modelType: z.literal("whisper"),
18
+ modelConfig: whisperConfigSchema.partial().strict(),
19
+ })
20
+ .transform((data) => ({
21
+ type: "loadModel",
22
+ modelId: data.modelId,
23
+ modelType: "whisper",
24
+ modelConfig: data.modelConfig,
25
+ })),
26
+ ]);
27
+ const reloadConfigRequestBaseSchema = z.object({
28
+ type: z.literal("loadModel"),
29
+ modelId: modelIdSchema,
30
+ // Explicitly exclude load-specific fields for type narrowing
31
+ modelSrc: z.never().optional(),
32
+ withProgress: z.never().optional(),
33
+ delegate: z.never().optional(),
34
+ seed: z.never().optional(),
35
+ });
36
+ export const reloadConfigWhisperRequestSchema = reloadConfigRequestBaseSchema.extend({
37
+ modelType: z.literal("whisper"),
38
+ modelConfig: whisperConfigSchema.partial(),
39
+ });
40
+ export const reloadConfigRequestSchema = z.discriminatedUnion("modelType", [
41
+ reloadConfigWhisperRequestSchema,
42
+ ]);
@@ -0,0 +1,22 @@
1
+ import { z } from "zod";
2
+ /**
3
+ * QVAC SDK Configuration Schema
4
+ *
5
+ * This configuration is loaded once at SDK initialization from a config file
6
+ * (qvac.config.json, qvac.config.js, or qvac.config.ts) and remains immutable
7
+ * throughout the SDK's lifetime.
8
+ */
9
+ export declare const qvacConfigSchema: z.ZodObject<{
10
+ cacheDirectory: z.ZodOptional<z.ZodString>;
11
+ swarmRelays: z.ZodOptional<z.ZodArray<z.ZodString>>;
12
+ loggerLevel: z.ZodOptional<z.ZodEnum<{
13
+ error: "error";
14
+ warn: "warn";
15
+ info: "info";
16
+ debug: "debug";
17
+ off: "off";
18
+ }>>;
19
+ loggerConsoleOutput: z.ZodOptional<z.ZodBoolean>;
20
+ }, z.core.$strip>;
21
+ export type QvacConfig = z.infer<typeof qvacConfigSchema>;
22
+ //# sourceMappingURL=sdk-config.d.ts.map
@@ -0,0 +1,33 @@
1
+ import { z } from "zod";
2
+ import { logLevelSchema } from "./logging-stream.js";
3
+ /**
4
+ * QVAC SDK Configuration Schema
5
+ *
6
+ * This configuration is loaded once at SDK initialization from a config file
7
+ * (qvac.config.json, qvac.config.js, or qvac.config.ts) and remains immutable
8
+ * throughout the SDK's lifetime.
9
+ */
10
+ export const qvacConfigSchema = z.object({
11
+ /**
12
+ * Absolute path to the directory where models and other cached assets are stored.
13
+ * If not specified, defaults to ~/.qvac/models
14
+ */
15
+ cacheDirectory: z.string().optional(),
16
+ /**
17
+ * Array of Hyperswarm relay public keys (hex strings) for improved P2P connectivity.
18
+ * Blind relays help with NAT traversal and firewall bypassing.
19
+ */
20
+ swarmRelays: z.array(z.string()).optional(),
21
+ /**
22
+ * Global log level for all SDK loggers.
23
+ * Options: "error", "warn", "info", "debug"
24
+ * Defaults to "info".
25
+ */
26
+ loggerLevel: logLevelSchema.optional(),
27
+ /**
28
+ * Enable or disable console output for SDK loggers.
29
+ * When false, logs are only sent to streams/transports, not printed to console.
30
+ * Defaults to true.
31
+ */
32
+ loggerConsoleOutput: z.boolean().optional(),
33
+ });
@@ -19,6 +19,10 @@ export declare const SDK_CLIENT_ERROR_CODES: {
19
19
  readonly DELEGATE_CONNECTION_FAILED: 50404;
20
20
  readonly SDK_NOT_FOUND_IN_NODE_MODULES: 50600;
21
21
  readonly WORKER_FILE_NOT_FOUND: 50601;
22
+ readonly CONFIG_FILE_NOT_FOUND: 50602;
23
+ readonly CONFIG_FILE_INVALID: 50603;
24
+ readonly CONFIG_FILE_PARSE_FAILED: 50604;
25
+ readonly CONFIG_VALIDATION_FAILED: 50605;
22
26
  };
23
27
  declare const clientErrorDefinitions: ErrorCodesMap;
24
28
  export { clientErrorDefinitions as SDK_CLIENT_ERROR_DEFINITIONS };