3939import io .a2a .spec .Message ;
4040import io .a2a .spec .MessageSendConfiguration ;
4141import io .a2a .spec .MessageSendParams ;
42+ import io .a2a .spec .MutualTLSSecurityScheme ;
4243import io .a2a .spec .OAuth2SecurityScheme ;
4344import io .a2a .spec .OAuthFlows ;
4445import io .a2a .spec .OpenIdConnectSecurityScheme ;
@@ -378,6 +379,17 @@ private static io.a2a.grpc.AgentSkill agentSkill(AgentSkill agentSkill) {
378379 if (agentSkill .outputModes () != null ) {
379380 builder .addAllOutputModes (agentSkill .outputModes ());
380381 }
382+ if (agentSkill .security () != null ) {
383+ builder .addAllSecurity (agentSkill .security ().stream ().map (s -> {
384+ io .a2a .grpc .Security .Builder securityBuilder = io .a2a .grpc .Security .newBuilder ();
385+ s .forEach ((key , value ) -> {
386+ io .a2a .grpc .StringList .Builder stringListBuilder = io .a2a .grpc .StringList .newBuilder ();
387+ stringListBuilder .addAllList (value );
388+ securityBuilder .putSchemes (key , stringListBuilder .build ());
389+ });
390+ return securityBuilder .build ();
391+ }).collect (Collectors .toList ()));
392+ }
381393 return builder .build ();
382394 }
383395
@@ -401,6 +413,8 @@ private static io.a2a.grpc.SecurityScheme securityScheme(SecurityScheme security
401413 builder .setOauth2SecurityScheme (oauthSecurityScheme ((OAuth2SecurityScheme ) securityScheme ));
402414 } else if (securityScheme instanceof OpenIdConnectSecurityScheme ) {
403415 builder .setOpenIdConnectSecurityScheme (openIdConnectSecurityScheme ((OpenIdConnectSecurityScheme ) securityScheme ));
416+ } else if (securityScheme instanceof MutualTLSSecurityScheme ) {
417+ builder .setMtlsSecurityScheme (mutualTlsSecurityScheme ((MutualTLSSecurityScheme ) securityScheme ));
404418 }
405419 return builder .build ();
406420 }
@@ -441,6 +455,9 @@ private static io.a2a.grpc.OAuth2SecurityScheme oauthSecurityScheme(OAuth2Securi
441455 if (oauth2SecurityScheme .getFlows () != null ) {
442456 builder .setFlows (oauthFlows (oauth2SecurityScheme .getFlows ()));
443457 }
458+ if (oauth2SecurityScheme .getOauth2MetadataUrl () != null ) {
459+ builder .setOauth2MetadataUrl (oauth2SecurityScheme .getOauth2MetadataUrl ());
460+ }
444461 return builder .build ();
445462 }
446463
@@ -531,6 +548,14 @@ private static io.a2a.grpc.OpenIdConnectSecurityScheme openIdConnectSecuritySche
531548 return builder .build ();
532549 }
533550
551+ private static io .a2a .grpc .MutualTlsSecurityScheme mutualTlsSecurityScheme (MutualTLSSecurityScheme mutualTlsSecurityScheme ) {
552+ io .a2a .grpc .MutualTlsSecurityScheme .Builder builder = io .a2a .grpc .MutualTlsSecurityScheme .newBuilder ();
553+ if (mutualTlsSecurityScheme .getDescription () != null ) {
554+ builder .setDescription (mutualTlsSecurityScheme .getDescription ());
555+ }
556+ return builder .build ();
557+ }
558+
534559 private static io .a2a .grpc .AgentInterface agentInterface (AgentInterface agentInterface ) {
535560 io .a2a .grpc .AgentInterface .Builder builder = io .a2a .grpc .AgentInterface .newBuilder ();
536561 if (agentInterface .transport () != null ) {
0 commit comments