@strands-agents/sdk 0.0.1 → 0.1.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 (203) hide show
  1. package/README.md +105 -57
  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 +1 -1
  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
37
41
 
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.
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
49
+
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,19 +74,68 @@ 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
77
+ ---
64
78
 
65
- Ensure you have **[Node.js 20+](https://nodejs.org/)** installed, then:
79
+ ## Core Concepts
66
80
 
67
- ```bash
68
- npm install @strands-agents/sdk
81
+ ### Agents
82
+
83
+ The `Agent` class is the central orchestrator that manages the interaction loop between users, models, and tools.
84
+
85
+ ```typescript
86
+ import { Agent } from '@strands-agents/sdk'
87
+
88
+ const agent = new Agent({
89
+ systemPrompt: 'You are a helpful assistant.',
90
+ })
91
+ ```
92
+ ### Model Providers
93
+
94
+ Switch between model providers easily:
95
+
96
+ **Amazon Bedrock (Default)**
97
+
98
+ ```typescript
99
+ import { Agent, BedrockModel } from '@strands-agents/sdk'
100
+
101
+ const model = new BedrockModel({
102
+ region: 'us-east-1',
103
+ modelId: 'anthropic.claude-3-5-sonnet-20240620-v1:0',
104
+ maxTokens: 4096,
105
+ temperature: 0.7
106
+ })
107
+
108
+ const agent = new Agent({ model })
69
109
  ```
70
110
 
71
- ## Features at a Glance
111
+ **OpenAI**
72
112
 
73
- ### Type-Safe Tools
113
+ ```typescript
114
+ import { Agent } from '@strands-agents/sdk'
115
+ import { OpenAIModel } from '@strands-agents/sdk/openai'
74
116
 
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.
117
+ // Automatically uses process.env.OPENAI_API_KEY and defaults to gpt-4o
118
+ const model = new OpenAIModel()
119
+
120
+ const agent = new Agent({ model })
121
+ ```
122
+
123
+ ### Streaming Responses
124
+
125
+ Access responses as they are generated:
126
+
127
+ ```typescript
128
+ const agent = new Agent()
129
+
130
+ console.log('Agent response stream:')
131
+ for await (const event of agent.stream('Tell me a story about a brave toaster.')) {
132
+ console.log('[Event]', event.type)
133
+ }
134
+ ```
135
+
136
+ ### Tools
137
+
138
+ Tools enable agents to interact with external systems and perform actions. Create type-safe tools using Zod schemas:
76
139
 
77
140
  ```typescript
78
141
  import { Agent, tool } from '@strands-agents/sdk'
@@ -85,7 +148,7 @@ const weatherTool = tool({
85
148
  location: z.string().describe('The city and state, e.g., San Francisco, CA'),
86
149
  }),
87
150
  callback: (input) => {
88
- // input is fully typed based on the Zod schema above
151
+ // input is fully typed based on the Zod schema
89
152
  return `The weather in ${input.location} is 72°F and sunny.`
90
153
  },
91
154
  })
@@ -97,9 +160,15 @@ const agent = new Agent({
97
160
  await agent.invoke('What is the weather in San Francisco?')
98
161
  ```
99
162
 
100
- ### MCP Support
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
101
167
 
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.
168
+
169
+ ### MCP Integration
170
+
171
+ Seamlessly integrate Model Context Protocol (MCP) servers:
103
172
 
104
173
  ```typescript
105
174
  import { Agent, McpClient, StdioClientTransport } from '@strands-agents/sdk'
@@ -120,51 +189,18 @@ const agent = new Agent({
120
189
  await agent.invoke('Use a random tool from the MCP server.')
121
190
  ```
122
191
 
123
- ### Multiple Model Providers
124
-
125
- Switch between model providers easily.
192
+ ---
126
193
 
127
- **Amazon Bedrock (Default)**
128
-
129
- ```typescript
130
- import { Agent, BedrockModel } from '@strands-agents/sdk'
131
-
132
- const model = new BedrockModel({
133
- region: 'us-east-1',
134
- modelId: 'anthropic.claude-3-5-sonnet-20240620-v1:0',
135
- })
136
-
137
- const agent = new Agent({ model })
138
- ```
139
-
140
- **OpenAI**
141
-
142
- ```typescript
143
- import { Agent } from '@strands-agents/sdk'
144
- import { OpenAIModel } from '@strands-agents/sdk/openai'
145
-
146
- // Automatically uses process.env.OPENAI_API_KEY and defaults to gpt-4o
147
- const model = new OpenAIModel()
148
-
149
- const agent = new Agent({ model })
150
- ```
151
-
152
- ### Streaming Responses
153
-
154
- Access the response as it is generated using the `stream` method:
155
-
156
- ```typescript
157
- const agent = new Agent()
194
+ ## Documentation
158
195
 
159
- console.log('Agent response stream:')
160
- for await (const event of agent.stream('Tell me a story about a brave toaster.')) {
161
- console.log('[Event]', event.type)
162
- }
163
- ```
196
+ For detailed guidance, tutorials, and concept overviews, please visit:
164
197
 
165
- ## Documentation
198
+ - **[Official Documentation](https://strandsagents.com/)**: Comprehensive guides and tutorials
199
+ - **[API Reference](.sop/summary/interfaces.md)**: Complete API documentation
200
+ - **[Examples](./examples/)**: Sample applications
201
+ - **[Contributing Guide](CONTRIBUTING.md)**: Development setup and guidelines
166
202
 
167
- For detailed guidance, tutorials, and concept overviews (shared between Python and TypeScript), please visit the [Strands Agents Documentation](https://strandsagents.com/).
203
+ ---
168
204
 
169
205
  ## Contributing ❤️
170
206
 
@@ -176,10 +212,22 @@ We welcome contributions! See our [Contributing Guide](CONTRIBUTING.md) for deta
176
212
  - Code of Conduct
177
213
  - Security issue reporting
178
214
 
215
+ ---
216
+
179
217
  ## License
180
218
 
181
219
  This project is licensed under the Apache License 2.0 - see the [LICENSE](LICENSE) file for details.
182
220
 
221
+ ---
222
+
183
223
  ## Security
184
224
 
185
225
  See [CONTRIBUTING](CONTRIBUTING.md#security-issue-notifications) for more information on reporting security issues.
226
+
227
+ ---
228
+
229
+ ## ⚠️ Preview Status
230
+
231
+ Strands Agents is currently in public preview. During this period:
232
+ - APIs may change as we refine the SDK
233
+ - 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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"}