From e566edc0442330c11906da384d589c47f836de37 Mon Sep 17 00:00:00 2001 From: Melodi <62381002+Melodi17@users.noreply.github.com> Date: Wed, 28 Oct 2026 00:04:17 +1000 Subject: fix: file name; move into loop and uow --- src/marlin.agents.shell/Program.cs | 42 +++++++++++++++++--------------------- 1 file changed, 19 insertions(+), 23 deletions(-) (limited to 'src/marlin.agents.shell/Program.cs') diff --git a/src/marlin.agents.shell/Program.cs b/src/marlin.agents.shell/Program.cs index 75ea8ad..c895e8d 100644 --- a/src/marlin.agents.shell/Program.cs +++ b/src/marlin.agents.shell/Program.cs @@ -8,36 +8,32 @@ using marlin.core.models; using marlin.core.models.meta; using marlin.core.models.plan; using marlin.core.util; +using ProtoBuf.Grpc; using ProtoBuf.Grpc.Client; DotNetEnv.Env.NoClobber().TraversePath().Load(); -var jobInstanceDir = Path.Combine(CommonPaths.AgentRoot, "instance"); -Directory.CreateDirectory(jobInstanceDir); - -var client = MarlinApiClient.FromEnvironment(); - -var capabilities = new CapabilitySet(); -capabilities.Items.Add(KnownCapabilities.Architecture, RuntimeInformation.OSArchitecture.ToString()); -capabilities.Items.Add(KnownCapabilities.CoreCount, Environment.ProcessorCount.ToString()); -capabilities.Items.Add(KnownCapabilities.Memory, (GC.GetGCMemoryInfo().TotalAvailableMemoryBytes / (1024 * 1024)).ToString()); -var status = new AgentStatus(capabilities); +if (args.Length == 0) +{ + SlaveLoop loop = new(); + await loop.Start(); +} +else +{ + string recipe = args[0]; + string repoPath = args.Length > 1 ? args[1] : Environment.CurrentDirectory; -AgentConfiguration config = await client.Handshake(status); -Console.WriteLine($"IAM: {config.Name}"); -Console.WriteLine($"MCJ: {config.MaxConcurrentJobs}"); + JobUnitOfWork uow = new(new LocalInstanceService(), repoPath, recipe); + await uow.Run(); +} -while (true) +public class LocalInstanceService : IInstanceService { - var job = await client.QueueNextJob(); - Console.WriteLine(job == null ? "No pending jobs." : $"Claimed job {job.Id}: {job.Recipe}"); - - if (job != null) + public async Task SendLogEvent(LogEventRequest request, CallContext context = default) { - GitBinaryClient gitClient = new(); - var uow = new JobUnitOfWork(job, client, gitClient); - await uow.Run(); + TextWriter writer = request.Error ? Console.Error : Console.Out; + await writer.WriteLineAsync(request.Message); } - - await Task.Delay(TimeSpan.FromSeconds(5)); + + public Task SendStatusUpdate(StatusUpdateRequest request, CallContext context = default) => Task.CompletedTask; } \ No newline at end of file -- cgit v1.3.1