@dbx-tools/shared-model 0.9.31 → 0.9.36

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/exports.ts ADDED
@@ -0,0 +1,38 @@
1
+ export { ModelClass, ReasoningEffort } from "./src/contracts.ts";
2
+ export type {
3
+ EndpointCapabilities,
4
+ FamilyClass,
5
+ ModelCapabilities,
6
+ ModelMetadata,
7
+ ModelProfile,
8
+ ModelQuery,
9
+ ModelRateLimits,
10
+ ModelStatus,
11
+ RankedModel,
12
+ ResolvedModel,
13
+ ResolvedModelSelection,
14
+ ResolveModelInput,
15
+ ResolveModelOptions,
16
+ ScoredEndpoint,
17
+ ServingEndpointSummary,
18
+ } from "./src/contracts.ts";
19
+ export {
20
+ EndpointCapabilitiesSchema,
21
+ FamilyClassSchema,
22
+ ModelClassSchema,
23
+ ModelCapabilitiesSchema,
24
+ ModelMetadataSchema,
25
+ ModelProfileSchema,
26
+ ModelQuerySchema,
27
+ ModelRateLimitsSchema,
28
+ ModelStatusSchema,
29
+ RankedModelSchema,
30
+ ReasoningEffortSchema,
31
+ ReasoningEffortValues,
32
+ ResolvedModelSchema,
33
+ ResolvedModelSelectionSchema,
34
+ ResolveModelInputSchema,
35
+ ResolveModelOptionsSchema,
36
+ ScoredEndpointSchema,
37
+ ServingEndpointSummarySchema,
38
+ } from "./src/model.ts";
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";
6
- export const PACKAGE_VERSION = "0.9.31";
6
+ export const PACKAGE_VERSION = "0.9.36";
7
7
  export * as contracts from "./src/contracts.ts";
8
8
  export * as display from "./src/display.ts";
9
9
  export * as model from "./src/model.ts";
package/lib/exports.d.ts CHANGED
@@ -1,3 +1,3 @@
1
1
  export { ModelClass, ReasoningEffort } from "./src/contracts.ts";
2
- export type { ModelProfile, ModelQuery, ModelStatus, RankedModel, ServingEndpointSummary, } from "./src/contracts.ts";
3
- export { ModelClassSchema, ModelProfileSchema, ModelQuerySchema, ModelStatusSchema, RankedModelSchema, ReasoningEffortSchema, ReasoningEffortValues, ServingEndpointSummarySchema, } from "./src/model.ts";
2
+ export type { EndpointCapabilities, FamilyClass, ModelCapabilities, ModelMetadata, ModelProfile, ModelQuery, ModelRateLimits, ModelStatus, RankedModel, ResolvedModel, ResolvedModelSelection, ResolveModelInput, ResolveModelOptions, ScoredEndpoint, ServingEndpointSummary, } from "./src/contracts.ts";
3
+ export { EndpointCapabilitiesSchema, FamilyClassSchema, ModelClassSchema, ModelCapabilitiesSchema, ModelMetadataSchema, ModelProfileSchema, ModelQuerySchema, ModelRateLimitsSchema, ModelStatusSchema, RankedModelSchema, ReasoningEffortSchema, ReasoningEffortValues, ResolvedModelSchema, ResolvedModelSelectionSchema, ResolveModelInputSchema, ResolveModelOptionsSchema, ScoredEndpointSchema, ServingEndpointSummarySchema, } from "./src/model.ts";
package/lib/exports.js CHANGED
@@ -1,3 +1,3 @@
1
1
  export { ModelClass, ReasoningEffort } from "./src/contracts.js";
2
- export { ModelClassSchema, ModelProfileSchema, ModelQuerySchema, ModelStatusSchema, RankedModelSchema, ReasoningEffortSchema, ReasoningEffortValues, ServingEndpointSummarySchema, } from "./src/model.js";
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwb3J0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL2V4cG9ydHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQVFqRSxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLGtCQUFrQixFQUNsQixnQkFBZ0IsRUFDaEIsaUJBQWlCLEVBQ2pCLGlCQUFpQixFQUNqQixxQkFBcUIsRUFDckIscUJBQXFCLEVBQ3JCLDRCQUE0QixHQUM3QixNQUFNLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgTW9kZWxDbGFzcywgUmVhc29uaW5nRWZmb3J0IH0gZnJvbSBcIi4vc3JjL2NvbnRyYWN0cy50c1wiO1xuZXhwb3J0IHR5cGUge1xuICBNb2RlbFByb2ZpbGUsXG4gIE1vZGVsUXVlcnksXG4gIE1vZGVsU3RhdHVzLFxuICBSYW5rZWRNb2RlbCxcbiAgU2VydmluZ0VuZHBvaW50U3VtbWFyeSxcbn0gZnJvbSBcIi4vc3JjL2NvbnRyYWN0cy50c1wiO1xuZXhwb3J0IHtcbiAgTW9kZWxDbGFzc1NjaGVtYSxcbiAgTW9kZWxQcm9maWxlU2NoZW1hLFxuICBNb2RlbFF1ZXJ5U2NoZW1hLFxuICBNb2RlbFN0YXR1c1NjaGVtYSxcbiAgUmFua2VkTW9kZWxTY2hlbWEsXG4gIFJlYXNvbmluZ0VmZm9ydFNjaGVtYSxcbiAgUmVhc29uaW5nRWZmb3J0VmFsdWVzLFxuICBTZXJ2aW5nRW5kcG9pbnRTdW1tYXJ5U2NoZW1hLFxufSBmcm9tIFwiLi9zcmMvbW9kZWwudHNcIjtcbiJdfQ==
2
+ export { EndpointCapabilitiesSchema, FamilyClassSchema, ModelClassSchema, ModelCapabilitiesSchema, ModelMetadataSchema, ModelProfileSchema, ModelQuerySchema, ModelRateLimitsSchema, ModelStatusSchema, RankedModelSchema, ReasoningEffortSchema, ReasoningEffortValues, ResolvedModelSchema, ResolvedModelSelectionSchema, ResolveModelInputSchema, ResolveModelOptionsSchema, ScoredEndpointSchema, ServingEndpointSummarySchema, } from "./src/model.js";
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwb3J0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL2V4cG9ydHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQWtCakUsT0FBTyxFQUNMLDBCQUEwQixFQUMxQixpQkFBaUIsRUFDakIsZ0JBQWdCLEVBQ2hCLHVCQUF1QixFQUN2QixtQkFBbUIsRUFDbkIsa0JBQWtCLEVBQ2xCLGdCQUFnQixFQUNoQixxQkFBcUIsRUFDckIsaUJBQWlCLEVBQ2pCLGlCQUFpQixFQUNqQixxQkFBcUIsRUFDckIscUJBQXFCLEVBQ3JCLG1CQUFtQixFQUNuQiw0QkFBNEIsRUFDNUIsdUJBQXVCLEVBQ3ZCLHlCQUF5QixFQUN6QixvQkFBb0IsRUFDcEIsNEJBQTRCLEdBQzdCLE1BQU0sZ0JBQWdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBNb2RlbENsYXNzLCBSZWFzb25pbmdFZmZvcnQgfSBmcm9tIFwiLi9zcmMvY29udHJhY3RzLnRzXCI7XG5leHBvcnQgdHlwZSB7XG4gIEVuZHBvaW50Q2FwYWJpbGl0aWVzLFxuICBGYW1pbHlDbGFzcyxcbiAgTW9kZWxDYXBhYmlsaXRpZXMsXG4gIE1vZGVsTWV0YWRhdGEsXG4gIE1vZGVsUHJvZmlsZSxcbiAgTW9kZWxRdWVyeSxcbiAgTW9kZWxSYXRlTGltaXRzLFxuICBNb2RlbFN0YXR1cyxcbiAgUmFua2VkTW9kZWwsXG4gIFJlc29sdmVkTW9kZWwsXG4gIFJlc29sdmVkTW9kZWxTZWxlY3Rpb24sXG4gIFJlc29sdmVNb2RlbElucHV0LFxuICBSZXNvbHZlTW9kZWxPcHRpb25zLFxuICBTY29yZWRFbmRwb2ludCxcbiAgU2VydmluZ0VuZHBvaW50U3VtbWFyeSxcbn0gZnJvbSBcIi4vc3JjL2NvbnRyYWN0cy50c1wiO1xuZXhwb3J0IHtcbiAgRW5kcG9pbnRDYXBhYmlsaXRpZXNTY2hlbWEsXG4gIEZhbWlseUNsYXNzU2NoZW1hLFxuICBNb2RlbENsYXNzU2NoZW1hLFxuICBNb2RlbENhcGFiaWxpdGllc1NjaGVtYSxcbiAgTW9kZWxNZXRhZGF0YVNjaGVtYSxcbiAgTW9kZWxQcm9maWxlU2NoZW1hLFxuICBNb2RlbFF1ZXJ5U2NoZW1hLFxuICBNb2RlbFJhdGVMaW1pdHNTY2hlbWEsXG4gIE1vZGVsU3RhdHVzU2NoZW1hLFxuICBSYW5rZWRNb2RlbFNjaGVtYSxcbiAgUmVhc29uaW5nRWZmb3J0U2NoZW1hLFxuICBSZWFzb25pbmdFZmZvcnRWYWx1ZXMsXG4gIFJlc29sdmVkTW9kZWxTY2hlbWEsXG4gIFJlc29sdmVkTW9kZWxTZWxlY3Rpb25TY2hlbWEsXG4gIFJlc29sdmVNb2RlbElucHV0U2NoZW1hLFxuICBSZXNvbHZlTW9kZWxPcHRpb25zU2NoZW1hLFxuICBTY29yZWRFbmRwb2ludFNjaGVtYSxcbiAgU2VydmluZ0VuZHBvaW50U3VtbWFyeVNjaGVtYSxcbn0gZnJvbSBcIi4vc3JjL21vZGVsLnRzXCI7XG4iXX0=
package/lib/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  export declare const PACKAGE_IDENTIFIER = "@dbx-tools/shared-model";
2
- export declare const PACKAGE_VERSION = "0.9.31";
2
+ export declare const PACKAGE_VERSION = "0.9.36";
3
3
  export * as contracts from "./src/contracts.ts";
4
4
  export * as display from "./src/display.ts";
5
5
  export * as model from "./src/model.ts";
package/lib/index.js CHANGED
@@ -2,11 +2,11 @@
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";
5
- export const PACKAGE_VERSION = "0.9.31";
5
+ export const PACKAGE_VERSION = "0.9.36";
6
6
  export * as contracts from "./src/contracts.js";
7
7
  export * as display from "./src/display.js";
8
8
  export * as model from "./src/model.js";
9
9
  export * as openaiChat from "./src/openai-chat.js";
10
10
  export { UNSUPPORTED_CHAT_FIELDS } from "./src/openai-chat.js";
11
11
  export * from "./exports.js";
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwyQ0FBMkM7QUFDM0MsbURBQW1EO0FBQ25ELHdFQUF3RTtBQUV4RSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyx5QkFBeUIsQ0FBQztBQUM1RCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsUUFBUSxDQUFDO0FBQ3hDLE9BQU8sS0FBSyxTQUFTLE1BQU0sb0JBQW9CLENBQUM7QUFDaEQsT0FBTyxLQUFLLE9BQU8sTUFBTSxrQkFBa0IsQ0FBQztBQUM1QyxPQUFPLEtBQUssS0FBSyxNQUFNLGdCQUFnQixDQUFDO0FBQ3hDLE9BQU8sS0FBSyxVQUFVLE1BQU0sc0JBQXNCLENBQUM7QUFDbkQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFL0QsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBHRU5FUkFURUQgYnkgcHJvamVuIHdhdGNoIC0gRE8gTk9UIEVESVQuXG4vLyBSZWdlbmVyYXRlZCBmcm9tIHRoZSBleHBvcnRpbmcgbW9kdWxlcyBpbiAuL3NyYy5cbi8vIEhhbmQgZWRpdHMgYXJlIG92ZXJ3cml0dGVuIG9uIHRoZSBuZXh0IHdhdGNoOyB0aGlzIGZpbGUgaXMgcmVhZC1vbmx5LlxuXG5leHBvcnQgY29uc3QgUEFDS0FHRV9JREVOVElGSUVSID0gXCJAZGJ4LXRvb2xzL3NoYXJlZC1tb2RlbFwiO1xuZXhwb3J0IGNvbnN0IFBBQ0tBR0VfVkVSU0lPTiA9IFwiMC45LjMxXCI7XG5leHBvcnQgKiBhcyBjb250cmFjdHMgZnJvbSBcIi4vc3JjL2NvbnRyYWN0cy50c1wiO1xuZXhwb3J0ICogYXMgZGlzcGxheSBmcm9tIFwiLi9zcmMvZGlzcGxheS50c1wiO1xuZXhwb3J0ICogYXMgbW9kZWwgZnJvbSBcIi4vc3JjL21vZGVsLnRzXCI7XG5leHBvcnQgKiBhcyBvcGVuYWlDaGF0IGZyb20gXCIuL3NyYy9vcGVuYWktY2hhdC50c1wiO1xuZXhwb3J0IHsgVU5TVVBQT1JURURfQ0hBVF9GSUVMRFMgfSBmcm9tIFwiLi9zcmMvb3BlbmFpLWNoYXQudHNcIjtcbmV4cG9ydCB0eXBlIHsgQ2hhdFJvbGUsIENoYXRDb250ZW50UGFydCwgQ2hhdFRvb2xDYWxsRnVuY3Rpb24sIENoYXRUb29sQ2FsbCwgQ2hhdE1lc3NhZ2UsIENoYXRDb250ZW50VG9UZXh0T3B0aW9ucyB9IGZyb20gXCIuL3NyYy9vcGVuYWktY2hhdC50c1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vZXhwb3J0cy50c1wiO1xuIl19
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwyQ0FBMkM7QUFDM0MsbURBQW1EO0FBQ25ELHdFQUF3RTtBQUV4RSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyx5QkFBeUIsQ0FBQztBQUM1RCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsUUFBUSxDQUFDO0FBQ3hDLE9BQU8sS0FBSyxTQUFTLE1BQU0sb0JBQW9CLENBQUM7QUFDaEQsT0FBTyxLQUFLLE9BQU8sTUFBTSxrQkFBa0IsQ0FBQztBQUM1QyxPQUFPLEtBQUssS0FBSyxNQUFNLGdCQUFnQixDQUFDO0FBQ3hDLE9BQU8sS0FBSyxVQUFVLE1BQU0sc0JBQXNCLENBQUM7QUFDbkQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFL0QsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBHRU5FUkFURUQgYnkgcHJvamVuIHdhdGNoIC0gRE8gTk9UIEVESVQuXG4vLyBSZWdlbmVyYXRlZCBmcm9tIHRoZSBleHBvcnRpbmcgbW9kdWxlcyBpbiAuL3NyYy5cbi8vIEhhbmQgZWRpdHMgYXJlIG92ZXJ3cml0dGVuIG9uIHRoZSBuZXh0IHdhdGNoOyB0aGlzIGZpbGUgaXMgcmVhZC1vbmx5LlxuXG5leHBvcnQgY29uc3QgUEFDS0FHRV9JREVOVElGSUVSID0gXCJAZGJ4LXRvb2xzL3NoYXJlZC1tb2RlbFwiO1xuZXhwb3J0IGNvbnN0IFBBQ0tBR0VfVkVSU0lPTiA9IFwiMC45LjM2XCI7XG5leHBvcnQgKiBhcyBjb250cmFjdHMgZnJvbSBcIi4vc3JjL2NvbnRyYWN0cy50c1wiO1xuZXhwb3J0ICogYXMgZGlzcGxheSBmcm9tIFwiLi9zcmMvZGlzcGxheS50c1wiO1xuZXhwb3J0ICogYXMgbW9kZWwgZnJvbSBcIi4vc3JjL21vZGVsLnRzXCI7XG5leHBvcnQgKiBhcyBvcGVuYWlDaGF0IGZyb20gXCIuL3NyYy9vcGVuYWktY2hhdC50c1wiO1xuZXhwb3J0IHsgVU5TVVBQT1JURURfQ0hBVF9GSUVMRFMgfSBmcm9tIFwiLi9zcmMvb3BlbmFpLWNoYXQudHNcIjtcbmV4cG9ydCB0eXBlIHsgQ2hhdFJvbGUsIENoYXRDb250ZW50UGFydCwgQ2hhdFRvb2xDYWxsRnVuY3Rpb24sIENoYXRUb29sQ2FsbCwgQ2hhdE1lc3NhZ2UsIENoYXRDb250ZW50VG9UZXh0T3B0aW9ucyB9IGZyb20gXCIuL3NyYy9vcGVuYWktY2hhdC50c1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vZXhwb3J0cy50c1wiO1xuIl19
@@ -1,12 +1,14 @@
1
1
  /** Browser-safe model contracts owned by the TypeScript model runtime. */
2
+ /** Intent-oriented endpoint class slug. */
3
+ export type ModelClass = "chat-thinking" | "chat-balanced" | "chat-fast" | "embedding";
2
4
  export declare const ModelClass: {
3
5
  readonly ChatThinking: "chat-thinking";
4
6
  readonly ChatBalanced: "chat-balanced";
5
7
  readonly ChatFast: "chat-fast";
6
8
  readonly Embedding: "embedding";
7
9
  };
8
- /** Intent-oriented endpoint class slug. */
9
- export type ModelClass = (typeof ModelClass)[keyof typeof ModelClass];
10
+ /** Reasoning effort value accepted by compatible model endpoints. */
11
+ export type ReasoningEffort = "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max";
10
12
  export declare const ReasoningEffort: {
11
13
  readonly None: "none";
12
14
  readonly Minimal: "minimal";
@@ -16,8 +18,6 @@ export declare const ReasoningEffort: {
16
18
  readonly Xhigh: "xhigh";
17
19
  readonly Max: "max";
18
20
  };
19
- /** Reasoning effort value accepted by compatible model endpoints. */
20
- export type ReasoningEffort = (typeof ReasoningEffort)[keyof typeof ReasoningEffort];
21
21
  /** Relative quality, speed, and cost scores for an endpoint. */
22
22
  export interface ModelProfile {
23
23
  /** Relative model quality score. */
@@ -29,7 +29,11 @@ export interface ModelProfile {
29
29
  }
30
30
  /** Model retirement status. */
31
31
  export interface ModelStatus {
32
- /** Whether Databricks lists the model as retired or deprecated. */
32
+ /**
33
+ * Whether Databricks lists the model as retired or deprecated.
34
+ *
35
+ * @default false
36
+ */
33
37
  readonly deprecated: boolean;
34
38
  }
35
39
  /** Browser-safe normalized Model Serving endpoint metadata. */
@@ -53,11 +57,11 @@ export interface ServingEndpointSummary {
53
57
  /** Intent-oriented endpoint class. */
54
58
  readonly class?: ModelClass;
55
59
  /** Provider names mapped to provider-specific model names. */
56
- readonly serviceNames?: Readonly<Record<string, string>>;
60
+ readonly serviceNames?: Record<string, string>;
57
61
  /** Foundation model name reported by the served entity. */
58
62
  readonly modelServiceName?: string;
59
63
  /** Reasoning effort values accepted by the endpoint. */
60
- readonly reasoningEfforts?: readonly ReasoningEffort[];
64
+ readonly reasoningEfforts?: ReasoningEffort[];
61
65
  /** Retirement status for the served model. */
62
66
  readonly status?: ModelStatus;
63
67
  /** Embedding vector dimension measured by the caller, when available. */
@@ -73,9 +77,18 @@ export interface ModelQuery {
73
77
  readonly requiresTools?: boolean;
74
78
  /** Whether retired models remain eligible. */
75
79
  readonly includeDeprecated?: boolean;
76
- /** Maximum number of results. */
80
+ /**
81
+ * Maximum number of results.
82
+ *
83
+ * @schema number().int().min(1).max(50).optional()
84
+ */
77
85
  readonly limit?: number;
78
- /** Maximum fuzzy-match distance. */
86
+ /**
87
+ * Maximum fuzzy-match distance.
88
+ *
89
+ * @minimum 0
90
+ * @maximum 1
91
+ */
79
92
  readonly threshold?: number;
80
93
  }
81
94
  /** One ranked model-search result. */
@@ -84,6 +97,103 @@ export interface RankedModel {
84
97
  readonly endpoint: ServingEndpointSummary;
85
98
  /** Intent-oriented endpoint class. */
86
99
  readonly modelClass: ModelClass;
87
- /** Fuzzy-match distance, where lower values are closer. */
100
+ /**
101
+ * Fuzzy-match distance, where lower values are closer.
102
+ *
103
+ * @minimum 0
104
+ * @maximum 1
105
+ */
106
+ readonly score?: number;
107
+ }
108
+ /** Capabilities derived from one normalized serving endpoint. */
109
+ export interface EndpointCapabilities {
110
+ /** Whether the endpoint accepts chat or Responses requests. */
111
+ readonly chat: boolean;
112
+ /** Whether the endpoint produces embedding vectors. */
113
+ readonly embedding: boolean;
114
+ /** Whether the endpoint supports a complete function-tool round trip. */
115
+ readonly tools: boolean;
116
+ }
117
+ /** Fallback class and rank for an unscored recognized model family. */
118
+ export interface FamilyClass {
119
+ /** Chat capability band assigned to the family. */
120
+ readonly class: ModelClass;
121
+ /**
122
+ * Intra-family ordering hint.
123
+ *
124
+ * @minimum 0
125
+ */
126
+ readonly rank: number;
127
+ }
128
+ /** Documented capabilities resolved for one model identity. */
129
+ export interface ModelCapabilities {
130
+ readonly responses: boolean;
131
+ readonly imageInput: boolean;
132
+ readonly applyPatch: boolean;
133
+ readonly webSearch: boolean;
134
+ }
135
+ /** Published pay-per-token limits for one model. */
136
+ export interface ModelRateLimits {
137
+ /** @schema number().int().min(0).nullable() */
138
+ readonly inputTokensPerMinute: number | null;
139
+ /** @schema number().int().min(0).nullable() */
140
+ readonly outputTokensPerMinute: number | null;
141
+ /** @schema number().int().min(0).nullable() */
142
+ readonly queriesPerHour: number | null;
143
+ }
144
+ /** Combined retirement, capability, and rate-limit metadata. */
145
+ export interface ModelMetadata {
146
+ readonly status: ModelStatus;
147
+ readonly capabilities: ModelCapabilities;
148
+ readonly rateLimits?: ModelRateLimits;
149
+ }
150
+ /** Result of resolving a fuzzy model identifier. */
151
+ export interface ResolvedModel {
152
+ readonly modelId: string;
153
+ readonly matched: boolean;
154
+ /**
155
+ * @minimum 0
156
+ * @maximum 1
157
+ */
88
158
  readonly score?: number;
89
159
  }
160
+ /** Pure controls for fuzzy endpoint resolution. */
161
+ export interface ResolveModelOptions {
162
+ /**
163
+ * Maximum fuzzy-match distance.
164
+ *
165
+ * @minimum 0
166
+ * @maximum 1
167
+ */
168
+ readonly threshold?: number;
169
+ /** Whether candidates must support tool calling. */
170
+ readonly requiresTools?: boolean;
171
+ }
172
+ /** One endpoint paired with its fuzzy-match distance. */
173
+ export interface ScoredEndpoint {
174
+ readonly endpoint: ServingEndpointSummary;
175
+ /**
176
+ * @minimum 0
177
+ * @maximum 1
178
+ */
179
+ readonly score: number;
180
+ }
181
+ /** Caller intent used to resolve one model from a catalogue. */
182
+ export interface ResolveModelInput {
183
+ readonly explicit?: string;
184
+ readonly fuzzy?: boolean;
185
+ /**
186
+ * @minimum 0
187
+ * @maximum 1
188
+ */
189
+ readonly threshold?: number;
190
+ readonly requiresTools?: boolean;
191
+ readonly modelClass?: ModelClass;
192
+ readonly fallbacks?: string[];
193
+ readonly liveOnly?: boolean;
194
+ }
195
+ /** Selected model identifier and the policy branch that selected it. */
196
+ export interface ResolvedModelSelection {
197
+ readonly modelId: string;
198
+ readonly source: "explicit" | "fuzzy-match" | "class" | "fallback";
199
+ }
@@ -14,4 +14,4 @@ export const ReasoningEffort = {
14
14
  Xhigh: "xhigh",
15
15
  Max: "max",
16
16
  };
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJhY3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnRyYWN0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwwRUFBMEU7QUFFMUUsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHO0lBQ3hCLFlBQVksRUFBRSxlQUFlO0lBQzdCLFlBQVksRUFBRSxlQUFlO0lBQzdCLFFBQVEsRUFBRSxXQUFXO0lBQ3JCLFNBQVMsRUFBRSxXQUFXO0NBQ2QsQ0FBQztBQUlYLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRztJQUM3QixJQUFJLEVBQUUsTUFBTTtJQUNaLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLEdBQUcsRUFBRSxLQUFLO0lBQ1YsTUFBTSxFQUFFLFFBQVE7SUFDaEIsSUFBSSxFQUFFLE1BQU07SUFDWixLQUFLLEVBQUUsT0FBTztJQUNkLEdBQUcsRUFBRSxLQUFLO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKiBCcm93c2VyLXNhZmUgbW9kZWwgY29udHJhY3RzIG93bmVkIGJ5IHRoZSBUeXBlU2NyaXB0IG1vZGVsIHJ1bnRpbWUuICovXG5cbmV4cG9ydCBjb25zdCBNb2RlbENsYXNzID0ge1xuICBDaGF0VGhpbmtpbmc6IFwiY2hhdC10aGlua2luZ1wiLFxuICBDaGF0QmFsYW5jZWQ6IFwiY2hhdC1iYWxhbmNlZFwiLFxuICBDaGF0RmFzdDogXCJjaGF0LWZhc3RcIixcbiAgRW1iZWRkaW5nOiBcImVtYmVkZGluZ1wiLFxufSBhcyBjb25zdDtcbi8qKiBJbnRlbnQtb3JpZW50ZWQgZW5kcG9pbnQgY2xhc3Mgc2x1Zy4gKi9cbmV4cG9ydCB0eXBlIE1vZGVsQ2xhc3MgPSAodHlwZW9mIE1vZGVsQ2xhc3MpW2tleW9mIHR5cGVvZiBNb2RlbENsYXNzXTtcblxuZXhwb3J0IGNvbnN0IFJlYXNvbmluZ0VmZm9ydCA9IHtcbiAgTm9uZTogXCJub25lXCIsXG4gIE1pbmltYWw6IFwibWluaW1hbFwiLFxuICBMb3c6IFwibG93XCIsXG4gIE1lZGl1bTogXCJtZWRpdW1cIixcbiAgSGlnaDogXCJoaWdoXCIsXG4gIFhoaWdoOiBcInhoaWdoXCIsXG4gIE1heDogXCJtYXhcIixcbn0gYXMgY29uc3Q7XG4vKiogUmVhc29uaW5nIGVmZm9ydCB2YWx1ZSBhY2NlcHRlZCBieSBjb21wYXRpYmxlIG1vZGVsIGVuZHBvaW50cy4gKi9cbmV4cG9ydCB0eXBlIFJlYXNvbmluZ0VmZm9ydCA9ICh0eXBlb2YgUmVhc29uaW5nRWZmb3J0KVtrZXlvZiB0eXBlb2YgUmVhc29uaW5nRWZmb3J0XTtcblxuLyoqIFJlbGF0aXZlIHF1YWxpdHksIHNwZWVkLCBhbmQgY29zdCBzY29yZXMgZm9yIGFuIGVuZHBvaW50LiAqL1xuZXhwb3J0IGludGVyZmFjZSBNb2RlbFByb2ZpbGUge1xuICAvKiogUmVsYXRpdmUgbW9kZWwgcXVhbGl0eSBzY29yZS4gKi9cbiAgcmVhZG9ubHkgcXVhbGl0eT86IG51bWJlcjtcbiAgLyoqIFJlbGF0aXZlIG1vZGVsIHNwZWVkIHNjb3JlLiAqL1xuICByZWFkb25seSBzcGVlZD86IG51bWJlcjtcbiAgLyoqIFJlbGF0aXZlIG1vZGVsIGNvc3Qgc2NvcmUuICovXG4gIHJlYWRvbmx5IGNvc3Q/OiBudW1iZXI7XG59XG5cbi8qKiBNb2RlbCByZXRpcmVtZW50IHN0YXR1cy4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTW9kZWxTdGF0dXMge1xuICAvKiogV2hldGhlciBEYXRhYnJpY2tzIGxpc3RzIHRoZSBtb2RlbCBhcyByZXRpcmVkIG9yIGRlcHJlY2F0ZWQuICovXG4gIHJlYWRvbmx5IGRlcHJlY2F0ZWQ6IGJvb2xlYW47XG59XG5cbi8qKiBCcm93c2VyLXNhZmUgbm9ybWFsaXplZCBNb2RlbCBTZXJ2aW5nIGVuZHBvaW50IG1ldGFkYXRhLiAqL1xuZXhwb3J0IGludGVyZmFjZSBTZXJ2aW5nRW5kcG9pbnRTdW1tYXJ5IHtcbiAgLyoqIE1vZGVsIFNlcnZpbmcgZW5kcG9pbnQgbmFtZSB1c2VkIGZvciBpbnZvY2F0aW9uLiAqL1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gIC8qKiBIdW1hbi1yZWFkYWJsZSBlbmRwb2ludCBvciBtb2RlbCBuYW1lLiAqL1xuICByZWFkb25seSBkaXNwbGF5TmFtZT86IHN0cmluZztcbiAgLyoqIE5vcm1hbGl6ZWQgbW9kZWwgZmFtaWx5IHBhcnNlZCBmcm9tIHRoZSBlbmRwb2ludCBpZGVudGl0aWVzLiAqL1xuICByZWFkb25seSBmYW1pbHk/OiBzdHJpbmc7XG4gIC8qKiBFbmRwb2ludCB0YXNrLCBzdWNoIGFzIGNoYXQgb3IgZW1iZWRkaW5ncy4gKi9cbiAgcmVhZG9ubHkgdGFzaz86IHN0cmluZztcbiAgLyoqIEVuZHBvaW50IHJlYWRpbmVzcyBzdGF0ZS4gKi9cbiAgcmVhZG9ubHkgc3RhdGU/OiBzdHJpbmc7XG4gIC8qKiBFbmRwb2ludCBkZXNjcmlwdGlvbiBzdXBwbGllZCBieSBEYXRhYnJpY2tzLiAqL1xuICByZWFkb25seSBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgLyoqIFdoZXRoZXIgdGhlIGVuZHBvaW50IHN1cHBvcnRzIHRvb2wgY2FsbGluZy4gKi9cbiAgcmVhZG9ubHkgc3VwcG9ydHNUb29scz86IGJvb2xlYW47XG4gIC8qKiBBSSBHYXRld2F5IG1vZGVsIHByb2ZpbGUgc2NvcmVzLiAqL1xuICByZWFkb25seSBwcm9maWxlPzogTW9kZWxQcm9maWxlO1xuICAvKiogSW50ZW50LW9yaWVudGVkIGVuZHBvaW50IGNsYXNzLiAqL1xuICByZWFkb25seSBjbGFzcz86IE1vZGVsQ2xhc3M7XG4gIC8qKiBQcm92aWRlciBuYW1lcyBtYXBwZWQgdG8gcHJvdmlkZXItc3BlY2lmaWMgbW9kZWwgbmFtZXMuICovXG4gIHJlYWRvbmx5IHNlcnZpY2VOYW1lcz86IFJlYWRvbmx5PFJlY29yZDxzdHJpbmcsIHN0cmluZz4+O1xuICAvKiogRm91bmRhdGlvbiBtb2RlbCBuYW1lIHJlcG9ydGVkIGJ5IHRoZSBzZXJ2ZWQgZW50aXR5LiAqL1xuICByZWFkb25seSBtb2RlbFNlcnZpY2VOYW1lPzogc3RyaW5nO1xuICAvKiogUmVhc29uaW5nIGVmZm9ydCB2YWx1ZXMgYWNjZXB0ZWQgYnkgdGhlIGVuZHBvaW50LiAqL1xuICByZWFkb25seSByZWFzb25pbmdFZmZvcnRzPzogcmVhZG9ubHkgUmVhc29uaW5nRWZmb3J0W107XG4gIC8qKiBSZXRpcmVtZW50IHN0YXR1cyBmb3IgdGhlIHNlcnZlZCBtb2RlbC4gKi9cbiAgcmVhZG9ubHkgc3RhdHVzPzogTW9kZWxTdGF0dXM7XG4gIC8qKiBFbWJlZGRpbmcgdmVjdG9yIGRpbWVuc2lvbiBtZWFzdXJlZCBieSB0aGUgY2FsbGVyLCB3aGVuIGF2YWlsYWJsZS4gKi9cbiAgcmVhZG9ubHkgZGltZW5zaW9uPzogbnVtYmVyO1xufVxuXG4vKiogQnJvd3Nlci1zYWZlIG1vZGVsIGNhdGFsb2d1ZSBzZWFyY2ggYW5kIHJhbmtpbmcgY29udHJvbHMuICovXG5leHBvcnQgaW50ZXJmYWNlIE1vZGVsUXVlcnkge1xuICAvKiogT3B0aW9uYWwgZnV6enkgbW9kZWwtbmFtZSBzZWFyY2guICovXG4gIHJlYWRvbmx5IHNlYXJjaD86IHN0cmluZztcbiAgLyoqIFJlcXVlc3RlZCBtb2RlbC1jbGFzcyBjZWlsaW5nLCBvciB0aGUgZXhhY3QgZW1iZWRkaW5nIGNsYXNzLiAqL1xuICByZWFkb25seSBtb2RlbENsYXNzPzogTW9kZWxDbGFzcztcbiAgLyoqIFdoZXRoZXIgY2FuZGlkYXRlcyBtdXN0IHN1cHBvcnQgdG9vbCBjYWxsaW5nLiAqL1xuICByZWFkb25seSByZXF1aXJlc1Rvb2xzPzogYm9vbGVhbjtcbiAgLyoqIFdoZXRoZXIgcmV0aXJlZCBtb2RlbHMgcmVtYWluIGVsaWdpYmxlLiAqL1xuICByZWFkb25seSBpbmNsdWRlRGVwcmVjYXRlZD86IGJvb2xlYW47XG4gIC8qKiBNYXhpbXVtIG51bWJlciBvZiByZXN1bHRzLiAqL1xuICByZWFkb25seSBsaW1pdD86IG51bWJlcjtcbiAgLyoqIE1heGltdW0gZnV6enktbWF0Y2ggZGlzdGFuY2UuICovXG4gIHJlYWRvbmx5IHRocmVzaG9sZD86IG51bWJlcjtcbn1cblxuLyoqIE9uZSByYW5rZWQgbW9kZWwtc2VhcmNoIHJlc3VsdC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmFua2VkTW9kZWwge1xuICAvKiogTWF0Y2hpbmcgZW5kcG9pbnQgbWV0YWRhdGEuICovXG4gIHJlYWRvbmx5IGVuZHBvaW50OiBTZXJ2aW5nRW5kcG9pbnRTdW1tYXJ5O1xuICAvKiogSW50ZW50LW9yaWVudGVkIGVuZHBvaW50IGNsYXNzLiAqL1xuICByZWFkb25seSBtb2RlbENsYXNzOiBNb2RlbENsYXNzO1xuICAvKiogRnV6enktbWF0Y2ggZGlzdGFuY2UsIHdoZXJlIGxvd2VyIHZhbHVlcyBhcmUgY2xvc2VyLiAqL1xuICByZWFkb25seSBzY29yZT86IG51bWJlcjtcbn1cbiJdfQ==
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJhY3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnRyYWN0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwwRUFBMEU7QUFLMUUsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHO0lBQ3hCLFlBQVksRUFBRSxlQUFlO0lBQzdCLFlBQVksRUFBRSxlQUFlO0lBQzdCLFFBQVEsRUFBRSxXQUFXO0lBQ3JCLFNBQVMsRUFBRSxXQUFXO0NBQ3VCLENBQUM7QUFLaEQsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHO0lBQzdCLElBQUksRUFBRSxNQUFNO0lBQ1osT0FBTyxFQUFFLFNBQVM7SUFDbEIsR0FBRyxFQUFFLEtBQUs7SUFDVixNQUFNLEVBQUUsUUFBUTtJQUNoQixJQUFJLEVBQUUsTUFBTTtJQUNaLEtBQUssRUFBRSxPQUFPO0lBQ2QsR0FBRyxFQUFFLEtBQUs7Q0FDd0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKiBCcm93c2VyLXNhZmUgbW9kZWwgY29udHJhY3RzIG93bmVkIGJ5IHRoZSBUeXBlU2NyaXB0IG1vZGVsIHJ1bnRpbWUuICovXG5cbi8qKiBJbnRlbnQtb3JpZW50ZWQgZW5kcG9pbnQgY2xhc3Mgc2x1Zy4gKi9cbmV4cG9ydCB0eXBlIE1vZGVsQ2xhc3MgPSBcImNoYXQtdGhpbmtpbmdcIiB8IFwiY2hhdC1iYWxhbmNlZFwiIHwgXCJjaGF0LWZhc3RcIiB8IFwiZW1iZWRkaW5nXCI7XG5cbmV4cG9ydCBjb25zdCBNb2RlbENsYXNzID0ge1xuICBDaGF0VGhpbmtpbmc6IFwiY2hhdC10aGlua2luZ1wiLFxuICBDaGF0QmFsYW5jZWQ6IFwiY2hhdC1iYWxhbmNlZFwiLFxuICBDaGF0RmFzdDogXCJjaGF0LWZhc3RcIixcbiAgRW1iZWRkaW5nOiBcImVtYmVkZGluZ1wiLFxufSBhcyBjb25zdCBzYXRpc2ZpZXMgUmVjb3JkPHN0cmluZywgTW9kZWxDbGFzcz47XG5cbi8qKiBSZWFzb25pbmcgZWZmb3J0IHZhbHVlIGFjY2VwdGVkIGJ5IGNvbXBhdGlibGUgbW9kZWwgZW5kcG9pbnRzLiAqL1xuZXhwb3J0IHR5cGUgUmVhc29uaW5nRWZmb3J0ID0gXCJub25lXCIgfCBcIm1pbmltYWxcIiB8IFwibG93XCIgfCBcIm1lZGl1bVwiIHwgXCJoaWdoXCIgfCBcInhoaWdoXCIgfCBcIm1heFwiO1xuXG5leHBvcnQgY29uc3QgUmVhc29uaW5nRWZmb3J0ID0ge1xuICBOb25lOiBcIm5vbmVcIixcbiAgTWluaW1hbDogXCJtaW5pbWFsXCIsXG4gIExvdzogXCJsb3dcIixcbiAgTWVkaXVtOiBcIm1lZGl1bVwiLFxuICBIaWdoOiBcImhpZ2hcIixcbiAgWGhpZ2g6IFwieGhpZ2hcIixcbiAgTWF4OiBcIm1heFwiLFxufSBhcyBjb25zdCBzYXRpc2ZpZXMgUmVjb3JkPHN0cmluZywgUmVhc29uaW5nRWZmb3J0PjtcblxuLyoqIFJlbGF0aXZlIHF1YWxpdHksIHNwZWVkLCBhbmQgY29zdCBzY29yZXMgZm9yIGFuIGVuZHBvaW50LiAqL1xuZXhwb3J0IGludGVyZmFjZSBNb2RlbFByb2ZpbGUge1xuICAvKiogUmVsYXRpdmUgbW9kZWwgcXVhbGl0eSBzY29yZS4gKi9cbiAgcmVhZG9ubHkgcXVhbGl0eT86IG51bWJlcjtcbiAgLyoqIFJlbGF0aXZlIG1vZGVsIHNwZWVkIHNjb3JlLiAqL1xuICByZWFkb25seSBzcGVlZD86IG51bWJlcjtcbiAgLyoqIFJlbGF0aXZlIG1vZGVsIGNvc3Qgc2NvcmUuICovXG4gIHJlYWRvbmx5IGNvc3Q/OiBudW1iZXI7XG59XG5cbi8qKiBNb2RlbCByZXRpcmVtZW50IHN0YXR1cy4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTW9kZWxTdGF0dXMge1xuICAvKipcbiAgICogV2hldGhlciBEYXRhYnJpY2tzIGxpc3RzIHRoZSBtb2RlbCBhcyByZXRpcmVkIG9yIGRlcHJlY2F0ZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBkZXByZWNhdGVkOiBib29sZWFuO1xufVxuXG4vKiogQnJvd3Nlci1zYWZlIG5vcm1hbGl6ZWQgTW9kZWwgU2VydmluZyBlbmRwb2ludCBtZXRhZGF0YS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2VydmluZ0VuZHBvaW50U3VtbWFyeSB7XG4gIC8qKiBNb2RlbCBTZXJ2aW5nIGVuZHBvaW50IG5hbWUgdXNlZCBmb3IgaW52b2NhdGlvbi4gKi9cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICAvKiogSHVtYW4tcmVhZGFibGUgZW5kcG9pbnQgb3IgbW9kZWwgbmFtZS4gKi9cbiAgcmVhZG9ubHkgZGlzcGxheU5hbWU/OiBzdHJpbmc7XG4gIC8qKiBOb3JtYWxpemVkIG1vZGVsIGZhbWlseSBwYXJzZWQgZnJvbSB0aGUgZW5kcG9pbnQgaWRlbnRpdGllcy4gKi9cbiAgcmVhZG9ubHkgZmFtaWx5Pzogc3RyaW5nO1xuICAvKiogRW5kcG9pbnQgdGFzaywgc3VjaCBhcyBjaGF0IG9yIGVtYmVkZGluZ3MuICovXG4gIHJlYWRvbmx5IHRhc2s/OiBzdHJpbmc7XG4gIC8qKiBFbmRwb2ludCByZWFkaW5lc3Mgc3RhdGUuICovXG4gIHJlYWRvbmx5IHN0YXRlPzogc3RyaW5nO1xuICAvKiogRW5kcG9pbnQgZGVzY3JpcHRpb24gc3VwcGxpZWQgYnkgRGF0YWJyaWNrcy4gKi9cbiAgcmVhZG9ubHkgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIC8qKiBXaGV0aGVyIHRoZSBlbmRwb2ludCBzdXBwb3J0cyB0b29sIGNhbGxpbmcuICovXG4gIHJlYWRvbmx5IHN1cHBvcnRzVG9vbHM/OiBib29sZWFuO1xuICAvKiogQUkgR2F0ZXdheSBtb2RlbCBwcm9maWxlIHNjb3Jlcy4gKi9cbiAgcmVhZG9ubHkgcHJvZmlsZT86IE1vZGVsUHJvZmlsZTtcbiAgLyoqIEludGVudC1vcmllbnRlZCBlbmRwb2ludCBjbGFzcy4gKi9cbiAgcmVhZG9ubHkgY2xhc3M/OiBNb2RlbENsYXNzO1xuICAvKiogUHJvdmlkZXIgbmFtZXMgbWFwcGVkIHRvIHByb3ZpZGVyLXNwZWNpZmljIG1vZGVsIG5hbWVzLiAqL1xuICByZWFkb25seSBzZXJ2aWNlTmFtZXM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICAvKiogRm91bmRhdGlvbiBtb2RlbCBuYW1lIHJlcG9ydGVkIGJ5IHRoZSBzZXJ2ZWQgZW50aXR5LiAqL1xuICByZWFkb25seSBtb2RlbFNlcnZpY2VOYW1lPzogc3RyaW5nO1xuICAvKiogUmVhc29uaW5nIGVmZm9ydCB2YWx1ZXMgYWNjZXB0ZWQgYnkgdGhlIGVuZHBvaW50LiAqL1xuICByZWFkb25seSByZWFzb25pbmdFZmZvcnRzPzogUmVhc29uaW5nRWZmb3J0W107XG4gIC8qKiBSZXRpcmVtZW50IHN0YXR1cyBmb3IgdGhlIHNlcnZlZCBtb2RlbC4gKi9cbiAgcmVhZG9ubHkgc3RhdHVzPzogTW9kZWxTdGF0dXM7XG4gIC8qKiBFbWJlZGRpbmcgdmVjdG9yIGRpbWVuc2lvbiBtZWFzdXJlZCBieSB0aGUgY2FsbGVyLCB3aGVuIGF2YWlsYWJsZS4gKi9cbiAgcmVhZG9ubHkgZGltZW5zaW9uPzogbnVtYmVyO1xufVxuXG4vKiogQnJvd3Nlci1zYWZlIG1vZGVsIGNhdGFsb2d1ZSBzZWFyY2ggYW5kIHJhbmtpbmcgY29udHJvbHMuICovXG5leHBvcnQgaW50ZXJmYWNlIE1vZGVsUXVlcnkge1xuICAvKiogT3B0aW9uYWwgZnV6enkgbW9kZWwtbmFtZSBzZWFyY2guICovXG4gIHJlYWRvbmx5IHNlYXJjaD86IHN0cmluZztcbiAgLyoqIFJlcXVlc3RlZCBtb2RlbC1jbGFzcyBjZWlsaW5nLCBvciB0aGUgZXhhY3QgZW1iZWRkaW5nIGNsYXNzLiAqL1xuICByZWFkb25seSBtb2RlbENsYXNzPzogTW9kZWxDbGFzcztcbiAgLyoqIFdoZXRoZXIgY2FuZGlkYXRlcyBtdXN0IHN1cHBvcnQgdG9vbCBjYWxsaW5nLiAqL1xuICByZWFkb25seSByZXF1aXJlc1Rvb2xzPzogYm9vbGVhbjtcbiAgLyoqIFdoZXRoZXIgcmV0aXJlZCBtb2RlbHMgcmVtYWluIGVsaWdpYmxlLiAqL1xuICByZWFkb25seSBpbmNsdWRlRGVwcmVjYXRlZD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBNYXhpbXVtIG51bWJlciBvZiByZXN1bHRzLlxuICAgKlxuICAgKiBAc2NoZW1hIG51bWJlcigpLmludCgpLm1pbigxKS5tYXgoNTApLm9wdGlvbmFsKClcbiAgICovXG4gIHJlYWRvbmx5IGxpbWl0PzogbnVtYmVyO1xuICAvKipcbiAgICogTWF4aW11bSBmdXp6eS1tYXRjaCBkaXN0YW5jZS5cbiAgICpcbiAgICogQG1pbmltdW0gMFxuICAgKiBAbWF4aW11bSAxXG4gICAqL1xuICByZWFkb25seSB0aHJlc2hvbGQ/OiBudW1iZXI7XG59XG5cbi8qKiBPbmUgcmFua2VkIG1vZGVsLXNlYXJjaCByZXN1bHQuICovXG5leHBvcnQgaW50ZXJmYWNlIFJhbmtlZE1vZGVsIHtcbiAgLyoqIE1hdGNoaW5nIGVuZHBvaW50IG1ldGFkYXRhLiAqL1xuICByZWFkb25seSBlbmRwb2ludDogU2VydmluZ0VuZHBvaW50U3VtbWFyeTtcbiAgLyoqIEludGVudC1vcmllbnRlZCBlbmRwb2ludCBjbGFzcy4gKi9cbiAgcmVhZG9ubHkgbW9kZWxDbGFzczogTW9kZWxDbGFzcztcbiAgLyoqXG4gICAqIEZ1enp5LW1hdGNoIGRpc3RhbmNlLCB3aGVyZSBsb3dlciB2YWx1ZXMgYXJlIGNsb3Nlci5cbiAgICpcbiAgICogQG1pbmltdW0gMFxuICAgKiBAbWF4aW11bSAxXG4gICAqL1xuICByZWFkb25seSBzY29yZT86IG51bWJlcjtcbn1cblxuLyoqIENhcGFiaWxpdGllcyBkZXJpdmVkIGZyb20gb25lIG5vcm1hbGl6ZWQgc2VydmluZyBlbmRwb2ludC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRW5kcG9pbnRDYXBhYmlsaXRpZXMge1xuICAvKiogV2hldGhlciB0aGUgZW5kcG9pbnQgYWNjZXB0cyBjaGF0IG9yIFJlc3BvbnNlcyByZXF1ZXN0cy4gKi9cbiAgcmVhZG9ubHkgY2hhdDogYm9vbGVhbjtcbiAgLyoqIFdoZXRoZXIgdGhlIGVuZHBvaW50IHByb2R1Y2VzIGVtYmVkZGluZyB2ZWN0b3JzLiAqL1xuICByZWFkb25seSBlbWJlZGRpbmc6IGJvb2xlYW47XG4gIC8qKiBXaGV0aGVyIHRoZSBlbmRwb2ludCBzdXBwb3J0cyBhIGNvbXBsZXRlIGZ1bmN0aW9uLXRvb2wgcm91bmQgdHJpcC4gKi9cbiAgcmVhZG9ubHkgdG9vbHM6IGJvb2xlYW47XG59XG5cbi8qKiBGYWxsYmFjayBjbGFzcyBhbmQgcmFuayBmb3IgYW4gdW5zY29yZWQgcmVjb2duaXplZCBtb2RlbCBmYW1pbHkuICovXG5leHBvcnQgaW50ZXJmYWNlIEZhbWlseUNsYXNzIHtcbiAgLyoqIENoYXQgY2FwYWJpbGl0eSBiYW5kIGFzc2lnbmVkIHRvIHRoZSBmYW1pbHkuICovXG4gIHJlYWRvbmx5IGNsYXNzOiBNb2RlbENsYXNzO1xuICAvKipcbiAgICogSW50cmEtZmFtaWx5IG9yZGVyaW5nIGhpbnQuXG4gICAqXG4gICAqIEBtaW5pbXVtIDBcbiAgICovXG4gIHJlYWRvbmx5IHJhbms6IG51bWJlcjtcbn1cblxuLyoqIERvY3VtZW50ZWQgY2FwYWJpbGl0aWVzIHJlc29sdmVkIGZvciBvbmUgbW9kZWwgaWRlbnRpdHkuICovXG5leHBvcnQgaW50ZXJmYWNlIE1vZGVsQ2FwYWJpbGl0aWVzIHtcbiAgcmVhZG9ubHkgcmVzcG9uc2VzOiBib29sZWFuO1xuICByZWFkb25seSBpbWFnZUlucHV0OiBib29sZWFuO1xuICByZWFkb25seSBhcHBseVBhdGNoOiBib29sZWFuO1xuICByZWFkb25seSB3ZWJTZWFyY2g6IGJvb2xlYW47XG59XG5cbi8qKiBQdWJsaXNoZWQgcGF5LXBlci10b2tlbiBsaW1pdHMgZm9yIG9uZSBtb2RlbC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTW9kZWxSYXRlTGltaXRzIHtcbiAgLyoqIEBzY2hlbWEgbnVtYmVyKCkuaW50KCkubWluKDApLm51bGxhYmxlKCkgKi9cbiAgcmVhZG9ubHkgaW5wdXRUb2tlbnNQZXJNaW51dGU6IG51bWJlciB8IG51bGw7XG4gIC8qKiBAc2NoZW1hIG51bWJlcigpLmludCgpLm1pbigwKS5udWxsYWJsZSgpICovXG4gIHJlYWRvbmx5IG91dHB1dFRva2Vuc1Blck1pbnV0ZTogbnVtYmVyIHwgbnVsbDtcbiAgLyoqIEBzY2hlbWEgbnVtYmVyKCkuaW50KCkubWluKDApLm51bGxhYmxlKCkgKi9cbiAgcmVhZG9ubHkgcXVlcmllc1BlckhvdXI6IG51bWJlciB8IG51bGw7XG59XG5cbi8qKiBDb21iaW5lZCByZXRpcmVtZW50LCBjYXBhYmlsaXR5LCBhbmQgcmF0ZS1saW1pdCBtZXRhZGF0YS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTW9kZWxNZXRhZGF0YSB7XG4gIHJlYWRvbmx5IHN0YXR1czogTW9kZWxTdGF0dXM7XG4gIHJlYWRvbmx5IGNhcGFiaWxpdGllczogTW9kZWxDYXBhYmlsaXRpZXM7XG4gIHJlYWRvbmx5IHJhdGVMaW1pdHM/OiBNb2RlbFJhdGVMaW1pdHM7XG59XG5cbi8qKiBSZXN1bHQgb2YgcmVzb2x2aW5nIGEgZnV6enkgbW9kZWwgaWRlbnRpZmllci4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVzb2x2ZWRNb2RlbCB7XG4gIHJlYWRvbmx5IG1vZGVsSWQ6IHN0cmluZztcbiAgcmVhZG9ubHkgbWF0Y2hlZDogYm9vbGVhbjtcbiAgLyoqXG4gICAqIEBtaW5pbXVtIDBcbiAgICogQG1heGltdW0gMVxuICAgKi9cbiAgcmVhZG9ubHkgc2NvcmU/OiBudW1iZXI7XG59XG5cbi8qKiBQdXJlIGNvbnRyb2xzIGZvciBmdXp6eSBlbmRwb2ludCByZXNvbHV0aW9uLiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXNvbHZlTW9kZWxPcHRpb25zIHtcbiAgLyoqXG4gICAqIE1heGltdW0gZnV6enktbWF0Y2ggZGlzdGFuY2UuXG4gICAqXG4gICAqIEBtaW5pbXVtIDBcbiAgICogQG1heGltdW0gMVxuICAgKi9cbiAgcmVhZG9ubHkgdGhyZXNob2xkPzogbnVtYmVyO1xuICAvKiogV2hldGhlciBjYW5kaWRhdGVzIG11c3Qgc3VwcG9ydCB0b29sIGNhbGxpbmcuICovXG4gIHJlYWRvbmx5IHJlcXVpcmVzVG9vbHM/OiBib29sZWFuO1xufVxuXG4vKiogT25lIGVuZHBvaW50IHBhaXJlZCB3aXRoIGl0cyBmdXp6eS1tYXRjaCBkaXN0YW5jZS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2NvcmVkRW5kcG9pbnQge1xuICByZWFkb25seSBlbmRwb2ludDogU2VydmluZ0VuZHBvaW50U3VtbWFyeTtcbiAgLyoqXG4gICAqIEBtaW5pbXVtIDBcbiAgICogQG1heGltdW0gMVxuICAgKi9cbiAgcmVhZG9ubHkgc2NvcmU6IG51bWJlcjtcbn1cblxuLyoqIENhbGxlciBpbnRlbnQgdXNlZCB0byByZXNvbHZlIG9uZSBtb2RlbCBmcm9tIGEgY2F0YWxvZ3VlLiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXNvbHZlTW9kZWxJbnB1dCB7XG4gIHJlYWRvbmx5IGV4cGxpY2l0Pzogc3RyaW5nO1xuICByZWFkb25seSBmdXp6eT86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBAbWluaW11bSAwXG4gICAqIEBtYXhpbXVtIDFcbiAgICovXG4gIHJlYWRvbmx5IHRocmVzaG9sZD86IG51bWJlcjtcbiAgcmVhZG9ubHkgcmVxdWlyZXNUb29scz86IGJvb2xlYW47XG4gIHJlYWRvbmx5IG1vZGVsQ2xhc3M/OiBNb2RlbENsYXNzO1xuICByZWFkb25seSBmYWxsYmFja3M/OiBzdHJpbmdbXTtcbiAgcmVhZG9ubHkgbGl2ZU9ubHk/OiBib29sZWFuO1xufVxuXG4vKiogU2VsZWN0ZWQgbW9kZWwgaWRlbnRpZmllciBhbmQgdGhlIHBvbGljeSBicmFuY2ggdGhhdCBzZWxlY3RlZCBpdC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVzb2x2ZWRNb2RlbFNlbGVjdGlvbiB7XG4gIHJlYWRvbmx5IG1vZGVsSWQ6IHN0cmluZztcbiAgcmVhZG9ubHkgc291cmNlOiBcImV4cGxpY2l0XCIgfCBcImZ1enp5LW1hdGNoXCIgfCBcImNsYXNzXCIgfCBcImZhbGxiYWNrXCI7XG59XG4iXX0=
@@ -1,14 +1,20 @@
1
1
  import { z } from "zod";
2
+ /** Browser-safe model contracts owned by the TypeScript model runtime. */
3
+ /** Intent-oriented endpoint class slug. */
2
4
  export declare const modelClassSchema: z.ZodUnion<readonly [z.ZodLiteral<"chat-thinking">, z.ZodLiteral<"chat-balanced">, z.ZodLiteral<"chat-fast">, z.ZodLiteral<"embedding">]>;
5
+ /** Reasoning effort value accepted by compatible model endpoints. */
3
6
  export declare const reasoningEffortSchema: z.ZodUnion<readonly [z.ZodLiteral<"none">, z.ZodLiteral<"minimal">, z.ZodLiteral<"low">, z.ZodLiteral<"medium">, z.ZodLiteral<"high">, z.ZodLiteral<"xhigh">, z.ZodLiteral<"max">]>;
7
+ /** Relative quality, speed, and cost scores for an endpoint. */
4
8
  export declare const modelProfileSchema: z.ZodObject<{
5
9
  quality: z.ZodOptional<z.ZodNumber>;
6
10
  speed: z.ZodOptional<z.ZodNumber>;
7
11
  cost: z.ZodOptional<z.ZodNumber>;
8
12
  }, z.core.$strip>;
13
+ /** Model retirement status. */
9
14
  export declare const modelStatusSchema: z.ZodObject<{
10
15
  deprecated: z.ZodDefault<z.ZodBoolean>;
11
16
  }, z.core.$strip>;
17
+ /** Browser-safe normalized Model Serving endpoint metadata. */
12
18
  export declare const servingEndpointSummarySchema: z.ZodObject<{
13
19
  name: z.ZodString;
14
20
  displayName: z.ZodOptional<z.ZodString>;
@@ -31,6 +37,7 @@ export declare const servingEndpointSummarySchema: z.ZodObject<{
31
37
  }, z.core.$strip>>;
32
38
  dimension: z.ZodOptional<z.ZodNumber>;
33
39
  }, z.core.$strip>;
40
+ /** Browser-safe model catalogue search and ranking controls. */
34
41
  export declare const modelQuerySchema: z.ZodObject<{
35
42
  search: z.ZodOptional<z.ZodString>;
36
43
  modelClass: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"chat-thinking">, z.ZodLiteral<"chat-balanced">, z.ZodLiteral<"chat-fast">, z.ZodLiteral<"embedding">]>>;
@@ -39,6 +46,7 @@ export declare const modelQuerySchema: z.ZodObject<{
39
46
  limit: z.ZodOptional<z.ZodNumber>;
40
47
  threshold: z.ZodOptional<z.ZodNumber>;
41
48
  }, z.core.$strip>;
49
+ /** One ranked model-search result. */
42
50
  export declare const rankedModelSchema: z.ZodObject<{
43
51
  endpoint: z.ZodObject<{
44
52
  name: z.ZodString;
@@ -65,3 +73,96 @@ export declare const rankedModelSchema: z.ZodObject<{
65
73
  modelClass: z.ZodUnion<readonly [z.ZodLiteral<"chat-thinking">, z.ZodLiteral<"chat-balanced">, z.ZodLiteral<"chat-fast">, z.ZodLiteral<"embedding">]>;
66
74
  score: z.ZodOptional<z.ZodNumber>;
67
75
  }, z.core.$strip>;
76
+ /** Capabilities derived from one normalized serving endpoint. */
77
+ export declare const endpointCapabilitiesSchema: z.ZodObject<{
78
+ chat: z.ZodBoolean;
79
+ embedding: z.ZodBoolean;
80
+ tools: z.ZodBoolean;
81
+ }, z.core.$strip>;
82
+ /** Fallback class and rank for an unscored recognized model family. */
83
+ export declare const familyClassSchema: z.ZodObject<{
84
+ class: z.ZodUnion<readonly [z.ZodLiteral<"chat-thinking">, z.ZodLiteral<"chat-balanced">, z.ZodLiteral<"chat-fast">, z.ZodLiteral<"embedding">]>;
85
+ rank: z.ZodNumber;
86
+ }, z.core.$strip>;
87
+ /** Documented capabilities resolved for one model identity. */
88
+ export declare const modelCapabilitiesSchema: z.ZodObject<{
89
+ responses: z.ZodBoolean;
90
+ imageInput: z.ZodBoolean;
91
+ applyPatch: z.ZodBoolean;
92
+ webSearch: z.ZodBoolean;
93
+ }, z.core.$strip>;
94
+ /** Published pay-per-token limits for one model. */
95
+ export declare const modelRateLimitsSchema: z.ZodObject<{
96
+ inputTokensPerMinute: z.ZodNullable<z.ZodNumber>;
97
+ outputTokensPerMinute: z.ZodNullable<z.ZodNumber>;
98
+ queriesPerHour: z.ZodNullable<z.ZodNumber>;
99
+ }, z.core.$strip>;
100
+ /** Combined retirement, capability, and rate-limit metadata. */
101
+ export declare const modelMetadataSchema: z.ZodObject<{
102
+ status: z.ZodObject<{
103
+ deprecated: z.ZodDefault<z.ZodBoolean>;
104
+ }, z.core.$strip>;
105
+ capabilities: z.ZodObject<{
106
+ responses: z.ZodBoolean;
107
+ imageInput: z.ZodBoolean;
108
+ applyPatch: z.ZodBoolean;
109
+ webSearch: z.ZodBoolean;
110
+ }, z.core.$strip>;
111
+ rateLimits: z.ZodOptional<z.ZodObject<{
112
+ inputTokensPerMinute: z.ZodNullable<z.ZodNumber>;
113
+ outputTokensPerMinute: z.ZodNullable<z.ZodNumber>;
114
+ queriesPerHour: z.ZodNullable<z.ZodNumber>;
115
+ }, z.core.$strip>>;
116
+ }, z.core.$strip>;
117
+ /** Result of resolving a fuzzy model identifier. */
118
+ export declare const resolvedModelSchema: z.ZodObject<{
119
+ modelId: z.ZodString;
120
+ matched: z.ZodBoolean;
121
+ score: z.ZodOptional<z.ZodNumber>;
122
+ }, z.core.$strip>;
123
+ /** Pure controls for fuzzy endpoint resolution. */
124
+ export declare const resolveModelOptionsSchema: z.ZodObject<{
125
+ threshold: z.ZodOptional<z.ZodNumber>;
126
+ requiresTools: z.ZodOptional<z.ZodBoolean>;
127
+ }, z.core.$strip>;
128
+ /** One endpoint paired with its fuzzy-match distance. */
129
+ export declare const scoredEndpointSchema: z.ZodObject<{
130
+ endpoint: z.ZodObject<{
131
+ name: z.ZodString;
132
+ displayName: z.ZodOptional<z.ZodString>;
133
+ family: z.ZodOptional<z.ZodString>;
134
+ task: z.ZodOptional<z.ZodString>;
135
+ state: z.ZodOptional<z.ZodString>;
136
+ description: z.ZodOptional<z.ZodString>;
137
+ supportsTools: z.ZodOptional<z.ZodBoolean>;
138
+ profile: z.ZodOptional<z.ZodObject<{
139
+ quality: z.ZodOptional<z.ZodNumber>;
140
+ speed: z.ZodOptional<z.ZodNumber>;
141
+ cost: z.ZodOptional<z.ZodNumber>;
142
+ }, z.core.$strip>>;
143
+ class: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"chat-thinking">, z.ZodLiteral<"chat-balanced">, z.ZodLiteral<"chat-fast">, z.ZodLiteral<"embedding">]>>;
144
+ serviceNames: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
145
+ modelServiceName: z.ZodOptional<z.ZodString>;
146
+ reasoningEfforts: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodLiteral<"none">, z.ZodLiteral<"minimal">, z.ZodLiteral<"low">, z.ZodLiteral<"medium">, z.ZodLiteral<"high">, z.ZodLiteral<"xhigh">, z.ZodLiteral<"max">]>>>;
147
+ status: z.ZodOptional<z.ZodObject<{
148
+ deprecated: z.ZodDefault<z.ZodBoolean>;
149
+ }, z.core.$strip>>;
150
+ dimension: z.ZodOptional<z.ZodNumber>;
151
+ }, z.core.$strip>;
152
+ score: z.ZodNumber;
153
+ }, z.core.$strip>;
154
+ /** Caller intent used to resolve one model from a catalogue. */
155
+ export declare const resolveModelInputSchema: z.ZodObject<{
156
+ explicit: z.ZodOptional<z.ZodString>;
157
+ fuzzy: z.ZodOptional<z.ZodBoolean>;
158
+ threshold: z.ZodOptional<z.ZodNumber>;
159
+ requiresTools: z.ZodOptional<z.ZodBoolean>;
160
+ modelClass: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"chat-thinking">, z.ZodLiteral<"chat-balanced">, z.ZodLiteral<"chat-fast">, z.ZodLiteral<"embedding">]>>;
161
+ fallbacks: z.ZodOptional<z.ZodArray<z.ZodString>>;
162
+ liveOnly: z.ZodOptional<z.ZodBoolean>;
163
+ }, z.core.$strip>;
164
+ /** Selected model identifier and the policy branch that selected it. */
165
+ export declare const resolvedModelSelectionSchema: z.ZodObject<{
166
+ modelId: z.ZodString;
167
+ source: z.ZodUnion<readonly [z.ZodLiteral<"explicit">, z.ZodLiteral<"fuzzy-match">, z.ZodLiteral<"class">, z.ZodLiteral<"fallback">]>;
168
+ }, z.core.$strip>;