@kaitranntt/ccs 7.74.0-dev.18 → 7.74.0-dev.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/dist/web-server/model-pricing.d.ts +5 -3
  2. package/dist/web-server/model-pricing.d.ts.map +1 -1
  3. package/dist/web-server/model-pricing.js +75 -17
  4. package/dist/web-server/model-pricing.js.map +1 -1
  5. package/dist/web-server/models-dev/pricing-resolver.d.ts +18 -0
  6. package/dist/web-server/models-dev/pricing-resolver.d.ts.map +1 -0
  7. package/dist/web-server/models-dev/pricing-resolver.js +153 -0
  8. package/dist/web-server/models-dev/pricing-resolver.js.map +1 -0
  9. package/dist/web-server/models-dev/registry-cache.d.ts +19 -0
  10. package/dist/web-server/models-dev/registry-cache.d.ts.map +1 -0
  11. package/dist/web-server/models-dev/registry-cache.js +155 -0
  12. package/dist/web-server/models-dev/registry-cache.js.map +1 -0
  13. package/dist/web-server/models-dev/types.d.ts +39 -0
  14. package/dist/web-server/models-dev/types.d.ts.map +1 -0
  15. package/dist/web-server/models-dev/types.js +3 -0
  16. package/dist/web-server/models-dev/types.js.map +1 -0
  17. package/dist/web-server/usage/aggregator.d.ts.map +1 -1
  18. package/dist/web-server/usage/aggregator.js +53 -19
  19. package/dist/web-server/usage/aggregator.js.map +1 -1
  20. package/dist/web-server/usage/cliproxy-usage-transformer.d.ts +1 -0
  21. package/dist/web-server/usage/cliproxy-usage-transformer.d.ts.map +1 -1
  22. package/dist/web-server/usage/cliproxy-usage-transformer.js +38 -21
  23. package/dist/web-server/usage/cliproxy-usage-transformer.js.map +1 -1
  24. package/dist/web-server/usage/data-aggregator.d.ts.map +1 -1
  25. package/dist/web-server/usage/data-aggregator.js +44 -46
  26. package/dist/web-server/usage/data-aggregator.js.map +1 -1
  27. package/dist/web-server/usage/handlers.d.ts.map +1 -1
  28. package/dist/web-server/usage/handlers.js +25 -20
  29. package/dist/web-server/usage/handlers.js.map +1 -1
  30. package/dist/web-server/usage/model-identity.d.ts +16 -0
  31. package/dist/web-server/usage/model-identity.d.ts.map +1 -0
  32. package/dist/web-server/usage/model-identity.js +70 -0
  33. package/dist/web-server/usage/model-identity.js.map +1 -0
  34. package/dist/web-server/usage/types.d.ts +1 -0
  35. package/dist/web-server/usage/types.d.ts.map +1 -1
  36. package/package.json +1 -1
@@ -6,6 +6,7 @@
6
6
  *
7
7
  * All rates are in USD per MILLION tokens.
8
8
  */
9
+ import { type ModelsDevPricingLookupOptions } from './models-dev/pricing-resolver';
9
10
  export interface ModelPricing {
10
11
  inputPerMillion: number;
11
12
  outputPerMillion: number;
@@ -18,19 +19,20 @@ export interface TokenUsage {
18
19
  cacheCreationTokens: number;
19
20
  cacheReadTokens: number;
20
21
  }
22
+ export type PricingLookupOptions = ModelsDevPricingLookupOptions;
21
23
  /**
22
24
  * Get pricing for a model with narrow fuzzy matching fallback.
23
25
  * Unknown future model families should fall back instead of inheriting the
24
26
  * first known family tier that happens to share a prefix.
25
27
  */
26
- export declare function getModelPricing(model: string): ModelPricing;
28
+ export declare function getModelPricing(model: string, options?: PricingLookupOptions): ModelPricing;
27
29
  /**
28
30
  * Calculate cost in USD from token usage and model
29
31
  * @param usage - Token counts (input, output, cache creation, cache read)
30
32
  * @param model - Model name for pricing lookup
31
33
  * @returns Cost in USD
32
34
  */
33
- export declare function calculateCost(usage: TokenUsage, model: string): number;
35
+ export declare function calculateCost(usage: TokenUsage, model: string, options?: PricingLookupOptions): number;
34
36
  /**
35
37
  * Get list of all known models for UI display
36
38
  */
@@ -38,5 +40,5 @@ export declare function getKnownModels(): string[];
38
40
  /**
39
41
  * Check if a model has custom pricing (not using fallback)
40
42
  */
41
- export declare function hasCustomPricing(model: string): boolean;
43
+ export declare function hasCustomPricing(model: string, options?: PricingLookupOptions): boolean;
42
44
  //# sourceMappingURL=model-pricing.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"model-pricing.d.ts","sourceRoot":"","sources":["../../src/web-server/model-pricing.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,MAAM,WAAW,YAAY;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,uBAAuB,EAAE,MAAM,CAAC;IAChC,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,UAAU;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,eAAe,EAAE,MAAM,CAAC;CACzB;AAoyBD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,CAiB3D;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAUtE;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,MAAM,EAAE,CAEzC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEvD"}
1
+ {"version":3,"file":"model-pricing.d.ts","sourceRoot":"","sources":["../../src/web-server/model-pricing.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAGL,KAAK,6BAA6B,EACnC,MAAM,+BAA+B,CAAC;AAMvC,MAAM,WAAW,YAAY;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,uBAAuB,EAAE,MAAM,CAAC;IAChC,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,UAAU;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,MAAM,oBAAoB,GAAG,6BAA6B,CAAC;AAu1BjE;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,oBAAyB,GAAG,YAAY,CAkC/F;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,UAAU,EACjB,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,oBAAyB,GACjC,MAAM,CAUR;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,MAAM,EAAE,CAEzC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,oBAAyB,GAAG,OAAO,CAK3F"}
@@ -9,6 +9,7 @@
9
9
  */
10
10
  Object.defineProperty(exports, "__esModule", { value: true });
11
11
  exports.hasCustomPricing = exports.getKnownModels = exports.calculateCost = exports.getModelPricing = void 0;
12
+ const pricing_resolver_1 = require("./models-dev/pricing-resolver");
12
13
  // ============================================================================
13
14
  // USER-EDITABLE PRICING TABLE
14
15
  // Update rates below (per million tokens in USD)
@@ -722,16 +723,24 @@ const UNKNOWN_MODEL_PRICING = {
722
723
  // PRICING FUNCTIONS
723
724
  // ============================================================================
724
725
  /**
725
- * Normalize model name for matching
726
- * Handles variations like provider prefixes and case differences
726
+ * Strip provider prefixes used by routing/catalog metadata.
727
+ * The CCS static table remains model-keyed, so static fallback normalizes
728
+ * provider-qualified model IDs before checking aliases.
729
+ */
730
+ function stripProviderPrefix(model) {
731
+ const trimmed = model.trim();
732
+ const slashIndex = trimmed.indexOf('/');
733
+ if (slashIndex <= 0) {
734
+ return trimmed;
735
+ }
736
+ return trimmed.slice(slashIndex + 1);
737
+ }
738
+ /**
739
+ * Normalize model name for matching.
740
+ * Handles variations like provider prefixes and case differences.
727
741
  */
728
742
  function normalizeModelName(model) {
729
- // Remove provider prefixes (e.g., "anthropic/claude-..." -> "claude-...")
730
- const normalized = model
731
- .trim()
732
- .toLowerCase()
733
- .replace(/^[^/]+\//, '');
734
- return normalized;
743
+ return stripProviderPrefix(model).toLowerCase();
735
744
  }
736
745
  /**
737
746
  * Strip trailing date suffix from model name (e.g., "-20260101")
@@ -785,15 +794,63 @@ function getDirectOrAliasPricing(model) {
785
794
  }
786
795
  return undefined;
787
796
  }
797
+ function getCcsStaticPricing(model) {
798
+ const staticPricing = getDirectOrAliasPricing(model);
799
+ if (staticPricing !== undefined) {
800
+ return staticPricing;
801
+ }
802
+ const providerlessModel = stripProviderPrefix(model);
803
+ if (providerlessModel !== model.trim()) {
804
+ return getDirectOrAliasPricing(providerlessModel);
805
+ }
806
+ return undefined;
807
+ }
808
+ function getCcsPolicyOverridePricing(model) {
809
+ const providerlessModel = stripProviderPrefix(model);
810
+ const normalized = normalizeModelName(providerlessModel);
811
+ for (const candidate of getLookupCandidates(providerlessModel)) {
812
+ const alias = MODEL_PRICING_ALIASES[candidate];
813
+ if (alias !== undefined) {
814
+ const aliasPricing = NORMALIZED_PRICING_REGISTRY[alias];
815
+ if (aliasPricing !== undefined) {
816
+ return aliasPricing;
817
+ }
818
+ }
819
+ if (candidate !== normalized) {
820
+ const variantPricing = NORMALIZED_PRICING_REGISTRY[candidate];
821
+ if (variantPricing !== undefined) {
822
+ return variantPricing;
823
+ }
824
+ }
825
+ }
826
+ return undefined;
827
+ }
828
+ function hasProviderContext(model, options) {
829
+ return Boolean(options.provider || /^[^/]+\//.test(model.trim()));
830
+ }
788
831
  /**
789
832
  * Get pricing for a model with narrow fuzzy matching fallback.
790
833
  * Unknown future model families should fall back instead of inheriting the
791
834
  * first known family tier that happens to share a prefix.
792
835
  */
793
- function getModelPricing(model) {
794
- const directOrAliasPricing = getDirectOrAliasPricing(model);
795
- if (directOrAliasPricing !== undefined) {
796
- return directOrAliasPricing;
836
+ function getModelPricing(model, options = {}) {
837
+ if (hasProviderContext(model, options)) {
838
+ const ccsOverridePricing = getCcsPolicyOverridePricing(model);
839
+ if (ccsOverridePricing !== undefined) {
840
+ return ccsOverridePricing;
841
+ }
842
+ const providerPricing = (0, pricing_resolver_1.resolveModelsDevPricing)(model, options);
843
+ if (providerPricing !== undefined) {
844
+ return providerPricing.pricing;
845
+ }
846
+ }
847
+ const ccsStaticPricing = getCcsStaticPricing(model);
848
+ if (ccsStaticPricing !== undefined) {
849
+ return ccsStaticPricing;
850
+ }
851
+ const modelsDevPricing = (0, pricing_resolver_1.resolveModelsDevPricing)(model, options);
852
+ if (modelsDevPricing !== undefined) {
853
+ return modelsDevPricing.pricing;
797
854
  }
798
855
  for (const candidate of getLookupCandidates(model)) {
799
856
  // Allow provider/routing wrappers to suffix a canonical model ID.
@@ -813,8 +870,8 @@ exports.getModelPricing = getModelPricing;
813
870
  * @param model - Model name for pricing lookup
814
871
  * @returns Cost in USD
815
872
  */
816
- function calculateCost(usage, model) {
817
- const pricing = getModelPricing(model);
873
+ function calculateCost(usage, model, options = {}) {
874
+ const pricing = getModelPricing(model, options);
818
875
  const inputCost = (usage.inputTokens / 1000000) * pricing.inputPerMillion;
819
876
  const outputCost = (usage.outputTokens / 1000000) * pricing.outputPerMillion;
820
877
  const cacheCreationCost = (usage.cacheCreationTokens / 1000000) * pricing.cacheCreationPerMillion;
@@ -826,14 +883,15 @@ exports.calculateCost = calculateCost;
826
883
  * Get list of all known models for UI display
827
884
  */
828
885
  function getKnownModels() {
829
- return Object.keys(PRICING_REGISTRY);
886
+ return [...new Set([...Object.keys(PRICING_REGISTRY), ...(0, pricing_resolver_1.getKnownModelsDevModels)()])];
830
887
  }
831
888
  exports.getKnownModels = getKnownModels;
832
889
  /**
833
890
  * Check if a model has custom pricing (not using fallback)
834
891
  */
835
- function hasCustomPricing(model) {
836
- return getDirectOrAliasPricing(model) !== undefined;
892
+ function hasCustomPricing(model, options = {}) {
893
+ return (getCcsStaticPricing(model) !== undefined ||
894
+ (0, pricing_resolver_1.resolveModelsDevPricing)(model, options) !== undefined);
837
895
  }
838
896
  exports.hasCustomPricing = hasCustomPricing;
839
897
  //# sourceMappingURL=model-pricing.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"model-pricing.js","sourceRoot":"","sources":["../../src/web-server/model-pricing.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"model-pricing.js","sourceRoot":"","sources":["../../src/web-server/model-pricing.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ export interface ModelsDevPricing {
2
+ inputPerMillion: number;
3
+ outputPerMillion: number;
4
+ cacheCreationPerMillion: number;
5
+ cacheReadPerMillion: number;
6
+ }
7
+ export interface ModelsDevPricingResolution {
8
+ provider: string;
9
+ model: string;
10
+ pricing: ModelsDevPricing;
11
+ }
12
+ export interface ModelsDevPricingLookupOptions {
13
+ provider?: string;
14
+ }
15
+ export declare function normalizeModelsDevProviderId(provider: string | null | undefined): string | undefined;
16
+ export declare function resolveModelsDevPricing(model: string, options?: ModelsDevPricingLookupOptions): ModelsDevPricingResolution | undefined;
17
+ export declare function getKnownModelsDevModels(): string[];
18
+ //# sourceMappingURL=pricing-resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pricing-resolver.d.ts","sourceRoot":"","sources":["../../../src/web-server/models-dev/pricing-resolver.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,gBAAgB;IAC/B,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,uBAAuB,EAAE,MAAM,CAAC;IAChC,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,gBAAgB,CAAC;CAC3B;AAED,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAoBD,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAClC,MAAM,GAAG,SAAS,CAIpB;AAyHD,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,6BAAkC,GAC1C,0BAA0B,GAAG,SAAS,CAaxC;AAED,wBAAgB,uBAAuB,IAAI,MAAM,EAAE,CAWlD"}
@@ -0,0 +1,153 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getKnownModelsDevModels = exports.resolveModelsDevPricing = exports.normalizeModelsDevProviderId = void 0;
4
+ const registry_cache_1 = require("./registry-cache");
5
+ const PROVIDER_ALIASES = {
6
+ agy: 'google',
7
+ antigravity: 'google',
8
+ claude: 'anthropic',
9
+ codex: 'openai',
10
+ copilot: 'github-copilot',
11
+ gemini: 'google',
12
+ ghcp: 'github-copilot',
13
+ github: 'github-copilot',
14
+ kimi: 'moonshotai',
15
+ moonshot: 'moonshotai',
16
+ qwen: 'alibaba',
17
+ };
18
+ function normalizeId(value) {
19
+ return value.trim().toLowerCase();
20
+ }
21
+ function normalizeModelsDevProviderId(provider) {
22
+ if (!provider)
23
+ return undefined;
24
+ const normalized = normalizeId(provider);
25
+ return PROVIDER_ALIASES[normalized] ?? normalized;
26
+ }
27
+ exports.normalizeModelsDevProviderId = normalizeModelsDevProviderId;
28
+ function splitProviderPrefix(model) {
29
+ const trimmed = model.trim();
30
+ const slashIndex = trimmed.indexOf('/');
31
+ if (slashIndex <= 0)
32
+ return { model: trimmed };
33
+ return {
34
+ provider: trimmed.slice(0, slashIndex),
35
+ model: trimmed.slice(slashIndex + 1),
36
+ };
37
+ }
38
+ function stripClaudeDateSuffix(model) {
39
+ if (!model.startsWith('claude-'))
40
+ return model;
41
+ return model.replace(/-\d{8}(?=-thinking(?:$|:))/g, '').replace(/-\d{8}(?=$|:)/g, '');
42
+ }
43
+ function getModelCandidates(model) {
44
+ const normalized = normalizeId(model);
45
+ const baseModel = normalized.split(':')[0];
46
+ const candidates = [normalized];
47
+ if (baseModel !== normalized)
48
+ candidates.push(baseModel);
49
+ for (const candidate of [...candidates]) {
50
+ const stripped = stripClaudeDateSuffix(candidate);
51
+ if (stripped !== candidate && !candidates.includes(stripped)) {
52
+ candidates.push(stripped);
53
+ }
54
+ }
55
+ return candidates;
56
+ }
57
+ function findProvider(registry, provider) {
58
+ const normalizedProvider = normalizeModelsDevProviderId(provider);
59
+ if (!normalizedProvider)
60
+ return undefined;
61
+ return registry[normalizedProvider];
62
+ }
63
+ function findModel(provider, model) {
64
+ const models = provider.models;
65
+ if (!models)
66
+ return undefined;
67
+ const normalizedEntries = new Map();
68
+ for (const [key, value] of Object.entries(models)) {
69
+ normalizedEntries.set(normalizeId(key), value);
70
+ if (typeof value.id === 'string')
71
+ normalizedEntries.set(normalizeId(value.id), value);
72
+ }
73
+ for (const candidate of getModelCandidates(model)) {
74
+ const match = normalizedEntries.get(candidate);
75
+ if (match)
76
+ return match;
77
+ }
78
+ return undefined;
79
+ }
80
+ function toNumber(value) {
81
+ return typeof value === 'number' && Number.isFinite(value) ? value : undefined;
82
+ }
83
+ function toPricing(cost) {
84
+ const input = toNumber(cost?.input);
85
+ const output = toNumber(cost?.output);
86
+ if (input === undefined || output === undefined)
87
+ return undefined;
88
+ return {
89
+ inputPerMillion: input,
90
+ outputPerMillion: output,
91
+ cacheCreationPerMillion: toNumber(cost?.cache_write) ?? 0,
92
+ cacheReadPerMillion: toNumber(cost?.cache_read) ?? 0,
93
+ };
94
+ }
95
+ function samePricing(left, right) {
96
+ return (left.inputPerMillion === right.inputPerMillion &&
97
+ left.outputPerMillion === right.outputPerMillion &&
98
+ left.cacheCreationPerMillion === right.cacheCreationPerMillion &&
99
+ left.cacheReadPerMillion === right.cacheReadPerMillion);
100
+ }
101
+ function resolveProviderModel(registry, providerId, model) {
102
+ const provider = findProvider(registry, providerId);
103
+ if (!provider)
104
+ return undefined;
105
+ const entry = findModel(provider, model);
106
+ const pricing = toPricing(entry?.cost);
107
+ if (!entry || !pricing)
108
+ return undefined;
109
+ return { provider: provider.id, model: entry.id, pricing };
110
+ }
111
+ function resolveUnambiguousModel(registry, model) {
112
+ const matches = [];
113
+ for (const provider of Object.values(registry)) {
114
+ const match = resolveProviderModel(registry, provider.id, model);
115
+ if (match)
116
+ matches.push(match);
117
+ }
118
+ if (matches.length === 0)
119
+ return undefined;
120
+ const first = matches[0];
121
+ if (matches.every((match) => samePricing(first.pricing, match.pricing))) {
122
+ return first;
123
+ }
124
+ return undefined;
125
+ }
126
+ function resolveModelsDevPricing(model, options = {}) {
127
+ const registry = (0, registry_cache_1.getCachedModelsDevRegistry)({ allowStale: true });
128
+ if (!registry)
129
+ return undefined;
130
+ const prefixed = splitProviderPrefix(model);
131
+ const provider = options.provider ?? prefixed.provider;
132
+ const modelId = prefixed.model;
133
+ if (provider) {
134
+ return resolveProviderModel(registry, provider, modelId);
135
+ }
136
+ return resolveUnambiguousModel(registry, modelId);
137
+ }
138
+ exports.resolveModelsDevPricing = resolveModelsDevPricing;
139
+ function getKnownModelsDevModels() {
140
+ const registry = (0, registry_cache_1.getCachedModelsDevRegistry)({ allowStale: true });
141
+ if (!registry)
142
+ return [];
143
+ const ids = new Set();
144
+ for (const provider of Object.values(registry)) {
145
+ for (const model of Object.values(provider.models ?? {})) {
146
+ if (typeof model.id === 'string')
147
+ ids.add(`${provider.id}/${model.id}`);
148
+ }
149
+ }
150
+ return Array.from(ids).sort((a, b) => a.localeCompare(b));
151
+ }
152
+ exports.getKnownModelsDevModels = getKnownModelsDevModels;
153
+ //# sourceMappingURL=pricing-resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pricing-resolver.js","sourceRoot":"","sources":["../../../src/web-server/models-dev/pricing-resolver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ /// <reference types="bun-types" />
2
+ /// <reference types="node" />
3
+ import type { ModelsDevRegistry } from './types';
4
+ export declare const MODELS_DEV_API_URL = "https://models.dev/api.json";
5
+ export interface RegistryCacheReadOptions {
6
+ allowStale?: boolean;
7
+ now?: number;
8
+ }
9
+ export interface RegistryRefreshOptions {
10
+ force?: boolean;
11
+ fetchImpl?: typeof fetch;
12
+ now?: () => number;
13
+ }
14
+ export declare function getCachedModelsDevRegistry(options?: RegistryCacheReadOptions): ModelsDevRegistry | null;
15
+ export declare function setCachedModelsDevRegistry(providers: ModelsDevRegistry, fetchedAt?: number): void;
16
+ export declare function clearModelsDevRegistryCache(): boolean;
17
+ export declare function refreshModelsDevRegistry(options?: RegistryRefreshOptions): Promise<ModelsDevRegistry | null>;
18
+ export declare function startModelsDevRegistryRefresh(options?: RegistryRefreshOptions): Promise<ModelsDevRegistry | null>;
19
+ //# sourceMappingURL=registry-cache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry-cache.d.ts","sourceRoot":"","sources":["../../../src/web-server/models-dev/registry-cache.ts"],"names":[],"mappings":";;AAGA,OAAO,KAAK,EAAyC,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAExF,eAAO,MAAM,kBAAkB,gCAAgC,CAAC;AAQhE,MAAM,WAAW,wBAAwB;IACvC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACpB;AAuCD,wBAAgB,0BAA0B,CACxC,OAAO,GAAE,wBAA6B,GACrC,iBAAiB,GAAG,IAAI,CAc1B;AAED,wBAAgB,0BAA0B,CACxC,SAAS,EAAE,iBAAiB,EAC5B,SAAS,SAAa,GACrB,IAAI,CASN;AAED,wBAAgB,2BAA2B,IAAI,OAAO,CASrD;AAED,wBAAsB,wBAAwB,CAC5C,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CA4BnC;AAED,wBAAgB,6BAA6B,CAC3C,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAUnC"}
@@ -0,0 +1,155 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.startModelsDevRegistryRefresh = exports.refreshModelsDevRegistry = exports.clearModelsDevRegistryCache = exports.setCachedModelsDevRegistry = exports.getCachedModelsDevRegistry = exports.MODELS_DEV_API_URL = void 0;
27
+ const fs = __importStar(require("fs"));
28
+ const path = __importStar(require("path"));
29
+ const config_manager_1 = require("../../utils/config-manager");
30
+ exports.MODELS_DEV_API_URL = 'https://models.dev/api.json';
31
+ const CACHE_FILE_NAME = 'models-dev-registry-cache.json';
32
+ const CACHE_TTL_MS = 24 * 60 * 60 * 1000;
33
+ const LIVE_FETCH_TIMEOUT_MS = 3000;
34
+ let pendingBackgroundRefresh = null;
35
+ function getCacheFilePath() {
36
+ return path.join((0, config_manager_1.getCcsDir)(), CACHE_FILE_NAME);
37
+ }
38
+ function isPlainObject(value) {
39
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
40
+ }
41
+ function normalizeRegistryPayload(payload) {
42
+ if (!isPlainObject(payload))
43
+ return null;
44
+ const providers = {};
45
+ for (const [key, value] of Object.entries(payload)) {
46
+ if (!isPlainObject(value))
47
+ continue;
48
+ const id = typeof value.id === 'string' && value.id.trim() ? value.id.trim() : key;
49
+ const models = isPlainObject(value.models)
50
+ ? value.models
51
+ : undefined;
52
+ if (!models || Object.keys(models).length === 0)
53
+ continue;
54
+ providers[id] = {
55
+ ...value,
56
+ id,
57
+ models,
58
+ };
59
+ }
60
+ return Object.keys(providers).length > 0 ? providers : null;
61
+ }
62
+ function normalizeCachePayload(payload) {
63
+ if (!isPlainObject(payload))
64
+ return null;
65
+ if (payload.version !== 1 || typeof payload.fetchedAt !== 'number')
66
+ return null;
67
+ const providers = normalizeRegistryPayload(payload.providers);
68
+ return providers ? { version: 1, fetchedAt: payload.fetchedAt, providers } : null;
69
+ }
70
+ function getCachedModelsDevRegistry(options = {}) {
71
+ try {
72
+ const filePath = getCacheFilePath();
73
+ if (!fs.existsSync(filePath))
74
+ return null;
75
+ const cache = normalizeCachePayload(JSON.parse(fs.readFileSync(filePath, 'utf8')));
76
+ if (!cache)
77
+ return null;
78
+ const now = options.now ?? Date.now();
79
+ if (!options.allowStale && now - cache.fetchedAt > CACHE_TTL_MS)
80
+ return null;
81
+ return cache.providers;
82
+ }
83
+ catch {
84
+ return null;
85
+ }
86
+ }
87
+ exports.getCachedModelsDevRegistry = getCachedModelsDevRegistry;
88
+ function setCachedModelsDevRegistry(providers, fetchedAt = Date.now()) {
89
+ try {
90
+ const filePath = getCacheFilePath();
91
+ fs.mkdirSync(path.dirname(filePath), { recursive: true });
92
+ const cache = { version: 1, fetchedAt, providers };
93
+ fs.writeFileSync(filePath, JSON.stringify(cache));
94
+ }
95
+ catch {
96
+ // Best-effort cache writes must not break analytics.
97
+ }
98
+ }
99
+ exports.setCachedModelsDevRegistry = setCachedModelsDevRegistry;
100
+ function clearModelsDevRegistryCache() {
101
+ try {
102
+ const filePath = getCacheFilePath();
103
+ if (!fs.existsSync(filePath))
104
+ return false;
105
+ fs.unlinkSync(filePath);
106
+ return true;
107
+ }
108
+ catch {
109
+ return false;
110
+ }
111
+ }
112
+ exports.clearModelsDevRegistryCache = clearModelsDevRegistryCache;
113
+ async function refreshModelsDevRegistry(options = {}) {
114
+ const now = options.now ?? (() => Date.now());
115
+ if (!options.force) {
116
+ const fresh = getCachedModelsDevRegistry({ allowStale: false, now: now() });
117
+ if (fresh)
118
+ return fresh;
119
+ }
120
+ const fetchImpl = options.fetchImpl ?? fetch;
121
+ const controller = new AbortController();
122
+ const timeoutId = setTimeout(() => controller.abort(), LIVE_FETCH_TIMEOUT_MS);
123
+ try {
124
+ const response = await fetchImpl(exports.MODELS_DEV_API_URL, {
125
+ signal: controller.signal,
126
+ headers: { Accept: 'application/json' },
127
+ });
128
+ if (!response.ok)
129
+ return getCachedModelsDevRegistry({ allowStale: true });
130
+ const providers = normalizeRegistryPayload(await response.json());
131
+ if (!providers)
132
+ return getCachedModelsDevRegistry({ allowStale: true });
133
+ setCachedModelsDevRegistry(providers, now());
134
+ return providers;
135
+ }
136
+ catch {
137
+ return getCachedModelsDevRegistry({ allowStale: true });
138
+ }
139
+ finally {
140
+ clearTimeout(timeoutId);
141
+ }
142
+ }
143
+ exports.refreshModelsDevRegistry = refreshModelsDevRegistry;
144
+ function startModelsDevRegistryRefresh(options = {}) {
145
+ if (!pendingBackgroundRefresh) {
146
+ pendingBackgroundRefresh = refreshModelsDevRegistry(options)
147
+ .catch(() => null)
148
+ .finally(() => {
149
+ pendingBackgroundRefresh = null;
150
+ });
151
+ }
152
+ return pendingBackgroundRefresh;
153
+ }
154
+ exports.startModelsDevRegistryRefresh = startModelsDevRegistryRefresh;
155
+ //# sourceMappingURL=registry-cache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry-cache.js","sourceRoot":"","sources":["../../../src/web-server/models-dev/registry-cache.ts"],"names":[],"mappings":"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"}