@aws/agentcore 1.0.0-preview.3 → 1.0.0-preview.30

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 (330) hide show
  1. package/README.md +193 -33
  2. package/dist/agent-inspector/index.css +1 -1
  3. package/dist/agent-inspector/index.js +99 -84
  4. package/dist/assets/README.md +6 -2
  5. package/dist/assets/__tests__/__snapshots__/assets.snapshot.test.ts.snap +3344 -366
  6. package/dist/assets/__tests__/__snapshots__/dockerfile-render.test.ts.snap +6 -2
  7. package/dist/assets/__tests__/assets.snapshot.test.ts +10 -24
  8. package/dist/assets/__tests__/googleadk-observability.test.ts +23 -0
  9. package/dist/assets/__tests__/googleadk-session-eviction.test.ts +87 -0
  10. package/dist/assets/__tests__/input-validation.test.ts +44 -0
  11. package/dist/assets/__tests__/summarization-namespace.test.ts +43 -0
  12. package/dist/assets/agents/AGENTS.md +91 -14
  13. package/dist/assets/cdk/bin/cdk.ts +109 -24
  14. package/dist/assets/cdk/lib/cdk-stack.ts +227 -19
  15. package/dist/assets/cdk/package.json +9 -9
  16. package/dist/assets/cdk/test/cdk.test.ts +4 -0
  17. package/dist/assets/container/python/Dockerfile +7 -1
  18. package/dist/assets/container/typescript/Dockerfile +25 -0
  19. package/dist/assets/container/typescript/dockerignore.template +24 -0
  20. package/dist/assets/datasets/predefined-v1.jsonl +3 -0
  21. package/dist/assets/datasets/simulated-v1.jsonl +3 -0
  22. package/dist/assets/evaluators/autoevals-lambda/execution-role-policy.json +15 -0
  23. package/dist/assets/evaluators/autoevals-lambda/lambda_function.py +37 -0
  24. package/dist/assets/evaluators/autoevals-lambda/pyproject.toml +22 -0
  25. package/dist/assets/evaluators/deepeval-lambda/execution-role-policy.json +15 -0
  26. package/dist/assets/evaluators/deepeval-lambda/lambda_function.py +29 -0
  27. package/dist/assets/evaluators/deepeval-lambda/pyproject.toml +19 -0
  28. package/dist/assets/mcp/python/pyproject.toml +1 -1
  29. package/dist/assets/python/a2a/googleadk/base/main.py +32 -18
  30. package/dist/assets/python/a2a/googleadk/base/pyproject.toml +6 -4
  31. package/dist/assets/python/a2a/langchain_langgraph/base/main.py +35 -21
  32. package/dist/assets/python/a2a/langchain_langgraph/base/pyproject.toml +4 -3
  33. package/dist/assets/python/a2a/strands/base/main.py +23 -17
  34. package/dist/assets/python/a2a/strands/base/pyproject.toml +3 -3
  35. package/dist/assets/python/a2a/strands/capabilities/memory/session.py +4 -1
  36. package/dist/assets/python/agui/googleadk/base/main.py +62 -2
  37. package/dist/assets/python/agui/googleadk/base/pyproject.toml +6 -5
  38. package/dist/assets/python/agui/langchain_langgraph/base/main.py +56 -0
  39. package/dist/assets/python/agui/langchain_langgraph/base/pyproject.toml +3 -2
  40. package/dist/assets/python/agui/strands/base/main.py +63 -1
  41. package/dist/assets/python/agui/strands/base/pyproject.toml +2 -2
  42. package/dist/assets/python/agui/strands/capabilities/memory/session.py +4 -1
  43. package/dist/assets/python/http/autogen/base/README.md +7 -1
  44. package/dist/assets/python/http/autogen/base/main.py +62 -29
  45. package/dist/assets/python/http/autogen/base/pyproject.toml +1 -1
  46. package/dist/assets/python/http/googleadk/base/README.md +7 -1
  47. package/dist/assets/python/http/googleadk/base/main.py +71 -24
  48. package/dist/assets/python/http/googleadk/base/mcp_client/client.py +7 -7
  49. package/dist/assets/python/http/googleadk/base/pyproject.toml +5 -3
  50. package/dist/assets/python/http/langchain_langgraph/base/README.md +7 -1
  51. package/dist/assets/python/http/langchain_langgraph/base/main.py +119 -24
  52. package/dist/assets/python/http/langchain_langgraph/base/mcp_client/client.py +10 -8
  53. package/dist/assets/python/http/langchain_langgraph/base/pyproject.toml +5 -4
  54. package/dist/assets/python/http/openaiagents/base/README.md +7 -1
  55. package/dist/assets/python/http/openaiagents/base/main.py +63 -32
  56. package/dist/assets/python/http/openaiagents/base/mcp_client/client.py +4 -4
  57. package/dist/assets/python/http/openaiagents/base/pyproject.toml +3 -3
  58. package/dist/assets/python/http/strands/base/README.md +8 -1
  59. package/dist/assets/python/http/strands/base/main.py +607 -47
  60. package/dist/assets/python/http/strands/base/mcp_client/client.py +49 -6
  61. package/dist/assets/python/http/strands/base/model/load.py +119 -3
  62. package/dist/assets/python/http/strands/base/model/mantle_compat.py +21 -0
  63. package/dist/assets/python/http/strands/base/pyproject.toml +11 -5
  64. package/dist/assets/python/http/strands/base/skills/fetcher.py +279 -0
  65. package/dist/assets/python/http/strands/capabilities/execution-limits/hooks/execution_limits.py +54 -0
  66. package/dist/assets/python/http/strands/capabilities/memory/session.py +4 -1
  67. package/dist/assets/python/http/strands/capabilities/payments/__init__.py +4 -0
  68. package/dist/assets/python/http/strands/capabilities/payments/payments.py +142 -0
  69. package/dist/assets/python/mcp/standalone/base/main.py +58 -0
  70. package/dist/assets/python/mcp/standalone/base/pyproject.toml +1 -1
  71. package/dist/assets/typescript/http/strands/base/README.md +42 -0
  72. package/dist/assets/typescript/http/strands/base/gitignore.template +22 -0
  73. package/dist/assets/typescript/http/strands/base/main.ts +149 -0
  74. package/dist/assets/typescript/http/strands/base/mcp_client/client.ts +11 -0
  75. package/dist/assets/typescript/http/strands/base/model/load.ts +102 -0
  76. package/dist/assets/typescript/http/strands/base/package.json +38 -0
  77. package/dist/assets/typescript/http/strands/base/tsconfig.json +19 -0
  78. package/dist/assets/typescript/http/strands/capabilities/memory/memory.ts +52 -0
  79. package/dist/assets/typescript/http/vercelai/base/README.md +42 -0
  80. package/dist/assets/typescript/http/vercelai/base/gitignore.template +22 -0
  81. package/dist/assets/typescript/http/vercelai/base/main.ts +70 -0
  82. package/dist/assets/typescript/http/vercelai/base/model/load.ts +121 -0
  83. package/dist/assets/typescript/http/vercelai/base/package.json +35 -0
  84. package/dist/assets/typescript/http/vercelai/base/tsconfig.json +19 -0
  85. package/dist/cli/index.mjs +1743 -627
  86. package/dist/lib/constants.d.ts +8 -4
  87. package/dist/lib/constants.d.ts.map +1 -1
  88. package/dist/lib/constants.js +13 -7
  89. package/dist/lib/constants.js.map +1 -1
  90. package/dist/lib/dependency-management/index.d.ts +5 -0
  91. package/dist/lib/dependency-management/index.d.ts.map +1 -0
  92. package/dist/lib/dependency-management/index.js +8 -0
  93. package/dist/lib/dependency-management/index.js.map +1 -0
  94. package/dist/lib/dependency-management/messages.d.ts +30 -0
  95. package/dist/lib/dependency-management/messages.d.ts.map +1 -0
  96. package/dist/lib/dependency-management/messages.js +86 -0
  97. package/dist/lib/dependency-management/messages.js.map +1 -0
  98. package/dist/lib/dependency-management/plan.d.ts +25 -0
  99. package/dist/lib/dependency-management/plan.d.ts.map +1 -0
  100. package/dist/lib/dependency-management/plan.js +67 -0
  101. package/dist/lib/dependency-management/plan.js.map +1 -0
  102. package/dist/lib/dependency-management/semver.d.ts +21 -0
  103. package/dist/lib/dependency-management/semver.d.ts.map +1 -0
  104. package/dist/lib/dependency-management/semver.js +51 -0
  105. package/dist/lib/dependency-management/semver.js.map +1 -0
  106. package/dist/lib/dependency-management/sync.d.ts +26 -0
  107. package/dist/lib/dependency-management/sync.d.ts.map +1 -0
  108. package/dist/lib/dependency-management/sync.js +141 -0
  109. package/dist/lib/dependency-management/sync.js.map +1 -0
  110. package/dist/lib/dependency-management/types.d.ts +85 -0
  111. package/dist/lib/dependency-management/types.d.ts.map +1 -0
  112. package/dist/lib/dependency-management/types.js +3 -0
  113. package/dist/lib/dependency-management/types.js.map +1 -0
  114. package/dist/lib/errors/index.d.ts +1 -1
  115. package/dist/lib/errors/index.d.ts.map +1 -1
  116. package/dist/lib/errors/index.js +1 -1
  117. package/dist/lib/errors/index.js.map +1 -1
  118. package/dist/lib/errors/types.d.ts +274 -0
  119. package/dist/lib/errors/types.d.ts.map +1 -0
  120. package/dist/lib/errors/types.js +423 -0
  121. package/dist/lib/errors/types.js.map +1 -0
  122. package/dist/lib/errors/zod.d.ts +8 -0
  123. package/dist/lib/errors/zod.d.ts.map +1 -0
  124. package/dist/lib/errors/{config.js → zod.js} +8 -81
  125. package/dist/lib/errors/zod.js.map +1 -0
  126. package/dist/lib/index.d.ts +3 -0
  127. package/dist/lib/index.d.ts.map +1 -1
  128. package/dist/lib/index.js +4 -1
  129. package/dist/lib/index.js.map +1 -1
  130. package/dist/lib/packaging/build-args.d.ts +6 -0
  131. package/dist/lib/packaging/build-args.d.ts.map +1 -1
  132. package/dist/lib/packaging/build-args.js +11 -2
  133. package/dist/lib/packaging/build-args.js.map +1 -1
  134. package/dist/lib/packaging/build-context-dockerignore.d.ts +23 -0
  135. package/dist/lib/packaging/build-context-dockerignore.d.ts.map +1 -0
  136. package/dist/lib/packaging/build-context-dockerignore.js +63 -0
  137. package/dist/lib/packaging/build-context-dockerignore.js.map +1 -0
  138. package/dist/lib/packaging/build-context.d.ts +21 -0
  139. package/dist/lib/packaging/build-context.d.ts.map +1 -0
  140. package/dist/lib/packaging/build-context.js +21 -0
  141. package/dist/lib/packaging/build-context.js.map +1 -0
  142. package/dist/lib/packaging/container.d.ts.map +1 -1
  143. package/dist/lib/packaging/container.js +20 -9
  144. package/dist/lib/packaging/container.js.map +1 -1
  145. package/dist/lib/packaging/helpers.d.ts +16 -0
  146. package/dist/lib/packaging/helpers.d.ts.map +1 -1
  147. package/dist/lib/packaging/helpers.js +127 -29
  148. package/dist/lib/packaging/helpers.js.map +1 -1
  149. package/dist/lib/packaging/index.d.ts +2 -1
  150. package/dist/lib/packaging/index.d.ts.map +1 -1
  151. package/dist/lib/packaging/index.js +9 -20
  152. package/dist/lib/packaging/index.js.map +1 -1
  153. package/dist/lib/packaging/node.d.ts +2 -2
  154. package/dist/lib/packaging/node.d.ts.map +1 -1
  155. package/dist/lib/packaging/node.js +83 -38
  156. package/dist/lib/packaging/node.js.map +1 -1
  157. package/dist/lib/packaging/python.js +12 -12
  158. package/dist/lib/packaging/python.js.map +1 -1
  159. package/dist/lib/result.d.ts +57 -0
  160. package/dist/lib/result.d.ts.map +1 -0
  161. package/dist/lib/result.js +62 -0
  162. package/dist/lib/result.js.map +1 -0
  163. package/dist/lib/schemas/io/config-io.d.ts +14 -0
  164. package/dist/lib/schemas/io/config-io.d.ts.map +1 -1
  165. package/dist/lib/schemas/io/config-io.js +89 -5
  166. package/dist/lib/schemas/io/config-io.js.map +1 -1
  167. package/dist/lib/schemas/io/global-config.d.ts +41 -0
  168. package/dist/lib/schemas/io/global-config.d.ts.map +1 -0
  169. package/dist/lib/schemas/io/global-config.js +119 -0
  170. package/dist/lib/schemas/io/global-config.js.map +1 -0
  171. package/dist/lib/schemas/io/index.d.ts +1 -2
  172. package/dist/lib/schemas/io/index.d.ts.map +1 -1
  173. package/dist/lib/schemas/io/index.js +1 -4
  174. package/dist/lib/schemas/io/index.js.map +1 -1
  175. package/dist/lib/schemas/io/path-resolver.d.ts +0 -6
  176. package/dist/lib/schemas/io/path-resolver.d.ts.map +1 -1
  177. package/dist/lib/schemas/io/path-resolver.js +3 -13
  178. package/dist/lib/schemas/io/path-resolver.js.map +1 -1
  179. package/dist/lib/secrets/cipher.d.ts +12 -0
  180. package/dist/lib/secrets/cipher.d.ts.map +1 -0
  181. package/dist/lib/secrets/cipher.js +54 -0
  182. package/dist/lib/secrets/cipher.js.map +1 -0
  183. package/dist/lib/secrets/index.d.ts +4 -0
  184. package/dist/lib/secrets/index.d.ts.map +1 -0
  185. package/dist/lib/secrets/index.js +15 -0
  186. package/dist/lib/secrets/index.js.map +1 -0
  187. package/dist/lib/secrets/key-provider.d.ts +16 -0
  188. package/dist/lib/secrets/key-provider.d.ts.map +1 -0
  189. package/dist/lib/secrets/key-provider.js +191 -0
  190. package/dist/lib/secrets/key-provider.js.map +1 -0
  191. package/dist/lib/secrets/sensitive-keys.d.ts +21 -0
  192. package/dist/lib/secrets/sensitive-keys.d.ts.map +1 -0
  193. package/dist/lib/secrets/sensitive-keys.js +67 -0
  194. package/dist/lib/secrets/sensitive-keys.js.map +1 -0
  195. package/dist/lib/time-constants.d.ts +5 -0
  196. package/dist/lib/time-constants.d.ts.map +1 -0
  197. package/dist/lib/time-constants.js +8 -0
  198. package/dist/lib/time-constants.js.map +1 -0
  199. package/dist/lib/utils/env.d.ts +8 -2
  200. package/dist/lib/utils/env.d.ts.map +1 -1
  201. package/dist/lib/utils/env.js +65 -17
  202. package/dist/lib/utils/env.js.map +1 -1
  203. package/dist/lib/utils/index.d.ts +3 -2
  204. package/dist/lib/utils/index.d.ts.map +1 -1
  205. package/dist/lib/utils/index.js +6 -1
  206. package/dist/lib/utils/index.js.map +1 -1
  207. package/dist/lib/utils/polling.d.ts +31 -0
  208. package/dist/lib/utils/polling.d.ts.map +1 -0
  209. package/dist/lib/utils/polling.js +61 -0
  210. package/dist/lib/utils/polling.js.map +1 -0
  211. package/dist/lib/utils/subprocess.d.ts +4 -1
  212. package/dist/lib/utils/subprocess.d.ts.map +1 -1
  213. package/dist/lib/utils/subprocess.js +11 -57
  214. package/dist/lib/utils/subprocess.js.map +1 -1
  215. package/dist/lib/utils/zod.d.ts +16 -0
  216. package/dist/lib/utils/zod.d.ts.map +1 -1
  217. package/dist/lib/utils/zod.js +45 -0
  218. package/dist/lib/utils/zod.js.map +1 -1
  219. package/dist/schema/constants.d.ts +56 -2
  220. package/dist/schema/constants.d.ts.map +1 -1
  221. package/dist/schema/constants.js +82 -7
  222. package/dist/schema/constants.js.map +1 -1
  223. package/dist/schema/schemas/agent-env.d.ts +187 -7
  224. package/dist/schema/schemas/agent-env.d.ts.map +1 -1
  225. package/dist/schema/schemas/agent-env.js +323 -27
  226. package/dist/schema/schemas/agent-env.js.map +1 -1
  227. package/dist/schema/schemas/agentcore-project.d.ts +519 -12
  228. package/dist/schema/schemas/agentcore-project.d.ts.map +1 -1
  229. package/dist/schema/schemas/agentcore-project.js +342 -13
  230. package/dist/schema/schemas/agentcore-project.js.map +1 -1
  231. package/dist/schema/schemas/auth.d.ts +174 -0
  232. package/dist/schema/schemas/auth.d.ts.map +1 -1
  233. package/dist/schema/schemas/auth.js +127 -3
  234. package/dist/schema/schemas/auth.js.map +1 -1
  235. package/dist/schema/schemas/aws-targets.d.ts +18 -0
  236. package/dist/schema/schemas/aws-targets.d.ts.map +1 -1
  237. package/dist/schema/schemas/aws-targets.js +6 -0
  238. package/dist/schema/schemas/aws-targets.js.map +1 -1
  239. package/dist/schema/schemas/connections.d.ts +185 -0
  240. package/dist/schema/schemas/connections.d.ts.map +1 -0
  241. package/dist/schema/schemas/connections.js +176 -0
  242. package/dist/schema/schemas/connections.js.map +1 -0
  243. package/dist/schema/schemas/deployed-state.d.ts +392 -5
  244. package/dist/schema/schemas/deployed-state.d.ts.map +1 -1
  245. package/dist/schema/schemas/deployed-state.js +112 -2
  246. package/dist/schema/schemas/deployed-state.js.map +1 -1
  247. package/dist/schema/schemas/index.d.ts +3 -0
  248. package/dist/schema/schemas/index.d.ts.map +1 -1
  249. package/dist/schema/schemas/index.js +5 -0
  250. package/dist/schema/schemas/index.js.map +1 -1
  251. package/dist/schema/schemas/mcp-defs.d.ts +2 -1
  252. package/dist/schema/schemas/mcp-defs.d.ts.map +1 -1
  253. package/dist/schema/schemas/mcp-defs.js +3 -2
  254. package/dist/schema/schemas/mcp-defs.js.map +1 -1
  255. package/dist/schema/schemas/mcp.d.ts +197 -0
  256. package/dist/schema/schemas/mcp.d.ts.map +1 -1
  257. package/dist/schema/schemas/mcp.js +334 -5
  258. package/dist/schema/schemas/mcp.js.map +1 -1
  259. package/dist/schema/schemas/primitives/ab-test.d.ts +135 -0
  260. package/dist/schema/schemas/primitives/ab-test.d.ts.map +1 -0
  261. package/dist/schema/schemas/primitives/ab-test.js +95 -0
  262. package/dist/schema/schemas/primitives/ab-test.js.map +1 -0
  263. package/dist/schema/schemas/primitives/capacity-provider.d.ts +237 -0
  264. package/dist/schema/schemas/primitives/capacity-provider.d.ts.map +1 -0
  265. package/dist/schema/schemas/primitives/capacity-provider.js +220 -0
  266. package/dist/schema/schemas/primitives/capacity-provider.js.map +1 -0
  267. package/dist/schema/schemas/primitives/config-bundle.d.ts +32 -0
  268. package/dist/schema/schemas/primitives/config-bundle.d.ts.map +1 -0
  269. package/dist/schema/schemas/primitives/config-bundle.js +41 -0
  270. package/dist/schema/schemas/primitives/config-bundle.js.map +1 -0
  271. package/dist/schema/schemas/primitives/dataset.d.ts +48 -0
  272. package/dist/schema/schemas/primitives/dataset.d.ts.map +1 -0
  273. package/dist/schema/schemas/primitives/dataset.js +58 -0
  274. package/dist/schema/schemas/primitives/dataset.js.map +1 -0
  275. package/dist/schema/schemas/primitives/evaluator.d.ts +22 -0
  276. package/dist/schema/schemas/primitives/evaluator.d.ts.map +1 -1
  277. package/dist/schema/schemas/primitives/evaluator.js +28 -3
  278. package/dist/schema/schemas/primitives/evaluator.js.map +1 -1
  279. package/dist/schema/schemas/primitives/harness.d.ts +377 -19
  280. package/dist/schema/schemas/primitives/harness.d.ts.map +1 -1
  281. package/dist/schema/schemas/primitives/harness.js +379 -24
  282. package/dist/schema/schemas/primitives/harness.js.map +1 -1
  283. package/dist/schema/schemas/primitives/index.d.ts +17 -9
  284. package/dist/schema/schemas/primitives/index.d.ts.map +1 -1
  285. package/dist/schema/schemas/primitives/index.js +62 -1
  286. package/dist/schema/schemas/primitives/index.js.map +1 -1
  287. package/dist/schema/schemas/primitives/knowledge-base.d.ts +104 -0
  288. package/dist/schema/schemas/primitives/knowledge-base.d.ts.map +1 -0
  289. package/dist/schema/schemas/primitives/knowledge-base.js +99 -0
  290. package/dist/schema/schemas/primitives/knowledge-base.js.map +1 -0
  291. package/dist/schema/schemas/primitives/memory.d.ts +22 -4
  292. package/dist/schema/schemas/primitives/memory.d.ts.map +1 -1
  293. package/dist/schema/schemas/primitives/memory.js +57 -16
  294. package/dist/schema/schemas/primitives/memory.js.map +1 -1
  295. package/dist/schema/schemas/primitives/online-eval-config.d.ts +21 -2
  296. package/dist/schema/schemas/primitives/online-eval-config.d.ts.map +1 -1
  297. package/dist/schema/schemas/primitives/online-eval-config.js +45 -5
  298. package/dist/schema/schemas/primitives/online-eval-config.js.map +1 -1
  299. package/dist/schema/schemas/primitives/payment.d.ts +86 -0
  300. package/dist/schema/schemas/primitives/payment.d.ts.map +1 -0
  301. package/dist/schema/schemas/primitives/payment.js +88 -0
  302. package/dist/schema/schemas/primitives/payment.js.map +1 -0
  303. package/dist/schema/schemas/primitives/policy.d.ts +26 -0
  304. package/dist/schema/schemas/primitives/policy.d.ts.map +1 -1
  305. package/dist/schema/schemas/primitives/policy.js +5 -1
  306. package/dist/schema/schemas/primitives/policy.js.map +1 -1
  307. package/npm-shrinkwrap.json +16874 -0
  308. package/package.json +49 -21
  309. package/scripts/bump-version.ts +4 -4
  310. package/scripts/bundle.mjs +70 -41
  311. package/scripts/extract-cli-model.mjs +269 -0
  312. package/scripts/extract-cli-model.test.mjs +43 -0
  313. package/scripts/render_adoc.py +350 -0
  314. package/scripts/run-e2e-dev.sh +56 -0
  315. package/scripts/run-e2e-local.sh +145 -0
  316. package/scripts/safe-junit-reporter.ts +7 -0
  317. package/scripts/sanitize-test-artifacts.ts +65 -0
  318. package/scripts/sync-vended-cdk.ts +49 -0
  319. package/scripts/test_render_adoc.py +38 -0
  320. package/dist/lib/errors/config.d.ts +0 -49
  321. package/dist/lib/errors/config.d.ts.map +0 -1
  322. package/dist/lib/errors/config.js.map +0 -1
  323. package/dist/lib/packaging/errors.d.ts +0 -16
  324. package/dist/lib/packaging/errors.d.ts.map +0 -1
  325. package/dist/lib/packaging/errors.js +0 -36
  326. package/dist/lib/packaging/errors.js.map +0 -1
  327. package/dist/lib/schemas/io/cli-config.d.ts +0 -12
  328. package/dist/lib/schemas/io/cli-config.d.ts.map +0 -1
  329. package/dist/lib/schemas/io/cli-config.js +0 -35
  330. package/dist/lib/schemas/io/cli-config.js.map +0 -1
@@ -1,6 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AgentEnvSpecSchema = exports.RuntimeEndpointSchema = exports.RuntimeEndpointNameSchema = exports.LifecycleConfigurationSchema = exports.LIFECYCLE_TIMEOUT_MAX = exports.LIFECYCLE_TIMEOUT_MIN = exports.FilesystemConfigurationSchema = exports.SessionStorageSchema = exports.RequestHeaderAllowlistSchema = exports.MAX_HEADER_ALLOWLIST_SIZE = exports.HEADER_ALLOWLIST_PREFIX = exports.NetworkConfigSchema = exports.InstrumentationSchema = exports.EnvVarSchema = exports.EntrypointSchema = exports.BuildTypeSchema = exports.AgentTypeSchema = exports.AccessSchema = exports.GatewayNameSchema = exports.EnvVarNameSchema = exports.AgentNameSchema = void 0;
3
+ exports.AgentEnvSpecSchema = exports.RuntimeEndpointSchema = exports.RuntimeEndpointNameSchema = exports.LifecycleConfigurationSchema = exports.LIFECYCLE_TIMEOUT_MAX = exports.LIFECYCLE_TIMEOUT_MIN = exports.FilesystemConfigurationSchema = exports.MAX_S3_MOUNTS = exports.MAX_EFS_MOUNTS = exports.CapacityProviderVolumeConfigSchema = exports.S3FilesAccessPointConfigSchema = exports.EfsAccessPointConfigSchema = exports.S3_FILES_ACCESS_POINT_ARN_PATTERN = exports.EFS_ACCESS_POINT_ARN_PATTERN = exports.SessionStorageSchema = exports.RequestHeaderAllowlistSchema = exports.MAX_HEADER_ALLOWLIST_SIZE = exports.HEADER_NAME_PATTERN = exports.HEADER_ALLOWLIST_PREFIX = exports.NetworkConfigSchema = exports.InstrumentationSchema = exports.EnvVarSchema = exports.RESERVED_BUILD_ARG_KEYS = exports.EntrypointSchema = exports.BuildTypeSchema = exports.AgentTypeSchema = exports.AccessSchema = exports.GatewayNameSchema = exports.EnvVarNameSchema = exports.AgentNameSchema = void 0;
4
+ exports.isValidDockerfilePath = isValidDockerfilePath;
5
+ exports.isReservedBuildArgKey = isReservedBuildArgKey;
6
+ exports.checkAllowlistHeader = checkAllowlistHeader;
4
7
  /**
5
8
  * Agent Schema v2 - Clean, simplified model
6
9
  *
@@ -8,6 +11,8 @@ exports.AgentEnvSpecSchema = exports.RuntimeEndpointSchema = exports.RuntimeEndp
8
11
  */
9
12
  const constants_1 = require("../constants");
10
13
  const auth_1 = require("./auth");
14
+ const connections_1 = require("./connections");
15
+ const capacity_provider_1 = require("./primitives/capacity-provider");
11
16
  const tags_1 = require("./primitives/tags");
12
17
  const zod_1 = require("zod");
13
18
  // ============================================================================
@@ -56,6 +61,78 @@ exports.EntrypointSchema = zod_1.z
56
61
  // eslint-disable-next-line security/detect-unsafe-regex -- character class quantifiers don't cause backtracking
57
62
  /^[a-zA-Z0-9_][a-zA-Z0-9_/.-]*\.(py|ts|js)(:[a-zA-Z_][a-zA-Z0-9_]*)?$/, 'Must be a Python (.py) or TypeScript (.ts/.js) file path with optional handler (e.g., "main.py:handler" or "index.ts")');
58
63
  const DirectoryPathSchema = zod_1.z.string().min(1);
64
+ // Char-safe set only (no backslash, spaces, or shell metacharacters): on deploy the buildspec
65
+ // interpolates this unquoted as `docker build -f $DOCKERFILE_PATH`. A leading '.' is allowed so
66
+ // conventional paths like '.docker/Dockerfile' pass.
67
+ const DOCKERFILE_PATH_ALLOWED_CHARS = /^[A-Za-z0-9._/-]+$/;
68
+ /**
69
+ * True when `p` is a safe relative Dockerfile path within the build context: allowed chars only, no
70
+ * leading slash (absolute), and no empty ('' from a leading/trailing/double slash) or '..' segments.
71
+ *
72
+ * The single source of truth shared by `DockerfilePathSchema` (config-validation time) and the runtime
73
+ * `getDockerfilePath` guard, so the two can never diverge — e.g. one accepting '.docker/Dockerfile'
74
+ * while the other rejects it, or one accepting a trailing-slash directory value like 'docker/'.
75
+ */
76
+ function isValidDockerfilePath(p) {
77
+ if (!DOCKERFILE_PATH_ALLOWED_CHARS.test(p))
78
+ return false;
79
+ if (p.startsWith('/'))
80
+ return false;
81
+ return !p.split('/').some(segment => segment === '' || segment === '..');
82
+ }
83
+ /**
84
+ * Dockerfile location for Container builds, resolved relative to the Docker build context
85
+ * (`buildContextPath` when set, otherwise `codeLocation`). Accepts a filename ('Dockerfile',
86
+ * 'Dockerfile.gpu') or a forward-slash relative subpath ('docker/Dockerfile'). Absolute paths,
87
+ * trailing/double slashes, and '..' traversal are rejected so the Dockerfile can never escape or
88
+ * name the build context directory itself.
89
+ */
90
+ const DockerfilePathSchema = zod_1.z
91
+ .string()
92
+ .min(1)
93
+ .max(255)
94
+ .refine(isValidDockerfilePath, 'Must be a relative path within the build context: a filename or forward-slash subpath using only letters, digits, dot, dash, underscore, and slash; no leading slash, no ".." traversal, and no empty segments (no trailing or double slash)');
95
+ /**
96
+ * Build-arg names reserved by the CodeBuild build environment. On deploy each build arg becomes a
97
+ * CodeBuild environment-variable override alongside the buildspec's own control vars, so a colliding
98
+ * name would break the deploy build — a wrong image tag / ECR region, a rejected StartBuild, or a
99
+ * clobbered build-container shell. We reject the buildspec control vars, the process-critical shell
100
+ * vars, and CodeBuild's own `AWS_*` / `CODEBUILD_*` namespaces. This is a best-effort denylist (the
101
+ * shell has other sensitive vars), but it covers the realistic footguns and keeps a config that
102
+ * builds locally from failing only on deploy.
103
+ */
104
+ exports.RESERVED_BUILD_ARG_KEYS = [
105
+ // Buildspec control vars (mirrored in @aws/agentcore-cdk's ContainerBuildProject / build handler).
106
+ 'ECR_REGISTRY',
107
+ 'IMAGE_URI',
108
+ 'DOCKERFILE_PATH',
109
+ 'BUILD_ARG_FLAGS',
110
+ // Overriding these in the build shell would break the buildspec's own commands (command lookup,
111
+ // word-splitting, dynamic linking) or redirect the docker client off the build daemon. Kept
112
+ // deliberately narrow to the genuinely-dangerous names so common ARGs (e.g. USER, LANG) stay usable.
113
+ 'PATH',
114
+ 'HOME',
115
+ 'IFS',
116
+ 'LD_PRELOAD',
117
+ 'LD_LIBRARY_PATH',
118
+ 'DOCKER_HOST',
119
+ 'DOCKER_CONFIG',
120
+ 'DOCKER_TLS_VERIFY',
121
+ 'DOCKER_CERT_PATH',
122
+ ];
123
+ function isReservedBuildArgKey(key) {
124
+ return exports.RESERVED_BUILD_ARG_KEYS.includes(key) || key.startsWith('CODEBUILD_') || key.startsWith('AWS_');
125
+ }
126
+ /**
127
+ * Build-arg value. Bounded and control-char-free because on deploy each value becomes a CodeBuild
128
+ * `environmentVariablesOverride` PLAINTEXT entry; newlines/control chars or an over-long value can be
129
+ * rejected by StartBuild, so we reject them at schema time rather than let a local-only-valid config
130
+ * fail on deploy.
131
+ */
132
+ const BuildArgValueSchema = zod_1.z
133
+ .string()
134
+ .max(4096, 'Build arg values must be at most 4096 characters')
135
+ .refine(v => ![...v].some(ch => ch.charCodeAt(0) < 0x20 || ch.charCodeAt(0) === 0x7f), 'Build arg values must not contain control characters (including newlines)');
59
136
  exports.EnvVarSchema = zod_1.z.object({
60
137
  name: exports.EnvVarNameSchema,
61
138
  value: zod_1.z.string(),
@@ -76,26 +153,54 @@ exports.InstrumentationSchema = zod_1.z.object({
76
153
  * Required when networkMode is 'VPC'.
77
154
  */
78
155
  exports.NetworkConfigSchema = zod_1.z.object({
79
- subnets: zod_1.z
80
- .array(zod_1.z.string().regex(/^subnet-[0-9a-zA-Z]{8,17}$/))
81
- .min(1)
82
- .max(16),
156
+ subnets: zod_1.z.array(zod_1.z.string().regex(constants_1.SUBNET_ID_PATTERN, 'Must be a subnet id (subnet-...)')).min(1).max(16),
83
157
  securityGroups: zod_1.z
84
- .array(zod_1.z.string().regex(/^sg-[0-9a-zA-Z]{8,17}$/))
158
+ .array(zod_1.z.string().regex(constants_1.SECURITY_GROUP_ID_PATTERN, 'Must be a security group id (sg-...)'))
85
159
  .min(1)
86
160
  .max(16),
161
+ /**
162
+ * VPC ID. Required for Container builds in VPC mode because CodeBuild needs an explicit VPC ID;
163
+ * it cannot infer the VPC from subnets alone. Runtime/Lambda builds can omit this.
164
+ */
165
+ vpcId: zod_1.z.string().regex(constants_1.VPC_ID_PATTERN, 'Must be a VPC id (vpc-...)').optional(),
87
166
  });
88
167
  /**
89
168
  * Allowed request headers for the runtime.
90
- * Each header must be 'Authorization' or start with 'X-Amzn-Bedrock-AgentCore-Runtime-Custom-'.
169
+ * Per https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/runtime-header-allowlist.html
170
+ * any valid HTTP header name (alphanumeric, hyphens, underscores) may be allow-listed,
171
+ * provided it is not structurally reserved (x-amz-*, x-amzn-* except Runtime-Custom-*).
91
172
  * Maximum 20 headers.
92
173
  */
93
174
  exports.HEADER_ALLOWLIST_PREFIX = 'X-Amzn-Bedrock-AgentCore-Runtime-Custom-';
175
+ exports.HEADER_NAME_PATTERN = /^[A-Za-z0-9\-_]+$/;
94
176
  exports.MAX_HEADER_ALLOWLIST_SIZE = 20;
177
+ /**
178
+ * Validate a single allowlist header name. Returns null if valid, or a specific
179
+ * error message describing which rule the input violated.
180
+ *
181
+ * Note: 'x-amz-' and 'x-amzn-' are disjoint prefixes (position 5 differs: '-' vs 'n'),
182
+ * so the two checks below are independent.
183
+ */
184
+ function checkAllowlistHeader(val) {
185
+ if (!exports.HEADER_NAME_PATTERN.test(val)) {
186
+ return `Header name "${val}" must contain only alphanumeric characters, hyphens, and underscores.`;
187
+ }
188
+ const lower = val.toLowerCase();
189
+ if (lower.startsWith('x-amz-')) {
190
+ return `Header "${val}" is not allowed. Headers starting with "x-amz-" are reserved for AWS request signing.`;
191
+ }
192
+ if (lower.startsWith('x-amzn-') && !lower.startsWith('x-amzn-bedrock-agentcore-runtime-custom-')) {
193
+ return `Header "${val}" is not allowed. Headers starting with "x-amzn-" are reserved, except for "X-Amzn-Bedrock-AgentCore-Runtime-Custom-*".`;
194
+ }
195
+ return null;
196
+ }
95
197
  exports.RequestHeaderAllowlistSchema = zod_1.z
96
- .array(zod_1.z
97
- .string()
98
- .refine(val => val === 'Authorization' || val.startsWith(exports.HEADER_ALLOWLIST_PREFIX), `Must be "Authorization" or start with "${exports.HEADER_ALLOWLIST_PREFIX}"`))
198
+ .array(zod_1.z.string().superRefine((val, ctx) => {
199
+ const error = checkAllowlistHeader(val);
200
+ if (error) {
201
+ ctx.addIssue({ code: zod_1.z.ZodIssueCode.custom, message: error });
202
+ }
203
+ }))
99
204
  .max(exports.MAX_HEADER_ALLOWLIST_SIZE, `Maximum ${exports.MAX_HEADER_ALLOWLIST_SIZE} headers allowed`);
100
205
  /**
101
206
  * Session storage configuration for filesystem persistence.
@@ -105,11 +210,68 @@ exports.SessionStorageSchema = zod_1.z.object({
105
210
  /** Absolute mount path under /mnt with exactly one subdirectory level (e.g. /mnt/data). */
106
211
  mountPath: zod_1.z
107
212
  .string()
108
- .regex(/^\/mnt\/[^/]+$/, 'Must be a path under /mnt with exactly one subdirectory (e.g. /mnt/data)'),
213
+ .min(6)
214
+ .max(200)
215
+ .regex(/^\/mnt\/[a-zA-Z0-9._-]+\/?$/, 'Must be a path under /mnt with exactly one subdirectory (e.g. /mnt/data)'),
109
216
  });
110
- exports.FilesystemConfigurationSchema = zod_1.z.object({
111
- sessionStorage: exports.SessionStorageSchema,
217
+ exports.EFS_ACCESS_POINT_ARN_PATTERN = /^arn:aws[-a-z]*:elasticfilesystem:[a-z][a-z0-9-]*:[0-9]{12}:access-point\/fsap-[0-9a-f]{8,40}$/;
218
+ exports.S3_FILES_ACCESS_POINT_ARN_PATTERN = /^arn:aws[-a-z]*:s3files:[a-z][a-z0-9-]*:[0-9]{12}:file-system\/fs-[0-9a-f]{17,40}\/access-point\/fsap-[0-9a-f]{17,40}$/;
219
+ /** EFS access point mount configuration. Requires VPC network mode. */
220
+ exports.EfsAccessPointConfigSchema = zod_1.z.object({
221
+ /** ARN of an EFS access point. */
222
+ accessPointArn: zod_1.z
223
+ .string()
224
+ .regex(exports.EFS_ACCESS_POINT_ARN_PATTERN, 'Must be an EFS access point ARN (arn:aws[-a-z]*:elasticfilesystem:{region}:{account}:access-point/fsap-{id})'),
225
+ /** Absolute mount path under /mnt (e.g. /mnt/tools). */
226
+ mountPath: zod_1.z
227
+ .string()
228
+ .min(6)
229
+ .max(200)
230
+ .regex(/^\/mnt\/[a-zA-Z0-9._-]+\/?$/, 'Must be a path under /mnt with exactly one subdirectory (e.g. /mnt/tools)'),
231
+ });
232
+ /** S3 Files access point mount configuration. Requires VPC network mode. */
233
+ exports.S3FilesAccessPointConfigSchema = zod_1.z.object({
234
+ /** ARN of an S3 Files access point. */
235
+ accessPointArn: zod_1.z
236
+ .string()
237
+ .regex(exports.S3_FILES_ACCESS_POINT_ARN_PATTERN, 'Must be an S3 Files access point ARN (arn:aws[-a-z]*:s3files:{region}:{account}:file-system/fs-{id}/access-point/fsap-{id})'),
238
+ /** Absolute mount path under /mnt (e.g. /mnt/datasets). */
239
+ mountPath: zod_1.z
240
+ .string()
241
+ .min(6)
242
+ .max(200)
243
+ .regex(/^\/mnt\/[a-zA-Z0-9._-]+\/?$/, 'Must be a path under /mnt with exactly one subdirectory (e.g. /mnt/datasets)'),
244
+ });
245
+ /** Capacity provider volume mount — references a named volume on the attached CP. */
246
+ exports.CapacityProviderVolumeConfigSchema = zod_1.z.object({
247
+ /** Logical name of a volume defined on the attached capacity provider (CP's volumes[]). */
248
+ volumeName: capacity_provider_1.CapacityProviderVolumeNameSchema,
249
+ /** Absolute mount path under /mnt (e.g. /mnt/models). */
250
+ mountPath: zod_1.z
251
+ .string()
252
+ .min(6)
253
+ .max(200)
254
+ .regex(/^\/mnt\/[a-zA-Z0-9._-]+\/?$/, 'Must be a path under /mnt with exactly one subdirectory (e.g. /mnt/models)'),
112
255
  });
256
+ /** Maximum number of EFS access point mounts per runtime. */
257
+ exports.MAX_EFS_MOUNTS = 2;
258
+ /** Maximum number of S3 Files access point mounts per runtime. */
259
+ exports.MAX_S3_MOUNTS = 2;
260
+ /**
261
+ * Filesystem configuration — union of four mount types.
262
+ * Exactly one key must be present per entry.
263
+ *
264
+ * Service limits per runtime: max 5 total, max 1 sessionStorage,
265
+ * max MAX_EFS_MOUNTS efsAccessPoint, max MAX_S3_MOUNTS s3FilesAccessPoint.
266
+ * efsAccessPoint and s3FilesAccessPoint require networkMode: VPC.
267
+ * capacityProviderVolume requires the runtime to be attached to a capacity provider.
268
+ */
269
+ exports.FilesystemConfigurationSchema = zod_1.z.union([
270
+ zod_1.z.strictObject({ sessionStorage: exports.SessionStorageSchema }),
271
+ zod_1.z.strictObject({ efsAccessPoint: exports.EfsAccessPointConfigSchema }),
272
+ zod_1.z.strictObject({ s3FilesAccessPoint: exports.S3FilesAccessPointConfigSchema }),
273
+ zod_1.z.strictObject({ capacityProviderVolume: exports.CapacityProviderVolumeConfigSchema }),
274
+ ]);
113
275
  /** Minimum allowed value for lifecycle timeout fields (seconds). */
114
276
  exports.LIFECYCLE_TIMEOUT_MIN = 60;
115
277
  /** Maximum allowed value for lifecycle timeout fields (seconds). */
@@ -165,13 +327,29 @@ exports.AgentEnvSpecSchema = zod_1.z
165
327
  build: exports.BuildTypeSchema,
166
328
  entrypoint: exports.EntrypointSchema,
167
329
  codeLocation: DirectoryPathSchema,
168
- /** Custom Dockerfile name for Container builds. Must be a filename, not a path. Default: 'Dockerfile' */
169
- dockerfile: zod_1.z
170
- .string()
171
- .min(1)
172
- .max(255)
173
- .regex(/^[a-zA-Z0-9][a-zA-Z0-9._-]*$/, 'Must be a filename (no path separators or traversal)')
174
- .optional(),
330
+ /**
331
+ * Dockerfile for Container builds, resolved relative to the build context (`buildContextPath`
332
+ * when set, otherwise `codeLocation`). A filename or a relative subpath; no traversal. Default: 'Dockerfile'.
333
+ */
334
+ dockerfile: DockerfilePathSchema.optional(),
335
+ /**
336
+ * Docker build context directory for Container builds. When set, this directory (instead of
337
+ * `codeLocation`) is used as the `docker build` context and as the root the Dockerfile path is
338
+ * resolved against, so a single Dockerfile can be shared across multiple agents in a monorepo
339
+ * (e.g. so it can COPY files that live outside `codeLocation`). Container builds only.
340
+ *
341
+ * Like `codeLocation`, this is intentionally not containment-checked: the config author may point
342
+ * it at any directory (including a parent via `..` for a monorepo root). The unconditional
343
+ * secret-exclusion baseline on the deploy upload still applies to whatever directory is chosen.
344
+ */
345
+ buildContextPath: DirectoryPathSchema.optional(),
346
+ /**
347
+ * Custom build arguments passed to `docker build` as `--build-arg` flags. Keys must be valid
348
+ * environment-variable names (each arg is forwarded to the build as an env var), reusing
349
+ * `EnvVarNameSchema`. Useful for parameterising a shared Dockerfile per agent
350
+ * (e.g. `{ "AGENT_NAME": "myagent" }`). Container builds only.
351
+ */
352
+ customDockerBuildArgs: zod_1.z.record(exports.EnvVarNameSchema, BuildArgValueSchema).optional(),
175
353
  runtimeVersion: constants_1.RuntimeVersionSchema.optional(),
176
354
  /** Environment variables to set on the runtime */
177
355
  envVars: zod_1.z.array(exports.EnvVarSchema).optional(),
@@ -187,6 +365,13 @@ exports.AgentEnvSpecSchema = zod_1.z
187
365
  requestHeaderAllowlist: exports.RequestHeaderAllowlistSchema.optional(),
188
366
  /** ARN of an existing IAM execution role to use instead of creating a new one. */
189
367
  executionRoleArn: zod_1.z.string().optional(),
368
+ /**
369
+ * Additional IAM policies attached to the runtime execution role. Each entry is either a
370
+ * managed-policy ARN (attached directly) or a `.json` policy-document file path relative to
371
+ * `codeLocation` (attached as an inline policy). For opaque AWS access (e.g. S3) the CLI does
372
+ * not model as a typed connection.
373
+ */
374
+ additionalPolicies: zod_1.z.array(zod_1.z.string().min(1)).optional(),
190
375
  /** Authorizer type for inbound requests. Defaults to AWS_IAM. */
191
376
  authorizerType: auth_1.RuntimeAuthorizerTypeSchema.optional(),
192
377
  /** Authorizer configuration. Required when authorizerType is CUSTOM_JWT. */
@@ -198,6 +383,13 @@ exports.AgentEnvSpecSchema = zod_1.z
198
383
  filesystemConfigurations: zod_1.z.array(exports.FilesystemConfigurationSchema).optional(),
199
384
  /** Named endpoints (version aliases) for this runtime. Keys are endpoint names. */
200
385
  endpoints: zod_1.z.record(exports.RuntimeEndpointNameSchema, exports.RuntimeEndpointSchema).optional(),
386
+ /** Connections to external AgentCore resources (memory/gateway/runtime). The construct
387
+ * generates IAM + discovery env vars onto this runtime's execution role. */
388
+ connections: zod_1.z.array(connections_1.ConnectionSchema).optional(),
389
+ /** Attach the runtime to a capacity provider (customer-managed EC2 compute) — either an
390
+ * in-project sibling by name or an external CP by ARN. Mutually exclusive with VPC networking:
391
+ * in CP mode the network topology comes from the capacity provider. */
392
+ capacityProviderConfiguration: capacity_provider_1.CapacityProviderConfigurationSchema.optional(),
201
393
  })
202
394
  .superRefine((data, ctx) => {
203
395
  if (data.networkMode === 'VPC' && !data.networkConfig) {
@@ -214,6 +406,32 @@ exports.AgentEnvSpecSchema = zod_1.z
214
406
  path: ['networkConfig'],
215
407
  });
216
408
  }
409
+ // Capacity-provider mode supplies its own network topology, so networkMode is not a settable
410
+ // property on a CP-attached runtime — neither VPC nor PUBLIC. The service derives networking
411
+ // from the capacity provider, so any explicit networkMode (or networkConfig) is rejected.
412
+ if (data.capacityProviderConfiguration && (data.networkMode !== undefined || data.networkConfig)) {
413
+ ctx.addIssue({
414
+ code: zod_1.z.ZodIssueCode.custom,
415
+ message: 'capacityProviderConfiguration cannot be combined with a networkMode or VPC networking — a capacity provider supplies its own network topology, so leave networkMode/networkConfig unset',
416
+ path: ['capacityProviderConfiguration'],
417
+ });
418
+ }
419
+ // NOTE: vpcId is NOT required here at the schema (read/write) level. A Container+VPC agent needs
420
+ // a vpcId to build (CodeBuild can't infer it), but enforcing that on read would hard-fail
421
+ // pre-existing agentcore.json files written before vpcId existed. Instead: the CLI input
422
+ // validators require --vpc-id for fresh Container+VPC creates, deploy backfills a missing vpcId
423
+ // from the subnets (ec2:DescribeSubnets) and persists it, and the CDK construct fails fast if it
424
+ // is still missing at synth. This keeps `status`/`remove`/`validate` working on old configs.
425
+ if (data.networkMode === 'VPC' &&
426
+ (0, constants_1.isContainerBuild)(data) &&
427
+ data.networkConfig &&
428
+ data.networkConfig.securityGroups.length > constants_1.MAX_CONTAINER_BUILD_SECURITY_GROUPS) {
429
+ ctx.addIssue({
430
+ code: zod_1.z.ZodIssueCode.custom,
431
+ message: `Container builds in VPC mode allow at most ${constants_1.MAX_CONTAINER_BUILD_SECURITY_GROUPS} security groups (CodeBuild limit)`,
432
+ path: ['networkConfig', 'securityGroups'],
433
+ });
434
+ }
217
435
  if (data.authorizerType === 'CUSTOM_JWT' && !data.authorizerConfiguration?.customJwtAuthorizer) {
218
436
  ctx.addIssue({
219
437
  code: zod_1.z.ZodIssueCode.custom,
@@ -228,13 +446,91 @@ exports.AgentEnvSpecSchema = zod_1.z
228
446
  path: ['authorizerConfiguration'],
229
447
  });
230
448
  }
231
- // If adding more Container-specific fields, consider consolidating into a containerConfig object (see networkConfig pattern)
232
- if (data.build !== 'Container' && data.dockerfile) {
233
- ctx.addIssue({
234
- code: zod_1.z.ZodIssueCode.custom,
235
- message: 'dockerfile is only allowed for Container builds',
236
- path: ['dockerfile'],
237
- });
449
+ // Container-only fields. If adding more, extend this list (and consider consolidating into a
450
+ // containerConfig object — see the networkConfig pattern).
451
+ for (const field of ['dockerfile', 'buildContextPath', 'customDockerBuildArgs']) {
452
+ if (data.build !== 'Container' && data[field]) {
453
+ ctx.addIssue({
454
+ code: zod_1.z.ZodIssueCode.custom,
455
+ message: `${field} is only allowed for Container builds`,
456
+ path: [field],
457
+ });
458
+ }
459
+ }
460
+ for (const key of Object.keys(data.customDockerBuildArgs ?? {})) {
461
+ if (isReservedBuildArgKey(key)) {
462
+ ctx.addIssue({
463
+ code: zod_1.z.ZodIssueCode.custom,
464
+ message: `customDockerBuildArgs key "${key}" is reserved by the build environment (must not be ${exports.RESERVED_BUILD_ARG_KEYS.join(', ')}, or start with CODEBUILD_ or AWS_)`,
465
+ path: ['customDockerBuildArgs', key],
466
+ });
467
+ }
468
+ }
469
+ const fcs = data.filesystemConfigurations ?? [];
470
+ if (fcs.length > 0) {
471
+ const efsCount = fcs.filter(fc => 'efsAccessPoint' in fc).length;
472
+ const s3Count = fcs.filter(fc => 's3FilesAccessPoint' in fc).length;
473
+ const ssCount = fcs.filter(fc => 'sessionStorage' in fc).length;
474
+ const cpVolCount = fcs.filter(fc => 'capacityProviderVolume' in fc).length;
475
+ // A capacity-provider volume can only be mounted when the runtime is attached to a
476
+ // capacity provider — the volume is defined on that CP's volumes[].
477
+ if (cpVolCount > 0 && !data.capacityProviderConfiguration) {
478
+ ctx.addIssue({
479
+ code: zod_1.z.ZodIssueCode.custom,
480
+ message: 'capacityProviderVolume filesystem mounts require the runtime to be attached to a capacity provider (set capacityProviderConfiguration)',
481
+ path: ['filesystemConfigurations'],
482
+ });
483
+ }
484
+ if (fcs.length > 5) {
485
+ ctx.addIssue({
486
+ code: zod_1.z.ZodIssueCode.custom,
487
+ message: 'Maximum 5 filesystem configurations allowed',
488
+ path: ['filesystemConfigurations'],
489
+ });
490
+ }
491
+ if (efsCount > exports.MAX_EFS_MOUNTS) {
492
+ ctx.addIssue({
493
+ code: zod_1.z.ZodIssueCode.custom,
494
+ message: `Maximum ${exports.MAX_EFS_MOUNTS} efsAccessPoint configurations allowed`,
495
+ path: ['filesystemConfigurations'],
496
+ });
497
+ }
498
+ if (s3Count > exports.MAX_S3_MOUNTS) {
499
+ ctx.addIssue({
500
+ code: zod_1.z.ZodIssueCode.custom,
501
+ message: `Maximum ${exports.MAX_S3_MOUNTS} s3FilesAccessPoint configurations allowed`,
502
+ path: ['filesystemConfigurations'],
503
+ });
504
+ }
505
+ if (ssCount > 1) {
506
+ ctx.addIssue({
507
+ code: zod_1.z.ZodIssueCode.custom,
508
+ message: 'Maximum 1 sessionStorage configuration allowed',
509
+ path: ['filesystemConfigurations'],
510
+ });
511
+ }
512
+ const hasByo = efsCount > 0 || s3Count > 0;
513
+ if (hasByo && data.networkMode !== 'VPC') {
514
+ ctx.addIssue({
515
+ code: zod_1.z.ZodIssueCode.custom,
516
+ message: 'efsAccessPoint and s3FilesAccessPoint filesystem mounts require networkMode: VPC',
517
+ path: ['filesystemConfigurations'],
518
+ });
519
+ }
520
+ const mountPaths = fcs.map(fc => ('sessionStorage' in fc
521
+ ? fc.sessionStorage.mountPath
522
+ : 'efsAccessPoint' in fc
523
+ ? fc.efsAccessPoint.mountPath
524
+ : 's3FilesAccessPoint' in fc
525
+ ? fc.s3FilesAccessPoint.mountPath
526
+ : fc.capacityProviderVolume.mountPath).replace(/\/$/, ''));
527
+ if (new Set(mountPaths).size !== mountPaths.length) {
528
+ ctx.addIssue({
529
+ code: zod_1.z.ZodIssueCode.custom,
530
+ message: 'Filesystem mount paths must be unique',
531
+ path: ['filesystemConfigurations'],
532
+ });
533
+ }
238
534
  }
239
535
  });
240
536
  //# sourceMappingURL=agent-env.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"agent-env.js","sourceRoot":"","sources":["../../../src/schema/schemas/agent-env.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-env.js","sourceRoot":"","sources":["../../../src/schema/schemas/agent-env.ts"],"names":[],"mappings":"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"}