@action-llama/action-llama 0.10.1 → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (313) hide show
  1. package/AGENTS.md +17 -6
  2. package/README.md +8 -4
  3. package/dist/agents/container-entry.d.ts.map +1 -1
  4. package/dist/agents/container-entry.js +37 -0
  5. package/dist/agents/container-entry.js.map +1 -1
  6. package/dist/agents/container-runner.d.ts +4 -0
  7. package/dist/agents/container-runner.d.ts.map +1 -1
  8. package/dist/agents/container-runner.js +82 -5
  9. package/dist/agents/container-runner.js.map +1 -1
  10. package/dist/agents/execution-engine.d.ts +2 -0
  11. package/dist/agents/execution-engine.d.ts.map +1 -1
  12. package/dist/agents/execution-engine.js +7 -16
  13. package/dist/agents/execution-engine.js.map +1 -1
  14. package/dist/agents/runner.d.ts +3 -0
  15. package/dist/agents/runner.d.ts.map +1 -1
  16. package/dist/agents/runner.js +47 -17
  17. package/dist/agents/runner.js.map +1 -1
  18. package/dist/cli/commands/chat.d.ts +5 -2
  19. package/dist/cli/commands/chat.d.ts.map +1 -1
  20. package/dist/cli/commands/chat.js +240 -23
  21. package/dist/cli/commands/chat.js.map +1 -1
  22. package/dist/cli/commands/cloud-deploy.d.ts.map +1 -1
  23. package/dist/cli/commands/cloud-deploy.js +5 -47
  24. package/dist/cli/commands/cloud-deploy.js.map +1 -1
  25. package/dist/cli/commands/cloud-setup.d.ts.map +1 -1
  26. package/dist/cli/commands/cloud-setup.js +20 -858
  27. package/dist/cli/commands/cloud-setup.js.map +1 -1
  28. package/dist/cli/commands/cloud-teardown.d.ts.map +1 -1
  29. package/dist/cli/commands/cloud-teardown.js +6 -126
  30. package/dist/cli/commands/cloud-teardown.js.map +1 -1
  31. package/dist/cli/commands/creds.d.ts.map +1 -1
  32. package/dist/cli/commands/creds.js +2 -4
  33. package/dist/cli/commands/creds.js.map +1 -1
  34. package/dist/cli/commands/doctor.d.ts +0 -3
  35. package/dist/cli/commands/doctor.d.ts.map +1 -1
  36. package/dist/cli/commands/doctor.js +76 -646
  37. package/dist/cli/commands/doctor.js.map +1 -1
  38. package/dist/cli/commands/kill.d.ts +1 -1
  39. package/dist/cli/commands/kill.d.ts.map +1 -1
  40. package/dist/cli/commands/kill.js +26 -18
  41. package/dist/cli/commands/kill.js.map +1 -1
  42. package/dist/cli/commands/logs.d.ts.map +1 -1
  43. package/dist/cli/commands/logs.js +104 -58
  44. package/dist/cli/commands/logs.js.map +1 -1
  45. package/dist/cli/commands/pause.d.ts +1 -1
  46. package/dist/cli/commands/pause.d.ts.map +1 -1
  47. package/dist/cli/commands/pause.js +19 -19
  48. package/dist/cli/commands/pause.js.map +1 -1
  49. package/dist/cli/commands/resume.d.ts +1 -1
  50. package/dist/cli/commands/resume.d.ts.map +1 -1
  51. package/dist/cli/commands/resume.js +19 -19
  52. package/dist/cli/commands/resume.js.map +1 -1
  53. package/dist/cli/commands/run.d.ts.map +1 -1
  54. package/dist/cli/commands/run.js +12 -54
  55. package/dist/cli/commands/run.js.map +1 -1
  56. package/dist/cli/commands/status.d.ts.map +1 -1
  57. package/dist/cli/commands/status.js +22 -39
  58. package/dist/cli/commands/status.js.map +1 -1
  59. package/dist/cli/gateway-client.d.ts +12 -0
  60. package/dist/cli/gateway-client.d.ts.map +1 -0
  61. package/dist/cli/gateway-client.js +27 -0
  62. package/dist/cli/gateway-client.js.map +1 -0
  63. package/dist/cli/main.js +79 -42
  64. package/dist/cli/main.js.map +1 -1
  65. package/dist/cli/with-command.d.ts +13 -0
  66. package/dist/cli/with-command.d.ts.map +1 -0
  67. package/dist/cli/with-command.js +45 -0
  68. package/dist/cli/with-command.js.map +1 -0
  69. package/dist/{shared/aws-constants.d.ts → cloud/aws/constants.d.ts} +3 -34
  70. package/dist/cloud/aws/constants.d.ts.map +1 -0
  71. package/dist/{shared/aws-constants.js → cloud/aws/constants.js} +3 -34
  72. package/dist/cloud/aws/constants.js.map +1 -0
  73. package/dist/cloud/{deploy-apprunner.d.ts → aws/deploy.d.ts} +6 -6
  74. package/dist/cloud/aws/deploy.d.ts.map +1 -0
  75. package/dist/cloud/{deploy-apprunner.js → aws/deploy.js} +2 -2
  76. package/dist/cloud/aws/deploy.js.map +1 -0
  77. package/dist/cloud/aws/iam.d.ts +37 -0
  78. package/dist/cloud/aws/iam.d.ts.map +1 -0
  79. package/dist/cloud/aws/iam.js +442 -0
  80. package/dist/cloud/aws/iam.js.map +1 -0
  81. package/dist/cloud/aws/provider.d.ts +69 -0
  82. package/dist/cloud/aws/provider.d.ts.map +1 -0
  83. package/dist/cloud/aws/provider.js +173 -0
  84. package/dist/cloud/aws/provider.js.map +1 -0
  85. package/dist/cloud/aws/provision.d.ts +9 -0
  86. package/dist/cloud/aws/provision.d.ts.map +1 -0
  87. package/dist/cloud/aws/provision.js +698 -0
  88. package/dist/cloud/aws/provision.js.map +1 -0
  89. package/dist/cloud/aws/teardown.d.ts +15 -0
  90. package/dist/cloud/aws/teardown.d.ts.map +1 -0
  91. package/dist/cloud/aws/teardown.js +74 -0
  92. package/dist/cloud/aws/teardown.js.map +1 -0
  93. package/dist/cloud/gcp/constants.d.ts +16 -0
  94. package/dist/cloud/gcp/constants.d.ts.map +1 -0
  95. package/dist/cloud/gcp/constants.js +16 -0
  96. package/dist/cloud/gcp/constants.js.map +1 -0
  97. package/dist/cloud/{deploy-cloudrun.d.ts → gcp/deploy.d.ts} +6 -6
  98. package/dist/cloud/gcp/deploy.d.ts.map +1 -0
  99. package/dist/cloud/{deploy-cloudrun.js → gcp/deploy.js} +7 -7
  100. package/dist/cloud/gcp/deploy.js.map +1 -0
  101. package/dist/cloud/gcp/iam.d.ts +20 -0
  102. package/dist/cloud/gcp/iam.d.ts.map +1 -0
  103. package/dist/cloud/gcp/iam.js +179 -0
  104. package/dist/cloud/gcp/iam.js.map +1 -0
  105. package/dist/cloud/gcp/provider.d.ts +28 -0
  106. package/dist/cloud/gcp/provider.d.ts.map +1 -0
  107. package/dist/cloud/gcp/provider.js +84 -0
  108. package/dist/cloud/gcp/provider.js.map +1 -0
  109. package/dist/cloud/gcp/provision.d.ts +14 -0
  110. package/dist/cloud/gcp/provision.d.ts.map +1 -0
  111. package/dist/cloud/gcp/provision.js +37 -0
  112. package/dist/cloud/gcp/provision.js.map +1 -0
  113. package/dist/cloud/gcp/teardown.d.ts +12 -0
  114. package/dist/cloud/gcp/teardown.d.ts.map +1 -0
  115. package/dist/cloud/gcp/teardown.js +67 -0
  116. package/dist/cloud/gcp/teardown.js.map +1 -0
  117. package/dist/cloud/image-builder.d.ts.map +1 -1
  118. package/dist/cloud/image-builder.js +115 -18
  119. package/dist/cloud/image-builder.js.map +1 -1
  120. package/dist/cloud/provider.d.ts +57 -0
  121. package/dist/cloud/provider.d.ts.map +1 -0
  122. package/dist/cloud/provider.js +21 -0
  123. package/dist/cloud/provider.js.map +1 -0
  124. package/dist/cloud/scheduler-image.d.ts.map +1 -1
  125. package/dist/cloud/scheduler-image.js +16 -3
  126. package/dist/cloud/scheduler-image.js.map +1 -1
  127. package/dist/cloud/state.d.ts +17 -0
  128. package/dist/cloud/state.d.ts.map +1 -0
  129. package/dist/cloud/state.js +48 -0
  130. package/dist/cloud/state.js.map +1 -0
  131. package/dist/docker/aws-shared.d.ts +6 -4
  132. package/dist/docker/aws-shared.d.ts.map +1 -1
  133. package/dist/docker/aws-shared.js +405 -23
  134. package/dist/docker/aws-shared.js.map +1 -1
  135. package/dist/docker/cloud-run-runtime.d.ts.map +1 -1
  136. package/dist/docker/cloud-run-runtime.js +10 -9
  137. package/dist/docker/cloud-run-runtime.js.map +1 -1
  138. package/dist/docker/ecs-runtime.d.ts +3 -1
  139. package/dist/docker/ecs-runtime.d.ts.map +1 -1
  140. package/dist/docker/ecs-runtime.js +78 -29
  141. package/dist/docker/ecs-runtime.js.map +1 -1
  142. package/dist/docker/image.d.ts +7 -0
  143. package/dist/docker/image.d.ts.map +1 -1
  144. package/dist/docker/image.js +31 -4
  145. package/dist/docker/image.js.map +1 -1
  146. package/dist/docker/lambda-runtime.js +1 -1
  147. package/dist/docker/lambda-runtime.js.map +1 -1
  148. package/dist/docker/local-runtime.js +4 -4
  149. package/dist/docker/local-runtime.js.map +1 -1
  150. package/dist/docker/network.d.ts.map +1 -1
  151. package/dist/docker/network.js +2 -2
  152. package/dist/docker/network.js.map +1 -1
  153. package/dist/docker/runtime.d.ts +23 -0
  154. package/dist/docker/runtime.d.ts.map +1 -1
  155. package/dist/gateway/api-key.d.ts +10 -0
  156. package/dist/gateway/api-key.d.ts.map +1 -0
  157. package/dist/gateway/api-key.js +19 -0
  158. package/dist/gateway/api-key.js.map +1 -0
  159. package/dist/gateway/auth.d.ts +16 -0
  160. package/dist/gateway/auth.d.ts.map +1 -0
  161. package/dist/gateway/auth.js +60 -0
  162. package/dist/gateway/auth.js.map +1 -0
  163. package/dist/gateway/index.d.ts +2 -0
  164. package/dist/gateway/index.d.ts.map +1 -1
  165. package/dist/gateway/index.js +38 -4
  166. package/dist/gateway/index.js.map +1 -1
  167. package/dist/gateway/rate-limiter.d.ts +16 -0
  168. package/dist/gateway/rate-limiter.d.ts.map +1 -0
  169. package/dist/gateway/rate-limiter.js +38 -0
  170. package/dist/gateway/rate-limiter.js.map +1 -0
  171. package/dist/gateway/routes/control.d.ts +6 -0
  172. package/dist/gateway/routes/control.d.ts.map +1 -1
  173. package/dist/gateway/routes/control.js +117 -0
  174. package/dist/gateway/routes/control.js.map +1 -1
  175. package/dist/gateway/routes/dashboard.d.ts +1 -1
  176. package/dist/gateway/routes/dashboard.d.ts.map +1 -1
  177. package/dist/gateway/routes/dashboard.js +148 -49
  178. package/dist/gateway/routes/dashboard.js.map +1 -1
  179. package/dist/gateway/routes/locks.d.ts +3 -1
  180. package/dist/gateway/routes/locks.d.ts.map +1 -1
  181. package/dist/gateway/routes/locks.js +18 -13
  182. package/dist/gateway/routes/locks.js.map +1 -1
  183. package/dist/gateway/routes/webhooks.d.ts.map +1 -1
  184. package/dist/gateway/routes/webhooks.js +14 -0
  185. package/dist/gateway/routes/webhooks.js.map +1 -1
  186. package/dist/gateway/views/dashboard-page.d.ts.map +1 -1
  187. package/dist/gateway/views/dashboard-page.js +93 -20
  188. package/dist/gateway/views/dashboard-page.js.map +1 -1
  189. package/dist/gateway/views/login-page.d.ts +2 -0
  190. package/dist/gateway/views/login-page.d.ts.map +1 -0
  191. package/dist/gateway/views/login-page.js +54 -0
  192. package/dist/gateway/views/login-page.js.map +1 -0
  193. package/dist/scheduler/index.d.ts +1 -2
  194. package/dist/scheduler/index.d.ts.map +1 -1
  195. package/dist/scheduler/index.js +176 -216
  196. package/dist/scheduler/index.js.map +1 -1
  197. package/dist/scheduler/runner-pool.d.ts +5 -0
  198. package/dist/scheduler/runner-pool.d.ts.map +1 -1
  199. package/dist/scheduler/runner-pool.js +14 -0
  200. package/dist/scheduler/runner-pool.js.map +1 -1
  201. package/dist/scheduler/runtime-factory.d.ts +26 -4
  202. package/dist/scheduler/runtime-factory.d.ts.map +1 -1
  203. package/dist/scheduler/runtime-factory.js +43 -77
  204. package/dist/scheduler/runtime-factory.js.map +1 -1
  205. package/dist/scheduler/webhook-setup.d.ts +11 -20
  206. package/dist/scheduler/webhook-setup.d.ts.map +1 -1
  207. package/dist/scheduler/webhook-setup.js +22 -68
  208. package/dist/scheduler/webhook-setup.js.map +1 -1
  209. package/dist/setup/scaffold.d.ts.map +1 -1
  210. package/dist/setup/scaffold.js +25 -0
  211. package/dist/setup/scaffold.js.map +1 -1
  212. package/dist/shared/asm-backend.d.ts.map +1 -1
  213. package/dist/shared/asm-backend.js +2 -2
  214. package/dist/shared/asm-backend.js.map +1 -1
  215. package/dist/shared/config.d.ts +29 -13
  216. package/dist/shared/config.d.ts.map +1 -1
  217. package/dist/shared/config.js +53 -6
  218. package/dist/shared/config.js.map +1 -1
  219. package/dist/shared/constants.d.ts +34 -0
  220. package/dist/shared/constants.d.ts.map +1 -0
  221. package/dist/shared/constants.js +34 -0
  222. package/dist/shared/constants.js.map +1 -0
  223. package/dist/shared/credential-backend.d.ts +1 -1
  224. package/dist/shared/credentials.d.ts.map +1 -1
  225. package/dist/shared/credentials.js +2 -1
  226. package/dist/shared/credentials.js.map +1 -1
  227. package/dist/shared/errors.d.ts +34 -0
  228. package/dist/shared/errors.d.ts.map +1 -0
  229. package/dist/shared/errors.js +47 -0
  230. package/dist/shared/errors.js.map +1 -0
  231. package/dist/shared/filesystem-backend.d.ts +1 -1
  232. package/dist/shared/filesystem-backend.js +1 -1
  233. package/dist/shared/git.d.ts.map +1 -1
  234. package/dist/shared/git.js +3 -2
  235. package/dist/shared/git.js.map +1 -1
  236. package/dist/shared/gsm-backend.d.ts.map +1 -1
  237. package/dist/shared/gsm-backend.js +2 -2
  238. package/dist/shared/gsm-backend.js.map +1 -1
  239. package/dist/shared/paths.d.ts +2 -0
  240. package/dist/shared/paths.d.ts.map +1 -1
  241. package/dist/shared/paths.js +3 -1
  242. package/dist/shared/paths.js.map +1 -1
  243. package/dist/shared/remote.d.ts +1 -0
  244. package/dist/shared/remote.d.ts.map +1 -1
  245. package/dist/shared/remote.js +4 -16
  246. package/dist/shared/remote.js.map +1 -1
  247. package/dist/shared/usage.d.ts +22 -0
  248. package/dist/shared/usage.d.ts.map +1 -0
  249. package/dist/shared/usage.js +43 -0
  250. package/dist/shared/usage.js.map +1 -0
  251. package/dist/telemetry/index.d.ts +57 -0
  252. package/dist/telemetry/index.d.ts.map +1 -0
  253. package/dist/telemetry/index.js +189 -0
  254. package/dist/telemetry/index.js.map +1 -0
  255. package/dist/telemetry/providers/otel.d.ts +15 -0
  256. package/dist/telemetry/providers/otel.d.ts.map +1 -0
  257. package/dist/telemetry/providers/otel.js +77 -0
  258. package/dist/telemetry/providers/otel.js.map +1 -0
  259. package/dist/telemetry/providers/xray.d.ts +13 -0
  260. package/dist/telemetry/providers/xray.d.ts.map +1 -0
  261. package/dist/telemetry/providers/xray.js +33 -0
  262. package/dist/telemetry/providers/xray.js.map +1 -0
  263. package/dist/telemetry/types.d.ts +59 -0
  264. package/dist/telemetry/types.d.ts.map +1 -0
  265. package/dist/telemetry/types.js +2 -0
  266. package/dist/telemetry/types.js.map +1 -0
  267. package/dist/tui/App.d.ts.map +1 -1
  268. package/dist/tui/App.js +2 -0
  269. package/dist/tui/App.js.map +1 -1
  270. package/dist/tui/plain-logger.d.ts.map +1 -1
  271. package/dist/tui/plain-logger.js +8 -2
  272. package/dist/tui/plain-logger.js.map +1 -1
  273. package/dist/tui/status-tracker.d.ts +4 -1
  274. package/dist/tui/status-tracker.d.ts.map +1 -1
  275. package/dist/tui/status-tracker.js +11 -1
  276. package/dist/tui/status-tracker.js.map +1 -1
  277. package/dist/webhooks/providers/github.d.ts.map +1 -1
  278. package/dist/webhooks/providers/github.js +2 -21
  279. package/dist/webhooks/providers/github.js.map +1 -1
  280. package/dist/webhooks/providers/linear.d.ts.map +1 -1
  281. package/dist/webhooks/providers/linear.js +2 -21
  282. package/dist/webhooks/providers/linear.js.map +1 -1
  283. package/dist/webhooks/providers/sentry.d.ts.map +1 -1
  284. package/dist/webhooks/providers/sentry.js +2 -20
  285. package/dist/webhooks/providers/sentry.js.map +1 -1
  286. package/dist/webhooks/validation.d.ts +17 -0
  287. package/dist/webhooks/validation.d.ts.map +1 -0
  288. package/dist/webhooks/validation.js +37 -0
  289. package/dist/webhooks/validation.js.map +1 -0
  290. package/docker/adot-collector-config.yaml +57 -0
  291. package/package.json +9 -1
  292. package/dist/cloud/deploy-apprunner.d.ts.map +0 -1
  293. package/dist/cloud/deploy-apprunner.js.map +0 -1
  294. package/dist/cloud/deploy-cloudrun.d.ts.map +0 -1
  295. package/dist/cloud/deploy-cloudrun.js.map +0 -1
  296. package/dist/scheduler/config-validator.d.ts +0 -18
  297. package/dist/scheduler/config-validator.d.ts.map +0 -1
  298. package/dist/scheduler/config-validator.js +0 -53
  299. package/dist/scheduler/config-validator.js.map +0 -1
  300. package/dist/scheduler/cron-manager.d.ts +0 -14
  301. package/dist/scheduler/cron-manager.d.ts.map +0 -1
  302. package/dist/scheduler/cron-manager.js +0 -75
  303. package/dist/scheduler/cron-manager.js.map +0 -1
  304. package/dist/scheduler/shutdown-handler.d.ts +0 -16
  305. package/dist/scheduler/shutdown-handler.d.ts.map +0 -1
  306. package/dist/scheduler/shutdown-handler.js +0 -44
  307. package/dist/scheduler/shutdown-handler.js.map +0 -1
  308. package/dist/scheduler/trigger-dispatcher.d.ts +0 -12
  309. package/dist/scheduler/trigger-dispatcher.d.ts.map +0 -1
  310. package/dist/scheduler/trigger-dispatcher.js +0 -46
  311. package/dist/scheduler/trigger-dispatcher.js.map +0 -1
  312. package/dist/shared/aws-constants.d.ts.map +0 -1
  313. package/dist/shared/aws-constants.js.map +0 -1
@@ -0,0 +1,173 @@
1
+ /**
2
+ * AWS (ECS) cloud provider implementation.
3
+ *
4
+ * Wraps EcsCloudConfig and delegates to the extracted AWS modules
5
+ * (provision, teardown, iam, deploy) via the CloudProvider interface.
6
+ */
7
+ import { ECSFargateRuntime } from "../../docker/ecs-runtime.js";
8
+ import { LambdaRuntime } from "../../docker/lambda-runtime.js";
9
+ import { AWS_CONSTANTS } from "./constants.js";
10
+ import { CONSTANTS } from "../../shared/constants.js";
11
+ export class AwsCloudProvider {
12
+ providerName = "ecs";
13
+ config;
14
+ constructor(config) {
15
+ this.config = config;
16
+ }
17
+ /**
18
+ * Interactive provisioning wizard. Runs the ECS setup flow and
19
+ * returns config fields to write to config.toml.
20
+ */
21
+ async provision() {
22
+ const { setupEcsCloud } = await import("./provision.js");
23
+ // setupEcsCloud mutates the config object in place and returns success/failure
24
+ const configCopy = { ...this.config };
25
+ const success = await setupEcsCloud(configCopy);
26
+ if (!success) {
27
+ return null;
28
+ }
29
+ // Return the full mutated config as a flat record
30
+ return configCopy;
31
+ }
32
+ /**
33
+ * Tear down all provisioned AWS cloud resources for this project.
34
+ */
35
+ async teardown(projectPath) {
36
+ const { teardownAws } = await import("./teardown.js");
37
+ await teardownAws(projectPath, this.config);
38
+ }
39
+ /**
40
+ * Reconcile per-agent IAM resources (ECS task roles + Lambda roles).
41
+ */
42
+ async reconcileAgents(projectPath) {
43
+ const { reconcileAwsAgents, reconcileLambdaRoles } = await import("./iam.js");
44
+ await reconcileAwsAgents(projectPath, this.config);
45
+ await reconcileLambdaRoles(projectPath, this.config);
46
+ }
47
+ /**
48
+ * Validate that per-agent IAM task roles exist and are correctly configured.
49
+ */
50
+ async validateRoles(projectPath) {
51
+ const { validateEcsRoles } = await import("./iam.js");
52
+ await validateEcsRoles(projectPath, this.config);
53
+ }
54
+ /**
55
+ * Create the primary ECS Fargate container runtime.
56
+ */
57
+ createRuntime() {
58
+ return new ECSFargateRuntime({
59
+ awsRegion: this.config.awsRegion,
60
+ ecsCluster: this.config.ecsCluster,
61
+ ecrRepository: this.config.ecrRepository,
62
+ executionRoleArn: this.config.executionRoleArn,
63
+ taskRoleArn: this.config.taskRoleArn,
64
+ subnets: this.config.subnets,
65
+ securityGroups: this.config.securityGroups,
66
+ secretPrefix: this.config.awsSecretPrefix || CONSTANTS.DEFAULT_SECRET_PREFIX,
67
+ buildBucket: this.config.buildBucket,
68
+ });
69
+ }
70
+ /**
71
+ * Create a runtime for a specific agent.
72
+ *
73
+ * Agents with timeout <= LAMBDA_MAX_TIMEOUT are routed to Lambda
74
+ * for faster cold starts and lower cost. All others use ECS Fargate.
75
+ */
76
+ createAgentRuntime(agentConfig, globalConfig) {
77
+ const effectiveTimeout = agentConfig.timeout ?? globalConfig.local?.timeout ?? 900;
78
+ if (effectiveTimeout <= AWS_CONSTANTS.LAMBDA_MAX_TIMEOUT) {
79
+ return new LambdaRuntime({
80
+ awsRegion: this.config.awsRegion,
81
+ ecrRepository: this.config.ecrRepository,
82
+ secretPrefix: this.config.awsSecretPrefix || CONSTANTS.DEFAULT_SECRET_PREFIX,
83
+ buildBucket: this.config.buildBucket,
84
+ lambdaRoleArn: this.config.lambdaRoleArn,
85
+ lambdaSubnets: this.config.lambdaSubnets,
86
+ lambdaSecurityGroups: this.config.lambdaSecurityGroups,
87
+ });
88
+ }
89
+ return this.createRuntime();
90
+ }
91
+ /**
92
+ * Create primary ECS runtime + per-agent Lambda overrides for
93
+ * agents with short timeouts.
94
+ */
95
+ createRuntimes(activeAgentConfigs, globalConfig) {
96
+ const runtime = this.createRuntime();
97
+ const agentRuntimeOverrides = {};
98
+ // Check which agents should be routed to Lambda
99
+ let lambdaRuntime = null;
100
+ for (const agentConfig of activeAgentConfigs) {
101
+ const effectiveTimeout = agentConfig.timeout ?? globalConfig.local?.timeout ?? 900;
102
+ if (effectiveTimeout <= AWS_CONSTANTS.LAMBDA_MAX_TIMEOUT) {
103
+ // Lazily create a single shared Lambda runtime
104
+ if (!lambdaRuntime) {
105
+ lambdaRuntime = new LambdaRuntime({
106
+ awsRegion: this.config.awsRegion,
107
+ ecrRepository: this.config.ecrRepository,
108
+ secretPrefix: this.config.awsSecretPrefix || CONSTANTS.DEFAULT_SECRET_PREFIX,
109
+ buildBucket: this.config.buildBucket,
110
+ lambdaRoleArn: this.config.lambdaRoleArn,
111
+ lambdaSubnets: this.config.lambdaSubnets,
112
+ lambdaSecurityGroups: this.config.lambdaSecurityGroups,
113
+ });
114
+ }
115
+ agentRuntimeOverrides[agentConfig.name] = lambdaRuntime;
116
+ }
117
+ }
118
+ return { runtime, agentRuntimeOverrides };
119
+ }
120
+ /**
121
+ * Create an AWS Secrets Manager credential backend.
122
+ */
123
+ async createCredentialBackend() {
124
+ const { AwsSecretsManagerBackend } = await import("../../shared/asm-backend.js");
125
+ return new AwsSecretsManagerBackend(this.config.awsRegion, this.config.awsSecretPrefix || CONSTANTS.DEFAULT_SECRET_PREFIX);
126
+ }
127
+ /**
128
+ * Deploy the scheduler as an App Runner service.
129
+ */
130
+ async deployScheduler(imageUri) {
131
+ const { deployAppRunner } = await import("./deploy.js");
132
+ const result = await deployAppRunner({
133
+ imageUri,
134
+ cloudConfig: this.config,
135
+ });
136
+ return {
137
+ serviceUrl: result.serviceUrl,
138
+ status: result.status,
139
+ createdAt: result.createdAt,
140
+ updatedAt: result.updatedAt,
141
+ };
142
+ }
143
+ /**
144
+ * Get the current scheduler App Runner service status.
145
+ */
146
+ async getSchedulerStatus() {
147
+ const { getAppRunnerStatus } = await import("./deploy.js");
148
+ const result = await getAppRunnerStatus(this.config);
149
+ if (!result)
150
+ return null;
151
+ return {
152
+ serviceUrl: result.serviceUrl,
153
+ status: result.status,
154
+ createdAt: result.createdAt,
155
+ updatedAt: result.updatedAt,
156
+ };
157
+ }
158
+ /**
159
+ * Fetch recent scheduler logs from CloudWatch.
160
+ */
161
+ async getSchedulerLogs(limit) {
162
+ const { getAppRunnerLogs } = await import("./deploy.js");
163
+ return getAppRunnerLogs(this.config, limit);
164
+ }
165
+ /**
166
+ * Tear down the scheduler App Runner service only.
167
+ */
168
+ async teardownScheduler() {
169
+ const { teardownAppRunner } = await import("./deploy.js");
170
+ await teardownAppRunner(this.config);
171
+ }
172
+ }
173
+ //# sourceMappingURL=provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../../src/cloud/aws/provider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * ECS-specific cloud provisioning logic.
3
+ *
4
+ * Extracted from cli/commands/cloud-setup-ecs.ts into the cloud provider module.
5
+ * Contains all AWS resource creation/discovery for ECS Fargate setup.
6
+ */
7
+ import type { EcsCloudConfig } from "../../shared/config.js";
8
+ export declare function setupEcsCloud(cloud: EcsCloudConfig): Promise<boolean>;
9
+ //# sourceMappingURL=provision.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provision.d.ts","sourceRoot":"","sources":["../../../src/cloud/aws/provision.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAsCH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAO7D,wBAAsB,aAAa,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,CA2L3E"}