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.
- package/README.md +1 -1
- package/dist/src/memory/integrations/strands/factory.d.ts +78 -0
- package/dist/src/memory/integrations/strands/factory.d.ts.map +1 -0
- package/dist/src/memory/integrations/strands/factory.js +108 -0
- package/dist/src/memory/integrations/strands/factory.js.map +1 -0
- package/dist/src/memory/integrations/strands/format.d.ts +17 -0
- package/dist/src/memory/integrations/strands/format.d.ts.map +1 -0
- package/dist/src/memory/integrations/strands/format.js +29 -0
- package/dist/src/memory/integrations/strands/format.js.map +1 -0
- package/dist/src/memory/integrations/strands/index.d.ts +11 -0
- package/dist/src/memory/integrations/strands/index.d.ts.map +1 -0
- package/dist/src/memory/integrations/strands/index.js +6 -0
- package/dist/src/memory/integrations/strands/index.js.map +1 -0
- package/dist/src/memory/integrations/strands/logger.d.ts +19 -0
- package/dist/src/memory/integrations/strands/logger.d.ts.map +1 -0
- package/dist/src/memory/integrations/strands/logger.js +27 -0
- package/dist/src/memory/integrations/strands/logger.js.map +1 -0
- package/dist/src/memory/integrations/strands/sender.d.ts +79 -0
- package/dist/src/memory/integrations/strands/sender.d.ts.map +1 -0
- package/dist/src/memory/integrations/strands/sender.js +170 -0
- package/dist/src/memory/integrations/strands/sender.js.map +1 -0
- package/dist/src/memory/integrations/strands/store.d.ts +28 -0
- package/dist/src/memory/integrations/strands/store.d.ts.map +1 -0
- package/dist/src/memory/integrations/strands/store.js +154 -0
- package/dist/src/memory/integrations/strands/store.js.map +1 -0
- package/dist/src/memory/integrations/strands/types.d.ts +122 -0
- package/dist/src/memory/integrations/strands/types.d.ts.map +1 -0
- package/dist/src/memory/integrations/strands/types.js +73 -0
- package/dist/src/memory/integrations/strands/types.js.map +1 -0
- package/dist/src/runtime/client.d.ts +79 -11
- package/dist/src/runtime/client.d.ts.map +1 -1
- package/dist/src/runtime/client.js +230 -79
- package/dist/src/runtime/client.js.map +1 -1
- package/dist/src/runtime/index.d.ts +5 -0
- package/dist/src/runtime/index.d.ts.map +1 -1
- package/dist/src/runtime/index.js +3 -0
- package/dist/src/runtime/index.js.map +1 -1
- package/dist/src/runtime/shell/config.d.ts +81 -0
- package/dist/src/runtime/shell/config.d.ts.map +1 -0
- package/dist/src/runtime/shell/config.js +15 -0
- package/dist/src/runtime/shell/config.js.map +1 -0
- package/dist/src/runtime/shell/index.d.ts +9 -0
- package/dist/src/runtime/shell/index.d.ts.map +1 -0
- package/dist/src/runtime/shell/index.js +6 -0
- package/dist/src/runtime/shell/index.js.map +1 -0
- package/dist/src/runtime/shell/protocol.d.ts +45 -0
- package/dist/src/runtime/shell/protocol.d.ts.map +1 -0
- package/dist/src/runtime/shell/protocol.js +99 -0
- package/dist/src/runtime/shell/protocol.js.map +1 -0
- package/dist/src/runtime/shell/session.d.ts +240 -0
- package/dist/src/runtime/shell/session.d.ts.map +1 -0
- package/dist/src/runtime/shell/session.js +880 -0
- package/dist/src/runtime/shell/session.js.map +1 -0
- package/dist/src/runtime/shell/validation.d.ts +8 -0
- package/dist/src/runtime/shell/validation.d.ts.map +1 -0
- package/dist/src/runtime/shell/validation.js +17 -0
- package/dist/src/runtime/shell/validation.js.map +1 -0
- package/dist/src/runtime/types.d.ts +89 -0
- package/dist/src/runtime/types.d.ts.map +1 -1
- 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
|
-
|
|
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
|
|
87
|
-
|
|
88
|
-
|
|
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
|
-
|
|
98
|
-
|
|
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
|
|
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
|
-
...
|
|
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
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
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
|
-
|
|
226
|
-
|
|
227
|
-
|
|
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
|
-
|
|
237
|
-
|
|
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
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
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 +=
|
|
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
|
-
|
|
255
|
-
const
|
|
256
|
-
|
|
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(
|
|
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":"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"}
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/runtime/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,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;AAgB7D,OAAO,EAAE,6BAA6B,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAA;AACrF,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAEvD;;;;;;;;;;;;;;;;;;;;;;;;;;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,uBAAuB,CAAC,UAAkB;QAChD,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAA;QAChD,IAAI,MAAM,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CACb,cAAc,MAAM,CAAC,MAAM,iCAAiC,IAAI,CAAC,MAAM,IAAI;gBACzE,kFAAkF,CACrF,CAAA;QACH,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAEO,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,gBAAgB;IACR,WAAW,CAAC,IAAY,EAAE,WAAoC;QACpE,MAAM,QAAQ,GAAG,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAClD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,QAAQ,GAAG,IAAI,EAAE,CAAC,CAAA;QACzC,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QAC7E,CAAC;QACD,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAA;IACxD,CAAC;IAED,gBAAgB;IACR,kBAAkB,CACxB,UAAkB,EAClB,YAAqB,EACrB,aAAsC;QAEtC,MAAM,UAAU,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAA;QACjD,OAAO,IAAI,CAAC,WAAW,CAAC,aAAa,UAAU,KAAK,EAAE;YACpD,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACpD,GAAG,aAAa;SACjB,CAAC,CAAA;IACJ,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACH,KAAK,CAAC,oBAAoB,CAAC,MAAkC;QAC3D,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;QACxC,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;QAC7E,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,SAAS,CAAC,CAAA;QAClE,OAAO;YACL,GAAG,EAAE,KAAK;YACV,OAAO,EAAE;gBACP,GAAG,aAAa;gBAChB,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,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;QACD,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;QACxC,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,EAAE;YAC5E,GAAG,MAAM,CAAC,aAAa;YACvB,6CAA6C,EAAE,SAAS;SACzD,CAAC,CAAA;QACF,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;IAC3C,CAAC;IAED,gBAAgB;IACR,cAAc,CAAC,UAAkB,EAAE,OAAe,EAAE,YAAqB;QAC/E,MAAM,UAAU,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAA;QACjD,OAAO,IAAI,CAAC,WAAW,CAAC,aAAa,UAAU,YAAY,EAAE;YAC3D,OAAO;YACP,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACrD,CAAC,CAAA;IACJ,CAAC;IAED,gFAAgF;IACxE,KAAK,CAAC,eAAe,CAAC,KAAa,EAAE,SAAiB;QAC5D,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAA;QAC3D,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAA;QACpD,IAAI,CAAC,WAAW;YAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAA;QAC7D,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;QACD,OAAO,aAAa,CAAC,OAAiC,CAAA;IACxD,CAAC;IAED,sEAAsE;IAC9D,KAAK,CAAC,aAAa,CAAC,KAAa,EAAE,OAAe;QACxD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAA;QAC3D,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAA;QACpD,IAAI,CAAC,WAAW;YAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAA;QAC7D,MAAM,MAAM,GAAG,MAAM,IAAI,WAAW,CAAC;YACnC,WAAW;YACX,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,OAAO,EAAE,mBAAmB;YAC5B,MAAM,EAAE,MAAM;SACf,CAAC,CAAC,OAAO,CACR,IAAI,WAAW,CAAC;YACd,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,EAAE,IAAI,EAAE,GAAG,CAAC,QAAQ,EAAE;SAChC,CAAC,EACF,EAAE,SAAS,EAAE,OAAO,EAAE,CACvB,CAAA;QACD,IAAI,YAAY,GAAG,GAAG,MAAM,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,IAAI,EAAE,CAAA;QACzE,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACjB,MAAM,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;iBACpC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;iBACxD,IAAI,CAAC,GAAG,CAAC,CAAA;YACZ,YAAY,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAA;QAC/D,CAAC;QACD,OAAO,YAAY,CAAC,OAAO,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAA;IACtD,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,iBAAiB,CAAC,MAA+B;QACrD,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QAC/B,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;QAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,YAAY,CAAC,CAAA;QACzF,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,CAAA;QACnE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,CAAA;IAChC,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,qBAAqB,CAAC,MAAmC;QAC7D,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QAC/B,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;QACD,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;QAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,YAAY,CAAC,CAAA;QACzF,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAA;QACrC,cAAc,CAAC,YAAY,CAAC,GAAG,CAAC,6CAA6C,EAAE,MAAM,CAAC,SAAS,CAAC,CAAA;QAChG,OAAO,EAAE,GAAG,EAAE,MAAM,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,EAAE,EAAE,OAAO,CAAC,EAAE,CAAA;IAC9E,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,iBAAiB,CAAC,MAA+B;QACrD,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QAC/B,IAAI,CAAC,MAAM,CAAC,WAAW;YAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAA;QACvE,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;QAC/C,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAA;QACrE,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CACb,6DAA6D,OAAO,CAAC,MAAM,2BAA2B,CACvG,CAAA;QACH,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,YAAY,CAAC,CAAA;QACzF,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAA;QAC1B,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,6CAA6C,EAAE,MAAM,CAAC,SAAS,CAAC,CAAA;QACrF,OAAO;YACL,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE;YACnB,YAAY,EAAE,CAAC,gCAAgC,OAAO,EAAE,EAAE,8BAA8B,CAAC;SAC1F,CAAA;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+BG;IACH,KAAK,CAAC,SAAS,CAAC,MAAuB;QACrC,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;QAC/C,IAAI,MAAM,CAAC,OAAO,IAAI,IAAI;YAAE,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QAE3D,gEAAgE;QAChE,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,UAAU,EAAE,CAAA;QAC9C,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,UAAU,EAAE,CAAA;QAClD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,OAAO,CAAA;QAEnC,IAAI,SAGgF,CAAA;QAEpF,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YACrB,SAAS,GAAG,KAAK,EACf,GAAW,EACX,gBAAwB,EACyD,EAAE;gBACnF,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC;oBACpD,UAAU,EAAE,MAAM,CAAC,UAAU;oBAC7B,OAAO,EAAE,GAAG;oBACZ,SAAS,EAAE,gBAAgB;oBAC3B,YAAY,EAAE,MAAM,CAAC,YAAY;iBAClC,CAAC,CAAA;gBACF,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,CAAA;YACzB,CAAC,CAAA;QACH,CAAC;aAAM,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YACjE,SAAS,GAAG,KAAK,EACf,GAAW,EACX,gBAAwB,EACyD,EAAE;gBACnF,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC;oBAC/C,UAAU,EAAE,MAAM,CAAC,UAAU;oBAC7B,OAAO,EAAE,GAAG;oBACZ,SAAS,EAAE,gBAAgB;oBAC3B,YAAY,EAAE,MAAM,CAAC,YAAY;oBACjC,OAAO,EAAE,IAAI,CAAC,OAAO;iBACtB,CAAC,CAAA;gBACF,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,CAAA;YAC7B,CAAC,CAAA;QACH,CAAC;aAAM,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC7D,SAAS,GAAG,KAAK,EACf,GAAW,EACX,gBAAwB,EACyD,EAAE;gBACnF,MAAM,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC;oBACzD,UAAU,EAAE,MAAM,CAAC,UAAU;oBAC7B,OAAO,EAAE,GAAG;oBACZ,SAAS,EAAE,gBAAgB;oBAC3B,YAAY,EAAE,MAAM,CAAC,YAAY;oBACjC,WAAW,EAAE,IAAI,CAAC,WAAW;iBAC9B,CAAC,CAAA;gBACF,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE,CAAA;YACtD,CAAC,CAAA;QACH,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,sBAAsB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAC/D,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,YAAY,CAAC;YAC/B,SAAS;YACT,OAAO;YACP,SAAS;YACT,eAAe,EAAE,MAAM,CAAC,eAAe;YACvC,mBAAmB,EAAE,MAAM,CAAC,mBAAmB;YAC/C,MAAM,EAAE,MAAM,CAAC,MAAM;SACtB,CAAC,CAAA;QACF,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;IAC1B,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,WAAW,EAAE,UAAU,CAAC,CAAA;QACvD,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"}
|
|
@@ -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 @@
|
|
|
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"}
|