diff --git a/dotnet/src/Microsoft.AutoGen/AgentChat/Abstractions/Termination.cs b/dotnet/src/Microsoft.AutoGen/AgentChat/Abstractions/Termination.cs index 21027cc36..f2ca40362 100644 --- a/dotnet/src/Microsoft.AutoGen/AgentChat/Abstractions/Termination.cs +++ b/dotnet/src/Microsoft.AutoGen/AgentChat/Abstractions/Termination.cs @@ -1,6 +1,3 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Termination.cs - namespace Microsoft.AutoGen.AgentChat.Abstractions; public static class TerminationConditionExtensions diff --git a/dotnet/src/Microsoft.AutoGen/AgentChat/Terminations/ExternalTermination.cs b/dotnet/src/Microsoft.AutoGen/AgentChat/Terminations/ExternalTermination.cs index 9d2155ce0..9b582aeea 100644 --- a/dotnet/src/Microsoft.AutoGen/AgentChat/Terminations/ExternalTermination.cs +++ b/dotnet/src/Microsoft.AutoGen/AgentChat/Terminations/ExternalTermination.cs @@ -1,6 +1,3 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// ExternalTermination.cs - using Microsoft.AutoGen.AgentChat.Abstractions; namespace Microsoft.AutoGen.AgentChat.Terminations; diff --git a/dotnet/src/Microsoft.AutoGen/AgentChat/Terminations/FunctionCallTermination.cs b/dotnet/src/Microsoft.AutoGen/AgentChat/Terminations/FunctionCallTermination.cs index 20dd93769..e90aa3c3c 100644 --- a/dotnet/src/Microsoft.AutoGen/AgentChat/Terminations/FunctionCallTermination.cs +++ b/dotnet/src/Microsoft.AutoGen/AgentChat/Terminations/FunctionCallTermination.cs @@ -1,6 +1,3 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// FunctionCallTermination.cs - using Microsoft.AutoGen.AgentChat.Abstractions; namespace Microsoft.AutoGen.AgentChat.Terminations; diff --git a/dotnet/src/Microsoft.AutoGen/AgentChat/Terminations/HandoffTermination.cs b/dotnet/src/Microsoft.AutoGen/AgentChat/Terminations/HandoffTermination.cs index 229466963..3e0a926b5 100644 --- a/dotnet/src/Microsoft.AutoGen/AgentChat/Terminations/HandoffTermination.cs +++ b/dotnet/src/Microsoft.AutoGen/AgentChat/Terminations/HandoffTermination.cs @@ -1,6 +1,3 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// HandoffTermination.cs - using Microsoft.AutoGen.AgentChat.Abstractions; namespace Microsoft.AutoGen.AgentChat.Terminations; diff --git a/dotnet/src/Microsoft.AutoGen/AgentChat/Terminations/SourceMatchTermination.cs b/dotnet/src/Microsoft.AutoGen/AgentChat/Terminations/SourceMatchTermination.cs index e938e0e78..3cf51a8cd 100644 --- a/dotnet/src/Microsoft.AutoGen/AgentChat/Terminations/SourceMatchTermination.cs +++ b/dotnet/src/Microsoft.AutoGen/AgentChat/Terminations/SourceMatchTermination.cs @@ -1,6 +1,3 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// SourceMatchTermination.cs - using Microsoft.AutoGen.AgentChat.Abstractions; namespace Microsoft.AutoGen.AgentChat.Terminations; diff --git a/dotnet/src/Microsoft.AutoGen/AgentChat/Terminations/StopMessageTermination.cs b/dotnet/src/Microsoft.AutoGen/AgentChat/Terminations/StopMessageTermination.cs index 194fe1afe..9402849e5 100644 --- a/dotnet/src/Microsoft.AutoGen/AgentChat/Terminations/StopMessageTermination.cs +++ b/dotnet/src/Microsoft.AutoGen/AgentChat/Terminations/StopMessageTermination.cs @@ -1,6 +1,3 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// StopMessageTermination.cs - using Microsoft.AutoGen.AgentChat.Abstractions; namespace Microsoft.AutoGen.AgentChat.Terminations; diff --git a/dotnet/src/Microsoft.AutoGen/AgentChat/Terminations/TextMentionTermination.cs b/dotnet/src/Microsoft.AutoGen/AgentChat/Terminations/TextMentionTermination.cs index 95684a2bb..fecba2d5a 100644 --- a/dotnet/src/Microsoft.AutoGen/AgentChat/Terminations/TextMentionTermination.cs +++ b/dotnet/src/Microsoft.AutoGen/AgentChat/Terminations/TextMentionTermination.cs @@ -1,6 +1,3 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// TextMentionTermination.cs - using Microsoft.AutoGen.AgentChat.Abstractions; using Microsoft.Extensions.AI; diff --git a/dotnet/src/Microsoft.AutoGen/AgentChat/Terminations/TokenUsageTermination.cs b/dotnet/src/Microsoft.AutoGen/AgentChat/Terminations/TokenUsageTermination.cs index a20ca4da2..090a019bc 100644 --- a/dotnet/src/Microsoft.AutoGen/AgentChat/Terminations/TokenUsageTermination.cs +++ b/dotnet/src/Microsoft.AutoGen/AgentChat/Terminations/TokenUsageTermination.cs @@ -1,6 +1,3 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// TokenUsageTermination.cs - using Microsoft.AutoGen.AgentChat.Abstractions; namespace Microsoft.AutoGen.AgentChat.Terminations; diff --git a/dotnet/test/Microsoft.AutoGen.AgentChat.Tests/TerminationConditionTests.cs b/dotnet/test/Microsoft.AutoGen.AgentChat.Tests/TerminationConditionTests.cs index db54e456a..e84e423ce 100644 --- a/dotnet/test/Microsoft.AutoGen.AgentChat.Tests/TerminationConditionTests.cs +++ b/dotnet/test/Microsoft.AutoGen.AgentChat.Tests/TerminationConditionTests.cs @@ -1,6 +1,3 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// TerminationConditionTests.cs - using FluentAssertions; using Microsoft.AutoGen.AgentChat.Abstractions; using Microsoft.AutoGen.AgentChat.Terminations; @@ -473,4 +470,25 @@ public class TerminationConditionTests termination.Reset(); termination.IsTerminated.Should().BeFalse(); } + + [Fact] + public async Task Test_SourceMatchTermination() + { + SourceMatchTermination termination = new("user", "agent"); + termination.IsTerminated.Should().BeFalse(); + + TextMessage userMessage = new() { Content = "Hello", Source = "user" }; + TextMessage agentMessage = new() { Content = "World", Source = "agent" }; + TextMessage otherMessage = new() { Content = "Hi", Source = "other" }; + + await termination.InvokeExpectingNullAsync([]); + await termination.InvokeExpectingStopAsync([userMessage]); + await termination.InvokeExpectingStopAsync([agentMessage]); + await termination.InvokeExpectingNullAsync([otherMessage]); + + await termination.InvokeExpectingFailureAsync([], reset: false); + + termination.Reset(); + termination.IsTerminated.Should().BeFalse(); + } }