Skip to content

Commit 47a1b60

Browse files
🔧 Refactor(Workflow): 移除脚本执行服务和相关依赖,简化工作流管理
1 parent fd8b83f commit 47a1b60

12 files changed

Lines changed: 9 additions & 432 deletions

KitX Clients/KitX Core/KitX.Core.DI.Tests/Program.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,6 @@ private static void TestServiceResolution()
5858
TestService<KitX.Core.Contract.Security.IEncryptionService>(serviceProvider, "IEncryptionService");
5959
TestService<KitX.Core.Contract.Plugin.IPluginService>(serviceProvider, "IPluginService");
6060
TestService<KitX.Core.Contract.Workflow.IWorkflowManagementService>(serviceProvider, "IWorkflowManagementService");
61-
TestService<KitX.Core.Contract.Workflow.IScriptExecutionService>(serviceProvider, "IScriptExecutionService");
6261
TestService<KitX.Core.Contract.Workflow.IWorkflowPluginService>(serviceProvider, "IWorkflowPluginService");
6362
TestService<KitX.Core.Contract.Workflow.IBlockScriptService>(serviceProvider, "IBlockScriptService");
6463
TestService<KitX.Core.Contract.Activity.IActivityService>(serviceProvider, "IActivityService");

KitX Clients/KitX Core/KitX.Core/DI/CoreServiceCollectionExtensions.cs

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,6 @@ public static IServiceCollection AddCoreServices(this IServiceCollection service
7272
return service;
7373
});
7474
services.AddSingleton<IWorkflowPluginService>(sp => WorkflowScriptService.PluginServiceInstance);
75-
services.AddSingleton<IScriptExecutionService>(sp => WorkflowScriptService.ScriptExecutionServiceInstance);
7675
services.AddSingleton<IWorkflowManagementService>(sp => WorkflowScriptService.ManagementServiceInstance);
7776

7877
// Activity Services
@@ -138,10 +137,6 @@ public static IServiceCollection AddCoreServices(this IServiceCollection service
138137
Log.Information("Registering IKcsFileService...");
139138
services.AddSingleton<IKcsFileService, KcsFileService>();
140139

141-
// Main Program Analyzer
142-
Log.Information("Registering IMainProgramAnalyzer...");
143-
services.AddSingleton<IMainProgramAnalyzer, MainProgramAnalyzer>();
144-
145140
// Block Script Services
146141
Log.Information("Registering IBlockScriptParser...");
147142
services.AddSingleton<IBlockScriptParser, KitX.Core.Workflow.BlockScripting.BlockScriptParser>(provider =>

KitX Clients/KitX Core/KitX.Core/KitX.Core.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
<ItemGroup>
2727
<ProjectReference Include="..\..\..\KitX Standard\KitX Core Contracts\KitX.Core.Contract\KitX.Core.Contract.csproj" />
2828
<ProjectReference Include="..\..\..\KitX Standard\KitX File Formats\KitX.FileFormats.CSharp\KitX.FileFormats.CSharp.csproj" />
29-
<ProjectReference Include="..\..\..\KitX Standard\KitX Script\Kscript.CSharp.Parser\Kscript.CSharp.Parser.csproj" />
29+
<ProjectReference Include="..\..\..\KitX Standard\KitX Script\Kscript.CSharp.Parser\Kscript.CSharp.Parser.csproj" Condition="false" />
3030
<ProjectReference Include="..\..\..\KitX Standard\KitX Shared\KitX.Shared.CSharp\KitX.Shared.CSharp.csproj" />
3131
<ProjectReference Include="..\..\..\KitX Standard\KitX Contracts\KitX.Contract.CSharp\KitX.Contract.CSharp.csproj" />
3232
</ItemGroup>

KitX Clients/KitX Core/KitX.Core/Workflow/KcsFileService.cs

Lines changed: 0 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -58,47 +58,6 @@ public async System.Threading.Tasks.Task SaveKcsFileAsync(string filePath, KcsFi
5858
}
5959
}
6060

61-
/// <summary>
62-
/// 主程序代码分析器实现 - 使用 CSharpSyntaxWalker 检查禁止的语法
63-
/// </summary>
64-
public class MainProgramAnalyzer : IMainProgramAnalyzer
65-
{
66-
/// <summary>
67-
/// 分析代码
68-
/// </summary>
69-
public MainProgramAnalysisResult Analyze(string code)
70-
{
71-
var result = new MainProgramAnalysisResult { IsValid = true };
72-
73-
if (string.IsNullOrWhiteSpace(code))
74-
{
75-
return result;
76-
}
77-
78-
try
79-
{
80-
// 解析代码为语法树
81-
var syntaxTree = CSharpSyntaxTree.ParseText(code);
82-
var root = syntaxTree.GetRoot();
83-
84-
// 使用 StrictScriptValidator 进行语法检查
85-
var validator = new StrictScriptValidator();
86-
validator.Visit(root);
87-
88-
result.IsValid = validator.IsValid;
89-
result.ForbiddenReason = validator.ForbiddenReason;
90-
}
91-
catch (Exception ex)
92-
{
93-
result.IsValid = false;
94-
result.ForbiddenReason = $"Code parsing error: {ex.Message}";
95-
Log.Warning(ex, "[MainProgramAnalyzer] Error analyzing code");
96-
}
97-
98-
return result;
99-
}
100-
}
101-
10261
/// <summary>
10362
/// 严格的脚本验证器 - 使用 CSharpSyntaxWalker 检查允许的语法
10463
/// </summary>

KitX Clients/KitX Core/KitX.Core/Workflow/RealPluginManager.cs

Lines changed: 1 addition & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -21,18 +21,14 @@
2121
using Serilog;
2222
using Microsoft.Extensions.DependencyInjection;
2323

24-
using KcsPluginCallInfo = Kscript.CSharp.Parser.Models.PluginCallInfo;
25-
using KcsIPluginManager = Kscript.CSharp.Parser.Core.IPluginManager;
26-
using PluginMessageReceivedEventArgs = KitX.Core.Contract.Plugin.Events.PluginMessageReceivedEventArgs;
27-
2824
namespace KitX.Core.Workflow;
2925

3026
/// <summary>
3127
/// 真实的插件管理器实现,通过 WebSocket 与插件通信。
3228
/// Implements both Contract.IPluginManager (primary, for BlockScripting) and
3329
/// KCS IPluginManager (legacy, for KCS pipeline compatibility).
3430
/// </summary>
35-
public class RealPluginManager : IPluginManager, KcsIPluginManager
31+
public class RealPluginManager : IPluginManager
3632
{
3733
private readonly IPluginServer _pluginServer;
3834
private readonly IDeviceServer _deviceServer;
@@ -231,21 +227,6 @@ public T Call<T>(PluginCallInfo callInfo)
231227
var result = CallAsync(callInfo).GetAwaiter().GetResult();
232228
return ParseResult<T>(result);
233229
}
234-
235-
// ── KCS IPluginManager explicit implementation (legacy compatibility) ──
236-
237-
void KcsIPluginManager.Call(KcsPluginCallInfo callInfo)
238-
=> Call(ConvertFromKcs(callInfo));
239-
240-
T KcsIPluginManager.Call<T>(KcsPluginCallInfo callInfo)
241-
=> Call<T>(ConvertFromKcs(callInfo));
242-
243-
bool KcsIPluginManager.IsPluginExists(string pluginName) => IsPluginExists(pluginName);
244-
bool KcsIPluginManager.IsMethodExists(string pluginName, string methodName) => IsMethodExists(pluginName, methodName);
245-
246-
private static PluginCallInfo ConvertFromKcs(KcsPluginCallInfo kcs)
247-
=> new(kcs.PluginName, kcs.MethodName, kcs.Parameters, kcs.ParameterTypes, kcs.ParameterNames);
248-
249230
/// <summary>
250231
/// 自动调用插件方法:根据函数声明的返回类型自动选择调用策略。
251232
/// - void 返回类型 → fire-and-forget (Call),不等待响应

0 commit comments

Comments
 (0)