@dbx-tools/shared-model-gateway 0.9.61 → 0.9.64
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.
- package/README.md +6 -2
- package/index.ts +2 -2
- package/lib/index.d.ts +2 -2
- package/lib/index.js +3 -3
- package/lib/src/options.d.ts +45 -0
- package/lib/src/options.js +27 -9
- package/package.json +3 -3
- package/src/options.ts +50 -25
package/README.md
CHANGED
|
@@ -67,14 +67,18 @@ import {
|
|
|
67
67
|
} from "@dbx-tools/shared-model-gateway/options";
|
|
68
68
|
|
|
69
69
|
const options = resolveModelGatewayOptions({
|
|
70
|
-
|
|
71
|
-
|
|
70
|
+
listen: "localhost:4400",
|
|
71
|
+
modelClass: "chat-balanced",
|
|
72
72
|
bodyLimit: "100mb",
|
|
73
73
|
});
|
|
74
74
|
|
|
75
75
|
ModelGatewayOptionsSchema.parse(options);
|
|
76
76
|
```
|
|
77
77
|
|
|
78
|
+
`ModelSelectionOptionsSchema` owns the mutually exclusive `model` and
|
|
79
|
+
`modelClass` fields shared by model-gateway and Genie Code callers. Omit both to
|
|
80
|
+
select the best available chat model.
|
|
81
|
+
|
|
78
82
|
## Package API
|
|
79
83
|
|
|
80
84
|
- `client` creates the model-discovery client and typed HTTP errors.
|
package/index.ts
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
// Hand edits are overwritten on the next watch; this file is read-only.
|
|
4
4
|
|
|
5
5
|
export const PACKAGE_IDENTIFIER = "@dbx-tools/shared-model-gateway";
|
|
6
|
-
export const PACKAGE_VERSION = "0.9.
|
|
6
|
+
export const PACKAGE_VERSION = "0.9.64";
|
|
7
7
|
export * as client from "./src/client.ts";
|
|
8
8
|
export * as contracts from "./src/contracts.ts";
|
|
9
9
|
export * as models from "./src/models.ts";
|
|
@@ -15,6 +15,6 @@ export { ClientProtocolSchema, UpstreamProtocolSchema, ModelCapabilitiesSchema,
|
|
|
15
15
|
export type { ClientProtocol, UpstreamProtocol, ModelCapabilities, ModelTarget, RequestedFeatures, GatewayRoute, ModelCapabilityOverride, ResolveRouteInput } from "./src/contracts.ts";
|
|
16
16
|
export { OpenAIModelCapabilitiesSchema, OpenAIModelSchema, OpenAIModelListResponseSchema, CodexReasoningLevelSchema, CodexTruncationPolicySchema, CodexModelSchema, CodexModelListResponseSchema, ModelListResponseSchema, EmbeddingRequestSchema, EmbeddingDataSchema, EmbeddingUsageSchema, EmbeddingResponseSchema, OpenAIErrorResponseSchema, AnthropicErrorResponseSchema, GatewayErrorResponseSchema } from "./src/models.ts";
|
|
17
17
|
export type { OpenAIModelCapabilities, OpenAIModel, OpenAIModelListResponse, CodexReasoningLevel, CodexTruncationPolicy, CodexModel, CodexModelListResponse, ModelListResponse, EmbeddingRequest, EmbeddingData, EmbeddingUsage, EmbeddingResponse, OpenAIErrorResponse, AnthropicErrorResponse, GatewayErrorResponse } from "./src/models.ts";
|
|
18
|
-
export { ModelGatewayOptionsSchema, ModelGatewayCliOptionsSchema, MODEL_GATEWAY_DEFAULTS } from "./src/options.ts";
|
|
18
|
+
export { ModelOptionSchema, ModelClassOptionSchema, ChatModelClassOptionSchema, ModelSelectionOptionsSchema, ChatModelSelectionOptionsSchema, ModelGatewayOptionsSchema, ModelGatewayCliOptionsSchema, MODEL_GATEWAY_DEFAULTS } from "./src/options.ts";
|
|
19
19
|
export type { ModelGatewayOptions, ResolvedModelGatewayOptions, ModelGatewayCliOptions } from "./src/options.ts";
|
|
20
20
|
export * from "./exports.ts";
|
package/lib/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export declare const PACKAGE_IDENTIFIER = "@dbx-tools/shared-model-gateway";
|
|
2
|
-
export declare const PACKAGE_VERSION = "0.9.
|
|
2
|
+
export declare const PACKAGE_VERSION = "0.9.64";
|
|
3
3
|
export * as client from "./src/client.ts";
|
|
4
4
|
export * as contracts from "./src/contracts.ts";
|
|
5
5
|
export * as models from "./src/models.ts";
|
|
@@ -11,6 +11,6 @@ export { ClientProtocolSchema, UpstreamProtocolSchema, ModelCapabilitiesSchema,
|
|
|
11
11
|
export type { ClientProtocol, UpstreamProtocol, ModelCapabilities, ModelTarget, RequestedFeatures, GatewayRoute, ModelCapabilityOverride, ResolveRouteInput } from "./src/contracts.ts";
|
|
12
12
|
export { OpenAIModelCapabilitiesSchema, OpenAIModelSchema, OpenAIModelListResponseSchema, CodexReasoningLevelSchema, CodexTruncationPolicySchema, CodexModelSchema, CodexModelListResponseSchema, ModelListResponseSchema, EmbeddingRequestSchema, EmbeddingDataSchema, EmbeddingUsageSchema, EmbeddingResponseSchema, OpenAIErrorResponseSchema, AnthropicErrorResponseSchema, GatewayErrorResponseSchema } from "./src/models.ts";
|
|
13
13
|
export type { OpenAIModelCapabilities, OpenAIModel, OpenAIModelListResponse, CodexReasoningLevel, CodexTruncationPolicy, CodexModel, CodexModelListResponse, ModelListResponse, EmbeddingRequest, EmbeddingData, EmbeddingUsage, EmbeddingResponse, OpenAIErrorResponse, AnthropicErrorResponse, GatewayErrorResponse } from "./src/models.ts";
|
|
14
|
-
export { ModelGatewayOptionsSchema, ModelGatewayCliOptionsSchema, MODEL_GATEWAY_DEFAULTS } from "./src/options.ts";
|
|
14
|
+
export { ModelOptionSchema, ModelClassOptionSchema, ChatModelClassOptionSchema, ModelSelectionOptionsSchema, ChatModelSelectionOptionsSchema, ModelGatewayOptionsSchema, ModelGatewayCliOptionsSchema, MODEL_GATEWAY_DEFAULTS } from "./src/options.ts";
|
|
15
15
|
export type { ModelGatewayOptions, ResolvedModelGatewayOptions, ModelGatewayCliOptions } from "./src/options.ts";
|
|
16
16
|
export * from "./exports.ts";
|
package/lib/index.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// Regenerated from the exporting modules in ./src.
|
|
3
3
|
// Hand edits are overwritten on the next watch; this file is read-only.
|
|
4
4
|
export const PACKAGE_IDENTIFIER = "@dbx-tools/shared-model-gateway";
|
|
5
|
-
export const PACKAGE_VERSION = "0.9.
|
|
5
|
+
export const PACKAGE_VERSION = "0.9.64";
|
|
6
6
|
export * as client from "./src/client.js";
|
|
7
7
|
export * as contracts from "./src/contracts.js";
|
|
8
8
|
export * as models from "./src/models.js";
|
|
@@ -11,6 +11,6 @@ export * as upstream from "./src/upstream.js";
|
|
|
11
11
|
export { ModelGatewayClientError } from "./src/client.js";
|
|
12
12
|
export { ClientProtocolSchema, UpstreamProtocolSchema, ModelCapabilitiesSchema, ModelTargetSchema, RequestedFeaturesSchema, GatewayRouteSchema, ModelCapabilityOverrideSchema, ResolveRouteInputSchema } from "./src/contracts.js";
|
|
13
13
|
export { OpenAIModelCapabilitiesSchema, OpenAIModelSchema, OpenAIModelListResponseSchema, CodexReasoningLevelSchema, CodexTruncationPolicySchema, CodexModelSchema, CodexModelListResponseSchema, ModelListResponseSchema, EmbeddingRequestSchema, EmbeddingDataSchema, EmbeddingUsageSchema, EmbeddingResponseSchema, OpenAIErrorResponseSchema, AnthropicErrorResponseSchema, GatewayErrorResponseSchema } from "./src/models.js";
|
|
14
|
-
export { ModelGatewayOptionsSchema, ModelGatewayCliOptionsSchema, MODEL_GATEWAY_DEFAULTS } from "./src/options.js";
|
|
14
|
+
export { ModelOptionSchema, ModelClassOptionSchema, ChatModelClassOptionSchema, ModelSelectionOptionsSchema, ChatModelSelectionOptionsSchema, ModelGatewayOptionsSchema, ModelGatewayCliOptionsSchema, MODEL_GATEWAY_DEFAULTS } from "./src/options.js";
|
|
15
15
|
export * from "./exports.js";
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwyQ0FBMkM7QUFDM0MsbURBQW1EO0FBQ25ELHdFQUF3RTtBQUV4RSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxpQ0FBaUMsQ0FBQztBQUNwRSxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsUUFBUSxDQUFDO0FBQ3hDLE9BQU8sS0FBSyxNQUFNLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxLQUFLLFNBQVMsTUFBTSxvQkFBb0IsQ0FBQztBQUNoRCxPQUFPLEtBQUssTUFBTSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sS0FBSyxPQUFPLE1BQU0sa0JBQWtCLENBQUM7QUFDNUMsT0FBTyxLQUFLLFFBQVEsTUFBTSxtQkFBbUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUxRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsc0JBQXNCLEVBQUUsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQUUsdUJBQXVCLEVBQUUsa0JBQWtCLEVBQUUsNkJBQTZCLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVuTyxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsaUJBQWlCLEVBQUUsNkJBQTZCLEVBQUUseUJBQXlCLEVBQUUsMkJBQTJCLEVBQUUsZ0JBQWdCLEVBQUUsNEJBQTRCLEVBQUUsdUJBQXVCLEVBQUUsc0JBQXNCLEVBQUUsbUJBQW1CLEVBQUUsb0JBQW9CLEVBQUUsdUJBQXVCLEVBQUUseUJBQXlCLEVBQUUsNEJBQTRCLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVwYSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsc0JBQXNCLEVBQUUsMEJBQTBCLEVBQUUsMkJBQTJCLEVBQUUsK0JBQStCLEVBQUUseUJBQXlCLEVBQUUsNEJBQTRCLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUV4UCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEdFTkVSQVRFRCBieSBwcm9qZW4gd2F0Y2ggLSBETyBOT1QgRURJVC5cbi8vIFJlZ2VuZXJhdGVkIGZyb20gdGhlIGV4cG9ydGluZyBtb2R1bGVzIGluIC4vc3JjLlxuLy8gSGFuZCBlZGl0cyBhcmUgb3ZlcndyaXR0ZW4gb24gdGhlIG5leHQgd2F0Y2g7IHRoaXMgZmlsZSBpcyByZWFkLW9ubHkuXG5cbmV4cG9ydCBjb25zdCBQQUNLQUdFX0lERU5USUZJRVIgPSBcIkBkYngtdG9vbHMvc2hhcmVkLW1vZGVsLWdhdGV3YXlcIjtcbmV4cG9ydCBjb25zdCBQQUNLQUdFX1ZFUlNJT04gPSBcIjAuOS42NFwiO1xuZXhwb3J0ICogYXMgY2xpZW50IGZyb20gXCIuL3NyYy9jbGllbnQudHNcIjtcbmV4cG9ydCAqIGFzIGNvbnRyYWN0cyBmcm9tIFwiLi9zcmMvY29udHJhY3RzLnRzXCI7XG5leHBvcnQgKiBhcyBtb2RlbHMgZnJvbSBcIi4vc3JjL21vZGVscy50c1wiO1xuZXhwb3J0ICogYXMgb3B0aW9ucyBmcm9tIFwiLi9zcmMvb3B0aW9ucy50c1wiO1xuZXhwb3J0ICogYXMgdXBzdHJlYW0gZnJvbSBcIi4vc3JjL3Vwc3RyZWFtLnRzXCI7XG5leHBvcnQgeyBNb2RlbEdhdGV3YXlDbGllbnRFcnJvciB9IGZyb20gXCIuL3NyYy9jbGllbnQudHNcIjtcbmV4cG9ydCB0eXBlIHsgTW9kZWxHYXRld2F5Q2xpZW50T3B0aW9ucywgTGlzdE1vZGVsc09wdGlvbnMsIE1vZGVsR2F0ZXdheUNsaWVudCB9IGZyb20gXCIuL3NyYy9jbGllbnQudHNcIjtcbmV4cG9ydCB7IENsaWVudFByb3RvY29sU2NoZW1hLCBVcHN0cmVhbVByb3RvY29sU2NoZW1hLCBNb2RlbENhcGFiaWxpdGllc1NjaGVtYSwgTW9kZWxUYXJnZXRTY2hlbWEsIFJlcXVlc3RlZEZlYXR1cmVzU2NoZW1hLCBHYXRld2F5Um91dGVTY2hlbWEsIE1vZGVsQ2FwYWJpbGl0eU92ZXJyaWRlU2NoZW1hLCBSZXNvbHZlUm91dGVJbnB1dFNjaGVtYSB9IGZyb20gXCIuL3NyYy9jb250cmFjdHMudHNcIjtcbmV4cG9ydCB0eXBlIHsgQ2xpZW50UHJvdG9jb2wsIFVwc3RyZWFtUHJvdG9jb2wsIE1vZGVsQ2FwYWJpbGl0aWVzLCBNb2RlbFRhcmdldCwgUmVxdWVzdGVkRmVhdHVyZXMsIEdhdGV3YXlSb3V0ZSwgTW9kZWxDYXBhYmlsaXR5T3ZlcnJpZGUsIFJlc29sdmVSb3V0ZUlucHV0IH0gZnJvbSBcIi4vc3JjL2NvbnRyYWN0cy50c1wiO1xuZXhwb3J0IHsgT3BlbkFJTW9kZWxDYXBhYmlsaXRpZXNTY2hlbWEsIE9wZW5BSU1vZGVsU2NoZW1hLCBPcGVuQUlNb2RlbExpc3RSZXNwb25zZVNjaGVtYSwgQ29kZXhSZWFzb25pbmdMZXZlbFNjaGVtYSwgQ29kZXhUcnVuY2F0aW9uUG9saWN5U2NoZW1hLCBDb2RleE1vZGVsU2NoZW1hLCBDb2RleE1vZGVsTGlzdFJlc3BvbnNlU2NoZW1hLCBNb2RlbExpc3RSZXNwb25zZVNjaGVtYSwgRW1iZWRkaW5nUmVxdWVzdFNjaGVtYSwgRW1iZWRkaW5nRGF0YVNjaGVtYSwgRW1iZWRkaW5nVXNhZ2VTY2hlbWEsIEVtYmVkZGluZ1Jlc3BvbnNlU2NoZW1hLCBPcGVuQUlFcnJvclJlc3BvbnNlU2NoZW1hLCBBbnRocm9waWNFcnJvclJlc3BvbnNlU2NoZW1hLCBHYXRld2F5RXJyb3JSZXNwb25zZVNjaGVtYSB9IGZyb20gXCIuL3NyYy9tb2RlbHMudHNcIjtcbmV4cG9ydCB0eXBlIHsgT3BlbkFJTW9kZWxDYXBhYmlsaXRpZXMsIE9wZW5BSU1vZGVsLCBPcGVuQUlNb2RlbExpc3RSZXNwb25zZSwgQ29kZXhSZWFzb25pbmdMZXZlbCwgQ29kZXhUcnVuY2F0aW9uUG9saWN5LCBDb2RleE1vZGVsLCBDb2RleE1vZGVsTGlzdFJlc3BvbnNlLCBNb2RlbExpc3RSZXNwb25zZSwgRW1iZWRkaW5nUmVxdWVzdCwgRW1iZWRkaW5nRGF0YSwgRW1iZWRkaW5nVXNhZ2UsIEVtYmVkZGluZ1Jlc3BvbnNlLCBPcGVuQUlFcnJvclJlc3BvbnNlLCBBbnRocm9waWNFcnJvclJlc3BvbnNlLCBHYXRld2F5RXJyb3JSZXNwb25zZSB9IGZyb20gXCIuL3NyYy9tb2RlbHMudHNcIjtcbmV4cG9ydCB7IE1vZGVsT3B0aW9uU2NoZW1hLCBNb2RlbENsYXNzT3B0aW9uU2NoZW1hLCBDaGF0TW9kZWxDbGFzc09wdGlvblNjaGVtYSwgTW9kZWxTZWxlY3Rpb25PcHRpb25zU2NoZW1hLCBDaGF0TW9kZWxTZWxlY3Rpb25PcHRpb25zU2NoZW1hLCBNb2RlbEdhdGV3YXlPcHRpb25zU2NoZW1hLCBNb2RlbEdhdGV3YXlDbGlPcHRpb25zU2NoZW1hLCBNT0RFTF9HQVRFV0FZX0RFRkFVTFRTIH0gZnJvbSBcIi4vc3JjL29wdGlvbnMudHNcIjtcbmV4cG9ydCB0eXBlIHsgTW9kZWxHYXRld2F5T3B0aW9ucywgUmVzb2x2ZWRNb2RlbEdhdGV3YXlPcHRpb25zLCBNb2RlbEdhdGV3YXlDbGlPcHRpb25zIH0gZnJvbSBcIi4vc3JjL29wdGlvbnMudHNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2V4cG9ydHMudHNcIjtcbiJdfQ==
|
package/lib/src/options.d.ts
CHANGED
|
@@ -8,13 +8,56 @@
|
|
|
8
8
|
*/
|
|
9
9
|
import { options } from "@dbx-tools/shared-core";
|
|
10
10
|
import { z } from "zod";
|
|
11
|
+
export declare const ModelOptionSchema: z.ZodOptional<z.ZodString>;
|
|
12
|
+
export declare const ModelClassOptionSchema: z.ZodOptional<z.ZodEnum<{
|
|
13
|
+
"chat-thinking": "chat-thinking";
|
|
14
|
+
"chat-balanced": "chat-balanced";
|
|
15
|
+
"chat-fast": "chat-fast";
|
|
16
|
+
embedding: "embedding";
|
|
17
|
+
}>>;
|
|
18
|
+
export declare const ChatModelClassOptionSchema: z.ZodOptional<z.ZodEnum<{
|
|
19
|
+
"chat-thinking": "chat-thinking";
|
|
20
|
+
"chat-balanced": "chat-balanced";
|
|
21
|
+
"chat-fast": "chat-fast";
|
|
22
|
+
}>>;
|
|
23
|
+
export declare const ModelSelectionOptionsSchema: z.ZodObject<{
|
|
24
|
+
model: z.ZodOptional<z.ZodString>;
|
|
25
|
+
modelClass: z.ZodOptional<z.ZodEnum<{
|
|
26
|
+
"chat-thinking": "chat-thinking";
|
|
27
|
+
"chat-balanced": "chat-balanced";
|
|
28
|
+
"chat-fast": "chat-fast";
|
|
29
|
+
embedding: "embedding";
|
|
30
|
+
}>>;
|
|
31
|
+
}, z.core.$strip>;
|
|
32
|
+
export declare const ChatModelSelectionOptionsSchema: z.ZodObject<{
|
|
33
|
+
model: z.ZodOptional<z.ZodString>;
|
|
34
|
+
modelClass: z.ZodOptional<z.ZodEnum<{
|
|
35
|
+
"chat-thinking": "chat-thinking";
|
|
36
|
+
"chat-balanced": "chat-balanced";
|
|
37
|
+
"chat-fast": "chat-fast";
|
|
38
|
+
}>>;
|
|
39
|
+
}, z.core.$strip>;
|
|
11
40
|
export declare const ModelGatewayOptionsSchema: z.ZodObject<{
|
|
41
|
+
model: z.ZodOptional<z.ZodString>;
|
|
42
|
+
modelClass: z.ZodOptional<z.ZodEnum<{
|
|
43
|
+
"chat-thinking": "chat-thinking";
|
|
44
|
+
"chat-balanced": "chat-balanced";
|
|
45
|
+
"chat-fast": "chat-fast";
|
|
46
|
+
embedding: "embedding";
|
|
47
|
+
}>>;
|
|
12
48
|
listen: z.ZodDefault<z.ZodType<options.TcpListenAddress, unknown, z.core.$ZodTypeInternals<options.TcpListenAddress, unknown>>>;
|
|
13
49
|
profile: z.ZodOptional<z.ZodString>;
|
|
14
50
|
bodyLimit: z.ZodDefault<z.ZodString>;
|
|
15
51
|
bearerToken: z.ZodOptional<z.ZodString>;
|
|
16
52
|
}, z.core.$strict>;
|
|
17
53
|
export declare const ModelGatewayCliOptionsSchema: z.ZodObject<{
|
|
54
|
+
model: z.ZodOptional<z.ZodString>;
|
|
55
|
+
modelClass: z.ZodOptional<z.ZodEnum<{
|
|
56
|
+
"chat-thinking": "chat-thinking";
|
|
57
|
+
"chat-balanced": "chat-balanced";
|
|
58
|
+
"chat-fast": "chat-fast";
|
|
59
|
+
embedding: "embedding";
|
|
60
|
+
}>>;
|
|
18
61
|
listen: z.ZodDefault<z.ZodType<options.TcpListenAddress, unknown, z.core.$ZodTypeInternals<options.TcpListenAddress, unknown>>>;
|
|
19
62
|
profile: z.ZodOptional<z.ZodString>;
|
|
20
63
|
bodyLimit: z.ZodDefault<z.ZodString>;
|
|
@@ -28,6 +71,8 @@ export type ModelGatewayCliOptions = z.output<typeof ModelGatewayCliOptionsSchem
|
|
|
28
71
|
export declare const MODEL_GATEWAY_DEFAULTS: Readonly<{
|
|
29
72
|
listen: options.TcpListenAddress;
|
|
30
73
|
bodyLimit: string;
|
|
74
|
+
model?: string | undefined;
|
|
75
|
+
modelClass?: "chat-thinking" | "chat-balanced" | "chat-fast" | "embedding" | undefined;
|
|
31
76
|
profile?: string | undefined;
|
|
32
77
|
bearerToken?: string | undefined;
|
|
33
78
|
}>;
|
package/lib/src/options.js
CHANGED
|
@@ -7,19 +7,37 @@
|
|
|
7
7
|
* @module
|
|
8
8
|
*/
|
|
9
9
|
import { options } from "@dbx-tools/shared-core";
|
|
10
|
+
import { ModelClassSchema } from "@dbx-tools/shared-model/contracts";
|
|
10
11
|
import { z } from "zod";
|
|
11
|
-
export const
|
|
12
|
+
export const ModelOptionSchema = z
|
|
13
|
+
.string()
|
|
14
|
+
.trim()
|
|
15
|
+
.min(1)
|
|
16
|
+
.optional()
|
|
17
|
+
.describe("Optional fuzzy or exact model name.");
|
|
18
|
+
export const ModelClassOptionSchema = ModelClassSchema.optional().describe("Optional model capability class used when selecting a default model.");
|
|
19
|
+
export const ChatModelClassOptionSchema = ModelClassSchema.exclude(["embedding"])
|
|
20
|
+
.optional()
|
|
21
|
+
.describe("Optional chat capability class used when selecting a default model.");
|
|
22
|
+
export const ModelSelectionOptionsSchema = z
|
|
12
23
|
.object({
|
|
24
|
+
model: ModelOptionSchema,
|
|
25
|
+
modelClass: ModelClassOptionSchema,
|
|
26
|
+
})
|
|
27
|
+
.refine((options) => !(options.model && options.modelClass), {
|
|
28
|
+
message: "Model and model class are mutually exclusive.",
|
|
29
|
+
path: ["modelClass"],
|
|
30
|
+
})
|
|
31
|
+
.describe("Model selection by name or capability class.");
|
|
32
|
+
export const ChatModelSelectionOptionsSchema = ModelSelectionOptionsSchema.safeExtend({
|
|
33
|
+
modelClass: ChatModelClassOptionSchema,
|
|
34
|
+
}).describe("Chat-model selection by name or capability class.");
|
|
35
|
+
export const ModelGatewayOptionsSchema = ModelSelectionOptionsSchema.safeExtend({
|
|
13
36
|
listen: options
|
|
14
37
|
.listenAddressSchema({ port: 4000, loopback: true })
|
|
15
38
|
.describe("Loopback listener address."),
|
|
16
39
|
profile: options.DatabricksOptionsSchema.shape.profile.describe("Databricks profile used for model discovery and requests."),
|
|
17
|
-
bodyLimit: z
|
|
18
|
-
.string()
|
|
19
|
-
.trim()
|
|
20
|
-
.min(1)
|
|
21
|
-
.default("100mb")
|
|
22
|
-
.describe("Maximum JSON request body size."),
|
|
40
|
+
bodyLimit: z.string().trim().min(1).default("100mb").describe("Maximum JSON request body size."),
|
|
23
41
|
bearerToken: z
|
|
24
42
|
.string()
|
|
25
43
|
.trim()
|
|
@@ -34,7 +52,7 @@ export const ModelGatewayOptionsSchema = z
|
|
|
34
52
|
})
|
|
35
53
|
.strict()
|
|
36
54
|
.describe("Model-gateway server configuration.");
|
|
37
|
-
export const ModelGatewayCliOptionsSchema = ModelGatewayOptionsSchema.
|
|
55
|
+
export const ModelGatewayCliOptionsSchema = ModelGatewayOptionsSchema.safeExtend({
|
|
38
56
|
runtimeInfo: z.boolean().default(false).describe("Print runtime implementation metadata."),
|
|
39
57
|
})
|
|
40
58
|
.refine((options) => options.listen.port > 0, {
|
|
@@ -52,4 +70,4 @@ export function resolveModelGatewayOptions(options = {}) {
|
|
|
52
70
|
export function resolveModelGatewayCliOptions(options) {
|
|
53
71
|
return ModelGatewayCliOptionsSchema.parse(options);
|
|
54
72
|
}
|
|
55
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
73
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O0dBT0c7QUFFSCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDakQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDckUsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUV4QixNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxDQUFDO0tBQy9CLE1BQU0sRUFBRTtLQUNSLElBQUksRUFBRTtLQUNOLEdBQUcsQ0FBQyxDQUFDLENBQUM7S0FDTixRQUFRLEVBQUU7S0FDVixRQUFRLENBQUMscUNBQXFDLENBQUMsQ0FBQztBQUVuRCxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLENBQ3hFLHNFQUFzRSxDQUN2RSxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUcsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUM7S0FDOUUsUUFBUSxFQUFFO0tBQ1YsUUFBUSxDQUFDLHFFQUFxRSxDQUFDLENBQUM7QUFFbkYsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQUcsQ0FBQztLQUN6QyxNQUFNLENBQUM7SUFDTixLQUFLLEVBQUUsaUJBQWlCO0lBQ3hCLFVBQVUsRUFBRSxzQkFBc0I7Q0FDbkMsQ0FBQztLQUNELE1BQU0sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLElBQUksT0FBTyxDQUFDLFVBQVUsQ0FBQyxFQUFFO0lBQzNELE9BQU8sRUFBRSwrQ0FBK0M7SUFDeEQsSUFBSSxFQUFFLENBQUMsWUFBWSxDQUFDO0NBQ3JCLENBQUM7S0FDRCxRQUFRLENBQUMsOENBQThDLENBQUMsQ0FBQztBQUU1RCxNQUFNLENBQUMsTUFBTSwrQkFBK0IsR0FBRywyQkFBMkIsQ0FBQyxVQUFVLENBQUM7SUFDcEYsVUFBVSxFQUFFLDBCQUEwQjtDQUN2QyxDQUFDLENBQUMsUUFBUSxDQUFDLG1EQUFtRCxDQUFDLENBQUM7QUFFakUsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsMkJBQTJCLENBQUMsVUFBVSxDQUFDO0lBQzlFLE1BQU0sRUFBRSxPQUFPO1NBQ1osbUJBQW1CLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQztTQUNuRCxRQUFRLENBQUMsNEJBQTRCLENBQUM7SUFDekMsT0FBTyxFQUFFLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FDN0QsMkRBQTJELENBQzVEO0lBQ0QsU0FBUyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxpQ0FBaUMsQ0FBQztJQUNoRyxXQUFXLEVBQUUsQ0FBQztTQUNYLE1BQU0sRUFBRTtTQUNSLElBQUksRUFBRTtTQUNOLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDTixRQUFRLEVBQUU7U0FDVixRQUFRLENBQUMsd0RBQXdELENBQUM7U0FDbEUsSUFBSSxDQUFDO1FBQ0osR0FBRyxFQUFFLHNDQUFzQztRQUMzQyxJQUFJLEVBQUUsS0FBSztRQUNYLFdBQVcsRUFBRSxLQUFLO0tBQ25CLENBQUM7Q0FDTCxDQUFDO0tBQ0MsTUFBTSxFQUFFO0tBQ1IsUUFBUSxDQUFDLHFDQUFxQyxDQUFDLENBQUM7QUFFbkQsTUFBTSxDQUFDLE1BQU0sNEJBQTRCLEdBQUcseUJBQXlCLENBQUMsVUFBVSxDQUFDO0lBQy9FLFdBQVcsRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyx3Q0FBd0MsQ0FBQztDQUMzRixDQUFDO0tBQ0MsTUFBTSxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUU7SUFDNUMsT0FBTyxFQUFFLCtDQUErQztJQUN4RCxJQUFJLEVBQUUsQ0FBQyxRQUFRLENBQUM7Q0FDakIsQ0FBQztLQUNELFFBQVEsQ0FBQywyQ0FBMkMsQ0FBQyxDQUFDO0FBUXpELHNEQUFzRDtBQUN0RCxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLHlCQUF5QixDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBRXpGLHlEQUF5RDtBQUN6RCxNQUFNLFVBQVUsMEJBQTBCLENBQ3hDLFVBQStCLEVBQUU7SUFFakMsT0FBTyx5QkFBeUIsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDbEQsQ0FBQztBQUVELCtEQUErRDtBQUMvRCxNQUFNLFVBQVUsNkJBQTZCLENBQUMsT0FBZ0I7SUFDNUQsT0FBTyw0QkFBNEIsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDckQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQnJvd3Nlci1zYWZlIG1vZGVsLWdhdGV3YXkgcnVudGltZSBhbmQgQ0xJIGNvbmZpZ3VyYXRpb24uXG4gKlxuICogRmllbGQgbmFtZXMgYW5kIGRlc2NyaXB0aW9ucyBhcmUgdGhlIHNpbmdsZSBzb3VyY2UgZm9yIGRlcml2ZWQgQ29tbWFuZGVyXG4gKiBmbGFncywgZW52aXJvbm1lbnQgbmFtZXMsIGdlbmVyYXRlZCBoZWxwLCBKYXZhU2NyaXB0IGNhbGxlcnMsIGFuZCBzZXJ2aWNlcy5cbiAqXG4gKiBAbW9kdWxlXG4gKi9cblxuaW1wb3J0IHsgb3B0aW9ucyB9IGZyb20gXCJAZGJ4LXRvb2xzL3NoYXJlZC1jb3JlXCI7XG5pbXBvcnQgeyBNb2RlbENsYXNzU2NoZW1hIH0gZnJvbSBcIkBkYngtdG9vbHMvc2hhcmVkLW1vZGVsL2NvbnRyYWN0c1wiO1xuaW1wb3J0IHsgeiB9IGZyb20gXCJ6b2RcIjtcblxuZXhwb3J0IGNvbnN0IE1vZGVsT3B0aW9uU2NoZW1hID0gelxuICAuc3RyaW5nKClcbiAgLnRyaW0oKVxuICAubWluKDEpXG4gIC5vcHRpb25hbCgpXG4gIC5kZXNjcmliZShcIk9wdGlvbmFsIGZ1enp5IG9yIGV4YWN0IG1vZGVsIG5hbWUuXCIpO1xuXG5leHBvcnQgY29uc3QgTW9kZWxDbGFzc09wdGlvblNjaGVtYSA9IE1vZGVsQ2xhc3NTY2hlbWEub3B0aW9uYWwoKS5kZXNjcmliZShcbiAgXCJPcHRpb25hbCBtb2RlbCBjYXBhYmlsaXR5IGNsYXNzIHVzZWQgd2hlbiBzZWxlY3RpbmcgYSBkZWZhdWx0IG1vZGVsLlwiLFxuKTtcblxuZXhwb3J0IGNvbnN0IENoYXRNb2RlbENsYXNzT3B0aW9uU2NoZW1hID0gTW9kZWxDbGFzc1NjaGVtYS5leGNsdWRlKFtcImVtYmVkZGluZ1wiXSlcbiAgLm9wdGlvbmFsKClcbiAgLmRlc2NyaWJlKFwiT3B0aW9uYWwgY2hhdCBjYXBhYmlsaXR5IGNsYXNzIHVzZWQgd2hlbiBzZWxlY3RpbmcgYSBkZWZhdWx0IG1vZGVsLlwiKTtcblxuZXhwb3J0IGNvbnN0IE1vZGVsU2VsZWN0aW9uT3B0aW9uc1NjaGVtYSA9IHpcbiAgLm9iamVjdCh7XG4gICAgbW9kZWw6IE1vZGVsT3B0aW9uU2NoZW1hLFxuICAgIG1vZGVsQ2xhc3M6IE1vZGVsQ2xhc3NPcHRpb25TY2hlbWEsXG4gIH0pXG4gIC5yZWZpbmUoKG9wdGlvbnMpID0+ICEob3B0aW9ucy5tb2RlbCAmJiBvcHRpb25zLm1vZGVsQ2xhc3MpLCB7XG4gICAgbWVzc2FnZTogXCJNb2RlbCBhbmQgbW9kZWwgY2xhc3MgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZS5cIixcbiAgICBwYXRoOiBbXCJtb2RlbENsYXNzXCJdLFxuICB9KVxuICAuZGVzY3JpYmUoXCJNb2RlbCBzZWxlY3Rpb24gYnkgbmFtZSBvciBjYXBhYmlsaXR5IGNsYXNzLlwiKTtcblxuZXhwb3J0IGNvbnN0IENoYXRNb2RlbFNlbGVjdGlvbk9wdGlvbnNTY2hlbWEgPSBNb2RlbFNlbGVjdGlvbk9wdGlvbnNTY2hlbWEuc2FmZUV4dGVuZCh7XG4gIG1vZGVsQ2xhc3M6IENoYXRNb2RlbENsYXNzT3B0aW9uU2NoZW1hLFxufSkuZGVzY3JpYmUoXCJDaGF0LW1vZGVsIHNlbGVjdGlvbiBieSBuYW1lIG9yIGNhcGFiaWxpdHkgY2xhc3MuXCIpO1xuXG5leHBvcnQgY29uc3QgTW9kZWxHYXRld2F5T3B0aW9uc1NjaGVtYSA9IE1vZGVsU2VsZWN0aW9uT3B0aW9uc1NjaGVtYS5zYWZlRXh0ZW5kKHtcbiAgbGlzdGVuOiBvcHRpb25zXG4gICAgLmxpc3RlbkFkZHJlc3NTY2hlbWEoeyBwb3J0OiA0MDAwLCBsb29wYmFjazogdHJ1ZSB9KVxuICAgIC5kZXNjcmliZShcIkxvb3BiYWNrIGxpc3RlbmVyIGFkZHJlc3MuXCIpLFxuICBwcm9maWxlOiBvcHRpb25zLkRhdGFicmlja3NPcHRpb25zU2NoZW1hLnNoYXBlLnByb2ZpbGUuZGVzY3JpYmUoXG4gICAgXCJEYXRhYnJpY2tzIHByb2ZpbGUgdXNlZCBmb3IgbW9kZWwgZGlzY292ZXJ5IGFuZCByZXF1ZXN0cy5cIixcbiAgKSxcbiAgYm9keUxpbWl0OiB6LnN0cmluZygpLnRyaW0oKS5taW4oMSkuZGVmYXVsdChcIjEwMG1iXCIpLmRlc2NyaWJlKFwiTWF4aW11bSBKU09OIHJlcXVlc3QgYm9keSBzaXplLlwiKSxcbiAgYmVhcmVyVG9rZW46IHpcbiAgICAuc3RyaW5nKClcbiAgICAudHJpbSgpXG4gICAgLm1pbigxKVxuICAgIC5vcHRpb25hbCgpXG4gICAgLmRlc2NyaWJlKFwiT3B0aW9uYWwgYmVhcmVyIHRva2VuIHJlcXVpcmVkIGJ5IGV2ZXJ5IGdhdGV3YXkgcm91dGUuXCIpXG4gICAgLm1ldGEoe1xuICAgICAgZW52OiBcIkRCWF9UT09MU19NT0RFTF9HQVRFV0FZX0JFQVJFUl9UT0tFTlwiLFxuICAgICAgZmxhZzogZmFsc2UsXG4gICAgICBoZWxwRGVmYXVsdDogZmFsc2UsXG4gICAgfSksXG59KVxuICAuc3RyaWN0KClcbiAgLmRlc2NyaWJlKFwiTW9kZWwtZ2F0ZXdheSBzZXJ2ZXIgY29uZmlndXJhdGlvbi5cIik7XG5cbmV4cG9ydCBjb25zdCBNb2RlbEdhdGV3YXlDbGlPcHRpb25zU2NoZW1hID0gTW9kZWxHYXRld2F5T3B0aW9uc1NjaGVtYS5zYWZlRXh0ZW5kKHtcbiAgcnVudGltZUluZm86IHouYm9vbGVhbigpLmRlZmF1bHQoZmFsc2UpLmRlc2NyaWJlKFwiUHJpbnQgcnVudGltZSBpbXBsZW1lbnRhdGlvbiBtZXRhZGF0YS5cIiksXG59KVxuICAucmVmaW5lKChvcHRpb25zKSA9PiBvcHRpb25zLmxpc3Rlbi5wb3J0ID4gMCwge1xuICAgIG1lc3NhZ2U6IFwiUG9ydCBtdXN0IGJlIGFuIGludGVnZXIgZnJvbSAxIHRocm91Z2ggNjU1MzUuXCIsXG4gICAgcGF0aDogW1wibGlzdGVuXCJdLFxuICB9KVxuICAuZGVzY3JpYmUoXCJNb2RlbC1nYXRld2F5IGNvbW1hbmQtbGluZSBjb25maWd1cmF0aW9uLlwiKTtcblxuZXhwb3J0IHR5cGUgTW9kZWxHYXRld2F5T3B0aW9ucyA9IHouaW5wdXQ8dHlwZW9mIE1vZGVsR2F0ZXdheU9wdGlvbnNTY2hlbWE+O1xuXG5leHBvcnQgdHlwZSBSZXNvbHZlZE1vZGVsR2F0ZXdheU9wdGlvbnMgPSB6Lm91dHB1dDx0eXBlb2YgTW9kZWxHYXRld2F5T3B0aW9uc1NjaGVtYT47XG5cbmV4cG9ydCB0eXBlIE1vZGVsR2F0ZXdheUNsaU9wdGlvbnMgPSB6Lm91dHB1dDx0eXBlb2YgTW9kZWxHYXRld2F5Q2xpT3B0aW9uc1NjaGVtYT47XG5cbi8qKiBEZWZhdWx0cyBwYXJzZWQgZnJvbSB0aGUgb3duaW5nIHJ1bnRpbWUgc2NoZW1hLiAqL1xuZXhwb3J0IGNvbnN0IE1PREVMX0dBVEVXQVlfREVGQVVMVFMgPSBPYmplY3QuZnJlZXplKE1vZGVsR2F0ZXdheU9wdGlvbnNTY2hlbWEucGFyc2Uoe30pKTtcblxuLyoqIFZhbGlkYXRlIGFuZCBkZWZhdWx0IG1vZGVsLWdhdGV3YXkgc2VydmVyIG9wdGlvbnMuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZU1vZGVsR2F0ZXdheU9wdGlvbnMoXG4gIG9wdGlvbnM6IE1vZGVsR2F0ZXdheU9wdGlvbnMgPSB7fSxcbik6IFJlc29sdmVkTW9kZWxHYXRld2F5T3B0aW9ucyB7XG4gIHJldHVybiBNb2RlbEdhdGV3YXlPcHRpb25zU2NoZW1hLnBhcnNlKG9wdGlvbnMpO1xufVxuXG4vKiogVmFsaWRhdGUgYW5kIGRlZmF1bHQgbW9kZWwtZ2F0ZXdheSBjb21tYW5kLWxpbmUgb3B0aW9ucy4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlTW9kZWxHYXRld2F5Q2xpT3B0aW9ucyhvcHRpb25zOiB1bmtub3duKTogTW9kZWxHYXRld2F5Q2xpT3B0aW9ucyB7XG4gIHJldHVybiBNb2RlbEdhdGV3YXlDbGlPcHRpb25zU2NoZW1hLnBhcnNlKG9wdGlvbnMpO1xufVxuIl19
|
package/package.json
CHANGED
|
@@ -22,8 +22,8 @@
|
|
|
22
22
|
"typescript": "^5.9.3"
|
|
23
23
|
},
|
|
24
24
|
"dependencies": {
|
|
25
|
-
"@dbx-tools/shared-core": "^0.9.
|
|
26
|
-
"@dbx-tools/shared-model": "^0.9.
|
|
25
|
+
"@dbx-tools/shared-core": "^0.9.64",
|
|
26
|
+
"@dbx-tools/shared-model": "^0.9.64",
|
|
27
27
|
"zod": "4.3.6"
|
|
28
28
|
},
|
|
29
29
|
"main": "./lib/index.js",
|
|
@@ -60,7 +60,7 @@
|
|
|
60
60
|
"./package.json": "./package.json"
|
|
61
61
|
}
|
|
62
62
|
},
|
|
63
|
-
"version": "0.9.
|
|
63
|
+
"version": "0.9.64",
|
|
64
64
|
"types": "./lib/index.d.ts",
|
|
65
65
|
"dbxToolsConfig": {
|
|
66
66
|
"tags": [
|
package/src/options.ts
CHANGED
|
@@ -8,38 +8,63 @@
|
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
import { options } from "@dbx-tools/shared-core";
|
|
11
|
+
import { ModelClassSchema } from "@dbx-tools/shared-model/contracts";
|
|
11
12
|
import { z } from "zod";
|
|
12
13
|
|
|
13
|
-
export const
|
|
14
|
+
export const ModelOptionSchema = z
|
|
15
|
+
.string()
|
|
16
|
+
.trim()
|
|
17
|
+
.min(1)
|
|
18
|
+
.optional()
|
|
19
|
+
.describe("Optional fuzzy or exact model name.");
|
|
20
|
+
|
|
21
|
+
export const ModelClassOptionSchema = ModelClassSchema.optional().describe(
|
|
22
|
+
"Optional model capability class used when selecting a default model.",
|
|
23
|
+
);
|
|
24
|
+
|
|
25
|
+
export const ChatModelClassOptionSchema = ModelClassSchema.exclude(["embedding"])
|
|
26
|
+
.optional()
|
|
27
|
+
.describe("Optional chat capability class used when selecting a default model.");
|
|
28
|
+
|
|
29
|
+
export const ModelSelectionOptionsSchema = z
|
|
14
30
|
.object({
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
bodyLimit: z
|
|
22
|
-
.string()
|
|
23
|
-
.trim()
|
|
24
|
-
.min(1)
|
|
25
|
-
.default("100mb")
|
|
26
|
-
.describe("Maximum JSON request body size."),
|
|
27
|
-
bearerToken: z
|
|
28
|
-
.string()
|
|
29
|
-
.trim()
|
|
30
|
-
.min(1)
|
|
31
|
-
.optional()
|
|
32
|
-
.describe("Optional bearer token required by every gateway route.")
|
|
33
|
-
.meta({
|
|
34
|
-
env: "DBX_TOOLS_MODEL_GATEWAY_BEARER_TOKEN",
|
|
35
|
-
flag: false,
|
|
36
|
-
helpDefault: false,
|
|
37
|
-
}),
|
|
31
|
+
model: ModelOptionSchema,
|
|
32
|
+
modelClass: ModelClassOptionSchema,
|
|
33
|
+
})
|
|
34
|
+
.refine((options) => !(options.model && options.modelClass), {
|
|
35
|
+
message: "Model and model class are mutually exclusive.",
|
|
36
|
+
path: ["modelClass"],
|
|
38
37
|
})
|
|
38
|
+
.describe("Model selection by name or capability class.");
|
|
39
|
+
|
|
40
|
+
export const ChatModelSelectionOptionsSchema = ModelSelectionOptionsSchema.safeExtend({
|
|
41
|
+
modelClass: ChatModelClassOptionSchema,
|
|
42
|
+
}).describe("Chat-model selection by name or capability class.");
|
|
43
|
+
|
|
44
|
+
export const ModelGatewayOptionsSchema = ModelSelectionOptionsSchema.safeExtend({
|
|
45
|
+
listen: options
|
|
46
|
+
.listenAddressSchema({ port: 4000, loopback: true })
|
|
47
|
+
.describe("Loopback listener address."),
|
|
48
|
+
profile: options.DatabricksOptionsSchema.shape.profile.describe(
|
|
49
|
+
"Databricks profile used for model discovery and requests.",
|
|
50
|
+
),
|
|
51
|
+
bodyLimit: z.string().trim().min(1).default("100mb").describe("Maximum JSON request body size."),
|
|
52
|
+
bearerToken: z
|
|
53
|
+
.string()
|
|
54
|
+
.trim()
|
|
55
|
+
.min(1)
|
|
56
|
+
.optional()
|
|
57
|
+
.describe("Optional bearer token required by every gateway route.")
|
|
58
|
+
.meta({
|
|
59
|
+
env: "DBX_TOOLS_MODEL_GATEWAY_BEARER_TOKEN",
|
|
60
|
+
flag: false,
|
|
61
|
+
helpDefault: false,
|
|
62
|
+
}),
|
|
63
|
+
})
|
|
39
64
|
.strict()
|
|
40
65
|
.describe("Model-gateway server configuration.");
|
|
41
66
|
|
|
42
|
-
export const ModelGatewayCliOptionsSchema = ModelGatewayOptionsSchema.
|
|
67
|
+
export const ModelGatewayCliOptionsSchema = ModelGatewayOptionsSchema.safeExtend({
|
|
43
68
|
runtimeInfo: z.boolean().default(false).describe("Print runtime implementation metadata."),
|
|
44
69
|
})
|
|
45
70
|
.refine((options) => options.listen.port > 0, {
|