@action-llama/action-llama 0.6.5 → 0.6.6
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/dist/agents/container-runner.d.ts +2 -1
- package/dist/agents/container-runner.d.ts.map +1 -1
- package/dist/agents/container-runner.js +9 -5
- package/dist/agents/container-runner.js.map +1 -1
- package/dist/cli/commands/doctor.d.ts.map +1 -1
- package/dist/cli/commands/doctor.js +109 -0
- package/dist/cli/commands/doctor.js.map +1 -1
- package/dist/cli/commands/run.d.ts.map +1 -1
- package/dist/cli/commands/run.js +31 -14
- package/dist/cli/commands/run.js.map +1 -1
- package/dist/docker/aws-shared.d.ts +46 -0
- package/dist/docker/aws-shared.d.ts.map +1 -0
- package/dist/docker/aws-shared.js +382 -0
- package/dist/docker/aws-shared.js.map +1 -0
- package/dist/docker/ecs-runtime.d.ts +1 -16
- package/dist/docker/ecs-runtime.d.ts.map +1 -1
- package/dist/docker/ecs-runtime.js +20 -357
- package/dist/docker/ecs-runtime.js.map +1 -1
- package/dist/docker/lambda-runtime.d.ts +43 -0
- package/dist/docker/lambda-runtime.d.ts.map +1 -0
- package/dist/docker/lambda-runtime.js +247 -0
- package/dist/docker/lambda-runtime.js.map +1 -0
- package/dist/gateway/index.js +2 -2
- package/dist/gateway/index.js.map +1 -1
- package/dist/gateway/routes/locks.js +3 -3
- package/dist/gateway/routes/locks.js.map +1 -1
- package/dist/gateway/types.d.ts +2 -0
- package/dist/gateway/types.d.ts.map +1 -1
- package/dist/scheduler/index.d.ts.map +1 -1
- package/dist/scheduler/index.js +31 -2
- package/dist/scheduler/index.js.map +1 -1
- package/dist/shared/aws-constants.d.ts +10 -0
- package/dist/shared/aws-constants.d.ts.map +1 -1
- package/dist/shared/aws-constants.js +10 -0
- package/dist/shared/aws-constants.js.map +1 -1
- package/dist/shared/config.d.ts +4 -0
- package/dist/shared/config.d.ts.map +1 -1
- package/dist/shared/config.js.map +1 -1
- package/package.json +2 -1
|
@@ -1,12 +1,5 @@
|
|
|
1
|
-
import { execFileSync } from "child_process";
|
|
2
|
-
import { createReadStream } from "fs";
|
|
3
1
|
import { ECSClient, RegisterTaskDefinitionCommand, RunTaskCommand, DescribeTasksCommand, StopTaskCommand, ListTasksCommand, } from "@aws-sdk/client-ecs";
|
|
4
|
-
import {
|
|
5
|
-
import { CloudWatchLogsClient, GetLogEventsCommand, FilterLogEventsCommand, CreateLogGroupCommand, } from "@aws-sdk/client-cloudwatch-logs";
|
|
6
|
-
import { CodeBuildClient, StartBuildCommand, BatchGetBuildsCommand, CreateProjectCommand, } from "@aws-sdk/client-codebuild";
|
|
7
|
-
import { S3Client, PutObjectCommand, CreateBucketCommand, HeadBucketCommand, } from "@aws-sdk/client-s3";
|
|
8
|
-
import { ECRClient, BatchGetImageCommand, } from "@aws-sdk/client-ecr";
|
|
9
|
-
import { parseCredentialRef } from "../shared/credentials.js";
|
|
2
|
+
import { AwsSharedUtils } from "./aws-shared.js";
|
|
10
3
|
import { AWS_CONSTANTS } from "../shared/aws-constants.js";
|
|
11
4
|
/**
|
|
12
5
|
* AWS ECS Fargate runtime.
|
|
@@ -30,39 +23,20 @@ import { AWS_CONSTANTS } from "../shared/aws-constants.js";
|
|
|
30
23
|
export class ECSFargateRuntime {
|
|
31
24
|
needsGateway = false;
|
|
32
25
|
config;
|
|
33
|
-
prefix;
|
|
34
26
|
ecsClient;
|
|
35
|
-
|
|
36
|
-
logsClient;
|
|
37
|
-
cbClient;
|
|
38
|
-
s3Client;
|
|
39
|
-
ecrClient;
|
|
27
|
+
shared;
|
|
40
28
|
constructor(config) {
|
|
41
29
|
this.config = config;
|
|
42
|
-
this.
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
this.ecrClient = new ECRClient(clientConfig);
|
|
30
|
+
this.ecsClient = new ECSClient({ region: config.awsRegion });
|
|
31
|
+
this.shared = new AwsSharedUtils({
|
|
32
|
+
awsRegion: config.awsRegion,
|
|
33
|
+
ecrRepository: config.ecrRepository,
|
|
34
|
+
secretPrefix: config.secretPrefix,
|
|
35
|
+
buildBucket: config.buildBucket,
|
|
36
|
+
});
|
|
50
37
|
}
|
|
51
38
|
static STARTED_BY_PREFIX = AWS_CONSTANTS.STARTED_BY;
|
|
52
39
|
static LOG_GROUP = AWS_CONSTANTS.LOG_GROUP;
|
|
53
|
-
logGroupCreated = false;
|
|
54
|
-
async ensureLogGroup() {
|
|
55
|
-
if (this.logGroupCreated)
|
|
56
|
-
return;
|
|
57
|
-
try {
|
|
58
|
-
await this.logsClient.send(new CreateLogGroupCommand({ logGroupName: ECSFargateRuntime.LOG_GROUP }));
|
|
59
|
-
}
|
|
60
|
-
catch (err) {
|
|
61
|
-
if (err.name !== "ResourceAlreadyExistsException")
|
|
62
|
-
throw err;
|
|
63
|
-
}
|
|
64
|
-
this.logGroupCreated = true;
|
|
65
|
-
}
|
|
66
40
|
// --- Agent tracking ---
|
|
67
41
|
async isAgentRunning(agentName) {
|
|
68
42
|
const family = AWS_CONSTANTS.agentFamily(agentName);
|
|
@@ -97,294 +71,24 @@ export class ECSFargateRuntime {
|
|
|
97
71
|
};
|
|
98
72
|
});
|
|
99
73
|
}
|
|
100
|
-
// --- Credential preparation ---
|
|
74
|
+
// --- Credential preparation (delegates to shared) ---
|
|
101
75
|
async prepareCredentials(credRefs) {
|
|
102
|
-
|
|
103
|
-
for (const credRef of credRefs) {
|
|
104
|
-
const { type, instance } = parseCredentialRef(credRef);
|
|
105
|
-
const fields = await this.listSecretFields(type, instance);
|
|
106
|
-
for (const field of fields) {
|
|
107
|
-
const secretName = this.awsSecretName(type, instance, field);
|
|
108
|
-
mounts.push({
|
|
109
|
-
secretId: secretName,
|
|
110
|
-
mountPath: `/credentials/${type}/${instance}/${field}`,
|
|
111
|
-
});
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
return { strategy: "secrets-manager", mounts };
|
|
76
|
+
return this.shared.prepareCredentials(credRefs);
|
|
115
77
|
}
|
|
116
78
|
cleanupCredentials(_creds) {
|
|
117
79
|
// No-op
|
|
118
80
|
}
|
|
119
|
-
// --- Image management ---
|
|
81
|
+
// --- Image management (delegates to shared) ---
|
|
120
82
|
async buildImage(opts) {
|
|
121
|
-
return this.buildImageCodeBuild(opts, opts.onProgress);
|
|
83
|
+
return this.shared.buildImageCodeBuild(opts, opts.onProgress);
|
|
122
84
|
}
|
|
123
85
|
async pushImage(_localImage) {
|
|
124
86
|
// CodeBuild handles build + push in one step; the image is already in ECR
|
|
125
87
|
return `${this.config.ecrRepository}:${_localImage.replace(":", "-")}`;
|
|
126
88
|
}
|
|
127
|
-
async buildImageCodeBuild(opts, onProgress) {
|
|
128
|
-
onProgress?.("Preparing build context");
|
|
129
|
-
const { join, relative, isAbsolute } = await import("path");
|
|
130
|
-
const { readFileSync, writeFileSync } = await import("fs");
|
|
131
|
-
const { randomUUID, createHash } = await import("crypto");
|
|
132
|
-
// Resolve the Dockerfile path and handle two cases:
|
|
133
|
-
// 1. Dockerfile is outside the context dir (agent custom Dockerfiles) — copy it in
|
|
134
|
-
// 2. Dockerfile references a local base image — rewrite FROM to use the remote ECR URI
|
|
135
|
-
const resolvedDockerfile = isAbsolute(opts.dockerfile)
|
|
136
|
-
? opts.dockerfile
|
|
137
|
-
: join(opts.contextDir, opts.dockerfile);
|
|
138
|
-
const relPath = relative(opts.contextDir, resolvedDockerfile);
|
|
139
|
-
let dockerfileTar;
|
|
140
|
-
let tempDockerfile;
|
|
141
|
-
const needsCopy = relPath.startsWith("..");
|
|
142
|
-
const needsRewrite = !!opts.baseImage;
|
|
143
|
-
if (needsCopy || needsRewrite) {
|
|
144
|
-
tempDockerfile = join(opts.contextDir, `.Dockerfile.${randomUUID().slice(0, 8)}`);
|
|
145
|
-
let content = readFileSync(resolvedDockerfile, "utf-8");
|
|
146
|
-
if (needsRewrite && opts.baseImage) {
|
|
147
|
-
content = content.replace(/^FROM\s+\S+/m, `FROM ${opts.baseImage}`);
|
|
148
|
-
}
|
|
149
|
-
writeFileSync(tempDockerfile, content);
|
|
150
|
-
dockerfileTar = relative(opts.contextDir, tempDockerfile);
|
|
151
|
-
}
|
|
152
|
-
else {
|
|
153
|
-
dockerfileTar = relPath;
|
|
154
|
-
}
|
|
155
|
-
// Hash individual file contents (sorted) for a deterministic fingerprint.
|
|
156
|
-
const { readdirSync, readFileSync: readFileSyncBuf } = await import("fs");
|
|
157
|
-
const hash = createHash("sha256");
|
|
158
|
-
const hashFile = (p) => {
|
|
159
|
-
hash.update(p);
|
|
160
|
-
hash.update(readFileSyncBuf(join(opts.contextDir, p)));
|
|
161
|
-
};
|
|
162
|
-
const hashDir = (dir) => {
|
|
163
|
-
const entries = readdirSync(join(opts.contextDir, dir), { withFileTypes: true })
|
|
164
|
-
.sort((a, b) => a.name.localeCompare(b.name));
|
|
165
|
-
for (const entry of entries) {
|
|
166
|
-
const p = join(dir, entry.name);
|
|
167
|
-
if (entry.isDirectory())
|
|
168
|
-
hashDir(p);
|
|
169
|
-
else
|
|
170
|
-
hashFile(p);
|
|
171
|
-
}
|
|
172
|
-
};
|
|
173
|
-
hashFile(dockerfileTar);
|
|
174
|
-
hashFile("package.json");
|
|
175
|
-
hashDir("dist");
|
|
176
|
-
// Clean up temp Dockerfile after hashing but before any early returns
|
|
177
|
-
if (tempDockerfile) {
|
|
178
|
-
try {
|
|
179
|
-
const { rmSync } = await import("fs");
|
|
180
|
-
rmSync(tempDockerfile);
|
|
181
|
-
}
|
|
182
|
-
catch { }
|
|
183
|
-
}
|
|
184
|
-
const contentHash = hash.digest("hex").slice(0, 16);
|
|
185
|
-
const nameTag = opts.tag.replace(":", "-");
|
|
186
|
-
const hashTag = `${nameTag}-${contentHash}`;
|
|
187
|
-
const remoteTag = `${this.config.ecrRepository}:${hashTag}`;
|
|
188
|
-
// Check ECR cache before doing any S3/CodeBuild work
|
|
189
|
-
onProgress?.(`Checking cache (${hashTag})`);
|
|
190
|
-
const repoName = this.config.ecrRepository.split("/").pop();
|
|
191
|
-
const imageExists = await this.ecrImageExists(repoName, hashTag, onProgress);
|
|
192
|
-
if (imageExists) {
|
|
193
|
-
onProgress?.("Image unchanged — reusing cached build");
|
|
194
|
-
return remoteTag;
|
|
195
|
-
}
|
|
196
|
-
// Cache miss — need to build. Re-create temp Dockerfile for tarball.
|
|
197
|
-
if (needsCopy || needsRewrite) {
|
|
198
|
-
tempDockerfile = join(opts.contextDir, `.Dockerfile.${randomUUID().slice(0, 8)}`);
|
|
199
|
-
let content = readFileSync(resolvedDockerfile, "utf-8");
|
|
200
|
-
if (needsRewrite && opts.baseImage) {
|
|
201
|
-
content = content.replace(/^FROM\s+\S+/m, `FROM ${opts.baseImage}`);
|
|
202
|
-
}
|
|
203
|
-
writeFileSync(tempDockerfile, content);
|
|
204
|
-
dockerfileTar = relative(opts.contextDir, tempDockerfile);
|
|
205
|
-
}
|
|
206
|
-
const { tmpdir } = await import("os");
|
|
207
|
-
const tarPath = join(tmpdir(), `${AWS_CONSTANTS.BUILD_S3_PREFIX}-${randomUUID().slice(0, 8)}.tar.gz`);
|
|
208
|
-
try {
|
|
209
|
-
execFileSync("tar", [
|
|
210
|
-
"czf", tarPath,
|
|
211
|
-
"-C", opts.contextDir,
|
|
212
|
-
dockerfileTar, "package.json", "dist",
|
|
213
|
-
], {
|
|
214
|
-
encoding: "utf-8",
|
|
215
|
-
timeout: 60_000,
|
|
216
|
-
env: { ...process.env, COPYFILE_DISABLE: "1" },
|
|
217
|
-
});
|
|
218
|
-
}
|
|
219
|
-
finally {
|
|
220
|
-
if (tempDockerfile) {
|
|
221
|
-
try {
|
|
222
|
-
const { rmSync } = await import("fs");
|
|
223
|
-
rmSync(tempDockerfile);
|
|
224
|
-
}
|
|
225
|
-
catch { }
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
// Upload to S3
|
|
229
|
-
onProgress?.("Uploading to S3");
|
|
230
|
-
const bucket = await this.ensureBuildBucket();
|
|
231
|
-
const s3Key = `${AWS_CONSTANTS.BUILD_S3_PREFIX}/${nameTag}-${Date.now()}.tar.gz`;
|
|
232
|
-
await this.s3Client.send(new PutObjectCommand({
|
|
233
|
-
Bucket: bucket,
|
|
234
|
-
Key: s3Key,
|
|
235
|
-
Body: createReadStream(tarPath),
|
|
236
|
-
}));
|
|
237
|
-
// Clean up local tarball
|
|
238
|
-
try {
|
|
239
|
-
const { rmSync } = await import("fs");
|
|
240
|
-
rmSync(tarPath);
|
|
241
|
-
}
|
|
242
|
-
catch { }
|
|
243
|
-
// Ensure CodeBuild project exists
|
|
244
|
-
const projectName = AWS_CONSTANTS.CODEBUILD_PROJECT;
|
|
245
|
-
await this.ensureCodeBuildProject(projectName, bucket);
|
|
246
|
-
const registry = this.config.ecrRepository.split("/")[0];
|
|
247
|
-
// Start build
|
|
248
|
-
const buildspec = [
|
|
249
|
-
"version: 0.2",
|
|
250
|
-
"phases:",
|
|
251
|
-
" pre_build:",
|
|
252
|
-
" commands:",
|
|
253
|
-
" - tar xzf *.tar.gz && rm -f *.tar.gz",
|
|
254
|
-
" - aws ecr get-login-password --region $AWS_DEFAULT_REGION | docker login --username AWS --password-stdin $ECR_REGISTRY",
|
|
255
|
-
" build:",
|
|
256
|
-
" commands:",
|
|
257
|
-
" - docker build -t $IMAGE_URI -f $DOCKERFILE .",
|
|
258
|
-
" - docker push $IMAGE_URI",
|
|
259
|
-
].join("\n");
|
|
260
|
-
const buildRes = await this.cbClient.send(new StartBuildCommand({
|
|
261
|
-
projectName,
|
|
262
|
-
sourceTypeOverride: "S3",
|
|
263
|
-
sourceLocationOverride: `${bucket}/${s3Key}`,
|
|
264
|
-
buildspecOverride: buildspec,
|
|
265
|
-
environmentVariablesOverride: [
|
|
266
|
-
{ name: "IMAGE_URI", value: remoteTag },
|
|
267
|
-
{ name: "ECR_REGISTRY", value: registry },
|
|
268
|
-
{ name: "DOCKERFILE", value: dockerfileTar },
|
|
269
|
-
],
|
|
270
|
-
}));
|
|
271
|
-
const buildId = buildRes.build?.id;
|
|
272
|
-
if (!buildId)
|
|
273
|
-
throw new Error("CodeBuild did not return a build ID");
|
|
274
|
-
onProgress?.("Queued — waiting for CodeBuild");
|
|
275
|
-
// Poll until complete
|
|
276
|
-
while (true) {
|
|
277
|
-
await sleep(10_000);
|
|
278
|
-
const status = await this.cbClient.send(new BatchGetBuildsCommand({ ids: [buildId] }));
|
|
279
|
-
const build = status.builds?.[0];
|
|
280
|
-
if (!build)
|
|
281
|
-
throw new Error(`CodeBuild build ${buildId} not found`);
|
|
282
|
-
if (build.currentPhase) {
|
|
283
|
-
const phaseLabels = {
|
|
284
|
-
SUBMITTED: "Submitted",
|
|
285
|
-
QUEUED: "Queued",
|
|
286
|
-
PROVISIONING: "Provisioning build environment",
|
|
287
|
-
DOWNLOAD_SOURCE: "Downloading source",
|
|
288
|
-
INSTALL: "Installing dependencies",
|
|
289
|
-
PRE_BUILD: "Logging in to ECR",
|
|
290
|
-
BUILD: "Building and pushing image",
|
|
291
|
-
POST_BUILD: "Finalizing",
|
|
292
|
-
UPLOAD_ARTIFACTS: "Uploading artifacts",
|
|
293
|
-
FINALIZING: "Finalizing",
|
|
294
|
-
COMPLETED: "Complete",
|
|
295
|
-
};
|
|
296
|
-
const label = phaseLabels[build.currentPhase] || build.currentPhase;
|
|
297
|
-
onProgress?.(label);
|
|
298
|
-
}
|
|
299
|
-
if (build.buildComplete) {
|
|
300
|
-
if (build.buildStatus !== "SUCCEEDED") {
|
|
301
|
-
const logs = build.logs?.deepLink || "";
|
|
302
|
-
throw new Error(`CodeBuild build failed (${build.buildStatus}). Logs: ${logs}`);
|
|
303
|
-
}
|
|
304
|
-
return remoteTag;
|
|
305
|
-
}
|
|
306
|
-
}
|
|
307
|
-
}
|
|
308
|
-
async ecrImageExists(repositoryName, imageTag, onProgress) {
|
|
309
|
-
try {
|
|
310
|
-
const res = await this.ecrClient.send(new BatchGetImageCommand({
|
|
311
|
-
repositoryName,
|
|
312
|
-
imageIds: [{ imageTag }],
|
|
313
|
-
}));
|
|
314
|
-
return (res.images?.length ?? 0) > 0;
|
|
315
|
-
}
|
|
316
|
-
catch (err) {
|
|
317
|
-
// ImageNotFoundException is expected when the image doesn't exist
|
|
318
|
-
if (err.name === "ImageNotFoundException")
|
|
319
|
-
return false;
|
|
320
|
-
// Surface unexpected errors (permissions, network) so they're not silently swallowed
|
|
321
|
-
onProgress?.(`Cache check failed: ${err.message ?? err}`);
|
|
322
|
-
return false;
|
|
323
|
-
}
|
|
324
|
-
}
|
|
325
|
-
async ensureBuildBucket() {
|
|
326
|
-
if (this.config.buildBucket) {
|
|
327
|
-
return this.config.buildBucket;
|
|
328
|
-
}
|
|
329
|
-
// Derive bucket name from account ID + region
|
|
330
|
-
const accountId = this.getAccountId();
|
|
331
|
-
const bucket = AWS_CONSTANTS.buildBucket(accountId, this.config.awsRegion);
|
|
332
|
-
try {
|
|
333
|
-
await this.s3Client.send(new HeadBucketCommand({ Bucket: bucket }));
|
|
334
|
-
}
|
|
335
|
-
catch (err) {
|
|
336
|
-
if (err.name === "NotFound" || err.$metadata?.httpStatusCode === 404) {
|
|
337
|
-
await this.s3Client.send(new CreateBucketCommand({ Bucket: bucket }));
|
|
338
|
-
}
|
|
339
|
-
else if (err.name !== "Forbidden") {
|
|
340
|
-
// Forbidden means bucket exists but we don't own it — try anyway
|
|
341
|
-
throw err;
|
|
342
|
-
}
|
|
343
|
-
}
|
|
344
|
-
return bucket;
|
|
345
|
-
}
|
|
346
|
-
async ensureCodeBuildProject(projectName, bucket) {
|
|
347
|
-
const accountId = this.getAccountId();
|
|
348
|
-
const region = this.config.awsRegion;
|
|
349
|
-
try {
|
|
350
|
-
const status = await this.cbClient.send(new BatchGetBuildsCommand({ ids: [`${projectName}:dummy`] }));
|
|
351
|
-
// If the project doesn't exist, BatchGetBuilds returns empty — but we need a better check
|
|
352
|
-
// Actually, just try to create and handle the conflict
|
|
353
|
-
void status;
|
|
354
|
-
}
|
|
355
|
-
catch { }
|
|
356
|
-
const serviceRole = `arn:aws:iam::${accountId}:role/${AWS_CONSTANTS.CODEBUILD_ROLE}`;
|
|
357
|
-
try {
|
|
358
|
-
await this.cbClient.send(new CreateProjectCommand({
|
|
359
|
-
name: projectName,
|
|
360
|
-
source: {
|
|
361
|
-
type: "S3",
|
|
362
|
-
location: `${bucket}/`,
|
|
363
|
-
},
|
|
364
|
-
artifacts: { type: "NO_ARTIFACTS" },
|
|
365
|
-
environment: {
|
|
366
|
-
type: "LINUX_CONTAINER",
|
|
367
|
-
computeType: "BUILD_GENERAL1_MEDIUM",
|
|
368
|
-
image: "aws/codebuild/standard:7.0",
|
|
369
|
-
privilegedMode: true,
|
|
370
|
-
environmentVariables: [
|
|
371
|
-
{ name: "IMAGE_URI", value: "placeholder" },
|
|
372
|
-
{ name: "ECR_REGISTRY", value: "placeholder" },
|
|
373
|
-
{ name: "DOCKERFILE", value: "Dockerfile" },
|
|
374
|
-
],
|
|
375
|
-
},
|
|
376
|
-
serviceRole,
|
|
377
|
-
}));
|
|
378
|
-
}
|
|
379
|
-
catch (err) {
|
|
380
|
-
if (err.name !== "ResourceAlreadyExistsException") {
|
|
381
|
-
throw err;
|
|
382
|
-
}
|
|
383
|
-
}
|
|
384
|
-
}
|
|
385
89
|
// --- Container lifecycle ---
|
|
386
90
|
async launch(opts) {
|
|
387
|
-
await this.ensureLogGroup();
|
|
91
|
+
await this.shared.ensureLogGroup(ECSFargateRuntime.LOG_GROUP);
|
|
388
92
|
const family = AWS_CONSTANTS.agentFamily(opts.agentName);
|
|
389
93
|
const secretMounts = opts.credentials.strategy === "secrets-manager"
|
|
390
94
|
? opts.credentials.mounts
|
|
@@ -409,7 +113,7 @@ export class ECSFargateRuntime {
|
|
|
409
113
|
if (err.message?.includes("Unable to assume the service linked role") ||
|
|
410
114
|
err.message?.includes("Unable to assume the role")) {
|
|
411
115
|
const roleName = AWS_CONSTANTS.taskRoleName(opts.agentName);
|
|
412
|
-
const accountId = this.getAccountId();
|
|
116
|
+
const accountId = this.shared.getAccountId();
|
|
413
117
|
const roleArn = `arn:aws:iam::${accountId}:role/${roleName}`;
|
|
414
118
|
const betterMessage = `❌ Failed to start ECS task for agent "${opts.agentName}"\n\n` +
|
|
415
119
|
`🔍 Problem: ECS cannot assume the IAM task role "${roleName}"\n` +
|
|
@@ -449,7 +153,7 @@ export class ECSFargateRuntime {
|
|
|
449
153
|
const logStream = `${family}/agent/${taskId}`;
|
|
450
154
|
while (!stopped) {
|
|
451
155
|
try {
|
|
452
|
-
const result = await this.getLogEvents(logGroup, logStream, nextToken);
|
|
156
|
+
const result = await this.shared.getLogEvents(logGroup, logStream, nextToken);
|
|
453
157
|
for (const event of result.events) {
|
|
454
158
|
onLine(event.message);
|
|
455
159
|
}
|
|
@@ -504,14 +208,7 @@ export class ECSFargateRuntime {
|
|
|
504
208
|
// ECS cleans up stopped tasks automatically
|
|
505
209
|
}
|
|
506
210
|
async fetchLogs(agentName, limit) {
|
|
507
|
-
|
|
508
|
-
logGroupName: ECSFargateRuntime.LOG_GROUP,
|
|
509
|
-
logStreamNamePrefix: `${AWS_CONSTANTS.agentFamily(agentName)}/`,
|
|
510
|
-
limit,
|
|
511
|
-
}));
|
|
512
|
-
return (res.events ?? [])
|
|
513
|
-
.map((e) => e.message?.trimEnd() ?? "")
|
|
514
|
-
.filter(Boolean);
|
|
211
|
+
return this.shared.filterLogEvents(ECSFargateRuntime.LOG_GROUP, `${AWS_CONSTANTS.agentFamily(agentName)}/`, limit);
|
|
515
212
|
}
|
|
516
213
|
getTaskUrl(taskArn) {
|
|
517
214
|
// taskArn format: arn:aws:ecs:{region}:{account}:task/{cluster}/{taskId}
|
|
@@ -527,24 +224,6 @@ export class ECSFargateRuntime {
|
|
|
527
224
|
}
|
|
528
225
|
return null;
|
|
529
226
|
}
|
|
530
|
-
// --- Internal: Secret naming ---
|
|
531
|
-
awsSecretName(type, instance, field) {
|
|
532
|
-
return `${this.prefix}/${type}/${instance}/${field}`;
|
|
533
|
-
}
|
|
534
|
-
async listSecretFields(type, instance) {
|
|
535
|
-
const prefix = `${this.prefix}/${type}/${instance}/`;
|
|
536
|
-
const res = await this.smClient.send(new ListSecretsCommand({
|
|
537
|
-
Filters: [{ Key: "name", Values: [prefix] }],
|
|
538
|
-
MaxResults: 100,
|
|
539
|
-
}));
|
|
540
|
-
const fields = [];
|
|
541
|
-
for (const secret of res.SecretList || []) {
|
|
542
|
-
if (secret.Name?.startsWith(prefix)) {
|
|
543
|
-
fields.push(secret.Name.slice(prefix.length));
|
|
544
|
-
}
|
|
545
|
-
}
|
|
546
|
-
return fields;
|
|
547
|
-
}
|
|
548
227
|
// --- Internal: ECS operations ---
|
|
549
228
|
async registerTaskDefinition(family, opts) {
|
|
550
229
|
const environment = Object.entries(opts.env).map(([name, value]) => ({ name, value }));
|
|
@@ -553,7 +232,7 @@ export class ECSFargateRuntime {
|
|
|
553
232
|
const envName = `AL_SECRET_${parts.join("__")}`;
|
|
554
233
|
return {
|
|
555
234
|
name: envName,
|
|
556
|
-
valueFrom: `arn:aws:secretsmanager:${this.config.awsRegion}:${this.getAccountId()}:secret:${mount.secretId}`,
|
|
235
|
+
valueFrom: `arn:aws:secretsmanager:${this.config.awsRegion}:${this.shared.getAccountId()}:secret:${mount.secretId}`,
|
|
557
236
|
};
|
|
558
237
|
});
|
|
559
238
|
const res = await this.ecsClient.send(new RegisterTaskDefinitionCommand({
|
|
@@ -613,7 +292,7 @@ export class ECSFargateRuntime {
|
|
|
613
292
|
if (reason.includes("Unable to assume the role") ||
|
|
614
293
|
reason.includes("arn:aws:iam::") && reason.includes("role/al-")) {
|
|
615
294
|
const roleName = AWS_CONSTANTS.taskRoleName(agentName);
|
|
616
|
-
const accountId = this.getAccountId();
|
|
295
|
+
const accountId = this.shared.getAccountId();
|
|
617
296
|
const roleArn = `arn:aws:iam::${accountId}:role/${roleName}`;
|
|
618
297
|
throw new Error(`❌ ECS failed to start task for agent "${agentName}"\n\n` +
|
|
619
298
|
`🔍 Root cause: ECS cannot assume IAM role "${roleName}"\n` +
|
|
@@ -636,29 +315,13 @@ export class ECSFargateRuntime {
|
|
|
636
315
|
}
|
|
637
316
|
return tasks[0].taskArn;
|
|
638
317
|
}
|
|
639
|
-
async getLogEvents(logGroup, logStream, nextToken) {
|
|
640
|
-
const res = await this.logsClient.send(new GetLogEventsCommand({
|
|
641
|
-
logGroupName: logGroup,
|
|
642
|
-
logStreamName: logStream,
|
|
643
|
-
startFromHead: true,
|
|
644
|
-
nextToken,
|
|
645
|
-
}));
|
|
646
|
-
return {
|
|
647
|
-
events: (res.events || []).map((e) => ({ message: e.message?.trimEnd() || "" })),
|
|
648
|
-
nextForwardToken: res.nextForwardToken,
|
|
649
|
-
};
|
|
650
|
-
}
|
|
651
318
|
// --- Internal: Per-agent task role derivation ---
|
|
652
319
|
deriveTaskRoleArn(agentName) {
|
|
653
|
-
const accountId = this.getAccountId();
|
|
320
|
+
const accountId = this.shared.getAccountId();
|
|
654
321
|
if (!accountId)
|
|
655
322
|
return undefined;
|
|
656
323
|
return `arn:aws:iam::${accountId}:role/${AWS_CONSTANTS.taskRoleName(agentName)}`;
|
|
657
324
|
}
|
|
658
|
-
getAccountId() {
|
|
659
|
-
const match = this.config.ecrRepository.match(/^(\d+)\.dkr\.ecr\./);
|
|
660
|
-
return match?.[1] || "";
|
|
661
|
-
}
|
|
662
325
|
}
|
|
663
326
|
function sleep(ms) {
|
|
664
327
|
return new Promise((r) => setTimeout(r, ms));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ecs-runtime.js","sourceRoot":"","sources":["../../src/docker/ecs-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,IAAI,CAAC;AACtC,OAAO,EACL,SAAS,EACT,6BAA6B,EAC7B,cAAc,EACd,oBAAoB,EACpB,eAAe,EACf,gBAAgB,GACjB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,QAAQ,EACR,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,SAAS,EACT,oBAAoB,GAGrB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAc3D;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,OAAO,iBAAiB;IACnB,YAAY,GAAG,KAAK,CAAC;IAEtB,MAAM,CAAmB;IACzB,MAAM,CAAS;IACf,SAAS,CAAY;IACrB,QAAQ,CAAuB;IAC/B,UAAU,CAAuB;IACjC,QAAQ,CAAkB;IAC1B,QAAQ,CAAW;IACnB,SAAS,CAAY;IAE7B,YAAY,MAAwB;QAClC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,YAAY,IAAI,aAAa,CAAC,qBAAqB,CAAC;QAEzE,MAAM,YAAY,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC;QAClD,IAAI,CAAC,SAAS,GAAG,IAAI,SAAS,CAAC,YAAY,CAAC,CAAC;QAC7C,IAAI,CAAC,QAAQ,GAAG,IAAI,oBAAoB,CAAC,YAAY,CAAC,CAAC;QACvD,IAAI,CAAC,UAAU,GAAG,IAAI,oBAAoB,CAAC,YAAY,CAAC,CAAC;QACzD,IAAI,CAAC,QAAQ,GAAG,IAAI,eAAe,CAAC,YAAY,CAAC,CAAC;QAClD,IAAI,CAAC,QAAQ,GAAG,IAAI,QAAQ,CAAC,YAAY,CAAC,CAAC;QAC3C,IAAI,CAAC,SAAS,GAAG,IAAI,SAAS,CAAC,YAAY,CAAC,CAAC;IAC/C,CAAC;IAEO,MAAM,CAAU,iBAAiB,GAAG,aAAa,CAAC,UAAU,CAAC;IACrE,MAAM,CAAU,SAAS,GAAG,aAAa,CAAC,SAAS,CAAC;IAC5C,eAAe,GAAG,KAAK,CAAC;IAExB,KAAK,CAAC,cAAc;QAC1B,IAAI,IAAI,CAAC,eAAe;YAAE,OAAO;QACjC,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,qBAAqB,CAAC,EAAE,YAAY,EAAE,iBAAiB,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;QACvG,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,IAAI,GAAG,CAAC,IAAI,KAAK,gCAAgC;gBAAE,MAAM,GAAG,CAAC;QAC/D,CAAC;QACD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;IAC9B,CAAC;IAED,yBAAyB;IAEzB,KAAK,CAAC,cAAc,CAAC,SAAiB;QACpC,MAAM,MAAM,GAAG,aAAa,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QACpD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC;YACzD,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU;YAC/B,MAAM;YACN,aAAa,EAAE,SAAS;SACzB,CAAC,CAAC,CAAC;QACJ,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,iBAAiB;QACrB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC;YACzD,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU;YAC/B,SAAS,EAAE,iBAAiB,CAAC,iBAAiB;YAC9C,aAAa,EAAE,SAAS;SACzB,CAAC,CAAC,CAAC;QAEJ,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC;QACpC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAErC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,oBAAoB,CAAC;YAC9D,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU;YAC/B,KAAK,EAAE,QAAQ;SAChB,CAAC,CAAC,CAAC;QAEJ,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACrC,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAC7E,MAAM,SAAS,GAAG,aAAa,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;YAC5D,OAAO;gBACL,SAAS;gBACT,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,OAAO,IAAI,SAAS;gBACnE,MAAM,EAAE,IAAI,CAAC,UAAU,IAAI,SAAS;gBACpC,SAAS,EAAE,IAAI,CAAC,SAAS;aAC1B,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED,iCAAiC;IAEjC,KAAK,CAAC,kBAAkB,CAAC,QAAkB;QACzC,MAAM,MAAM,GAAkB,EAAE,CAAC;QAEjC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;YACvD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YAE3D,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;gBAC7D,MAAM,CAAC,IAAI,CAAC;oBACV,QAAQ,EAAE,UAAU;oBACpB,SAAS,EAAE,gBAAgB,IAAI,IAAI,QAAQ,IAAI,KAAK,EAAE;iBACvD,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,EAAE,CAAC;IACjD,CAAC;IAED,kBAAkB,CAAC,MAA0B;QAC3C,QAAQ;IACV,CAAC;IAED,2BAA2B;IAE3B,KAAK,CAAC,UAAU,CAAC,IAAoB;QACnC,OAAO,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,WAAmB;QACjC,0EAA0E;QAC1E,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,IAAI,WAAW,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;IACzE,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAAC,IAAoB,EAAE,UAAsC;QAC5F,UAAU,EAAE,CAAC,yBAAyB,CAAC,CAAC;QAExC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC;QAC5D,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;QAC3D,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC;QAE1D,oDAAoD;QACpD,mFAAmF;QACnF,uFAAuF;QACvF,MAAM,kBAAkB,GAAG,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC;YACpD,CAAC,CAAC,IAAI,CAAC,UAAU;YACjB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAC3C,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,kBAAkB,CAAC,CAAC;QAE9D,IAAI,aAAqB,CAAC;QAC1B,IAAI,cAAkC,CAAC;QACvC,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAC3C,MAAM,YAAY,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;QAEtC,IAAI,SAAS,IAAI,YAAY,EAAE,CAAC;YAC9B,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,eAAe,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;YAClF,IAAI,OAAO,GAAG,YAAY,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;YACxD,IAAI,YAAY,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACnC,OAAO,GAAG,OAAO,CAAC,OAAO,CACvB,cAAc,EACd,QAAQ,IAAI,CAAC,SAAS,EAAE,CACzB,CAAC;YACJ,CAAC;YACD,aAAa,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;YACvC,aAAa,GAAG,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;QAC5D,CAAC;aAAM,CAAC;YACN,aAAa,GAAG,OAAO,CAAC;QAC1B,CAAC;QAED,0EAA0E;QAC1E,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;QAC1E,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;QAElC,MAAM,QAAQ,GAAG,CAAC,CAAS,EAAE,EAAE;YAC7B,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACzD,CAAC,CAAC;QACF,MAAM,OAAO,GAAG,CAAC,GAAW,EAAE,EAAE;YAC9B,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;iBAC7E,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAChD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;gBAC5B,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;gBAChC,IAAI,KAAK,CAAC,WAAW,EAAE;oBAAE,OAAO,CAAC,CAAC,CAAC,CAAC;;oBAC/B,QAAQ,CAAC,CAAC,CAAC,CAAC;YACnB,CAAC;QACH,CAAC,CAAC;QAEF,QAAQ,CAAC,aAAa,CAAC,CAAC;QACxB,QAAQ,CAAC,cAAc,CAAC,CAAC;QACzB,OAAO,CAAC,MAAM,CAAC,CAAC;QAEhB,sEAAsE;QACtE,IAAI,cAAc,EAAE,CAAC;YACnB,IAAI,CAAC;gBAAC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;gBAAC,MAAM,CAAC,cAAc,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAA,CAAC;QACjF,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACpD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC3C,MAAM,OAAO,GAAG,GAAG,OAAO,IAAI,WAAW,EAAE,CAAC;QAC5C,MAAM,SAAS,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,IAAI,OAAO,EAAE,CAAC;QAE5D,qDAAqD;QACrD,UAAU,EAAE,CAAC,mBAAmB,OAAO,GAAG,CAAC,CAAC;QAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAG,CAAC;QAC7D,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;QAE7E,IAAI,WAAW,EAAE,CAAC;YAChB,UAAU,EAAE,CAAC,wCAAwC,CAAC,CAAC;YACvD,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,qEAAqE;QACrE,IAAI,SAAS,IAAI,YAAY,EAAE,CAAC;YAC9B,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,eAAe,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;YAClF,IAAI,OAAO,GAAG,YAAY,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;YACxD,IAAI,YAAY,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACnC,OAAO,GAAG,OAAO,CAAC,OAAO,CACvB,cAAc,EACd,QAAQ,IAAI,CAAC,SAAS,EAAE,CACzB,CAAC;YACJ,CAAC;YACD,aAAa,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;YACvC,aAAa,GAAG,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;QAC5D,CAAC;QAED,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;QACtC,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,GAAG,aAAa,CAAC,eAAe,IAAI,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC;QAEtG,IAAI,CAAC;YACH,YAAY,CAAC,KAAK,EAAE;gBAClB,KAAK,EAAE,OAAO;gBACd,IAAI,EAAE,IAAI,CAAC,UAAU;gBACrB,aAAa,EAAE,cAAc,EAAE,MAAM;aACtC,EAAE;gBACD,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE,MAAM;gBACf,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,gBAAgB,EAAE,GAAG,EAAE;aAC/C,CAAC,CAAC;QACL,CAAC;gBAAS,CAAC;YACT,IAAI,cAAc,EAAE,CAAC;gBACnB,IAAI,CAAC;oBAAC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;oBAAC,MAAM,CAAC,cAAc,CAAC,CAAC;gBAAC,CAAC;gBAAC,MAAM,CAAC,CAAA,CAAC;YACjF,CAAC;QACH,CAAC;QAED,eAAe;QACf,UAAU,EAAE,CAAC,iBAAiB,CAAC,CAAC;QAChC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC9C,MAAM,KAAK,GAAG,GAAG,aAAa,CAAC,eAAe,IAAI,OAAO,IAAI,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC;QACjF,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC;YAC5C,MAAM,EAAE,MAAM;YACd,GAAG,EAAE,KAAK;YACV,IAAI,EAAE,gBAAgB,CAAC,OAAO,CAAC;SAChC,CAAC,CAAC,CAAC;QAEJ,yBAAyB;QACzB,IAAI,CAAC;YAAC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;YAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;QAExE,kCAAkC;QAClC,MAAM,WAAW,GAAG,aAAa,CAAC,iBAAiB,CAAC;QACpD,MAAM,IAAI,CAAC,sBAAsB,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QACvD,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAEzD,cAAc;QACd,MAAM,SAAS,GAAG;YAChB,cAAc;YACd,SAAS;YACT,cAAc;YACd,eAAe;YACf,4CAA4C;YAC5C,8HAA8H;YAC9H,UAAU;YACV,eAAe;YACf,qDAAqD;YACrD,gCAAgC;SACjC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEb,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC;YAC9D,WAAW;YACX,kBAAkB,EAAE,IAAI;YACxB,sBAAsB,EAAE,GAAG,MAAM,IAAI,KAAK,EAAE;YAC5C,iBAAiB,EAAE,SAAS;YAC5B,4BAA4B,EAAE;gBAC5B,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE;gBACvC,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,QAAQ,EAAE;gBACzC,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE;aAC7C;SACF,CAAC,CAAC,CAAC;QAEJ,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC;QACnC,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QAErE,UAAU,EAAE,CAAC,gCAAgC,CAAC,CAAC;QAE/C,sBAAsB;QACtB,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,KAAK,CAAC,MAAM,CAAC,CAAC;YAEpB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,qBAAqB,CAAC,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;YACvF,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;YACjC,IAAI,CAAC,KAAK;gBAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,OAAO,YAAY,CAAC,CAAC;YAEpE,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;gBACvB,MAAM,WAAW,GAA2B;oBAC1C,SAAS,EAAE,WAAW;oBACtB,MAAM,EAAE,QAAQ;oBAChB,YAAY,EAAE,gCAAgC;oBAC9C,eAAe,EAAE,oBAAoB;oBACrC,OAAO,EAAE,yBAAyB;oBAClC,SAAS,EAAE,mBAAmB;oBAC9B,KAAK,EAAE,4BAA4B;oBACnC,UAAU,EAAE,YAAY;oBACxB,gBAAgB,EAAE,qBAAqB;oBACvC,UAAU,EAAE,YAAY;oBACxB,SAAS,EAAE,UAAU;iBACtB,CAAC;gBACF,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,KAAK,CAAC,YAAY,CAAC;gBACpE,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC;YACtB,CAAC;YAED,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;gBACxB,IAAI,KAAK,CAAC,WAAW,KAAK,WAAW,EAAE,CAAC;oBACtC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,EAAE,QAAQ,IAAI,EAAE,CAAC;oBACxC,MAAM,IAAI,KAAK,CAAC,2BAA2B,KAAK,CAAC,WAAW,YAAY,IAAI,EAAE,CAAC,CAAC;gBAClF,CAAC;gBACD,OAAO,SAAS,CAAC;YACnB,CAAC;QACH,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,cAAc,CAAC,cAAsB,EAAE,QAAgB,EAAE,UAAsC;QAC3G,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,oBAAoB,CAAC;gBAC7D,cAAc;gBACd,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC;aACzB,CAAC,CAAC,CAAC;YACJ,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACvC,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,kEAAkE;YAClE,IAAI,GAAG,CAAC,IAAI,KAAK,wBAAwB;gBAAE,OAAO,KAAK,CAAC;YACxD,qFAAqF;YACrF,UAAU,EAAE,CAAC,uBAAuB,GAAG,CAAC,OAAO,IAAI,GAAG,EAAE,CAAC,CAAC;YAC1D,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,iBAAiB;QAC7B,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;QACjC,CAAC;QAED,8CAA8C;QAC9C,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QACtC,MAAM,MAAM,GAAG,aAAa,CAAC,WAAW,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAE3E,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;QACtE,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,IAAI,GAAG,CAAC,IAAI,KAAK,UAAU,IAAI,GAAG,CAAC,SAAS,EAAE,cAAc,KAAK,GAAG,EAAE,CAAC;gBACrE,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,mBAAmB,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;YACxE,CAAC;iBAAM,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;gBACpC,iEAAiE;gBACjE,MAAM,GAAG,CAAC;YACZ,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,KAAK,CAAC,sBAAsB,CAAC,WAAmB,EAAE,MAAc;QACtE,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QACtC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;QAErC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,qBAAqB,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,WAAW,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;YACtG,0FAA0F;YAC1F,uDAAuD;YACvD,KAAK,MAAM,CAAC;QACd,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;QAEV,MAAM,WAAW,GAAG,gBAAgB,SAAS,SAAS,aAAa,CAAC,cAAc,EAAE,CAAC;QAErF,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,oBAAoB,CAAC;gBAChD,IAAI,EAAE,WAAW;gBACjB,MAAM,EAAE;oBACN,IAAI,EAAE,IAAI;oBACV,QAAQ,EAAE,GAAG,MAAM,GAAG;iBACvB;gBACD,SAAS,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE;gBACnC,WAAW,EAAE;oBACX,IAAI,EAAE,iBAAiB;oBACvB,WAAW,EAAE,uBAAuB;oBACpC,KAAK,EAAE,4BAA4B;oBACnC,cAAc,EAAE,IAAI;oBACpB,oBAAoB,EAAE;wBACpB,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,aAAa,EAAE;wBAC3C,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,aAAa,EAAE;wBAC9C,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE;qBAC5C;iBACF;gBACD,WAAW;aACZ,CAAC,CAAC,CAAC;QACN,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,IAAI,GAAG,CAAC,IAAI,KAAK,gCAAgC,EAAE,CAAC;gBAClD,MAAM,GAAG,CAAC;YACZ,CAAC;QACH,CAAC;IACH,CAAC;IAED,8BAA8B;IAE9B,KAAK,CAAC,MAAM,CAAC,IAAuB;QAClC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAE5B,MAAM,MAAM,GAAG,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAEzD,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,KAAK,iBAAiB;YAClE,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM;YACzB,CAAC,CAAC,EAAE,CAAC;QAEP,MAAM,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC5D,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,IAAI,YAAY,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;QAEnF,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,MAAM,EAAE;YAC3D,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,YAAY;YACZ,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,MAAM;YAC7B,IAAI,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;YACrC,WAAW;YACX,YAAY,EAAE,MAAM;SACrB,CAAC,CAAC;QAEH,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAC/C,OAAO,OAAO,CAAC;QACjB,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,mDAAmD;YACnD,IAAI,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,0CAA0C,CAAC;gBACjE,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,2BAA2B,CAAC,EAAE,CAAC;gBACvD,MAAM,QAAQ,GAAG,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC5D,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;gBACtC,MAAM,OAAO,GAAG,gBAAgB,SAAS,SAAS,QAAQ,EAAE,CAAC;gBAE7D,MAAM,aAAa,GAAG,yCAAyC,IAAI,CAAC,SAAS,OAAO;oBAClF,oDAAoD,QAAQ,KAAK;oBACjE,yBAAyB,OAAO,MAAM;oBACtC,iFAAiF;oBACjF,qEAAqE;oBACrE,4BAA4B;oBAC5B,qBAAqB;oBACrB,4EAA4E;oBAC5E,wBAAwB;oBACxB,4DAA4D,QAAQ,IAAI;oBACxE,4EAA4E;oBAC5E,8DAA8D;oBAC9D,qBAAqB;oBACrB,yDAAyD;oBACzD,uDAAuD;oBACvD,mDAAmD;oBACnD,mBAAmB,GAAG,CAAC,OAAO,EAAE,CAAC;gBACnC,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;YACjC,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;IAED,UAAU,CACR,OAAe,EACf,MAA8B,EAC9B,QAAiC;QAEjC,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,IAAI,SAA6B,CAAC;QAElC,MAAM,IAAI,GAAG,KAAK,IAAI,EAAE;YACtB,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAG,CAAC;YACzC,MAAM,QAAQ,GAAG,iBAAiB,CAAC,SAAS,CAAC;YAE7C,8DAA8D;YAC9D,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,oBAAoB,CAAC;gBAC9D,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU;gBAC/B,KAAK,EAAE,CAAC,OAAO,CAAC;aACjB,CAAC,CAAC,CAAC;YACJ,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,aAAa,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YACzH,6DAA6D;YAC7D,MAAM,SAAS,GAAG,GAAG,MAAM,UAAU,MAAM,EAAE,CAAC;YAE9C,OAAO,CAAC,OAAO,EAAE,CAAC;gBAChB,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;oBACvE,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;wBAClC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;oBACxB,CAAC;oBACD,IAAI,MAAM,CAAC,gBAAgB,EAAE,CAAC;wBAC5B,SAAS,GAAG,MAAM,CAAC,gBAAgB,CAAC;oBACtC,CAAC;gBACH,CAAC;gBAAC,OAAO,GAAQ,EAAE,CAAC;oBAClB,IAAI,CAAC,OAAO,IAAI,QAAQ,IAAI,GAAG,CAAC,IAAI,KAAK,2BAA2B,EAAE,CAAC;wBACrE,QAAQ,CAAC,sBAAsB,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;oBAChD,CAAC;gBACH,CAAC;gBACD,IAAI,CAAC,OAAO;oBAAE,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC;YAClC,CAAC;QACH,CAAC,CAAC;QAEF,IAAI,EAAE,CAAC;QAEP,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAAe,EAAE,cAAsB;QACvD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,cAAc,GAAG,IAAI,CAAC;QAEpD,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;YAC7B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,oBAAoB,CAAC;gBAC7D,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU;gBAC/B,KAAK,EAAE,CAAC,OAAO,CAAC;aACjB,CAAC,CAAC,CAAC;YAEJ,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;YAC5B,IAAI,CAAC,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,QAAQ,OAAO,YAAY,CAAC,CAAC;YAExD,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;gBAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC;gBAChD,OAAO,QAAQ,IAAI,CAAC,CAAC;YACvB,CAAC;YAED,MAAM,KAAK,CAAC,MAAM,CAAC,CAAC;QACtB,CAAC;QAED,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,YAAY,OAAO,oBAAoB,cAAc,GAAG,CAAC,CAAC;IAC5E,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,OAAe;QACxB,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,eAAe,CAAC;gBAC5C,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU;gBAC/B,IAAI,EAAE,OAAO;gBACb,MAAM,EAAE,sBAAsB;aAC/B,CAAC,CAAC,CAAC;QACN,CAAC;QAAC,MAAM,CAAC;YACP,8BAA8B;QAChC,CAAC;IACH,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,QAAgB;QAC3B,4CAA4C;IAC9C,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,SAAiB,EAAE,KAAa;QAC9C,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,sBAAsB,CAAC;YAChE,YAAY,EAAE,iBAAiB,CAAC,SAAS;YACzC,mBAAmB,EAAE,GAAG,aAAa,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG;YAC/D,KAAK;SACN,CAAC,CAAC,CAAC;QAEJ,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC;aACtB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;aACtC,MAAM,CAAC,OAAO,CAAC,CAAC;IACrB,CAAC;IAED,UAAU,CAAC,OAAe;QACxB,yEAAyE;QACzE,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YACzB,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC3B,MAAM,aAAa,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,0BAA0B;YACxE,IAAI,aAAa,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;gBAC9B,MAAM,OAAO,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;gBACjC,MAAM,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;gBAChC,OAAO,WAAW,MAAM,2CAA2C,OAAO,UAAU,MAAM,WAAW,MAAM,EAAE,CAAC;YAChH,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,kCAAkC;IAE1B,aAAa,CAAC,IAAY,EAAE,QAAgB,EAAE,KAAa;QACjE,OAAO,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,IAAI,QAAQ,IAAI,KAAK,EAAE,CAAC;IACvD,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAC,IAAY,EAAE,QAAgB;QAC3D,MAAM,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,IAAI,QAAQ,GAAG,CAAC;QAErD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,kBAAkB,CAAC;YAC1D,OAAO,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5C,UAAU,EAAE,GAAG;SAChB,CAAC,CAAC,CAAC;QAEJ,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,KAAK,MAAM,MAAM,IAAI,GAAG,CAAC,UAAU,IAAI,EAAE,EAAE,CAAC;YAC1C,IAAI,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;gBACpC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;YAChD,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,mCAAmC;IAE3B,KAAK,CAAC,sBAAsB,CAClC,MAAc,EACd,IAQC;QAED,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;QAEvF,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YAC9C,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACtE,MAAM,OAAO,GAAG,aAAa,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAChD,OAAO;gBACL,IAAI,EAAE,OAAO;gBACb,SAAS,EAAE,0BAA0B,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,IAAI,CAAC,YAAY,EAAE,WAAW,KAAK,CAAC,QAAQ,EAAE;aAC7G,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,6BAA6B,CAAC;YACtE,MAAM;YACN,WAAW,EAAE,QAAQ;YACrB,uBAAuB,EAAE,CAAC,SAAS,CAAC;YACpC,GAAG,EAAE,IAAI,CAAC,IAAI;YACd,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,gBAAgB,EAAE,IAAI,CAAC,MAAM,CAAC,gBAAgB;YAC9C,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,oBAAoB,EAAE,CAAC;oBACrB,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE,IAAI,CAAC,KAAK;oBACjB,SAAS,EAAE,IAAI;oBACf,WAAW;oBACX,OAAO;oBACP,gBAAgB,EAAE;wBAChB,SAAS,EAAE,SAAS;wBACpB,OAAO,EAAE;4BACP,eAAe,EAAE,iBAAiB,CAAC,SAAS;4BAC5C,gBAAgB,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;4BACvC,uBAAuB,EAAE,IAAI,CAAC,YAAY;4BAC1C,sBAAsB,EAAE,MAAM;yBAC/B;qBACF;oBACD,IAAI,EAAE,WAAW;oBACjB,eAAe,EAAE;wBACf,kBAAkB,EAAE,IAAI;qBACzB;iBACF,CAAC;SACH,CAAC,CAAC,CAAC;QAEJ,OAAO,GAAG,CAAC,cAAe,CAAC,iBAAkB,CAAC;IAChD,CAAC;IAEO,KAAK,CAAC,OAAO,CAAC,iBAAyB;QAC7C,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC;YACvD,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU;YAC/B,cAAc,EAAE,iBAAiB;YACjC,UAAU,EAAE,SAAS;YACrB,SAAS,EAAE,iBAAiB,CAAC,iBAAiB;YAC9C,KAAK,EAAE,CAAC;YACR,oBAAoB,EAAE;gBACpB,mBAAmB,EAAE;oBACnB,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;oBAC5B,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,cAAc,IAAI,EAAE;oBAChD,cAAc,EAAE,SAAS;iBAC1B;aACF;SACF,CAAC,CAAC,CAAC;QAEJ,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;QAC9B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC;YACpC,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,IAAI,SAAS,CAAC;YAEhD,wEAAwE;YACxE,MAAM,MAAM,GAAG,iBAAiB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YACvE,MAAM,SAAS,GAAG,aAAa,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;YAE5D,yDAAyD;YACzD,IAAI,MAAM,CAAC,QAAQ,CAAC,2BAA2B,CAAC;gBAC5C,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;gBAEpE,MAAM,QAAQ,GAAG,aAAa,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;gBACvD,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;gBACtC,MAAM,OAAO,GAAG,gBAAgB,SAAS,SAAS,QAAQ,EAAE,CAAC;gBAE7D,MAAM,IAAI,KAAK,CACb,yCAAyC,SAAS,OAAO;oBACzD,8CAA8C,QAAQ,KAAK;oBAC3D,gBAAgB,OAAO,MAAM;oBAC7B,sFAAsF;oBACtF,qFAAqF;oBACrF,+BAA+B;oBAC/B,qBAAqB;oBACrB,sEAAsE;oBACtE,8BAA8B;oBAC9B,0BAA0B;oBAC1B,yCAAyC,QAAQ,wDAAwD;oBACzG,oCAAoC;oBACpC,6CAA6C,QAAQ,+EAA+E;oBACpI,mCAAmC;oBACnC,mCAAmC,QAAQ,MAAM;oBACjD,uBAAuB,MAAM,EAAE,CAChC,CAAC;YACJ,CAAC;YAED,MAAM,IAAI,KAAK,CAAC,6BAA6B,MAAM,EAAE,CAAC,CAAC;QACzD,CAAC;QAED,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,OAAQ,CAAC;IAC3B,CAAC;IAEO,KAAK,CAAC,YAAY,CACxB,QAAgB,EAChB,SAAiB,EACjB,SAAkB;QAElB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,mBAAmB,CAAC;YAC7D,YAAY,EAAE,QAAQ;YACtB,aAAa,EAAE,SAAS;YACxB,aAAa,EAAE,IAAI;YACnB,SAAS;SACV,CAAC,CAAC,CAAC;QAEJ,OAAO;YACL,MAAM,EAAE,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;YAChF,gBAAgB,EAAE,GAAG,CAAC,gBAAgB;SACvC,CAAC;IACJ,CAAC;IAED,mDAAmD;IAE3C,iBAAiB,CAAC,SAAiB;QACzC,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QACtC,IAAI,CAAC,SAAS;YAAE,OAAO,SAAS,CAAC;QACjC,OAAO,gBAAgB,SAAS,SAAS,aAAa,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,CAAC;IACnF,CAAC;IAEO,YAAY;QAClB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;QACpE,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC1B,CAAC;;AAIH,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AAC/C,CAAC"}
|
|
1
|
+
{"version":3,"file":"ecs-runtime.js","sourceRoot":"","sources":["../../src/docker/ecs-runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AWS Lambda runtime.
|
|
3
|
+
*
|
|
4
|
+
* Automatically used for ECS-provider agents with timeout <= 900s (15 min).
|
|
5
|
+
* Uses the same ECR images and Secrets Manager credentials as ECS Fargate,
|
|
6
|
+
* but runs as Lambda functions for faster cold starts and lower cost.
|
|
7
|
+
*/
|
|
8
|
+
import type { ContainerRuntime, RuntimeLaunchOpts, RuntimeCredentials, BuildImageOpts, RunningAgent } from "./runtime.js";
|
|
9
|
+
export interface LambdaRuntimeConfig {
|
|
10
|
+
awsRegion: string;
|
|
11
|
+
ecrRepository: string;
|
|
12
|
+
secretPrefix?: string;
|
|
13
|
+
buildBucket?: string;
|
|
14
|
+
lambdaRoleArn?: string;
|
|
15
|
+
lambdaSubnets?: string[];
|
|
16
|
+
lambdaSecurityGroups?: string[];
|
|
17
|
+
}
|
|
18
|
+
export declare class LambdaRuntime implements ContainerRuntime {
|
|
19
|
+
readonly needsGateway = false;
|
|
20
|
+
private config;
|
|
21
|
+
private lambdaClient;
|
|
22
|
+
private shared;
|
|
23
|
+
constructor(config: LambdaRuntimeConfig);
|
|
24
|
+
isAgentRunning(_agentName: string): Promise<boolean>;
|
|
25
|
+
listRunningAgents(): Promise<RunningAgent[]>;
|
|
26
|
+
prepareCredentials(credRefs: string[]): Promise<RuntimeCredentials>;
|
|
27
|
+
cleanupCredentials(_creds: RuntimeCredentials): void;
|
|
28
|
+
buildImage(opts: BuildImageOpts): Promise<string>;
|
|
29
|
+
pushImage(_localImage: string): Promise<string>;
|
|
30
|
+
launch(opts: RuntimeLaunchOpts): Promise<string>;
|
|
31
|
+
streamLogs(containerId: string, onLine: (line: string) => void, onStderr?: (text: string) => void): {
|
|
32
|
+
stop: () => void;
|
|
33
|
+
};
|
|
34
|
+
waitForExit(containerId: string, timeoutSeconds: number): Promise<number>;
|
|
35
|
+
kill(_containerId: string): Promise<void>;
|
|
36
|
+
remove(_containerId: string): Promise<void>;
|
|
37
|
+
fetchLogs(agentName: string, limit: number): Promise<string[]>;
|
|
38
|
+
getTaskUrl(containerId: string): string | null;
|
|
39
|
+
private parseFunctionName;
|
|
40
|
+
private deriveLambdaRoleArn;
|
|
41
|
+
private waitForFunctionReady;
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=lambda-runtime.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lambda-runtime.d.ts","sourceRoot":"","sources":["../../src/docker/lambda-runtime.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAUH,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAI1H,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;CACjC;AAED,qBAAa,aAAc,YAAW,gBAAgB;IACpD,QAAQ,CAAC,YAAY,SAAS;IAE9B,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,MAAM,CAAiB;gBAEnB,MAAM,EAAE,mBAAmB;IAajC,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKpD,iBAAiB,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;IAO5C,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAMzE,kBAAkB,CAAC,MAAM,EAAE,kBAAkB,GAAG,IAAI;IAM9C,UAAU,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;IAIjD,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAM/C,MAAM,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC;IA4FtD,UAAU,CACR,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,EAC9B,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAChC;QAAE,IAAI,EAAE,MAAM,IAAI,CAAA;KAAE;IA6BjB,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA4BzE,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzC,MAAM,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI3C,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAMpE,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAO9C,OAAO,CAAC,iBAAiB;IAMzB,OAAO,CAAC,mBAAmB;YAQb,oBAAoB;CAyBnC"}
|