@x12i/ai-tools 1.0.4 → 2.0.1

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 (162) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/README.md +146 -204
  3. package/dist/AiModelsCatalogClient-B5FMI9gj.d.cts +58 -0
  4. package/dist/AiModelsCatalogClient-CPPNI6Ry.d.ts +58 -0
  5. package/dist/aliases/index.cjs +4 -3
  6. package/dist/aliases/index.cjs.map +1 -1
  7. package/dist/aliases/index.d.cts +3 -5
  8. package/dist/aliases/index.d.ts +3 -5
  9. package/dist/aliases/index.js +2 -2
  10. package/dist/catalog/index.cjs +18 -9
  11. package/dist/catalog/index.cjs.map +1 -1
  12. package/dist/catalog/index.d.cts +13 -100
  13. package/dist/catalog/index.d.ts +13 -100
  14. package/dist/catalog/index.js +31 -23
  15. package/dist/{chunk-AJEKEWWB.js → chunk-2PTCWPHV.js} +17 -3
  16. package/dist/chunk-2PTCWPHV.js.map +1 -0
  17. package/dist/chunk-56R4XA2S.js +1 -0
  18. package/dist/chunk-5GUKLOEK.cjs +1 -0
  19. package/dist/chunk-5GUKLOEK.cjs.map +1 -0
  20. package/dist/chunk-5IZ7PLY2.cjs +51 -0
  21. package/dist/chunk-5IZ7PLY2.cjs.map +1 -0
  22. package/dist/chunk-5XAAMBDO.cjs +1988 -0
  23. package/dist/chunk-5XAAMBDO.cjs.map +1 -0
  24. package/dist/chunk-6BQBKROR.js +95 -0
  25. package/dist/chunk-6BQBKROR.js.map +1 -0
  26. package/dist/chunk-AB5GNXJ4.js +46 -0
  27. package/dist/chunk-AB5GNXJ4.js.map +1 -0
  28. package/dist/{chunk-O2A6OVEH.js → chunk-ANVONYJF.js} +2 -2
  29. package/dist/{chunk-O2A6OVEH.js.map → chunk-ANVONYJF.js.map} +1 -1
  30. package/dist/chunk-B3V2EHRY.js +225 -0
  31. package/dist/chunk-B3V2EHRY.js.map +1 -0
  32. package/dist/{chunk-QWAX7VQO.cjs → chunk-BAHBDADJ.cjs} +11 -11
  33. package/dist/{chunk-QWAX7VQO.cjs.map → chunk-BAHBDADJ.cjs.map} +1 -1
  34. package/dist/chunk-CTM35DMA.js +948 -0
  35. package/dist/chunk-CTM35DMA.js.map +1 -0
  36. package/dist/{chunk-TF4L2NEC.cjs → chunk-DXZOL3VN.cjs} +62 -313
  37. package/dist/chunk-DXZOL3VN.cjs.map +1 -0
  38. package/dist/chunk-EDMCKHO6.cjs +225 -0
  39. package/dist/chunk-EDMCKHO6.cjs.map +1 -0
  40. package/dist/{chunk-DJ5SWJDY.js → chunk-EYHMQVAL.js} +48 -299
  41. package/dist/chunk-EYHMQVAL.js.map +1 -0
  42. package/dist/chunk-GS7T56RP.cjs +8 -0
  43. package/dist/chunk-GS7T56RP.cjs.map +1 -0
  44. package/dist/chunk-OPN6BGNH.js +1985 -0
  45. package/dist/chunk-OPN6BGNH.js.map +1 -0
  46. package/dist/{chunk-7Q742NI3.cjs → chunk-PADNCGZB.cjs} +17 -3
  47. package/dist/chunk-PADNCGZB.cjs.map +1 -0
  48. package/dist/chunk-PRCICORG.cjs +95 -0
  49. package/dist/chunk-PRCICORG.cjs.map +1 -0
  50. package/dist/{chunk-6QGDZTGH.js → chunk-SIH4GPV4.js} +4 -29
  51. package/dist/chunk-SIH4GPV4.js.map +1 -0
  52. package/dist/{chunk-4NAY6HRP.js → chunk-VJHLO2R3.js} +7 -58
  53. package/dist/chunk-VJHLO2R3.js.map +1 -0
  54. package/dist/chunk-WOHMHXRZ.cjs +951 -0
  55. package/dist/chunk-WOHMHXRZ.cjs.map +1 -0
  56. package/dist/chunk-XAWBTX3N.cjs +46 -0
  57. package/dist/chunk-XAWBTX3N.cjs.map +1 -0
  58. package/dist/{chunk-AV6OE2YQ.cjs → chunk-XOKUDUUI.cjs} +14 -39
  59. package/dist/chunk-XOKUDUUI.cjs.map +1 -0
  60. package/dist/chunk-YQDSN6R6.cjs +86 -0
  61. package/dist/chunk-YQDSN6R6.cjs.map +1 -0
  62. package/dist/chunk-YQVY7CWT.js +51 -0
  63. package/dist/chunk-YQVY7CWT.js.map +1 -0
  64. package/dist/cli/index.cjs +59 -201
  65. package/dist/cli/index.cjs.map +1 -1
  66. package/dist/cli/index.js +53 -198
  67. package/dist/cli/index.js.map +1 -1
  68. package/dist/cost/index.cjs +19 -3
  69. package/dist/cost/index.cjs.map +1 -1
  70. package/dist/cost/index.d.cts +10 -50
  71. package/dist/cost/index.d.ts +10 -50
  72. package/dist/cost/index.js +18 -3
  73. package/dist/index.cjs +36 -14
  74. package/dist/index.cjs.map +1 -1
  75. package/dist/index.d.cts +15 -13
  76. package/dist/index.d.ts +15 -13
  77. package/dist/index.js +56 -35
  78. package/dist/modelCache-BzRn6t_C.d.ts +113 -0
  79. package/dist/modelCache-CJftI-Ko.d.cts +113 -0
  80. package/dist/{modelNameResolver-DqFt7g6W.d.ts → modelNameResolver-5XkBMctP.d.ts} +2 -6
  81. package/dist/{modelNameResolver-D9V_GfUK.d.cts → modelNameResolver-C5CSTGFF.d.cts} +2 -6
  82. package/dist/models/index.cjs +9 -6
  83. package/dist/models/index.cjs.map +1 -1
  84. package/dist/models/index.d.cts +9 -31
  85. package/dist/models/index.d.ts +9 -31
  86. package/dist/models/index.js +9 -7
  87. package/dist/profiles/index.cjs +18 -0
  88. package/dist/profiles/index.cjs.map +1 -0
  89. package/dist/profiles/index.d.cts +40 -0
  90. package/dist/profiles/index.d.ts +40 -0
  91. package/dist/profiles/index.js +17 -0
  92. package/dist/resolveUsageModel-BFwf80Hz.d.ts +140 -0
  93. package/dist/resolveUsageModel-C_YmGR1M.d.cts +140 -0
  94. package/dist/sync/index.cjs +7 -9
  95. package/dist/sync/index.cjs.map +1 -1
  96. package/dist/sync/index.d.cts +3 -8
  97. package/dist/sync/index.d.ts +3 -8
  98. package/dist/sync/index.js +8 -11
  99. package/dist/toolbox/index.cjs +1 -0
  100. package/dist/toolbox/index.cjs.map +1 -1
  101. package/dist/types-BrzJWsTU.d.cts +277 -0
  102. package/dist/types-BrzJWsTU.d.ts +277 -0
  103. package/package.json +14 -20
  104. package/src/data/models-catalog.json +670 -0
  105. package/src/data/openrouter-models-catalog.json +857 -0
  106. package/dist/AiModelsCatalogClient-4RF5BCDL.cjs +0 -9
  107. package/dist/AiModelsCatalogClient-4RF5BCDL.cjs.map +0 -1
  108. package/dist/AiModelsCatalogClient-CNeqFiFs.d.cts +0 -30
  109. package/dist/AiModelsCatalogClient-NUF3CBLW.js +0 -9
  110. package/dist/AiModelsCatalogClient-nwFoEaqL.d.ts +0 -30
  111. package/dist/catalox/index.cjs +0 -21
  112. package/dist/catalox/index.cjs.map +0 -1
  113. package/dist/catalox/index.d.cts +0 -11
  114. package/dist/catalox/index.d.ts +0 -11
  115. package/dist/catalox/index.js +0 -21
  116. package/dist/chunk-4NAY6HRP.js.map +0 -1
  117. package/dist/chunk-6QGDZTGH.js.map +0 -1
  118. package/dist/chunk-7Q742NI3.cjs.map +0 -1
  119. package/dist/chunk-AJEKEWWB.js.map +0 -1
  120. package/dist/chunk-AV6OE2YQ.cjs.map +0 -1
  121. package/dist/chunk-C3H7RTFR.cjs +0 -1
  122. package/dist/chunk-C3H7RTFR.cjs.map +0 -1
  123. package/dist/chunk-DJ5SWJDY.js.map +0 -1
  124. package/dist/chunk-DKHGWHXP.cjs +0 -169
  125. package/dist/chunk-DKHGWHXP.cjs.map +0 -1
  126. package/dist/chunk-F2F4UEFD.cjs +0 -75
  127. package/dist/chunk-F2F4UEFD.cjs.map +0 -1
  128. package/dist/chunk-FGP3QXWL.cjs +0 -163
  129. package/dist/chunk-FGP3QXWL.cjs.map +0 -1
  130. package/dist/chunk-G2G4KSC5.js +0 -30
  131. package/dist/chunk-G2G4KSC5.js.map +0 -1
  132. package/dist/chunk-HN6UAQAE.cjs +0 -83
  133. package/dist/chunk-HN6UAQAE.cjs.map +0 -1
  134. package/dist/chunk-HS74X2OJ.cjs +0 -172
  135. package/dist/chunk-HS74X2OJ.cjs.map +0 -1
  136. package/dist/chunk-HYGXZY25.js +0 -163
  137. package/dist/chunk-HYGXZY25.js.map +0 -1
  138. package/dist/chunk-KQOALKKX.js +0 -75
  139. package/dist/chunk-KQOALKKX.js.map +0 -1
  140. package/dist/chunk-LYOU7CA2.cjs +0 -30
  141. package/dist/chunk-LYOU7CA2.cjs.map +0 -1
  142. package/dist/chunk-M5TMA73F.js +0 -1
  143. package/dist/chunk-M5TMA73F.js.map +0 -1
  144. package/dist/chunk-MX3AMQFC.js +0 -172
  145. package/dist/chunk-MX3AMQFC.js.map +0 -1
  146. package/dist/chunk-QCRLKVB3.cjs +0 -137
  147. package/dist/chunk-QCRLKVB3.cjs.map +0 -1
  148. package/dist/chunk-TF4L2NEC.cjs.map +0 -1
  149. package/dist/chunk-VRFVF5RH.js +0 -169
  150. package/dist/chunk-VRFVF5RH.js.map +0 -1
  151. package/dist/chunk-YHO57D2V.js +0 -83
  152. package/dist/chunk-YHO57D2V.js.map +0 -1
  153. package/dist/syncAiModelsCatalog-CnXRLm2c.d.cts +0 -32
  154. package/dist/syncAiModelsCatalog-DpkN_w7S.d.ts +0 -32
  155. package/dist/types-BYXnCvKx.d.cts +0 -137
  156. package/dist/types-BYXnCvKx.d.ts +0 -137
  157. package/dist/types-CX6QFNNy.d.cts +0 -144
  158. package/dist/types-CuiPDcVs.d.ts +0 -144
  159. package/dist/upsertAiModelRecord-C831wOIF.d.ts +0 -35
  160. package/dist/upsertAiModelRecord-CjY-sny0.d.cts +0 -35
  161. /package/dist/{AiModelsCatalogClient-NUF3CBLW.js.map → chunk-56R4XA2S.js.map} +0 -0
  162. /package/dist/{catalox → profiles}/index.js.map +0 -0
@@ -1,53 +1,13 @@
1
- import { b as AliasRegistry, h as ModelResolverOptions } from '../types-CX6QFNNy.cjs';
2
- import { A as AiModelsCatalogClient } from '../AiModelsCatalogClient-CNeqFiFs.cjs';
3
- import { A as AiModelPricing } from '../types-BYXnCvKx.cjs';
4
- export { a as AiModelRecord } from '../types-BYXnCvKx.cjs';
5
- import '@x12i/catalox';
1
+ import { a as AiCostResult, d as AiUsageInput, A as AiCostExtraction, f as ExtractUsageInputResult } from '../resolveUsageModel-C_YmGR1M.cjs';
2
+ export { b as AiCostWarning, c as AiCostWarningCode, C as CostCalculator, e as CostCalculatorOptions, E as ExtractUsageInputOptions, F as FieldProvenance, M as MODEL_FIELD_PRIORITY, T as TokenExtractionProvenance, g as extractUsageInput, r as resolveUsageModel } from '../resolveUsageModel-C_YmGR1M.cjs';
3
+ export { A as AiModelPricing, a as AiModelRecord } from '../types-BrzJWsTU.cjs';
4
+ import '../AiModelsCatalogClient-B5FMI9gj.cjs';
6
5
 
7
- type AiUsageInput = {
8
- tokens: {
9
- prompt: number;
10
- completion: number;
11
- total: number;
12
- cached?: number;
13
- cacheWrite?: number;
14
- reasoning?: number;
15
- audio?: number;
16
- image?: number;
17
- };
18
- provider: string;
19
- modelUsed: string;
20
- };
21
- type AiCostResult = {
22
- cost: number;
23
- breakdown?: {
24
- promptCostUsd: number;
25
- completionCostUsd: number;
26
- cachingCostUsd?: number;
27
- reasoningCostUsd?: number;
28
- audioCostUsd?: number;
29
- imageCostUsd?: number;
30
- requestFlatCostUsd?: number;
31
- };
32
- resolvedModelId: string;
33
- routedViaOpenRouter: boolean;
34
- isAuthoritative: boolean;
35
- pricingSnapshot: AiModelPricing;
36
- source: "catalog" | "estimate-fallback";
37
- };
6
+ declare function toCostExtraction(provenance: ExtractUsageInputResult["provenance"]): AiCostExtraction;
7
+ /** Attach usage, provider, and model fields callers expect on every cost response. */
8
+ declare function enrichCostResult(result: Omit<AiCostResult, "usage" | "provider" | "usedModel" | "model" | "extraction">, input: AiUsageInput, extraction?: AiCostExtraction): AiCostResult;
38
9
 
39
- type CostCalculatorOptions = {
40
- aliasRegistry?: AliasRegistry;
41
- includeBreakdown?: boolean;
42
- resolverOptions?: ModelResolverOptions;
43
- };
44
- declare class CostCalculator {
45
- private readonly catalog;
46
- private readonly aliasRegistry?;
47
- private readonly includeBreakdown;
48
- private readonly resolverOptions?;
49
- constructor(catalog: AiModelsCatalogClient, options?: CostCalculatorOptions);
50
- calculate(input: AiUsageInput): Promise<AiCostResult>;
51
- }
10
+ /** Default OpenRouter platform surcharge when catalog markup fields are absent (5%). */
11
+ declare const DEFAULT_OPENROUTER_MARKUP_RATE = 0.05;
52
12
 
53
- export { type AiCostResult, AiModelPricing, type AiUsageInput, CostCalculator, type CostCalculatorOptions };
13
+ export { AiCostExtraction, AiCostResult, AiUsageInput, DEFAULT_OPENROUTER_MARKUP_RATE, ExtractUsageInputResult, enrichCostResult, toCostExtraction };
@@ -1,53 +1,13 @@
1
- import { b as AliasRegistry, h as ModelResolverOptions } from '../types-CuiPDcVs.js';
2
- import { A as AiModelsCatalogClient } from '../AiModelsCatalogClient-nwFoEaqL.js';
3
- import { A as AiModelPricing } from '../types-BYXnCvKx.js';
4
- export { a as AiModelRecord } from '../types-BYXnCvKx.js';
5
- import '@x12i/catalox';
1
+ import { a as AiCostResult, d as AiUsageInput, A as AiCostExtraction, f as ExtractUsageInputResult } from '../resolveUsageModel-BFwf80Hz.js';
2
+ export { b as AiCostWarning, c as AiCostWarningCode, C as CostCalculator, e as CostCalculatorOptions, E as ExtractUsageInputOptions, F as FieldProvenance, M as MODEL_FIELD_PRIORITY, T as TokenExtractionProvenance, g as extractUsageInput, r as resolveUsageModel } from '../resolveUsageModel-BFwf80Hz.js';
3
+ export { A as AiModelPricing, a as AiModelRecord } from '../types-BrzJWsTU.js';
4
+ import '../AiModelsCatalogClient-CPPNI6Ry.js';
6
5
 
7
- type AiUsageInput = {
8
- tokens: {
9
- prompt: number;
10
- completion: number;
11
- total: number;
12
- cached?: number;
13
- cacheWrite?: number;
14
- reasoning?: number;
15
- audio?: number;
16
- image?: number;
17
- };
18
- provider: string;
19
- modelUsed: string;
20
- };
21
- type AiCostResult = {
22
- cost: number;
23
- breakdown?: {
24
- promptCostUsd: number;
25
- completionCostUsd: number;
26
- cachingCostUsd?: number;
27
- reasoningCostUsd?: number;
28
- audioCostUsd?: number;
29
- imageCostUsd?: number;
30
- requestFlatCostUsd?: number;
31
- };
32
- resolvedModelId: string;
33
- routedViaOpenRouter: boolean;
34
- isAuthoritative: boolean;
35
- pricingSnapshot: AiModelPricing;
36
- source: "catalog" | "estimate-fallback";
37
- };
6
+ declare function toCostExtraction(provenance: ExtractUsageInputResult["provenance"]): AiCostExtraction;
7
+ /** Attach usage, provider, and model fields callers expect on every cost response. */
8
+ declare function enrichCostResult(result: Omit<AiCostResult, "usage" | "provider" | "usedModel" | "model" | "extraction">, input: AiUsageInput, extraction?: AiCostExtraction): AiCostResult;
38
9
 
39
- type CostCalculatorOptions = {
40
- aliasRegistry?: AliasRegistry;
41
- includeBreakdown?: boolean;
42
- resolverOptions?: ModelResolverOptions;
43
- };
44
- declare class CostCalculator {
45
- private readonly catalog;
46
- private readonly aliasRegistry?;
47
- private readonly includeBreakdown;
48
- private readonly resolverOptions?;
49
- constructor(catalog: AiModelsCatalogClient, options?: CostCalculatorOptions);
50
- calculate(input: AiUsageInput): Promise<AiCostResult>;
51
- }
10
+ /** Default OpenRouter platform surcharge when catalog markup fields are absent (5%). */
11
+ declare const DEFAULT_OPENROUTER_MARKUP_RATE = 0.05;
52
12
 
53
- export { type AiCostResult, AiModelPricing, type AiUsageInput, CostCalculator, type CostCalculatorOptions };
13
+ export { AiCostExtraction, AiCostResult, AiUsageInput, DEFAULT_OPENROUTER_MARKUP_RATE, ExtractUsageInputResult, enrichCostResult, toCostExtraction };
@@ -1,7 +1,22 @@
1
+ import "../chunk-56R4XA2S.js";
1
2
  import {
2
- CostCalculator
3
- } from "../chunk-YHO57D2V.js";
3
+ CostCalculator,
4
+ DEFAULT_OPENROUTER_MARKUP_RATE,
5
+ MODEL_FIELD_PRIORITY,
6
+ enrichCostResult,
7
+ extractUsageInput,
8
+ resolveUsageModel,
9
+ toCostExtraction
10
+ } from "../chunk-CTM35DMA.js";
11
+ import "../chunk-B3V2EHRY.js";
12
+ import "../chunk-2PTCWPHV.js";
4
13
  export {
5
- CostCalculator
14
+ CostCalculator,
15
+ DEFAULT_OPENROUTER_MARKUP_RATE,
16
+ MODEL_FIELD_PRIORITY,
17
+ enrichCostResult,
18
+ extractUsageInput,
19
+ resolveUsageModel,
20
+ toCostExtraction
6
21
  };
7
22
  //# sourceMappingURL=index.js.map
package/dist/index.cjs CHANGED
@@ -1,6 +1,10 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});require('./chunk-5GUKLOEK.cjs');
2
2
 
3
- var _chunkHN6UAQAEcjs = require('./chunk-HN6UAQAE.cjs');
3
+
4
+
5
+
6
+
7
+ var _chunkWOHMHXRZcjs = require('./chunk-WOHMHXRZ.cjs');
4
8
 
5
9
 
6
10
  var _chunk5HNFAYTOcjs = require('./chunk-5HNFAYTO.cjs');
@@ -8,32 +12,51 @@ var _chunk5HNFAYTOcjs = require('./chunk-5HNFAYTO.cjs');
8
12
 
9
13
 
10
14
 
11
- var _chunkLYOU7CA2cjs = require('./chunk-LYOU7CA2.cjs');
15
+
16
+ var _chunkPRCICORGcjs = require('./chunk-PRCICORG.cjs');
12
17
  require('./chunk-3E67S427.cjs');
13
18
 
14
19
 
15
20
 
16
- var _chunkQWAX7VQOcjs = require('./chunk-QWAX7VQO.cjs');
21
+ var _chunkBAHBDADJcjs = require('./chunk-BAHBDADJ.cjs');
17
22
  require('./chunk-2PYACSZ5.cjs');
18
23
 
19
24
 
20
25
 
21
26
 
22
27
 
23
- var _chunkQCRLKVB3cjs = require('./chunk-QCRLKVB3.cjs');
24
- require('./chunk-C3H7RTFR.cjs');
28
+ var _chunkYQDSN6R6cjs = require('./chunk-YQDSN6R6.cjs');
29
+
30
+
31
+ var _chunkXOKUDUUIcjs = require('./chunk-XOKUDUUI.cjs');
32
+
33
+
34
+
35
+ var _chunkXAWBTX3Ncjs = require('./chunk-XAWBTX3N.cjs');
36
+
37
+
38
+
39
+
40
+
41
+
42
+
43
+
44
+
45
+ var _chunk5XAAMBDOcjs = require('./chunk-5XAAMBDO.cjs');
46
+
47
+
48
+
25
49
 
26
50
 
27
51
 
28
52
 
53
+ var _chunkDXZOL3VNcjs = require('./chunk-DXZOL3VN.cjs');
29
54
 
30
- var _chunkHS74X2OJcjs = require('./chunk-HS74X2OJ.cjs');
31
55
 
32
56
 
33
57
 
34
58
 
35
- var _chunkDKHGWHXPcjs = require('./chunk-DKHGWHXP.cjs');
36
- require('./chunk-FGP3QXWL.cjs');
59
+ var _chunkEDMCKHO6cjs = require('./chunk-EDMCKHO6.cjs');
37
60
 
38
61
 
39
62
 
@@ -41,21 +64,21 @@ require('./chunk-FGP3QXWL.cjs');
41
64
 
42
65
 
43
66
 
44
- var _chunkAV6OE2YQcjs = require('./chunk-AV6OE2YQ.cjs');
45
67
 
46
68
 
47
- var _chunkF2F4UEFDcjs = require('./chunk-F2F4UEFD.cjs');
48
69
 
49
70
 
50
71
 
72
+ var _chunkPADNCGZBcjs = require('./chunk-PADNCGZB.cjs');
51
73
 
52
74
 
53
75
 
54
76
 
55
77
 
56
78
 
57
- var _chunkTF4L2NECcjs = require('./chunk-TF4L2NEC.cjs');
58
79
 
80
+ var _chunk5IZ7PLY2cjs = require('./chunk-5IZ7PLY2.cjs');
81
+ require('./chunk-GS7T56RP.cjs');
59
82
 
60
83
 
61
84
 
@@ -66,7 +89,6 @@ var _chunkTF4L2NECcjs = require('./chunk-TF4L2NEC.cjs');
66
89
 
67
90
 
68
91
 
69
- var _chunk7Q742NI3cjs = require('./chunk-7Q742NI3.cjs');
70
92
 
71
93
 
72
94
 
@@ -111,5 +133,5 @@ var _chunk7Q742NI3cjs = require('./chunk-7Q742NI3.cjs');
111
133
 
112
134
 
113
135
 
114
- exports.AIToolbox = _chunk5HNFAYTOcjs.AIToolbox; exports.AI_MODELS_CATALOG_ID = _chunkTF4L2NECcjs.AI_MODELS_CATALOG_ID; exports.AI_MODELS_DESCRIPTOR = _chunkTF4L2NECcjs.AI_MODELS_DESCRIPTOR; exports.AI_TOOLS_APP_ID = _chunkTF4L2NECcjs.AI_TOOLS_APP_ID; exports.AiModelsCatalogClient = _chunkF2F4UEFDcjs.AiModelsCatalogClient; exports.AiModelsService = _chunkQCRLKVB3cjs.AiModelsService; exports.AiToolsError = _chunk7Q742NI3cjs.AiToolsError; exports.AliasConflictError = _chunk7Q742NI3cjs.AliasConflictError; exports.AliasFileParseError = _chunk7Q742NI3cjs.AliasFileParseError; exports.AliasFileWriteError = _chunk7Q742NI3cjs.AliasFileWriteError; exports.AliasInvalidNameError = _chunk7Q742NI3cjs.AliasInvalidNameError; exports.AliasNotFoundError = _chunk7Q742NI3cjs.AliasNotFoundError; exports.AliasRegistry = _chunkQWAX7VQOcjs.AliasRegistry; exports.AliasResolver = _chunkQWAX7VQOcjs.AliasResolver; exports.CatalogSyncJobError = _chunkHS74X2OJcjs.CatalogSyncJobError; exports.CostCalculationError = _chunk7Q742NI3cjs.CostCalculationError; exports.CostCalculator = _chunkHN6UAQAEcjs.CostCalculator; exports.ModelNameResolver = _chunkTF4L2NECcjs.ModelNameResolver; exports.ModelNotFoundError = _chunk7Q742NI3cjs.ModelNotFoundError; exports.ModelResolutionError = _chunk7Q742NI3cjs.ModelResolutionError; exports.OpenRouterSyncProvider = _chunkDKHGWHXPcjs.OpenRouterSyncProvider; exports.REASONING_SUPPORTED_PARAMETERS = _chunkAV6OE2YQcjs.REASONING_SUPPORTED_PARAMETERS; exports.SyncError = _chunk7Q742NI3cjs.SyncError; exports.computeSupportsReasoning = _chunkAV6OE2YQcjs.computeSupportsReasoning; exports.countModels = _chunkQCRLKVB3cjs.countModels; exports.createModelNameResolver = _chunkLYOU7CA2cjs.createModelNameResolver; exports.ensureAiModelsCatalog = _chunkDKHGWHXPcjs.ensureAiModelsCatalog; exports.filterModels = _chunkQCRLKVB3cjs.filterModels; exports.getModelInfo = _chunkQCRLKVB3cjs.getModelInfo; exports.hasReasoningPricing = _chunkAV6OE2YQcjs.hasReasoningPricing; exports.isReasoningModel = _chunkAV6OE2YQcjs.isReasoningModel; exports.isRoutedViaOpenRouter = _chunkLYOU7CA2cjs.isRoutedViaOpenRouter; exports.loadOpenRouterRoutingEnv = _chunkTF4L2NECcjs.loadOpenRouterRoutingEnv; exports.normalizeOpenRouterModel = _chunkAV6OE2YQcjs.normalizeOpenRouterModel; exports.providerIdToEnvKeyPrefix = _chunkTF4L2NECcjs.providerIdToEnvKeyPrefix; exports.pruneStaleCatalogModels = _chunkHS74X2OJcjs.pruneStaleCatalogModels; exports.resolveModel = _chunkLYOU7CA2cjs.resolveModel; exports.runAiModelsCatalogSync = _chunkHS74X2OJcjs.runAiModelsCatalogSync; exports.shouldDefaultRouteViaOpenRouter = _chunkTF4L2NECcjs.shouldDefaultRouteViaOpenRouter; exports.supportsReasoningParameter = _chunkAV6OE2YQcjs.supportsReasoningParameter; exports.syncAiModelsCatalog = _chunkDKHGWHXPcjs.syncAiModelsCatalog; exports.vendorApiKeyEnvName = _chunkTF4L2NECcjs.vendorApiKeyEnvName; exports.verifyAiModelsCatalog = _chunkHS74X2OJcjs.verifyAiModelsCatalog;
136
+ exports.AIToolbox = _chunk5HNFAYTOcjs.AIToolbox; exports.AiModelsCatalogClient = _chunk5XAAMBDOcjs.AiModelsCatalogClient; exports.AiModelsService = _chunkYQDSN6R6cjs.AiModelsService; exports.AiToolsError = _chunkPADNCGZBcjs.AiToolsError; exports.AliasConflictError = _chunkPADNCGZBcjs.AliasConflictError; exports.AliasFileParseError = _chunkPADNCGZBcjs.AliasFileParseError; exports.AliasFileWriteError = _chunkPADNCGZBcjs.AliasFileWriteError; exports.AliasInvalidNameError = _chunkPADNCGZBcjs.AliasInvalidNameError; exports.AliasNotFoundError = _chunkPADNCGZBcjs.AliasNotFoundError; exports.AliasRegistry = _chunkBAHBDADJcjs.AliasRegistry; exports.AliasResolver = _chunkBAHBDADJcjs.AliasResolver; exports.CostCalculationError = _chunkPADNCGZBcjs.CostCalculationError; exports.CostCalculator = _chunkWOHMHXRZcjs.CostCalculator; exports.DEFAULT_CATALOG_CACHE_TTL_MS = _chunk5XAAMBDOcjs.DEFAULT_CATALOG_CACHE_TTL_MS; exports.DEFAULT_DIRECT_CATALOG_URL = _chunk5XAAMBDOcjs.DEFAULT_DIRECT_CATALOG_URL; exports.DEFAULT_OPENROUTER_CATALOG_URL = _chunk5XAAMBDOcjs.DEFAULT_OPENROUTER_CATALOG_URL; exports.MODEL_FIELD_PRIORITY = _chunkWOHMHXRZcjs.MODEL_FIELD_PRIORITY; exports.ModelNameResolver = _chunkDXZOL3VNcjs.ModelNameResolver; exports.ModelNotFoundError = _chunkPADNCGZBcjs.ModelNotFoundError; exports.ModelResolutionError = _chunkPADNCGZBcjs.ModelResolutionError; exports.OpenRouterSyncProvider = _chunkPRCICORGcjs.OpenRouterSyncProvider; exports.REASONING_SUPPORTED_PARAMETERS = _chunkDXZOL3VNcjs.REASONING_SUPPORTED_PARAMETERS; exports.SyncError = _chunkPADNCGZBcjs.SyncError; exports.UnknownModelCostError = _chunkPADNCGZBcjs.UnknownModelCostError; exports.computeSupportsReasoning = _chunkDXZOL3VNcjs.computeSupportsReasoning; exports.countModels = _chunkYQDSN6R6cjs.countModels; exports.createModelNameResolver = _chunkPRCICORGcjs.createModelNameResolver; exports.extractUsageInput = _chunkWOHMHXRZcjs.extractUsageInput; exports.filterModels = _chunkYQDSN6R6cjs.filterModels; exports.getModelInfo = _chunkYQDSN6R6cjs.getModelInfo; exports.hasReasoningPricing = _chunkDXZOL3VNcjs.hasReasoningPricing; exports.invalidateCatalogLoadCache = _chunk5XAAMBDOcjs.invalidateCatalogLoadCache; exports.isKnownProfileOrShortcut = _chunk5IZ7PLY2cjs.isKnownProfileOrShortcut; exports.isReasoningModel = _chunkDXZOL3VNcjs.isReasoningModel; exports.isRoutedViaOpenRouter = _chunkPRCICORGcjs.isRoutedViaOpenRouter; exports.listAIProfiles = _chunk5IZ7PLY2cjs.listAIProfiles; exports.listAIShortcuts = _chunk5IZ7PLY2cjs.listAIShortcuts; exports.loadCatalogSources = _chunk5XAAMBDOcjs.loadCatalogSources; exports.loadCatalogSourcesCached = _chunk5XAAMBDOcjs.loadCatalogSourcesCached; exports.loadOpenRouterRoutingEnv = _chunkEDMCKHO6cjs.loadOpenRouterRoutingEnv; exports.normalizeOpenRouterModel = _chunkXOKUDUUIcjs.normalizeOpenRouterModel; exports.profileConfigFromResolved = _chunk5IZ7PLY2cjs.profileConfigFromResolved; exports.providerIdToEnvKeyPrefix = _chunkEDMCKHO6cjs.providerIdToEnvKeyPrefix; exports.refreshAiModelsCatalog = _chunkXAWBTX3Ncjs.refreshAiModelsCatalog; exports.resolveAIProfile = _chunk5IZ7PLY2cjs.resolveAIProfile; exports.resolveCatalogCacheTtlMs = _chunk5XAAMBDOcjs.resolveCatalogCacheTtlMs; exports.resolveModel = _chunkPRCICORGcjs.resolveModel; exports.resolveProfileForAsk = _chunk5IZ7PLY2cjs.resolveProfileForAsk; exports.resolveUsageModel = _chunkWOHMHXRZcjs.resolveUsageModel; exports.shouldDefaultRouteViaOpenRouter = _chunkEDMCKHO6cjs.shouldDefaultRouteViaOpenRouter; exports.supportsReasoningParameter = _chunkDXZOL3VNcjs.supportsReasoningParameter; exports.vendorApiKeyEnvName = _chunkEDMCKHO6cjs.vendorApiKeyEnvName; exports.verifyAiModelsCatalog = _chunkXAWBTX3Ncjs.verifyAiModelsCatalog;
115
137
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/ami/Documents/prometheus/x12i/ai-tools/dist/index.cjs"],"names":[],"mappings":"AAAA;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACA;AACA;AACF,wDAA6B;AAC7B,gCAA6B;AAC7B;AACE;AACA;AACF,wDAA6B;AAC7B,gCAA6B;AAC7B;AACE;AACA;AACA;AACA;AACF,wDAA6B;AAC7B,gCAA6B;AAC7B;AACE;AACA;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACA;AACF,wDAA6B;AAC7B,gCAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,g4FAAC","file":"/Users/ami/Documents/prometheus/x12i/ai-tools/dist/index.cjs"}
1
+ {"version":3,"sources":["/Users/ami/Documents/prometheus/x12i/ai-tools/dist/index.cjs"],"names":[],"mappings":"AAAA,yGAA6B;AAC7B;AACE;AACA;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACF,wDAA6B;AAC7B,gCAA6B;AAC7B;AACE;AACA;AACF,wDAA6B;AAC7B,gCAA6B;AAC7B;AACE;AACA;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACF,wDAA6B;AAC7B,gCAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,8nHAAC","file":"/Users/ami/Documents/prometheus/x12i/ai-tools/dist/index.cjs"}
package/dist/index.d.cts CHANGED
@@ -1,19 +1,16 @@
1
- export { AiCostResult, AiUsageInput, CostCalculator, CostCalculatorOptions } from './cost/index.cjs';
2
- export { A as AiModelsCatalogClient, a as AiModelsCatalogClientOptions } from './AiModelsCatalogClient-CNeqFiFs.cjs';
1
+ export { A as AiCostExtraction, a as AiCostResult, b as AiCostWarning, d as AiUsageInput, C as CostCalculator, e as CostCalculatorOptions, E as ExtractUsageInputOptions, f as ExtractUsageInputResult, M as MODEL_FIELD_PRIORITY, g as extractUsageInput, r as resolveUsageModel } from './resolveUsageModel-C_YmGR1M.cjs';
2
+ export { A as AiModelsCatalogClient, a as AiModelsCatalogClientOptions, L as LoadCatalogOptions, b as LoadedCatalogs, l as loadCatalogSources } from './AiModelsCatalogClient-B5FMI9gj.cjs';
3
+ import { h as ModelResolutionInput, i as ModelResolutionNotFound } from './types-BrzJWsTU.cjs';
4
+ export { A as AiModelPricing, a as AiModelRecord, b as AliasEntry, c as AliasFileSchema, d as AliasRegistry, e as AliasRegistryOptions, f as AliasValidationReport, M as ModelListFilters, g as ModelListResult, j as ModelResolutionResult, k as ModelResolutionSuccess, l as ModelResolverOptions, m as OpenRouterModelApi, n as OpenRouterModelsQuery, r as OpenRouterRoutingConfig, R as ResolutionStrategy, t as ResolvedModel, u as ResolvedModelRef, v as loadOpenRouterRoutingEnv, w as providerIdToEnvKeyPrefix, x as shouldDefaultRouteViaOpenRouter, y as vendorApiKeyEnvName } from './types-BrzJWsTU.cjs';
5
+ export { C as CatalogRefreshOptions, a as CatalogRefreshResult, c as CatalogVerifyOptions, d as CatalogVerifyReport, D as DEFAULT_CATALOG_CACHE_TTL_MS, e as DEFAULT_DIRECT_CATALOG_URL, f as DEFAULT_OPENROUTER_CATALOG_URL, i as invalidateCatalogLoadCache, l as loadCatalogSourcesCached, r as refreshAiModelsCatalog, h as resolveCatalogCacheTtlMs, v as verifyAiModelsCatalog } from './modelCache-CJftI-Ko.cjs';
3
6
  export { AiModelsService, AiModelsServiceOptions, REASONING_SUPPORTED_PARAMETERS, ReasoningModelInput, computeSupportsReasoning, countModels, filterModels, getModelInfo, hasReasoningPricing, isReasoningModel, normalizeOpenRouterModel, supportsReasoningParameter } from './models/index.cjs';
4
- export { A as AiModelPricing, a as AiModelRecord, M as ModelListFilters, b as ModelListResult, c as OpenRouterModelApi, d as OpenRouterModelsQuery } from './types-BYXnCvKx.cjs';
5
- export { AI_MODELS_CATALOG_ID, AI_MODELS_DESCRIPTOR, AI_TOOLS_APP_ID, CatalogSyncJobError, CatalogSyncJobOptions, CatalogSyncJobResult, CatalogVerifyOptions, CatalogVerifyReport, EnsureAiModelsCatalogOptions, PruneStaleCatalogModelsOptions, PruneStaleCatalogModelsResult, ensureAiModelsCatalog, pruneStaleCatalogModels, runAiModelsCatalogSync, verifyAiModelsCatalog } from './catalog/index.cjs';
6
- export { M as ModelNameResolver, O as OpenRouterSyncProvider, a as OpenRouterSyncProviderOptions, c as createModelNameResolver, i as isRoutedViaOpenRouter, r as resolveModel } from './modelNameResolver-D9V_GfUK.cjs';
7
- export { S as SyncOptions, a as SyncResult, s as syncAiModelsCatalog } from './syncAiModelsCatalog-CnXRLm2c.cjs';
7
+ export { M as ModelNameResolver, O as OpenRouterSyncProvider, a as OpenRouterSyncProviderOptions, c as createModelNameResolver, i as isRoutedViaOpenRouter, r as resolveModel } from './modelNameResolver-C5CSTGFF.cjs';
8
8
  export { AIToolbox, AiToolboxOptions, Fallback, FallbackChain, Guard, GuardConfig, RouteRule, Router, TrackResult, Tracker } from './toolbox/index.cjs';
9
- import { M as ModelResolutionInput, e as ModelResolutionNotFound } from './types-CX6QFNNy.cjs';
10
- export { A as AliasEntry, a as AliasFileSchema, b as AliasRegistry, c as AliasRegistryOptions, d as AliasValidationReport, f as ModelResolutionResult, g as ModelResolutionSuccess, h as ModelResolverOptions, O as OpenRouterRoutingConfig, R as ResolutionStrategy, i as ResolvedModel, j as ResolvedModelRef, l as loadOpenRouterRoutingEnv, p as providerIdToEnvKeyPrefix, s as shouldDefaultRouteViaOpenRouter, v as vendorApiKeyEnvName } from './types-CX6QFNNy.cjs';
9
+ export { AskProfileModelConfig, ResolveProfileForAskInput, profileConfigFromResolved, resolveProfileForAsk } from './profiles/index.cjs';
10
+ export { AIProfileBackend, InstructionTier, ResolvedAIProfile, isKnownProfileOrShortcut, listAIProfiles, listAIShortcuts, resolveAIProfile } from '@x12i/ai-profiles';
11
11
  export { AliasResolver, AliasResolverOptions } from './aliases/index.cjs';
12
- import '@x12i/catalox';
13
- import 'firebase-admin/firestore';
14
- import './upsertAiModelRecord-CjY-sny0.cjs';
15
12
 
16
- type AiToolsErrorCode = "MODEL_NOT_FOUND" | "SYNC_FETCH_FAILED" | "SYNC_UPSERT_FAILED" | "CATALOG_BOOTSTRAP_FAILED" | "COST_CALCULATION_FAILED" | "INVALID_USAGE_INPUT" | "OPENROUTER_AUTH_FAILED" | "OPENROUTER_MODELS_FETCH_FAILED" | "CACHE_READ_ERROR" | "ALIAS_NOT_FOUND" | "ALIAS_INVALID_NAME" | "ALIAS_CONFLICT" | "ALIAS_FILE_PARSE_ERROR" | "ALIAS_FILE_WRITE_ERROR";
13
+ type AiToolsErrorCode = "MODEL_NOT_FOUND" | "SYNC_FETCH_FAILED" | "SYNC_UPSERT_FAILED" | "COST_CALCULATION_FAILED" | "COST_UNKNOWN_MODEL" | "INVALID_USAGE_INPUT" | "OPENROUTER_AUTH_FAILED" | "OPENROUTER_MODELS_FETCH_FAILED" | "CACHE_READ_ERROR" | "ALIAS_NOT_FOUND" | "ALIAS_INVALID_NAME" | "ALIAS_CONFLICT" | "ALIAS_FILE_PARSE_ERROR" | "ALIAS_FILE_WRITE_ERROR";
17
14
  declare class AiToolsError extends Error {
18
15
  readonly code: AiToolsErrorCode;
19
16
  readonly cause?: unknown | undefined;
@@ -48,5 +45,10 @@ declare class SyncError extends AiToolsError {
48
45
  declare class CostCalculationError extends AiToolsError {
49
46
  constructor(message: string, cause?: unknown);
50
47
  }
48
+ declare class UnknownModelCostError extends AiToolsError {
49
+ readonly model: string;
50
+ readonly provider: string;
51
+ constructor(model: string, provider: string);
52
+ }
51
53
 
52
- export { AiToolsError, type AiToolsErrorCode, AliasConflictError, AliasFileParseError, AliasFileWriteError, AliasInvalidNameError, AliasNotFoundError, CostCalculationError, ModelNotFoundError, ModelResolutionError, ModelResolutionInput, SyncError };
54
+ export { AiToolsError, type AiToolsErrorCode, AliasConflictError, AliasFileParseError, AliasFileWriteError, AliasInvalidNameError, AliasNotFoundError, CostCalculationError, ModelNotFoundError, ModelResolutionError, ModelResolutionInput, SyncError, UnknownModelCostError };
package/dist/index.d.ts CHANGED
@@ -1,19 +1,16 @@
1
- export { AiCostResult, AiUsageInput, CostCalculator, CostCalculatorOptions } from './cost/index.js';
2
- export { A as AiModelsCatalogClient, a as AiModelsCatalogClientOptions } from './AiModelsCatalogClient-nwFoEaqL.js';
1
+ export { A as AiCostExtraction, a as AiCostResult, b as AiCostWarning, d as AiUsageInput, C as CostCalculator, e as CostCalculatorOptions, E as ExtractUsageInputOptions, f as ExtractUsageInputResult, M as MODEL_FIELD_PRIORITY, g as extractUsageInput, r as resolveUsageModel } from './resolveUsageModel-BFwf80Hz.js';
2
+ export { A as AiModelsCatalogClient, a as AiModelsCatalogClientOptions, L as LoadCatalogOptions, b as LoadedCatalogs, l as loadCatalogSources } from './AiModelsCatalogClient-CPPNI6Ry.js';
3
+ import { h as ModelResolutionInput, i as ModelResolutionNotFound } from './types-BrzJWsTU.js';
4
+ export { A as AiModelPricing, a as AiModelRecord, b as AliasEntry, c as AliasFileSchema, d as AliasRegistry, e as AliasRegistryOptions, f as AliasValidationReport, M as ModelListFilters, g as ModelListResult, j as ModelResolutionResult, k as ModelResolutionSuccess, l as ModelResolverOptions, m as OpenRouterModelApi, n as OpenRouterModelsQuery, r as OpenRouterRoutingConfig, R as ResolutionStrategy, t as ResolvedModel, u as ResolvedModelRef, v as loadOpenRouterRoutingEnv, w as providerIdToEnvKeyPrefix, x as shouldDefaultRouteViaOpenRouter, y as vendorApiKeyEnvName } from './types-BrzJWsTU.js';
5
+ export { C as CatalogRefreshOptions, a as CatalogRefreshResult, c as CatalogVerifyOptions, d as CatalogVerifyReport, D as DEFAULT_CATALOG_CACHE_TTL_MS, e as DEFAULT_DIRECT_CATALOG_URL, f as DEFAULT_OPENROUTER_CATALOG_URL, i as invalidateCatalogLoadCache, l as loadCatalogSourcesCached, r as refreshAiModelsCatalog, h as resolveCatalogCacheTtlMs, v as verifyAiModelsCatalog } from './modelCache-BzRn6t_C.js';
3
6
  export { AiModelsService, AiModelsServiceOptions, REASONING_SUPPORTED_PARAMETERS, ReasoningModelInput, computeSupportsReasoning, countModels, filterModels, getModelInfo, hasReasoningPricing, isReasoningModel, normalizeOpenRouterModel, supportsReasoningParameter } from './models/index.js';
4
- export { A as AiModelPricing, a as AiModelRecord, M as ModelListFilters, b as ModelListResult, c as OpenRouterModelApi, d as OpenRouterModelsQuery } from './types-BYXnCvKx.js';
5
- export { AI_MODELS_CATALOG_ID, AI_MODELS_DESCRIPTOR, AI_TOOLS_APP_ID, CatalogSyncJobError, CatalogSyncJobOptions, CatalogSyncJobResult, CatalogVerifyOptions, CatalogVerifyReport, EnsureAiModelsCatalogOptions, PruneStaleCatalogModelsOptions, PruneStaleCatalogModelsResult, ensureAiModelsCatalog, pruneStaleCatalogModels, runAiModelsCatalogSync, verifyAiModelsCatalog } from './catalog/index.js';
6
- export { M as ModelNameResolver, O as OpenRouterSyncProvider, a as OpenRouterSyncProviderOptions, c as createModelNameResolver, i as isRoutedViaOpenRouter, r as resolveModel } from './modelNameResolver-DqFt7g6W.js';
7
- export { S as SyncOptions, a as SyncResult, s as syncAiModelsCatalog } from './syncAiModelsCatalog-DpkN_w7S.js';
7
+ export { M as ModelNameResolver, O as OpenRouterSyncProvider, a as OpenRouterSyncProviderOptions, c as createModelNameResolver, i as isRoutedViaOpenRouter, r as resolveModel } from './modelNameResolver-5XkBMctP.js';
8
8
  export { AIToolbox, AiToolboxOptions, Fallback, FallbackChain, Guard, GuardConfig, RouteRule, Router, TrackResult, Tracker } from './toolbox/index.js';
9
- import { M as ModelResolutionInput, e as ModelResolutionNotFound } from './types-CuiPDcVs.js';
10
- export { A as AliasEntry, a as AliasFileSchema, b as AliasRegistry, c as AliasRegistryOptions, d as AliasValidationReport, f as ModelResolutionResult, g as ModelResolutionSuccess, h as ModelResolverOptions, O as OpenRouterRoutingConfig, R as ResolutionStrategy, i as ResolvedModel, j as ResolvedModelRef, l as loadOpenRouterRoutingEnv, p as providerIdToEnvKeyPrefix, s as shouldDefaultRouteViaOpenRouter, v as vendorApiKeyEnvName } from './types-CuiPDcVs.js';
9
+ export { AskProfileModelConfig, ResolveProfileForAskInput, profileConfigFromResolved, resolveProfileForAsk } from './profiles/index.js';
10
+ export { AIProfileBackend, InstructionTier, ResolvedAIProfile, isKnownProfileOrShortcut, listAIProfiles, listAIShortcuts, resolveAIProfile } from '@x12i/ai-profiles';
11
11
  export { AliasResolver, AliasResolverOptions } from './aliases/index.js';
12
- import '@x12i/catalox';
13
- import 'firebase-admin/firestore';
14
- import './upsertAiModelRecord-C831wOIF.js';
15
12
 
16
- type AiToolsErrorCode = "MODEL_NOT_FOUND" | "SYNC_FETCH_FAILED" | "SYNC_UPSERT_FAILED" | "CATALOG_BOOTSTRAP_FAILED" | "COST_CALCULATION_FAILED" | "INVALID_USAGE_INPUT" | "OPENROUTER_AUTH_FAILED" | "OPENROUTER_MODELS_FETCH_FAILED" | "CACHE_READ_ERROR" | "ALIAS_NOT_FOUND" | "ALIAS_INVALID_NAME" | "ALIAS_CONFLICT" | "ALIAS_FILE_PARSE_ERROR" | "ALIAS_FILE_WRITE_ERROR";
13
+ type AiToolsErrorCode = "MODEL_NOT_FOUND" | "SYNC_FETCH_FAILED" | "SYNC_UPSERT_FAILED" | "COST_CALCULATION_FAILED" | "COST_UNKNOWN_MODEL" | "INVALID_USAGE_INPUT" | "OPENROUTER_AUTH_FAILED" | "OPENROUTER_MODELS_FETCH_FAILED" | "CACHE_READ_ERROR" | "ALIAS_NOT_FOUND" | "ALIAS_INVALID_NAME" | "ALIAS_CONFLICT" | "ALIAS_FILE_PARSE_ERROR" | "ALIAS_FILE_WRITE_ERROR";
17
14
  declare class AiToolsError extends Error {
18
15
  readonly code: AiToolsErrorCode;
19
16
  readonly cause?: unknown | undefined;
@@ -48,5 +45,10 @@ declare class SyncError extends AiToolsError {
48
45
  declare class CostCalculationError extends AiToolsError {
49
46
  constructor(message: string, cause?: unknown);
50
47
  }
48
+ declare class UnknownModelCostError extends AiToolsError {
49
+ readonly model: string;
50
+ readonly provider: string;
51
+ constructor(model: string, provider: string);
52
+ }
51
53
 
52
- export { AiToolsError, type AiToolsErrorCode, AliasConflictError, AliasFileParseError, AliasFileWriteError, AliasInvalidNameError, AliasNotFoundError, CostCalculationError, ModelNotFoundError, ModelResolutionError, ModelResolutionInput, SyncError };
54
+ export { AiToolsError, type AiToolsErrorCode, AliasConflictError, AliasFileParseError, AliasFileWriteError, AliasInvalidNameError, AliasNotFoundError, CostCalculationError, ModelNotFoundError, ModelResolutionError, ModelResolutionInput, SyncError, UnknownModelCostError };
package/dist/index.js CHANGED
@@ -1,60 +1,62 @@
1
+ import "./chunk-56R4XA2S.js";
1
2
  import {
2
- CostCalculator
3
- } from "./chunk-YHO57D2V.js";
3
+ CostCalculator,
4
+ MODEL_FIELD_PRIORITY,
5
+ extractUsageInput,
6
+ resolveUsageModel
7
+ } from "./chunk-CTM35DMA.js";
4
8
  import {
5
9
  AIToolbox
6
10
  } from "./chunk-XRBZQQQU.js";
7
11
  import {
12
+ OpenRouterSyncProvider,
8
13
  createModelNameResolver,
9
14
  isRoutedViaOpenRouter,
10
15
  resolveModel
11
- } from "./chunk-G2G4KSC5.js";
16
+ } from "./chunk-6BQBKROR.js";
12
17
  import "./chunk-KHODXGPV.js";
13
18
  import {
14
19
  AliasRegistry,
15
20
  AliasResolver
16
- } from "./chunk-O2A6OVEH.js";
21
+ } from "./chunk-ANVONYJF.js";
17
22
  import "./chunk-COK34C6P.js";
18
23
  import {
19
24
  AiModelsService,
20
25
  countModels,
21
26
  filterModels,
22
27
  getModelInfo
23
- } from "./chunk-4NAY6HRP.js";
24
- import "./chunk-M5TMA73F.js";
28
+ } from "./chunk-VJHLO2R3.js";
29
+ import {
30
+ normalizeOpenRouterModel
31
+ } from "./chunk-SIH4GPV4.js";
25
32
  import {
26
- CatalogSyncJobError,
27
- pruneStaleCatalogModels,
28
- runAiModelsCatalogSync,
33
+ refreshAiModelsCatalog,
29
34
  verifyAiModelsCatalog
30
- } from "./chunk-MX3AMQFC.js";
35
+ } from "./chunk-AB5GNXJ4.js";
31
36
  import {
32
- OpenRouterSyncProvider,
33
- ensureAiModelsCatalog,
34
- syncAiModelsCatalog
35
- } from "./chunk-VRFVF5RH.js";
36
- import "./chunk-HYGXZY25.js";
37
+ AiModelsCatalogClient,
38
+ DEFAULT_CATALOG_CACHE_TTL_MS,
39
+ DEFAULT_DIRECT_CATALOG_URL,
40
+ DEFAULT_OPENROUTER_CATALOG_URL,
41
+ invalidateCatalogLoadCache,
42
+ loadCatalogSources,
43
+ loadCatalogSourcesCached,
44
+ resolveCatalogCacheTtlMs
45
+ } from "./chunk-OPN6BGNH.js";
37
46
  import {
47
+ ModelNameResolver,
38
48
  REASONING_SUPPORTED_PARAMETERS,
39
49
  computeSupportsReasoning,
40
50
  hasReasoningPricing,
41
51
  isReasoningModel,
42
- normalizeOpenRouterModel,
43
52
  supportsReasoningParameter
44
- } from "./chunk-6QGDZTGH.js";
45
- import {
46
- AiModelsCatalogClient
47
- } from "./chunk-KQOALKKX.js";
53
+ } from "./chunk-EYHMQVAL.js";
48
54
  import {
49
- AI_MODELS_CATALOG_ID,
50
- AI_MODELS_DESCRIPTOR,
51
- AI_TOOLS_APP_ID,
52
- ModelNameResolver,
53
55
  loadOpenRouterRoutingEnv,
54
56
  providerIdToEnvKeyPrefix,
55
57
  shouldDefaultRouteViaOpenRouter,
56
58
  vendorApiKeyEnvName
57
- } from "./chunk-DJ5SWJDY.js";
59
+ } from "./chunk-B3V2EHRY.js";
58
60
  import {
59
61
  AiToolsError,
60
62
  AliasConflictError,
@@ -65,13 +67,19 @@ import {
65
67
  CostCalculationError,
66
68
  ModelNotFoundError,
67
69
  ModelResolutionError,
68
- SyncError
69
- } from "./chunk-AJEKEWWB.js";
70
+ SyncError,
71
+ UnknownModelCostError
72
+ } from "./chunk-2PTCWPHV.js";
73
+ import {
74
+ isKnownProfileOrShortcut,
75
+ listAIProfiles,
76
+ listAIShortcuts,
77
+ profileConfigFromResolved,
78
+ resolveAIProfile,
79
+ resolveProfileForAsk
80
+ } from "./chunk-YQVY7CWT.js";
70
81
  export {
71
82
  AIToolbox,
72
- AI_MODELS_CATALOG_ID,
73
- AI_MODELS_DESCRIPTOR,
74
- AI_TOOLS_APP_ID,
75
83
  AiModelsCatalogClient,
76
84
  AiModelsService,
77
85
  AiToolsError,
@@ -82,33 +90,46 @@ export {
82
90
  AliasNotFoundError,
83
91
  AliasRegistry,
84
92
  AliasResolver,
85
- CatalogSyncJobError,
86
93
  CostCalculationError,
87
94
  CostCalculator,
95
+ DEFAULT_CATALOG_CACHE_TTL_MS,
96
+ DEFAULT_DIRECT_CATALOG_URL,
97
+ DEFAULT_OPENROUTER_CATALOG_URL,
98
+ MODEL_FIELD_PRIORITY,
88
99
  ModelNameResolver,
89
100
  ModelNotFoundError,
90
101
  ModelResolutionError,
91
102
  OpenRouterSyncProvider,
92
103
  REASONING_SUPPORTED_PARAMETERS,
93
104
  SyncError,
105
+ UnknownModelCostError,
94
106
  computeSupportsReasoning,
95
107
  countModels,
96
108
  createModelNameResolver,
97
- ensureAiModelsCatalog,
109
+ extractUsageInput,
98
110
  filterModels,
99
111
  getModelInfo,
100
112
  hasReasoningPricing,
113
+ invalidateCatalogLoadCache,
114
+ isKnownProfileOrShortcut,
101
115
  isReasoningModel,
102
116
  isRoutedViaOpenRouter,
117
+ listAIProfiles,
118
+ listAIShortcuts,
119
+ loadCatalogSources,
120
+ loadCatalogSourcesCached,
103
121
  loadOpenRouterRoutingEnv,
104
122
  normalizeOpenRouterModel,
123
+ profileConfigFromResolved,
105
124
  providerIdToEnvKeyPrefix,
106
- pruneStaleCatalogModels,
125
+ refreshAiModelsCatalog,
126
+ resolveAIProfile,
127
+ resolveCatalogCacheTtlMs,
107
128
  resolveModel,
108
- runAiModelsCatalogSync,
129
+ resolveProfileForAsk,
130
+ resolveUsageModel,
109
131
  shouldDefaultRouteViaOpenRouter,
110
132
  supportsReasoningParameter,
111
- syncAiModelsCatalog,
112
133
  vendorApiKeyEnvName,
113
134
  verifyAiModelsCatalog
114
135
  };