commit 049ab9bc7894031d2b8773f1ef351651a88e548c Author: Nucleic Date: Mon Jul 27 22:02:34 2026 -0700 Nucleic: Windows Port 1 diff --git a/Directory.Build.props b/Directory.Build.props new file mode 100644 index 0000000..fdb6eba --- /dev/null +++ b/Directory.Build.props @@ -0,0 +1,6 @@ + + + + diff --git a/Nucleic.sln b/Nucleic.sln new file mode 100644 index 0000000..515c3c4 --- /dev/null +++ b/Nucleic.sln @@ -0,0 +1,48 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.0.31903.59 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NucleicBroker", "NucleicBroker\NucleicBroker.csproj", "{9DFE1688-402D-4623-9F0F-B2F238F0AE78}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NucleicBroker.Tests", "NucleicBroker.Tests\NucleicBroker.Tests.csproj", "{513C933F-89FF-4918-87AB-E9B70625BE4B}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|Any CPU = Release|Any CPU + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {9DFE1688-402D-4623-9F0F-B2F238F0AE78}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9DFE1688-402D-4623-9F0F-B2F238F0AE78}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9DFE1688-402D-4623-9F0F-B2F238F0AE78}.Debug|x64.ActiveCfg = Debug|Any CPU + {9DFE1688-402D-4623-9F0F-B2F238F0AE78}.Debug|x64.Build.0 = Debug|Any CPU + {9DFE1688-402D-4623-9F0F-B2F238F0AE78}.Debug|x86.ActiveCfg = Debug|Any CPU + {9DFE1688-402D-4623-9F0F-B2F238F0AE78}.Debug|x86.Build.0 = Debug|Any CPU + {9DFE1688-402D-4623-9F0F-B2F238F0AE78}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9DFE1688-402D-4623-9F0F-B2F238F0AE78}.Release|Any CPU.Build.0 = Release|Any CPU + {9DFE1688-402D-4623-9F0F-B2F238F0AE78}.Release|x64.ActiveCfg = Release|Any CPU + {9DFE1688-402D-4623-9F0F-B2F238F0AE78}.Release|x64.Build.0 = Release|Any CPU + {9DFE1688-402D-4623-9F0F-B2F238F0AE78}.Release|x86.ActiveCfg = Release|Any CPU + {9DFE1688-402D-4623-9F0F-B2F238F0AE78}.Release|x86.Build.0 = Release|Any CPU + {513C933F-89FF-4918-87AB-E9B70625BE4B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {513C933F-89FF-4918-87AB-E9B70625BE4B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {513C933F-89FF-4918-87AB-E9B70625BE4B}.Debug|x64.ActiveCfg = Debug|Any CPU + {513C933F-89FF-4918-87AB-E9B70625BE4B}.Debug|x64.Build.0 = Debug|Any CPU + {513C933F-89FF-4918-87AB-E9B70625BE4B}.Debug|x86.ActiveCfg = Debug|Any CPU + {513C933F-89FF-4918-87AB-E9B70625BE4B}.Debug|x86.Build.0 = Debug|Any CPU + {513C933F-89FF-4918-87AB-E9B70625BE4B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {513C933F-89FF-4918-87AB-E9B70625BE4B}.Release|Any CPU.Build.0 = Release|Any CPU + {513C933F-89FF-4918-87AB-E9B70625BE4B}.Release|x64.ActiveCfg = Release|Any CPU + {513C933F-89FF-4918-87AB-E9B70625BE4B}.Release|x64.Build.0 = Release|Any CPU + {513C933F-89FF-4918-87AB-E9B70625BE4B}.Release|x86.ActiveCfg = Release|Any CPU + {513C933F-89FF-4918-87AB-E9B70625BE4B}.Release|x86.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/NucleicBroker.Tests/BrokerServiceTests.cs b/NucleicBroker.Tests/BrokerServiceTests.cs new file mode 100644 index 0000000..8fa0eed --- /dev/null +++ b/NucleicBroker.Tests/BrokerServiceTests.cs @@ -0,0 +1,227 @@ +using System.Text.Json; +using NucleicBroker; + +namespace NucleicBroker.Tests; + +/// +/// Contract tests for the §3.3 RPC surface: each test drives BrokerService with raw NDJSON +/// lines (exactly what hostd sends) and asserts on the emitted lines (exactly what hostd's +/// WslcBrokerClient parses). The Swift side's fake-broker tests mirror these — together they +/// pin the contract from both ends (docs/WINDOWS_PORT.md §14). +/// +public sealed class BrokerServiceTests +{ + private readonly FakeWslc wslc = new(); + private readonly StringWriter captured = new(); + private readonly OutboundWriter outbound; + private readonly BrokerService service; + + public BrokerServiceTests() + { + outbound = new OutboundWriter(captured); + service = new BrokerService(wslc, new UnavailableAiProvider(), outbound); + } + + /// Send one request line and return every line emitted once drained. + private async Task> RoundTrip(params string[] lines) + { + foreach (var line in lines) + await service.HandleLineAsync(line); + await outbound.CompleteAsync(); + return captured.ToString() + .Split('\n', StringSplitOptions.RemoveEmptyEntries) + .Select(l => JsonDocument.Parse(l).RootElement.Clone()) + .ToList(); + } + + private static JsonElement Result(JsonElement response) + { + Assert.Equal("2.0", response.GetProperty("jsonrpc").GetString()); + Assert.False(response.TryGetProperty("error", out var error), error.ToString()); + return response.GetProperty("result"); + } + + [Fact] + public async Task Hello_ReportsProtocolAndCapabilities() + { + var lines = await RoundTrip("""{"jsonrpc":"2.0","id":1,"method":"hello"}"""); + var result = Result(Assert.Single(lines)); + Assert.Equal(BrokerService.ProtocolVersion, result.GetProperty("protocol").GetInt32()); + Assert.Equal("9.9-test", result.GetProperty("wslcVersion").GetString()); + var caps = result.GetProperty("capabilities").EnumerateArray().Select(c => c.GetString()).ToList(); + Assert.Contains("proc", caps); + Assert.DoesNotContain("ai", caps); // UnavailableAiProvider + } + + [Fact] + public async Task UnknownMethod_ReturnsMethodNotFound() + { + var lines = await RoundTrip("""{"jsonrpc":"2.0","id":7,"method":"nope.nothing"}"""); + var error = Assert.Single(lines).GetProperty("error"); + Assert.Equal(Rpc.MethodNotFound, error.GetProperty("code").GetInt32()); + } + + [Fact] + public async Task MalformedLine_ReturnsParseErrorWithNullId() + { + var lines = await RoundTrip("this is not json"); + var response = Assert.Single(lines); + Assert.Equal(JsonValueKind.Null, response.GetProperty("id").ValueKind); + Assert.Equal(Rpc.ParseError, response.GetProperty("error").GetProperty("code").GetInt32()); + } + + [Fact] + public async Task MissingParams_ReturnsInvalidParams() + { + var lines = await RoundTrip("""{"jsonrpc":"2.0","id":8,"method":"session.ensure"}"""); + var error = Assert.Single(lines).GetProperty("error"); + Assert.Equal(Rpc.InvalidParams, error.GetProperty("code").GetInt32()); + } + + [Fact] + public async Task SessionEnsure_ForwardsSpecAndReturnsGateway() + { + var lines = await RoundTrip( + """{"jsonrpc":"2.0","id":2,"method":"session.ensure","params":{"name":"nucleic-dev","dataDir":"C:\\data","cpu":4,"memoryMB":8192}}"""); + Assert.Equal("172.28.0.1", Result(Assert.Single(lines)).GetProperty("gateway").GetString()); + Assert.Equal(new SessionSpec("nucleic-dev", @"C:\data", 4, 8192), wslc.LastSession); + } + + [Fact] + public async Task ImagePull_EmitsProgressNotificationsBeforeResult() + { + var lines = await RoundTrip( + """{"jsonrpc":"2.0","id":3,"method":"image.pull","params":{"ref":"ghcr.io/abkslm/naros-agent:26.07"}}"""); + Assert.Equal(3, lines.Count); + Assert.Equal("image.pullProgress", lines[0].GetProperty("method").GetString()); + Assert.Equal("ghcr.io/abkslm/naros-agent:26.07", + lines[0].GetProperty("params").GetProperty("ref").GetString()); + Assert.Equal("done", lines[1].GetProperty("params").GetProperty("status").GetString()); + Result(lines[2]); // the pull's own success response arrives after its progress + } + + [Fact] + public async Task ContainerLifecycle_CreateStartStateStopDelete() + { + var lines = await RoundTrip( + """{"jsonrpc":"2.0","id":1,"method":"container.create","params":{"name":"nucleic-control-local","image":"img","volumes":[{"host":"C:\\repo","guest":"/work","ro":false}],"env":{"A":"1"},"initArgv":["/sbin/init"]}}""", + """{"jsonrpc":"2.0","id":2,"method":"container.start","params":{"name":"nucleic-control-local"}}""", + """{"jsonrpc":"2.0","id":3,"method":"container.state","params":{"name":"nucleic-control-local"}}""", + """{"jsonrpc":"2.0","id":4,"method":"container.stop","params":{"name":"nucleic-control-local","signal":15,"graceMs":2000}}""", + """{"jsonrpc":"2.0","id":5,"method":"container.delete","params":{"name":"nucleic-control-local"}}""", + """{"jsonrpc":"2.0","id":6,"method":"container.state","params":{"name":"nucleic-control-local"}}"""); + Assert.Equal(6, lines.Count); + Assert.Equal("running", Result(lines[2]).GetProperty("state").GetString()); + Assert.Equal(("nucleic-control-local", 15, 2000), wslc.LastStop); + Assert.Equal("absent", Result(lines[5]).GetProperty("state").GetString()); + var create = wslc.LastCreate!; + Assert.Equal("/work", Assert.Single(create.Volumes!).Guest); + Assert.False(Assert.Single(create.Volumes!).ReadOnly); + Assert.Equal("/sbin/init", Assert.Single(create.InitArgv!)); + } + + [Fact] + public async Task ProcExec_MintsIdAndRoutesStdioEventsInOrder() + { + wslc.ContainerStates["box"] = "running"; + await service.HandleLineAsync( + """{"jsonrpc":"2.0","id":1,"method":"proc.exec","params":{"container":"box","argv":["claude","-p"],"tty":false}}"""); + // The facade emits output then exit, from its own (non-broker) thread. + wslc.Events!.ProcOutput(wslc.LastProcId, stderr: false, "hel"u8); + wslc.Events!.ProcOutput(wslc.LastProcId, stderr: false, "lo\n"u8); + wslc.Events!.ProcExited(wslc.LastProcId, 0); + await outbound.CompleteAsync(); + + var lines = captured.ToString().Split('\n', StringSplitOptions.RemoveEmptyEntries) + .Select(l => JsonDocument.Parse(l).RootElement.Clone()).ToList(); + var procId = Result(lines[0]).GetProperty("procId").GetInt64(); + Assert.Equal(wslc.LastProcId, procId); + + var stdout = lines.Where(l => + l.TryGetProperty("method", out var m) && m.GetString() == "proc.stdout").ToList(); + var decoded = string.Concat(stdout.Select(n => + System.Text.Encoding.UTF8.GetString( + Convert.FromBase64String(n.GetProperty("params").GetProperty("b64").GetString()!)))); + Assert.Equal("hello\n", decoded); + + // exit is last, and never precedes the output that came before it + Assert.Equal("proc.exit", lines[^1].GetProperty("method").GetString()); + Assert.Equal(0, lines[^1].GetProperty("params").GetProperty("code").GetInt32()); + } + + [Fact] + public async Task ProcStdin_DecodesBase64AndSupportsSignalCloseResize() + { + wslc.ContainerStates["box"] = "running"; + await service.HandleLineAsync( + """{"jsonrpc":"2.0","id":1,"method":"proc.exec","params":{"container":"box","argv":["sh"],"tty":true}}"""); + var b64 = Convert.ToBase64String("{\"x\":1}\n"u8.ToArray()); + // The trailing literal `} }` pairs are spaced apart: inside a `$$"""…"""` string two + // consecutive closing braces would read as an interpolation delimiter (CS9007), and + // whitespace between JSON braces is insignificant. + var lines = await RoundTrip( + $$"""{"jsonrpc":"2.0","id":2,"method":"proc.stdin","params":{"procId":{{wslc.LastProcId}},"b64":"{{b64}}"} }""", + $$"""{"jsonrpc":"2.0","id":3,"method":"proc.signal","params":{"procId":{{wslc.LastProcId}},"sig":2} }""", + $$"""{"jsonrpc":"2.0","id":4,"method":"proc.resize","params":{"procId":{{wslc.LastProcId}},"cols":120,"rows":40} }""", + $$"""{"jsonrpc":"2.0","id":5,"method":"proc.closeStdin","params":{"procId":{{wslc.LastProcId}} } }"""); + Assert.Equal(5, lines.Count); // exec response + 4 above + var proc = wslc.LastProcess!; + Assert.Equal("{\"x\":1}\n", System.Text.Encoding.UTF8.GetString(proc.Stdin.ToArray())); + Assert.Equal([2], proc.Signals); + Assert.Equal((120, 40), proc.LastResize); + Assert.True(proc.StdinClosed); + } + + [Fact] + public async Task UnknownProcId_ReturnsFacadeErrorWithKind() + { + var lines = await RoundTrip( + """{"jsonrpc":"2.0","id":1,"method":"proc.signal","params":{"procId":999,"sig":9}}"""); + var error = Assert.Single(lines).GetProperty("error"); + Assert.Equal(Rpc.FacadeError, error.GetProperty("code").GetInt32()); + Assert.Equal("not_found", error.GetProperty("data").GetProperty("kind").GetString()); + } + + [Fact] + public async Task FacadeError_SurfacesStructuredKind() + { + wslc.NextError = new WslcError(WslcError.PullFailed, "registry said no"); + var lines = await RoundTrip( + """{"jsonrpc":"2.0","id":1,"method":"image.pull","params":{"ref":"ghcr.io/x/y:1"}}"""); + var error = Assert.Single(lines).GetProperty("error"); + Assert.Equal("image_pull_failed", error.GetProperty("data").GetProperty("kind").GetString()); + Assert.Equal("registry said no", error.GetProperty("message").GetString()); + } + + [Fact] + public async Task SessionDown_ForwardsAsNotification() + { + wslc.Events!.SessionDown("vm terminated"); + await outbound.CompleteAsync(); + var lines = await Task.FromResult(captured.ToString() + .Split('\n', StringSplitOptions.RemoveEmptyEntries) + .Select(l => JsonDocument.Parse(l).RootElement.Clone()).ToList()); + var note = Assert.Single(lines); + Assert.Equal("session.down", note.GetProperty("method").GetString()); + Assert.Equal("vm terminated", note.GetProperty("params").GetProperty("reason").GetString()); + } + + [Fact] + public async Task AiGenerate_UnavailableProviderReturnsStructuredError() + { + var lines = await RoundTrip( + """{"jsonrpc":"2.0","id":1,"method":"ai.generate","params":{"prompt":"hi"}}"""); + var error = Assert.Single(lines).GetProperty("error"); + Assert.Equal("ai_unavailable", error.GetProperty("data").GetProperty("kind").GetString()); + } + + [Fact] + public async Task ExecInStoppedContainer_ReturnsNotRunning() + { + wslc.ContainerStates["box"] = "stopped"; + var lines = await RoundTrip( + """{"jsonrpc":"2.0","id":1,"method":"proc.exec","params":{"container":"box","argv":["sh"]}}"""); + var error = Assert.Single(lines).GetProperty("error"); + Assert.Equal("not_running", error.GetProperty("data").GetProperty("kind").GetString()); + } +} diff --git a/NucleicBroker.Tests/FakeWslc.cs b/NucleicBroker.Tests/FakeWslc.cs new file mode 100644 index 0000000..a040cc2 --- /dev/null +++ b/NucleicBroker.Tests/FakeWslc.cs @@ -0,0 +1,189 @@ +using NucleicBroker; + +namespace NucleicBroker.Tests; + +/// +/// In-memory IWslc for the broker contract tests (docs/WINDOWS_PORT.md §14): records calls, +/// serves canned state, and exposes the event sink so tests can emit process output/exit and +/// session-death exactly as the wslc facade would — from arbitrary threads, asynchronously. +/// +public sealed class FakeWslc : IWslc +{ + public IBrokerEvents? Events; + public List Calls = []; + public Dictionary ContainerStates = []; + public List Images = []; + public List MissingComponents = []; + public string Gateway = "172.28.0.1"; + public SessionSpec? LastSession; + public ContainerCreateSpec? LastCreate; + public (string Name, int Signal, int GraceMs)? LastStop; + public FakeProcess? LastProcess; + public long LastProcId; + public Exception? NextError; + + public string? WslcVersion => "9.9-test"; + + public void SetEvents(IBrokerEvents events) => Events = events; + + private void Record(string call) + { + Calls.Add(call); + if (NextError is { } error) + { + NextError = null; + throw error; + } + } + + public Task> MissingComponentsAsync(CancellationToken ct) + { + Record("components.missing"); + return Task.FromResult>(MissingComponents); + } + + public Task InstallComponentsAsync(CancellationToken ct) + { + Record("components.install"); + Events?.InstallProgress("installing", 50); + Events?.InstallProgress("done", 100); + return Task.CompletedTask; + } + + public Task EnsureSessionAsync(SessionSpec spec, CancellationToken ct) + { + Record("session.ensure"); + LastSession = spec; + return Task.FromResult(Gateway); + } + + public Task TerminateSessionAsync(CancellationToken ct) + { + Record("session.terminate"); + return Task.CompletedTask; + } + + public Task PullImageAsync(string reference, RegistryAuth? auth, CancellationToken ct) + { + Record($"image.pull:{reference}"); + Events?.PullProgress(reference, "downloading", 10, 100); + Events?.PullProgress(reference, "done", 100, 100); + Images.Add(new ImageInfo(reference, "sha256:fake", 1234)); + return Task.CompletedTask; + } + + public Task> ListImagesAsync(CancellationToken ct) + { + Record("image.list"); + return Task.FromResult>(Images); + } + + public Task DeleteImageAsync(string reference, CancellationToken ct) + { + Record($"image.delete:{reference}"); + Images.RemoveAll(i => i.Ref == reference); + return Task.CompletedTask; + } + + public Task InspectImageAsync(string reference, CancellationToken ct) + { + Record($"image.inspect:{reference}"); + return Task.FromResult(Images.FirstOrDefault(i => i.Ref == reference)); + } + + public Task CreateContainerAsync(ContainerCreateSpec spec, CancellationToken ct) + { + Record($"container.create:{spec.Name}"); + LastCreate = spec; + ContainerStates[spec.Name] = "stopped"; + return Task.CompletedTask; + } + + public Task StartContainerAsync(string name, CancellationToken ct) + { + Record($"container.start:{name}"); + if (!ContainerStates.ContainsKey(name)) + throw new WslcError(WslcError.NotFound, $"no container named {name}"); + ContainerStates[name] = "running"; + return Task.CompletedTask; + } + + public Task StopContainerAsync(string name, int signal, int graceMs, CancellationToken ct) + { + Record($"container.stop:{name}"); + LastStop = (name, signal, graceMs); + ContainerStates[name] = "stopped"; + return Task.CompletedTask; + } + + public Task DeleteContainerAsync(string name, bool force, CancellationToken ct) + { + Record($"container.delete:{name}"); + ContainerStates.Remove(name); + return Task.CompletedTask; + } + + public Task> ListContainersAsync(CancellationToken ct) + { + Record("container.list"); + return Task.FromResult>( + ContainerStates.Select(kv => new ContainerInfo(kv.Key, "img", kv.Value)).ToList()); + } + + public Task ContainerStateAsync(string name, CancellationToken ct) + { + Record($"container.state:{name}"); + return Task.FromResult(ContainerStates.GetValueOrDefault(name, "absent")); + } + + public Task ContainerStatsAsync(string name, CancellationToken ct) + { + Record($"container.stats:{name}"); + return Task.FromResult( + ContainerStates.GetValueOrDefault(name) == "running" + ? new ContainerStatsInfo(111, 222, 333, 0) + : null); + } + + public Task ExecAsync(long procId, ProcSpec spec, CancellationToken ct) + { + Record($"proc.exec:{spec.Container}:{string.Join(' ', spec.Argv)}"); + if (ContainerStates.GetValueOrDefault(spec.Container) != "running") + throw new WslcError(WslcError.NotRunning, $"container {spec.Container} isn't running"); + LastProcId = procId; + LastProcess = new FakeProcess(); + return Task.FromResult(LastProcess); + } + + public sealed class FakeProcess : IWslcProcess + { + public MemoryStream Stdin = new(); + public bool StdinClosed; + public List Signals = []; + public (int Cols, int Rows)? LastResize; + + public Task WriteStdinAsync(ReadOnlyMemory data, CancellationToken ct) + { + Stdin.Write(data.Span); + return Task.CompletedTask; + } + + public Task CloseStdinAsync(CancellationToken ct) + { + StdinClosed = true; + return Task.CompletedTask; + } + + public Task SignalAsync(int signal, CancellationToken ct) + { + Signals.Add(signal); + return Task.CompletedTask; + } + + public Task ResizeAsync(int cols, int rows, CancellationToken ct) + { + LastResize = (cols, rows); + return Task.CompletedTask; + } + } +} diff --git a/NucleicBroker.Tests/NucleicBroker.Tests.csproj b/NucleicBroker.Tests/NucleicBroker.Tests.csproj new file mode 100644 index 0000000..e35949a --- /dev/null +++ b/NucleicBroker.Tests/NucleicBroker.Tests.csproj @@ -0,0 +1,23 @@ + + + + + false + + + + + + + + + + + + + + + + + diff --git a/NucleicBroker.Tests/OutboundWriterTests.cs b/NucleicBroker.Tests/OutboundWriterTests.cs new file mode 100644 index 0000000..68dc7d0 --- /dev/null +++ b/NucleicBroker.Tests/OutboundWriterTests.cs @@ -0,0 +1,50 @@ +using System.Text.Json; +using NucleicBroker; + +namespace NucleicBroker.Tests; + +public sealed class OutboundWriterTests +{ + [Fact] + public async Task PreservesEnqueueOrderAcrossKinds() + { + var captured = new StringWriter(); + var writer = new OutboundWriter(captured); + writer.EnqueueJson("""{"a":1}"""); + writer.EnqueueProcOutput(1, stderr: false, "one"u8); + writer.EnqueueProcOutput(1, stderr: false, "two"u8); + writer.EnqueueJson("""{"b":2}"""); + await writer.CompleteAsync(); + + var lines = captured.ToString().Split('\n', StringSplitOptions.RemoveEmptyEntries); + Assert.Equal("""{"a":1}""", lines[0]); + Assert.Equal("""{"b":2}""", lines[^1]); + + // The two same-stream chunks arrive between the json lines, concatenated in order — + // as ONE notification when the drain saw both queued, as two otherwise. Either way + // the decoded byte stream is identical. + var decoded = string.Concat(lines[1..^1].Select(l => + { + var note = JsonDocument.Parse(l).RootElement; + Assert.Equal("proc.stdout", note.GetProperty("method").GetString()); + return System.Text.Encoding.UTF8.GetString( + Convert.FromBase64String(note.GetProperty("params").GetProperty("b64").GetString()!)); + })); + Assert.Equal("onetwo", decoded); + } + + [Fact] + public async Task StderrAndStdoutChunksNeverMerge() + { + var captured = new StringWriter(); + var writer = new OutboundWriter(captured); + writer.EnqueueProcOutput(1, stderr: false, "out"u8); + writer.EnqueueProcOutput(1, stderr: true, "err"u8); + await writer.CompleteAsync(); + + var methods = captured.ToString().Split('\n', StringSplitOptions.RemoveEmptyEntries) + .Select(l => JsonDocument.Parse(l).RootElement.GetProperty("method").GetString()) + .ToList(); + Assert.Equal(["proc.stdout", "proc.stderr"], methods); + } +} diff --git a/NucleicBroker.Tests/bin/Debug/net9.0/.msCoverageSourceRootsMapping_NucleicBroker.Tests b/NucleicBroker.Tests/bin/Debug/net9.0/.msCoverageSourceRootsMapping_NucleicBroker.Tests new file mode 100644 index 0000000..0834ea2 Binary files /dev/null and b/NucleicBroker.Tests/bin/Debug/net9.0/.msCoverageSourceRootsMapping_NucleicBroker.Tests differ diff --git a/NucleicBroker.Tests/bin/Debug/net9.0/Microsoft.TestPlatform.CommunicationUtilities.dll b/NucleicBroker.Tests/bin/Debug/net9.0/Microsoft.TestPlatform.CommunicationUtilities.dll new file mode 100755 index 0000000..f018486 Binary files /dev/null and b/NucleicBroker.Tests/bin/Debug/net9.0/Microsoft.TestPlatform.CommunicationUtilities.dll differ diff --git a/NucleicBroker.Tests/bin/Debug/net9.0/Microsoft.TestPlatform.CoreUtilities.dll b/NucleicBroker.Tests/bin/Debug/net9.0/Microsoft.TestPlatform.CoreUtilities.dll new file mode 100755 index 0000000..da3396e Binary files /dev/null and b/NucleicBroker.Tests/bin/Debug/net9.0/Microsoft.TestPlatform.CoreUtilities.dll differ diff --git a/NucleicBroker.Tests/bin/Debug/net9.0/Microsoft.TestPlatform.CrossPlatEngine.dll b/NucleicBroker.Tests/bin/Debug/net9.0/Microsoft.TestPlatform.CrossPlatEngine.dll new file mode 100755 index 0000000..d3f461d Binary files /dev/null and b/NucleicBroker.Tests/bin/Debug/net9.0/Microsoft.TestPlatform.CrossPlatEngine.dll differ diff --git a/NucleicBroker.Tests/bin/Debug/net9.0/Microsoft.TestPlatform.PlatformAbstractions.dll b/NucleicBroker.Tests/bin/Debug/net9.0/Microsoft.TestPlatform.PlatformAbstractions.dll new file mode 100755 index 0000000..ad4e8c7 Binary files /dev/null and b/NucleicBroker.Tests/bin/Debug/net9.0/Microsoft.TestPlatform.PlatformAbstractions.dll differ diff --git a/NucleicBroker.Tests/bin/Debug/net9.0/Microsoft.TestPlatform.Utilities.dll b/NucleicBroker.Tests/bin/Debug/net9.0/Microsoft.TestPlatform.Utilities.dll new file mode 100755 index 0000000..02ccb37 Binary files /dev/null and b/NucleicBroker.Tests/bin/Debug/net9.0/Microsoft.TestPlatform.Utilities.dll differ diff --git a/NucleicBroker.Tests/bin/Debug/net9.0/Microsoft.VisualStudio.CodeCoverage.Shim.dll b/NucleicBroker.Tests/bin/Debug/net9.0/Microsoft.VisualStudio.CodeCoverage.Shim.dll new file mode 100755 index 0000000..43d029f Binary files /dev/null and b/NucleicBroker.Tests/bin/Debug/net9.0/Microsoft.VisualStudio.CodeCoverage.Shim.dll differ diff --git a/NucleicBroker.Tests/bin/Debug/net9.0/Microsoft.VisualStudio.TestPlatform.Common.dll b/NucleicBroker.Tests/bin/Debug/net9.0/Microsoft.VisualStudio.TestPlatform.Common.dll new file mode 100755 index 0000000..0fa6eb1 Binary files /dev/null and b/NucleicBroker.Tests/bin/Debug/net9.0/Microsoft.VisualStudio.TestPlatform.Common.dll differ diff --git a/NucleicBroker.Tests/bin/Debug/net9.0/Microsoft.VisualStudio.TestPlatform.ObjectModel.dll b/NucleicBroker.Tests/bin/Debug/net9.0/Microsoft.VisualStudio.TestPlatform.ObjectModel.dll new file mode 100755 index 0000000..bb7a277 Binary files /dev/null and b/NucleicBroker.Tests/bin/Debug/net9.0/Microsoft.VisualStudio.TestPlatform.ObjectModel.dll differ diff --git a/NucleicBroker.Tests/bin/Debug/net9.0/Newtonsoft.Json.dll b/NucleicBroker.Tests/bin/Debug/net9.0/Newtonsoft.Json.dll new file mode 100755 index 0000000..1ffeabe Binary files /dev/null and b/NucleicBroker.Tests/bin/Debug/net9.0/Newtonsoft.Json.dll differ diff --git a/NucleicBroker.Tests/bin/Debug/net9.0/NucleicBroker.Tests.deps.json b/NucleicBroker.Tests/bin/Debug/net9.0/NucleicBroker.Tests.deps.json new file mode 100644 index 0000000..b4299ce --- /dev/null +++ b/NucleicBroker.Tests/bin/Debug/net9.0/NucleicBroker.Tests.deps.json @@ -0,0 +1,475 @@ +{ + "runtimeTarget": { + "name": ".NETCoreApp,Version=v9.0", + "signature": "" + }, + "compilationOptions": {}, + "targets": { + ".NETCoreApp,Version=v9.0": { + "NucleicBroker.Tests/1.0.0": { + "dependencies": { + "Microsoft.NET.Test.Sdk": "17.12.0", + "nucleic-brokerd": "1.0.0", + "xunit": "2.9.2", + "xunit.runner.visualstudio": "2.8.2", + "nucleic-brokerd.Reference": "1.0.0.0" + }, + "runtime": { + "NucleicBroker.Tests.dll": {} + } + }, + "Microsoft.CodeCoverage/17.12.0": { + "runtime": { + "lib/netcoreapp3.1/Microsoft.VisualStudio.CodeCoverage.Shim.dll": { + "assemblyVersion": "15.0.0.0", + "fileVersion": "17.1200.524.48002" + } + } + }, + "Microsoft.NET.Test.Sdk/17.12.0": { + "dependencies": { + "Microsoft.CodeCoverage": "17.12.0", + "Microsoft.TestPlatform.TestHost": "17.12.0" + } + }, + "Microsoft.TestPlatform.ObjectModel/17.12.0": { + "dependencies": { + "System.Reflection.Metadata": "1.6.0" + }, + "runtime": { + "lib/netcoreapp3.1/Microsoft.TestPlatform.CoreUtilities.dll": { + "assemblyVersion": "15.0.0.0", + "fileVersion": "17.1200.24.56501" + }, + "lib/netcoreapp3.1/Microsoft.TestPlatform.PlatformAbstractions.dll": { + "assemblyVersion": "15.0.0.0", + "fileVersion": "17.1200.24.56501" + }, + "lib/netcoreapp3.1/Microsoft.VisualStudio.TestPlatform.ObjectModel.dll": { + "assemblyVersion": "15.0.0.0", + "fileVersion": "17.1200.24.56501" + } + }, + "resources": { + "lib/netcoreapp3.1/cs/Microsoft.TestPlatform.CoreUtilities.resources.dll": { + "locale": "cs" + }, + "lib/netcoreapp3.1/cs/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { + "locale": "cs" + }, + "lib/netcoreapp3.1/de/Microsoft.TestPlatform.CoreUtilities.resources.dll": { + "locale": "de" + }, + "lib/netcoreapp3.1/de/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { + "locale": "de" + }, + "lib/netcoreapp3.1/es/Microsoft.TestPlatform.CoreUtilities.resources.dll": { + "locale": "es" + }, + "lib/netcoreapp3.1/es/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { + "locale": "es" + }, + "lib/netcoreapp3.1/fr/Microsoft.TestPlatform.CoreUtilities.resources.dll": { + "locale": "fr" + }, + "lib/netcoreapp3.1/fr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { + "locale": "fr" + }, + "lib/netcoreapp3.1/it/Microsoft.TestPlatform.CoreUtilities.resources.dll": { + "locale": "it" + }, + "lib/netcoreapp3.1/it/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { + "locale": "it" + }, + "lib/netcoreapp3.1/ja/Microsoft.TestPlatform.CoreUtilities.resources.dll": { + "locale": "ja" + }, + "lib/netcoreapp3.1/ja/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { + "locale": "ja" + }, + "lib/netcoreapp3.1/ko/Microsoft.TestPlatform.CoreUtilities.resources.dll": { + "locale": "ko" + }, + "lib/netcoreapp3.1/ko/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { + "locale": "ko" + }, + "lib/netcoreapp3.1/pl/Microsoft.TestPlatform.CoreUtilities.resources.dll": { + "locale": "pl" + }, + "lib/netcoreapp3.1/pl/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { + "locale": "pl" + }, + "lib/netcoreapp3.1/pt-BR/Microsoft.TestPlatform.CoreUtilities.resources.dll": { + "locale": "pt-BR" + }, + "lib/netcoreapp3.1/pt-BR/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { + "locale": "pt-BR" + }, + "lib/netcoreapp3.1/ru/Microsoft.TestPlatform.CoreUtilities.resources.dll": { + "locale": "ru" + }, + "lib/netcoreapp3.1/ru/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { + "locale": "ru" + }, + "lib/netcoreapp3.1/tr/Microsoft.TestPlatform.CoreUtilities.resources.dll": { + "locale": "tr" + }, + "lib/netcoreapp3.1/tr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { + "locale": "tr" + }, + "lib/netcoreapp3.1/zh-Hans/Microsoft.TestPlatform.CoreUtilities.resources.dll": { + "locale": "zh-Hans" + }, + "lib/netcoreapp3.1/zh-Hans/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { + "locale": "zh-Hans" + }, + "lib/netcoreapp3.1/zh-Hant/Microsoft.TestPlatform.CoreUtilities.resources.dll": { + "locale": "zh-Hant" + }, + "lib/netcoreapp3.1/zh-Hant/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { + "locale": "zh-Hant" + } + } + }, + "Microsoft.TestPlatform.TestHost/17.12.0": { + "dependencies": { + "Microsoft.TestPlatform.ObjectModel": "17.12.0", + "Newtonsoft.Json": "13.0.1" + }, + "runtime": { + "lib/netcoreapp3.1/Microsoft.TestPlatform.CommunicationUtilities.dll": { + "assemblyVersion": "15.0.0.0", + "fileVersion": "17.1200.24.56501" + }, + "lib/netcoreapp3.1/Microsoft.TestPlatform.CrossPlatEngine.dll": { + "assemblyVersion": "15.0.0.0", + "fileVersion": "17.1200.24.56501" + }, + "lib/netcoreapp3.1/Microsoft.TestPlatform.Utilities.dll": { + "assemblyVersion": "15.0.0.0", + "fileVersion": "17.1200.24.56501" + }, + "lib/netcoreapp3.1/Microsoft.VisualStudio.TestPlatform.Common.dll": { + "assemblyVersion": "15.0.0.0", + "fileVersion": "17.1200.24.56501" + }, + "lib/netcoreapp3.1/testhost.dll": { + "assemblyVersion": "15.0.0.0", + "fileVersion": "17.1200.24.56501" + } + }, + "resources": { + "lib/netcoreapp3.1/cs/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { + "locale": "cs" + }, + "lib/netcoreapp3.1/cs/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { + "locale": "cs" + }, + "lib/netcoreapp3.1/cs/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { + "locale": "cs" + }, + "lib/netcoreapp3.1/de/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { + "locale": "de" + }, + "lib/netcoreapp3.1/de/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { + "locale": "de" + }, + "lib/netcoreapp3.1/de/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { + "locale": "de" + }, + "lib/netcoreapp3.1/es/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { + "locale": "es" + }, + "lib/netcoreapp3.1/es/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { + "locale": "es" + }, + "lib/netcoreapp3.1/es/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { + "locale": "es" + }, + "lib/netcoreapp3.1/fr/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { + "locale": "fr" + }, + "lib/netcoreapp3.1/fr/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { + "locale": "fr" + }, + "lib/netcoreapp3.1/fr/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { + "locale": "fr" + }, + "lib/netcoreapp3.1/it/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { + "locale": "it" + }, + "lib/netcoreapp3.1/it/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { + "locale": "it" + }, + "lib/netcoreapp3.1/it/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { + "locale": "it" + }, + "lib/netcoreapp3.1/ja/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { + "locale": "ja" + }, + "lib/netcoreapp3.1/ja/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { + "locale": "ja" + }, + "lib/netcoreapp3.1/ja/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { + "locale": "ja" + }, + "lib/netcoreapp3.1/ko/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { + "locale": "ko" + }, + "lib/netcoreapp3.1/ko/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { + "locale": "ko" + }, + "lib/netcoreapp3.1/ko/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { + "locale": "ko" + }, + "lib/netcoreapp3.1/pl/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { + "locale": "pl" + }, + "lib/netcoreapp3.1/pl/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { + "locale": "pl" + }, + "lib/netcoreapp3.1/pl/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { + "locale": "pl" + }, + "lib/netcoreapp3.1/pt-BR/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { + "locale": "pt-BR" + }, + "lib/netcoreapp3.1/pt-BR/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { + "locale": "pt-BR" + }, + "lib/netcoreapp3.1/pt-BR/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { + "locale": "pt-BR" + }, + "lib/netcoreapp3.1/ru/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { + "locale": "ru" + }, + "lib/netcoreapp3.1/ru/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { + "locale": "ru" + }, + "lib/netcoreapp3.1/ru/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { + "locale": "ru" + }, + "lib/netcoreapp3.1/tr/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { + "locale": "tr" + }, + "lib/netcoreapp3.1/tr/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { + "locale": "tr" + }, + "lib/netcoreapp3.1/tr/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { + "locale": "tr" + }, + "lib/netcoreapp3.1/zh-Hans/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { + "locale": "zh-Hans" + }, + "lib/netcoreapp3.1/zh-Hans/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { + "locale": "zh-Hans" + }, + "lib/netcoreapp3.1/zh-Hans/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { + "locale": "zh-Hans" + }, + "lib/netcoreapp3.1/zh-Hant/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { + "locale": "zh-Hant" + }, + "lib/netcoreapp3.1/zh-Hant/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { + "locale": "zh-Hant" + }, + "lib/netcoreapp3.1/zh-Hant/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { + "locale": "zh-Hant" + } + } + }, + "Newtonsoft.Json/13.0.1": { + "runtime": { + "lib/netstandard2.0/Newtonsoft.Json.dll": { + "assemblyVersion": "13.0.0.0", + "fileVersion": "13.0.1.25517" + } + } + }, + "System.Reflection.Metadata/1.6.0": {}, + "xunit/2.9.2": { + "dependencies": { + "xunit.analyzers": "1.16.0", + "xunit.assert": "2.9.2", + "xunit.core": "2.9.2" + } + }, + "xunit.abstractions/2.0.3": { + "runtime": { + "lib/netstandard2.0/xunit.abstractions.dll": { + "assemblyVersion": "2.0.0.0", + "fileVersion": "0.0.0.0" + } + } + }, + "xunit.analyzers/1.16.0": {}, + "xunit.assert/2.9.2": { + "runtime": { + "lib/net6.0/xunit.assert.dll": { + "assemblyVersion": "2.9.2.0", + "fileVersion": "2.9.2.0" + } + } + }, + "xunit.core/2.9.2": { + "dependencies": { + "xunit.extensibility.core": "2.9.2", + "xunit.extensibility.execution": "2.9.2" + } + }, + "xunit.extensibility.core/2.9.2": { + "dependencies": { + "xunit.abstractions": "2.0.3" + }, + "runtime": { + "lib/netstandard1.1/xunit.core.dll": { + "assemblyVersion": "2.9.2.0", + "fileVersion": "2.9.2.0" + } + } + }, + "xunit.extensibility.execution/2.9.2": { + "dependencies": { + "xunit.extensibility.core": "2.9.2" + }, + "runtime": { + "lib/netstandard1.1/xunit.execution.dotnet.dll": { + "assemblyVersion": "2.9.2.0", + "fileVersion": "2.9.2.0" + } + } + }, + "xunit.runner.visualstudio/2.8.2": {}, + "nucleic-brokerd/1.0.0": { + "runtime": { + "nucleic-brokerd.dll": { + "fileVersion": "0.0.0.0" + } + } + }, + "nucleic-brokerd.Reference/1.0.0.0": { + "runtime": { + "nucleic-brokerd.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.0.0.0" + } + } + } + } + }, + "libraries": { + "NucleicBroker.Tests/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "Microsoft.CodeCoverage/17.12.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-4svMznBd5JM21JIG2xZKGNanAHNXplxf/kQDFfLHXQ3OnpJkayRK/TjacFjA+EYmoyuNXHo/sOETEfcYtAzIrA==", + "path": "microsoft.codecoverage/17.12.0", + "hashPath": "microsoft.codecoverage.17.12.0.nupkg.sha512" + }, + "Microsoft.NET.Test.Sdk/17.12.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-kt/PKBZ91rFCWxVIJZSgVLk+YR+4KxTuHf799ho8WNiK5ZQpJNAEZCAWX86vcKrs+DiYjiibpYKdGZP6+/N17w==", + "path": "microsoft.net.test.sdk/17.12.0", + "hashPath": "microsoft.net.test.sdk.17.12.0.nupkg.sha512" + }, + "Microsoft.TestPlatform.ObjectModel/17.12.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-TDqkTKLfQuAaPcEb3pDDWnh7b3SyZF+/W9OZvWFp6eJCIiiYFdSB6taE2I6tWrFw5ywhzOb6sreoGJTI6m3rSQ==", + "path": "microsoft.testplatform.objectmodel/17.12.0", + "hashPath": "microsoft.testplatform.objectmodel.17.12.0.nupkg.sha512" + }, + "Microsoft.TestPlatform.TestHost/17.12.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-MiPEJQNyADfwZ4pJNpQex+t9/jOClBGMiCiVVFuELCMSX2nmNfvUor3uFVxNNCg30uxDP8JDYfPnMXQzsfzYyg==", + "path": "microsoft.testplatform.testhost/17.12.0", + "hashPath": "microsoft.testplatform.testhost.17.12.0.nupkg.sha512" + }, + "Newtonsoft.Json/13.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-ppPFpBcvxdsfUonNcvITKqLl3bqxWbDCZIzDWHzjpdAHRFfZe0Dw9HmA0+za13IdyrgJwpkDTDA9fHaxOrt20A==", + "path": "newtonsoft.json/13.0.1", + "hashPath": "newtonsoft.json.13.0.1.nupkg.sha512" + }, + "System.Reflection.Metadata/1.6.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-COC1aiAJjCoA5GBF+QKL2uLqEBew4JsCkQmoHKbN3TlOZKa2fKLz5CpiRQKDz0RsAOEGsVKqOD5bomsXq/4STQ==", + "path": "system.reflection.metadata/1.6.0", + "hashPath": "system.reflection.metadata.1.6.0.nupkg.sha512" + }, + "xunit/2.9.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-7LhFS2N9Z6Xgg8aE5lY95cneYivRMfRI8v+4PATa4S64D5Z/Plkg0qa8dTRHSiGRgVZ/CL2gEfJDE5AUhOX+2Q==", + "path": "xunit/2.9.2", + "hashPath": "xunit.2.9.2.nupkg.sha512" + }, + "xunit.abstractions/2.0.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-pot1I4YOxlWjIb5jmwvvQNbTrZ3lJQ+jUGkGjWE3hEFM0l5gOnBWS+H3qsex68s5cO52g+44vpGzhAt+42vwKg==", + "path": "xunit.abstractions/2.0.3", + "hashPath": "xunit.abstractions.2.0.3.nupkg.sha512" + }, + "xunit.analyzers/1.16.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-hptYM7vGr46GUIgZt21YHO4rfuBAQS2eINbFo16CV/Dqq+24Tp+P5gDCACu1AbFfW4Sp/WRfDPSK8fmUUb8s0Q==", + "path": "xunit.analyzers/1.16.0", + "hashPath": "xunit.analyzers.1.16.0.nupkg.sha512" + }, + "xunit.assert/2.9.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-QkNBAQG4pa66cholm28AxijBjrmki98/vsEh4Sx5iplzotvPgpiotcxqJQMRC8d7RV7nIT8ozh97957hDnZwsQ==", + "path": "xunit.assert/2.9.2", + "hashPath": "xunit.assert.2.9.2.nupkg.sha512" + }, + "xunit.core/2.9.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-O6RrNSdmZ0xgEn5kT927PNwog5vxTtKrWMihhhrT0Sg9jQ7iBDciYOwzBgP2krBEk5/GBXI18R1lKvmnxGcb4w==", + "path": "xunit.core/2.9.2", + "hashPath": "xunit.core.2.9.2.nupkg.sha512" + }, + "xunit.extensibility.core/2.9.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-Ol+KlBJz1x8BrdnhN2DeOuLrr1I/cTwtHCggL9BvYqFuVd/TUSzxNT5O0NxCIXth30bsKxgMfdqLTcORtM52yQ==", + "path": "xunit.extensibility.core/2.9.2", + "hashPath": "xunit.extensibility.core.2.9.2.nupkg.sha512" + }, + "xunit.extensibility.execution/2.9.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-rKMpq4GsIUIJibXuZoZ8lYp5EpROlnYaRpwu9Zr0sRZXE7JqJfEEbCsUriZqB+ByXCLFBJyjkTRULMdC+U566g==", + "path": "xunit.extensibility.execution/2.9.2", + "hashPath": "xunit.extensibility.execution.2.9.2.nupkg.sha512" + }, + "xunit.runner.visualstudio/2.8.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-vm1tbfXhFmjFMUmS4M0J0ASXz3/U5XvXBa6DOQUL3fEz4Vt6YPhv+ESCarx6M6D+9kJkJYZKCNvJMas1+nVfmQ==", + "path": "xunit.runner.visualstudio/2.8.2", + "hashPath": "xunit.runner.visualstudio.2.8.2.nupkg.sha512" + }, + "nucleic-brokerd/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "nucleic-brokerd.Reference/1.0.0.0": { + "type": "reference", + "serviceable": false, + "sha512": "" + } + } +} \ No newline at end of file diff --git a/NucleicBroker.Tests/bin/Debug/net9.0/NucleicBroker.Tests.dll b/NucleicBroker.Tests/bin/Debug/net9.0/NucleicBroker.Tests.dll new file mode 100644 index 0000000..fa43941 Binary files /dev/null and b/NucleicBroker.Tests/bin/Debug/net9.0/NucleicBroker.Tests.dll differ diff --git a/NucleicBroker.Tests/bin/Debug/net9.0/NucleicBroker.Tests.pdb b/NucleicBroker.Tests/bin/Debug/net9.0/NucleicBroker.Tests.pdb new file mode 100644 index 0000000..1a6539c Binary files /dev/null and b/NucleicBroker.Tests/bin/Debug/net9.0/NucleicBroker.Tests.pdb differ diff --git a/NucleicBroker.Tests/bin/Debug/net9.0/NucleicBroker.Tests.runtimeconfig.json b/NucleicBroker.Tests/bin/Debug/net9.0/NucleicBroker.Tests.runtimeconfig.json new file mode 100644 index 0000000..5cddbbc --- /dev/null +++ b/NucleicBroker.Tests/bin/Debug/net9.0/NucleicBroker.Tests.runtimeconfig.json @@ -0,0 +1,14 @@ +{ + "runtimeOptions": { + "tfm": "net9.0", + "framework": { + "name": "Microsoft.NETCore.App", + "version": "9.0.0" + }, + "configProperties": { + "System.Globalization.Invariant": true, + "System.Globalization.PredefinedCulturesOnly": true, + "System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false + } + } +} \ No newline at end of file diff --git a/NucleicBroker.Tests/bin/Debug/net9.0/cs/Microsoft.TestPlatform.CommunicationUtilities.resources.dll b/NucleicBroker.Tests/bin/Debug/net9.0/cs/Microsoft.TestPlatform.CommunicationUtilities.resources.dll new file mode 100755 index 0000000..6a22512 Binary files /dev/null and b/NucleicBroker.Tests/bin/Debug/net9.0/cs/Microsoft.TestPlatform.CommunicationUtilities.resources.dll differ diff --git a/NucleicBroker.Tests/bin/Debug/net9.0/cs/Microsoft.TestPlatform.CoreUtilities.resources.dll b/NucleicBroker.Tests/bin/Debug/net9.0/cs/Microsoft.TestPlatform.CoreUtilities.resources.dll new file mode 100755 index 0000000..83c68f1 Binary files /dev/null and b/NucleicBroker.Tests/bin/Debug/net9.0/cs/Microsoft.TestPlatform.CoreUtilities.resources.dll differ diff --git a/NucleicBroker.Tests/bin/Debug/net9.0/cs/Microsoft.TestPlatform.CrossPlatEngine.resources.dll b/NucleicBroker.Tests/bin/Debug/net9.0/cs/Microsoft.TestPlatform.CrossPlatEngine.resources.dll new file mode 100755 index 0000000..5f56087 Binary files /dev/null and b/NucleicBroker.Tests/bin/Debug/net9.0/cs/Microsoft.TestPlatform.CrossPlatEngine.resources.dll differ diff --git a/NucleicBroker.Tests/bin/Debug/net9.0/cs/Microsoft.VisualStudio.TestPlatform.Common.resources.dll b/NucleicBroker.Tests/bin/Debug/net9.0/cs/Microsoft.VisualStudio.TestPlatform.Common.resources.dll new file mode 100755 index 0000000..87f03f5 Binary files /dev/null and b/NucleicBroker.Tests/bin/Debug/net9.0/cs/Microsoft.VisualStudio.TestPlatform.Common.resources.dll differ diff --git a/NucleicBroker.Tests/bin/Debug/net9.0/cs/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll b/NucleicBroker.Tests/bin/Debug/net9.0/cs/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll new file mode 100755 index 0000000..252c548 Binary files /dev/null and b/NucleicBroker.Tests/bin/Debug/net9.0/cs/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll differ diff --git a/NucleicBroker.Tests/bin/Debug/net9.0/de/Microsoft.TestPlatform.CommunicationUtilities.resources.dll b/NucleicBroker.Tests/bin/Debug/net9.0/de/Microsoft.TestPlatform.CommunicationUtilities.resources.dll new file mode 100755 index 0000000..c405cb0 Binary files /dev/null and b/NucleicBroker.Tests/bin/Debug/net9.0/de/Microsoft.TestPlatform.CommunicationUtilities.resources.dll differ diff --git a/NucleicBroker.Tests/bin/Debug/net9.0/de/Microsoft.TestPlatform.CoreUtilities.resources.dll b/NucleicBroker.Tests/bin/Debug/net9.0/de/Microsoft.TestPlatform.CoreUtilities.resources.dll new file mode 100755 index 0000000..0b8d7a2 Binary files /dev/null and b/NucleicBroker.Tests/bin/Debug/net9.0/de/Microsoft.TestPlatform.CoreUtilities.resources.dll differ diff --git a/NucleicBroker.Tests/bin/Debug/net9.0/de/Microsoft.TestPlatform.CrossPlatEngine.resources.dll b/NucleicBroker.Tests/bin/Debug/net9.0/de/Microsoft.TestPlatform.CrossPlatEngine.resources.dll new file mode 100755 index 0000000..8a40450 Binary files /dev/null and b/NucleicBroker.Tests/bin/Debug/net9.0/de/Microsoft.TestPlatform.CrossPlatEngine.resources.dll differ diff --git a/NucleicBroker.Tests/bin/Debug/net9.0/de/Microsoft.VisualStudio.TestPlatform.Common.resources.dll b/NucleicBroker.Tests/bin/Debug/net9.0/de/Microsoft.VisualStudio.TestPlatform.Common.resources.dll new file mode 100755 index 0000000..094510e Binary files /dev/null and b/NucleicBroker.Tests/bin/Debug/net9.0/de/Microsoft.VisualStudio.TestPlatform.Common.resources.dll differ diff --git a/NucleicBroker.Tests/bin/Debug/net9.0/de/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll b/NucleicBroker.Tests/bin/Debug/net9.0/de/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll new file mode 100755 index 0000000..f2ea114 Binary files /dev/null and b/NucleicBroker.Tests/bin/Debug/net9.0/de/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll differ diff --git a/NucleicBroker.Tests/bin/Debug/net9.0/es/Microsoft.TestPlatform.CommunicationUtilities.resources.dll b/NucleicBroker.Tests/bin/Debug/net9.0/es/Microsoft.TestPlatform.CommunicationUtilities.resources.dll new file mode 100755 index 0000000..a4f9b88 Binary files /dev/null and b/NucleicBroker.Tests/bin/Debug/net9.0/es/Microsoft.TestPlatform.CommunicationUtilities.resources.dll differ diff --git a/NucleicBroker.Tests/bin/Debug/net9.0/es/Microsoft.TestPlatform.CoreUtilities.resources.dll b/NucleicBroker.Tests/bin/Debug/net9.0/es/Microsoft.TestPlatform.CoreUtilities.resources.dll new file mode 100755 index 0000000..1cedf43 Binary files /dev/null and b/NucleicBroker.Tests/bin/Debug/net9.0/es/Microsoft.TestPlatform.CoreUtilities.resources.dll differ diff --git a/NucleicBroker.Tests/bin/Debug/net9.0/es/Microsoft.TestPlatform.CrossPlatEngine.resources.dll b/NucleicBroker.Tests/bin/Debug/net9.0/es/Microsoft.TestPlatform.CrossPlatEngine.resources.dll new file mode 100755 index 0000000..50efa40 Binary files /dev/null and b/NucleicBroker.Tests/bin/Debug/net9.0/es/Microsoft.TestPlatform.CrossPlatEngine.resources.dll differ diff --git a/NucleicBroker.Tests/bin/Debug/net9.0/es/Microsoft.VisualStudio.TestPlatform.Common.resources.dll b/NucleicBroker.Tests/bin/Debug/net9.0/es/Microsoft.VisualStudio.TestPlatform.Common.resources.dll new file mode 100755 index 0000000..8609499 Binary files /dev/null and b/NucleicBroker.Tests/bin/Debug/net9.0/es/Microsoft.VisualStudio.TestPlatform.Common.resources.dll differ diff --git a/NucleicBroker.Tests/bin/Debug/net9.0/es/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll b/NucleicBroker.Tests/bin/Debug/net9.0/es/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll new file mode 100755 index 0000000..5d22850 Binary files /dev/null and b/NucleicBroker.Tests/bin/Debug/net9.0/es/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll differ diff --git a/NucleicBroker.Tests/bin/Debug/net9.0/fr/Microsoft.TestPlatform.CommunicationUtilities.resources.dll b/NucleicBroker.Tests/bin/Debug/net9.0/fr/Microsoft.TestPlatform.CommunicationUtilities.resources.dll new file mode 100755 index 0000000..6c3f966 Binary files /dev/null and b/NucleicBroker.Tests/bin/Debug/net9.0/fr/Microsoft.TestPlatform.CommunicationUtilities.resources.dll differ diff --git a/NucleicBroker.Tests/bin/Debug/net9.0/fr/Microsoft.TestPlatform.CoreUtilities.resources.dll b/NucleicBroker.Tests/bin/Debug/net9.0/fr/Microsoft.TestPlatform.CoreUtilities.resources.dll new file mode 100755 index 0000000..1354d08 Binary files /dev/null and b/NucleicBroker.Tests/bin/Debug/net9.0/fr/Microsoft.TestPlatform.CoreUtilities.resources.dll differ diff --git a/NucleicBroker.Tests/bin/Debug/net9.0/fr/Microsoft.TestPlatform.CrossPlatEngine.resources.dll b/NucleicBroker.Tests/bin/Debug/net9.0/fr/Microsoft.TestPlatform.CrossPlatEngine.resources.dll new file mode 100755 index 0000000..97f4c62 Binary files /dev/null and b/NucleicBroker.Tests/bin/Debug/net9.0/fr/Microsoft.TestPlatform.CrossPlatEngine.resources.dll differ diff --git a/NucleicBroker.Tests/bin/Debug/net9.0/fr/Microsoft.VisualStudio.TestPlatform.Common.resources.dll b/NucleicBroker.Tests/bin/Debug/net9.0/fr/Microsoft.VisualStudio.TestPlatform.Common.resources.dll new file mode 100755 index 0000000..efeda12 Binary files /dev/null and b/NucleicBroker.Tests/bin/Debug/net9.0/fr/Microsoft.VisualStudio.TestPlatform.Common.resources.dll differ diff --git a/NucleicBroker.Tests/bin/Debug/net9.0/fr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll b/NucleicBroker.Tests/bin/Debug/net9.0/fr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll new file mode 100755 index 0000000..ca6b10d Binary files /dev/null and b/NucleicBroker.Tests/bin/Debug/net9.0/fr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll differ diff --git a/NucleicBroker.Tests/bin/Debug/net9.0/it/Microsoft.TestPlatform.CommunicationUtilities.resources.dll b/NucleicBroker.Tests/bin/Debug/net9.0/it/Microsoft.TestPlatform.CommunicationUtilities.resources.dll new file mode 100755 index 0000000..000757f Binary files /dev/null and b/NucleicBroker.Tests/bin/Debug/net9.0/it/Microsoft.TestPlatform.CommunicationUtilities.resources.dll differ diff --git a/NucleicBroker.Tests/bin/Debug/net9.0/it/Microsoft.TestPlatform.CoreUtilities.resources.dll b/NucleicBroker.Tests/bin/Debug/net9.0/it/Microsoft.TestPlatform.CoreUtilities.resources.dll new file mode 100755 index 0000000..4cd8054 Binary files /dev/null and b/NucleicBroker.Tests/bin/Debug/net9.0/it/Microsoft.TestPlatform.CoreUtilities.resources.dll differ diff --git a/NucleicBroker.Tests/bin/Debug/net9.0/it/Microsoft.TestPlatform.CrossPlatEngine.resources.dll b/NucleicBroker.Tests/bin/Debug/net9.0/it/Microsoft.TestPlatform.CrossPlatEngine.resources.dll new file mode 100755 index 0000000..411d2b3 Binary files /dev/null and b/NucleicBroker.Tests/bin/Debug/net9.0/it/Microsoft.TestPlatform.CrossPlatEngine.resources.dll differ diff --git a/NucleicBroker.Tests/bin/Debug/net9.0/it/Microsoft.VisualStudio.TestPlatform.Common.resources.dll b/NucleicBroker.Tests/bin/Debug/net9.0/it/Microsoft.VisualStudio.TestPlatform.Common.resources.dll new file mode 100755 index 0000000..b13b763 Binary files /dev/null and b/NucleicBroker.Tests/bin/Debug/net9.0/it/Microsoft.VisualStudio.TestPlatform.Common.resources.dll differ diff --git a/NucleicBroker.Tests/bin/Debug/net9.0/it/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll b/NucleicBroker.Tests/bin/Debug/net9.0/it/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll new file mode 100755 index 0000000..af71519 Binary files /dev/null and b/NucleicBroker.Tests/bin/Debug/net9.0/it/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll differ diff --git a/NucleicBroker.Tests/bin/Debug/net9.0/ja/Microsoft.TestPlatform.CommunicationUtilities.resources.dll b/NucleicBroker.Tests/bin/Debug/net9.0/ja/Microsoft.TestPlatform.CommunicationUtilities.resources.dll new file mode 100755 index 0000000..7239741 Binary files /dev/null and b/NucleicBroker.Tests/bin/Debug/net9.0/ja/Microsoft.TestPlatform.CommunicationUtilities.resources.dll differ diff --git a/NucleicBroker.Tests/bin/Debug/net9.0/ja/Microsoft.TestPlatform.CoreUtilities.resources.dll b/NucleicBroker.Tests/bin/Debug/net9.0/ja/Microsoft.TestPlatform.CoreUtilities.resources.dll new file mode 100755 index 0000000..5793f35 Binary files /dev/null and b/NucleicBroker.Tests/bin/Debug/net9.0/ja/Microsoft.TestPlatform.CoreUtilities.resources.dll differ diff --git a/NucleicBroker.Tests/bin/Debug/net9.0/ja/Microsoft.TestPlatform.CrossPlatEngine.resources.dll b/NucleicBroker.Tests/bin/Debug/net9.0/ja/Microsoft.TestPlatform.CrossPlatEngine.resources.dll new file mode 100755 index 0000000..8cff118 Binary files /dev/null and b/NucleicBroker.Tests/bin/Debug/net9.0/ja/Microsoft.TestPlatform.CrossPlatEngine.resources.dll differ diff --git a/NucleicBroker.Tests/bin/Debug/net9.0/ja/Microsoft.VisualStudio.TestPlatform.Common.resources.dll b/NucleicBroker.Tests/bin/Debug/net9.0/ja/Microsoft.VisualStudio.TestPlatform.Common.resources.dll new file mode 100755 index 0000000..41f33a3 Binary files /dev/null and b/NucleicBroker.Tests/bin/Debug/net9.0/ja/Microsoft.VisualStudio.TestPlatform.Common.resources.dll differ diff --git a/NucleicBroker.Tests/bin/Debug/net9.0/ja/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll b/NucleicBroker.Tests/bin/Debug/net9.0/ja/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll new file mode 100755 index 0000000..a959dc6 Binary files /dev/null and b/NucleicBroker.Tests/bin/Debug/net9.0/ja/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll differ diff --git a/NucleicBroker.Tests/bin/Debug/net9.0/ko/Microsoft.TestPlatform.CommunicationUtilities.resources.dll b/NucleicBroker.Tests/bin/Debug/net9.0/ko/Microsoft.TestPlatform.CommunicationUtilities.resources.dll new file mode 100755 index 0000000..89b460c Binary files /dev/null and b/NucleicBroker.Tests/bin/Debug/net9.0/ko/Microsoft.TestPlatform.CommunicationUtilities.resources.dll differ diff --git a/NucleicBroker.Tests/bin/Debug/net9.0/ko/Microsoft.TestPlatform.CoreUtilities.resources.dll b/NucleicBroker.Tests/bin/Debug/net9.0/ko/Microsoft.TestPlatform.CoreUtilities.resources.dll new file mode 100755 index 0000000..357c278 Binary files /dev/null and b/NucleicBroker.Tests/bin/Debug/net9.0/ko/Microsoft.TestPlatform.CoreUtilities.resources.dll differ diff --git a/NucleicBroker.Tests/bin/Debug/net9.0/ko/Microsoft.TestPlatform.CrossPlatEngine.resources.dll b/NucleicBroker.Tests/bin/Debug/net9.0/ko/Microsoft.TestPlatform.CrossPlatEngine.resources.dll new file mode 100755 index 0000000..843f9bc Binary files /dev/null and b/NucleicBroker.Tests/bin/Debug/net9.0/ko/Microsoft.TestPlatform.CrossPlatEngine.resources.dll differ diff --git a/NucleicBroker.Tests/bin/Debug/net9.0/ko/Microsoft.VisualStudio.TestPlatform.Common.resources.dll b/NucleicBroker.Tests/bin/Debug/net9.0/ko/Microsoft.VisualStudio.TestPlatform.Common.resources.dll new file mode 100755 index 0000000..aaeb3f0 Binary files /dev/null and b/NucleicBroker.Tests/bin/Debug/net9.0/ko/Microsoft.VisualStudio.TestPlatform.Common.resources.dll differ diff --git a/NucleicBroker.Tests/bin/Debug/net9.0/ko/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll b/NucleicBroker.Tests/bin/Debug/net9.0/ko/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll new file mode 100755 index 0000000..f158708 Binary files /dev/null and b/NucleicBroker.Tests/bin/Debug/net9.0/ko/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll differ diff --git a/NucleicBroker.Tests/bin/Debug/net9.0/nucleic-brokerd b/NucleicBroker.Tests/bin/Debug/net9.0/nucleic-brokerd new file mode 100755 index 0000000..9c4dd88 Binary files /dev/null and b/NucleicBroker.Tests/bin/Debug/net9.0/nucleic-brokerd differ diff --git a/NucleicBroker.Tests/bin/Debug/net9.0/nucleic-brokerd.deps.json b/NucleicBroker.Tests/bin/Debug/net9.0/nucleic-brokerd.deps.json new file mode 100644 index 0000000..5dc1009 --- /dev/null +++ b/NucleicBroker.Tests/bin/Debug/net9.0/nucleic-brokerd.deps.json @@ -0,0 +1,23 @@ +{ + "runtimeTarget": { + "name": ".NETCoreApp,Version=v9.0", + "signature": "" + }, + "compilationOptions": {}, + "targets": { + ".NETCoreApp,Version=v9.0": { + "nucleic-brokerd/1.0.0": { + "runtime": { + "nucleic-brokerd.dll": {} + } + } + } + }, + "libraries": { + "nucleic-brokerd/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + } + } +} \ No newline at end of file diff --git a/NucleicBroker.Tests/bin/Debug/net9.0/nucleic-brokerd.dll b/NucleicBroker.Tests/bin/Debug/net9.0/nucleic-brokerd.dll new file mode 100644 index 0000000..fed88f5 Binary files /dev/null and b/NucleicBroker.Tests/bin/Debug/net9.0/nucleic-brokerd.dll differ diff --git a/NucleicBroker.Tests/bin/Debug/net9.0/nucleic-brokerd.pdb b/NucleicBroker.Tests/bin/Debug/net9.0/nucleic-brokerd.pdb new file mode 100644 index 0000000..cea259d Binary files /dev/null and b/NucleicBroker.Tests/bin/Debug/net9.0/nucleic-brokerd.pdb differ diff --git a/NucleicBroker.Tests/bin/Debug/net9.0/nucleic-brokerd.runtimeconfig.json b/NucleicBroker.Tests/bin/Debug/net9.0/nucleic-brokerd.runtimeconfig.json new file mode 100644 index 0000000..5cddbbc --- /dev/null +++ b/NucleicBroker.Tests/bin/Debug/net9.0/nucleic-brokerd.runtimeconfig.json @@ -0,0 +1,14 @@ +{ + "runtimeOptions": { + "tfm": "net9.0", + "framework": { + "name": "Microsoft.NETCore.App", + "version": "9.0.0" + }, + "configProperties": { + "System.Globalization.Invariant": true, + "System.Globalization.PredefinedCulturesOnly": true, + "System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false + } + } +} \ No newline at end of file diff --git a/NucleicBroker.Tests/bin/Debug/net9.0/pl/Microsoft.TestPlatform.CommunicationUtilities.resources.dll b/NucleicBroker.Tests/bin/Debug/net9.0/pl/Microsoft.TestPlatform.CommunicationUtilities.resources.dll new file mode 100755 index 0000000..3cd44ff Binary files /dev/null and b/NucleicBroker.Tests/bin/Debug/net9.0/pl/Microsoft.TestPlatform.CommunicationUtilities.resources.dll differ diff --git a/NucleicBroker.Tests/bin/Debug/net9.0/pl/Microsoft.TestPlatform.CoreUtilities.resources.dll b/NucleicBroker.Tests/bin/Debug/net9.0/pl/Microsoft.TestPlatform.CoreUtilities.resources.dll new file mode 100755 index 0000000..cc17f24 Binary files /dev/null and b/NucleicBroker.Tests/bin/Debug/net9.0/pl/Microsoft.TestPlatform.CoreUtilities.resources.dll differ diff --git a/NucleicBroker.Tests/bin/Debug/net9.0/pl/Microsoft.TestPlatform.CrossPlatEngine.resources.dll b/NucleicBroker.Tests/bin/Debug/net9.0/pl/Microsoft.TestPlatform.CrossPlatEngine.resources.dll new file mode 100755 index 0000000..56d009b Binary files /dev/null and b/NucleicBroker.Tests/bin/Debug/net9.0/pl/Microsoft.TestPlatform.CrossPlatEngine.resources.dll differ diff --git a/NucleicBroker.Tests/bin/Debug/net9.0/pl/Microsoft.VisualStudio.TestPlatform.Common.resources.dll b/NucleicBroker.Tests/bin/Debug/net9.0/pl/Microsoft.VisualStudio.TestPlatform.Common.resources.dll new file mode 100755 index 0000000..5bb5c00 Binary files /dev/null and b/NucleicBroker.Tests/bin/Debug/net9.0/pl/Microsoft.VisualStudio.TestPlatform.Common.resources.dll differ diff --git a/NucleicBroker.Tests/bin/Debug/net9.0/pl/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll b/NucleicBroker.Tests/bin/Debug/net9.0/pl/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll new file mode 100755 index 0000000..ef229ea Binary files /dev/null and b/NucleicBroker.Tests/bin/Debug/net9.0/pl/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll differ diff --git a/NucleicBroker.Tests/bin/Debug/net9.0/pt-BR/Microsoft.TestPlatform.CommunicationUtilities.resources.dll b/NucleicBroker.Tests/bin/Debug/net9.0/pt-BR/Microsoft.TestPlatform.CommunicationUtilities.resources.dll new file mode 100755 index 0000000..6d333ed Binary files /dev/null and b/NucleicBroker.Tests/bin/Debug/net9.0/pt-BR/Microsoft.TestPlatform.CommunicationUtilities.resources.dll differ diff --git a/NucleicBroker.Tests/bin/Debug/net9.0/pt-BR/Microsoft.TestPlatform.CoreUtilities.resources.dll b/NucleicBroker.Tests/bin/Debug/net9.0/pt-BR/Microsoft.TestPlatform.CoreUtilities.resources.dll new file mode 100755 index 0000000..de5092c Binary files /dev/null and b/NucleicBroker.Tests/bin/Debug/net9.0/pt-BR/Microsoft.TestPlatform.CoreUtilities.resources.dll differ diff --git a/NucleicBroker.Tests/bin/Debug/net9.0/pt-BR/Microsoft.TestPlatform.CrossPlatEngine.resources.dll b/NucleicBroker.Tests/bin/Debug/net9.0/pt-BR/Microsoft.TestPlatform.CrossPlatEngine.resources.dll new file mode 100755 index 0000000..df016c7 Binary files /dev/null and b/NucleicBroker.Tests/bin/Debug/net9.0/pt-BR/Microsoft.TestPlatform.CrossPlatEngine.resources.dll differ diff --git a/NucleicBroker.Tests/bin/Debug/net9.0/pt-BR/Microsoft.VisualStudio.TestPlatform.Common.resources.dll b/NucleicBroker.Tests/bin/Debug/net9.0/pt-BR/Microsoft.VisualStudio.TestPlatform.Common.resources.dll new file mode 100755 index 0000000..87366d2 Binary files /dev/null and b/NucleicBroker.Tests/bin/Debug/net9.0/pt-BR/Microsoft.VisualStudio.TestPlatform.Common.resources.dll differ diff --git a/NucleicBroker.Tests/bin/Debug/net9.0/pt-BR/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll b/NucleicBroker.Tests/bin/Debug/net9.0/pt-BR/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll new file mode 100755 index 0000000..06c0baf Binary files /dev/null and b/NucleicBroker.Tests/bin/Debug/net9.0/pt-BR/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll differ diff --git a/NucleicBroker.Tests/bin/Debug/net9.0/ru/Microsoft.TestPlatform.CommunicationUtilities.resources.dll b/NucleicBroker.Tests/bin/Debug/net9.0/ru/Microsoft.TestPlatform.CommunicationUtilities.resources.dll new file mode 100755 index 0000000..65bb33a Binary files /dev/null and b/NucleicBroker.Tests/bin/Debug/net9.0/ru/Microsoft.TestPlatform.CommunicationUtilities.resources.dll differ diff --git a/NucleicBroker.Tests/bin/Debug/net9.0/ru/Microsoft.TestPlatform.CoreUtilities.resources.dll b/NucleicBroker.Tests/bin/Debug/net9.0/ru/Microsoft.TestPlatform.CoreUtilities.resources.dll new file mode 100755 index 0000000..479e58e Binary files /dev/null and b/NucleicBroker.Tests/bin/Debug/net9.0/ru/Microsoft.TestPlatform.CoreUtilities.resources.dll differ diff --git a/NucleicBroker.Tests/bin/Debug/net9.0/ru/Microsoft.TestPlatform.CrossPlatEngine.resources.dll b/NucleicBroker.Tests/bin/Debug/net9.0/ru/Microsoft.TestPlatform.CrossPlatEngine.resources.dll new file mode 100755 index 0000000..7fb9358 Binary files /dev/null and b/NucleicBroker.Tests/bin/Debug/net9.0/ru/Microsoft.TestPlatform.CrossPlatEngine.resources.dll differ diff --git a/NucleicBroker.Tests/bin/Debug/net9.0/ru/Microsoft.VisualStudio.TestPlatform.Common.resources.dll b/NucleicBroker.Tests/bin/Debug/net9.0/ru/Microsoft.VisualStudio.TestPlatform.Common.resources.dll new file mode 100755 index 0000000..f146cd3 Binary files /dev/null and b/NucleicBroker.Tests/bin/Debug/net9.0/ru/Microsoft.VisualStudio.TestPlatform.Common.resources.dll differ diff --git a/NucleicBroker.Tests/bin/Debug/net9.0/ru/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll b/NucleicBroker.Tests/bin/Debug/net9.0/ru/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll new file mode 100755 index 0000000..11840ed Binary files /dev/null and b/NucleicBroker.Tests/bin/Debug/net9.0/ru/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll differ diff --git a/NucleicBroker.Tests/bin/Debug/net9.0/testhost.dll b/NucleicBroker.Tests/bin/Debug/net9.0/testhost.dll new file mode 100755 index 0000000..6023d9b Binary files /dev/null and b/NucleicBroker.Tests/bin/Debug/net9.0/testhost.dll differ diff --git a/NucleicBroker.Tests/bin/Debug/net9.0/tr/Microsoft.TestPlatform.CommunicationUtilities.resources.dll b/NucleicBroker.Tests/bin/Debug/net9.0/tr/Microsoft.TestPlatform.CommunicationUtilities.resources.dll new file mode 100755 index 0000000..66a78d2 Binary files /dev/null and b/NucleicBroker.Tests/bin/Debug/net9.0/tr/Microsoft.TestPlatform.CommunicationUtilities.resources.dll differ diff --git a/NucleicBroker.Tests/bin/Debug/net9.0/tr/Microsoft.TestPlatform.CoreUtilities.resources.dll b/NucleicBroker.Tests/bin/Debug/net9.0/tr/Microsoft.TestPlatform.CoreUtilities.resources.dll new file mode 100755 index 0000000..a35ce7c Binary files /dev/null and b/NucleicBroker.Tests/bin/Debug/net9.0/tr/Microsoft.TestPlatform.CoreUtilities.resources.dll differ diff --git a/NucleicBroker.Tests/bin/Debug/net9.0/tr/Microsoft.TestPlatform.CrossPlatEngine.resources.dll b/NucleicBroker.Tests/bin/Debug/net9.0/tr/Microsoft.TestPlatform.CrossPlatEngine.resources.dll new file mode 100755 index 0000000..588f20e Binary files /dev/null and b/NucleicBroker.Tests/bin/Debug/net9.0/tr/Microsoft.TestPlatform.CrossPlatEngine.resources.dll differ diff --git a/NucleicBroker.Tests/bin/Debug/net9.0/tr/Microsoft.VisualStudio.TestPlatform.Common.resources.dll b/NucleicBroker.Tests/bin/Debug/net9.0/tr/Microsoft.VisualStudio.TestPlatform.Common.resources.dll new file mode 100755 index 0000000..204c223 Binary files /dev/null and b/NucleicBroker.Tests/bin/Debug/net9.0/tr/Microsoft.VisualStudio.TestPlatform.Common.resources.dll differ diff --git a/NucleicBroker.Tests/bin/Debug/net9.0/tr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll b/NucleicBroker.Tests/bin/Debug/net9.0/tr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll new file mode 100755 index 0000000..cce1aac Binary files /dev/null and b/NucleicBroker.Tests/bin/Debug/net9.0/tr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll differ diff --git a/NucleicBroker.Tests/bin/Debug/net9.0/xunit.abstractions.dll b/NucleicBroker.Tests/bin/Debug/net9.0/xunit.abstractions.dll new file mode 100755 index 0000000..d1e90bf Binary files /dev/null and b/NucleicBroker.Tests/bin/Debug/net9.0/xunit.abstractions.dll differ diff --git a/NucleicBroker.Tests/bin/Debug/net9.0/xunit.assert.dll b/NucleicBroker.Tests/bin/Debug/net9.0/xunit.assert.dll new file mode 100755 index 0000000..8aa9a0e Binary files /dev/null and b/NucleicBroker.Tests/bin/Debug/net9.0/xunit.assert.dll differ diff --git a/NucleicBroker.Tests/bin/Debug/net9.0/xunit.core.dll b/NucleicBroker.Tests/bin/Debug/net9.0/xunit.core.dll new file mode 100755 index 0000000..6c02a16 Binary files /dev/null and b/NucleicBroker.Tests/bin/Debug/net9.0/xunit.core.dll differ diff --git a/NucleicBroker.Tests/bin/Debug/net9.0/xunit.execution.dotnet.dll b/NucleicBroker.Tests/bin/Debug/net9.0/xunit.execution.dotnet.dll new file mode 100755 index 0000000..5613a34 Binary files /dev/null and b/NucleicBroker.Tests/bin/Debug/net9.0/xunit.execution.dotnet.dll differ diff --git a/NucleicBroker.Tests/bin/Debug/net9.0/xunit.runner.reporters.netcoreapp10.dll b/NucleicBroker.Tests/bin/Debug/net9.0/xunit.runner.reporters.netcoreapp10.dll new file mode 100755 index 0000000..ca76232 Binary files /dev/null and b/NucleicBroker.Tests/bin/Debug/net9.0/xunit.runner.reporters.netcoreapp10.dll differ diff --git a/NucleicBroker.Tests/bin/Debug/net9.0/xunit.runner.utility.netcoreapp10.dll b/NucleicBroker.Tests/bin/Debug/net9.0/xunit.runner.utility.netcoreapp10.dll new file mode 100755 index 0000000..c247a4e Binary files /dev/null and b/NucleicBroker.Tests/bin/Debug/net9.0/xunit.runner.utility.netcoreapp10.dll differ diff --git a/NucleicBroker.Tests/bin/Debug/net9.0/xunit.runner.visualstudio.testadapter.dll b/NucleicBroker.Tests/bin/Debug/net9.0/xunit.runner.visualstudio.testadapter.dll new file mode 100755 index 0000000..2c4b812 Binary files /dev/null and b/NucleicBroker.Tests/bin/Debug/net9.0/xunit.runner.visualstudio.testadapter.dll differ diff --git a/NucleicBroker.Tests/bin/Debug/net9.0/zh-Hans/Microsoft.TestPlatform.CommunicationUtilities.resources.dll b/NucleicBroker.Tests/bin/Debug/net9.0/zh-Hans/Microsoft.TestPlatform.CommunicationUtilities.resources.dll new file mode 100755 index 0000000..fef8bc0 Binary files /dev/null and b/NucleicBroker.Tests/bin/Debug/net9.0/zh-Hans/Microsoft.TestPlatform.CommunicationUtilities.resources.dll differ diff --git a/NucleicBroker.Tests/bin/Debug/net9.0/zh-Hans/Microsoft.TestPlatform.CoreUtilities.resources.dll b/NucleicBroker.Tests/bin/Debug/net9.0/zh-Hans/Microsoft.TestPlatform.CoreUtilities.resources.dll new file mode 100755 index 0000000..5a3ae3f Binary files /dev/null and b/NucleicBroker.Tests/bin/Debug/net9.0/zh-Hans/Microsoft.TestPlatform.CoreUtilities.resources.dll differ diff --git a/NucleicBroker.Tests/bin/Debug/net9.0/zh-Hans/Microsoft.TestPlatform.CrossPlatEngine.resources.dll b/NucleicBroker.Tests/bin/Debug/net9.0/zh-Hans/Microsoft.TestPlatform.CrossPlatEngine.resources.dll new file mode 100755 index 0000000..95e6929 Binary files /dev/null and b/NucleicBroker.Tests/bin/Debug/net9.0/zh-Hans/Microsoft.TestPlatform.CrossPlatEngine.resources.dll differ diff --git a/NucleicBroker.Tests/bin/Debug/net9.0/zh-Hans/Microsoft.VisualStudio.TestPlatform.Common.resources.dll b/NucleicBroker.Tests/bin/Debug/net9.0/zh-Hans/Microsoft.VisualStudio.TestPlatform.Common.resources.dll new file mode 100755 index 0000000..ae8b0fb Binary files /dev/null and b/NucleicBroker.Tests/bin/Debug/net9.0/zh-Hans/Microsoft.VisualStudio.TestPlatform.Common.resources.dll differ diff --git a/NucleicBroker.Tests/bin/Debug/net9.0/zh-Hans/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll b/NucleicBroker.Tests/bin/Debug/net9.0/zh-Hans/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll new file mode 100755 index 0000000..af4c95a Binary files /dev/null and b/NucleicBroker.Tests/bin/Debug/net9.0/zh-Hans/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll differ diff --git a/NucleicBroker.Tests/bin/Debug/net9.0/zh-Hant/Microsoft.TestPlatform.CommunicationUtilities.resources.dll b/NucleicBroker.Tests/bin/Debug/net9.0/zh-Hant/Microsoft.TestPlatform.CommunicationUtilities.resources.dll new file mode 100755 index 0000000..bd707dd Binary files /dev/null and b/NucleicBroker.Tests/bin/Debug/net9.0/zh-Hant/Microsoft.TestPlatform.CommunicationUtilities.resources.dll differ diff --git a/NucleicBroker.Tests/bin/Debug/net9.0/zh-Hant/Microsoft.TestPlatform.CoreUtilities.resources.dll b/NucleicBroker.Tests/bin/Debug/net9.0/zh-Hant/Microsoft.TestPlatform.CoreUtilities.resources.dll new file mode 100755 index 0000000..9271175 Binary files /dev/null and b/NucleicBroker.Tests/bin/Debug/net9.0/zh-Hant/Microsoft.TestPlatform.CoreUtilities.resources.dll differ diff --git a/NucleicBroker.Tests/bin/Debug/net9.0/zh-Hant/Microsoft.TestPlatform.CrossPlatEngine.resources.dll b/NucleicBroker.Tests/bin/Debug/net9.0/zh-Hant/Microsoft.TestPlatform.CrossPlatEngine.resources.dll new file mode 100755 index 0000000..b1e1340 Binary files /dev/null and b/NucleicBroker.Tests/bin/Debug/net9.0/zh-Hant/Microsoft.TestPlatform.CrossPlatEngine.resources.dll differ diff --git a/NucleicBroker.Tests/bin/Debug/net9.0/zh-Hant/Microsoft.VisualStudio.TestPlatform.Common.resources.dll b/NucleicBroker.Tests/bin/Debug/net9.0/zh-Hant/Microsoft.VisualStudio.TestPlatform.Common.resources.dll new file mode 100755 index 0000000..577aa5a Binary files /dev/null and b/NucleicBroker.Tests/bin/Debug/net9.0/zh-Hant/Microsoft.VisualStudio.TestPlatform.Common.resources.dll differ diff --git a/NucleicBroker.Tests/bin/Debug/net9.0/zh-Hant/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll b/NucleicBroker.Tests/bin/Debug/net9.0/zh-Hant/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll new file mode 100755 index 0000000..c04de36 Binary files /dev/null and b/NucleicBroker.Tests/bin/Debug/net9.0/zh-Hant/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll differ diff --git a/NucleicBroker.Tests/obj/Debug/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs b/NucleicBroker.Tests/obj/Debug/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs new file mode 100644 index 0000000..feda5e9 --- /dev/null +++ b/NucleicBroker.Tests/obj/Debug/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs @@ -0,0 +1,4 @@ +// +using System; +using System.Reflection; +[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v9.0", FrameworkDisplayName = ".NET 9.0")] diff --git a/NucleicBroker.Tests/obj/Debug/net9.0/NucleicB.1C1D6F9B.Up2Date b/NucleicBroker.Tests/obj/Debug/net9.0/NucleicB.1C1D6F9B.Up2Date new file mode 100644 index 0000000..e69de29 diff --git a/NucleicBroker.Tests/obj/Debug/net9.0/NucleicBroker.Tests.AssemblyInfo.cs b/NucleicBroker.Tests/obj/Debug/net9.0/NucleicBroker.Tests.AssemblyInfo.cs new file mode 100644 index 0000000..52aa669 --- /dev/null +++ b/NucleicBroker.Tests/obj/Debug/net9.0/NucleicBroker.Tests.AssemblyInfo.cs @@ -0,0 +1,22 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +using System; +using System.Reflection; + +[assembly: System.Reflection.AssemblyCompanyAttribute("NucleicBroker.Tests")] +[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] +[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+20c2c31cf39c17bf53c32ecdaf353dd361151b0c")] +[assembly: System.Reflection.AssemblyProductAttribute("NucleicBroker.Tests")] +[assembly: System.Reflection.AssemblyTitleAttribute("NucleicBroker.Tests")] +[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] + +// Generated by the MSBuild WriteCodeFragment class. + diff --git a/NucleicBroker.Tests/obj/Debug/net9.0/NucleicBroker.Tests.AssemblyInfoInputs.cache b/NucleicBroker.Tests/obj/Debug/net9.0/NucleicBroker.Tests.AssemblyInfoInputs.cache new file mode 100644 index 0000000..509b582 --- /dev/null +++ b/NucleicBroker.Tests/obj/Debug/net9.0/NucleicBroker.Tests.AssemblyInfoInputs.cache @@ -0,0 +1 @@ +b0042bbf6359113cce031f3067f95b1b78fc0607d17f2586d61955b4083a5984 diff --git a/NucleicBroker.Tests/obj/Debug/net9.0/NucleicBroker.Tests.GeneratedMSBuildEditorConfig.editorconfig b/NucleicBroker.Tests/obj/Debug/net9.0/NucleicBroker.Tests.GeneratedMSBuildEditorConfig.editorconfig new file mode 100644 index 0000000..56de728 --- /dev/null +++ b/NucleicBroker.Tests/obj/Debug/net9.0/NucleicBroker.Tests.GeneratedMSBuildEditorConfig.editorconfig @@ -0,0 +1,15 @@ +is_global = true +build_property.TargetFramework = net9.0 +build_property.TargetPlatformMinVersion = +build_property.UsingMicrosoftNETSdkWeb = +build_property.ProjectTypeGuids = +build_property.InvariantGlobalization = true +build_property.PlatformNeutralAssembly = +build_property.EnforceExtendedAnalyzerRules = +build_property._SupportedPlatformList = Linux,macOS,Windows +build_property.RootNamespace = NucleicBroker.Tests +build_property.ProjectDir = /Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/ +build_property.EnableComHosting = +build_property.EnableGeneratedComInterfaceComImportInterop = +build_property.EffectiveAnalysisLevelStyle = 9.0 +build_property.EnableCodeStyleSeverity = diff --git a/NucleicBroker.Tests/obj/Debug/net9.0/NucleicBroker.Tests.GlobalUsings.g.cs b/NucleicBroker.Tests/obj/Debug/net9.0/NucleicBroker.Tests.GlobalUsings.g.cs new file mode 100644 index 0000000..2cd3d38 --- /dev/null +++ b/NucleicBroker.Tests/obj/Debug/net9.0/NucleicBroker.Tests.GlobalUsings.g.cs @@ -0,0 +1,9 @@ +// +global using global::System; +global using global::System.Collections.Generic; +global using global::System.IO; +global using global::System.Linq; +global using global::System.Net.Http; +global using global::System.Threading; +global using global::System.Threading.Tasks; +global using global::Xunit; diff --git a/NucleicBroker.Tests/obj/Debug/net9.0/NucleicBroker.Tests.assets.cache b/NucleicBroker.Tests/obj/Debug/net9.0/NucleicBroker.Tests.assets.cache new file mode 100644 index 0000000..86a8789 Binary files /dev/null and b/NucleicBroker.Tests/obj/Debug/net9.0/NucleicBroker.Tests.assets.cache differ diff --git a/NucleicBroker.Tests/obj/Debug/net9.0/NucleicBroker.Tests.csproj.AssemblyReference.cache b/NucleicBroker.Tests/obj/Debug/net9.0/NucleicBroker.Tests.csproj.AssemblyReference.cache new file mode 100644 index 0000000..0229d48 Binary files /dev/null and b/NucleicBroker.Tests/obj/Debug/net9.0/NucleicBroker.Tests.csproj.AssemblyReference.cache differ diff --git a/NucleicBroker.Tests/obj/Debug/net9.0/NucleicBroker.Tests.csproj.CoreCompileInputs.cache b/NucleicBroker.Tests/obj/Debug/net9.0/NucleicBroker.Tests.csproj.CoreCompileInputs.cache new file mode 100644 index 0000000..71d1899 --- /dev/null +++ b/NucleicBroker.Tests/obj/Debug/net9.0/NucleicBroker.Tests.csproj.CoreCompileInputs.cache @@ -0,0 +1 @@ +4a3a68f45b5a572f3f439d4999a45246c3b734173f4b9faeb1e406903a85dd62 diff --git a/NucleicBroker.Tests/obj/Debug/net9.0/NucleicBroker.Tests.csproj.FileListAbsolute.txt b/NucleicBroker.Tests/obj/Debug/net9.0/NucleicBroker.Tests.csproj.FileListAbsolute.txt new file mode 100644 index 0000000..3f72bef --- /dev/null +++ b/NucleicBroker.Tests/obj/Debug/net9.0/NucleicBroker.Tests.csproj.FileListAbsolute.txt @@ -0,0 +1,104 @@ +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/bin/Debug/net9.0/.msCoverageSourceRootsMapping_NucleicBroker.Tests +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/obj/Debug/net9.0/NucleicBroker.Tests.csproj.AssemblyReference.cache +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/obj/Debug/net9.0/NucleicBroker.Tests.GeneratedMSBuildEditorConfig.editorconfig +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/obj/Debug/net9.0/NucleicBroker.Tests.AssemblyInfoInputs.cache +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/obj/Debug/net9.0/NucleicBroker.Tests.AssemblyInfo.cs +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/obj/Debug/net9.0/NucleicBroker.Tests.csproj.CoreCompileInputs.cache +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/obj/Debug/net9.0/NucleicBroker.Tests.sourcelink.json +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/bin/Debug/net9.0/nucleic-brokerd.deps.json +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/bin/Debug/net9.0/nucleic-brokerd.runtimeconfig.json +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/bin/Debug/net9.0/nucleic-brokerd +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/bin/Debug/net9.0/xunit.runner.visualstudio.testadapter.dll +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/bin/Debug/net9.0/xunit.runner.reporters.netcoreapp10.dll +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/bin/Debug/net9.0/xunit.runner.utility.netcoreapp10.dll +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/bin/Debug/net9.0/NucleicBroker.Tests.deps.json +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/bin/Debug/net9.0/NucleicBroker.Tests.runtimeconfig.json +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/bin/Debug/net9.0/NucleicBroker.Tests.dll +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/bin/Debug/net9.0/NucleicBroker.Tests.pdb +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/bin/Debug/net9.0/Microsoft.VisualStudio.CodeCoverage.Shim.dll +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/bin/Debug/net9.0/Microsoft.TestPlatform.CoreUtilities.dll +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/bin/Debug/net9.0/Microsoft.TestPlatform.PlatformAbstractions.dll +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/bin/Debug/net9.0/Microsoft.VisualStudio.TestPlatform.ObjectModel.dll +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/bin/Debug/net9.0/Microsoft.TestPlatform.CommunicationUtilities.dll +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/bin/Debug/net9.0/Microsoft.TestPlatform.CrossPlatEngine.dll +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/bin/Debug/net9.0/Microsoft.TestPlatform.Utilities.dll +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/bin/Debug/net9.0/Microsoft.VisualStudio.TestPlatform.Common.dll +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/bin/Debug/net9.0/testhost.dll +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/bin/Debug/net9.0/Newtonsoft.Json.dll +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/bin/Debug/net9.0/xunit.abstractions.dll +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/bin/Debug/net9.0/xunit.assert.dll +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/bin/Debug/net9.0/xunit.core.dll +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/bin/Debug/net9.0/xunit.execution.dotnet.dll +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/bin/Debug/net9.0/cs/Microsoft.TestPlatform.CoreUtilities.resources.dll +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/bin/Debug/net9.0/cs/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/bin/Debug/net9.0/de/Microsoft.TestPlatform.CoreUtilities.resources.dll +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/bin/Debug/net9.0/de/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/bin/Debug/net9.0/es/Microsoft.TestPlatform.CoreUtilities.resources.dll +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/bin/Debug/net9.0/es/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/bin/Debug/net9.0/fr/Microsoft.TestPlatform.CoreUtilities.resources.dll +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/bin/Debug/net9.0/fr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/bin/Debug/net9.0/it/Microsoft.TestPlatform.CoreUtilities.resources.dll +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/bin/Debug/net9.0/it/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/bin/Debug/net9.0/ja/Microsoft.TestPlatform.CoreUtilities.resources.dll +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/bin/Debug/net9.0/ja/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/bin/Debug/net9.0/ko/Microsoft.TestPlatform.CoreUtilities.resources.dll +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/bin/Debug/net9.0/ko/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/bin/Debug/net9.0/pl/Microsoft.TestPlatform.CoreUtilities.resources.dll +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/bin/Debug/net9.0/pl/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/bin/Debug/net9.0/pt-BR/Microsoft.TestPlatform.CoreUtilities.resources.dll +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/bin/Debug/net9.0/pt-BR/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/bin/Debug/net9.0/ru/Microsoft.TestPlatform.CoreUtilities.resources.dll +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/bin/Debug/net9.0/ru/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/bin/Debug/net9.0/tr/Microsoft.TestPlatform.CoreUtilities.resources.dll +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/bin/Debug/net9.0/tr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/bin/Debug/net9.0/zh-Hans/Microsoft.TestPlatform.CoreUtilities.resources.dll +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/bin/Debug/net9.0/zh-Hans/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/bin/Debug/net9.0/zh-Hant/Microsoft.TestPlatform.CoreUtilities.resources.dll +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/bin/Debug/net9.0/zh-Hant/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/bin/Debug/net9.0/cs/Microsoft.TestPlatform.CommunicationUtilities.resources.dll +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/bin/Debug/net9.0/cs/Microsoft.TestPlatform.CrossPlatEngine.resources.dll +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/bin/Debug/net9.0/cs/Microsoft.VisualStudio.TestPlatform.Common.resources.dll +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/bin/Debug/net9.0/de/Microsoft.TestPlatform.CommunicationUtilities.resources.dll +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/bin/Debug/net9.0/de/Microsoft.TestPlatform.CrossPlatEngine.resources.dll +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/bin/Debug/net9.0/de/Microsoft.VisualStudio.TestPlatform.Common.resources.dll +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/bin/Debug/net9.0/es/Microsoft.TestPlatform.CommunicationUtilities.resources.dll +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/bin/Debug/net9.0/es/Microsoft.TestPlatform.CrossPlatEngine.resources.dll +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/bin/Debug/net9.0/es/Microsoft.VisualStudio.TestPlatform.Common.resources.dll +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/bin/Debug/net9.0/fr/Microsoft.TestPlatform.CommunicationUtilities.resources.dll +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/bin/Debug/net9.0/fr/Microsoft.TestPlatform.CrossPlatEngine.resources.dll +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/bin/Debug/net9.0/fr/Microsoft.VisualStudio.TestPlatform.Common.resources.dll +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/bin/Debug/net9.0/it/Microsoft.TestPlatform.CommunicationUtilities.resources.dll +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/bin/Debug/net9.0/it/Microsoft.TestPlatform.CrossPlatEngine.resources.dll +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/bin/Debug/net9.0/it/Microsoft.VisualStudio.TestPlatform.Common.resources.dll +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/bin/Debug/net9.0/ja/Microsoft.TestPlatform.CommunicationUtilities.resources.dll +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/bin/Debug/net9.0/ja/Microsoft.TestPlatform.CrossPlatEngine.resources.dll +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/bin/Debug/net9.0/ja/Microsoft.VisualStudio.TestPlatform.Common.resources.dll +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/bin/Debug/net9.0/ko/Microsoft.TestPlatform.CommunicationUtilities.resources.dll +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/bin/Debug/net9.0/ko/Microsoft.TestPlatform.CrossPlatEngine.resources.dll +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/bin/Debug/net9.0/ko/Microsoft.VisualStudio.TestPlatform.Common.resources.dll +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/bin/Debug/net9.0/pl/Microsoft.TestPlatform.CommunicationUtilities.resources.dll +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/bin/Debug/net9.0/pl/Microsoft.TestPlatform.CrossPlatEngine.resources.dll +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/bin/Debug/net9.0/pl/Microsoft.VisualStudio.TestPlatform.Common.resources.dll +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/bin/Debug/net9.0/pt-BR/Microsoft.TestPlatform.CommunicationUtilities.resources.dll +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/bin/Debug/net9.0/pt-BR/Microsoft.TestPlatform.CrossPlatEngine.resources.dll +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/bin/Debug/net9.0/pt-BR/Microsoft.VisualStudio.TestPlatform.Common.resources.dll +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/bin/Debug/net9.0/ru/Microsoft.TestPlatform.CommunicationUtilities.resources.dll +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/bin/Debug/net9.0/ru/Microsoft.TestPlatform.CrossPlatEngine.resources.dll +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/bin/Debug/net9.0/ru/Microsoft.VisualStudio.TestPlatform.Common.resources.dll +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/bin/Debug/net9.0/tr/Microsoft.TestPlatform.CommunicationUtilities.resources.dll +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/bin/Debug/net9.0/tr/Microsoft.TestPlatform.CrossPlatEngine.resources.dll +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/bin/Debug/net9.0/tr/Microsoft.VisualStudio.TestPlatform.Common.resources.dll +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/bin/Debug/net9.0/zh-Hans/Microsoft.TestPlatform.CommunicationUtilities.resources.dll +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/bin/Debug/net9.0/zh-Hans/Microsoft.TestPlatform.CrossPlatEngine.resources.dll +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/bin/Debug/net9.0/zh-Hans/Microsoft.VisualStudio.TestPlatform.Common.resources.dll +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/bin/Debug/net9.0/zh-Hant/Microsoft.TestPlatform.CommunicationUtilities.resources.dll +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/bin/Debug/net9.0/zh-Hant/Microsoft.TestPlatform.CrossPlatEngine.resources.dll +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/bin/Debug/net9.0/zh-Hant/Microsoft.VisualStudio.TestPlatform.Common.resources.dll +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/bin/Debug/net9.0/nucleic-brokerd.dll +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/bin/Debug/net9.0/nucleic-brokerd.pdb +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/obj/Debug/net9.0/NucleicB.1C1D6F9B.Up2Date +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/obj/Debug/net9.0/NucleicBroker.Tests.dll +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/obj/Debug/net9.0/refint/NucleicBroker.Tests.dll +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/obj/Debug/net9.0/NucleicBroker.Tests.pdb +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/obj/Debug/net9.0/NucleicBroker.Tests.genruntimeconfig.cache +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/obj/Debug/net9.0/ref/NucleicBroker.Tests.dll diff --git a/NucleicBroker.Tests/obj/Debug/net9.0/NucleicBroker.Tests.dll b/NucleicBroker.Tests/obj/Debug/net9.0/NucleicBroker.Tests.dll new file mode 100644 index 0000000..fa43941 Binary files /dev/null and b/NucleicBroker.Tests/obj/Debug/net9.0/NucleicBroker.Tests.dll differ diff --git a/NucleicBroker.Tests/obj/Debug/net9.0/NucleicBroker.Tests.genruntimeconfig.cache b/NucleicBroker.Tests/obj/Debug/net9.0/NucleicBroker.Tests.genruntimeconfig.cache new file mode 100644 index 0000000..01e1f2b --- /dev/null +++ b/NucleicBroker.Tests/obj/Debug/net9.0/NucleicBroker.Tests.genruntimeconfig.cache @@ -0,0 +1 @@ +84a73467c7edd3f4bda66fa8b74586c26e27fe43aa76e139ccaacee32cbb4458 diff --git a/NucleicBroker.Tests/obj/Debug/net9.0/NucleicBroker.Tests.pdb b/NucleicBroker.Tests/obj/Debug/net9.0/NucleicBroker.Tests.pdb new file mode 100644 index 0000000..1a6539c Binary files /dev/null and b/NucleicBroker.Tests/obj/Debug/net9.0/NucleicBroker.Tests.pdb differ diff --git a/NucleicBroker.Tests/obj/Debug/net9.0/NucleicBroker.Tests.sourcelink.json b/NucleicBroker.Tests/obj/Debug/net9.0/NucleicBroker.Tests.sourcelink.json new file mode 100644 index 0000000..b5b58d8 --- /dev/null +++ b/NucleicBroker.Tests/obj/Debug/net9.0/NucleicBroker.Tests.sourcelink.json @@ -0,0 +1 @@ +{"documents":{"/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/*":"https://raw.githubusercontent.com/abkslm/nucleic/20c2c31cf39c17bf53c32ecdaf353dd361151b0c/*"}} \ No newline at end of file diff --git a/NucleicBroker.Tests/obj/Debug/net9.0/ref/NucleicBroker.Tests.dll b/NucleicBroker.Tests/obj/Debug/net9.0/ref/NucleicBroker.Tests.dll new file mode 100644 index 0000000..3afb9c3 Binary files /dev/null and b/NucleicBroker.Tests/obj/Debug/net9.0/ref/NucleicBroker.Tests.dll differ diff --git a/NucleicBroker.Tests/obj/Debug/net9.0/refint/NucleicBroker.Tests.dll b/NucleicBroker.Tests/obj/Debug/net9.0/refint/NucleicBroker.Tests.dll new file mode 100644 index 0000000..3afb9c3 Binary files /dev/null and b/NucleicBroker.Tests/obj/Debug/net9.0/refint/NucleicBroker.Tests.dll differ diff --git a/NucleicBroker.Tests/obj/NucleicBroker.Tests.csproj.nuget.dgspec.json b/NucleicBroker.Tests/obj/NucleicBroker.Tests.csproj.nuget.dgspec.json new file mode 100644 index 0000000..1ec59c6 --- /dev/null +++ b/NucleicBroker.Tests/obj/NucleicBroker.Tests.csproj.nuget.dgspec.json @@ -0,0 +1,144 @@ +{ + "format": 1, + "restore": { + "/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/NucleicBroker.Tests.csproj": {} + }, + "projects": { + "/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/NucleicBroker.Tests.csproj": { + "version": "1.0.0", + "restore": { + "projectUniqueName": "/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/NucleicBroker.Tests.csproj", + "projectName": "NucleicBroker.Tests", + "projectPath": "/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/NucleicBroker.Tests.csproj", + "packagesPath": "/Users/blakeslee/Library/Application Support/Nucleic/sessions/704B73C5-6D1C-460E-869C-21B3914B2CE4/claude-home/.nuget/packages/", + "outputPath": "/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/obj/", + "projectStyle": "PackageReference", + "configFilePaths": [ + "/Users/blakeslee/Library/Application Support/Nucleic/sessions/704B73C5-6D1C-460E-869C-21B3914B2CE4/claude-home/.nuget/NuGet/NuGet.Config" + ], + "originalTargetFrameworks": [ + "net9.0" + ], + "sources": { + "https://api.nuget.org/v3/index.json": {} + }, + "frameworks": { + "net9.0": { + "targetAlias": "net9.0", + "projectReferences": { + "/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker/NucleicBroker.csproj": { + "projectPath": "/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker/NucleicBroker.csproj" + } + } + } + }, + "warningProperties": { + "warnAsError": [ + "NU1605" + ] + }, + "restoreAuditProperties": { + "enableAudit": "true", + "auditLevel": "low", + "auditMode": "direct" + }, + "SdkAnalysisLevel": "9.0.300" + }, + "frameworks": { + "net9.0": { + "targetAlias": "net9.0", + "dependencies": { + "Microsoft.NET.Test.Sdk": { + "target": "Package", + "version": "[17.12.0, )" + }, + "xunit": { + "target": "Package", + "version": "[2.9.2, )" + }, + "xunit.runner.visualstudio": { + "target": "Package", + "version": "[2.8.2, )" + } + }, + "imports": [ + "net461", + "net462", + "net47", + "net471", + "net472", + "net48", + "net481" + ], + "assetTargetFallback": true, + "warn": true, + "frameworkReferences": { + "Microsoft.NETCore.App": { + "privateAssets": "all" + } + }, + "runtimeIdentifierGraphPath": "/Users/blakeslee/Library/Application Support/Nucleic/sessions/704B73C5-6D1C-460E-869C-21B3914B2CE4/claude-home/.dotnet/sdk/9.0.316/PortableRuntimeIdentifierGraph.json" + } + } + }, + "/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker/NucleicBroker.csproj": { + "version": "1.0.0", + "restore": { + "projectUniqueName": "/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker/NucleicBroker.csproj", + "projectName": "nucleic-brokerd", + "projectPath": "/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker/NucleicBroker.csproj", + "packagesPath": "/Users/blakeslee/Library/Application Support/Nucleic/sessions/704B73C5-6D1C-460E-869C-21B3914B2CE4/claude-home/.nuget/packages/", + "outputPath": "/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker/obj/", + "projectStyle": "PackageReference", + "configFilePaths": [ + "/Users/blakeslee/Library/Application Support/Nucleic/sessions/704B73C5-6D1C-460E-869C-21B3914B2CE4/claude-home/.nuget/NuGet/NuGet.Config" + ], + "originalTargetFrameworks": [ + "net9.0" + ], + "sources": { + "https://api.nuget.org/v3/index.json": {} + }, + "frameworks": { + "net9.0": { + "targetAlias": "net9.0", + "projectReferences": {} + } + }, + "warningProperties": { + "warnAsError": [ + "NU1605" + ] + }, + "restoreAuditProperties": { + "enableAudit": "true", + "auditLevel": "low", + "auditMode": "direct" + }, + "SdkAnalysisLevel": "9.0.300" + }, + "frameworks": { + "net9.0": { + "targetAlias": "net9.0", + "imports": [ + "net461", + "net462", + "net47", + "net471", + "net472", + "net48", + "net481" + ], + "assetTargetFallback": true, + "warn": true, + "frameworkReferences": { + "Microsoft.NETCore.App": { + "privateAssets": "all" + } + }, + "runtimeIdentifierGraphPath": "/Users/blakeslee/Library/Application Support/Nucleic/sessions/704B73C5-6D1C-460E-869C-21B3914B2CE4/claude-home/.dotnet/sdk/9.0.316/PortableRuntimeIdentifierGraph.json" + } + } + } + } +} \ No newline at end of file diff --git a/NucleicBroker.Tests/obj/NucleicBroker.Tests.csproj.nuget.g.props b/NucleicBroker.Tests/obj/NucleicBroker.Tests.csproj.nuget.g.props new file mode 100644 index 0000000..73e6af6 --- /dev/null +++ b/NucleicBroker.Tests/obj/NucleicBroker.Tests.csproj.nuget.g.props @@ -0,0 +1,25 @@ + + + + True + NuGet + $(MSBuildThisFileDirectory)project.assets.json + /Users/blakeslee/Library/Application Support/Nucleic/sessions/704B73C5-6D1C-460E-869C-21B3914B2CE4/claude-home/.nuget/packages/ + /Users/blakeslee/Library/Application Support/Nucleic/sessions/704B73C5-6D1C-460E-869C-21B3914B2CE4/claude-home/.nuget/packages/ + PackageReference + 6.14.3 + + + + + + + + + + + + + /Users/blakeslee/Library/Application Support/Nucleic/sessions/704B73C5-6D1C-460E-869C-21B3914B2CE4/claude-home/.nuget/packages/xunit.analyzers/1.16.0 + + \ No newline at end of file diff --git a/NucleicBroker.Tests/obj/NucleicBroker.Tests.csproj.nuget.g.targets b/NucleicBroker.Tests/obj/NucleicBroker.Tests.csproj.nuget.g.targets new file mode 100644 index 0000000..a6624a6 --- /dev/null +++ b/NucleicBroker.Tests/obj/NucleicBroker.Tests.csproj.nuget.g.targets @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/NucleicBroker.Tests/obj/project.assets.json b/NucleicBroker.Tests/obj/project.assets.json new file mode 100644 index 0000000..241738e --- /dev/null +++ b/NucleicBroker.Tests/obj/project.assets.json @@ -0,0 +1,964 @@ +{ + "version": 3, + "targets": { + "net9.0": { + "Microsoft.CodeCoverage/17.12.0": { + "type": "package", + "compile": { + "lib/netcoreapp3.1/Microsoft.VisualStudio.CodeCoverage.Shim.dll": {} + }, + "runtime": { + "lib/netcoreapp3.1/Microsoft.VisualStudio.CodeCoverage.Shim.dll": {} + }, + "build": { + "build/netstandard2.0/Microsoft.CodeCoverage.props": {}, + "build/netstandard2.0/Microsoft.CodeCoverage.targets": {} + } + }, + "Microsoft.NET.Test.Sdk/17.12.0": { + "type": "package", + "dependencies": { + "Microsoft.CodeCoverage": "17.12.0", + "Microsoft.TestPlatform.TestHost": "17.12.0" + }, + "compile": { + "lib/netcoreapp3.1/_._": {} + }, + "runtime": { + "lib/netcoreapp3.1/_._": {} + }, + "build": { + "build/netcoreapp3.1/Microsoft.NET.Test.Sdk.props": {}, + "build/netcoreapp3.1/Microsoft.NET.Test.Sdk.targets": {} + }, + "buildMultiTargeting": { + "buildMultiTargeting/Microsoft.NET.Test.Sdk.props": {} + } + }, + "Microsoft.TestPlatform.ObjectModel/17.12.0": { + "type": "package", + "dependencies": { + "System.Reflection.Metadata": "1.6.0" + }, + "compile": { + "lib/netcoreapp3.1/Microsoft.TestPlatform.CoreUtilities.dll": {}, + "lib/netcoreapp3.1/Microsoft.TestPlatform.PlatformAbstractions.dll": {}, + "lib/netcoreapp3.1/Microsoft.VisualStudio.TestPlatform.ObjectModel.dll": {} + }, + "runtime": { + "lib/netcoreapp3.1/Microsoft.TestPlatform.CoreUtilities.dll": {}, + "lib/netcoreapp3.1/Microsoft.TestPlatform.PlatformAbstractions.dll": {}, + "lib/netcoreapp3.1/Microsoft.VisualStudio.TestPlatform.ObjectModel.dll": {} + }, + "resource": { + "lib/netcoreapp3.1/cs/Microsoft.TestPlatform.CoreUtilities.resources.dll": { + "locale": "cs" + }, + "lib/netcoreapp3.1/cs/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { + "locale": "cs" + }, + "lib/netcoreapp3.1/de/Microsoft.TestPlatform.CoreUtilities.resources.dll": { + "locale": "de" + }, + "lib/netcoreapp3.1/de/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { + "locale": "de" + }, + "lib/netcoreapp3.1/es/Microsoft.TestPlatform.CoreUtilities.resources.dll": { + "locale": "es" + }, + "lib/netcoreapp3.1/es/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { + "locale": "es" + }, + "lib/netcoreapp3.1/fr/Microsoft.TestPlatform.CoreUtilities.resources.dll": { + "locale": "fr" + }, + "lib/netcoreapp3.1/fr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { + "locale": "fr" + }, + "lib/netcoreapp3.1/it/Microsoft.TestPlatform.CoreUtilities.resources.dll": { + "locale": "it" + }, + "lib/netcoreapp3.1/it/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { + "locale": "it" + }, + "lib/netcoreapp3.1/ja/Microsoft.TestPlatform.CoreUtilities.resources.dll": { + "locale": "ja" + }, + "lib/netcoreapp3.1/ja/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { + "locale": "ja" + }, + "lib/netcoreapp3.1/ko/Microsoft.TestPlatform.CoreUtilities.resources.dll": { + "locale": "ko" + }, + "lib/netcoreapp3.1/ko/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { + "locale": "ko" + }, + "lib/netcoreapp3.1/pl/Microsoft.TestPlatform.CoreUtilities.resources.dll": { + "locale": "pl" + }, + "lib/netcoreapp3.1/pl/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { + "locale": "pl" + }, + "lib/netcoreapp3.1/pt-BR/Microsoft.TestPlatform.CoreUtilities.resources.dll": { + "locale": "pt-BR" + }, + "lib/netcoreapp3.1/pt-BR/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { + "locale": "pt-BR" + }, + "lib/netcoreapp3.1/ru/Microsoft.TestPlatform.CoreUtilities.resources.dll": { + "locale": "ru" + }, + "lib/netcoreapp3.1/ru/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { + "locale": "ru" + }, + "lib/netcoreapp3.1/tr/Microsoft.TestPlatform.CoreUtilities.resources.dll": { + "locale": "tr" + }, + "lib/netcoreapp3.1/tr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { + "locale": "tr" + }, + "lib/netcoreapp3.1/zh-Hans/Microsoft.TestPlatform.CoreUtilities.resources.dll": { + "locale": "zh-Hans" + }, + "lib/netcoreapp3.1/zh-Hans/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { + "locale": "zh-Hans" + }, + "lib/netcoreapp3.1/zh-Hant/Microsoft.TestPlatform.CoreUtilities.resources.dll": { + "locale": "zh-Hant" + }, + "lib/netcoreapp3.1/zh-Hant/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { + "locale": "zh-Hant" + } + } + }, + "Microsoft.TestPlatform.TestHost/17.12.0": { + "type": "package", + "dependencies": { + "Microsoft.TestPlatform.ObjectModel": "17.12.0", + "Newtonsoft.Json": "13.0.1" + }, + "compile": { + "lib/netcoreapp3.1/Microsoft.TestPlatform.CommunicationUtilities.dll": {}, + "lib/netcoreapp3.1/Microsoft.TestPlatform.CoreUtilities.dll": {}, + "lib/netcoreapp3.1/Microsoft.TestPlatform.CrossPlatEngine.dll": {}, + "lib/netcoreapp3.1/Microsoft.TestPlatform.PlatformAbstractions.dll": {}, + "lib/netcoreapp3.1/Microsoft.TestPlatform.Utilities.dll": {}, + "lib/netcoreapp3.1/Microsoft.VisualStudio.TestPlatform.Common.dll": {}, + "lib/netcoreapp3.1/Microsoft.VisualStudio.TestPlatform.ObjectModel.dll": {}, + "lib/netcoreapp3.1/testhost.dll": { + "related": ".deps.json" + } + }, + "runtime": { + "lib/netcoreapp3.1/Microsoft.TestPlatform.CommunicationUtilities.dll": {}, + "lib/netcoreapp3.1/Microsoft.TestPlatform.CoreUtilities.dll": {}, + "lib/netcoreapp3.1/Microsoft.TestPlatform.CrossPlatEngine.dll": {}, + "lib/netcoreapp3.1/Microsoft.TestPlatform.PlatformAbstractions.dll": {}, + "lib/netcoreapp3.1/Microsoft.TestPlatform.Utilities.dll": {}, + "lib/netcoreapp3.1/Microsoft.VisualStudio.TestPlatform.Common.dll": {}, + "lib/netcoreapp3.1/Microsoft.VisualStudio.TestPlatform.ObjectModel.dll": {}, + "lib/netcoreapp3.1/testhost.dll": { + "related": ".deps.json" + } + }, + "resource": { + "lib/netcoreapp3.1/cs/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { + "locale": "cs" + }, + "lib/netcoreapp3.1/cs/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { + "locale": "cs" + }, + "lib/netcoreapp3.1/cs/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { + "locale": "cs" + }, + "lib/netcoreapp3.1/de/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { + "locale": "de" + }, + "lib/netcoreapp3.1/de/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { + "locale": "de" + }, + "lib/netcoreapp3.1/de/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { + "locale": "de" + }, + "lib/netcoreapp3.1/es/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { + "locale": "es" + }, + "lib/netcoreapp3.1/es/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { + "locale": "es" + }, + "lib/netcoreapp3.1/es/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { + "locale": "es" + }, + "lib/netcoreapp3.1/fr/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { + "locale": "fr" + }, + "lib/netcoreapp3.1/fr/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { + "locale": "fr" + }, + "lib/netcoreapp3.1/fr/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { + "locale": "fr" + }, + "lib/netcoreapp3.1/it/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { + "locale": "it" + }, + "lib/netcoreapp3.1/it/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { + "locale": "it" + }, + "lib/netcoreapp3.1/it/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { + "locale": "it" + }, + "lib/netcoreapp3.1/ja/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { + "locale": "ja" + }, + "lib/netcoreapp3.1/ja/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { + "locale": "ja" + }, + "lib/netcoreapp3.1/ja/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { + "locale": "ja" + }, + "lib/netcoreapp3.1/ko/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { + "locale": "ko" + }, + "lib/netcoreapp3.1/ko/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { + "locale": "ko" + }, + "lib/netcoreapp3.1/ko/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { + "locale": "ko" + }, + "lib/netcoreapp3.1/pl/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { + "locale": "pl" + }, + "lib/netcoreapp3.1/pl/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { + "locale": "pl" + }, + "lib/netcoreapp3.1/pl/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { + "locale": "pl" + }, + "lib/netcoreapp3.1/pt-BR/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { + "locale": "pt-BR" + }, + "lib/netcoreapp3.1/pt-BR/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { + "locale": "pt-BR" + }, + "lib/netcoreapp3.1/pt-BR/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { + "locale": "pt-BR" + }, + "lib/netcoreapp3.1/ru/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { + "locale": "ru" + }, + "lib/netcoreapp3.1/ru/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { + "locale": "ru" + }, + "lib/netcoreapp3.1/ru/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { + "locale": "ru" + }, + "lib/netcoreapp3.1/tr/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { + "locale": "tr" + }, + "lib/netcoreapp3.1/tr/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { + "locale": "tr" + }, + "lib/netcoreapp3.1/tr/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { + "locale": "tr" + }, + "lib/netcoreapp3.1/zh-Hans/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { + "locale": "zh-Hans" + }, + "lib/netcoreapp3.1/zh-Hans/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { + "locale": "zh-Hans" + }, + "lib/netcoreapp3.1/zh-Hans/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { + "locale": "zh-Hans" + }, + "lib/netcoreapp3.1/zh-Hant/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { + "locale": "zh-Hant" + }, + "lib/netcoreapp3.1/zh-Hant/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { + "locale": "zh-Hant" + }, + "lib/netcoreapp3.1/zh-Hant/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { + "locale": "zh-Hant" + } + }, + "build": { + "build/netcoreapp3.1/Microsoft.TestPlatform.TestHost.props": {} + } + }, + "Newtonsoft.Json/13.0.1": { + "type": "package", + "compile": { + "lib/netstandard2.0/Newtonsoft.Json.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.0/Newtonsoft.Json.dll": { + "related": ".xml" + } + } + }, + "System.Reflection.Metadata/1.6.0": { + "type": "package", + "compile": { + "lib/netstandard2.0/System.Reflection.Metadata.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.0/System.Reflection.Metadata.dll": { + "related": ".xml" + } + } + }, + "xunit/2.9.2": { + "type": "package", + "dependencies": { + "xunit.analyzers": "1.16.0", + "xunit.assert": "2.9.2", + "xunit.core": "[2.9.2]" + } + }, + "xunit.abstractions/2.0.3": { + "type": "package", + "compile": { + "lib/netstandard2.0/xunit.abstractions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.0/xunit.abstractions.dll": { + "related": ".xml" + } + } + }, + "xunit.analyzers/1.16.0": { + "type": "package" + }, + "xunit.assert/2.9.2": { + "type": "package", + "compile": { + "lib/net6.0/xunit.assert.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net6.0/xunit.assert.dll": { + "related": ".xml" + } + } + }, + "xunit.core/2.9.2": { + "type": "package", + "dependencies": { + "xunit.extensibility.core": "[2.9.2]", + "xunit.extensibility.execution": "[2.9.2]" + }, + "build": { + "build/xunit.core.props": {}, + "build/xunit.core.targets": {} + }, + "buildMultiTargeting": { + "buildMultiTargeting/xunit.core.props": {}, + "buildMultiTargeting/xunit.core.targets": {} + } + }, + "xunit.extensibility.core/2.9.2": { + "type": "package", + "dependencies": { + "xunit.abstractions": "2.0.3" + }, + "compile": { + "lib/netstandard1.1/xunit.core.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard1.1/xunit.core.dll": { + "related": ".xml" + } + } + }, + "xunit.extensibility.execution/2.9.2": { + "type": "package", + "dependencies": { + "xunit.extensibility.core": "[2.9.2]" + }, + "compile": { + "lib/netstandard1.1/xunit.execution.dotnet.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard1.1/xunit.execution.dotnet.dll": { + "related": ".xml" + } + } + }, + "xunit.runner.visualstudio/2.8.2": { + "type": "package", + "compile": { + "lib/net6.0/_._": {} + }, + "runtime": { + "lib/net6.0/_._": {} + }, + "build": { + "build/net6.0/xunit.runner.visualstudio.props": {} + } + }, + "nucleic-brokerd/1.0.0": { + "type": "project", + "framework": ".NETCoreApp,Version=v9.0", + "compile": { + "bin/placeholder/nucleic-brokerd.dll": {} + }, + "runtime": { + "bin/placeholder/nucleic-brokerd.dll": {} + } + } + } + }, + "libraries": { + "Microsoft.CodeCoverage/17.12.0": { + "sha512": "4svMznBd5JM21JIG2xZKGNanAHNXplxf/kQDFfLHXQ3OnpJkayRK/TjacFjA+EYmoyuNXHo/sOETEfcYtAzIrA==", + "type": "package", + "path": "microsoft.codecoverage/17.12.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "Microsoft.CodeCoverage.nuspec", + "ThirdPartyNotices.txt", + "build/netstandard2.0/CodeCoverage/CodeCoverage.config", + "build/netstandard2.0/CodeCoverage/CodeCoverage.exe", + "build/netstandard2.0/CodeCoverage/Cov_x86.config", + "build/netstandard2.0/CodeCoverage/amd64/CodeCoverage.exe", + "build/netstandard2.0/CodeCoverage/amd64/Cov_x64.config", + "build/netstandard2.0/CodeCoverage/amd64/covrun64.dll", + "build/netstandard2.0/CodeCoverage/amd64/msdia140.dll", + "build/netstandard2.0/CodeCoverage/arm64/Cov_arm64.config", + "build/netstandard2.0/CodeCoverage/arm64/covrunarm64.dll", + "build/netstandard2.0/CodeCoverage/arm64/msdia140.dll", + "build/netstandard2.0/CodeCoverage/codecoveragemessages.dll", + "build/netstandard2.0/CodeCoverage/coreclr/Microsoft.VisualStudio.CodeCoverage.Shim.dll", + "build/netstandard2.0/CodeCoverage/covrun32.dll", + "build/netstandard2.0/CodeCoverage/msdia140.dll", + "build/netstandard2.0/Microsoft.CodeCoverage.Core.dll", + "build/netstandard2.0/Microsoft.CodeCoverage.Instrumentation.Core.dll", + "build/netstandard2.0/Microsoft.CodeCoverage.Instrumentation.dll", + "build/netstandard2.0/Microsoft.CodeCoverage.Interprocess.dll", + "build/netstandard2.0/Microsoft.CodeCoverage.props", + "build/netstandard2.0/Microsoft.CodeCoverage.targets", + "build/netstandard2.0/Microsoft.DiaSymReader.dll", + "build/netstandard2.0/Microsoft.VisualStudio.TraceDataCollector.dll", + "build/netstandard2.0/Mono.Cecil.Pdb.dll", + "build/netstandard2.0/Mono.Cecil.Rocks.dll", + "build/netstandard2.0/Mono.Cecil.dll", + "build/netstandard2.0/ThirdPartyNotices.txt", + "build/netstandard2.0/alpine/x64/Cov_x64.config", + "build/netstandard2.0/alpine/x64/libCoverageInstrumentationMethod.so", + "build/netstandard2.0/alpine/x64/libInstrumentationEngine.so", + "build/netstandard2.0/arm64/MicrosoftInstrumentationEngine_arm64.dll", + "build/netstandard2.0/cs/Microsoft.VisualStudio.TraceDataCollector.resources.dll", + "build/netstandard2.0/de/Microsoft.VisualStudio.TraceDataCollector.resources.dll", + "build/netstandard2.0/es/Microsoft.VisualStudio.TraceDataCollector.resources.dll", + "build/netstandard2.0/fr/Microsoft.VisualStudio.TraceDataCollector.resources.dll", + "build/netstandard2.0/it/Microsoft.VisualStudio.TraceDataCollector.resources.dll", + "build/netstandard2.0/ja/Microsoft.VisualStudio.TraceDataCollector.resources.dll", + "build/netstandard2.0/ko/Microsoft.VisualStudio.TraceDataCollector.resources.dll", + "build/netstandard2.0/macos/x64/Cov_x64.config", + "build/netstandard2.0/macos/x64/libCoverageInstrumentationMethod.dylib", + "build/netstandard2.0/macos/x64/libInstrumentationEngine.dylib", + "build/netstandard2.0/pl/Microsoft.VisualStudio.TraceDataCollector.resources.dll", + "build/netstandard2.0/pt-BR/Microsoft.VisualStudio.TraceDataCollector.resources.dll", + "build/netstandard2.0/ru/Microsoft.VisualStudio.TraceDataCollector.resources.dll", + "build/netstandard2.0/tr/Microsoft.VisualStudio.TraceDataCollector.resources.dll", + "build/netstandard2.0/ubuntu/x64/Cov_x64.config", + "build/netstandard2.0/ubuntu/x64/libCoverageInstrumentationMethod.so", + "build/netstandard2.0/ubuntu/x64/libInstrumentationEngine.so", + "build/netstandard2.0/x64/MicrosoftInstrumentationEngine_x64.dll", + "build/netstandard2.0/x86/MicrosoftInstrumentationEngine_x86.dll", + "build/netstandard2.0/zh-Hans/Microsoft.VisualStudio.TraceDataCollector.resources.dll", + "build/netstandard2.0/zh-Hant/Microsoft.VisualStudio.TraceDataCollector.resources.dll", + "lib/net462/Microsoft.VisualStudio.CodeCoverage.Shim.dll", + "lib/netcoreapp3.1/Microsoft.VisualStudio.CodeCoverage.Shim.dll", + "microsoft.codecoverage.17.12.0.nupkg.sha512" + ] + }, + "Microsoft.NET.Test.Sdk/17.12.0": { + "sha512": "kt/PKBZ91rFCWxVIJZSgVLk+YR+4KxTuHf799ho8WNiK5ZQpJNAEZCAWX86vcKrs+DiYjiibpYKdGZP6+/N17w==", + "type": "package", + "path": "microsoft.net.test.sdk/17.12.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "Microsoft.NET.Test.Sdk.nuspec", + "build/net462/Microsoft.NET.Test.Sdk.props", + "build/net462/Microsoft.NET.Test.Sdk.targets", + "build/netcoreapp3.1/Microsoft.NET.Test.Sdk.Program.cs", + "build/netcoreapp3.1/Microsoft.NET.Test.Sdk.Program.fs", + "build/netcoreapp3.1/Microsoft.NET.Test.Sdk.Program.vb", + "build/netcoreapp3.1/Microsoft.NET.Test.Sdk.props", + "build/netcoreapp3.1/Microsoft.NET.Test.Sdk.targets", + "buildMultiTargeting/Microsoft.NET.Test.Sdk.props", + "lib/net462/_._", + "lib/netcoreapp3.1/_._", + "microsoft.net.test.sdk.17.12.0.nupkg.sha512" + ] + }, + "Microsoft.TestPlatform.ObjectModel/17.12.0": { + "sha512": "TDqkTKLfQuAaPcEb3pDDWnh7b3SyZF+/W9OZvWFp6eJCIiiYFdSB6taE2I6tWrFw5ywhzOb6sreoGJTI6m3rSQ==", + "type": "package", + "path": "microsoft.testplatform.objectmodel/17.12.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "Microsoft.TestPlatform.ObjectModel.nuspec", + "lib/net462/Microsoft.TestPlatform.CoreUtilities.dll", + "lib/net462/Microsoft.TestPlatform.PlatformAbstractions.dll", + "lib/net462/Microsoft.VisualStudio.TestPlatform.ObjectModel.dll", + "lib/net462/cs/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net462/cs/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net462/de/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net462/de/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net462/es/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net462/es/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net462/fr/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net462/fr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net462/it/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net462/it/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net462/ja/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net462/ja/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net462/ko/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net462/ko/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net462/pl/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net462/pl/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net462/pt-BR/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net462/pt-BR/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net462/ru/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net462/ru/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net462/tr/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net462/tr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net462/zh-Hans/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net462/zh-Hans/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net462/zh-Hant/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net462/zh-Hant/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netcoreapp3.1/Microsoft.TestPlatform.CoreUtilities.dll", + "lib/netcoreapp3.1/Microsoft.TestPlatform.PlatformAbstractions.dll", + "lib/netcoreapp3.1/Microsoft.VisualStudio.TestPlatform.ObjectModel.dll", + "lib/netcoreapp3.1/cs/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netcoreapp3.1/cs/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netcoreapp3.1/de/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netcoreapp3.1/de/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netcoreapp3.1/es/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netcoreapp3.1/es/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netcoreapp3.1/fr/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netcoreapp3.1/fr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netcoreapp3.1/it/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netcoreapp3.1/it/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netcoreapp3.1/ja/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netcoreapp3.1/ja/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netcoreapp3.1/ko/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netcoreapp3.1/ko/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netcoreapp3.1/pl/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netcoreapp3.1/pl/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netcoreapp3.1/pt-BR/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netcoreapp3.1/pt-BR/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netcoreapp3.1/ru/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netcoreapp3.1/ru/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netcoreapp3.1/tr/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netcoreapp3.1/tr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netcoreapp3.1/zh-Hans/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netcoreapp3.1/zh-Hans/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netcoreapp3.1/zh-Hant/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netcoreapp3.1/zh-Hant/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netstandard2.0/Microsoft.TestPlatform.CoreUtilities.dll", + "lib/netstandard2.0/Microsoft.TestPlatform.PlatformAbstractions.dll", + "lib/netstandard2.0/Microsoft.VisualStudio.TestPlatform.ObjectModel.dll", + "lib/netstandard2.0/cs/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netstandard2.0/cs/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netstandard2.0/de/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netstandard2.0/de/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netstandard2.0/es/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netstandard2.0/es/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netstandard2.0/fr/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netstandard2.0/fr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netstandard2.0/it/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netstandard2.0/it/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netstandard2.0/ja/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netstandard2.0/ja/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netstandard2.0/ko/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netstandard2.0/ko/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netstandard2.0/pl/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netstandard2.0/pl/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netstandard2.0/pt-BR/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netstandard2.0/pt-BR/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netstandard2.0/ru/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netstandard2.0/ru/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netstandard2.0/tr/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netstandard2.0/tr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netstandard2.0/zh-Hans/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netstandard2.0/zh-Hans/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netstandard2.0/zh-Hant/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netstandard2.0/zh-Hant/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "microsoft.testplatform.objectmodel.17.12.0.nupkg.sha512" + ] + }, + "Microsoft.TestPlatform.TestHost/17.12.0": { + "sha512": "MiPEJQNyADfwZ4pJNpQex+t9/jOClBGMiCiVVFuELCMSX2nmNfvUor3uFVxNNCg30uxDP8JDYfPnMXQzsfzYyg==", + "type": "package", + "path": "microsoft.testplatform.testhost/17.12.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "Microsoft.TestPlatform.TestHost.nuspec", + "ThirdPartyNotices.txt", + "build/netcoreapp3.1/Microsoft.TestPlatform.TestHost.props", + "build/netcoreapp3.1/x64/testhost.dll", + "build/netcoreapp3.1/x64/testhost.exe", + "build/netcoreapp3.1/x86/testhost.x86.dll", + "build/netcoreapp3.1/x86/testhost.x86.exe", + "lib/net462/_._", + "lib/netcoreapp3.1/Microsoft.TestPlatform.CommunicationUtilities.dll", + "lib/netcoreapp3.1/Microsoft.TestPlatform.CoreUtilities.dll", + "lib/netcoreapp3.1/Microsoft.TestPlatform.CrossPlatEngine.dll", + "lib/netcoreapp3.1/Microsoft.TestPlatform.PlatformAbstractions.dll", + "lib/netcoreapp3.1/Microsoft.TestPlatform.Utilities.dll", + "lib/netcoreapp3.1/Microsoft.VisualStudio.TestPlatform.Common.dll", + "lib/netcoreapp3.1/Microsoft.VisualStudio.TestPlatform.ObjectModel.dll", + "lib/netcoreapp3.1/cs/Microsoft.TestPlatform.CommunicationUtilities.resources.dll", + "lib/netcoreapp3.1/cs/Microsoft.TestPlatform.CrossPlatEngine.resources.dll", + "lib/netcoreapp3.1/cs/Microsoft.VisualStudio.TestPlatform.Common.resources.dll", + "lib/netcoreapp3.1/de/Microsoft.TestPlatform.CommunicationUtilities.resources.dll", + "lib/netcoreapp3.1/de/Microsoft.TestPlatform.CrossPlatEngine.resources.dll", + "lib/netcoreapp3.1/de/Microsoft.VisualStudio.TestPlatform.Common.resources.dll", + "lib/netcoreapp3.1/es/Microsoft.TestPlatform.CommunicationUtilities.resources.dll", + "lib/netcoreapp3.1/es/Microsoft.TestPlatform.CrossPlatEngine.resources.dll", + "lib/netcoreapp3.1/es/Microsoft.VisualStudio.TestPlatform.Common.resources.dll", + "lib/netcoreapp3.1/fr/Microsoft.TestPlatform.CommunicationUtilities.resources.dll", + "lib/netcoreapp3.1/fr/Microsoft.TestPlatform.CrossPlatEngine.resources.dll", + "lib/netcoreapp3.1/fr/Microsoft.VisualStudio.TestPlatform.Common.resources.dll", + "lib/netcoreapp3.1/it/Microsoft.TestPlatform.CommunicationUtilities.resources.dll", + "lib/netcoreapp3.1/it/Microsoft.TestPlatform.CrossPlatEngine.resources.dll", + "lib/netcoreapp3.1/it/Microsoft.VisualStudio.TestPlatform.Common.resources.dll", + "lib/netcoreapp3.1/ja/Microsoft.TestPlatform.CommunicationUtilities.resources.dll", + "lib/netcoreapp3.1/ja/Microsoft.TestPlatform.CrossPlatEngine.resources.dll", + "lib/netcoreapp3.1/ja/Microsoft.VisualStudio.TestPlatform.Common.resources.dll", + "lib/netcoreapp3.1/ko/Microsoft.TestPlatform.CommunicationUtilities.resources.dll", + "lib/netcoreapp3.1/ko/Microsoft.TestPlatform.CrossPlatEngine.resources.dll", + "lib/netcoreapp3.1/ko/Microsoft.VisualStudio.TestPlatform.Common.resources.dll", + "lib/netcoreapp3.1/pl/Microsoft.TestPlatform.CommunicationUtilities.resources.dll", + "lib/netcoreapp3.1/pl/Microsoft.TestPlatform.CrossPlatEngine.resources.dll", + "lib/netcoreapp3.1/pl/Microsoft.VisualStudio.TestPlatform.Common.resources.dll", + "lib/netcoreapp3.1/pt-BR/Microsoft.TestPlatform.CommunicationUtilities.resources.dll", + "lib/netcoreapp3.1/pt-BR/Microsoft.TestPlatform.CrossPlatEngine.resources.dll", + "lib/netcoreapp3.1/pt-BR/Microsoft.VisualStudio.TestPlatform.Common.resources.dll", + "lib/netcoreapp3.1/ru/Microsoft.TestPlatform.CommunicationUtilities.resources.dll", + "lib/netcoreapp3.1/ru/Microsoft.TestPlatform.CrossPlatEngine.resources.dll", + "lib/netcoreapp3.1/ru/Microsoft.VisualStudio.TestPlatform.Common.resources.dll", + "lib/netcoreapp3.1/testhost.deps.json", + "lib/netcoreapp3.1/testhost.dll", + "lib/netcoreapp3.1/tr/Microsoft.TestPlatform.CommunicationUtilities.resources.dll", + "lib/netcoreapp3.1/tr/Microsoft.TestPlatform.CrossPlatEngine.resources.dll", + "lib/netcoreapp3.1/tr/Microsoft.VisualStudio.TestPlatform.Common.resources.dll", + "lib/netcoreapp3.1/x64/msdia140.dll", + "lib/netcoreapp3.1/x86/msdia140.dll", + "lib/netcoreapp3.1/zh-Hans/Microsoft.TestPlatform.CommunicationUtilities.resources.dll", + "lib/netcoreapp3.1/zh-Hans/Microsoft.TestPlatform.CrossPlatEngine.resources.dll", + "lib/netcoreapp3.1/zh-Hans/Microsoft.VisualStudio.TestPlatform.Common.resources.dll", + "lib/netcoreapp3.1/zh-Hant/Microsoft.TestPlatform.CommunicationUtilities.resources.dll", + "lib/netcoreapp3.1/zh-Hant/Microsoft.TestPlatform.CrossPlatEngine.resources.dll", + "lib/netcoreapp3.1/zh-Hant/Microsoft.VisualStudio.TestPlatform.Common.resources.dll", + "microsoft.testplatform.testhost.17.12.0.nupkg.sha512" + ] + }, + "Newtonsoft.Json/13.0.1": { + "sha512": "ppPFpBcvxdsfUonNcvITKqLl3bqxWbDCZIzDWHzjpdAHRFfZe0Dw9HmA0+za13IdyrgJwpkDTDA9fHaxOrt20A==", + "type": "package", + "path": "newtonsoft.json/13.0.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "LICENSE.md", + "Newtonsoft.Json.nuspec", + "lib/net20/Newtonsoft.Json.dll", + "lib/net20/Newtonsoft.Json.xml", + "lib/net35/Newtonsoft.Json.dll", + "lib/net35/Newtonsoft.Json.xml", + "lib/net40/Newtonsoft.Json.dll", + "lib/net40/Newtonsoft.Json.xml", + "lib/net45/Newtonsoft.Json.dll", + "lib/net45/Newtonsoft.Json.xml", + "lib/netstandard1.0/Newtonsoft.Json.dll", + "lib/netstandard1.0/Newtonsoft.Json.xml", + "lib/netstandard1.3/Newtonsoft.Json.dll", + "lib/netstandard1.3/Newtonsoft.Json.xml", + "lib/netstandard2.0/Newtonsoft.Json.dll", + "lib/netstandard2.0/Newtonsoft.Json.xml", + "newtonsoft.json.13.0.1.nupkg.sha512", + "packageIcon.png" + ] + }, + "System.Reflection.Metadata/1.6.0": { + "sha512": "COC1aiAJjCoA5GBF+QKL2uLqEBew4JsCkQmoHKbN3TlOZKa2fKLz5CpiRQKDz0RsAOEGsVKqOD5bomsXq/4STQ==", + "type": "package", + "path": "system.reflection.metadata/1.6.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "LICENSE.TXT", + "System.Reflection.Metadata.nuspec", + "THIRD-PARTY-NOTICES.TXT", + "lib/netstandard1.1/System.Reflection.Metadata.dll", + "lib/netstandard1.1/System.Reflection.Metadata.xml", + "lib/netstandard2.0/System.Reflection.Metadata.dll", + "lib/netstandard2.0/System.Reflection.Metadata.xml", + "lib/portable-net45+win8/System.Reflection.Metadata.dll", + "lib/portable-net45+win8/System.Reflection.Metadata.xml", + "system.reflection.metadata.1.6.0.nupkg.sha512", + "useSharedDesignerContext.txt", + "version.txt" + ] + }, + "xunit/2.9.2": { + "sha512": "7LhFS2N9Z6Xgg8aE5lY95cneYivRMfRI8v+4PATa4S64D5Z/Plkg0qa8dTRHSiGRgVZ/CL2gEfJDE5AUhOX+2Q==", + "type": "package", + "path": "xunit/2.9.2", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "_content/README.md", + "_content/logo-128-transparent.png", + "xunit.2.9.2.nupkg.sha512", + "xunit.nuspec" + ] + }, + "xunit.abstractions/2.0.3": { + "sha512": "pot1I4YOxlWjIb5jmwvvQNbTrZ3lJQ+jUGkGjWE3hEFM0l5gOnBWS+H3qsex68s5cO52g+44vpGzhAt+42vwKg==", + "type": "package", + "path": "xunit.abstractions/2.0.3", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/net35/xunit.abstractions.dll", + "lib/net35/xunit.abstractions.xml", + "lib/netstandard1.0/xunit.abstractions.dll", + "lib/netstandard1.0/xunit.abstractions.xml", + "lib/netstandard2.0/xunit.abstractions.dll", + "lib/netstandard2.0/xunit.abstractions.xml", + "xunit.abstractions.2.0.3.nupkg.sha512", + "xunit.abstractions.nuspec" + ] + }, + "xunit.analyzers/1.16.0": { + "sha512": "hptYM7vGr46GUIgZt21YHO4rfuBAQS2eINbFo16CV/Dqq+24Tp+P5gDCACu1AbFfW4Sp/WRfDPSK8fmUUb8s0Q==", + "type": "package", + "path": "xunit.analyzers/1.16.0", + "hasTools": true, + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "_content/README.md", + "_content/logo-128-transparent.png", + "analyzers/dotnet/cs/xunit.analyzers.dll", + "analyzers/dotnet/cs/xunit.analyzers.fixes.dll", + "tools/install.ps1", + "tools/uninstall.ps1", + "xunit.analyzers.1.16.0.nupkg.sha512", + "xunit.analyzers.nuspec" + ] + }, + "xunit.assert/2.9.2": { + "sha512": "QkNBAQG4pa66cholm28AxijBjrmki98/vsEh4Sx5iplzotvPgpiotcxqJQMRC8d7RV7nIT8ozh97957hDnZwsQ==", + "type": "package", + "path": "xunit.assert/2.9.2", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "_content/README.md", + "_content/logo-128-transparent.png", + "lib/net6.0/xunit.assert.dll", + "lib/net6.0/xunit.assert.xml", + "lib/netstandard1.1/xunit.assert.dll", + "lib/netstandard1.1/xunit.assert.xml", + "xunit.assert.2.9.2.nupkg.sha512", + "xunit.assert.nuspec" + ] + }, + "xunit.core/2.9.2": { + "sha512": "O6RrNSdmZ0xgEn5kT927PNwog5vxTtKrWMihhhrT0Sg9jQ7iBDciYOwzBgP2krBEk5/GBXI18R1lKvmnxGcb4w==", + "type": "package", + "path": "xunit.core/2.9.2", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "_content/README.md", + "_content/logo-128-transparent.png", + "build/xunit.core.props", + "build/xunit.core.targets", + "buildMultiTargeting/xunit.core.props", + "buildMultiTargeting/xunit.core.targets", + "xunit.core.2.9.2.nupkg.sha512", + "xunit.core.nuspec" + ] + }, + "xunit.extensibility.core/2.9.2": { + "sha512": "Ol+KlBJz1x8BrdnhN2DeOuLrr1I/cTwtHCggL9BvYqFuVd/TUSzxNT5O0NxCIXth30bsKxgMfdqLTcORtM52yQ==", + "type": "package", + "path": "xunit.extensibility.core/2.9.2", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "_content/README.md", + "_content/logo-128-transparent.png", + "lib/net452/xunit.core.dll", + "lib/net452/xunit.core.dll.tdnet", + "lib/net452/xunit.core.xml", + "lib/net452/xunit.runner.tdnet.dll", + "lib/net452/xunit.runner.utility.net452.dll", + "lib/netstandard1.1/xunit.core.dll", + "lib/netstandard1.1/xunit.core.xml", + "xunit.extensibility.core.2.9.2.nupkg.sha512", + "xunit.extensibility.core.nuspec" + ] + }, + "xunit.extensibility.execution/2.9.2": { + "sha512": "rKMpq4GsIUIJibXuZoZ8lYp5EpROlnYaRpwu9Zr0sRZXE7JqJfEEbCsUriZqB+ByXCLFBJyjkTRULMdC+U566g==", + "type": "package", + "path": "xunit.extensibility.execution/2.9.2", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "_content/README.md", + "_content/logo-128-transparent.png", + "lib/net452/xunit.execution.desktop.dll", + "lib/net452/xunit.execution.desktop.xml", + "lib/netstandard1.1/xunit.execution.dotnet.dll", + "lib/netstandard1.1/xunit.execution.dotnet.xml", + "xunit.extensibility.execution.2.9.2.nupkg.sha512", + "xunit.extensibility.execution.nuspec" + ] + }, + "xunit.runner.visualstudio/2.8.2": { + "sha512": "vm1tbfXhFmjFMUmS4M0J0ASXz3/U5XvXBa6DOQUL3fEz4Vt6YPhv+ESCarx6M6D+9kJkJYZKCNvJMas1+nVfmQ==", + "type": "package", + "path": "xunit.runner.visualstudio/2.8.2", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "_content/README.md", + "_content/logo-128-transparent.png", + "build/net462/xunit.abstractions.dll", + "build/net462/xunit.runner.reporters.net452.dll", + "build/net462/xunit.runner.utility.net452.dll", + "build/net462/xunit.runner.visualstudio.props", + "build/net462/xunit.runner.visualstudio.testadapter.dll", + "build/net6.0/xunit.abstractions.dll", + "build/net6.0/xunit.runner.reporters.netcoreapp10.dll", + "build/net6.0/xunit.runner.utility.netcoreapp10.dll", + "build/net6.0/xunit.runner.visualstudio.props", + "build/net6.0/xunit.runner.visualstudio.testadapter.dll", + "lib/net462/_._", + "lib/net6.0/_._", + "xunit.runner.visualstudio.2.8.2.nupkg.sha512", + "xunit.runner.visualstudio.nuspec" + ] + }, + "nucleic-brokerd/1.0.0": { + "type": "project", + "path": "../NucleicBroker/NucleicBroker.csproj", + "msbuildProject": "../NucleicBroker/NucleicBroker.csproj" + } + }, + "projectFileDependencyGroups": { + "net9.0": [ + "Microsoft.NET.Test.Sdk >= 17.12.0", + "nucleic-brokerd >= 1.0.0", + "xunit >= 2.9.2", + "xunit.runner.visualstudio >= 2.8.2" + ] + }, + "packageFolders": { + "/Users/blakeslee/Library/Application Support/Nucleic/sessions/704B73C5-6D1C-460E-869C-21B3914B2CE4/claude-home/.nuget/packages/": {} + }, + "project": { + "version": "1.0.0", + "restore": { + "projectUniqueName": "/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/NucleicBroker.Tests.csproj", + "projectName": "NucleicBroker.Tests", + "projectPath": "/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/NucleicBroker.Tests.csproj", + "packagesPath": "/Users/blakeslee/Library/Application Support/Nucleic/sessions/704B73C5-6D1C-460E-869C-21B3914B2CE4/claude-home/.nuget/packages/", + "outputPath": "/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/obj/", + "projectStyle": "PackageReference", + "configFilePaths": [ + "/Users/blakeslee/Library/Application Support/Nucleic/sessions/704B73C5-6D1C-460E-869C-21B3914B2CE4/claude-home/.nuget/NuGet/NuGet.Config" + ], + "originalTargetFrameworks": [ + "net9.0" + ], + "sources": { + "https://api.nuget.org/v3/index.json": {} + }, + "frameworks": { + "net9.0": { + "targetAlias": "net9.0", + "projectReferences": { + "/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker/NucleicBroker.csproj": { + "projectPath": "/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker/NucleicBroker.csproj" + } + } + } + }, + "warningProperties": { + "warnAsError": [ + "NU1605" + ] + }, + "restoreAuditProperties": { + "enableAudit": "true", + "auditLevel": "low", + "auditMode": "direct" + }, + "SdkAnalysisLevel": "9.0.300" + }, + "frameworks": { + "net9.0": { + "targetAlias": "net9.0", + "dependencies": { + "Microsoft.NET.Test.Sdk": { + "target": "Package", + "version": "[17.12.0, )" + }, + "xunit": { + "target": "Package", + "version": "[2.9.2, )" + }, + "xunit.runner.visualstudio": { + "target": "Package", + "version": "[2.8.2, )" + } + }, + "imports": [ + "net461", + "net462", + "net47", + "net471", + "net472", + "net48", + "net481" + ], + "assetTargetFallback": true, + "warn": true, + "frameworkReferences": { + "Microsoft.NETCore.App": { + "privateAssets": "all" + } + }, + "runtimeIdentifierGraphPath": "/Users/blakeslee/Library/Application Support/Nucleic/sessions/704B73C5-6D1C-460E-869C-21B3914B2CE4/claude-home/.dotnet/sdk/9.0.316/PortableRuntimeIdentifierGraph.json" + } + } + } +} \ No newline at end of file diff --git a/NucleicBroker.Tests/obj/project.nuget.cache b/NucleicBroker.Tests/obj/project.nuget.cache new file mode 100644 index 0000000..562bf37 --- /dev/null +++ b/NucleicBroker.Tests/obj/project.nuget.cache @@ -0,0 +1,23 @@ +{ + "version": 2, + "dgSpecHash": "BAOec8GqQsw=", + "success": true, + "projectFilePath": "/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker.Tests/NucleicBroker.Tests.csproj", + "expectedPackageFiles": [ + "/Users/blakeslee/Library/Application Support/Nucleic/sessions/704B73C5-6D1C-460E-869C-21B3914B2CE4/claude-home/.nuget/packages/microsoft.codecoverage/17.12.0/microsoft.codecoverage.17.12.0.nupkg.sha512", + "/Users/blakeslee/Library/Application Support/Nucleic/sessions/704B73C5-6D1C-460E-869C-21B3914B2CE4/claude-home/.nuget/packages/microsoft.net.test.sdk/17.12.0/microsoft.net.test.sdk.17.12.0.nupkg.sha512", + "/Users/blakeslee/Library/Application Support/Nucleic/sessions/704B73C5-6D1C-460E-869C-21B3914B2CE4/claude-home/.nuget/packages/microsoft.testplatform.objectmodel/17.12.0/microsoft.testplatform.objectmodel.17.12.0.nupkg.sha512", + "/Users/blakeslee/Library/Application Support/Nucleic/sessions/704B73C5-6D1C-460E-869C-21B3914B2CE4/claude-home/.nuget/packages/microsoft.testplatform.testhost/17.12.0/microsoft.testplatform.testhost.17.12.0.nupkg.sha512", + "/Users/blakeslee/Library/Application Support/Nucleic/sessions/704B73C5-6D1C-460E-869C-21B3914B2CE4/claude-home/.nuget/packages/newtonsoft.json/13.0.1/newtonsoft.json.13.0.1.nupkg.sha512", + "/Users/blakeslee/Library/Application Support/Nucleic/sessions/704B73C5-6D1C-460E-869C-21B3914B2CE4/claude-home/.nuget/packages/system.reflection.metadata/1.6.0/system.reflection.metadata.1.6.0.nupkg.sha512", + "/Users/blakeslee/Library/Application Support/Nucleic/sessions/704B73C5-6D1C-460E-869C-21B3914B2CE4/claude-home/.nuget/packages/xunit/2.9.2/xunit.2.9.2.nupkg.sha512", + "/Users/blakeslee/Library/Application Support/Nucleic/sessions/704B73C5-6D1C-460E-869C-21B3914B2CE4/claude-home/.nuget/packages/xunit.abstractions/2.0.3/xunit.abstractions.2.0.3.nupkg.sha512", + "/Users/blakeslee/Library/Application Support/Nucleic/sessions/704B73C5-6D1C-460E-869C-21B3914B2CE4/claude-home/.nuget/packages/xunit.analyzers/1.16.0/xunit.analyzers.1.16.0.nupkg.sha512", + "/Users/blakeslee/Library/Application Support/Nucleic/sessions/704B73C5-6D1C-460E-869C-21B3914B2CE4/claude-home/.nuget/packages/xunit.assert/2.9.2/xunit.assert.2.9.2.nupkg.sha512", + "/Users/blakeslee/Library/Application Support/Nucleic/sessions/704B73C5-6D1C-460E-869C-21B3914B2CE4/claude-home/.nuget/packages/xunit.core/2.9.2/xunit.core.2.9.2.nupkg.sha512", + "/Users/blakeslee/Library/Application Support/Nucleic/sessions/704B73C5-6D1C-460E-869C-21B3914B2CE4/claude-home/.nuget/packages/xunit.extensibility.core/2.9.2/xunit.extensibility.core.2.9.2.nupkg.sha512", + "/Users/blakeslee/Library/Application Support/Nucleic/sessions/704B73C5-6D1C-460E-869C-21B3914B2CE4/claude-home/.nuget/packages/xunit.extensibility.execution/2.9.2/xunit.extensibility.execution.2.9.2.nupkg.sha512", + "/Users/blakeslee/Library/Application Support/Nucleic/sessions/704B73C5-6D1C-460E-869C-21B3914B2CE4/claude-home/.nuget/packages/xunit.runner.visualstudio/2.8.2/xunit.runner.visualstudio.2.8.2.nupkg.sha512" + ], + "logs": [] +} \ No newline at end of file diff --git a/NucleicBroker/AiProvider.cs b/NucleicBroker/AiProvider.cs new file mode 100644 index 0000000..1024470 --- /dev/null +++ b/NucleicBroker/AiProvider.cs @@ -0,0 +1,28 @@ +using System.Text.Json; + +namespace NucleicBroker; + +/// +/// The `ai.generate` seam (docs/WINDOWS_PORT.md §9.2): Phi Silica via Windows AI Foundry is +/// WinRT-only, so hostd routes on-device-AI requests through this broker rather than a +/// second helper process. Capability-probed: on non-Copilot+ hardware (or off-Windows) the +/// provider is unavailable and hostd's Intelligence seam falls back to its heuristics — +/// identical UX to a Mac without Apple Intelligence. +/// +public interface IAiProvider +{ + bool IsAvailable { get; } + /// Generate text for `prompt`; when `schema` is present the result must be JSON + /// conforming to it (guided generation). Throws WslcError(AiUnavailable) when absent. + Task GenerateAsync(string prompt, JsonElement? schema, CancellationToken ct); +} + +/// Default provider: no on-device model. The real Foundry-backed provider lands +/// with work item 16 behind the same interface. +public sealed class UnavailableAiProvider : IAiProvider +{ + public bool IsAvailable => false; + + public Task GenerateAsync(string prompt, JsonElement? schema, CancellationToken ct) => + throw new WslcError(WslcError.AiUnavailable, "no on-device AI provider on this machine"); +} diff --git a/NucleicBroker/BrokerService.cs b/NucleicBroker/BrokerService.cs new file mode 100644 index 0000000..0b1187a --- /dev/null +++ b/NucleicBroker/BrokerService.cs @@ -0,0 +1,254 @@ +using System.Reflection; +using System.Text.Json; + +namespace NucleicBroker; + +/// +/// The broker's request dispatcher (docs/WINDOWS_PORT.md §3.3): one instance per process, +/// fed NDJSON lines from hostd, answering through an . Requests +/// run concurrently (an image pull must not block a container.list), responses/notifications +/// serialize through the writer's single drain loop. Also the +/// sink the facade raises async events into. +/// +public sealed class BrokerService : IBrokerEvents +{ + private readonly IWslc wslc; + private readonly IAiProvider ai; + private readonly OutboundWriter outbound; + private readonly Dictionary procs = new(); + private readonly Lock procsLock = new(); + private long nextProcId; + + public BrokerService(IWslc wslc, IAiProvider ai, OutboundWriter outbound) + { + this.wslc = wslc; + this.ai = ai; + this.outbound = outbound; + wslc.SetEvents(this); + } + + /// Broker protocol revision, bumped with any wire change; hostd degrades from + /// the `hello` capabilities rather than parsing versions (docs/WINDOWS_PORT.md §2.3). + public const int ProtocolVersion = 1; + + /// Handle one inbound NDJSON line. The returned task completes once the + /// response has been ENQUEUED (tests await it; the stdin loop fires and forgets). + public async Task HandleLineAsync(string line, CancellationToken ct = default) + { + JsonElement? id = null; + string method; + JsonElement? @params = null; + try + { + using var doc = JsonDocument.Parse(line); + var root = doc.RootElement; + // Clone: the id/params outlive this JsonDocument (responses are built after + // arbitrary awaits). + if (root.TryGetProperty("id", out var rawId)) id = rawId.Clone(); + if (root.TryGetProperty("params", out var rawParams)) @params = rawParams.Clone(); + method = root.TryGetProperty("method", out var m) && m.ValueKind == JsonValueKind.String + ? m.GetString()! + : throw new JsonException("missing method"); + } + catch (JsonException e) + { + outbound.EnqueueJson(Rpc.Error(id, Rpc.ParseError, $"unparseable request: {e.Message}")); + return; + } + + try + { + var result = await DispatchAsync(method, @params, ct).ConfigureAwait(false); + if (id is { } requestId) + outbound.EnqueueJson(Rpc.Response(requestId, result)); + } + catch (JsonException e) + { + outbound.EnqueueJson(Rpc.Error(id, Rpc.InvalidParams, e.Message)); + } + catch (WslcError e) + { + outbound.EnqueueJson(Rpc.Error(id, Rpc.FacadeError, e.Message, new { kind = e.Kind })); + } + catch (NotSupportedException) + { + outbound.EnqueueJson(Rpc.Error(id, Rpc.MethodNotFound, $"unknown method: {method}")); + } + catch (Exception e) + { + outbound.EnqueueJson(Rpc.Error(id, Rpc.InternalError, e.Message)); + } + } + + private async Task DispatchAsync(string method, JsonElement? p, CancellationToken ct) + { + switch (method) + { + case "hello": + { + var caps = new List { "components", "session", "image", "container", "proc" }; + if (ai.IsAvailable) caps.Add("ai"); + return new + { + protocol = ProtocolVersion, + brokerVersion = Assembly.GetExecutingAssembly().GetName().Version?.ToString(3) ?? "0.0.0", + wslcVersion = wslc.WslcVersion, + capabilities = caps, + }; + } + + case "components.missing": + return new { flags = await wslc.MissingComponentsAsync(ct).ConfigureAwait(false) }; + case "components.install": + await wslc.InstallComponentsAsync(ct).ConfigureAwait(false); + return new { }; + + case "session.ensure": + { + var spec = Rpc.Params(p); + var gateway = await wslc.EnsureSessionAsync(spec, ct).ConfigureAwait(false); + return new { gateway }; + } + case "session.terminate": + await wslc.TerminateSessionAsync(ct).ConfigureAwait(false); + return new { }; + + case "image.pull": + { + var args = Rpc.Params(p); + await wslc.PullImageAsync(args.Ref, args.Auth, ct).ConfigureAwait(false); + return new { }; + } + case "image.list": + return new { images = await wslc.ListImagesAsync(ct).ConfigureAwait(false) }; + case "image.delete": + await wslc.DeleteImageAsync(Rpc.Params(p).Ref, ct).ConfigureAwait(false); + return new { }; + case "image.inspect": + { + var image = await wslc.InspectImageAsync(Rpc.Params(p).Ref, ct) + .ConfigureAwait(false); + return new { image }; + } + + case "container.create": + await wslc.CreateContainerAsync(Rpc.Params(p), ct).ConfigureAwait(false); + return new { }; + case "container.start": + await wslc.StartContainerAsync(Rpc.Params(p).Name, ct).ConfigureAwait(false); + return new { }; + case "container.stop": + { + var args = Rpc.Params(p); + await wslc.StopContainerAsync(args.Name, args.Signal ?? 15, args.GraceMs ?? 5000, ct) + .ConfigureAwait(false); + return new { }; + } + case "container.delete": + { + var args = Rpc.Params(p); + await wslc.DeleteContainerAsync(args.Name, args.Force ?? false, ct).ConfigureAwait(false); + return new { }; + } + case "container.list": + return new { containers = await wslc.ListContainersAsync(ct).ConfigureAwait(false) }; + case "container.state": + { + var state = await wslc.ContainerStateAsync(Rpc.Params(p).Name, ct) + .ConfigureAwait(false); + return new { state }; + } + case "container.stats": + { + var stats = await wslc.ContainerStatsAsync(Rpc.Params(p).Name, ct) + .ConfigureAwait(false); + return new { stats }; + } + + case "proc.exec": + { + var spec = Rpc.Params(p); + var procId = Interlocked.Increment(ref nextProcId); + var proc = await wslc.ExecAsync(procId, spec, ct).ConfigureAwait(false); + lock (procsLock) procs[procId] = proc; + return new { procId }; + } + case "proc.stdin": + { + var args = Rpc.Params(p); + await Proc(args.ProcId).WriteStdinAsync(Convert.FromBase64String(args.B64), ct) + .ConfigureAwait(false); + return new { }; + } + case "proc.closeStdin": + await Proc(Rpc.Params(p).ProcId).CloseStdinAsync(ct).ConfigureAwait(false); + return new { }; + case "proc.signal": + { + var args = Rpc.Params(p); + await Proc(args.ProcId).SignalAsync(args.Sig, ct).ConfigureAwait(false); + return new { }; + } + case "proc.resize": + { + var args = Rpc.Params(p); + await Proc(args.ProcId).ResizeAsync(args.Cols, args.Rows, ct).ConfigureAwait(false); + return new { }; + } + + case "ai.generate": + { + var args = Rpc.Params(p); + var text = await ai.GenerateAsync(args.Prompt, args.Schema, ct).ConfigureAwait(false); + return new { text }; + } + + default: + throw new NotSupportedException(method); + } + } + + private IWslcProcess Proc(long procId) + { + lock (procsLock) + { + return procs.TryGetValue(procId, out var proc) + ? proc + : throw new WslcError(WslcError.NotFound, $"unknown procId {procId}"); + } + } + + // MARK: IBrokerEvents — facade threads enqueue and return immediately. + + public void ProcOutput(long procId, bool stderr, ReadOnlySpan chunk) => + outbound.EnqueueProcOutput(procId, stderr, chunk); + + public void ProcExited(long procId, int code) + { + lock (procsLock) procs.Remove(procId); + outbound.EnqueueJson(Rpc.Notification("proc.exit", new { procId, code })); + } + + public void SessionDown(string reason) => + outbound.EnqueueJson(Rpc.Notification("session.down", new { reason })); + + public void PullProgress(string reference, string status, long current, long total) => + outbound.EnqueueJson(Rpc.Notification( + "image.pullProgress", new { @ref = reference, status, current, total })); + + public void InstallProgress(string status, double percent) => + outbound.EnqueueJson(Rpc.Notification( + "components.installProgress", new { status, percent })); + + // Param records for methods whose shapes aren't shared DTOs. + private sealed record ImagePullParams(string Ref, RegistryAuth? Auth); + private sealed record ImageRefParams(string Ref); + private sealed record ContainerNameParams(string Name); + private sealed record ContainerStopParams(string Name, int? Signal, int? GraceMs); + private sealed record ContainerDeleteParams(string Name, bool? Force); + private sealed record ProcIdParams(long ProcId); + private sealed record ProcStdinParams(long ProcId, string B64); + private sealed record ProcSignalParams(long ProcId, int Sig); + private sealed record ProcResizeParams(long ProcId, int Cols, int Rows); + private sealed record AiGenerateParams(string Prompt, JsonElement? Schema); +} diff --git a/NucleicBroker/IWslc.cs b/NucleicBroker/IWslc.cs new file mode 100644 index 0000000..56c8dc0 --- /dev/null +++ b/NucleicBroker/IWslc.cs @@ -0,0 +1,115 @@ +using System.Text.Json.Serialization; + +namespace NucleicBroker; + +/// +/// The one seam between broker logic and Microsoft.WSL.Containers (docs/WINDOWS_PORT.md +/// §3.3): everything the RPC surface needs from wslc, and nothing WinRT. The real facade +/// (Wslc/WslcFacade.cs, compiled with -p:UseWslc=true) adapts the preview API; unit tests +/// substitute FakeWslc; non-Windows builds get UnavailableWslc. Async events (process stdio, +/// pull progress, session death) flow out through so no wslc +/// event thread ever blocks on the stdio pipe. +/// +public interface IWslc +{ + /// Reported in the `hello` capabilities exchange; null when wslc is absent. + string? WslcVersion { get; } + + /// Install the sink BEFORE any operation that can emit events. + void SetEvents(IBrokerEvents events); + + /// Missing OS components (WSL, the container service, …), empty when ready. + Task> MissingComponentsAsync(CancellationToken ct); + /// Install missing components; progress via . + Task InstallComponentsAsync(CancellationToken ct); + + /// Create-or-attach the per-channel wslc session; returns the WSL-facing host + /// gateway address guests reach the host on (docs/WINDOWS_PORT.md §5). + Task EnsureSessionAsync(SessionSpec spec, CancellationToken ct); + Task TerminateSessionAsync(CancellationToken ct); + + /// Pull an OCI image; progress via . + Task PullImageAsync(string reference, RegistryAuth? auth, CancellationToken ct); + Task> ListImagesAsync(CancellationToken ct); + Task DeleteImageAsync(string reference, CancellationToken ct); + /// Digest/size for a local image, or null when not present. + Task InspectImageAsync(string reference, CancellationToken ct); + + Task CreateContainerAsync(ContainerCreateSpec spec, CancellationToken ct); + Task StartContainerAsync(string name, CancellationToken ct); + Task StopContainerAsync(string name, int signal, int graceMs, CancellationToken ct); + Task DeleteContainerAsync(string name, bool force, CancellationToken ct); + Task> ListContainersAsync(CancellationToken ct); + /// One of "running" | "stopped" | "absent" (kept coarse on purpose — the Swift + /// policy layer only distinguishes these three). + Task ContainerStateAsync(string name, CancellationToken ct); + /// cgroup counters for the resource monitor; null when not running. + Task ContainerStatsAsync(string name, CancellationToken ct); + + /// Start a process in a running container. `procId` is minted by the broker and + /// keys every event this process emits through . + Task ExecAsync(long procId, ProcSpec spec, CancellationToken ct); +} + +/// Control half of a running in-container process (output arrives via events). +public interface IWslcProcess +{ + Task WriteStdinAsync(ReadOnlyMemory data, CancellationToken ct); + Task CloseStdinAsync(CancellationToken ct); + Task SignalAsync(int signal, CancellationToken ct); + /// tty mode only (the Terminal panel); no-op for pipe-mode processes. + Task ResizeAsync(int cols, int rows, CancellationToken ct); +} + +/// Event sink the broker hands to the facade; implementations must be +/// non-blocking (they enqueue onto the outbound writer). +public interface IBrokerEvents +{ + void ProcOutput(long procId, bool stderr, ReadOnlySpan chunk); + void ProcExited(long procId, int code); + void SessionDown(string reason); + void PullProgress(string reference, string status, long current, long total); + void InstallProgress(string status, double percent); +} + +/// A structured facade failure, surfaced to hostd as JSON-RPC error -32000 with +/// `data.kind` so the Swift side can branch (e.g. `brokerLost` vs `imagePullFailed`). +public sealed class WslcError(string kind, string message) : Exception(message) +{ + public string Kind { get; } = kind; + + public const string Unavailable = "wslc_unavailable"; + public const string NotFound = "not_found"; + public const string NotRunning = "not_running"; + public const string PullFailed = "image_pull_failed"; + public const string StartFailed = "start_failed"; + public const string AiUnavailable = "ai_unavailable"; +} + +// DTOs — property names (after camel-casing) match the §3.3 wire keys exactly. + +public sealed record SessionSpec( + string Name, string DataDir, int? Cpu, long? MemoryMB); + +public sealed record RegistryAuth(string? Username, string? Password); + +public sealed record ImageInfo( + [property: JsonPropertyName("ref")] string Ref, string? Digest, long? SizeBytes); + +public sealed record VolumeSpec( + string Host, string Guest, [property: JsonPropertyName("ro")] bool ReadOnly); + +public sealed record ContainerCreateSpec( + string Name, string Image, IReadOnlyList? Volumes, + string? NetworkingMode, string? Hostname, + IReadOnlyDictionary? Env, IReadOnlyList? InitArgv); + +public sealed record ContainerInfo(string Name, string Image, string State); + +public sealed record ContainerStatsInfo( + long CpuUsageUsec, long MemoryUsedBytes, long MemoryLimitBytes, long? OomKills); + +public sealed record ProcSpec( + string Container, IReadOnlyList Argv, + IReadOnlyDictionary? Env, string? Cwd, + int? Uid, int? Gid, bool Tty); diff --git a/NucleicBroker/NucleicBroker.csproj b/NucleicBroker/NucleicBroker.csproj new file mode 100644 index 0000000..1f03130 --- /dev/null +++ b/NucleicBroker/NucleicBroker.csproj @@ -0,0 +1,33 @@ + + + + + Exe + nucleic-brokerd + NucleicBroker + + + + net9.0-windows10.0.26100.0 + $(DefineConstants);USE_WSLC + + + + + + + + + + + + diff --git a/NucleicBroker/OutboundWriter.cs b/NucleicBroker/OutboundWriter.cs new file mode 100644 index 0000000..982a2ed --- /dev/null +++ b/NucleicBroker/OutboundWriter.cs @@ -0,0 +1,79 @@ +using System.Threading.Channels; + +namespace NucleicBroker; + +/// +/// The single writer of the broker's stdout: responses and notifications from any thread are +/// enqueued (never blocking the caller — wslc raises stdio events on WinRT threads that must +/// not stall on the pipe, docs/WINDOWS_PORT.md §3.3) and drained by one loop that also +/// coalesces bursts: consecutive stdio chunks for the same (proc, stream) queued at drain +/// time merge into one `proc.stdout`/`proc.stderr` notification, cutting per-line overhead +/// for agents' high-rate NDJSON without adding any timer or latency (only already-queued +/// items merge). Ordering is preserved end-to-end — one channel, one drain loop — so +/// `proc.exit` can never overtake the output that preceded it. +/// +public sealed class OutboundWriter +{ + private abstract record Item; + private sealed record JsonLine(string Line) : Item; + private sealed record ProcChunk(long ProcId, bool Stderr, byte[] Bytes) : Item; + + private readonly Channel channel = Channel.CreateUnbounded( + new UnboundedChannelOptions { SingleReader = true }); + private readonly TextWriter output; + private readonly Task loop; + + public OutboundWriter(TextWriter output) + { + this.output = output; + loop = Task.Run(DrainAsync); + } + + public void EnqueueJson(string line) => channel.Writer.TryWrite(new JsonLine(line)); + + public void EnqueueProcOutput(long procId, bool stderr, ReadOnlySpan chunk) => + channel.Writer.TryWrite(new ProcChunk(procId, stderr, chunk.ToArray())); + + /// Close the queue, drain everything, and flush. Idempotent. + public async Task CompleteAsync() + { + channel.Writer.TryComplete(); + await loop.ConfigureAwait(false); + } + + private async Task DrainAsync() + { + var reader = channel.Reader; + var batch = new List(64); + while (await reader.WaitToReadAsync().ConfigureAwait(false)) + { + batch.Clear(); + while (batch.Count < 256 && reader.TryRead(out var item)) batch.Add(item); + + for (var i = 0; i < batch.Count; i++) + { + if (batch[i] is not ProcChunk head) + { + await output.WriteLineAsync(((JsonLine)batch[i]).Line).ConfigureAwait(false); + continue; + } + // Merge the run of chunks for the same (proc, stream) into one notification. + using var merged = new MemoryStream(); + merged.Write(head.Bytes); + while (i + 1 < batch.Count + && batch[i + 1] is ProcChunk next + && next.ProcId == head.ProcId && next.Stderr == head.Stderr) + { + merged.Write(next.Bytes); + i++; + } + var line = Rpc.Notification( + head.Stderr ? "proc.stderr" : "proc.stdout", + new { procId = head.ProcId, b64 = Convert.ToBase64String(merged.ToArray()) }); + await output.WriteLineAsync(line).ConfigureAwait(false); + } + await output.FlushAsync().ConfigureAwait(false); + } + await output.FlushAsync().ConfigureAwait(false); + } +} diff --git a/NucleicBroker/Program.cs b/NucleicBroker/Program.cs new file mode 100644 index 0000000..6830847 --- /dev/null +++ b/NucleicBroker/Program.cs @@ -0,0 +1,37 @@ +using System.Text; +using NucleicBroker; + +// nucleic-brokerd (docs/WINDOWS_PORT.md §2.3): child of nucleic-hostd, NDJSON JSON-RPC 2.0 +// over stdio. Exits when stdin closes (hostd died or shut down); on Windows the Job Object +// hostd assigns kills us anyway — this is the graceful path. +// +// stdout carries ONLY protocol lines (the OutboundWriter is its single writer); every +// diagnostic goes to stderr, which hostd logs. + +Console.OutputEncoding = Encoding.UTF8; + +IWslc wslc = +#if USE_WSLC + new NucleicBroker.Wslc.WslcFacade(); +#else + new UnavailableWslc(); +#endif +IAiProvider ai = new UnavailableAiProvider(); + +var stdout = new StreamWriter(Console.OpenStandardOutput(), new UTF8Encoding(false)) { AutoFlush = false }; +var outbound = new OutboundWriter(stdout); +var service = new BrokerService(wslc, ai, outbound); + +using var stdin = new StreamReader(Console.OpenStandardInput(), Encoding.UTF8); +var inFlight = new List(); +for (string? line; (line = await stdin.ReadLineAsync()) is not null;) +{ + if (line.Length == 0) continue; + // Requests run concurrently (a long image.pull must not block container.list); the + // outbound writer serializes their responses. Track them so shutdown can drain. + inFlight.Add(service.HandleLineAsync(line)); + inFlight.RemoveAll(t => t.IsCompleted); +} + +await Task.WhenAll(inFlight).ConfigureAwait(false); +await outbound.CompleteAsync().ConfigureAwait(false); diff --git a/NucleicBroker/Rpc.cs b/NucleicBroker/Rpc.cs new file mode 100644 index 0000000..38da9cb --- /dev/null +++ b/NucleicBroker/Rpc.cs @@ -0,0 +1,54 @@ +using System.Text.Json; +using System.Text.Json.Serialization; + +namespace NucleicBroker; + +/// +/// NDJSON JSON-RPC 2.0 plumbing (docs/WINDOWS_PORT.md §3.3): one JSON object per line, +/// requests flow hostd → broker only, notifications broker → hostd only. Binary payloads +/// ride base64 in `b64` fields. +/// +public static class Rpc +{ + public static readonly JsonSerializerOptions Json = new() + { + PropertyNamingPolicy = JsonNamingPolicy.CamelCase, + PropertyNameCaseInsensitive = true, + DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull, + }; + + /// A JSON `null`, used as the response id for unidentifiable requests — the + /// spec requires `"id": null` to be PRESENT, which the ignore-null policy would drop if + /// we passed a bare null. + private static readonly JsonElement NullId = JsonDocument.Parse("null").RootElement; + + // JSON-RPC 2.0 error codes (+ -32000 for structured facade errors, kind in data). + public const int ParseError = -32700; + public const int InvalidRequest = -32600; + public const int MethodNotFound = -32601; + public const int InvalidParams = -32602; + public const int InternalError = -32603; + public const int FacadeError = -32000; + + public static string Response(JsonElement id, object result) => + JsonSerializer.Serialize(new { jsonrpc = "2.0", id, result }, Json); + + public static string Error(JsonElement? id, int code, string message, object? data = null) => + JsonSerializer.Serialize( + new { jsonrpc = "2.0", id = id ?? NullId, error = new { code, message, data } }, + Json); + + public static string Notification(string method, object @params) => + JsonSerializer.Serialize(new { jsonrpc = "2.0", method, @params }, Json); + + /// Deserialize a request's params object; throws JsonException on a missing or + /// mismatched shape (the dispatcher maps that to InvalidParams). Positional records bind + /// through their constructor, case-insensitively. + public static T Params(JsonElement? @params) + { + if (@params is not { ValueKind: JsonValueKind.Object } p) + throw new JsonException("missing params object"); + return JsonSerializer.Deserialize(p.GetRawText(), Json) + ?? throw new JsonException("params decoded to null"); + } +} diff --git a/NucleicBroker/UnavailableWslc.cs b/NucleicBroker/UnavailableWslc.cs new file mode 100644 index 0000000..0de9a3d --- /dev/null +++ b/NucleicBroker/UnavailableWslc.cs @@ -0,0 +1,48 @@ +namespace NucleicBroker; + +/// +/// The facade used when Microsoft.WSL.Containers isn't compiled in (any non-Windows build, +/// or a build without -p:UseWslc=true): every operation fails with a structured +/// `wslc_unavailable` error so hostd sees a clean capability gap, never a crash. The `hello` +/// exchange reports `wslcVersion: null`, which is the real capability signal. +/// +public sealed class UnavailableWslc : IWslc +{ + public string? WslcVersion => null; + + public void SetEvents(IBrokerEvents events) { } + + private static WslcError Unavailable() => + new(WslcError.Unavailable, "Microsoft.WSL.Containers is not available in this broker build"); + + public Task> MissingComponentsAsync(CancellationToken ct) => + Task.FromException>(Unavailable()); + public Task InstallComponentsAsync(CancellationToken ct) => Task.FromException(Unavailable()); + public Task EnsureSessionAsync(SessionSpec spec, CancellationToken ct) => + Task.FromException(Unavailable()); + public Task TerminateSessionAsync(CancellationToken ct) => Task.FromException(Unavailable()); + public Task PullImageAsync(string reference, RegistryAuth? auth, CancellationToken ct) => + Task.FromException(Unavailable()); + public Task> ListImagesAsync(CancellationToken ct) => + Task.FromException>(Unavailable()); + public Task DeleteImageAsync(string reference, CancellationToken ct) => + Task.FromException(Unavailable()); + public Task InspectImageAsync(string reference, CancellationToken ct) => + Task.FromException(Unavailable()); + public Task CreateContainerAsync(ContainerCreateSpec spec, CancellationToken ct) => + Task.FromException(Unavailable()); + public Task StartContainerAsync(string name, CancellationToken ct) => + Task.FromException(Unavailable()); + public Task StopContainerAsync(string name, int signal, int graceMs, CancellationToken ct) => + Task.FromException(Unavailable()); + public Task DeleteContainerAsync(string name, bool force, CancellationToken ct) => + Task.FromException(Unavailable()); + public Task> ListContainersAsync(CancellationToken ct) => + Task.FromException>(Unavailable()); + public Task ContainerStateAsync(string name, CancellationToken ct) => + Task.FromException(Unavailable()); + public Task ContainerStatsAsync(string name, CancellationToken ct) => + Task.FromException(Unavailable()); + public Task ExecAsync(long procId, ProcSpec spec, CancellationToken ct) => + Task.FromException(Unavailable()); +} diff --git a/NucleicBroker/Wslc/WslcFacade.cs b/NucleicBroker/Wslc/WslcFacade.cs new file mode 100644 index 0000000..5318a67 --- /dev/null +++ b/NucleicBroker/Wslc/WslcFacade.cs @@ -0,0 +1,232 @@ +#if USE_WSLC +using Microsoft.WSL.Containers; + +namespace NucleicBroker.Wslc; + +// The REAL Microsoft.WSL.Containers adapter (docs/WINDOWS_PORT.md §1.5, §3.2), compiled +// only with -p:UseWslc=true on Windows. The API is public preview (GA fall 2026) and its +// exact shapes are validated by the M1 wslc spike — every mapping below that spikes prove +// wrong gets fixed HERE, never above the IWslc seam. Until M1 runs on real hardware, treat +// this file as the best-effort transcription of the documented object model: +// WslcService (components) → Session (VM host, images) → Container → Process. +public sealed class WslcFacade : IWslc +{ + private IBrokerEvents? events; + private Session? session; + private readonly SemaphoreSlim sessionGate = new(1, 1); + + public string? WslcVersion => WslcService.GetServiceVersion()?.ToString(); + + public void SetEvents(IBrokerEvents events) => this.events = events; + + public Task> MissingComponentsAsync(CancellationToken ct) + { + var flags = WslcService.GetMissingComponents(); + var missing = new List(); + foreach (var flag in Enum.GetValues()) + if (flag != ComponentFlags.None && flags.HasFlag(flag)) + missing.Add(flag.ToString().ToLowerInvariant()); + return Task.FromResult>(missing); + } + + public async Task InstallComponentsAsync(CancellationToken ct) + { + // M1: wire the component-install progress callback into events.InstallProgress. + await WslcService.InstallComponentsAsync(WslcService.GetMissingComponents()) + .AsTask(ct).ConfigureAwait(false); + events?.InstallProgress("done", 100); + } + + public async Task EnsureSessionAsync(SessionSpec spec, CancellationToken ct) + { + await sessionGate.WaitAsync(ct).ConfigureAwait(false); + try + { + if (session is null) + { + var settings = new SessionSettings(spec.Name, spec.DataDir); + if (spec.Cpu is { } cpu) settings.CpuCount = cpu; + if (spec.MemoryMB is { } mem) settings.MemoryMB = mem; + session = Session.CreateOrOpen(settings); + session.SessionTerminationHandler = reason => + events?.SessionDown(reason?.ToString() ?? "unknown"); + } + // M1: confirm how the WSL vEthernet gateway address is surfaced (session + // property vs. querying the vNIC); NAT mode is preferred for determinism + // (docs/WINDOWS_PORT.md §5). Mirrored mode reports the reachable host address. + return session.HostGatewayAddress?.ToString() + ?? throw new WslcError(WslcError.StartFailed, "wslc session has no gateway address"); + } + finally + { + sessionGate.Release(); + } + } + + public Task TerminateSessionAsync(CancellationToken ct) + { + session?.Terminate(); + session = null; + return Task.CompletedTask; + } + + private Session RequireSession() => + session ?? throw new WslcError(WslcError.NotRunning, "no wslc session (call session.ensure first)"); + + public async Task PullImageAsync(string reference, RegistryAuth? auth, CancellationToken ct) + { + var options = new PullImageOptions(reference); + if (auth is { Username: { } user, Password: { } pass }) + options.Credentials = new RegistryCredentials(user, pass); + options.Progress += (status, current, total) => + events?.PullProgress(reference, status, current, total); + try + { + await RequireSession().PullImageAsync(options).AsTask(ct).ConfigureAwait(false); + } + catch (Exception e) when (e is not WslcError) + { + throw new WslcError(WslcError.PullFailed, e.Message); + } + } + + public Task> ListImagesAsync(CancellationToken ct) => + Task.FromResult>( + RequireSession().GetImages() + .Select(i => new ImageInfo(i.Reference, i.Digest, i.Size)) + .ToList()); + + public Task DeleteImageAsync(string reference, CancellationToken ct) + { + RequireSession().DeleteImage(reference); + return Task.CompletedTask; + } + + public Task InspectImageAsync(string reference, CancellationToken ct) + { + var image = RequireSession().GetImages().FirstOrDefault(i => i.Reference == reference); + return Task.FromResult(image is null ? null : new ImageInfo(image.Reference, image.Digest, image.Size)); + } + + public Task CreateContainerAsync(ContainerCreateSpec spec, CancellationToken ct) + { + var settings = new ContainerSettings(spec.Image) { Name = spec.Name }; + if (spec.Hostname is { } hostname) settings.Hostname = hostname; + if (spec.NetworkingMode is { } mode) + settings.NetworkingMode = Enum.Parse(mode, ignoreCase: true); + foreach (var volume in spec.Volumes ?? []) + settings.Volumes.Add(new ContainerVolume(volume.Host, volume.Guest, volume.ReadOnly)); + if (spec.InitArgv is { Count: > 0 } argv) + settings.InitProcess = new ProcessSettings { CmdLine = argv.ToList() }; + if (spec.Env is { } env) + foreach (var (key, value) in env) + settings.InitProcess?.Environment.Add(key, value); + try + { + RequireSession().CreateContainer(settings); + } + catch (Exception e) when (e is not WslcError) + { + throw new WslcError(WslcError.StartFailed, e.Message); + } + return Task.CompletedTask; + } + + private Container RequireContainer(string name) => + RequireSession().GetContainers().FirstOrDefault(c => c.Name == name) + ?? throw new WslcError(WslcError.NotFound, $"no container named {name}"); + + public Task StartContainerAsync(string name, CancellationToken ct) + { + RequireContainer(name).Start(); + return Task.CompletedTask; + } + + public Task StopContainerAsync(string name, int signal, int graceMs, CancellationToken ct) + { + RequireContainer(name).Stop((Signal)signal, TimeSpan.FromMilliseconds(graceMs)); + return Task.CompletedTask; + } + + public Task DeleteContainerAsync(string name, bool force, CancellationToken ct) + { + RequireContainer(name).Delete(force ? DeleteContainerFlags.Force : DeleteContainerFlags.None); + return Task.CompletedTask; + } + + public Task> ListContainersAsync(CancellationToken ct) => + Task.FromResult>( + RequireSession().GetContainers() + .Select(c => new ContainerInfo(c.Name, c.Image, c.State.ToString().ToLowerInvariant())) + .ToList()); + + public Task ContainerStateAsync(string name, CancellationToken ct) + { + var container = RequireSession().GetContainers().FirstOrDefault(c => c.Name == name); + return Task.FromResult(container?.State switch + { + null => "absent", + ContainerState.Running => "running", + _ => "stopped", + }); + } + + public Task ContainerStatsAsync(string name, CancellationToken ct) + { + // M1: confirm the stats surface (cgroup v2 counters are what the Swift resource + // monitor folds into ContainerResourceSample). + var stats = RequireContainer(name).GetStatistics(); + return Task.FromResult(stats is null + ? null + : new ContainerStatsInfo(stats.CpuUsageUsec, stats.MemoryUsedBytes, stats.MemoryLimitBytes, stats.OomKills)); + } + + public Task ExecAsync(long procId, ProcSpec spec, CancellationToken ct) + { + var container = RequireContainer(spec.Container); + var settings = new ProcessSettings + { + CmdLine = spec.Argv.ToList(), + WorkingDirectory = spec.Cwd, + OutputMode = ProcessOutputMode.Event, + Terminal = spec.Tty, + }; + if (spec.Env is { } env) + foreach (var (key, value) in env) settings.Environment.Add(key, value); + if (spec.Uid is { } uid) settings.UserId = uid; // M1: verify uid semantics (§3.2); + if (spec.Gid is { } gid) settings.GroupId = gid; // fall back to a setpriv wrapper argv. + + var process = container.RunProcess(settings); + process.OutputReceived += (stderr, data) => events?.ProcOutput(procId, stderr, data); + process.Exited += code => events?.ProcExited(procId, code); + return Task.FromResult(new WslcProcess(process)); + } + + private sealed class WslcProcess(Process process) : IWslcProcess + { + public Task WriteStdinAsync(ReadOnlyMemory data, CancellationToken ct) + { + process.WriteStdin(data.Span); + return Task.CompletedTask; + } + + public Task CloseStdinAsync(CancellationToken ct) + { + process.CloseStdin(); + return Task.CompletedTask; + } + + public Task SignalAsync(int signal, CancellationToken ct) + { + process.Signal((Signal)signal); + return Task.CompletedTask; + } + + public Task ResizeAsync(int cols, int rows, CancellationToken ct) + { + process.ResizeTerminal(cols, rows); + return Task.CompletedTask; + } + } +} +#endif diff --git a/NucleicBroker/bin/Debug/net9.0/nucleic-brokerd b/NucleicBroker/bin/Debug/net9.0/nucleic-brokerd new file mode 100755 index 0000000..9c4dd88 Binary files /dev/null and b/NucleicBroker/bin/Debug/net9.0/nucleic-brokerd differ diff --git a/NucleicBroker/bin/Debug/net9.0/nucleic-brokerd.deps.json b/NucleicBroker/bin/Debug/net9.0/nucleic-brokerd.deps.json new file mode 100644 index 0000000..5dc1009 --- /dev/null +++ b/NucleicBroker/bin/Debug/net9.0/nucleic-brokerd.deps.json @@ -0,0 +1,23 @@ +{ + "runtimeTarget": { + "name": ".NETCoreApp,Version=v9.0", + "signature": "" + }, + "compilationOptions": {}, + "targets": { + ".NETCoreApp,Version=v9.0": { + "nucleic-brokerd/1.0.0": { + "runtime": { + "nucleic-brokerd.dll": {} + } + } + } + }, + "libraries": { + "nucleic-brokerd/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + } + } +} \ No newline at end of file diff --git a/NucleicBroker/bin/Debug/net9.0/nucleic-brokerd.dll b/NucleicBroker/bin/Debug/net9.0/nucleic-brokerd.dll new file mode 100644 index 0000000..fed88f5 Binary files /dev/null and b/NucleicBroker/bin/Debug/net9.0/nucleic-brokerd.dll differ diff --git a/NucleicBroker/bin/Debug/net9.0/nucleic-brokerd.pdb b/NucleicBroker/bin/Debug/net9.0/nucleic-brokerd.pdb new file mode 100644 index 0000000..cea259d Binary files /dev/null and b/NucleicBroker/bin/Debug/net9.0/nucleic-brokerd.pdb differ diff --git a/NucleicBroker/bin/Debug/net9.0/nucleic-brokerd.runtimeconfig.json b/NucleicBroker/bin/Debug/net9.0/nucleic-brokerd.runtimeconfig.json new file mode 100644 index 0000000..5cddbbc --- /dev/null +++ b/NucleicBroker/bin/Debug/net9.0/nucleic-brokerd.runtimeconfig.json @@ -0,0 +1,14 @@ +{ + "runtimeOptions": { + "tfm": "net9.0", + "framework": { + "name": "Microsoft.NETCore.App", + "version": "9.0.0" + }, + "configProperties": { + "System.Globalization.Invariant": true, + "System.Globalization.PredefinedCulturesOnly": true, + "System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false + } + } +} \ No newline at end of file diff --git a/NucleicBroker/obj/Debug/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs b/NucleicBroker/obj/Debug/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs new file mode 100644 index 0000000..feda5e9 --- /dev/null +++ b/NucleicBroker/obj/Debug/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs @@ -0,0 +1,4 @@ +// +using System; +using System.Reflection; +[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v9.0", FrameworkDisplayName = ".NET 9.0")] diff --git a/NucleicBroker/obj/Debug/net9.0/NucleicBroker.AssemblyInfo.cs b/NucleicBroker/obj/Debug/net9.0/NucleicBroker.AssemblyInfo.cs new file mode 100644 index 0000000..ab76051 --- /dev/null +++ b/NucleicBroker/obj/Debug/net9.0/NucleicBroker.AssemblyInfo.cs @@ -0,0 +1,22 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +using System; +using System.Reflection; + +[assembly: System.Reflection.AssemblyCompanyAttribute("nucleic-brokerd")] +[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] +[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+20c2c31cf39c17bf53c32ecdaf353dd361151b0c")] +[assembly: System.Reflection.AssemblyProductAttribute("nucleic-brokerd")] +[assembly: System.Reflection.AssemblyTitleAttribute("nucleic-brokerd")] +[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] + +// Generated by the MSBuild WriteCodeFragment class. + diff --git a/NucleicBroker/obj/Debug/net9.0/NucleicBroker.AssemblyInfoInputs.cache b/NucleicBroker/obj/Debug/net9.0/NucleicBroker.AssemblyInfoInputs.cache new file mode 100644 index 0000000..6b2dea6 --- /dev/null +++ b/NucleicBroker/obj/Debug/net9.0/NucleicBroker.AssemblyInfoInputs.cache @@ -0,0 +1 @@ +b47bbe50f1e268ae59fc2e387aaadfe56feaf26d8852247f940ca82af44828dc diff --git a/NucleicBroker/obj/Debug/net9.0/NucleicBroker.GeneratedMSBuildEditorConfig.editorconfig b/NucleicBroker/obj/Debug/net9.0/NucleicBroker.GeneratedMSBuildEditorConfig.editorconfig new file mode 100644 index 0000000..c37b837 --- /dev/null +++ b/NucleicBroker/obj/Debug/net9.0/NucleicBroker.GeneratedMSBuildEditorConfig.editorconfig @@ -0,0 +1,15 @@ +is_global = true +build_property.TargetFramework = net9.0 +build_property.TargetPlatformMinVersion = +build_property.UsingMicrosoftNETSdkWeb = +build_property.ProjectTypeGuids = +build_property.InvariantGlobalization = true +build_property.PlatformNeutralAssembly = +build_property.EnforceExtendedAnalyzerRules = +build_property._SupportedPlatformList = Linux,macOS,Windows +build_property.RootNamespace = NucleicBroker +build_property.ProjectDir = /Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker/ +build_property.EnableComHosting = +build_property.EnableGeneratedComInterfaceComImportInterop = +build_property.EffectiveAnalysisLevelStyle = 9.0 +build_property.EnableCodeStyleSeverity = diff --git a/NucleicBroker/obj/Debug/net9.0/NucleicBroker.GlobalUsings.g.cs b/NucleicBroker/obj/Debug/net9.0/NucleicBroker.GlobalUsings.g.cs new file mode 100644 index 0000000..8578f3d --- /dev/null +++ b/NucleicBroker/obj/Debug/net9.0/NucleicBroker.GlobalUsings.g.cs @@ -0,0 +1,8 @@ +// +global using global::System; +global using global::System.Collections.Generic; +global using global::System.IO; +global using global::System.Linq; +global using global::System.Net.Http; +global using global::System.Threading; +global using global::System.Threading.Tasks; diff --git a/NucleicBroker/obj/Debug/net9.0/NucleicBroker.assets.cache b/NucleicBroker/obj/Debug/net9.0/NucleicBroker.assets.cache new file mode 100644 index 0000000..175b304 Binary files /dev/null and b/NucleicBroker/obj/Debug/net9.0/NucleicBroker.assets.cache differ diff --git a/NucleicBroker/obj/Debug/net9.0/NucleicBroker.csproj.CoreCompileInputs.cache b/NucleicBroker/obj/Debug/net9.0/NucleicBroker.csproj.CoreCompileInputs.cache new file mode 100644 index 0000000..0d0c7b3 --- /dev/null +++ b/NucleicBroker/obj/Debug/net9.0/NucleicBroker.csproj.CoreCompileInputs.cache @@ -0,0 +1 @@ +b7fd0fc35ef857f78f5ddebcbbb4bc594b8574b1cd56521a4ecbb615c5be3243 diff --git a/NucleicBroker/obj/Debug/net9.0/NucleicBroker.csproj.FileListAbsolute.txt b/NucleicBroker/obj/Debug/net9.0/NucleicBroker.csproj.FileListAbsolute.txt new file mode 100644 index 0000000..3f9d42a --- /dev/null +++ b/NucleicBroker/obj/Debug/net9.0/NucleicBroker.csproj.FileListAbsolute.txt @@ -0,0 +1,15 @@ +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker/bin/Debug/net9.0/nucleic-brokerd +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker/bin/Debug/net9.0/nucleic-brokerd.deps.json +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker/bin/Debug/net9.0/nucleic-brokerd.runtimeconfig.json +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker/bin/Debug/net9.0/nucleic-brokerd.dll +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker/bin/Debug/net9.0/nucleic-brokerd.pdb +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker/obj/Debug/net9.0/NucleicBroker.GeneratedMSBuildEditorConfig.editorconfig +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker/obj/Debug/net9.0/NucleicBroker.AssemblyInfoInputs.cache +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker/obj/Debug/net9.0/NucleicBroker.AssemblyInfo.cs +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker/obj/Debug/net9.0/NucleicBroker.csproj.CoreCompileInputs.cache +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker/obj/Debug/net9.0/NucleicBroker.sourcelink.json +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker/obj/Debug/net9.0/nucleic-brokerd.dll +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker/obj/Debug/net9.0/refint/nucleic-brokerd.dll +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker/obj/Debug/net9.0/nucleic-brokerd.pdb +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker/obj/Debug/net9.0/NucleicBroker.genruntimeconfig.cache +/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker/obj/Debug/net9.0/ref/nucleic-brokerd.dll diff --git a/NucleicBroker/obj/Debug/net9.0/NucleicBroker.genruntimeconfig.cache b/NucleicBroker/obj/Debug/net9.0/NucleicBroker.genruntimeconfig.cache new file mode 100644 index 0000000..3434f60 --- /dev/null +++ b/NucleicBroker/obj/Debug/net9.0/NucleicBroker.genruntimeconfig.cache @@ -0,0 +1 @@ +de89b2563b4e65c8127d700361a8ea13c111ac14ac03a902ffc90bddcf2ba77c diff --git a/NucleicBroker/obj/Debug/net9.0/NucleicBroker.sourcelink.json b/NucleicBroker/obj/Debug/net9.0/NucleicBroker.sourcelink.json new file mode 100644 index 0000000..b5b58d8 --- /dev/null +++ b/NucleicBroker/obj/Debug/net9.0/NucleicBroker.sourcelink.json @@ -0,0 +1 @@ +{"documents":{"/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/*":"https://raw.githubusercontent.com/abkslm/nucleic/20c2c31cf39c17bf53c32ecdaf353dd361151b0c/*"}} \ No newline at end of file diff --git a/NucleicBroker/obj/Debug/net9.0/apphost b/NucleicBroker/obj/Debug/net9.0/apphost new file mode 100755 index 0000000..9c4dd88 Binary files /dev/null and b/NucleicBroker/obj/Debug/net9.0/apphost differ diff --git a/NucleicBroker/obj/Debug/net9.0/nucleic-brokerd.dll b/NucleicBroker/obj/Debug/net9.0/nucleic-brokerd.dll new file mode 100644 index 0000000..fed88f5 Binary files /dev/null and b/NucleicBroker/obj/Debug/net9.0/nucleic-brokerd.dll differ diff --git a/NucleicBroker/obj/Debug/net9.0/nucleic-brokerd.pdb b/NucleicBroker/obj/Debug/net9.0/nucleic-brokerd.pdb new file mode 100644 index 0000000..cea259d Binary files /dev/null and b/NucleicBroker/obj/Debug/net9.0/nucleic-brokerd.pdb differ diff --git a/NucleicBroker/obj/Debug/net9.0/ref/nucleic-brokerd.dll b/NucleicBroker/obj/Debug/net9.0/ref/nucleic-brokerd.dll new file mode 100644 index 0000000..c402450 Binary files /dev/null and b/NucleicBroker/obj/Debug/net9.0/ref/nucleic-brokerd.dll differ diff --git a/NucleicBroker/obj/Debug/net9.0/refint/nucleic-brokerd.dll b/NucleicBroker/obj/Debug/net9.0/refint/nucleic-brokerd.dll new file mode 100644 index 0000000..c402450 Binary files /dev/null and b/NucleicBroker/obj/Debug/net9.0/refint/nucleic-brokerd.dll differ diff --git a/NucleicBroker/obj/NucleicBroker.csproj.nuget.dgspec.json b/NucleicBroker/obj/NucleicBroker.csproj.nuget.dgspec.json new file mode 100644 index 0000000..98ce994 --- /dev/null +++ b/NucleicBroker/obj/NucleicBroker.csproj.nuget.dgspec.json @@ -0,0 +1,67 @@ +{ + "format": 1, + "restore": { + "/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker/NucleicBroker.csproj": {} + }, + "projects": { + "/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker/NucleicBroker.csproj": { + "version": "1.0.0", + "restore": { + "projectUniqueName": "/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker/NucleicBroker.csproj", + "projectName": "nucleic-brokerd", + "projectPath": "/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker/NucleicBroker.csproj", + "packagesPath": "/Users/blakeslee/Library/Application Support/Nucleic/sessions/704B73C5-6D1C-460E-869C-21B3914B2CE4/claude-home/.nuget/packages/", + "outputPath": "/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker/obj/", + "projectStyle": "PackageReference", + "configFilePaths": [ + "/Users/blakeslee/Library/Application Support/Nucleic/sessions/704B73C5-6D1C-460E-869C-21B3914B2CE4/claude-home/.nuget/NuGet/NuGet.Config" + ], + "originalTargetFrameworks": [ + "net9.0" + ], + "sources": { + "https://api.nuget.org/v3/index.json": {} + }, + "frameworks": { + "net9.0": { + "targetAlias": "net9.0", + "projectReferences": {} + } + }, + "warningProperties": { + "warnAsError": [ + "NU1605" + ] + }, + "restoreAuditProperties": { + "enableAudit": "true", + "auditLevel": "low", + "auditMode": "direct" + }, + "SdkAnalysisLevel": "9.0.300" + }, + "frameworks": { + "net9.0": { + "targetAlias": "net9.0", + "imports": [ + "net461", + "net462", + "net47", + "net471", + "net472", + "net48", + "net481" + ], + "assetTargetFallback": true, + "warn": true, + "frameworkReferences": { + "Microsoft.NETCore.App": { + "privateAssets": "all" + } + }, + "runtimeIdentifierGraphPath": "/Users/blakeslee/Library/Application Support/Nucleic/sessions/704B73C5-6D1C-460E-869C-21B3914B2CE4/claude-home/.dotnet/sdk/9.0.316/PortableRuntimeIdentifierGraph.json" + } + } + } + } +} \ No newline at end of file diff --git a/NucleicBroker/obj/NucleicBroker.csproj.nuget.g.props b/NucleicBroker/obj/NucleicBroker.csproj.nuget.g.props new file mode 100644 index 0000000..03c4b1e --- /dev/null +++ b/NucleicBroker/obj/NucleicBroker.csproj.nuget.g.props @@ -0,0 +1,15 @@ + + + + True + NuGet + $(MSBuildThisFileDirectory)project.assets.json + /Users/blakeslee/Library/Application Support/Nucleic/sessions/704B73C5-6D1C-460E-869C-21B3914B2CE4/claude-home/.nuget/packages/ + /Users/blakeslee/Library/Application Support/Nucleic/sessions/704B73C5-6D1C-460E-869C-21B3914B2CE4/claude-home/.nuget/packages/ + PackageReference + 6.14.3 + + + + + \ No newline at end of file diff --git a/NucleicBroker/obj/NucleicBroker.csproj.nuget.g.targets b/NucleicBroker/obj/NucleicBroker.csproj.nuget.g.targets new file mode 100644 index 0000000..3dc06ef --- /dev/null +++ b/NucleicBroker/obj/NucleicBroker.csproj.nuget.g.targets @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/NucleicBroker/obj/project.assets.json b/NucleicBroker/obj/project.assets.json new file mode 100644 index 0000000..c7707f5 --- /dev/null +++ b/NucleicBroker/obj/project.assets.json @@ -0,0 +1,72 @@ +{ + "version": 3, + "targets": { + "net9.0": {} + }, + "libraries": {}, + "projectFileDependencyGroups": { + "net9.0": [] + }, + "packageFolders": { + "/Users/blakeslee/Library/Application Support/Nucleic/sessions/704B73C5-6D1C-460E-869C-21B3914B2CE4/claude-home/.nuget/packages/": {} + }, + "project": { + "version": "1.0.0", + "restore": { + "projectUniqueName": "/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker/NucleicBroker.csproj", + "projectName": "nucleic-brokerd", + "projectPath": "/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker/NucleicBroker.csproj", + "packagesPath": "/Users/blakeslee/Library/Application Support/Nucleic/sessions/704B73C5-6D1C-460E-869C-21B3914B2CE4/claude-home/.nuget/packages/", + "outputPath": "/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker/obj/", + "projectStyle": "PackageReference", + "configFilePaths": [ + "/Users/blakeslee/Library/Application Support/Nucleic/sessions/704B73C5-6D1C-460E-869C-21B3914B2CE4/claude-home/.nuget/NuGet/NuGet.Config" + ], + "originalTargetFrameworks": [ + "net9.0" + ], + "sources": { + "https://api.nuget.org/v3/index.json": {} + }, + "frameworks": { + "net9.0": { + "targetAlias": "net9.0", + "projectReferences": {} + } + }, + "warningProperties": { + "warnAsError": [ + "NU1605" + ] + }, + "restoreAuditProperties": { + "enableAudit": "true", + "auditLevel": "low", + "auditMode": "direct" + }, + "SdkAnalysisLevel": "9.0.300" + }, + "frameworks": { + "net9.0": { + "targetAlias": "net9.0", + "imports": [ + "net461", + "net462", + "net47", + "net471", + "net472", + "net48", + "net481" + ], + "assetTargetFallback": true, + "warn": true, + "frameworkReferences": { + "Microsoft.NETCore.App": { + "privateAssets": "all" + } + }, + "runtimeIdentifierGraphPath": "/Users/blakeslee/Library/Application Support/Nucleic/sessions/704B73C5-6D1C-460E-869C-21B3914B2CE4/claude-home/.dotnet/sdk/9.0.316/PortableRuntimeIdentifierGraph.json" + } + } + } +} \ No newline at end of file diff --git a/NucleicBroker/obj/project.nuget.cache b/NucleicBroker/obj/project.nuget.cache new file mode 100644 index 0000000..52bb277 --- /dev/null +++ b/NucleicBroker/obj/project.nuget.cache @@ -0,0 +1,8 @@ +{ + "version": 2, + "dgSpecHash": "/9BJzGlDuxs=", + "success": true, + "projectFilePath": "/Users/blakeslee/.nucleic/control/nucleic/.nucleic/worktrees/keen-river-gecko-yexx/windows/NucleicBroker/NucleicBroker.csproj", + "expectedPackageFiles": [], + "logs": [] +} \ No newline at end of file diff --git a/props/Directory.Build.props b/props/Directory.Build.props new file mode 100644 index 0000000..2aedd59 --- /dev/null +++ b/props/Directory.Build.props @@ -0,0 +1,27 @@ + + + + net9.0 + latest + enable + enable + + true + + + + + $(NUCLEIC_CHANNEL) + dev + + + $(DefineConstants);NUCLEIC_STABLE + $(DefineConstants);NUCLEIC_RC + $(DefineConstants);NUCLEIC_BETA + $(DefineConstants);NUCLEIC_CANARY + $(DefineConstants);NUCLEIC_DEV + + diff --git a/props/swift-version.txt b/props/swift-version.txt new file mode 100644 index 0000000..52b6bb4 --- /dev/null +++ b/props/swift-version.txt @@ -0,0 +1 @@ +swift-6.2.1-RELEASE