Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<RootNamespace>A2A.Client</RootNamespace>
<VersionPrefix>0.17.0</VersionPrefix>
<VersionPrefix>0.18.0</VersionPrefix>
<AssemblyVersion>$(VersionPrefix)</AssemblyVersion>
<FileVersion>$(VersionPrefix)</FileVersion>
<NeutralLanguage>en</NeutralLanguage>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<RootNamespace>A2A.Client.Transports</RootNamespace>
<VersionPrefix>0.17.0</VersionPrefix>
<VersionPrefix>0.18.0</VersionPrefix>
<AssemblyVersion>$(VersionPrefix)</AssemblyVersion>
<FileVersion>$(VersionPrefix)</FileVersion>
<NeutralLanguage>en</NeutralLanguage>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<RootNamespace>A2A.Client.Transports</RootNamespace>
<VersionPrefix>0.17.0</VersionPrefix>
<VersionPrefix>0.18.0</VersionPrefix>
<AssemblyVersion>$(VersionPrefix)</AssemblyVersion>
<FileVersion>$(VersionPrefix)</FileVersion>
<NeutralLanguage>en</NeutralLanguage>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,17 +26,36 @@ public static class A2AClientBuilderExtensions
/// Configures the <see cref="IA2AClientBuilder"/> to use the HTTP transport.
/// </summary>
/// <param name="builder">The <see cref="IA2AClientBuilder"/> to configure.</param>
/// <param name="baseAddress">The based address of the server to connect to.</param>
/// <param name="configureClient">An <see cref="Action{T1, T2}"/> used to configure the underlying <see cref="HttpClient"/>.</param>
/// <param name="configureClientBuilder"> An <see cref="Action{T}"/>, if any, used to configure the <see cref="IHttpClientBuilder"/> used to build the underlying <see cref="HttpClient"/>.</param>
/// <returns>The configured <see cref="IA2AClientBuilder"/>.</returns>
public static IA2AClientBuilder UseHttpTransport(this IA2AClientBuilder builder, Uri baseAddress)
public static IA2AClientBuilder UseHttpTransport(this IA2AClientBuilder builder, Action<IServiceProvider, HttpClient> configureClient, Action<IHttpClientBuilder>? configureClientBuilder = null)
{
builder.Services.AddHttpClient<A2AHttpClientTransport>(httpClient =>
var httpClientBuilder = builder.Services.AddHttpClient<IA2AClientTransport, A2AHttpClientTransport>((provider, httpClient) =>
{
httpClient.BaseAddress = baseAddress;
httpClient.DefaultRequestHeaders.Add("A2A-Version", A2AProtocolVersion.Latest);
configureClient(provider, httpClient);
});
builder.Services.AddSingleton<IA2AClientTransport>(provider => provider.GetRequiredService<A2AHttpClientTransport>());
configureClientBuilder?.Invoke(httpClientBuilder);
return builder.UseTransport<A2AHttpClientTransport>();
}

/// <summary>
/// Configures the <see cref="IA2AClientBuilder"/> to use the HTTP transport.
/// </summary>
/// <param name="builder">The <see cref="IA2AClientBuilder"/> to configure.</param>
/// <param name="configureClient">An <see cref="Action{T}"/> used to configure the underlying <see cref="HttpClient"/>.</param>
/// <param name="configureClientBuilder"> An <see cref="Action{T}"/>, if any, used to configure the <see cref="IHttpClientBuilder"/> used to build the underlying <see cref="HttpClient"/>.</param>
/// <returns>The configured <see cref="IA2AClientBuilder"/>.</returns>
public static IA2AClientBuilder UseHttpTransport(this IA2AClientBuilder builder, Action<HttpClient> configureClient, Action<IHttpClientBuilder>? configureClientBuilder = null) => UseHttpTransport(builder, (_, httpClient) => configureClient(httpClient), configureClientBuilder);

/// <summary>
/// Configures the <see cref="IA2AClientBuilder"/> to use the HTTP transport.
/// </summary>
/// <param name="builder">The <see cref="IA2AClientBuilder"/> to configure.</param>
/// <param name="baseAddress">The based address of the server to connect to.</param>
/// <param name="configureClientBuilder"> An <see cref="Action{T}"/>, if any, used to configure the <see cref="IHttpClientBuilder"/> used to build the underlying <see cref="HttpClient"/>.</param>
/// <returns>The configured <see cref="IA2AClientBuilder"/>.</returns>
public static IA2AClientBuilder UseHttpTransport(this IA2AClientBuilder builder, Uri baseAddress, Action<IHttpClientBuilder>? configureClientBuilder = null) => UseHttpTransport(builder, httpClient => httpClient.BaseAddress = baseAddress, configureClientBuilder);

}
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<RootNamespace>A2A.Client.Transports</RootNamespace>
<VersionPrefix>0.17.0</VersionPrefix>
<VersionPrefix>0.18.0</VersionPrefix>
<AssemblyVersion>$(VersionPrefix)</AssemblyVersion>
<FileVersion>$(VersionPrefix)</FileVersion>
<NeutralLanguage>en</NeutralLanguage>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,17 +26,36 @@ public static class A2AClientBuilderExtensions
/// Configures the <see cref="IA2AClientBuilder"/> to use the JSON-RPC transport.
/// </summary>
/// <param name="builder">The <see cref="IA2AClientBuilder"/> to configure.</param>
/// <param name="baseAddress">The based address of the server to connect to.</param>
/// <param name="configureClient">An <see cref="Action{T1, T2}"/> used to configure the underlying <see cref="HttpClient"/>.</param>
/// <param name="configureClientBuilder"> An <see cref="Action{T}"/>, if any, used to configure the <see cref="IHttpClientBuilder"/> used to build the underlying <see cref="HttpClient"/>.</param>
/// <returns>The configured <see cref="IA2AClientBuilder"/>.</returns>
public static IA2AClientBuilder UseJsonRpcTransport(this IA2AClientBuilder builder, Uri baseAddress)
public static IA2AClientBuilder UseJsonRpcTransport(this IA2AClientBuilder builder, Action<IServiceProvider, HttpClient> configureClient, Action<IHttpClientBuilder>? configureClientBuilder = null)
{
builder.Services.AddHttpClient<A2AJsonRpcClientTransport>(httpClient =>
var httpClientBuilder = builder.Services.AddHttpClient<IA2AClientTransport, A2AJsonRpcClientTransport>((provider, httpClient) =>
{
httpClient.BaseAddress = baseAddress;
httpClient.DefaultRequestHeaders.Add("A2A-Version", A2AProtocolVersion.Latest);
configureClient(provider, httpClient);
});
builder.Services.AddSingleton<IA2AClientTransport>(provider => provider.GetRequiredService<A2AJsonRpcClientTransport>());
configureClientBuilder?.Invoke(httpClientBuilder);
return builder.UseTransport<A2AJsonRpcClientTransport>();
}

/// <summary>
/// Configures the <see cref="IA2AClientBuilder"/> to use the JSON-RPC transport.
/// </summary>
/// <param name="builder">The <see cref="IA2AClientBuilder"/> to configure.</param>
/// <param name="configureClient">An <see cref="Action{T}"/> used to configure the underlying <see cref="HttpClient"/>.</param>
/// <param name="configureClientBuilder"> An <see cref="Action{T}"/>, if any, used to configure the <see cref="IHttpClientBuilder"/> used to build the underlying <see cref="HttpClient"/>.</param>
/// <returns>The configured <see cref="IA2AClientBuilder"/>.</returns>
public static IA2AClientBuilder UseJsonRpcTransport(this IA2AClientBuilder builder, Action<HttpClient> configureClient, Action<IHttpClientBuilder>? configureClientBuilder = null) => UseJsonRpcTransport(builder, (_, httpClient) => configureClient(httpClient), configureClientBuilder);

/// <summary>
/// Configures the <see cref="IA2AClientBuilder"/> to use the JSON-RPC transport.
/// </summary>
/// <param name="builder">The <see cref="IA2AClientBuilder"/> to configure.</param>
/// <param name="baseAddress">The based address of the server to connect to.</param>
/// <param name="configureClientBuilder"> An <see cref="Action{T}"/>, if any, used to configure the <see cref="IHttpClientBuilder"/> used to build the underlying <see cref="HttpClient"/>.</param>
/// <returns>The configured <see cref="IA2AClientBuilder"/>.</returns>
public static IA2AClientBuilder UseJsonRpcTransport(this IA2AClientBuilder builder, Uri baseAddress, Action<IHttpClientBuilder>? configureClientBuilder = null) => UseJsonRpcTransport(builder, httpClient => httpClient.BaseAddress = baseAddress, configureClientBuilder);

}
2 changes: 1 addition & 1 deletion src/A2A.Client/A2A.Client.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<RootNamespace>A2A.Client</RootNamespace>
<VersionPrefix>0.17.0</VersionPrefix>
<VersionPrefix>0.18.0</VersionPrefix>
<AssemblyVersion>$(VersionPrefix)</AssemblyVersion>
<FileVersion>$(VersionPrefix)</FileVersion>
<NeutralLanguage>en</NeutralLanguage>
Expand Down
2 changes: 1 addition & 1 deletion src/A2A.Core.JsonRpc/A2A.Core.JsonRpc.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<RootNamespace>A2A</RootNamespace>
<VersionPrefix>0.17.0</VersionPrefix>
<VersionPrefix>0.18.0</VersionPrefix>
<AssemblyVersion>$(VersionPrefix)</AssemblyVersion>
<FileVersion>$(VersionPrefix)</FileVersion>
<NeutralLanguage>en</NeutralLanguage>
Expand Down
2 changes: 1 addition & 1 deletion src/A2A.Core/A2A.Core.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<RootNamespace>A2A</RootNamespace>
<VersionPrefix>0.17.0</VersionPrefix>
<VersionPrefix>0.18.0</VersionPrefix>
<AssemblyVersion>$(VersionPrefix)</AssemblyVersion>
<FileVersion>$(VersionPrefix)</FileVersion>
<NeutralLanguage>en</NeutralLanguage>
Expand Down
2 changes: 1 addition & 1 deletion src/A2A.Extensions.A2UI/A2A.Extensions.A2UI.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<RootNamespace>A2A.Extensions</RootNamespace>
<VersionPrefix>0.17.0</VersionPrefix>
<VersionPrefix>0.18.0</VersionPrefix>
<AssemblyVersion>$(VersionPrefix)</AssemblyVersion>
<FileVersion>$(VersionPrefix)</FileVersion>
<NeutralLanguage>en</NeutralLanguage>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<RootNamespace>A2A.Server</RootNamespace>
<VersionPrefix>0.17.0</VersionPrefix>
<VersionPrefix>0.18.0</VersionPrefix>
<AssemblyVersion>$(VersionPrefix)</AssemblyVersion>
<FileVersion>$(VersionPrefix)</FileVersion>
<NeutralLanguage>en</NeutralLanguage>
Expand Down
2 changes: 1 addition & 1 deletion src/A2A.Server.AspNetCore/A2A.Server.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<RootNamespace>A2A.Server</RootNamespace>
<VersionPrefix>0.17.0</VersionPrefix>
<VersionPrefix>0.18.0</VersionPrefix>
<AssemblyVersion>$(VersionPrefix)</AssemblyVersion>
<FileVersion>$(VersionPrefix)</FileVersion>
<NeutralLanguage>en</NeutralLanguage>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<RootNamespace>A2A.Server</RootNamespace>
<VersionPrefix>0.17.0</VersionPrefix>
<VersionPrefix>0.18.0</VersionPrefix>
<AssemblyVersion>$(VersionPrefix)</AssemblyVersion>
<FileVersion>$(VersionPrefix)</FileVersion>
<NeutralLanguage>en</NeutralLanguage>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<RootNamespace>A2A.Server</RootNamespace>
<VersionPrefix>0.17.0</VersionPrefix>
<VersionPrefix>0.18.0</VersionPrefix>
<AssemblyVersion>$(VersionPrefix)</AssemblyVersion>
<FileVersion>$(VersionPrefix)</FileVersion>
<NeutralLanguage>en</NeutralLanguage>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<RootNamespace>A2A.Server</RootNamespace>
<VersionPrefix>0.17.0</VersionPrefix>
<VersionPrefix>0.18.0</VersionPrefix>
<AssemblyVersion>$(VersionPrefix)</AssemblyVersion>
<FileVersion>$(VersionPrefix)</FileVersion>
<NeutralLanguage>en</NeutralLanguage>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<RootNamespace>A2A.Server</RootNamespace>
<VersionPrefix>0.17.0</VersionPrefix>
<VersionPrefix>0.18.0</VersionPrefix>
<AssemblyVersion>$(VersionPrefix)</AssemblyVersion>
<FileVersion>$(VersionPrefix)</FileVersion>
<NeutralLanguage>en</NeutralLanguage>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<RootNamespace>A2A.Server.Transports</RootNamespace>
<VersionPrefix>0.17.0</VersionPrefix>
<VersionPrefix>0.18.0</VersionPrefix>
<AssemblyVersion>$(VersionPrefix)</AssemblyVersion>
<FileVersion>$(VersionPrefix)</FileVersion>
<NeutralLanguage>en</NeutralLanguage>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<RootNamespace>A2A.Server.Transports</RootNamespace>
<VersionPrefix>0.17.0</VersionPrefix>
<VersionPrefix>0.18.0</VersionPrefix>
<AssemblyVersion>$(VersionPrefix)</AssemblyVersion>
<FileVersion>$(VersionPrefix)</FileVersion>
<NeutralLanguage>en</NeutralLanguage>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<RootNamespace>A2A.Server.Transports</RootNamespace>
<VersionPrefix>0.17.0</VersionPrefix>
<VersionPrefix>0.18.0</VersionPrefix>
<AssemblyVersion>$(VersionPrefix)</AssemblyVersion>
<FileVersion>$(VersionPrefix)</FileVersion>
<NeutralLanguage>en</NeutralLanguage>
Expand Down