@hiper2d/ai-agents 0.16.0 → 0.18.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.
package/dist/index.mjs CHANGED
@@ -839,9 +839,14 @@ var SupportedAiModels = {
839
839
  reasoningEffort: "high",
840
840
  tags: ["expensive"]
841
841
  },
842
+ // Sonnet moved 5 → 5.5 on 2026-09-28 (`claude-sonnet-5-5`, verified live with the platform key).
843
+ // Same price, 1M context / 128K output. Adaptive thinking, API default effort `high` (effort
844
+ // levels were recalibrated vs Sonnet 5 — same pin, not necessarily the same thinking depth).
845
+ // It rejects `thinking: {type: "disabled"}`; ClaudeAgent sends `between_tools` instead. It
846
+ // reads Sonnet 5 thinking blocks, so games moving onto it keep the bots' earlier reasoning.
842
847
  [LLM_CONSTANTS.CLAUDE_SONNET]: {
843
- displayName: "Claude 5 Sonnet",
844
- modelApiName: "claude-sonnet-5",
848
+ displayName: "Claude 5.5 Sonnet",
849
+ modelApiName: "claude-sonnet-5-5",
845
850
  apiKeyName: API_KEY_CONSTANTS.ANTHROPIC,
846
851
  hasThinking: true,
847
852
  reasoningEffort: "high",
@@ -906,9 +911,11 @@ var SupportedAiModels = {
906
911
  // ($4/$20 → $2/$10) and Luna halved ($0.20/$1.20 → $0.10/$0.50). Note GPT-6 Sol now
907
912
  // undercuts GPT-5.6 Terra ($2/$12) on output at the same input rate, which makes the Terra
908
913
  // slot largely redundant — retiring it is a product call, not a catalog one.
914
+ // Sol → GPT-6.1 Sol on 2026-09-29 (id verified against GET /v1/models; gpt-6-sol is still
915
+ // served). Same price as GPT-6 Sol; its no-param default effort still measures `medium`.
909
916
  [LLM_CONSTANTS.GPT_SOL]: {
910
- displayName: "GPT-6 Sol",
911
- modelApiName: "gpt-6-sol",
917
+ displayName: "GPT-6.1 Sol",
918
+ modelApiName: "gpt-6.1-sol",
912
919
  apiKeyName: API_KEY_CONSTANTS.OPENAI,
913
920
  reasoningEffort: "medium",
914
921
  hasThinking: true,
@@ -1260,6 +1267,7 @@ var MODEL_PRICING = {
1260
1267
  // As with Astra, OpenAI's table doesn't restate the short/long boundary, so we keep the
1261
1268
  // 272k threshold the 5.6 siblings use. Cache WRITES (Sol $2.50/$5, Luna $0.125/$0.25) are
1262
1269
  // not modelled: OpenAI caching is automatic and the API only reports hits.
1270
+ // GPT-6.1 Sol (2026-09-29) kept GPT-6 Sol's rates exactly, cache writes included.
1263
1271
  [SupportedAiModels[LLM_CONSTANTS.GPT_SOL].modelApiName]: {
1264
1272
  inputPrice: 2,
1265
1273
  outputPrice: 10,
@@ -1345,6 +1353,7 @@ var MODEL_PRICING = {
1345
1353
  cacheHitPrice: 0.2
1346
1354
  },
1347
1355
  [SupportedAiModels[LLM_CONSTANTS.CLAUDE_SONNET].modelApiName]: {
1356
+ // Sonnet 5.5 (2026-09-28): same $2/$10 and $0.20 cache reads as Sonnet 5.
1348
1357
  inputPrice: 2,
1349
1358
  outputPrice: 10,
1350
1359
  cacheHitPrice: 0.2
@@ -2594,6 +2603,7 @@ ${instruction}`);
2594
2603
  // src/agents/anthropic-agent.ts
2595
2604
  import { Anthropic } from "@anthropic-ai/sdk";
2596
2605
  var rejectsDisabledThinking = (model) => model.includes("fable") || model.includes("opus-5-5");
2606
+ var usesBetweenToolsForOff = (model) => model.includes("sonnet-5-5");
2597
2607
  var ClaudeAgent = class extends AbstractAgent {
2598
2608
  client;
2599
2609
  /**
@@ -2810,7 +2820,9 @@ ${schemaDescription}`;
2810
2820
  params.temperature = 1;
2811
2821
  }
2812
2822
  } else if (usesAdaptiveThinking) {
2813
- if (!rejectsDisabledThinking(this.model)) {
2823
+ if (usesBetweenToolsForOff(this.model)) {
2824
+ params.thinking = { type: "between_tools" };
2825
+ } else if (!rejectsDisabledThinking(this.model)) {
2814
2826
  params.thinking = { type: "disabled" };
2815
2827
  }
2816
2828
  } else {
@@ -2906,7 +2918,9 @@ ${schemaDescription}`;
2906
2918
  params.temperature = 1;
2907
2919
  }
2908
2920
  } else if (usesAdaptiveThinking) {
2909
- if (!rejectsDisabledThinking(this.model)) {
2921
+ if (usesBetweenToolsForOff(this.model)) {
2922
+ params.thinking = { type: "between_tools" };
2923
+ } else if (!rejectsDisabledThinking(this.model)) {
2910
2924
  params.thinking = { type: "disabled" };
2911
2925
  }
2912
2926
  } else {