@tyvm/knowhow 0.0.105 → 0.0.107

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 (219) hide show
  1. package/CONFIG.md +8 -5
  2. package/package.json +3 -2
  3. package/scripts/check-model-pricing.ts +509 -0
  4. package/scripts/compare-openrouter-coverage.ts +576 -0
  5. package/src/agents/base/base.ts +169 -5
  6. package/src/agents/tools/execCommand.ts +4 -0
  7. package/src/agents/tools/executeScript/definition.ts +1 -1
  8. package/src/agents/tools/index.ts +0 -1
  9. package/src/agents/tools/list.ts +3 -43
  10. package/src/agents/tools/writeFile.ts +1 -1
  11. package/src/auth/browserLogin.ts +9 -4
  12. package/src/chat/modules/RemoteSyncModule.ts +3 -0
  13. package/src/cli.ts +31 -1
  14. package/src/clients/anthropic.ts +8 -2
  15. package/src/clients/cerebras.ts +10 -0
  16. package/src/clients/contextLimits.ts +7 -2
  17. package/src/clients/copilot.ts +23 -0
  18. package/src/clients/deepseek.ts +16 -0
  19. package/src/clients/fireworks.ts +15 -0
  20. package/src/clients/gemini.ts +59 -4
  21. package/src/clients/github.ts +16 -0
  22. package/src/clients/groq.ts +15 -0
  23. package/src/clients/http.ts +194 -6
  24. package/src/clients/index.ts +116 -4
  25. package/src/clients/llama.ts +16 -0
  26. package/src/clients/mistral.ts +16 -0
  27. package/src/clients/nvidia.ts +16 -0
  28. package/src/clients/openai.ts +53 -12
  29. package/src/clients/openrouter.ts +17 -0
  30. package/src/clients/pricing/anthropic.ts +105 -78
  31. package/src/clients/pricing/cerebras.ts +11 -0
  32. package/src/clients/pricing/copilot.ts +60 -0
  33. package/src/clients/pricing/deepseek.ts +15 -0
  34. package/src/clients/pricing/fireworks.ts +32 -0
  35. package/src/clients/pricing/github.ts +69 -0
  36. package/src/clients/pricing/google.ts +245 -206
  37. package/src/clients/pricing/groq.ts +56 -0
  38. package/src/clients/pricing/index.ts +42 -5
  39. package/src/clients/pricing/llama.ts +18 -0
  40. package/src/clients/pricing/mistral.ts +34 -0
  41. package/src/clients/pricing/models.ts +7 -236
  42. package/src/clients/pricing/nvidia.ts +102 -0
  43. package/src/clients/pricing/openai.ts +348 -171
  44. package/src/clients/pricing/openrouter.ts +36 -0
  45. package/src/clients/pricing/types.ts +83 -2
  46. package/src/clients/pricing/xai.ts +121 -65
  47. package/src/clients/types.ts +28 -1
  48. package/src/clients/xai.ts +161 -1
  49. package/src/fileSync.ts +8 -2
  50. package/src/login.ts +11 -3
  51. package/src/services/AgentSyncFs.ts +36 -12
  52. package/src/services/KnowhowClient.ts +11 -0
  53. package/src/services/LazyToolsService.ts +6 -0
  54. package/src/services/S3.ts +0 -7
  55. package/src/services/modules/index.ts +11 -2
  56. package/src/types.ts +56 -279
  57. package/src/worker.ts +174 -0
  58. package/tests/clients/AIClient.test.ts +1 -1
  59. package/tests/clients/anthropic.test.ts +202 -0
  60. package/tests/clients/pricing.test.ts +37 -0
  61. package/tests/manual/clients/completions.json +838 -226
  62. package/tests/manual/clients/completions.test.ts +46 -31
  63. package/ts_build/package.json +3 -2
  64. package/ts_build/src/agents/base/base.d.ts +18 -1
  65. package/ts_build/src/agents/base/base.js +111 -4
  66. package/ts_build/src/agents/base/base.js.map +1 -1
  67. package/ts_build/src/agents/tools/execCommand.js +3 -0
  68. package/ts_build/src/agents/tools/execCommand.js.map +1 -1
  69. package/ts_build/src/agents/tools/executeScript/definition.js +1 -1
  70. package/ts_build/src/agents/tools/executeScript/definition.js.map +1 -1
  71. package/ts_build/src/agents/tools/index.d.ts +0 -1
  72. package/ts_build/src/agents/tools/index.js +0 -1
  73. package/ts_build/src/agents/tools/index.js.map +1 -1
  74. package/ts_build/src/agents/tools/list.js +3 -38
  75. package/ts_build/src/agents/tools/list.js.map +1 -1
  76. package/ts_build/src/agents/tools/visionTool.d.ts +1 -1
  77. package/ts_build/src/agents/tools/writeFile.js +1 -1
  78. package/ts_build/src/agents/tools/writeFile.js.map +1 -1
  79. package/ts_build/src/ai.d.ts +1 -1
  80. package/ts_build/src/auth/browserLogin.d.ts +2 -1
  81. package/ts_build/src/auth/browserLogin.js +10 -3
  82. package/ts_build/src/auth/browserLogin.js.map +1 -1
  83. package/ts_build/src/chat/modules/RemoteSyncModule.js +1 -0
  84. package/ts_build/src/chat/modules/RemoteSyncModule.js.map +1 -1
  85. package/ts_build/src/cli.js +19 -0
  86. package/ts_build/src/cli.js.map +1 -1
  87. package/ts_build/src/clients/anthropic.d.ts +1 -82
  88. package/ts_build/src/clients/anthropic.js +8 -2
  89. package/ts_build/src/clients/anthropic.js.map +1 -1
  90. package/ts_build/src/clients/cerebras.d.ts +4 -0
  91. package/ts_build/src/clients/cerebras.js +14 -0
  92. package/ts_build/src/clients/cerebras.js.map +1 -0
  93. package/ts_build/src/clients/contextLimits.js +7 -2
  94. package/ts_build/src/clients/contextLimits.js.map +1 -1
  95. package/ts_build/src/clients/copilot.d.ts +4 -0
  96. package/ts_build/src/clients/copilot.js +15 -0
  97. package/ts_build/src/clients/copilot.js.map +1 -0
  98. package/ts_build/src/clients/deepseek.d.ts +4 -0
  99. package/ts_build/src/clients/deepseek.js +15 -0
  100. package/ts_build/src/clients/deepseek.js.map +1 -0
  101. package/ts_build/src/clients/fireworks.d.ts +4 -0
  102. package/ts_build/src/clients/fireworks.js +15 -0
  103. package/ts_build/src/clients/fireworks.js.map +1 -0
  104. package/ts_build/src/clients/gemini.d.ts +1 -0
  105. package/ts_build/src/clients/gemini.js +38 -2
  106. package/ts_build/src/clients/gemini.js.map +1 -1
  107. package/ts_build/src/clients/github.d.ts +4 -0
  108. package/ts_build/src/clients/github.js +15 -0
  109. package/ts_build/src/clients/github.js.map +1 -0
  110. package/ts_build/src/clients/groq.d.ts +4 -0
  111. package/ts_build/src/clients/groq.js +15 -0
  112. package/ts_build/src/clients/groq.js.map +1 -0
  113. package/ts_build/src/clients/http.d.ts +22 -1
  114. package/ts_build/src/clients/http.js +135 -7
  115. package/ts_build/src/clients/http.js.map +1 -1
  116. package/ts_build/src/clients/index.d.ts +14 -0
  117. package/ts_build/src/clients/index.js +94 -4
  118. package/ts_build/src/clients/index.js.map +1 -1
  119. package/ts_build/src/clients/llama.d.ts +4 -0
  120. package/ts_build/src/clients/llama.js +15 -0
  121. package/ts_build/src/clients/llama.js.map +1 -0
  122. package/ts_build/src/clients/mistral.d.ts +4 -0
  123. package/ts_build/src/clients/mistral.js +15 -0
  124. package/ts_build/src/clients/mistral.js.map +1 -0
  125. package/ts_build/src/clients/nvidia.d.ts +4 -0
  126. package/ts_build/src/clients/nvidia.js +15 -0
  127. package/ts_build/src/clients/nvidia.js.map +1 -0
  128. package/ts_build/src/clients/openai.d.ts +4 -206
  129. package/ts_build/src/clients/openai.js +38 -10
  130. package/ts_build/src/clients/openai.js.map +1 -1
  131. package/ts_build/src/clients/openrouter.d.ts +4 -0
  132. package/ts_build/src/clients/openrouter.js +15 -0
  133. package/ts_build/src/clients/openrouter.js.map +1 -0
  134. package/ts_build/src/clients/pricing/anthropic.d.ts +26 -78
  135. package/ts_build/src/clients/pricing/anthropic.js +75 -78
  136. package/ts_build/src/clients/pricing/anthropic.js.map +1 -1
  137. package/ts_build/src/clients/pricing/cerebras.d.ts +4 -0
  138. package/ts_build/src/clients/pricing/cerebras.js +11 -0
  139. package/ts_build/src/clients/pricing/cerebras.js.map +1 -0
  140. package/ts_build/src/clients/pricing/copilot.d.ts +5 -0
  141. package/ts_build/src/clients/pricing/copilot.js +35 -0
  142. package/ts_build/src/clients/pricing/copilot.js.map +1 -0
  143. package/ts_build/src/clients/pricing/deepseek.d.ts +5 -0
  144. package/ts_build/src/clients/pricing/deepseek.js +10 -0
  145. package/ts_build/src/clients/pricing/deepseek.js.map +1 -0
  146. package/ts_build/src/clients/pricing/fireworks.d.ts +5 -0
  147. package/ts_build/src/clients/pricing/fireworks.js +21 -0
  148. package/ts_build/src/clients/pricing/fireworks.js.map +1 -0
  149. package/ts_build/src/clients/pricing/github.d.ts +4 -0
  150. package/ts_build/src/clients/pricing/github.js +58 -0
  151. package/ts_build/src/clients/pricing/github.js.map +1 -0
  152. package/ts_build/src/clients/pricing/google.d.ts +59 -6
  153. package/ts_build/src/clients/pricing/google.js +214 -167
  154. package/ts_build/src/clients/pricing/google.js.map +1 -1
  155. package/ts_build/src/clients/pricing/groq.d.ts +5 -0
  156. package/ts_build/src/clients/pricing/groq.js +41 -0
  157. package/ts_build/src/clients/pricing/groq.js.map +1 -0
  158. package/ts_build/src/clients/pricing/index.d.ts +16 -5
  159. package/ts_build/src/clients/pricing/index.js +62 -7
  160. package/ts_build/src/clients/pricing/index.js.map +1 -1
  161. package/ts_build/src/clients/pricing/llama.d.ts +4 -0
  162. package/ts_build/src/clients/pricing/llama.js +14 -0
  163. package/ts_build/src/clients/pricing/llama.js.map +1 -0
  164. package/ts_build/src/clients/pricing/mistral.d.ts +5 -0
  165. package/ts_build/src/clients/pricing/mistral.js +23 -0
  166. package/ts_build/src/clients/pricing/mistral.js.map +1 -0
  167. package/ts_build/src/clients/pricing/models.d.ts +5 -4
  168. package/ts_build/src/clients/pricing/models.js +8 -162
  169. package/ts_build/src/clients/pricing/models.js.map +1 -1
  170. package/ts_build/src/clients/pricing/nvidia.d.ts +8 -0
  171. package/ts_build/src/clients/pricing/nvidia.js +96 -0
  172. package/ts_build/src/clients/pricing/nvidia.js.map +1 -0
  173. package/ts_build/src/clients/pricing/openai.d.ts +86 -197
  174. package/ts_build/src/clients/pricing/openai.js +295 -168
  175. package/ts_build/src/clients/pricing/openai.js.map +1 -1
  176. package/ts_build/src/clients/pricing/openrouter.d.ts +4 -0
  177. package/ts_build/src/clients/pricing/openrouter.js +29 -0
  178. package/ts_build/src/clients/pricing/openrouter.js.map +1 -0
  179. package/ts_build/src/clients/pricing/types.d.ts +27 -2
  180. package/ts_build/src/clients/pricing/types.js +46 -0
  181. package/ts_build/src/clients/pricing/types.js.map +1 -1
  182. package/ts_build/src/clients/pricing/xai.d.ts +37 -57
  183. package/ts_build/src/clients/pricing/xai.js +92 -59
  184. package/ts_build/src/clients/pricing/xai.js.map +1 -1
  185. package/ts_build/src/clients/types.d.ts +12 -1
  186. package/ts_build/src/clients/xai.d.ts +2 -62
  187. package/ts_build/src/clients/xai.js +132 -1
  188. package/ts_build/src/clients/xai.js.map +1 -1
  189. package/ts_build/src/fileSync.js +7 -2
  190. package/ts_build/src/fileSync.js.map +1 -1
  191. package/ts_build/src/login.js +8 -2
  192. package/ts_build/src/login.js.map +1 -1
  193. package/ts_build/src/services/AgentSyncFs.js +1 -0
  194. package/ts_build/src/services/AgentSyncFs.js.map +1 -1
  195. package/ts_build/src/services/KnowhowClient.d.ts +1 -0
  196. package/ts_build/src/services/KnowhowClient.js +7 -0
  197. package/ts_build/src/services/KnowhowClient.js.map +1 -1
  198. package/ts_build/src/services/LazyToolsService.d.ts +1 -0
  199. package/ts_build/src/services/LazyToolsService.js +3 -0
  200. package/ts_build/src/services/LazyToolsService.js.map +1 -1
  201. package/ts_build/src/services/S3.js +0 -7
  202. package/ts_build/src/services/S3.js.map +1 -1
  203. package/ts_build/src/services/modules/index.js +41 -1
  204. package/ts_build/src/services/modules/index.js.map +1 -1
  205. package/ts_build/src/types.d.ts +163 -124
  206. package/ts_build/src/types.js +33 -213
  207. package/ts_build/src/types.js.map +1 -1
  208. package/ts_build/src/worker.d.ts +4 -0
  209. package/ts_build/src/worker.js +140 -0
  210. package/ts_build/src/worker.js.map +1 -1
  211. package/ts_build/tests/clients/AIClient.test.js +1 -1
  212. package/ts_build/tests/clients/AIClient.test.js.map +1 -1
  213. package/ts_build/tests/clients/anthropic.test.d.ts +1 -0
  214. package/ts_build/tests/clients/anthropic.test.js +159 -0
  215. package/ts_build/tests/clients/anthropic.test.js.map +1 -0
  216. package/ts_build/tests/clients/pricing.test.js +21 -0
  217. package/ts_build/tests/clients/pricing.test.js.map +1 -1
  218. package/ts_build/tests/manual/clients/completions.test.js +27 -24
  219. package/ts_build/tests/manual/clients/completions.test.js.map +1 -1
@@ -1,3 +1,49 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.liveApi = exports.transactions = exports.audios = exports.videos = exports.images = exports.embeddings = exports.completions = void 0;
4
+ exports.completion = completion;
5
+ function makeEntries(type, ids, provider, pricing, deprecation) {
6
+ return ids.map((id) => {
7
+ const p = pricing[id] ?? {};
8
+ const deprecated = deprecation?.deprecated ?? p.deprecated;
9
+ const deprecationDate = deprecation?.deprecationDate ?? p.deprecationDate;
10
+ const limitedAvailability = deprecation?.limitedAvailability ?? p.limitedAvailability;
11
+ const replacedBy = deprecation?.replacedBy ?? p.replacedBy;
12
+ const { deprecated: _d, deprecationDate: _dd, limitedAvailability: _la, replacedBy: _rb, reasoningLevels: _rl, useResponsesApi: _ura, ...pricingOnly } = p;
13
+ return {
14
+ id,
15
+ provider,
16
+ type,
17
+ pricing: { input: 0, output: 0, ...pricingOnly },
18
+ deprecated,
19
+ deprecationDate,
20
+ limitedAvailability,
21
+ replacedBy,
22
+ };
23
+ });
24
+ }
25
+ const completions = (ids, provider, pricing, dep) => makeEntries("completion", ids, provider, pricing, dep);
26
+ exports.completions = completions;
27
+ const embeddings = (ids, provider, pricing, dep) => makeEntries("embedding", ids, provider, pricing, dep);
28
+ exports.embeddings = embeddings;
29
+ const images = (ids, provider, pricing, dep) => makeEntries("image", ids, provider, pricing, dep);
30
+ exports.images = images;
31
+ const videos = (ids, provider, pricing, dep) => makeEntries("video", ids, provider, pricing, dep);
32
+ exports.videos = videos;
33
+ const audios = (ids, provider, pricing, dep) => makeEntries("audio", ids, provider, pricing, dep);
34
+ exports.audios = audios;
35
+ const transactions = (ids, provider, pricing, dep) => makeEntries("transaction", ids, provider, pricing, dep);
36
+ exports.transactions = transactions;
37
+ const liveApi = (ids, provider, pricing, dep) => makeEntries("live", ids, provider, pricing, dep);
38
+ exports.liveApi = liveApi;
39
+ function completion(id, provider, pricing = {}, deprecation) {
40
+ return {
41
+ id, provider, type: "completion",
42
+ pricing: { input: 0, output: 0, ...pricing },
43
+ deprecated: deprecation?.deprecated,
44
+ deprecationDate: deprecation?.deprecationDate,
45
+ limitedAvailability: deprecation?.limitedAvailability,
46
+ replacedBy: deprecation?.replacedBy,
47
+ };
48
+ }
3
49
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/clients/pricing/types.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/clients/pricing/types.ts"],"names":[],"mappings":"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"}
@@ -1,60 +1,40 @@
1
- import { Models } from "../../types";
2
- import { ModelPricing } from "./types";
3
- export declare const XaiTextPricing: {
4
- [Models.xai.Grok_4_20_Reasoning]: {
5
- input: number;
6
- cache_hit: number;
7
- output: number;
8
- };
9
- [Models.xai.Grok_4_20_NonReasoning]: {
10
- input: number;
11
- cache_hit: number;
12
- output: number;
13
- };
14
- [Models.xai.Grok4_1_Fast_NonReasoning]: {
15
- input: number;
16
- cache_hit: number;
17
- output: number;
18
- };
19
- [Models.xai.Grok4_1_Fast_Reasoning]: {
20
- input: number;
21
- cache_hit: number;
22
- output: number;
23
- };
24
- [Models.xai.GrokCodeFast]: {
25
- input: number;
26
- cache_hit: number;
27
- output: number;
28
- };
29
- [Models.xai.Grok4]: {
30
- input: number;
31
- output: number;
32
- };
33
- [Models.xai.Grok3Beta]: {
34
- input: number;
35
- output: number;
36
- };
37
- [Models.xai.Grok3MiniBeta]: {
38
- input: number;
39
- output: number;
40
- };
41
- [Models.xai.Grok3FastBeta]: {
42
- input: number;
43
- output: number;
44
- };
45
- [Models.xai.Grok3MiniFastBeta]: {
46
- input: number;
47
- output: number;
48
- };
49
- [Models.xai.Grok21212]: {
50
- input: number;
51
- output: number;
52
- };
53
- [Models.xai.Grok2Vision1212]: {
54
- input: number;
55
- output: number;
56
- image_input: number;
57
- };
1
+ import { ModelCatalogEntry, ModelPricing } from "./types";
2
+ export declare const XaiModels: {
3
+ readonly Grok_4_20_Reasoning: "grok-4.20-0309-reasoning";
4
+ readonly Grok_4_20_NonReasoning: "grok-4.20-0309-non-reasoning";
5
+ readonly Grok_4_20_MultiAgent: "grok-4.20-multi-agent-0309";
6
+ readonly Grok4_1_Fast_Reasoning: "grok-4-1-fast-reasoning";
7
+ readonly Grok4_1_Fast_NonReasoning: "grok-4-1-fast-non-reasoning";
8
+ readonly GrokCodeFast: "grok-code-fast-1";
9
+ readonly Grok4: "grok-4-0709";
10
+ readonly Grok3Beta: "grok-3-beta";
11
+ readonly Grok3MiniBeta: "grok-3-mini-beta";
12
+ readonly Grok3FastBeta: "grok-3-fast-beta";
13
+ readonly Grok3MiniFastBeta: "grok-3-mini-fast-beta";
14
+ readonly Grok2Latest: "grok-2-latest";
15
+ readonly Grok2VisionLatest: "grok-2-vision-latest";
16
+ readonly Grok3Latest: "grok-3-latest";
17
+ readonly Grok3FastLatest: "grok-3-fast-latest";
18
+ readonly Grok3MiniLatest: "grok-3-mini-latest";
19
+ readonly Grok3MiniFastLatest: "grok-3-mini-fast-latest";
20
+ readonly GrokBeta: "grok-beta";
21
+ readonly GrokVisionBeta: "grok-vision-beta";
22
+ readonly Grok4_1_Fast: "grok-4-1-fast";
23
+ readonly Grok4Fast: "grok-4-fast";
24
+ readonly Grok4FastNonReasoning: "grok-4-fast-non-reasoning";
25
+ readonly Grok21212: "grok-2-1212";
26
+ readonly Grok2Vision1212: "grok-2-vision-1212";
27
+ readonly GrokImagineImage: "grok-imagine-image";
28
+ readonly GrokImagineVideo: "grok-imagine-video";
29
+ readonly Grok2Image1212: "grok-2-image-1212";
58
30
  };
31
+ export declare const XaiTextModels: string[];
32
+ export declare const XaiResponsesOnlyModels: string[];
33
+ export declare const XaiReasoningModels: string[];
34
+ export declare const XaiDeprecatedTextModels: string[];
35
+ export declare const XaiImageModels: string[];
36
+ export declare const XaiVideoModels: string[];
37
+ export declare const XaiTextPricing: Record<string, ModelPricing>;
59
38
  export declare const XaiImagePricing: Record<string, ModelPricing>;
60
39
  export declare const XaiVideoPricing: Record<string, ModelPricing>;
40
+ export declare const XAI_MODEL_CATALOG: ModelCatalogEntry[];
@@ -1,69 +1,102 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.XaiVideoPricing = exports.XaiImagePricing = exports.XaiTextPricing = void 0;
4
- const types_1 = require("../../types");
3
+ exports.XAI_MODEL_CATALOG = exports.XaiVideoPricing = exports.XaiImagePricing = exports.XaiTextPricing = exports.XaiVideoModels = exports.XaiImageModels = exports.XaiDeprecatedTextModels = exports.XaiReasoningModels = exports.XaiResponsesOnlyModels = exports.XaiTextModels = exports.XaiModels = void 0;
4
+ const types_1 = require("./types");
5
+ exports.XaiModels = {
6
+ Grok_4_20_Reasoning: "grok-4.20-0309-reasoning",
7
+ Grok_4_20_NonReasoning: "grok-4.20-0309-non-reasoning",
8
+ Grok_4_20_MultiAgent: "grok-4.20-multi-agent-0309",
9
+ Grok4_1_Fast_Reasoning: "grok-4-1-fast-reasoning",
10
+ Grok4_1_Fast_NonReasoning: "grok-4-1-fast-non-reasoning",
11
+ GrokCodeFast: "grok-code-fast-1",
12
+ Grok4: "grok-4-0709",
13
+ Grok3Beta: "grok-3-beta",
14
+ Grok3MiniBeta: "grok-3-mini-beta",
15
+ Grok3FastBeta: "grok-3-fast-beta",
16
+ Grok3MiniFastBeta: "grok-3-mini-fast-beta",
17
+ Grok2Latest: "grok-2-latest",
18
+ Grok2VisionLatest: "grok-2-vision-latest",
19
+ Grok3Latest: "grok-3-latest",
20
+ Grok3FastLatest: "grok-3-fast-latest",
21
+ Grok3MiniLatest: "grok-3-mini-latest",
22
+ Grok3MiniFastLatest: "grok-3-mini-fast-latest",
23
+ GrokBeta: "grok-beta",
24
+ GrokVisionBeta: "grok-vision-beta",
25
+ Grok4_1_Fast: "grok-4-1-fast",
26
+ Grok4Fast: "grok-4-fast",
27
+ Grok4FastNonReasoning: "grok-4-fast-non-reasoning",
28
+ Grok21212: "grok-2-1212",
29
+ Grok2Vision1212: "grok-2-vision-1212",
30
+ GrokImagineImage: "grok-imagine-image",
31
+ GrokImagineVideo: "grok-imagine-video",
32
+ Grok2Image1212: "grok-2-image-1212",
33
+ };
34
+ exports.XaiTextModels = [
35
+ exports.XaiModels.Grok_4_20_Reasoning, exports.XaiModels.Grok_4_20_NonReasoning,
36
+ exports.XaiModels.Grok_4_20_MultiAgent,
37
+ exports.XaiModels.Grok4_1_Fast_Reasoning, exports.XaiModels.Grok4_1_Fast_NonReasoning,
38
+ exports.XaiModels.GrokCodeFast, exports.XaiModels.Grok4,
39
+ exports.XaiModels.Grok3Beta, exports.XaiModels.Grok3MiniBeta, exports.XaiModels.Grok3FastBeta, exports.XaiModels.Grok3MiniFastBeta,
40
+ ];
41
+ exports.XaiResponsesOnlyModels = [
42
+ exports.XaiModels.Grok_4_20_Reasoning,
43
+ exports.XaiModels.Grok_4_20_NonReasoning,
44
+ exports.XaiModels.Grok_4_20_MultiAgent,
45
+ exports.XaiModels.Grok4_1_Fast_Reasoning,
46
+ exports.XaiModels.Grok4_1_Fast_NonReasoning,
47
+ ];
48
+ exports.XaiReasoningModels = [
49
+ exports.XaiModels.Grok_4_20_MultiAgent,
50
+ exports.XaiModels.Grok3MiniBeta,
51
+ exports.XaiModels.Grok3MiniFastBeta,
52
+ ];
53
+ exports.XaiDeprecatedTextModels = [
54
+ exports.XaiModels.Grok21212, exports.XaiModels.Grok2Vision1212,
55
+ exports.XaiModels.Grok2Latest, exports.XaiModels.Grok2VisionLatest,
56
+ exports.XaiModels.Grok3Latest, exports.XaiModels.Grok3FastLatest,
57
+ exports.XaiModels.Grok3MiniLatest, exports.XaiModels.Grok3MiniFastLatest,
58
+ exports.XaiModels.GrokBeta, exports.XaiModels.GrokVisionBeta,
59
+ exports.XaiModels.Grok4_1_Fast, exports.XaiModels.Grok4Fast, exports.XaiModels.Grok4FastNonReasoning,
60
+ ];
61
+ exports.XaiImageModels = [exports.XaiModels.GrokImagineImage, exports.XaiModels.Grok2Image1212];
62
+ exports.XaiVideoModels = [exports.XaiModels.GrokImagineVideo];
5
63
  exports.XaiTextPricing = {
6
- [types_1.Models.xai.Grok_4_20_Reasoning]: {
7
- input: 2.0,
8
- cache_hit: 0.20,
9
- output: 6.0,
10
- },
11
- [types_1.Models.xai.Grok_4_20_NonReasoning]: {
12
- input: 2.0,
13
- cache_hit: 0.20,
14
- output: 6.0,
15
- },
16
- [types_1.Models.xai.Grok4_1_Fast_NonReasoning]: {
17
- input: 0.2,
18
- cache_hit: 0.05,
19
- output: 0.5,
20
- },
21
- [types_1.Models.xai.Grok4_1_Fast_Reasoning]: {
22
- input: 0.2,
23
- cache_hit: 0.05,
24
- output: 0.5,
25
- },
26
- [types_1.Models.xai.GrokCodeFast]: {
27
- input: 0.2,
28
- cache_hit: 0.02,
29
- output: 1.5,
30
- },
31
- [types_1.Models.xai.Grok4]: {
32
- input: 3.0,
33
- output: 15.0,
34
- },
35
- [types_1.Models.xai.Grok3Beta]: {
36
- input: 3.0,
37
- output: 15.0,
38
- },
39
- [types_1.Models.xai.Grok3MiniBeta]: {
40
- input: 0.3,
41
- output: 0.5,
42
- },
43
- [types_1.Models.xai.Grok3FastBeta]: {
44
- input: 5.0,
45
- output: 25.0,
46
- },
47
- [types_1.Models.xai.Grok3MiniFastBeta]: {
48
- input: 0.6,
49
- output: 4.0,
50
- },
51
- [types_1.Models.xai.Grok21212]: {
52
- input: 2.0,
53
- output: 10.0,
54
- },
55
- [types_1.Models.xai.Grok2Vision1212]: {
56
- input: 2.0,
57
- output: 10.0,
58
- image_input: 2.0,
59
- },
64
+ [exports.XaiModels.Grok_4_20_Reasoning]: { input: 2.0, cache_hit: 0.20, output: 6.0, useResponsesApi: true },
65
+ [exports.XaiModels.Grok_4_20_NonReasoning]: { input: 2.0, cache_hit: 0.20, output: 6.0, useResponsesApi: true },
66
+ [exports.XaiModels.Grok_4_20_MultiAgent]: { input: 2.0, cache_hit: 0.20, output: 6.0, reasoningLevels: ["low", "medium", "high", "xhigh"], useResponsesApi: true },
67
+ [exports.XaiModels.Grok4_1_Fast_Reasoning]: { input: 0.2, cache_hit: 0.05, output: 0.5, useResponsesApi: true },
68
+ [exports.XaiModels.Grok4_1_Fast_NonReasoning]: { input: 0.2, cache_hit: 0.05, output: 0.5, useResponsesApi: true },
69
+ [exports.XaiModels.GrokCodeFast]: { input: 0.2, cache_hit: 0.02, output: 1.5 },
70
+ [exports.XaiModels.Grok4]: { input: 3.0, output: 15.0 },
71
+ [exports.XaiModels.Grok3Beta]: { input: 3.0, output: 15.0 },
72
+ [exports.XaiModels.Grok3MiniBeta]: { input: 0.3, output: 0.5 },
73
+ [exports.XaiModels.Grok3FastBeta]: { input: 5.0, output: 25.0 },
74
+ [exports.XaiModels.Grok3MiniFastBeta]: { input: 0.6, output: 4.0 },
75
+ [exports.XaiModels.Grok21212]: { input: 2.0, output: 10.0, deprecated: true },
76
+ [exports.XaiModels.Grok2Vision1212]: { input: 2.0, output: 10.0, deprecated: true },
77
+ [exports.XaiModels.Grok2Latest]: { input: 2.0, output: 10.0, deprecated: true },
78
+ [exports.XaiModels.Grok2VisionLatest]: { input: 2.0, output: 10.0, deprecated: true },
79
+ [exports.XaiModels.Grok3Latest]: { input: 3.0, output: 15.0, deprecated: true },
80
+ [exports.XaiModels.Grok3FastLatest]: { input: 5.0, output: 25.0, deprecated: true },
81
+ [exports.XaiModels.Grok3MiniLatest]: { input: 0.3, output: 0.5, deprecated: true },
82
+ [exports.XaiModels.Grok3MiniFastLatest]: { input: 0.6, output: 4.0, deprecated: true },
83
+ [exports.XaiModels.GrokBeta]: { input: 5.0, output: 15.0, deprecated: true },
84
+ [exports.XaiModels.GrokVisionBeta]: { input: 5.0, output: 15.0, deprecated: true },
85
+ [exports.XaiModels.Grok4_1_Fast]: { input: 0.2, output: 0.5, deprecated: true },
86
+ [exports.XaiModels.Grok4Fast]: { input: 0.2, output: 0.5, deprecated: true },
87
+ [exports.XaiModels.Grok4FastNonReasoning]: { input: 0.2, output: 0.5, deprecated: true },
60
88
  };
61
89
  exports.XaiImagePricing = {
62
90
  "grok-imagine-image-pro": { image_generation: 0.07 },
63
- "grok-imagine-image": { image_generation: 0.02 },
64
- "grok-2-image-1212": { image_generation: 0.07 },
91
+ [exports.XaiModels.GrokImagineImage]: { image_generation: 0.02 },
92
+ [exports.XaiModels.Grok2Image1212]: { image_generation: 0.07 },
65
93
  };
66
94
  exports.XaiVideoPricing = {
67
- "grok-imagine-video": { video_generation: 0.05 },
95
+ [exports.XaiModels.GrokImagineVideo]: { video_generation: 0.05 },
68
96
  };
97
+ exports.XAI_MODEL_CATALOG = [
98
+ ...(0, types_1.completions)([...exports.XaiTextModels, ...exports.XaiDeprecatedTextModels], "xai", exports.XaiTextPricing),
99
+ ...(0, types_1.images)(exports.XaiImageModels, "xai", exports.XaiImagePricing),
100
+ ...(0, types_1.videos)(exports.XaiVideoModels, "xai", exports.XaiVideoPricing),
101
+ ];
69
102
  //# sourceMappingURL=xai.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"xai.js","sourceRoot":"","sources":["../../../../src/clients/pricing/xai.ts"],"names":[],"mappings":";;;AAAA,uCAAqC;AAGxB,QAAA,cAAc,GAAG;IAE5B,CAAC,cAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAE;QAChC,KAAK,EAAE,GAAG;QACV,SAAS,EAAE,IAAI;QACf,MAAM,EAAE,GAAG;KACZ;IACD,CAAC,cAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC,EAAE;QACnC,KAAK,EAAE,GAAG;QACV,SAAS,EAAE,IAAI;QACf,MAAM,EAAE,GAAG;KACZ;IACD,CAAC,cAAM,CAAC,GAAG,CAAC,yBAAyB,CAAC,EAAE;QACtC,KAAK,EAAE,GAAG;QACV,SAAS,EAAE,IAAI;QACf,MAAM,EAAE,GAAG;KACZ;IACD,CAAC,cAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC,EAAE;QACnC,KAAK,EAAE,GAAG;QACV,SAAS,EAAE,IAAI;QACf,MAAM,EAAE,GAAG;KACZ;IACD,CAAC,cAAM,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE;QACzB,KAAK,EAAE,GAAG;QACV,SAAS,EAAE,IAAI;QACf,MAAM,EAAE,GAAG;KACZ;IACD,CAAC,cAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;QAClB,KAAK,EAAE,GAAG;QACV,MAAM,EAAE,IAAI;KACb;IACD,CAAC,cAAM,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;QACtB,KAAK,EAAE,GAAG;QACV,MAAM,EAAE,IAAI;KACb;IACD,CAAC,cAAM,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE;QAC1B,KAAK,EAAE,GAAG;QACV,MAAM,EAAE,GAAG;KACZ;IACD,CAAC,cAAM,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE;QAC1B,KAAK,EAAE,GAAG;QACV,MAAM,EAAE,IAAI;KACb;IACD,CAAC,cAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE;QAC9B,KAAK,EAAE,GAAG;QACV,MAAM,EAAE,GAAG;KACZ;IACD,CAAC,cAAM,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;QACtB,KAAK,EAAE,GAAG;QACV,MAAM,EAAE,IAAI;KACb;IACD,CAAC,cAAM,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE;QAC5B,KAAK,EAAE,GAAG;QACV,MAAM,EAAE,IAAI;QACZ,WAAW,EAAE,GAAG;KACjB;CACF,CAAC;AAIW,QAAA,eAAe,GAAiC;IAC3D,wBAAwB,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE;IACpD,oBAAoB,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE;IAChD,mBAAmB,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE;CAChD,CAAC;AAIW,QAAA,eAAe,GAAiC;IAC3D,oBAAoB,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE;CACjD,CAAC"}
1
+ {"version":3,"file":"xai.js","sourceRoot":"","sources":["../../../../src/clients/pricing/xai.ts"],"names":[],"mappings":"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"}
@@ -65,13 +65,24 @@ export interface CompletionOptions {
65
65
  tools?: Tool[];
66
66
  tool_choice?: "auto" | "none";
67
67
  max_tokens?: number;
68
+ reasoning_effort?: "low" | "medium" | "high";
69
+ }
70
+ export interface TokenUsage {
71
+ prompt_tokens: number;
72
+ completion_tokens: number;
73
+ total_tokens?: number;
74
+ prompt_tokens_details?: {
75
+ cached_tokens: number;
76
+ };
77
+ cache_creation_input_tokens?: number;
78
+ cache_read_input_tokens?: number;
68
79
  }
69
80
  export interface CompletionResponse {
70
81
  choices: {
71
82
  message: OutputMessage;
72
83
  }[];
73
84
  model: string;
74
- usage: any;
85
+ usage: TokenUsage | undefined;
75
86
  usd_cost?: number;
76
87
  }
77
88
  export interface EmbeddingOptions {
@@ -1,6 +1,5 @@
1
1
  import OpenAI from "openai";
2
2
  import { GenericClient, CompletionOptions, CompletionResponse, EmbeddingOptions, EmbeddingResponse, AudioTranscriptionOptions, AudioTranscriptionResponse, AudioGenerationOptions, AudioGenerationResponse, ImageGenerationOptions, ImageGenerationResponse, VideoGenerationOptions, VideoGenerationResponse, VideoStatusOptions, VideoStatusResponse, FileUploadOptions, FileUploadResponse, FileDownloadOptions, FileDownloadResponse } from "./types";
3
- import { Models } from "../types";
4
3
  import { ModelModality } from "./types";
5
4
  export declare class GenericXAIClient implements GenericClient {
6
5
  private client;
@@ -8,67 +7,8 @@ export declare class GenericXAIClient implements GenericClient {
8
7
  constructor(apiKey?: string);
9
8
  setKey(apiKey: string): void;
10
9
  createChatCompletion(options: CompletionOptions): Promise<CompletionResponse>;
11
- pricesPerMillion(): {
12
- [Models.xai.Grok_4_20_Reasoning]: {
13
- input: number;
14
- cache_hit: number;
15
- output: number;
16
- };
17
- [Models.xai.Grok_4_20_NonReasoning]: {
18
- input: number;
19
- cache_hit: number;
20
- output: number;
21
- };
22
- [Models.xai.Grok4_1_Fast_NonReasoning]: {
23
- input: number;
24
- cache_hit: number;
25
- output: number;
26
- };
27
- [Models.xai.Grok4_1_Fast_Reasoning]: {
28
- input: number;
29
- cache_hit: number;
30
- output: number;
31
- };
32
- [Models.xai.GrokCodeFast]: {
33
- input: number;
34
- cache_hit: number;
35
- output: number;
36
- };
37
- [Models.xai.Grok4]: {
38
- input: number;
39
- output: number;
40
- };
41
- [Models.
42
- xai.Grok3Beta]: {
43
- input: number;
44
- output: number;
45
- };
46
- [Models
47
- .
48
- xai.Grok3MiniBeta]: {
49
- input: number;
50
- output: number;
51
- };
52
- [Models.xai.Grok3FastBeta]: {
53
- input: number;
54
- output: number;
55
- };
56
- [Models.xai.Grok3MiniFastBeta]: {
57
- input: number;
58
- output: number;
59
- };
60
- [Models.xai
61
- .
62
- Grok21212]: {
63
- input: number;
64
- output: number;
65
- };
66
- [Models.xai.Grok2Vision1212]: {
67
- input: number;
68
- output: number;
69
- image_input: number;
70
- };
71
- };
10
+ createChatResponse(options: CompletionOptions): Promise<CompletionResponse>;
11
+ pricesPerMillion(): Record<string, import("./pricing").CatalogModelPricing>;
72
12
  calculateCost(model: string, usage: OpenAI.ChatCompletion["usage"]): number | undefined;
73
13
  getModels(modality?: ModelModality): Promise<{
74
14
  id: string;
@@ -8,6 +8,7 @@ const openai_1 = __importDefault(require("openai"));
8
8
  const pricing_1 = require("./pricing");
9
9
  const contextLimits_1 = require("./contextLimits");
10
10
  const types_1 = require("../types");
11
+ const xai_1 = require("./pricing/xai");
11
12
  class GenericXAIClient {
12
13
  client;
13
14
  apiKey;
@@ -27,6 +28,9 @@ class GenericXAIClient {
27
28
  });
28
29
  }
29
30
  async createChatCompletion(options) {
31
+ if (xai_1.XaiResponsesOnlyModels.includes(options.model)) {
32
+ return this.createChatResponse(options);
33
+ }
30
34
  const xaiMessages = options.messages.map((msg) => {
31
35
  if (msg.role === "tool") {
32
36
  return {
@@ -42,6 +46,9 @@ class GenericXAIClient {
42
46
  model: options.model,
43
47
  messages: xaiMessages,
44
48
  max_tokens: options.max_tokens,
49
+ ...(xai_1.XaiReasoningModels.includes(options.model) && options.reasoning_effort && {
50
+ reasoning_effort: options.reasoning_effort,
51
+ }),
45
52
  ...(options.tools && {
46
53
  tools: options.tools,
47
54
  tool_choice: "auto",
@@ -59,7 +66,131 @@ class GenericXAIClient {
59
66
  },
60
67
  })),
61
68
  model: options.model,
62
- usage: response.usage,
69
+ usage: response.usage ? {
70
+ prompt_tokens: response.usage.prompt_tokens ?? 0,
71
+ completion_tokens: response.usage.completion_tokens ?? 0,
72
+ total_tokens: response.usage.total_tokens,
73
+ prompt_tokens_details: {
74
+ cached_tokens: response.usage.prompt_tokens_details?.cached_tokens ?? 0,
75
+ },
76
+ } : undefined,
77
+ usd_cost: usdCost,
78
+ };
79
+ }
80
+ async createChatResponse(options) {
81
+ const apiKey = this.apiKey || process.env.XAI_API_KEY;
82
+ if (!apiKey) {
83
+ throw new Error("XAI API key not set");
84
+ }
85
+ const systemMessages = options.messages.filter((m) => m.role === "system");
86
+ const nonSystemMessages = options.messages.filter((m) => m.role !== "system");
87
+ const instructions = systemMessages
88
+ .map((m) => (typeof m.content === "string" ? m.content : ""))
89
+ .join("\n")
90
+ .trim() || undefined;
91
+ const input = nonSystemMessages.map((msg) => {
92
+ if (msg.role === "tool") {
93
+ return {
94
+ type: "function_call_output",
95
+ call_id: msg.tool_call_id,
96
+ output: typeof msg.content === "string" ? msg.content : JSON.stringify(msg.content),
97
+ };
98
+ }
99
+ if (msg.role === "assistant" && msg.tool_calls?.length) {
100
+ return msg.tool_calls.map((tc) => ({
101
+ type: "function_call",
102
+ id: tc.id.startsWith("fc") ? tc.id : `fc_${tc.id}`,
103
+ call_id: tc.id,
104
+ name: tc.function.name,
105
+ arguments: tc.function.arguments,
106
+ }));
107
+ }
108
+ return {
109
+ role: msg.role,
110
+ content: typeof msg.content === "string" ? msg.content : JSON.stringify(msg.content),
111
+ };
112
+ }).flat();
113
+ const tools = options.tools?.map((tool) => ({
114
+ type: "function",
115
+ name: tool.function.name,
116
+ description: tool.function.description,
117
+ parameters: tool.function.parameters,
118
+ strict: false,
119
+ }));
120
+ const pricing = pricing_1.XaiTextPricing[options.model];
121
+ const supportedLevels = pricing?.reasoningLevels;
122
+ let reasoningEffort = options.reasoning_effort;
123
+ if (supportedLevels?.length) {
124
+ if (!reasoningEffort || !supportedLevels.includes(reasoningEffort)) {
125
+ reasoningEffort = supportedLevels[0];
126
+ }
127
+ }
128
+ const body = {
129
+ model: options.model,
130
+ input,
131
+ ...(instructions && { instructions }),
132
+ ...(options.max_tokens && { max_output_tokens: Math.max(options.max_tokens, 16_000) }),
133
+ ...(reasoningEffort && { reasoning: { effort: reasoningEffort } }),
134
+ ...(tools?.length && { tools, tool_choice: "auto" }),
135
+ store: false,
136
+ };
137
+ const response = await fetch("https://api.x.ai/v1/responses", {
138
+ method: "POST",
139
+ headers: {
140
+ "Content-Type": "application/json",
141
+ Authorization: `Bearer ${apiKey}`,
142
+ },
143
+ body: JSON.stringify(body),
144
+ });
145
+ if (!response.ok) {
146
+ const errorText = await response.text();
147
+ throw new Error(`XAI Responses API error: ${response.status} ${errorText}`);
148
+ }
149
+ const data = await response.json();
150
+ const usage = data.usage
151
+ ? {
152
+ prompt_tokens: data.usage.input_tokens,
153
+ completion_tokens: data.usage.output_tokens,
154
+ total_tokens: data.usage.input_tokens + data.usage.output_tokens,
155
+ prompt_tokens_details: {
156
+ cached_tokens: data.usage.input_tokens_details?.cached_tokens ?? 0,
157
+ },
158
+ }
159
+ : undefined;
160
+ const usdCost = usage ? this.calculateCost(options.model, usage) : undefined;
161
+ let textContent = null;
162
+ const toolCalls = [];
163
+ for (const item of data.output ?? []) {
164
+ if (item.type === "message") {
165
+ for (const part of item.content ?? []) {
166
+ if (part.type === "output_text") {
167
+ textContent = (textContent ?? "") + part.text;
168
+ }
169
+ }
170
+ }
171
+ else if (item.type === "function_call") {
172
+ toolCalls.push({
173
+ id: item.call_id,
174
+ type: "function",
175
+ function: {
176
+ name: item.name,
177
+ arguments: item.arguments,
178
+ },
179
+ });
180
+ }
181
+ }
182
+ return {
183
+ choices: [
184
+ {
185
+ message: {
186
+ role: "assistant",
187
+ content: textContent,
188
+ ...(toolCalls.length > 0 && { tool_calls: toolCalls }),
189
+ },
190
+ },
191
+ ],
192
+ model: options.model,
193
+ usage,
63
194
  usd_cost: usdCost,
64
195
  };
65
196
  }