bedrock-agentcore 0.0.1 → 0.2.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 (192) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +131 -9
  3. package/dist/src/_utils/endpoints.d.ts +28 -0
  4. package/dist/src/_utils/endpoints.d.ts.map +1 -0
  5. package/dist/src/_utils/endpoints.js +44 -0
  6. package/dist/src/_utils/endpoints.js.map +1 -0
  7. package/dist/src/identity/client.d.ts +40 -0
  8. package/dist/src/identity/client.d.ts.map +1 -0
  9. package/dist/src/identity/client.js +109 -0
  10. package/dist/src/identity/client.js.map +1 -0
  11. package/dist/src/identity/index.d.ts +22 -0
  12. package/dist/src/identity/index.d.ts.map +1 -0
  13. package/dist/src/identity/index.js +24 -0
  14. package/dist/src/identity/index.js.map +1 -0
  15. package/dist/src/identity/types.d.ts +82 -0
  16. package/dist/src/identity/types.d.ts.map +1 -0
  17. package/dist/src/identity/types.js +5 -0
  18. package/dist/src/identity/types.js.map +1 -0
  19. package/dist/src/identity/wrappers.d.ts +54 -0
  20. package/dist/src/identity/wrappers.d.ts.map +1 -0
  21. package/dist/src/identity/wrappers.js +95 -0
  22. package/dist/src/identity/wrappers.js.map +1 -0
  23. package/dist/src/runtime/app.d.ts +144 -0
  24. package/dist/src/runtime/app.d.ts.map +1 -0
  25. package/dist/src/runtime/app.js +485 -0
  26. package/dist/src/runtime/app.js.map +1 -0
  27. package/dist/src/runtime/client.d.ts +154 -0
  28. package/dist/src/runtime/client.d.ts.map +1 -0
  29. package/dist/src/runtime/client.js +319 -0
  30. package/dist/src/runtime/client.js.map +1 -0
  31. package/dist/src/runtime/context.d.ts +33 -0
  32. package/dist/src/runtime/context.d.ts.map +1 -0
  33. package/dist/src/runtime/context.js +49 -0
  34. package/dist/src/runtime/context.js.map +1 -0
  35. package/dist/src/runtime/index.d.ts +8 -0
  36. package/dist/src/runtime/index.d.ts.map +1 -0
  37. package/dist/src/runtime/index.js +7 -0
  38. package/dist/src/runtime/index.js.map +1 -0
  39. package/dist/src/runtime/types.d.ts +429 -0
  40. package/dist/src/runtime/types.d.ts.map +1 -0
  41. package/dist/src/runtime/types.js +26 -0
  42. package/dist/src/runtime/types.js.map +1 -0
  43. package/dist/src/tools/browser/client.d.ts +125 -0
  44. package/dist/src/tools/browser/client.d.ts.map +1 -0
  45. package/dist/src/tools/browser/client.js +320 -0
  46. package/dist/src/tools/browser/client.js.map +1 -0
  47. package/dist/src/tools/browser/index.d.ts +4 -0
  48. package/dist/src/tools/browser/index.d.ts.map +1 -0
  49. package/dist/src/tools/browser/index.js +3 -0
  50. package/dist/src/tools/browser/index.js.map +1 -0
  51. package/dist/src/tools/browser/integrations/playwright/client.d.ts +147 -0
  52. package/dist/src/tools/browser/integrations/playwright/client.d.ts.map +1 -0
  53. package/dist/src/tools/browser/integrations/playwright/client.js +324 -0
  54. package/dist/src/tools/browser/integrations/playwright/client.js.map +1 -0
  55. package/dist/src/tools/browser/integrations/playwright/index.d.ts +20 -0
  56. package/dist/src/tools/browser/integrations/playwright/index.d.ts.map +1 -0
  57. package/dist/src/tools/browser/integrations/playwright/index.js +19 -0
  58. package/dist/src/tools/browser/integrations/playwright/index.js.map +1 -0
  59. package/dist/src/tools/browser/integrations/playwright/types.d.ts +169 -0
  60. package/dist/src/tools/browser/integrations/playwright/types.d.ts.map +1 -0
  61. package/dist/src/tools/browser/integrations/playwright/types.js +2 -0
  62. package/dist/src/tools/browser/integrations/playwright/types.js.map +1 -0
  63. package/dist/src/tools/browser/integrations/strands/click-tool.d.ts +20 -0
  64. package/dist/src/tools/browser/integrations/strands/click-tool.d.ts.map +1 -0
  65. package/dist/src/tools/browser/integrations/strands/click-tool.js +33 -0
  66. package/dist/src/tools/browser/integrations/strands/click-tool.js.map +1 -0
  67. package/dist/src/tools/browser/integrations/strands/evaluate-tool.d.ts +20 -0
  68. package/dist/src/tools/browser/integrations/strands/evaluate-tool.d.ts.map +1 -0
  69. package/dist/src/tools/browser/integrations/strands/evaluate-tool.js +34 -0
  70. package/dist/src/tools/browser/integrations/strands/evaluate-tool.js.map +1 -0
  71. package/dist/src/tools/browser/integrations/strands/get-html-tool.d.ts +19 -0
  72. package/dist/src/tools/browser/integrations/strands/get-html-tool.d.ts.map +1 -0
  73. package/dist/src/tools/browser/integrations/strands/get-html-tool.js +32 -0
  74. package/dist/src/tools/browser/integrations/strands/get-html-tool.js.map +1 -0
  75. package/dist/src/tools/browser/integrations/strands/get-text-tool.d.ts +19 -0
  76. package/dist/src/tools/browser/integrations/strands/get-text-tool.d.ts.map +1 -0
  77. package/dist/src/tools/browser/integrations/strands/get-text-tool.js +32 -0
  78. package/dist/src/tools/browser/integrations/strands/get-text-tool.js.map +1 -0
  79. package/dist/src/tools/browser/integrations/strands/index.d.ts +25 -0
  80. package/dist/src/tools/browser/integrations/strands/index.d.ts.map +1 -0
  81. package/dist/src/tools/browser/integrations/strands/index.js +25 -0
  82. package/dist/src/tools/browser/integrations/strands/index.js.map +1 -0
  83. package/dist/src/tools/browser/integrations/strands/navigate-tool.d.ts +21 -0
  84. package/dist/src/tools/browser/integrations/strands/navigate-tool.d.ts.map +1 -0
  85. package/dist/src/tools/browser/integrations/strands/navigate-tool.js +41 -0
  86. package/dist/src/tools/browser/integrations/strands/navigate-tool.js.map +1 -0
  87. package/dist/src/tools/browser/integrations/strands/screenshot-tool.d.ts +29 -0
  88. package/dist/src/tools/browser/integrations/strands/screenshot-tool.d.ts.map +1 -0
  89. package/dist/src/tools/browser/integrations/strands/screenshot-tool.js +52 -0
  90. package/dist/src/tools/browser/integrations/strands/screenshot-tool.js.map +1 -0
  91. package/dist/src/tools/browser/integrations/strands/tools.d.ts +119 -0
  92. package/dist/src/tools/browser/integrations/strands/tools.d.ts.map +1 -0
  93. package/dist/src/tools/browser/integrations/strands/tools.js +141 -0
  94. package/dist/src/tools/browser/integrations/strands/tools.js.map +1 -0
  95. package/dist/src/tools/browser/integrations/strands/type-tool.d.ts +22 -0
  96. package/dist/src/tools/browser/integrations/strands/type-tool.d.ts.map +1 -0
  97. package/dist/src/tools/browser/integrations/strands/type-tool.js +37 -0
  98. package/dist/src/tools/browser/integrations/strands/type-tool.js.map +1 -0
  99. package/dist/src/tools/browser/integrations/vercel-ai/click-tool.d.ts +18 -0
  100. package/dist/src/tools/browser/integrations/vercel-ai/click-tool.d.ts.map +1 -0
  101. package/dist/src/tools/browser/integrations/vercel-ai/click-tool.js +31 -0
  102. package/dist/src/tools/browser/integrations/vercel-ai/click-tool.js.map +1 -0
  103. package/dist/src/tools/browser/integrations/vercel-ai/evaluate-tool.d.ts +18 -0
  104. package/dist/src/tools/browser/integrations/vercel-ai/evaluate-tool.d.ts.map +1 -0
  105. package/dist/src/tools/browser/integrations/vercel-ai/evaluate-tool.js +32 -0
  106. package/dist/src/tools/browser/integrations/vercel-ai/evaluate-tool.js.map +1 -0
  107. package/dist/src/tools/browser/integrations/vercel-ai/get-html-tool.d.ts +17 -0
  108. package/dist/src/tools/browser/integrations/vercel-ai/get-html-tool.d.ts.map +1 -0
  109. package/dist/src/tools/browser/integrations/vercel-ai/get-html-tool.js +30 -0
  110. package/dist/src/tools/browser/integrations/vercel-ai/get-html-tool.js.map +1 -0
  111. package/dist/src/tools/browser/integrations/vercel-ai/get-text-tool.d.ts +17 -0
  112. package/dist/src/tools/browser/integrations/vercel-ai/get-text-tool.d.ts.map +1 -0
  113. package/dist/src/tools/browser/integrations/vercel-ai/get-text-tool.js +30 -0
  114. package/dist/src/tools/browser/integrations/vercel-ai/get-text-tool.js.map +1 -0
  115. package/dist/src/tools/browser/integrations/vercel-ai/index.d.ts +19 -0
  116. package/dist/src/tools/browser/integrations/vercel-ai/index.d.ts.map +1 -0
  117. package/dist/src/tools/browser/integrations/vercel-ai/index.js +19 -0
  118. package/dist/src/tools/browser/integrations/vercel-ai/index.js.map +1 -0
  119. package/dist/src/tools/browser/integrations/vercel-ai/navigate-tool.d.ts +19 -0
  120. package/dist/src/tools/browser/integrations/vercel-ai/navigate-tool.d.ts.map +1 -0
  121. package/dist/src/tools/browser/integrations/vercel-ai/navigate-tool.js +39 -0
  122. package/dist/src/tools/browser/integrations/vercel-ai/navigate-tool.js.map +1 -0
  123. package/dist/src/tools/browser/integrations/vercel-ai/screenshot-tool.d.ts +22 -0
  124. package/dist/src/tools/browser/integrations/vercel-ai/screenshot-tool.d.ts.map +1 -0
  125. package/dist/src/tools/browser/integrations/vercel-ai/screenshot-tool.js +44 -0
  126. package/dist/src/tools/browser/integrations/vercel-ai/screenshot-tool.js.map +1 -0
  127. package/dist/src/tools/browser/integrations/vercel-ai/tools.d.ts +123 -0
  128. package/dist/src/tools/browser/integrations/vercel-ai/tools.d.ts.map +1 -0
  129. package/dist/src/tools/browser/integrations/vercel-ai/tools.js +145 -0
  130. package/dist/src/tools/browser/integrations/vercel-ai/tools.js.map +1 -0
  131. package/dist/src/tools/browser/integrations/vercel-ai/type-tool.d.ts +20 -0
  132. package/dist/src/tools/browser/integrations/vercel-ai/type-tool.d.ts.map +1 -0
  133. package/dist/src/tools/browser/integrations/vercel-ai/type-tool.js +35 -0
  134. package/dist/src/tools/browser/integrations/vercel-ai/type-tool.js.map +1 -0
  135. package/dist/src/tools/browser/types.d.ts +336 -0
  136. package/dist/src/tools/browser/types.d.ts.map +1 -0
  137. package/dist/src/tools/browser/types.js +17 -0
  138. package/dist/src/tools/browser/types.js.map +1 -0
  139. package/dist/src/tools/code-interpreter/client.d.ts +214 -0
  140. package/dist/src/tools/code-interpreter/client.d.ts.map +1 -0
  141. package/dist/src/tools/code-interpreter/client.js +518 -0
  142. package/dist/src/tools/code-interpreter/client.js.map +1 -0
  143. package/dist/src/tools/code-interpreter/index.d.ts +4 -0
  144. package/dist/src/tools/code-interpreter/index.d.ts.map +1 -0
  145. package/dist/src/tools/code-interpreter/index.js +5 -0
  146. package/dist/src/tools/code-interpreter/index.js.map +1 -0
  147. package/dist/src/tools/code-interpreter/integrations/strands/execute-code-tool.d.ts +28 -0
  148. package/dist/src/tools/code-interpreter/integrations/strands/execute-code-tool.d.ts.map +1 -0
  149. package/dist/src/tools/code-interpreter/integrations/strands/execute-code-tool.js +47 -0
  150. package/dist/src/tools/code-interpreter/integrations/strands/execute-code-tool.js.map +1 -0
  151. package/dist/src/tools/code-interpreter/integrations/strands/execute-command-tool.d.ts +27 -0
  152. package/dist/src/tools/code-interpreter/integrations/strands/execute-command-tool.d.ts.map +1 -0
  153. package/dist/src/tools/code-interpreter/integrations/strands/execute-command-tool.js +42 -0
  154. package/dist/src/tools/code-interpreter/integrations/strands/execute-command-tool.js.map +1 -0
  155. package/dist/src/tools/code-interpreter/integrations/strands/file-operations-tool.d.ts +33 -0
  156. package/dist/src/tools/code-interpreter/integrations/strands/file-operations-tool.d.ts.map +1 -0
  157. package/dist/src/tools/code-interpreter/integrations/strands/file-operations-tool.js +78 -0
  158. package/dist/src/tools/code-interpreter/integrations/strands/file-operations-tool.js.map +1 -0
  159. package/dist/src/tools/code-interpreter/integrations/strands/index.d.ts +32 -0
  160. package/dist/src/tools/code-interpreter/integrations/strands/index.d.ts.map +1 -0
  161. package/dist/src/tools/code-interpreter/integrations/strands/index.js +32 -0
  162. package/dist/src/tools/code-interpreter/integrations/strands/index.js.map +1 -0
  163. package/dist/src/tools/code-interpreter/integrations/strands/tools.d.ts +94 -0
  164. package/dist/src/tools/code-interpreter/integrations/strands/tools.d.ts.map +1 -0
  165. package/dist/src/tools/code-interpreter/integrations/strands/tools.js +112 -0
  166. package/dist/src/tools/code-interpreter/integrations/strands/tools.js.map +1 -0
  167. package/dist/src/tools/code-interpreter/integrations/vercel-ai/execute-code-tool.d.ts +27 -0
  168. package/dist/src/tools/code-interpreter/integrations/vercel-ai/execute-code-tool.d.ts.map +1 -0
  169. package/dist/src/tools/code-interpreter/integrations/vercel-ai/execute-code-tool.js +46 -0
  170. package/dist/src/tools/code-interpreter/integrations/vercel-ai/execute-code-tool.js.map +1 -0
  171. package/dist/src/tools/code-interpreter/integrations/vercel-ai/execute-command-tool.d.ts +26 -0
  172. package/dist/src/tools/code-interpreter/integrations/vercel-ai/execute-command-tool.d.ts.map +1 -0
  173. package/dist/src/tools/code-interpreter/integrations/vercel-ai/execute-command-tool.js +41 -0
  174. package/dist/src/tools/code-interpreter/integrations/vercel-ai/execute-command-tool.js.map +1 -0
  175. package/dist/src/tools/code-interpreter/integrations/vercel-ai/file-operations-tool.d.ts +32 -0
  176. package/dist/src/tools/code-interpreter/integrations/vercel-ai/file-operations-tool.d.ts.map +1 -0
  177. package/dist/src/tools/code-interpreter/integrations/vercel-ai/file-operations-tool.js +77 -0
  178. package/dist/src/tools/code-interpreter/integrations/vercel-ai/file-operations-tool.js.map +1 -0
  179. package/dist/src/tools/code-interpreter/integrations/vercel-ai/index.d.ts +26 -0
  180. package/dist/src/tools/code-interpreter/integrations/vercel-ai/index.d.ts.map +1 -0
  181. package/dist/src/tools/code-interpreter/integrations/vercel-ai/index.js +26 -0
  182. package/dist/src/tools/code-interpreter/integrations/vercel-ai/index.js.map +1 -0
  183. package/dist/src/tools/code-interpreter/integrations/vercel-ai/tools.d.ts +94 -0
  184. package/dist/src/tools/code-interpreter/integrations/vercel-ai/tools.d.ts.map +1 -0
  185. package/dist/src/tools/code-interpreter/integrations/vercel-ai/tools.js +112 -0
  186. package/dist/src/tools/code-interpreter/integrations/vercel-ai/tools.js.map +1 -0
  187. package/dist/src/tools/code-interpreter/types.d.ts +473 -0
  188. package/dist/src/tools/code-interpreter/types.d.ts.map +1 -0
  189. package/dist/src/tools/code-interpreter/types.js +52 -0
  190. package/dist/src/tools/code-interpreter/types.js.map +1 -0
  191. package/package.json +134 -12
  192. package/index.js +0 -4
@@ -0,0 +1,518 @@
1
+ import { Buffer } from 'node:buffer';
2
+ import { BedrockAgentCoreClient, StartCodeInterpreterSessionCommand, StopCodeInterpreterSessionCommand, InvokeCodeInterpreterCommand, GetCodeInterpreterSessionCommand, ListCodeInterpreterSessionsCommand, } from '@aws-sdk/client-bedrock-agentcore';
3
+ import { DEFAULT_IDENTIFIER, DEFAULT_SESSION_NAME, DEFAULT_TIMEOUT, DEFAULT_REGION } from './types.js';
4
+ /**
5
+ * Client for AWS Bedrock Code Interpreter.
6
+ *
7
+ * Provides functionality to execute Python, JavaScript, and TypeScript code
8
+ * in isolated sandbox environments with file system access and shell commands.
9
+ *
10
+ * Each CodeInterpreter instance manages a single session. Sessions are automatically
11
+ * created on first use and can be explicitly managed with startSession/stopSession.
12
+ *
13
+ * @example
14
+ * ```typescript
15
+ * const interpreter = new CodeInterpreter({ region: 'us-east-1' })
16
+ *
17
+ * // Execute code (auto-creates session)
18
+ * await interpreter.executeCode({ code: 'print("Hello")' })
19
+ *
20
+ * // Explicitly manage session lifecycle
21
+ * await interpreter.startSession({ sessionName: 'my-session' })
22
+ * await interpreter.executeCode({ code: 'x = 1' })
23
+ * await interpreter.stopSession()
24
+ * ```
25
+ */
26
+ export class CodeInterpreter {
27
+ region;
28
+ identifier;
29
+ _client;
30
+ _session = null;
31
+ _credentialsProvider = undefined;
32
+ /**
33
+ * Creates a new CodeInterpreter instance.
34
+ *
35
+ * @param config - Configuration options
36
+ */
37
+ constructor(config) {
38
+ this.region = config.region ?? process.env.AWS_REGION ?? DEFAULT_REGION;
39
+ this.identifier = config.identifier ?? DEFAULT_IDENTIFIER;
40
+ this._credentialsProvider = config.credentialsProvider;
41
+ this._client = new BedrockAgentCoreClient({
42
+ region: this.region,
43
+ ...(this._credentialsProvider && { credentials: this._credentialsProvider }),
44
+ ...config.clientConfig,
45
+ });
46
+ }
47
+ // ===========================
48
+ // Session Management
49
+ // ===========================
50
+ /**
51
+ * Start a new code interpreter session.
52
+ *
53
+ * @param params - Session configuration
54
+ * @returns Session information including AWS-assigned session ID
55
+ *
56
+ * @example
57
+ * ```typescript
58
+ * const session = await interpreter.startSession({
59
+ * sessionName: 'data-analysis',
60
+ * description: 'Processing customer data',
61
+ * timeout: 1800
62
+ * })
63
+ * ```
64
+ */
65
+ async startSession(params) {
66
+ if (this._session) {
67
+ throw new Error('Session already active. Call stopSession() first.');
68
+ }
69
+ const sessionName = params?.sessionName ?? DEFAULT_SESSION_NAME;
70
+ // Call AWS SDK to start the session
71
+ const command = new StartCodeInterpreterSessionCommand({
72
+ codeInterpreterIdentifier: this.identifier,
73
+ name: sessionName,
74
+ sessionTimeoutSeconds: params?.timeout ?? DEFAULT_TIMEOUT,
75
+ });
76
+ const response = await this._client.send(command);
77
+ const sessionInfo = {
78
+ sessionName,
79
+ sessionId: response.sessionId,
80
+ createdAt: response.createdAt,
81
+ ...(params?.description !== undefined && { description: params.description }),
82
+ };
83
+ this._session = sessionInfo;
84
+ return sessionInfo;
85
+ }
86
+ /**
87
+ * Stop the active code interpreter session.
88
+ * Gracefully handles non-existent sessions without throwing errors.
89
+ *
90
+ * @example
91
+ * ```typescript
92
+ * await interpreter.stopSession()
93
+ * ```
94
+ */
95
+ async stopSession() {
96
+ // Gracefully return if session doesn't exist
97
+ if (!this._session) {
98
+ return;
99
+ }
100
+ // Call AWS SDK to stop the session
101
+ const command = new StopCodeInterpreterSessionCommand({
102
+ codeInterpreterIdentifier: this.identifier,
103
+ sessionId: this._session.sessionId,
104
+ });
105
+ await this._client.send(command);
106
+ this._session = null;
107
+ }
108
+ /**
109
+ * Get detailed information about a code interpreter session.
110
+ *
111
+ * @param params - Optional parameters specifying which session to query
112
+ * @returns Detailed session information
113
+ *
114
+ * @example
115
+ * ```typescript
116
+ * // Get current active session details
117
+ * const sessionInfo = await interpreter.getSession()
118
+ * console.log(`Session status: ${sessionInfo.status}`)
119
+ *
120
+ * // Get details for a specific session
121
+ * const sessionInfo = await interpreter.getSession({
122
+ * sessionId: 'specific-session-id'
123
+ * })
124
+ * ```
125
+ */
126
+ async getSession(params) {
127
+ const interpreterId = params?.interpreterId ?? this.identifier;
128
+ const sessionId = params?.sessionId ?? this._session?.sessionId;
129
+ if (!interpreterId || !sessionId) {
130
+ throw new Error('Interpreter ID and Session ID must be provided or available from current session. ' +
131
+ 'Start a session first or provide explicit IDs.');
132
+ }
133
+ const command = new GetCodeInterpreterSessionCommand({
134
+ codeInterpreterIdentifier: interpreterId,
135
+ sessionId,
136
+ });
137
+ const response = await this._client.send(command);
138
+ // Using type extension for fields not in SDK types yet
139
+ const responseWithExtras = response;
140
+ return {
141
+ sessionId: response.sessionId,
142
+ codeInterpreterIdentifier: response.codeInterpreterIdentifier,
143
+ name: response.name,
144
+ status: response.status ?? 'UNKNOWN',
145
+ createdAt: response.createdAt,
146
+ lastUpdatedAt: responseWithExtras.lastUpdatedAt ?? response.createdAt,
147
+ sessionTimeoutSeconds: response.sessionTimeoutSeconds,
148
+ };
149
+ }
150
+ /**
151
+ * List code interpreter sessions for this interpreter.
152
+ *
153
+ * @param params - Optional filtering and pagination parameters
154
+ * @returns List of session summaries with optional pagination token
155
+ *
156
+ * @example
157
+ * ```typescript
158
+ * // List all active sessions
159
+ * const response = await interpreter.listSessions({ status: 'READY' })
160
+ * for (const session of response.items) {
161
+ * console.log(`Session ${session.sessionId}: ${session.status}`)
162
+ * }
163
+ *
164
+ * // Paginate through results
165
+ * let response = await interpreter.listSessions({ maxResults: 10 })
166
+ * while (response.nextToken) {
167
+ * response = await interpreter.listSessions({
168
+ * maxResults: 10,
169
+ * nextToken: response.nextToken
170
+ * })
171
+ * }
172
+ * ```
173
+ */
174
+ async listSessions(params) {
175
+ const interpreterId = params?.interpreterId ?? this.identifier;
176
+ if (!interpreterId) {
177
+ throw new Error('Interpreter ID must be provided or available from configuration');
178
+ }
179
+ const command = new ListCodeInterpreterSessionsCommand({
180
+ codeInterpreterIdentifier: interpreterId,
181
+ ...(params?.status && {
182
+ status: params.status,
183
+ }),
184
+ ...(params?.maxResults && { maxResults: params.maxResults }),
185
+ ...(params?.nextToken && { nextToken: params.nextToken }),
186
+ });
187
+ const response = await this._client.send(command);
188
+ const items = response.items?.map((item) => ({
189
+ sessionId: item.sessionId,
190
+ name: item.name,
191
+ status: item.status ?? 'UNKNOWN',
192
+ createdAt: item.createdAt,
193
+ lastUpdatedAt: item.lastUpdatedAt,
194
+ })) ?? [];
195
+ return {
196
+ items,
197
+ ...(response.nextToken && { nextToken: response.nextToken }),
198
+ };
199
+ }
200
+ // ===========================
201
+ // Code Execution
202
+ // ===========================
203
+ /**
204
+ * Execute code in a code interpreter session.
205
+ * Automatically creates a session if one doesn't exist.
206
+ *
207
+ * @param params - Execution parameters
208
+ * @returns Execution result with output or error
209
+ *
210
+ * @example
211
+ * ```typescript
212
+ * // Auto-creates default session
213
+ * const result = await interpreter.executeCode({
214
+ * code: 'print("Hello")',
215
+ * language: 'python'
216
+ * })
217
+ * ```
218
+ */
219
+ async executeCode(params) {
220
+ if (!this._session) {
221
+ await this.startSession();
222
+ }
223
+ try {
224
+ const command = new InvokeCodeInterpreterCommand({
225
+ codeInterpreterIdentifier: this.identifier,
226
+ sessionId: this._session.sessionId,
227
+ name: 'executeCode',
228
+ arguments: {
229
+ code: params.code,
230
+ language: params.language ?? 'python',
231
+ ...(params.clearContext !== undefined && { clearContext: params.clearContext }),
232
+ },
233
+ });
234
+ const response = await this._client.send(command);
235
+ // Returns raw content string from AWS
236
+ return await this._parseInvokeResponse(response);
237
+ }
238
+ catch (error) {
239
+ return `Error: ${error instanceof Error ? error.message : 'Unknown execution error'}`;
240
+ }
241
+ }
242
+ // ===========================
243
+ // Command Execution
244
+ // ===========================
245
+ /**
246
+ * Execute a shell command in a code interpreter session.
247
+ * Automatically creates a session if one doesn't exist.
248
+ *
249
+ * @param params - Command parameters
250
+ * @returns Command result with output or error
251
+ *
252
+ * @example
253
+ * ```typescript
254
+ * const result = await interpreter.executeCommand({
255
+ * command: 'ls -la'
256
+ * })
257
+ * ```
258
+ */
259
+ async executeCommand(params) {
260
+ if (!this._session) {
261
+ await this.startSession();
262
+ }
263
+ try {
264
+ const command = new InvokeCodeInterpreterCommand({
265
+ codeInterpreterIdentifier: this.identifier,
266
+ sessionId: this._session.sessionId,
267
+ name: 'executeCommand',
268
+ arguments: {
269
+ command: params.command,
270
+ },
271
+ });
272
+ const response = await this._client.send(command);
273
+ // Returns raw content string from AWS
274
+ return await this._parseInvokeResponse(response);
275
+ }
276
+ catch (error) {
277
+ return `Error: ${error instanceof Error ? error.message : 'Command execution failed'}`;
278
+ }
279
+ }
280
+ // ===========================
281
+ // File Operations
282
+ // ===========================
283
+ /**
284
+ * Read files from the code interpreter sandbox.
285
+ * Automatically creates a session if one doesn't exist.
286
+ *
287
+ * @param params - Read parameters
288
+ * @returns Read result with file contents or errors
289
+ *
290
+ * @example
291
+ * ```typescript
292
+ * const result = await interpreter.readFiles({
293
+ * paths: ['data.txt', 'output.json']
294
+ * })
295
+ * ```
296
+ */
297
+ async readFiles(params) {
298
+ if (!this._session) {
299
+ await this.startSession();
300
+ }
301
+ try {
302
+ const command = new InvokeCodeInterpreterCommand({
303
+ codeInterpreterIdentifier: this.identifier,
304
+ sessionId: this._session.sessionId,
305
+ name: 'readFiles',
306
+ arguments: {
307
+ paths: params.paths,
308
+ },
309
+ });
310
+ const response = await this._client.send(command);
311
+ // Returns raw content string from AWS
312
+ return await this._parseInvokeResponse(response);
313
+ }
314
+ catch (error) {
315
+ return `Error: ${error instanceof Error ? error.message : 'Read failed'}`;
316
+ }
317
+ }
318
+ /**
319
+ * Write files to the code interpreter sandbox.
320
+ * Automatically creates a session if one doesn't exist.
321
+ *
322
+ * @param params - Write parameters
323
+ * @returns Write result with written file paths or errors
324
+ *
325
+ * @example
326
+ * ```typescript
327
+ * await interpreter.writeFiles({
328
+ * files: [
329
+ * { path: 'script.py', content: 'print("Hello")' },
330
+ * { path: 'data.json', content: '{"key": "value"}' }
331
+ * ]
332
+ * })
333
+ * ```
334
+ */
335
+ async writeFiles(params) {
336
+ if (!this._session) {
337
+ await this.startSession();
338
+ }
339
+ try {
340
+ const command = new InvokeCodeInterpreterCommand({
341
+ codeInterpreterIdentifier: this.identifier,
342
+ sessionId: this._session.sessionId,
343
+ name: 'writeFiles',
344
+ arguments: {
345
+ content: params.files.map((f) => ({
346
+ path: f.path,
347
+ text: f.content,
348
+ })),
349
+ },
350
+ });
351
+ const response = await this._client.send(command);
352
+ // Returns raw content string from AWS
353
+ return await this._parseInvokeResponse(response);
354
+ }
355
+ catch (error) {
356
+ return `Error: ${error instanceof Error ? error.message : 'Write failed'}`;
357
+ }
358
+ }
359
+ /**
360
+ * List files in the code interpreter sandbox.
361
+ * Automatically creates a session if one doesn't exist.
362
+ *
363
+ * @param params - List parameters
364
+ * @returns List result with file information or error
365
+ *
366
+ * @example
367
+ * ```typescript
368
+ * const result = await interpreter.listFiles({ path: '/tmp' })
369
+ * ```
370
+ */
371
+ async listFiles(params) {
372
+ if (!this._session) {
373
+ await this.startSession();
374
+ }
375
+ try {
376
+ const command = new InvokeCodeInterpreterCommand({
377
+ codeInterpreterIdentifier: this.identifier,
378
+ sessionId: this._session.sessionId,
379
+ name: 'listFiles',
380
+ arguments: {
381
+ directoryPath: params?.path ?? '.',
382
+ },
383
+ });
384
+ const response = await this._client.send(command);
385
+ // Returns raw content string from AWS
386
+ return await this._parseInvokeResponse(response);
387
+ }
388
+ catch (error) {
389
+ return `Error: ${error instanceof Error ? error.message : 'List failed'}`;
390
+ }
391
+ }
392
+ /**
393
+ * Remove files from the code interpreter sandbox.
394
+ * Automatically creates a session if one doesn't exist.
395
+ *
396
+ * @param params - Remove parameters
397
+ * @returns Remove result with removed file paths or errors
398
+ *
399
+ * @example
400
+ * ```typescript
401
+ * await interpreter.removeFiles({
402
+ * paths: ['temp.txt', 'cache.json']
403
+ * })
404
+ * ```
405
+ */
406
+ async removeFiles(params) {
407
+ if (!this._session) {
408
+ await this.startSession();
409
+ }
410
+ try {
411
+ const command = new InvokeCodeInterpreterCommand({
412
+ codeInterpreterIdentifier: this.identifier,
413
+ sessionId: this._session.sessionId,
414
+ name: 'removeFiles',
415
+ arguments: {
416
+ paths: params.paths,
417
+ },
418
+ });
419
+ const response = await this._client.send(command);
420
+ // Returns raw content string from AWS
421
+ return await this._parseInvokeResponse(response);
422
+ }
423
+ catch (error) {
424
+ return `Error: ${error instanceof Error ? error.message : 'Remove failed'}`;
425
+ }
426
+ }
427
+ // ===========================
428
+ // Private Helpers
429
+ // ===========================
430
+ /**
431
+ * Extract and parse the streaming response from InvokeCodeInterpreterCommand.
432
+ * Returns the raw content string from AWS without additional formatting.
433
+ */
434
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
435
+ async _parseInvokeResponse(response) {
436
+ let contentStr = '';
437
+ // Extract content string from stream
438
+ if (response.stream) {
439
+ for await (const event of response.stream) {
440
+ if (event.result?.content) {
441
+ const content = event.result.content;
442
+ // Handle AWS structured response format
443
+ if (Array.isArray(content)) {
444
+ contentStr = this._extractFromContentArray(content);
445
+ }
446
+ else if (typeof content === 'string') {
447
+ contentStr = content;
448
+ }
449
+ else {
450
+ // Fallback for unknown formats
451
+ contentStr = JSON.stringify(content);
452
+ }
453
+ }
454
+ if (event.error) {
455
+ contentStr = event.error.message || 'Unknown error';
456
+ }
457
+ }
458
+ }
459
+ else if (response.result?.content) {
460
+ const content = response.result.content;
461
+ // Handle AWS structured response format (same logic as streaming)
462
+ if (Array.isArray(content)) {
463
+ contentStr = this._extractFromContentArray(content);
464
+ }
465
+ else if (typeof content === 'string') {
466
+ contentStr = content;
467
+ }
468
+ else {
469
+ contentStr = JSON.stringify(content);
470
+ }
471
+ }
472
+ // Return raw content string - let the AI SDK handle formatting
473
+ return contentStr;
474
+ }
475
+ /**
476
+ * Extract text from AWS content array, handling multiple content types:
477
+ * - type: "text" - Direct text output (code execution, commands)
478
+ * - type: "resource" - File content with nested resource object
479
+ * - type: "resource_link" - File metadata (listFiles)
480
+ */
481
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
482
+ _extractFromContentArray(content) {
483
+ return content.map((item) => this._extractContentItem(item)).join('\n');
484
+ }
485
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
486
+ _extractContentItem(item) {
487
+ switch (item.type) {
488
+ case 'text':
489
+ return item.text;
490
+ case 'resource':
491
+ return item.resource ? this._extractResourceContent(item.resource) : JSON.stringify(item);
492
+ case 'resource_link': {
493
+ const { name, description, mimeType, uri } = item;
494
+ const meta = [name, description, mimeType].filter(Boolean).join(' - ');
495
+ return `${meta} (${uri})`;
496
+ }
497
+ default:
498
+ return JSON.stringify(item);
499
+ }
500
+ }
501
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
502
+ _extractResourceContent(resource) {
503
+ if (resource.text) {
504
+ return resource.text;
505
+ }
506
+ if (resource.blob) {
507
+ const blob = resource.blob;
508
+ const base64 = blob instanceof Uint8Array || Buffer.isBuffer(blob) ? Buffer.from(blob).toString('base64') : String(blob);
509
+ return JSON.stringify({
510
+ uri: resource.uri,
511
+ mimeType: resource.mimeType,
512
+ blob: base64,
513
+ });
514
+ }
515
+ return JSON.stringify(resource);
516
+ }
517
+ }
518
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../../src/tools/code-interpreter/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export { CodeInterpreter } from './client.js';
2
+ export type { CodeInterpreterConfig, StartSessionParams, SessionInfo, CodeLanguage, ExecuteCodeParams, ExecuteCodeResult, ExecuteCommandParams, ExecuteCommandResult, ReadFilesParams, FileContent, ReadFilesResult, WriteFilesParams, WriteFilesResult, ListFilesParams, FileInfo, ListFilesResult, RemoveFilesParams, RemoveFilesResult, } from './types.js';
3
+ export { CodeLanguageSchema, ExecuteCodeParamsSchema, ExecuteCommandParamsSchema, ReadFilesParamsSchema, WriteFilesParamsSchema, ListFilesParamsSchema, RemoveFilesParamsSchema, DEFAULT_IDENTIFIER, DEFAULT_TIMEOUT, DEFAULT_SESSION_NAME, } from './types.js';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/tools/code-interpreter/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAG7C,YAAY,EACV,qBAAqB,EACrB,kBAAkB,EAClB,WAAW,EACX,YAAY,EACZ,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACpB,eAAe,EACf,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,QAAQ,EACR,eAAe,EACf,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,YAAY,CAAA;AAGnB,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,0BAA0B,EAC1B,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACrB,uBAAuB,EACvB,kBAAkB,EAClB,eAAe,EACf,oBAAoB,GACrB,MAAM,YAAY,CAAA"}
@@ -0,0 +1,5 @@
1
+ // Main client
2
+ export { CodeInterpreter } from './client.js';
3
+ // Zod schemas for validation
4
+ export { CodeLanguageSchema, ExecuteCodeParamsSchema, ExecuteCommandParamsSchema, ReadFilesParamsSchema, WriteFilesParamsSchema, ListFilesParamsSchema, RemoveFilesParamsSchema, DEFAULT_IDENTIFIER, DEFAULT_TIMEOUT, DEFAULT_SESSION_NAME, } from './types.js';
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/tools/code-interpreter/index.ts"],"names":[],"mappings":"AAAA,cAAc;AACd,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAwB7C,6BAA6B;AAC7B,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,0BAA0B,EAC1B,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACrB,uBAAuB,EACvB,kBAAkB,EAClB,eAAe,EACf,oBAAoB,GACrB,MAAM,YAAY,CAAA"}
@@ -0,0 +1,28 @@
1
+ import type { CodeInterpreter } from '../../client.js';
2
+ /**
3
+ * Creates a Strands SDK tool for executing code in CodeInterpreter.
4
+ *
5
+ * @param interpreter - CodeInterpreter instance
6
+ * @returns Strands SDK tool for code execution
7
+ *
8
+ * @experimental
9
+ * @example
10
+ * ```typescript
11
+ * import { createExecuteCodeTool } from 'bedrock-agentcore/experimental/code-interpreter/strands'
12
+ * import { CodeInterpreter } from 'bedrock-agentcore/code-interpreter'
13
+ *
14
+ * const interpreter = new CodeInterpreter({ region: 'us-west-2' })
15
+ * const executeCodeTool = createExecuteCodeTool(interpreter)
16
+ *
17
+ * // Use with Strands SDK Agent
18
+ * const agent = new Agent({
19
+ * model: new BedrockModel({ modelId: 'anthropic.claude-sonnet-4-20250514-v1:0' }),
20
+ * tools: [executeCodeTool]
21
+ * })
22
+ * ```
23
+ */
24
+ export declare function createExecuteCodeTool(interpreter: CodeInterpreter): import("@strands-agents/sdk").InvokableTool<{
25
+ code: string;
26
+ language: "python" | "javascript" | "typescript";
27
+ }, string>;
28
+ //# sourceMappingURL=execute-code-tool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execute-code-tool.d.ts","sourceRoot":"","sources":["../../../../../../src/tools/code-interpreter/integrations/strands/execute-code-tool.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAEtD;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,eAAe;;;WAoBjE"}
@@ -0,0 +1,47 @@
1
+ /// <reference types="node" />
2
+ import { tool } from '@strands-agents/sdk';
3
+ import { z } from 'zod';
4
+ /**
5
+ * Creates a Strands SDK tool for executing code in CodeInterpreter.
6
+ *
7
+ * @param interpreter - CodeInterpreter instance
8
+ * @returns Strands SDK tool for code execution
9
+ *
10
+ * @experimental
11
+ * @example
12
+ * ```typescript
13
+ * import { createExecuteCodeTool } from 'bedrock-agentcore/experimental/code-interpreter/strands'
14
+ * import { CodeInterpreter } from 'bedrock-agentcore/code-interpreter'
15
+ *
16
+ * const interpreter = new CodeInterpreter({ region: 'us-west-2' })
17
+ * const executeCodeTool = createExecuteCodeTool(interpreter)
18
+ *
19
+ * // Use with Strands SDK Agent
20
+ * const agent = new Agent({
21
+ * model: new BedrockModel({ modelId: 'anthropic.claude-sonnet-4-20250514-v1:0' }),
22
+ * tools: [executeCodeTool]
23
+ * })
24
+ * ```
25
+ */
26
+ // eslint-disable-next-line @typescript-eslint/explicit-function-return-type, @typescript-eslint/explicit-module-boundary-types
27
+ export function createExecuteCodeTool(interpreter) {
28
+ return tool({
29
+ name: 'executeCode',
30
+ description: `Execute code in a secure sandbox environment.
31
+ Use this to perform calculations, data analysis, create visualizations, or run any code.
32
+ The environment persists across executions within the same session.
33
+ Supports Python, JavaScript, and TypeScript.`,
34
+ inputSchema: z.object({
35
+ code: z.string().describe('The code to execute. Can use imports and access files.'),
36
+ language: z
37
+ .enum(['python', 'javascript', 'typescript'])
38
+ .default('python')
39
+ .describe('Programming language to use (default: python)'),
40
+ }),
41
+ callback: async ({ code, language }) => {
42
+ const result = await interpreter.executeCode({ code, language });
43
+ return result;
44
+ },
45
+ });
46
+ }
47
+ //# sourceMappingURL=execute-code-tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execute-code-tool.js","sourceRoot":"","sources":["../../../../../../src/tools/code-interpreter/integrations/strands/execute-code-tool.ts"],"names":[],"mappings":"AAAA,8BAA8B;AAE9B,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAC1C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,+HAA+H;AAC/H,MAAM,UAAU,qBAAqB,CAAC,WAA4B;IAChE,OAAO,IAAI,CAAC;QACV,IAAI,EAAE,aAAa;QACnB,WAAW,EAAE;;;6CAG4B;QACzC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wDAAwD,CAAC;YACnF,QAAQ,EAAE,CAAC;iBACR,IAAI,CAAC,CAAC,QAAQ,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;iBAC5C,OAAO,CAAC,QAAQ,CAAC;iBACjB,QAAQ,CAAC,+CAA+C,CAAC;SAC7D,CAAC;QACF,QAAQ,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE;YACrC,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAA;YAEhE,OAAO,MAAM,CAAA;QACf,CAAC;KACF,CAAC,CAAA;AACJ,CAAC"}
@@ -0,0 +1,27 @@
1
+ import type { CodeInterpreter } from '../../client.js';
2
+ /**
3
+ * Creates a Strands SDK tool for executing shell commands in CodeInterpreter.
4
+ *
5
+ * @param interpreter - CodeInterpreter instance
6
+ * @returns Strands SDK tool for command execution
7
+ *
8
+ * @experimental
9
+ * @example
10
+ * ```typescript
11
+ * import { createExecuteCommandTool } from 'bedrock-agentcore/experimental/code-interpreter/strands'
12
+ * import { CodeInterpreter } from 'bedrock-agentcore/code-interpreter'
13
+ *
14
+ * const interpreter = new CodeInterpreter({ region: 'us-west-2' })
15
+ * const executeCommandTool = createExecuteCommandTool(interpreter)
16
+ *
17
+ * // Use with Strands SDK Agent
18
+ * const agent = new Agent({
19
+ * model: new BedrockModel({ modelId: 'anthropic.claude-sonnet-4-20250514-v1:0' }),
20
+ * tools: [executeCommandTool]
21
+ * })
22
+ * ```
23
+ */
24
+ export declare function createExecuteCommandTool(interpreter: CodeInterpreter): import("@strands-agents/sdk").InvokableTool<{
25
+ command: string;
26
+ }, string>;
27
+ //# sourceMappingURL=execute-command-tool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execute-command-tool.d.ts","sourceRoot":"","sources":["../../../../../../src/tools/code-interpreter/integrations/strands/execute-command-tool.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAEtD;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,eAAe;;WAepE"}