@vincemakes/kiso-runtime 0.37.0 → 0.39.0

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.
@@ -18,6 +18,32 @@
18
18
  * Lives under runtime/internal — the curated root surface (44 names)
19
19
  * does not move; core is untouched.
20
20
  */
21
+ /**
22
+ * REG-1 — the OFF-PEAK rates, read from the vendor's pricing table on
23
+ * 2026-09-17. The table carries TWO sets: off-peak and peak, the peak
24
+ * rates exactly double, and peak is 01:00-04:00 and 06:00-10:00 UTC
25
+ * Mon-Fri. `ModelPricing` has one set of rates and no period, so the
26
+ * OFF-PEAK numbers are the row's and the doubling is stated here rather
27
+ * than by inventing a field the type does not have. A bill computed from
28
+ * this row during peak hours is half the truth, and that is the honest
29
+ * shape of a one-rate type against a two-rate vendor.
30
+ */
31
+ const DEEPSEEK_FLASH_PRICING = {
32
+ inputPerM: 0.15,
33
+ outputPerM: 0.6,
34
+ cacheReadPerM: 0.003,
35
+ cacheWritePerM: 0,
36
+ asOf: "2026-09-17",
37
+ source: "https://api-docs.deepseek.com/quick_start/pricing/",
38
+ };
39
+ const DEEPSEEK_PRO_PRICING = {
40
+ inputPerM: 0.66,
41
+ outputPerM: 1.98,
42
+ cacheReadPerM: 0.022,
43
+ cacheWritePerM: 0,
44
+ asOf: "2026-09-17",
45
+ source: "https://api-docs.deepseek.com/quick_start/pricing/",
46
+ };
21
47
  const DEEPSEEK_PRICING = {
22
48
  // The E2-frozen rates (pricing table v1, freeze date 2026-08-13),
23
49
  // re-homed here with their provenance made explicit. The caveat
@@ -185,8 +211,28 @@ const ENTRIES = [
185
211
  // stays null until read from the live billing page and dated.
186
212
  model: "deepseek-v4-flash",
187
213
  providerId: "deepseek",
214
+ // REG-1: RETIRED, and the vendor says so in footnote (1) of the
215
+ // pricing table: "The legacy names deepseek-v4-flash and
216
+ // deepseek-v4-flash-vision-exp are still accepted, but the
217
+ // corresponding models have been retired, their requests are served
218
+ // by the DeepSeek-V4.1-Flash model and billed at the Flash price."
219
+ // Still accepted is not still supported: a config naming it works
220
+ // today on borrowed time, which is why the row stays (removing it
221
+ // would break configs that run) and is marked (so the product can
222
+ // say the word it has the evidence for).
223
+ deprecated: { asOf: "2026-09-17", source: "https://api-docs.deepseek.com/quick_start/pricing/" },
188
224
  endpoint: "https://api.deepseek.com",
189
- capabilities: { contextWindow: null, maxOutputTokens: null, promptCaching: "automatic", reasoning: {
225
+ // REG-1: the window and max output are READ from the vendor's pricing
226
+ // table — "CONTEXT LENGTH 1M", "MAX OUTPUT MAXIMUM: 384K". The date
227
+ // and page live in `capabilitiesAsOf` / `capabilitiesSource`, which
228
+ // exist for exactly this; the reasoning block carries its own pair
229
+ // and already cited the same page. A dated vendor
230
+ // statement is this registry's contract and every other row lives on
231
+ // it; holding DeepSeek to a stricter "nobody measured it" standard
232
+ // left the window null, and a null window sends the CLI to its
233
+ // 200,000 fallback — so the product compacted a 1M model at 100,000
234
+ // tokens, a tenth of its capacity, while sounding principled.
235
+ capabilities: { contextWindow: 1_000_000, maxOutputTokens: 384_000, promptCaching: "automatic", reasoning: {
190
236
  emitsThinkingStream: true,
191
237
  thinking: { modes: ["enabled", "disabled"], default: "enabled" },
192
238
  // `none` added 2026-09-14 from a live probe. The three natives were
@@ -214,9 +260,9 @@ const ENTRIES = [
214
260
  asOf: "2026-08-26",
215
261
  source: "https://api-docs.deepseek.com/guides/thinking_mode",
216
262
  }, inputModalities: null },
217
- capabilitiesAsOf: "2026-08-26",
218
- capabilitiesSource: "https://api-docs.deepseek.com/guides/thinking_mode",
219
- pricing: null,
263
+ capabilitiesAsOf: "2026-09-17",
264
+ capabilitiesSource: "https://api-docs.deepseek.com/quick_start/pricing/",
265
+ pricing: DEEPSEEK_FLASH_PRICING,
220
266
  },
221
267
  {
222
268
  // Astra F5: THE VENDOR'S CURRENT RECOMMENDED NAME, registered so that
@@ -241,7 +287,17 @@ const ENTRIES = [
241
287
  model: "deepseek-flash",
242
288
  providerId: "deepseek",
243
289
  endpoint: "https://api.deepseek.com",
244
- capabilities: { contextWindow: null, maxOutputTokens: null, promptCaching: "automatic", reasoning: {
290
+ // REG-1: the window and max output are READ from the vendor's pricing
291
+ // table — "CONTEXT LENGTH 1M", "MAX OUTPUT MAXIMUM: 384K". The date
292
+ // and page live in `capabilitiesAsOf` / `capabilitiesSource`, which
293
+ // exist for exactly this; the reasoning block carries its own pair
294
+ // and already cited the same page. A dated vendor
295
+ // statement is this registry's contract and every other row lives on
296
+ // it; holding DeepSeek to a stricter "nobody measured it" standard
297
+ // left the window null, and a null window sends the CLI to its
298
+ // 200,000 fallback — so the product compacted a 1M model at 100,000
299
+ // tokens, a tenth of its capacity, while sounding principled.
300
+ capabilities: { contextWindow: 1_000_000, maxOutputTokens: 384_000, promptCaching: "automatic", reasoning: {
245
301
  emitsThinkingStream: true,
246
302
  thinking: { modes: ["enabled", "disabled"], default: "enabled" },
247
303
  // `none` added 2026-09-14 from a live probe. The three natives were
@@ -269,15 +325,25 @@ const ENTRIES = [
269
325
  asOf: "2026-09-12",
270
326
  source: "https://api-docs.deepseek.com/quick_start/pricing/",
271
327
  }, inputModalities: null },
272
- capabilitiesAsOf: "2026-09-12",
328
+ capabilitiesAsOf: "2026-09-17",
273
329
  capabilitiesSource: "https://api-docs.deepseek.com/quick_start/pricing/",
274
- pricing: null,
330
+ pricing: DEEPSEEK_FLASH_PRICING,
275
331
  },
276
332
  {
277
333
  model: "deepseek-v4-pro",
278
334
  providerId: "deepseek",
279
335
  endpoint: "https://api.deepseek.com",
280
- capabilities: { contextWindow: null, maxOutputTokens: null, promptCaching: "automatic", reasoning: {
336
+ // REG-1: the window and max output are READ from the vendor's pricing
337
+ // table — "CONTEXT LENGTH 1M", "MAX OUTPUT MAXIMUM: 384K". The date
338
+ // and page live in `capabilitiesAsOf` / `capabilitiesSource`, which
339
+ // exist for exactly this; the reasoning block carries its own pair
340
+ // and already cited the same page. A dated vendor
341
+ // statement is this registry's contract and every other row lives on
342
+ // it; holding DeepSeek to a stricter "nobody measured it" standard
343
+ // left the window null, and a null window sends the CLI to its
344
+ // 200,000 fallback — so the product compacted a 1M model at 100,000
345
+ // tokens, a tenth of its capacity, while sounding principled.
346
+ capabilities: { contextWindow: 1_000_000, maxOutputTokens: 384_000, promptCaching: "automatic", reasoning: {
281
347
  emitsThinkingStream: true,
282
348
  thinking: { modes: ["enabled", "disabled"], default: "enabled" },
283
349
  // `none` added 2026-09-14 from a live probe. The three natives were
@@ -305,9 +371,9 @@ const ENTRIES = [
305
371
  asOf: "2026-08-26",
306
372
  source: "https://api-docs.deepseek.com/guides/thinking_mode",
307
373
  }, inputModalities: null },
308
- capabilitiesAsOf: "2026-08-26",
309
- capabilitiesSource: "https://api-docs.deepseek.com/guides/thinking_mode",
310
- pricing: null,
374
+ capabilitiesAsOf: "2026-09-17",
375
+ capabilitiesSource: "https://api-docs.deepseek.com/quick_start/pricing/",
376
+ pricing: DEEPSEEK_PRO_PRICING,
311
377
  },
312
378
  {
313
379
  model: "gpt-4o",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vincemakes/kiso-runtime",
3
- "version": "0.37.0",
3
+ "version": "0.39.0",
4
4
  "description": "kiso runtime \u2014 durable multi-turn agent sessions: AgentDefinition, AgentRuntime, AgentSession, Run, append-only JSONL store.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -25,12 +25,12 @@
25
25
  "test": "vitest run"
26
26
  },
27
27
  "dependencies": {
28
- "@vincemakes/kiso-core": "0.37.0"
28
+ "@vincemakes/kiso-core": "0.39.0"
29
29
  },
30
30
  "peerDependencies": {
31
- "@vincemakes/kiso-provider-anthropic": "0.37.0",
32
- "@vincemakes/kiso-provider-openai": "0.37.0",
33
- "@vincemakes/kiso-provider-openai-responses": "0.37.0"
31
+ "@vincemakes/kiso-provider-anthropic": "0.39.0",
32
+ "@vincemakes/kiso-provider-openai": "0.39.0",
33
+ "@vincemakes/kiso-provider-openai-responses": "0.39.0"
34
34
  },
35
35
  "peerDependenciesMeta": {
36
36
  "@vincemakes/kiso-provider-anthropic": {
@@ -44,7 +44,7 @@
44
44
  }
45
45
  },
46
46
  "devDependencies": {
47
- "@vincemakes/kiso-evals": "0.37.0",
47
+ "@vincemakes/kiso-evals": "0.39.0",
48
48
  "@types/node": "^26.1.2",
49
49
  "typescript": "^5.7.2",
50
50
  "vitest": "^3.0.0"