@funkai/models 0.3.0 → 0.3.2

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 (83) hide show
  1. package/.turbo/turbo-build.log +34 -33
  2. package/CHANGELOG.md +36 -0
  3. package/dist/alibaba-B6q4Ng1R.mjs.map +1 -1
  4. package/dist/amazon-bedrock-Cv9AHQBH.mjs.map +1 -1
  5. package/dist/anthropic-yB7ST97_.mjs.map +1 -1
  6. package/dist/cerebras-COfl7XM-.mjs.map +1 -1
  7. package/dist/cohere-B7TgO0hT.mjs.map +1 -1
  8. package/dist/deepinfra-B0GxUwCG.mjs.map +1 -1
  9. package/dist/deepseek-D64ZEsvS.mjs.map +1 -1
  10. package/dist/fireworks-ai-DJYvdAi_.mjs.map +1 -1
  11. package/dist/google-BypRl349.mjs.map +1 -1
  12. package/dist/google-vertex-DbS-zTGD.mjs.map +1 -1
  13. package/dist/groq-ei_PerYi.mjs.map +1 -1
  14. package/dist/huggingface-DaM1EeLP.mjs.map +1 -1
  15. package/dist/inception-CspEzqNV.mjs.map +1 -1
  16. package/dist/index.d.mts +1 -1
  17. package/dist/index.d.mts.map +1 -1
  18. package/dist/index.mjs +14 -2
  19. package/dist/index.mjs.map +1 -1
  20. package/dist/llama-Cf3-koap.mjs.map +1 -1
  21. package/dist/mistral-BI9MdAO4.mjs.map +1 -1
  22. package/dist/nvidia-COHacuoa.mjs.map +1 -1
  23. package/dist/openai-C0nCfZUq.mjs.map +1 -1
  24. package/dist/openrouter-DSFzxKQb.mjs.map +1 -1
  25. package/dist/perplexity-zeZ2WlBU.mjs.map +1 -1
  26. package/dist/providers/alibaba.d.mts +1 -1
  27. package/dist/providers/amazon-bedrock.d.mts +1 -1
  28. package/dist/providers/anthropic.d.mts +1 -1
  29. package/dist/providers/cerebras.d.mts +1 -1
  30. package/dist/providers/cohere.d.mts +1 -1
  31. package/dist/providers/deepinfra.d.mts +1 -1
  32. package/dist/providers/deepseek.d.mts +1 -1
  33. package/dist/providers/fireworks-ai.d.mts +1 -1
  34. package/dist/providers/google-vertex.d.mts +1 -1
  35. package/dist/providers/google.d.mts +1 -1
  36. package/dist/providers/groq.d.mts +1 -1
  37. package/dist/providers/huggingface.d.mts +1 -1
  38. package/dist/providers/inception.d.mts +1 -1
  39. package/dist/providers/llama.d.mts +1 -1
  40. package/dist/providers/mistral.d.mts +1 -1
  41. package/dist/providers/nvidia.d.mts +1 -1
  42. package/dist/providers/openai.d.mts +1 -1
  43. package/dist/providers/openrouter.d.mts +1 -1
  44. package/dist/providers/perplexity.d.mts +1 -1
  45. package/dist/providers/togetherai.d.mts +1 -1
  46. package/dist/providers/xai.d.mts +1 -1
  47. package/dist/togetherai-BvcxUfPE.mjs.map +1 -1
  48. package/dist/{types-DjdaZckF.d.mts → types-DIzolT_s.d.mts} +61 -21
  49. package/dist/types-DIzolT_s.d.mts.map +1 -0
  50. package/dist/xai-fSuAkQJo.mjs.map +1 -1
  51. package/package.json +6 -3
  52. package/scripts/generate-models.ts +147 -56
  53. package/src/catalog/index.test.ts +8 -8
  54. package/src/catalog/index.ts +5 -1
  55. package/src/catalog/providers/alibaba.ts +91 -91
  56. package/src/catalog/providers/amazon-bedrock.ts +205 -185
  57. package/src/catalog/providers/anthropic.ts +87 -62
  58. package/src/catalog/providers/cerebras.ts +9 -9
  59. package/src/catalog/providers/cohere.ts +16 -16
  60. package/src/catalog/providers/deepinfra.ts +71 -71
  61. package/src/catalog/providers/deepseek.ts +3 -3
  62. package/src/catalog/providers/fireworks-ai.ts +36 -36
  63. package/src/catalog/providers/google-vertex.ts +62 -62
  64. package/src/catalog/providers/google.ts +69 -69
  65. package/src/catalog/providers/groq.ts +24 -24
  66. package/src/catalog/providers/huggingface.ts +52 -52
  67. package/src/catalog/providers/inception.ts +9 -9
  68. package/src/catalog/providers/index.ts +1 -0
  69. package/src/catalog/providers/llama.ts +7 -7
  70. package/src/catalog/providers/mistral.ts +60 -60
  71. package/src/catalog/providers/nvidia.ts +84 -84
  72. package/src/catalog/providers/openai.ts +115 -115
  73. package/src/catalog/providers/openrouter.ts +448 -433
  74. package/src/catalog/providers/perplexity.ts +9 -9
  75. package/src/catalog/providers/togetherai.ts +47 -47
  76. package/src/catalog/providers/xai.ts +49 -49
  77. package/src/catalog/types.ts +60 -20
  78. package/src/cost/calculate.test.ts +11 -11
  79. package/src/provider/registry.ts +21 -2
  80. package/src/provider/types.ts +1 -1
  81. package/tsconfig.json +2 -1
  82. package/tsdown.config.ts +7 -3
  83. package/dist/types-DjdaZckF.d.mts.map +0 -1
@@ -14,23 +14,23 @@ const ZERO_USAGE: TokenUsage = {
14
14
  };
15
15
 
16
16
  const BASIC_PRICING: ModelPricing = {
17
- input: 0.000002,
18
- output: 0.000008,
17
+ input: 0.000_002,
18
+ output: 0.000_008,
19
19
  };
20
20
 
21
21
  const FULL_PRICING: ModelPricing = {
22
- input: 0.000002,
23
- output: 0.000008,
24
- cacheRead: 0.0000005,
25
- cacheWrite: 0.000001,
22
+ input: 0.000_002,
23
+ output: 0.000_008,
24
+ cacheRead: 0.000_000_5,
25
+ cacheWrite: 0.000_001,
26
26
  };
27
27
 
28
28
  const REASONING_PRICING: ModelPricing = {
29
- input: 0.000002,
30
- output: 0.000008,
31
- cacheRead: 0.0000005,
32
- cacheWrite: 0.000001,
33
- reasoning: 0.000012,
29
+ input: 0.000_002,
30
+ output: 0.000_008,
31
+ cacheRead: 0.000_000_5,
32
+ cacheWrite: 0.000_001,
33
+ reasoning: 0.000_012,
34
34
  };
35
35
 
36
36
  describe("calculateCost()", () => {
@@ -3,6 +3,14 @@ import { createProviderRegistry as baseCreateProviderRegistry } from "ai";
3
3
  import type { ModelId } from "@/catalog/index.js";
4
4
  import type { LanguageModel } from "@/provider/types.js";
5
5
 
6
+ /** @private */
7
+ function errorMessage(error: unknown): string {
8
+ if (error instanceof Error) {
9
+ return error.message;
10
+ }
11
+ return String(error);
12
+ }
13
+
6
14
  /**
7
15
  * Extract the provider type accepted by the AI SDK's `createProviderRegistry`.
8
16
  *
@@ -86,8 +94,19 @@ export function createProviderRegistry(config: ProviderRegistryConfig): Provider
86
94
  if (!modelId.trim()) {
87
95
  throw new Error("Cannot resolve model: model ID is empty");
88
96
  }
97
+ if (!modelId.includes("/")) {
98
+ throw new Error(
99
+ `Invalid model ID "${modelId}": expected "provider/model" format (e.g. "openai/gpt-4.1")`,
100
+ );
101
+ }
89
102
  // Cast needed: AI SDK overloads expect `provider/model` template literal,
90
- // but our ModelId is a branded string union. The runtime validates the format.
91
- return inner.languageModel(modelId as `${string}/${string}`) as LanguageModel;
103
+ // But our ModelId is a branded string union. The runtime validates the format.
104
+ try {
105
+ return inner.languageModel(modelId as `${string}/${string}`) as LanguageModel;
106
+ } catch (error) {
107
+ throw new Error(`Failed to resolve model "${modelId}": ${errorMessage(error)}`, {
108
+ cause: error,
109
+ });
110
+ }
92
111
  };
93
112
  }
@@ -1,4 +1,4 @@
1
- import { type LanguageModel as BaseLanguageModel } from "ai";
1
+ import type { LanguageModel as BaseLanguageModel } from "ai";
2
2
 
3
3
  /**
4
4
  * AI SDK language model instance (v3 specification).
package/tsconfig.json CHANGED
@@ -18,7 +18,8 @@
18
18
  "rootDir": ".",
19
19
  "paths": {
20
20
  "@/*": ["./src/*"]
21
- }
21
+ },
22
+ "types": ["node"]
22
23
  },
23
24
  "include": ["src"],
24
25
  "exclude": ["node_modules", "dist"]
package/tsdown.config.ts CHANGED
@@ -4,9 +4,13 @@ import { join } from "node:path";
4
4
  import { defineConfig } from "tsdown";
5
5
 
6
6
  const entriesPath = join(import.meta.dirname, ".generated", "entries.json");
7
- const generatedEntries: string[] = existsSync(entriesPath)
8
- ? JSON.parse(readFileSync(entriesPath, "utf-8"))
9
- : [];
7
+ // oxlint-disable-next-line eslint-plugin-jest/require-hook
8
+ const generatedEntries: string[] = (() => {
9
+ if (existsSync(entriesPath)) {
10
+ return JSON.parse(readFileSync(entriesPath, "utf8")) as string[];
11
+ }
12
+ return [];
13
+ })();
10
14
 
11
15
  export default defineConfig([
12
16
  {
@@ -1 +0,0 @@
1
- {"version":3,"file":"types-DjdaZckF.d.mts","names":[],"sources":["../src/catalog/types.ts"],"mappings":";;AAOA;;;;;;UAAiB,YAAA;EAWN;EAAA,SATA,KAAA;EAYS;EAAA,SATT,MAAA;EAkBM;EAAA,SAfN,SAAA;;WAGA,UAAA;EAiBM;EAAA,SAdN,SAAA;AAAA;;;;;;;UASM,eAAA;EAsBU;EAAA,SApBhB,KAAA;EA0BqB;EAAA,SAvBrB,MAAA;AAAA;;;;UAMM,iBAAA;EAmBN;EAAA,SAjBA,SAAA;EAuBA;EAAA,SApBA,QAAA;EA0BA;EAAA,SAvBA,UAAA;EA0BA;EAAA,SAvBA,gBAAA;AAAA;;;;UAMM,eAAA;EA0ByB;EAAA,SAxB/B,EAAA;;WAGA,IAAA;;WAGA,QAAA;;WAGA,MAAA;;WAGA,OAAA,EAAS,YAAA;;WAGT,aAAA;;WAGA,SAAA;;WAGA,UAAA,EAAY,eAAA;;WAGZ,YAAA,EAAc,iBAAA;AAAA"}