bedrock-agentcore 0.2.4 → 0.3.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 (60) hide show
  1. package/README.md +1 -1
  2. package/dist/src/memory/integrations/strands/factory.d.ts +78 -0
  3. package/dist/src/memory/integrations/strands/factory.d.ts.map +1 -0
  4. package/dist/src/memory/integrations/strands/factory.js +108 -0
  5. package/dist/src/memory/integrations/strands/factory.js.map +1 -0
  6. package/dist/src/memory/integrations/strands/format.d.ts +17 -0
  7. package/dist/src/memory/integrations/strands/format.d.ts.map +1 -0
  8. package/dist/src/memory/integrations/strands/format.js +29 -0
  9. package/dist/src/memory/integrations/strands/format.js.map +1 -0
  10. package/dist/src/memory/integrations/strands/index.d.ts +11 -0
  11. package/dist/src/memory/integrations/strands/index.d.ts.map +1 -0
  12. package/dist/src/memory/integrations/strands/index.js +6 -0
  13. package/dist/src/memory/integrations/strands/index.js.map +1 -0
  14. package/dist/src/memory/integrations/strands/logger.d.ts +19 -0
  15. package/dist/src/memory/integrations/strands/logger.d.ts.map +1 -0
  16. package/dist/src/memory/integrations/strands/logger.js +27 -0
  17. package/dist/src/memory/integrations/strands/logger.js.map +1 -0
  18. package/dist/src/memory/integrations/strands/sender.d.ts +79 -0
  19. package/dist/src/memory/integrations/strands/sender.d.ts.map +1 -0
  20. package/dist/src/memory/integrations/strands/sender.js +170 -0
  21. package/dist/src/memory/integrations/strands/sender.js.map +1 -0
  22. package/dist/src/memory/integrations/strands/store.d.ts +28 -0
  23. package/dist/src/memory/integrations/strands/store.d.ts.map +1 -0
  24. package/dist/src/memory/integrations/strands/store.js +154 -0
  25. package/dist/src/memory/integrations/strands/store.js.map +1 -0
  26. package/dist/src/memory/integrations/strands/types.d.ts +122 -0
  27. package/dist/src/memory/integrations/strands/types.d.ts.map +1 -0
  28. package/dist/src/memory/integrations/strands/types.js +73 -0
  29. package/dist/src/memory/integrations/strands/types.js.map +1 -0
  30. package/dist/src/runtime/client.d.ts +79 -11
  31. package/dist/src/runtime/client.d.ts.map +1 -1
  32. package/dist/src/runtime/client.js +230 -79
  33. package/dist/src/runtime/client.js.map +1 -1
  34. package/dist/src/runtime/index.d.ts +5 -0
  35. package/dist/src/runtime/index.d.ts.map +1 -1
  36. package/dist/src/runtime/index.js +3 -0
  37. package/dist/src/runtime/index.js.map +1 -1
  38. package/dist/src/runtime/shell/config.d.ts +81 -0
  39. package/dist/src/runtime/shell/config.d.ts.map +1 -0
  40. package/dist/src/runtime/shell/config.js +15 -0
  41. package/dist/src/runtime/shell/config.js.map +1 -0
  42. package/dist/src/runtime/shell/index.d.ts +9 -0
  43. package/dist/src/runtime/shell/index.d.ts.map +1 -0
  44. package/dist/src/runtime/shell/index.js +6 -0
  45. package/dist/src/runtime/shell/index.js.map +1 -0
  46. package/dist/src/runtime/shell/protocol.d.ts +45 -0
  47. package/dist/src/runtime/shell/protocol.d.ts.map +1 -0
  48. package/dist/src/runtime/shell/protocol.js +99 -0
  49. package/dist/src/runtime/shell/protocol.js.map +1 -0
  50. package/dist/src/runtime/shell/session.d.ts +240 -0
  51. package/dist/src/runtime/shell/session.d.ts.map +1 -0
  52. package/dist/src/runtime/shell/session.js +880 -0
  53. package/dist/src/runtime/shell/session.js.map +1 -0
  54. package/dist/src/runtime/shell/validation.d.ts +8 -0
  55. package/dist/src/runtime/shell/validation.d.ts.map +1 -0
  56. package/dist/src/runtime/shell/validation.js +17 -0
  57. package/dist/src/runtime/shell/validation.js.map +1 -0
  58. package/dist/src/runtime/types.d.ts +89 -0
  59. package/dist/src/runtime/types.d.ts.map +1 -1
  60. package/package.json +13 -4
@@ -1,3 +1,4 @@
1
+ import { Buffer } from 'buffer';
1
2
  import { defaultProvider } from '@aws-sdk/credential-provider-node';
2
3
  import { HttpRequest } from '@aws-sdk/protocol-http';
3
4
  import { SignatureV4 } from '@aws-sdk/signature-v4';
@@ -5,6 +6,8 @@ import { Sha256 } from '@aws-crypto/sha256-js';
5
6
  import { randomUUID, randomBytes } from 'crypto';
6
7
  import { getDataPlaneEndpoint } from '../_utils/endpoints.js';
7
8
  import { DEFAULT_PRESIGNED_URL_TIMEOUT, MAX_PRESIGNED_URL_TIMEOUT } from './types.js';
9
+ import { ShellSession } from './shell/session.js';
10
+ import { validateShellId } from './shell/validation.js';
8
11
  /**
9
12
  * Client for generating WebSocket authentication for AgentCore Runtime.
10
13
  *
@@ -58,6 +61,14 @@ export class RuntimeClient {
58
61
  *
59
62
  * @internal
60
63
  */
64
+ _parseAndValidateRegion(runtimeArn) {
65
+ const parsed = this._parseRuntimeArn(runtimeArn);
66
+ if (parsed.region !== this.region) {
67
+ throw new Error(`ARN region ${parsed.region} does not match client region ${this.region}. ` +
68
+ `Create a client for the same region as the runtime ARN, or use the ARN's region.`);
69
+ }
70
+ return parsed;
71
+ }
61
72
  _parseRuntimeArn(runtimeArn) {
62
73
  const arnRegex = /^arn:aws:bedrock-agentcore:([^:]+):([^:]+):runtime\/(.+)$/;
63
74
  const match = runtimeArn.match(arnRegex);
@@ -70,32 +81,22 @@ export class RuntimeClient {
70
81
  }
71
82
  return { region, accountId, runtimeId };
72
83
  }
73
- /**
74
- * Builds WebSocket URL with query parameters.
75
- *
76
- * @param runtimeArn - Full runtime ARN
77
- * @param endpointName - Optional endpoint name for qualifier param
78
- * @param customHeaders - Optional custom query parameters
79
- * @returns WebSocket URL with query parameters
80
- *
81
- * @internal
82
- */
83
- _buildWebSocketUrl(runtimeArn, endpointName, customHeaders) {
84
- // Get the data plane endpoint and build base URL
84
+ /** @internal */
85
+ _buildWsUrl(path, queryParams) {
85
86
  const endpoint = getDataPlaneEndpoint(this.region);
86
- const encodedArn = encodeURIComponent(runtimeArn);
87
- const url = new URL(`${endpoint}/runtimes/${encodedArn}/ws`);
88
- // Add query parameters
89
- if (endpointName) {
90
- url.searchParams.set('qualifier', endpointName);
91
- }
92
- if (customHeaders) {
93
- Object.entries(customHeaders).forEach(([key, value]) => {
94
- url.searchParams.set(key, value);
95
- });
87
+ const url = new URL(`${endpoint}${path}`);
88
+ if (queryParams) {
89
+ Object.entries(queryParams).forEach(([k, v]) => url.searchParams.set(k, v));
96
90
  }
97
- // Convert to WebSocket URL
98
- return url.toString().replace('https://', 'wss://');
91
+ return url.toString().replace(/^https:\/\//, 'wss://');
92
+ }
93
+ /** @internal */
94
+ _buildWebSocketUrl(runtimeArn, endpointName, customHeaders) {
95
+ const encodedArn = encodeURIComponent(runtimeArn);
96
+ return this._buildWsUrl(`/runtimes/${encodedArn}/ws`, {
97
+ ...(endpointName ? { qualifier: endpointName } : {}),
98
+ ...customHeaders,
99
+ });
99
100
  }
100
101
  /**
101
102
  * Generates WebSocket URL and SigV4 signed headers for runtime connection.
@@ -131,33 +132,11 @@ export class RuntimeClient {
131
132
  this._parseRuntimeArn(params.runtimeArn);
132
133
  const sessionId = params.sessionId ?? randomUUID();
133
134
  const wsUrl = this._buildWebSocketUrl(params.runtimeArn, params.endpointName);
134
- const credentials = await this.credentialsProvider();
135
- if (!credentials) {
136
- throw new Error('No AWS credentials found');
137
- }
138
- // Create and sign the request
139
- const url = new URL(wsUrl.replace('wss://', 'https://'));
140
- const signedRequest = await new SignatureV4({
141
- credentials,
142
- region: this.region,
143
- service: 'bedrock-agentcore',
144
- sha256: Sha256,
145
- }).sign(new HttpRequest({
146
- protocol: 'https:',
147
- hostname: url.hostname,
148
- path: url.pathname,
149
- query: Object.fromEntries(url.searchParams.entries()),
150
- method: 'GET',
151
- headers: {
152
- host: url.hostname,
153
- 'X-Amzn-Bedrock-AgentCore-Runtime-Session-Id': sessionId,
154
- },
155
- }));
156
- // Return WebSocket connection with signed headers + WebSocket upgrade headers
135
+ const signedHeaders = await this._sigV4SignWsUrl(wsUrl, sessionId);
157
136
  return {
158
137
  url: wsUrl,
159
138
  headers: {
160
- ...signedRequest.headers,
139
+ ...signedHeaders,
161
140
  Connection: 'Upgrade',
162
141
  Upgrade: 'websocket',
163
142
  'Sec-WebSocket-Version': '13',
@@ -199,61 +178,233 @@ export class RuntimeClient {
199
178
  * ```
200
179
  */
201
180
  async generatePresignedUrl(params) {
202
- // Validate expires parameter
203
181
  const expires = params.expires ?? DEFAULT_PRESIGNED_URL_TIMEOUT;
204
182
  if (expires > MAX_PRESIGNED_URL_TIMEOUT) {
205
183
  throw new Error(`Expiry timeout cannot exceed ${MAX_PRESIGNED_URL_TIMEOUT} seconds, got ${expires}`);
206
184
  }
207
- // Validate ARN
208
185
  this._parseRuntimeArn(params.runtimeArn);
209
- // Auto-generate session ID if not provided
210
186
  const sessionId = params.sessionId ?? randomUUID();
211
- // Build minimal WebSocket URL without any custom parameters
212
- // This should match the working presigned URL format
213
187
  const wsUrl = this._buildWebSocketUrl(params.runtimeArn, params.endpointName, {
214
188
  ...params.customHeaders,
215
189
  'X-Amzn-Bedrock-AgentCore-Runtime-Session-Id': sessionId,
216
190
  });
217
- // Convert wss:// to https:// for signing
218
- const httpsUrl = wsUrl.replace('wss://', 'https://');
219
- const url = new URL(httpsUrl);
220
- // Get AWS credentials
191
+ return this._presignWsUrl(wsUrl, expires);
192
+ }
193
+ /** @internal */
194
+ _buildShellUrl(runtimeArn, shellId, endpointName) {
195
+ const encodedArn = encodeURIComponent(runtimeArn);
196
+ return this._buildWsUrl(`/runtimes/${encodedArn}/ws/shells`, {
197
+ shellId,
198
+ ...(endpointName ? { qualifier: endpointName } : {}),
199
+ });
200
+ }
201
+ /** Sign a wss:// URL with SigV4 headers, including the session ID. @internal */
202
+ async _sigV4SignWsUrl(wsUrl, sessionId) {
203
+ const url = new URL(wsUrl.replace(/^wss:\/\//, 'https://'));
221
204
  const credentials = await this.credentialsProvider();
222
- if (!credentials) {
205
+ if (!credentials)
223
206
  throw new Error('No AWS credentials found');
224
- }
225
- // Create minimal request to sign - separate path and query for presigned URLs
226
- const request = new HttpRequest({
227
- method: 'GET',
207
+ const signedRequest = await new SignatureV4({
208
+ credentials,
209
+ region: this.region,
210
+ service: 'bedrock-agentcore',
211
+ sha256: Sha256,
212
+ }).sign(new HttpRequest({
228
213
  protocol: 'https:',
229
214
  hostname: url.hostname,
230
215
  path: url.pathname,
231
216
  query: Object.fromEntries(url.searchParams.entries()),
217
+ method: 'GET',
232
218
  headers: {
233
219
  host: url.hostname,
220
+ 'X-Amzn-Bedrock-AgentCore-Runtime-Session-Id': sessionId,
234
221
  },
235
- });
236
- // Sign the request with SigV4 (presigned URL style) following the exact pattern
237
- const signer = new SignatureV4({
222
+ }));
223
+ return signedRequest.headers;
224
+ }
225
+ /** Presign a wss:// URL, embedding auth in query params. @internal */
226
+ async _presignWsUrl(wsUrl, expires) {
227
+ const url = new URL(wsUrl.replace(/^wss:\/\//, 'https://'));
228
+ const credentials = await this.credentialsProvider();
229
+ if (!credentials)
230
+ throw new Error('No AWS credentials found');
231
+ const signed = await new SignatureV4({
238
232
  credentials,
239
233
  region: this.region,
240
234
  service: 'bedrock-agentcore',
241
235
  sha256: Sha256,
242
- });
243
- const signedRequest = await signer.presign(request, { expiresIn: expires });
244
- // Construct the full signed URL with query parameters
245
- let presignedUrl = `${signedRequest.protocol}//${signedRequest.hostname}${signedRequest.path}`;
246
- // Add the signature query parameters
247
- if (signedRequest.query) {
248
- const existingParams = presignedUrl.includes('?') ? '&' : '?';
249
- const queryString = Object.entries(signedRequest.query)
250
- .map(([key, value]) => `${key}=${encodeURIComponent(String(value))}`)
236
+ }).presign(new HttpRequest({
237
+ method: 'GET',
238
+ protocol: 'https:',
239
+ hostname: url.hostname,
240
+ path: url.pathname,
241
+ query: Object.fromEntries(url.searchParams.entries()),
242
+ headers: { host: url.hostname },
243
+ }), { expiresIn: expires });
244
+ let presignedUrl = `${signed.protocol}//${signed.hostname}${signed.path}`;
245
+ if (signed.query) {
246
+ const qs = Object.entries(signed.query)
247
+ .map(([k, v]) => `${k}=${encodeURIComponent(String(v))}`)
251
248
  .join('&');
252
- presignedUrl += existingParams + queryString;
249
+ presignedUrl += (presignedUrl.includes('?') ? '&' : '?') + qs;
250
+ }
251
+ return presignedUrl.replace(/^https:\/\//, 'wss://');
252
+ }
253
+ /**
254
+ * Generate a SigV4-signed WebSocket URL and headers for a shell connection.
255
+ * Low-level helper — use `openShell` for a fully managed session.
256
+ *
257
+ * @example
258
+ * ```typescript
259
+ * const { url, headers } = await client.connectShellSigV4({ runtimeArn, shellId, sessionId })
260
+ * const ws = new WebSocket(url, { headers })
261
+ * ```
262
+ */
263
+ async connectShellSigV4(params) {
264
+ validateShellId(params.shellId);
265
+ this._parseAndValidateRegion(params.runtimeArn);
266
+ const wsUrl = this._buildShellUrl(params.runtimeArn, params.shellId, params.endpointName);
267
+ const headers = await this._sigV4SignWsUrl(wsUrl, params.sessionId);
268
+ return { url: wsUrl, headers };
269
+ }
270
+ /**
271
+ * Generate a presigned WebSocket URL for a shell connection. Auth is embedded
272
+ * in the query string — suitable for browser clients or short-lived tokens.
273
+ * Low-level helper — use `openShell` for a fully managed session.
274
+ *
275
+ * @example
276
+ * ```typescript
277
+ * const { url } = await client.connectShellPresigned({ runtimeArn, shellId, sessionId, expires: 120 })
278
+ * const ws = new WebSocket(url)
279
+ * ```
280
+ */
281
+ async connectShellPresigned(params) {
282
+ validateShellId(params.shellId);
283
+ const expires = params.expires ?? DEFAULT_PRESIGNED_URL_TIMEOUT;
284
+ if (expires > MAX_PRESIGNED_URL_TIMEOUT) {
285
+ throw new Error(`Expiry timeout cannot exceed ${MAX_PRESIGNED_URL_TIMEOUT} seconds, got ${expires}`);
253
286
  }
254
- // Convert signed URL from https:// back to wss://
255
- const presignedWsUrl = presignedUrl.replace('https://', 'wss://');
256
- return presignedWsUrl;
287
+ this._parseAndValidateRegion(params.runtimeArn);
288
+ const wsUrl = this._buildShellUrl(params.runtimeArn, params.shellId, params.endpointName);
289
+ const urlWithSession = new URL(wsUrl);
290
+ urlWithSession.searchParams.set('X-Amzn-Bedrock-AgentCore-Runtime-Session-Id', params.sessionId);
291
+ return { url: await this._presignWsUrl(urlWithSession.toString(), expires) };
292
+ }
293
+ /**
294
+ * Generate a WebSocket URL and OAuth subprotocols for a shell connection.
295
+ * Low-level helper — use `openShell` for a fully managed session.
296
+ *
297
+ * @example
298
+ * ```typescript
299
+ * const { url, subprotocols } = await client.connectShellOAuth({ runtimeArn, shellId, sessionId, bearerToken })
300
+ * const ws = new WebSocket(url, subprotocols)
301
+ * ```
302
+ */
303
+ async connectShellOAuth(params) {
304
+ validateShellId(params.shellId);
305
+ if (!params.bearerToken)
306
+ throw new Error('bearerToken cannot be empty');
307
+ this._parseAndValidateRegion(params.runtimeArn);
308
+ const encoded = Buffer.from(params.bearerToken).toString('base64url');
309
+ if (encoded.length > 4096) {
310
+ throw new Error(`bearerToken too large to embed in Sec-WebSocket-Protocol (${encoded.length} chars encoded, max 4096)`);
311
+ }
312
+ const wsUrl = this._buildShellUrl(params.runtimeArn, params.shellId, params.endpointName);
313
+ const url = new URL(wsUrl);
314
+ url.searchParams.set('X-Amzn-Bedrock-AgentCore-Runtime-Session-Id', params.sessionId);
315
+ return {
316
+ url: url.toString(),
317
+ subprotocols: [`base64UrlBearerAuthorization.${encoded}`, 'base64UrlBearerAuthorization'],
318
+ };
319
+ }
320
+ /**
321
+ * Open a fully managed interactive PTY shell session on an agent VM.
322
+ *
323
+ * Returns a connected `ShellSession` — an async iterable that yields `ShellFrame`
324
+ * objects. Call `close()` when done, or use `try/finally`.
325
+ *
326
+ * For lower-level control (custom WebSocket handling, browser relay), use the
327
+ * `connectShellSigV4`, `connectShellPresigned`, or `connectShellOAuth` helpers
328
+ * directly with `ShellFramer`.
329
+ *
330
+ * @example
331
+ * ```typescript
332
+ * const shell = await client.openShell({ runtimeArn })
333
+ * try {
334
+ * await shell.send('echo hello\n')
335
+ * for await (const frame of shell) {
336
+ * if (frame.channel === ShellChannel.STDOUT) process.stdout.write(frame.text)
337
+ * }
338
+ * } finally {
339
+ * await shell.close()
340
+ * }
341
+ * ```
342
+ *
343
+ * @example Auto-reconnect:
344
+ * ```typescript
345
+ * const shell = await client.openShell({
346
+ * runtimeArn,
347
+ * shellId: 'debug',
348
+ * reconnectConfig: { maxRetries: 5, onReconnect: (r) => console.log('reconnected:', r) }
349
+ * })
350
+ * ```
351
+ */
352
+ async openShell(params) {
353
+ this._parseAndValidateRegion(params.runtimeArn);
354
+ if (params.shellId != null)
355
+ validateShellId(params.shellId);
356
+ // Generate stable IDs once — reused on every reconnect attempt.
357
+ const shellId = params.shellId ?? randomUUID();
358
+ const sessionId = params.sessionId ?? randomUUID();
359
+ const auth = params.auth ?? 'sigv4';
360
+ let connectFn;
361
+ if (auth === 'sigv4') {
362
+ connectFn = async (sid, currentSessionId) => {
363
+ const { url, headers } = await this.connectShellSigV4({
364
+ runtimeArn: params.runtimeArn,
365
+ shellId: sid,
366
+ sessionId: currentSessionId,
367
+ endpointName: params.endpointName,
368
+ });
369
+ return { url, headers };
370
+ };
371
+ }
372
+ else if (typeof auth === 'object' && auth.type === 'presigned') {
373
+ connectFn = async (sid, currentSessionId) => {
374
+ const { url } = await this.connectShellPresigned({
375
+ runtimeArn: params.runtimeArn,
376
+ shellId: sid,
377
+ sessionId: currentSessionId,
378
+ endpointName: params.endpointName,
379
+ expires: auth.expires,
380
+ });
381
+ return { url, headers: {} };
382
+ };
383
+ }
384
+ else if (typeof auth === 'object' && auth.type === 'oauth') {
385
+ connectFn = async (sid, currentSessionId) => {
386
+ const { url, subprotocols } = await this.connectShellOAuth({
387
+ runtimeArn: params.runtimeArn,
388
+ shellId: sid,
389
+ sessionId: currentSessionId,
390
+ endpointName: params.endpointName,
391
+ bearerToken: auth.bearerToken,
392
+ });
393
+ return { url, headers: {}, protocols: subprotocols };
394
+ };
395
+ }
396
+ else {
397
+ throw new Error(`Unknown auth mode: ${JSON.stringify(auth)}`);
398
+ }
399
+ const session = new ShellSession({
400
+ connectFn,
401
+ shellId,
402
+ sessionId,
403
+ reconnectConfig: params.reconnectConfig,
404
+ keepaliveIntervalMs: params.keepaliveIntervalMs,
405
+ logger: params.logger,
406
+ });
407
+ return session.connect();
257
408
  }
258
409
  /**
259
410
  * Generates WebSocket URL and OAuth headers for runtime connection.
@@ -295,7 +446,7 @@ export class RuntimeClient {
295
446
  // Build WebSocket URL
296
447
  const wsUrl = this._buildWebSocketUrl(params.runtimeArn, params.endpointName);
297
448
  // Convert wss:// to https:// to get host
298
- const httpsUrl = wsUrl.replace('wss://', 'https://');
449
+ const httpsUrl = wsUrl.replace(/^wss:\/\//, 'https://');
299
450
  const url = new URL(httpsUrl);
300
451
  // Generate WebSocket key (required for OAuth connections)
301
452
  const wsKey = randomBytes(16).toString('base64');
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/runtime/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAA;AAEnE,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAC9C,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAA;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAS7D,OAAO,EAAE,6BAA6B,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAA;AAErF;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,OAAO,aAAa;IACf,MAAM,CAAQ;IACN,mBAAmB,CAA+B;IAEnE;;;;;OAKG;IACH,YAAY,SAA8B,EAAE;QAC1C,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,CAAA;QACtD,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,8EAA8E,CAAC,CAAA;QACjG,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,mBAAmB,GAAG,MAAM,CAAC,mBAAmB,IAAI,eAAe,EAAE,CAAA;IAC5E,CAAC;IAED;;;;;;;;OAQG;IACK,gBAAgB,CAAC,UAAkB;QACzC,MAAM,QAAQ,GAAG,2DAA2D,CAAA;QAC5E,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;QAExC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,+BAA+B,UAAU,EAAE,CAAC,CAAA;QAC9D,CAAC;QAED,MAAM,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC,GAAG,KAAK,CAAA;QAE9C,IAAI,CAAC,MAAM,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,EAAE,CAAC;YACxC,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAA;QACnD,CAAC;QAED,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,CAAA;IACzC,CAAC;IAED;;;;;;;;;OASG;IACK,kBAAkB,CACxB,UAAkB,EAClB,YAAqB,EACrB,aAAsC;QAEtC,iDAAiD;QACjD,MAAM,QAAQ,GAAG,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAClD,MAAM,UAAU,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAA;QACjD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,QAAQ,aAAa,UAAU,KAAK,CAAC,CAAA;QAE5D,uBAAuB;QACvB,IAAI,YAAY,EAAE,CAAC;YACjB,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,EAAE,YAAY,CAAC,CAAA;QACjD,CAAC;QAED,IAAI,aAAa,EAAE,CAAC;YAClB,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;gBACrD,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;YAClC,CAAC,CAAC,CAAA;QACJ,CAAC;QAED,2BAA2B;QAC3B,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;IACrD,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACH,KAAK,CAAC,oBAAoB,CAAC,MAAkC;QAC3D,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;QAExC,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,UAAU,EAAE,CAAA;QAClD,MAAM,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,YAAY,CAAC,CAAA;QAE7E,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAA;QACpD,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAA;QAC7C,CAAC;QAED,8BAA8B;QAC9B,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAA;QACxD,MAAM,aAAa,GAAG,MAAM,IAAI,WAAW,CAAC;YAC1C,WAAW;YACX,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,OAAO,EAAE,mBAAmB;YAC5B,MAAM,EAAE,MAAM;SACf,CAAC,CAAC,IAAI,CACL,IAAI,WAAW,CAAC;YACd,QAAQ,EAAE,QAAQ;YAClB,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,IAAI,EAAE,GAAG,CAAC,QAAQ;YAClB,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;YACrD,MAAM,EAAE,KAAK;YACb,OAAO,EAAE;gBACP,IAAI,EAAE,GAAG,CAAC,QAAQ;gBAClB,6CAA6C,EAAE,SAAS;aACzD;SACF,CAAC,CACH,CAAA;QAED,8EAA8E;QAC9E,OAAO;YACL,GAAG,EAAE,KAAK;YACV,OAAO,EAAE;gBACP,GAAG,aAAa,CAAC,OAAO;gBACxB,UAAU,EAAE,SAAS;gBACrB,OAAO,EAAE,WAAW;gBACpB,uBAAuB,EAAE,IAAI;gBAC7B,mBAAmB,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBACvD,YAAY,EAAE,4BAA4B;aAC3C;SACF,CAAA;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+BG;IACH,KAAK,CAAC,oBAAoB,CAAC,MAAkC;QAC3D,6BAA6B;QAC7B,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,6BAA6B,CAAA;QAC/D,IAAI,OAAO,GAAG,yBAAyB,EAAE,CAAC;YACxC,MAAM,IAAI,KAAK,CAAC,gCAAgC,yBAAyB,iBAAiB,OAAO,EAAE,CAAC,CAAA;QACtG,CAAC;QAED,eAAe;QACf,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;QAExC,2CAA2C;QAC3C,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,UAAU,EAAE,CAAA;QAElD,4DAA4D;QAC5D,qDAAqD;QACrD,MAAM,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,YAAY,EAAE;YAC5E,GAAG,MAAM,CAAC,aAAa;YACvB,6CAA6C,EAAE,SAAS;SACzD,CAAC,CAAA;QAEF,yCAAyC;QACzC,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAA;QAEpD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAA;QAE7B,sBAAsB;QACtB,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAA;QACpD,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAA;QAC7C,CAAC;QAED,8EAA8E;QAC9E,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC;YAC9B,MAAM,EAAE,KAAK;YACb,QAAQ,EAAE,QAAQ;YAClB,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,IAAI,EAAE,GAAG,CAAC,QAAQ;YAClB,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;YACrD,OAAO,EAAE;gBACP,IAAI,EAAE,GAAG,CAAC,QAAQ;aACnB;SACF,CAAC,CAAA;QAEF,gFAAgF;QAChF,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC;YAC7B,WAAW;YACX,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,OAAO,EAAE,mBAAmB;YAC5B,MAAM,EAAE,MAAM;SACf,CAAC,CAAA;QAEF,MAAM,aAAa,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAA;QAE3E,sDAAsD;QACtD,IAAI,YAAY,GAAG,GAAG,aAAa,CAAC,QAAQ,KAAK,aAAa,CAAC,QAAQ,GAAG,aAAa,CAAC,IAAI,EAAE,CAAA;QAE9F,qCAAqC;QACrC,IAAI,aAAa,CAAC,KAAK,EAAE,CAAC;YACxB,MAAM,cAAc,GAAG,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAA;YAC7D,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC;iBACpD,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;iBACpE,IAAI,CAAC,GAAG,CAAC,CAAA;YACZ,YAAY,IAAI,cAAc,GAAG,WAAW,CAAA;QAC9C,CAAC;QAED,kDAAkD;QAClD,MAAM,cAAc,GAAG,YAAY,CAAC,OAAO,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;QAEjE,OAAO,cAAc,CAAA;IACvB,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACH,KAAK,CAAC,yBAAyB,CAAC,MAAuC;QACrE,wBAAwB;QACxB,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAA;QACjD,CAAC;QAED,eAAe;QACf,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;QAExC,2CAA2C;QAC3C,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,UAAU,EAAE,CAAA;QAElD,sBAAsB;QACtB,MAAM,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,YAAY,CAAC,CAAA;QAE7E,yCAAyC;QACzC,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAA;QACpD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAA;QAE7B,0DAA0D;QAC1D,MAAM,KAAK,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;QAEhD,sBAAsB;QACtB,MAAM,OAAO,GAA2B;YACtC,aAAa,EAAE,UAAU,MAAM,CAAC,WAAW,EAAE;YAC7C,6CAA6C,EAAE,SAAS;YACxD,IAAI,EAAE,GAAG,CAAC,QAAQ;YAClB,UAAU,EAAE,SAAS;YACrB,OAAO,EAAE,WAAW;YACpB,mBAAmB,EAAE,KAAK;YAC1B,uBAAuB,EAAE,IAAI;YAC7B,YAAY,EAAE,4BAA4B;SAC3C,CAAA;QAED,OAAO;YACL,GAAG,EAAE,KAAK;YACV,OAAO;SACR,CAAA;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/runtime/client.ts"],"names":[],"mappings":"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"}
@@ -5,4 +5,9 @@ export { BedrockAgentCoreApp } from './app.js';
5
5
  export { RuntimeClient } from './client.js';
6
6
  export type { BedrockAgentCoreAppConfig, ContentTypeParserConfig, InvocationHandler as Handler, RequestContext, HealthStatus, HealthCheckResponse, AsyncTaskInfo, AsyncTaskStatus, RuntimeClientConfig, GenerateWsConnectionParams, GeneratePresignedUrlParams, GenerateWsConnectionOAuthParams, WebSocketConnection, ParsedRuntimeArn, } from './types.js';
7
7
  export { DEFAULT_PRESIGNED_URL_TIMEOUT, MAX_PRESIGNED_URL_TIMEOUT, DEFAULT_REGION, RuntimeArnSchema } from './types.js';
8
+ export type { ConnectShellSigV4Params, ConnectShellPresignedParams, ConnectShellOAuthParams, ShellConnectionSigV4, ShellConnectionPresigned, ShellConnectionOAuth, OpenShellParams, ShellAuthMode, } from './types.js';
9
+ export { ShellChannel, ShellFramer, MAX_FRAME_SIZE } from './shell/index.js';
10
+ export type { ShellFrame } from './shell/index.js';
11
+ export { ShellSession } from './shell/index.js';
12
+ export type { ReconnectConfig, ConnectFn, ShellSessionOptions, Logger } from './shell/index.js';
8
13
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/runtime/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAA;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,YAAY,EACV,yBAAyB,EACzB,uBAAuB,EACvB,iBAAiB,IAAI,OAAO,EAC5B,cAAc,EACd,YAAY,EACZ,mBAAmB,EACnB,aAAa,EACb,eAAe,EACf,mBAAmB,EACnB,0BAA0B,EAC1B,0BAA0B,EAC1B,+BAA+B,EAC/B,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,6BAA6B,EAAE,yBAAyB,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/runtime/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAA;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,YAAY,EACV,yBAAyB,EACzB,uBAAuB,EACvB,iBAAiB,IAAI,OAAO,EAC5B,cAAc,EACd,YAAY,EACZ,mBAAmB,EACnB,aAAa,EACb,eAAe,EACf,mBAAmB,EACnB,0BAA0B,EAC1B,0BAA0B,EAC1B,+BAA+B,EAC/B,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,6BAA6B,EAAE,yBAAyB,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAGvH,YAAY,EACV,uBAAuB,EACvB,2BAA2B,EAC3B,uBAAuB,EACvB,oBAAoB,EACpB,wBAAwB,EACxB,oBAAoB,EACpB,eAAe,EACf,aAAa,GACd,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAC5E,YAAY,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAGlD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAC/C,YAAY,EAAE,eAAe,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA"}
@@ -4,4 +4,7 @@
4
4
  export { BedrockAgentCoreApp } from './app.js';
5
5
  export { RuntimeClient } from './client.js';
6
6
  export { DEFAULT_PRESIGNED_URL_TIMEOUT, MAX_PRESIGNED_URL_TIMEOUT, DEFAULT_REGION, RuntimeArnSchema } from './types.js';
7
+ export { ShellChannel, ShellFramer, MAX_FRAME_SIZE } from './shell/index.js';
8
+ // Shell — Layer 2: managed session
9
+ export { ShellSession } from './shell/index.js';
7
10
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/runtime/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAA;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAiB3C,OAAO,EAAE,6BAA6B,EAAE,yBAAyB,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/runtime/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAA;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAiB3C,OAAO,EAAE,6BAA6B,EAAE,yBAAyB,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAavH,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAG5E,mCAAmC;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA"}
@@ -0,0 +1,81 @@
1
+ /**
2
+ * Minimal logger interface — compatible with `console`, pino, winston, and
3
+ * any other logger that exposes `debug / info / warn` methods.
4
+ *
5
+ * Pass an instance to `openShell` or `ShellSessionOptions` to receive
6
+ * diagnostic output from `ShellSession`. When omitted, all logging is silent.
7
+ *
8
+ * @example opt in with console:
9
+ * ```typescript
10
+ * const shell = await client.openShell({ runtimeArn, logger: console })
11
+ * ```
12
+ * @example opt in with pino:
13
+ * ```typescript
14
+ * const shell = await client.openShell({ runtimeArn, logger: pinoInstance })
15
+ * ```
16
+ */
17
+ export interface Logger {
18
+ debug: (...args: unknown[]) => void;
19
+ info: (...args: unknown[]) => void;
20
+ warn: (...args: unknown[]) => void;
21
+ }
22
+ /** Silent logger used as the default — no output unless the caller opts in. */
23
+ export declare const noopLogger: Logger;
24
+ /** Reconnection configuration for ShellSession. */
25
+ export declare const DEFAULT_MAX_RETRIES = 5;
26
+ export declare const DEFAULT_BASE_DELAY = 1000;
27
+ export declare const DEFAULT_MAX_DELAY = 15000;
28
+ export declare const DEFAULT_METADATA_TIMEOUT = 10000;
29
+ export declare const DEFAULT_RECONNECT_WINDOW = 900000;
30
+ export declare const DEFAULT_OUTER_LOOP_DELAY = 30000;
31
+ export declare const DEFAULT_KEEPALIVE_INTERVAL = 30000;
32
+ /**
33
+ * Configuration for automatic reconnection on WebSocket disconnect.
34
+ *
35
+ * When provided to `openShell`, `ShellSession` will automatically reconnect
36
+ * using the same `shellId` so the shell's working directory, environment, background jobs,
37
+ * and up to 256 KB of buffered output are preserved.
38
+ *
39
+ * @example
40
+ * ```typescript
41
+ * const config: ReconnectConfig = {
42
+ * maxRetries: 5,
43
+ * reconnectWindow: null, // unlimited
44
+ * onReconnect: async (reconnected) => {
45
+ * if (reconnected) console.log('Reattached — buffered output will follow')
46
+ * else console.log('New shell started')
47
+ * }
48
+ * }
49
+ * const shell = await client.openShell(runtimeArn, { reconnectConfig: config })
50
+ * ```
51
+ */
52
+ export interface ReconnectConfig {
53
+ /**
54
+ * Maximum reconnect attempts per inner loop before pausing. Defaults to 5.
55
+ */
56
+ maxRetries?: number;
57
+ /**
58
+ * Initial backoff delay in milliseconds. Doubles on each attempt up to maxDelay. Defaults to 1000.
59
+ */
60
+ baseDelay?: number;
61
+ /**
62
+ * Upper bound on backoff delay in milliseconds. Defaults to 15000.
63
+ */
64
+ maxDelay?: number;
65
+ /**
66
+ * Total milliseconds to keep retrying after a disconnect before giving up.
67
+ * Set to null to retry indefinitely. Defaults to 900000 (~15 min).
68
+ */
69
+ reconnectWindow?: number | null;
70
+ /**
71
+ * Milliseconds to wait between inner loop exhaustion and next outer retry cycle. Defaults to 30000.
72
+ */
73
+ outerLoopDelay?: number;
74
+ /**
75
+ * Optional callback invoked after each successful reconnect.
76
+ * Receives `reconnected: true` when the existing PTY was reattached;
77
+ * `false` when a fresh shell was started.
78
+ */
79
+ onReconnect?: (reconnected: boolean) => void | Promise<void>;
80
+ }
81
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../src/runtime/shell/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,MAAM;IACrB,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAA;IACnC,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAA;IAClC,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAA;CACnC;AAED,+EAA+E;AAC/E,eAAO,MAAM,UAAU,EAAE,MAIxB,CAAA;AAED,mDAAmD;AAEnD,eAAO,MAAM,mBAAmB,IAAI,CAAA;AACpC,eAAO,MAAM,kBAAkB,OAAO,CAAA;AACtC,eAAO,MAAM,iBAAiB,QAAQ,CAAA;AACtC,eAAO,MAAM,wBAAwB,QAAS,CAAA;AAC9C,eAAO,MAAM,wBAAwB,SAAU,CAAA;AAC/C,eAAO,MAAM,wBAAwB,QAAS,CAAA;AAC9C,eAAO,MAAM,0BAA0B,QAAS,CAAA;AAEhD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;IAEnB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAElB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAE/B;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAA;IAEvB;;;;OAIG;IACH,WAAW,CAAC,EAAE,CAAC,WAAW,EAAE,OAAO,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAC7D"}
@@ -0,0 +1,15 @@
1
+ /** Silent logger used as the default — no output unless the caller opts in. */
2
+ export const noopLogger = {
3
+ debug: () => { },
4
+ info: () => { },
5
+ warn: () => { },
6
+ };
7
+ /** Reconnection configuration for ShellSession. */
8
+ export const DEFAULT_MAX_RETRIES = 5;
9
+ export const DEFAULT_BASE_DELAY = 1000; // ms
10
+ export const DEFAULT_MAX_DELAY = 15000; // ms
11
+ export const DEFAULT_METADATA_TIMEOUT = 10_000; // ms
12
+ export const DEFAULT_RECONNECT_WINDOW = 900_000; // ms — ~15 min, matches server-side KARP idle timeout
13
+ export const DEFAULT_OUTER_LOOP_DELAY = 30_000; // ms
14
+ export const DEFAULT_KEEPALIVE_INTERVAL = 30_000; // ms — KARP idle timeout is ~60s; ping every 30s
15
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../src/runtime/shell/config.ts"],"names":[],"mappings":"AAsBA,+EAA+E;AAC/E,MAAM,CAAC,MAAM,UAAU,GAAW;IAChC,KAAK,EAAE,GAAG,EAAE,GAAE,CAAC;IACf,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC;IACd,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC;CACf,CAAA;AAED,mDAAmD;AAEnD,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAA;AACpC,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,CAAA,CAAC,KAAK;AAC5C,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,CAAA,CAAC,KAAK;AAC5C,MAAM,CAAC,MAAM,wBAAwB,GAAG,MAAM,CAAA,CAAC,KAAK;AACpD,MAAM,CAAC,MAAM,wBAAwB,GAAG,OAAO,CAAA,CAAC,sDAAsD;AACtG,MAAM,CAAC,MAAM,wBAAwB,GAAG,MAAM,CAAA,CAAC,KAAK;AACpD,MAAM,CAAC,MAAM,0BAA0B,GAAG,MAAM,CAAA,CAAC,iDAAiD"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Shell subpackage for InvokeAgentRuntimeCommandShell interactive sessions.
3
+ */
4
+ export { ShellChannel, ShellFramer, MAX_FRAME_SIZE } from './protocol.js';
5
+ export type { ShellFrame } from './protocol.js';
6
+ export { ShellSession } from './session.js';
7
+ export type { ConnectFn, ShellSessionOptions } from './session.js';
8
+ export type { ReconnectConfig, Logger } from './config.js';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/runtime/shell/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AACzE,YAAY,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3C,YAAY,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAClE,YAAY,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Shell subpackage for InvokeAgentRuntimeCommandShell interactive sessions.
3
+ */
4
+ export { ShellChannel, ShellFramer, MAX_FRAME_SIZE } from './protocol.js';
5
+ export { ShellSession } from './session.js';
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/runtime/shell/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAEzE,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA"}
@@ -0,0 +1,45 @@
1
+ import { Buffer } from 'buffer';
2
+ /** Wire channel identifiers for the binary channel-prefix protocol. */
3
+ export declare enum ShellChannel {
4
+ STDIN = 0,
5
+ STDOUT = 1,
6
+ STDERR = 2,
7
+ STATUS = 3,
8
+ RESIZE = 4,
9
+ HEARTBEAT = 5,
10
+ CLOSE = 255,
11
+ /** Sentinel for unrecognised channel bytes — not a wire value. */
12
+ UNKNOWN = -1
13
+ }
14
+ /** A single decoded WebSocket frame from the shell stream. */
15
+ export interface ShellFrame {
16
+ /** The channel this frame belongs to. UNKNOWN for unrecognised channel bytes. */
17
+ channel: ShellChannel;
18
+ /** The original channel byte from the wire. */
19
+ rawChannelByte: number;
20
+ /** Raw bytes of the frame payload (everything after the channel byte). */
21
+ payload: Buffer;
22
+ /** Decode payload as UTF-8 text (replacement char on invalid bytes). */
23
+ readonly text: string;
24
+ /** Parse payload as JSON. Throws SyntaxError if payload is not valid JSON. */
25
+ json(): Record<string, unknown>;
26
+ }
27
+ /** Maximum frame size — matches DP WebSocketFlowController limit. */
28
+ export declare const MAX_FRAME_SIZE: number;
29
+ /**
30
+ * Encodes and decodes binary channel-prefix WebSocket frames.
31
+ * Stateless — a single instance is safe to reuse across frames.
32
+ */
33
+ export declare class ShellFramer {
34
+ /** Decode one raw WebSocket binary message into a ShellFrame. */
35
+ decode(frame: Buffer): ShellFrame;
36
+ /** Encode keyboard input or paste data as a STDIN frame. */
37
+ encodeStdin(data: string | Buffer): Buffer;
38
+ /** Encode a terminal resize event as a RESIZE frame. */
39
+ encodeResize(width: number, height: number): Buffer;
40
+ /** Encode an app-level heartbeat frame (channel 0x05, empty payload). */
41
+ encodeHeartbeat(): Buffer;
42
+ /** Encode a graceful-shutdown CLOSE frame (empty payload). */
43
+ encodeClose(): Buffer;
44
+ }
45
+ //# sourceMappingURL=protocol.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../../../src/runtime/shell/protocol.ts"],"names":[],"mappings":"AA0BA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAE/B,uEAAuE;AACvE,oBAAY,YAAY;IACtB,KAAK,IAAO;IACZ,MAAM,IAAO;IACb,MAAM,IAAO;IACb,MAAM,IAAO;IACb,MAAM,IAAO;IACb,SAAS,IAAO;IAChB,KAAK,MAAO;IACZ,kEAAkE;IAClE,OAAO,KAAK;CACb;AAOD,8DAA8D;AAC9D,MAAM,WAAW,UAAU;IACzB,iFAAiF;IACjF,OAAO,EAAE,YAAY,CAAA;IACrB,+CAA+C;IAC/C,cAAc,EAAE,MAAM,CAAA;IACtB,0EAA0E;IAC1E,OAAO,EAAE,MAAM,CAAA;IACf,wEAAwE;IACxE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,8EAA8E;IAC9E,IAAI,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAChC;AAED,qEAAqE;AACrE,eAAO,MAAM,cAAc,QAAY,CAAA;AAgBvC;;;GAGG;AACH,qBAAa,WAAW;IACtB,iEAAiE;IACjE,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU;IASjC,4DAA4D;IAC5D,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM;IAU1C,wDAAwD;IACxD,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM;IAWnD,yEAAyE;IACzE,eAAe,IAAI,MAAM;IAIzB,8DAA8D;IAC9D,WAAW,IAAI,MAAM;CAGtB"}