@aws/nx-plugin 1.0.0-rc.70 → 1.0.0-rc.71
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/migrations.json +6 -1
- package/package.json +1 -1
- package/src/agentcore-gateway/__snapshots__/generator.spec.ts.snap +1 -1
- package/src/migrations/latest/py-agent-a2a-httpx-client-per-call/metadata.json +3 -0
- package/src/migrations/latest/py-agent-a2a-httpx-client-per-call/migration.d.ts +6 -0
- package/src/migrations/latest/py-agent-a2a-httpx-client-per-call/migration.js +329 -0
- package/src/migrations/latest/py-agent-a2a-httpx-client-per-call/migration.js.map +1 -0
- package/src/py/agent/__snapshots__/generator.protocols.spec.ts.snap +1 -1
- package/src/py/agent/a2a-connection/__snapshots__/generator.spec.ts.snap +55 -14
- package/src/py/agent/a2a-connection/files/agent-connection/app/__targetAgentSnakeCase___client_strands.py.template +1 -3
- package/src/py/dynamodb/__snapshots__/generator.spec.ts.snap +2 -2
- package/src/py/fast-api/__snapshots__/generator.terraform.spec.ts.snap +12 -12
- package/src/py/lambda-function/__snapshots__/generator.spec.ts.snap +2 -2
- package/src/py/mcp-server/__snapshots__/generator.spec.ts.snap +1 -1
- package/src/py/rdb/__snapshots__/generator.spec.ts.snap +1 -1
- package/src/smithy/ts/api/__snapshots__/generator.spec.ts.snap +7 -7
- package/src/trpc/backend/__snapshots__/generator.spec.ts.snap +12 -12
- package/src/ts/agent/__snapshots__/generator.spec.ts.snap +1 -1
- package/src/ts/dcr-proxy/__snapshots__/generator.spec.ts.snap +1 -1
- package/src/ts/dynamodb/__snapshots__/generator.spec.ts.snap +2 -2
- package/src/ts/lambda-function/__snapshots__/generator.spec.ts.snap +2 -2
- package/src/ts/mcp-server/__snapshots__/generator.spec.ts.snap +1 -1
- package/src/ts/rdb/__snapshots__/generator.spec.ts.snap +4 -4
- package/src/ts/react-website/app/__snapshots__/generator.spec.ts.snap +2 -2
- package/src/ts/react-website/cognito-auth/__snapshots__/generator.terraform.spec.ts.snap +1 -1
- package/src/utils/agent-connection/files/py-core-langchain/a2a/agentcore_a2a_client_langchain.py.template +26 -20
- package/src/utils/agent-connection/files/py-core-strands/a2a/agentcore_a2a_client_strands.py.template +55 -10
- package/src/utils/versions.d.ts +2 -2
- package/src/utils/versions.js +1 -1
- package/src/utils/versions.js.map +1 -1
|
@@ -11,7 +11,7 @@ terraform {
|
|
|
11
11
|
required_providers {
|
|
12
12
|
aws = {
|
|
13
13
|
source = "hashicorp/aws"
|
|
14
|
-
version = "6.
|
|
14
|
+
version = "6.60.0"
|
|
15
15
|
}
|
|
16
16
|
}
|
|
17
17
|
}
|
|
@@ -258,7 +258,7 @@ output "api_log_group_arn" {
|
|
|
258
258
|
required_providers {
|
|
259
259
|
aws = {
|
|
260
260
|
source = "hashicorp/aws"
|
|
261
|
-
version = "6.
|
|
261
|
+
version = "6.60.0"
|
|
262
262
|
}
|
|
263
263
|
}
|
|
264
264
|
}
|
|
@@ -771,7 +771,7 @@ terraform {
|
|
|
771
771
|
required_providers {
|
|
772
772
|
aws = {
|
|
773
773
|
source = "hashicorp/aws"
|
|
774
|
-
version = "6.
|
|
774
|
+
version = "6.60.0"
|
|
775
775
|
}
|
|
776
776
|
}
|
|
777
777
|
}
|
|
@@ -1018,7 +1018,7 @@ output "api_log_group_arn" {
|
|
|
1018
1018
|
required_providers {
|
|
1019
1019
|
aws = {
|
|
1020
1020
|
source = "hashicorp/aws"
|
|
1021
|
-
version = "6.
|
|
1021
|
+
version = "6.60.0"
|
|
1022
1022
|
}
|
|
1023
1023
|
}
|
|
1024
1024
|
}
|
|
@@ -1603,7 +1603,7 @@ terraform {
|
|
|
1603
1603
|
required_providers {
|
|
1604
1604
|
aws = {
|
|
1605
1605
|
source = "hashicorp/aws"
|
|
1606
|
-
version = "6.
|
|
1606
|
+
version = "6.60.0"
|
|
1607
1607
|
}
|
|
1608
1608
|
}
|
|
1609
1609
|
}
|
|
@@ -1850,7 +1850,7 @@ output "api_log_group_arn" {
|
|
|
1850
1850
|
required_providers {
|
|
1851
1851
|
aws = {
|
|
1852
1852
|
source = "hashicorp/aws"
|
|
1853
|
-
version = "6.
|
|
1853
|
+
version = "6.60.0"
|
|
1854
1854
|
}
|
|
1855
1855
|
}
|
|
1856
1856
|
}
|
|
@@ -2340,7 +2340,7 @@ terraform {
|
|
|
2340
2340
|
required_providers {
|
|
2341
2341
|
aws = {
|
|
2342
2342
|
source = "hashicorp/aws"
|
|
2343
|
-
version = "6.
|
|
2343
|
+
version = "6.60.0"
|
|
2344
2344
|
}
|
|
2345
2345
|
random = {
|
|
2346
2346
|
source = "hashicorp/random"
|
|
@@ -2596,7 +2596,7 @@ output "waf_web_acl_arn" {
|
|
|
2596
2596
|
required_providers {
|
|
2597
2597
|
aws = {
|
|
2598
2598
|
source = "hashicorp/aws"
|
|
2599
|
-
version = "6.
|
|
2599
|
+
version = "6.60.0"
|
|
2600
2600
|
}
|
|
2601
2601
|
}
|
|
2602
2602
|
}
|
|
@@ -3346,7 +3346,7 @@ terraform {
|
|
|
3346
3346
|
required_providers {
|
|
3347
3347
|
aws = {
|
|
3348
3348
|
source = "hashicorp/aws"
|
|
3349
|
-
version = "6.
|
|
3349
|
+
version = "6.60.0"
|
|
3350
3350
|
}
|
|
3351
3351
|
random = {
|
|
3352
3352
|
source = "hashicorp/random"
|
|
@@ -3602,7 +3602,7 @@ output "waf_web_acl_arn" {
|
|
|
3602
3602
|
required_providers {
|
|
3603
3603
|
aws = {
|
|
3604
3604
|
source = "hashicorp/aws"
|
|
3605
|
-
version = "6.
|
|
3605
|
+
version = "6.60.0"
|
|
3606
3606
|
}
|
|
3607
3607
|
}
|
|
3608
3608
|
}
|
|
@@ -4341,7 +4341,7 @@ terraform {
|
|
|
4341
4341
|
required_providers {
|
|
4342
4342
|
aws = {
|
|
4343
4343
|
source = "hashicorp/aws"
|
|
4344
|
-
version = "6.
|
|
4344
|
+
version = "6.60.0"
|
|
4345
4345
|
}
|
|
4346
4346
|
random = {
|
|
4347
4347
|
source = "hashicorp/random"
|
|
@@ -4597,7 +4597,7 @@ output "waf_web_acl_arn" {
|
|
|
4597
4597
|
required_providers {
|
|
4598
4598
|
aws = {
|
|
4599
4599
|
source = "hashicorp/aws"
|
|
4600
|
-
version = "6.
|
|
4600
|
+
version = "6.60.0"
|
|
4601
4601
|
}
|
|
4602
4602
|
}
|
|
4603
4603
|
}
|
|
@@ -70,7 +70,7 @@ exports[`lambda-handler project generator > terraform iac > should generate terr
|
|
|
70
70
|
required_providers {
|
|
71
71
|
aws = {
|
|
72
72
|
source = "hashicorp/aws"
|
|
73
|
-
version = "6.
|
|
73
|
+
version = "6.60.0"
|
|
74
74
|
}
|
|
75
75
|
archive = {
|
|
76
76
|
source = "hashicorp/archive"
|
|
@@ -251,7 +251,7 @@ exports[`lambda-handler project generator > terraform iac > should match snapsho
|
|
|
251
251
|
required_providers {
|
|
252
252
|
aws = {
|
|
253
253
|
source = "hashicorp/aws"
|
|
254
|
-
version = "6.
|
|
254
|
+
version = "6.60.0"
|
|
255
255
|
}
|
|
256
256
|
archive = {
|
|
257
257
|
source = "hashicorp/archive"
|
|
@@ -413,7 +413,7 @@ terraform {
|
|
|
413
413
|
required_providers {
|
|
414
414
|
aws = {
|
|
415
415
|
source = "hashicorp/aws"
|
|
416
|
-
version = "6.
|
|
416
|
+
version = "6.60.0"
|
|
417
417
|
}
|
|
418
418
|
random = {
|
|
419
419
|
source = "hashicorp/random"
|
|
@@ -672,7 +672,7 @@ exports[`tsSmithyApiGenerator > should generate smithy ts api with Terraform pro
|
|
|
672
672
|
required_providers {
|
|
673
673
|
aws = {
|
|
674
674
|
source = "hashicorp/aws"
|
|
675
|
-
version = "6.
|
|
675
|
+
version = "6.60.0"
|
|
676
676
|
}
|
|
677
677
|
}
|
|
678
678
|
}
|
|
@@ -1904,7 +1904,7 @@ terraform {
|
|
|
1904
1904
|
required_providers {
|
|
1905
1905
|
aws = {
|
|
1906
1906
|
source = "hashicorp/aws"
|
|
1907
|
-
version = "6.
|
|
1907
|
+
version = "6.60.0"
|
|
1908
1908
|
}
|
|
1909
1909
|
random = {
|
|
1910
1910
|
source = "hashicorp/random"
|
|
@@ -2160,7 +2160,7 @@ output "waf_web_acl_arn" {
|
|
|
2160
2160
|
required_providers {
|
|
2161
2161
|
aws = {
|
|
2162
2162
|
source = "hashicorp/aws"
|
|
2163
|
-
version = "6.
|
|
2163
|
+
version = "6.60.0"
|
|
2164
2164
|
}
|
|
2165
2165
|
}
|
|
2166
2166
|
}
|
|
@@ -2879,7 +2879,7 @@ terraform {
|
|
|
2879
2879
|
required_providers {
|
|
2880
2880
|
aws = {
|
|
2881
2881
|
source = "hashicorp/aws"
|
|
2882
|
-
version = "6.
|
|
2882
|
+
version = "6.60.0"
|
|
2883
2883
|
}
|
|
2884
2884
|
random = {
|
|
2885
2885
|
source = "hashicorp/random"
|
|
@@ -3135,7 +3135,7 @@ output "waf_web_acl_arn" {
|
|
|
3135
3135
|
required_providers {
|
|
3136
3136
|
aws = {
|
|
3137
3137
|
source = "hashicorp/aws"
|
|
3138
|
-
version = "6.
|
|
3138
|
+
version = "6.60.0"
|
|
3139
3139
|
}
|
|
3140
3140
|
}
|
|
3141
3141
|
}
|
|
@@ -3839,7 +3839,7 @@ exports[`tsSmithyApiGenerator > terraform iac > should generate terraform with c
|
|
|
3839
3839
|
required_providers {
|
|
3840
3840
|
aws = {
|
|
3841
3841
|
source = "hashicorp/aws"
|
|
3842
|
-
version = "6.
|
|
3842
|
+
version = "6.60.0"
|
|
3843
3843
|
}
|
|
3844
3844
|
}
|
|
3845
3845
|
}
|
|
@@ -3175,7 +3175,7 @@ terraform {
|
|
|
3175
3175
|
required_providers {
|
|
3176
3176
|
aws = {
|
|
3177
3177
|
source = "hashicorp/aws"
|
|
3178
|
-
version = "6.
|
|
3178
|
+
version = "6.60.0"
|
|
3179
3179
|
}
|
|
3180
3180
|
}
|
|
3181
3181
|
}
|
|
@@ -3422,7 +3422,7 @@ output "api_log_group_arn" {
|
|
|
3422
3422
|
required_providers {
|
|
3423
3423
|
aws = {
|
|
3424
3424
|
source = "hashicorp/aws"
|
|
3425
|
-
version = "6.
|
|
3425
|
+
version = "6.60.0"
|
|
3426
3426
|
}
|
|
3427
3427
|
}
|
|
3428
3428
|
}
|
|
@@ -3917,7 +3917,7 @@ terraform {
|
|
|
3917
3917
|
required_providers {
|
|
3918
3918
|
aws = {
|
|
3919
3919
|
source = "hashicorp/aws"
|
|
3920
|
-
version = "6.
|
|
3920
|
+
version = "6.60.0"
|
|
3921
3921
|
}
|
|
3922
3922
|
}
|
|
3923
3923
|
}
|
|
@@ -4164,7 +4164,7 @@ output "api_log_group_arn" {
|
|
|
4164
4164
|
required_providers {
|
|
4165
4165
|
aws = {
|
|
4166
4166
|
source = "hashicorp/aws"
|
|
4167
|
-
version = "6.
|
|
4167
|
+
version = "6.60.0"
|
|
4168
4168
|
}
|
|
4169
4169
|
}
|
|
4170
4170
|
}
|
|
@@ -4731,7 +4731,7 @@ terraform {
|
|
|
4731
4731
|
required_providers {
|
|
4732
4732
|
aws = {
|
|
4733
4733
|
source = "hashicorp/aws"
|
|
4734
|
-
version = "6.
|
|
4734
|
+
version = "6.60.0"
|
|
4735
4735
|
}
|
|
4736
4736
|
}
|
|
4737
4737
|
}
|
|
@@ -4978,7 +4978,7 @@ output "api_log_group_arn" {
|
|
|
4978
4978
|
required_providers {
|
|
4979
4979
|
aws = {
|
|
4980
4980
|
source = "hashicorp/aws"
|
|
4981
|
-
version = "6.
|
|
4981
|
+
version = "6.60.0"
|
|
4982
4982
|
}
|
|
4983
4983
|
}
|
|
4984
4984
|
}
|
|
@@ -5450,7 +5450,7 @@ terraform {
|
|
|
5450
5450
|
required_providers {
|
|
5451
5451
|
aws = {
|
|
5452
5452
|
source = "hashicorp/aws"
|
|
5453
|
-
version = "6.
|
|
5453
|
+
version = "6.60.0"
|
|
5454
5454
|
}
|
|
5455
5455
|
random = {
|
|
5456
5456
|
source = "hashicorp/random"
|
|
@@ -5706,7 +5706,7 @@ output "waf_web_acl_arn" {
|
|
|
5706
5706
|
required_providers {
|
|
5707
5707
|
aws = {
|
|
5708
5708
|
source = "hashicorp/aws"
|
|
5709
|
-
version = "6.
|
|
5709
|
+
version = "6.60.0"
|
|
5710
5710
|
}
|
|
5711
5711
|
}
|
|
5712
5712
|
}
|
|
@@ -6426,7 +6426,7 @@ terraform {
|
|
|
6426
6426
|
required_providers {
|
|
6427
6427
|
aws = {
|
|
6428
6428
|
source = "hashicorp/aws"
|
|
6429
|
-
version = "6.
|
|
6429
|
+
version = "6.60.0"
|
|
6430
6430
|
}
|
|
6431
6431
|
random = {
|
|
6432
6432
|
source = "hashicorp/random"
|
|
@@ -6682,7 +6682,7 @@ output "waf_web_acl_arn" {
|
|
|
6682
6682
|
required_providers {
|
|
6683
6683
|
aws = {
|
|
6684
6684
|
source = "hashicorp/aws"
|
|
6685
|
-
version = "6.
|
|
6685
|
+
version = "6.60.0"
|
|
6686
6686
|
}
|
|
6687
6687
|
}
|
|
6688
6688
|
}
|
|
@@ -7391,7 +7391,7 @@ terraform {
|
|
|
7391
7391
|
required_providers {
|
|
7392
7392
|
aws = {
|
|
7393
7393
|
source = "hashicorp/aws"
|
|
7394
|
-
version = "6.
|
|
7394
|
+
version = "6.60.0"
|
|
7395
7395
|
}
|
|
7396
7396
|
random = {
|
|
7397
7397
|
source = "hashicorp/random"
|
|
@@ -7647,7 +7647,7 @@ output "waf_web_acl_arn" {
|
|
|
7647
7647
|
required_providers {
|
|
7648
7648
|
aws = {
|
|
7649
7649
|
source = "hashicorp/aws"
|
|
7650
|
-
version = "6.
|
|
7650
|
+
version = "6.60.0"
|
|
7651
7651
|
}
|
|
7652
7652
|
}
|
|
7653
7653
|
}
|
|
@@ -1263,7 +1263,7 @@ exports[`ts#agent generator > should match snapshot for Terraform generated file
|
|
|
1263
1263
|
required_providers {
|
|
1264
1264
|
aws = {
|
|
1265
1265
|
source = "hashicorp/aws"
|
|
1266
|
-
version = "6.
|
|
1266
|
+
version = "6.60.0"
|
|
1267
1267
|
}
|
|
1268
1268
|
null = {
|
|
1269
1269
|
source = "hashicorp/null"
|
|
@@ -35,7 +35,7 @@ exports[`ts#dynamodb generator > should generate terraform modules when iac is t
|
|
|
35
35
|
required_providers {
|
|
36
36
|
aws = {
|
|
37
37
|
source = "hashicorp/aws"
|
|
38
|
-
version = "6.
|
|
38
|
+
version = "6.60.0"
|
|
39
39
|
}
|
|
40
40
|
}
|
|
41
41
|
}
|
|
@@ -192,7 +192,7 @@ exports[`ts#dynamodb generator > should generate terraform modules when iac is t
|
|
|
192
192
|
required_providers {
|
|
193
193
|
aws = {
|
|
194
194
|
source = "hashicorp/aws"
|
|
195
|
-
version = "6.
|
|
195
|
+
version = "6.60.0"
|
|
196
196
|
}
|
|
197
197
|
random = {
|
|
198
198
|
source = "hashicorp/random"
|
|
@@ -141,7 +141,7 @@ exports[`ts-lambda-function generator > terraform iac > should generate terrafor
|
|
|
141
141
|
required_providers {
|
|
142
142
|
aws = {
|
|
143
143
|
source = "hashicorp/aws"
|
|
144
|
-
version = "6.
|
|
144
|
+
version = "6.60.0"
|
|
145
145
|
}
|
|
146
146
|
archive = {
|
|
147
147
|
source = "hashicorp/archive"
|
|
@@ -322,7 +322,7 @@ exports[`ts-lambda-function generator > terraform iac > should match snapshot fo
|
|
|
322
322
|
required_providers {
|
|
323
323
|
aws = {
|
|
324
324
|
source = "hashicorp/aws"
|
|
325
|
-
version = "6.
|
|
325
|
+
version = "6.60.0"
|
|
326
326
|
}
|
|
327
327
|
archive = {
|
|
328
328
|
source = "hashicorp/archive"
|
|
@@ -799,7 +799,7 @@ terraform {
|
|
|
799
799
|
required_providers {
|
|
800
800
|
aws = {
|
|
801
801
|
source = "hashicorp/aws"
|
|
802
|
-
version = "6.
|
|
802
|
+
version = "6.60.0"
|
|
803
803
|
}
|
|
804
804
|
null = {
|
|
805
805
|
source = "hashicorp/null"
|
|
@@ -1553,7 +1553,7 @@ exports[`ts#rdb generator > should generate terraform modules when iac is Terraf
|
|
|
1553
1553
|
}
|
|
1554
1554
|
aws = {
|
|
1555
1555
|
source = "hashicorp/aws"
|
|
1556
|
-
version = "6.
|
|
1556
|
+
version = "6.60.0"
|
|
1557
1557
|
}
|
|
1558
1558
|
null = {
|
|
1559
1559
|
source = "hashicorp/null"
|
|
@@ -2285,7 +2285,7 @@ terraform {
|
|
|
2285
2285
|
required_providers {
|
|
2286
2286
|
aws = {
|
|
2287
2287
|
source = "hashicorp/aws"
|
|
2288
|
-
version = "6.
|
|
2288
|
+
version = "6.60.0"
|
|
2289
2289
|
}
|
|
2290
2290
|
null = {
|
|
2291
2291
|
source = "hashicorp/null"
|
|
@@ -3039,7 +3039,7 @@ exports[`ts#rdb generator > should generate terraform modules with MySQL engine
|
|
|
3039
3039
|
}
|
|
3040
3040
|
aws = {
|
|
3041
3041
|
source = "hashicorp/aws"
|
|
3042
|
-
version = "6.
|
|
3042
|
+
version = "6.60.0"
|
|
3043
3043
|
}
|
|
3044
3044
|
null = {
|
|
3045
3045
|
source = "hashicorp/null"
|
|
@@ -131,7 +131,7 @@ exports[`react-website generator > TailwindCSS integration > terraform iac > sho
|
|
|
131
131
|
required_providers {
|
|
132
132
|
aws = {
|
|
133
133
|
source = "hashicorp/aws"
|
|
134
|
-
version = "6.
|
|
134
|
+
version = "6.60.0"
|
|
135
135
|
configuration_aliases = [aws.us_east_1]
|
|
136
136
|
}
|
|
137
137
|
random = {
|
|
@@ -908,7 +908,7 @@ output "waf_web_acl_arn" {
|
|
|
908
908
|
required_providers {
|
|
909
909
|
aws = {
|
|
910
910
|
source = "hashicorp/aws"
|
|
911
|
-
version = "6.
|
|
911
|
+
version = "6.60.0"
|
|
912
912
|
configuration_aliases = [aws.us_east_1]
|
|
913
913
|
}
|
|
914
914
|
}
|
|
@@ -3,6 +3,7 @@ from collections.abc import Callable
|
|
|
3
3
|
from concurrent.futures import ThreadPoolExecutor
|
|
4
4
|
from uuid import uuid4
|
|
5
5
|
|
|
6
|
+
import httpx
|
|
6
7
|
from a2a.client import A2ACardResolver, ClientConfig, ClientFactory
|
|
7
8
|
from a2a.types import Message, Part, Role, Task, TextPart
|
|
8
9
|
|
|
@@ -47,27 +48,32 @@ class _A2AClient:
|
|
|
47
48
|
|
|
48
49
|
async def _invoke(self, prompt: str) -> str:
|
|
49
50
|
# AgentCoreA2aClientConfig always sets the signed httpx client.
|
|
50
|
-
|
|
51
|
-
if
|
|
51
|
+
shared_client = self._config.httpx_client
|
|
52
|
+
if shared_client is None:
|
|
52
53
|
raise RuntimeError("A2A client config is missing an httpx client")
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
)
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
54
|
+
async with httpx.AsyncClient(
|
|
55
|
+
auth=shared_client.auth, timeout=shared_client.timeout
|
|
56
|
+
) as httpx_client:
|
|
57
|
+
card = await A2ACardResolver(
|
|
58
|
+
httpx_client=httpx_client, base_url=self._url
|
|
59
|
+
).get_agent_card()
|
|
60
|
+
client = ClientFactory(
|
|
61
|
+
ClientConfig(httpx_client=httpx_client, streaming=False)
|
|
62
|
+
).create(card)
|
|
63
|
+
message = Message(
|
|
64
|
+
kind="message",
|
|
65
|
+
role=Role.user,
|
|
66
|
+
message_id=uuid4().hex,
|
|
67
|
+
parts=[Part(TextPart(kind="text", text=prompt))],
|
|
68
|
+
)
|
|
69
|
+
# The client config uses streaming=False, so the last event carries
|
|
70
|
+
# the complete response.
|
|
71
|
+
reply = ""
|
|
72
|
+
async for event in client.send_message(message):
|
|
73
|
+
text = _text(event)
|
|
74
|
+
if text:
|
|
75
|
+
reply = text
|
|
76
|
+
return reply
|
|
71
77
|
|
|
72
78
|
|
|
73
79
|
class AgentCoreA2aClientLangChain:
|
|
@@ -1,20 +1,65 @@
|
|
|
1
|
+
import asyncio
|
|
1
2
|
from collections.abc import Callable
|
|
3
|
+
from concurrent.futures import ThreadPoolExecutor
|
|
2
4
|
|
|
5
|
+
import httpx
|
|
6
|
+
from a2a.client import ClientConfig
|
|
3
7
|
from strands.agent.a2a_agent import A2AAgent
|
|
8
|
+
from strands.agent.agent_result import AgentResult
|
|
4
9
|
|
|
5
10
|
from .agentcore_a2a_client_config import AgentCoreA2aClientConfig
|
|
6
11
|
|
|
7
12
|
|
|
13
|
+
def _run_sync(coro):
|
|
14
|
+
# The tool is invoked from sync agent code, which under uvicorn runs inside a
|
|
15
|
+
# live event loop where asyncio.run() would raise — fall back to a worker.
|
|
16
|
+
try:
|
|
17
|
+
asyncio.get_running_loop()
|
|
18
|
+
except RuntimeError:
|
|
19
|
+
return asyncio.run(coro)
|
|
20
|
+
with ThreadPoolExecutor(max_workers=1) as pool:
|
|
21
|
+
return pool.submit(asyncio.run, coro).result()
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
class _A2AClient:
|
|
25
|
+
def __init__(
|
|
26
|
+
self,
|
|
27
|
+
url: str,
|
|
28
|
+
client_config: ClientConfig,
|
|
29
|
+
*,
|
|
30
|
+
name: str | None,
|
|
31
|
+
description: str | None,
|
|
32
|
+
):
|
|
33
|
+
shared_client = client_config.httpx_client
|
|
34
|
+
if shared_client is None:
|
|
35
|
+
raise RuntimeError("A2A client config is missing an httpx client")
|
|
36
|
+
self._url = url
|
|
37
|
+
self._auth = shared_client.auth
|
|
38
|
+
self._timeout = shared_client.timeout
|
|
39
|
+
self._name = name
|
|
40
|
+
self._description = description
|
|
41
|
+
|
|
42
|
+
def __call__(self, prompt: str) -> AgentResult:
|
|
43
|
+
return _run_sync(self._invoke(prompt))
|
|
44
|
+
|
|
45
|
+
async def _invoke(self, prompt: str) -> AgentResult:
|
|
46
|
+
async with httpx.AsyncClient(
|
|
47
|
+
auth=self._auth, timeout=self._timeout
|
|
48
|
+
) as httpx_client:
|
|
49
|
+
agent = A2AAgent(
|
|
50
|
+
endpoint=self._url,
|
|
51
|
+
name=self._name,
|
|
52
|
+
description=self._description,
|
|
53
|
+
client_config=ClientConfig(httpx_client=httpx_client, streaming=False),
|
|
54
|
+
)
|
|
55
|
+
return await agent.invoke_async(prompt)
|
|
56
|
+
|
|
57
|
+
|
|
8
58
|
def _build(
|
|
9
59
|
config: tuple, *, name: str | None, description: str | None
|
|
10
|
-
) ->
|
|
60
|
+
) -> _A2AClient:
|
|
11
61
|
url, client_config = config
|
|
12
|
-
|
|
13
|
-
if name:
|
|
14
|
-
kwargs["name"] = name
|
|
15
|
-
if description:
|
|
16
|
-
kwargs["description"] = description
|
|
17
|
-
return A2AAgent(**kwargs)
|
|
62
|
+
return _A2AClient(url, client_config, name=name, description=description)
|
|
18
63
|
|
|
19
64
|
|
|
20
65
|
class AgentCoreA2aClientStrands:
|
|
@@ -26,7 +71,7 @@ class AgentCoreA2aClientStrands:
|
|
|
26
71
|
*,
|
|
27
72
|
name: str | None = None,
|
|
28
73
|
description: str | None = None,
|
|
29
|
-
) ->
|
|
74
|
+
) -> _A2AClient:
|
|
30
75
|
"""SigV4-authenticated client for a Bedrock AgentCore runtime."""
|
|
31
76
|
return _build(
|
|
32
77
|
AgentCoreA2aClientConfig.with_iam_auth(agent_runtime_arn),
|
|
@@ -41,7 +86,7 @@ class AgentCoreA2aClientStrands:
|
|
|
41
86
|
*,
|
|
42
87
|
name: str | None = None,
|
|
43
88
|
description: str | None = None,
|
|
44
|
-
) ->
|
|
89
|
+
) -> _A2AClient:
|
|
45
90
|
"""Bearer-authenticated client for a Bedrock AgentCore runtime."""
|
|
46
91
|
return _build(
|
|
47
92
|
AgentCoreA2aClientConfig.with_jwt_auth(
|
|
@@ -57,7 +102,7 @@ class AgentCoreA2aClientStrands:
|
|
|
57
102
|
*,
|
|
58
103
|
name: str | None = None,
|
|
59
104
|
description: str | None = None,
|
|
60
|
-
) ->
|
|
105
|
+
) -> _A2AClient:
|
|
61
106
|
"""Plain-HTTP client — for local dev."""
|
|
62
107
|
return _build(
|
|
63
108
|
AgentCoreA2aClientConfig.without_auth(url),
|
package/src/utils/versions.d.ts
CHANGED
|
@@ -274,7 +274,7 @@ export declare const containerImage: (tool: keyof typeof CONTAINER_VERSIONS) =>
|
|
|
274
274
|
* Pinned exactly (no range operator) so generated infrastructure is reproducible.
|
|
275
275
|
*/
|
|
276
276
|
export declare const TERRAFORM_VERSIONS: {
|
|
277
|
-
readonly aws: "6.
|
|
277
|
+
readonly aws: "6.60.0";
|
|
278
278
|
readonly random: "3.9.0";
|
|
279
279
|
readonly null: "3.3.0";
|
|
280
280
|
readonly archive: "2.8.0";
|
|
@@ -288,7 +288,7 @@ export type ITerraformProviderVersion = keyof typeof TERRAFORM_VERSIONS;
|
|
|
288
288
|
* generated `.tf` templates (e.g. `version = "<%- awsProviderVersion %>"`)
|
|
289
289
|
*/
|
|
290
290
|
export declare const terraformProviderVersions: () => {
|
|
291
|
-
awsProviderVersion: "6.
|
|
291
|
+
awsProviderVersion: "6.60.0";
|
|
292
292
|
randomProviderVersion: "3.9.0";
|
|
293
293
|
nullProviderVersion: "3.3.0";
|
|
294
294
|
archiveProviderVersion: "2.8.0";
|
package/src/utils/versions.js
CHANGED
|
@@ -288,7 +288,7 @@
|
|
|
288
288
|
* Exact versions for Terraform providers used by generated `.tf` modules.
|
|
289
289
|
* Pinned exactly (no range operator) so generated infrastructure is reproducible.
|
|
290
290
|
*/ export const TERRAFORM_VERSIONS = {
|
|
291
|
-
aws: '6.
|
|
291
|
+
aws: '6.60.0',
|
|
292
292
|
random: '3.9.0',
|
|
293
293
|
null: '3.3.0',
|
|
294
294
|
archive: '2.8.0',
|