@strands-agents/sdk 0.0.1 → 0.1.1

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 (203) hide show
  1. package/README.md +112 -61
  2. package/dist/src/agent/__tests__/agent.test.js +269 -2
  3. package/dist/src/agent/__tests__/agent.test.js.map +1 -1
  4. package/dist/src/agent/agent.d.ts +40 -6
  5. package/dist/src/agent/agent.d.ts.map +1 -1
  6. package/dist/src/agent/agent.js +73 -12
  7. package/dist/src/agent/agent.js.map +1 -1
  8. package/dist/src/hooks/__tests__/registry.test.js +209 -58
  9. package/dist/src/hooks/__tests__/registry.test.js.map +1 -1
  10. package/dist/src/hooks/events.d.ts +2 -0
  11. package/dist/src/hooks/events.d.ts.map +1 -1
  12. package/dist/src/hooks/events.js +2 -0
  13. package/dist/src/hooks/events.js.map +1 -1
  14. package/dist/src/hooks/index.d.ts +1 -1
  15. package/dist/src/hooks/index.d.ts.map +1 -1
  16. package/dist/src/hooks/registry.d.ts +18 -3
  17. package/dist/src/hooks/registry.d.ts.map +1 -1
  18. package/dist/src/hooks/registry.js +43 -3
  19. package/dist/src/hooks/registry.js.map +1 -1
  20. package/dist/src/hooks/types.d.ts +6 -0
  21. package/dist/src/hooks/types.d.ts.map +1 -1
  22. package/dist/src/index.d.ts +4 -2
  23. package/dist/src/index.d.ts.map +1 -1
  24. package/dist/src/index.js +6 -2
  25. package/dist/src/index.js.map +1 -1
  26. package/dist/src/logging/__tests__/logger.test.d.ts +2 -0
  27. package/dist/src/logging/__tests__/logger.test.d.ts.map +1 -0
  28. package/dist/src/logging/__tests__/logger.test.js +70 -0
  29. package/dist/src/logging/__tests__/logger.test.js.map +1 -0
  30. package/dist/src/logging/index.d.ts +6 -0
  31. package/dist/src/logging/index.d.ts.map +1 -0
  32. package/dist/src/logging/index.js +5 -0
  33. package/dist/src/logging/index.js.map +1 -0
  34. package/dist/src/logging/logger.d.ts +30 -0
  35. package/dist/src/logging/logger.d.ts.map +1 -0
  36. package/dist/src/logging/logger.js +42 -0
  37. package/dist/src/logging/logger.js.map +1 -0
  38. package/dist/src/logging/types.d.ts +27 -0
  39. package/dist/src/logging/types.d.ts.map +1 -0
  40. package/dist/src/logging/types.js +5 -0
  41. package/dist/{tools → src/logging}/types.js.map +1 -1
  42. package/dist/src/models/__tests__/bedrock.test.js +79 -19
  43. package/dist/src/models/__tests__/bedrock.test.js.map +1 -1
  44. package/dist/src/models/__tests__/model.test.js +185 -2
  45. package/dist/src/models/__tests__/model.test.js.map +1 -1
  46. package/dist/src/models/__tests__/openai.test.js +5 -5
  47. package/dist/src/models/__tests__/openai.test.js.map +1 -1
  48. package/dist/src/models/bedrock.d.ts +8 -2
  49. package/dist/src/models/bedrock.d.ts.map +1 -1
  50. package/dist/src/models/bedrock.js +61 -22
  51. package/dist/src/models/bedrock.js.map +1 -1
  52. package/dist/src/models/model.d.ts +41 -8
  53. package/dist/src/models/model.d.ts.map +1 -1
  54. package/dist/src/models/model.js +40 -23
  55. package/dist/src/models/model.js.map +1 -1
  56. package/dist/src/models/openai.d.ts +9 -3
  57. package/dist/src/models/openai.d.ts.map +1 -1
  58. package/dist/src/models/openai.js +7 -8
  59. package/dist/src/models/openai.js.map +1 -1
  60. package/dist/src/tools/__tests__/tool.test.js +122 -0
  61. package/dist/src/tools/__tests__/tool.test.js.map +1 -1
  62. package/dist/src/tools/__tests__/zod-tool.test.js +197 -5
  63. package/dist/src/tools/__tests__/zod-tool.test.js.map +1 -1
  64. package/dist/src/tools/function-tool.d.ts +11 -3
  65. package/dist/src/tools/function-tool.d.ts.map +1 -1
  66. package/dist/src/tools/function-tool.js +16 -2
  67. package/dist/src/tools/function-tool.js.map +1 -1
  68. package/dist/src/tools/types.d.ts +2 -1
  69. package/dist/src/tools/types.d.ts.map +1 -1
  70. package/dist/src/tools/zod-tool.d.ts +21 -5
  71. package/dist/src/tools/zod-tool.d.ts.map +1 -1
  72. package/dist/src/tools/zod-tool.js +33 -11
  73. package/dist/src/tools/zod-tool.js.map +1 -1
  74. package/dist/src/types/messages.d.ts +9 -0
  75. package/dist/src/types/messages.d.ts.map +1 -1
  76. package/dist/src/types/messages.js +55 -46
  77. package/dist/src/types/messages.js.map +1 -1
  78. package/dist/vended_tools/file_editor/file-editor.d.ts +1 -1
  79. package/dist/vended_tools/notebook/notebook.d.ts +1 -1
  80. package/package.json +11 -11
  81. package/dist/__fixtures__/model-test-helpers.d.ts +0 -56
  82. package/dist/__fixtures__/model-test-helpers.d.ts.map +0 -1
  83. package/dist/__fixtures__/model-test-helpers.js +0 -85
  84. package/dist/__fixtures__/model-test-helpers.js.map +0 -1
  85. package/dist/__fixtures__/tool-helpers.d.ts +0 -15
  86. package/dist/__fixtures__/tool-helpers.d.ts.map +0 -1
  87. package/dist/__fixtures__/tool-helpers.js +0 -22
  88. package/dist/__fixtures__/tool-helpers.js.map +0 -1
  89. package/dist/__tests__/errors.test.d.ts +0 -2
  90. package/dist/__tests__/errors.test.d.ts.map +0 -1
  91. package/dist/__tests__/errors.test.js +0 -20
  92. package/dist/__tests__/errors.test.js.map +0 -1
  93. package/dist/__tests__/index.test.d.ts +0 -2
  94. package/dist/__tests__/index.test.d.ts.map +0 -1
  95. package/dist/__tests__/index.test.js +0 -27
  96. package/dist/__tests__/index.test.js.map +0 -1
  97. package/dist/errors.d.ts +0 -22
  98. package/dist/errors.d.ts.map +0 -1
  99. package/dist/errors.js +0 -25
  100. package/dist/errors.js.map +0 -1
  101. package/dist/index.d.ts +0 -19
  102. package/dist/index.d.ts.map +0 -1
  103. package/dist/index.js +0 -17
  104. package/dist/index.js.map +0 -1
  105. package/dist/models/__tests__/bedrock.test.d.ts +0 -2
  106. package/dist/models/__tests__/bedrock.test.d.ts.map +0 -1
  107. package/dist/models/__tests__/bedrock.test.js +0 -1161
  108. package/dist/models/__tests__/bedrock.test.js.map +0 -1
  109. package/dist/models/__tests__/model.test.d.ts +0 -2
  110. package/dist/models/__tests__/model.test.d.ts.map +0 -1
  111. package/dist/models/__tests__/model.test.js +0 -297
  112. package/dist/models/__tests__/model.test.js.map +0 -1
  113. package/dist/models/__tests__/openai.test.d.ts +0 -2
  114. package/dist/models/__tests__/openai.test.d.ts.map +0 -1
  115. package/dist/models/__tests__/openai.test.js +0 -1016
  116. package/dist/models/__tests__/openai.test.js.map +0 -1
  117. package/dist/models/__tests__/test-utils.d.ts +0 -10
  118. package/dist/models/__tests__/test-utils.d.ts.map +0 -1
  119. package/dist/models/__tests__/test-utils.js +0 -17
  120. package/dist/models/__tests__/test-utils.js.map +0 -1
  121. package/dist/models/bedrock.d.ts +0 -272
  122. package/dist/models/bedrock.d.ts.map +0 -1
  123. package/dist/models/bedrock.js +0 -679
  124. package/dist/models/bedrock.js.map +0 -1
  125. package/dist/models/model.d.ts +0 -89
  126. package/dist/models/model.d.ts.map +0 -1
  127. package/dist/models/model.js +0 -122
  128. package/dist/models/model.js.map +0 -1
  129. package/dist/models/openai.d.ts +0 -262
  130. package/dist/models/openai.d.ts.map +0 -1
  131. package/dist/models/openai.js +0 -625
  132. package/dist/models/openai.js.map +0 -1
  133. package/dist/models/streaming.d.ts +0 -226
  134. package/dist/models/streaming.d.ts.map +0 -1
  135. package/dist/models/streaming.js +0 -2
  136. package/dist/models/streaming.js.map +0 -1
  137. package/dist/src/agent/streaming.d.ts +0 -91
  138. package/dist/src/agent/streaming.d.ts.map +0 -1
  139. package/dist/src/agent/streaming.js +0 -2
  140. package/dist/src/agent/streaming.js.map +0 -1
  141. package/dist/src/conversation-manager/__tests__/conversation-manager.test.d.ts +0 -2
  142. package/dist/src/conversation-manager/__tests__/conversation-manager.test.d.ts.map +0 -1
  143. package/dist/src/conversation-manager/__tests__/conversation-manager.test.js +0 -10
  144. package/dist/src/conversation-manager/__tests__/conversation-manager.test.js.map +0 -1
  145. package/dist/src/conversation-manager/conversation-manager.d.ts +0 -73
  146. package/dist/src/conversation-manager/conversation-manager.d.ts.map +0 -1
  147. package/dist/src/conversation-manager/conversation-manager.js +0 -24
  148. package/dist/src/conversation-manager/conversation-manager.js.map +0 -1
  149. package/dist/tools/__tests__/registry.test.d.ts +0 -2
  150. package/dist/tools/__tests__/registry.test.d.ts.map +0 -1
  151. package/dist/tools/__tests__/registry.test.js +0 -253
  152. package/dist/tools/__tests__/registry.test.js.map +0 -1
  153. package/dist/tools/__tests__/tool.test.d.ts +0 -2
  154. package/dist/tools/__tests__/tool.test.d.ts.map +0 -1
  155. package/dist/tools/__tests__/tool.test.js +0 -761
  156. package/dist/tools/__tests__/tool.test.js.map +0 -1
  157. package/dist/tools/__tests__/zod-tool.test-d.d.ts +0 -2
  158. package/dist/tools/__tests__/zod-tool.test-d.d.ts.map +0 -1
  159. package/dist/tools/__tests__/zod-tool.test-d.js +0 -227
  160. package/dist/tools/__tests__/zod-tool.test-d.js.map +0 -1
  161. package/dist/tools/__tests__/zod-tool.test.d.ts +0 -2
  162. package/dist/tools/__tests__/zod-tool.test.d.ts.map +0 -1
  163. package/dist/tools/__tests__/zod-tool.test.js +0 -342
  164. package/dist/tools/__tests__/zod-tool.test.js.map +0 -1
  165. package/dist/tools/function-tool.d.ts +0 -156
  166. package/dist/tools/function-tool.d.ts.map +0 -1
  167. package/dist/tools/function-tool.js +0 -237
  168. package/dist/tools/function-tool.js.map +0 -1
  169. package/dist/tools/registry.d.ts +0 -43
  170. package/dist/tools/registry.d.ts.map +0 -1
  171. package/dist/tools/registry.js +0 -82
  172. package/dist/tools/registry.js.map +0 -1
  173. package/dist/tools/tool.d.ts +0 -157
  174. package/dist/tools/tool.d.ts.map +0 -1
  175. package/dist/tools/tool.js +0 -2
  176. package/dist/tools/tool.js.map +0 -1
  177. package/dist/tools/types.d.ts +0 -119
  178. package/dist/tools/types.d.ts.map +0 -1
  179. package/dist/tools/types.js +0 -2
  180. package/dist/tools/zod-tool.d.ts +0 -70
  181. package/dist/tools/zod-tool.d.ts.map +0 -1
  182. package/dist/tools/zod-tool.js +0 -96
  183. package/dist/tools/zod-tool.js.map +0 -1
  184. package/dist/types/__tests__/json.test.d.ts +0 -2
  185. package/dist/types/__tests__/json.test.d.ts.map +0 -1
  186. package/dist/types/__tests__/json.test.js +0 -129
  187. package/dist/types/__tests__/json.test.js.map +0 -1
  188. package/dist/types/__tests__/validation.test.d.ts +0 -2
  189. package/dist/types/__tests__/validation.test.d.ts.map +0 -1
  190. package/dist/types/__tests__/validation.test.js +0 -30
  191. package/dist/types/__tests__/validation.test.js.map +0 -1
  192. package/dist/types/json.d.ts +0 -45
  193. package/dist/types/json.d.ts.map +0 -1
  194. package/dist/types/json.js +0 -17
  195. package/dist/types/json.js.map +0 -1
  196. package/dist/types/messages.d.ts +0 -160
  197. package/dist/types/messages.d.ts.map +0 -1
  198. package/dist/types/messages.js +0 -2
  199. package/dist/types/messages.js.map +0 -1
  200. package/dist/types/validation.d.ts +0 -10
  201. package/dist/types/validation.d.ts.map +0 -1
  202. package/dist/types/validation.js +0 -15
  203. package/dist/types/validation.js.map +0 -1
package/README.md CHANGED
@@ -31,22 +31,36 @@
31
31
  </p>
32
32
  </div>
33
33
 
34
+ ---
35
+
36
+ ## Overview
37
+
34
38
  Strands Agents is a simple yet powerful SDK that takes a model-driven approach to building and running AI agents. The TypeScript SDK brings key features from the Python Strands framework to Node.js environments, enabling type-safe agent development for everything from simple assistants to complex workflows.
35
39
 
36
- ## Feature Overview
40
+ ### Key Features
41
+
42
+ - **🪶 Lightweight & Flexible**: Simple agent loop that works seamlessly in Node.js and browser environments
43
+ - **🔒 Type-Safe Tools**: Define tools easily using Zod schemas for robust input validation and type inference
44
+ - **🔌 Model Agnostic**: First-class support for Amazon Bedrock and OpenAI, with extensible architecture for custom providers
45
+ - **🔗 Built-in MCP**: Native support for Model Context Protocol (MCP) clients, enabling access to external tools and servers
46
+ - **⚡ Streaming Support**: Real-time response streaming for better user experience
47
+ - **🎣 Extensible Hooks**: Lifecycle hooks for monitoring and customizing agent behavior
48
+ - **💬 Conversation Management**: Flexible strategies for managing conversation history and context windows
37
49
 
38
- - **Lightweight & Flexible**: Simple agent loop that works seamlessly in Node.js.
39
- - **Type-Safe Tools**: Define tools easily using Zod schemas for robust input validation.
40
- - **Model Agnostic**: First-class support for Amazon Bedrock and OpenAI, with more providers coming.
41
- - **Built-in MCP**: Native support for Model Context Protocol (MCP) clients, enabling access to external tools and servers.
50
+ ---
42
51
 
43
52
  ## Quick Start
44
53
 
54
+ ### Installation
55
+
56
+ Ensure you have **[Node.js 20+](https://nodejs.org/)** installed, then:
57
+
45
58
  ```bash
46
- # Install Strands Agents
47
59
  npm install @strands-agents/sdk
48
60
  ```
49
61
 
62
+ ### Basic Usage
63
+
50
64
  ```typescript
51
65
  import { Agent } from '@strands-agents/sdk'
52
66
 
@@ -60,69 +74,24 @@ console.log(result)
60
74
 
61
75
  > **Note**: For the default Amazon Bedrock model provider, you'll need AWS credentials configured and model access enabled for Claude 4.5 Sonnet in your region.
62
76
 
63
- ## Installation
64
-
65
- Ensure you have **[Node.js 20+](https://nodejs.org/)** installed, then:
66
-
67
- ```bash
68
- npm install @strands-agents/sdk
69
- ```
70
-
71
- ## Features at a Glance
72
-
73
- ### Type-Safe Tools
74
-
75
- Easily build tools using the `tool` helper and `zod` for schema definition. This ensures the LLM provides exactly the data structure your code expects.
76
-
77
- ```typescript
78
- import { Agent, tool } from '@strands-agents/sdk'
79
- import { z } from 'zod'
80
-
81
- const weatherTool = tool({
82
- name: 'get_weather',
83
- description: 'Get the current weather for a specific location.',
84
- inputSchema: z.object({
85
- location: z.string().describe('The city and state, e.g., San Francisco, CA'),
86
- }),
87
- callback: (input) => {
88
- // input is fully typed based on the Zod schema above
89
- return `The weather in ${input.location} is 72°F and sunny.`
90
- },
91
- })
92
-
93
- const agent = new Agent({
94
- tools: [weatherTool],
95
- })
77
+ ---
96
78
 
97
- await agent.invoke('What is the weather in San Francisco?')
98
- ```
79
+ ## Core Concepts
99
80
 
100
- ### MCP Support
81
+ ### Agents
101
82
 
102
- Seamlessly integrate Model Context Protocol (MCP) servers to give your agents access to external systems and tools. The SDK includes built-in support for MCP clients.
83
+ The `Agent` class is the central orchestrator that manages the interaction loop between users, models, and tools.
103
84
 
104
85
  ```typescript
105
- import { Agent, McpClient, StdioClientTransport } from '@strands-agents/sdk'
106
-
107
- // Create a client for a local MCP server
108
- const chromeDevtools = new McpClient({
109
- transport: new StdioClientTransport({
110
- command: 'npx',
111
- args: ['-y', 'chrome-devtools-mcp'],
112
- }),
113
- })
86
+ import { Agent } from '@strands-agents/sdk'
114
87
 
115
88
  const agent = new Agent({
116
- systemPrompt: 'You are a helpful assistant using MCP tools.',
117
- tools: [chromeDevtools], // Pass the MCP client directly as a tool source
89
+ systemPrompt: 'You are a helpful assistant.',
118
90
  })
119
-
120
- await agent.invoke('Use a random tool from the MCP server.')
121
91
  ```
92
+ ### Model Providers
122
93
 
123
- ### Multiple Model Providers
124
-
125
- Switch between model providers easily.
94
+ Switch between model providers easily:
126
95
 
127
96
  **Amazon Bedrock (Default)**
128
97
 
@@ -132,6 +101,8 @@ import { Agent, BedrockModel } from '@strands-agents/sdk'
132
101
  const model = new BedrockModel({
133
102
  region: 'us-east-1',
134
103
  modelId: 'anthropic.claude-3-5-sonnet-20240620-v1:0',
104
+ maxTokens: 4096,
105
+ temperature: 0.7
135
106
  })
136
107
 
137
108
  const agent = new Agent({ model })
@@ -151,7 +122,7 @@ const agent = new Agent({ model })
151
122
 
152
123
  ### Streaming Responses
153
124
 
154
- Access the response as it is generated using the `stream` method:
125
+ Access responses as they are generated:
155
126
 
156
127
  ```typescript
157
128
  const agent = new Agent()
@@ -162,9 +133,77 @@ for await (const event of agent.stream('Tell me a story about a brave toaster.')
162
133
  }
163
134
  ```
164
135
 
136
+ ### Tools
137
+
138
+ Tools enable agents to interact with external systems and perform actions. Create type-safe tools using Zod schemas:
139
+
140
+ ```typescript
141
+ import { Agent, tool } from '@strands-agents/sdk'
142
+ import { z } from 'zod'
143
+
144
+ const weatherTool = tool({
145
+ name: 'get_weather',
146
+ description: 'Get the current weather for a specific location.',
147
+ inputSchema: z.object({
148
+ location: z.string().describe('The city and state, e.g., San Francisco, CA'),
149
+ }),
150
+ callback: (input) => {
151
+ // input is fully typed based on the Zod schema
152
+ return `The weather in ${input.location} is 72°F and sunny.`
153
+ },
154
+ })
155
+
156
+ const agent = new Agent({
157
+ tools: [weatherTool],
158
+ })
159
+
160
+ await agent.invoke('What is the weather in San Francisco?')
161
+ ```
162
+
163
+ **Vended Tools**: The SDK includes optional pre-built tools:
164
+ - **Notebook Tool**: Manage text-based notebooks for persistent note-taking
165
+ - **File Editor Tool**: Perform file system operations (read, write, edit files)
166
+ - **HTTP Request Tool**: Make HTTP requests to external APIs
167
+
168
+
169
+ ### MCP Integration
170
+
171
+ Seamlessly integrate Model Context Protocol (MCP) servers:
172
+
173
+ ```typescript
174
+ import { Agent, McpClient } from "@strands-agents/sdk";
175
+ import { StdioClientTransport } from "@modelcontextprotocol/sdk/client/stdio.js";
176
+
177
+ // Create a client for a local MCP server
178
+ const documentationTools = new McpClient({
179
+ transport: new StdioClientTransport({
180
+ command: "uvx",
181
+ args: ["awslabs.aws-documentation-mcp-server@latest"],
182
+ }),
183
+ });
184
+
185
+ const agent = new Agent({
186
+ systemPrompt: "You are a helpful assistant using MCP tools.",
187
+ tools: [documentationTools], // Pass the MCP client directly as a tool source
188
+ });
189
+
190
+ await agent.invoke("Use a random tool from the MCP server.");
191
+
192
+ await documentationTools.disconnect();
193
+ ```
194
+
195
+ ---
196
+
165
197
  ## Documentation
166
198
 
167
- For detailed guidance, tutorials, and concept overviews (shared between Python and TypeScript), please visit the [Strands Agents Documentation](https://strandsagents.com/).
199
+ For detailed guidance, tutorials, and concept overviews, please visit:
200
+
201
+ - **[Official Documentation](https://strandsagents.com/)**: Comprehensive guides and tutorials
202
+ - **[API Reference](.sop/summary/interfaces.md)**: Complete API documentation
203
+ - **[Examples](./examples/)**: Sample applications
204
+ - **[Contributing Guide](CONTRIBUTING.md)**: Development setup and guidelines
205
+
206
+ ---
168
207
 
169
208
  ## Contributing ❤️
170
209
 
@@ -176,10 +215,22 @@ We welcome contributions! See our [Contributing Guide](CONTRIBUTING.md) for deta
176
215
  - Code of Conduct
177
216
  - Security issue reporting
178
217
 
218
+ ---
219
+
179
220
  ## License
180
221
 
181
222
  This project is licensed under the Apache License 2.0 - see the [LICENSE](LICENSE) file for details.
182
223
 
224
+ ---
225
+
183
226
  ## Security
184
227
 
185
228
  See [CONTRIBUTING](CONTRIBUTING.md#security-issue-notifications) for more information on reporting security issues.
229
+
230
+ ---
231
+
232
+ ## ⚠️ Preview Status
233
+
234
+ Strands Agents is currently in public preview. During this period:
235
+ - APIs may change as we refine the SDK
236
+ - We welcome feedback and contributions
@@ -1,12 +1,13 @@
1
- import { describe, expect, it } from 'vitest';
1
+ import { describe, expect, it, vi } from 'vitest';
2
2
  import { Agent } from '../agent.js';
3
3
  import { MockMessageModel } from '../../__fixtures__/mock-message-model.js';
4
4
  import { collectGenerator } from '../../__fixtures__/model-test-helpers.js';
5
5
  import { createMockTool, createRandomTool } from '../../__fixtures__/tool-helpers.js';
6
6
  import { ConcurrentInvocationError } from '../../errors.js';
7
- import { MaxTokensError, TextBlock, CachePointBlock, AgentResult, Message, ToolUseBlock } from '../../index.js';
7
+ import { MaxTokensError, TextBlock, CachePointBlock, AgentResult, Message, ToolUseBlock, ToolResultBlock, ReasoningBlock, GuardContentBlock, ImageBlock, VideoBlock, DocumentBlock, } from '../../index.js';
8
8
  import { AgentPrinter } from '../printer.js';
9
9
  import { BeforeInvocationEvent, BeforeToolsEvent } from '../../hooks/events.js';
10
+ import { BedrockModel } from '../../models/bedrock.js';
10
11
  describe('Agent', () => {
11
12
  describe('stream', () => {
12
13
  describe('basic streaming', () => {
@@ -359,6 +360,36 @@ describe('Agent', () => {
359
360
  expect(agent).toBeDefined();
360
361
  });
361
362
  });
363
+ describe('when modifying systemPrompt', () => {
364
+ it('allows systemPrompt to be set after initialization', () => {
365
+ const agent = new Agent({ systemPrompt: 'Initial prompt' });
366
+ agent.systemPrompt = 'Updated prompt';
367
+ expect(agent.systemPrompt).toEqual('Updated prompt');
368
+ });
369
+ it('allows systemPrompt to be changed between turns', async () => {
370
+ const firstModel = new MockMessageModel().addTurn({ type: 'textBlock', text: 'First response' });
371
+ const streamSpy = vi.spyOn(firstModel, 'stream');
372
+ const agent = new Agent({ model: firstModel, systemPrompt: [new TextBlock('You are a helpful assistant')] });
373
+ // First invocation with initial system prompt
374
+ await agent.invoke('First prompt');
375
+ expect(agent.systemPrompt).toEqual([new TextBlock('You are a helpful assistant')]);
376
+ // Should have been called with the given promp
377
+ expect(streamSpy).toHaveBeenCalledWith(expect.any(Array), expect.objectContaining({
378
+ systemPrompt: [new TextBlock('You are a helpful assistant')],
379
+ toolSpecs: [],
380
+ }));
381
+ // Change system prompt and model
382
+ agent.systemPrompt = 'You are a coding expert';
383
+ // Second invocation should use new system prompt
384
+ streamSpy.mockReset();
385
+ await agent.invoke('Second prompt');
386
+ expect(agent.systemPrompt).toEqual('You are a coding expert');
387
+ expect(streamSpy).toHaveBeenCalledWith(expect.any(Array), expect.objectContaining({
388
+ systemPrompt: 'You are a coding expert',
389
+ toolSpecs: [],
390
+ }));
391
+ });
392
+ });
362
393
  });
363
394
  describe('model property', () => {
364
395
  describe('when accessing the model field', () => {
@@ -410,5 +441,241 @@ describe('Agent', () => {
410
441
  });
411
442
  });
412
443
  });
444
+ describe('multimodal input', () => {
445
+ describe('with string input', () => {
446
+ it('creates user message with single TextBlock', async () => {
447
+ const model = new MockMessageModel().addTurn(new TextBlock('Response'));
448
+ const agent = new Agent({ model });
449
+ await agent.invoke('Hello');
450
+ expect(agent.messages).toHaveLength(2);
451
+ expect(agent.messages[0]).toEqual(new Message({
452
+ role: 'user',
453
+ content: [new TextBlock('Hello')],
454
+ }));
455
+ });
456
+ });
457
+ describe('with ContentBlock[] input', () => {
458
+ it('creates single user message with single TextBlock', async () => {
459
+ const model = new MockMessageModel().addTurn(new TextBlock('Response'));
460
+ const agent = new Agent({ model });
461
+ await agent.invoke([new TextBlock('Hello')]);
462
+ expect(agent.messages).toHaveLength(2);
463
+ expect(agent.messages[0]).toEqual(new Message({
464
+ role: 'user',
465
+ content: [new TextBlock('Hello')],
466
+ }));
467
+ });
468
+ it('creates single user message with multiple blocks', async () => {
469
+ const model = new MockMessageModel().addTurn(new TextBlock('Response'));
470
+ const agent = new Agent({ model });
471
+ const contentBlocks = [new TextBlock('Analyze this'), new TextBlock('and this')];
472
+ await agent.invoke(contentBlocks);
473
+ expect(agent.messages).toHaveLength(2);
474
+ expect(agent.messages[0]).toEqual(new Message({
475
+ role: 'user',
476
+ content: contentBlocks,
477
+ }));
478
+ });
479
+ it('supports all ContentBlock types', async () => {
480
+ const model = new MockMessageModel().addTurn(new TextBlock('Response'));
481
+ const agent = new Agent({ model });
482
+ const contentBlocks = [
483
+ new TextBlock('Text content'),
484
+ new ToolUseBlock({ name: 'tool1', toolUseId: 'id-1', input: { key: 'value' } }),
485
+ new ToolResultBlock({
486
+ toolUseId: 'id-1',
487
+ status: 'success',
488
+ content: [new TextBlock('Result')],
489
+ }),
490
+ new ReasoningBlock({ text: 'My reasoning' }),
491
+ new CachePointBlock({ cacheType: 'default' }),
492
+ new GuardContentBlock({ text: { text: 'Guard content', qualifiers: ['grounding_source'] } }),
493
+ new ImageBlock({
494
+ format: 'png',
495
+ source: { url: 'https://example.com/image.png' },
496
+ }),
497
+ new VideoBlock({
498
+ format: 'mp4',
499
+ source: { s3Location: { uri: 's3://bucket/video.mp4' } },
500
+ }),
501
+ new DocumentBlock({
502
+ format: 'pdf',
503
+ name: 'doc.pdf',
504
+ source: { bytes: new Uint8Array([1, 2, 3]) },
505
+ }),
506
+ ];
507
+ await agent.invoke(contentBlocks);
508
+ expect(agent.messages).toHaveLength(2);
509
+ expect(agent.messages[0]).toEqual(new Message({
510
+ role: 'user',
511
+ content: contentBlocks,
512
+ }));
513
+ });
514
+ it('handles empty ContentBlock array', async () => {
515
+ const model = new MockMessageModel().addTurn(new TextBlock('Response'));
516
+ const agent = new Agent({ model });
517
+ await agent.invoke([]);
518
+ expect(agent.messages).toHaveLength(1); // Only response message added
519
+ });
520
+ it('accepts ContentBlockData[] and converts to ContentBlock[]', async () => {
521
+ const model = new MockMessageModel().addTurn(new TextBlock('Response'));
522
+ const agent = new Agent({ model });
523
+ await agent.invoke([
524
+ { text: 'Hello from data format' },
525
+ {
526
+ toolUse: {
527
+ name: 'testTool',
528
+ toolUseId: 'id-1',
529
+ input: { key: 'value' },
530
+ },
531
+ },
532
+ {
533
+ toolResult: {
534
+ toolUseId: 'id-1',
535
+ status: 'success',
536
+ content: [{ text: 'Tool result' }, { json: { result: 42 } }],
537
+ },
538
+ },
539
+ { reasoning: { text: 'My reasoning' } },
540
+ { cachePoint: { cacheType: 'default' } },
541
+ { guardContent: { text: { text: 'Guard text', qualifiers: ['query'] } } },
542
+ {
543
+ image: {
544
+ format: 'png',
545
+ source: { url: 'https://example.com/image.png' },
546
+ },
547
+ },
548
+ {
549
+ video: {
550
+ format: 'mp4',
551
+ source: { s3Location: { uri: 's3://bucket/video.mp4' } },
552
+ },
553
+ },
554
+ {
555
+ document: {
556
+ format: 'pdf',
557
+ name: 'doc.pdf',
558
+ source: { bytes: new Uint8Array([1, 2, 3]) },
559
+ },
560
+ },
561
+ ]);
562
+ expect(agent.messages).toHaveLength(2);
563
+ const userMessage = agent.messages[0];
564
+ expect(userMessage.role).toBe('user');
565
+ expect(userMessage.content).toHaveLength(9);
566
+ expect(userMessage.content[0]).toEqual(new TextBlock('Hello from data format'));
567
+ expect(userMessage.content[1]).toEqual(new ToolUseBlock({ name: 'testTool', toolUseId: 'id-1', input: { key: 'value' } }));
568
+ });
569
+ });
570
+ describe('with Message[] input', () => {
571
+ it('appends single message to conversation', async () => {
572
+ const model = new MockMessageModel().addTurn(new TextBlock('Response'));
573
+ const agent = new Agent({ model });
574
+ const userMessage = new Message({
575
+ role: 'user',
576
+ content: [new TextBlock('Hello')],
577
+ });
578
+ await agent.invoke([userMessage]);
579
+ expect(agent.messages).toHaveLength(2);
580
+ expect(agent.messages[0]).toEqual(userMessage);
581
+ });
582
+ it('appends multiple messages in order', async () => {
583
+ const model = new MockMessageModel().addTurn(new TextBlock('Response'));
584
+ const agent = new Agent({ model });
585
+ const messages = [
586
+ new Message({
587
+ role: 'user',
588
+ content: [new TextBlock('First message')],
589
+ }),
590
+ new Message({
591
+ role: 'assistant',
592
+ content: [new TextBlock('Second message')],
593
+ }),
594
+ new Message({
595
+ role: 'user',
596
+ content: [new TextBlock('Third message')],
597
+ }),
598
+ ];
599
+ await agent.invoke(messages);
600
+ expect(agent.messages).toHaveLength(4); // 3 input + 1 response
601
+ expect(agent.messages[0]).toEqual(messages[0]);
602
+ expect(agent.messages[1]).toEqual(messages[1]);
603
+ expect(agent.messages[2]).toEqual(messages[2]);
604
+ });
605
+ it('handles empty Message array', async () => {
606
+ const model = new MockMessageModel().addTurn(new TextBlock('Response'));
607
+ const agent = new Agent({ model });
608
+ await agent.invoke([]);
609
+ expect(agent.messages).toHaveLength(1); // Only response message added
610
+ });
611
+ it('accepts MessageData[] and converts to Message[]', async () => {
612
+ const model = new MockMessageModel().addTurn(new TextBlock('Response'));
613
+ const agent = new Agent({ model });
614
+ const messageDataArray = [
615
+ {
616
+ role: 'user',
617
+ content: [{ text: 'First message' }],
618
+ },
619
+ {
620
+ role: 'assistant',
621
+ content: [{ text: 'Second message' }],
622
+ },
623
+ ];
624
+ await agent.invoke(messageDataArray);
625
+ expect(agent.messages).toHaveLength(3); // 2 input + 1 response
626
+ expect(agent.messages[0]).toEqual(new Message({
627
+ role: 'user',
628
+ content: [new TextBlock('First message')],
629
+ }));
630
+ expect(agent.messages[1]).toEqual(new Message({
631
+ role: 'assistant',
632
+ content: [new TextBlock('Second message')],
633
+ }));
634
+ });
635
+ });
636
+ });
637
+ describe('model initialization', () => {
638
+ describe('when model is a string', () => {
639
+ it('creates BedrockModel with specified modelId', () => {
640
+ const agent = new Agent({ model: 'anthropic.claude-3-5-sonnet-20240620-v1:0' });
641
+ expect(agent.model).toBeDefined();
642
+ expect(agent.model.constructor.name).toBe('BedrockModel');
643
+ expect(agent.model.getConfig().modelId).toBe('anthropic.claude-3-5-sonnet-20240620-v1:0');
644
+ });
645
+ it('creates BedrockModel with custom model ID', () => {
646
+ const customModelId = 'custom.model.id';
647
+ const agent = new Agent({ model: customModelId });
648
+ expect(agent.model.getConfig().modelId).toBe(customModelId);
649
+ });
650
+ });
651
+ describe('when model is explicit BedrockModel', () => {
652
+ it('uses provided BedrockModel instance', () => {
653
+ const explicitModel = new BedrockModel({ modelId: 'explicit-model-id' });
654
+ const agent = new Agent({ model: explicitModel });
655
+ expect(agent.model).toBe(explicitModel);
656
+ expect(agent.model.getConfig().modelId).toBe('explicit-model-id');
657
+ });
658
+ });
659
+ describe('when no model is provided', () => {
660
+ it('creates default BedrockModel', () => {
661
+ const agent = new Agent();
662
+ expect(agent.model).toBeDefined();
663
+ expect(agent.model.constructor.name).toBe('BedrockModel');
664
+ });
665
+ });
666
+ describe('behavior parity', () => {
667
+ it('string model behaves identically to explicit BedrockModel with same modelId', () => {
668
+ const modelId = 'anthropic.claude-3-5-sonnet-20240620-v1:0';
669
+ // Create agent with string model ID
670
+ const agentWithString = new Agent({ model: modelId });
671
+ // Create agent with explicit BedrockModel
672
+ const explicitModel = new BedrockModel({ modelId });
673
+ const agentWithExplicit = new Agent({ model: explicitModel });
674
+ // Both should have same modelId
675
+ expect(agentWithString.model.getConfig().modelId).toBe(agentWithExplicit.model.getConfig().modelId);
676
+ expect(agentWithString.model.getConfig().modelId).toBe(modelId);
677
+ });
678
+ });
679
+ });
413
680
  });
414
681
  //# sourceMappingURL=agent.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"agent.test.js","sourceRoot":"","sources":["../../../../src/agent/__tests__/agent.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.test.js","sourceRoot":"","sources":["../../../../src/agent/__tests__/agent.test.ts"],"names":[],"mappings":"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"}