From 74a1c50f66a0e18e8fb454fa001831378dfe71c9 Mon Sep 17 00:00:00 2001 From: Sipke Schoorstra Date: Sun, 2 Mar 2025 15:55:29 +0100 Subject: [PATCH] Remove Agents projects Deleted Agents projects. These projects are being migrated to elsa-integrations. --- Elsa.sln | 73 --------- .../Elsa.Server.Web/Elsa.Server.Web.csproj | 3 - .../Elsa.ServerAndStudio.Web.csproj | 5 - .../Activities/AgentActivity.cs | 62 -------- .../AgentActivityProvider.cs | 93 ----------- .../Elsa.Agents.Activities.csproj | 14 -- .../Elsa.Agents.Activities.csproj.DotSettings | 2 - .../AgentActivitiesFeatureModuleExtensions.cs | 22 --- .../Features/AgentActivitiesFeature.cs | 29 ---- .../Elsa.Agents.Activities/FodyWeavers.xml | 3 - .../Handlers/RefreshActivityRegistry.cs | 21 --- .../Elsa.Agents.Api/Elsa.Agents.Api.csproj | 14 -- .../Elsa.Agents.Api.csproj.DotSettings | 2 - .../Endpoints/Agents/BulkDelete/Endpoint.cs | 32 ---- .../Endpoints/Agents/Create/Endpoint.cs | 68 --------- .../Endpoints/Agents/Delete/Endpoint.cs | 33 ---- .../Endpoints/Agents/Delete/Request.cs | 8 - .../Agents/GenerateUniqueName/Endpoint.cs | 26 ---- .../Endpoints/Agents/Get/Endpoint.cs | 34 ----- .../Endpoints/Agents/Get/Request.cs | 8 - .../Endpoints/Agents/Invoke/Endpoint.cs | 26 ---- .../Endpoints/Agents/Invoke/Request.cs | 7 - .../Endpoints/Agents/IsUniqueName/Endpoint.cs | 26 ---- .../Endpoints/Agents/List/Endpoint.cs | 29 ---- .../Endpoints/Agents/Update/Endpoint.cs | 66 -------- .../Endpoints/ApiKeys/BulkDelete/Endpoint.cs | 32 ---- .../Endpoints/ApiKeys/Create/Endpoint.cs | 49 ------ .../Endpoints/ApiKeys/Delete/Endpoint.cs | 33 ---- .../Endpoints/ApiKeys/Delete/Request.cs | 8 - .../Endpoints/ApiKeys/Get/Endpoint.cs | 33 ---- .../Endpoints/ApiKeys/Get/Request.cs | 8 - .../Endpoints/ApiKeys/List/Endpoint.cs | 28 ---- .../Endpoints/ApiKeys/Update/Endpoint.cs | 60 -------- .../Endpoints/Plugins/List/Endpoint.cs | 27 ---- .../Endpoints/Services/BulkDelete/Endpoint.cs | 32 ---- .../Endpoints/Services/Create/Endpoint.cs | 50 ------ .../Endpoints/Services/Delete/Endpoint.cs | 33 ---- .../Endpoints/Services/Delete/Request.cs | 8 - .../Endpoints/Services/Get/Endpoint.cs | 33 ---- .../Endpoints/Services/Get/Request.cs | 8 - .../Endpoints/Services/List/Endpoint.cs | 28 ---- .../Endpoints/Services/Update/Endpoint.cs | 60 -------- .../Extensions/AgentDefinitionExtensions.cs | 26 ---- .../Extensions/ModuleExtensions.cs | 19 --- .../Features/AgentsApiFeature.cs | 22 --- src/modules/Elsa.Agents.Api/FodyWeavers.xml | 3 - .../Abstractions/PluginProvider.cs | 6 - .../Contracts/IAgentServiceProvider.cs | 7 - .../Contracts/IKernelConfigProvider.cs | 6 - .../Contracts/IPluginDiscoverer.cs | 6 - .../Contracts/IPluginProvider.cs | 9 -- .../Contracts/IServiceDiscoverer.cs | 6 - .../Elsa.Agents.Core/Elsa.Agents.Core.csproj | 21 --- .../Elsa.Agents.Core.csproj.DotSettings | 9 -- .../Extensions/AgentConfigExtensions.cs | 49 ------ .../Extensions/FunctionResultExtensions.cs | 25 --- .../Extensions/ModuleExtensions.cs | 19 --- .../Extensions/ServiceCollectionExtensions.cs | 16 -- .../Features/AgentsFeature.cs | 40 ----- src/modules/Elsa.Agents.Core/FodyWeavers.xml | 3 - .../Models/InvokeAgentResult.cs | 14 -- .../Models/KernelBuilderContext.cs | 20 --- .../Models/PluginDescriptor.cs | 33 ---- .../Elsa.Agents.Core/Options/AgentsOptions.cs | 8 - .../Plugins/ImageGeneratorPlugin.cs | 39 ----- .../OpenAIChatCompletionProvider.cs | 14 -- .../OpenAITextToImageProvider.cs | 16 -- .../Elsa.Agents.Core/Services/AgentInvoker.cs | 55 ------- .../ConfigurationKernelConfigProvider.cs | 17 --- .../Services/KernelFactory.cs | 113 -------------- .../Services/PluginDiscoverer.cs | 9 -- .../Services/ServiceDiscoverer.cs | 9 -- .../Agents/AgentInputModel.cs | 17 --- .../Elsa.Agents.Models/Agents/AgentModel.cs | 8 - .../ApiKeys/ApiKeyInputModel.cs | 9 -- .../Elsa.Agents.Models/ApiKeys/ApiKeyModel.cs | 8 - .../BulkActions/BulkDeleteRequest.cs | 8 - .../BulkActions/BulkDeleteResponse.cs | 3 - .../Elsa.Agents.Models/Configs/AgentConfig.cs | 17 --- .../Configs/ApiKeyConfig.cs | 10 -- .../Configs/ExecutionSettingsConfig.cs | 13 -- .../Configs/FunctionConfig.cs | 7 - .../Configs/InputVariableConfig.cs | 8 - .../Configs/KernelConfig.cs | 8 - .../Configs/OutputVariableConfig.cs | 7 - .../Configs/ServiceConfig.cs | 8 - .../Elsa.Agents.Models.csproj | 9 -- .../Elsa.Agents.Models.csproj.DotSettings | 8 - .../Elsa.Agents.Models/FodyWeavers.xml | 3 - .../Plugins/PluginDescriptor.cs | 11 -- .../Services/ServiceInputModel.cs | 10 -- .../Services/ServiceModel.cs | 8 - .../UniqueName/GenerateUniqueNameResponse.cs | 3 - .../UniqueName/IsUniqueNameRequest.cs | 11 -- .../UniqueName/IsUniqueNameResponse.cs | 5 - .../AgentsMySqlProvidersExtensions.cs | 22 --- .../DbContextFactories.cs | 15 -- ...rsistence.EntityFrameworkCore.MySql.csproj | 19 --- .../FodyWeavers.xml | 3 - .../20241023123010_V3_3.Designer.cs | 116 -------------- .../Migrations/20241023123010_V3_3.cs | 144 ------------------ .../AgentsDbContextModelSnapshot.cs | 113 -------------- .../efcore-3.3.sh | 1 - .../DbContextFactories.cs | 15 -- ...ence.EntityFrameworkCore.PostgreSql.csproj | 18 --- .../FodyWeavers.xml | 3 - .../20241023122148_V3_3.Designer.cs | 119 --------------- .../Migrations/20241023122148_V3_3.cs | 124 --------------- .../AgentsDbContextModelSnapshot.cs | 116 -------------- .../PostgreSqlProvidersExtensions.cs | 22 --- .../efcore-3.3.sh | 1 - .../DbContextFactories.cs | 15 -- ...tence.EntityFrameworkCore.SqlServer.csproj | 18 --- .../FodyWeavers.xml | 3 - .../20241023123153_V3_3.Designer.cs | 119 --------------- .../Migrations/20241023123153_V3_3.cs | 124 --------------- .../AgentsDbContextModelSnapshot.cs | 116 -------------- .../SqlServerProvidersExtensions.cs | 22 --- .../efcore-3.3.sh | 1 - .../DbContextFactories.cs | 15 -- ...sistence.EntityFrameworkCore.Sqlite.csproj | 19 --- .../FodyWeavers.xml | 3 - .../20241023123129_V3_3.Designer.cs | 113 -------------- .../Migrations/20241023123129_V3_3.cs | 109 ------------- .../AgentsDbContextModelSnapshot.cs | 110 ------------- .../SqliteProvidersExtensions.cs | 28 ---- .../efcore-3.3.sh | 1 - .../Configurations.cs | 32 ---- .../DbContext.cs | 43 ------ .../EFCoreAgentStore.cs | 54 ------- .../EFCoreApiKeyStore.cs | 54 ------- .../EFCoreServiceStore.cs | 54 ------- ...nts.Persistence.EntityFrameworkCore.csproj | 13 -- .../Extensions.cs | 22 --- .../Feature.cs | 38 ----- .../FodyWeavers.xml | 1 - .../Contracts/IAgentManager.cs | 52 ------- .../Contracts/IAgentStore.cs | 42 ----- .../Contracts/IApiKeyStore.cs | 42 ----- .../Contracts/IServiceStore.cs | 42 ----- .../Elsa.Agents.Persistence.csproj | 13 -- ...Elsa.Agents.Persistence.csproj.DotSettings | 2 - .../Entities/AgentDefinition.cs | 11 -- .../Entities/ApiKeyDefinition.cs | 30 ---- .../Entities/ServiceDefinition.cs | 31 ---- .../Extensions/ModuleExtensions.cs | 19 --- .../Features/AgentPersistenceFeature.cs | 60 -------- .../Filters/AgentDefinitionFilter.cs | 20 --- .../Filters/ApiKeyDefinitionFilter.cs | 20 --- .../Filters/ServiceDefinitionFilter.cs | 20 --- .../Elsa.Agents.Persistence/FodyWeavers.xml | 3 - .../Notifications/AgentDefinitionCreated.cs | 6 - .../Notifications/AgentDefinitionDeleted.cs | 6 - .../Notifications/AgentDefinitionUpdated.cs | 6 - .../AgentDefinitionsDeletedInBulk.cs | 5 - .../Services/AgentManager.cs | 77 ---------- .../Services/MemoryAgentStore.cs | 54 ------- .../Services/MemoryApiKeyStore.cs | 54 ------- .../Services/MemoryServiceStore.cs | 54 ------- .../Services/StoreKernelConfigProvider.cs | 18 --- .../Elsa.Workflows.ComponentTests.csproj | 1 - 161 files changed, 4740 deletions(-) delete mode 100644 src/modules/Elsa.Agents.Activities/Activities/AgentActivity.cs delete mode 100644 src/modules/Elsa.Agents.Activities/ActivityProviders/AgentActivityProvider.cs delete mode 100644 src/modules/Elsa.Agents.Activities/Elsa.Agents.Activities.csproj delete mode 100644 src/modules/Elsa.Agents.Activities/Elsa.Agents.Activities.csproj.DotSettings delete mode 100644 src/modules/Elsa.Agents.Activities/Extensions/AgentActivitiesFeatureModuleExtensions.cs delete mode 100644 src/modules/Elsa.Agents.Activities/Features/AgentActivitiesFeature.cs delete mode 100644 src/modules/Elsa.Agents.Activities/FodyWeavers.xml delete mode 100644 src/modules/Elsa.Agents.Activities/Handlers/RefreshActivityRegistry.cs delete mode 100644 src/modules/Elsa.Agents.Api/Elsa.Agents.Api.csproj delete mode 100644 src/modules/Elsa.Agents.Api/Elsa.Agents.Api.csproj.DotSettings delete mode 100644 src/modules/Elsa.Agents.Api/Endpoints/Agents/BulkDelete/Endpoint.cs delete mode 100644 src/modules/Elsa.Agents.Api/Endpoints/Agents/Create/Endpoint.cs delete mode 100644 src/modules/Elsa.Agents.Api/Endpoints/Agents/Delete/Endpoint.cs delete mode 100644 src/modules/Elsa.Agents.Api/Endpoints/Agents/Delete/Request.cs delete mode 100644 src/modules/Elsa.Agents.Api/Endpoints/Agents/GenerateUniqueName/Endpoint.cs delete mode 100644 src/modules/Elsa.Agents.Api/Endpoints/Agents/Get/Endpoint.cs delete mode 100644 src/modules/Elsa.Agents.Api/Endpoints/Agents/Get/Request.cs delete mode 100644 src/modules/Elsa.Agents.Api/Endpoints/Agents/Invoke/Endpoint.cs delete mode 100644 src/modules/Elsa.Agents.Api/Endpoints/Agents/Invoke/Request.cs delete mode 100644 src/modules/Elsa.Agents.Api/Endpoints/Agents/IsUniqueName/Endpoint.cs delete mode 100644 src/modules/Elsa.Agents.Api/Endpoints/Agents/List/Endpoint.cs delete mode 100644 src/modules/Elsa.Agents.Api/Endpoints/Agents/Update/Endpoint.cs delete mode 100644 src/modules/Elsa.Agents.Api/Endpoints/ApiKeys/BulkDelete/Endpoint.cs delete mode 100644 src/modules/Elsa.Agents.Api/Endpoints/ApiKeys/Create/Endpoint.cs delete mode 100644 src/modules/Elsa.Agents.Api/Endpoints/ApiKeys/Delete/Endpoint.cs delete mode 100644 src/modules/Elsa.Agents.Api/Endpoints/ApiKeys/Delete/Request.cs delete mode 100644 src/modules/Elsa.Agents.Api/Endpoints/ApiKeys/Get/Endpoint.cs delete mode 100644 src/modules/Elsa.Agents.Api/Endpoints/ApiKeys/Get/Request.cs delete mode 100644 src/modules/Elsa.Agents.Api/Endpoints/ApiKeys/List/Endpoint.cs delete mode 100644 src/modules/Elsa.Agents.Api/Endpoints/ApiKeys/Update/Endpoint.cs delete mode 100644 src/modules/Elsa.Agents.Api/Endpoints/Plugins/List/Endpoint.cs delete mode 100644 src/modules/Elsa.Agents.Api/Endpoints/Services/BulkDelete/Endpoint.cs delete mode 100644 src/modules/Elsa.Agents.Api/Endpoints/Services/Create/Endpoint.cs delete mode 100644 src/modules/Elsa.Agents.Api/Endpoints/Services/Delete/Endpoint.cs delete mode 100644 src/modules/Elsa.Agents.Api/Endpoints/Services/Delete/Request.cs delete mode 100644 src/modules/Elsa.Agents.Api/Endpoints/Services/Get/Endpoint.cs delete mode 100644 src/modules/Elsa.Agents.Api/Endpoints/Services/Get/Request.cs delete mode 100644 src/modules/Elsa.Agents.Api/Endpoints/Services/List/Endpoint.cs delete mode 100644 src/modules/Elsa.Agents.Api/Endpoints/Services/Update/Endpoint.cs delete mode 100644 src/modules/Elsa.Agents.Api/Extensions/AgentDefinitionExtensions.cs delete mode 100644 src/modules/Elsa.Agents.Api/Extensions/ModuleExtensions.cs delete mode 100644 src/modules/Elsa.Agents.Api/Features/AgentsApiFeature.cs delete mode 100644 src/modules/Elsa.Agents.Api/FodyWeavers.xml delete mode 100644 src/modules/Elsa.Agents.Core/Abstractions/PluginProvider.cs delete mode 100644 src/modules/Elsa.Agents.Core/Contracts/IAgentServiceProvider.cs delete mode 100644 src/modules/Elsa.Agents.Core/Contracts/IKernelConfigProvider.cs delete mode 100644 src/modules/Elsa.Agents.Core/Contracts/IPluginDiscoverer.cs delete mode 100644 src/modules/Elsa.Agents.Core/Contracts/IPluginProvider.cs delete mode 100644 src/modules/Elsa.Agents.Core/Contracts/IServiceDiscoverer.cs delete mode 100644 src/modules/Elsa.Agents.Core/Elsa.Agents.Core.csproj delete mode 100644 src/modules/Elsa.Agents.Core/Elsa.Agents.Core.csproj.DotSettings delete mode 100644 src/modules/Elsa.Agents.Core/Extensions/AgentConfigExtensions.cs delete mode 100644 src/modules/Elsa.Agents.Core/Extensions/FunctionResultExtensions.cs delete mode 100644 src/modules/Elsa.Agents.Core/Extensions/ModuleExtensions.cs delete mode 100644 src/modules/Elsa.Agents.Core/Extensions/ServiceCollectionExtensions.cs delete mode 100644 src/modules/Elsa.Agents.Core/Features/AgentsFeature.cs delete mode 100644 src/modules/Elsa.Agents.Core/FodyWeavers.xml delete mode 100644 src/modules/Elsa.Agents.Core/Models/InvokeAgentResult.cs delete mode 100644 src/modules/Elsa.Agents.Core/Models/KernelBuilderContext.cs delete mode 100644 src/modules/Elsa.Agents.Core/Models/PluginDescriptor.cs delete mode 100644 src/modules/Elsa.Agents.Core/Options/AgentsOptions.cs delete mode 100644 src/modules/Elsa.Agents.Core/Plugins/ImageGeneratorPlugin.cs delete mode 100644 src/modules/Elsa.Agents.Core/ServiceProviders/OpenAIChatCompletionProvider.cs delete mode 100644 src/modules/Elsa.Agents.Core/ServiceProviders/OpenAITextToImageProvider.cs delete mode 100644 src/modules/Elsa.Agents.Core/Services/AgentInvoker.cs delete mode 100644 src/modules/Elsa.Agents.Core/Services/ConfigurationKernelConfigProvider.cs delete mode 100644 src/modules/Elsa.Agents.Core/Services/KernelFactory.cs delete mode 100644 src/modules/Elsa.Agents.Core/Services/PluginDiscoverer.cs delete mode 100644 src/modules/Elsa.Agents.Core/Services/ServiceDiscoverer.cs delete mode 100644 src/modules/Elsa.Agents.Models/Agents/AgentInputModel.cs delete mode 100644 src/modules/Elsa.Agents.Models/Agents/AgentModel.cs delete mode 100644 src/modules/Elsa.Agents.Models/ApiKeys/ApiKeyInputModel.cs delete mode 100644 src/modules/Elsa.Agents.Models/ApiKeys/ApiKeyModel.cs delete mode 100644 src/modules/Elsa.Agents.Models/BulkActions/BulkDeleteRequest.cs delete mode 100644 src/modules/Elsa.Agents.Models/BulkActions/BulkDeleteResponse.cs delete mode 100644 src/modules/Elsa.Agents.Models/Configs/AgentConfig.cs delete mode 100644 src/modules/Elsa.Agents.Models/Configs/ApiKeyConfig.cs delete mode 100644 src/modules/Elsa.Agents.Models/Configs/ExecutionSettingsConfig.cs delete mode 100644 src/modules/Elsa.Agents.Models/Configs/FunctionConfig.cs delete mode 100644 src/modules/Elsa.Agents.Models/Configs/InputVariableConfig.cs delete mode 100644 src/modules/Elsa.Agents.Models/Configs/KernelConfig.cs delete mode 100644 src/modules/Elsa.Agents.Models/Configs/OutputVariableConfig.cs delete mode 100644 src/modules/Elsa.Agents.Models/Configs/ServiceConfig.cs delete mode 100644 src/modules/Elsa.Agents.Models/Elsa.Agents.Models.csproj delete mode 100644 src/modules/Elsa.Agents.Models/Elsa.Agents.Models.csproj.DotSettings delete mode 100644 src/modules/Elsa.Agents.Models/FodyWeavers.xml delete mode 100644 src/modules/Elsa.Agents.Models/Plugins/PluginDescriptor.cs delete mode 100644 src/modules/Elsa.Agents.Models/Services/ServiceInputModel.cs delete mode 100644 src/modules/Elsa.Agents.Models/Services/ServiceModel.cs delete mode 100644 src/modules/Elsa.Agents.Models/UniqueName/GenerateUniqueNameResponse.cs delete mode 100644 src/modules/Elsa.Agents.Models/UniqueName/IsUniqueNameRequest.cs delete mode 100644 src/modules/Elsa.Agents.Models/UniqueName/IsUniqueNameResponse.cs delete mode 100644 src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.MySql/AgentsMySqlProvidersExtensions.cs delete mode 100644 src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.MySql/DbContextFactories.cs delete mode 100644 src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.MySql/Elsa.Agents.Persistence.EntityFrameworkCore.MySql.csproj delete mode 100644 src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.MySql/FodyWeavers.xml delete mode 100644 src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.MySql/Migrations/20241023123010_V3_3.Designer.cs delete mode 100644 src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.MySql/Migrations/20241023123010_V3_3.cs delete mode 100644 src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.MySql/Migrations/AgentsDbContextModelSnapshot.cs delete mode 100644 src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.MySql/efcore-3.3.sh delete mode 100644 src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.PostgreSql/DbContextFactories.cs delete mode 100644 src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.PostgreSql/Elsa.Agents.Persistence.EntityFrameworkCore.PostgreSql.csproj delete mode 100644 src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.PostgreSql/FodyWeavers.xml delete mode 100644 src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.PostgreSql/Migrations/20241023122148_V3_3.Designer.cs delete mode 100644 src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.PostgreSql/Migrations/20241023122148_V3_3.cs delete mode 100644 src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.PostgreSql/Migrations/AgentsDbContextModelSnapshot.cs delete mode 100644 src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.PostgreSql/PostgreSqlProvidersExtensions.cs delete mode 100644 src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.PostgreSql/efcore-3.3.sh delete mode 100644 src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.SqlServer/DbContextFactories.cs delete mode 100644 src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.SqlServer/Elsa.Agents.Persistence.EntityFrameworkCore.SqlServer.csproj delete mode 100644 src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.SqlServer/FodyWeavers.xml delete mode 100644 src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.SqlServer/Migrations/20241023123153_V3_3.Designer.cs delete mode 100644 src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.SqlServer/Migrations/20241023123153_V3_3.cs delete mode 100644 src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.SqlServer/Migrations/AgentsDbContextModelSnapshot.cs delete mode 100644 src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.SqlServer/SqlServerProvidersExtensions.cs delete mode 100644 src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.SqlServer/efcore-3.3.sh delete mode 100644 src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.Sqlite/DbContextFactories.cs delete mode 100644 src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.Sqlite/Elsa.Agents.Persistence.EntityFrameworkCore.Sqlite.csproj delete mode 100644 src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.Sqlite/FodyWeavers.xml delete mode 100644 src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.Sqlite/Migrations/20241023123129_V3_3.Designer.cs delete mode 100644 src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.Sqlite/Migrations/20241023123129_V3_3.cs delete mode 100644 src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.Sqlite/Migrations/AgentsDbContextModelSnapshot.cs delete mode 100644 src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.Sqlite/SqliteProvidersExtensions.cs delete mode 100644 src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.Sqlite/efcore-3.3.sh delete mode 100644 src/modules/Elsa.Agents.Persistence.EntityFrameworkCore/Configurations.cs delete mode 100644 src/modules/Elsa.Agents.Persistence.EntityFrameworkCore/DbContext.cs delete mode 100644 src/modules/Elsa.Agents.Persistence.EntityFrameworkCore/EFCoreAgentStore.cs delete mode 100644 src/modules/Elsa.Agents.Persistence.EntityFrameworkCore/EFCoreApiKeyStore.cs delete mode 100644 src/modules/Elsa.Agents.Persistence.EntityFrameworkCore/EFCoreServiceStore.cs delete mode 100644 src/modules/Elsa.Agents.Persistence.EntityFrameworkCore/Elsa.Agents.Persistence.EntityFrameworkCore.csproj delete mode 100644 src/modules/Elsa.Agents.Persistence.EntityFrameworkCore/Extensions.cs delete mode 100644 src/modules/Elsa.Agents.Persistence.EntityFrameworkCore/Feature.cs delete mode 100644 src/modules/Elsa.Agents.Persistence.EntityFrameworkCore/FodyWeavers.xml delete mode 100644 src/modules/Elsa.Agents.Persistence/Contracts/IAgentManager.cs delete mode 100644 src/modules/Elsa.Agents.Persistence/Contracts/IAgentStore.cs delete mode 100644 src/modules/Elsa.Agents.Persistence/Contracts/IApiKeyStore.cs delete mode 100644 src/modules/Elsa.Agents.Persistence/Contracts/IServiceStore.cs delete mode 100644 src/modules/Elsa.Agents.Persistence/Elsa.Agents.Persistence.csproj delete mode 100644 src/modules/Elsa.Agents.Persistence/Elsa.Agents.Persistence.csproj.DotSettings delete mode 100644 src/modules/Elsa.Agents.Persistence/Entities/AgentDefinition.cs delete mode 100644 src/modules/Elsa.Agents.Persistence/Entities/ApiKeyDefinition.cs delete mode 100644 src/modules/Elsa.Agents.Persistence/Entities/ServiceDefinition.cs delete mode 100644 src/modules/Elsa.Agents.Persistence/Extensions/ModuleExtensions.cs delete mode 100644 src/modules/Elsa.Agents.Persistence/Features/AgentPersistenceFeature.cs delete mode 100644 src/modules/Elsa.Agents.Persistence/Filters/AgentDefinitionFilter.cs delete mode 100644 src/modules/Elsa.Agents.Persistence/Filters/ApiKeyDefinitionFilter.cs delete mode 100644 src/modules/Elsa.Agents.Persistence/Filters/ServiceDefinitionFilter.cs delete mode 100644 src/modules/Elsa.Agents.Persistence/FodyWeavers.xml delete mode 100644 src/modules/Elsa.Agents.Persistence/Notifications/AgentDefinitionCreated.cs delete mode 100644 src/modules/Elsa.Agents.Persistence/Notifications/AgentDefinitionDeleted.cs delete mode 100644 src/modules/Elsa.Agents.Persistence/Notifications/AgentDefinitionUpdated.cs delete mode 100644 src/modules/Elsa.Agents.Persistence/Notifications/AgentDefinitionsDeletedInBulk.cs delete mode 100644 src/modules/Elsa.Agents.Persistence/Services/AgentManager.cs delete mode 100644 src/modules/Elsa.Agents.Persistence/Services/MemoryAgentStore.cs delete mode 100644 src/modules/Elsa.Agents.Persistence/Services/MemoryApiKeyStore.cs delete mode 100644 src/modules/Elsa.Agents.Persistence/Services/MemoryServiceStore.cs delete mode 100644 src/modules/Elsa.Agents.Persistence/Services/StoreKernelConfigProvider.cs diff --git a/Elsa.sln b/Elsa.sln index da6a4349e..23d1ee4cc 100644 --- a/Elsa.sln +++ b/Elsa.sln @@ -298,16 +298,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "trace-lens", "trace-lens", EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "integrations", "integrations", "{EBD0CF78-C5D7-4B4B-94C9-C5D8C20B6F59}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "agents", "agents", "{50470834-4CD8-479A-8B58-0A1869BA5D37}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Elsa.Agents.Core", "src\modules\Elsa.Agents.Core\Elsa.Agents.Core.csproj", "{5BD671F0-9603-4C2F-8364-54B02986EAA2}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Elsa.Agents.Api", "src\modules\Elsa.Agents.Api\Elsa.Agents.Api.csproj", "{154525CD-3726-45B7-9A9C-553BBC60EB10}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Elsa.Agents.Activities", "src\modules\Elsa.Agents.Activities\Elsa.Agents.Activities.csproj", "{F620D7DC-B58D-4BD0-81A2-E88A2C1E4833}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Elsa.Agents.Persistence.EntityFrameworkCore", "src\modules\Elsa.Agents.Persistence.EntityFrameworkCore\Elsa.Agents.Persistence.EntityFrameworkCore.csproj", "{6FE60BB4-DE6A-485C-A38A-1317C56AF2DA}" -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Elsa.Secrets.Core", "src\modules\Elsa.Secrets.Core\Elsa.Secrets.Core.csproj", "{34FAB60D-7259-47B9-B50E-B533C7C3CFEC}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "secrets", "secrets", "{8CEEC194-820A-4C8D-AB9E-E51E6D3E9CC1}" @@ -316,10 +306,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Elsa.Secrets.Management", " EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Elsa.Secrets.Api", "src\modules\Elsa.Secrets.Api\Elsa.Secrets.Api.csproj", "{37D16EAF-ACD8-4105-8BD3-B2745819CFF8}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Elsa.Agents.Persistence", "src\modules\Elsa.Agents.Persistence\Elsa.Agents.Persistence.csproj", "{CFEC357F-0863-4458-A6C4-5D7AA0E44759}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Elsa.Agents.Persistence.EntityFrameworkCore.Sqlite", "src\modules\Elsa.Agents.Persistence.EntityFrameworkCore.Sqlite\Elsa.Agents.Persistence.EntityFrameworkCore.Sqlite.csproj", "{E75762D2-FD12-4165-810B-628C28CB2562}" -EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "migrations", "migrations", "{3666CF13-1353-4620-9472-506670214A6A}" ProjectSection(SolutionItems) = preProject scripts\migrations\efcore-3.0.sh = scripts\migrations\efcore-3.0.sh @@ -344,16 +330,10 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "elsa-studio", "elsa-studio" scripts\k8s\elsa-studio\service.yaml = scripts\k8s\elsa-studio\service.yaml EndProjectSection EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Elsa.Agents.Models", "src\modules\Elsa.Agents.Models\Elsa.Agents.Models.csproj", "{052C4F97-5909-4D88-AA49-4B0D9058A0A9}" -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Elsa.Secrets.Persistence.EntityFrameworkCore", "src\modules\Elsa.Secrets.Persistence.EntityFrameworkCore\Elsa.Secrets.Persistence.EntityFrameworkCore.csproj", "{9A6D67DE-51B1-456D-B25D-19E0356C8F60}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Elsa.Secrets.Persistence.EntityFrameworkCore.Sqlite", "src\modules\Elsa.Secrets.Persistence.EntityFrameworkCore.Sqlite\Elsa.Secrets.Persistence.EntityFrameworkCore.Sqlite.csproj", "{44A03CF6-4EB6-434C-90D1-FF8142FE394E}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Elsa.Agents.Persistence.EntityFrameworkCore.SqlServer", "src\modules\Elsa.Agents.Persistence.EntityFrameworkCore.SqlServer\Elsa.Agents.Persistence.EntityFrameworkCore.SqlServer.csproj", "{A9140976-DFF9-432A-B1DC-E188A07C49E5}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Elsa.Agents.Persistence.EntityFrameworkCore.MySql", "src\modules\Elsa.Agents.Persistence.EntityFrameworkCore.MySql\Elsa.Agents.Persistence.EntityFrameworkCore.MySql.csproj", "{B3046301-6F00-4885-8B01-080BD489055C}" -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Elsa.Secrets.Models", "src\modules\Elsa.Secrets.Models\Elsa.Secrets.Models.csproj", "{29D12ADC-55E9-40D0-9E4C-F0EBB6E098EC}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Elsa.Secrets.Scripting", "src\modules\Elsa.Secrets.Scripting\Elsa.Secrets.Scripting.csproj", "{6C606FEB-9A1F-4816-ABE4-22AFA8CEE771}" @@ -368,8 +348,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "multitenancy", "multitenanc EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Elsa.Tenants.AspNetCore", "src\modules\Elsa.Tenants.AspNetCore\Elsa.Tenants.AspNetCore.csproj", "{D5720DBC-8C2B-42D5-9D9F-2FF6EAD4001C}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Elsa.Agents.Persistence.EntityFrameworkCore.PostgreSql", "src\modules\Elsa.Agents.Persistence.EntityFrameworkCore.PostgreSql\Elsa.Agents.Persistence.EntityFrameworkCore.PostgreSql.csproj", "{2B939AC9-03A4-479E-AA0D-CB58F4A7F480}" -EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Elsa.Kafka", "src\modules\Elsa.Kafka\Elsa.Kafka.csproj", "{BF934627-F531-44FB-BEC2-ECA801FF31E7}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "sql", "sql", "{A0DC5F8E-5D7F-4E8A-A5DF-B1FC31F7336E}" @@ -735,22 +713,6 @@ Global {47FBCB04-0C2D-453C-BE2F-7052CAC22524}.Debug|Any CPU.Build.0 = Debug|Any CPU {47FBCB04-0C2D-453C-BE2F-7052CAC22524}.Release|Any CPU.ActiveCfg = Release|Any CPU {47FBCB04-0C2D-453C-BE2F-7052CAC22524}.Release|Any CPU.Build.0 = Release|Any CPU - {5BD671F0-9603-4C2F-8364-54B02986EAA2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5BD671F0-9603-4C2F-8364-54B02986EAA2}.Debug|Any CPU.Build.0 = Debug|Any CPU - {5BD671F0-9603-4C2F-8364-54B02986EAA2}.Release|Any CPU.ActiveCfg = Release|Any CPU - {5BD671F0-9603-4C2F-8364-54B02986EAA2}.Release|Any CPU.Build.0 = Release|Any CPU - {154525CD-3726-45B7-9A9C-553BBC60EB10}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {154525CD-3726-45B7-9A9C-553BBC60EB10}.Debug|Any CPU.Build.0 = Debug|Any CPU - {154525CD-3726-45B7-9A9C-553BBC60EB10}.Release|Any CPU.ActiveCfg = Release|Any CPU - {154525CD-3726-45B7-9A9C-553BBC60EB10}.Release|Any CPU.Build.0 = Release|Any CPU - {F620D7DC-B58D-4BD0-81A2-E88A2C1E4833}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F620D7DC-B58D-4BD0-81A2-E88A2C1E4833}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F620D7DC-B58D-4BD0-81A2-E88A2C1E4833}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F620D7DC-B58D-4BD0-81A2-E88A2C1E4833}.Release|Any CPU.Build.0 = Release|Any CPU - {6FE60BB4-DE6A-485C-A38A-1317C56AF2DA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {6FE60BB4-DE6A-485C-A38A-1317C56AF2DA}.Debug|Any CPU.Build.0 = Debug|Any CPU - {6FE60BB4-DE6A-485C-A38A-1317C56AF2DA}.Release|Any CPU.ActiveCfg = Release|Any CPU - {6FE60BB4-DE6A-485C-A38A-1317C56AF2DA}.Release|Any CPU.Build.0 = Release|Any CPU {34FAB60D-7259-47B9-B50E-B533C7C3CFEC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {34FAB60D-7259-47B9-B50E-B533C7C3CFEC}.Debug|Any CPU.Build.0 = Debug|Any CPU {34FAB60D-7259-47B9-B50E-B533C7C3CFEC}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -763,18 +725,6 @@ Global {37D16EAF-ACD8-4105-8BD3-B2745819CFF8}.Debug|Any CPU.Build.0 = Debug|Any CPU {37D16EAF-ACD8-4105-8BD3-B2745819CFF8}.Release|Any CPU.ActiveCfg = Release|Any CPU {37D16EAF-ACD8-4105-8BD3-B2745819CFF8}.Release|Any CPU.Build.0 = Release|Any CPU - {CFEC357F-0863-4458-A6C4-5D7AA0E44759}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {CFEC357F-0863-4458-A6C4-5D7AA0E44759}.Debug|Any CPU.Build.0 = Debug|Any CPU - {CFEC357F-0863-4458-A6C4-5D7AA0E44759}.Release|Any CPU.ActiveCfg = Release|Any CPU - {CFEC357F-0863-4458-A6C4-5D7AA0E44759}.Release|Any CPU.Build.0 = Release|Any CPU - {E75762D2-FD12-4165-810B-628C28CB2562}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E75762D2-FD12-4165-810B-628C28CB2562}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E75762D2-FD12-4165-810B-628C28CB2562}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E75762D2-FD12-4165-810B-628C28CB2562}.Release|Any CPU.Build.0 = Release|Any CPU - {052C4F97-5909-4D88-AA49-4B0D9058A0A9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {052C4F97-5909-4D88-AA49-4B0D9058A0A9}.Debug|Any CPU.Build.0 = Debug|Any CPU - {052C4F97-5909-4D88-AA49-4B0D9058A0A9}.Release|Any CPU.ActiveCfg = Release|Any CPU - {052C4F97-5909-4D88-AA49-4B0D9058A0A9}.Release|Any CPU.Build.0 = Release|Any CPU {9A6D67DE-51B1-456D-B25D-19E0356C8F60}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {9A6D67DE-51B1-456D-B25D-19E0356C8F60}.Debug|Any CPU.Build.0 = Debug|Any CPU {9A6D67DE-51B1-456D-B25D-19E0356C8F60}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -783,14 +733,6 @@ Global {44A03CF6-4EB6-434C-90D1-FF8142FE394E}.Debug|Any CPU.Build.0 = Debug|Any CPU {44A03CF6-4EB6-434C-90D1-FF8142FE394E}.Release|Any CPU.ActiveCfg = Release|Any CPU {44A03CF6-4EB6-434C-90D1-FF8142FE394E}.Release|Any CPU.Build.0 = Release|Any CPU - {A9140976-DFF9-432A-B1DC-E188A07C49E5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A9140976-DFF9-432A-B1DC-E188A07C49E5}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A9140976-DFF9-432A-B1DC-E188A07C49E5}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A9140976-DFF9-432A-B1DC-E188A07C49E5}.Release|Any CPU.Build.0 = Release|Any CPU - {B3046301-6F00-4885-8B01-080BD489055C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B3046301-6F00-4885-8B01-080BD489055C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B3046301-6F00-4885-8B01-080BD489055C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B3046301-6F00-4885-8B01-080BD489055C}.Release|Any CPU.Build.0 = Release|Any CPU {29D12ADC-55E9-40D0-9E4C-F0EBB6E098EC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {29D12ADC-55E9-40D0-9E4C-F0EBB6E098EC}.Debug|Any CPU.Build.0 = Debug|Any CPU {29D12ADC-55E9-40D0-9E4C-F0EBB6E098EC}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -815,10 +757,6 @@ Global {D5720DBC-8C2B-42D5-9D9F-2FF6EAD4001C}.Debug|Any CPU.Build.0 = Debug|Any CPU {D5720DBC-8C2B-42D5-9D9F-2FF6EAD4001C}.Release|Any CPU.ActiveCfg = Release|Any CPU {D5720DBC-8C2B-42D5-9D9F-2FF6EAD4001C}.Release|Any CPU.Build.0 = Release|Any CPU - {2B939AC9-03A4-479E-AA0D-CB58F4A7F480}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2B939AC9-03A4-479E-AA0D-CB58F4A7F480}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2B939AC9-03A4-479E-AA0D-CB58F4A7F480}.Release|Any CPU.ActiveCfg = Release|Any CPU - {2B939AC9-03A4-479E-AA0D-CB58F4A7F480}.Release|Any CPU.Build.0 = Release|Any CPU {BF934627-F531-44FB-BEC2-ECA801FF31E7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {BF934627-F531-44FB-BEC2-ECA801FF31E7}.Debug|Any CPU.Build.0 = Debug|Any CPU {BF934627-F531-44FB-BEC2-ECA801FF31E7}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -978,25 +916,15 @@ Global {6DDB9ECF-D454-4894-A262-A6BB3026E61E} = {B32DB9B2-AD6C-48A5-8682-4373CB045185} {16B570BC-E293-4A19-B20E-5C97BAF8476B} = {B32DB9B2-AD6C-48A5-8682-4373CB045185} {EBD0CF78-C5D7-4B4B-94C9-C5D8C20B6F59} = {5BA4A8FA-F7F4-45B3-AEC8-8886D35AAC79} - {50470834-4CD8-479A-8B58-0A1869BA5D37} = {5BA4A8FA-F7F4-45B3-AEC8-8886D35AAC79} - {5BD671F0-9603-4C2F-8364-54B02986EAA2} = {50470834-4CD8-479A-8B58-0A1869BA5D37} - {154525CD-3726-45B7-9A9C-553BBC60EB10} = {50470834-4CD8-479A-8B58-0A1869BA5D37} - {F620D7DC-B58D-4BD0-81A2-E88A2C1E4833} = {50470834-4CD8-479A-8B58-0A1869BA5D37} - {6FE60BB4-DE6A-485C-A38A-1317C56AF2DA} = {50470834-4CD8-479A-8B58-0A1869BA5D37} {34FAB60D-7259-47B9-B50E-B533C7C3CFEC} = {8CEEC194-820A-4C8D-AB9E-E51E6D3E9CC1} {8CEEC194-820A-4C8D-AB9E-E51E6D3E9CC1} = {5BA4A8FA-F7F4-45B3-AEC8-8886D35AAC79} {19329441-2A59-4BAC-A1BE-BBAB70C93CA0} = {8CEEC194-820A-4C8D-AB9E-E51E6D3E9CC1} {37D16EAF-ACD8-4105-8BD3-B2745819CFF8} = {8CEEC194-820A-4C8D-AB9E-E51E6D3E9CC1} - {CFEC357F-0863-4458-A6C4-5D7AA0E44759} = {50470834-4CD8-479A-8B58-0A1869BA5D37} - {E75762D2-FD12-4165-810B-628C28CB2562} = {50470834-4CD8-479A-8B58-0A1869BA5D37} {3666CF13-1353-4620-9472-506670214A6A} = {C80C8231-D35C-4ACC-9ED6-9F3DB221535E} {AA5ACF15-8647-4AC9-B9F5-73FCB92BE7E3} = {C80C8231-D35C-4ACC-9ED6-9F3DB221535E} {DFFE6199-B5A7-4BA8-A5E1-77D0426C6468} = {B32DB9B2-AD6C-48A5-8682-4373CB045185} - {052C4F97-5909-4D88-AA49-4B0D9058A0A9} = {50470834-4CD8-479A-8B58-0A1869BA5D37} {9A6D67DE-51B1-456D-B25D-19E0356C8F60} = {8CEEC194-820A-4C8D-AB9E-E51E6D3E9CC1} {44A03CF6-4EB6-434C-90D1-FF8142FE394E} = {8CEEC194-820A-4C8D-AB9E-E51E6D3E9CC1} - {A9140976-DFF9-432A-B1DC-E188A07C49E5} = {50470834-4CD8-479A-8B58-0A1869BA5D37} - {B3046301-6F00-4885-8B01-080BD489055C} = {50470834-4CD8-479A-8B58-0A1869BA5D37} {29D12ADC-55E9-40D0-9E4C-F0EBB6E098EC} = {8CEEC194-820A-4C8D-AB9E-E51E6D3E9CC1} {6C606FEB-9A1F-4816-ABE4-22AFA8CEE771} = {8CEEC194-820A-4C8D-AB9E-E51E6D3E9CC1} {5F80663C-B072-49DE-9A67-FD804BAD787E} = {6EF07978-A6D2-40EB-891D-7D70C5F37E76} @@ -1004,7 +932,6 @@ Global {59E7614A-3630-4C39-9C7F-9E12BC95D37E} = {8CEEC194-820A-4C8D-AB9E-E51E6D3E9CC1} {2F3E1026-5054-4E1F-899B-F1A7F70F9912} = {5BA4A8FA-F7F4-45B3-AEC8-8886D35AAC79} {D5720DBC-8C2B-42D5-9D9F-2FF6EAD4001C} = {2F3E1026-5054-4E1F-899B-F1A7F70F9912} - {2B939AC9-03A4-479E-AA0D-CB58F4A7F480} = {50470834-4CD8-479A-8B58-0A1869BA5D37} {BF934627-F531-44FB-BEC2-ECA801FF31E7} = {DD089B8B-DA73-492A-9010-F772D1C178DA} {A0DC5F8E-5D7F-4E8A-A5DF-B1FC31F7336E} = {5BA4A8FA-F7F4-45B3-AEC8-8886D35AAC79} {FD3CD5A8-E9B3-467F-90EB-2B7D5B83F348} = {A0DC5F8E-5D7F-4E8A-A5DF-B1FC31F7336E} diff --git a/src/apps/Elsa.Server.Web/Elsa.Server.Web.csproj b/src/apps/Elsa.Server.Web/Elsa.Server.Web.csproj index 129bd9914..e48fa21f3 100644 --- a/src/apps/Elsa.Server.Web/Elsa.Server.Web.csproj +++ b/src/apps/Elsa.Server.Web/Elsa.Server.Web.csproj @@ -1,10 +1,7 @@  - - - diff --git a/src/apps/Elsa.ServerAndStudio.Web/Elsa.ServerAndStudio.Web.csproj b/src/apps/Elsa.ServerAndStudio.Web/Elsa.ServerAndStudio.Web.csproj index 7df79071e..3ea5601f3 100644 --- a/src/apps/Elsa.ServerAndStudio.Web/Elsa.ServerAndStudio.Web.csproj +++ b/src/apps/Elsa.ServerAndStudio.Web/Elsa.ServerAndStudio.Web.csproj @@ -7,12 +7,7 @@ - - - - - diff --git a/src/modules/Elsa.Agents.Activities/Activities/AgentActivity.cs b/src/modules/Elsa.Agents.Activities/Activities/AgentActivity.cs deleted file mode 100644 index 6e20bf054..000000000 --- a/src/modules/Elsa.Agents.Activities/Activities/AgentActivity.cs +++ /dev/null @@ -1,62 +0,0 @@ -using System.ComponentModel; -using System.Dynamic; -using System.Text.Encodings.Web; -using System.Text.Json; -using System.Text.Json.Serialization; -using System.Text.Unicode; -using Elsa.Agents.Activities.ActivityProviders; -using Elsa.Expressions.Helpers; -using Elsa.Extensions; -using Elsa.Workflows; -using Elsa.Workflows.Models; -using Elsa.Workflows.Serialization.Converters; - -namespace Elsa.Agents.Activities; - -/// -/// An activity that executes a function of a skilled agent. This is an internal activity that is used by . -/// -[Browsable(false)] -public class AgentActivity : CodeActivity -{ - private static JsonSerializerOptions? _serializerOptions; - - private static JsonSerializerOptions SerializerOptions => - _serializerOptions ??= new JsonSerializerOptions - { - Encoder = JavaScriptEncoder.Create(UnicodeRanges.All), - PropertyNameCaseInsensitive = true - }.WithConverters(new ExpandoObjectConverterFactory()); - - [JsonIgnore] internal string AgentName { get; set; } = default!; - - /// - protected override async ValueTask ExecuteAsync(ActivityExecutionContext context) - { - var activityDescriptor = context.ActivityDescriptor; - var inputDescriptors = activityDescriptor.Inputs; - var functionInput = new Dictionary(); - - foreach (var inputDescriptor in inputDescriptors) - { - var input = (Input?)inputDescriptor.ValueGetter(this); - var inputValue = input != null ? context.Get(input.MemoryBlockReference()) : default; - functionInput[inputDescriptor.Name] = inputValue; - } - - var agentInvoker = context.GetRequiredService(); - var result = await agentInvoker.InvokeAgentAsync(AgentName, functionInput, context.CancellationToken); - var json = result.FunctionResult.GetValue(); - var outputType = context.ActivityDescriptor.Outputs.Single().Type; - - // If the target type is object, we want the JSON to be deserialized into an ExpandoObject for dynamic field access. - if (outputType == typeof(object)) - outputType = typeof(ExpandoObject); - - var converterOptions = new ObjectConverterOptions(SerializerOptions); - var outputValue = json.ConvertTo(outputType, converterOptions); - var outputDescriptor = activityDescriptor.Outputs.Single(); - var output = (Output)outputDescriptor.ValueGetter(this); - context.Set(output, outputValue); - } -} \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Activities/ActivityProviders/AgentActivityProvider.cs b/src/modules/Elsa.Agents.Activities/ActivityProviders/AgentActivityProvider.cs deleted file mode 100644 index 82b97df7a..000000000 --- a/src/modules/Elsa.Agents.Activities/ActivityProviders/AgentActivityProvider.cs +++ /dev/null @@ -1,93 +0,0 @@ -using Elsa.Expressions.Contracts; -using Elsa.Expressions.Extensions; -using Elsa.Extensions; -using Elsa.Workflows; -using Elsa.Workflows.Models; -using Humanizer; -using JetBrains.Annotations; - -namespace Elsa.Agents.Activities.ActivityProviders; - -/// -/// Provides activities for each function of registered agents. -/// -[UsedImplicitly] -public class AgentActivityProvider( - IKernelConfigProvider kernelConfigProvider, - IActivityDescriber activityDescriber, - IActivityFactory activityFactory, - IWellKnownTypeRegistry wellKnownTypeRegistry -) : IActivityProvider -{ - /// - public async ValueTask> GetDescriptorsAsync(CancellationToken cancellationToken = default) - { - var kernelConfig = await kernelConfigProvider.GetKernelConfigAsync(cancellationToken); - var agents = kernelConfig.Agents; - var activityDescriptors = new List(); - - foreach (var kvp in agents) - { - var agentConfig = kvp.Value; - var activityDescriptor = await activityDescriber.DescribeActivityAsync(typeof(AgentActivity), cancellationToken); - var activityTypeName = $"Elsa.Agents.{agentConfig.Name.Pascalize()}"; - activityDescriptor.Name = agentConfig.Name.Pascalize(); - activityDescriptor.TypeName = activityTypeName; - activityDescriptor.Description = agentConfig.Description; - activityDescriptor.DisplayName = agentConfig.Name.Humanize().Transform(To.TitleCase); - activityDescriptor.IsBrowsable = true; - activityDescriptor.Category = "Agents"; - activityDescriptor.Kind = ActivityKind.Job; - activityDescriptor.CustomProperties["RootType"] = nameof(AgentActivity); - - activityDescriptor.Constructor = context => - { - var activity = (AgentActivity)activityFactory.Create(typeof(AgentActivity), context); - activity.Type = activityTypeName; - activity.AgentName = agentConfig.Name; - return activity; - }; - - activityDescriptors.Add(activityDescriptor); - activityDescriptor.Inputs.Clear(); - - foreach (var inputVariable in agentConfig.InputVariables) - { - var inputName = inputVariable.Name; - var inputType = inputVariable.Type == null! ? "object" : inputVariable.Type; - var nakedInputType = wellKnownTypeRegistry.GetTypeOrDefault(inputType); - var inputDescriptor = new InputDescriptor - { - Name = inputVariable.Name, - DisplayName = inputVariable.Name.Humanize(), - Description = inputVariable.Description, - Type = nakedInputType, - ValueGetter = activity => activity.SyntheticProperties.GetValueOrDefault(inputName), - ValueSetter = (activity, value) => activity.SyntheticProperties[inputName] = value!, - IsSynthetic = true, - IsWrapped = true, - UIHint = ActivityDescriber.GetUIHint(nakedInputType) - }; - activityDescriptor.Inputs.Add(inputDescriptor); - } - - activityDescriptor.Outputs.Clear(); - var outputVariable = agentConfig.OutputVariable; - var outputType = outputVariable.Type == null! ? "object" : outputVariable.Type; - var nakedOutputType = wellKnownTypeRegistry.GetTypeOrDefault(outputType); - var outputName = "Output"; - var outputDescriptor = new OutputDescriptor - { - Name = outputName, - Description = agentConfig.OutputVariable.Description, - Type = nakedOutputType, - IsSynthetic = true, - ValueGetter = activity => activity.SyntheticProperties.GetValueOrDefault(outputName), - ValueSetter = (activity, value) => activity.SyntheticProperties[outputName] = value!, - }; - activityDescriptor.Outputs.Add(outputDescriptor); - } - - return activityDescriptors; - } -} \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Activities/Elsa.Agents.Activities.csproj b/src/modules/Elsa.Agents.Activities/Elsa.Agents.Activities.csproj deleted file mode 100644 index f50cae716..000000000 --- a/src/modules/Elsa.Agents.Activities/Elsa.Agents.Activities.csproj +++ /dev/null @@ -1,14 +0,0 @@ - - - - Provides Agent activities - elsa module agents semantic kernel llm ai - - - - - - - - - diff --git a/src/modules/Elsa.Agents.Activities/Elsa.Agents.Activities.csproj.DotSettings b/src/modules/Elsa.Agents.Activities/Elsa.Agents.Activities.csproj.DotSettings deleted file mode 100644 index 7230eb354..000000000 --- a/src/modules/Elsa.Agents.Activities/Elsa.Agents.Activities.csproj.DotSettings +++ /dev/null @@ -1,2 +0,0 @@ - - True \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Activities/Extensions/AgentActivitiesFeatureModuleExtensions.cs b/src/modules/Elsa.Agents.Activities/Extensions/AgentActivitiesFeatureModuleExtensions.cs deleted file mode 100644 index 532916645..000000000 --- a/src/modules/Elsa.Agents.Activities/Extensions/AgentActivitiesFeatureModuleExtensions.cs +++ /dev/null @@ -1,22 +0,0 @@ -using Elsa.Agents.Activities.Features; -using Elsa.Extensions; -using Elsa.Features.Services; -using JetBrains.Annotations; - -// ReSharper disable once CheckNamespace -namespace Elsa.Agents; - -/// -/// An extension class that installs the Agents feature. -/// -[PublicAPI] -public static class AgentActivitiesFeatureModuleExtensions -{ - /// - /// Installs the Agents feature. - /// - public static IModule UseAgentActivities(this IModule module, Action? configure = null) - { - return module.Use(configure); - } -} \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Activities/Features/AgentActivitiesFeature.cs b/src/modules/Elsa.Agents.Activities/Features/AgentActivitiesFeature.cs deleted file mode 100644 index a6704bebc..000000000 --- a/src/modules/Elsa.Agents.Activities/Features/AgentActivitiesFeature.cs +++ /dev/null @@ -1,29 +0,0 @@ -using Elsa.Agents.Activities.ActivityProviders; -using Elsa.Agents.Activities.Handlers; -using Elsa.Agents.Features; -using Elsa.Features.Abstractions; -using Elsa.Features.Attributes; -using Elsa.Features.Services; -using Elsa.Workflows.Management.Features; -using JetBrains.Annotations; -using Microsoft.Extensions.DependencyInjection; - -namespace Elsa.Agents.Activities.Features; - -/// -/// A feature that installs Semantic Kernel functionality. -/// -[DependsOn(typeof(WorkflowManagementFeature))] -[DependsOn(typeof(AgentsFeature))] -[UsedImplicitly] -public class AgentActivitiesFeature(IModule module) : FeatureBase(module) -{ - /// - public override void Apply() - { - Services - .AddActivityProvider() - .AddNotificationHandler() - ; - } -} \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Activities/FodyWeavers.xml b/src/modules/Elsa.Agents.Activities/FodyWeavers.xml deleted file mode 100644 index 00e1d9a1c..000000000 --- a/src/modules/Elsa.Agents.Activities/FodyWeavers.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Activities/Handlers/RefreshActivityRegistry.cs b/src/modules/Elsa.Agents.Activities/Handlers/RefreshActivityRegistry.cs deleted file mode 100644 index 6cc0bcf21..000000000 --- a/src/modules/Elsa.Agents.Activities/Handlers/RefreshActivityRegistry.cs +++ /dev/null @@ -1,21 +0,0 @@ -using Elsa.Agents.Activities.ActivityProviders; -using Elsa.Agents.Persistence.Notifications; -using Elsa.Mediator.Contracts; -using Elsa.Workflows; -using JetBrains.Annotations; - -namespace Elsa.Agents.Activities.Handlers; - -[UsedImplicitly] -public class RefreshActivityRegistry(IActivityRegistry activityRegistry, AgentActivityProvider agentActivityProvider) : - INotificationHandler, - INotificationHandler, - INotificationHandler, - INotificationHandler -{ - public Task HandleAsync(AgentDefinitionCreated notification, CancellationToken cancellationToken) => RefreshRegistryAsync(cancellationToken); - public Task HandleAsync(AgentDefinitionUpdated notification, CancellationToken cancellationToken) => RefreshRegistryAsync(cancellationToken); - public Task HandleAsync(AgentDefinitionDeleted notification, CancellationToken cancellationToken) => RefreshRegistryAsync(cancellationToken); - public Task HandleAsync(AgentDefinitionsDeletedInBulk notification, CancellationToken cancellationToken) => RefreshRegistryAsync(cancellationToken); - private Task RefreshRegistryAsync(CancellationToken cancellationToken) => activityRegistry.RefreshDescriptorsAsync(agentActivityProvider, cancellationToken); -} \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Api/Elsa.Agents.Api.csproj b/src/modules/Elsa.Agents.Api/Elsa.Agents.Api.csproj deleted file mode 100644 index e1c204191..000000000 --- a/src/modules/Elsa.Agents.Api/Elsa.Agents.Api.csproj +++ /dev/null @@ -1,14 +0,0 @@ - - - - Provides Agents API endpoints - elsa module agents semantic kernel api llm ai - - - - - - - - - diff --git a/src/modules/Elsa.Agents.Api/Elsa.Agents.Api.csproj.DotSettings b/src/modules/Elsa.Agents.Api/Elsa.Agents.Api.csproj.DotSettings deleted file mode 100644 index 6fc317744..000000000 --- a/src/modules/Elsa.Agents.Api/Elsa.Agents.Api.csproj.DotSettings +++ /dev/null @@ -1,2 +0,0 @@ - - True \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Api/Endpoints/Agents/BulkDelete/Endpoint.cs b/src/modules/Elsa.Agents.Api/Endpoints/Agents/BulkDelete/Endpoint.cs deleted file mode 100644 index d72252b2d..000000000 --- a/src/modules/Elsa.Agents.Api/Endpoints/Agents/BulkDelete/Endpoint.cs +++ /dev/null @@ -1,32 +0,0 @@ -using Elsa.Abstractions; -using Elsa.Agents.Persistence.Contracts; -using Elsa.Agents.Persistence.Filters; -using JetBrains.Annotations; - -namespace Elsa.Agents.Api.Endpoints.Agents.BulkDelete; - -/// -/// Deletes an agent. -/// -[UsedImplicitly] -public class Endpoint(IAgentManager agentManager) : ElsaEndpoint -{ - /// - public override void Configure() - { - Post("/ai/bulk-actions/agents/delete"); - ConfigurePermissions("ai/agents:delete"); - } - - /// - public override async Task ExecuteAsync(BulkDeleteRequest req, CancellationToken ct) - { - var ids = req.Ids; - var filter = new AgentDefinitionFilter - { - Ids = ids - }; - var count = await agentManager.DeleteManyAsync(filter, ct); - return new BulkDeleteResponse(count); - } -} \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Api/Endpoints/Agents/Create/Endpoint.cs b/src/modules/Elsa.Agents.Api/Endpoints/Agents/Create/Endpoint.cs deleted file mode 100644 index f5cbd6d5d..000000000 --- a/src/modules/Elsa.Agents.Api/Endpoints/Agents/Create/Endpoint.cs +++ /dev/null @@ -1,68 +0,0 @@ -using Elsa.Abstractions; -using Elsa.Agents.Persistence.Contracts; -using Elsa.Agents.Persistence.Entities; -using Elsa.Agents.Persistence.Filters; -using Elsa.Extensions; -using Elsa.Workflows; -using JetBrains.Annotations; - -namespace Elsa.Agents.Api.Endpoints.Agents.Create; - -/// -/// Lists all registered agents. -/// -[UsedImplicitly] -public class Endpoint(IAgentManager agentManager, IIdentityGenerator identityGenerator) : ElsaEndpoint -{ - /// - public override void Configure() - { - Post("/ai/agents"); - ConfigurePermissions("ai/agents:write"); - } - - /// - public override async Task ExecuteAsync(AgentInputModel req, CancellationToken ct) - { - var isNameUnique = await IsNameUniqueAsync(req.Name, ct); - - if (!isNameUnique) - { - AddError("An Agent already exists with the specified name"); - await SendErrorsAsync(cancellation: ct); - return null!; - } - - var newEntity = new AgentDefinition - { - Id = identityGenerator.GenerateId(), - Name = req.Name.Trim(), - Description = req.Description.Trim(), - AgentConfig = new AgentConfig - { - Description = req.Description.Trim(), - Name = req.Name.Trim(), - Agents = req.Agents, - ExecutionSettings = req.ExecutionSettings, - InputVariables = req.InputVariables, - OutputVariable = req.OutputVariable, - Services = req.Services, - Plugins = req.Plugins, - FunctionName = req.FunctionName, - PromptTemplate = req.PromptTemplate - } - }; - - await agentManager.AddAsync(newEntity, ct); - return newEntity.ToModel(); - } - - private async Task IsNameUniqueAsync(string name, CancellationToken ct) - { - var filter = new AgentDefinitionFilter - { - Name = name - }; - return await agentManager.FindAsync(filter, ct) == null; - } -} \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Api/Endpoints/Agents/Delete/Endpoint.cs b/src/modules/Elsa.Agents.Api/Endpoints/Agents/Delete/Endpoint.cs deleted file mode 100644 index d542611c4..000000000 --- a/src/modules/Elsa.Agents.Api/Endpoints/Agents/Delete/Endpoint.cs +++ /dev/null @@ -1,33 +0,0 @@ -using Elsa.Abstractions; -using Elsa.Agents.Persistence.Contracts; -using JetBrains.Annotations; - -namespace Elsa.Agents.Api.Endpoints.Agents.Delete; - -/// -/// Deletes an Agent. -/// -[UsedImplicitly] -public class Endpoint(IAgentManager agentManager) : ElsaEndpoint -{ - /// - public override void Configure() - { - Delete("/ai/agents/{id}"); - ConfigurePermissions("ai/agents:delete"); - } - - /// - public override async Task HandleAsync(Request req, CancellationToken ct) - { - var entity = await agentManager.GetAsync(req.Id, ct); - - if(entity == null) - { - await SendNotFoundAsync(ct); - return; - } - - await agentManager.DeleteAsync(entity, ct); - } -} \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Api/Endpoints/Agents/Delete/Request.cs b/src/modules/Elsa.Agents.Api/Endpoints/Agents/Delete/Request.cs deleted file mode 100644 index fc773be2e..000000000 --- a/src/modules/Elsa.Agents.Api/Endpoints/Agents/Delete/Request.cs +++ /dev/null @@ -1,8 +0,0 @@ -using System.ComponentModel.DataAnnotations; - -namespace Elsa.Agents.Api.Endpoints.Agents.Delete; - -public class Request -{ - [Required] public string Id { get; set; } = default!; -} \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Api/Endpoints/Agents/GenerateUniqueName/Endpoint.cs b/src/modules/Elsa.Agents.Api/Endpoints/Agents/GenerateUniqueName/Endpoint.cs deleted file mode 100644 index 74c02b5b1..000000000 --- a/src/modules/Elsa.Agents.Api/Endpoints/Agents/GenerateUniqueName/Endpoint.cs +++ /dev/null @@ -1,26 +0,0 @@ -using Elsa.Abstractions; -using Elsa.Agents.Persistence.Contracts; -using JetBrains.Annotations; - -namespace Elsa.Agents.Api.Endpoints.Agents.GenerateUniqueName; - -/// -/// Generates a unique name for an agent. -/// -[UsedImplicitly] -public class Endpoint(IAgentManager agentManager) : ElsaEndpointWithoutRequest -{ - /// - public override void Configure() - { - Post("/ai/actions/agents/generate-unique-name"); - ConfigurePermissions("ai/agents:write"); - } - - /// - public override async Task ExecuteAsync(CancellationToken ct) - { - var newName = await agentManager.GenerateUniqueNameAsync(ct); - return new(newName); - } -} \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Api/Endpoints/Agents/Get/Endpoint.cs b/src/modules/Elsa.Agents.Api/Endpoints/Agents/Get/Endpoint.cs deleted file mode 100644 index 2e0c2410e..000000000 --- a/src/modules/Elsa.Agents.Api/Endpoints/Agents/Get/Endpoint.cs +++ /dev/null @@ -1,34 +0,0 @@ -using Elsa.Abstractions; -using Elsa.Agents.Persistence.Contracts; -using Elsa.Extensions; -using JetBrains.Annotations; - -namespace Elsa.Agents.Api.Endpoints.Agents.Get; - -/// -/// Gets an agent. -/// -[UsedImplicitly] -public class Endpoint(IAgentManager agentManager) : ElsaEndpoint -{ - /// - public override void Configure() - { - Get("/ai/agents/{id}"); - ConfigurePermissions("ai/agents:read"); - } - - /// - public override async Task ExecuteAsync(Request req, CancellationToken ct) - { - var entity = await agentManager.GetAsync(req.Id, ct); - - if(entity == null) - { - await SendNotFoundAsync(ct); - return null!; - } - - return entity.ToModel(); - } -} \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Api/Endpoints/Agents/Get/Request.cs b/src/modules/Elsa.Agents.Api/Endpoints/Agents/Get/Request.cs deleted file mode 100644 index 8a92ef85b..000000000 --- a/src/modules/Elsa.Agents.Api/Endpoints/Agents/Get/Request.cs +++ /dev/null @@ -1,8 +0,0 @@ -using System.ComponentModel.DataAnnotations; - -namespace Elsa.Agents.Api.Endpoints.Agents.Get; - -public class Request -{ - [Required] public string Id { get; set; } = default!; -} \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Api/Endpoints/Agents/Invoke/Endpoint.cs b/src/modules/Elsa.Agents.Api/Endpoints/Agents/Invoke/Endpoint.cs deleted file mode 100644 index 6e9c59e79..000000000 --- a/src/modules/Elsa.Agents.Api/Endpoints/Agents/Invoke/Endpoint.cs +++ /dev/null @@ -1,26 +0,0 @@ -using System.Text.Json; -using Elsa.Abstractions; -using JetBrains.Annotations; - -namespace Elsa.Agents.Api.Endpoints.Agents.Invoke; - -/// -/// Invokes an agent. -/// -[UsedImplicitly] -public class Execute(AgentInvoker agentInvoker) : ElsaEndpoint -{ - /// - public override void Configure() - { - Post("/ai/agents/{agent}/invoke"); - ConfigurePermissions("ai/agents:invoke"); - } - - /// - public override async Task ExecuteAsync(Request req, CancellationToken ct) - { - var result = await agentInvoker.InvokeAgentAsync(req.Agent, req.Inputs, ct).AsJsonElementAsync(); - return result; - } -} \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Api/Endpoints/Agents/Invoke/Request.cs b/src/modules/Elsa.Agents.Api/Endpoints/Agents/Invoke/Request.cs deleted file mode 100644 index c18c275f3..000000000 --- a/src/modules/Elsa.Agents.Api/Endpoints/Agents/Invoke/Request.cs +++ /dev/null @@ -1,7 +0,0 @@ -namespace Elsa.Agents.Api.Endpoints.Agents.Invoke; - -public class Request -{ - public string Agent { get; set; } - public IDictionary Inputs { get; set; } -} \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Api/Endpoints/Agents/IsUniqueName/Endpoint.cs b/src/modules/Elsa.Agents.Api/Endpoints/Agents/IsUniqueName/Endpoint.cs deleted file mode 100644 index db5c2e1f6..000000000 --- a/src/modules/Elsa.Agents.Api/Endpoints/Agents/IsUniqueName/Endpoint.cs +++ /dev/null @@ -1,26 +0,0 @@ -using Elsa.Abstractions; -using Elsa.Agents.Persistence.Contracts; -using JetBrains.Annotations; - -namespace Elsa.Agents.Api.Endpoints.Agents.IsUniqueName; - -/// -/// Checks if a name is unique. -/// -[UsedImplicitly] -public class Endpoint(IAgentManager agentManager) : ElsaEndpoint -{ - /// - public override void Configure() - { - Post("/ai/queries/agents/is-unique-name"); - ConfigurePermissions("ai/agents:read"); - } - - /// - public override async Task ExecuteAsync(IsUniqueNameRequest req, CancellationToken ct) - { - var isUnique = await agentManager.IsNameUniqueAsync(req.Name, req.Id, ct); - return new(isUnique); - } -} \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Api/Endpoints/Agents/List/Endpoint.cs b/src/modules/Elsa.Agents.Api/Endpoints/Agents/List/Endpoint.cs deleted file mode 100644 index 6c8c19944..000000000 --- a/src/modules/Elsa.Agents.Api/Endpoints/Agents/List/Endpoint.cs +++ /dev/null @@ -1,29 +0,0 @@ -using Elsa.Abstractions; -using Elsa.Agents.Persistence.Contracts; -using Elsa.Extensions; -using Elsa.Models; -using JetBrains.Annotations; - -namespace Elsa.Agents.Api.Endpoints.Agents.List; - -/// -/// Lists all agents. -/// -[UsedImplicitly] -public class Endpoint(IAgentManager agentManager) : ElsaEndpointWithoutRequest> -{ - /// - public override void Configure() - { - Get("/ai/agents"); - ConfigurePermissions("ai/agents:read"); - } - - /// - public override async Task> ExecuteAsync(CancellationToken ct) - { - var entities = await agentManager.ListAsync(ct); - var models = entities.Select(x => x.ToModel()).ToList(); - return new ListResponse(models); - } -} \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Api/Endpoints/Agents/Update/Endpoint.cs b/src/modules/Elsa.Agents.Api/Endpoints/Agents/Update/Endpoint.cs deleted file mode 100644 index 0e78ec306..000000000 --- a/src/modules/Elsa.Agents.Api/Endpoints/Agents/Update/Endpoint.cs +++ /dev/null @@ -1,66 +0,0 @@ -using Elsa.Abstractions; -using Elsa.Agents.Persistence.Contracts; -using Elsa.Extensions; -using JetBrains.Annotations; - -namespace Elsa.Agents.Api.Endpoints.Agents.Update; - -/// -/// Updates an agent. -/// -[UsedImplicitly] -public class Endpoint(IAgentManager agentManager) : ElsaEndpoint -{ - /// - public override void Configure() - { - Post("/ai/agents/{id}"); - ConfigurePermissions("ai/agents:write"); - } - - /// - public override async Task ExecuteAsync(AgentInputModel req, CancellationToken ct) - { - var id = Route("id")!; - var entity = await agentManager.GetAsync(id, ct); - - if (entity == null) - { - await SendNotFoundAsync(ct); - return null!; - } - - var isNameDuplicate = await IsNameDuplicateAsync(req.Name, id, ct); - - if (isNameDuplicate) - { - AddError("Another agent already exists with the specified name"); - await SendErrorsAsync(cancellation: ct); - return entity.ToModel(); - } - - entity.Name = req.Name.Trim(); - entity.Description = req.Description.Trim(); - entity.AgentConfig = new AgentConfig - { - Name = req.Name.Trim(), - Description = req.Description.Trim(), - FunctionName = req.FunctionName.Trim(), - Services = req.Services, - PromptTemplate = req.PromptTemplate.Trim(), - InputVariables = req.InputVariables, - OutputVariable = req.OutputVariable, - ExecutionSettings = req.ExecutionSettings, - Plugins = req.Plugins, - Agents = req.Agents - }; - - await agentManager.UpdateAsync(entity, ct); - return entity.ToModel(); - } - - private async Task IsNameDuplicateAsync(string name, string id, CancellationToken cancellationToken) - { - return !await agentManager.IsNameUniqueAsync(name, id, cancellationToken); - } -} \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Api/Endpoints/ApiKeys/BulkDelete/Endpoint.cs b/src/modules/Elsa.Agents.Api/Endpoints/ApiKeys/BulkDelete/Endpoint.cs deleted file mode 100644 index 6f13ddfde..000000000 --- a/src/modules/Elsa.Agents.Api/Endpoints/ApiKeys/BulkDelete/Endpoint.cs +++ /dev/null @@ -1,32 +0,0 @@ -using Elsa.Abstractions; -using Elsa.Agents.Persistence.Contracts; -using Elsa.Agents.Persistence.Filters; -using JetBrains.Annotations; - -namespace Elsa.Agents.Api.Endpoints.ApiKeys.BulkDelete; - -/// -/// Deletes an API key. -/// -[UsedImplicitly] -public class Endpoint(IApiKeyStore store) : ElsaEndpoint -{ - /// - public override void Configure() - { - Post("/ai/bulk-actions/api-keys/delete"); - ConfigurePermissions("ai/api-keys:delete"); - } - - /// - public override async Task ExecuteAsync(BulkDeleteRequest req, CancellationToken ct) - { - var ids = req.Ids; - var filter = new ApiKeyDefinitionFilter - { - Ids = ids - }; - var count = await store.DeleteManyAsync(filter, ct); - return new BulkDeleteResponse(count); - } -} \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Api/Endpoints/ApiKeys/Create/Endpoint.cs b/src/modules/Elsa.Agents.Api/Endpoints/ApiKeys/Create/Endpoint.cs deleted file mode 100644 index da95d7e6a..000000000 --- a/src/modules/Elsa.Agents.Api/Endpoints/ApiKeys/Create/Endpoint.cs +++ /dev/null @@ -1,49 +0,0 @@ -using Elsa.Abstractions; -using Elsa.Agents.Persistence.Contracts; -using Elsa.Agents.Persistence.Entities; -using Elsa.Agents.Persistence.Filters; -using Elsa.Workflows; -using JetBrains.Annotations; - -namespace Elsa.Agents.Api.Endpoints.ApiKeys.Create; - -/// -/// Lists all registered API keys. -/// -[UsedImplicitly] -public class Endpoint(IApiKeyStore store, IIdentityGenerator identityGenerator) : ElsaEndpoint -{ - /// - public override void Configure() - { - Post("/ai/api-keys"); - ConfigurePermissions("ai/api-keys:write"); - } - - /// - public override async Task ExecuteAsync(ApiKeyInputModel req, CancellationToken ct) - { - var existingEntityFilter = new ApiKeyDefinitionFilter - { - Name = req.Name - }; - var existingEntity = await store.FindAsync(existingEntityFilter, ct); - - if (existingEntity != null) - { - AddError("An API key already exists with the specified name"); - await SendErrorsAsync(cancellation: ct); - return existingEntity.ToModel(); - } - - var newEntity = new ApiKeyDefinition - { - Id = identityGenerator.GenerateId(), - Name = req.Name.Trim(), - Value = req.Value.Trim() - }; - - await store.AddAsync(newEntity, ct); - return newEntity.ToModel(); - } -} \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Api/Endpoints/ApiKeys/Delete/Endpoint.cs b/src/modules/Elsa.Agents.Api/Endpoints/ApiKeys/Delete/Endpoint.cs deleted file mode 100644 index 5173b658a..000000000 --- a/src/modules/Elsa.Agents.Api/Endpoints/ApiKeys/Delete/Endpoint.cs +++ /dev/null @@ -1,33 +0,0 @@ -using Elsa.Abstractions; -using Elsa.Agents.Persistence.Contracts; -using JetBrains.Annotations; - -namespace Elsa.Agents.Api.Endpoints.ApiKeys.Delete; - -/// -/// Delete an API key. -/// -[UsedImplicitly] -public class Endpoint(IApiKeyStore store) : ElsaEndpoint -{ - /// - public override void Configure() - { - Delete("/ai/api-keys/{id}"); - ConfigurePermissions("ai/api-keys:delete"); - } - - /// - public override async Task HandleAsync(Request req, CancellationToken ct) - { - var entity = await store.GetAsync(req.Id, ct); - - if(entity == null) - { - await SendNotFoundAsync(ct); - return; - } - - await store.DeleteAsync(entity, ct); - } -} \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Api/Endpoints/ApiKeys/Delete/Request.cs b/src/modules/Elsa.Agents.Api/Endpoints/ApiKeys/Delete/Request.cs deleted file mode 100644 index 49e42795b..000000000 --- a/src/modules/Elsa.Agents.Api/Endpoints/ApiKeys/Delete/Request.cs +++ /dev/null @@ -1,8 +0,0 @@ -using System.ComponentModel.DataAnnotations; - -namespace Elsa.Agents.Api.Endpoints.ApiKeys.Delete; - -public class Request -{ - [Required] public string Id { get; set; } = default!; -} \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Api/Endpoints/ApiKeys/Get/Endpoint.cs b/src/modules/Elsa.Agents.Api/Endpoints/ApiKeys/Get/Endpoint.cs deleted file mode 100644 index 60cb4285b..000000000 --- a/src/modules/Elsa.Agents.Api/Endpoints/ApiKeys/Get/Endpoint.cs +++ /dev/null @@ -1,33 +0,0 @@ -using Elsa.Abstractions; -using Elsa.Agents.Persistence.Contracts; -using JetBrains.Annotations; - -namespace Elsa.Agents.Api.Endpoints.ApiKeys.Get; - -/// -/// Lists all registered API keys. -/// -[UsedImplicitly] -public class Endpoint(IApiKeyStore store) : ElsaEndpoint -{ - /// - public override void Configure() - { - Get("/ai/api-keys/{id}"); - ConfigurePermissions("ai/api-keys:read"); - } - - /// - public override async Task ExecuteAsync(Request req, CancellationToken ct) - { - var entity = await store.GetAsync(req.Id, ct); - - if(entity == null) - { - await SendNotFoundAsync(ct); - return null!; - } - - return entity.ToModel(); - } -} \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Api/Endpoints/ApiKeys/Get/Request.cs b/src/modules/Elsa.Agents.Api/Endpoints/ApiKeys/Get/Request.cs deleted file mode 100644 index 1a986ae82..000000000 --- a/src/modules/Elsa.Agents.Api/Endpoints/ApiKeys/Get/Request.cs +++ /dev/null @@ -1,8 +0,0 @@ -using System.ComponentModel.DataAnnotations; - -namespace Elsa.Agents.Api.Endpoints.ApiKeys.Get; - -public class Request -{ - [Required] public string Id { get; set; } = default!; -} \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Api/Endpoints/ApiKeys/List/Endpoint.cs b/src/modules/Elsa.Agents.Api/Endpoints/ApiKeys/List/Endpoint.cs deleted file mode 100644 index fd1df7dc0..000000000 --- a/src/modules/Elsa.Agents.Api/Endpoints/ApiKeys/List/Endpoint.cs +++ /dev/null @@ -1,28 +0,0 @@ -using Elsa.Abstractions; -using Elsa.Agents.Persistence.Contracts; -using Elsa.Models; -using JetBrains.Annotations; - -namespace Elsa.Agents.Api.Endpoints.ApiKeys.List; - -/// -/// Lists all registered API keys. -/// -[UsedImplicitly] -public class Endpoint(IApiKeyStore store) : ElsaEndpointWithoutRequest> -{ - /// - public override void Configure() - { - Get("/ai/api-keys"); - ConfigurePermissions("ai/api-keys:read"); - } - - /// - public override async Task> ExecuteAsync(CancellationToken ct) - { - var entities = await store.ListAsync(ct); - var models = entities.Select(x => x.ToModel()).ToList(); - return new ListResponse(models); - } -} \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Api/Endpoints/ApiKeys/Update/Endpoint.cs b/src/modules/Elsa.Agents.Api/Endpoints/ApiKeys/Update/Endpoint.cs deleted file mode 100644 index cca77f709..000000000 --- a/src/modules/Elsa.Agents.Api/Endpoints/ApiKeys/Update/Endpoint.cs +++ /dev/null @@ -1,60 +0,0 @@ -using Elsa.Abstractions; -using Elsa.Agents.Persistence.Contracts; -using Elsa.Agents.Persistence.Entities; -using Elsa.Agents.Persistence.Filters; -using JetBrains.Annotations; - -namespace Elsa.Agents.Api.Endpoints.ApiKeys.Update; - -/// -/// Lists all registered API keys. -/// -[UsedImplicitly] -public class Endpoint(IApiKeyStore store) : ElsaEndpoint -{ - /// - public override void Configure() - { - Post("/ai/api-keys/{id}"); - ConfigurePermissions("ai/api-keys:write"); - } - - /// - public override async Task ExecuteAsync(ApiKeyModel req, CancellationToken ct) - { - var entity = await store.GetAsync(req.Id, ct); - - if(entity == null) - { - await SendNotFoundAsync(ct); - return null!; - } - - var isNameDuplicate = await IsNameDuplicateAsync(req.Name, req.Id, ct); - - if (isNameDuplicate) - { - AddError("Another API key already exists with the specified name"); - await SendErrorsAsync(cancellation: ct); - return entity; - } - - entity.Name = req.Name.Trim(); - entity.Value = req.Value.Trim(); - - await store.UpdateAsync(entity, ct); - return entity; - } - - private async Task IsNameDuplicateAsync(string name, string id, CancellationToken cancellationToken) - { - var filter = new ApiKeyDefinitionFilter - { - Name = name, - NotId = id - }; - - var entity = await store.FindAsync(filter, cancellationToken); - return entity != null; - } -} \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Api/Endpoints/Plugins/List/Endpoint.cs b/src/modules/Elsa.Agents.Api/Endpoints/Plugins/List/Endpoint.cs deleted file mode 100644 index edab2d2c6..000000000 --- a/src/modules/Elsa.Agents.Api/Endpoints/Plugins/List/Endpoint.cs +++ /dev/null @@ -1,27 +0,0 @@ -using Elsa.Abstractions; -using Elsa.Models; -using JetBrains.Annotations; - -namespace Elsa.Agents.Api.Endpoints.Plugins.List; - -/// -/// Lists all registered plugins. -/// -[UsedImplicitly] -public class Endpoint(IPluginDiscoverer pluginDiscoverer) : ElsaEndpointWithoutRequest> -{ - /// - public override void Configure() - { - Get("/ai/plugins"); - ConfigurePermissions("ai/plugins:read"); - } - - /// - public override Task> ExecuteAsync(CancellationToken ct) - { - var descriptors = pluginDiscoverer.GetPluginDescriptors(); - var models = descriptors.Select(x => x.ToModel()).ToList(); - return Task.FromResult(new ListResponse(models)); - } -} \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Api/Endpoints/Services/BulkDelete/Endpoint.cs b/src/modules/Elsa.Agents.Api/Endpoints/Services/BulkDelete/Endpoint.cs deleted file mode 100644 index 8232ac098..000000000 --- a/src/modules/Elsa.Agents.Api/Endpoints/Services/BulkDelete/Endpoint.cs +++ /dev/null @@ -1,32 +0,0 @@ -using Elsa.Abstractions; -using Elsa.Agents.Persistence.Contracts; -using Elsa.Agents.Persistence.Filters; -using JetBrains.Annotations; - -namespace Elsa.Agents.Api.Endpoints.Services.BulkDelete; - -/// -/// Deletes an API key. -/// -[UsedImplicitly] -public class Endpoint(IServiceStore store) : ElsaEndpoint -{ - /// - public override void Configure() - { - Post("/ai/bulk-actions/services/delete"); - ConfigurePermissions("ai/api-keys:delete"); - } - - /// - public override async Task ExecuteAsync(BulkDeleteRequest req, CancellationToken ct) - { - var ids = req.Ids; - var filter = new ServiceDefinitionFilter - { - Ids = ids - }; - var count = await store.DeleteManyAsync(filter, ct); - return new BulkDeleteResponse(count); - } -} \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Api/Endpoints/Services/Create/Endpoint.cs b/src/modules/Elsa.Agents.Api/Endpoints/Services/Create/Endpoint.cs deleted file mode 100644 index cf8c3f0d3..000000000 --- a/src/modules/Elsa.Agents.Api/Endpoints/Services/Create/Endpoint.cs +++ /dev/null @@ -1,50 +0,0 @@ -using Elsa.Abstractions; -using Elsa.Agents.Persistence.Contracts; -using Elsa.Agents.Persistence.Entities; -using Elsa.Agents.Persistence.Filters; -using Elsa.Workflows; -using JetBrains.Annotations; - -namespace Elsa.Agents.Api.Endpoints.Services.Create; - -/// -/// Lists all registered API keys. -/// -[UsedImplicitly] -public class Endpoint(IServiceStore store, IIdentityGenerator identityGenerator) : ElsaEndpoint -{ - /// - public override void Configure() - { - Post("/ai/services"); - ConfigurePermissions("ai/services:write"); - } - - /// - public override async Task ExecuteAsync(ServiceInputModel req, CancellationToken ct) - { - var existingEntityFilter = new ServiceDefinitionFilter - { - Name = req.Name - }; - var existingEntity = await store.FindAsync(existingEntityFilter, ct); - - if (existingEntity != null) - { - AddError("A Service already exists with the specified name"); - await SendErrorsAsync(cancellation: ct); - return existingEntity.ToModel(); - } - - var newEntity = new ServiceDefinition - { - Id = identityGenerator.GenerateId(), - Name = req.Name.Trim(), - Type = req.Type, - Settings = req.Settings - }; - - await store.AddAsync(newEntity, ct); - return newEntity.ToModel(); - } -} \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Api/Endpoints/Services/Delete/Endpoint.cs b/src/modules/Elsa.Agents.Api/Endpoints/Services/Delete/Endpoint.cs deleted file mode 100644 index 8a737a6e5..000000000 --- a/src/modules/Elsa.Agents.Api/Endpoints/Services/Delete/Endpoint.cs +++ /dev/null @@ -1,33 +0,0 @@ -using Elsa.Abstractions; -using Elsa.Agents.Persistence.Contracts; -using JetBrains.Annotations; - -namespace Elsa.Agents.Api.Endpoints.Services.Delete; - -/// -/// Delete an API key. -/// -[UsedImplicitly] -public class Endpoint(IServiceStore store) : ElsaEndpoint -{ - /// - public override void Configure() - { - Delete("/ai/services/{id}"); - ConfigurePermissions("ai/services:delete"); - } - - /// - public override async Task HandleAsync(Request req, CancellationToken ct) - { - var entity = await store.GetAsync(req.Id, ct); - - if(entity == null) - { - await SendNotFoundAsync(ct); - return; - } - - await store.DeleteAsync(entity, ct); - } -} \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Api/Endpoints/Services/Delete/Request.cs b/src/modules/Elsa.Agents.Api/Endpoints/Services/Delete/Request.cs deleted file mode 100644 index d78615389..000000000 --- a/src/modules/Elsa.Agents.Api/Endpoints/Services/Delete/Request.cs +++ /dev/null @@ -1,8 +0,0 @@ -using System.ComponentModel.DataAnnotations; - -namespace Elsa.Agents.Api.Endpoints.Services.Delete; - -public class Request -{ - [Required] public string Id { get; set; } = default!; -} \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Api/Endpoints/Services/Get/Endpoint.cs b/src/modules/Elsa.Agents.Api/Endpoints/Services/Get/Endpoint.cs deleted file mode 100644 index e025c18ff..000000000 --- a/src/modules/Elsa.Agents.Api/Endpoints/Services/Get/Endpoint.cs +++ /dev/null @@ -1,33 +0,0 @@ -using Elsa.Abstractions; -using Elsa.Agents.Persistence.Contracts; -using JetBrains.Annotations; - -namespace Elsa.Agents.Api.Endpoints.Services.Get; - -/// -/// Lists all registered API keys. -/// -[UsedImplicitly] -public class Endpoint(IServiceStore store) : ElsaEndpoint -{ - /// - public override void Configure() - { - Get("/ai/services/{id}"); - ConfigurePermissions("ai/services:read"); - } - - /// - public override async Task ExecuteAsync(Request req, CancellationToken ct) - { - var entity = await store.GetAsync(req.Id, ct); - - if(entity == null) - { - await SendNotFoundAsync(ct); - return null!; - } - - return entity.ToModel(); - } -} \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Api/Endpoints/Services/Get/Request.cs b/src/modules/Elsa.Agents.Api/Endpoints/Services/Get/Request.cs deleted file mode 100644 index fffc03531..000000000 --- a/src/modules/Elsa.Agents.Api/Endpoints/Services/Get/Request.cs +++ /dev/null @@ -1,8 +0,0 @@ -using System.ComponentModel.DataAnnotations; - -namespace Elsa.Agents.Api.Endpoints.Services.Get; - -public class Request -{ - [Required] public string Id { get; set; } = default!; -} \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Api/Endpoints/Services/List/Endpoint.cs b/src/modules/Elsa.Agents.Api/Endpoints/Services/List/Endpoint.cs deleted file mode 100644 index 8dfbb0234..000000000 --- a/src/modules/Elsa.Agents.Api/Endpoints/Services/List/Endpoint.cs +++ /dev/null @@ -1,28 +0,0 @@ -using Elsa.Abstractions; -using Elsa.Agents.Persistence.Contracts; -using Elsa.Models; -using JetBrains.Annotations; - -namespace Elsa.Agents.Api.Endpoints.Services.List; - -/// -/// Lists all registered API keys. -/// -[UsedImplicitly] -public class Endpoint(IServiceStore store) : ElsaEndpointWithoutRequest> -{ - /// - public override void Configure() - { - Get("/ai/services"); - ConfigurePermissions("ai/services:read"); - } - - /// - public override async Task> ExecuteAsync(CancellationToken ct) - { - var entities = await store.ListAsync(ct); - var models = entities.Select(x => x.ToModel()).ToList(); - return new ListResponse(models); - } -} \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Api/Endpoints/Services/Update/Endpoint.cs b/src/modules/Elsa.Agents.Api/Endpoints/Services/Update/Endpoint.cs deleted file mode 100644 index e56746a5e..000000000 --- a/src/modules/Elsa.Agents.Api/Endpoints/Services/Update/Endpoint.cs +++ /dev/null @@ -1,60 +0,0 @@ -using Elsa.Abstractions; -using Elsa.Agents.Persistence.Contracts; -using Elsa.Agents.Persistence.Filters; -using JetBrains.Annotations; - -namespace Elsa.Agents.Api.Endpoints.Services.Update; - -/// -/// Lists all registered API keys. -/// -[UsedImplicitly] -public class Endpoint(IServiceStore store) : ElsaEndpoint -{ - /// - public override void Configure() - { - Post("/ai/services/{id}"); - ConfigurePermissions("ai/services:write"); - } - - /// - public override async Task ExecuteAsync(ServiceModel req, CancellationToken ct) - { - var entity = await store.GetAsync(req.Id, ct); - - if(entity == null) - { - await SendNotFoundAsync(ct); - return null!; - } - - var isNameDuplicate = await IsNameDuplicateAsync(req.Name, req.Id, ct); - - if (isNameDuplicate) - { - AddError("Another service already exists with the specified name"); - await SendErrorsAsync(cancellation: ct); - return entity.ToModel(); - } - - entity.Name = req.Name.Trim(); - entity.Type = req.Type.Trim(); - entity.Settings = req.Settings; - - await store.UpdateAsync(entity, ct); - return entity.ToModel(); - } - - private async Task IsNameDuplicateAsync(string name, string id, CancellationToken cancellationToken) - { - var filter = new ServiceDefinitionFilter - { - Name = name, - NotId = id - }; - - var entity = await store.FindAsync(filter, cancellationToken); - return entity != null; - } -} \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Api/Extensions/AgentDefinitionExtensions.cs b/src/modules/Elsa.Agents.Api/Extensions/AgentDefinitionExtensions.cs deleted file mode 100644 index f631ce233..000000000 --- a/src/modules/Elsa.Agents.Api/Extensions/AgentDefinitionExtensions.cs +++ /dev/null @@ -1,26 +0,0 @@ -using Elsa.Agents; -using Elsa.Agents.Persistence.Entities; - -// ReSharper disable once CheckNamespace -namespace Elsa.Extensions; - -public static class AgentDefinitionExtensions -{ - public static AgentModel ToModel(this AgentDefinition agentDefinition) - { - return new AgentModel - { - Id = agentDefinition.Id, - Name = agentDefinition.Name, - Description = agentDefinition.Description, - Agents = agentDefinition.AgentConfig.Agents, - ExecutionSettings = agentDefinition.AgentConfig.ExecutionSettings, - InputVariables = agentDefinition.AgentConfig.InputVariables, - OutputVariable = agentDefinition.AgentConfig.OutputVariable, - Services = agentDefinition.AgentConfig.Services, - Plugins = agentDefinition.AgentConfig.Plugins, - FunctionName = agentDefinition.AgentConfig.FunctionName, - PromptTemplate = agentDefinition.AgentConfig.PromptTemplate - }; - } -} \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Api/Extensions/ModuleExtensions.cs b/src/modules/Elsa.Agents.Api/Extensions/ModuleExtensions.cs deleted file mode 100644 index bc777f9da..000000000 --- a/src/modules/Elsa.Agents.Api/Extensions/ModuleExtensions.cs +++ /dev/null @@ -1,19 +0,0 @@ -using Elsa.Agents.Api.Features; -using Elsa.Features.Services; - -// ReSharper disable once CheckNamespace -namespace Elsa.Extensions; - -/// -/// Extends with methods to install Semantic Kernel API endpoints. -/// -public static class ModuleExtensions -{ - /// - /// Installs the Semantic Kernel API feature. - /// - public static IModule UseAgentsApi(this IModule module, Action? configure = null) - { - return module.Use(configure); - } -} \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Api/Features/AgentsApiFeature.cs b/src/modules/Elsa.Agents.Api/Features/AgentsApiFeature.cs deleted file mode 100644 index 158185d9b..000000000 --- a/src/modules/Elsa.Agents.Api/Features/AgentsApiFeature.cs +++ /dev/null @@ -1,22 +0,0 @@ -using Elsa.Agents.Persistence.Features; -using Elsa.Extensions; -using Elsa.Features.Abstractions; -using Elsa.Features.Attributes; -using Elsa.Features.Services; -using JetBrains.Annotations; - -namespace Elsa.Agents.Api.Features; - -/// -/// A feature that installs API endpoints to interact with skilled agents. -/// -[DependsOn(typeof(AgentPersistenceFeature))] -[UsedImplicitly] -public class AgentsApiFeature(IModule module) : FeatureBase(module) -{ - /// - public override void Configure() - { - Module.AddFastEndpointsAssembly(); - } -} \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Api/FodyWeavers.xml b/src/modules/Elsa.Agents.Api/FodyWeavers.xml deleted file mode 100644 index 00e1d9a1c..000000000 --- a/src/modules/Elsa.Agents.Api/FodyWeavers.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Core/Abstractions/PluginProvider.cs b/src/modules/Elsa.Agents.Core/Abstractions/PluginProvider.cs deleted file mode 100644 index c64a1f343..000000000 --- a/src/modules/Elsa.Agents.Core/Abstractions/PluginProvider.cs +++ /dev/null @@ -1,6 +0,0 @@ -namespace Elsa.Agents; - -public abstract class PluginProvider : IPluginProvider -{ - public virtual IEnumerable GetPlugins() => []; -} \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Core/Contracts/IAgentServiceProvider.cs b/src/modules/Elsa.Agents.Core/Contracts/IAgentServiceProvider.cs deleted file mode 100644 index 1eb96057e..000000000 --- a/src/modules/Elsa.Agents.Core/Contracts/IAgentServiceProvider.cs +++ /dev/null @@ -1,7 +0,0 @@ -namespace Elsa.Agents; - -public interface IAgentServiceProvider -{ - string Name { get; } - void ConfigureKernel(KernelBuilderContext context); -} \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Core/Contracts/IKernelConfigProvider.cs b/src/modules/Elsa.Agents.Core/Contracts/IKernelConfigProvider.cs deleted file mode 100644 index a64f74119..000000000 --- a/src/modules/Elsa.Agents.Core/Contracts/IKernelConfigProvider.cs +++ /dev/null @@ -1,6 +0,0 @@ -namespace Elsa.Agents; - -public interface IKernelConfigProvider -{ - Task GetKernelConfigAsync(CancellationToken cancellationToken = default); -} \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Core/Contracts/IPluginDiscoverer.cs b/src/modules/Elsa.Agents.Core/Contracts/IPluginDiscoverer.cs deleted file mode 100644 index 5a9fa460e..000000000 --- a/src/modules/Elsa.Agents.Core/Contracts/IPluginDiscoverer.cs +++ /dev/null @@ -1,6 +0,0 @@ -namespace Elsa.Agents; - -public interface IPluginDiscoverer -{ - IEnumerable GetPluginDescriptors(); -} \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Core/Contracts/IPluginProvider.cs b/src/modules/Elsa.Agents.Core/Contracts/IPluginProvider.cs deleted file mode 100644 index 0db6dfd76..000000000 --- a/src/modules/Elsa.Agents.Core/Contracts/IPluginProvider.cs +++ /dev/null @@ -1,9 +0,0 @@ -namespace Elsa.Agents; - -/// -/// Implementations of this interface are responsible for providing plugins. -/// -public interface IPluginProvider -{ - IEnumerable GetPlugins(); -} \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Core/Contracts/IServiceDiscoverer.cs b/src/modules/Elsa.Agents.Core/Contracts/IServiceDiscoverer.cs deleted file mode 100644 index 681e6fd4a..000000000 --- a/src/modules/Elsa.Agents.Core/Contracts/IServiceDiscoverer.cs +++ /dev/null @@ -1,6 +0,0 @@ -namespace Elsa.Agents; - -public interface IServiceDiscoverer -{ - IEnumerable Discover(); -} \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Core/Elsa.Agents.Core.csproj b/src/modules/Elsa.Agents.Core/Elsa.Agents.Core.csproj deleted file mode 100644 index da202e15f..000000000 --- a/src/modules/Elsa.Agents.Core/Elsa.Agents.Core.csproj +++ /dev/null @@ -1,21 +0,0 @@ - - - - Provides an agentic framework using Semantic Kernel - elsa module agents semantic kernel llm ai - Elsa.Agents - - - - - - - - - - - - - - - diff --git a/src/modules/Elsa.Agents.Core/Elsa.Agents.Core.csproj.DotSettings b/src/modules/Elsa.Agents.Core/Elsa.Agents.Core.csproj.DotSettings deleted file mode 100644 index 0eb55f59b..000000000 --- a/src/modules/Elsa.Agents.Core/Elsa.Agents.Core.csproj.DotSettings +++ /dev/null @@ -1,9 +0,0 @@ - - True - True - True - True - True - True - True - True \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Core/Extensions/AgentConfigExtensions.cs b/src/modules/Elsa.Agents.Core/Extensions/AgentConfigExtensions.cs deleted file mode 100644 index 2a4cdc6f2..000000000 --- a/src/modules/Elsa.Agents.Core/Extensions/AgentConfigExtensions.cs +++ /dev/null @@ -1,49 +0,0 @@ -using Microsoft.SemanticKernel; -using Microsoft.SemanticKernel.Connectors.OpenAI; - -#pragma warning disable SKEXP0001 -#pragma warning disable SKEXP0010 - -namespace Elsa.Agents; - -public static class AgentConfigExtensions -{ - public static OpenAIPromptExecutionSettings ToOpenAIPromptExecutionSettings(this AgentConfig agentConfig) - { - return new OpenAIPromptExecutionSettings - { - Temperature = agentConfig.ExecutionSettings.Temperature, - TopP = agentConfig.ExecutionSettings.TopP, - MaxTokens = agentConfig.ExecutionSettings.MaxTokens, - PresencePenalty = agentConfig.ExecutionSettings.PresencePenalty, - FrequencyPenalty = agentConfig.ExecutionSettings.FrequencyPenalty, - ToolCallBehavior = ToolCallBehavior.AutoInvokeKernelFunctions, - ResponseFormat = agentConfig.ExecutionSettings.ResponseFormat, - ChatSystemPrompt = agentConfig.PromptTemplate, - }; - } - - public static PromptTemplateConfig ToPromptTemplateConfig(this AgentConfig agentConfig) - { - var promptExecutionSettingsDictionary = new Dictionary - { - [PromptExecutionSettings.DefaultServiceId] = agentConfig.ToOpenAIPromptExecutionSettings(), - }; - - return new PromptTemplateConfig - { - Name = agentConfig.FunctionName, - Description = agentConfig.Description, - Template = agentConfig.PromptTemplate, - ExecutionSettings = promptExecutionSettingsDictionary, - AllowDangerouslySetContent = true, - InputVariables = agentConfig.InputVariables.Select(x => new InputVariable - { - Name = x.Name, - Description = x.Description, - IsRequired = true, - AllowDangerouslySetContent = true - }).ToList() - }; - } -} \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Core/Extensions/FunctionResultExtensions.cs b/src/modules/Elsa.Agents.Core/Extensions/FunctionResultExtensions.cs deleted file mode 100644 index ba02314ff..000000000 --- a/src/modules/Elsa.Agents.Core/Extensions/FunctionResultExtensions.cs +++ /dev/null @@ -1,25 +0,0 @@ -using System.Text.Json; -using Microsoft.SemanticKernel; - -namespace Elsa.Agents; - -public static class FunctionResultExtensions -{ - public static async Task AsJsonElementAsync(this Task resultTask) - { - var result = await resultTask; - return result.FunctionResult.AsJsonElement(); - } - - public static async Task AsJsonElementAsync(this Task resultTask) - { - var result = await resultTask; - return result.AsJsonElement(); - } - - public static JsonElement AsJsonElement(this FunctionResult result) - { - var response = result.GetValue()!; - return JsonSerializer.Deserialize(response); - } -} \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Core/Extensions/ModuleExtensions.cs b/src/modules/Elsa.Agents.Core/Extensions/ModuleExtensions.cs deleted file mode 100644 index bf521d0f9..000000000 --- a/src/modules/Elsa.Agents.Core/Extensions/ModuleExtensions.cs +++ /dev/null @@ -1,19 +0,0 @@ -using Elsa.Agents.Features; -using Elsa.Features.Services; - -// ReSharper disable once CheckNamespace -namespace Elsa.Extensions; - -/// -/// Extends with methods to install Semantic Kernel API endpoints. -/// -public static class ModuleExtensions -{ - /// - /// Installs the Semantic Kernel API feature. - /// - public static IModule UseAgents(this IModule module, Action? configure = null) - { - return module.Use(configure); - } -} \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Core/Extensions/ServiceCollectionExtensions.cs b/src/modules/Elsa.Agents.Core/Extensions/ServiceCollectionExtensions.cs deleted file mode 100644 index b33fed1c9..000000000 --- a/src/modules/Elsa.Agents.Core/Extensions/ServiceCollectionExtensions.cs +++ /dev/null @@ -1,16 +0,0 @@ -using Microsoft.Extensions.DependencyInjection; - -namespace Elsa.Agents; - -public static class ServiceCollectionExtensions -{ - public static IServiceCollection AddPluginProvider(this IServiceCollection services) where T: class, IPluginProvider - { - return services.AddScoped(); - } - - public static IServiceCollection AddAgentServiceProvider(this IServiceCollection services) where T: class, IAgentServiceProvider - { - return services.AddScoped(); - } -} \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Core/Features/AgentsFeature.cs b/src/modules/Elsa.Agents.Core/Features/AgentsFeature.cs deleted file mode 100644 index 518d1ebdd..000000000 --- a/src/modules/Elsa.Agents.Core/Features/AgentsFeature.cs +++ /dev/null @@ -1,40 +0,0 @@ -using Elsa.Agents.Plugins; -using Elsa.Features.Abstractions; -using Elsa.Features.Services; -using JetBrains.Annotations; -using Microsoft.Extensions.DependencyInjection; - -namespace Elsa.Agents.Features; - -/// -/// A feature that installs API endpoints to interact with skilled agents. -/// -[UsedImplicitly] -public class AgentsFeature(IModule module) : FeatureBase(module) -{ - private Func _kernelConfigProviderFactory = sp => sp.GetRequiredService(); - - public AgentsFeature UseKernelConfigProvider(Func factory) - { - _kernelConfigProviderFactory = factory; - return this; - } - - /// - public override void Apply() - { - Services.AddOptions(); - - Services - .AddScoped() - .AddScoped() - .AddScoped() - .AddScoped() - .AddScoped(_kernelConfigProviderFactory) - .AddScoped() - .AddPluginProvider() - .AddAgentServiceProvider() - .AddAgentServiceProvider() - ; - } -} \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Core/FodyWeavers.xml b/src/modules/Elsa.Agents.Core/FodyWeavers.xml deleted file mode 100644 index 00e1d9a1c..000000000 --- a/src/modules/Elsa.Agents.Core/FodyWeavers.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Core/Models/InvokeAgentResult.cs b/src/modules/Elsa.Agents.Core/Models/InvokeAgentResult.cs deleted file mode 100644 index ee2732b91..000000000 --- a/src/modules/Elsa.Agents.Core/Models/InvokeAgentResult.cs +++ /dev/null @@ -1,14 +0,0 @@ -using System.Text.Json; -using Microsoft.SemanticKernel; - -namespace Elsa.Agents; - -public record InvokeAgentResult(AgentConfig Function, FunctionResult FunctionResult) -{ - public object? ParseResult() - { - var targetType = Type.GetType(Function.OutputVariable.Type) ?? typeof(JsonElement); - var json = FunctionResult.GetValue(); - return JsonSerializer.Deserialize(json, targetType); - } -} \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Core/Models/KernelBuilderContext.cs b/src/modules/Elsa.Agents.Core/Models/KernelBuilderContext.cs deleted file mode 100644 index 8fe3dc151..000000000 --- a/src/modules/Elsa.Agents.Core/Models/KernelBuilderContext.cs +++ /dev/null @@ -1,20 +0,0 @@ -using JetBrains.Annotations; -using Microsoft.SemanticKernel; - -namespace Elsa.Agents; - -[UsedImplicitly] -public record KernelBuilderContext(IKernelBuilder KernelBuilder, KernelConfig KernelConfig, ServiceConfig ServiceConfig) -{ - public string GetApiKey() - { - var settings = ServiceConfig.Settings; - if (settings.TryGetValue("ApiKey", out var apiKey)) - return (string)apiKey; - - if (settings.TryGetValue("ApiKeyRef", out var apiKeyRef)) - return KernelConfig.ApiKeys[(string)apiKeyRef].Value; - - throw new KeyNotFoundException($"No api key found for service {ServiceConfig.Type}"); - } -} \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Core/Models/PluginDescriptor.cs b/src/modules/Elsa.Agents.Core/Models/PluginDescriptor.cs deleted file mode 100644 index 31b0c8c7f..000000000 --- a/src/modules/Elsa.Agents.Core/Models/PluginDescriptor.cs +++ /dev/null @@ -1,33 +0,0 @@ -using System.ComponentModel; -using System.Reflection; - -namespace Elsa.Agents; - -/// -/// A descriptor for a plugin. -/// -public class PluginDescriptor -{ - public string Name { get; set; } - public string Description { get; set; } - public Type PluginType { get; set; } - - public PluginDescriptorModel ToModel() => new() - { - Name = Name, - Description = Description, - PluginType = PluginType.AssemblyQualifiedName! - }; - - public static PluginDescriptor From(string? name = null) - { - var pluginType = typeof(TPlugin); - var description = pluginType.GetCustomAttribute()?.Description ?? string.Empty; - return new PluginDescriptor - { - Name = name ?? pluginType.Name.Replace("Plugin", ""), - Description = description, - PluginType = pluginType - }; - } -} \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Core/Options/AgentsOptions.cs b/src/modules/Elsa.Agents.Core/Options/AgentsOptions.cs deleted file mode 100644 index a92862a6e..000000000 --- a/src/modules/Elsa.Agents.Core/Options/AgentsOptions.cs +++ /dev/null @@ -1,8 +0,0 @@ -namespace Elsa.Agents; - -public class AgentsOptions -{ - public ICollection ApiKeys { get; set; } - public ICollection Services { get; set; } - public ICollection Agents { get; set; } -} \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Core/Plugins/ImageGeneratorPlugin.cs b/src/modules/Elsa.Agents.Core/Plugins/ImageGeneratorPlugin.cs deleted file mode 100644 index a4d629754..000000000 --- a/src/modules/Elsa.Agents.Core/Plugins/ImageGeneratorPlugin.cs +++ /dev/null @@ -1,39 +0,0 @@ -using System.ComponentModel; -using JetBrains.Annotations; -using Microsoft.SemanticKernel; -using Microsoft.SemanticKernel.TextToImage; - -#pragma warning disable SKEXP0001 - -namespace Elsa.Agents.Plugins; - -[Description("Generates an image from text")] -[UsedImplicitly] -public class ImageGeneratorPlugin -{ - [KernelFunction("generate_image_from_text")] - [Description("Generates an image from text")] - [return: Description("The URL to the generated image")] - public async Task GenerateImage( - Kernel kernel, - [Description("The text to generate an image from")] - string description, - [Description("The width of the image to generate. When not specified, a default size will be used.")] - int width = 1024, - [Description("The height of the image to generate. When not specified, a default size will be used.")] - int height = 1024) - { - var dallE = kernel.GetRequiredService(); - var imageUrl = await dallE.GenerateImageAsync(description.Trim(), width, height); - return imageUrl; - } -} - -[UsedImplicitly] -public class ImageGeneratorPluginProvider : PluginProvider -{ - public override IEnumerable GetPlugins() - { - yield return PluginDescriptor.From(); - } -} \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Core/ServiceProviders/OpenAIChatCompletionProvider.cs b/src/modules/Elsa.Agents.Core/ServiceProviders/OpenAIChatCompletionProvider.cs deleted file mode 100644 index 6af538fe8..000000000 --- a/src/modules/Elsa.Agents.Core/ServiceProviders/OpenAIChatCompletionProvider.cs +++ /dev/null @@ -1,14 +0,0 @@ -using Microsoft.SemanticKernel; - -namespace Elsa.Agents; - -public class OpenAIChatCompletionProvider : IAgentServiceProvider -{ - public string Name => "OpenAIChatCompletion"; - public void ConfigureKernel(KernelBuilderContext context) - { - var modelId = (string)context.ServiceConfig.Settings["ModelId"]; - var apiKey = context.GetApiKey(); - context.KernelBuilder.AddOpenAIChatCompletion(modelId, apiKey); - } -} \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Core/ServiceProviders/OpenAITextToImageProvider.cs b/src/modules/Elsa.Agents.Core/ServiceProviders/OpenAITextToImageProvider.cs deleted file mode 100644 index b20aba85d..000000000 --- a/src/modules/Elsa.Agents.Core/ServiceProviders/OpenAITextToImageProvider.cs +++ /dev/null @@ -1,16 +0,0 @@ -using Microsoft.SemanticKernel; -#pragma warning disable SKEXP0010 - -namespace Elsa.Agents; - -public class OpenAITextToImageProvider : IAgentServiceProvider -{ - public string Name => "OpenAITextToImage"; - - public void ConfigureKernel(KernelBuilderContext context) - { - var modelId = (string)context.ServiceConfig.Settings["ModelId"]; - var apiKey = context.GetApiKey(); - context.KernelBuilder.AddOpenAITextToImage(apiKey, modelId: modelId); - } -} \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Core/Services/AgentInvoker.cs b/src/modules/Elsa.Agents.Core/Services/AgentInvoker.cs deleted file mode 100644 index a40458c53..000000000 --- a/src/modules/Elsa.Agents.Core/Services/AgentInvoker.cs +++ /dev/null @@ -1,55 +0,0 @@ -using Microsoft.SemanticKernel; -using Microsoft.SemanticKernel.Connectors.OpenAI; - -#pragma warning disable SKEXP0010 -#pragma warning disable SKEXP0001 - -namespace Elsa.Agents; - -public class AgentInvoker(KernelFactory kernelFactory, IKernelConfigProvider kernelConfigProvider) -{ - public async Task InvokeAgentAsync(string agentName, IDictionary input, CancellationToken cancellationToken = default) - { - var kernelConfig = await kernelConfigProvider.GetKernelConfigAsync(cancellationToken); - var kernel = kernelFactory.CreateKernel(kernelConfig, agentName); - var agentConfig = kernelConfig.Agents[agentName]; - var executionSettings = agentConfig.ExecutionSettings; - var promptExecutionSettings = new OpenAIPromptExecutionSettings - { - Temperature = executionSettings.Temperature, - TopP = executionSettings.TopP, - MaxTokens = executionSettings.MaxTokens, - PresencePenalty = executionSettings.PresencePenalty, - FrequencyPenalty = executionSettings.FrequencyPenalty, - ToolCallBehavior = ToolCallBehavior.AutoInvokeKernelFunctions, - ResponseFormat = executionSettings.ResponseFormat, - ChatSystemPrompt = agentConfig.PromptTemplate, - }; - - var promptExecutionSettingsDictionary = new Dictionary - { - [PromptExecutionSettings.DefaultServiceId] = promptExecutionSettings, - }; - - var promptTemplateConfig = new PromptTemplateConfig - { - Name = agentConfig.FunctionName, - Description = agentConfig.Description, - Template = agentConfig.PromptTemplate, - ExecutionSettings = promptExecutionSettingsDictionary, - AllowDangerouslySetContent = true, - InputVariables = agentConfig.InputVariables.Select(x => new InputVariable - { - Name = x.Name, - Description = x.Description, - IsRequired = true, - AllowDangerouslySetContent = true - }).ToList() - }; - - var kernelFunction = kernel.CreateFunctionFromPrompt(promptTemplateConfig); - var kernelArguments = new KernelArguments(input); - var result = await kernelFunction.InvokeAsync(kernel, kernelArguments, cancellationToken: cancellationToken); - return new(agentConfig, result); - } -} \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Core/Services/ConfigurationKernelConfigProvider.cs b/src/modules/Elsa.Agents.Core/Services/ConfigurationKernelConfigProvider.cs deleted file mode 100644 index e4320df2c..000000000 --- a/src/modules/Elsa.Agents.Core/Services/ConfigurationKernelConfigProvider.cs +++ /dev/null @@ -1,17 +0,0 @@ -using JetBrains.Annotations; -using Microsoft.Extensions.Options; - -namespace Elsa.Agents; - -[UsedImplicitly] -public class ConfigurationKernelConfigProvider(IOptions options) : IKernelConfigProvider -{ - public Task GetKernelConfigAsync(CancellationToken cancellationToken = default) - { - var kernelConfig = new KernelConfig(); - foreach (var apiKey in options.Value.ApiKeys) kernelConfig.ApiKeys[apiKey.Name] = apiKey; - foreach (var service in options.Value.Services) kernelConfig.Services[service.Name] = service; - foreach (var agent in options.Value.Agents) kernelConfig.Agents[agent.Name] = agent; - return Task.FromResult(kernelConfig); - } -} \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Core/Services/KernelFactory.cs b/src/modules/Elsa.Agents.Core/Services/KernelFactory.cs deleted file mode 100644 index bdc738f4e..000000000 --- a/src/modules/Elsa.Agents.Core/Services/KernelFactory.cs +++ /dev/null @@ -1,113 +0,0 @@ -using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Logging; -using Microsoft.SemanticKernel; - -#pragma warning disable SKEXP0001 -#pragma warning disable SKEXP0010 - -namespace Elsa.Agents; - -public class KernelFactory(IPluginDiscoverer pluginDiscoverer, IServiceDiscoverer serviceDiscoverer, ILoggerFactory loggerFactory, IServiceProvider serviceProvider, ILogger logger) -{ - public Kernel CreateKernel(KernelConfig kernelConfig, string agentName) - { - var agent = kernelConfig.Agents[agentName]; - return CreateKernel(kernelConfig, agent); - } - - public Kernel CreateKernel(KernelConfig kernelConfig, AgentConfig agentConfig) - { - var builder = Kernel.CreateBuilder(); - builder.Services.AddLogging(services => services.AddConsole().SetMinimumLevel(LogLevel.Trace)); - builder.Services.AddSingleton(agentConfig); - - ApplyAgentConfig(builder, kernelConfig, agentConfig); - - return builder.Build(); - } - - private void ApplyAgentConfig(IKernelBuilder builder, KernelConfig kernelConfig, AgentConfig agentConfig) - { - var services = serviceDiscoverer.Discover().ToDictionary(x => x.Name); - - foreach (string serviceName in agentConfig.Services) - { - if (!kernelConfig.Services.TryGetValue(serviceName, out var serviceConfig)) - { - logger.LogWarning($"Service {serviceName} not found"); - continue; - } - - AddService(builder, kernelConfig, serviceConfig, services); - } - - AddPlugins(builder, agentConfig); - AddAgents(builder, kernelConfig, agentConfig); - } - - private void AddService(IKernelBuilder builder, KernelConfig kernelConfig, ServiceConfig serviceConfig, Dictionary services) - { - if (!services.TryGetValue(serviceConfig.Type, out var serviceProvider)) - { - logger.LogWarning($"Service provider {serviceConfig.Type} not found"); - return; - } - - var context = new KernelBuilderContext(builder, kernelConfig, serviceConfig); - serviceProvider.ConfigureKernel(context); - } - - private void AddPlugins(IKernelBuilder builder, AgentConfig agent) - { - var plugins = pluginDiscoverer.GetPluginDescriptors().ToDictionary(x => x.Name); - foreach (var pluginName in agent.Plugins) - { - if (!plugins.TryGetValue(pluginName, out var pluginDescriptor)) - { - logger.LogWarning($"Plugin {pluginName} not found"); - continue; - } - - var pluginType = pluginDescriptor.PluginType; - var pluginInstance = ActivatorUtilities.GetServiceOrCreateInstance(serviceProvider, pluginType); - builder.Plugins.AddFromObject(pluginInstance, pluginName); - } - } - - private void AddAgents(IKernelBuilder builder, KernelConfig kernelConfig, AgentConfig agent) - { - foreach (var agentName in agent.Agents) - { - if (!kernelConfig.Agents.TryGetValue(agentName, out var subAgent)) - { - logger.LogWarning($"Agent {agentName} not found"); - continue; - } - - var promptExecutionSettings = subAgent.ToOpenAIPromptExecutionSettings(); - var promptExecutionSettingsDictionary = new Dictionary - { - [PromptExecutionSettings.DefaultServiceId] = promptExecutionSettings, - }; - var promptTemplateConfig = new PromptTemplateConfig - { - Name = subAgent.FunctionName, - Description = subAgent.Description, - Template = subAgent.PromptTemplate, - ExecutionSettings = promptExecutionSettingsDictionary, - AllowDangerouslySetContent = true, - InputVariables = subAgent.InputVariables.Select(x => new InputVariable - { - Name = x.Name, - Description = x.Description, - IsRequired = true, - AllowDangerouslySetContent = true - }).ToList() - }; - - var subAgentFunction = KernelFunctionFactory.CreateFromPrompt(promptTemplateConfig, loggerFactory: loggerFactory); - var agentPlugin = KernelPluginFactory.CreateFromFunctions(subAgent.Name, subAgent.Description, [subAgentFunction]); - builder.Plugins.Add(agentPlugin); - } - } -} \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Core/Services/PluginDiscoverer.cs b/src/modules/Elsa.Agents.Core/Services/PluginDiscoverer.cs deleted file mode 100644 index fa6451959..000000000 --- a/src/modules/Elsa.Agents.Core/Services/PluginDiscoverer.cs +++ /dev/null @@ -1,9 +0,0 @@ -namespace Elsa.Agents; - -public class PluginDiscoverer(IEnumerable providers) : IPluginDiscoverer -{ - public IEnumerable GetPluginDescriptors() - { - return providers.SelectMany(x => x.GetPlugins()); - } -} \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Core/Services/ServiceDiscoverer.cs b/src/modules/Elsa.Agents.Core/Services/ServiceDiscoverer.cs deleted file mode 100644 index 46f18c6ec..000000000 --- a/src/modules/Elsa.Agents.Core/Services/ServiceDiscoverer.cs +++ /dev/null @@ -1,9 +0,0 @@ -namespace Elsa.Agents; - -public class ServiceDiscoverer(IEnumerable providers) : IServiceDiscoverer -{ - public IEnumerable Discover() - { - return providers; - } -} \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Models/Agents/AgentInputModel.cs b/src/modules/Elsa.Agents.Models/Agents/AgentInputModel.cs deleted file mode 100644 index b5c003eda..000000000 --- a/src/modules/Elsa.Agents.Models/Agents/AgentInputModel.cs +++ /dev/null @@ -1,17 +0,0 @@ -using System.ComponentModel.DataAnnotations; - -namespace Elsa.Agents; - -public class AgentInputModel -{ - [Required] public string Name { get; set; } = ""; - [Required] public string Description { get; set; } = ""; - public ICollection Services { get; set; } = []; - [Required] public string FunctionName { get; set; } = ""; - [Required] public string PromptTemplate { get; set; } = ""; - public ICollection InputVariables { get; set; } = []; - [Required] public OutputVariableConfig OutputVariable { get; set; } = new(); - public ExecutionSettingsConfig ExecutionSettings { get; set; } = new(); - public ICollection Plugins { get; set; } = []; - public ICollection Agents { get; set; } = []; -} \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Models/Agents/AgentModel.cs b/src/modules/Elsa.Agents.Models/Agents/AgentModel.cs deleted file mode 100644 index f8c99b8d9..000000000 --- a/src/modules/Elsa.Agents.Models/Agents/AgentModel.cs +++ /dev/null @@ -1,8 +0,0 @@ -using System.ComponentModel.DataAnnotations; - -namespace Elsa.Agents; - -public class AgentModel : AgentInputModel -{ - [Required] public string Id { get; set; } = default!; -} \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Models/ApiKeys/ApiKeyInputModel.cs b/src/modules/Elsa.Agents.Models/ApiKeys/ApiKeyInputModel.cs deleted file mode 100644 index ff8632923..000000000 --- a/src/modules/Elsa.Agents.Models/ApiKeys/ApiKeyInputModel.cs +++ /dev/null @@ -1,9 +0,0 @@ -using System.ComponentModel.DataAnnotations; - -namespace Elsa.Agents; - -public class ApiKeyInputModel -{ - [Required] public string Name { get; set; } = default!; - [Required] public string Value { get; set; } = default!; -} \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Models/ApiKeys/ApiKeyModel.cs b/src/modules/Elsa.Agents.Models/ApiKeys/ApiKeyModel.cs deleted file mode 100644 index e34095362..000000000 --- a/src/modules/Elsa.Agents.Models/ApiKeys/ApiKeyModel.cs +++ /dev/null @@ -1,8 +0,0 @@ -using System.ComponentModel.DataAnnotations; - -namespace Elsa.Agents; - -public class ApiKeyModel : ApiKeyInputModel -{ - [Required] public string Id { get; set; } = default!; -} \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Models/BulkActions/BulkDeleteRequest.cs b/src/modules/Elsa.Agents.Models/BulkActions/BulkDeleteRequest.cs deleted file mode 100644 index 7352e9b37..000000000 --- a/src/modules/Elsa.Agents.Models/BulkActions/BulkDeleteRequest.cs +++ /dev/null @@ -1,8 +0,0 @@ -using System.ComponentModel.DataAnnotations; - -namespace Elsa.Agents; - -public class BulkDeleteRequest -{ - [Required] public ICollection Ids { get; set; } = default!; -} \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Models/BulkActions/BulkDeleteResponse.cs b/src/modules/Elsa.Agents.Models/BulkActions/BulkDeleteResponse.cs deleted file mode 100644 index 5ad391abf..000000000 --- a/src/modules/Elsa.Agents.Models/BulkActions/BulkDeleteResponse.cs +++ /dev/null @@ -1,3 +0,0 @@ -namespace Elsa.Agents; - -public record BulkDeleteResponse(long DeletedCount); \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Models/Configs/AgentConfig.cs b/src/modules/Elsa.Agents.Models/Configs/AgentConfig.cs deleted file mode 100644 index 7033305ab..000000000 --- a/src/modules/Elsa.Agents.Models/Configs/AgentConfig.cs +++ /dev/null @@ -1,17 +0,0 @@ -namespace Elsa.Agents; - -public class AgentConfig -{ - public string Name { get; set; } = ""; - public string Description { get; set; } = ""; - public ICollection Services { get; set; } = []; - public string FunctionName { get; set; } = default!; - public string PromptTemplate { get; set; } = default!; - public ICollection InputVariables { get; set; } = []; - public OutputVariableConfig OutputVariable { get; set; } = new(); - public ExecutionSettingsConfig ExecutionSettings { get; set; } = new(); - public ICollection Plugins { get; set; } = []; - public ICollection Agents { get; set; } = []; - - -} \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Models/Configs/ApiKeyConfig.cs b/src/modules/Elsa.Agents.Models/Configs/ApiKeyConfig.cs deleted file mode 100644 index 88b4e7334..000000000 --- a/src/modules/Elsa.Agents.Models/Configs/ApiKeyConfig.cs +++ /dev/null @@ -1,10 +0,0 @@ -using JetBrains.Annotations; - -namespace Elsa.Agents; - -[UsedImplicitly] -public class ApiKeyConfig -{ - public string Name { get; set; } - public string Value { get; set; } -} \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Models/Configs/ExecutionSettingsConfig.cs b/src/modules/Elsa.Agents.Models/Configs/ExecutionSettingsConfig.cs deleted file mode 100644 index bdb512b7d..000000000 --- a/src/modules/Elsa.Agents.Models/Configs/ExecutionSettingsConfig.cs +++ /dev/null @@ -1,13 +0,0 @@ -#pragma warning disable SKEXP0010 - -namespace Elsa.Agents; - -public class ExecutionSettingsConfig -{ - public int? MaxTokens { get; set; } - public double Temperature { get; set; } - public double TopP { get; set; } - public double PresencePenalty { get; set; } - public double FrequencyPenalty { get; set; } - public string? ResponseFormat { get; set; } -} \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Models/Configs/FunctionConfig.cs b/src/modules/Elsa.Agents.Models/Configs/FunctionConfig.cs deleted file mode 100644 index a4b3d05b3..000000000 --- a/src/modules/Elsa.Agents.Models/Configs/FunctionConfig.cs +++ /dev/null @@ -1,7 +0,0 @@ -namespace Elsa.Agents; - -public class FunctionConfig -{ - - -} \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Models/Configs/InputVariableConfig.cs b/src/modules/Elsa.Agents.Models/Configs/InputVariableConfig.cs deleted file mode 100644 index 4e0faaaa9..000000000 --- a/src/modules/Elsa.Agents.Models/Configs/InputVariableConfig.cs +++ /dev/null @@ -1,8 +0,0 @@ -namespace Elsa.Agents; - -public class InputVariableConfig -{ - public string Name { get; set; } = ""; - public string Description { get; set; } = ""; - public string Type { get; set; } = ""; -} \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Models/Configs/KernelConfig.cs b/src/modules/Elsa.Agents.Models/Configs/KernelConfig.cs deleted file mode 100644 index 75c285275..000000000 --- a/src/modules/Elsa.Agents.Models/Configs/KernelConfig.cs +++ /dev/null @@ -1,8 +0,0 @@ -namespace Elsa.Agents; - -public class KernelConfig -{ - public IDictionary ApiKeys { get; set; } = new Dictionary(); - public IDictionary Services { get; } = new Dictionary(); - public IDictionary Agents { get; } = new Dictionary(); -} \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Models/Configs/OutputVariableConfig.cs b/src/modules/Elsa.Agents.Models/Configs/OutputVariableConfig.cs deleted file mode 100644 index e9f4fe1cc..000000000 --- a/src/modules/Elsa.Agents.Models/Configs/OutputVariableConfig.cs +++ /dev/null @@ -1,7 +0,0 @@ -namespace Elsa.Agents; - -public class OutputVariableConfig -{ - public string Description { get; set; } = ""; - public string Type { get; set; } = ""; -} \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Models/Configs/ServiceConfig.cs b/src/modules/Elsa.Agents.Models/Configs/ServiceConfig.cs deleted file mode 100644 index 4ad83b92f..000000000 --- a/src/modules/Elsa.Agents.Models/Configs/ServiceConfig.cs +++ /dev/null @@ -1,8 +0,0 @@ -namespace Elsa.Agents; - -public class ServiceConfig -{ - public string Name { get; set; } - public string Type { get; set; } - public IDictionary Settings { get; set; } = new Dictionary(); -} \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Models/Elsa.Agents.Models.csproj b/src/modules/Elsa.Agents.Models/Elsa.Agents.Models.csproj deleted file mode 100644 index 08a821dfe..000000000 --- a/src/modules/Elsa.Agents.Models/Elsa.Agents.Models.csproj +++ /dev/null @@ -1,9 +0,0 @@ - - - - Provides models that can be shared between the API and API clients - elsa module agents semantic kernel llm ai api - Elsa.Agents - - - diff --git a/src/modules/Elsa.Agents.Models/Elsa.Agents.Models.csproj.DotSettings b/src/modules/Elsa.Agents.Models/Elsa.Agents.Models.csproj.DotSettings deleted file mode 100644 index a9c50b1bb..000000000 --- a/src/modules/Elsa.Agents.Models/Elsa.Agents.Models.csproj.DotSettings +++ /dev/null @@ -1,8 +0,0 @@ - - True - True - True - True - True - True - True \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Models/FodyWeavers.xml b/src/modules/Elsa.Agents.Models/FodyWeavers.xml deleted file mode 100644 index 00e1d9a1c..000000000 --- a/src/modules/Elsa.Agents.Models/FodyWeavers.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Models/Plugins/PluginDescriptor.cs b/src/modules/Elsa.Agents.Models/Plugins/PluginDescriptor.cs deleted file mode 100644 index c8325fdfb..000000000 --- a/src/modules/Elsa.Agents.Models/Plugins/PluginDescriptor.cs +++ /dev/null @@ -1,11 +0,0 @@ -namespace Elsa.Agents; - -/// -/// A descriptor for a plugin. -/// -public class PluginDescriptorModel -{ - public string Name { get; set; } - public string Description { get; set; } - public string PluginType { get; set; } -} \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Models/Services/ServiceInputModel.cs b/src/modules/Elsa.Agents.Models/Services/ServiceInputModel.cs deleted file mode 100644 index 3ffb77ba2..000000000 --- a/src/modules/Elsa.Agents.Models/Services/ServiceInputModel.cs +++ /dev/null @@ -1,10 +0,0 @@ -using System.ComponentModel.DataAnnotations; - -namespace Elsa.Agents; - -public class ServiceInputModel -{ - [Required] public string Name { get; set; } = default!; - [Required] public string Type { get; set; } = default!; - public IDictionary Settings { get; set; } = new Dictionary(); -} \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Models/Services/ServiceModel.cs b/src/modules/Elsa.Agents.Models/Services/ServiceModel.cs deleted file mode 100644 index 7bc78dfc0..000000000 --- a/src/modules/Elsa.Agents.Models/Services/ServiceModel.cs +++ /dev/null @@ -1,8 +0,0 @@ -using System.ComponentModel.DataAnnotations; - -namespace Elsa.Agents; - -public class ServiceModel : ServiceInputModel -{ - [Required] public string Id { get; set; } = default!; -} \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Models/UniqueName/GenerateUniqueNameResponse.cs b/src/modules/Elsa.Agents.Models/UniqueName/GenerateUniqueNameResponse.cs deleted file mode 100644 index 14140daf8..000000000 --- a/src/modules/Elsa.Agents.Models/UniqueName/GenerateUniqueNameResponse.cs +++ /dev/null @@ -1,3 +0,0 @@ -namespace Elsa.Agents; - -public record GenerateUniqueNameResponse(string Name); \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Models/UniqueName/IsUniqueNameRequest.cs b/src/modules/Elsa.Agents.Models/UniqueName/IsUniqueNameRequest.cs deleted file mode 100644 index a96fbcba9..000000000 --- a/src/modules/Elsa.Agents.Models/UniqueName/IsUniqueNameRequest.cs +++ /dev/null @@ -1,11 +0,0 @@ -using System.ComponentModel.DataAnnotations; -using JetBrains.Annotations; - -namespace Elsa.Agents; - -[UsedImplicitly] -public class IsUniqueNameRequest -{ - [Required] public string Name { get; set; } = default!; - public string? Id { get; set; } -} \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Models/UniqueName/IsUniqueNameResponse.cs b/src/modules/Elsa.Agents.Models/UniqueName/IsUniqueNameResponse.cs deleted file mode 100644 index 2a36a3644..000000000 --- a/src/modules/Elsa.Agents.Models/UniqueName/IsUniqueNameResponse.cs +++ /dev/null @@ -1,5 +0,0 @@ -using JetBrains.Annotations; - -namespace Elsa.Agents; - -[UsedImplicitly] public record IsUniqueNameResponse(bool IsUnique); \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.MySql/AgentsMySqlProvidersExtensions.cs b/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.MySql/AgentsMySqlProvidersExtensions.cs deleted file mode 100644 index f375f65dd..000000000 --- a/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.MySql/AgentsMySqlProvidersExtensions.cs +++ /dev/null @@ -1,22 +0,0 @@ -using System.Reflection; -using Elsa.Agents.Persistence.EntityFrameworkCore; - -// ReSharper disable once CheckNamespace -namespace Elsa.EntityFrameworkCore.Extensions; - -/// -/// Provides extensions to configure EF Core to use MySQL. -/// -public static class AgentsMySqlProvidersExtensions -{ - private static Assembly Assembly => typeof(AgentsMySqlProvidersExtensions).Assembly; - - /// - /// Configures the feature to use MySQL. - /// - public static EFCoreAgentPersistenceFeature UseMySql(this EFCoreAgentPersistenceFeature feature, string connectionString, ElsaDbContextOptions? options = null) - { - feature.UseMySql(Assembly, connectionString, options); - return feature; - } -} \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.MySql/DbContextFactories.cs b/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.MySql/DbContextFactories.cs deleted file mode 100644 index 748e42ade..000000000 --- a/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.MySql/DbContextFactories.cs +++ /dev/null @@ -1,15 +0,0 @@ -using Elsa.EntityFrameworkCore.Abstractions; -using Elsa.EntityFrameworkCore.Extensions; -using JetBrains.Annotations; -using Microsoft.EntityFrameworkCore; - -namespace Elsa.Agents.Persistence.EntityFrameworkCore.MySql; - -[UsedImplicitly] -public class MySqlAgentsDbContextFactory : DesignTimeDbContextFactoryBase -{ - protected override void ConfigureBuilder(DbContextOptionsBuilder builder, string connectionString) - { - builder.UseElsaMySql(GetType().Assembly, connectionString, serverVersion: MySqlServerVersion.LatestSupportedServerVersion); - } -} \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.MySql/Elsa.Agents.Persistence.EntityFrameworkCore.MySql.csproj b/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.MySql/Elsa.Agents.Persistence.EntityFrameworkCore.MySql.csproj deleted file mode 100644 index 4ef508dba..000000000 --- a/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.MySql/Elsa.Agents.Persistence.EntityFrameworkCore.MySql.csproj +++ /dev/null @@ -1,19 +0,0 @@ - - - - net8.0;net9.0 - Provides an EF Core migrations for MySQL for the Agents Persistence module. - elsa module agents semantic kernel llm ai persistence efcore entity framework core mysql - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.MySql/FodyWeavers.xml b/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.MySql/FodyWeavers.xml deleted file mode 100644 index 00e1d9a1c..000000000 --- a/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.MySql/FodyWeavers.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.MySql/Migrations/20241023123010_V3_3.Designer.cs b/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.MySql/Migrations/20241023123010_V3_3.Designer.cs deleted file mode 100644 index 285452d06..000000000 --- a/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.MySql/Migrations/20241023123010_V3_3.Designer.cs +++ /dev/null @@ -1,116 +0,0 @@ -// -using Elsa.Agents.Persistence.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Infrastructure; -using Microsoft.EntityFrameworkCore.Migrations; -using Microsoft.EntityFrameworkCore.Storage.ValueConversion; - -#nullable disable - -namespace Elsa.Agents.Persistence.EntityFrameworkCore.MySql.Migrations -{ - [DbContext(typeof(AgentsDbContext))] - [Migration("20241023123010_V3_3")] - partial class V3_3 - { - /// - protected override void BuildTargetModel(ModelBuilder modelBuilder) - { -#pragma warning disable 612, 618 - modelBuilder - .HasDefaultSchema("Elsa") - .HasAnnotation("ProductVersion", "7.0.20") - .HasAnnotation("Relational:MaxIdentifierLength", 64); - - modelBuilder.Entity("Elsa.Agents.Persistence.Entities.AgentDefinition", b => - { - b.Property("Id") - .HasColumnType("varchar(255)"); - - b.Property("AgentConfig") - .IsRequired() - .HasColumnType("longtext"); - - b.Property("Description") - .IsRequired() - .HasColumnType("longtext"); - - b.Property("Name") - .IsRequired() - .HasColumnType("varchar(255)"); - - b.Property("TenantId") - .HasColumnType("varchar(255)"); - - b.HasKey("Id"); - - b.HasIndex("Name") - .HasDatabaseName("IX_AgentDefinition_Name"); - - b.HasIndex("TenantId") - .HasDatabaseName("IX_AgentDefinition_TenantId"); - - b.ToTable("AgentDefinitions", "Elsa"); - }); - - modelBuilder.Entity("Elsa.Agents.Persistence.Entities.ApiKeyDefinition", b => - { - b.Property("Id") - .HasColumnType("varchar(255)"); - - b.Property("Name") - .IsRequired() - .HasColumnType("varchar(255)"); - - b.Property("TenantId") - .HasColumnType("varchar(255)"); - - b.Property("Value") - .IsRequired() - .HasColumnType("longtext"); - - b.HasKey("Id"); - - b.HasIndex("Name") - .HasDatabaseName("IX_ApiKeyDefinition_Name"); - - b.HasIndex("TenantId") - .HasDatabaseName("IX_ApiKeyDefinition_TenantId"); - - b.ToTable("ApiKeysDefinitions", "Elsa"); - }); - - modelBuilder.Entity("Elsa.Agents.Persistence.Entities.ServiceDefinition", b => - { - b.Property("Id") - .HasColumnType("varchar(255)"); - - b.Property("Name") - .IsRequired() - .HasColumnType("varchar(255)"); - - b.Property("Settings") - .IsRequired() - .HasColumnType("longtext"); - - b.Property("TenantId") - .HasColumnType("varchar(255)"); - - b.Property("Type") - .IsRequired() - .HasColumnType("longtext"); - - b.HasKey("Id"); - - b.HasIndex("Name") - .HasDatabaseName("IX_ServiceDefinition_Name"); - - b.HasIndex("TenantId") - .HasDatabaseName("IX_ServiceDefinition_TenantId"); - - b.ToTable("ServicesDefinitions", "Elsa"); - }); -#pragma warning restore 612, 618 - } - } -} diff --git a/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.MySql/Migrations/20241023123010_V3_3.cs b/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.MySql/Migrations/20241023123010_V3_3.cs deleted file mode 100644 index 2c46ebc2c..000000000 --- a/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.MySql/Migrations/20241023123010_V3_3.cs +++ /dev/null @@ -1,144 +0,0 @@ -using Microsoft.EntityFrameworkCore.Migrations; - -#nullable disable - -namespace Elsa.Agents.Persistence.EntityFrameworkCore.MySql.Migrations -{ - /// - public partial class V3_3 : Migration - { - private readonly Elsa.EntityFrameworkCore.IElsaDbContextSchema _schema; - - /// - public V3_3(Elsa.EntityFrameworkCore.IElsaDbContextSchema schema) - { - _schema = schema; - } - - /// - protected override void Up(MigrationBuilder migrationBuilder) - { - migrationBuilder.EnsureSchema( - name: "Elsa"); - - migrationBuilder.AlterDatabase() - .Annotation("MySql:CharSet", "utf8mb4"); - - migrationBuilder.CreateTable( - name: "AgentDefinitions", - schema: _schema.Schema, - columns: table => new - { - Id = table.Column(type: "varchar(255)", nullable: false) - .Annotation("MySql:CharSet", "utf8mb4"), - Name = table.Column(type: "varchar(255)", nullable: false) - .Annotation("MySql:CharSet", "utf8mb4"), - Description = table.Column(type: "longtext", nullable: false) - .Annotation("MySql:CharSet", "utf8mb4"), - AgentConfig = table.Column(type: "longtext", nullable: false) - .Annotation("MySql:CharSet", "utf8mb4"), - TenantId = table.Column(type: "varchar(255)", nullable: true) - .Annotation("MySql:CharSet", "utf8mb4") - }, - constraints: table => - { - table.PrimaryKey("PK_AgentDefinitions", x => x.Id); - }) - .Annotation("MySql:CharSet", "utf8mb4"); - - migrationBuilder.CreateTable( - name: "ApiKeysDefinitions", - schema: _schema.Schema, - columns: table => new - { - Id = table.Column(type: "varchar(255)", nullable: false) - .Annotation("MySql:CharSet", "utf8mb4"), - Name = table.Column(type: "varchar(255)", nullable: false) - .Annotation("MySql:CharSet", "utf8mb4"), - Value = table.Column(type: "longtext", nullable: false) - .Annotation("MySql:CharSet", "utf8mb4"), - TenantId = table.Column(type: "varchar(255)", nullable: true) - .Annotation("MySql:CharSet", "utf8mb4") - }, - constraints: table => - { - table.PrimaryKey("PK_ApiKeysDefinitions", x => x.Id); - }) - .Annotation("MySql:CharSet", "utf8mb4"); - - migrationBuilder.CreateTable( - name: "ServicesDefinitions", - schema: _schema.Schema, - columns: table => new - { - Id = table.Column(type: "varchar(255)", nullable: false) - .Annotation("MySql:CharSet", "utf8mb4"), - Name = table.Column(type: "varchar(255)", nullable: false) - .Annotation("MySql:CharSet", "utf8mb4"), - Type = table.Column(type: "longtext", nullable: false) - .Annotation("MySql:CharSet", "utf8mb4"), - Settings = table.Column(type: "longtext", nullable: false) - .Annotation("MySql:CharSet", "utf8mb4"), - TenantId = table.Column(type: "varchar(255)", nullable: true) - .Annotation("MySql:CharSet", "utf8mb4") - }, - constraints: table => - { - table.PrimaryKey("PK_ServicesDefinitions", x => x.Id); - }) - .Annotation("MySql:CharSet", "utf8mb4"); - - migrationBuilder.CreateIndex( - name: "IX_AgentDefinition_Name", - schema: _schema.Schema, - table: "AgentDefinitions", - column: "Name"); - - migrationBuilder.CreateIndex( - name: "IX_AgentDefinition_TenantId", - schema: _schema.Schema, - table: "AgentDefinitions", - column: "TenantId"); - - migrationBuilder.CreateIndex( - name: "IX_ApiKeyDefinition_Name", - schema: _schema.Schema, - table: "ApiKeysDefinitions", - column: "Name"); - - migrationBuilder.CreateIndex( - name: "IX_ApiKeyDefinition_TenantId", - schema: _schema.Schema, - table: "ApiKeysDefinitions", - column: "TenantId"); - - migrationBuilder.CreateIndex( - name: "IX_ServiceDefinition_Name", - schema: _schema.Schema, - table: "ServicesDefinitions", - column: "Name"); - - migrationBuilder.CreateIndex( - name: "IX_ServiceDefinition_TenantId", - schema: _schema.Schema, - table: "ServicesDefinitions", - column: "TenantId"); - } - - /// - protected override void Down(MigrationBuilder migrationBuilder) - { - migrationBuilder.DropTable( - name: "AgentDefinitions", - schema: _schema.Schema); - - migrationBuilder.DropTable( - name: "ApiKeysDefinitions", - schema: _schema.Schema); - - migrationBuilder.DropTable( - name: "ServicesDefinitions", - schema: _schema.Schema); - } - } -} diff --git a/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.MySql/Migrations/AgentsDbContextModelSnapshot.cs b/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.MySql/Migrations/AgentsDbContextModelSnapshot.cs deleted file mode 100644 index 2363cb794..000000000 --- a/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.MySql/Migrations/AgentsDbContextModelSnapshot.cs +++ /dev/null @@ -1,113 +0,0 @@ -// -using Elsa.Agents.Persistence.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Infrastructure; -using Microsoft.EntityFrameworkCore.Storage.ValueConversion; - -#nullable disable - -namespace Elsa.Agents.Persistence.EntityFrameworkCore.MySql.Migrations -{ - [DbContext(typeof(AgentsDbContext))] - partial class AgentsDbContextModelSnapshot : ModelSnapshot - { - protected override void BuildModel(ModelBuilder modelBuilder) - { -#pragma warning disable 612, 618 - modelBuilder - .HasDefaultSchema("Elsa") - .HasAnnotation("ProductVersion", "7.0.20") - .HasAnnotation("Relational:MaxIdentifierLength", 64); - - modelBuilder.Entity("Elsa.Agents.Persistence.Entities.AgentDefinition", b => - { - b.Property("Id") - .HasColumnType("varchar(255)"); - - b.Property("AgentConfig") - .IsRequired() - .HasColumnType("longtext"); - - b.Property("Description") - .IsRequired() - .HasColumnType("longtext"); - - b.Property("Name") - .IsRequired() - .HasColumnType("varchar(255)"); - - b.Property("TenantId") - .HasColumnType("varchar(255)"); - - b.HasKey("Id"); - - b.HasIndex("Name") - .HasDatabaseName("IX_AgentDefinition_Name"); - - b.HasIndex("TenantId") - .HasDatabaseName("IX_AgentDefinition_TenantId"); - - b.ToTable("AgentDefinitions", "Elsa"); - }); - - modelBuilder.Entity("Elsa.Agents.Persistence.Entities.ApiKeyDefinition", b => - { - b.Property("Id") - .HasColumnType("varchar(255)"); - - b.Property("Name") - .IsRequired() - .HasColumnType("varchar(255)"); - - b.Property("TenantId") - .HasColumnType("varchar(255)"); - - b.Property("Value") - .IsRequired() - .HasColumnType("longtext"); - - b.HasKey("Id"); - - b.HasIndex("Name") - .HasDatabaseName("IX_ApiKeyDefinition_Name"); - - b.HasIndex("TenantId") - .HasDatabaseName("IX_ApiKeyDefinition_TenantId"); - - b.ToTable("ApiKeysDefinitions", "Elsa"); - }); - - modelBuilder.Entity("Elsa.Agents.Persistence.Entities.ServiceDefinition", b => - { - b.Property("Id") - .HasColumnType("varchar(255)"); - - b.Property("Name") - .IsRequired() - .HasColumnType("varchar(255)"); - - b.Property("Settings") - .IsRequired() - .HasColumnType("longtext"); - - b.Property("TenantId") - .HasColumnType("varchar(255)"); - - b.Property("Type") - .IsRequired() - .HasColumnType("longtext"); - - b.HasKey("Id"); - - b.HasIndex("Name") - .HasDatabaseName("IX_ServiceDefinition_Name"); - - b.HasIndex("TenantId") - .HasDatabaseName("IX_ServiceDefinition_TenantId"); - - b.ToTable("ServicesDefinitions", "Elsa"); - }); -#pragma warning restore 612, 618 - } - } -} diff --git a/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.MySql/efcore-3.3.sh b/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.MySql/efcore-3.3.sh deleted file mode 100644 index a6b7f12ad..000000000 --- a/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.MySql/efcore-3.3.sh +++ /dev/null @@ -1 +0,0 @@ -ef-migration-runtime-schema --interface Elsa.EntityFrameworkCore.IElsaDbContextSchema --efOptions "migrations add V3_3 -c AgentsDbContext -o Migrations" \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.PostgreSql/DbContextFactories.cs b/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.PostgreSql/DbContextFactories.cs deleted file mode 100644 index b092dc915..000000000 --- a/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.PostgreSql/DbContextFactories.cs +++ /dev/null @@ -1,15 +0,0 @@ -using Elsa.EntityFrameworkCore.Abstractions; -using Elsa.EntityFrameworkCore.Extensions; -using JetBrains.Annotations; -using Microsoft.EntityFrameworkCore; - -namespace Elsa.Agents.Persistence.EntityFrameworkCore.PostgreSql; - -[UsedImplicitly] -public class PostgreSqlAgentsDbContextFactory : DesignTimeDbContextFactoryBase -{ - protected override void ConfigureBuilder(DbContextOptionsBuilder builder, string connectionString) - { - builder.UseElsaPostgreSql(GetType().Assembly, connectionString); - } -} \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.PostgreSql/Elsa.Agents.Persistence.EntityFrameworkCore.PostgreSql.csproj b/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.PostgreSql/Elsa.Agents.Persistence.EntityFrameworkCore.PostgreSql.csproj deleted file mode 100644 index af1407bb1..000000000 --- a/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.PostgreSql/Elsa.Agents.Persistence.EntityFrameworkCore.PostgreSql.csproj +++ /dev/null @@ -1,18 +0,0 @@ - - - - Provides an EF Core migrations for PostgreSQL for the Agents Persistence module. - elsa module agents semantic kernel llm ai persistence efcore entity framework core postgresql - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.PostgreSql/FodyWeavers.xml b/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.PostgreSql/FodyWeavers.xml deleted file mode 100644 index 00e1d9a1c..000000000 --- a/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.PostgreSql/FodyWeavers.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.PostgreSql/Migrations/20241023122148_V3_3.Designer.cs b/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.PostgreSql/Migrations/20241023122148_V3_3.Designer.cs deleted file mode 100644 index e6c43e0a0..000000000 --- a/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.PostgreSql/Migrations/20241023122148_V3_3.Designer.cs +++ /dev/null @@ -1,119 +0,0 @@ -// -using Elsa.Agents.Persistence.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Infrastructure; -using Microsoft.EntityFrameworkCore.Migrations; -using Microsoft.EntityFrameworkCore.Storage.ValueConversion; -using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; - -#nullable disable - -namespace Elsa.Agents.Persistence.EntityFrameworkCore.PostgreSql.Migrations -{ - [DbContext(typeof(AgentsDbContext))] - [Migration("20241023122148_V3_3")] - partial class V3_3 - { - /// - protected override void BuildTargetModel(ModelBuilder modelBuilder) - { -#pragma warning disable 612, 618 - modelBuilder - .HasDefaultSchema("Elsa") - .HasAnnotation("ProductVersion", "7.0.20") - .HasAnnotation("Relational:MaxIdentifierLength", 63); - - NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder); - - modelBuilder.Entity("Elsa.Agents.Persistence.Entities.AgentDefinition", b => - { - b.Property("Id") - .HasColumnType("text"); - - b.Property("AgentConfig") - .IsRequired() - .HasColumnType("text"); - - b.Property("Description") - .IsRequired() - .HasColumnType("text"); - - b.Property("Name") - .IsRequired() - .HasColumnType("text"); - - b.Property("TenantId") - .HasColumnType("text"); - - b.HasKey("Id"); - - b.HasIndex("Name") - .HasDatabaseName("IX_AgentDefinition_Name"); - - b.HasIndex("TenantId") - .HasDatabaseName("IX_AgentDefinition_TenantId"); - - b.ToTable("AgentDefinitions", "Elsa"); - }); - - modelBuilder.Entity("Elsa.Agents.Persistence.Entities.ApiKeyDefinition", b => - { - b.Property("Id") - .HasColumnType("text"); - - b.Property("Name") - .IsRequired() - .HasColumnType("text"); - - b.Property("TenantId") - .HasColumnType("text"); - - b.Property("Value") - .IsRequired() - .HasColumnType("text"); - - b.HasKey("Id"); - - b.HasIndex("Name") - .HasDatabaseName("IX_ApiKeyDefinition_Name"); - - b.HasIndex("TenantId") - .HasDatabaseName("IX_ApiKeyDefinition_TenantId"); - - b.ToTable("ApiKeysDefinitions", "Elsa"); - }); - - modelBuilder.Entity("Elsa.Agents.Persistence.Entities.ServiceDefinition", b => - { - b.Property("Id") - .HasColumnType("text"); - - b.Property("Name") - .IsRequired() - .HasColumnType("text"); - - b.Property("Settings") - .IsRequired() - .HasColumnType("text"); - - b.Property("TenantId") - .HasColumnType("text"); - - b.Property("Type") - .IsRequired() - .HasColumnType("text"); - - b.HasKey("Id"); - - b.HasIndex("Name") - .HasDatabaseName("IX_ServiceDefinition_Name"); - - b.HasIndex("TenantId") - .HasDatabaseName("IX_ServiceDefinition_TenantId"); - - b.ToTable("ServicesDefinitions", "Elsa"); - }); -#pragma warning restore 612, 618 - } - } -} diff --git a/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.PostgreSql/Migrations/20241023122148_V3_3.cs b/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.PostgreSql/Migrations/20241023122148_V3_3.cs deleted file mode 100644 index 9f9f25495..000000000 --- a/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.PostgreSql/Migrations/20241023122148_V3_3.cs +++ /dev/null @@ -1,124 +0,0 @@ -using Microsoft.EntityFrameworkCore.Migrations; - -#nullable disable - -namespace Elsa.Agents.Persistence.EntityFrameworkCore.PostgreSql.Migrations -{ - /// - public partial class V3_3 : Migration - { - private readonly Elsa.EntityFrameworkCore.IElsaDbContextSchema _schema; - - /// - public V3_3(Elsa.EntityFrameworkCore.IElsaDbContextSchema schema) - { - _schema = schema; - } - - /// - protected override void Up(MigrationBuilder migrationBuilder) - { - migrationBuilder.EnsureSchema( - name: "Elsa"); - - migrationBuilder.CreateTable( - name: "AgentDefinitions", - schema: _schema.Schema, - columns: table => new - { - Id = table.Column(type: "text", nullable: false), - Name = table.Column(type: "text", nullable: false), - Description = table.Column(type: "text", nullable: false), - AgentConfig = table.Column(type: "text", nullable: false), - TenantId = table.Column(type: "text", nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_AgentDefinitions", x => x.Id); - }); - - migrationBuilder.CreateTable( - name: "ApiKeysDefinitions", - schema: _schema.Schema, - columns: table => new - { - Id = table.Column(type: "text", nullable: false), - Name = table.Column(type: "text", nullable: false), - Value = table.Column(type: "text", nullable: false), - TenantId = table.Column(type: "text", nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_ApiKeysDefinitions", x => x.Id); - }); - - migrationBuilder.CreateTable( - name: "ServicesDefinitions", - schema: _schema.Schema, - columns: table => new - { - Id = table.Column(type: "text", nullable: false), - Name = table.Column(type: "text", nullable: false), - Type = table.Column(type: "text", nullable: false), - Settings = table.Column(type: "text", nullable: false), - TenantId = table.Column(type: "text", nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_ServicesDefinitions", x => x.Id); - }); - - migrationBuilder.CreateIndex( - name: "IX_AgentDefinition_Name", - schema: _schema.Schema, - table: "AgentDefinitions", - column: "Name"); - - migrationBuilder.CreateIndex( - name: "IX_AgentDefinition_TenantId", - schema: _schema.Schema, - table: "AgentDefinitions", - column: "TenantId"); - - migrationBuilder.CreateIndex( - name: "IX_ApiKeyDefinition_Name", - schema: _schema.Schema, - table: "ApiKeysDefinitions", - column: "Name"); - - migrationBuilder.CreateIndex( - name: "IX_ApiKeyDefinition_TenantId", - schema: _schema.Schema, - table: "ApiKeysDefinitions", - column: "TenantId"); - - migrationBuilder.CreateIndex( - name: "IX_ServiceDefinition_Name", - schema: _schema.Schema, - table: "ServicesDefinitions", - column: "Name"); - - migrationBuilder.CreateIndex( - name: "IX_ServiceDefinition_TenantId", - schema: _schema.Schema, - table: "ServicesDefinitions", - column: "TenantId"); - } - - /// - protected override void Down(MigrationBuilder migrationBuilder) - { - migrationBuilder.DropTable( - name: "AgentDefinitions", - schema: _schema.Schema); - - migrationBuilder.DropTable( - name: "ApiKeysDefinitions", - schema: _schema.Schema); - - migrationBuilder.DropTable( - name: "ServicesDefinitions", - schema: _schema.Schema); - } - } -} diff --git a/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.PostgreSql/Migrations/AgentsDbContextModelSnapshot.cs b/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.PostgreSql/Migrations/AgentsDbContextModelSnapshot.cs deleted file mode 100644 index 516888c89..000000000 --- a/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.PostgreSql/Migrations/AgentsDbContextModelSnapshot.cs +++ /dev/null @@ -1,116 +0,0 @@ -// -using Elsa.Agents.Persistence.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Infrastructure; -using Microsoft.EntityFrameworkCore.Storage.ValueConversion; -using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; - -#nullable disable - -namespace Elsa.Agents.Persistence.EntityFrameworkCore.PostgreSql.Migrations -{ - [DbContext(typeof(AgentsDbContext))] - partial class AgentsDbContextModelSnapshot : ModelSnapshot - { - protected override void BuildModel(ModelBuilder modelBuilder) - { -#pragma warning disable 612, 618 - modelBuilder - .HasDefaultSchema("Elsa") - .HasAnnotation("ProductVersion", "7.0.20") - .HasAnnotation("Relational:MaxIdentifierLength", 63); - - NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder); - - modelBuilder.Entity("Elsa.Agents.Persistence.Entities.AgentDefinition", b => - { - b.Property("Id") - .HasColumnType("text"); - - b.Property("AgentConfig") - .IsRequired() - .HasColumnType("text"); - - b.Property("Description") - .IsRequired() - .HasColumnType("text"); - - b.Property("Name") - .IsRequired() - .HasColumnType("text"); - - b.Property("TenantId") - .HasColumnType("text"); - - b.HasKey("Id"); - - b.HasIndex("Name") - .HasDatabaseName("IX_AgentDefinition_Name"); - - b.HasIndex("TenantId") - .HasDatabaseName("IX_AgentDefinition_TenantId"); - - b.ToTable("AgentDefinitions", "Elsa"); - }); - - modelBuilder.Entity("Elsa.Agents.Persistence.Entities.ApiKeyDefinition", b => - { - b.Property("Id") - .HasColumnType("text"); - - b.Property("Name") - .IsRequired() - .HasColumnType("text"); - - b.Property("TenantId") - .HasColumnType("text"); - - b.Property("Value") - .IsRequired() - .HasColumnType("text"); - - b.HasKey("Id"); - - b.HasIndex("Name") - .HasDatabaseName("IX_ApiKeyDefinition_Name"); - - b.HasIndex("TenantId") - .HasDatabaseName("IX_ApiKeyDefinition_TenantId"); - - b.ToTable("ApiKeysDefinitions", "Elsa"); - }); - - modelBuilder.Entity("Elsa.Agents.Persistence.Entities.ServiceDefinition", b => - { - b.Property("Id") - .HasColumnType("text"); - - b.Property("Name") - .IsRequired() - .HasColumnType("text"); - - b.Property("Settings") - .IsRequired() - .HasColumnType("text"); - - b.Property("TenantId") - .HasColumnType("text"); - - b.Property("Type") - .IsRequired() - .HasColumnType("text"); - - b.HasKey("Id"); - - b.HasIndex("Name") - .HasDatabaseName("IX_ServiceDefinition_Name"); - - b.HasIndex("TenantId") - .HasDatabaseName("IX_ServiceDefinition_TenantId"); - - b.ToTable("ServicesDefinitions", "Elsa"); - }); -#pragma warning restore 612, 618 - } - } -} diff --git a/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.PostgreSql/PostgreSqlProvidersExtensions.cs b/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.PostgreSql/PostgreSqlProvidersExtensions.cs deleted file mode 100644 index b8cccd4b0..000000000 --- a/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.PostgreSql/PostgreSqlProvidersExtensions.cs +++ /dev/null @@ -1,22 +0,0 @@ -using System.Reflection; -using Elsa.Agents.Persistence.EntityFrameworkCore; - -// ReSharper disable once CheckNamespace -namespace Elsa.EntityFrameworkCore.Extensions; - -/// -/// Provides extensions to configure EF Core to use SQL Server. -/// -public static class AgentsPostgreSqlProvidersExtensions -{ - private static Assembly Assembly => typeof(AgentsPostgreSqlProvidersExtensions).Assembly; - - /// - /// Configures the feature to use SQL Server. - /// - public static EFCoreAgentPersistenceFeature UsePostgreSql(this EFCoreAgentPersistenceFeature feature, string connectionString, ElsaDbContextOptions? options = null) - { - feature.UsePostgreSql(Assembly, connectionString, options); - return feature; - } -} \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.PostgreSql/efcore-3.3.sh b/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.PostgreSql/efcore-3.3.sh deleted file mode 100644 index a6b7f12ad..000000000 --- a/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.PostgreSql/efcore-3.3.sh +++ /dev/null @@ -1 +0,0 @@ -ef-migration-runtime-schema --interface Elsa.EntityFrameworkCore.IElsaDbContextSchema --efOptions "migrations add V3_3 -c AgentsDbContext -o Migrations" \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.SqlServer/DbContextFactories.cs b/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.SqlServer/DbContextFactories.cs deleted file mode 100644 index 27d4b1b42..000000000 --- a/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.SqlServer/DbContextFactories.cs +++ /dev/null @@ -1,15 +0,0 @@ -using Elsa.EntityFrameworkCore.Abstractions; -using Elsa.EntityFrameworkCore.Extensions; -using JetBrains.Annotations; -using Microsoft.EntityFrameworkCore; - -namespace Elsa.Agents.Persistence.EntityFrameworkCore.SqlServer; - -[UsedImplicitly] -public class SqlServerAgentsDbContextFactory : DesignTimeDbContextFactoryBase -{ - protected override void ConfigureBuilder(DbContextOptionsBuilder builder, string connectionString) - { - builder.UseElsaSqlServer(GetType().Assembly, connectionString); - } -} \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.SqlServer/Elsa.Agents.Persistence.EntityFrameworkCore.SqlServer.csproj b/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.SqlServer/Elsa.Agents.Persistence.EntityFrameworkCore.SqlServer.csproj deleted file mode 100644 index 5c8d582bc..000000000 --- a/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.SqlServer/Elsa.Agents.Persistence.EntityFrameworkCore.SqlServer.csproj +++ /dev/null @@ -1,18 +0,0 @@ - - - - Provides an EF Core migrations for SQL Server for the Agents Persistence module. - elsa module agents semantic kernel llm ai persistence efcore entity framework core sqlserver - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.SqlServer/FodyWeavers.xml b/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.SqlServer/FodyWeavers.xml deleted file mode 100644 index 00e1d9a1c..000000000 --- a/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.SqlServer/FodyWeavers.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.SqlServer/Migrations/20241023123153_V3_3.Designer.cs b/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.SqlServer/Migrations/20241023123153_V3_3.Designer.cs deleted file mode 100644 index c571b21aa..000000000 --- a/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.SqlServer/Migrations/20241023123153_V3_3.Designer.cs +++ /dev/null @@ -1,119 +0,0 @@ -// -using Elsa.Agents.Persistence.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Infrastructure; -using Microsoft.EntityFrameworkCore.Metadata; -using Microsoft.EntityFrameworkCore.Migrations; -using Microsoft.EntityFrameworkCore.Storage.ValueConversion; - -#nullable disable - -namespace Elsa.Agents.Persistence.EntityFrameworkCore.SqlServer.Migrations -{ - [DbContext(typeof(AgentsDbContext))] - [Migration("20241023123153_V3_3")] - partial class V3_3 - { - /// - protected override void BuildTargetModel(ModelBuilder modelBuilder) - { -#pragma warning disable 612, 618 - modelBuilder - .HasDefaultSchema("Elsa") - .HasAnnotation("ProductVersion", "7.0.20") - .HasAnnotation("Relational:MaxIdentifierLength", 128); - - SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); - - modelBuilder.Entity("Elsa.Agents.Persistence.Entities.AgentDefinition", b => - { - b.Property("Id") - .HasColumnType("nvarchar(450)"); - - b.Property("AgentConfig") - .IsRequired() - .HasColumnType("nvarchar(max)"); - - b.Property("Description") - .IsRequired() - .HasColumnType("nvarchar(max)"); - - b.Property("Name") - .IsRequired() - .HasColumnType("nvarchar(450)"); - - b.Property("TenantId") - .HasColumnType("nvarchar(450)"); - - b.HasKey("Id"); - - b.HasIndex("Name") - .HasDatabaseName("IX_AgentDefinition_Name"); - - b.HasIndex("TenantId") - .HasDatabaseName("IX_AgentDefinition_TenantId"); - - b.ToTable("AgentDefinitions", "Elsa"); - }); - - modelBuilder.Entity("Elsa.Agents.Persistence.Entities.ApiKeyDefinition", b => - { - b.Property("Id") - .HasColumnType("nvarchar(450)"); - - b.Property("Name") - .IsRequired() - .HasColumnType("nvarchar(450)"); - - b.Property("TenantId") - .HasColumnType("nvarchar(450)"); - - b.Property("Value") - .IsRequired() - .HasColumnType("nvarchar(max)"); - - b.HasKey("Id"); - - b.HasIndex("Name") - .HasDatabaseName("IX_ApiKeyDefinition_Name"); - - b.HasIndex("TenantId") - .HasDatabaseName("IX_ApiKeyDefinition_TenantId"); - - b.ToTable("ApiKeysDefinitions", "Elsa"); - }); - - modelBuilder.Entity("Elsa.Agents.Persistence.Entities.ServiceDefinition", b => - { - b.Property("Id") - .HasColumnType("nvarchar(450)"); - - b.Property("Name") - .IsRequired() - .HasColumnType("nvarchar(450)"); - - b.Property("Settings") - .IsRequired() - .HasColumnType("nvarchar(max)"); - - b.Property("TenantId") - .HasColumnType("nvarchar(450)"); - - b.Property("Type") - .IsRequired() - .HasColumnType("nvarchar(max)"); - - b.HasKey("Id"); - - b.HasIndex("Name") - .HasDatabaseName("IX_ServiceDefinition_Name"); - - b.HasIndex("TenantId") - .HasDatabaseName("IX_ServiceDefinition_TenantId"); - - b.ToTable("ServicesDefinitions", "Elsa"); - }); -#pragma warning restore 612, 618 - } - } -} diff --git a/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.SqlServer/Migrations/20241023123153_V3_3.cs b/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.SqlServer/Migrations/20241023123153_V3_3.cs deleted file mode 100644 index a3d49f1d8..000000000 --- a/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.SqlServer/Migrations/20241023123153_V3_3.cs +++ /dev/null @@ -1,124 +0,0 @@ -using Microsoft.EntityFrameworkCore.Migrations; - -#nullable disable - -namespace Elsa.Agents.Persistence.EntityFrameworkCore.SqlServer.Migrations -{ - /// - public partial class V3_3 : Migration - { - private readonly Elsa.EntityFrameworkCore.IElsaDbContextSchema _schema; - - /// - public V3_3(Elsa.EntityFrameworkCore.IElsaDbContextSchema schema) - { - _schema = schema; - } - - /// - protected override void Up(MigrationBuilder migrationBuilder) - { - migrationBuilder.EnsureSchema( - name: "Elsa"); - - migrationBuilder.CreateTable( - name: "AgentDefinitions", - schema: _schema.Schema, - columns: table => new - { - Id = table.Column(type: "nvarchar(450)", nullable: false), - Name = table.Column(type: "nvarchar(450)", nullable: false), - Description = table.Column(type: "nvarchar(max)", nullable: false), - AgentConfig = table.Column(type: "nvarchar(max)", nullable: false), - TenantId = table.Column(type: "nvarchar(450)", nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_AgentDefinitions", x => x.Id); - }); - - migrationBuilder.CreateTable( - name: "ApiKeysDefinitions", - schema: _schema.Schema, - columns: table => new - { - Id = table.Column(type: "nvarchar(450)", nullable: false), - Name = table.Column(type: "nvarchar(450)", nullable: false), - Value = table.Column(type: "nvarchar(max)", nullable: false), - TenantId = table.Column(type: "nvarchar(450)", nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_ApiKeysDefinitions", x => x.Id); - }); - - migrationBuilder.CreateTable( - name: "ServicesDefinitions", - schema: _schema.Schema, - columns: table => new - { - Id = table.Column(type: "nvarchar(450)", nullable: false), - Name = table.Column(type: "nvarchar(450)", nullable: false), - Type = table.Column(type: "nvarchar(max)", nullable: false), - Settings = table.Column(type: "nvarchar(max)", nullable: false), - TenantId = table.Column(type: "nvarchar(450)", nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_ServicesDefinitions", x => x.Id); - }); - - migrationBuilder.CreateIndex( - name: "IX_AgentDefinition_Name", - schema: _schema.Schema, - table: "AgentDefinitions", - column: "Name"); - - migrationBuilder.CreateIndex( - name: "IX_AgentDefinition_TenantId", - schema: _schema.Schema, - table: "AgentDefinitions", - column: "TenantId"); - - migrationBuilder.CreateIndex( - name: "IX_ApiKeyDefinition_Name", - schema: _schema.Schema, - table: "ApiKeysDefinitions", - column: "Name"); - - migrationBuilder.CreateIndex( - name: "IX_ApiKeyDefinition_TenantId", - schema: _schema.Schema, - table: "ApiKeysDefinitions", - column: "TenantId"); - - migrationBuilder.CreateIndex( - name: "IX_ServiceDefinition_Name", - schema: _schema.Schema, - table: "ServicesDefinitions", - column: "Name"); - - migrationBuilder.CreateIndex( - name: "IX_ServiceDefinition_TenantId", - schema: _schema.Schema, - table: "ServicesDefinitions", - column: "TenantId"); - } - - /// - protected override void Down(MigrationBuilder migrationBuilder) - { - migrationBuilder.DropTable( - name: "AgentDefinitions", - schema: _schema.Schema); - - migrationBuilder.DropTable( - name: "ApiKeysDefinitions", - schema: _schema.Schema); - - migrationBuilder.DropTable( - name: "ServicesDefinitions", - schema: _schema.Schema); - } - } -} diff --git a/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.SqlServer/Migrations/AgentsDbContextModelSnapshot.cs b/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.SqlServer/Migrations/AgentsDbContextModelSnapshot.cs deleted file mode 100644 index 8cb2225f1..000000000 --- a/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.SqlServer/Migrations/AgentsDbContextModelSnapshot.cs +++ /dev/null @@ -1,116 +0,0 @@ -// -using Elsa.Agents.Persistence.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Infrastructure; -using Microsoft.EntityFrameworkCore.Metadata; -using Microsoft.EntityFrameworkCore.Storage.ValueConversion; - -#nullable disable - -namespace Elsa.Agents.Persistence.EntityFrameworkCore.SqlServer.Migrations -{ - [DbContext(typeof(AgentsDbContext))] - partial class AgentsDbContextModelSnapshot : ModelSnapshot - { - protected override void BuildModel(ModelBuilder modelBuilder) - { -#pragma warning disable 612, 618 - modelBuilder - .HasDefaultSchema("Elsa") - .HasAnnotation("ProductVersion", "7.0.20") - .HasAnnotation("Relational:MaxIdentifierLength", 128); - - SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); - - modelBuilder.Entity("Elsa.Agents.Persistence.Entities.AgentDefinition", b => - { - b.Property("Id") - .HasColumnType("nvarchar(450)"); - - b.Property("AgentConfig") - .IsRequired() - .HasColumnType("nvarchar(max)"); - - b.Property("Description") - .IsRequired() - .HasColumnType("nvarchar(max)"); - - b.Property("Name") - .IsRequired() - .HasColumnType("nvarchar(450)"); - - b.Property("TenantId") - .HasColumnType("nvarchar(450)"); - - b.HasKey("Id"); - - b.HasIndex("Name") - .HasDatabaseName("IX_AgentDefinition_Name"); - - b.HasIndex("TenantId") - .HasDatabaseName("IX_AgentDefinition_TenantId"); - - b.ToTable("AgentDefinitions", "Elsa"); - }); - - modelBuilder.Entity("Elsa.Agents.Persistence.Entities.ApiKeyDefinition", b => - { - b.Property("Id") - .HasColumnType("nvarchar(450)"); - - b.Property("Name") - .IsRequired() - .HasColumnType("nvarchar(450)"); - - b.Property("TenantId") - .HasColumnType("nvarchar(450)"); - - b.Property("Value") - .IsRequired() - .HasColumnType("nvarchar(max)"); - - b.HasKey("Id"); - - b.HasIndex("Name") - .HasDatabaseName("IX_ApiKeyDefinition_Name"); - - b.HasIndex("TenantId") - .HasDatabaseName("IX_ApiKeyDefinition_TenantId"); - - b.ToTable("ApiKeysDefinitions", "Elsa"); - }); - - modelBuilder.Entity("Elsa.Agents.Persistence.Entities.ServiceDefinition", b => - { - b.Property("Id") - .HasColumnType("nvarchar(450)"); - - b.Property("Name") - .IsRequired() - .HasColumnType("nvarchar(450)"); - - b.Property("Settings") - .IsRequired() - .HasColumnType("nvarchar(max)"); - - b.Property("TenantId") - .HasColumnType("nvarchar(450)"); - - b.Property("Type") - .IsRequired() - .HasColumnType("nvarchar(max)"); - - b.HasKey("Id"); - - b.HasIndex("Name") - .HasDatabaseName("IX_ServiceDefinition_Name"); - - b.HasIndex("TenantId") - .HasDatabaseName("IX_ServiceDefinition_TenantId"); - - b.ToTable("ServicesDefinitions", "Elsa"); - }); -#pragma warning restore 612, 618 - } - } -} diff --git a/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.SqlServer/SqlServerProvidersExtensions.cs b/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.SqlServer/SqlServerProvidersExtensions.cs deleted file mode 100644 index 4dd4ce487..000000000 --- a/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.SqlServer/SqlServerProvidersExtensions.cs +++ /dev/null @@ -1,22 +0,0 @@ -using System.Reflection; -using Elsa.Agents.Persistence.EntityFrameworkCore; - -// ReSharper disable once CheckNamespace -namespace Elsa.EntityFrameworkCore.Extensions; - -/// -/// Provides extensions to configure EF Core to use SQL Server. -/// -public static class AgentsSqlServerProvidersExtensions -{ - private static Assembly Assembly => typeof(AgentsSqlServerProvidersExtensions).Assembly; - - /// - /// Configures the feature to use SQL Server. - /// - public static EFCoreAgentPersistenceFeature UseSqlServer(this EFCoreAgentPersistenceFeature feature, string connectionString, ElsaDbContextOptions? options = null) - { - feature.UseSqlServer(Assembly, connectionString, options); - return feature; - } -} \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.SqlServer/efcore-3.3.sh b/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.SqlServer/efcore-3.3.sh deleted file mode 100644 index a6b7f12ad..000000000 --- a/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.SqlServer/efcore-3.3.sh +++ /dev/null @@ -1 +0,0 @@ -ef-migration-runtime-schema --interface Elsa.EntityFrameworkCore.IElsaDbContextSchema --efOptions "migrations add V3_3 -c AgentsDbContext -o Migrations" \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.Sqlite/DbContextFactories.cs b/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.Sqlite/DbContextFactories.cs deleted file mode 100644 index 2114d838e..000000000 --- a/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.Sqlite/DbContextFactories.cs +++ /dev/null @@ -1,15 +0,0 @@ -using Elsa.EntityFrameworkCore.Abstractions; -using Elsa.EntityFrameworkCore.Extensions; -using JetBrains.Annotations; -using Microsoft.EntityFrameworkCore; - -namespace Elsa.Agents.Persistence.EntityFrameworkCore.Sqlite; - -[UsedImplicitly] -public class SqliteAgentsDbContextFactory : DesignTimeDbContextFactoryBase -{ - protected override void ConfigureBuilder(DbContextOptionsBuilder builder, string connectionString) - { - builder.UseElsaSqlite(GetType().Assembly, connectionString); - } -} \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.Sqlite/Elsa.Agents.Persistence.EntityFrameworkCore.Sqlite.csproj b/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.Sqlite/Elsa.Agents.Persistence.EntityFrameworkCore.Sqlite.csproj deleted file mode 100644 index cb5732a40..000000000 --- a/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.Sqlite/Elsa.Agents.Persistence.EntityFrameworkCore.Sqlite.csproj +++ /dev/null @@ -1,19 +0,0 @@ - - - - Provides an EF Core migrations for SQLite for the Agents Persistence module. - elsa module agents semantic kernel llm ai persistence efcore entity framework core sqlite - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.Sqlite/FodyWeavers.xml b/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.Sqlite/FodyWeavers.xml deleted file mode 100644 index 00e1d9a1c..000000000 --- a/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.Sqlite/FodyWeavers.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.Sqlite/Migrations/20241023123129_V3_3.Designer.cs b/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.Sqlite/Migrations/20241023123129_V3_3.Designer.cs deleted file mode 100644 index 5a4e3bc34..000000000 --- a/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.Sqlite/Migrations/20241023123129_V3_3.Designer.cs +++ /dev/null @@ -1,113 +0,0 @@ -// -using Elsa.Agents.Persistence.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Infrastructure; -using Microsoft.EntityFrameworkCore.Migrations; -using Microsoft.EntityFrameworkCore.Storage.ValueConversion; - -#nullable disable - -namespace Elsa.Agents.Persistence.EntityFrameworkCore.Sqlite.Migrations -{ - [DbContext(typeof(AgentsDbContext))] - [Migration("20241023123129_V3_3")] - partial class V3_3 - { - /// - protected override void BuildTargetModel(ModelBuilder modelBuilder) - { -#pragma warning disable 612, 618 - modelBuilder.HasAnnotation("ProductVersion", "7.0.20"); - - modelBuilder.Entity("Elsa.Agents.Persistence.Entities.AgentDefinition", b => - { - b.Property("Id") - .HasColumnType("TEXT"); - - b.Property("AgentConfig") - .IsRequired() - .HasColumnType("TEXT"); - - b.Property("Description") - .IsRequired() - .HasColumnType("TEXT"); - - b.Property("Name") - .IsRequired() - .HasColumnType("TEXT"); - - b.Property("TenantId") - .HasColumnType("TEXT"); - - b.HasKey("Id"); - - b.HasIndex("Name") - .HasDatabaseName("IX_AgentDefinition_Name"); - - b.HasIndex("TenantId") - .HasDatabaseName("IX_AgentDefinition_TenantId"); - - b.ToTable("AgentDefinitions"); - }); - - modelBuilder.Entity("Elsa.Agents.Persistence.Entities.ApiKeyDefinition", b => - { - b.Property("Id") - .HasColumnType("TEXT"); - - b.Property("Name") - .IsRequired() - .HasColumnType("TEXT"); - - b.Property("TenantId") - .HasColumnType("TEXT"); - - b.Property("Value") - .IsRequired() - .HasColumnType("TEXT"); - - b.HasKey("Id"); - - b.HasIndex("Name") - .HasDatabaseName("IX_ApiKeyDefinition_Name"); - - b.HasIndex("TenantId") - .HasDatabaseName("IX_ApiKeyDefinition_TenantId"); - - b.ToTable("ApiKeysDefinitions"); - }); - - modelBuilder.Entity("Elsa.Agents.Persistence.Entities.ServiceDefinition", b => - { - b.Property("Id") - .HasColumnType("TEXT"); - - b.Property("Name") - .IsRequired() - .HasColumnType("TEXT"); - - b.Property("Settings") - .IsRequired() - .HasColumnType("TEXT"); - - b.Property("TenantId") - .HasColumnType("TEXT"); - - b.Property("Type") - .IsRequired() - .HasColumnType("TEXT"); - - b.HasKey("Id"); - - b.HasIndex("Name") - .HasDatabaseName("IX_ServiceDefinition_Name"); - - b.HasIndex("TenantId") - .HasDatabaseName("IX_ServiceDefinition_TenantId"); - - b.ToTable("ServicesDefinitions"); - }); -#pragma warning restore 612, 618 - } - } -} diff --git a/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.Sqlite/Migrations/20241023123129_V3_3.cs b/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.Sqlite/Migrations/20241023123129_V3_3.cs deleted file mode 100644 index f33c3c01c..000000000 --- a/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.Sqlite/Migrations/20241023123129_V3_3.cs +++ /dev/null @@ -1,109 +0,0 @@ -using Microsoft.EntityFrameworkCore.Migrations; - -#nullable disable - -namespace Elsa.Agents.Persistence.EntityFrameworkCore.Sqlite.Migrations -{ - /// - public partial class V3_3 : Migration - { - private readonly Elsa.EntityFrameworkCore.IElsaDbContextSchema _schema; - - /// - public V3_3(Elsa.EntityFrameworkCore.IElsaDbContextSchema schema) - { - _schema = schema; - } - - /// - protected override void Up(MigrationBuilder migrationBuilder) - { - migrationBuilder.CreateTable( - name: "AgentDefinitions", - columns: table => new - { - Id = table.Column(type: "TEXT", nullable: false), - Name = table.Column(type: "TEXT", nullable: false), - Description = table.Column(type: "TEXT", nullable: false), - AgentConfig = table.Column(type: "TEXT", nullable: false), - TenantId = table.Column(type: "TEXT", nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_AgentDefinitions", x => x.Id); - }); - - migrationBuilder.CreateTable( - name: "ApiKeysDefinitions", - columns: table => new - { - Id = table.Column(type: "TEXT", nullable: false), - Name = table.Column(type: "TEXT", nullable: false), - Value = table.Column(type: "TEXT", nullable: false), - TenantId = table.Column(type: "TEXT", nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_ApiKeysDefinitions", x => x.Id); - }); - - migrationBuilder.CreateTable( - name: "ServicesDefinitions", - columns: table => new - { - Id = table.Column(type: "TEXT", nullable: false), - Name = table.Column(type: "TEXT", nullable: false), - Type = table.Column(type: "TEXT", nullable: false), - Settings = table.Column(type: "TEXT", nullable: false), - TenantId = table.Column(type: "TEXT", nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_ServicesDefinitions", x => x.Id); - }); - - migrationBuilder.CreateIndex( - name: "IX_AgentDefinition_Name", - table: "AgentDefinitions", - column: "Name"); - - migrationBuilder.CreateIndex( - name: "IX_AgentDefinition_TenantId", - table: "AgentDefinitions", - column: "TenantId"); - - migrationBuilder.CreateIndex( - name: "IX_ApiKeyDefinition_Name", - table: "ApiKeysDefinitions", - column: "Name"); - - migrationBuilder.CreateIndex( - name: "IX_ApiKeyDefinition_TenantId", - table: "ApiKeysDefinitions", - column: "TenantId"); - - migrationBuilder.CreateIndex( - name: "IX_ServiceDefinition_Name", - table: "ServicesDefinitions", - column: "Name"); - - migrationBuilder.CreateIndex( - name: "IX_ServiceDefinition_TenantId", - table: "ServicesDefinitions", - column: "TenantId"); - } - - /// - protected override void Down(MigrationBuilder migrationBuilder) - { - migrationBuilder.DropTable( - name: "AgentDefinitions"); - - migrationBuilder.DropTable( - name: "ApiKeysDefinitions"); - - migrationBuilder.DropTable( - name: "ServicesDefinitions"); - } - } -} diff --git a/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.Sqlite/Migrations/AgentsDbContextModelSnapshot.cs b/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.Sqlite/Migrations/AgentsDbContextModelSnapshot.cs deleted file mode 100644 index 7df93184c..000000000 --- a/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.Sqlite/Migrations/AgentsDbContextModelSnapshot.cs +++ /dev/null @@ -1,110 +0,0 @@ -// -using Elsa.Agents.Persistence.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Infrastructure; -using Microsoft.EntityFrameworkCore.Storage.ValueConversion; - -#nullable disable - -namespace Elsa.Agents.Persistence.EntityFrameworkCore.Sqlite.Migrations -{ - [DbContext(typeof(AgentsDbContext))] - partial class AgentsDbContextModelSnapshot : ModelSnapshot - { - protected override void BuildModel(ModelBuilder modelBuilder) - { -#pragma warning disable 612, 618 - modelBuilder.HasAnnotation("ProductVersion", "7.0.20"); - - modelBuilder.Entity("Elsa.Agents.Persistence.Entities.AgentDefinition", b => - { - b.Property("Id") - .HasColumnType("TEXT"); - - b.Property("AgentConfig") - .IsRequired() - .HasColumnType("TEXT"); - - b.Property("Description") - .IsRequired() - .HasColumnType("TEXT"); - - b.Property("Name") - .IsRequired() - .HasColumnType("TEXT"); - - b.Property("TenantId") - .HasColumnType("TEXT"); - - b.HasKey("Id"); - - b.HasIndex("Name") - .HasDatabaseName("IX_AgentDefinition_Name"); - - b.HasIndex("TenantId") - .HasDatabaseName("IX_AgentDefinition_TenantId"); - - b.ToTable("AgentDefinitions"); - }); - - modelBuilder.Entity("Elsa.Agents.Persistence.Entities.ApiKeyDefinition", b => - { - b.Property("Id") - .HasColumnType("TEXT"); - - b.Property("Name") - .IsRequired() - .HasColumnType("TEXT"); - - b.Property("TenantId") - .HasColumnType("TEXT"); - - b.Property("Value") - .IsRequired() - .HasColumnType("TEXT"); - - b.HasKey("Id"); - - b.HasIndex("Name") - .HasDatabaseName("IX_ApiKeyDefinition_Name"); - - b.HasIndex("TenantId") - .HasDatabaseName("IX_ApiKeyDefinition_TenantId"); - - b.ToTable("ApiKeysDefinitions"); - }); - - modelBuilder.Entity("Elsa.Agents.Persistence.Entities.ServiceDefinition", b => - { - b.Property("Id") - .HasColumnType("TEXT"); - - b.Property("Name") - .IsRequired() - .HasColumnType("TEXT"); - - b.Property("Settings") - .IsRequired() - .HasColumnType("TEXT"); - - b.Property("TenantId") - .HasColumnType("TEXT"); - - b.Property("Type") - .IsRequired() - .HasColumnType("TEXT"); - - b.HasKey("Id"); - - b.HasIndex("Name") - .HasDatabaseName("IX_ServiceDefinition_Name"); - - b.HasIndex("TenantId") - .HasDatabaseName("IX_ServiceDefinition_TenantId"); - - b.ToTable("ServicesDefinitions"); - }); -#pragma warning restore 612, 618 - } - } -} diff --git a/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.Sqlite/SqliteProvidersExtensions.cs b/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.Sqlite/SqliteProvidersExtensions.cs deleted file mode 100644 index 5e67cac06..000000000 --- a/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.Sqlite/SqliteProvidersExtensions.cs +++ /dev/null @@ -1,28 +0,0 @@ -using System.Reflection; -using Elsa.Agents.Persistence.EntityFrameworkCore; - -// ReSharper disable once CheckNamespace -namespace Elsa.EntityFrameworkCore.Extensions; - -/// -/// Provides extensions to configure EF Core to use Sqlite. -/// -public static class AgentsSqliteProvidersExtensions -{ - private static Assembly Assembly => typeof(AgentsSqliteProvidersExtensions).Assembly; - - /// - /// Configures the feature to use Sqlite. - /// - public static EFCoreAgentPersistenceFeature UseSqlite(this EFCoreAgentPersistenceFeature feature, string? connectionString = null, ElsaDbContextOptions? options = null) - { - feature.UseSqlite(Assembly, connectionString, options); - return feature; - } - - public static EFCoreAgentPersistenceFeature UseSqlite(this EFCoreAgentPersistenceFeature feature, Func connectionStringFunc, ElsaDbContextOptions? options = null) - { - feature.UseSqlite(Assembly, connectionStringFunc, options); - return feature; - } -} \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.Sqlite/efcore-3.3.sh b/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.Sqlite/efcore-3.3.sh deleted file mode 100644 index a6b7f12ad..000000000 --- a/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore.Sqlite/efcore-3.3.sh +++ /dev/null @@ -1 +0,0 @@ -ef-migration-runtime-schema --interface Elsa.EntityFrameworkCore.IElsaDbContextSchema --efOptions "migrations add V3_3 -c AgentsDbContext -o Migrations" \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore/Configurations.cs b/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore/Configurations.cs deleted file mode 100644 index 9e59a70d3..000000000 --- a/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore/Configurations.cs +++ /dev/null @@ -1,32 +0,0 @@ -using Elsa.Agents.Persistence.Entities; -using Elsa.EntityFrameworkCore.Extensions; -using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Metadata.Builders; - -namespace Elsa.Agents.Persistence.EntityFrameworkCore; - -/// -/// EF Core configuration for various entity types. -/// -public class Configurations : IEntityTypeConfiguration, IEntityTypeConfiguration, IEntityTypeConfiguration -{ - public void Configure(EntityTypeBuilder builder) - { - builder.HasIndex(x => x.Name).HasDatabaseName($"IX_{nameof(ApiKeyDefinition)}_{nameof(ApiKeyDefinition.Name)}"); - builder.HasIndex(x => x.TenantId).HasDatabaseName($"IX_{nameof(ApiKeyDefinition)}_{nameof(ApiKeyDefinition.TenantId)}"); - } - - public void Configure(EntityTypeBuilder builder) - { - builder.Property(x => x.Settings).HasJsonValueConversion(); - builder.HasIndex(x => x.Name).HasDatabaseName($"IX_{nameof(ServiceDefinition)}_{nameof(ServiceDefinition.Name)}"); - builder.HasIndex(x => x.TenantId).HasDatabaseName($"IX_{nameof(ServiceDefinition)}_{nameof(ServiceDefinition.TenantId)}"); - } - - public void Configure(EntityTypeBuilder builder) - { - builder.Property(x => x.AgentConfig).HasJsonValueConversion(); - builder.HasIndex(x => x.Name).HasDatabaseName($"IX_{nameof(AgentDefinition)}_{nameof(AgentDefinition.Name)}"); - builder.HasIndex(x => x.TenantId).HasDatabaseName($"IX_{nameof(AgentDefinition)}_{nameof(AgentDefinition.TenantId)}"); - } -} \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore/DbContext.cs b/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore/DbContext.cs deleted file mode 100644 index 934b0fb26..000000000 --- a/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore/DbContext.cs +++ /dev/null @@ -1,43 +0,0 @@ -using Elsa.Agents.Persistence.Entities; -using Elsa.EntityFrameworkCore; -using JetBrains.Annotations; -using Microsoft.EntityFrameworkCore; - -namespace Elsa.Agents.Persistence.EntityFrameworkCore; - -/// -/// DB context for the Agents module. -/// -[UsedImplicitly] -public class AgentsDbContext : ElsaDbContextBase -{ - /// - public AgentsDbContext(DbContextOptions options, IServiceProvider serviceProvider) : base(options, serviceProvider) - { - } - - /// - /// The API Keys DB set. - /// - public DbSet ApiKeysDefinitions { get; set; } = default!; - - /// - /// The Services DB set. - /// - public DbSet ServicesDefinitions { get; set; } = default!; - - /// - /// The Services DB set. - /// - public DbSet AgentDefinitions { get; set; } = default!; - - /// - protected override void OnModelCreating(ModelBuilder modelBuilder) - { - var configuration = new Configurations(); - modelBuilder.ApplyConfiguration(configuration); - modelBuilder.ApplyConfiguration(configuration); - modelBuilder.ApplyConfiguration(configuration); - base.OnModelCreating(modelBuilder); - } -} \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore/EFCoreAgentStore.cs b/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore/EFCoreAgentStore.cs deleted file mode 100644 index 6d4c2015f..000000000 --- a/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore/EFCoreAgentStore.cs +++ /dev/null @@ -1,54 +0,0 @@ -using Elsa.Agents.Persistence.Contracts; -using Elsa.Agents.Persistence.Entities; -using Elsa.Agents.Persistence.Filters; -using Elsa.EntityFrameworkCore; -using JetBrains.Annotations; - -namespace Elsa.Agents.Persistence.EntityFrameworkCore; - -/// -/// An EF Core implementation of . -/// -[UsedImplicitly] -public class EFCoreAgentStore(EntityStore store) : IAgentStore -{ - public Task AddAsync(AgentDefinition entity, CancellationToken cancellationToken = default) - { - return store.AddAsync(entity, cancellationToken); - } - - public Task UpdateAsync(AgentDefinition entity, CancellationToken cancellationToken = default) - { - return store.UpdateAsync(entity, cancellationToken); - } - - public Task GetAsync(string id, CancellationToken cancellationToken = default) - { - var filter = new AgentDefinitionFilter - { - Id = id - }; - - return FindAsync(filter, cancellationToken); - } - - public Task FindAsync(AgentDefinitionFilter filter, CancellationToken cancellationToken = default) - { - return store.FindAsync(filter.Apply, cancellationToken); - } - - public Task> ListAsync(CancellationToken cancellationToken = default) - { - return store.ListAsync(cancellationToken); - } - - public Task DeleteAsync(AgentDefinition entity, CancellationToken cancellationToken = default) - { - return store.DeleteAsync(entity, cancellationToken); - } - - public Task DeleteManyAsync(AgentDefinitionFilter filter, CancellationToken cancellationToken = default) - { - return store.DeleteWhereAsync(filter.Apply, cancellationToken); - } -} \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore/EFCoreApiKeyStore.cs b/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore/EFCoreApiKeyStore.cs deleted file mode 100644 index 23926d8bd..000000000 --- a/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore/EFCoreApiKeyStore.cs +++ /dev/null @@ -1,54 +0,0 @@ -using Elsa.Agents.Persistence.Contracts; -using Elsa.Agents.Persistence.Entities; -using Elsa.Agents.Persistence.Filters; -using Elsa.EntityFrameworkCore; -using JetBrains.Annotations; - -namespace Elsa.Agents.Persistence.EntityFrameworkCore; - -/// -/// An EF Core implementation of . -/// -[UsedImplicitly] -public class EFCoreApiKeyStore(EntityStore store) : IApiKeyStore -{ - public Task AddAsync(ApiKeyDefinition entity, CancellationToken cancellationToken = default) - { - return store.AddAsync(entity, cancellationToken); - } - - public Task UpdateAsync(ApiKeyDefinition entity, CancellationToken cancellationToken = default) - { - return store.UpdateAsync(entity, cancellationToken); - } - - public Task GetAsync(string id, CancellationToken cancellationToken = default) - { - var filter = new ApiKeyDefinitionFilter - { - Id = id - }; - - return FindAsync(filter, cancellationToken); - } - - public Task FindAsync(ApiKeyDefinitionFilter filter, CancellationToken cancellationToken = default) - { - return store.FindAsync(filter.Apply, cancellationToken); - } - - public Task> ListAsync(CancellationToken cancellationToken = default) - { - return store.ListAsync(cancellationToken); - } - - public Task DeleteAsync(ApiKeyDefinition entity, CancellationToken cancellationToken = default) - { - return store.DeleteAsync(entity, cancellationToken); - } - - public Task DeleteManyAsync(ApiKeyDefinitionFilter filter, CancellationToken cancellationToken = default) - { - return store.DeleteWhereAsync(filter.Apply, cancellationToken); - } -} \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore/EFCoreServiceStore.cs b/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore/EFCoreServiceStore.cs deleted file mode 100644 index c0bf60138..000000000 --- a/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore/EFCoreServiceStore.cs +++ /dev/null @@ -1,54 +0,0 @@ -using Elsa.Agents.Persistence.Contracts; -using Elsa.Agents.Persistence.Entities; -using Elsa.Agents.Persistence.Filters; -using Elsa.EntityFrameworkCore; -using JetBrains.Annotations; - -namespace Elsa.Agents.Persistence.EntityFrameworkCore; - -/// -/// An EF Core implementation of . -/// -[UsedImplicitly] -public class EFCoreServiceStore(EntityStore store) : IServiceStore -{ - public Task AddAsync(ServiceDefinition entity, CancellationToken cancellationToken = default) - { - return store.AddAsync(entity, cancellationToken); - } - - public Task UpdateAsync(ServiceDefinition entity, CancellationToken cancellationToken = default) - { - return store.UpdateAsync(entity, cancellationToken); - } - - public Task GetAsync(string id, CancellationToken cancellationToken = default) - { - var filter = new ServiceDefinitionFilter - { - Id = id - }; - - return FindAsync(filter, cancellationToken); - } - - public Task FindAsync(ServiceDefinitionFilter filter, CancellationToken cancellationToken = default) - { - return store.FindAsync(filter.Apply, cancellationToken); - } - - public Task> ListAsync(CancellationToken cancellationToken = default) - { - return store.ListAsync(cancellationToken); - } - - public Task DeleteAsync(ServiceDefinition entity, CancellationToken cancellationToken = default) - { - return store.DeleteAsync(entity, cancellationToken); - } - - public Task DeleteManyAsync(ServiceDefinitionFilter filter, CancellationToken cancellationToken = default) - { - return store.DeleteWhereAsync(filter.Apply, cancellationToken); - } -} \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore/Elsa.Agents.Persistence.EntityFrameworkCore.csproj b/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore/Elsa.Agents.Persistence.EntityFrameworkCore.csproj deleted file mode 100644 index 418e00067..000000000 --- a/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore/Elsa.Agents.Persistence.EntityFrameworkCore.csproj +++ /dev/null @@ -1,13 +0,0 @@ - - - - Provides an Entity Framework Core provider for the persistence layer of the Agents module - elsa module agents semantic kernel llm ai persistence efcore entity framework core - - - - - - - - diff --git a/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore/Extensions.cs b/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore/Extensions.cs deleted file mode 100644 index 34438663f..000000000 --- a/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore/Extensions.cs +++ /dev/null @@ -1,22 +0,0 @@ -using Elsa.Agents.Persistence.EntityFrameworkCore; -using Elsa.Agents.Persistence.Features; -using JetBrains.Annotations; - -// ReSharper disable once CheckNamespace -namespace Elsa.Agents; - -/// -/// Provides extensions to the feature. -/// -[PublicAPI] -public static class Extensions -{ - /// - /// Configures the to use EF Core persistence providers. - /// - public static AgentPersistenceFeature UseEntityFrameworkCore(this AgentPersistenceFeature feature, Action? configure = default) - { - feature.Module.Configure(configure); - return feature; - } -} \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore/Feature.cs b/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore/Feature.cs deleted file mode 100644 index 67f4d0240..000000000 --- a/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore/Feature.cs +++ /dev/null @@ -1,38 +0,0 @@ -using Elsa.Agents.Persistence.Entities; -using Elsa.Agents.Persistence.Features; -using Elsa.EntityFrameworkCore; -using Elsa.EntityFrameworkCore.EntityHandlers; -using Elsa.Features.Attributes; -using Elsa.Features.Services; -using Microsoft.Extensions.DependencyInjection; - -namespace Elsa.Agents.Persistence.EntityFrameworkCore; - -/// -/// Configures the default workflow runtime to use EF Core persistence providers. -/// -[DependsOn(typeof(AgentPersistenceFeature))] -public class EFCoreAgentPersistenceFeature(IModule module) : PersistenceFeatureBase(module) -{ - /// - public override void Configure() - { - Module.Configure(feature => - { - feature - .UseApiKeyStore(sp => sp.GetRequiredService()) - .UseServiceStore(sp => sp.GetRequiredService()) - .UseAgentStore(sp => sp.GetRequiredService()); - ; - }); - } - - /// - public override void Apply() - { - base.Apply(); - AddEntityStore(); - AddEntityStore(); - AddEntityStore(); - } -} \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore/FodyWeavers.xml b/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore/FodyWeavers.xml deleted file mode 100644 index 06ee72161..000000000 --- a/src/modules/Elsa.Agents.Persistence.EntityFrameworkCore/FodyWeavers.xml +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Persistence/Contracts/IAgentManager.cs b/src/modules/Elsa.Agents.Persistence/Contracts/IAgentManager.cs deleted file mode 100644 index 3354b9ac4..000000000 --- a/src/modules/Elsa.Agents.Persistence/Contracts/IAgentManager.cs +++ /dev/null @@ -1,52 +0,0 @@ -using Elsa.Agents.Persistence.Entities; -using Elsa.Agents.Persistence.Filters; - -namespace Elsa.Agents.Persistence.Contracts; - -public interface IAgentManager -{ - /// - /// Adds a new entity to the store. - /// - Task AddAsync(AgentDefinition entity, CancellationToken cancellationToken = default); - - /// - /// Updates the entity to the store. - /// - Task UpdateAsync(AgentDefinition entity, CancellationToken cancellationToken = default); - - /// - /// Gets the entity from the store. - /// - Task GetAsync(string id, CancellationToken cancellationToken = default); - - /// - /// Finds the entity from the store. - /// - Task FindAsync(AgentDefinitionFilter filter, CancellationToken cancellationToken = default); - - /// - /// Gets all entities from the store. - /// - Task> ListAsync(CancellationToken cancellationToken = default); - - /// - /// Deletes the entity from the store. - /// - Task DeleteAsync(AgentDefinition entity, CancellationToken cancellationToken = default); - - /// - /// Deletes all entities from the store matching the specified filter. - /// - Task DeleteManyAsync(AgentDefinitionFilter filter, CancellationToken cancellationToken = default); - - /// - /// Generates a unique name. - /// - Task GenerateUniqueNameAsync(CancellationToken cancellationToken = default); - - /// - /// Checks if a name is unique. - /// - Task IsNameUniqueAsync(string name, string? notId, CancellationToken cancellationToken = default); -} \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Persistence/Contracts/IAgentStore.cs b/src/modules/Elsa.Agents.Persistence/Contracts/IAgentStore.cs deleted file mode 100644 index ab8fb3ef6..000000000 --- a/src/modules/Elsa.Agents.Persistence/Contracts/IAgentStore.cs +++ /dev/null @@ -1,42 +0,0 @@ -using Elsa.Agents.Persistence.Entities; -using Elsa.Agents.Persistence.Filters; - -namespace Elsa.Agents.Persistence.Contracts; - -public interface IAgentStore -{ - /// - /// Adds a new entity to the store. - /// - Task AddAsync(AgentDefinition entity, CancellationToken cancellationToken = default); - - /// - /// Updates the entity to the store. - /// - Task UpdateAsync(AgentDefinition entity, CancellationToken cancellationToken = default); - - /// - /// Gets the entity from the store. - /// - Task GetAsync(string id, CancellationToken cancellationToken = default); - - /// - /// Finds the entity from the store. - /// - Task FindAsync(AgentDefinitionFilter filter, CancellationToken cancellationToken = default); - - /// - /// Gets all entities from the store. - /// - Task> ListAsync(CancellationToken cancellationToken = default); - - /// - /// Deletes the entity from the store. - /// - Task DeleteAsync(AgentDefinition entity, CancellationToken cancellationToken = default); - - /// - /// Deletes all entities from the store matching the specified filter. - /// - Task DeleteManyAsync(AgentDefinitionFilter filter, CancellationToken cancellationToken = default); -} \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Persistence/Contracts/IApiKeyStore.cs b/src/modules/Elsa.Agents.Persistence/Contracts/IApiKeyStore.cs deleted file mode 100644 index 43fd38624..000000000 --- a/src/modules/Elsa.Agents.Persistence/Contracts/IApiKeyStore.cs +++ /dev/null @@ -1,42 +0,0 @@ -using Elsa.Agents.Persistence.Entities; -using Elsa.Agents.Persistence.Filters; - -namespace Elsa.Agents.Persistence.Contracts; - -public interface IApiKeyStore -{ - /// - /// Adds a new entity to the store. - /// - Task AddAsync(ApiKeyDefinition entity, CancellationToken cancellationToken = default); - - /// - /// Updates the entity to the store. - /// - Task UpdateAsync(ApiKeyDefinition entity, CancellationToken cancellationToken = default); - - /// - /// Gets the entity from the store. - /// - Task GetAsync(string id, CancellationToken cancellationToken = default); - - /// - /// Finds a single entity using the specified filter. - /// - Task FindAsync(ApiKeyDefinitionFilter filter, CancellationToken cancellationToken = default); - - /// - /// Gets all entities from the store. - /// - Task> ListAsync(CancellationToken cancellationToken = default); - - /// - /// Deletes the entity from the store. - /// - Task DeleteAsync(ApiKeyDefinition entity, CancellationToken cancellationToken = default); - - /// - /// Deletes all entities from the store that match the specified filter. - /// - Task DeleteManyAsync(ApiKeyDefinitionFilter filter, CancellationToken cancellationToken = default); -} \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Persistence/Contracts/IServiceStore.cs b/src/modules/Elsa.Agents.Persistence/Contracts/IServiceStore.cs deleted file mode 100644 index 5e3d98d01..000000000 --- a/src/modules/Elsa.Agents.Persistence/Contracts/IServiceStore.cs +++ /dev/null @@ -1,42 +0,0 @@ -using Elsa.Agents.Persistence.Entities; -using Elsa.Agents.Persistence.Filters; - -namespace Elsa.Agents.Persistence.Contracts; - -public interface IServiceStore -{ - /// - /// Adds a new entity to the store. - /// - Task AddAsync(ServiceDefinition entity, CancellationToken cancellationToken = default); - - /// - /// Updates the entity to the store. - /// - Task UpdateAsync(ServiceDefinition entity, CancellationToken cancellationToken = default); - - /// - /// Gets the entity from the store. - /// - Task GetAsync(string id, CancellationToken cancellationToken = default); - - /// - /// Finds the entity from the store. - /// - Task FindAsync(ServiceDefinitionFilter filter, CancellationToken cancellationToken = default); - - /// - /// Gets all entities from the store. - /// - Task> ListAsync(CancellationToken cancellationToken = default); - - /// - /// Deletes the entity from the store. - /// - Task DeleteAsync(ServiceDefinition entity, CancellationToken cancellationToken = default); - - /// - /// Deletes all entities from the store that match the specified filter. - /// - Task DeleteManyAsync(ServiceDefinitionFilter filter, CancellationToken cancellationToken = default); -} \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Persistence/Elsa.Agents.Persistence.csproj b/src/modules/Elsa.Agents.Persistence/Elsa.Agents.Persistence.csproj deleted file mode 100644 index e9d346c86..000000000 --- a/src/modules/Elsa.Agents.Persistence/Elsa.Agents.Persistence.csproj +++ /dev/null @@ -1,13 +0,0 @@ - - - - Provides Agents persistence services - elsa module agents semantic kernel persistence llm ai - - - - - - - - diff --git a/src/modules/Elsa.Agents.Persistence/Elsa.Agents.Persistence.csproj.DotSettings b/src/modules/Elsa.Agents.Persistence/Elsa.Agents.Persistence.csproj.DotSettings deleted file mode 100644 index d3ee2fe40..000000000 --- a/src/modules/Elsa.Agents.Persistence/Elsa.Agents.Persistence.csproj.DotSettings +++ /dev/null @@ -1,2 +0,0 @@ - - True \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Persistence/Entities/AgentDefinition.cs b/src/modules/Elsa.Agents.Persistence/Entities/AgentDefinition.cs deleted file mode 100644 index 9a5571e67..000000000 --- a/src/modules/Elsa.Agents.Persistence/Entities/AgentDefinition.cs +++ /dev/null @@ -1,11 +0,0 @@ -using Elsa.Common.Entities; - -namespace Elsa.Agents.Persistence.Entities; - -public class AgentDefinition : Entity -{ - public string Name { get; set; } = default!; - public string Description { get; set; } = default!; - public AgentConfig AgentConfig { get; set; } = default!; - public AgentConfig ToAgentConfig() => AgentConfig; -} \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Persistence/Entities/ApiKeyDefinition.cs b/src/modules/Elsa.Agents.Persistence/Entities/ApiKeyDefinition.cs deleted file mode 100644 index 1d03160ca..000000000 --- a/src/modules/Elsa.Agents.Persistence/Entities/ApiKeyDefinition.cs +++ /dev/null @@ -1,30 +0,0 @@ -using Elsa.Common.Entities; -using JetBrains.Annotations; - -namespace Elsa.Agents.Persistence.Entities; - -[UsedImplicitly] -public class ApiKeyDefinition : Entity -{ - public string Name { get; set; } = default!; - public string Value { get; set; } = default!; - - public ApiKeyConfig ToApiKeyConfig() - { - return new ApiKeyConfig - { - Name = Name, - Value = Value - }; - } - - public ApiKeyModel ToModel() - { - return new ApiKeyModel - { - Id = Id, - Name = Name, - Value = Value - }; - } -} \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Persistence/Entities/ServiceDefinition.cs b/src/modules/Elsa.Agents.Persistence/Entities/ServiceDefinition.cs deleted file mode 100644 index ba04f20bd..000000000 --- a/src/modules/Elsa.Agents.Persistence/Entities/ServiceDefinition.cs +++ /dev/null @@ -1,31 +0,0 @@ -using Elsa.Common.Entities; - -namespace Elsa.Agents.Persistence.Entities; - -public class ServiceDefinition : Entity -{ - public string Name { get; set; } - public string Type { get; set; } - public IDictionary Settings { get; set; } = new Dictionary(); - - public ServiceConfig ToServiceConfig() - { - return new ServiceConfig - { - Name = Name, - Type = Type, - Settings = Settings - }; - } - - public ServiceModel ToModel() - { - return new ServiceModel - { - Id = Id, - Name = Name, - Type = Type, - Settings = Settings - }; - } -} \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Persistence/Extensions/ModuleExtensions.cs b/src/modules/Elsa.Agents.Persistence/Extensions/ModuleExtensions.cs deleted file mode 100644 index 8bb93c4ac..000000000 --- a/src/modules/Elsa.Agents.Persistence/Extensions/ModuleExtensions.cs +++ /dev/null @@ -1,19 +0,0 @@ -using Elsa.Agents.Persistence.Features; -using Elsa.Features.Services; - -// ReSharper disable once CheckNamespace -namespace Elsa.Extensions; - -/// -/// Extends with methods to install Semantic Kernel API endpoints. -/// -public static class ModuleExtensions -{ - /// - /// Installs the persistence feature for the Agents module. - /// - public static IModule UseAgentPersistence(this IModule module, Action? configure = null) - { - return module.Use(configure); - } -} \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Persistence/Features/AgentPersistenceFeature.cs b/src/modules/Elsa.Agents.Persistence/Features/AgentPersistenceFeature.cs deleted file mode 100644 index 4b123f951..000000000 --- a/src/modules/Elsa.Agents.Persistence/Features/AgentPersistenceFeature.cs +++ /dev/null @@ -1,60 +0,0 @@ -using Elsa.Agents.Features; -using Elsa.Agents.Persistence.Contracts; -using Elsa.Agents.Persistence.Entities; -using Elsa.Common.Features; -using Elsa.Extensions; -using Elsa.Features.Abstractions; -using Elsa.Features.Attributes; -using Elsa.Features.Services; -using Microsoft.Extensions.DependencyInjection; - -namespace Elsa.Agents.Persistence.Features; - -[DependsOn(typeof(AgentsFeature))] -public class AgentPersistenceFeature(IModule module) : FeatureBase(module) -{ - private Func _apiKeyStoreFactory = sp => sp.GetRequiredService(); - private Func _serviceStoreFactory = sp => sp.GetRequiredService(); - private Func _agentStoreFactory = sp => sp.GetRequiredService(); - - public AgentPersistenceFeature UseApiKeyStore(Func factory) - { - _apiKeyStoreFactory = factory; - return this; - } - - public AgentPersistenceFeature UseServiceStore(Func factory) - { - _serviceStoreFactory = factory; - return this; - } - - public AgentPersistenceFeature UseAgentStore(Func factory) - { - _agentStoreFactory = factory; - return this; - } - - public override void Configure() - { - Module.UseAgents(agents => agents.UseKernelConfigProvider(sp => sp.GetRequiredService())); - } - - public override void Apply() - { - Services - .AddScoped(_apiKeyStoreFactory) - .AddScoped(_serviceStoreFactory) - .AddScoped(_agentStoreFactory); - - Services - .AddScoped(); - - Services - .AddMemoryStore() - .AddMemoryStore() - .AddMemoryStore(); - - Services.AddScoped(); - } -} \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Persistence/Filters/AgentDefinitionFilter.cs b/src/modules/Elsa.Agents.Persistence/Filters/AgentDefinitionFilter.cs deleted file mode 100644 index bbc0e8224..000000000 --- a/src/modules/Elsa.Agents.Persistence/Filters/AgentDefinitionFilter.cs +++ /dev/null @@ -1,20 +0,0 @@ -using Elsa.Agents.Persistence.Entities; - -namespace Elsa.Agents.Persistence.Filters; - -public class AgentDefinitionFilter -{ - public string? Id { get; set; } - public ICollection? Ids { get; set; } - public string? NotId { get; set; } - public string? Name { get; set; } - - public IQueryable Apply(IQueryable queryable) - { - if (!string.IsNullOrWhiteSpace(Id)) queryable = queryable.Where(x => x.Id == Id); - if (Ids != null && Ids.Count != 0) queryable = queryable.Where(x => Ids.Contains(x.Id)); - if (!string.IsNullOrWhiteSpace(NotId)) queryable = queryable.Where(x => x.Id != NotId); - if (!string.IsNullOrWhiteSpace(Name)) queryable = queryable.Where(x => x.Name == Name); - return queryable; - } -} \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Persistence/Filters/ApiKeyDefinitionFilter.cs b/src/modules/Elsa.Agents.Persistence/Filters/ApiKeyDefinitionFilter.cs deleted file mode 100644 index 42bc2ed28..000000000 --- a/src/modules/Elsa.Agents.Persistence/Filters/ApiKeyDefinitionFilter.cs +++ /dev/null @@ -1,20 +0,0 @@ -using Elsa.Agents.Persistence.Entities; - -namespace Elsa.Agents.Persistence.Filters; - -public class ApiKeyDefinitionFilter -{ - public string? Id { get; set; } - public ICollection? Ids { get; set; } - public string? NotId { get; set; } - public string? Name { get; set; } - - public IQueryable Apply(IQueryable queryable) - { - if (!string.IsNullOrWhiteSpace(Id)) queryable = queryable.Where(x => x.Id == Id); - if (Ids != null && Ids.Any()) queryable = queryable.Where(x => Ids.Contains(x.Id)); - if (!string.IsNullOrWhiteSpace(NotId)) queryable = queryable.Where(x => x.Id != NotId); - if (!string.IsNullOrWhiteSpace(Name)) queryable = queryable.Where(x => x.Name == Name); - return queryable; - } -} \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Persistence/Filters/ServiceDefinitionFilter.cs b/src/modules/Elsa.Agents.Persistence/Filters/ServiceDefinitionFilter.cs deleted file mode 100644 index eb74a335e..000000000 --- a/src/modules/Elsa.Agents.Persistence/Filters/ServiceDefinitionFilter.cs +++ /dev/null @@ -1,20 +0,0 @@ -using Elsa.Agents.Persistence.Entities; - -namespace Elsa.Agents.Persistence.Filters; - -public class ServiceDefinitionFilter -{ - public string? Id { get; set; } - public ICollection? Ids { get; set; } - public string? NotId { get; set; } - public string? Name { get; set; } - - public IQueryable Apply(IQueryable queryable) - { - if (!string.IsNullOrWhiteSpace(Id)) queryable = queryable.Where(x => x.Id == Id); - if (Ids != null && Ids.Any()) queryable = queryable.Where(x => Ids.Contains(x.Id)); - if (!string.IsNullOrWhiteSpace(NotId)) queryable = queryable.Where(x => x.Id != NotId); - if (!string.IsNullOrWhiteSpace(Name)) queryable = queryable.Where(x => x.Name == Name); - return queryable; - } -} \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Persistence/FodyWeavers.xml b/src/modules/Elsa.Agents.Persistence/FodyWeavers.xml deleted file mode 100644 index 00e1d9a1c..000000000 --- a/src/modules/Elsa.Agents.Persistence/FodyWeavers.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Persistence/Notifications/AgentDefinitionCreated.cs b/src/modules/Elsa.Agents.Persistence/Notifications/AgentDefinitionCreated.cs deleted file mode 100644 index e6dd78dc9..000000000 --- a/src/modules/Elsa.Agents.Persistence/Notifications/AgentDefinitionCreated.cs +++ /dev/null @@ -1,6 +0,0 @@ -using Elsa.Agents.Persistence.Entities; -using Elsa.Mediator.Contracts; - -namespace Elsa.Agents.Persistence.Notifications; - -public record AgentDefinitionCreated(AgentDefinition AgentDefinition) : INotification; \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Persistence/Notifications/AgentDefinitionDeleted.cs b/src/modules/Elsa.Agents.Persistence/Notifications/AgentDefinitionDeleted.cs deleted file mode 100644 index 0bea86be1..000000000 --- a/src/modules/Elsa.Agents.Persistence/Notifications/AgentDefinitionDeleted.cs +++ /dev/null @@ -1,6 +0,0 @@ -using Elsa.Agents.Persistence.Entities; -using Elsa.Mediator.Contracts; - -namespace Elsa.Agents.Persistence.Notifications; - -public record AgentDefinitionDeleted(AgentDefinition AgentDefinition) : INotification; \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Persistence/Notifications/AgentDefinitionUpdated.cs b/src/modules/Elsa.Agents.Persistence/Notifications/AgentDefinitionUpdated.cs deleted file mode 100644 index 38865a2f8..000000000 --- a/src/modules/Elsa.Agents.Persistence/Notifications/AgentDefinitionUpdated.cs +++ /dev/null @@ -1,6 +0,0 @@ -using Elsa.Agents.Persistence.Entities; -using Elsa.Mediator.Contracts; - -namespace Elsa.Agents.Persistence.Notifications; - -public record AgentDefinitionUpdated(AgentDefinition AgentDefinition) : INotification; \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Persistence/Notifications/AgentDefinitionsDeletedInBulk.cs b/src/modules/Elsa.Agents.Persistence/Notifications/AgentDefinitionsDeletedInBulk.cs deleted file mode 100644 index 273040d7b..000000000 --- a/src/modules/Elsa.Agents.Persistence/Notifications/AgentDefinitionsDeletedInBulk.cs +++ /dev/null @@ -1,5 +0,0 @@ -using Elsa.Mediator.Contracts; - -namespace Elsa.Agents.Persistence.Notifications; - -public record AgentDefinitionsDeletedInBulk : INotification; \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Persistence/Services/AgentManager.cs b/src/modules/Elsa.Agents.Persistence/Services/AgentManager.cs deleted file mode 100644 index c557f070d..000000000 --- a/src/modules/Elsa.Agents.Persistence/Services/AgentManager.cs +++ /dev/null @@ -1,77 +0,0 @@ -using Elsa.Agents.Persistence.Contracts; -using Elsa.Agents.Persistence.Entities; -using Elsa.Agents.Persistence.Filters; -using Elsa.Agents.Persistence.Notifications; -using Elsa.Mediator.Contracts; - -namespace Elsa.Agents.Persistence; - -public class AgentManager(IAgentStore store, INotificationSender notificationSender) : IAgentManager -{ - public async Task AddAsync(AgentDefinition entity, CancellationToken cancellationToken = default) - { - await store.AddAsync(entity, cancellationToken); - await notificationSender.SendAsync(new AgentDefinitionCreated(entity), cancellationToken); - } - - public async Task UpdateAsync(AgentDefinition entity, CancellationToken cancellationToken = default) - { - await store.UpdateAsync(entity, cancellationToken); - await notificationSender.SendAsync(new AgentDefinitionUpdated(entity), cancellationToken); - } - - public Task GetAsync(string id, CancellationToken cancellationToken = default) - { - return store.GetAsync(id, cancellationToken); - } - - public Task FindAsync(AgentDefinitionFilter filter, CancellationToken cancellationToken = default) - { - return store.FindAsync(filter, cancellationToken); - } - - public Task> ListAsync(CancellationToken cancellationToken = default) - { - return store.ListAsync(cancellationToken); - } - - public async Task DeleteAsync(AgentDefinition entity, CancellationToken cancellationToken = default) - { - await store.DeleteAsync(entity, cancellationToken); - await notificationSender.SendAsync(new AgentDefinitionDeleted(entity), cancellationToken); - } - - public async Task DeleteManyAsync(AgentDefinitionFilter filter, CancellationToken cancellationToken = default) - { - var count = await store.DeleteManyAsync(filter, cancellationToken); - await notificationSender.SendAsync(new AgentDefinitionsDeletedInBulk(), cancellationToken); - return count; - } - - public async Task GenerateUniqueNameAsync(CancellationToken cancellationToken) - { - const int maxAttempts = 100; - var attempt = 0; - - while (attempt < maxAttempts) - { - var name = $"Agent {++attempt}"; - var isUnique = await IsNameUniqueAsync(name, cancellationToken: cancellationToken); - - if (isUnique) - return name; - } - - throw new Exception($"Failed to generate a unique workflow name after {maxAttempts} attempts."); - } - - public async Task IsNameUniqueAsync(string name, string? notId = null, CancellationToken cancellationToken = default) - { - var filter = new AgentDefinitionFilter - { - Name = name, - NotId = notId - }; - return await FindAsync(filter, cancellationToken) == null; - } -} \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Persistence/Services/MemoryAgentStore.cs b/src/modules/Elsa.Agents.Persistence/Services/MemoryAgentStore.cs deleted file mode 100644 index f776fa598..000000000 --- a/src/modules/Elsa.Agents.Persistence/Services/MemoryAgentStore.cs +++ /dev/null @@ -1,54 +0,0 @@ -using Elsa.Agents.Persistence.Contracts; -using Elsa.Agents.Persistence.Entities; -using Elsa.Agents.Persistence.Filters; -using Elsa.Common.Services; -using JetBrains.Annotations; - -namespace Elsa.Agents.Persistence; - -[UsedImplicitly] -public class MemoryAgentStore(MemoryStore memoryStore) : IAgentStore -{ - public Task AddAsync(AgentDefinition entity, CancellationToken cancellationToken = default) - { - memoryStore.Add(entity, x => x.Id); - return Task.CompletedTask; - } - - public Task UpdateAsync(AgentDefinition entity, CancellationToken cancellationToken = default) - { - memoryStore.Save(entity, x => x.Id); - return Task.CompletedTask; - } - - public Task GetAsync(string id, CancellationToken cancellationToken = default) - { - var entity = memoryStore.Find(x => x.Id == id); - return Task.FromResult(entity); - } - - public Task FindAsync(AgentDefinitionFilter filter, CancellationToken cancellationToken = default) - { - var entity = memoryStore.Query(filter.Apply).FirstOrDefault(); - return Task.FromResult(entity); - } - - public Task> ListAsync(CancellationToken cancellationToken = default) - { - var entities = memoryStore.List(); - return Task.FromResult(entities); - } - - public Task DeleteAsync(AgentDefinition entity, CancellationToken cancellationToken = default) - { - memoryStore.Delete(entity.Id); - return Task.CompletedTask; - } - - public Task DeleteManyAsync(AgentDefinitionFilter filter, CancellationToken cancellationToken = default) - { - var agents = memoryStore.Query(filter.Apply).ToList(); - memoryStore.DeleteMany(agents, x => x.Id); - return Task.FromResult(agents.Count); - } -} \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Persistence/Services/MemoryApiKeyStore.cs b/src/modules/Elsa.Agents.Persistence/Services/MemoryApiKeyStore.cs deleted file mode 100644 index 8fd5d36ed..000000000 --- a/src/modules/Elsa.Agents.Persistence/Services/MemoryApiKeyStore.cs +++ /dev/null @@ -1,54 +0,0 @@ -using Elsa.Agents.Persistence.Contracts; -using Elsa.Agents.Persistence.Entities; -using Elsa.Agents.Persistence.Filters; -using Elsa.Common.Services; -using JetBrains.Annotations; - -namespace Elsa.Agents.Persistence; - -[UsedImplicitly] -public class MemoryApiKeyStore(MemoryStore memoryStore) : IApiKeyStore -{ - public Task AddAsync(ApiKeyDefinition entity, CancellationToken cancellationToken = default) - { - memoryStore.Add(entity, x => x.Id); - return Task.CompletedTask; - } - - public Task UpdateAsync(ApiKeyDefinition entity, CancellationToken cancellationToken = default) - { - memoryStore.Save(entity, x => x.Id); - return Task.CompletedTask; - } - - public Task GetAsync(string id, CancellationToken cancellationToken = default) - { - var entity = memoryStore.Find(x => x.Id == id); - return Task.FromResult(entity); - } - - public Task FindAsync(ApiKeyDefinitionFilter filter, CancellationToken cancellationToken = default) - { - var entity = memoryStore.Query(filter.Apply).FirstOrDefault(); - return Task.FromResult(entity); - } - - public Task> ListAsync(CancellationToken cancellationToken = default) - { - var entities = memoryStore.List(); - return Task.FromResult(entities); - } - - public Task DeleteAsync(ApiKeyDefinition entity, CancellationToken cancellationToken = default) - { - memoryStore.Delete(entity.Id); - return Task.CompletedTask; - } - - public Task DeleteManyAsync(ApiKeyDefinitionFilter filter, CancellationToken cancellationToken = default) - { - var agents = memoryStore.Query(filter.Apply).ToList(); - memoryStore.DeleteMany(agents, x => x.Id); - return Task.FromResult(agents.Count); - } -} \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Persistence/Services/MemoryServiceStore.cs b/src/modules/Elsa.Agents.Persistence/Services/MemoryServiceStore.cs deleted file mode 100644 index 3992069aa..000000000 --- a/src/modules/Elsa.Agents.Persistence/Services/MemoryServiceStore.cs +++ /dev/null @@ -1,54 +0,0 @@ -using Elsa.Agents.Persistence.Contracts; -using Elsa.Agents.Persistence.Entities; -using Elsa.Agents.Persistence.Filters; -using Elsa.Common.Services; -using JetBrains.Annotations; - -namespace Elsa.Agents.Persistence; - -[UsedImplicitly] -public class MemoryServiceStore(MemoryStore memoryStore) : IServiceStore -{ - public Task AddAsync(ServiceDefinition entity, CancellationToken cancellationToken = default) - { - memoryStore.Add(entity, x => x.Id); - return Task.CompletedTask; - } - - public Task UpdateAsync(ServiceDefinition entity, CancellationToken cancellationToken = default) - { - memoryStore.Save(entity, x => x.Id); - return Task.CompletedTask; - } - - public Task GetAsync(string id, CancellationToken cancellationToken = default) - { - var entity = memoryStore.Find(x => x.Id == id); - return Task.FromResult(entity); - } - - public Task FindAsync(ServiceDefinitionFilter filter, CancellationToken cancellationToken = default) - { - var entity = memoryStore.Query(filter.Apply).FirstOrDefault(); - return Task.FromResult(entity); - } - - public Task> ListAsync(CancellationToken cancellationToken = default) - { - var entities = memoryStore.List(); - return Task.FromResult(entities); - } - - public Task DeleteAsync(ServiceDefinition entity, CancellationToken cancellationToken = default) - { - memoryStore.Delete(entity.Id); - return Task.CompletedTask; - } - - public Task DeleteManyAsync(ServiceDefinitionFilter filter, CancellationToken cancellationToken = default) - { - var agents = memoryStore.Query(filter.Apply).ToList(); - memoryStore.DeleteMany(agents, x => x.Id); - return Task.FromResult(agents.Count); - } -} \ No newline at end of file diff --git a/src/modules/Elsa.Agents.Persistence/Services/StoreKernelConfigProvider.cs b/src/modules/Elsa.Agents.Persistence/Services/StoreKernelConfigProvider.cs deleted file mode 100644 index 90dab7b52..000000000 --- a/src/modules/Elsa.Agents.Persistence/Services/StoreKernelConfigProvider.cs +++ /dev/null @@ -1,18 +0,0 @@ -using Elsa.Agents.Persistence.Contracts; - -namespace Elsa.Agents.Persistence; - -public class StoreKernelConfigProvider(IApiKeyStore apiKeyStore, IServiceStore serviceStore, IAgentStore agentStore) : IKernelConfigProvider -{ - public async Task GetKernelConfigAsync(CancellationToken cancellationToken = default) - { - var kernelConfig = new KernelConfig(); - var apiKeys = await apiKeyStore.ListAsync(cancellationToken); - var services = await serviceStore.ListAsync(cancellationToken); - var agents = await agentStore.ListAsync(cancellationToken); - foreach (var apiKey in apiKeys) kernelConfig.ApiKeys[apiKey.Name] = apiKey.ToApiKeyConfig(); - foreach (var service in services) kernelConfig.Services[service.Name] = service.ToServiceConfig(); - foreach (var agent in agents) kernelConfig.Agents[agent.Name] = agent.ToAgentConfig(); - return kernelConfig; - } -} \ No newline at end of file diff --git a/test/component/Elsa.Workflows.ComponentTests/Elsa.Workflows.ComponentTests.csproj b/test/component/Elsa.Workflows.ComponentTests/Elsa.Workflows.ComponentTests.csproj index 15b32f89b..fc4ba4f47 100644 --- a/test/component/Elsa.Workflows.ComponentTests/Elsa.Workflows.ComponentTests.csproj +++ b/test/component/Elsa.Workflows.ComponentTests/Elsa.Workflows.ComponentTests.csproj @@ -17,7 +17,6 @@ -