* chore(standards): preserve owned-source copyright notices Add accurate repository copyright and license comments to 50 owned source/build/configuration files. Preserve existing holders, upstream wrappers, legal payloads and schema/data exemptions. Exact inverse-byte reconstruction and applicable parser/token/AST checks prove comment-only changes; existing relevant regressions pass. Co-Authored-By: Codex (GPT-6) <noreply@openai.com> Signed-off-by: James Maes <james@kof22.com> * chore: enforce owned source copyright notices Check real leading comments against explicit repository provenance and retain existing native style gates. Co-Authored-By: Codex GPT-6 <noreply@openai.com> Signed-off-by: James Maes <james@kof22.com> --------- Signed-off-by: James Maes <james@kof22.com> Co-authored-by: Codex (GPT-6) <noreply@openai.com>
20 lines
856 B
C#
20 lines
856 B
C#
// Copyright 2026 Kingsrook, LLC
|
|
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
using Qqq.PrintAgent.Core.Authentication;
|
|
|
|
internal static class WorkloadDiscovery
|
|
{
|
|
internal static async Task<QqqApiDiscovery> DiscoverRealtimeAsync(QqqSessionClient client, CancellationToken cancellationToken)
|
|
{
|
|
QqqApiDiscovery discovery = await client.DiscoverAsync(cancellationToken);
|
|
// Core discovery validates strict stable SemVer; realtime uses the same major gate as ConnectPrintingAsync.
|
|
QqqApiDiscovery.Extension extension = discovery.Extensions.Single(item => string.Equals(item.Name, "printing", StringComparison.Ordinal));
|
|
if(!Version.TryParse(extension.Version, out Version? version) || version.Major != 2)
|
|
{
|
|
throw new InvalidDataException("Native realtime printing API required.");
|
|
}
|
|
return discovery;
|
|
}
|
|
}
|