@openclaw/deepinfra-provider 2026.7.2-beta.7 → 2026.7.33

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.
@@ -4,12 +4,21 @@
4
4
  "onStartup": false
5
5
  },
6
6
  "enabledByDefault": true,
7
- "providers": ["deepinfra"],
8
- "providerCatalogEntry": "./provider-discovery.ts",
7
+ "providers": [
8
+ "deepinfra"
9
+ ],
10
+ "providerCatalogEntry": "./dist/provider-discovery.js",
11
+ "providerAuthEnvVars": {
12
+ "deepinfra": [
13
+ "DEEPINFRA_API_KEY"
14
+ ]
15
+ },
9
16
  "providerEndpoints": [
10
17
  {
11
18
  "endpointClass": "deepinfra-native",
12
- "hosts": ["api.deepinfra.com"]
19
+ "hosts": [
20
+ "api.deepinfra.com"
21
+ ]
13
22
  }
14
23
  ],
15
24
  "providerRequest": {
@@ -23,8 +32,12 @@
23
32
  "providers": [
24
33
  {
25
34
  "id": "deepinfra",
26
- "authMethods": ["api-key"],
27
- "envVars": ["DEEPINFRA_API_KEY"]
35
+ "authMethods": [
36
+ "api-key"
37
+ ],
38
+ "envVars": [
39
+ "DEEPINFRA_API_KEY"
40
+ ]
28
41
  }
29
42
  ]
30
43
  },
@@ -38,67 +51,53 @@
38
51
  "id": "deepseek-ai/DeepSeek-V4-Flash",
39
52
  "name": "DeepSeek V4 Flash",
40
53
  "reasoning": true,
41
- "input": ["text"],
42
- "contextWindow": 1048576,
43
- "maxTokens": 1048576,
44
- "cost": {
45
- "input": 0.09,
46
- "output": 0.18,
47
- "cacheRead": 0.018,
48
- "cacheWrite": 0
49
- },
50
- "compat": {
51
- "supportsUsageInStreaming": true,
52
- "codeMode": "capable"
53
- }
54
- },
55
- {
56
- "id": "deepseek-ai/DeepSeek-V4-Pro",
57
- "name": "DeepSeek V4 Pro",
58
- "reasoning": true,
59
- "input": ["text"],
54
+ "input": [
55
+ "text"
56
+ ],
60
57
  "contextWindow": 1048576,
61
58
  "maxTokens": 1048576,
62
59
  "cost": {
63
- "input": 1.3,
64
- "output": 2.6,
65
- "cacheRead": 0.1,
60
+ "input": 0.1,
61
+ "output": 0.2,
62
+ "cacheRead": 0.02,
66
63
  "cacheWrite": 0
67
64
  },
68
65
  "compat": {
69
- "supportsUsageInStreaming": true,
70
- "codeMode": "capable"
66
+ "supportsUsageInStreaming": true
71
67
  }
72
68
  },
73
69
  {
74
- "id": "zai-org/GLM-5.2",
75
- "name": "GLM-5.2",
76
- "reasoning": true,
77
- "input": ["text"],
78
- "contextWindow": 1048576,
79
- "maxTokens": 1048576,
70
+ "id": "deepseek-ai/DeepSeek-V3.2",
71
+ "name": "DeepSeek V3.2",
72
+ "reasoning": false,
73
+ "input": [
74
+ "text"
75
+ ],
76
+ "contextWindow": 163840,
77
+ "maxTokens": 163840,
80
78
  "cost": {
81
- "input": 0.93,
82
- "output": 3,
83
- "cacheRead": 0.18,
79
+ "input": 0.26,
80
+ "output": 0.38,
81
+ "cacheRead": 0.13,
84
82
  "cacheWrite": 0
85
83
  },
86
84
  "compat": {
87
- "supportsUsageInStreaming": true,
88
- "codeMode": "capable"
85
+ "supportsUsageInStreaming": true
89
86
  }
90
87
  },
91
88
  {
92
- "id": "stepfun-ai/Step-3.7-Flash",
93
- "name": "Step 3.7 Flash",
89
+ "id": "zai-org/GLM-5.1",
90
+ "name": "GLM-5.1",
94
91
  "reasoning": true,
95
- "input": ["text", "image"],
96
- "contextWindow": 262144,
97
- "maxTokens": 262144,
92
+ "input": [
93
+ "text"
94
+ ],
95
+ "contextWindow": 202752,
96
+ "maxTokens": 202752,
98
97
  "cost": {
99
- "input": 0.2,
100
- "output": 1.15,
101
- "cacheRead": 0.04,
98
+ "input": 1.05,
99
+ "output": 3.5,
100
+ "cacheRead": 0.205000005,
102
101
  "cacheWrite": 0
103
102
  },
104
103
  "compat": {
@@ -106,16 +105,18 @@
106
105
  }
107
106
  },
108
107
  {
109
- "id": "moonshotai/Kimi-K2.7-Code",
110
- "name": "Kimi K2.7 Code",
111
- "reasoning": true,
112
- "input": ["text", "image"],
108
+ "id": "stepfun-ai/Step-3.5-Flash",
109
+ "name": "Step 3.5 Flash",
110
+ "reasoning": false,
111
+ "input": [
112
+ "text"
113
+ ],
113
114
  "contextWindow": 262144,
114
115
  "maxTokens": 262144,
115
116
  "cost": {
116
- "input": 0.74,
117
- "output": 3.5,
118
- "cacheRead": 0.15,
117
+ "input": 0.1,
118
+ "output": 0.3,
119
+ "cacheRead": 0.02,
119
120
  "cacheWrite": 0
120
121
  },
121
122
  "compat": {
@@ -123,16 +124,18 @@
123
124
  }
124
125
  },
125
126
  {
126
- "id": "moonshotai/Kimi-K2.6",
127
- "name": "Kimi K2.6",
127
+ "id": "MiniMaxAI/MiniMax-M2.5",
128
+ "name": "MiniMax M2.5",
128
129
  "reasoning": true,
129
- "input": ["text", "image"],
130
- "contextWindow": 262144,
131
- "maxTokens": 262144,
130
+ "input": [
131
+ "text"
132
+ ],
133
+ "contextWindow": 196608,
134
+ "maxTokens": 196608,
132
135
  "cost": {
133
- "input": 0.75,
134
- "output": 3.5,
135
- "cacheRead": 0.15,
136
+ "input": 0.15,
137
+ "output": 1.15,
138
+ "cacheRead": 0.03,
136
139
  "cacheWrite": 0
137
140
  },
138
141
  "compat": {
@@ -140,16 +143,19 @@
140
143
  }
141
144
  },
142
145
  {
143
- "id": "nvidia/NVIDIA-Nemotron-3-Ultra-550B-A55B",
144
- "name": "NVIDIA Nemotron 3 Ultra 550B A55B",
146
+ "id": "moonshotai/Kimi-K2.5",
147
+ "name": "Kimi K2.5",
145
148
  "reasoning": true,
146
- "input": ["text", "image"],
149
+ "input": [
150
+ "text",
151
+ "image"
152
+ ],
147
153
  "contextWindow": 262144,
148
154
  "maxTokens": 262144,
149
155
  "cost": {
150
- "input": 0.5,
151
- "output": 2.2,
152
- "cacheRead": 0.1,
156
+ "input": 0.45,
157
+ "output": 2.25,
158
+ "cacheRead": 0.070000002,
153
159
  "cacheWrite": 0
154
160
  },
155
161
  "compat": {
@@ -160,12 +166,14 @@
160
166
  "id": "nvidia/NVIDIA-Nemotron-3-Super-120B-A12B",
161
167
  "name": "NVIDIA Nemotron 3 Super 120B A12B",
162
168
  "reasoning": true,
163
- "input": ["text"],
169
+ "input": [
170
+ "text"
171
+ ],
164
172
  "contextWindow": 262144,
165
173
  "maxTokens": 262144,
166
174
  "cost": {
167
- "input": 0.085,
168
- "output": 0.4,
175
+ "input": 0.1,
176
+ "output": 0.5,
169
177
  "cacheRead": 0,
170
178
  "cacheWrite": 0
171
179
  },
@@ -174,76 +182,18 @@
174
182
  }
175
183
  },
176
184
  {
177
- "id": "deepseek-ai/DeepSeek-V3.2",
178
- "name": "DeepSeek V3.2",
179
- "status": "deprecated",
180
- "replacedBy": "deepseek-ai/DeepSeek-V4-Pro",
185
+ "id": "meta-llama/Llama-3.3-70B-Instruct-Turbo",
186
+ "name": "Llama 3.3 70B Instruct Turbo",
181
187
  "reasoning": false,
182
- "input": ["text"],
183
- "contextWindow": 163840,
184
- "maxTokens": 163840,
185
- "cost": {
186
- "input": 0.26,
187
- "output": 0.38,
188
- "cacheRead": 0.13,
189
- "cacheWrite": 0
190
- },
191
- "compat": {
192
- "supportsUsageInStreaming": true
193
- }
194
- },
195
- {
196
- "id": "zai-org/GLM-5.1",
197
- "name": "GLM-5.1",
198
- "status": "deprecated",
199
- "replacedBy": "zai-org/GLM-5.2",
200
- "reasoning": true,
201
- "input": ["text"],
202
- "contextWindow": 202752,
203
- "maxTokens": 202752,
204
- "cost": {
205
- "input": 1.05,
206
- "output": 3.5,
207
- "cacheRead": 0.205000005,
208
- "cacheWrite": 0
209
- },
210
- "compat": {
211
- "supportsUsageInStreaming": true,
212
- "codeMode": "capable"
213
- }
214
- },
215
- {
216
- "id": "stepfun-ai/Step-3.5-Flash",
217
- "name": "Step 3.5 Flash",
218
- "status": "deprecated",
219
- "replacedBy": "stepfun-ai/Step-3.7-Flash",
220
- "reasoning": true,
221
- "input": ["text"],
222
- "contextWindow": 262144,
223
- "maxTokens": 262144,
188
+ "input": [
189
+ "text"
190
+ ],
191
+ "contextWindow": 131072,
192
+ "maxTokens": 131072,
224
193
  "cost": {
225
194
  "input": 0.1,
226
- "output": 0.3,
227
- "cacheRead": 0.02,
228
- "cacheWrite": 0
229
- },
230
- "compat": {
231
- "supportsUsageInStreaming": true
232
- }
233
- },
234
- {
235
- "id": "moonshotai/Kimi-K2.5",
236
- "name": "Kimi K2.5",
237
- "status": "deprecated",
238
- "replacedBy": "moonshotai/Kimi-K2.6",
239
- "reasoning": true,
240
- "input": ["text", "image"],
241
- "contextWindow": 262144,
242
- "maxTokens": 262144,
243
- "cost": {
244
- "input": 0.45,
245
- "output": 2.25,
246
- "cacheRead": 0.070000002,
195
+ "output": 0.32,
196
+ "cacheRead": 0,
247
197
  "cacheWrite": 0
248
198
  },
249
199
  "compat": {
@@ -275,15 +225,28 @@
275
225
  }
276
226
  ],
277
227
  "contracts": {
278
- "mediaUnderstandingProviders": ["deepinfra"],
279
- "embeddingProviders": ["deepinfra"],
280
- "imageGenerationProviders": ["deepinfra"],
281
- "speechProviders": ["deepinfra"],
282
- "videoGenerationProviders": ["deepinfra"]
228
+ "mediaUnderstandingProviders": [
229
+ "deepinfra"
230
+ ],
231
+ "memoryEmbeddingProviders": [
232
+ "deepinfra"
233
+ ],
234
+ "imageGenerationProviders": [
235
+ "deepinfra"
236
+ ],
237
+ "speechProviders": [
238
+ "deepinfra"
239
+ ],
240
+ "videoGenerationProviders": [
241
+ "deepinfra"
242
+ ]
283
243
  },
284
244
  "mediaUnderstandingProviderMetadata": {
285
245
  "deepinfra": {
286
- "capabilities": ["image", "audio"],
246
+ "capabilities": [
247
+ "image",
248
+ "audio"
249
+ ],
287
250
  "defaultModels": {
288
251
  "image": "moonshotai/Kimi-K2.5",
289
252
  "audio": "openai/whisper-large-v3-turbo"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openclaw/deepinfra-provider",
3
- "version": "2026.7.2-beta.7",
3
+ "version": "2026.7.33",
4
4
  "description": "OpenClaw DeepInfra provider plugin.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -18,10 +18,10 @@
18
18
  "minHostVersion": ">=2026.6.8"
19
19
  },
20
20
  "compat": {
21
- "pluginApi": ">=2026.7.2-beta.7"
21
+ "pluginApi": ">=2026.7.33"
22
22
  },
23
23
  "build": {
24
- "openclawVersion": "2026.7.2-beta.7",
24
+ "openclawVersion": "2026.7.33",
25
25
  "bundledDist": false
26
26
  },
27
27
  "release": {
@@ -38,7 +38,7 @@
38
38
  "README.md"
39
39
  ],
40
40
  "peerDependencies": {
41
- "openclaw": ">=2026.7.2-beta.7"
41
+ "openclaw": ">=2026.7.33"
42
42
  },
43
43
  "peerDependenciesMeta": {
44
44
  "openclaw": {
@@ -1,84 +0,0 @@
1
- import { t as modelCatalog } from "./openclaw.plugin-DomWf43f.js";
2
- import { asObjectRecord } from "openclaw/plugin-sdk/runtime-doctor";
3
- //#region extensions/deepinfra/doctor-contract-api.ts
4
- const PROVIDER_PATH = "models.providers.deepinfra";
5
- const NATIVE_INFERENCE_PATH = "/v1/inference";
6
- const OPENAI_COMPAT_PATH = "/v1/openai";
7
- const CANONICAL_BASE_URL = modelCatalog.providers.deepinfra.baseUrl;
8
- const FIX_HINT = `Run "openclaw doctor --fix" (api.deepinfra.com endpoints migrate automatically; custom hosts must set ${PROVIDER_PATH}.baseUrl to an OpenAI-compatible videos endpoint manually).`;
9
- const legacyConfigRules = [{
10
- path: [
11
- "models",
12
- "providers",
13
- "deepinfra",
14
- "nativeBaseUrl"
15
- ],
16
- message: `${PROVIDER_PATH}.nativeBaseUrl is legacy; video generation uses the OpenAI-compatible ${PROVIDER_PATH}.baseUrl. ${FIX_HINT}`
17
- }, {
18
- path: [
19
- "models",
20
- "providers",
21
- "deepinfra",
22
- "baseUrl"
23
- ],
24
- message: `${PROVIDER_PATH}.baseUrl targets the retired native ${NATIVE_INFERENCE_PATH} surface; use an ${OPENAI_COMPAT_PATH} base. ${FIX_HINT}`,
25
- match: (value) => typeof value === "string" && value.includes(NATIVE_INFERENCE_PATH)
26
- }];
27
- function isDeepInfraApiHost(value) {
28
- try {
29
- return new URL(value).host === "api.deepinfra.com";
30
- } catch {
31
- return false;
32
- }
33
- }
34
- function normalizeBaseUrlValue(value) {
35
- if (typeof value !== "string") return;
36
- const trimmed = value.trim().replace(/\/+$/u, "");
37
- return trimmed ? trimmed : void 0;
38
- }
39
- function normalizeCompatibilityConfig({ cfg }) {
40
- const models = asObjectRecord(cfg.models);
41
- const providers = asObjectRecord(models?.providers);
42
- const provider = asObjectRecord(providers?.deepinfra);
43
- if (!provider) return {
44
- config: cfg,
45
- changes: []
46
- };
47
- const changes = [];
48
- const next = { ...provider };
49
- if (Object.hasOwn(next, "nativeBaseUrl")) {
50
- const legacyNative = normalizeBaseUrlValue(next.nativeBaseUrl);
51
- delete next.nativeBaseUrl;
52
- if (normalizeBaseUrlValue(next.baseUrl)) changes.push(`${PROVIDER_PATH}.nativeBaseUrl: removed (baseUrl is already configured)`);
53
- else if (legacyNative && !isDeepInfraApiHost(legacyNative)) {
54
- next.baseUrl = CANONICAL_BASE_URL;
55
- changes.push(`${PROVIDER_PATH}.nativeBaseUrl: removed retired custom native endpoint; using ${CANONICAL_BASE_URL} - set ${PROVIDER_PATH}.baseUrl manually if your host serves an OpenAI-compatible videos API`);
56
- } else {
57
- next.baseUrl = legacyNative?.includes(NATIVE_INFERENCE_PATH) ? legacyNative.replace(NATIVE_INFERENCE_PATH, OPENAI_COMPAT_PATH) : CANONICAL_BASE_URL;
58
- changes.push(`${PROVIDER_PATH}.nativeBaseUrl -> ${PROVIDER_PATH}.baseUrl (OpenAI-compatible ${OPENAI_COMPAT_PATH} endpoint)`);
59
- }
60
- }
61
- if (typeof next.baseUrl === "string" && next.baseUrl.includes(NATIVE_INFERENCE_PATH) && isDeepInfraApiHost(next.baseUrl)) {
62
- next.baseUrl = next.baseUrl.replace(NATIVE_INFERENCE_PATH, OPENAI_COMPAT_PATH);
63
- changes.push(`${PROVIDER_PATH}.baseUrl: ${NATIVE_INFERENCE_PATH} -> ${OPENAI_COMPAT_PATH}`);
64
- }
65
- if (changes.length === 0) return {
66
- config: cfg,
67
- changes: []
68
- };
69
- return {
70
- config: {
71
- ...cfg,
72
- models: {
73
- ...models,
74
- providers: {
75
- ...providers,
76
- deepinfra: next
77
- }
78
- }
79
- },
80
- changes
81
- };
82
- }
83
- //#endregion
84
- export { legacyConfigRules, normalizeCompatibilityConfig };
@@ -1,58 +0,0 @@
1
- import { DEFAULT_DEEPINFRA_EMBEDDING_MODEL, createDeepInfraEmbeddingProvider } from "./embedding-provider.js";
2
- //#region extensions/deepinfra/embedding-adapter.ts
3
- function textFromEmbeddingInput(input) {
4
- return typeof input === "string" ? input : input.text;
5
- }
6
- function adaptMemoryEmbeddingProvider(provider) {
7
- return {
8
- id: provider.id,
9
- model: provider.model,
10
- ...typeof provider.maxInputTokens === "number" ? { maxInputTokens: provider.maxInputTokens } : {},
11
- embed: async (input, options) => await provider.embedQuery(textFromEmbeddingInput(input), { signal: options?.signal }),
12
- embedBatch: async (inputs, options) => await provider.embedBatch(inputs.map(textFromEmbeddingInput), { signal: options?.signal }),
13
- ...provider.close ? { close: async () => await provider.close?.() } : {}
14
- };
15
- }
16
- function buildMemoryCreateOptions(options) {
17
- return {
18
- config: options.config,
19
- agentDir: options.agentDir,
20
- provider: "deepinfra",
21
- fallback: "none",
22
- remote: options.remote,
23
- model: options.model,
24
- inputType: options.inputType,
25
- queryInputType: options.queryInputType,
26
- documentInputType: options.documentInputType,
27
- outputDimensionality: options.dimensions,
28
- taskType: options.taskType
29
- };
30
- }
31
- function buildDeepInfraEmbeddingAdapter(options) {
32
- const defaultModel = options?.embedModels?.[0]?.id ?? DEFAULT_DEEPINFRA_EMBEDDING_MODEL;
33
- return {
34
- id: "deepinfra",
35
- defaultModel,
36
- transport: "remote",
37
- authProviderId: "deepinfra",
38
- create: async (createOptions) => {
39
- const { provider, client } = await createDeepInfraEmbeddingProvider({
40
- ...buildMemoryCreateOptions(createOptions),
41
- defaultModel
42
- });
43
- return {
44
- provider: provider ? adaptMemoryEmbeddingProvider(provider) : null,
45
- runtime: {
46
- id: "deepinfra",
47
- cacheKeyData: {
48
- provider: "deepinfra",
49
- model: client.model
50
- }
51
- }
52
- };
53
- }
54
- };
55
- }
56
- const deepinfraEmbeddingProviderAdapter = buildDeepInfraEmbeddingAdapter();
57
- //#endregion
58
- export { buildDeepInfraEmbeddingAdapter, deepinfraEmbeddingProviderAdapter };