diff --git a/src/HotChocolate/Adapters/src/Adapters.Mcp.Core/McpStorageObserver.cs b/src/HotChocolate/Adapters/src/Adapters.Mcp.Core/McpStorageObserver.cs index 7c9745a2562..5d9aadfe2fa 100644 --- a/src/HotChocolate/Adapters/src/Adapters.Mcp.Core/McpStorageObserver.cs +++ b/src/HotChocolate/Adapters/src/Adapters.Mcp.Core/McpStorageObserver.cs @@ -134,8 +134,7 @@ private void ProcessBatch(IList eventArgs) { switch (eventArg.Type) { - case PromptStorageEventType.Added: - case PromptStorageEventType.Modified: + case PromptStorageEventType.Updated: using (_diagnosticEvents.UpdatePrompts()) { var prompt = PromptFactory.CreatePrompt(eventArg.PromptDefinition!); @@ -175,8 +174,7 @@ private void ProcessBatch(IList eventArgs) { switch (eventArg.Type) { - case OperationToolStorageEventType.Added: - case OperationToolStorageEventType.Modified: + case OperationToolStorageEventType.Updated: using (_diagnosticEvents.UpdateTools()) { var validationResult = diff --git a/src/HotChocolate/Adapters/src/Adapters.Mcp.Core/Storage/OperationToolStorageEventArgs.cs b/src/HotChocolate/Adapters/src/Adapters.Mcp.Core/Storage/OperationToolStorageEventArgs.cs index c646bf71c88..e8478ba3488 100644 --- a/src/HotChocolate/Adapters/src/Adapters.Mcp.Core/Storage/OperationToolStorageEventArgs.cs +++ b/src/HotChocolate/Adapters/src/Adapters.Mcp.Core/Storage/OperationToolStorageEventArgs.cs @@ -5,7 +5,7 @@ namespace HotChocolate.Adapters.Mcp.Storage; /// /// The name of the tool that changed. /// The type of change that occurred. -/// The tool definition. Required for Added/Modified, null for Removed. +/// The tool definition. Required for Updated, null for Removed. public record OperationToolStorageEventArgs( string Name, OperationToolStorageEventType Type, diff --git a/src/HotChocolate/Adapters/src/Adapters.Mcp.Core/Storage/OperationToolStorageEventType.cs b/src/HotChocolate/Adapters/src/Adapters.Mcp.Core/Storage/OperationToolStorageEventType.cs index 5fa8ed1d095..22aad9df47d 100644 --- a/src/HotChocolate/Adapters/src/Adapters.Mcp.Core/Storage/OperationToolStorageEventType.cs +++ b/src/HotChocolate/Adapters/src/Adapters.Mcp.Core/Storage/OperationToolStorageEventType.cs @@ -5,11 +5,8 @@ namespace HotChocolate.Adapters.Mcp.Storage; /// public enum OperationToolStorageEventType { - /// A new tool was added to storage. - Added, - - /// An existing tool was modified in storage. - Modified, + /// A tool was added to or updated in storage. + Updated, /// A tool was removed from storage. Removed diff --git a/src/HotChocolate/Adapters/src/Adapters.Mcp.Core/Storage/PromptStorageEventArgs.cs b/src/HotChocolate/Adapters/src/Adapters.Mcp.Core/Storage/PromptStorageEventArgs.cs index 0da20a6fb94..74c487c87dc 100644 --- a/src/HotChocolate/Adapters/src/Adapters.Mcp.Core/Storage/PromptStorageEventArgs.cs +++ b/src/HotChocolate/Adapters/src/Adapters.Mcp.Core/Storage/PromptStorageEventArgs.cs @@ -5,7 +5,7 @@ namespace HotChocolate.Adapters.Mcp.Storage; /// /// The name of the prompt that changed. /// The type of change that occurred. -/// The prompt definition. Required for Added/Modified, null for Removed. +/// The prompt definition. Required for Updated, null for Removed. public record PromptStorageEventArgs( string Name, PromptStorageEventType Type, diff --git a/src/HotChocolate/Adapters/src/Adapters.Mcp.Core/Storage/PromptStorageEventType.cs b/src/HotChocolate/Adapters/src/Adapters.Mcp.Core/Storage/PromptStorageEventType.cs index bd642f88348..36e4e46a6d8 100644 --- a/src/HotChocolate/Adapters/src/Adapters.Mcp.Core/Storage/PromptStorageEventType.cs +++ b/src/HotChocolate/Adapters/src/Adapters.Mcp.Core/Storage/PromptStorageEventType.cs @@ -5,11 +5,8 @@ namespace HotChocolate.Adapters.Mcp.Storage; /// public enum PromptStorageEventType { - /// A new prompt was added to storage. - Added, - - /// An existing prompt was modified in storage. - Modified, + /// A prompt was added to or updated in storage. + Updated, /// A prompt was removed from storage. Removed diff --git a/src/HotChocolate/Adapters/test/Adapters.Mcp.Tests/TestMcpStorage.cs b/src/HotChocolate/Adapters/test/Adapters.Mcp.Tests/TestMcpStorage.cs index 4ef02621c14..faed98c03df 100644 --- a/src/HotChocolate/Adapters/test/Adapters.Mcp.Tests/TestMcpStorage.cs +++ b/src/HotChocolate/Adapters/test/Adapters.Mcp.Tests/TestMcpStorage.cs @@ -48,46 +48,32 @@ public async Task AddOrUpdatePromptAsync( PromptDefinition promptDefinition, CancellationToken cancellationToken = default) { - PromptStorageEventType type; - await _promptSemaphore.WaitAsync(cancellationToken); - if (_prompts.TryAdd(promptDefinition.Name, promptDefinition)) - { - type = PromptStorageEventType.Added; - } - else + if (!_prompts.TryAdd(promptDefinition.Name, promptDefinition)) { _prompts[promptDefinition.Name] = promptDefinition; - type = PromptStorageEventType.Modified; } _promptSemaphore.Release(); - NotifySubscribers(promptDefinition.Name, promptDefinition, type); + NotifySubscribers(promptDefinition.Name, promptDefinition, PromptStorageEventType.Updated); } public async Task AddOrUpdateToolAsync( OperationToolDefinition toolDefinition, CancellationToken cancellationToken = default) { - OperationToolStorageEventType type; - await _toolSemaphore.WaitAsync(cancellationToken); - if (_tools.TryAdd(toolDefinition.Name, toolDefinition)) - { - type = OperationToolStorageEventType.Added; - } - else + if (!_tools.TryAdd(toolDefinition.Name, toolDefinition)) { _tools[toolDefinition.Name] = toolDefinition; - type = OperationToolStorageEventType.Modified; } _toolSemaphore.Release(); - NotifySubscribers(toolDefinition.Name, toolDefinition, type); + NotifySubscribers(toolDefinition.Name, toolDefinition, OperationToolStorageEventType.Updated); } public IDisposable Subscribe(IObserver observer) @@ -105,7 +91,7 @@ private void NotifySubscribers( PromptDefinition? promptDefinition, PromptStorageEventType type) { - if (type is PromptStorageEventType.Added or PromptStorageEventType.Modified) + if (type is PromptStorageEventType.Updated) { ArgumentNullException.ThrowIfNull(promptDefinition); } @@ -129,7 +115,7 @@ private void NotifySubscribers( OperationToolDefinition? toolDefinition, OperationToolStorageEventType type) { - if (type is OperationToolStorageEventType.Added or OperationToolStorageEventType.Modified) + if (type is OperationToolStorageEventType.Updated) { ArgumentNullException.ThrowIfNull(toolDefinition); }