@aws/agentcore 1.0.0-preview.2 → 1.0.0-preview.20

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 (256) 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/__tests__/__snapshots__/assets.snapshot.test.ts.snap +3132 -366
  5. package/dist/assets/__tests__/__snapshots__/dockerfile-render.test.ts.snap +6 -2
  6. package/dist/assets/__tests__/assets.snapshot.test.ts +10 -24
  7. package/dist/assets/__tests__/googleadk-session-eviction.test.ts +87 -0
  8. package/dist/assets/__tests__/summarization-namespace.test.ts +43 -0
  9. package/dist/assets/agents/AGENTS.md +87 -11
  10. package/dist/assets/cdk/bin/cdk.ts +87 -26
  11. package/dist/assets/cdk/lib/cdk-stack.ts +185 -55
  12. package/dist/assets/cdk/package.json +1 -1
  13. package/dist/assets/cdk/test/cdk.test.ts +4 -0
  14. package/dist/assets/container/python/Dockerfile +7 -1
  15. package/dist/assets/container/typescript/Dockerfile +25 -0
  16. package/dist/assets/container/typescript/dockerignore.template +24 -0
  17. package/dist/assets/datasets/predefined-v1.jsonl +3 -0
  18. package/dist/assets/datasets/simulated-v1.jsonl +3 -0
  19. package/dist/assets/python/a2a/googleadk/base/main.py +24 -16
  20. package/dist/assets/python/a2a/googleadk/base/pyproject.toml +3 -3
  21. package/dist/assets/python/a2a/langchain_langgraph/base/main.py +24 -16
  22. package/dist/assets/python/a2a/langchain_langgraph/base/pyproject.toml +3 -2
  23. package/dist/assets/python/a2a/strands/base/main.py +23 -17
  24. package/dist/assets/python/a2a/strands/base/pyproject.toml +2 -2
  25. package/dist/assets/python/a2a/strands/capabilities/memory/session.py +10 -2
  26. package/dist/assets/python/agui/googleadk/base/main.py +62 -2
  27. package/dist/assets/python/agui/googleadk/base/pyproject.toml +3 -3
  28. package/dist/assets/python/agui/langchain_langgraph/base/main.py +56 -0
  29. package/dist/assets/python/agui/langchain_langgraph/base/pyproject.toml +2 -1
  30. package/dist/assets/python/agui/strands/base/main.py +63 -1
  31. package/dist/assets/python/agui/strands/base/pyproject.toml +1 -1
  32. package/dist/assets/python/agui/strands/capabilities/memory/session.py +10 -2
  33. package/dist/assets/python/http/autogen/base/main.py +60 -29
  34. package/dist/assets/python/http/autogen/base/pyproject.toml +1 -1
  35. package/dist/assets/python/http/googleadk/base/main.py +69 -24
  36. package/dist/assets/python/http/googleadk/base/mcp_client/client.py +7 -7
  37. package/dist/assets/python/http/googleadk/base/pyproject.toml +2 -1
  38. package/dist/assets/python/http/langchain_langgraph/base/main.py +115 -24
  39. package/dist/assets/python/http/langchain_langgraph/base/mcp_client/client.py +10 -8
  40. package/dist/assets/python/http/langchain_langgraph/base/pyproject.toml +3 -2
  41. package/dist/assets/python/http/openaiagents/base/main.py +61 -32
  42. package/dist/assets/python/http/openaiagents/base/mcp_client/client.py +4 -4
  43. package/dist/assets/python/http/openaiagents/base/pyproject.toml +2 -2
  44. package/dist/assets/python/http/strands/base/main.py +571 -47
  45. package/dist/assets/python/http/strands/base/mcp_client/client.py +49 -6
  46. package/dist/assets/python/http/strands/base/model/load.py +119 -3
  47. package/dist/assets/python/http/strands/base/model/mantle_compat.py +21 -0
  48. package/dist/assets/python/http/strands/base/pyproject.toml +9 -3
  49. package/dist/assets/python/http/strands/base/skills/fetcher.py +279 -0
  50. package/dist/assets/python/http/strands/capabilities/execution-limits/hooks/execution_limits.py +54 -0
  51. package/dist/assets/python/http/strands/capabilities/memory/session.py +10 -2
  52. package/dist/assets/python/http/strands/capabilities/payments/__init__.py +4 -0
  53. package/dist/assets/python/http/strands/capabilities/payments/payments.py +142 -0
  54. package/dist/assets/python/mcp/standalone/base/main.py +58 -0
  55. package/dist/assets/typescript/http/strands/base/README.md +37 -0
  56. package/dist/assets/typescript/http/strands/base/gitignore.template +22 -0
  57. package/dist/assets/typescript/http/strands/base/main.ts +144 -0
  58. package/dist/assets/typescript/http/strands/base/mcp_client/client.ts +11 -0
  59. package/dist/assets/typescript/http/strands/base/model/load.ts +102 -0
  60. package/dist/assets/typescript/http/strands/base/package.json +38 -0
  61. package/dist/assets/typescript/http/strands/base/tsconfig.json +19 -0
  62. package/dist/assets/typescript/http/strands/capabilities/memory/memory.ts +52 -0
  63. package/dist/assets/typescript/http/vercelai/base/README.md +37 -0
  64. package/dist/assets/typescript/http/vercelai/base/gitignore.template +22 -0
  65. package/dist/assets/typescript/http/vercelai/base/main.ts +64 -0
  66. package/dist/assets/typescript/http/vercelai/base/model/load.ts +121 -0
  67. package/dist/assets/typescript/http/vercelai/base/package.json +35 -0
  68. package/dist/assets/typescript/http/vercelai/base/tsconfig.json +19 -0
  69. package/dist/cli/index.mjs +1416 -568
  70. package/dist/lib/errors/index.d.ts +1 -1
  71. package/dist/lib/errors/index.d.ts.map +1 -1
  72. package/dist/lib/errors/index.js +1 -1
  73. package/dist/lib/errors/index.js.map +1 -1
  74. package/dist/lib/errors/types.d.ts +259 -0
  75. package/dist/lib/errors/types.d.ts.map +1 -0
  76. package/dist/lib/errors/types.js +402 -0
  77. package/dist/lib/errors/types.js.map +1 -0
  78. package/dist/lib/errors/zod.d.ts +8 -0
  79. package/dist/lib/errors/zod.d.ts.map +1 -0
  80. package/dist/lib/errors/{config.js → zod.js} +8 -81
  81. package/dist/lib/errors/zod.js.map +1 -0
  82. package/dist/lib/index.d.ts +3 -0
  83. package/dist/lib/index.d.ts.map +1 -1
  84. package/dist/lib/index.js +4 -1
  85. package/dist/lib/index.js.map +1 -1
  86. package/dist/lib/packaging/build-args.js +2 -2
  87. package/dist/lib/packaging/build-args.js.map +1 -1
  88. package/dist/lib/packaging/container.js +5 -5
  89. package/dist/lib/packaging/container.js.map +1 -1
  90. package/dist/lib/packaging/helpers.d.ts +16 -0
  91. package/dist/lib/packaging/helpers.d.ts.map +1 -1
  92. package/dist/lib/packaging/helpers.js +127 -29
  93. package/dist/lib/packaging/helpers.js.map +1 -1
  94. package/dist/lib/packaging/index.d.ts +0 -1
  95. package/dist/lib/packaging/index.d.ts.map +1 -1
  96. package/dist/lib/packaging/index.js +4 -19
  97. package/dist/lib/packaging/index.js.map +1 -1
  98. package/dist/lib/packaging/node.d.ts +2 -2
  99. package/dist/lib/packaging/node.d.ts.map +1 -1
  100. package/dist/lib/packaging/node.js +83 -38
  101. package/dist/lib/packaging/node.js.map +1 -1
  102. package/dist/lib/packaging/python.js +12 -12
  103. package/dist/lib/packaging/python.js.map +1 -1
  104. package/dist/lib/result.d.ts +50 -0
  105. package/dist/lib/result.d.ts.map +1 -0
  106. package/dist/lib/result.js +49 -0
  107. package/dist/lib/result.js.map +1 -0
  108. package/dist/lib/schemas/io/config-io.d.ts +8 -0
  109. package/dist/lib/schemas/io/config-io.d.ts.map +1 -1
  110. package/dist/lib/schemas/io/config-io.js +21 -3
  111. package/dist/lib/schemas/io/config-io.js.map +1 -1
  112. package/dist/lib/schemas/io/global-config.d.ts +40 -0
  113. package/dist/lib/schemas/io/global-config.d.ts.map +1 -0
  114. package/dist/lib/schemas/io/global-config.js +118 -0
  115. package/dist/lib/schemas/io/global-config.js.map +1 -0
  116. package/dist/lib/schemas/io/index.d.ts +1 -2
  117. package/dist/lib/schemas/io/index.d.ts.map +1 -1
  118. package/dist/lib/schemas/io/index.js +1 -4
  119. package/dist/lib/schemas/io/index.js.map +1 -1
  120. package/dist/lib/schemas/io/path-resolver.d.ts +0 -6
  121. package/dist/lib/schemas/io/path-resolver.d.ts.map +1 -1
  122. package/dist/lib/schemas/io/path-resolver.js +3 -13
  123. package/dist/lib/schemas/io/path-resolver.js.map +1 -1
  124. package/dist/lib/secrets/cipher.d.ts +12 -0
  125. package/dist/lib/secrets/cipher.d.ts.map +1 -0
  126. package/dist/lib/secrets/cipher.js +54 -0
  127. package/dist/lib/secrets/cipher.js.map +1 -0
  128. package/dist/lib/secrets/index.d.ts +4 -0
  129. package/dist/lib/secrets/index.d.ts.map +1 -0
  130. package/dist/lib/secrets/index.js +15 -0
  131. package/dist/lib/secrets/index.js.map +1 -0
  132. package/dist/lib/secrets/key-provider.d.ts +16 -0
  133. package/dist/lib/secrets/key-provider.d.ts.map +1 -0
  134. package/dist/lib/secrets/key-provider.js +191 -0
  135. package/dist/lib/secrets/key-provider.js.map +1 -0
  136. package/dist/lib/secrets/sensitive-keys.d.ts +21 -0
  137. package/dist/lib/secrets/sensitive-keys.d.ts.map +1 -0
  138. package/dist/lib/secrets/sensitive-keys.js +67 -0
  139. package/dist/lib/secrets/sensitive-keys.js.map +1 -0
  140. package/dist/lib/time-constants.d.ts +5 -0
  141. package/dist/lib/time-constants.d.ts.map +1 -0
  142. package/dist/lib/time-constants.js +8 -0
  143. package/dist/lib/time-constants.js.map +1 -0
  144. package/dist/lib/utils/env.d.ts +8 -2
  145. package/dist/lib/utils/env.d.ts.map +1 -1
  146. package/dist/lib/utils/env.js +65 -17
  147. package/dist/lib/utils/env.js.map +1 -1
  148. package/dist/lib/utils/index.d.ts +3 -2
  149. package/dist/lib/utils/index.d.ts.map +1 -1
  150. package/dist/lib/utils/index.js +6 -1
  151. package/dist/lib/utils/index.js.map +1 -1
  152. package/dist/lib/utils/polling.d.ts +31 -0
  153. package/dist/lib/utils/polling.d.ts.map +1 -0
  154. package/dist/lib/utils/polling.js +61 -0
  155. package/dist/lib/utils/polling.js.map +1 -0
  156. package/dist/lib/utils/zod.d.ts +16 -0
  157. package/dist/lib/utils/zod.d.ts.map +1 -1
  158. package/dist/lib/utils/zod.js +45 -0
  159. package/dist/lib/utils/zod.js.map +1 -1
  160. package/dist/schema/constants.d.ts +56 -2
  161. package/dist/schema/constants.d.ts.map +1 -1
  162. package/dist/schema/constants.js +82 -7
  163. package/dist/schema/constants.js.map +1 -1
  164. package/dist/schema/schemas/agent-env.d.ts +156 -6
  165. package/dist/schema/schemas/agent-env.d.ts.map +1 -1
  166. package/dist/schema/schemas/agent-env.js +186 -13
  167. package/dist/schema/schemas/agent-env.js.map +1 -1
  168. package/dist/schema/schemas/agentcore-project.d.ts +446 -11
  169. package/dist/schema/schemas/agentcore-project.d.ts.map +1 -1
  170. package/dist/schema/schemas/agentcore-project.js +283 -18
  171. package/dist/schema/schemas/agentcore-project.js.map +1 -1
  172. package/dist/schema/schemas/auth.d.ts +174 -0
  173. package/dist/schema/schemas/auth.d.ts.map +1 -1
  174. package/dist/schema/schemas/auth.js +127 -3
  175. package/dist/schema/schemas/auth.js.map +1 -1
  176. package/dist/schema/schemas/connections.d.ts +185 -0
  177. package/dist/schema/schemas/connections.d.ts.map +1 -0
  178. package/dist/schema/schemas/connections.js +176 -0
  179. package/dist/schema/schemas/connections.js.map +1 -0
  180. package/dist/schema/schemas/deployed-state.d.ts +361 -5
  181. package/dist/schema/schemas/deployed-state.d.ts.map +1 -1
  182. package/dist/schema/schemas/deployed-state.js +105 -2
  183. package/dist/schema/schemas/deployed-state.js.map +1 -1
  184. package/dist/schema/schemas/index.d.ts +1 -0
  185. package/dist/schema/schemas/index.d.ts.map +1 -1
  186. package/dist/schema/schemas/index.js +1 -0
  187. package/dist/schema/schemas/index.js.map +1 -1
  188. package/dist/schema/schemas/mcp-defs.d.ts +2 -1
  189. package/dist/schema/schemas/mcp-defs.d.ts.map +1 -1
  190. package/dist/schema/schemas/mcp-defs.js +3 -2
  191. package/dist/schema/schemas/mcp-defs.js.map +1 -1
  192. package/dist/schema/schemas/mcp.d.ts +197 -0
  193. package/dist/schema/schemas/mcp.d.ts.map +1 -1
  194. package/dist/schema/schemas/mcp.js +342 -6
  195. package/dist/schema/schemas/mcp.js.map +1 -1
  196. package/dist/schema/schemas/primitives/ab-test.d.ts +135 -0
  197. package/dist/schema/schemas/primitives/ab-test.d.ts.map +1 -0
  198. package/dist/schema/schemas/primitives/ab-test.js +95 -0
  199. package/dist/schema/schemas/primitives/ab-test.js.map +1 -0
  200. package/dist/schema/schemas/primitives/config-bundle.d.ts +32 -0
  201. package/dist/schema/schemas/primitives/config-bundle.d.ts.map +1 -0
  202. package/dist/schema/schemas/primitives/config-bundle.js +41 -0
  203. package/dist/schema/schemas/primitives/config-bundle.js.map +1 -0
  204. package/dist/schema/schemas/primitives/dataset.d.ts +48 -0
  205. package/dist/schema/schemas/primitives/dataset.d.ts.map +1 -0
  206. package/dist/schema/schemas/primitives/dataset.js +58 -0
  207. package/dist/schema/schemas/primitives/dataset.js.map +1 -0
  208. package/dist/schema/schemas/primitives/evaluator.d.ts +8 -0
  209. package/dist/schema/schemas/primitives/evaluator.d.ts.map +1 -1
  210. package/dist/schema/schemas/primitives/evaluator.js +17 -1
  211. package/dist/schema/schemas/primitives/evaluator.js.map +1 -1
  212. package/dist/schema/schemas/primitives/harness.d.ts +377 -19
  213. package/dist/schema/schemas/primitives/harness.d.ts.map +1 -1
  214. package/dist/schema/schemas/primitives/harness.js +379 -24
  215. package/dist/schema/schemas/primitives/harness.js.map +1 -1
  216. package/dist/schema/schemas/primitives/index.d.ts +13 -7
  217. package/dist/schema/schemas/primitives/index.d.ts.map +1 -1
  218. package/dist/schema/schemas/primitives/index.js +37 -1
  219. package/dist/schema/schemas/primitives/index.js.map +1 -1
  220. package/dist/schema/schemas/primitives/knowledge-base.d.ts +104 -0
  221. package/dist/schema/schemas/primitives/knowledge-base.d.ts.map +1 -0
  222. package/dist/schema/schemas/primitives/knowledge-base.js +99 -0
  223. package/dist/schema/schemas/primitives/knowledge-base.js.map +1 -0
  224. package/dist/schema/schemas/primitives/memory.d.ts +22 -4
  225. package/dist/schema/schemas/primitives/memory.d.ts.map +1 -1
  226. package/dist/schema/schemas/primitives/memory.js +57 -16
  227. package/dist/schema/schemas/primitives/memory.js.map +1 -1
  228. package/dist/schema/schemas/primitives/online-eval-config.d.ts +21 -2
  229. package/dist/schema/schemas/primitives/online-eval-config.d.ts.map +1 -1
  230. package/dist/schema/schemas/primitives/online-eval-config.js +45 -5
  231. package/dist/schema/schemas/primitives/online-eval-config.js.map +1 -1
  232. package/dist/schema/schemas/primitives/payment.d.ts +54 -0
  233. package/dist/schema/schemas/primitives/payment.d.ts.map +1 -0
  234. package/dist/schema/schemas/primitives/payment.js +79 -0
  235. package/dist/schema/schemas/primitives/payment.js.map +1 -0
  236. package/dist/schema/schemas/primitives/policy.d.ts +26 -0
  237. package/dist/schema/schemas/primitives/policy.d.ts.map +1 -1
  238. package/dist/schema/schemas/primitives/policy.js +5 -1
  239. package/dist/schema/schemas/primitives/policy.js.map +1 -1
  240. package/npm-shrinkwrap.json +17013 -0
  241. package/package.json +43 -21
  242. package/scripts/bump-version.ts +4 -4
  243. package/scripts/bundle.mjs +70 -41
  244. package/scripts/run-e2e-dev.sh +56 -0
  245. package/scripts/run-e2e-local.sh +145 -0
  246. package/dist/lib/errors/config.d.ts +0 -49
  247. package/dist/lib/errors/config.d.ts.map +0 -1
  248. package/dist/lib/errors/config.js.map +0 -1
  249. package/dist/lib/packaging/errors.d.ts +0 -16
  250. package/dist/lib/packaging/errors.d.ts.map +0 -1
  251. package/dist/lib/packaging/errors.js +0 -36
  252. package/dist/lib/packaging/errors.js.map +0 -1
  253. package/dist/lib/schemas/io/cli-config.d.ts +0 -12
  254. package/dist/lib/schemas/io/cli-config.d.ts.map +0 -1
  255. package/dist/lib/schemas/io/cli-config.js +0 -35
  256. package/dist/lib/schemas/io/cli-config.js.map +0 -1
@@ -0,0 +1,176 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CONNECTION_ID_MAX_LENGTH = exports.ConnectionsSchema = exports.ConnectionSchema = exports.ConnectionTargetSchema = exports.CODE_INTERPRETER_ARN_PATTERN = exports.BROWSER_ARN_PATTERN = exports.GatewayOutboundAuthSchema = exports.GatewayGrantTypeSchema = void 0;
4
+ exports.resourceIdFromArn = resourceIdFromArn;
5
+ exports.connectionIdForTarget = connectionIdForTarget;
6
+ exports.connectionEnvToken = connectionEnvToken;
7
+ exports.connectionTokenFor = connectionTokenFor;
8
+ const zod_1 = require("zod");
9
+ // ============================================================================
10
+ // Resource Connections
11
+ //
12
+ // A connection declares that a principal (an agent runtime or a harness) accesses
13
+ // an EXTERNAL AgentCore resource (a memory/gateway/runtime that is NOT part of this
14
+ // project). The construct generates the correct least-privilege IAM onto the
15
+ // principal's execution role AND injects the discovery env vars from each connection.
16
+ //
17
+ // Connections are embedded on the source resource (AgentEnvSpec.connections /
18
+ // HarnessSpec.connections); the enclosing resource IS the source, so there is no
19
+ // `from` field. In-project access remains implicit (all-to-all wiring) and is
20
+ // untouched — connections only ADD grants for external targets.
21
+ //
22
+ // FUTURE (additive, not in this milestone): targets gain an optional `name` to
23
+ // reference an in-project resource (managed reference + access gating); new target
24
+ // kinds (s3, secret) are added as union members.
25
+ // ============================================================================
26
+ /**
27
+ * OAuth grant type for an external gateway, matching the runtime/Smithy model.
28
+ * The harness runtime maps these to AgentCore Identity auth flows:
29
+ * CLIENT_CREDENTIALS -> M2M, AUTHORIZATION_CODE -> USER_FEDERATION, TOKEN_EXCHANGE -> TOKEN_EXCHANGE.
30
+ */
31
+ exports.GatewayGrantTypeSchema = zod_1.z.enum(['CLIENT_CREDENTIALS', 'AUTHORIZATION_CODE', 'TOKEN_EXCHANGE']);
32
+ /**
33
+ * Outbound auth a caller uses to reach an external gateway. This is the union the
34
+ * gateway/harness runtime actually consumes — NOT the gateway's inbound authorizerType
35
+ * (which lives on the gateway resource and is invisible to an external caller).
36
+ * - awsIam: SigV4-sign with the execution role (grants InvokeGateway)
37
+ * - none: no auth
38
+ * - oauth: fetch an OAuth token via AgentCore Identity (grants token-fetch perms on
39
+ * the provider). All four oauth fields are consumed at runtime.
40
+ */
41
+ exports.GatewayOutboundAuthSchema = zod_1.z.union([
42
+ zod_1.z.object({ awsIam: zod_1.z.object({}).strict() }).strict(),
43
+ zod_1.z.object({ none: zod_1.z.object({}).strict() }).strict(),
44
+ zod_1.z
45
+ .object({
46
+ oauth: zod_1.z
47
+ .object({
48
+ providerArn: zod_1.z.string().min(1),
49
+ scopes: zod_1.z.array(zod_1.z.string().min(1)),
50
+ grantType: exports.GatewayGrantTypeSchema.optional(),
51
+ customParameters: zod_1.z.record(zod_1.z.string(), zod_1.z.string()).optional(),
52
+ })
53
+ .strict(),
54
+ })
55
+ .strict(),
56
+ ]);
57
+ // ---- Connection targets (external AgentCore resources, ARN-addressed) ----
58
+ // Partition-agnostic ARN prefix (arn:[^:]+:) per multi-partition rules.
59
+ const MEMORY_ARN_PATTERN = /^arn:[^:]+:bedrock-agentcore:[a-z0-9-]+:\d{12}:memory\/.+$/;
60
+ const GATEWAY_ARN_PATTERN = /^arn:[^:]+:bedrock-agentcore:[a-z0-9-]+:\d{12}:gateway\/.+$/;
61
+ const RUNTIME_ARN_PATTERN = /^arn:[^:]+:bedrock-agentcore:[a-z0-9-]+:\d{12}:runtime\/.+$/;
62
+ // Browser / code-interpreter ARNs come in two legitimate resource-segment forms:
63
+ // - customer-owned (CreateBrowser/CreateCodeInterpreter): `<kind>-custom/<id>` with a 12-digit account
64
+ // - AWS-managed default (SYSTEM): `<kind>/<id>` with the `aws` account
65
+ exports.BROWSER_ARN_PATTERN = /^arn:[^:]+:bedrock-agentcore:[a-z0-9-]+:(\d{12}|aws):browser(-custom)?\/.+$/;
66
+ exports.CODE_INTERPRETER_ARN_PATTERN = /^arn:[^:]+:bedrock-agentcore:[a-z0-9-]+:(\d{12}|aws):code-interpreter(-custom)?\/.+$/;
67
+ const MemoryTargetSchema = zod_1.z
68
+ .object({
69
+ type: zod_1.z.literal('memory'),
70
+ arn: zod_1.z.string().regex(MEMORY_ARN_PATTERN, 'Must be a valid bedrock-agentcore memory ARN'),
71
+ /** Optional namespace templates to scope List/RetrieveMemoryRecords via the
72
+ * bedrock-agentcore:namespace / namespacePath condition keys. */
73
+ namespaces: zod_1.z.array(zod_1.z.string().min(1)).optional(),
74
+ })
75
+ .strict();
76
+ const GatewayTargetSchema = zod_1.z
77
+ .object({
78
+ type: zod_1.z.literal('gateway'),
79
+ arn: zod_1.z.string().regex(GATEWAY_ARN_PATTERN, 'Must be a valid bedrock-agentcore gateway ARN'),
80
+ /** How the caller authenticates outbound to the gateway. Defaults to awsIam (SigV4). */
81
+ outboundAuth: exports.GatewayOutboundAuthSchema.optional(),
82
+ })
83
+ .strict();
84
+ const RuntimeTargetSchema = zod_1.z
85
+ .object({
86
+ type: zod_1.z.literal('runtime'),
87
+ arn: zod_1.z.string().regex(RUNTIME_ARN_PATTERN, 'Must be a valid bedrock-agentcore runtime ARN'),
88
+ /** Also grant InvokeAgentRuntimeCommand (container exec) in addition to invoke. */
89
+ exec: zod_1.z.boolean().optional(),
90
+ })
91
+ .strict();
92
+ const BrowserTargetSchema = zod_1.z
93
+ .object({
94
+ type: zod_1.z.literal('browser'),
95
+ /** Customer-owned browser ARN. Omit to use the AWS-managed default browser. */
96
+ arn: zod_1.z.string().regex(exports.BROWSER_ARN_PATTERN, 'Must be a valid bedrock-agentcore browser ARN').optional(),
97
+ })
98
+ .strict();
99
+ const CodeInterpreterTargetSchema = zod_1.z
100
+ .object({
101
+ type: zod_1.z.literal('codeInterpreter'),
102
+ /** Customer-owned code-interpreter ARN. Omit to use the AWS-managed default. */
103
+ arn: zod_1.z
104
+ .string()
105
+ .regex(exports.CODE_INTERPRETER_ARN_PATTERN, 'Must be a valid bedrock-agentcore code-interpreter ARN')
106
+ .optional(),
107
+ })
108
+ .strict();
109
+ exports.ConnectionTargetSchema = zod_1.z.discriminatedUnion('type', [
110
+ MemoryTargetSchema,
111
+ GatewayTargetSchema,
112
+ RuntimeTargetSchema,
113
+ BrowserTargetSchema,
114
+ CodeInterpreterTargetSchema,
115
+ ]);
116
+ /**
117
+ * A single connection from the enclosing principal to an external resource.
118
+ * `access` is meaningful only for memory (read | readwrite); ignored for invoke-only
119
+ * targets. Defaults to `read` (least-privilege).
120
+ */
121
+ exports.ConnectionSchema = zod_1.z
122
+ .object({
123
+ id: zod_1.z
124
+ .string()
125
+ .regex(/^[a-zA-Z][a-zA-Z0-9_-]{0,63}$/, 'Connection id must match [a-zA-Z][a-zA-Z0-9_-]{0,63}')
126
+ .optional(),
127
+ to: exports.ConnectionTargetSchema,
128
+ access: zod_1.z.enum(['read', 'readwrite']).optional(),
129
+ description: zod_1.z.string().max(200).optional(),
130
+ })
131
+ .strict();
132
+ exports.ConnectionsSchema = zod_1.z.array(exports.ConnectionSchema);
133
+ // ============================================================================
134
+ // Connection discovery env-var naming — SINGLE SOURCE OF TRUTH.
135
+ //
136
+ // The discovery env var (e.g. MEMORY_<TOKEN>_ID, GATEWAY_<TOKEN>_URL) is the handshake between the
137
+ // CLI export (which bakes the NAME into the generated agent code) and the CDK deploy (which injects
138
+ // the VALUE onto the runtime). Both sides MUST compute the identical <TOKEN>, so the token derivation
139
+ // lives here — the one file already kept in lockstep across the CLI and @aws/agentcore-cdk repos.
140
+ // `connectionEnvToken` is used by `harness-mapper` (CLI) and `connectionTokenFor` by
141
+ // `wire-connections` (CDK); do not re-implement the token derivation. Each side then assembles the
142
+ // final `<PREFIX>_<TOKEN>_<SUFFIX>` name inline (the prefixes/suffixes differ per resource kind).
143
+ // ============================================================================
144
+ /** Maximum length of a connection id (matches the ConnectionSchema id regex bound). */
145
+ exports.CONNECTION_ID_MAX_LENGTH = 64;
146
+ /** Last segment of an ARN (the resource id): `memory/mem-123` -> `mem-123`. */
147
+ function resourceIdFromArn(arn) {
148
+ const afterColon = arn.split(':').pop() ?? arn;
149
+ const slash = afterColon.lastIndexOf('/');
150
+ return slash >= 0 ? afterColon.slice(slash + 1) : afterColon;
151
+ }
152
+ /**
153
+ * Stable connection id for an external target: `<kind>-<resourceId>`, sanitized to the schema id
154
+ * charset and length. Used as the connection's `id` AND as the basis for its discovery env-var
155
+ * token, so the name baked into generated code matches what deploy injects.
156
+ */
157
+ function connectionIdForTarget(target) {
158
+ const suffix = 'arn' in target && target.arn ? resourceIdFromArn(target.arn) : target.type;
159
+ const id = `${target.type}-${suffix}`;
160
+ // Conform to ConnectionSchema id regex: start with a letter, then [a-zA-Z0-9_-], max length.
161
+ return id.replace(/[^a-zA-Z0-9_-]/g, '-').slice(0, exports.CONNECTION_ID_MAX_LENGTH);
162
+ }
163
+ /** Uppercase, underscore-safe token for env-var naming, derived from a connection id. */
164
+ function connectionEnvToken(id) {
165
+ return id.toUpperCase().replace(/[^A-Z0-9]/g, '_');
166
+ }
167
+ /**
168
+ * Resolve the env-var token for a connection. Prefers the explicit `id`; otherwise derives the same
169
+ * `<kind>-<resourceId>` id the CLI would have assigned — so an id-less connection (schema permits it,
170
+ * e.g. a hand-authored config or a direct @aws/agentcore-cdk consumer) yields the SAME token on both
171
+ * sides instead of diverging.
172
+ */
173
+ function connectionTokenFor(connection) {
174
+ return connectionEnvToken(connection.id ?? connectionIdForTarget(connection.to));
175
+ }
176
+ //# sourceMappingURL=connections.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connections.js","sourceRoot":"","sources":["../../../src/schema/schemas/connections.ts"],"names":[],"mappings":"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"}