@absolutejs/ai 0.6.1 → 0.6.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.
package/CHANGELOG.md CHANGED
@@ -6,6 +6,13 @@ This file is generated by `absolute-changelog` from the entries in
6
6
  `changelog/`. Edit an entry, not this file — and add new ones under
7
7
  `changelog/unreleased/`.
8
8
 
9
+ ## 0.6.2 — 2026-10-22
10
+
11
+ ### Added
12
+
13
+ - **Add stopAfterToolTurn to complete sibling tool actions before a UI handoff and retain error recovery without an unnecessary model turn** (`streamAIWithTools`, `StreamAIWithToolsOptions`)
14
+ - **Support current Sonnet 5.5, Haiku 5.5, GPT-6.1 Sol and GPT-6 Luna reasoning and input capacity** (`MODEL_REASONING`, `openaiResponses`, `anthropic`)
15
+
9
16
  ## 0.6.1 — 2026-10-20
10
17
 
11
18
  ### Added
package/changelog.json CHANGED
@@ -2,6 +2,29 @@
2
2
  "contract": 1,
3
3
  "name": "@absolutejs/ai",
4
4
  "releases": [
5
+ {
6
+ "version": "0.6.2",
7
+ "date": "2026-10-22",
8
+ "changes": [
9
+ {
10
+ "kind": "added",
11
+ "summary": "Add stopAfterToolTurn to complete sibling tool actions before a UI handoff and retain error recovery without an unnecessary model turn",
12
+ "symbols": [
13
+ "streamAIWithTools",
14
+ "StreamAIWithToolsOptions"
15
+ ]
16
+ },
17
+ {
18
+ "kind": "added",
19
+ "summary": "Support current Sonnet 5.5, Haiku 5.5, GPT-6.1 Sol and GPT-6 Luna reasoning and input capacity",
20
+ "symbols": [
21
+ "MODEL_REASONING",
22
+ "openaiResponses",
23
+ "anthropic"
24
+ ]
25
+ }
26
+ ]
27
+ },
5
28
  {
6
29
  "changes": [
7
30
  {
package/dist/ai/index.js CHANGED
@@ -2009,6 +2009,7 @@ var streamAIWithTools = async function* (options) {
2009
2009
  maxTurns = DEFAULT_STREAM_TOOL_MAX_TURNS,
2010
2010
  provider,
2011
2011
  stopAfterTools,
2012
+ stopAfterToolTurn,
2012
2013
  validateInput,
2013
2014
  contextPolicy,
2014
2015
  toolChoice,
@@ -2139,6 +2140,8 @@ var streamAIWithTools = async function* (options) {
2139
2140
  messages.push({ content: blocks, role: "assistant" });
2140
2141
  const resultBlocks = [];
2141
2142
  let terminalToolSucceeded = false;
2143
+ let toolFailed = false;
2144
+ let handoffToolSucceeded = false;
2142
2145
  for (const call of pending) {
2143
2146
  yield {
2144
2147
  id: call.id,
@@ -2148,6 +2151,7 @@ var streamAIWithTools = async function* (options) {
2148
2151
  };
2149
2152
  const startedAt = Date.now();
2150
2153
  const { ok, output } = await executeToolHandler(tools, call);
2154
+ toolFailed ||= !ok;
2151
2155
  const result = toolOutputText(output);
2152
2156
  executedKeys.add(toolCallKey(call));
2153
2157
  yield {
@@ -2164,8 +2168,10 @@ var streamAIWithTools = async function* (options) {
2164
2168
  terminalToolSucceeded = true;
2165
2169
  break;
2166
2170
  }
2171
+ if (ok && stopAfterToolTurn?.includes(call.name))
2172
+ handoffToolSucceeded = true;
2167
2173
  }
2168
- if (terminalToolSucceeded)
2174
+ if (terminalToolSucceeded || handoffToolSucceeded && !toolFailed)
2169
2175
  break;
2170
2176
  messages.push({ content: resultBlocks, role: "user" });
2171
2177
  if (turn >= Math.max(1, maxTurns)) {
@@ -4675,6 +4681,16 @@ var LIMITS = {
4675
4681
  contextWindowTokens: 1050000,
4676
4682
  maxOutputTokens: 128000
4677
4683
  },
4684
+ "gpt-6.1-sol": {
4685
+ maxInputTokens: 922000,
4686
+ contextWindowTokens: 1050000,
4687
+ maxOutputTokens: 128000
4688
+ },
4689
+ "gpt-6-luna": {
4690
+ maxInputTokens: 922000,
4691
+ contextWindowTokens: 1050000,
4692
+ maxOutputTokens: 128000
4693
+ },
4678
4694
  "gpt-6-astra": {
4679
4695
  maxInputTokens: 922000,
4680
4696
  contextWindowTokens: 1050000,
@@ -4995,6 +5011,17 @@ var mistral = profile("effort", ["none", "high"], "Minimal thinking or full reas
4995
5011
  var qwen = profile("budget", ["none", "low", "medium", "high"], haiku.description, "https://help.aliyun.com/en/model-studio/deep-thinking");
4996
5012
  var MODEL_REASONING = {
4997
5013
  "anthropic:claude-opus-5-5": claude,
5014
+ "anthropic:claude-sonnet-5-5": claude,
5015
+ "anthropic:claude-haiku-5-5": claude,
5016
+ "openai:gpt-6.1-sol": {
5017
+ ...gpt,
5018
+ efforts: ["low", "medium", "high", "xhigh", "max"],
5019
+ source: "https://developers.openai.com/api/docs/models/gpt-6.1-sol"
5020
+ },
5021
+ "openai:gpt-6-luna": {
5022
+ ...gpt,
5023
+ source: "https://developers.openai.com/api/docs/models/gpt-6-luna"
5024
+ },
4998
5025
  "anthropic:claude-fable-5-1": claude,
4999
5026
  "anthropic:claude-opus-5": claude,
5000
5027
  "anthropic:claude-sonnet-5": claude,
@@ -5045,7 +5072,8 @@ var ANTHROPIC_EFFORT = [
5045
5072
  /fable-5/,
5046
5073
  /mythos-5/,
5047
5074
  /opus-5/,
5048
- /sonnet-5/
5075
+ /sonnet-5/,
5076
+ /haiku-5/
5049
5077
  ];
5050
5078
  var ANTHROPIC_ADAPTIVE_ONLY = [];
5051
5079
  var ANTHROPIC_LEGACY_THINKING = [
@@ -5063,7 +5091,8 @@ var ANTHROPIC_NO_SAMPLING = [
5063
5091
  /fable-5/,
5064
5092
  /mythos-5/,
5065
5093
  /opus-5/,
5066
- /sonnet-5/
5094
+ /sonnet-5/,
5095
+ /haiku-5/
5067
5096
  ];
5068
5097
  var ANTHROPIC_MAX_EFFORT = [
5069
5098
  /opus-4-[678]/,
@@ -9317,5 +9346,5 @@ export {
9317
9346
  xai
9318
9347
  };
9319
9348
 
9320
- //# debugId=75EDBEC482A1645464756E2164756E21
9349
+ //# debugId=577984AE55403A4664756E2164756E21
9321
9350
  //# sourceMappingURL=index.js.map