@dbx-tools/model 0.9.166 → 0.9.173

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 CHANGED
@@ -50,7 +50,10 @@ The package:
50
50
  - Builds the invocations URL and mints per-request auth headers for callers that
51
51
  issue their own OpenAI-shaped HTTP requests.
52
52
  - Provides build-generated retirement, Responses, image-input, apply-patch,
53
- web-search, ITPM, OTPM, and QPH metadata through cached in-process lookups.
53
+ web-search, reasoning, tool-calling, structured-output, temperature-support,
54
+ ITPM, OTPM, and QPH metadata through cached in-process lookups. Databricks
55
+ documentation is enriched with models.dev and modelparams.dev snapshots,
56
+ while committed fallbacks keep refreshes and runtime startup offline-safe.
54
57
  - Provides a small static fallback floor for local tools and degraded workspace
55
58
  access.
56
59
 
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/model";
6
- export const PACKAGE_VERSION = "0.9.166";
6
+ export const PACKAGE_VERSION = "0.9.173";
7
7
  export * as bindings from "./src/bindings.ts";
8
8
  export * from "./src/bindings.ts";
9
9
  export * as classes from "./src/classes.ts";
@@ -27,9 +27,9 @@ export { INVOCATIONS_SUFFIX, SERVING_ENDPOINTS_PATH, RESPONSES_PATH, OPEN_RESPON
27
27
  export type { AuthenticatingClientLike } from "./src/invoke.ts";
28
28
  export { createMetadataCache, mergePreferFreshList, mergePreferFreshRecord } from "./src/metadata-cache.ts";
29
29
  export type { MetadataCacheOptions, MetadataCacheMergeInput, MetadataCache } from "./src/metadata-cache.ts";
30
- export { MODEL_METADATA_TTL_MS, RETIRED_MODELS_URL, OPENAI_RESPONSES_MODELS_URL, WEB_SEARCH_MODELS_URL, MODEL_RATE_LIMITS_URL, QUERY_REASON_MODELS_URL } from "./src/metadata-contract.ts";
31
- export type { RetiredModelsSnapshot, ModelCapabilityCatalogue, ModelCapabilitiesSnapshot, ModelRateLimitCatalogue, ModelRateLimitsSnapshot, ReasoningModelsSnapshot } from "./src/metadata-contract.ts";
32
- export { refreshModelMetadata, hydrateModelMetadata, reasoningModelCatalogue, learnedReasoningCatalogue, rememberReasoningLevels, learnReasoningLevelsFromError, modelCapabilitiesFor, modelRateLimitsFor, modelReasoningLevelsFor, modelMetadataFor, modelMetadataGeneratedAt } from "./src/metadata.ts";
30
+ export { MODEL_METADATA_TTL_MS, RETIRED_MODELS_URL, OPENAI_RESPONSES_MODELS_URL, WEB_SEARCH_MODELS_URL, MODEL_RATE_LIMITS_URL, QUERY_REASON_MODELS_URL, MODELS_DEV_API_URL, MODELPARAMS_DEV_MODELS_URL } from "./src/metadata-contract.ts";
31
+ export type { RetiredModelsSnapshot, ModelCapabilityCatalogue, ModelCapabilitiesSnapshot, ModelRateLimitCatalogue, ModelRateLimitsSnapshot, ReasoningModelsSnapshot, ModelsDevCapabilityCatalogue, ModelsDevSnapshot, ModelParamsCatalogue, ModelParamsSnapshot } from "./src/metadata-contract.ts";
32
+ export { refreshModelMetadata, hydrateModelMetadata, reasoningModelCatalogue, learnedReasoningCatalogue, rememberReasoningLevels, learnReasoningLevelsFromError, modelCapabilitiesFor, modelTemperatureSupportFor, modelRateLimitsFor, modelReasoningLevelsFor, modelMetadataFor, modelMetadataGeneratedAt } from "./src/metadata.ts";
33
33
  export { DEFAULT_MODEL_CACHE_TTL_MS, DEFAULT_FUZZY_THRESHOLD, listServingEndpoints, listServingEndpointsUncached, clearServingEndpointsCache, searchServingEndpoints, resolveModelId } from "./src/model-catalog.ts";
34
34
  export type { WorkspaceClientLike, ListServingEndpointsOptions } from "./src/model-catalog.ts";
35
35
  export { DEFAULT_MODEL_CLIENT_CACHE_TTL_MS, createModelClient, listProfiles, createModelClientWithDatabricksClient, createModelClientWithDependencies } from "./src/model-client.ts";
package/lib/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  export declare const PACKAGE_IDENTIFIER = "@dbx-tools/model";
2
- export declare const PACKAGE_VERSION = "0.9.166";
2
+ export declare const PACKAGE_VERSION = "0.9.173";
3
3
  export * as bindings from "./src/bindings.ts";
4
4
  export * from "./src/bindings.ts";
5
5
  export * as classes from "./src/classes.ts";
@@ -23,9 +23,9 @@ export { INVOCATIONS_SUFFIX, SERVING_ENDPOINTS_PATH, RESPONSES_PATH, OPEN_RESPON
23
23
  export type { AuthenticatingClientLike } from "./src/invoke.ts";
24
24
  export { createMetadataCache, mergePreferFreshList, mergePreferFreshRecord } from "./src/metadata-cache.ts";
25
25
  export type { MetadataCacheOptions, MetadataCacheMergeInput, MetadataCache } from "./src/metadata-cache.ts";
26
- export { MODEL_METADATA_TTL_MS, RETIRED_MODELS_URL, OPENAI_RESPONSES_MODELS_URL, WEB_SEARCH_MODELS_URL, MODEL_RATE_LIMITS_URL, QUERY_REASON_MODELS_URL } from "./src/metadata-contract.ts";
27
- export type { RetiredModelsSnapshot, ModelCapabilityCatalogue, ModelCapabilitiesSnapshot, ModelRateLimitCatalogue, ModelRateLimitsSnapshot, ReasoningModelsSnapshot } from "./src/metadata-contract.ts";
28
- export { refreshModelMetadata, hydrateModelMetadata, reasoningModelCatalogue, learnedReasoningCatalogue, rememberReasoningLevels, learnReasoningLevelsFromError, modelCapabilitiesFor, modelRateLimitsFor, modelReasoningLevelsFor, modelMetadataFor, modelMetadataGeneratedAt } from "./src/metadata.ts";
26
+ export { MODEL_METADATA_TTL_MS, RETIRED_MODELS_URL, OPENAI_RESPONSES_MODELS_URL, WEB_SEARCH_MODELS_URL, MODEL_RATE_LIMITS_URL, QUERY_REASON_MODELS_URL, MODELS_DEV_API_URL, MODELPARAMS_DEV_MODELS_URL } from "./src/metadata-contract.ts";
27
+ export type { RetiredModelsSnapshot, ModelCapabilityCatalogue, ModelCapabilitiesSnapshot, ModelRateLimitCatalogue, ModelRateLimitsSnapshot, ReasoningModelsSnapshot, ModelsDevCapabilityCatalogue, ModelsDevSnapshot, ModelParamsCatalogue, ModelParamsSnapshot } from "./src/metadata-contract.ts";
28
+ export { refreshModelMetadata, hydrateModelMetadata, reasoningModelCatalogue, learnedReasoningCatalogue, rememberReasoningLevels, learnReasoningLevelsFromError, modelCapabilitiesFor, modelTemperatureSupportFor, modelRateLimitsFor, modelReasoningLevelsFor, modelMetadataFor, modelMetadataGeneratedAt } from "./src/metadata.ts";
29
29
  export { DEFAULT_MODEL_CACHE_TTL_MS, DEFAULT_FUZZY_THRESHOLD, listServingEndpoints, listServingEndpointsUncached, clearServingEndpointsCache, searchServingEndpoints, resolveModelId } from "./src/model-catalog.ts";
30
30
  export type { WorkspaceClientLike, ListServingEndpointsOptions } from "./src/model-catalog.ts";
31
31
  export { DEFAULT_MODEL_CLIENT_CACHE_TTL_MS, createModelClient, listProfiles, createModelClientWithDatabricksClient, createModelClientWithDependencies } from "./src/model-client.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/model";
5
- export const PACKAGE_VERSION = "0.9.166";
5
+ export const PACKAGE_VERSION = "0.9.173";
6
6
  export * as bindings from "./src/bindings.js";
7
7
  export * from "./src/bindings.js";
8
8
  export * as classes from "./src/classes.js";
@@ -24,8 +24,8 @@ export { supportsToolsByFamily, endpointCapabilities, versionTuple, compareVersi
24
24
  export { modelsForClass, modelForClass, FALLBACK_MODEL_IDS } from "./src/fallback.js";
25
25
  export { INVOCATIONS_SUFFIX, SERVING_ENDPOINTS_PATH, RESPONSES_PATH, OPEN_RESPONSES_PATH, CHAT_COMPLETIONS_PATH, AI_GATEWAY_CODEX_RESPONSES_PATH, ANTHROPIC_BASE_PATH, ANTHROPIC_MESSAGES_PATH, servingEndpointsUrl, invocationsUrl, responsesUrl, openResponsesUrl, chatCompletionsUrl, aiGatewayCodexResponsesUrl, anthropicMessagesUrl, anthropicBaseUrl, responsesUpstreamUrl, authHeaders } from "./src/invoke.js";
26
26
  export { createMetadataCache, mergePreferFreshList, mergePreferFreshRecord } from "./src/metadata-cache.js";
27
- export { MODEL_METADATA_TTL_MS, RETIRED_MODELS_URL, OPENAI_RESPONSES_MODELS_URL, WEB_SEARCH_MODELS_URL, MODEL_RATE_LIMITS_URL, QUERY_REASON_MODELS_URL } from "./src/metadata-contract.js";
28
- export { refreshModelMetadata, hydrateModelMetadata, reasoningModelCatalogue, learnedReasoningCatalogue, rememberReasoningLevels, learnReasoningLevelsFromError, modelCapabilitiesFor, modelRateLimitsFor, modelReasoningLevelsFor, modelMetadataFor, modelMetadataGeneratedAt } from "./src/metadata.js";
27
+ export { MODEL_METADATA_TTL_MS, RETIRED_MODELS_URL, OPENAI_RESPONSES_MODELS_URL, WEB_SEARCH_MODELS_URL, MODEL_RATE_LIMITS_URL, QUERY_REASON_MODELS_URL, MODELS_DEV_API_URL, MODELPARAMS_DEV_MODELS_URL } from "./src/metadata-contract.js";
28
+ export { refreshModelMetadata, hydrateModelMetadata, reasoningModelCatalogue, learnedReasoningCatalogue, rememberReasoningLevels, learnReasoningLevelsFromError, modelCapabilitiesFor, modelTemperatureSupportFor, modelRateLimitsFor, modelReasoningLevelsFor, modelMetadataFor, modelMetadataGeneratedAt } from "./src/metadata.js";
29
29
  export { DEFAULT_MODEL_CACHE_TTL_MS, DEFAULT_FUZZY_THRESHOLD, listServingEndpoints, listServingEndpointsUncached, clearServingEndpointsCache, searchServingEndpoints, resolveModelId } from "./src/model-catalog.js";
30
30
  export { DEFAULT_MODEL_CLIENT_CACHE_TTL_MS, createModelClient, listProfiles, createModelClientWithDatabricksClient, createModelClientWithDependencies } from "./src/model-client.js";
31
31
  export { ModelFamily, modelFamily, modelFamilyRank, modelSearchQuery, inheritsNativeWebSearch, isFoundationModelIdentity, modelServiceName, systemModelService, prefersSystemModelService, isOpenWeightsGpt, modelReasoningEfforts, modelSupportsTools, endpointSupportsTools, modelServingApi, chatToolReasoningEffort, modelServiceNames } from "./src/policy.js";
@@ -33,4 +33,4 @@ export { ReasoningLevel, REASONING_LEVELS, parseReasoning, parseReasoningLevels,
33
33
  export { rankModelIdLive, searchModels, selectModel } from "./src/resolve.js";
34
34
  export { COMMITTED_RETIRED_MODELS, RETIRED_MODELS_GENERATED_AT, replaceRetiredModelNames, retiredModelNames, modelStatusFor } from "./src/retirement.js";
35
35
  export { lookupModels, rankModelId, resolveModel } from "./src/selection.js";
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwyQ0FBMkM7QUFDM0MsbURBQW1EO0FBQ25ELHdFQUF3RTtBQUV4RSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxrQkFBa0IsQ0FBQztBQUNyRCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsU0FBUyxDQUFDO0FBQ3pDLE9BQU8sS0FBSyxRQUFRLE1BQU0sbUJBQW1CLENBQUM7QUFDOUMsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxPQUFPLEtBQUssT0FBTyxNQUFNLGtCQUFrQixDQUFDO0FBQzVDLE9BQU8sS0FBSyxRQUFRLE1BQU0sbUJBQW1CLENBQUM7QUFDOUMsT0FBTyxLQUFLLFFBQVEsTUFBTSxtQkFBbUIsQ0FBQztBQUM5QyxPQUFPLEtBQUssTUFBTSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sS0FBSyxhQUFhLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxLQUFLLGdCQUFnQixNQUFNLDRCQUE0QixDQUFDO0FBQy9ELE9BQU8sS0FBSyxRQUFRLE1BQU0sbUJBQW1CLENBQUM7QUFDOUMsT0FBTyxLQUFLLFlBQVksTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEtBQUssV0FBVyxNQUFNLHVCQUF1QixDQUFDO0FBQ3JELE9BQU8sS0FBSyxNQUFNLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxLQUFLLG9CQUFvQixNQUFNLGdDQUFnQyxDQUFDO0FBQ3ZFLE9BQU8sS0FBSyxPQUFPLE1BQU0sa0JBQWtCLENBQUM7QUFDNUMsT0FBTyxLQUFLLFVBQVUsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRCxPQUFPLEtBQUssU0FBUyxNQUFNLG9CQUFvQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxpQkFBaUIsRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDdkgsT0FBTyxFQUFFLHFCQUFxQixFQUFFLG9CQUFvQixFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxnQkFBZ0IsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3pKLE9BQU8sRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLHNCQUFzQixFQUFFLGNBQWMsRUFBRSxtQkFBbUIsRUFBRSxxQkFBcUIsRUFBRSwrQkFBK0IsRUFBRSxtQkFBbUIsRUFBRSx1QkFBdUIsRUFBRSxtQkFBbUIsRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixFQUFFLGtCQUFrQixFQUFFLDBCQUEwQixFQUFFLG9CQUFvQixFQUFFLGdCQUFnQixFQUFFLG9CQUFvQixFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXhaLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxvQkFBb0IsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRTVHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxrQkFBa0IsRUFBRSwyQkFBMkIsRUFBRSxxQkFBcUIsRUFBRSxxQkFBcUIsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRTNMLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxvQkFBb0IsRUFBRSx1QkFBdUIsRUFBRSx5QkFBeUIsRUFBRSx1QkFBdUIsRUFBRSw2QkFBNkIsRUFBRSxvQkFBb0IsRUFBRSxrQkFBa0IsRUFBRSx1QkFBdUIsRUFBRSxnQkFBZ0IsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzFTLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSx1QkFBdUIsRUFBRSxvQkFBb0IsRUFBRSw0QkFBNEIsRUFBRSwwQkFBMEIsRUFBRSxzQkFBc0IsRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUVyTixPQUFPLEVBQUUsaUNBQWlDLEVBQUUsaUJBQWlCLEVBQUUsWUFBWSxFQUFFLHFDQUFxQyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFckwsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLHVCQUF1QixFQUFFLHlCQUF5QixFQUFFLGdCQUFnQixFQUFFLGtCQUFrQixFQUFFLHlCQUF5QixFQUFFLGdCQUFnQixFQUFFLHFCQUFxQixFQUFFLGtCQUFrQixFQUFFLHFCQUFxQixFQUFFLGVBQWUsRUFBRSx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BXLE9BQU8sRUFBRSxjQUFjLEVBQUUsZ0JBQWdCLEVBQUUsY0FBYyxFQUFFLG9CQUFvQixFQUFFLHlCQUF5QixFQUFFLHNCQUFzQixFQUFFLGtCQUFrQixFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUscUJBQXFCLEVBQUUsdUJBQXVCLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUV2UyxPQUFPLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUU5RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsMkJBQTJCLEVBQUUsd0JBQXdCLEVBQUUsaUJBQWlCLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDekosT0FBTyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0JBQW9CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBHRU5FUkFURUQgYnkgcHJvamVuIHdhdGNoIC0gRE8gTk9UIEVESVQuXG4vLyBSZWdlbmVyYXRlZCBmcm9tIHRoZSBleHBvcnRpbmcgbW9kdWxlcyBpbiAuL3NyYy5cbi8vIEhhbmQgZWRpdHMgYXJlIG92ZXJ3cml0dGVuIG9uIHRoZSBuZXh0IHdhdGNoOyB0aGlzIGZpbGUgaXMgcmVhZC1vbmx5LlxuXG5leHBvcnQgY29uc3QgUEFDS0FHRV9JREVOVElGSUVSID0gXCJAZGJ4LXRvb2xzL21vZGVsXCI7XG5leHBvcnQgY29uc3QgUEFDS0FHRV9WRVJTSU9OID0gXCIwLjkuMTY2XCI7XG5leHBvcnQgKiBhcyBiaW5kaW5ncyBmcm9tIFwiLi9zcmMvYmluZGluZ3MudHNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9iaW5kaW5ncy50c1wiO1xuZXhwb3J0ICogYXMgY2xhc3NlcyBmcm9tIFwiLi9zcmMvY2xhc3Nlcy50c1wiO1xuZXhwb3J0ICogYXMgY2xhc3NpZnkgZnJvbSBcIi4vc3JjL2NsYXNzaWZ5LnRzXCI7XG5leHBvcnQgKiBhcyBmYWxsYmFjayBmcm9tIFwiLi9zcmMvZmFsbGJhY2sudHNcIjtcbmV4cG9ydCAqIGFzIGludm9rZSBmcm9tIFwiLi9zcmMvaW52b2tlLnRzXCI7XG5leHBvcnQgKiBhcyBtZXRhZGF0YUNhY2hlIGZyb20gXCIuL3NyYy9tZXRhZGF0YS1jYWNoZS50c1wiO1xuZXhwb3J0ICogYXMgbWV0YWRhdGFDb250cmFjdCBmcm9tIFwiLi9zcmMvbWV0YWRhdGEtY29udHJhY3QudHNcIjtcbmV4cG9ydCAqIGFzIG1ldGFkYXRhIGZyb20gXCIuL3NyYy9tZXRhZGF0YS50c1wiO1xuZXhwb3J0ICogYXMgbW9kZWxDYXRhbG9nIGZyb20gXCIuL3NyYy9tb2RlbC1jYXRhbG9nLnRzXCI7XG5leHBvcnQgKiBhcyBtb2RlbENsaWVudCBmcm9tIFwiLi9zcmMvbW9kZWwtY2xpZW50LnRzXCI7XG5leHBvcnQgKiBhcyBwb2xpY3kgZnJvbSBcIi4vc3JjL3BvbGljeS50c1wiO1xuZXhwb3J0ICogYXMgcmVhc29uaW5nVHJhbnNsYXRpb24gZnJvbSBcIi4vc3JjL3JlYXNvbmluZy10cmFuc2xhdGlvbi50c1wiO1xuZXhwb3J0ICogYXMgcmVzb2x2ZSBmcm9tIFwiLi9zcmMvcmVzb2x2ZS50c1wiO1xuZXhwb3J0ICogYXMgcmV0aXJlbWVudCBmcm9tIFwiLi9zcmMvcmV0aXJlbWVudC50c1wiO1xuZXhwb3J0ICogYXMgc2VsZWN0aW9uIGZyb20gXCIuL3NyYy9zZWxlY3Rpb24udHNcIjtcbmV4cG9ydCB7IENIQVRfQ0xBU1NfT1JERVIsIE1PREVMX0NMQVNTX09SREVSLCBpc0NoYXRDbGFzcywgcGFyc2VNb2RlbENsYXNzLCBjbGFzc2VzQXRPckJlbG93IH0gZnJvbSBcIi4vc3JjL2NsYXNzZXMudHNcIjtcbmV4cG9ydCB7IHN1cHBvcnRzVG9vbHNCeUZhbWlseSwgZW5kcG9pbnRDYXBhYmlsaXRpZXMsIHZlcnNpb25UdXBsZSwgY29tcGFyZVZlcnNpb25UdXBsZXMsIGNsYXNzaWZ5QnlGYW1pbHksIGNsYXNzaWZ5RW5kcG9pbnRzIH0gZnJvbSBcIi4vc3JjL2NsYXNzaWZ5LnRzXCI7XG5leHBvcnQgeyBtb2RlbHNGb3JDbGFzcywgbW9kZWxGb3JDbGFzcywgRkFMTEJBQ0tfTU9ERUxfSURTIH0gZnJvbSBcIi4vc3JjL2ZhbGxiYWNrLnRzXCI7XG5leHBvcnQgeyBJTlZPQ0FUSU9OU19TVUZGSVgsIFNFUlZJTkdfRU5EUE9JTlRTX1BBVEgsIFJFU1BPTlNFU19QQVRILCBPUEVOX1JFU1BPTlNFU19QQVRILCBDSEFUX0NPTVBMRVRJT05TX1BBVEgsIEFJX0dBVEVXQVlfQ09ERVhfUkVTUE9OU0VTX1BBVEgsIEFOVEhST1BJQ19CQVNFX1BBVEgsIEFOVEhST1BJQ19NRVNTQUdFU19QQVRILCBzZXJ2aW5nRW5kcG9pbnRzVXJsLCBpbnZvY2F0aW9uc1VybCwgcmVzcG9uc2VzVXJsLCBvcGVuUmVzcG9uc2VzVXJsLCBjaGF0Q29tcGxldGlvbnNVcmwsIGFpR2F0ZXdheUNvZGV4UmVzcG9uc2VzVXJsLCBhbnRocm9waWNNZXNzYWdlc1VybCwgYW50aHJvcGljQmFzZVVybCwgcmVzcG9uc2VzVXBzdHJlYW1VcmwsIGF1dGhIZWFkZXJzIH0gZnJvbSBcIi4vc3JjL2ludm9rZS50c1wiO1xuZXhwb3J0IHR5cGUgeyBBdXRoZW50aWNhdGluZ0NsaWVudExpa2UgfSBmcm9tIFwiLi9zcmMvaW52b2tlLnRzXCI7XG5leHBvcnQgeyBjcmVhdGVNZXRhZGF0YUNhY2hlLCBtZXJnZVByZWZlckZyZXNoTGlzdCwgbWVyZ2VQcmVmZXJGcmVzaFJlY29yZCB9IGZyb20gXCIuL3NyYy9tZXRhZGF0YS1jYWNoZS50c1wiO1xuZXhwb3J0IHR5cGUgeyBNZXRhZGF0YUNhY2hlT3B0aW9ucywgTWV0YWRhdGFDYWNoZU1lcmdlSW5wdXQsIE1ldGFkYXRhQ2FjaGUgfSBmcm9tIFwiLi9zcmMvbWV0YWRhdGEtY2FjaGUudHNcIjtcbmV4cG9ydCB7IE1PREVMX01FVEFEQVRBX1RUTF9NUywgUkVUSVJFRF9NT0RFTFNfVVJMLCBPUEVOQUlfUkVTUE9OU0VTX01PREVMU19VUkwsIFdFQl9TRUFSQ0hfTU9ERUxTX1VSTCwgTU9ERUxfUkFURV9MSU1JVFNfVVJMLCBRVUVSWV9SRUFTT05fTU9ERUxTX1VSTCB9IGZyb20gXCIuL3NyYy9tZXRhZGF0YS1jb250cmFjdC50c1wiO1xuZXhwb3J0IHR5cGUgeyBSZXRpcmVkTW9kZWxzU25hcHNob3QsIE1vZGVsQ2FwYWJpbGl0eUNhdGFsb2d1ZSwgTW9kZWxDYXBhYmlsaXRpZXNTbmFwc2hvdCwgTW9kZWxSYXRlTGltaXRDYXRhbG9ndWUsIE1vZGVsUmF0ZUxpbWl0c1NuYXBzaG90LCBSZWFzb25pbmdNb2RlbHNTbmFwc2hvdCB9IGZyb20gXCIuL3NyYy9tZXRhZGF0YS1jb250cmFjdC50c1wiO1xuZXhwb3J0IHsgcmVmcmVzaE1vZGVsTWV0YWRhdGEsIGh5ZHJhdGVNb2RlbE1ldGFkYXRhLCByZWFzb25pbmdNb2RlbENhdGFsb2d1ZSwgbGVhcm5lZFJlYXNvbmluZ0NhdGFsb2d1ZSwgcmVtZW1iZXJSZWFzb25pbmdMZXZlbHMsIGxlYXJuUmVhc29uaW5nTGV2ZWxzRnJvbUVycm9yLCBtb2RlbENhcGFiaWxpdGllc0ZvciwgbW9kZWxSYXRlTGltaXRzRm9yLCBtb2RlbFJlYXNvbmluZ0xldmVsc0ZvciwgbW9kZWxNZXRhZGF0YUZvciwgbW9kZWxNZXRhZGF0YUdlbmVyYXRlZEF0IH0gZnJvbSBcIi4vc3JjL21ldGFkYXRhLnRzXCI7XG5leHBvcnQgeyBERUZBVUxUX01PREVMX0NBQ0hFX1RUTF9NUywgREVGQVVMVF9GVVpaWV9USFJFU0hPTEQsIGxpc3RTZXJ2aW5nRW5kcG9pbnRzLCBsaXN0U2VydmluZ0VuZHBvaW50c1VuY2FjaGVkLCBjbGVhclNlcnZpbmdFbmRwb2ludHNDYWNoZSwgc2VhcmNoU2VydmluZ0VuZHBvaW50cywgcmVzb2x2ZU1vZGVsSWQgfSBmcm9tIFwiLi9zcmMvbW9kZWwtY2F0YWxvZy50c1wiO1xuZXhwb3J0IHR5cGUgeyBXb3Jrc3BhY2VDbGllbnRMaWtlLCBMaXN0U2VydmluZ0VuZHBvaW50c09wdGlvbnMgfSBmcm9tIFwiLi9zcmMvbW9kZWwtY2F0YWxvZy50c1wiO1xuZXhwb3J0IHsgREVGQVVMVF9NT0RFTF9DTElFTlRfQ0FDSEVfVFRMX01TLCBjcmVhdGVNb2RlbENsaWVudCwgbGlzdFByb2ZpbGVzLCBjcmVhdGVNb2RlbENsaWVudFdpdGhEYXRhYnJpY2tzQ2xpZW50LCBjcmVhdGVNb2RlbENsaWVudFdpdGhEZXBlbmRlbmNpZXMgfSBmcm9tIFwiLi9zcmMvbW9kZWwtY2xpZW50LnRzXCI7XG5leHBvcnQgdHlwZSB7IE1vZGVsQXV0aE9wdGlvbnMsIE1vZGVsQ2xpZW50T3B0aW9ucywgTW9kZWxDbGllbnRTdGF0dXMsIE1vZGVsUHJvdG9jb2wsIE1vZGVsUm91dGVJbnB1dCwgTW9kZWxSb3V0ZSwgTW9kZWxDbGllbnQgfSBmcm9tIFwiLi9zcmMvbW9kZWwtY2xpZW50LnRzXCI7XG5leHBvcnQgeyBNb2RlbEZhbWlseSwgbW9kZWxGYW1pbHksIG1vZGVsRmFtaWx5UmFuaywgbW9kZWxTZWFyY2hRdWVyeSwgaW5oZXJpdHNOYXRpdmVXZWJTZWFyY2gsIGlzRm91bmRhdGlvbk1vZGVsSWRlbnRpdHksIG1vZGVsU2VydmljZU5hbWUsIHN5c3RlbU1vZGVsU2VydmljZSwgcHJlZmVyc1N5c3RlbU1vZGVsU2VydmljZSwgaXNPcGVuV2VpZ2h0c0dwdCwgbW9kZWxSZWFzb25pbmdFZmZvcnRzLCBtb2RlbFN1cHBvcnRzVG9vbHMsIGVuZHBvaW50U3VwcG9ydHNUb29scywgbW9kZWxTZXJ2aW5nQXBpLCBjaGF0VG9vbFJlYXNvbmluZ0VmZm9ydCwgbW9kZWxTZXJ2aWNlTmFtZXMgfSBmcm9tIFwiLi9zcmMvcG9saWN5LnRzXCI7XG5leHBvcnQgeyBSZWFzb25pbmdMZXZlbCwgUkVBU09OSU5HX0xFVkVMUywgcGFyc2VSZWFzb25pbmcsIHBhcnNlUmVhc29uaW5nTGV2ZWxzLCBkb2N1bWVudGVkUmVhc29uaW5nTGV2ZWxzLCBkZWZhdWx0UmVhc29uaW5nTGV2ZWxzLCByZWFzb25pbmdMZXZlbHNGb3IsIGZvcm1hdFJlYXNvbmluZywgcmVtYXBSZWFzb25pbmcsIGFkYXB0UmVxdWVzdFJlYXNvbmluZywgbm9ybWFsaXplUmVhc29uaW5nVG9rZW4sIHVuaXF1ZVJlYXNvbmluZ0xldmVscyB9IGZyb20gXCIuL3NyYy9yZWFzb25pbmctdHJhbnNsYXRpb24udHNcIjtcbmV4cG9ydCB0eXBlIHsgQWRhcHRlZFJlcXVlc3RSZWFzb25pbmcgfSBmcm9tIFwiLi9zcmMvcmVhc29uaW5nLXRyYW5zbGF0aW9uLnRzXCI7XG5leHBvcnQgeyByYW5rTW9kZWxJZExpdmUsIHNlYXJjaE1vZGVscywgc2VsZWN0TW9kZWwgfSBmcm9tIFwiLi9zcmMvcmVzb2x2ZS50c1wiO1xuZXhwb3J0IHR5cGUgeyBTZWxlY3RNb2RlbElucHV0LCBTZWFyY2hNb2RlbHNJbnB1dCB9IGZyb20gXCIuL3NyYy9yZXNvbHZlLnRzXCI7XG5leHBvcnQgeyBDT01NSVRURURfUkVUSVJFRF9NT0RFTFMsIFJFVElSRURfTU9ERUxTX0dFTkVSQVRFRF9BVCwgcmVwbGFjZVJldGlyZWRNb2RlbE5hbWVzLCByZXRpcmVkTW9kZWxOYW1lcywgbW9kZWxTdGF0dXNGb3IgfSBmcm9tIFwiLi9zcmMvcmV0aXJlbWVudC50c1wiO1xuZXhwb3J0IHsgbG9va3VwTW9kZWxzLCByYW5rTW9kZWxJZCwgcmVzb2x2ZU1vZGVsIH0gZnJvbSBcIi4vc3JjL3NlbGVjdGlvbi50c1wiO1xuZXhwb3J0IHR5cGUgeyBNb2RlbFNlbGVjdGlvblBvbGljeU9wdGlvbnMgfSBmcm9tIFwiLi9zcmMvc2VsZWN0aW9uLnRzXCI7XG4iXX0=
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwyQ0FBMkM7QUFDM0MsbURBQW1EO0FBQ25ELHdFQUF3RTtBQUV4RSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxrQkFBa0IsQ0FBQztBQUNyRCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsU0FBUyxDQUFDO0FBQ3pDLE9BQU8sS0FBSyxRQUFRLE1BQU0sbUJBQW1CLENBQUM7QUFDOUMsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxPQUFPLEtBQUssT0FBTyxNQUFNLGtCQUFrQixDQUFDO0FBQzVDLE9BQU8sS0FBSyxRQUFRLE1BQU0sbUJBQW1CLENBQUM7QUFDOUMsT0FBTyxLQUFLLFFBQVEsTUFBTSxtQkFBbUIsQ0FBQztBQUM5QyxPQUFPLEtBQUssTUFBTSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sS0FBSyxhQUFhLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxLQUFLLGdCQUFnQixNQUFNLDRCQUE0QixDQUFDO0FBQy9ELE9BQU8sS0FBSyxRQUFRLE1BQU0sbUJBQW1CLENBQUM7QUFDOUMsT0FBTyxLQUFLLFlBQVksTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEtBQUssV0FBVyxNQUFNLHVCQUF1QixDQUFDO0FBQ3JELE9BQU8sS0FBSyxNQUFNLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxLQUFLLG9CQUFvQixNQUFNLGdDQUFnQyxDQUFDO0FBQ3ZFLE9BQU8sS0FBSyxPQUFPLE1BQU0sa0JBQWtCLENBQUM7QUFDNUMsT0FBTyxLQUFLLFVBQVUsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRCxPQUFPLEtBQUssU0FBUyxNQUFNLG9CQUFvQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxpQkFBaUIsRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDdkgsT0FBTyxFQUFFLHFCQUFxQixFQUFFLG9CQUFvQixFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxnQkFBZ0IsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3pKLE9BQU8sRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLHNCQUFzQixFQUFFLGNBQWMsRUFBRSxtQkFBbUIsRUFBRSxxQkFBcUIsRUFBRSwrQkFBK0IsRUFBRSxtQkFBbUIsRUFBRSx1QkFBdUIsRUFBRSxtQkFBbUIsRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixFQUFFLGtCQUFrQixFQUFFLDBCQUEwQixFQUFFLG9CQUFvQixFQUFFLGdCQUFnQixFQUFFLG9CQUFvQixFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXhaLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxvQkFBb0IsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRTVHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxrQkFBa0IsRUFBRSwyQkFBMkIsRUFBRSxxQkFBcUIsRUFBRSxxQkFBcUIsRUFBRSx1QkFBdUIsRUFBRSxrQkFBa0IsRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRTNPLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxvQkFBb0IsRUFBRSx1QkFBdUIsRUFBRSx5QkFBeUIsRUFBRSx1QkFBdUIsRUFBRSw2QkFBNkIsRUFBRSxvQkFBb0IsRUFBRSwwQkFBMEIsRUFBRSxrQkFBa0IsRUFBRSx1QkFBdUIsRUFBRSxnQkFBZ0IsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3RVLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSx1QkFBdUIsRUFBRSxvQkFBb0IsRUFBRSw0QkFBNEIsRUFBRSwwQkFBMEIsRUFBRSxzQkFBc0IsRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUVyTixPQUFPLEVBQUUsaUNBQWlDLEVBQUUsaUJBQWlCLEVBQUUsWUFBWSxFQUFFLHFDQUFxQyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFckwsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLHVCQUF1QixFQUFFLHlCQUF5QixFQUFFLGdCQUFnQixFQUFFLGtCQUFrQixFQUFFLHlCQUF5QixFQUFFLGdCQUFnQixFQUFFLHFCQUFxQixFQUFFLGtCQUFrQixFQUFFLHFCQUFxQixFQUFFLGVBQWUsRUFBRSx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BXLE9BQU8sRUFBRSxjQUFjLEVBQUUsZ0JBQWdCLEVBQUUsY0FBYyxFQUFFLG9CQUFvQixFQUFFLHlCQUF5QixFQUFFLHNCQUFzQixFQUFFLGtCQUFrQixFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUscUJBQXFCLEVBQUUsdUJBQXVCLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUV2UyxPQUFPLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUU5RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsMkJBQTJCLEVBQUUsd0JBQXdCLEVBQUUsaUJBQWlCLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDekosT0FBTyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0JBQW9CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBHRU5FUkFURUQgYnkgcHJvamVuIHdhdGNoIC0gRE8gTk9UIEVESVQuXG4vLyBSZWdlbmVyYXRlZCBmcm9tIHRoZSBleHBvcnRpbmcgbW9kdWxlcyBpbiAuL3NyYy5cbi8vIEhhbmQgZWRpdHMgYXJlIG92ZXJ3cml0dGVuIG9uIHRoZSBuZXh0IHdhdGNoOyB0aGlzIGZpbGUgaXMgcmVhZC1vbmx5LlxuXG5leHBvcnQgY29uc3QgUEFDS0FHRV9JREVOVElGSUVSID0gXCJAZGJ4LXRvb2xzL21vZGVsXCI7XG5leHBvcnQgY29uc3QgUEFDS0FHRV9WRVJTSU9OID0gXCIwLjkuMTczXCI7XG5leHBvcnQgKiBhcyBiaW5kaW5ncyBmcm9tIFwiLi9zcmMvYmluZGluZ3MudHNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9iaW5kaW5ncy50c1wiO1xuZXhwb3J0ICogYXMgY2xhc3NlcyBmcm9tIFwiLi9zcmMvY2xhc3Nlcy50c1wiO1xuZXhwb3J0ICogYXMgY2xhc3NpZnkgZnJvbSBcIi4vc3JjL2NsYXNzaWZ5LnRzXCI7XG5leHBvcnQgKiBhcyBmYWxsYmFjayBmcm9tIFwiLi9zcmMvZmFsbGJhY2sudHNcIjtcbmV4cG9ydCAqIGFzIGludm9rZSBmcm9tIFwiLi9zcmMvaW52b2tlLnRzXCI7XG5leHBvcnQgKiBhcyBtZXRhZGF0YUNhY2hlIGZyb20gXCIuL3NyYy9tZXRhZGF0YS1jYWNoZS50c1wiO1xuZXhwb3J0ICogYXMgbWV0YWRhdGFDb250cmFjdCBmcm9tIFwiLi9zcmMvbWV0YWRhdGEtY29udHJhY3QudHNcIjtcbmV4cG9ydCAqIGFzIG1ldGFkYXRhIGZyb20gXCIuL3NyYy9tZXRhZGF0YS50c1wiO1xuZXhwb3J0ICogYXMgbW9kZWxDYXRhbG9nIGZyb20gXCIuL3NyYy9tb2RlbC1jYXRhbG9nLnRzXCI7XG5leHBvcnQgKiBhcyBtb2RlbENsaWVudCBmcm9tIFwiLi9zcmMvbW9kZWwtY2xpZW50LnRzXCI7XG5leHBvcnQgKiBhcyBwb2xpY3kgZnJvbSBcIi4vc3JjL3BvbGljeS50c1wiO1xuZXhwb3J0ICogYXMgcmVhc29uaW5nVHJhbnNsYXRpb24gZnJvbSBcIi4vc3JjL3JlYXNvbmluZy10cmFuc2xhdGlvbi50c1wiO1xuZXhwb3J0ICogYXMgcmVzb2x2ZSBmcm9tIFwiLi9zcmMvcmVzb2x2ZS50c1wiO1xuZXhwb3J0ICogYXMgcmV0aXJlbWVudCBmcm9tIFwiLi9zcmMvcmV0aXJlbWVudC50c1wiO1xuZXhwb3J0ICogYXMgc2VsZWN0aW9uIGZyb20gXCIuL3NyYy9zZWxlY3Rpb24udHNcIjtcbmV4cG9ydCB7IENIQVRfQ0xBU1NfT1JERVIsIE1PREVMX0NMQVNTX09SREVSLCBpc0NoYXRDbGFzcywgcGFyc2VNb2RlbENsYXNzLCBjbGFzc2VzQXRPckJlbG93IH0gZnJvbSBcIi4vc3JjL2NsYXNzZXMudHNcIjtcbmV4cG9ydCB7IHN1cHBvcnRzVG9vbHNCeUZhbWlseSwgZW5kcG9pbnRDYXBhYmlsaXRpZXMsIHZlcnNpb25UdXBsZSwgY29tcGFyZVZlcnNpb25UdXBsZXMsIGNsYXNzaWZ5QnlGYW1pbHksIGNsYXNzaWZ5RW5kcG9pbnRzIH0gZnJvbSBcIi4vc3JjL2NsYXNzaWZ5LnRzXCI7XG5leHBvcnQgeyBtb2RlbHNGb3JDbGFzcywgbW9kZWxGb3JDbGFzcywgRkFMTEJBQ0tfTU9ERUxfSURTIH0gZnJvbSBcIi4vc3JjL2ZhbGxiYWNrLnRzXCI7XG5leHBvcnQgeyBJTlZPQ0FUSU9OU19TVUZGSVgsIFNFUlZJTkdfRU5EUE9JTlRTX1BBVEgsIFJFU1BPTlNFU19QQVRILCBPUEVOX1JFU1BPTlNFU19QQVRILCBDSEFUX0NPTVBMRVRJT05TX1BBVEgsIEFJX0dBVEVXQVlfQ09ERVhfUkVTUE9OU0VTX1BBVEgsIEFOVEhST1BJQ19CQVNFX1BBVEgsIEFOVEhST1BJQ19NRVNTQUdFU19QQVRILCBzZXJ2aW5nRW5kcG9pbnRzVXJsLCBpbnZvY2F0aW9uc1VybCwgcmVzcG9uc2VzVXJsLCBvcGVuUmVzcG9uc2VzVXJsLCBjaGF0Q29tcGxldGlvbnNVcmwsIGFpR2F0ZXdheUNvZGV4UmVzcG9uc2VzVXJsLCBhbnRocm9waWNNZXNzYWdlc1VybCwgYW50aHJvcGljQmFzZVVybCwgcmVzcG9uc2VzVXBzdHJlYW1VcmwsIGF1dGhIZWFkZXJzIH0gZnJvbSBcIi4vc3JjL2ludm9rZS50c1wiO1xuZXhwb3J0IHR5cGUgeyBBdXRoZW50aWNhdGluZ0NsaWVudExpa2UgfSBmcm9tIFwiLi9zcmMvaW52b2tlLnRzXCI7XG5leHBvcnQgeyBjcmVhdGVNZXRhZGF0YUNhY2hlLCBtZXJnZVByZWZlckZyZXNoTGlzdCwgbWVyZ2VQcmVmZXJGcmVzaFJlY29yZCB9IGZyb20gXCIuL3NyYy9tZXRhZGF0YS1jYWNoZS50c1wiO1xuZXhwb3J0IHR5cGUgeyBNZXRhZGF0YUNhY2hlT3B0aW9ucywgTWV0YWRhdGFDYWNoZU1lcmdlSW5wdXQsIE1ldGFkYXRhQ2FjaGUgfSBmcm9tIFwiLi9zcmMvbWV0YWRhdGEtY2FjaGUudHNcIjtcbmV4cG9ydCB7IE1PREVMX01FVEFEQVRBX1RUTF9NUywgUkVUSVJFRF9NT0RFTFNfVVJMLCBPUEVOQUlfUkVTUE9OU0VTX01PREVMU19VUkwsIFdFQl9TRUFSQ0hfTU9ERUxTX1VSTCwgTU9ERUxfUkFURV9MSU1JVFNfVVJMLCBRVUVSWV9SRUFTT05fTU9ERUxTX1VSTCwgTU9ERUxTX0RFVl9BUElfVVJMLCBNT0RFTFBBUkFNU19ERVZfTU9ERUxTX1VSTCB9IGZyb20gXCIuL3NyYy9tZXRhZGF0YS1jb250cmFjdC50c1wiO1xuZXhwb3J0IHR5cGUgeyBSZXRpcmVkTW9kZWxzU25hcHNob3QsIE1vZGVsQ2FwYWJpbGl0eUNhdGFsb2d1ZSwgTW9kZWxDYXBhYmlsaXRpZXNTbmFwc2hvdCwgTW9kZWxSYXRlTGltaXRDYXRhbG9ndWUsIE1vZGVsUmF0ZUxpbWl0c1NuYXBzaG90LCBSZWFzb25pbmdNb2RlbHNTbmFwc2hvdCwgTW9kZWxzRGV2Q2FwYWJpbGl0eUNhdGFsb2d1ZSwgTW9kZWxzRGV2U25hcHNob3QsIE1vZGVsUGFyYW1zQ2F0YWxvZ3VlLCBNb2RlbFBhcmFtc1NuYXBzaG90IH0gZnJvbSBcIi4vc3JjL21ldGFkYXRhLWNvbnRyYWN0LnRzXCI7XG5leHBvcnQgeyByZWZyZXNoTW9kZWxNZXRhZGF0YSwgaHlkcmF0ZU1vZGVsTWV0YWRhdGEsIHJlYXNvbmluZ01vZGVsQ2F0YWxvZ3VlLCBsZWFybmVkUmVhc29uaW5nQ2F0YWxvZ3VlLCByZW1lbWJlclJlYXNvbmluZ0xldmVscywgbGVhcm5SZWFzb25pbmdMZXZlbHNGcm9tRXJyb3IsIG1vZGVsQ2FwYWJpbGl0aWVzRm9yLCBtb2RlbFRlbXBlcmF0dXJlU3VwcG9ydEZvciwgbW9kZWxSYXRlTGltaXRzRm9yLCBtb2RlbFJlYXNvbmluZ0xldmVsc0ZvciwgbW9kZWxNZXRhZGF0YUZvciwgbW9kZWxNZXRhZGF0YUdlbmVyYXRlZEF0IH0gZnJvbSBcIi4vc3JjL21ldGFkYXRhLnRzXCI7XG5leHBvcnQgeyBERUZBVUxUX01PREVMX0NBQ0hFX1RUTF9NUywgREVGQVVMVF9GVVpaWV9USFJFU0hPTEQsIGxpc3RTZXJ2aW5nRW5kcG9pbnRzLCBsaXN0U2VydmluZ0VuZHBvaW50c1VuY2FjaGVkLCBjbGVhclNlcnZpbmdFbmRwb2ludHNDYWNoZSwgc2VhcmNoU2VydmluZ0VuZHBvaW50cywgcmVzb2x2ZU1vZGVsSWQgfSBmcm9tIFwiLi9zcmMvbW9kZWwtY2F0YWxvZy50c1wiO1xuZXhwb3J0IHR5cGUgeyBXb3Jrc3BhY2VDbGllbnRMaWtlLCBMaXN0U2VydmluZ0VuZHBvaW50c09wdGlvbnMgfSBmcm9tIFwiLi9zcmMvbW9kZWwtY2F0YWxvZy50c1wiO1xuZXhwb3J0IHsgREVGQVVMVF9NT0RFTF9DTElFTlRfQ0FDSEVfVFRMX01TLCBjcmVhdGVNb2RlbENsaWVudCwgbGlzdFByb2ZpbGVzLCBjcmVhdGVNb2RlbENsaWVudFdpdGhEYXRhYnJpY2tzQ2xpZW50LCBjcmVhdGVNb2RlbENsaWVudFdpdGhEZXBlbmRlbmNpZXMgfSBmcm9tIFwiLi9zcmMvbW9kZWwtY2xpZW50LnRzXCI7XG5leHBvcnQgdHlwZSB7IE1vZGVsQXV0aE9wdGlvbnMsIE1vZGVsQ2xpZW50T3B0aW9ucywgTW9kZWxDbGllbnRTdGF0dXMsIE1vZGVsUHJvdG9jb2wsIE1vZGVsUm91dGVJbnB1dCwgTW9kZWxSb3V0ZSwgTW9kZWxDbGllbnQgfSBmcm9tIFwiLi9zcmMvbW9kZWwtY2xpZW50LnRzXCI7XG5leHBvcnQgeyBNb2RlbEZhbWlseSwgbW9kZWxGYW1pbHksIG1vZGVsRmFtaWx5UmFuaywgbW9kZWxTZWFyY2hRdWVyeSwgaW5oZXJpdHNOYXRpdmVXZWJTZWFyY2gsIGlzRm91bmRhdGlvbk1vZGVsSWRlbnRpdHksIG1vZGVsU2VydmljZU5hbWUsIHN5c3RlbU1vZGVsU2VydmljZSwgcHJlZmVyc1N5c3RlbU1vZGVsU2VydmljZSwgaXNPcGVuV2VpZ2h0c0dwdCwgbW9kZWxSZWFzb25pbmdFZmZvcnRzLCBtb2RlbFN1cHBvcnRzVG9vbHMsIGVuZHBvaW50U3VwcG9ydHNUb29scywgbW9kZWxTZXJ2aW5nQXBpLCBjaGF0VG9vbFJlYXNvbmluZ0VmZm9ydCwgbW9kZWxTZXJ2aWNlTmFtZXMgfSBmcm9tIFwiLi9zcmMvcG9saWN5LnRzXCI7XG5leHBvcnQgeyBSZWFzb25pbmdMZXZlbCwgUkVBU09OSU5HX0xFVkVMUywgcGFyc2VSZWFzb25pbmcsIHBhcnNlUmVhc29uaW5nTGV2ZWxzLCBkb2N1bWVudGVkUmVhc29uaW5nTGV2ZWxzLCBkZWZhdWx0UmVhc29uaW5nTGV2ZWxzLCByZWFzb25pbmdMZXZlbHNGb3IsIGZvcm1hdFJlYXNvbmluZywgcmVtYXBSZWFzb25pbmcsIGFkYXB0UmVxdWVzdFJlYXNvbmluZywgbm9ybWFsaXplUmVhc29uaW5nVG9rZW4sIHVuaXF1ZVJlYXNvbmluZ0xldmVscyB9IGZyb20gXCIuL3NyYy9yZWFzb25pbmctdHJhbnNsYXRpb24udHNcIjtcbmV4cG9ydCB0eXBlIHsgQWRhcHRlZFJlcXVlc3RSZWFzb25pbmcgfSBmcm9tIFwiLi9zcmMvcmVhc29uaW5nLXRyYW5zbGF0aW9uLnRzXCI7XG5leHBvcnQgeyByYW5rTW9kZWxJZExpdmUsIHNlYXJjaE1vZGVscywgc2VsZWN0TW9kZWwgfSBmcm9tIFwiLi9zcmMvcmVzb2x2ZS50c1wiO1xuZXhwb3J0IHR5cGUgeyBTZWxlY3RNb2RlbElucHV0LCBTZWFyY2hNb2RlbHNJbnB1dCB9IGZyb20gXCIuL3NyYy9yZXNvbHZlLnRzXCI7XG5leHBvcnQgeyBDT01NSVRURURfUkVUSVJFRF9NT0RFTFMsIFJFVElSRURfTU9ERUxTX0dFTkVSQVRFRF9BVCwgcmVwbGFjZVJldGlyZWRNb2RlbE5hbWVzLCByZXRpcmVkTW9kZWxOYW1lcywgbW9kZWxTdGF0dXNGb3IgfSBmcm9tIFwiLi9zcmMvcmV0aXJlbWVudC50c1wiO1xuZXhwb3J0IHsgbG9va3VwTW9kZWxzLCByYW5rTW9kZWxJZCwgcmVzb2x2ZU1vZGVsIH0gZnJvbSBcIi4vc3JjL3NlbGVjdGlvbi50c1wiO1xuZXhwb3J0IHR5cGUgeyBNb2RlbFNlbGVjdGlvblBvbGljeU9wdGlvbnMgfSBmcm9tIFwiLi9zcmMvc2VsZWN0aW9uLnRzXCI7XG4iXX0=
@@ -1,8 +1,8 @@
1
1
  import { mkdir, readFile, rename, writeFile } from "node:fs/promises";
2
2
  import { dirname, resolve } from "node:path";
3
3
  import { fileURLToPath } from "node:url";
4
- import { parseModelCapabilities, parseModelRateLimits, parseReasoningModels, parseRetiredModels, } from "../src/_metadata-generator.js";
5
- import { MODEL_METADATA_TTL_MS, MODEL_RATE_LIMITS_URL, OPENAI_RESPONSES_MODELS_URL, QUERY_REASON_MODELS_URL, RETIRED_MODELS_URL, WEB_SEARCH_MODELS_URL, } from "../src/metadata-contract.js";
4
+ import { parseModelParams, parseModelCapabilities, parseModelRateLimits, parseModelsDev, parseReasoningModels, parseRetiredModels, } from "../src/_metadata-generator.js";
5
+ import { MODELPARAMS_DEV_MODELS_URL, MODELS_DEV_API_URL, MODEL_METADATA_TTL_MS, MODEL_RATE_LIMITS_URL, OPENAI_RESPONSES_MODELS_URL, QUERY_REASON_MODELS_URL, RETIRED_MODELS_URL, WEB_SEARCH_MODELS_URL, } from "../src/metadata-contract.js";
6
6
  const repositoryRoot = resolve(dirname(fileURLToPath(import.meta.url)), "../../../../..");
7
7
  const nodeOutput = resolve(repositoryRoot, "packages/js/node/model/src/generated");
8
8
  const now = Math.floor(Date.now() / 1000);
@@ -17,6 +17,8 @@ await Promise.all([
17
17
  }),
18
18
  refreshSnapshot("model-rate-limits.json", async () => parseModelRateLimits(await loadPage(MODEL_RATE_LIMITS_URL), now)),
19
19
  refreshSnapshot("model-reasoning.json", async () => parseReasoningModels(await loadPage(QUERY_REASON_MODELS_URL), now)),
20
+ refreshSnapshot("models-dev-capabilities.json", async () => parseModelsDev(await loadJson(MODELS_DEV_API_URL), now)),
21
+ refreshSnapshot("modelparams-reasoning.json", async () => parseModelParams(await loadJson(MODELPARAMS_DEV_MODELS_URL), now)),
20
22
  ]);
21
23
  async function refreshSnapshot(filename, loadSnapshot) {
22
24
  const primaryPath = resolve(nodeOutput, filename);
@@ -48,6 +50,16 @@ async function loadPage(url) {
48
50
  }
49
51
  return response.text();
50
52
  }
53
+ async function loadJson(url) {
54
+ const response = await fetch(url, {
55
+ headers: { "user-agent": "dbx-tools-model-metadata/1" },
56
+ signal: AbortSignal.timeout(15_000),
57
+ });
58
+ if (!response.ok) {
59
+ throw new Error(`Model metadata source returned HTTP ${response.status}: ${url}`);
60
+ }
61
+ return response.json();
62
+ }
51
63
  async function readSnapshot(path) {
52
64
  try {
53
65
  return JSON.parse(await readFile(path, "utf8"));
@@ -62,4 +74,4 @@ async function writeSnapshot(path, snapshot) {
62
74
  await writeFile(temporary, `${JSON.stringify(snapshot, null, 2)}\n`);
63
75
  await rename(temporary, path);
64
76
  }
65
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGUtbWV0YWRhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zY3JpcHRzL2dlbmVyYXRlLW1ldGFkYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN0RSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUM3QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRXpDLE9BQU8sRUFDTCxzQkFBc0IsRUFDdEIsb0JBQW9CLEVBQ3BCLG9CQUFvQixFQUNwQixrQkFBa0IsR0FDbkIsTUFBTSwrQkFBK0IsQ0FBQztBQUN2QyxPQUFPLEVBQ0wscUJBQXFCLEVBQ3JCLHFCQUFxQixFQUNyQiwyQkFBMkIsRUFDM0IsdUJBQXVCLEVBQ3ZCLGtCQUFrQixFQUNsQixxQkFBcUIsR0FLdEIsTUFBTSw2QkFBNkIsQ0FBQztBQUVyQyxNQUFNLGNBQWMsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztBQUMxRixNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsY0FBYyxFQUFFLHNDQUFzQyxDQUFDLENBQUM7QUFDbkYsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7QUFFMUMsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDO0lBQ2hCLGVBQWUsQ0FBd0IscUJBQXFCLEVBQUUsS0FBSyxJQUFJLEVBQUUsQ0FDdkUsa0JBQWtCLENBQUMsTUFBTSxRQUFRLENBQUMsa0JBQWtCLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FDNUQ7SUFDRCxlQUFlLENBQTRCLHlCQUF5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RSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNoRCxNQUFNLFNBQVMsR0FBRyxHQUFHLElBQUksSUFBSSxPQUFPLENBQUMsR0FBRyxNQUFNLENBQUM7SUFDL0MsTUFBTSxTQUFTLENBQUMsU0FBUyxFQUFFLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNyRSxNQUFNLE1BQU0sQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDaEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1rZGlyLCByZWFkRmlsZSwgcmVuYW1lLCB3cml0ZUZpbGUgfSBmcm9tIFwibm9kZTpmcy9wcm9taXNlc1wiO1xuaW1wb3J0IHsgZGlybmFtZSwgcmVzb2x2ZSB9IGZyb20gXCJub2RlOnBhdGhcIjtcbmltcG9ydCB7IGZpbGVVUkxUb1BhdGggfSBmcm9tIFwibm9kZTp1cmxcIjtcblxuaW1wb3J0IHtcbiAgcGFyc2VNb2RlbENhcGFiaWxpdGllcyxcbiAgcGFyc2VNb2RlbFJhdGVMaW1pdHMsXG4gIHBhcnNlUmVhc29uaW5nTW9kZWxzLFxuICBwYXJzZVJldGlyZWRNb2RlbHMsXG59IGZyb20gXCIuLi9zcmMvX21ldGFkYXRhLWdlbmVyYXRvci50c1wiO1xuaW1wb3J0IHtcbiAgTU9ERUxfTUVUQURBVEFfVFRMX01TLFxuICBNT0RFTF9SQVRFX0xJTUlUU19VUkwsXG4gIE9QRU5BSV9SRVNQT05TRVNfTU9ERUxTX1VSTCxcbiAgUVVFUllfUkVBU09OX01PREVMU19VUkwsXG4gIFJFVElSRURfTU9ERUxTX1VSTCxcbiAgV0VCX1NFQVJDSF9NT0RFTFNfVVJMLFxuICB0eXBlIE1vZGVsQ2FwYWJpbGl0aWVzU25hcHNob3QsXG4gIHR5cGUgTW9kZWxSYXRlTGltaXRzU25hcHNob3QsXG4gIHR5cGUgUmVhc29uaW5nTW9kZWxzU25hcHNob3QsXG4gIHR5cGUgUmV0aXJlZE1vZGVsc1NuYXBzaG90LFxufSBmcm9tIFwiLi4vc3JjL21ldGFkYXRhLWNvbnRyYWN0LnRzXCI7XG5cbmNvbnN0IHJlcG9zaXRvcnlSb290ID0gcmVzb2x2ZShkaXJuYW1lKGZpbGVVUkxUb1BhdGgoaW1wb3J0Lm1ldGEudXJsKSksIFwiLi4vLi4vLi4vLi4vLi5cIik7XG5jb25zdCBub2RlT3V0cHV0ID0gcmVzb2x2ZShyZXBvc2l0b3J5Um9vdCwgXCJwYWNrYWdlcy9qcy9ub2RlL21vZGVsL3NyYy9nZW5lcmF0ZWRcIik7XG5jb25zdCBub3cgPSBNYXRoLmZsb29yKERhdGUubm93KCkgLyAxMDAwKTtcblxuYXdhaXQgUHJvbWlzZS5hbGwoW1xuICByZWZyZXNoU25hcHNob3Q8UmV0aXJlZE1vZGVsc1NuYXBzaG90PihcInJldGlyZWQtbW9kZWxzLmpzb25cIiwgYXN5bmMgKCkgPT5cbiAgICBwYXJzZVJldGlyZWRNb2RlbHMoYXdhaXQgbG9hZFBhZ2UoUkVUSVJFRF9NT0RFTFNfVVJMKSwgbm93KSxcbiAgKSxcbiAgcmVmcmVzaFNuYXBzaG90PE1vZGVsQ2FwYWJpbGl0aWVzU25hcHNob3Q+KFwibW9kZWwtY2FwYWJpbGl0aWVzLmpzb25cIiwgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IFtyZXNwb25zZXNIdG1sLCB3ZWJTZWFyY2hIdG1sXSA9IGF3YWl0IFByb21pc2UuYWxsKFtcbiAgICAgIGxvYWRQYWdlKE9QRU5BSV9SRVNQT05TRVNfTU9ERUxTX1VSTCksXG4gICAgICBsb2FkUGFnZShXRUJfU0VBUkNIX01PREVMU19VUkwpLFxuICAgIF0pO1xuICAgIHJldHVybiBwYXJzZU1vZGVsQ2FwYWJpbGl0aWVzKHJlc3BvbnNlc0h0bWwsIHdlYlNlYXJjaEh0bWwsIG5vdyk7XG4gIH0pLFxuICByZWZyZXNoU25hcHNob3Q8TW9kZWxSYXRlTGltaXRzU25hcHNob3Q+KFwibW9kZWwtcmF0ZS1saW1pdHMuanNvblwiLCBhc3luYyAoKSA9PlxuICAgIHBhcnNlTW9kZWxSYXRlTGltaXRzKGF3YWl0IGxvYWRQYWdlKE1PREVMX1JBVEVfTElNSVRTX1VSTCksIG5vdyksXG4gICksXG4gIHJlZnJlc2hTbmFwc2hvdDxSZWFzb25pbmdNb2RlbHNTbmFwc2hvdD4oXCJtb2RlbC1yZWFzb25pbmcuanNvblwiLCBhc3luYyAoKSA9PlxuICAgIHBhcnNlUmVhc29uaW5nTW9kZWxzKGF3YWl0IGxvYWRQYWdlKFFVRVJZX1JFQVNPTl9NT0RFTFNfVVJMKSwgbm93KSxcbiAgKSxcbl0pO1xuXG5hc3luYyBmdW5jdGlvbiByZWZyZXNoU25hcHNob3Q8VCBleHRlbmRzIHsgcmVhZG9ubHkgZ2VuZXJhdGVkQXQ6IG51bWJlciB9PihcbiAgZmlsZW5hbWU6IHN0cmluZyxcbiAgbG9hZFNuYXBzaG90OiAoKSA9PiBQcm9taXNlPFQ+LFxuKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHByaW1hcnlQYXRoID0gcmVzb2x2ZShub2RlT3V0cHV0LCBmaWxlbmFtZSk7XG4gIGNvbnN0IGV4aXN0aW5nID0gYXdhaXQgcmVhZFNuYXBzaG90PFQ+KHByaW1hcnlQYXRoKTtcbiAgaWYgKGV4aXN0aW5nICYmIG5vdyAtIGV4aXN0aW5nLmdlbmVyYXRlZEF0IDwgTU9ERUxfTUVUQURBVEFfVFRMX01TIC8gMTAwMCkge1xuICAgIGF3YWl0IHdyaXRlU25hcHNob3QocHJpbWFyeVBhdGgsIGV4aXN0aW5nKTtcbiAgICBjb25zb2xlLmxvZyhgJHtmaWxlbmFtZX06IGN1cnJlbnRgKTtcbiAgICByZXR1cm47XG4gIH1cbiAgdHJ5IHtcbiAgICBjb25zdCBzbmFwc2hvdCA9IGF3YWl0IGxvYWRTbmFwc2hvdCgpO1xuICAgIGF3YWl0IHdyaXRlU25hcHNob3QocHJpbWFyeVBhdGgsIHNuYXBzaG90KTtcbiAgICBjb25zb2xlLmxvZyhgJHtmaWxlbmFtZX06IHJlZnJlc2hlZGApO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGlmICghZXhpc3RpbmcpIHRocm93IGVycm9yO1xuICAgIGF3YWl0IHdyaXRlU25hcHNob3QocHJpbWFyeVBhdGgsIGV4aXN0aW5nKTtcbiAgICBjb25zb2xlLndhcm4oYCR7ZmlsZW5hbWV9OiByZWZyZXNoIGZhaWxlZDsgcmV0YWluZWQgY29tbWl0dGVkIHNuYXBzaG90YCwgZXJyb3IpO1xuICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGxvYWRQYWdlKHVybDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCh1cmwsIHtcbiAgICBoZWFkZXJzOiB7IFwidXNlci1hZ2VudFwiOiBcImRieC10b29scy1tb2RlbC1tZXRhZGF0YS8xXCIgfSxcbiAgICBzaWduYWw6IEFib3J0U2lnbmFsLnRpbWVvdXQoMTVfMDAwKSxcbiAgfSk7XG4gIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYERhdGFicmlja3MgZG9jdW1lbnRhdGlvbiByZXR1cm5lZCBIVFRQICR7cmVzcG9uc2Uuc3RhdHVzfTogJHt1cmx9YCk7XG4gIH1cbiAgcmV0dXJuIHJlc3BvbnNlLnRleHQoKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gcmVhZFNuYXBzaG90PFQ+KHBhdGg6IHN0cmluZyk6IFByb21pc2U8VCB8IHVuZGVmaW5lZD4ge1xuICB0cnkge1xuICAgIHJldHVybiBKU09OLnBhcnNlKGF3YWl0IHJlYWRGaWxlKHBhdGgsIFwidXRmOFwiKSkgYXMgVDtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiB3cml0ZVNuYXBzaG90KHBhdGg6IHN0cmluZywgc25hcHNob3Q6IG9iamVjdCk6IFByb21pc2U8dm9pZD4ge1xuICBhd2FpdCBta2RpcihkaXJuYW1lKHBhdGgpLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgY29uc3QgdGVtcG9yYXJ5ID0gYCR7cGF0aH0uJHtwcm9jZXNzLnBpZH0udG1wYDtcbiAgYXdhaXQgd3JpdGVGaWxlKHRlbXBvcmFyeSwgYCR7SlNPTi5zdHJpbmdpZnkoc25hcHNob3QsIG51bGwsIDIpfVxcbmApO1xuICBhd2FpdCByZW5hbWUodGVtcG9yYXJ5LCBwYXRoKTtcbn1cbiJdfQ==
77
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGUtbWV0YWRhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zY3JpcHRzL2dlbmVyYXRlLW1ldGFkYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN0RSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUM3QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRXpDLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsc0JBQXNCLEVBQ3RCLG9CQUFvQixFQUNwQixjQUFjLEVBQ2Qsb0JBQW9CLEVBQ3BCLGtCQUFrQixHQUNuQixNQUFNLCtCQUErQixDQUFDO0FBQ3ZDLE9BQU8sRUFDTCwwQkFBMEIsRUFDMUIsa0JBQWtCLEVBQ2xCLHFCQUFxQixFQUNyQixxQkFBcUIsRUFDckIsMkJBQTJCLEVBQzNCLHVCQUF1QixFQUN2QixrQkFBa0IsRUFDbEIscUJBQXFCLEdBT3RCLE1BQU0sNkJBQTZCLENBQUM7QUFFckMsTUFBTSxjQUFjLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLGdCQUFnQixDQUFDLENBQUM7QUFDMUYsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLGNBQWMsRUFBRSxzQ0FBc0MsQ0FBQyxDQUFDO0FBQ25GLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO0FBRTFDLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQztJQUNoQixlQUFlLENBQXdCLHFCQUFxQixFQUFFLEtBQUssSUFBSSxFQUFFLENBQ3ZFLGtCQUFrQixDQUFDLE1BQU0sUUFBUSxDQUFDLGtCQUFr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ciwgcmVhZEZpbGUsIHJlbmFtZSwgd3JpdGVGaWxlIH0gZnJvbSBcIm5vZGU6ZnMvcHJvbWlzZXNcIjtcbmltcG9ydCB7IGRpcm5hbWUsIHJlc29sdmUgfSBmcm9tIFwibm9kZTpwYXRoXCI7XG5pbXBvcnQgeyBmaWxlVVJMVG9QYXRoIH0gZnJvbSBcIm5vZGU6dXJsXCI7XG5cbmltcG9ydCB7XG4gIHBhcnNlTW9kZWxQYXJhbXMsXG4gIHBhcnNlTW9kZWxDYXBhYmlsaXRpZXMsXG4gIHBhcnNlTW9kZWxSYXRlTGltaXRzLFxuICBwYXJzZU1vZGVsc0RldixcbiAgcGFyc2VSZWFzb25pbmdNb2RlbHMsXG4gIHBhcnNlUmV0aXJlZE1vZGVscyxcbn0gZnJvbSBcIi4uL3NyYy9fbWV0YWRhdGEtZ2VuZXJhdG9yLnRzXCI7XG5pbXBvcnQge1xuICBNT0RFTFBBUkFNU19ERVZfTU9ERUxTX1VSTCxcbiAgTU9ERUxTX0RFVl9BUElfVVJMLFxuICBNT0RFTF9NRVRBREFUQV9UVExfTVMsXG4gIE1PREVMX1JBVEVfTElNSVRTX1VSTCxcbiAgT1BFTkFJX1JFU1BPTlNFU19NT0RFTFNfVVJMLFxuICBRVUVSWV9SRUFTT05fTU9ERUxTX1VSTCxcbiAgUkVUSVJFRF9NT0RFTFNfVVJMLFxuICBXRUJfU0VBUkNIX01PREVMU19VUkwsXG4gIHR5cGUgTW9kZWxQYXJhbXNTbmFwc2hvdCxcbiAgdHlwZSBNb2RlbENhcGFiaWxpdGllc1NuYXBzaG90LFxuICB0eXBlIE1vZGVsUmF0ZUxpbWl0c1NuYXBzaG90LFxuICB0eXBlIE1vZGVsc0RldlNuYXBzaG90LFxuICB0eXBlIFJlYXNvbmluZ01vZGVsc1NuYXBzaG90LFxuICB0eXBlIFJldGlyZWRNb2RlbHNTbmFwc2hvdCxcbn0gZnJvbSBcIi4uL3NyYy9tZXRhZGF0YS1jb250cmFjdC50c1wiO1xuXG5jb25zdCByZXBvc2l0b3J5Um9vdCA9IHJlc29sdmUoZGlybmFtZShmaWxlVVJMVG9QYXRoKGltcG9ydC5tZXRhLnVybCkpLCBcIi4uLy4uLy4uLy4uLy4uXCIpO1xuY29uc3Qgbm9kZU91dHB1dCA9IHJlc29sdmUocmVwb3NpdG9yeVJvb3QsIFwicGFja2FnZXMvanMvbm9kZS9tb2RlbC9zcmMvZ2VuZXJhdGVkXCIpO1xuY29uc3Qgbm93ID0gTWF0aC5mbG9vcihEYXRlLm5vdygpIC8gMTAwMCk7XG5cbmF3YWl0IFByb21pc2UuYWxsKFtcbiAgcmVmcmVzaFNuYXBzaG90PFJldGlyZWRNb2RlbHNTbmFwc2hvdD4oXCJyZXRpcmVkLW1vZGVscy5qc29uXCIsIGFzeW5jICgpID0+XG4gICAgcGFyc2VSZXRpcmVkTW9kZWxzKGF3YWl0IGxvYWRQYWdlKFJFVElSRURfTU9ERUxTX1VSTCksIG5vdyksXG4gICksXG4gIHJlZnJlc2hTbmFwc2hvdDxNb2RlbENhcGFiaWxpdGllc1NuYXBzaG90PihcIm1vZGVsLWNhcGFiaWxpdGllcy5qc29uXCIsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBbcmVzcG9uc2VzSHRtbCwgd2ViU2VhcmNoSHRtbF0gPSBhd2FpdCBQcm9taXNlLmFsbChbXG4gICAgICBsb2FkUGFnZShPUEVOQUlfUkVTUE9OU0VTX01PREVMU19VUkwpLFxuICAgICAgbG9hZFBhZ2UoV0VCX1NFQVJDSF9NT0RFTFNfVVJMKSxcbiAgICBdKTtcbiAgICByZXR1cm4gcGFyc2VNb2RlbENhcGFiaWxpdGllcyhyZXNwb25zZXNIdG1sLCB3ZWJTZWFyY2hIdG1sLCBub3cpO1xuICB9KSxcbiAgcmVmcmVzaFNuYXBzaG90PE1vZGVsUmF0ZUxpbWl0c1NuYXBzaG90PihcIm1vZGVsLXJhdGUtbGltaXRzLmpzb25cIiwgYXN5bmMgKCkgPT5cbiAgICBwYXJzZU1vZGVsUmF0ZUxpbWl0cyhhd2FpdCBsb2FkUGFnZShNT0RFTF9SQVRFX0xJTUlUU19VUkwpLCBub3cpLFxuICApLFxuICByZWZyZXNoU25hcHNob3Q8UmVhc29uaW5nTW9kZWxzU25hcHNob3Q+KFwibW9kZWwtcmVhc29uaW5nLmpzb25cIiwgYXN5bmMgKCkgPT5cbiAgICBwYXJzZVJlYXNvbmluZ01vZGVscyhhd2FpdCBsb2FkUGFnZShRVUVSWV9SRUFTT05fTU9ERUxTX1VSTCksIG5vdyksXG4gICksXG4gIHJlZnJlc2hTbmFwc2hvdDxNb2RlbHNEZXZTbmFwc2hvdD4oXCJtb2RlbHMtZGV2LWNhcGFiaWxpdGllcy5qc29uXCIsIGFzeW5jICgpID0+XG4gICAgcGFyc2VNb2RlbHNEZXYoYXdhaXQgbG9hZEpzb24oTU9ERUxTX0RFVl9BUElfVVJMKSwgbm93KSxcbiAgKSxcbiAgcmVmcmVzaFNuYXBzaG90PE1vZGVsUGFyYW1zU25hcHNob3Q+KFwibW9kZWxwYXJhbXMtcmVhc29uaW5nLmpzb25cIiwgYXN5bmMgKCkgPT5cbiAgICBwYXJzZU1vZGVsUGFyYW1zKGF3YWl0IGxvYWRKc29uKE1PREVMUEFSQU1TX0RFVl9NT0RFTFNfVVJMKSwgbm93KSxcbiAgKSxcbl0pO1xuXG5hc3luYyBmdW5jdGlvbiByZWZyZXNoU25hcHNob3Q8VCBleHRlbmRzIHsgcmVhZG9ubHkgZ2VuZXJhdGVkQXQ6IG51bWJlciB9PihcbiAgZmlsZW5hbWU6IHN0cmluZyxcbiAgbG9hZFNuYXBzaG90OiAoKSA9PiBQcm9taXNlPFQ+LFxuKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHByaW1hcnlQYXRoID0gcmVzb2x2ZShub2RlT3V0cHV0LCBmaWxlbmFtZSk7XG4gIGNvbnN0IGV4aXN0aW5nID0gYXdhaXQgcmVhZFNuYXBzaG90PFQ+KHByaW1hcnlQYXRoKTtcbiAgaWYgKGV4aXN0aW5nICYmIG5vdyAtIGV4aXN0aW5nLmdlbmVyYXRlZEF0IDwgTU9ERUxfTUVUQURBVEFfVFRMX01TIC8gMTAwMCkge1xuICAgIGF3YWl0IHdyaXRlU25hcHNob3QocHJpbWFyeVBhdGgsIGV4aXN0aW5nKTtcbiAgICBjb25zb2xlLmxvZyhgJHtmaWxlbmFtZX06IGN1cnJlbnRgKTtcbiAgICByZXR1cm47XG4gIH1cbiAgdHJ5IHtcbiAgICBjb25zdCBzbmFwc2hvdCA9IGF3YWl0IGxvYWRTbmFwc2hvdCgpO1xuICAgIGF3YWl0IHdyaXRlU25hcHNob3QocHJpbWFyeVBhdGgsIHNuYXBzaG90KTtcbiAgICBjb25zb2xlLmxvZyhgJHtmaWxlbmFtZX06IHJlZnJlc2hlZGApO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGlmICghZXhpc3RpbmcpIHRocm93IGVycm9yO1xuICAgIGF3YWl0IHdyaXRlU25hcHNob3QocHJpbWFyeVBhdGgsIGV4aXN0aW5nKTtcbiAgICBjb25zb2xlLndhcm4oYCR7ZmlsZW5hbWV9OiByZWZyZXNoIGZhaWxlZDsgcmV0YWluZWQgY29tbWl0dGVkIHNuYXBzaG90YCwgZXJyb3IpO1xuICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGxvYWRQYWdlKHVybDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCh1cmwsIHtcbiAgICBoZWFkZXJzOiB7IFwidXNlci1hZ2VudFwiOiBcImRieC10b29scy1tb2RlbC1tZXRhZGF0YS8xXCIgfSxcbiAgICBzaWduYWw6IEFib3J0U2lnbmFsLnRpbWVvdXQoMTVfMDAwKSxcbiAgfSk7XG4gIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYERhdGFicmlja3MgZG9jdW1lbnRhdGlvbiByZXR1cm5lZCBIVFRQICR7cmVzcG9uc2Uuc3RhdHVzfTogJHt1cmx9YCk7XG4gIH1cbiAgcmV0dXJuIHJlc3BvbnNlLnRleHQoKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gbG9hZEpzb24odXJsOiBzdHJpbmcpOiBQcm9taXNlPHVua25vd24+IHtcbiAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCh1cmwsIHtcbiAgICBoZWFkZXJzOiB7IFwidXNlci1hZ2VudFwiOiBcImRieC10b29scy1tb2RlbC1tZXRhZGF0YS8xXCIgfSxcbiAgICBzaWduYWw6IEFib3J0U2lnbmFsLnRpbWVvdXQoMTVfMDAwKSxcbiAgfSk7XG4gIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYE1vZGVsIG1ldGFkYXRhIHNvdXJjZSByZXR1cm5lZCBIVFRQICR7cmVzcG9uc2Uuc3RhdHVzfTogJHt1cmx9YCk7XG4gIH1cbiAgcmV0dXJuIHJlc3BvbnNlLmpzb24oKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gcmVhZFNuYXBzaG90PFQ+KHBhdGg6IHN0cmluZyk6IFByb21pc2U8VCB8IHVuZGVmaW5lZD4ge1xuICB0cnkge1xuICAgIHJldHVybiBKU09OLnBhcnNlKGF3YWl0IHJlYWRGaWxlKHBhdGgsIFwidXRmOFwiKSkgYXMgVDtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiB3cml0ZVNuYXBzaG90KHBhdGg6IHN0cmluZywgc25hcHNob3Q6IG9iamVjdCk6IFByb21pc2U8dm9pZD4ge1xuICBhd2FpdCBta2RpcihkaXJuYW1lKHBhdGgpLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgY29uc3QgdGVtcG9yYXJ5ID0gYCR7cGF0aH0uJHtwcm9jZXNzLnBpZH0udG1wYDtcbiAgYXdhaXQgd3JpdGVGaWxlKHRlbXBvcmFyeSwgYCR7SlNPTi5zdHJpbmdpZnkoc25hcHNob3QsIG51bGwsIDIpfVxcbmApO1xuICBhd2FpdCByZW5hbWUodGVtcG9yYXJ5LCBwYXRoKTtcbn1cbiJdfQ==
@@ -1,8 +1,12 @@
1
- import type { ModelCapabilitiesSnapshot, ModelRateLimitsSnapshot, ReasoningModelsSnapshot, RetiredModelsSnapshot } from "./metadata-contract.ts";
1
+ import type { ModelParamsSnapshot, ModelCapabilitiesSnapshot, ModelRateLimitsSnapshot, ModelsDevSnapshot, ReasoningModelsSnapshot, RetiredModelsSnapshot } from "./metadata-contract.ts";
2
2
  /** Parse retired model names from Databricks retirement-policy HTML. */
3
3
  export declare function parseRetiredModels(html: string, generatedAt: number): RetiredModelsSnapshot;
4
4
  /** Parse Responses and web-search documentation into model capability sets. */
5
5
  export declare function parseModelCapabilities(responsesHtml: string, webSearchHtml: string, generatedAt: number): ModelCapabilitiesSnapshot;
6
+ /** Normalize portable model capabilities and effort ladders from models.dev JSON. */
7
+ export declare function parseModelsDev(input: unknown, generatedAt: number): ModelsDevSnapshot;
8
+ /** Normalize reasoning support and effort ladders from modelparams.dev JSON. */
9
+ export declare function parseModelParams(input: unknown, generatedAt: number): ModelParamsSnapshot;
6
10
  /** Parse pay-per-token limits from Databricks Foundation Model API HTML. */
7
11
  export declare function parseModelRateLimits(html: string, generatedAt: number): ModelRateLimitsSnapshot;
8
12
  /** Parse reasoning-effort ladders from the Query reasoning models HTML table. */