Files
ft/Client/Packages/io.github.hatayama.uloopmcp/Editor/Execution/DynamicCodeExecutorStub.cs

62 lines
2.1 KiB
C#

using System;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
namespace io.github.hatayama.uLoopMCP
{
/// <summary>
/// Fallback stub when no compilation provider is registered.
/// Returns an error for all execution attempts.
/// </summary>
public class DynamicCodeExecutorStub : IDynamicCodeExecutor
{
private readonly ExecutionStatistics _statistics;
public DynamicCodeExecutorStub()
{
_statistics = new ExecutionStatistics();
}
/// <summary>Execute code asynchronously (always returns a Roslyn required error)</summary>
public Task<ExecutionResult> ExecuteCodeAsync(
string code,
string className = DynamicCodeConstants.DEFAULT_CLASS_NAME,
object[] parameters = null,
CancellationToken cancellationToken = default,
bool compileOnly = false)
{
return Task.FromResult(CreateCompilationProviderUnavailableResult());
}
/// <summary>Retrieve execution statistics</summary>
public ExecutionStatistics GetStatistics()
{
return new ExecutionStatistics
{
TotalExecutions = _statistics.TotalExecutions,
SuccessfulExecutions = _statistics.SuccessfulExecutions,
FailedExecutions = _statistics.FailedExecutions,
AverageExecutionTime = _statistics.AverageExecutionTime,
SecurityViolations = _statistics.SecurityViolations,
CompilationErrors = _statistics.CompilationErrors
};
}
public void Dispose()
{
}
private ExecutionResult CreateCompilationProviderUnavailableResult()
{
return new ExecutionResult
{
Success = false,
ErrorMessage = "COMPILATION_PROVIDER_UNAVAILABLE: No compilation provider is registered. Check initialization.",
ExecutionTime = TimeSpan.Zero,
Statistics = _statistics
};
}
}
}