@strands-agents/sdk 1.0.0-rc.4 → 1.0.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.
Files changed (265) hide show
  1. package/README.md +8 -15
  2. package/dist/src/__fixtures__/agent-helpers.d.ts +6 -0
  3. package/dist/src/__fixtures__/agent-helpers.d.ts.map +1 -1
  4. package/dist/src/__fixtures__/agent-helpers.js +3 -1
  5. package/dist/src/__fixtures__/agent-helpers.js.map +1 -1
  6. package/dist/src/__fixtures__/mock-plugin.d.ts.map +1 -1
  7. package/dist/src/__fixtures__/mock-plugin.js +3 -1
  8. package/dist/src/__fixtures__/mock-plugin.js.map +1 -1
  9. package/dist/src/__fixtures__/tool-helpers.d.ts +3 -1
  10. package/dist/src/__fixtures__/tool-helpers.d.ts.map +1 -1
  11. package/dist/src/__fixtures__/tool-helpers.js +3 -1
  12. package/dist/src/__fixtures__/tool-helpers.js.map +1 -1
  13. package/dist/src/__tests__/mcp.test.js +274 -1
  14. package/dist/src/__tests__/mcp.test.js.map +1 -1
  15. package/dist/src/a2a/__tests__/events.test.js +2 -0
  16. package/dist/src/a2a/__tests__/events.test.js.map +1 -1
  17. package/dist/src/a2a/__tests__/executor.test.js +16 -5
  18. package/dist/src/a2a/__tests__/executor.test.js.map +1 -1
  19. package/dist/src/a2a/a2a-agent.d.ts +8 -3
  20. package/dist/src/a2a/a2a-agent.d.ts.map +1 -1
  21. package/dist/src/a2a/a2a-agent.js +12 -6
  22. package/dist/src/a2a/a2a-agent.js.map +1 -1
  23. package/dist/src/a2a/executor.d.ts +13 -0
  24. package/dist/src/a2a/executor.d.ts.map +1 -1
  25. package/dist/src/a2a/executor.js +19 -1
  26. package/dist/src/a2a/executor.js.map +1 -1
  27. package/dist/src/agent/__tests__/agent-as-tool.invocation-state.test.d.ts +2 -0
  28. package/dist/src/agent/__tests__/agent-as-tool.invocation-state.test.d.ts.map +1 -0
  29. package/dist/src/agent/__tests__/agent-as-tool.invocation-state.test.js +23 -0
  30. package/dist/src/agent/__tests__/agent-as-tool.invocation-state.test.js.map +1 -0
  31. package/dist/src/agent/__tests__/agent.cancel.test.js +1 -1
  32. package/dist/src/agent/__tests__/agent.cancel.test.js.map +1 -1
  33. package/dist/src/agent/__tests__/agent.concurrent.test.d.ts +2 -0
  34. package/dist/src/agent/__tests__/agent.concurrent.test.d.ts.map +1 -0
  35. package/dist/src/agent/__tests__/agent.concurrent.test.js +488 -0
  36. package/dist/src/agent/__tests__/agent.concurrent.test.js.map +1 -0
  37. package/dist/src/agent/__tests__/agent.hook.test.js +174 -12
  38. package/dist/src/agent/__tests__/agent.hook.test.js.map +1 -1
  39. package/dist/src/agent/__tests__/agent.invocation-state.test.d.ts +2 -0
  40. package/dist/src/agent/__tests__/agent.invocation-state.test.d.ts.map +1 -0
  41. package/dist/src/agent/__tests__/agent.invocation-state.test.js +219 -0
  42. package/dist/src/agent/__tests__/agent.invocation-state.test.js.map +1 -0
  43. package/dist/src/agent/__tests__/agent.stateful-model.test.d.ts +2 -0
  44. package/dist/src/agent/__tests__/agent.stateful-model.test.d.ts.map +1 -0
  45. package/dist/src/agent/__tests__/agent.stateful-model.test.js +169 -0
  46. package/dist/src/agent/__tests__/agent.stateful-model.test.js.map +1 -0
  47. package/dist/src/agent/__tests__/agent.test.js +99 -2
  48. package/dist/src/agent/__tests__/agent.test.js.map +1 -1
  49. package/dist/src/agent/__tests__/agent.tracer.test.node.js +39 -0
  50. package/dist/src/agent/__tests__/agent.tracer.test.node.js.map +1 -1
  51. package/dist/src/agent/__tests__/snapshot.test.js +5 -4
  52. package/dist/src/agent/__tests__/snapshot.test.js.map +1 -1
  53. package/dist/src/agent/agent-as-tool.d.ts.map +1 -1
  54. package/dist/src/agent/agent-as-tool.js +4 -2
  55. package/dist/src/agent/agent-as-tool.js.map +1 -1
  56. package/dist/src/agent/agent.d.ts +75 -1
  57. package/dist/src/agent/agent.d.ts.map +1 -1
  58. package/dist/src/agent/agent.js +323 -83
  59. package/dist/src/agent/agent.js.map +1 -1
  60. package/dist/src/agent/snapshot.d.ts +2 -2
  61. package/dist/src/agent/snapshot.d.ts.map +1 -1
  62. package/dist/src/agent/snapshot.js +8 -2
  63. package/dist/src/agent/snapshot.js.map +1 -1
  64. package/dist/src/conversation-manager/__tests__/conversation-manager.test.js +4 -4
  65. package/dist/src/conversation-manager/__tests__/conversation-manager.test.js.map +1 -1
  66. package/dist/src/conversation-manager/__tests__/null-conversation-manager.test.js +2 -2
  67. package/dist/src/conversation-manager/__tests__/null-conversation-manager.test.js.map +1 -1
  68. package/dist/src/conversation-manager/__tests__/sliding-window-conversation-manager.test.js +8 -3
  69. package/dist/src/conversation-manager/__tests__/sliding-window-conversation-manager.test.js.map +1 -1
  70. package/dist/src/conversation-manager/__tests__/summarizing-conversation-manager.test.js +1 -0
  71. package/dist/src/conversation-manager/__tests__/summarizing-conversation-manager.test.js.map +1 -1
  72. package/dist/src/errors.d.ts +11 -0
  73. package/dist/src/errors.d.ts.map +1 -1
  74. package/dist/src/errors.js +12 -0
  75. package/dist/src/errors.js.map +1 -1
  76. package/dist/src/hooks/__tests__/events.test.js +177 -70
  77. package/dist/src/hooks/__tests__/events.test.js.map +1 -1
  78. package/dist/src/hooks/__tests__/registry.test.js +16 -16
  79. package/dist/src/hooks/__tests__/registry.test.js.map +1 -1
  80. package/dist/src/hooks/events.d.ts +95 -25
  81. package/dist/src/hooks/events.d.ts.map +1 -1
  82. package/dist/src/hooks/events.js +98 -23
  83. package/dist/src/hooks/events.js.map +1 -1
  84. package/dist/src/index.d.ts +6 -5
  85. package/dist/src/index.d.ts.map +1 -1
  86. package/dist/src/index.js.map +1 -1
  87. package/dist/src/logging/__tests__/warn-once.test.d.ts +2 -0
  88. package/dist/src/logging/__tests__/warn-once.test.d.ts.map +1 -0
  89. package/dist/src/logging/__tests__/warn-once.test.js +30 -0
  90. package/dist/src/logging/__tests__/warn-once.test.js.map +1 -0
  91. package/dist/src/logging/warn-once.d.ts +13 -0
  92. package/dist/src/logging/warn-once.d.ts.map +1 -0
  93. package/dist/src/logging/warn-once.js +18 -0
  94. package/dist/src/logging/warn-once.js.map +1 -0
  95. package/dist/src/mcp.d.ts +20 -1
  96. package/dist/src/mcp.d.ts.map +1 -1
  97. package/dist/src/mcp.js +10 -1
  98. package/dist/src/mcp.js.map +1 -1
  99. package/dist/src/mime.d.ts +2 -1
  100. package/dist/src/mime.d.ts.map +1 -1
  101. package/dist/src/mime.js +1 -0
  102. package/dist/src/mime.js.map +1 -1
  103. package/dist/src/models/__tests__/anthropic.test.js +99 -1
  104. package/dist/src/models/__tests__/anthropic.test.js.map +1 -1
  105. package/dist/src/models/__tests__/bedrock.test.js +123 -2
  106. package/dist/src/models/__tests__/bedrock.test.js.map +1 -1
  107. package/dist/src/models/__tests__/google.test.js +88 -0
  108. package/dist/src/models/__tests__/google.test.js.map +1 -1
  109. package/dist/src/models/__tests__/model.test.js +149 -1
  110. package/dist/src/models/__tests__/model.test.js.map +1 -1
  111. package/dist/src/models/anthropic.d.ts +18 -1
  112. package/dist/src/models/anthropic.d.ts.map +1 -1
  113. package/dist/src/models/anthropic.js +40 -6
  114. package/dist/src/models/anthropic.js.map +1 -1
  115. package/dist/src/models/bedrock.d.ts +12 -1
  116. package/dist/src/models/bedrock.d.ts.map +1 -1
  117. package/dist/src/models/bedrock.js +45 -11
  118. package/dist/src/models/bedrock.js.map +1 -1
  119. package/dist/src/models/defaults.d.ts +37 -0
  120. package/dist/src/models/defaults.d.ts.map +1 -0
  121. package/dist/src/models/defaults.js +41 -0
  122. package/dist/src/models/defaults.js.map +1 -0
  123. package/dist/src/models/google/model.d.ts +14 -1
  124. package/dist/src/models/google/model.d.ts.map +1 -1
  125. package/dist/src/models/google/model.js +50 -6
  126. package/dist/src/models/google/model.js.map +1 -1
  127. package/dist/src/models/model.d.ts +56 -0
  128. package/dist/src/models/model.d.ts.map +1 -1
  129. package/dist/src/models/model.js +120 -0
  130. package/dist/src/models/model.js.map +1 -1
  131. package/dist/src/models/openai/__tests__/chat.test.d.ts +2 -0
  132. package/dist/src/models/openai/__tests__/chat.test.d.ts.map +1 -0
  133. package/dist/src/models/{__tests__/openai.test.js → openai/__tests__/chat.test.js} +84 -7
  134. package/dist/src/models/openai/__tests__/chat.test.js.map +1 -0
  135. package/dist/src/models/openai/__tests__/responses.test.d.ts +2 -0
  136. package/dist/src/models/openai/__tests__/responses.test.d.ts.map +1 -0
  137. package/dist/src/models/openai/__tests__/responses.test.js +668 -0
  138. package/dist/src/models/openai/__tests__/responses.test.js.map +1 -0
  139. package/dist/src/models/openai/chat-adapter.d.ts +33 -0
  140. package/dist/src/models/openai/chat-adapter.d.ts.map +1 -0
  141. package/dist/src/models/openai/chat-adapter.js +383 -0
  142. package/dist/src/models/openai/chat-adapter.js.map +1 -0
  143. package/dist/src/models/openai/errors.d.ts +16 -0
  144. package/dist/src/models/openai/errors.d.ts.map +1 -0
  145. package/dist/src/models/openai/errors.js +40 -0
  146. package/dist/src/models/openai/errors.js.map +1 -0
  147. package/dist/src/models/openai/formatting.d.ts +18 -0
  148. package/dist/src/models/openai/formatting.d.ts.map +1 -0
  149. package/dist/src/models/openai/formatting.js +38 -0
  150. package/dist/src/models/openai/formatting.js.map +1 -0
  151. package/dist/src/models/openai/index.d.ts +19 -0
  152. package/dist/src/models/openai/index.d.ts.map +1 -0
  153. package/dist/src/models/openai/index.js +18 -0
  154. package/dist/src/models/openai/index.js.map +1 -0
  155. package/dist/src/models/openai/model.d.ts +77 -0
  156. package/dist/src/models/openai/model.d.ts.map +1 -0
  157. package/dist/src/models/openai/model.js +211 -0
  158. package/dist/src/models/openai/model.js.map +1 -0
  159. package/dist/src/models/openai/responses-adapter.d.ts +78 -0
  160. package/dist/src/models/openai/responses-adapter.d.ts.map +1 -0
  161. package/dist/src/models/openai/responses-adapter.js +467 -0
  162. package/dist/src/models/openai/responses-adapter.js.map +1 -0
  163. package/dist/src/models/openai/types.d.ts +131 -0
  164. package/dist/src/models/openai/types.d.ts.map +1 -0
  165. package/dist/src/models/openai/types.js +5 -0
  166. package/dist/src/models/openai/types.js.map +1 -0
  167. package/dist/src/multiagent/__tests__/events.test.js +122 -28
  168. package/dist/src/multiagent/__tests__/events.test.js.map +1 -1
  169. package/dist/src/multiagent/__tests__/graph.invocation-state.test.d.ts +2 -0
  170. package/dist/src/multiagent/__tests__/graph.invocation-state.test.d.ts.map +1 -0
  171. package/dist/src/multiagent/__tests__/graph.invocation-state.test.js +95 -0
  172. package/dist/src/multiagent/__tests__/graph.invocation-state.test.js.map +1 -0
  173. package/dist/src/multiagent/__tests__/nodes.test.js +5 -2
  174. package/dist/src/multiagent/__tests__/nodes.test.js.map +1 -1
  175. package/dist/src/multiagent/__tests__/swarm.invocation-state.test.d.ts +2 -0
  176. package/dist/src/multiagent/__tests__/swarm.invocation-state.test.d.ts.map +1 -0
  177. package/dist/src/multiagent/__tests__/swarm.invocation-state.test.js +56 -0
  178. package/dist/src/multiagent/__tests__/swarm.invocation-state.test.js.map +1 -0
  179. package/dist/src/multiagent/events.d.ts +19 -1
  180. package/dist/src/multiagent/events.d.ts.map +1 -1
  181. package/dist/src/multiagent/events.js +18 -0
  182. package/dist/src/multiagent/events.js.map +1 -1
  183. package/dist/src/multiagent/graph.d.ts +5 -3
  184. package/dist/src/multiagent/graph.d.ts.map +1 -1
  185. package/dist/src/multiagent/graph.js +22 -15
  186. package/dist/src/multiagent/graph.js.map +1 -1
  187. package/dist/src/multiagent/index.d.ts +1 -1
  188. package/dist/src/multiagent/index.d.ts.map +1 -1
  189. package/dist/src/multiagent/multiagent.d.ts +16 -3
  190. package/dist/src/multiagent/multiagent.d.ts.map +1 -1
  191. package/dist/src/multiagent/nodes.d.ts +10 -3
  192. package/dist/src/multiagent/nodes.d.ts.map +1 -1
  193. package/dist/src/multiagent/nodes.js +28 -6
  194. package/dist/src/multiagent/nodes.js.map +1 -1
  195. package/dist/src/multiagent/swarm.d.ts +5 -3
  196. package/dist/src/multiagent/swarm.d.ts.map +1 -1
  197. package/dist/src/multiagent/swarm.js +22 -16
  198. package/dist/src/multiagent/swarm.js.map +1 -1
  199. package/dist/src/plugins/__tests__/registry.test.js +1 -1
  200. package/dist/src/plugins/__tests__/registry.test.js.map +1 -1
  201. package/dist/src/plugins/model-plugin.d.ts +20 -0
  202. package/dist/src/plugins/model-plugin.d.ts.map +1 -0
  203. package/dist/src/plugins/model-plugin.js +29 -0
  204. package/dist/src/plugins/model-plugin.js.map +1 -0
  205. package/dist/src/session/__tests__/session-manager.test.js +13 -11
  206. package/dist/src/session/__tests__/session-manager.test.js.map +1 -1
  207. package/dist/src/session/session-manager.d.ts.map +1 -1
  208. package/dist/src/session/session-manager.js +9 -0
  209. package/dist/src/session/session-manager.js.map +1 -1
  210. package/dist/src/telemetry/__tests__/config.test.js +6 -6
  211. package/dist/src/telemetry/__tests__/config.test.js.map +1 -1
  212. package/dist/src/telemetry/__tests__/config.test.node.js +16 -11
  213. package/dist/src/telemetry/__tests__/config.test.node.js.map +1 -1
  214. package/dist/src/telemetry/__tests__/meter.test.js +23 -0
  215. package/dist/src/telemetry/__tests__/meter.test.js.map +1 -1
  216. package/dist/src/telemetry/config.d.ts +9 -3
  217. package/dist/src/telemetry/config.d.ts.map +1 -1
  218. package/dist/src/telemetry/config.js +44 -69
  219. package/dist/src/telemetry/config.js.map +1 -1
  220. package/dist/src/telemetry/meter.d.ts +15 -0
  221. package/dist/src/telemetry/meter.d.ts.map +1 -1
  222. package/dist/src/telemetry/meter.js +14 -0
  223. package/dist/src/telemetry/meter.js.map +1 -1
  224. package/dist/src/tools/mcp-tool.d.ts +24 -3
  225. package/dist/src/tools/mcp-tool.d.ts.map +1 -1
  226. package/dist/src/tools/mcp-tool.js +105 -14
  227. package/dist/src/tools/mcp-tool.js.map +1 -1
  228. package/dist/src/tools/tool.d.ts +11 -1
  229. package/dist/src/tools/tool.d.ts.map +1 -1
  230. package/dist/src/tools/tool.js.map +1 -1
  231. package/dist/src/tsconfig.tsbuildinfo +1 -1
  232. package/dist/src/types/__tests__/agent.test.js +48 -0
  233. package/dist/src/types/__tests__/agent.test.js.map +1 -1
  234. package/dist/src/types/agent.d.ts +55 -6
  235. package/dist/src/types/agent.d.ts.map +1 -1
  236. package/dist/src/types/agent.js +22 -6
  237. package/dist/src/types/agent.js.map +1 -1
  238. package/dist/src/types/elicitation.d.ts +15 -0
  239. package/dist/src/types/elicitation.d.ts.map +1 -0
  240. package/dist/src/types/elicitation.js +2 -0
  241. package/dist/src/types/elicitation.js.map +1 -0
  242. package/dist/src/vended-plugins/skills/__tests__/agent-skills.test.node.js +37 -33
  243. package/dist/src/vended-plugins/skills/__tests__/agent-skills.test.node.js.map +1 -1
  244. package/dist/src/vended-plugins/skills/agent-skills.d.ts +8 -8
  245. package/dist/src/vended-plugins/skills/agent-skills.d.ts.map +1 -1
  246. package/dist/src/vended-plugins/skills/agent-skills.js +5 -5
  247. package/dist/src/vended-plugins/skills/agent-skills.js.map +1 -1
  248. package/dist/src/vended-plugins/skills/index.d.ts +5 -5
  249. package/dist/src/vended-plugins/skills/index.d.ts.map +1 -1
  250. package/dist/src/vended-plugins/skills/index.js +4 -4
  251. package/dist/src/vended-plugins/skills/index.js.map +1 -1
  252. package/dist/src/vended-tools/bash/__tests__/bash.test.node.js +1 -0
  253. package/dist/src/vended-tools/bash/__tests__/bash.test.node.js.map +1 -1
  254. package/dist/src/vended-tools/file-editor/__tests__/file-editor.test.node.js +1 -0
  255. package/dist/src/vended-tools/file-editor/__tests__/file-editor.test.node.js.map +1 -1
  256. package/dist/src/vended-tools/notebook/__tests__/notebook.test.js +1 -0
  257. package/dist/src/vended-tools/notebook/__tests__/notebook.test.js.map +1 -1
  258. package/package.json +28 -26
  259. package/dist/src/models/__tests__/openai.test.d.ts +0 -2
  260. package/dist/src/models/__tests__/openai.test.d.ts.map +0 -1
  261. package/dist/src/models/__tests__/openai.test.js.map +0 -1
  262. package/dist/src/models/openai.d.ts +0 -312
  263. package/dist/src/models/openai.d.ts.map +0 -1
  264. package/dist/src/models/openai.js +0 -789
  265. package/dist/src/models/openai.js.map +0 -1
@@ -8,13 +8,12 @@
8
8
  */
9
9
  import { GoogleGenAI, FunctionCallingConfigMode, } from '@google/genai';
10
10
  import { Model } from '../model.js';
11
- import { ContextWindowOverflowError, ModelThrottledError } from '../../errors.js';
11
+ import { ContextWindowOverflowError, ModelThrottledError, ProviderTokenCountError } from '../../errors.js';
12
12
  import { classifyGoogleError } from './errors.js';
13
13
  import { formatMessages, mapChunkToEvents } from './adapters.js';
14
- /**
15
- * Default Gemini model ID.
16
- */
17
- const DEFAULT_GEMINI_MODEL_ID = 'gemini-2.5-flash';
14
+ import { MODEL_DEFAULTS, defaultModelWarningMessage } from '../defaults.js';
15
+ import { warnOnce } from '../../logging/warn-once.js';
16
+ import { logger } from '../../logging/logger.js';
18
17
  /**
19
18
  * Google model provider implementation.
20
19
  *
@@ -78,6 +77,9 @@ export class GoogleModel extends Model {
78
77
  super();
79
78
  const { apiKey, client, clientConfig, ...modelConfig } = options || {};
80
79
  this._config = modelConfig;
80
+ if (modelConfig.modelId === undefined) {
81
+ warnOnce(logger, defaultModelWarningMessage(MODEL_DEFAULTS.gemini.modelId));
82
+ }
81
83
  if (client) {
82
84
  this._client = client;
83
85
  }
@@ -123,6 +125,48 @@ export class GoogleModel extends Model {
123
125
  getConfig() {
124
126
  return this._config;
125
127
  }
128
+ /**
129
+ * Count tokens using Gemini's native countTokens API.
130
+ *
131
+ * Uses the Gemini countTokens API for message contents. System instructions and tools
132
+ * are estimated via the base class heuristic because the Gemini API (non-Vertex backend)
133
+ * does not support these in CountTokensConfig.
134
+ * Falls back to the base class heuristic on failure.
135
+ *
136
+ * @param messages - Array of conversation messages to count tokens for
137
+ * @param options - Optional options containing system prompt and tool specs
138
+ * @returns Total input token count
139
+ */
140
+ async countTokens(messages, options) {
141
+ try {
142
+ const params = this._formatRequest(messages, options);
143
+ const modelId = params.model;
144
+ // The Gemini API (non-Vertex backend) raises an error for systemInstruction and tools
145
+ // in CountTokensConfig. Use native counting for message contents only, then add the
146
+ // heuristic estimate for system prompt and tools.
147
+ const response = await this._client.models.countTokens({
148
+ model: modelId,
149
+ contents: params.contents,
150
+ });
151
+ if (response.totalTokens == null) {
152
+ throw new ProviderTokenCountError('Gemini countTokens returned null for totalTokens');
153
+ }
154
+ let totalTokens = response.totalTokens;
155
+ // Add heuristic estimate for system prompt and tools (not supported by the API)
156
+ if (options?.systemPrompt || options?.toolSpecs) {
157
+ totalTokens += await super.countTokens([], {
158
+ ...(options.systemPrompt && { systemPrompt: options.systemPrompt }),
159
+ ...(options.toolSpecs && { toolSpecs: options.toolSpecs }),
160
+ });
161
+ }
162
+ logger.debug(`total_tokens=<${totalTokens}> | native token count`);
163
+ return totalTokens;
164
+ }
165
+ catch (error) {
166
+ logger.debug(`error=<${error}> | native token counting failed, falling back to estimation`);
167
+ return super.countTokens(messages, options);
168
+ }
169
+ }
126
170
  /**
127
171
  * Streams a conversation with the Google model.
128
172
  * Returns an async iterable that yields streaming events as they occur.
@@ -261,7 +305,7 @@ export class GoogleModel extends Model {
261
305
  Object.assign(config, this._config.params);
262
306
  }
263
307
  return {
264
- model: this._config.modelId ?? DEFAULT_GEMINI_MODEL_ID,
308
+ model: this._config.modelId ?? MODEL_DEFAULTS.gemini.modelId,
265
309
  contents,
266
310
  config,
267
311
  };
@@ -1 +1 @@
1
- {"version":3,"file":"model.js","sourceRoot":"","sources":["../../../../src/models/google/model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"model.js","sourceRoot":"","sources":["../../../../src/models/google/model.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { type ContentBlock, Message, type StopReason, type SystemPrompt } from '../types/messages.js';
2
+ import type { StateStore } from '../state-store.js';
2
3
  import type { ToolChoice, ToolSpec } from '../tools/types.js';
3
4
  import { ModelMetadataEvent, type ModelStreamEvent } from './streaming.js';
4
5
  import type { Redaction } from '../hooks/events.js';
@@ -45,6 +46,12 @@ export interface BaseModelConfig {
45
46
  * @see Provider-specific documentation for details
46
47
  */
47
48
  topP?: number;
49
+ /**
50
+ * Maximum context window size in tokens for the model.
51
+ *
52
+ * This value represents the total token capacity shared between input and output.
53
+ */
54
+ contextWindowLimit?: number;
48
55
  }
49
56
  /**
50
57
  * Options interface for configuring streaming model invocation.
@@ -63,6 +70,27 @@ export interface StreamOptions {
63
70
  * Controls how the model selects tools to use.
64
71
  */
65
72
  toolChoice?: ToolChoice;
73
+ /**
74
+ * Runtime state for model providers that manage server-side conversation state.
75
+ * The model can read and write this state during streaming (e.g., to store a
76
+ * response ID for conversation chaining). Mutations via `set`/`delete` are
77
+ * visible to the caller after the stream completes.
78
+ */
79
+ modelState?: StateStore;
80
+ }
81
+ /**
82
+ * Options for counting tokens in a set of messages.
83
+ */
84
+ export interface CountTokensOptions {
85
+ /**
86
+ * System prompt to guide the model's behavior.
87
+ * Can be a simple string or an array of content blocks for advanced caching.
88
+ */
89
+ systemPrompt?: SystemPrompt;
90
+ /**
91
+ * Array of tool specifications to include in the count.
92
+ */
93
+ toolSpecs?: ToolSpec[];
66
94
  }
67
95
  /**
68
96
  * Result interface for the streamAggregated method.
@@ -114,6 +142,19 @@ export declare abstract class Model<T extends BaseModelConfig = BaseModelConfig>
114
142
  * The model ID from the current configuration, if configured.
115
143
  */
116
144
  get modelId(): string | undefined;
145
+ /**
146
+ * Whether this model manages conversation state server-side.
147
+ *
148
+ * When `true`, the server tracks conversation context across turns, so the SDK
149
+ * sends only the latest message instead of the full history. After each invocation,
150
+ * the agent's local message history is cleared automatically.
151
+ *
152
+ * Model providers that support server-side state management should override this
153
+ * to return `true`.
154
+ *
155
+ * @returns `false` by default
156
+ */
157
+ get stateful(): boolean;
117
158
  /**
118
159
  * Streams a conversation with the model.
119
160
  * Returns an async iterable that yields streaming events as they occur.
@@ -123,6 +164,21 @@ export declare abstract class Model<T extends BaseModelConfig = BaseModelConfig>
123
164
  * @returns Async iterable of streaming events
124
165
  */
125
166
  abstract stream(messages: Message[], options?: StreamOptions): AsyncIterable<ModelStreamEvent>;
167
+ /**
168
+ * Count tokens for the given input before sending to the model.
169
+ *
170
+ * Used for proactive context management (e.g., triggering compression at a threshold).
171
+ * The base implementation uses a character-based heuristic (chars/4 for text, chars/2 for JSON).
172
+ *
173
+ * Subclasses should override this method to use native token counting APIs
174
+ * (e.g., Bedrock CountTokens, Anthropic countTokens, Gemini countTokens)
175
+ * for improved accuracy, falling back to `super.countTokens()` on API failure.
176
+ *
177
+ * @param messages - Array of conversation messages to count tokens for
178
+ * @param options - Optional options containing system prompt and tool specs
179
+ * @returns Total input token count
180
+ */
181
+ countTokens(messages: Message[], options?: CountTokensOptions): Promise<number>;
126
182
  /**
127
183
  * Converts event data to event class representation
128
184
  *
@@ -1 +1 @@
1
- {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../../src/models/model.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,YAAY,EACjB,OAAO,EAIP,KAAK,UAAU,EACf,KAAK,YAAY,EAGlB,MAAM,sBAAsB,CAAA;AAG7B,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC7D,OAAO,EAML,kBAAkB,EAElB,KAAK,gBAAgB,EACtB,MAAM,gBAAgB,CAAA;AAEvB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAsBnD;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;;;;OAKG;IACH,QAAQ,EAAE,MAAM,GAAG,WAAW,CAAA;CAC/B;AAED;;;;;;GAMG;AACH,MAAM,WAAW,eAAe;IAC9B;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAEhB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAElB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IAEpB;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;;OAGG;IACH,YAAY,CAAC,EAAE,YAAY,CAAA;IAE3B;;OAEG;IACH,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAA;IAEtB;;OAEG;IACH,UAAU,CAAC,EAAE,UAAU,CAAA;CACxB;AAED;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACrC;;OAEG;IACH,OAAO,EAAE,OAAO,CAAA;IAEhB;;OAEG;IACH,UAAU,EAAE,UAAU,CAAA;IAEtB;;OAEG;IACH,QAAQ,CAAC,EAAE,kBAAkB,CAAA;IAE7B;;;OAGG;IACH,SAAS,CAAC,EAAE,SAAS,CAAA;CACtB;AAED;;;;;;;;GAQG;AACH,8BAAsB,KAAK,CAAC,CAAC,SAAS,eAAe,GAAG,eAAe;IACrE;;;;;OAKG;IACH,QAAQ,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,GAAG,IAAI;IAE3C;;;;OAIG;IACH,QAAQ,CAAC,SAAS,IAAI,CAAC;IAEvB;;OAEG;IACH,IAAI,OAAO,IAAI,MAAM,GAAG,SAAS,CAEhC;IAED;;;;;;;OAOG;IACH,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,aAAa,CAAC,gBAAgB,CAAC;IAE9F;;;;;OAKG;IACH,OAAO,CAAC,uBAAuB;IAqB/B;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACI,gBAAgB,CACrB,QAAQ,EAAE,OAAO,EAAE,EACnB,OAAO,CAAC,EAAE,aAAa,GACtB,cAAc,CAAC,gBAAgB,GAAG,YAAY,EAAE,sBAAsB,EAAE,SAAS,CAAC;CA2LtF"}
1
+ {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../../src/models/model.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,YAAY,EACjB,OAAO,EAIP,KAAK,UAAU,EACf,KAAK,YAAY,EAGlB,MAAM,sBAAsB,CAAA;AAG7B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC7D,OAAO,EAML,kBAAkB,EAElB,KAAK,gBAAgB,EACtB,MAAM,gBAAgB,CAAA;AAEvB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAsBnD;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;;;;OAKG;IACH,QAAQ,EAAE,MAAM,GAAG,WAAW,CAAA;CAC/B;AAED;;;;;;GAMG;AACH,MAAM,WAAW,eAAe;IAC9B;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAEhB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAElB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IAEpB;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IAEb;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAA;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;;OAGG;IACH,YAAY,CAAC,EAAE,YAAY,CAAA;IAE3B;;OAEG;IACH,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAA;IAEtB;;OAEG;IACH,UAAU,CAAC,EAAE,UAAU,CAAA;IAEvB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,UAAU,CAAA;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;OAGG;IACH,YAAY,CAAC,EAAE,YAAY,CAAA;IAE3B;;OAEG;IACH,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAA;CACvB;AAED;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACrC;;OAEG;IACH,OAAO,EAAE,OAAO,CAAA;IAEhB;;OAEG;IACH,UAAU,EAAE,UAAU,CAAA;IAEtB;;OAEG;IACH,QAAQ,CAAC,EAAE,kBAAkB,CAAA;IAE7B;;;OAGG;IACH,SAAS,CAAC,EAAE,SAAS,CAAA;CACtB;AAED;;;;;;;;GAQG;AACH,8BAAsB,KAAK,CAAC,CAAC,SAAS,eAAe,GAAG,eAAe;IACrE;;;;;OAKG;IACH,QAAQ,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,GAAG,IAAI;IAE3C;;;;OAIG;IACH,QAAQ,CAAC,SAAS,IAAI,CAAC;IAEvB;;OAEG;IACH,IAAI,OAAO,IAAI,MAAM,GAAG,SAAS,CAEhC;IAED;;;;;;;;;;;OAWG;IACH,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED;;;;;;;OAOG;IACH,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,aAAa,CAAC,gBAAgB,CAAC;IAE9F;;;;;;;;;;;;;OAaG;IACG,WAAW,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC;IAIrF;;;;;OAKG;IACH,OAAO,CAAC,uBAAuB;IAqB/B;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACI,gBAAgB,CACrB,QAAQ,EAAE,OAAO,EAAE,EACnB,OAAO,CAAC,EAAE,aAAa,GACtB,cAAc,CAAC,gBAAgB,GAAG,YAAY,EAAE,sBAAsB,EAAE,SAAS,CAAC;CA2LtF"}
@@ -34,6 +34,38 @@ export class Model {
34
34
  get modelId() {
35
35
  return this.getConfig().modelId;
36
36
  }
37
+ /**
38
+ * Whether this model manages conversation state server-side.
39
+ *
40
+ * When `true`, the server tracks conversation context across turns, so the SDK
41
+ * sends only the latest message instead of the full history. After each invocation,
42
+ * the agent's local message history is cleared automatically.
43
+ *
44
+ * Model providers that support server-side state management should override this
45
+ * to return `true`.
46
+ *
47
+ * @returns `false` by default
48
+ */
49
+ get stateful() {
50
+ return false;
51
+ }
52
+ /**
53
+ * Count tokens for the given input before sending to the model.
54
+ *
55
+ * Used for proactive context management (e.g., triggering compression at a threshold).
56
+ * The base implementation uses a character-based heuristic (chars/4 for text, chars/2 for JSON).
57
+ *
58
+ * Subclasses should override this method to use native token counting APIs
59
+ * (e.g., Bedrock CountTokens, Anthropic countTokens, Gemini countTokens)
60
+ * for improved accuracy, falling back to `super.countTokens()` on API failure.
61
+ *
62
+ * @param messages - Array of conversation messages to count tokens for
63
+ * @param options - Optional options containing system prompt and tool specs
64
+ * @returns Total input token count
65
+ */
66
+ async countTokens(messages, options) {
67
+ return estimateTokensHeuristic(messages, options);
68
+ }
37
69
  /**
38
70
  * Converts event data to event class representation
39
71
  *
@@ -263,4 +295,92 @@ export class Model {
263
295
  }
264
296
  }
265
297
  }
298
+ /**
299
+ * Estimate tokens for a content block using character-based heuristics.
300
+ *
301
+ * @param block - Content block to estimate tokens for
302
+ * @returns Estimated token count
303
+ */
304
+ function estimateContentBlockTokens(block) {
305
+ let total = 0;
306
+ switch (block.type) {
307
+ case 'textBlock':
308
+ total += heuristicText(block.text);
309
+ break;
310
+ case 'toolUseBlock':
311
+ total += heuristicText(block.name);
312
+ total += heuristicJson(block.input);
313
+ break;
314
+ case 'toolResultBlock':
315
+ for (const item of block.content) {
316
+ if (item.type === 'textBlock') {
317
+ total += heuristicText(item.text);
318
+ }
319
+ else if (item.type === 'jsonBlock') {
320
+ total += heuristicJson(item.json);
321
+ }
322
+ }
323
+ break;
324
+ case 'reasoningBlock':
325
+ if (block.text)
326
+ total += heuristicText(block.text);
327
+ break;
328
+ case 'guardContentBlock':
329
+ if (block.text)
330
+ total += heuristicText(block.text.text);
331
+ break;
332
+ case 'citationsBlock':
333
+ for (const item of block.content) {
334
+ if ('text' in item)
335
+ total += heuristicText(item.text);
336
+ }
337
+ break;
338
+ default:
339
+ break;
340
+ }
341
+ return total;
342
+ }
343
+ /**
344
+ * Estimate token count using character-based heuristics (text: chars/4, JSON: chars/2).
345
+ * Dependency-free fallback used by the base Model class.
346
+ */
347
+ function estimateTokensHeuristic(messages, options) {
348
+ let total = 0;
349
+ if (options?.systemPrompt) {
350
+ if (typeof options.systemPrompt === 'string') {
351
+ total += heuristicText(options.systemPrompt);
352
+ }
353
+ else {
354
+ for (const block of options.systemPrompt) {
355
+ if (block.type === 'textBlock')
356
+ total += heuristicText(block.text);
357
+ else if (block.type === 'guardContentBlock' && block.text)
358
+ total += heuristicText(block.text.text);
359
+ }
360
+ }
361
+ }
362
+ for (const message of messages) {
363
+ for (const block of message.content) {
364
+ total += estimateContentBlockTokens(block);
365
+ }
366
+ }
367
+ if (options?.toolSpecs) {
368
+ for (const spec of options.toolSpecs) {
369
+ total += heuristicJson(spec);
370
+ }
371
+ }
372
+ return total;
373
+ }
374
+ function heuristicText(text) {
375
+ return Math.ceil(text.length / 4);
376
+ }
377
+ function heuristicJson(obj) {
378
+ try {
379
+ return Math.ceil(JSON.stringify(obj).length / 2);
380
+ }
381
+ catch {
382
+ logger.debug('unable to serialize object for token estimation, skipping');
383
+ return 0;
384
+ }
385
+ }
266
386
  //# sourceMappingURL=model.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"model.js","sourceRoot":"","sources":["../../../src/models/model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"model.js","sourceRoot":"","sources":["../../../src/models/model.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=chat.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat.test.d.ts","sourceRoot":"","sources":["../../../../../src/models/openai/__tests__/chat.test.ts"],"names":[],"mappings":""}
@@ -1,11 +1,13 @@
1
1
  import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
2
2
  import OpenAI from 'openai';
3
- import { isNode } from '../../__fixtures__/environment.js';
4
- import { OpenAIModel } from '../openai.js';
5
- import { ContextWindowOverflowError, ModelThrottledError } from '../../errors.js';
6
- import { collectIterator } from '../../__fixtures__/model-test-helpers.js';
7
- import { Message, TextBlock, ToolUseBlock, ToolResultBlock, GuardContentBlock } from '../../types/messages.js';
8
- import { ImageBlock, DocumentBlock, VideoBlock } from '../../types/media.js';
3
+ import { isNode } from '../../../__fixtures__/environment.js';
4
+ import { OpenAIModel } from '../index.js';
5
+ import { ContextWindowOverflowError, ModelThrottledError } from '../../../errors.js';
6
+ import { collectIterator } from '../../../__fixtures__/model-test-helpers.js';
7
+ import { Message, TextBlock, ToolUseBlock, ToolResultBlock, GuardContentBlock } from '../../../types/messages.js';
8
+ import { ImageBlock, DocumentBlock, VideoBlock } from '../../../types/media.js';
9
+ import { warnOnce } from '../../../logging/warn-once.js';
10
+ import { logger } from '../../../logging/logger.js';
9
11
  /**
10
12
  * Helper to create a mock OpenAI client with streaming support
11
13
  */
@@ -27,6 +29,9 @@ vi.mock('openai', () => {
27
29
  default: mockConstructor,
28
30
  };
29
31
  });
32
+ vi.mock('../../../logging/warn-once.js', () => ({
33
+ warnOnce: vi.fn(),
34
+ }));
30
35
  describe('OpenAIModel', () => {
31
36
  beforeEach(() => {
32
37
  vi.clearAllMocks();
@@ -72,6 +77,14 @@ describe('OpenAIModel', () => {
72
77
  modelId: customModelId,
73
78
  });
74
79
  });
80
+ it('warns when modelId is not explicitly set', () => {
81
+ new OpenAIModel({ api: 'chat', apiKey: 'sk-test' });
82
+ expect(warnOnce).toHaveBeenCalledWith(expect.objectContaining({ warn: expect.any(Function) }), expect.stringContaining('using default modelId'));
83
+ });
84
+ it('does not warn when modelId is explicitly set', () => {
85
+ new OpenAIModel({ api: 'chat', modelId: 'gpt-5.4', apiKey: 'sk-test' });
86
+ expect(warnOnce).not.toHaveBeenCalledWith(expect.objectContaining({ warn: expect.any(Function) }), expect.stringContaining('using default modelId'));
87
+ });
75
88
  it('uses API key from constructor parameter', () => {
76
89
  const apiKey = 'sk-explicit';
77
90
  new OpenAIModel({ api: 'chat', modelId: 'gpt-5.4', apiKey });
@@ -207,6 +220,70 @@ describe('OpenAIModel', () => {
207
220
  temperature: 0.7,
208
221
  });
209
222
  });
223
+ it('includes contextWindowLimit in config when provided', () => {
224
+ const provider = new OpenAIModel({
225
+ api: 'chat',
226
+ modelId: 'gpt-4o',
227
+ apiKey: 'sk-test',
228
+ contextWindowLimit: 128_000,
229
+ });
230
+ expect(provider.getConfig()).toStrictEqual({
231
+ modelId: 'gpt-4o',
232
+ contextWindowLimit: 128_000,
233
+ });
234
+ });
235
+ });
236
+ describe('managed params warning', () => {
237
+ it('warns on construction when params contains provider-managed keys', () => {
238
+ const warnSpy = vi.spyOn(logger, 'warn');
239
+ new OpenAIModel({
240
+ api: 'chat',
241
+ client: {},
242
+ params: { model: 'bad', stream: false },
243
+ });
244
+ expect(warnSpy).toHaveBeenCalledTimes(2);
245
+ expect(warnSpy).toHaveBeenCalledWith(expect.stringContaining("'model'"));
246
+ expect(warnSpy).toHaveBeenCalledWith(expect.stringContaining("'stream'"));
247
+ warnSpy.mockRestore();
248
+ });
249
+ it('warns on updateConfig when params contains provider-managed keys', () => {
250
+ const model = new OpenAIModel({ api: 'chat', client: {} });
251
+ const warnSpy = vi.spyOn(logger, 'warn');
252
+ model.updateConfig({ params: { stream_options: { include_usage: false } } });
253
+ expect(warnSpy).toHaveBeenCalledTimes(1);
254
+ expect(warnSpy).toHaveBeenCalledWith(expect.stringContaining("'stream_options'"));
255
+ warnSpy.mockRestore();
256
+ });
257
+ it('does not warn when params contains only non-managed keys', () => {
258
+ const warnSpy = vi.spyOn(logger, 'warn');
259
+ new OpenAIModel({ api: 'chat', client: {}, params: { seed: 42 } });
260
+ expect(warnSpy).not.toHaveBeenCalled();
261
+ warnSpy.mockRestore();
262
+ });
263
+ it('provider-managed fields in params are overridden and cannot take effect', async () => {
264
+ const captured = { request: null };
265
+ const mockClient = createMockClientWithCapture(captured);
266
+ const warnSpy = vi.spyOn(logger, 'warn');
267
+ const provider = new OpenAIModel({
268
+ api: 'chat',
269
+ modelId: 'gpt-5.4',
270
+ client: mockClient,
271
+ params: {
272
+ model: 'attacker-model',
273
+ messages: [{ role: 'user', content: 'hijacked' }],
274
+ stream: false,
275
+ stream_options: { include_usage: false },
276
+ },
277
+ });
278
+ const messages = [new Message({ role: 'user', content: [new TextBlock('Hi')] })];
279
+ await collectIterator(provider.stream(messages));
280
+ expect(captured.request.model).toBe('gpt-5.4');
281
+ expect(captured.request.stream).toBe(true);
282
+ expect(captured.request.stream_options).toEqual({ include_usage: true });
283
+ expect(Array.isArray(captured.request.messages)).toBe(true);
284
+ expect(captured.request.messages[0]).toEqual({ role: 'user', content: [{ type: 'text', text: 'Hi' }] });
285
+ warnSpy.mockRestore();
286
+ });
210
287
  });
211
288
  describe('stream', () => {
212
289
  describe('validation', () => {
@@ -1461,4 +1538,4 @@ describe('OpenAIModel', () => {
1461
1538
  });
1462
1539
  });
1463
1540
  });
1464
- //# sourceMappingURL=openai.test.js.map
1541
+ //# sourceMappingURL=chat.test.js.map