@vincemakes/kiso-runtime 0.27.0 → 0.28.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.
@@ -29,6 +29,74 @@ const DEEPSEEK_PRICING = {
29
29
  asOf: "2026-08-13",
30
30
  source: "https://api-docs.deepseek.com/quick_start/pricing",
31
31
  };
32
+ /** PA-1a: the Anthropic rates as read on 2026-09-07 (base input, output,
33
+ * cache read = "cache hits and refreshes", cache write = the 5-minute
34
+ * write). The pricing page notes Sonnet 5's $2/$10 is the standard
35
+ * price (the announced September increase did not occur). */
36
+ const ANTHROPIC_PRICING_SOURCE = "https://platform.claude.com/docs/en/about-claude/pricing";
37
+ const ANTHROPIC_MODELS_SOURCE = "https://platform.claude.com/docs/en/models/overview";
38
+ const ANTHROPIC_EFFORT_SOURCE = "https://platform.claude.com/docs/en/build-with-claude/effort";
39
+ const ANTHROPIC_ASOF = "2026-09-07";
40
+ const anthropicPricing = (inputPerM, outputPerM, cacheReadPerM, cacheWritePerM) => ({
41
+ inputPerM,
42
+ outputPerM,
43
+ cacheReadPerM,
44
+ cacheWritePerM,
45
+ asOf: ANTHROPIC_ASOF,
46
+ source: ANTHROPIC_PRICING_SOURCE,
47
+ });
48
+ /** The 5-line's effort control: five native levels, default high, wire
49
+ * output_config.effort (the effort page, read 2026-09-07). The thinking
50
+ * table (https://platform.claude.com/docs/en/build-with-claude/thinking-troubleshooting)
51
+ * gives the modes per model. */
52
+ const FIVE_LEVELS = { levels: ["low", "medium", "high", "xhigh", "max"], default: "high", wire: "output_config.effort" };
53
+ function anthropicLine() {
54
+ const row = (model, capabilities, pricing) => ({
55
+ model,
56
+ providerId: "anthropic",
57
+ capabilities,
58
+ capabilitiesAsOf: ANTHROPIC_ASOF,
59
+ capabilitiesSource: ANTHROPIC_MODELS_SOURCE,
60
+ pricing,
61
+ });
62
+ const fiveLine = (thinkingModes, forbidden) => ({
63
+ contextWindow: 1_000_000,
64
+ maxOutputTokens: 128_000,
65
+ promptCaching: "explicit",
66
+ reasoning: {
67
+ emitsThinkingStream: true,
68
+ thinking: { modes: thinkingModes, default: "adaptive" },
69
+ effort: FIVE_LEVELS,
70
+ ...(forbidden !== undefined ? { forbidden } : {}),
71
+ asOf: ANTHROPIC_ASOF,
72
+ source: ANTHROPIC_EFFORT_SOURCE,
73
+ },
74
+ inputModalities: ["text", "image"],
75
+ });
76
+ const haiku = {
77
+ contextWindow: 200_000,
78
+ maxOutputTokens: 64_000,
79
+ promptCaching: "explicit",
80
+ // Extended thinking only (budget_tokens; adaptive rejected) — the
81
+ // XP-1 setting has no budget axis, so the toggle is not driven;
82
+ // effort: "Not supported" on the models overview. Unknown stays null.
83
+ reasoning: { emitsThinkingStream: true, thinking: null, effort: null, asOf: ANTHROPIC_ASOF, source: ANTHROPIC_EFFORT_SOURCE },
84
+ inputModalities: ["text", "image"],
85
+ };
86
+ const haikuPricing = anthropicPricing(1, 5, 0.1, 1.25);
87
+ return [
88
+ // Fable 5.1: adaptive only, ALWAYS on — "enabled" and "disabled" both 400.
89
+ row("claude-fable-5-1", fiveLine(["adaptive"]), anthropicPricing(10, 50, 0.25, 12.5)),
90
+ // Opus 5: adaptive, on by default; "disabled" accepted at effort high
91
+ // or below — with xhigh or max it is a 400 (the forbidden pair).
92
+ row("claude-opus-5", fiveLine(["adaptive", "disabled"], [{ thinking: "disabled", effort: "xhigh" }, { thinking: "disabled", effort: "max" }]), anthropicPricing(5, 25, 0.5, 6.25)),
93
+ // Sonnet 5: adaptive, on by default; "disabled" accepted.
94
+ row("claude-sonnet-5", fiveLine(["adaptive", "disabled"]), anthropicPricing(2, 10, 0.2, 2.5)),
95
+ // Haiku 4.5: the pinned id and its alias (the registry matches exact ids).
96
+ row("claude-haiku-4-5-20251001", haiku, haikuPricing),
97
+ row("claude-haiku-4-5", haiku, haikuPricing),
98
+ ];
99
+ }
32
100
  /** The v1 table. Nulls outnumber numbers ON PURPOSE: only values with a
33
101
  * named source enter; everything else waits for one. */
34
102
  const ENTRIES = [
@@ -54,22 +122,16 @@ const ENTRIES = [
54
122
  capabilities: { contextWindow: null, maxOutputTokens: null, promptCaching: "automatic", reasoning: { emitsThinkingStream: true, thinking: null, effort: null, asOf: null, source: null }, inputModalities: null },
55
123
  pricing: DEEPSEEK_PRICING,
56
124
  },
57
- {
58
- model: "claude-sonnet-5",
59
- providerId: "anthropic",
60
- capabilities: { contextWindow: 200_000, maxOutputTokens: null, promptCaching: "explicit",
61
- reasoning: {
62
- emitsThinkingStream: true,
63
- thinking: null,
64
- effort: { levels: ["low", "medium", "high", "xhigh", "max"], default: "high", wire: "output_config.effort" },
65
- asOf: "2026-08-26",
66
- source: "https://platform.claude.com/docs/en/build-with-claude/effort",
67
- },
68
- inputModalities: null },
69
- // Priced only when the rates are read from the live billing page
70
- // and dated — never copied from memory (the review's boundary ②).
71
- pricing: null,
72
- },
125
+ // PA-1a (2026-09-07): the Anthropic first-party line, read from the live
126
+ // docs that day — the models overview (ids, context, max output,
127
+ // modalities, thinking type, default effort), the thinking table
128
+ // (accepted / rejected thinking.type per model, the Opus 5 forbidden
129
+ // pair), the effort page (levels), the pricing page (rates). Each row
130
+ // carries the dates; nothing here is from memory. Extended thinking
131
+ // (`enabled` + budget_tokens) is registered for NO model: the 5-line
132
+ // rejects it, and Haiku 4.5's manual-budget mode has no axis in the
133
+ // XP-1 setting — recorded as `thinking: null` on that row, never guessed.
134
+ ...anthropicLine(),
73
135
  {
74
136
  // XP-1: the current DeepSeek line — the model every RD-1 benchmark
75
137
  // artifact was produced with, previously ABSENT (null pricing and
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vincemakes/kiso-runtime",
3
- "version": "0.27.0",
3
+ "version": "0.28.0",
4
4
  "description": "kiso runtime — durable multi-turn agent sessions: AgentDefinition, AgentRuntime, AgentSession, Run, append-only JSONL store.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -25,11 +25,11 @@
25
25
  "test": "vitest run"
26
26
  },
27
27
  "dependencies": {
28
- "@vincemakes/kiso-core": "0.27.0"
28
+ "@vincemakes/kiso-core": "0.28.0"
29
29
  },
30
30
  "peerDependencies": {
31
- "@vincemakes/kiso-provider-anthropic": "0.27.0",
32
- "@vincemakes/kiso-provider-openai": "0.27.0"
31
+ "@vincemakes/kiso-provider-anthropic": "0.28.0",
32
+ "@vincemakes/kiso-provider-openai": "0.28.0"
33
33
  },
34
34
  "peerDependenciesMeta": {
35
35
  "@vincemakes/kiso-provider-anthropic": {
@@ -40,7 +40,7 @@
40
40
  }
41
41
  },
42
42
  "devDependencies": {
43
- "@vincemakes/kiso-evals": "0.27.0",
43
+ "@vincemakes/kiso-evals": "0.28.0",
44
44
  "@types/node": "^26.1.2",
45
45
  "typescript": "^5.7.2",
46
46
  "vitest": "^3.0.0"