@aws/nx-plugin 1.0.0-rc.21 → 1.0.0-rc.23

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 (59) hide show
  1. package/package.json +1 -1
  2. package/src/license/generator.js +22 -8
  3. package/src/license/generator.js.map +1 -1
  4. package/src/license/known-exceptions.d.ts +1 -0
  5. package/src/license/known-exceptions.js +13 -1
  6. package/src/license/known-exceptions.js.map +1 -1
  7. package/src/py/agent/__snapshots__/generator.spec.ts.snap +167 -3
  8. package/src/py/agent/a2a-connection/files/langchain/agent-connection/app/__targetAgentSnakeCase___client_langchain.py.template +28 -0
  9. package/src/py/agent/a2a-connection/generator.js +59 -31
  10. package/src/py/agent/a2a-connection/generator.js.map +1 -1
  11. package/src/py/agent/files/a2a-langchain/main.py.template +89 -0
  12. package/src/py/agent/files/ag-ui-langchain/main.py.template +83 -0
  13. package/src/py/agent/files/common-langchain/agent.py.template +30 -0
  14. package/src/py/agent/files/http-langchain/main.py.template +84 -0
  15. package/src/py/agent/gateway-connection/files/langchain/agent-connection/app/__gatewaySnakeCase___client_langchain.py.template +34 -0
  16. package/src/py/agent/gateway-connection/generator.js +15 -9
  17. package/src/py/agent/gateway-connection/generator.js.map +1 -1
  18. package/src/py/agent/generator.js +69 -14
  19. package/src/py/agent/generator.js.map +1 -1
  20. package/src/py/agent/mcp-connection/files/langchain/agent-connection/app/__mcpServerSnakeCase___client_langchain.py.template +30 -0
  21. package/src/py/agent/mcp-connection/generator.js +15 -11
  22. package/src/py/agent/mcp-connection/generator.js.map +1 -1
  23. package/src/py/agent/react-connection/serve-local.js +9 -1
  24. package/src/py/agent/react-connection/serve-local.js.map +1 -1
  25. package/src/py/agent/schema.d.ts +1 -1
  26. package/src/py/agent/schema.json +1 -1
  27. package/src/py/dynamodb/agent-connection/generator.js +1 -1
  28. package/src/py/dynamodb/agent-connection/generator.js.map +1 -1
  29. package/src/py/dynamodb/fast-api-connection/generator.js +1 -1
  30. package/src/py/dynamodb/fast-api-connection/generator.js.map +1 -1
  31. package/src/py/dynamodb/mcp-server-connection/generator.js +1 -1
  32. package/src/py/dynamodb/mcp-server-connection/generator.js.map +1 -1
  33. package/src/py/mcp-server/__snapshots__/generator.spec.ts.snap +1 -1
  34. package/src/py/project/generator.d.ts +14 -1
  35. package/src/py/project/generator.js +12 -2
  36. package/src/py/project/generator.js.map +1 -1
  37. package/src/ts/agent/__snapshots__/generator.spec.ts.snap +1 -1
  38. package/src/ts/mcp-server/__snapshots__/generator.spec.ts.snap +1 -1
  39. package/src/ts/rdb/__snapshots__/generator.spec.ts.snap +4 -0
  40. package/src/ts/rdb/files/src/utils.ts.template +2 -0
  41. package/src/ts/react-website/app/__snapshots__/generator.spec.ts.snap +25 -72
  42. package/src/ts/react-website/cognito-auth/__snapshots__/generator.terraform.spec.ts.snap +17 -4
  43. package/src/utils/agent-connection/agent-connection.d.ts +58 -9
  44. package/src/utils/agent-connection/agent-connection.js +146 -13
  45. package/src/utils/agent-connection/agent-connection.js.map +1 -1
  46. package/src/utils/agent-connection/files/py-core-langchain/a2a/agentcore_a2a_client_langchain.py.template +99 -0
  47. package/src/utils/agent-connection/files/py-core-langchain/gateway/agentcore_gateway_mcp_client_langchain.py.template +57 -0
  48. package/src/utils/agent-connection/files/py-core-langchain/mcp/agentcore_mcp_client_langchain.py.template +64 -0
  49. package/src/utils/agent-core-constructs/files/terraform/core/agent-core/runtime.tf.template +1 -1
  50. package/src/utils/identity-constructs/files/terraform/core/user-identity/add-callback-url/add-callback-url.tf.template +17 -4
  51. package/src/utils/names.d.ts +16 -0
  52. package/src/utils/names.js +18 -1
  53. package/src/utils/names.js.map +1 -1
  54. package/src/utils/py.d.ts +14 -1
  55. package/src/utils/py.js +34 -7
  56. package/src/utils/py.js.map +1 -1
  57. package/src/utils/versions.d.ts +6 -0
  58. package/src/utils/versions.js +6 -0
  59. package/src/utils/versions.js.map +1 -1
@@ -3,6 +3,7 @@
3
3
  * SPDX-License-Identifier: Apache-2.0
4
4
  */
5
5
  import { type Tree } from '@nx/devkit';
6
+ import type { IPyDepVersion } from '../versions';
6
7
  export declare const AGENT_CONNECTION_PROJECT_DIR: string;
7
8
  /**
8
9
  * Get the directory of the shared Python agent-connection project.
@@ -13,9 +14,15 @@ export declare function getPythonAgentConnectionProjectDir(tree: Tree): string;
13
14
  */
14
15
  export declare function getPythonAgentConnectionModuleName(tree: Tree): string;
15
16
  /**
16
- * Get the fully qualified Python package name of the shared agent-connection project.
17
+ * Get the shared agent-connection project as `{ name, root }`, suitable for
18
+ * passing to {@link addWorkspaceDependencyToPyProject} (which derives the
19
+ * dependency's PEP 503 distribution name from the project itself, so callers
20
+ * never construct the name).
17
21
  */
18
- export declare function getPythonAgentConnectionPackageName(tree: Tree): string;
22
+ export declare function getPythonAgentConnectionProject(tree: Tree): {
23
+ name: string;
24
+ root: string;
25
+ };
19
26
  /**
20
27
  * The connection protocols an agent framework can connect over. Each maps to a
21
28
  * framework-agnostic Layer-0/1 template directory plus a per-framework Layer-2
@@ -29,7 +36,13 @@ export type ConnectionProtocol = 'mcp' | 'gateway' | 'a2a';
29
36
  * Layer-0/1 (`core-auth`, `core-shared`, the per-protocol transports/configs)
30
37
  * is reused unchanged.
31
38
  */
32
- export type AgentFramework = 'strands';
39
+ export type AgentFramework = 'strands' | 'langchain';
40
+ /**
41
+ * Resolve an agent component's framework, defaulting to `strands`. Connection
42
+ * generators dispatch on the returned framework to pick the matching templates
43
+ * and agent.py/agent.ts transforms.
44
+ */
45
+ export declare function resolveAgentFramework(framework: string | undefined): AgentFramework;
33
46
  /**
34
47
  * Ensure the shared TypeScript agent-connection project exists and has the
35
48
  * framework-agnostic core helpers (runtime-config loader, session context).
@@ -90,13 +103,49 @@ export declare function addPythonCoreClient(tree: Tree, protocol: ConnectionProt
90
103
  */
91
104
  export declare function addTypeScriptClientToAgent(tree: Tree, agentFilePath: string, clientClassName: string, clientVarName: string): Promise<void>;
92
105
  /**
93
- * Patch a Python agent.py to create a context-managed connection client,
94
- * enter it in the `with` block around `yield Agent(...)`, and spread its
95
- * `list_tools_sync()` into the Agent's tools. Used by the MCP and gateway
96
- * connection generators the client class must expose a static `create()`
97
- * returning a context manager with `list_tools_sync()` (e.g. an `MCPClient`).
106
+ * Per-framework naming + template layout for a Python per-connection client.
107
+ * Every py#agent connection generator (mcp, gateway, a2a) names its client
108
+ * class `<Name>Client<suffix>`, its module `<name>_client_<suffix>`, and reads
109
+ * the per-connection app-client template from a per-framework sub-path of its
110
+ * own `files/` dir all of which vary only by framework, so they live here as
111
+ * one source of truth.
112
+ *
113
+ * Keyed by {@link AgentFramework} rather than a boolean so a third framework is
114
+ * an additive entry here — never another `if (isLangchain)` branch in each
115
+ * generator.
116
+ */
117
+ export interface PyClientNaming {
118
+ /** Class-name suffix on the per-connection app client (`<Name>Client<suffix>`). */
119
+ clientClassSuffix: string;
120
+ /** Module/file-name suffix on the per-connection app client (`<name>_client_<suffix>`). */
121
+ clientModuleSuffix: string;
122
+ /**
123
+ * Sub-path, under a connection generator's `files/` dir, of the per-connection
124
+ * app client template for this framework. Every connection generator lays its
125
+ * templates out the same way, so this resolves against any of them.
126
+ */
127
+ appTemplateSubdir: string;
128
+ }
129
+ export declare const PY_CLIENT_NAMING: Record<AgentFramework, PyClientNaming>;
130
+ /**
131
+ * How an MCP-family connection (an MCP server or an AgentCore Gateway, both of
132
+ * which expose tools over MCP) is wired into a Python agent of a given
133
+ * framework. The mcp-connection and gateway-connection generators share this:
134
+ * they differ only in the metadata of the thing being connected, not in how
135
+ * the framework's client is shaped or spliced into agent.py. A2A connections
136
+ * wire tools differently, so they reuse only {@link PY_CLIENT_NAMING}.
98
137
  */
99
- export declare function addPythonClientToAgent(tree: Tree, agentFilePath: string, clientClassName: string, clientVarName: string): Promise<void>;
138
+ export interface PyMcpFamilyConnection extends PyClientNaming {
139
+ /** Extra Python deps this framework's MCP-family client needs (beyond the shared transport). */
140
+ deps: IPyDepVersion[];
141
+ /**
142
+ * Splice the per-connection client into the agent's `get_agent` in agent.py.
143
+ * Strands enters a context-managed `MCPClient` and spreads `list_tools_sync()`;
144
+ * LangChain loads `BaseTool`s and spreads them into `create_agent(...)`.
145
+ */
146
+ wireClientIntoAgent: (tree: Tree, agentFilePath: string, clientClassName: string, clientVarName: string) => Promise<void>;
147
+ }
148
+ export declare const PY_MCP_FAMILY_CONNECTIONS: Record<AgentFramework, PyMcpFamilyConnection>;
100
149
  /**
101
150
  * Add a re-export to the Python agent-connection module's __init__.py.
102
151
  * Equivalent to addStarExport for TS.
@@ -1,9 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AGENT_CONNECTION_PROJECT_DIR = void 0;
3
+ exports.PY_MCP_FAMILY_CONNECTIONS = exports.PY_CLIENT_NAMING = exports.AGENT_CONNECTION_PROJECT_DIR = void 0;
4
4
  exports.getPythonAgentConnectionProjectDir = getPythonAgentConnectionProjectDir;
5
5
  exports.getPythonAgentConnectionModuleName = getPythonAgentConnectionModuleName;
6
- exports.getPythonAgentConnectionPackageName = getPythonAgentConnectionPackageName;
6
+ exports.getPythonAgentConnectionProject = getPythonAgentConnectionProject;
7
+ exports.resolveAgentFramework = resolveAgentFramework;
7
8
  exports.ensureTypeScriptAgentConnectionProject = ensureTypeScriptAgentConnectionProject;
8
9
  exports.addTypeScriptFrameworkBase = addTypeScriptFrameworkBase;
9
10
  exports.addTypeScriptCoreClient = addTypeScriptCoreClient;
@@ -11,7 +12,6 @@ exports.ensurePythonAgentConnectionProject = ensurePythonAgentConnectionProject;
11
12
  exports.addPythonFrameworkBase = addPythonFrameworkBase;
12
13
  exports.addPythonCoreClient = addPythonCoreClient;
13
14
  exports.addTypeScriptClientToAgent = addTypeScriptClientToAgent;
14
- exports.addPythonClientToAgent = addPythonClientToAgent;
15
15
  exports.addPythonReExport = addPythonReExport;
16
16
  const tslib_1 = require("tslib");
17
17
  /**
@@ -51,14 +51,25 @@ function getPythonAgentConnectionModuleName(tree) {
51
51
  return normalizedModuleName;
52
52
  }
53
53
  /**
54
- * Get the fully qualified Python package name of the shared agent-connection project.
54
+ * Get the shared agent-connection project as `{ name, root }`, suitable for
55
+ * passing to {@link addWorkspaceDependencyToPyProject} (which derives the
56
+ * dependency's PEP 503 distribution name from the project itself, so callers
57
+ * never construct the name).
55
58
  */
56
- function getPythonAgentConnectionPackageName(tree) {
57
- const { fullyQualifiedName } = (0, generator_1.getPyProjectDetails)(tree, {
59
+ function getPythonAgentConnectionProject(tree) {
60
+ const { fullyQualifiedName, dir } = (0, generator_1.getPyProjectDetails)(tree, {
58
61
  name: PY_AGENT_CONNECTION_NAME,
59
62
  directory: (0, devkit_1.joinPathFragments)(PACKAGES_DIR, COMMON_DIR),
60
63
  });
61
- return fullyQualifiedName;
64
+ return { name: fullyQualifiedName, root: dir };
65
+ }
66
+ /**
67
+ * Resolve an agent component's framework, defaulting to `strands`. Connection
68
+ * generators dispatch on the returned framework to pick the matching templates
69
+ * and agent.py/agent.ts transforms.
70
+ */
71
+ function resolveAgentFramework(framework) {
72
+ return framework === 'langchain' ? 'langchain' : 'strands';
62
73
  }
63
74
  /**
64
75
  * Framework-agnostic Layer-1 templates, keyed by protocol. These resolve the
@@ -79,6 +90,16 @@ const FRAMEWORKS = {
79
90
  strands: {
80
91
  ts: {
81
92
  base: 'core-strands/base',
93
+ baseReExports: [
94
+ {
95
+ fromModule: './core/with-session-id-strands.js',
96
+ importName: '*',
97
+ },
98
+ {
99
+ fromModule: './core/model-errors-strands.js',
100
+ importName: '*',
101
+ },
102
+ ],
82
103
  protocols: {
83
104
  mcp: 'core-strands/mcp',
84
105
  gateway: 'core-strands/gateway',
@@ -88,6 +109,16 @@ const FRAMEWORKS = {
88
109
  },
89
110
  py: {
90
111
  base: 'py-core-strands/base',
112
+ baseReExports: [
113
+ {
114
+ fromModule: '.core.with_session_id_strands',
115
+ importName: 'with_session_id',
116
+ },
117
+ {
118
+ fromModule: '.core.model_errors_strands',
119
+ importName: 'log_model_errors',
120
+ },
121
+ ],
91
122
  protocols: {
92
123
  mcp: 'py-core-strands/mcp',
93
124
  gateway: 'py-core-strands/gateway',
@@ -96,6 +127,26 @@ const FRAMEWORKS = {
96
127
  deps: ['strands-agents'],
97
128
  },
98
129
  },
130
+ langchain: {
131
+ // LangChain is supported for Python agents only (the TypeScript LangChain
132
+ // agent foundation has no in-process AG-UI <-> LangGraph adapter, so it is
133
+ // not scaffolded — see ts#agent). Its Layer-2 clients stay usable after
134
+ // agent construction, so there is no base helper layer (no model-error
135
+ // logger / per-session agent cache) and no strands-agents dependency — its
136
+ // AG-UI foundation reuses only the framework-agnostic session context, and
137
+ // its A2A client drives the a2a SDK directly rather than wrapping Strands'
138
+ // A2AAgent. The per-connection adapter dependency (langchain-mcp-adapters /
139
+ // a2a-sdk) is added by the connection generators.
140
+ py: {
141
+ baseReExports: [],
142
+ protocols: {
143
+ mcp: 'py-core-langchain/mcp',
144
+ gateway: 'py-core-langchain/gateway',
145
+ a2a: 'py-core-langchain/a2a',
146
+ },
147
+ deps: [],
148
+ },
149
+ },
99
150
  };
100
151
  /** Resolve a framework's templates for a language + protocol, or throw. */
101
152
  function frameworkLanguage(framework, language, protocol) {
@@ -145,10 +196,13 @@ async function addTypeScriptFrameworkBase(tree, framework = 'strands') {
145
196
  if (!lang) {
146
197
  throw new Error(`The '${framework}' framework does not support TypeScript agents.`);
147
198
  }
148
- emitTs(tree, lang.base);
199
+ if (lang.base) {
200
+ emitTs(tree, lang.base);
201
+ }
149
202
  const indexPath = (0, devkit_1.joinPathFragments)(exports.AGENT_CONNECTION_PROJECT_DIR, 'src', 'index.ts');
150
- await (0, ast_1.addStarExport)(tree, indexPath, './core/with-session-id-strands.js');
151
- await (0, ast_1.addStarExport)(tree, indexPath, './core/model-errors-strands.js');
203
+ for (const reExport of lang.baseReExports) {
204
+ await (0, ast_1.addStarExport)(tree, indexPath, reExport.fromModule);
205
+ }
152
206
  }
153
207
  /**
154
208
  * Emit the TypeScript client templates for a connection protocol and agent
@@ -225,10 +279,13 @@ async function addPythonFrameworkBase(tree, framework = 'strands') {
225
279
  if (!lang) {
226
280
  throw new Error(`The '${framework}' framework does not support Python agents.`);
227
281
  }
228
- emitPy(tree, lang.base);
282
+ if (lang.base) {
283
+ emitPy(tree, lang.base);
284
+ }
229
285
  const moduleInitPath = (0, devkit_1.joinPathFragments)(getPythonAgentConnectionProjectDir(tree), getPythonAgentConnectionModuleName(tree), '__init__.py');
230
- await addPythonReExport(tree, moduleInitPath, '.core.with_session_id_strands', 'with_session_id');
231
- await addPythonReExport(tree, moduleInitPath, '.core.model_errors_strands', 'log_model_errors');
286
+ for (const reExport of lang.baseReExports) {
287
+ await addPythonReExport(tree, moduleInitPath, reExport.fromModule, reExport.importName);
288
+ }
232
289
  if (lang.deps.length > 0) {
233
290
  (0, py_1.addDependenciesToPyProjectToml)(tree, getPythonAgentConnectionProjectDir(tree), lang.deps);
234
291
  }
@@ -344,6 +401,82 @@ const addPythonClientToGetAgent = async (tree, filePath, clientClassName, client
344
401
  ):
345
402
  $body\``));
346
403
  };
404
+ /**
405
+ * Patch a LangChain agent.py to load connection tools and spread them into the
406
+ * `create_agent(...)` tools list. Used by the MCP and gateway connection
407
+ * generators when the source agent uses the `langchain` framework — the client
408
+ * class must expose a static `create()` returning a `list[BaseTool]`. The tools
409
+ * come from langchain-mcp-adapters' `MultiServerMCPClient`, which keeps the
410
+ * connection config on each tool and opens a fresh MCP session per call, so the
411
+ * tools stay usable after `get_agent` returns — no `with` block is needed.
412
+ * Mirrors {@link addPythonClientToAgent} for the Strands shape.
413
+ */
414
+ async function addPythonLangchainClientToAgent(tree, agentFilePath, clientClassName, clientVarName) {
415
+ await addPythonLangchainClientTools(tree, agentFilePath, clientVarName);
416
+ await addPythonLangchainClientToGetAgent(tree, agentFilePath, clientClassName, clientVarName);
417
+ }
418
+ /**
419
+ * Spread `*<clientVarName>` into the `create_agent(...)` tools list.
420
+ *
421
+ * Scoped via `$old <: within \`create_agent($_)\`` so only the agent's own
422
+ * tools= keyword argument is touched (not an unrelated function with a
423
+ * `tools=` parameter).
424
+ */
425
+ const addPythonLangchainClientTools = async (tree, filePath, clientVarName) => {
426
+ await (0, ast_1.applyGritQL)(tree, filePath, py(`\`tools=$old\` where {
427
+ $old <: within \`create_agent($_)\`,
428
+ $old <: not contains \`*${clientVarName}\`,
429
+ if ($old <: \`[]\`) {
430
+ $old => \`[*${clientVarName}]\`
431
+ } else {
432
+ $old <: \`[$items]\` where { $items += \`, *${clientVarName}\` }
433
+ }
434
+ }`));
435
+ };
436
+ /**
437
+ * Prepend `<clientVarName> = <clientClassName>.create()` to the get_agent body
438
+ * (which loads the connection's tools). No `with` block — the LangChain client
439
+ * hands langchain-mcp-adapters a connection config, so each tool opens its own
440
+ * MCP session per call and the tools are safe to use after get_agent returns.
441
+ * Idempotent via the `not contains <clientClassName>.create` guard.
442
+ */
443
+ const addPythonLangchainClientToGetAgent = async (tree, filePath, clientClassName, clientVarName) => {
444
+ if (await (0, ast_1.matchGritQL)(tree, filePath, py(`\`${clientClassName}.create()\``))) {
445
+ return;
446
+ }
447
+ await (0, ast_1.applyGritQL)(tree, filePath, py(`\`def get_agent($params):
448
+ $body\` where {
449
+ $body <: contains \`create_agent($_)\`,
450
+ $body <: not contains \`${clientClassName}.create\`
451
+ } => \`def get_agent($params):
452
+ ${clientVarName} = ${clientClassName}.create()
453
+ $body\``));
454
+ };
455
+ exports.PY_CLIENT_NAMING = {
456
+ strands: {
457
+ clientClassSuffix: 'Strands',
458
+ clientModuleSuffix: 'strands',
459
+ appTemplateSubdir: (0, devkit_1.joinPathFragments)('agent-connection', 'app'),
460
+ },
461
+ langchain: {
462
+ clientClassSuffix: 'LangChain',
463
+ clientModuleSuffix: 'langchain',
464
+ appTemplateSubdir: (0, devkit_1.joinPathFragments)('langchain', 'agent-connection', 'app'),
465
+ },
466
+ };
467
+ exports.PY_MCP_FAMILY_CONNECTIONS = {
468
+ strands: {
469
+ ...exports.PY_CLIENT_NAMING.strands,
470
+ deps: [],
471
+ wireClientIntoAgent: addPythonClientToAgent,
472
+ },
473
+ langchain: {
474
+ ...exports.PY_CLIENT_NAMING.langchain,
475
+ // langchain-mcp-adapters backs the LangChain client; it must not pull Strands in.
476
+ deps: ['langchain-mcp-adapters'],
477
+ wireClientIntoAgent: addPythonLangchainClientToAgent,
478
+ },
479
+ };
347
480
  /**
348
481
  * Add a re-export to the Python agent-connection module's __init__.py.
349
482
  * Equivalent to addStarExport for TS.
@@ -1 +1 @@
1
- {"version":3,"file":"agent-connection.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/utils/agent-connection/agent-connection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-connection.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/utils/agent-connection/agent-connection.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,99 @@
1
+ import asyncio
2
+ from collections.abc import Callable
3
+ from concurrent.futures import ThreadPoolExecutor
4
+ from uuid import uuid4
5
+
6
+ from a2a.client import A2ACardResolver, ClientConfig, ClientFactory
7
+ from a2a.types import Message, Part, Role, Task, TextPart
8
+
9
+ from .agentcore_a2a_client_config import AgentCoreA2aClientConfig
10
+
11
+
12
+ def _run_sync(coro):
13
+ # The tool is invoked from sync agent code, which under uvicorn runs inside a
14
+ # live event loop where asyncio.run() would raise — fall back to a worker.
15
+ try:
16
+ asyncio.get_running_loop()
17
+ except RuntimeError:
18
+ return asyncio.run(coro)
19
+ with ThreadPoolExecutor(max_workers=1) as pool:
20
+ return pool.submit(asyncio.run, coro).result()
21
+
22
+
23
+ def _text(event) -> str:
24
+ # Collect text parts from a bare Message or a (Task, update) event.
25
+ parts = []
26
+ if isinstance(event, Message):
27
+ parts = event.parts
28
+ elif isinstance(event, tuple):
29
+ task, update = event
30
+ if isinstance(task, Task) and task.artifacts:
31
+ parts = [p for a in task.artifacts for p in (a.parts or [])]
32
+ elif update is not None and getattr(update, "status", None) and update.status.message:
33
+ parts = update.status.message.parts
34
+ return "".join(p.root.text for p in parts if getattr(p.root, "text", None))
35
+
36
+
37
+ class _A2AClient:
38
+ """A synchronously-callable A2A client. Sends a text prompt to the remote
39
+ agent and returns its text reply. Built on the a2a SDK only — no Strands."""
40
+
41
+ def __init__(self, url: str, client_config: ClientConfig):
42
+ self._url = url
43
+ self._config = client_config
44
+
45
+ def __call__(self, prompt: str) -> str:
46
+ return _run_sync(self._invoke(prompt))
47
+
48
+ async def _invoke(self, prompt: str) -> str:
49
+ # AgentCoreA2aClientConfig always sets the signed httpx client.
50
+ httpx_client = self._config.httpx_client
51
+ if httpx_client is None:
52
+ raise RuntimeError("A2A client config is missing an httpx client")
53
+ card = await A2ACardResolver(
54
+ httpx_client=httpx_client, base_url=self._url
55
+ ).get_agent_card()
56
+ client = ClientFactory(self._config).create(card)
57
+ message = Message(
58
+ kind="message",
59
+ role=Role.user,
60
+ message_id=uuid4().hex,
61
+ parts=[Part(TextPart(kind="text", text=prompt))],
62
+ )
63
+ # The client config uses streaming=False, so the last event carries the
64
+ # complete response.
65
+ reply = ""
66
+ async for event in client.send_message(message):
67
+ text = _text(event)
68
+ if text:
69
+ reply = text
70
+ return reply
71
+
72
+
73
+ class AgentCoreA2aClientLangChain:
74
+ """Factory for A2A clients that connect to an AgentCore runtime.
75
+
76
+ Reuses the framework-agnostic Layer-1 ``AgentCoreA2aClientConfig`` (signed
77
+ ``a2a.client.ClientConfig``) and drives the a2a SDK directly, so a LangChain
78
+ agent delegating to an A2A agent pulls in no Strands dependency."""
79
+
80
+ @staticmethod
81
+ def with_iam_auth(agent_runtime_arn: str) -> _A2AClient:
82
+ """SigV4-authenticated client for a Bedrock AgentCore runtime."""
83
+ return _A2AClient(*AgentCoreA2aClientConfig.with_iam_auth(agent_runtime_arn))
84
+
85
+ @staticmethod
86
+ def with_jwt_auth(
87
+ agent_runtime_arn: str, access_token_provider: Callable[[], str]
88
+ ) -> _A2AClient:
89
+ """Bearer-authenticated client for a Bedrock AgentCore runtime."""
90
+ return _A2AClient(
91
+ *AgentCoreA2aClientConfig.with_jwt_auth(
92
+ agent_runtime_arn, access_token_provider
93
+ )
94
+ )
95
+
96
+ @staticmethod
97
+ def without_auth(url: str) -> _A2AClient:
98
+ """Plain-HTTP client for local dev."""
99
+ return _A2AClient(*AgentCoreA2aClientConfig.without_auth(url))
@@ -0,0 +1,57 @@
1
+ import asyncio
2
+ from concurrent.futures import ThreadPoolExecutor
3
+
4
+ import boto3
5
+ import httpx
6
+
7
+ from langchain_core.tools import BaseTool
8
+ from langchain_mcp_adapters.client import MultiServerMCPClient
9
+
10
+ from .agentcore_endpoints import region_from_gateway_url
11
+ from .auth.session import plain_auth, sigv4_auth
12
+
13
+
14
+ def _run_sync(coro):
15
+ # Tools load during agent construction, which under uvicorn runs inside a
16
+ # live event loop where asyncio.run() would raise — fall back to a worker.
17
+ try:
18
+ asyncio.get_running_loop()
19
+ except RuntimeError:
20
+ return asyncio.run(coro)
21
+ with ThreadPoolExecutor(max_workers=1) as pool:
22
+ return pool.submit(asyncio.run, coro).result()
23
+
24
+
25
+ def _load_tools(url: str, auth: httpx.Auth) -> list[BaseTool]:
26
+ # Pass a connection config so each tool opens a fresh session per call and
27
+ # stays usable after construction (no shared session to close).
28
+ client = MultiServerMCPClient(
29
+ {
30
+ "server": {
31
+ "transport": "streamable_http",
32
+ "url": url,
33
+ "auth": auth,
34
+ "terminate_on_close": False,
35
+ }
36
+ }
37
+ )
38
+ return _run_sync(client.get_tools())
39
+
40
+
41
+ class AgentCoreGatewayMCPClientLangChain:
42
+ """Loads LangChain tools from an AgentCore Gateway."""
43
+
44
+ @staticmethod
45
+ def with_iam_auth(
46
+ gateway_url: str,
47
+ region: str | None = None,
48
+ ) -> list[BaseTool]:
49
+ """SigV4-authenticated tools for an AgentCore Gateway."""
50
+ resolved_region = region or region_from_gateway_url(gateway_url)
51
+ credentials = boto3.Session(region_name=resolved_region).get_credentials()
52
+ return _load_tools(gateway_url, sigv4_auth(credentials, resolved_region))
53
+
54
+ @staticmethod
55
+ def without_auth(gateway_url: str) -> list[BaseTool]:
56
+ """Plain-HTTP tools for the local gateway started by serve-local."""
57
+ return _load_tools(gateway_url, plain_auth())
@@ -0,0 +1,64 @@
1
+ import asyncio
2
+ from collections.abc import Callable
3
+ from concurrent.futures import ThreadPoolExecutor
4
+
5
+ import boto3
6
+ import httpx
7
+
8
+ from langchain_core.tools import BaseTool
9
+ from langchain_mcp_adapters.client import MultiServerMCPClient
10
+
11
+ from .agentcore_endpoints import mcp_url_from_arn, region_from_arn
12
+ from .auth.session import jwt_auth, plain_auth, sigv4_auth
13
+
14
+
15
+ def _run_sync(coro):
16
+ # Tools load during agent construction, which under uvicorn runs inside a
17
+ # live event loop where asyncio.run() would raise — fall back to a worker.
18
+ try:
19
+ asyncio.get_running_loop()
20
+ except RuntimeError:
21
+ return asyncio.run(coro)
22
+ with ThreadPoolExecutor(max_workers=1) as pool:
23
+ return pool.submit(asyncio.run, coro).result()
24
+
25
+
26
+ def _load_tools(url: str, auth: httpx.Auth) -> list[BaseTool]:
27
+ # Pass a connection config so each tool opens a fresh session per call and
28
+ # stays usable after construction (no shared session to close).
29
+ client = MultiServerMCPClient(
30
+ {
31
+ "server": {
32
+ "transport": "streamable_http",
33
+ "url": url,
34
+ "auth": auth,
35
+ "terminate_on_close": False,
36
+ }
37
+ }
38
+ )
39
+ return _run_sync(client.get_tools())
40
+
41
+
42
+ class AgentCoreMCPClientLangChain:
43
+ """Loads LangChain tools from an MCP server on an AgentCore runtime."""
44
+
45
+ @staticmethod
46
+ def with_iam_auth(agent_runtime_arn: str) -> list[BaseTool]:
47
+ """SigV4-authenticated tools for a Bedrock AgentCore runtime."""
48
+ region = region_from_arn(agent_runtime_arn)
49
+ url = mcp_url_from_arn(agent_runtime_arn)
50
+ credentials = boto3.Session(region_name=region).get_credentials()
51
+ return _load_tools(url, sigv4_auth(credentials, region))
52
+
53
+ @staticmethod
54
+ def with_jwt_auth(
55
+ agent_runtime_arn: str, access_token_provider: Callable[[], str]
56
+ ) -> list[BaseTool]:
57
+ """Bearer-authenticated tools for a Bedrock AgentCore runtime."""
58
+ url = mcp_url_from_arn(agent_runtime_arn)
59
+ return _load_tools(url, jwt_auth(access_token_provider))
60
+
61
+ @staticmethod
62
+ def without_auth(url: str) -> list[BaseTool]:
63
+ """Plain-HTTP tools for local dev."""
64
+ return _load_tools(url, plain_auth())
@@ -378,7 +378,7 @@ initialize_request = json.dumps({
378
378
  },
379
379
  })
380
380
 
381
- deadline = time.time() + 3 * 60
381
+ deadline = time.time() + 5 * 60
382
382
  while True:
383
383
  try:
384
384
  client.invoke_agent_runtime(
@@ -63,6 +63,7 @@ resource "null_resource" "add_callback_url" {
63
63
  import boto3
64
64
  import os
65
65
  import sys
66
+ import time
66
67
 
67
68
  # Configuration
68
69
  user_pool_id = os.environ['USER_POOL_ID']
@@ -72,12 +73,24 @@ new_callback_url = os.environ['NEW_CALLBACK_URL']
72
73
  # Initialize Cognito client
73
74
  cognito = boto3.client('cognito-idp')
74
75
 
76
+ # A freshly created user pool / client can take several minutes to become
77
+ # visible to describe_user_pool_client, so retry on ResourceNotFoundException.
78
+ def describe_with_retry():
79
+ deadline = time.time() + 5 * 60
80
+ while True:
81
+ try:
82
+ return cognito.describe_user_pool_client(
83
+ UserPoolId=user_pool_id,
84
+ ClientId=client_id,
85
+ )
86
+ except cognito.exceptions.ResourceNotFoundException:
87
+ if time.time() >= deadline:
88
+ raise
89
+ time.sleep(5)
90
+
75
91
  try:
76
92
  # Get current user pool client configuration
77
- response = cognito.describe_user_pool_client(
78
- UserPoolId=user_pool_id,
79
- ClientId=client_id
80
- )
93
+ response = describe_with_retry()
81
94
 
82
95
  client_config = response['UserPoolClient']
83
96
  current_callback_urls = client_config.get('CallbackURLs', [])