From 5dbd03b01969c2ecf94c8925e2c2bb41fa1850a8 Mon Sep 17 00:00:00 2001 From: sammiller Date: Sun, 27 Sep 2026 18:57:01 +0100 Subject: [PATCH 1/9] [CON.17] Add compiled descriptor compatibility gate and mutation tests --- eng/check_compatibility.py | 190 +++++++++++++++++++++ tests/tooling/test_compatibility_matrix.py | 94 ++++++++++ 2 files changed, 284 insertions(+) create mode 100644 eng/check_compatibility.py create mode 100644 tests/tooling/test_compatibility_matrix.py diff --git a/eng/check_compatibility.py b/eng/check_compatibility.py new file mode 100644 index 00000000..7e8d9a89 --- /dev/null +++ b/eng/check_compatibility.py @@ -0,0 +1,190 @@ +# SPDX-License-Identifier: Apache-2.0 +"""Offline compatibility checks over compiled FileDescriptorSet bytes. + +This reader covers descriptor metadata only; it is not a business wire codec. +It uses no source-regex approximation, package restore or live service. +""" +from __future__ import annotations + +import argparse +import json +from pathlib import Path + + +def fields(data: bytes) -> dict[int, list[int | bytes]]: + """Read a bounded protobuf metadata message, refusing malformed input.""" + result: dict[int, list[int | bytes]] = {} + at = 0 + + def varint() -> int: + nonlocal at + value = 0 + for shift in range(0, 70, 7): + if at >= len(data): + raise ValueError("Truncated descriptor varint") + byte = data[at] + at += 1 + if shift == 63 and byte > 1: + raise ValueError("Descriptor varint overflow") + value |= (byte & 127) << shift + if byte < 128: + return value + raise ValueError("Descriptor varint overflow") + + while at < len(data): + key = varint() + tag, wire = key >> 3, key & 7 + if not 1 <= tag <= 536870911: + raise ValueError("Invalid descriptor field tag") + if wire == 0: + value = varint() + elif wire in (1, 2, 5): + length = varint() if wire == 2 else (8 if wire == 1 else 4) + if length > len(data) - at: + raise ValueError("Truncated descriptor field") + value = data[at:at + length] + at += length + else: + raise ValueError("Unsupported descriptor wire type") + result.setdefault(tag, []).append(value) + return result + + +def one(message: dict, tag: int, default=None): + values = message.get(tag, []) + if len(values) > 1: + raise ValueError(f"Duplicate singular descriptor field {tag}") + return values[0] if values else default + + +def text(message: dict, tag: int, default="") -> str: + value = one(message, tag) + if value is None: + return default + if not isinstance(value, bytes): + raise ValueError("Descriptor string has wrong wire type") + return value.decode("utf-8", errors="strict") + + +def descriptor(data: bytes) -> dict: + if not data or len(data) > 64 * 1024 * 1024: + raise ValueError("Descriptor set is empty or exceeds 64 MiB") + model = {"messages": {}, "enums": {}, "services": {}} + + def put(kind: str, name: str, value): + if name in model[kind]: + raise ValueError(f"Duplicate descriptor definition {name}") + model[kind][name] = value + + def enumeration(raw: bytes, prefix: str): + item = fields(raw) + name = prefix + "." + text(item, 1) + entries = {} + for raw_value in item.get(2, []): + value = fields(raw_value) + key = text(value, 1) + if key in entries: + raise ValueError("Duplicate enum name") + entries[key] = one(value, 2, 0) + put("enums", name, entries) + + def message(raw: bytes, prefix: str, depth: int = 0): + if depth > 100: + raise ValueError("Descriptor nesting exceeds 100") + item = fields(raw) + name = prefix + "." + text(item, 1) + groups = [text(fields(group), 1) for group in item.get(8, [])] + entries = {} + names = set() + for raw_field in item.get(2, []): + value = fields(raw_field) + tag = one(value, 3) + field_name = text(value, 1) + if not isinstance(tag, int) or tag <= 0 or tag in entries or field_name in names: + raise ValueError("Invalid or duplicate descriptor field") + names.add(field_name) + group = one(value, 9) + if group is not None and (not isinstance(group, int) or group >= len(groups)): + raise ValueError("Invalid descriptor oneof index") + entries[tag] = {"name": field_name, "type": one(value, 5), + "typeName": text(value, 6), "label": one(value, 4), + "oneof": None if group is None else groups[group], + "optional": one(value, 17, 0), "jsonName": text(value, 10)} + put("messages", name, entries) + for child in item.get(3, []): + message(child, name, depth + 1) + for child in item.get(4, []): + enumeration(child, name) + + seen_files = set() + for raw_file in fields(data).get(1, []): + file = fields(raw_file) + filename = text(file, 1) + if not filename or filename in seen_files: + raise ValueError("Missing or duplicate descriptor file") + seen_files.add(filename) + prefix = "." + text(file, 2) + for raw in file.get(4, []): + message(raw, prefix) + for raw in file.get(5, []): + enumeration(raw, prefix) + for raw in file.get(6, []): + service = fields(raw) + methods = {} + for raw_method in service.get(2, []): + method = fields(raw_method) + name = text(method, 1) + if name in methods: + raise ValueError("Duplicate service method") + methods[name] = {"input": text(method, 2), "output": text(method, 3), + "clientStreaming": one(method, 5, 0), + "serverStreaming": one(method, 6, 0)} + put("services", prefix + "." + text(service, 1), methods) + if not seen_files: + raise ValueError("No files in descriptor set") + return model + + +def compare(previous: dict, current: dict) -> list[str]: + """Existing tags, presence, exact types, enum numbers and RPC shapes are fixed. + + Additive declarations are allowed. Removal requires an explicit versioned + surface retirement before selecting this comparison; it is never silently + accepted just because a tag is reserved or has the same binary wire type. + """ + errors = [] + for kind in ("messages", "enums", "services"): + for name, old_entries in previous[kind].items(): + if name not in current[kind]: + errors.append(f"{kind}:{name}: deleted definition") + continue + new_entries = current[kind][name] + for key, old in old_entries.items(): + if key not in new_entries: + errors.append(f"{kind}:{name}:{key}: deleted member") + elif old != new_entries[key]: + errors.append(f"{kind}:{name}:{key}: changed member or reused tag") + return errors + + +def main() -> int: + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--previous", type=Path, required=True) + parser.add_argument("--current", type=Path, required=True) + parser.add_argument("--report", type=Path) + args = parser.parse_args() + previous = descriptor(args.previous.read_bytes()) + current = descriptor(args.current.read_bytes()) + errors = compare(previous, current) + report = {"schemaVersion": "contract-descriptor-compatibility.v1", "errors": errors, + "previousDefinitions": {key: len(value) for key, value in previous.items()}, + "currentDefinitions": {key: len(value) for key, value in current.items()}} + if args.report: + args.report.parent.mkdir(parents=True, exist_ok=True) + args.report.write_text(json.dumps(report, indent=2) + "\n", encoding="utf-8") + print(json.dumps(report)) + return 1 if errors else 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/tests/tooling/test_compatibility_matrix.py b/tests/tooling/test_compatibility_matrix.py new file mode 100644 index 00000000..c80137c1 --- /dev/null +++ b/tests/tooling/test_compatibility_matrix.py @@ -0,0 +1,94 @@ +# SPDX-License-Identifier: Apache-2.0 +"""Deliberate compiled-descriptor breaks must fail before publication.""" +from copy import deepcopy +from pathlib import Path +import sys +import unittest + +sys.path.insert(0, str(Path(__file__).resolve().parents[2] / "eng")) +from check_compatibility import compare, descriptor, fields + + +def integer(value): + result = bytearray() + while value >= 128: + result.append((value & 127) | 128) + value >>= 7 + return bytes(result + bytes([value])) + + +def member(tag, value): + if isinstance(value, int): + return integer(tag << 3) + integer(value) + if isinstance(value, str): + value = value.encode("utf-8") + return integer((tag << 3) | 2) + integer(len(value)) + value + + +def compiled(): + # Exact FileDescriptorSet / FileDescriptorProto field numbers, independent + # of the production reader. One message, enum and unary method suffice to + # exercise each immutable element, including int64 versus uint64. + field = b"".join(member(k, v) for k, v in [(1, "revision"), (3, 1), (4, 1), (5, 3), (10, "revision")]) + message = member(1, "Request") + member(2, field) + enum = member(1, "State") + member(2, member(1, "UNKNOWN") + member(2, 0)) + method = member(1, "Read") + member(2, ".fixture.Request") + member(3, ".fixture.Request") + service = member(1, "Api") + member(2, method) + file = member(1, "fixture.proto") + member(2, "fixture") + member(4, message) + member(5, enum) + member(6, service) + return member(1, file) + + +class CompatibilityTests(unittest.TestCase): + def setUp(self): + self.old = descriptor(compiled()) + self.new = deepcopy(self.old) + + def test_identical_descriptors(self): + self.assertEqual(compare(self.old, self.new), []) + + def test_additive_response_field_and_method(self): + self.new["messages"][".fixture.Request"][2] = {"name": "added"} + self.new["services"][".fixture.Api"]["NewMethod"] = {"input": ".fixture.Request"} + self.assertEqual(compare(self.old, self.new), []) + + def test_deletion_refused(self): + del self.new["messages"][".fixture.Request"][1] + self.assertIn("deleted member", compare(self.old, self.new)[0]) + + def test_reuse_and_exact_type_presence_changes_refused(self): + for key, replacement in [("name", "other"), ("type", 4), ("label", 3), + ("oneof", "new_group"), ("optional", 1), + ("typeName", ".different.Message"), ("jsonName", "other")]: + with self.subTest(key=key): + current = deepcopy(self.old) + current["messages"][".fixture.Request"][1][key] = replacement + self.assertTrue(compare(self.old, current)) + + def test_enum_number_and_rpc_streaming_changes_refused(self): + self.new["enums"][".fixture.State"]["UNKNOWN"] = 1 + self.new["services"][".fixture.Api"]["Read"]["serverStreaming"] = 1 + self.assertEqual(len(compare(self.old, self.new)), 2) + + def test_removed_message_enum_service_refused(self): + for kind in self.new: + self.new[kind].clear() + self.assertEqual(len(compare(self.old, self.new)), 3) + + def test_unknown_descriptor_metadata_is_ignored(self): + self.assertEqual(descriptor(compiled() + member(100, b"future")), self.old) + + def test_malformed_descriptor_refused(self): + for raw in [b"", b"\x00", b"\x0a\x7fshort", b"\x08" + b"\xff" * 10, + compiled()[:-1], compiled() + compiled()]: + with self.subTest(raw=raw): + with self.assertRaises(ValueError): + descriptor(raw) + + def test_fixed_width_truncation(self): + for raw in [b"\x09abc", b"\x0dabc"]: + with self.assertRaises(ValueError): + fields(raw) + + +if __name__ == "__main__": + unittest.main() From 717e0521af4bb1a0ac09b5dbf9b0ecc4eac446d5 Mon Sep 17 00:00:00 2001 From: sammiller Date: Sun, 27 Sep 2026 19:11:48 +0100 Subject: [PATCH 2/9] [CON.17] Add cross-language canonical semantic hash with shared golden vectors --- eng/contracts.py | 35 ++-- fixtures/public/con-17-compat-hash.json | 127 +++++++++++++++ package.json | 2 +- .../CanonicalSemanticHash.cs | 129 +++++++++++++++ src/public/ts/proto/src/index.ts | 1 + src/public/ts/proto/src/semantic-hash.ts | 153 ++++++++++++++++++ tests/StructureTests/Program.cs | 1 + tests/StructureTests/SemanticHashCases.cs | 34 ++++ tests/public/semantic-hash.test.mjs | 44 +++++ 9 files changed, 510 insertions(+), 16 deletions(-) create mode 100644 fixtures/public/con-17-compat-hash.json create mode 100644 src/public/dotnet/ArcForges.Contracts.Foundation/CanonicalSemanticHash.cs create mode 100644 src/public/ts/proto/src/semantic-hash.ts create mode 100644 tests/StructureTests/SemanticHashCases.cs create mode 100644 tests/public/semantic-hash.test.mjs diff --git a/eng/contracts.py b/eng/contracts.py index 2a978ff7..1e65add5 100644 --- a/eng/contracts.py +++ b/eng/contracts.py @@ -194,6 +194,25 @@ def emit(path: Path, content: str) -> None: + "export const contractServices = Object.freeze([" + ", ".join(s["name"] for s in services) + "] as const);\n") +def generate_export_barrel(row: dict, output: Path, check: bool = False) -> None: + barrel = "// SPDX-License-Identifier: Apache-2.0\n// Generated by ArcForges Contracts; do not edit.\n" + barrel += "".join(f'export * from "./gen/{file.relative_to(output).as_posix()[:-3]}.js";\n' + for file in sorted(output.rglob("*.ts"))) + barrel += 'export * from "./shapes/gen/proto.js";\n' + if row['id'] == '@arcforges/proto': + barrel += 'export * from "./values.js";\n' + barrel += 'export * from "./wire.js";\n' + barrel += 'export * from "./semantic-hash.js";\n' + if proto_services(row): + barrel += 'export * from "./services/gen/catalog.js";\n' + index_file = ROOT / row["sourceRoot"] / "src/index.ts" + if check: + if not index_file.is_file() or index_file.read_text(encoding="utf-8") != barrel: + raise ValueError("Stale generated export barrel: " + str(index_file)) + else: + index_file.write_text(barrel, encoding="utf-8") + + def generate(check: bool = False) -> None: ARTIFACTS.mkdir(exist_ok=True) platform_key = {"Windows": "windows_x64", "Linux": "linux_x64", "Darwin": "macosx_x64"}.get(platform.system()) @@ -250,21 +269,7 @@ def common(row: dict) -> list: normalize_generated(file) sync_generated(output, target, check) if row["kind"] == "npm": - barrel = "// SPDX-License-Identifier: Apache-2.0\n// Generated by ArcForges Contracts; do not edit.\n" - barrel += "".join(f'export * from "./gen/{file.relative_to(output).as_posix()[:-3]}.js";\n' - for file in sorted(output.rglob("*.ts"))) - barrel += 'export * from "./shapes/gen/proto.js";\n' - if row['id'] == '@arcforges/proto': - barrel += 'export * from "./values.js";\n' - barrel += 'export * from "./wire.js";\n' - if proto_services(row): - barrel += 'export * from "./services/gen/catalog.js";\n' - index_file = ROOT / row["sourceRoot"] / "src/index.ts" - if check: - if not index_file.is_file() or index_file.read_text(encoding="utf-8") != barrel: - raise ValueError("Stale generated export barrel: " + str(index_file)) - else: - index_file.write_text(barrel, encoding="utf-8") + generate_export_barrel(row, output, check) run(*common(public), "--include_imports", f"--descriptor_set_out={ARTIFACTS / 'contracts.binpb'}") from kotlin_tools import generate as generate_kotlin maven = next(row for row in packages if row["id"] == "io.github.arcforges:contracts-proto") diff --git a/fixtures/public/con-17-compat-hash.json b/fixtures/public/con-17-compat-hash.json new file mode 100644 index 00000000..d6ba5450 --- /dev/null +++ b/fixtures/public/con-17-compat-hash.json @@ -0,0 +1,127 @@ +{ + "schemaVersion": "con-17-compat-hash.v1", + "license": "Apache-2.0", + "authority": "registry04 section 2 / WP03.06; these examples are not production command profiles", + "vectors": [ + { + "id": "property-order-a", + "input": "{\"schemaVersion\":\"example.v1\",\"z\":true,\"a\":\"9007199254740993\"}", + "canonical": "{\"a\":\"9007199254740993\",\"schemaVersion\":\"example.v1\",\"z\":true}", + "sha256": "228310716bcef7eb64ee57c4de81194c51c2b14c912cbc94422a069396a09699" + }, + { + "id": "property-order-b", + "input": " { \"a\":\"9007199254740993\",\"z\":true,\"schemaVersion\":\"example.v1\" } ", + "canonical": "{\"a\":\"9007199254740993\",\"schemaVersion\":\"example.v1\",\"z\":true}", + "sha256": "228310716bcef7eb64ee57c4de81194c51c2b14c912cbc94422a069396a09699" + }, + { + "id": "missing", + "input": "{\"schemaVersion\":\"example.v1\"}", + "canonical": "{\"schemaVersion\":\"example.v1\"}", + "sha256": "1c183843911cec857d2e9d52987c347ff50dd52b7a8ef1d8e46f58922afdd8c6" + }, + { + "id": "explicit-null", + "input": "{\"schemaVersion\":\"example.v1\",\"value\":null}", + "canonical": "{\"schemaVersion\":\"example.v1\",\"value\":null}", + "sha256": "5b2d9cf5a055a61d82bd7dfd89dfa2dc11c7484505a33fb39c9d117fb4ddfb45" + }, + { + "id": "empty-array", + "input": "{\"value\":[],\"schemaVersion\":\"example.v1\"}", + "canonical": "{\"schemaVersion\":\"example.v1\",\"value\":[]}", + "sha256": "e11497b034e66a29928f6a03220a7680f8846fd19236ccf3e9cd42fd992ebc56" + }, + { + "id": "exact-maxima", + "input": "{\"u\":\"18446744073709551615\",\"i\":\"9223372036854775807\",\"decimal\":\"0.000000001\",\"schemaVersion\":\"example.v1\"}", + "canonical": "{\"decimal\":\"0.000000001\",\"i\":\"9223372036854775807\",\"schemaVersion\":\"example.v1\",\"u\":\"18446744073709551615\"}", + "sha256": "de1afe4a563c5ac077a813690fd74ba6c7819d64922bd921c318ac7b7b73964c" + }, + { + "id": "unicode-preserved", + "input": "{\"value\":\"A中😀é\",\"schemaVersion\":\"example.v1\"}", + "canonical": "{\"schemaVersion\":\"example.v1\",\"value\":\"A中😀é\"}", + "sha256": "ce4fb4888658b79efa5454bfbac48183a872907372766e21097b2c697a8f05ee" + }, + { + "id": "owner-nfc", + "input": "{\"value\":\"é\",\"other\":\"é\",\"schemaVersion\":\"example.v1\"}", + "nfcPaths": ["/value"], + "canonical": "{\"other\":\"é\",\"schemaVersion\":\"example.v1\",\"value\":\"é\"}", + "sha256": "e8728c4b8c35bed53f7e95096d62661a62bfab014925bc01b6fd2ac08ef85aa6" + }, + { + "id": "escaped-controls", + "input": "{\"schemaVersion\":\"example.v1\",\"value\":\"\\u0000\\b\\f\\n\\r\\t\\\"\\\\/\"}", + "canonical": "{\"schemaVersion\":\"example.v1\",\"value\":\"\\u0000\\b\\f\\n\\r\\t\\\"\\\\/\"}", + "sha256": "05f696b27e37f383291d617bdb3b5caaee2d68d3c25933da1cbfd4fe0fc68b75" + }, + { + "id": "numeric-properties-sort-ordinal", + "input": "{\"2\":\"two\",\"10\":\"ten\",\"schemaVersion\":\"example.v1\"}", + "canonical": "{\"10\":\"ten\",\"2\":\"two\",\"schemaVersion\":\"example.v1\"}", + "sha256": "f0780853a18bead8642372690716b53df4916925a43ac968b330a131a90ad7b3" + }, + { + "id": "uuid-hash-bytes", + "input": "{\"schemaVersion\":\"example.v1\",\"id\":\"00112233-4455-6677-8899-aabbccddeeff\",\"bytes\":\"ABEiM0RVZneImaq7zN3u_w\"}", + "canonical": "{\"bytes\":\"ABEiM0RVZneImaq7zN3u_w\",\"id\":\"00112233-4455-6677-8899-aabbccddeeff\",\"schemaVersion\":\"example.v1\"}", + "sha256": "1c6d420632e17ded885dbc7222b56fbe54ce3086b9a9131b9149806e2462a688" + }, + { + "id": "nested-ordered-array", + "input": "{\"schemaVersion\":\"example.v1\",\"items\":[{\"b\":false,\"a\":null},\"x\"]}", + "canonical": "{\"items\":[{\"a\":null,\"b\":false},\"x\"],\"schemaVersion\":\"example.v1\"}", + "sha256": "97bc10b813950b79ffda938cfe8a207af84e6feea49aebb7f86d330a1c085c07" + } + ], + "invalid": [ + { + "id": "duplicate", + "input": "{\"schemaVersion\":\"example.v1\",\"a\":null,\"a\":true}" + }, + { + "id": "escaped-duplicate", + "input": "{\"schemaVersion\":\"example.v1\",\"a\":null,\"\\u0061\":true}" + }, + { + "id": "unpaired-high", + "input": "{\"schemaVersion\":\"example.v1\",\"a\":\"\\ud800\"}" + }, + { + "id": "unpaired-low", + "input": "{\"schemaVersion\":\"example.v1\",\"a\":\"\\udfff\"}" + }, + { + "id": "non-ascii-key", + "input": "{\"schemaVersion\":\"example.v1\",\"中\":null}" + }, + { + "id": "unsafe-number", + "input": "{\"schemaVersion\":\"example.v1\",\"a\":9007199254740993}" + }, + { + "id": "float-number", + "input": "{\"schemaVersion\":\"example.v1\",\"a\":0.1}" + }, + { + "id": "nonfinite", + "input": "{\"schemaVersion\":\"example.v1\",\"a\":NaN}" + }, + { + "id": "missing-version", + "input": "{\"a\":true}" + }, + { + "id": "invalid-normalization", + "input": "{\"schemaVersion\":\"example.v1\"}", + "nfcPaths": ["/missing"] + }, + { + "id": "trailing-comma", + "input": "{\"schemaVersion\":\"example.v1\",}" + } + ] +} diff --git a/package.json b/package.json index 4663af75..3bc4ef5b 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,7 @@ "generate": "python eng/contracts.py generate", "generate:check": "python eng/contracts.py generate --check", "build": "npm run build --workspace @arcforges/proto && npm run build --workspace @arcforges/api-client && npm run build --workspace @arcforges/contract-fixtures && npm run build --workspace @arcforges/ai-internal && npm run build --workspace @arcforges/operator-client", - "test": "node --test tests/public/wire.test.mjs tests/public/structure.test.mjs tests/public/foundation-links.test.mjs tests/public/serialization.test.mjs && tsc --noEmit --strict --target es2022 --module nodenext tests/public/foundation-types.ts", + "test": "node --test tests/public/wire.test.mjs tests/public/structure.test.mjs tests/public/foundation-links.test.mjs tests/public/serialization.test.mjs tests/public/semantic-hash.test.mjs && tsc --noEmit --strict --target es2022 --module nodenext tests/public/foundation-types.ts", "format:check": "prettier --check .", "format": "prettier --write .", "verify": "python eng/contracts.py verify-local" diff --git a/src/public/dotnet/ArcForges.Contracts.Foundation/CanonicalSemanticHash.cs b/src/public/dotnet/ArcForges.Contracts.Foundation/CanonicalSemanticHash.cs new file mode 100644 index 00000000..702adce2 --- /dev/null +++ b/src/public/dotnet/ArcForges.Contracts.Foundation/CanonicalSemanticHash.cs @@ -0,0 +1,129 @@ +// SPDX-License-Identifier: Apache-2.0 +using System.Security.Cryptography; +using System.Text; +using System.Text.Json; + +namespace ArcForges.Contracts.Foundation; + +/// Registry04 semantic JSON for new owner profiles, never protobuf byte hashing. +public static class CanonicalSemanticHash +{ + /// + /// Canonicalizes an owner-projected JSON object with an explicit schemaVersion. + /// Exact numeric values, UUIDs, hashes and bytes must already use the owner's + /// canonical string adapters. Numbers are rejected rather than rounded. + /// NFC is applied only at the supplied RFC6901 string paths. Existing native + /// content and content-origin hash formats are not routed through this API. + /// + public static string Canonicalize(string json, IReadOnlySet? nfcPaths = null) + { + ArgumentNullException.ThrowIfNull(json); + ValidateScalars(json); + if (Encoding.UTF8.GetByteCount(json) > 4 * 1024 * 1024) + throw new ArgumentException("Semantic input exceeds 4 MiB.", nameof(json)); + using var document = JsonDocument.Parse(json, new JsonDocumentOptions { MaxDepth = 32 }); + var root = document.RootElement; + if (root.ValueKind != JsonValueKind.Object || !root.TryGetProperty("schemaVersion", out var profile) + || profile.ValueKind != JsonValueKind.String || string.IsNullOrEmpty(profile.GetString())) + throw new ArgumentException("An explicit owner schemaVersion is required.", nameof(json)); + var normalized = new HashSet(StringComparer.Ordinal); + var output = new StringBuilder(); + Write(root, "", output, nfcPaths, normalized); + if (nfcPaths is not null && !normalized.SetEquals(nfcPaths)) + throw new ArgumentException("Every normalization path must identify a present string.", nameof(nfcPaths)); + return output.ToString(); + } + + /// Returns lower-case SHA-256 of the canonical UTF-8 JSON. + public static string Hash(string json, IReadOnlySet? nfcPaths = null) => + Convert.ToHexStringLower(SHA256.HashData(Encoding.UTF8.GetBytes(Canonicalize(json, nfcPaths)))); + + private static void Write(JsonElement value, string path, StringBuilder output, + IReadOnlySet? nfcPaths, HashSet normalized) + { + switch (value.ValueKind) + { + case JsonValueKind.Object: + var properties = value.EnumerateObject().ToArray(); + var names = new HashSet(StringComparer.Ordinal); + foreach (var property in properties) + { + if (!names.Add(property.Name) || property.Name.Any(c => c > 127)) + throw new ArgumentException("Duplicate or non-ASCII semantic property name."); + } + Array.Sort(properties, (left, right) => StringComparer.Ordinal.Compare(left.Name, right.Name)); + output.Append('{'); + for (var index = 0; index < properties.Length; index++) + { + if (index != 0) output.Append(','); + var property = properties[index]; + Quote(property.Name, output); + output.Append(':'); + Write(property.Value, path + "/" + property.Name.Replace("~", "~0", StringComparison.Ordinal) + .Replace("/", "~1", StringComparison.Ordinal), output, nfcPaths, normalized); + } + output.Append('}'); + break; + case JsonValueKind.Array: + output.Append('['); + var itemIndex = 0; + foreach (var item in value.EnumerateArray()) + { + if (itemIndex != 0) output.Append(','); + Write(item, path + "/" + itemIndex.ToString(System.Globalization.CultureInfo.InvariantCulture), output, nfcPaths, normalized); + itemIndex++; + } + output.Append(']'); + break; + case JsonValueKind.String: + var text = value.GetString()!; + ValidateScalars(text); + if (nfcPaths?.Contains(path) == true) + { + text = text.Normalize(NormalizationForm.FormC); + normalized.Add(path); + } + Quote(text, output); + break; + case JsonValueKind.True: output.Append("true"); break; + case JsonValueKind.False: output.Append("false"); break; + case JsonValueKind.Null: output.Append("null"); break; + default: throw new ArgumentException("Semantic numbers must use exact canonical strings."); + } + } + + private static void ValidateScalars(string value) + { + for (var index = 0; index < value.Length; index++) + { + if (!char.IsSurrogate(value[index])) continue; + if (!char.IsHighSurrogate(value[index]) || index + 1 >= value.Length || !char.IsLowSurrogate(value[index + 1])) + throw new ArgumentException("Unpaired surrogate in semantic input."); + index++; + } + } + + private static void Quote(string value, StringBuilder output) + { + ValidateScalars(value); + output.Append('"'); + foreach (var character in value) + { + switch (character) + { + case '"': output.Append("\\\""); break; + case '\\': output.Append("\\\\"); break; + case '\b': output.Append("\\b"); break; + case '\f': output.Append("\\f"); break; + case '\n': output.Append("\\n"); break; + case '\r': output.Append("\\r"); break; + case '\t': output.Append("\\t"); break; + default: + if (character < 32) output.Append("\\u").Append(((int)character).ToString("x4", System.Globalization.CultureInfo.InvariantCulture)); + else output.Append(character); + break; + } + } + output.Append('"'); + } +} diff --git a/src/public/ts/proto/src/index.ts b/src/public/ts/proto/src/index.ts index f4dd0806..1aa49726 100644 --- a/src/public/ts/proto/src/index.ts +++ b/src/public/ts/proto/src/index.ts @@ -7,4 +7,5 @@ export * from "./gen/arcforges/publicapi/v1/content_pb.js"; export * from "./shapes/gen/proto.js"; export * from "./values.js"; export * from "./wire.js"; +export * from "./semantic-hash.js"; export * from "./services/gen/catalog.js"; diff --git a/src/public/ts/proto/src/semantic-hash.ts b/src/public/ts/proto/src/semantic-hash.ts new file mode 100644 index 00000000..c7bb41b1 --- /dev/null +++ b/src/public/ts/proto/src/semantic-hash.ts @@ -0,0 +1,153 @@ +// SPDX-License-Identifier: Apache-2.0 +// WHATWG APIs exist in Node and supported browsers without importing Node types. +declare const TextEncoder: { new (): { encode(input: string): Uint8Array } }; +declare const crypto: { + subtle: { digest(algorithm: string, data: Uint8Array): Promise }; +}; + +function scalars(value: string): void { + for (let index = 0; index < value.length; index++) { + const code = value.charCodeAt(index); + if (code < 0xd800 || code > 0xdfff) continue; + const next = value.charCodeAt(++index); + if (code > 0xdbff || !(next >= 0xdc00 && next <= 0xdfff)) + throw new TypeError("Unpaired surrogate in semantic input"); + } +} + +class SemanticReader { + private at = 0; + constructor(private readonly input: string) {} + document(): unknown { + const value = this.value(0); + this.space(); + if (this.at !== this.input.length) throw new SyntaxError("Trailing semantic input"); + return value; + } + private space(): void { + while (this.at < this.input.length && /[\x20\t\r\n]/.test(this.input[this.at]!)) this.at++; + } + private string(): string { + const start = this.at++; + let escaped = false; + while (this.at < this.input.length) { + const character = this.input[this.at++]!; + if (!escaped && character === '"') { + const result: unknown = JSON.parse(this.input.slice(start, this.at)); + if (typeof result !== "string") throw new SyntaxError("Expected string"); + scalars(result); + return result; + } + if (!escaped && character === "\\") escaped = true; + else escaped = false; + } + throw new SyntaxError("Unterminated semantic string"); + } + private value(depth: number): unknown { + this.space(); + const kind = this.input[this.at]; + if (kind === '"') return this.string(); + for (const [literal, value] of [ + ["true", true], + ["false", false], + ["null", null], + ] as const) { + if (this.input.startsWith(literal, this.at)) { + this.at += literal.length; + return value; + } + } + if (kind !== "{" && kind !== "[") + throw new SyntaxError("Numbers require exact canonical strings"); + if (depth >= 32) throw new SyntaxError("Semantic depth exceeds 32"); + this.at++; + const close = kind === "{" ? "}" : "]"; + const object: Record = Object.create(null) as Record; + const array: unknown[] = []; + this.space(); + if (this.input[this.at] === close) { + this.at++; + return kind === "{" ? object : array; + } + for (;;) { + this.space(); + if (kind === "{") { + if (this.input[this.at] !== '"') throw new SyntaxError("Expected property name"); + const key = this.string(); + if (/[^\x00-\x7f]/.test(key) || Object.hasOwn(object, key)) + throw new SyntaxError("Duplicate or non-ASCII semantic property"); + this.space(); + if (this.input[this.at++] !== ":") throw new SyntaxError("Expected colon"); + object[key] = this.value(depth + 1); + } else array.push(this.value(depth + 1)); + this.space(); + const delimiter = this.input[this.at++]; + if (delimiter === close) return kind === "{" ? object : array; + if (delimiter !== ",") throw new SyntaxError("Expected comma"); + } + } +} + +/** + * Registry04 JSON for a new owner profile with an explicit schemaVersion. + * Exact numbers, UUIDs, hashes and bytes use the owner's canonical string adapters. + * NFC is opt-in at RFC6901 string paths; existing content formats retain their own hash. + */ +export function canonicalSemanticJson( + json: string, + nfcPaths: ReadonlySet = new Set(), +): string { + scalars(json); + if (new TextEncoder().encode(json).byteLength > 4 * 1024 * 1024) + throw new RangeError("Semantic input exceeds 4 MiB"); + const root = new SemanticReader(json).document(); + if ( + root === null || + typeof root !== "object" || + Array.isArray(root) || + typeof (root as Record).schemaVersion !== "string" || + !(root as Record).schemaVersion + ) + throw new TypeError("An explicit owner schemaVersion is required"); + const normalized = new Set(); + function write(value: unknown, path: string): string { + if (typeof value === "string") { + if (nfcPaths.has(path)) { + value = value.normalize("NFC"); + normalized.add(path); + } + return JSON.stringify(value); + } + if (value === null || typeof value === "boolean") return JSON.stringify(value); + if (Array.isArray(value)) + return "[" + value.map((item, index) => write(item, path + "/" + index)).join(",") + "]"; + const object = value as Record; + return ( + "{" + + Object.keys(object) + .sort() + .map( + (key) => + JSON.stringify(key) + + ":" + + write(object[key], path + "/" + key.replaceAll("~", "~0").replaceAll("/", "~1")), + ) + .join(",") + + "}" + ); + } + const result = write(root, ""); + if (normalized.size !== nfcPaths.size) + throw new TypeError("Every normalization path must identify a present string"); + return result; +} + +/** SHA-256 over canonical UTF-8, returned as lower-case hexadecimal. */ +export async function canonicalSemanticHash( + json: string, + nfcPaths?: ReadonlySet, +): Promise { + const bytes = new TextEncoder().encode(canonicalSemanticJson(json, nfcPaths)); + const digest = new Uint8Array(await crypto.subtle.digest("SHA-256", bytes)); + return Array.from(digest, (value) => value.toString(16).padStart(2, "0")).join(""); +} diff --git a/tests/StructureTests/Program.cs b/tests/StructureTests/Program.cs index 71555720..770c6266 100644 --- a/tests/StructureTests/Program.cs +++ b/tests/StructureTests/Program.cs @@ -59,6 +59,7 @@ Console.WriteLine($"Validated {count} independent shape fixtures, duplicate-key rejection and SDK caller-owned invocation."); FoundationLinkCases.Run(); FoundationCases.Run(root, args.Contains("--foundation-exchange", StringComparer.Ordinal)); +SemanticHashCases.Run(root); return 0; static bool Proto(JsonElement value, Func validate) where T : IMessage, new() diff --git a/tests/StructureTests/SemanticHashCases.cs b/tests/StructureTests/SemanticHashCases.cs new file mode 100644 index 00000000..874c1214 --- /dev/null +++ b/tests/StructureTests/SemanticHashCases.cs @@ -0,0 +1,34 @@ +// SPDX-License-Identifier: Apache-2.0 +using System.Text.Json; +using ArcForges.Contracts.Foundation; + +internal static class SemanticHashCases +{ + internal static void Run(string root) + { + using var document = JsonDocument.Parse(File.ReadAllText(Path.Combine(root, "fixtures/public/con-17-compat-hash.json"))); + foreach (var vector in document.RootElement.GetProperty("vectors").EnumerateArray()) + { + var paths = Paths(vector); + var input = vector.GetProperty("input").GetString()!; + if (CanonicalSemanticHash.Canonicalize(input, paths) != vector.GetProperty("canonical").GetString() + || CanonicalSemanticHash.Hash(input, paths) != vector.GetProperty("sha256").GetString()) + throw new InvalidOperationException("Semantic golden mismatch: " + vector.GetProperty("id").GetString()); + } + foreach (var vector in document.RootElement.GetProperty("invalid").EnumerateArray()) + { + var refused = false; + try { CanonicalSemanticHash.Canonicalize(vector.GetProperty("input").GetString()!, Paths(vector)); } + catch (Exception exception) when (exception is ArgumentException or JsonException or InvalidOperationException) { refused = true; } + if (!refused) throw new InvalidOperationException("Invalid semantic input accepted: " + vector.GetProperty("id").GetString()); + } + const string command = """{"schemaVersion":"example-command.v1","operationId":"setValue","realm":"official","workspaceId":"00112233-4455-6677-8899-aabbccddeeff","actorId":"11223344-5566-7788-99aa-bbccddeeff00","revisionKind":"cloud","revisionValue":"1","fields":{"value":null}}"""; + if (CanonicalSemanticHash.Hash(command) == CanonicalSemanticHash.Hash(command.Replace("\"revisionValue\":\"1\"", "\"revisionValue\":\"2\"", StringComparison.Ordinal))) + throw new InvalidOperationException("Owner revision must affect command identity."); + Console.WriteLine("Validated shared C#/TypeScript canonical semantic hash golden vectors and refusals."); + } + + private static HashSet Paths(JsonElement vector) => vector.TryGetProperty("nfcPaths", out var paths) + ? paths.EnumerateArray().Select(item => item.GetString()!).ToHashSet(StringComparer.Ordinal) + : new HashSet(StringComparer.Ordinal); +} diff --git a/tests/public/semantic-hash.test.mjs b/tests/public/semantic-hash.test.mjs new file mode 100644 index 00000000..098cf371 --- /dev/null +++ b/tests/public/semantic-hash.test.mjs @@ -0,0 +1,44 @@ +// SPDX-License-Identifier: Apache-2.0 +import assert from "node:assert/strict"; +import { readFileSync } from "node:fs"; +import { test } from "node:test"; +import { + canonicalSemanticJson, + canonicalSemanticHash, +} from "../../src/public/ts/proto/dist/semantic-hash.js"; + +const fixture = JSON.parse( + readFileSync(new URL("../../fixtures/public/con-17-compat-hash.json", import.meta.url), "utf8"), +); +for (const vector of fixture.vectors) { + test("semantic hash: " + vector.id, async () => { + const paths = new Set(vector.nfcPaths ?? []); + assert.equal(canonicalSemanticJson(vector.input, paths), vector.canonical); + assert.equal(await canonicalSemanticHash(vector.input, paths), vector.sha256); + }); +} +for (const vector of fixture.invalid) { + test("semantic refusal: " + vector.id, () => { + assert.throws(() => canonicalSemanticJson(vector.input, new Set(vector.nfcPaths ?? []))); + }); +} +test("depth and raw surrogate refusal", () => { + assert.throws(() => + canonicalSemanticJson( + '{"schemaVersion":"example.v1","value":"' + String.fromCharCode(0xd800) + '"}', + ), + ); + assert.throws(() => + canonicalSemanticJson( + '{"schemaVersion":"example.v1","value":' + "[".repeat(33) + "null" + "]".repeat(33) + "}", + ), + ); +}); +test("owner revision changes command semantic identity", async () => { + const command = + '{"schemaVersion":"example-command.v1","operationId":"setValue","realm":"official","workspaceId":"00112233-4455-6677-8899-aabbccddeeff","actorId":"11223344-5566-7788-99aa-bbccddeeff00","revisionKind":"cloud","revisionValue":"1","fields":{"value":null}}'; + assert.notEqual( + await canonicalSemanticHash(command), + await canonicalSemanticHash(command.replace('"revisionValue":"1"', '"revisionValue":"2"')), + ); +}); From e74afddebf27370b09afde1a11c871943cd56faa Mon Sep 17 00:00:00 2001 From: sammiller Date: Sun, 27 Sep 2026 19:19:49 +0100 Subject: [PATCH 3/9] [CON.17] Pin published compatibility window and exercise old-current codecs --- ArcForges.Contracts.slnx | 1 + Directory.Packages.props | 1 + eng/check_compatibility.py | 80 ++++++++++++++++-- .../foundation-1.0.0-ci.113.1.binpb | Bin 0 -> 8561 bytes .../public-api-1.0.0-ci.113.1.binpb | Bin 0 -> 48771 bytes eng/compatibility/window.json | 28 ++++++ eng/contracts.py | 12 +++ tests/StructureTests/CompatibilityCases.cs | 30 +++++++ .../PreviousClient/PreviousClient.csproj | 11 +++ .../StructureTests/PreviousClient/Program.cs | 29 +++++++ .../PreviousClient/packages.lock.json | 38 +++++++++ tests/StructureTests/Program.cs | 5 ++ tests/StructureTests/StructureTests.csproj | 1 + 13 files changed, 227 insertions(+), 9 deletions(-) create mode 100644 eng/compatibility/foundation-1.0.0-ci.113.1.binpb create mode 100644 eng/compatibility/public-api-1.0.0-ci.113.1.binpb create mode 100644 eng/compatibility/window.json create mode 100644 tests/StructureTests/CompatibilityCases.cs create mode 100644 tests/StructureTests/PreviousClient/PreviousClient.csproj create mode 100644 tests/StructureTests/PreviousClient/Program.cs create mode 100644 tests/StructureTests/PreviousClient/packages.lock.json diff --git a/ArcForges.Contracts.slnx b/ArcForges.Contracts.slnx index 2c506223..697297a1 100644 --- a/ArcForges.Contracts.slnx +++ b/ArcForges.Contracts.slnx @@ -22,4 +22,5 @@ + diff --git a/Directory.Packages.props b/Directory.Packages.props index 9b9c1474..950c5c77 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -4,6 +4,7 @@ true + diff --git a/eng/check_compatibility.py b/eng/check_compatibility.py index 7e8d9a89..98affbd9 100644 --- a/eng/check_compatibility.py +++ b/eng/check_compatibility.py @@ -7,6 +7,9 @@ from __future__ import annotations import argparse +from copy import deepcopy +from datetime import date +import hashlib import json from pathlib import Path @@ -167,23 +170,82 @@ def compare(previous: dict, current: dict) -> list[str]: return errors +def retained(model: dict, retirement: dict) -> dict: + """Apply only the exact retirement inventory already validated by Foundation. + + The historical descriptor bytes remain immutable. This projection is limited + to the two namespaces whose retirement is owned by CON.23; it never waives + retained field changes or a later service's compatibility requirements. + """ + result = deepcopy(model) + prefixes = (".arcforges.foundation.v1.", ".arcforges.publicapi.v1.") + for name in list(result["messages"]): + if not name.startswith(prefixes): + continue + short = name.rsplit(".", 1)[1] + if short in retirement.get("messages", []): + del result["messages"][name] + continue + for row in retirement.get("fields", {}).get(short, []): + tag = row["tag"] + field = result["messages"][name].get(tag) + if field is not None and field["name"] == row["name"]: + del result["messages"][name][tag] + return result + + +def check_window(root: Path) -> dict: + from check_foundation import check, safe_path + # This verifies the exact CON.23 retirement exceptions before using them. + check(root) + window = json.loads((root / "eng/compatibility/window.json").read_text(encoding="utf-8")) + if window["schemaVersion"] != "contract-compatibility-window.v1" or window["minimumReadSupportDays"] < 90: + raise ValueError("Invalid minimum compatibility window") + if (date.fromisoformat(window["earliestRetirement"]) - date.fromisoformat(window["openedOn"])).days < window["minimumReadSupportDays"]: + raise ValueError("Read compatibility window is shorter than its minimum") + if window["previousVersion"] != window["minimumVersion"]: + raise ValueError("Distinct minimum versions require their own pinned descriptors and offline harness") + inventory = json.loads((root / "eng/foundation-inventory.json").read_text(encoding="utf-8")) + results, errors = [], [] + for row in window["descriptors"]: + raw = safe_path(root, row["previousAndMinimum"]).read_bytes() + if hashlib.sha256(raw).hexdigest() != row["sha256"]: + raise ValueError("Historical descriptor fixture changed: " + row["package"]) + previous = retained(descriptor(raw), inventory.get("retirement", {})) + current = descriptor(safe_path(root, row["current"]).read_bytes()) + problems = compare(previous, current) + errors.extend(row["package"] + ": " + problem for problem in problems) + results.append({"package": row["package"], "retainedDefinitions": {key: len(value) for key, value in previous.items()}, + "check": "preserve published supported members used by both offline codec directions", + "errors": problems}) + return {"schemaVersion": "contract-compatibility-report.v1", "previousVersion": window["previousVersion"], + "minimumVersion": window["minimumVersion"], "coverage": window["coverage"], "descriptors": results, "errors": errors} + + def main() -> int: parser = argparse.ArgumentParser(description=__doc__) - parser.add_argument("--previous", type=Path, required=True) - parser.add_argument("--current", type=Path, required=True) + parser.add_argument("--previous", type=Path) + parser.add_argument("--current", type=Path) + parser.add_argument("--window", action="store_true") + parser.add_argument("--root", type=Path, default=Path(__file__).resolve().parents[1]) parser.add_argument("--report", type=Path) args = parser.parse_args() - previous = descriptor(args.previous.read_bytes()) - current = descriptor(args.current.read_bytes()) - errors = compare(previous, current) - report = {"schemaVersion": "contract-descriptor-compatibility.v1", "errors": errors, - "previousDefinitions": {key: len(value) for key, value in previous.items()}, - "currentDefinitions": {key: len(value) for key, value in current.items()}} + if args.window: + report = check_window(args.root) + else: + if args.previous is None or args.current is None: + parser.error("Use --window or both --previous and --current") + previous = descriptor(args.previous.read_bytes()) + current = descriptor(args.current.read_bytes()) + errors = compare(previous, current) + report = {"schemaVersion": "contract-descriptor-compatibility.v1", "errors": errors, + "previousDefinitions": {key: len(value) for key, value in previous.items()}, + "currentDefinitions": {key: len(value) for key, value in current.items()}} if args.report: args.report.parent.mkdir(parents=True, exist_ok=True) args.report.write_text(json.dumps(report, indent=2) + "\n", encoding="utf-8") print(json.dumps(report)) - return 1 if errors else 0 + return 1 if report["errors"] else 0 if __name__ == "__main__": diff --git a/eng/compatibility/foundation-1.0.0-ci.113.1.binpb b/eng/compatibility/foundation-1.0.0-ci.113.1.binpb new file mode 100644 index 0000000000000000000000000000000000000000..31cfff4d28f2ebaa24f688bb0000d15ca5207ea8 GIT binary patch literal 8561 zcmbsv%W~V+HIzh=JftWZbz(VA8k>1J%2XMvNt#ES7^EPJwM42ArNrrUFc5J?p(X(Z z0A;JwMOU57bkXS|KhR{;cGGX@vh7E7rt9<@dd|5QASe+M-L53ud(OG%{gU864Y+Fu zy(2&9i}0Nzf8;rKyzqT%!n!7T?w1fubo+-4NfHM3~P&_(Kk^ZTmfY(Dow{9*BTZKY^0ndn_C) z5U2cJdHv2>277DqgJzL&@KbvWs>i~1tN~HBLhzRbo zOqq2!J&ClB z0DAs#XnT%@!jpSnA$&=JV^sVUmID!v1`)aHGjd&(nCM-i@_s{>%bJEL9{i%V)Msk4?tey{<{ zE_w1`z=#A$5p;!Ks%e~-(^!JCHGZo8uLUTZ;>(c;qa6|1|Cio3pdy~0psrMsklfAS zD&-gr)vh(5+Vg`zjHM*6xkAdN6bgF4Cs29f2am%OyC+Cb3s+MpCkTlDGpNQa$$Yhv zX9}yC*1wQ1&83(EUuh;R#|M_jnQUc|X}*<7^L)ZH6Q<;i_AY!cz_fKLf-|cxJQ1*C ztQ3$gr9&;ge30CcA05Cod+dK!NDjDCyn>hW9&6T8G}wn5FTiySxC`vm|2YR0Q-mkJ z7Yg>V`vBwkRIxpSmz0vwB*C!;xY0li@u!6fpc2L5Kt)YUU8)>Ng1-pGCwAbuUO&WW zp1)f%lkX{BH-pcd^STUkkn1d96`5`hR$GeSSeQ(8{$n1BdeAe1zz?Ws^n6Fwe=ZvI zMY2ACBIXy-_k%N5OLhH?Oh02%O$CjNCYVI%H7E~77}|YdJr-vwgU^|u4j+m$g8B&Z zfr#)eskPTK-!chGcTU}&FeQpMPO+q^XGyX1sT4cKf-=4?Et%&m_$d?|%!2M9*%uMinYnN{L+aR5kc6NBK9=iS{up3}b^<*Xx(-aR(vM z-5Gc?Rx0nplsv}2DsN5l>ERQy0PThmfI$% zO*HZ-Ani#ktqFzENk6bLm}I?qGgEacrHo0$n8X7X=t!tA$mU^>pvD9w7B!R7{px?m zCgHra)P}_+WcI9?pkM>IX!oL#Jy5JCT4D_vQ&-DZq{u3WND(ZKfMAhu?9AjH^X6itV6 zQphlrWKPSb5Qh?0HCg@ih}*2OjMR-+C*6jok)i8hq}UGgNzP9xyo{%&IwVCXxF>-d zF&uSOCCt(U_nA5*xK}8Uuz5Ze(mLIJvrvrGELN#3d?aYveT;1y89Du8B0GFc&(j!i#n`l*V094*88M)i99hAL9Y&4@mzunqAekc%$$SWTw);wn zd3ZImlep`wyMHZsxKN?GO0iBpOUgJf|APCB#=t)$Uw;=0hxqG^e!fVss7K8G zSVzg=*0CKPb86rkp-#8(kVL^m5W2q-*5Mg0>^Kq7z)_;J1|1;`vzI2uC2EXS|2dQh z*0jC8poH!p9fd-!i)ffs-}D+@4usc_BtP_$`le@SpCeKER|#1Eb^(?qTvvM;3aG>* z7b|pJPvQf51Cx%72-4ULYmTCXMx8ZbITjN)b-YiRpG3jZpULAX z`t5+6BvDz213mfkrBS;qv1Bf3IidC*T=%gzrr1*id$^vCIEt6H=1ooA?(%C*x+9YV z6ltYIw&d0Aq>dUjsH%;VQbpqiJa0{VsQ%j=z>aWSTYBLK+;If)&N6!%Vw|o!#F-K+ zbU?#Q(HW`XMS9OH$O%rp52b`AH9nEsdpuqk%TKcMd$?4keqX+ENk`4)*B;#9+ZeSH*qw_ zd*W%NppuvaI&AWj^u+g}h>6A;`hk?Gh_4jzWCsuE9hziQWVmCD5$XZ{p+U*1-GP!f z8q)lzWT8d-_=w(m9mm`S3akD{-d`qlSbLx9w>=on zm}qhOMPLm0^Bcn%QqIK2@O7wg_h#W*jNYb{L*@fM#qF8g;bK;Z8wJ_4QIA0hq!J&; zSpl1)_=xDu&`Z!#jk|1FI2<=T8Q5pmF>a%|t)S#nR;OEdNH#b)S1c*}RM&ryS+7m? zgf7P`uCSOGF4R^`Nyq-cp>|~4JI>HZEGw)HZaA@pq@g9PSk5M~psYd$Neg?i5Pv-n zTFkks<5ZK=y`F47FWXxsK9=hB&e!L-9MH5(RXeWF@4^CAbk*HuCwJ8?m<&x_RBzyq z;`(<T57i`)t)_V3W@rrgJQgB1UTa*9Cc#&~&cX7zKiX)w;U!~p(`a_BreSvV zR=fMi+Hdde8qL;b%h;$rr@acVT!7eUZCLG2*V@u|ca3%}ht18+3qbM`Y0POa!ODf} z{r1Cl=d*Tge)ab`DDg^=)_b_Le!(=l<|AvTvtgX$Pwz%cRgTW}+Fx~K0L zRkA1n zKZOS((A_q6@Mmp-^ltB<#7%y)KGUTbzPs8hf36vuV@{Y`ICUjL(hc zKJ#3hf{G4gm~DN#R$BdP4)r@FePSKF6Te{T2YPE;Z?v{s7aT7WOyB-Yf3#;kG>lzT z?c4C?bZUz9wqbQPQ44JYm5k0j9k|oBHVk%|dF&i+PX}slclI}|PJ8X7W!GyYycXySYEl-N8SB ZZ1TTQtThv~G2Gh0y~9Q9NhAM<{{>cgW-|Z) literal 0 HcmV?d00001 diff --git a/eng/compatibility/public-api-1.0.0-ci.113.1.binpb b/eng/compatibility/public-api-1.0.0-ci.113.1.binpb new file mode 100644 index 0000000000000000000000000000000000000000..cb4adb51660cd871198d570a8ba75e803c1add67 GIT binary patch literal 48771 zcmc(IYm8*ub(Z_xwX0uK_cgwLT_4-m_Bf1n$959O&+6*xnYy=MKHYO~u2EE~uBz^? zOm$VKs(R*51QLmW7>r~R5g`OZVCPQ^iV#6WApwLVktiU641YiZMeqwGM^SzxD8Kl= zwf5d;pQ=99r|%^2XQt1tz4qCA?X}l?uVa3H(|n>aXrA;3r|sdVPx_a=R%6uZ_dfmj zwczRQ#h^dxmtOKc?p9pN6f|^ z(Db-n>GwwM-iRZnR?mU1TK%b6s`ZAWMsHMl)vR3hI`81!&3>;nltq*PR%Gj;HsbXh zx7Xnvr;}i9kfpyqjuar zDZOOoA9Z>ynH6E=iPQO%neDV>F2#HA%fxuC6{Fkcl3A#8nCPF(m=(Kq?H0%XyqO>L z`y;z`AIlsloK!3zr7xLfY`Rd8okyOXcOa$rnZ@B*t=n>9$t1wB-II!(NwT)wHE1M%dB@u$=$91vLjE>HF#MIVQQ_-Ra2}duZn(e-W22ZPhGZ$ zquutX@l1H%GAr$OE`Te`By@H;NTuk&fcDa+S!?zOgLbk?Qq481Tn#`#0be#NPx^yL z!;40ll)r}xOm148*8tOgaWVaV(%ui;H zInMB6KPmmC^jY)V0Bq}Vd+@Y=+U~UnLKwG~FfQ3)$^CfW|3*4`)7)w#^j9B}0BcZgoZa?G|%I}O-v{H_p@dtZVxZ|yMgI=e1I>c$7`$Qr3&sR`g4w@OGx{U20>C8il zT)iEFwqU+)F`4N6cXMXBJZM%2gZ_X*quFn%{1>6YC$9CrSq6V;pY{h&1ubj$Ud^O4 z8LDD?W1=3C1AWvK&)dUcF4g3+naqUN zWdX(169fqV*7ZieJZnt3IqDB8XHffb#tNNYX9Nb?ALO!HeDBh0W}*KCI-Di?0?Z!^ktPKc?mEWjzmpz5E4-NM%zwiOr()s{yfI zugfS^V=X*s`cS%O7JssT%mwAZ)dISTy|UOJbWS@xYZGMaY7l*Nf9y-|*g`>w-cp+m zx@~>b7(U|bX$D+lHm!T8BLHC{RkPun>Vr!m7&Q&1Zuy!AiZ6Q@=JRGj_WgE2=J1hB zQCjv#Csv5kS77+#Y|(}U>oo#@J?kx480aw{H!GI;Ly;Lhyy64O|>fZpRG>@<9H^pD`r*zER?N$a0AOUL*#C!H^{FYpN74>`&W zub(xBXTlmpM%dN|Xyj7B2!@@XZr6{W!eJ+jfCfi_ZJTUDADLb_n24wZD*E%Lz`k*# zciJXH@1L9u+v+Z&F=?OqHvHIa_fAJTAHK;x^ELG6D5(6Y9iv~GH>)YqEq%Z&0f{Fa zNN6WdTm#<$rlTi<7|Y@2Sk~UaS;efoWx`V@{*)a03Jd|k^Fx4Okmt<;y=X%S9NLNc zP`YE*E*ej}eRwggLyJe8;%?QpABvxg3;2Xt)kD#??3vaGW%7z^b{slQ@p@`+MDaZR zjRA?oqihI+p7cER)UGR(@{(F>So)lKz7O4)XU`7UgnN1(Ux8N=_9v*r%nN7Z0Q#DOo3yI z5=T3}*M4VYd-*eG*jSNQ@)aL6%V0G1^Zr2Bw2Zebp=B2hd=D+zU>MOD9Y8cdpuw)Q z^kGxzU7pi^v}>WGJ!#^*K4yxob`Nv_#SEQ@Lh_QZk*{1artXK52?S8lx5aj+jbFiG0$M9ojMYOj%++ut;Sq`_)NGrT&>ca(BaEgK|ZPYQy zKvrC{;|frYTocF3p-a%ICR(-%j#g)Q(QQ1fpTQd~Y6Y23(Y8K7BlqCVF=0vWvv%*# zWyJSV%UyetPV-xN8Vhv2arx}T0j*_9Z6}{UYvw7@t#+5q+^x0{OK)mX z&2InF$-gPw#YQVYZwdh+=*%6JefiBDvK+OP;8AE46W`o*|<6u({H-QTK?&EZ-~cV|D05XiQqP~5F}u%zGJH(xtmgibo@f5!ZWS@S`k zr|{{scDLJSu7&(z(=1B<_q*DR42zGM^~1)~2kh>&vyz!lJeINi9sQ8mNV;i|3&gc# z-TkU(!855LlzVNnA|oEQ2lS|v9-3tbT?(yaH;cROS38B5LkV?7C!N6NL-Xo%1Ut}8 zBh&F{eg9Qxl`bJhfAiO7%||`TK7Da{%xLyShiJ8u&m#6k-|MdLh4ht|b7#OrzcR-> z3CL2+kroCc)Yw@5nN!DO6rJ6n7QtsE8%XVr+L=624}#vy*hM!{-JthMi|TD~Ds&Kg zA0R*vHyX`CYs`hM90+#n@KLABfre1puC>9Ir8kYQFv&tASJw;tApG$~vm~g0X9UL& zUmF@cA@1e8KMU;C(G;}@CpkZ?95)$EL6Rt4NO$aqLjXeZ;TqcD3s_IBVhUf2LN zYncl@?)M*AH9tJ$sWlQq>}S{K;YvSYo&%L595;Fjh5JOj%J9Z39fj`l)NnXb0vpD2I_VZ8} z?EVU=iWB)srUlWxSiBeN*QqfO79i(hS3gpb1K7sWjwxOY+9z%JZ<;tFD>7UrkstW3 z$!GyMnBzR%zqeOqm`wE0+k4n+Tnx|pJZJ*LO>SI{`sZ?jZm-D*uLj~dwXU-7$!*0L z0W41J;&~fBgr~RHr_W~~+Kt1-4yN=YW}(x&xYS&`DX2cW z9Q11J7;FDAoj`Fk)%6+Z1jtJT6O>@b@n!22E^nfVo~RYHBc8D-ty~^`y6r)y->Tc5 z6-aWF2r@}f5@VSJIoE#kL=bhn6 z2cA1dT?!B8p}}Yaf5tMAkJ3D=UtZMJtIOER>VpMJd9**gaQ<9i^CjQ)3B2I_Cq8AC z+-~*3V*I>?c}so{a%Vqd7Li2J8?wxoN1H6hC+u}>S*d7Ift<9IsZ6@?60@GNDU||GDMC2U8t_d^Esi>|b z5YSb(jR_>V`Xh6&V>wX)BvT@RVdIGfe1*g);9nRW38 z_nVeL+g69U-VL)xzZ2vNajWgd%QZ7&!w- z+8dCsF!a=7titEJA@?5mTCVMU%Ov>A_9J44zWSvm2<|9%#W~hS9s}Ci;O$X zvm^AQd|-cYcgix8U_i&tax6^xMNjxOZ z)TDRNhbM^dW`FR)1x>rrEzLBlj(Eb{v=s#Y+j%HcXLeIFMd2>`z<3dVF$^u?_s0j%_5G_b*3bm;&(w+v=he5i_}lqxx|46oFioJ9BY?ZHH{)Sg@@d$i)|$ zq0AASdI|IS%_+T3cNA4}$XkB6TIuBg!kh`V+9DQ@$ZUHkw5ktiu-3j?z_ zR9|<1L7NcfP$f3B!-~k3WM(ielBsPzZ%XxviM>9*Ji9T6e-}0u@$cfs68>G{I2_m5}?nU6jz{L=W3rjHZ>Ar}UFIp#v@FMKEZsqQ=WwCI{7b}f!=NN%I^pu=0 zY`MnhXGn)bJ`!O`iU1Gv4D_WSMF1R%8)QV|Ay#i zkbRj6I*>-MjYnu>FPBa* zsXvTKIXRs!odEhX`La8-*U6jUd<#E!aEXJ@ok!7;gK0;9teAAp3pLz{NvI!mapc9M z?LG~Y+hzlj&U^GQvZKeTHUV>gJP_TgfnSulJU8@X%Lk>1ss-cyVV76xg=&ZLR{Gp_ShD6of@=VF5+!J^T{^$rA4G+;`Wm^6`^kUpd4 zwDQDIcS*n4=Y2VQI^pf~SMUmCz}q47nP-M%BS=F}$pyCUvx#h;NgIB8A*<*0vjjT& zi>Bc9J)SC261*dZPh1F6o4be+UqWI@ng|mnd<#1O^2wlaVO1H38$NL!#2-fydF#fI zR`!Sx$9S&Nhnh2h0(R0lwJAf?qj(*RdX(HD(=ZMYEZ54=e8`(+d^38w+ym`NTuVZS zZT3Ck=<7E-eXw7?Nv2x7cN3Qua!CNM6D@t++>*VmH-?Z_i`ML7)|O7`TZ z*>@VLo{NzYlE-Kg;g?bbpMLLxOzt}M4(Nce^e z3PlEb{U>m7o$5Gx{;nTqEd<0+kb8QsL(U%)=8}6XA~hfqT325L`G>R_0^LJgB|9*q zgEs3j$vi?Kyadov&`6D6ws{0BO+Z~HbHjEu-#`ZOK+&%+q~|D}N?a=s=a^H4!yWBV z&!W2xHX~vlgjW_mRZm;i-p~LgyB0Tjg@~xcAiEZiWMiTBrKE8qvGBmGcN?&{Ez)?O zATMF863`+MbdlC@RgasxJjNHO5MzCysf!M55515Z81G^86@Xh z*a2$Z2%ez+pn+%_{VU6G{U=TAa^-z)y*LquCDY9E`up67xvreSkApCtIz#CDpTZ*^ zXkWTV5PB$DQ0Fb7-7otp%Ag`dogjAkqB8oWiV+vSJ^Di`z>=qI?eWi=nT9=3**sMk zXS;PMmTx@MK#Jkav8B)4P{+s=g-5+RYG4VF%_>MjQcQ6>5d;#?!M!N}@lV=+I)ZvB zNX>Mo=&<67z*gGqX1++eMZbZ3cwMyU{Ivhyt;q`5Vf$2EWBE=fq>gk43BxSC*}|oJ z^s5l{nqY|w1BehJqU$YZ)$w5jc9BNjm%?Tiktn3Q#)df;J)tmlV7zNI9EhtBM`~dj)p{E|4QaJftkl zt85i4jJ?&IOf&kY;K@}c7uaY%PxsZtn%IY`8{E)7EF+i)mu&|DSjT=dRUgsgw>w>M z8y3*9P@V>&Kf=A{?Z$bh`_u{&2-54_F-w9Ey@SWS|P@qIPWPA>f%YK-G#@yFx_P>XxnDj*h279 zlf)q5C${;GnQBewPiE*wz000cIy-kTV)9%axRmoAU{W^H<4n%FqDMLg$dKq~vh3*Z z%;GR|%Vq9kj46lYOc)cl1QE{5bFKcwShs!F{VMzn^`NW0;#@GQFB-M>M zxf!oPOr^yE)_F`Bn1gVBXiIjHDY zaV_b-ssb=v#Hp4oSO3(MK&tpqi>*o#p6rxuLtCbGM5nKG_p}my!7SEV)Q?%m0w?I4 z+1}SCfN9TYWQsvlpU3q{r!_jOi)t-WS!^X~6fK&2D*+Je`W99|;fw%?Z6fxG=U^lo zm9QP6KLiohddTu{*(f^n=%g&sVOd=Z8dg8O=Q~oM8sE)=oZu~*(K-p7OCPR#*O)gj4N4p~j5_%N4 z`$Zp~RbrHAq27^hCUwE$M{yn)MNoI0svMq*^n09X7h{)?6b7F2BGYHw5K1>WhA@C~ zV|YV}Bt!c4hLTmag2g0OOoWUYhhsUCz*l%ALwu$7(E%Y0$P*lWcg8F`s>9^c>u0k$tfiNJzSL5fh^_BgT(Db1Uf4lljT<*7oQvQw(?sHyBdI+f{tv z2E)j=(L_1Hl6+F|Ntq%VZ*T5H{>XQviDyInj zp()A_hE|d5LzAf6sY6il)nc-`v*B3jot>y4wWcGu$R#o%p>5e58%;`>YKHmFT#u$6 zTaQ&ZhphEzigs)PSp-w;xDMQ2i;&PLg6W=d7sZUu;2q#4d{#iD{QjZf(nZ!QjvP=N zz?TjTi>f3Vy$v8{1|r38nz8}n^Zp zr64Fo(&p+Az&LQ5E$Z+TpXYYqA_+(&tf8v4agrLU6C18F?-@26No#VK%_XgochNsm z)K>5IxMSAZ?=-uYEw}}nQnH2&iyjhOB+_=@7v?exTWL4iU-K~YmeJ&U92oc!ZG5rr z%g8YJGUZN6;`P7ffwx>f$qtj5kd{QRr7KIL5t>jTNYQUH9>Q}1>PN%;pawBHqrS>@3 zF;iHj)>PpTn8J5SW#_Jd6BtbA9nr1mNd^(wUk>C4O2@B_Gidb)-)Q1v92!_a6bB(d z^`P7^!O6k$k|h=W`Z=oUfX=PObfbwCIl!*MOFoQTf@4K9b$s4vFug)|*dA>@XKsNg z(nx0E`sV|F?a7u3lARo#Q)hw{5%gxdtb~}n@sq2B0YXd)KzPuu=7myJ%eOP+k!n46jkF?`gS19}WyZW9 zxEs$(go&?n%85!iJY)g%9Vv4UvoR4!lSY?|DUP9_TlC*igjCY?Iah(0tF>I{ zQ`AR$0wu)dPc5JL17OJbn%11fsg+0mhy|z_ zsG#HN7NB+`6{|Dzol*2}XUQx4pwH}@ap@^4L0x)Ec;``NLaxIG8bSO)_nAdAMo5Zb zsfvsK5E&{waZ^mbBXmBneKF7qf!#Cjn8;u%i>*gElj=BBEK(Z-83O84;1!PkXwD;2 zxDr$t_?5@4Rl4KX#ihyiENR5fn!3U@B*2b+QL(D zv&g=-js%e*l1bJR_06ig(pE)Y@zXISGSFkb80w1Ys7s2;x#12aWalpRIfWzoH@Kgl z?&6ce(x)y+BP02w(#Y@|g9of_LDFD7Q`dlkUyCSFdW@eafT+~kXYv~81h}T!y*BsM z1}iwO1tGMiT4@E(bnquFaqZ_D)(wU(_FWrOK@U2!T^t~wBjwMV}nEJ}FL zSaL@WB|c2WOjv!4t;tm4oMo_<~}TB;n-Yw>}96yiu}=ZHOpL8vh(jFy3Z%+S~`S9N2PsKDM19 z-@+OS^o&n&E>kM9)|S}7VFd+TBS$f%Q|CONN{iBwu}p-ZFpSM>b_V`PqByTr%Nt_%A-8&!VAtR}_IcqVdC zCNB5dqGvc1_sv=`0Hm(fmU5hV+|l;M(;j0dkk!LPMk_lqw<6d+CIS&eydZrl$V$uM z%Tt6Uu!rc0;4=H;t?oK6L*yC-no7t)ci1}fEG%GSJ)uNM6J=2JJQfJKNr`%U@X*yq z{YS|8BVAMNSz#GIG#{~*+Rw3hF3J6MNxUwa^IC8YQtNbQHc1V(8Od>wz-*g_Ob^%0 z+5Uh5p7ETI)X0iKdkb)gYIp9>l;4?U@a;-;fzc13mIScC_A_#0ga>WBRvB@o8(-df z1RLw1KSaStT=}zrNV;4&fmEeg$u-|#1cfW@n^kaM6mCPzLO#l;;wlURr72;Dy=6jf zKUQP_`vl+ZnpD9~;;-u63<)|tqKmU4e8}?I?lJn8b18gdXP*(@DfyK{_9aQAqJf`+ zxj6fM>H&iWeoE(>a|aNmDR;n!Oi?R%&<=?%8<%M~ospA;DpmpU!?RkW9V z*%Tfxe6I<`Pddmzbl;H4&elHa;F}9fUO@To*n`pIK`F&hP~WnGsSCvARrWsWC&s^g z12{EhUKZEm0yf2+yRcF?uioPNgGD3VzJ)|a_-`3r;MP&s588kTi4-NhqHm-4!NkF# zqf$|y&t?tlQzaQ;d1%LHgdr%Zd4%=L(aCH2QC<2di`x2-joe4L4;v>E+S1Q5l9&1x zc3@Hn${Q1XIRXZY?CUD>%eP_l{d$Ybz9{5Pr%sc6>!Z!tQB{vLc&e4Y-bIM{pqvuLp5F5Rt_fP&1&%khTkfPeijTK zVh43Shaj^mZl~gK*<_G<56&(ENBenYMi^P{6%txLBu;`DG&zd0NKFThffj{7KHI9~b-euZ- z$vr6E#s&b6{Q__KI*T#XdQ%&mypd=}`78nv`^c_ik_1O1_VXY`K`c^&EDXnngN&n4 z;zz$TZ%UYlSPF^O@r<17*>qcHp>o+GLEI$*ik74>4T6z;A{_XT!ld8U3uDtuLFUzSOvK_Ee~WrU>Lvl(c;u#&dOHI*YY-O>t)_03#mk*mN1u0zTZP7=-|`sEq(-bqq&D$=vb!Yj8> zCDOau!sr__X4TDA4CH5|c(_o7satb0(+E;?QcZH}wEE2jetMc!+aQx*LNI9@IcajI zPruK|Ly$C);K5!WcUo;0YGE`_B@MWqG*;MVdo?awQqG0F^gQ9>mNfcaa8pSBxfp>Y}3vDJk?MS^H8 zumSzc^a0CF6)p9ID5TIhbVeILbd~wkB3pu9t=WrOc#jhfxP+GYTTXEaTwqgd9d}UM z2(P3?wfX=R=B0U4TR9MVD)wDZCM3;2F!72sr+W@BkHv)%7V9g_~SO+0T+Gvpq<#vJPG)E41f;U7sUnyB-|mVJOz9_oNV+R{U)^=0&%2u zjt3nb*Orp60#2*NBEfVq4%Qs#zCgk`vTC&jJCt&oPz6Xc&t#|-1=N9}|BB>vS7X#$ zMk#kb=?U&NWCGxe4I1eSd2~t~&=|(~=)noX?$l6lGZ7(Sbt;F`OTpFr1rmI~k^soy znn$jfOS{NaQ24_5vUjML?D1VVzz6# zkN8Q(B9Ki9z$cQTzlQ2DhlzuU)%j@zJce67rzX0{zR*GcjIfo+pbn>AsFmhh`_Jd4s;PHS!Z&PP?qW#07_q|{TYOBgKmtd^)9lMwVTDBo2nLzHU1us495 zQHzi9vK=-ELLoxGcqPIxdV5Ea6TUKyoQc~z9uz@=C0=T#%TVb!^lGQn0=e7_G$#v3 z;95a}NB6-C%a1az*x0ffW8>H_Y}iljh8T#xhmU2+&TYf%i)k{Q93DU^2%gVBS+L!) zPxyu;j3#hEVHY<{<+h++F>`zKr$w#wZVpk*9Q99CArSATYvFN#F2QsYgff(Ipq86H z>sdicH>^C|fv^#-Omza-=c!;0n1|u{)eoF2OApU)nwlm)a4uYj1Bx_t6Bb)Trx*S1 zf?1VKbWTd{;!p#jInNwIP!c!AE`nW1g0>gH&f|lUm-fPf(*`mFwUu-oY8*ms7^3!G zG2v@Y=gk~PR+aG4ID}Ny; zu-$PI!dsU)QiXh`bt0@)bYvfPF;!DndPBjZBIDf%9)6BokSH1avm59j3)!#n5JA0_O?iJn;Abz{=euj=}Q91tz!PAw*>wRX-IT%SILhw z6wpDAG_8OR2x~nxd1*+yV^Ko8QWlT+pisLec@mshx&s#8Ia^B|3=4M)NKG{6ZDIHt z8!4MU2L%tBzg00p7i>z!@C0FtA^@rCCMDzJ=NR-6BZ~Jbe6_d))Pnevd2YDg-*6dl z?mkD(Er)DUc*Re^g7ciugatcEs5e-MOtIOCsfRnkIAQ78DAD-m16rC^&j@3fc@C1YD_ zd)n{|g>3>o@hMd%evf@h^;sQK!37M`5R1mT8yP(AF7H{+eYjFFblr`Le?c{q6{bTq zGdR3?nCj%=o!Ej+CQ>PXaC&B_zodvQWJFA(vS3VQJLlCKuuP_9hKDW%FQ=AVEY|+W z5iU6Q^R-GPWh-6W0-u1vK{}6ndM=GF^ju87d$ZHSC%w>{N*fXw5OQ*~42Txxq5H)9GM+)D{2p%e9!eSs3|w2XU(_mn%E^Km zIwdfea0DZjc3D_|0Rf(@osb{{F`E)>p@U5`Q!ef4KSoKi}#AL&ewahVGLNnfz2@>9**x z06=iTvBS8Ly#f@{dWsziX!2oS1q$xTkYfb*WGJ&#A%%=ezNJUzJLo@g0nZTkskaG4 z+<$^F8hSHPP+BU;SPQemW<%W~ss+U=Akoj&GgS0mU5oUX0mfeJSAskc6d72i` z6(H^Lg}5>;>@>=flwohS?F z3c9>+ZlMek%JK4hkGwEV@EmTobql38r!f$|jtr+Aa>VTgP8(Vay-ev{vzj)(VF+ED zC4m}Udj%IMefSuNRLFVCqSoqrRSuxBR!qr+d`d%M5>-dB*lTGWIv^c~kENOnM+2(!8ejFl8A0J*J zDWRxy6E#s-RAQ=~s`zJPM;lW5s2nGM!Z370M= zWUxRnUBVeg-<&aPNA$z{oC)ErO2auAyQN{6ijqk|6^}{NVI~DqBszLYT6|LS$hA=e z^_djX8vQpUpKvxz8KL zekM_7edhF1m1b#hGsc`$qGOk23zPx9n=SA`A%{{q6ao4I0X0_2_6HPK)_$#^cB3dg zw%%iov*GGJhIK)5*g(GM3KC14nQeWdpvrTim?B?eJcOQ@2#_a+) zl#cN&Csqu0TR%k{I@jEagA?x@)No1{HR)c)1P~T86=W~HruA0KBD?Dxef|-)=zU!zq zWSl^X{~E0Eww96$w;{#EJbTd$2B?7xr@R~>A6+hHfBFu>*IuZQy9B&=$}0uHpTs#S z$(W=rPsAUtbCRdlFJ{o}V`5tJrI00B-juVdz1a!vY z9NF=>r^qflMg!YufdyinqcqdA*)nW5qBYI zcrM7Z$DE*^9+Y3BQksh*^}Fvnwu34@Dzgw$~Yup@)}66;8(6<4CvD3;e)b1>Bkc`w!p3o@%RCWB-4&9k zgM%Gufs%9J4s*y3(j%3F?1Ti2SyjW!CV9F=emIv5;bgg{U#xqrbs=B?mLJQ zs#795WPK$$0NI<$7;1kxzeo-!=}yBAIY(`1)9UG^nDi}N3A`8Qjd$w(ruuepdPV14 zg==69KkO&%=76Bjb6F}x?))EL3TK`JgF-4Ne`&?A>QK=?g0VKD?EU$JSM(QnPb zv}SEA7VBo5&^f_WZOa_kI=rO%9mFlzCF*QYSW75PiUi)YmR;%U_&7?xA%rPm70^4~ zPZN>k=-e1_@mHr8@Pa-iZhedPOl@E+h%-^a>vdC**U9HBFlhKWi~NJ?S1sN!MHwrW zKn5|09U645zm1$Mm=>6T+`+|6_c?3#G49eU=KYoZy`$=nAJuni+ts7mZnge!@9>~n zscqM)TO03zyWypY9tX9(J^aZ0j~6C>JbD=KZOkGY{`SOA2l4*v)ymPvTtF?L=Qx=EwNl=zRCh4F7fmVk!$JAs zVHI;52Z*bO4|l5@b9cUtoHF~~L;AR(xxd$qaClTc%0Ld^tUt%quRW|D9tm>n8j~N( zl{fbG-`c5e-N)~<4tdG%adjK>+X8wl(vzPm`@07_RgOD<=ZPr>AFw5E9@Gwx_T#tf zyZc+?GXx4!zwYc;$`&=L_R7xwLr&^t^J1#~sJeTwAD82|ft^1B0gbs=A#Of!R6cy8 z9#_kU`+N26a;17SwmlefvdiB7UKKk898LaKJ^-P-iD?QIP5!=BeX~}K8xtA1s&M_k38S86-8vQXpVoo`97YWPTL!mZ~jf_TB) zlJWF6(85C@1?)o596#LKtL@##^3v^Zm1{?ApToyU!eNALvGd%VV3-=tZ5%&5AXO|N zUip0R+u_4XrCQy>FN=tFe=zvvpd267$~!x6*ONX=V=vq;*FdEk%RDFnsGckQP}r=S zJDvXB)6VGZ@;JC None: run(sys.executable, ROOT / "eng/check_licences.py") run("node", ROOT / "eng/check_contract_access.mjs") run(sys.executable, ROOT / "eng/check_foundation.py", "--generated", "--self-test") + run(sys.executable, ROOT / "eng/check_compatibility.py", "--window", "--report", ARTIFACTS / "evidence/compatibility-matrix.json") run(sys.executable, ROOT / "eng/check_serialization.py", "--report", ARTIFACTS / "evidence/serialization-policy.json") run(sys.executable, ROOT / "eng/check_operation_scope.py", "--report", ARTIFACTS / "evidence/operation-reachability.json") run("dotnet", "build", "ArcForges.Contracts.slnx", "-c", "Release", "--no-restore") @@ -309,11 +310,22 @@ def assembly(project: Path) -> Path: run(NPM, "test") run("node", ROOT / "tests/public/foundation.test.mjs", "--exchange") run("dotnet", structure_tests, ROOT, "--verify-foundation-exchange") + compatibility_exchange(structure_tests) serialization_probe() from kotlin_tools import build as build_kotlin build_kotlin() +def compatibility_exchange(structure_tests: Path) -> None: + """Isolated old/current generated assemblies; no transport or live service.""" + previous = ROOT / "tests/StructureTests/PreviousClient/bin/Release/net10.0/PreviousClient.dll" + with tempfile.TemporaryDirectory(prefix="arcforges-compatibility-") as temporary: + run("dotnet", previous, "emit", temporary) + run("dotnet", structure_tests, ROOT, "--compatibility-current", temporary) + run("dotnet", previous, "verify-and-serve", temporary) + run("dotnet", structure_tests, ROOT, "--compatibility-verify", temporary) + + def serialization_probe() -> None: """Publish the WP03.02 probe with Native AOT for this host and run the independent vectors once.""" rid = {"Windows": "win-x64", "Linux": "linux-x64"}.get(platform.system()) diff --git a/tests/StructureTests/CompatibilityCases.cs b/tests/StructureTests/CompatibilityCases.cs new file mode 100644 index 00000000..d3eeb320 --- /dev/null +++ b/tests/StructureTests/CompatibilityCases.cs @@ -0,0 +1,30 @@ +// SPDX-License-Identifier: Apache-2.0 +using Google.Protobuf; +using ArcForges.Contracts.Foundation.V1; +using ArcForges.Contracts.Hello.V1; + +internal static class CompatibilityCases +{ + internal static void Run(string mode, string directory) + { + if (mode == "current") + { + var request = SayHelloRequest.Parser.ParseFrom(File.ReadAllBytes(Path.Combine(directory, "previous-request.bin"))); + if (request.Name != "A中😀" || Revision.Parser.ParseFrom(File.ReadAllBytes(Path.Combine(directory, "previous-int64.bin"))).Value != 9007199254740993 + || ArcForges.Contracts.Foundation.V1.Decimal.Parser.ParseFrom(File.ReadAllBytes(Path.Combine(directory, "previous-decimal.bin"))).Value != "0.000000001") + throw new InvalidOperationException("Current codec changed exact previous-client meaning"); + var response = new SayHelloResponse { Message = "Hello, " + request.Name + "!" }.ToByteArray(); + var future = Convert.FromHexString("9a0603667574"); // field 99, length 3, UTF-8 "fut" + File.WriteAllBytes(Path.Combine(directory, "current-response.bin"), [.. response, .. future]); + File.WriteAllBytes(Path.Combine(directory, "current-request.bin"), new SayHelloRequest { Name = "minimum" }.ToByteArray()); + return; + } + if (mode != "verify") throw new ArgumentException("Unknown current compatibility mode"); + var minimum = SayHelloResponse.Parser.ParseFrom(File.ReadAllBytes(Path.Combine(directory, "minimum-response.bin"))); + if (minimum.Message != "Hello, minimum!") throw new InvalidOperationException("Current client rejected minimum response"); + if (!File.ReadAllBytes(Path.Combine(directory, "current-response.bin")).AsSpan() + .SequenceEqual(File.ReadAllBytes(Path.Combine(directory, "previous-retained-response.bin")))) + throw new InvalidOperationException("Additive field retention failed across previous/current codecs"); + Console.WriteLine("Bidirectional previous published/current codec matrix passed; Hello is a packaging demonstration, not product service acceptance."); + } +} diff --git a/tests/StructureTests/PreviousClient/PreviousClient.csproj b/tests/StructureTests/PreviousClient/PreviousClient.csproj new file mode 100644 index 00000000..0b9ada30 --- /dev/null +++ b/tests/StructureTests/PreviousClient/PreviousClient.csproj @@ -0,0 +1,11 @@ + + + + Exe + Apache-2.0 + Apache + + + + + diff --git a/tests/StructureTests/PreviousClient/Program.cs b/tests/StructureTests/PreviousClient/Program.cs new file mode 100644 index 00000000..8d723e3a --- /dev/null +++ b/tests/StructureTests/PreviousClient/Program.cs @@ -0,0 +1,29 @@ +// SPDX-License-Identifier: Apache-2.0 +using Google.Protobuf; +using ArcForges.Contracts.Foundation.V1; +using ArcForges.Contracts.Hello.V1; + +if (args.Length != 2) throw new ArgumentException("PreviousClient "); +var directory = Path.GetFullPath(args[1]); +Directory.CreateDirectory(directory); +// This executable references the exact previously published package, never a +// current source project. File exchange exercises codecs offline, not a live RPC. +if (args[0] == "emit") +{ + File.WriteAllBytes(Path.Combine(directory, "previous-request.bin"), new SayHelloRequest { Name = "A中😀" }.ToByteArray()); + File.WriteAllBytes(Path.Combine(directory, "previous-int64.bin"), new Revision { Value = 9007199254740993 }.ToByteArray()); + File.WriteAllBytes(Path.Combine(directory, "previous-decimal.bin"), new ArcForges.Contracts.Foundation.V1.Decimal { Value = "0.000000001" }.ToByteArray()); + return; +} +if (args[0] != "verify-and-serve") throw new ArgumentException("Unknown previous-client mode"); +var responseBytes = File.ReadAllBytes(Path.Combine(directory, "current-response.bin")); +var response = SayHelloResponse.Parser.ParseFrom(responseBytes); +if (response.Message != "Hello, A中😀!") throw new InvalidOperationException("Previous client rejected current response"); +// The current fixture appends tag 99, representing an additive future read field. +// The old generated assembly must retain it when storing/re-emitting the message. +if (!response.ToByteArray().AsSpan().SequenceEqual(responseBytes)) throw new InvalidOperationException("Previous client lost unknown response field"); +File.WriteAllBytes(Path.Combine(directory, "previous-retained-response.bin"), response.ToByteArray()); +var request = SayHelloRequest.Parser.ParseFrom(File.ReadAllBytes(Path.Combine(directory, "current-request.bin"))); +if (request.Name != "minimum") throw new InvalidOperationException("Minimum server could not read current request"); +File.WriteAllBytes(Path.Combine(directory, "minimum-response.bin"), new SayHelloResponse { Message = "Hello, " + request.Name + "!" }.ToByteArray()); +Console.WriteLine("Previous published client/current handler and current client/minimum handler offline codecs passed."); diff --git a/tests/StructureTests/PreviousClient/packages.lock.json b/tests/StructureTests/PreviousClient/packages.lock.json new file mode 100644 index 00000000..93dc5b1d --- /dev/null +++ b/tests/StructureTests/PreviousClient/packages.lock.json @@ -0,0 +1,38 @@ +{ + "version": 2, + "dependencies": { + "net10.0": { + "ArcForges.Contracts.PublicApi": { + "type": "Direct", + "requested": "[1.0.0-ci.113.1, 1.0.0-ci.113.1]", + "resolved": "1.0.0-ci.113.1", + "contentHash": "1ai2jcqdFfKLHahN62N9dqkcSsAEbgK/K5uQi4LDIUFDGaT38/2KJYYykrb/YLO2UyUBpFjxJmTk++A+4mr8Uw==", + "dependencies": { + "ArcForges.Contracts.Foundation": "1.0.0-ci.113.1", + "Google.Protobuf": "3.36.1", + "Grpc.Core.Api": "2.84.0" + } + }, + "ArcForges.Contracts.Foundation": { + "type": "Transitive", + "resolved": "1.0.0-ci.113.1", + "contentHash": "k51yFjKnec92FJEfOM3/6YEhnbi1wfO4gztqjlhLumg7USTjVnA7ab7rE4X/H1cDb62Ny4c2ufn8Xi/CtBaZnA==", + "dependencies": { + "Google.Protobuf": "3.36.1" + } + }, + "Google.Protobuf": { + "type": "CentralTransitive", + "requested": "[3.36.1, )", + "resolved": "3.36.1", + "contentHash": "77AqPEoaY1ODE+syYBHti0jXiwQq0J/fUr/fRyYhNlc9oKtH5dZZEr/OLKtdKNVG83PRnCYB2r8B80ZrObzOGQ==" + }, + "Grpc.Core.Api": { + "type": "CentralTransitive", + "requested": "[2.84.0, )", + "resolved": "2.84.0", + "contentHash": "p2SOMl6q/GZ4/5MLkgboC/z55g4zKUEruRn/g46QgppjQBVnsLZVBU/9VO7n60ll38G3Eo8Zu9b7x+W01GKFVg==" + } + } + } +} \ No newline at end of file diff --git a/tests/StructureTests/Program.cs b/tests/StructureTests/Program.cs index 770c6266..c049bfcd 100644 --- a/tests/StructureTests/Program.cs +++ b/tests/StructureTests/Program.cs @@ -9,6 +9,11 @@ using Validation = ArcForges.Contracts.Validation.ContractShapeValidation; var root = args.Length >= 1 ? Path.GetFullPath(args[0]) : Directory.GetCurrentDirectory(); +if (args.Length == 3 && args[1].StartsWith("--compatibility-", StringComparison.Ordinal)) +{ + CompatibilityCases.Run(args[1]["--compatibility-".Length..], Path.GetFullPath(args[2])); + return 0; +} if (args.Contains("--foundation-links", StringComparer.Ordinal)) { FoundationLinkCases.Run(); diff --git a/tests/StructureTests/StructureTests.csproj b/tests/StructureTests/StructureTests.csproj index ae2fe52a..f63b87df 100644 --- a/tests/StructureTests/StructureTests.csproj +++ b/tests/StructureTests/StructureTests.csproj @@ -6,6 +6,7 @@ Apache + From f07c2d1b6482347e4ab6d1aba26e495deba13f56 Mon Sep 17 00:00:00 2001 From: sammiller Date: Sun, 27 Sep 2026 19:23:12 +0100 Subject: [PATCH 4/9] [CON.17] Record previous-client dependency admission and source provenance --- Directory.Packages.props | 2 +- .../con17-previous-client-113-1.json | 2437 +++++++++++++ .../con17-published-descriptors-r1.json | 145 + .../records/con17-semantic-export-r1.json | 3022 +++++++++++++++++ .../PreviousClient/packages.lock.json | 2 +- 5 files changed, 5606 insertions(+), 2 deletions(-) create mode 100644 eng/policy/dependency-reviews/con17-previous-client-113-1.json create mode 100644 eng/provenance/records/con17-published-descriptors-r1.json create mode 100644 eng/provenance/records/con17-semantic-export-r1.json diff --git a/Directory.Packages.props b/Directory.Packages.props index 950c5c77..2ca87a8b 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -4,7 +4,7 @@ true - + diff --git a/eng/policy/dependency-reviews/con17-previous-client-113-1.json b/eng/policy/dependency-reviews/con17-previous-client-113-1.json new file mode 100644 index 00000000..70ea4580 --- /dev/null +++ b/eng/policy/dependency-reviews/con17-previous-client-113-1.json @@ -0,0 +1,2437 @@ +{ + "review": { + "owner": "Contracts maintainers", + "reviewer": "w-20260927-platform (dependency admission assessment; independent CON.17 PR review required)", + "reviewedOn": "2026-09-26", + "baselineCommit": "792306133ee1adcfd93e533c53ff3d4381c1c66a", + "inputHashes": { + ".java-version": "b8481af4c809b46f02fc334825116cbe9e6d6a7bc8e2363511fa77044fca8016", + ".node-version": "73fb1b615e2043a933be1c0895cde4358036acc28d785692509b822aa53c761f", + ".npmrc": "d39e9a6c685eb4374c63df103c78708203e435eafe678d1497f168413bf50d9c", + ".python-version": "922fe0c3de073b01988e23348ea184456161678c5e329e6f34be89be24383f93", + "Directory.Build.props": "c2a05ff316f24d7293378ef7f4257b1788f9442224a48d803d0016798babbb5b", + "Directory.Build.targets": "1404c5997b2679c1e4dc7897d5ab9c80c788daf0d4fe456fd15bcb8afeb73965", + "Directory.Packages.props": "4a83ab07c4e26a69d5153e683d311fa667a1d40130f69358a59b512b55d5a8d1", + "NuGet.config": "0bc8b5cfba429bcbd0cb692405e3b6e504793c122350d6a8c95a69c2d718b472", + "build.gradle.kts": "1cf3ae88a76f49c159e4ee1856e1d1e78a2f2f801bc07d5436391f745faac9c5", + "eng/Codegen/Codegen.csproj": "c702e5c3150d55ad8ecaf1db3d1d0fe34a0a5cc64ffd6229d6437a34bc5ff8a1", + "eng/Codegen/packages.lock.json": "1823b949cabbc4f28cfb0326e36aab09e688869fd612d3a9d2630d7c1b82b875", + "eng/central-signing/build.gradle.kts": "a24f120f0e503347fdca3e2520dab58583ebb1449550f3f0d99b05437af174a8", + "eng/central-signing/settings.gradle.kts": "1f1f5285f2938dc48b7a5da29f1c86f43a06ead1cffabd469b47597580f671b5", + "eng/contract-packages.json": "4f31f579f1dc1ec708d8e76299592df748eb5206a957938f03a334d7048abe3b", + "eng/policy/contract-access.json": "381c259ee36628481a9634c7f60cf975dca5f962567776009412a618f61620ec", + "eng/provenance/artifact-profiles/dokka-2-2-0-r1.json": "f0f1bc138f4406cc5176d7181165591426f58a67333a8aad64f16999173ade74", + "eng/provenance/artifact-profiles/dokka-2-2-0-r2.json": "08347bde226256422e640c1db3a7eb7f8d882390a7dfa66445974344e241e13e", + "eng/provenance/artifact-profiles/dokka-2-2-0-r3.json": "a1a4cf880b287c6b8f9a9707d9226168584772b13e5ecd579c527873b0351521", + "eng/provenance/artifact-profiles/dokka-2-2-0-r4.json": "510cd4c09f2005fa13b07e85517ddac07893323322ff961c23cb13c9fa92fc2e", + "eng/provenance/artifact-profiles/dokka-2-2-0-r5.json": "1c6c005f814fe804298ccb00a32ffb69cad9c6bcabb0c8697cb1ddb2d4146dae", + "eng/provenance/artifact-profiles/dokka-2-2-0-r6.json": "e7d03411e1c653f369a764d599bb5e8d3be68ccb9a2b04b0701a3845e7fcee35", + "eng/provenance/artifact-profiles/dokka-2-2-0-r7.json": "5b86329a7aa205353dfdb0fb75d924e50d2486e281dafb22fe90bf93012b03ad", + "eng/provenance/records/canonical-apache-licence-r1.json": "e4252278767a0b4dd27a09a50b176c9420469828345e61336a4b5ca1d17c7b44", + "eng/provenance/records/con17-published-descriptors-r1.json": "465b0ac0624aa917794a258cd94b163f3841f63081bf2643096c5a7a5435c307", + "eng/provenance/records/con17-semantic-export-r1.json": "865402554b81540d0658451b1935c7ef70ab796717fc11cdbc5b3c5219905e5e", + "eng/provenance/records/contract-bindings-r2.json": "95d2bde3b8d00c03061866838bc28b907bcec0e29a0ede996a42e79b7bb53221", + "eng/provenance/records/contract-bindings-r3.json": "ba8adc87164b16804cad6525c50674d4f1b05da89d1d300a9b4f770576906878", + "eng/provenance/records/contract-bindings-r4.json": "0918c490633e7205d66af8fe7bd825cb4f6db259c12b4ba33ee08aa4e55e57aa", + "eng/provenance/records/contract-bindings-r5.json": "ed0dadea8490e9e97956af033d1c350efe6c67021adb6d5304c1cd1850b61588", + "eng/provenance/records/dokka-array-buffer-byte-length-licence-r1.json": "906e5f9298de3d24654fa77460e12888a8ea2c98f89c1d95974dcf7d8bf73704", + "eng/provenance/records/dokka-available-typed-arrays-licence-r1.json": "168ac5eef74afda62ef3567eae064fb817179a24653f24b9d15ec0f5dc052816", + "eng/provenance/records/dokka-babel-runtime-licence-r1.json": "4ff13d02084d04052687e0151f0a3b9949d12ce712253b15437ff4a95902654e", + "eng/provenance/records/dokka-call-bind-apply-helpers-licence-r1.json": "2b1b70355716be411798040cb7f531cfcaf09b8c3907a7bbedfd61ee3b78b5eb", + "eng/provenance/records/dokka-call-bind-licence-r1.json": "bba895c674f398ce0de80c7aa30cffaf8c9c4bfee55f4d1a223766f2c908f6f6", + "eng/provenance/records/dokka-call-bound-licence-r1.json": "d6428ac8c2ac9f4a1f85f10e8807ca455fdb552fc8033ffe3ec7d1f905ba9b90", + "eng/provenance/records/dokka-classnames-licence-r1.json": "f5927e1496a05bac5b09bb960024455d4ca621be6e4e43f05437b34ed0c1ac43", + "eng/provenance/records/dokka-clsx-licence-r1.json": "757cc85cb6bddfde0030029ecbdee12e0c6e8485c42183ba74f3b41d578ea8cb", + "eng/provenance/records/dokka-column-resizer-core-licence-r1.json": "448eff01e7bbd7b110c1ee0c11398d5105ff9aa6d744f37e8fa96f8ba66d0fbf", + "eng/provenance/records/dokka-combokeys-licence-r1.json": "75219d61672002f0bb242fed0fd93a0886f07d944e0b9e1b1f72132f59df1b41", + "eng/provenance/records/dokka-core-js-licence-r1.json": "3cf28ab2fd5f6473f45dcbabf18aebc01189ba642ea5b5617ff1606dfacfd756", + "eng/provenance/records/dokka-css-loader-licence-r1.json": "fa8cdef1d5beccffd74f6ccbb57379b1304a3e204242f776059cba24529e5e76", + "eng/provenance/records/dokka-deep-equal-licence-r1.json": "b39d18ff1bce56cde5faf26e399a23c1bbc5cdb3525aec17024eef2092247e18", + "eng/provenance/records/dokka-define-data-property-licence-r1.json": "17f2f4e45bfa4828496bb697f349fb27760356b1e221b0b4c0e686c8f8494277", + "eng/provenance/records/dokka-define-properties-licence-r1.json": "be80edc44910583355abeae35a6099bcd3adaa715851cbea95602dd563705f73", + "eng/provenance/records/dokka-documentation-resources-r1.json": "7246ebabdc633c0d328c7d0e221088d3965bf36169cfefb2f8ae1c0f3778eb19", + "eng/provenance/records/dokka-documentation-resources-r2.json": "7ff0f30361298e2df58dc7180294007f0b27e20b1ff7c70a33d351c1328115c8", + "eng/provenance/records/dokka-documentation-resources-r3.json": "0cae2f2168ca3eb8f92303a95812e8fbd4dd82cacce49e574d46078f94c9c169", + "eng/provenance/records/dokka-documentation-resources-r4.json": "79c3dcfb45b78b005baffc4c6b44f6cbf9f1175f7060cd6500d784fc26098b66", + "eng/provenance/records/dokka-documentation-resources-r5.json": "6ab8701ca3da446be1148b73699b256137943d315dcf92b20b3b35669cd284ef", + "eng/provenance/records/dokka-documentation-resources-r6.json": "0c9b3c6783c7436ddd06588c39002b32f23e7424e394267a21a41c8af1a4024e", + "eng/provenance/records/dokka-documentation-resources-r7.json": "bed620535cf50a6e736123e9223bfdbdb77202dc3838fed48e2baf3bb79aca8b", + "eng/provenance/records/dokka-dom-helpers-licence-r1.json": "13303b969579dd5694c0544925d45b7126c3d9c1a6e0a754122896ca263da918", + "eng/provenance/records/dokka-dunder-proto-licence-r1.json": "78b90efc76c0649d6150b4710fc90b58a99fe582af3696a7f3180f3a79f6aa7d", + "eng/provenance/records/dokka-es-define-property-licence-r1.json": "f496d51bead2a29f6d9ea98032b46ccf6363caeb3dea928807974128d2f16139", + "eng/provenance/records/dokka-es-errors-licence-r1.json": "62c7508dee7b711566bdbc4f1f0d3907609477d9fcc2b1a37176cae0d570be7e", + "eng/provenance/records/dokka-es-get-iterator-licence-r1.json": "6bd29a282c583b3798d6738232d9e46ad2c69b122d0f601d51480ce5dfb90aa9", + "eng/provenance/records/dokka-es-object-atoms-licence-r1.json": "d23be3ea4d29296b2afdeb4c87cdc1967d3fcac65489efca6e9c315d59282515", + "eng/provenance/records/dokka-for-each-licence-r1.json": "e71810875144b6703684404b88ca77b45077bf9b240199e2ca3f6754a4f26425", + "eng/provenance/records/dokka-function-bind-licence-r1.json": "2b1137c37eab8192c35347eb2ca95eea59677920b7bbc5c948dfe6b589993ed4", + "eng/provenance/records/dokka-functions-have-names-licence-r1.json": "ea7a5adef62b8603220d2ce1aca9440526dc1e052abaa5352c46cdf18e066d50", + "eng/provenance/records/dokka-get-intrinsic-licence-r1.json": "c18d311f5021a64b1e97b3fb622f8c7c1af5241cbfb5a847a756c26ef88d2492", + "eng/provenance/records/dokka-get-proto-licence-r1.json": "8f844514516ff137fdbf53bcd5318edf42a35730e5489a4be7ca50e80f60dd63", + "eng/provenance/records/dokka-gopd-licence-r1.json": "ba9dbdde65fdb1ac04852f31de1fbcafe05c25ec386c8dc6ae33d62b4f5c9c0e", + "eng/provenance/records/dokka-has-bigints-licence-r1.json": "e150e83104f26a97791b9ecb8e471747f549e2b493fe261ce6da0068e14d2b65", + "eng/provenance/records/dokka-has-property-descriptors-licence-r1.json": "100d1b845a620c72ba3b74e0464b92ba23666502bfb08146a91967300ae75220", + "eng/provenance/records/dokka-has-symbols-licence-r1.json": "7d20741f95630a0dfa0eb65d85bd2173c4311edac50af1a4ba760180bed1d78d", + "eng/provenance/records/dokka-has-tostringtag-licence-r1.json": "ff7a26d4ff159c99561605a3d739d3d0f1dd8555d99cb0bbc5c04d0310768480", + "eng/provenance/records/dokka-hasown-licence-r1.json": "2513d1d47f82c11c98b6f8c432e34cac67d36959d0828514cb77f5a34f8df5b5", + "eng/provenance/records/dokka-internal-slot-licence-r1.json": "c4b40d9429ac63ea3c2a5f1edc55641d2d28dc2765df7ae25f5c18a9848826c7", + "eng/provenance/records/dokka-is-arguments-licence-r1.json": "f37eb034c3d7fc793114c3f12d82d07ad4cf0c4a42927f10bd200c2430c1dfb8", + "eng/provenance/records/dokka-is-array-buffer-licence-r1.json": "03aae98c247a27cd97175a75888c5eddb81821e84a283312ae8004d2080406a8", + "eng/provenance/records/dokka-is-bigint-licence-r1.json": "c8e917c1fa1c406c356c3b655b4ab56a92a15b38da89562272191d0221876bff", + "eng/provenance/records/dokka-is-boolean-object-licence-r1.json": "89fbf25bf063c77437409589b0c72af5f9c6f0046a623e21a9d75acfc5f297d5", + "eng/provenance/records/dokka-is-callable-licence-r1.json": "dfb1b4a3e90ac228e68cd511f00bb453fa04a6da53608959daac9f5b3fa65a4e", + "eng/provenance/records/dokka-is-date-object-licence-r1.json": "01b08d069fbf6bf551b1662b4dc811c8a9e6d599d1199c86aa76489f4e5da377", + "eng/provenance/records/dokka-is-map-licence-r1.json": "fc618ce317e0b9f8e364e6fc8104a51e1625973a966bf80a8ce13807f55218cf", + "eng/provenance/records/dokka-is-number-object-licence-r1.json": "537ea760782b92d74fe22ae09cfefa6356d535c0c4aa825b3d638638d5902a7a", + "eng/provenance/records/dokka-is-regex-licence-r1.json": "0952af9265686c7197c6114b9c72bbe29b7eb7295c9cbc489c051adac0f09bb0", + "eng/provenance/records/dokka-is-set-licence-r1.json": "55f56ffad059be569e9dbf11bfdfe8b1d6e61a8d1d986f7a0df836bbf86453b0", + "eng/provenance/records/dokka-is-shared-array-buffer-licence-r1.json": "5d41bd93547ce25bb39215f216109d2fb76d0c5a0c364978949bf85c5dbfc266", + "eng/provenance/records/dokka-is-string-licence-r1.json": "f10aaaa588a18865d210e445da28d06649c4ff2f21334b310cf6e04cf345ec26", + "eng/provenance/records/dokka-is-symbol-licence-r1.json": "723daec6ee36ad56b3ad5d308a269ffebcdb75bfc29d62a0535bf1865f8423f2", + "eng/provenance/records/dokka-is-weakmap-licence-r1.json": "07decee3936c2377716b19854ec05f35c3cd1e9ab7cc49ca2c7e8f0e9652d398", + "eng/provenance/records/dokka-is-weakset-licence-r1.json": "4ef462368f1c4a94cefce0e41d5b230bf4d8034d13ac6f35a9ec6ed3b9033c0f", + "eng/provenance/records/dokka-isarray-licence-r1.json": "13337fd2b19586b7602f739bfbb3cf11efffd9fae5106e17edde32c0142f72d1", + "eng/provenance/records/dokka-jetbrains-icons-licence-r1.json": "e091fe652dc777057111999a1d8cf30b3546198ef658ded772ef9666cd645e29", + "eng/provenance/records/dokka-jetbrains-ring-ui-licence-r1.json": "2f65bfa8807561a1b948ed0169480e0f1bf0763149931571af1b28385ebf3d76", + "eng/provenance/records/dokka-math-intrinsics-licence-r1.json": "a94fbca1d4646e5ecf2d86322676e1b9d973ace6d9f04ac87e44aad326b26823", + "eng/provenance/records/dokka-memoize-one-licence-r1.json": "9e6db7bc18a7440c68a09b91d45bddae04406e1d50a6b621bf2a87e00abafba6", + "eng/provenance/records/dokka-object-assign-licence-r1.json": "1018758cb07635e458fa2e5100b7aacbeebcff79d640a3accfe4d1823292136d", + "eng/provenance/records/dokka-object-dot-assign-licence-r1.json": "dc96c41fa16b08bffe15e8459ed97ff90764b71ce1e62f3e27e9dc6b9b57abf0", + "eng/provenance/records/dokka-object-inspect-licence-r1.json": "6c2b752bc6cbf46238f4f130c50848586ac5722862d32b7dee6e0474f06b6880", + "eng/provenance/records/dokka-object-is-licence-r1.json": "ef52ac07b422cd6926376f8da583f641bfb560d704b8dc492a72001c19a92738", + "eng/provenance/records/dokka-object-keys-licence-r1.json": "55621ecc7032745ca46e56d13133dc22a3bd808d80966d737427b5d6fc5bd096", + "eng/provenance/records/dokka-own-licence-r1.json": "e6a8139e1564c5c8ed0bb04190644647f146fb9e7ac13489e518475dd22c9449", + "eng/provenance/records/dokka-possible-typed-array-names-licence-r1.json": "2bd1cd266c8e192e8cddde30ebd25ad3576f39ec6234056771b3042d7f2d0486", + "eng/provenance/records/dokka-prismjs-licence-r1.json": "eb8eb5a584bd300f6261279254e2a27d12f7ec415b64a93fee8776a5c5e08d6c", + "eng/provenance/records/dokka-prop-types-licence-r1.json": "fa8775ecb4676a5c731c85120cd07e3787a25d9387902073c79cdadb008b6265", + "eng/provenance/records/dokka-react-dom-licence-r1.json": "9b0b48439b47ffadfb50960f8e8e1e462b9ad8bceba694e7764b2db475923bfa", + "eng/provenance/records/dokka-react-licence-r1.json": "1e95a01a8dca133ba848d9a933ed5170a78f9e61028a9e5336a40dec8c8c86fd", + "eng/provenance/records/dokka-react-lifecycles-compat-licence-r1.json": "980a643bc3949b3de7f3a1c930b52bb3fa9b3af5e9004a6fb319ded00fc6dd92", + "eng/provenance/records/dokka-react-virtualized-licence-r1.json": "b9851059d61a022d0c6d5f473bbf8bc954c21f272b2d932e1a899a5187a22a3c", + "eng/provenance/records/dokka-regexp-prototype-flags-licence-r1.json": "ebd4c403a39ebea737d5c39eadfbd23df1c0cae5c0f103acb4b13404af9c89b5", + "eng/provenance/records/dokka-safe-regex-test-licence-r1.json": "9e3d5575e3b40b52c5fe3ff92fc8bd45b3466ba853ff8ffac9776c700b6cd8cf", + "eng/provenance/records/dokka-scheduler-licence-r1.json": "5082e14c3e28ebadd06e87a0b72beefd559f32d767626ef922ee17a1ba3abc22", + "eng/provenance/records/dokka-set-function-length-licence-r1.json": "aad109a8e511621c0d21834ddcf04f66ba0b2b91cbb574ea6a15bfc5d1374f67", + "eng/provenance/records/dokka-set-function-name-licence-r1.json": "d0df690b38c8599ea507f2c343ede405ab67158e7ca0720715b13f22689e7156", + "eng/provenance/records/dokka-side-channel-licence-r1.json": "179985988673fe24b2837b0cd32e5a5d6dc625ce56c09038af421958f3bb9cd1", + "eng/provenance/records/dokka-side-channel-list-licence-r1.json": "317efc443db102c6669b413a61aed8047e567da46fdc1a4c742d443afda5153d", + "eng/provenance/records/dokka-side-channel-map-licence-r1.json": "929b196ffd98ac6189e86958139dda63f8c553e66021a23ac52cae534f39b631", + "eng/provenance/records/dokka-side-channel-weakmap-licence-r1.json": "ad555cf9891f717861bf0f56d6703b3a5ca659d9db0e5a14ec1ace3ae12f9282", + "eng/provenance/records/dokka-sniffr-licence-r1.json": "7c383f9ba83928dd638caa2e3ec6f1f190ff2a54ba65012998608ef246351f3b", + "eng/provenance/records/dokka-stop-iteration-iterator-licence-r1.json": "b231f71addf72bf951e90095a3a6b0e86979bb62300f5d5cc79d8485c0f43469", + "eng/provenance/records/dokka-style-loader-licence-r1.json": "62d99c05ace2b18b760c9109a983624c302395ac47db50869542e6c66cfc7bd7", + "eng/provenance/records/dokka-util-deprecate-licence-r1.json": "ccb2ebe52b970b3b03b6e943c1a1500a33d5b441feb456d0ed8d0540ea3554bd", + "eng/provenance/records/dokka-which-boxed-primitive-licence-r1.json": "18ad9e03d27cfe2816725f58ceacf04fbfb7381023fad7a82c498c29dd103291", + "eng/provenance/records/dokka-which-collection-licence-r1.json": "60f258f62506034ec8d91900cbccedc782055d9c3c5f61da6b0b1c1fb9dd819d", + "eng/provenance/records/dokka-which-typed-array-licence-r1.json": "8351998c7f87386e6e0fcf5145db40852364e1c8152c6ebe2c396d11e7756b6f", + "eng/provenance/records/gradle-wrapper-9-7-1-r1.json": "f5991022b6be144f5b8fc9808c69be2dbb0f4a9d9749e01ac6313e11b1a42b7c", + "eng/provenance/records/hello-bindings-r1.json": "572601f1a0fc3441a8c69255ed707777593c0f982dc7fb18789e70abfd0f0728", + "eng/provenance/records/protobuf-generator-licence-r1.json": "0d7fc75eb1453908b2954c182e895ff5da49c5000f04b5d66d8449f552be1f81", + "eng/provenance/retirements/contracts-client-wp03-00.json": "3dbc212a56e678bea10950909a2ae1ad7fc8f2f3640421d02c8f80d2c22c1126", + "global.json": "c39786ab1a147662bbe4db015f900165178875ec4a872ddae53bc0c90771ac34", + "gradle.lockfile": "b176c43fe3fdb8fc99e36c8ccafc6dd1c07c2a2c0c0e9e5cbb3a328b70d128df", + "gradle/libs.versions.toml": "d364782770de0424c8ec20b7853dda625db91b4a7b5d3c34fbd7fbf16d622c14", + "gradle/verification-metadata.xml": "ee91387d7538ba25bfcdb385f42d3ffaeaec1a1aefdc54a96e94fa19f95334e2", + "gradle/wrapper/gradle-wrapper.properties": "45b09518a2f0ea326bc776066e735b94527d2a94002e3b27621c32cdaee7e3ce", + "package-lock.json": "3e536db25743ceb5a021559dbc1f31d57112211c62d94f84df34daca5382709c", + "package.json": "3400bc5ed9b2c01335577d9f9d8f268f8053b76f61959169b06ecad702fc36ed", + "settings-gradle.lockfile": "5e2d075903b5cd264613e7538c7c51b1484fe2ed489d4ead3e6b4ba0cf3911c4", + "settings.gradle.kts": "08e4e324a1fd3b548fced7c36945454823410fd7a7fbb95061375352668a7e64", + "src/internal/dotnet/ArcForges.Contracts.CloudInternal/ArcForges.Contracts.CloudInternal.csproj": "4d0a0dcdcebc57e2bb261b4e70ab8226ddfc853a405b5b28368cca1767380911", + "src/internal/dotnet/ArcForges.Contracts.CloudInternal/packages.lock.json": "bfc4981894f94a4ee6f2518f6e1f5997d7d20e17749125c5711794cd2ee10d94", + "src/internal/dotnet/ArcForges.Contracts.LocalRpc.Chat/ArcForges.Contracts.LocalRpc.Chat.csproj": "c9234b9f411e729544374450cd745cbfac520497499e88a990dc115c6803e6d9", + "src/internal/dotnet/ArcForges.Contracts.LocalRpc.Chat/packages.lock.json": "bfc4981894f94a4ee6f2518f6e1f5997d7d20e17749125c5711794cd2ee10d94", + "src/internal/dotnet/ArcForges.Contracts.LocalRpc.Notes/ArcForges.Contracts.LocalRpc.Notes.csproj": "822453736ad47d07fa3e684d15545eb5efad2d01fc3570372ceca437ac2216d2", + "src/internal/dotnet/ArcForges.Contracts.LocalRpc.Notes/packages.lock.json": "bfc4981894f94a4ee6f2518f6e1f5997d7d20e17749125c5711794cd2ee10d94", + "src/internal/dotnet/ArcForges.Contracts.LocalRpc.Platform/ArcForges.Contracts.LocalRpc.Platform.csproj": "07d07fa1db0b0d39d8ce92819270b28cf825ba5e41f7a952f81439eed4b5f24b", + "src/internal/dotnet/ArcForges.Contracts.LocalRpc.Platform/packages.lock.json": "fa17fe6057706e36ae0b9370a457536d05d0f3a8f0f72df622881bfc1628337e", + "src/internal/dotnet/ArcForges.Contracts.LocalRpc.Sandbox/ArcForges.Contracts.LocalRpc.Sandbox.csproj": "f7385e84978291ea74162ed555ddbfa81ea44926d0b2cbb584039a97e5d27869", + "src/internal/dotnet/ArcForges.Contracts.LocalRpc.Sandbox/packages.lock.json": "fa17fe6057706e36ae0b9370a457536d05d0f3a8f0f72df622881bfc1628337e", + "src/internal/dotnet/ArcForges.Contracts.LocalRpc.Scope/ArcForges.Contracts.LocalRpc.Scope.csproj": "34c1aa338c952ac2b5047ded8a67bdab783555ce01c4abdc04155cb268b1614c", + "src/internal/dotnet/ArcForges.Contracts.LocalRpc.Scope/packages.lock.json": "bfc4981894f94a4ee6f2518f6e1f5997d7d20e17749125c5711794cd2ee10d94", + "src/internal/dotnet/ArcForges.Contracts.LocalRpc.Slate/ArcForges.Contracts.LocalRpc.Slate.csproj": "a7946add01ad8307f586773721d875c5e0cd585b73f93d899e4e1f90c08c3800", + "src/internal/dotnet/ArcForges.Contracts.LocalRpc.Slate/packages.lock.json": "bfc4981894f94a4ee6f2518f6e1f5997d7d20e17749125c5711794cd2ee10d94", + "src/internal/ts/ai-internal/package.json": "0bff2cf81a1a98ae3b94b9215e813b97d5ce3048dc09184cab1a7de496a68870", + "src/internal/ts/operator-client/package.json": "d086732d7aa86738498b74f57f82652667f3603059e5a71d0744c71e85ae8d58", + "src/public/dotnet/ArcForges.Cli/ArcForges.Cli.csproj": "315e0898b9276c1fcde34510e2ef6c1fce067d30c462b71fc3ffa89261d9ba1a", + "src/public/dotnet/ArcForges.Cli/packages.lock.json": "953b0fd0a6201157ff334804b5bbadf6d6de0c212416c200ff8873e3db1cc449", + "src/public/dotnet/ArcForges.Contracts.Events/ArcForges.Contracts.Events.csproj": "e6e7bee2e85cdcd6104b4250cc68570c4166e3cb6b300fc0c56cac4ba2fd5a32", + "src/public/dotnet/ArcForges.Contracts.Events/packages.lock.json": "bfc4981894f94a4ee6f2518f6e1f5997d7d20e17749125c5711794cd2ee10d94", + "src/public/dotnet/ArcForges.Contracts.Foundation/ArcForges.Contracts.Foundation.csproj": "d87e9fb79689cc245332286e3eee8a045069831144d28ca513805f89b8a7e344", + "src/public/dotnet/ArcForges.Contracts.Foundation/packages.lock.json": "fa17fe6057706e36ae0b9370a457536d05d0f3a8f0f72df622881bfc1628337e", + "src/public/dotnet/ArcForges.Contracts.PublicApi/ArcForges.Contracts.PublicApi.csproj": "986b7a97734cd5d0630e548da897869de322a112c087c2d0df6a0bfc98b8784c", + "src/public/dotnet/ArcForges.Contracts.PublicApi/packages.lock.json": "950f637a1c8b5152e0fdabff441cb2a8802ac50ae8aae0b97a89b4fa1e633b29", + "src/public/dotnet/ArcForges.Contracts.Validation/ArcForges.Contracts.Validation.csproj": "169a71dde7093d66d727a966c558ddfefe12cb00c21e01f1b53c4acf5ee12901", + "src/public/dotnet/ArcForges.Contracts.Validation/packages.lock.json": "8f1549cd1c68627821ac23754b1c09a9ad164956097ee7e7f8bd8e59e0a974dc", + "src/public/dotnet/ArcForges.Sdk.Client/ArcForges.Sdk.Client.csproj": "f9c35650873d79f50e83a85e29cd51ce2b117a5af72ecfc84a81d554cc67e0fc", + "src/public/dotnet/ArcForges.Sdk.Client/packages.lock.json": "89318d08cf51665d2f4a44ad801b47cbf06a59ea73df828aecaea01b8dc94512", + "src/public/dotnet/ArcForges.Sdk.Contracts/ArcForges.Sdk.Contracts.csproj": "3fa1d4a377776b1d659628471bf5a238eb85933a5517258dd5471dbc7ecea49f", + "src/public/dotnet/ArcForges.Sdk.Contracts/packages.lock.json": "950f637a1c8b5152e0fdabff441cb2a8802ac50ae8aae0b97a89b4fa1e633b29", + "src/public/kotlin/contract-fixtures/build.gradle.kts": "04a795a0a53289dfd045258203676340c38ffd07c2a2af5defeba6eba538f6c6", + "src/public/kotlin/contract-fixtures/gradle.lockfile": "14dc5803d23ab183aa24b2849ee51541e52e4d26fbada80e19082d15e0b1c654", + "src/public/kotlin/contracts-connect-client/build.gradle.kts": "c874f55eca9149f4849c727c8fbb7282015b520c50b55cf91e5ad67283b4c5c0", + "src/public/kotlin/contracts-connect-client/gradle.lockfile": "9b5447a219bb4ec726f780a103ce193eaa6468378da8314316558bbf79ff7281", + "src/public/kotlin/contracts-proto/build.gradle.kts": "f5d9d16b233c30d563cfe558cdf13c9ff6d34fc5f07d09d965ecd9739ae82298", + "src/public/kotlin/contracts-proto/gradle.lockfile": "15e984aed92f5b614310976df0ca1d27d23d40b333ae732b5287c4bbd72ca90a", + "src/public/ts/api-client/package.json": "898f6dd155206d058bd3b9ff73718fc5adaf9960db1b22719015c67d8437ecf8", + "src/public/ts/contract-fixtures/package.json": "c593abc4f5179b38fc470cf034a993ba0e0d552e7d6bd224b770c87db3047128", + "src/public/ts/proto/package.json": "ef1d092f9811439e7f9d5e232d437c7a886020b1fd68f1327b326e22fb6bfe5b", + "tests/StructureTests/PreviousClient/PreviousClient.csproj": "be5035e295c028041172d6d2a4559070cc8beedbca724758f7099a67b4c76c72", + "tests/StructureTests/PreviousClient/packages.lock.json": "5e4f160e83bd12b6f3d630a9ee93aa5e2becd200fef836a1068fc0cbee92e695", + "tests/StructureTests/StructureTests.csproj": "f99aa11ac763a0ef14e06eb31da9928f70ef2d9a5d1c81c8f7453784aff78506", + "tests/StructureTests/packages.lock.json": "b56d0834fe3cf34f8f3a621703592b2716b2664e6f3f21e80e13698d798b8715", + "tests/public/HelloClient/HelloClient.csproj": "fa65e07276f1b2209e9d96b95eaf5bcfe8b04472d8bf334d90d74e6e939c6f2a", + "tests/public/HelloClient/packages.lock.json": "1592ed0d5c1bc731764993c0629fbc4954673001b4757800f0c7511ac1e462e7", + "tests/public/HelloHost/HelloHost.csproj": "c7ac2acb49c079907c4fdbe9a937421d93146f4b87e92546032d7881fadc6035", + "tests/public/HelloHost/packages.lock.json": "15c1bd39184b4ee86f3f30e52eb21a6cf1ba7d3d8032a21e49b5af71ea7cca1d", + "tests/public/KotlinConnectClient/build.gradle.kts": "463f683b9dea47959b7063e74670cc7fd890346b4f2cba969d62d71b23ac73d2", + "tests/public/KotlinConnectClient/gradle.lockfile": "b26b25bf3dc4f915dce29f33fe7783a29be49053a7165e7f0f94f23293f7adfe", + "tests/public/KotlinConnectClient/gradle/verification-metadata.xml": "e4a8bfec6de2eefee2bd5a471ae4cf6aeaf40baaa06cd4be61d0f6bbd48cce20", + "tests/public/KotlinConnectClient/settings-gradle.lockfile": "5e2d075903b5cd264613e7538c7c51b1484fe2ed489d4ead3e6b4ba0cf3911c4", + "tests/public/KotlinConnectClient/settings.gradle.kts": "997d5d04e67aafbd50d094c4aed81bcc239cf5a9c205a786f2847140474f61e5", + "tests/public/SerializationProbe/SerializationProbe.csproj": "df0cfb39d8218ff34492cb58c07c5eb9f535aecd8356318a29564fc02cfecb20", + "tests/public/SerializationProbe/packages.lock.json": "49c6e222abe9cc52f01bfc2aa1bb0dd4441b0fbb05acdbfab9bc909ca8c20afb" + }, + "maintenanceAssessment": "Add exact immutable already-published ArcForges Contracts 1.0.0-ci.113.1 Foundation/PublicApi only for the offline previous-client compatibility executable. Apache-2.0 first-party packages; existing Google.Protobuf3.36.1 and Grpc.Core.Api2.84.0 transitive dependencies remain unchanged. No SDK, framework, production package dependency or registry configuration change. Existing security gates remain required; no vulnerability-absence claim.", + "checks": { + "compilation": "PreviousClient and current StructureTests compiled with existing local SDK10.0.401, zero warnings/errors; pinned10.0.400 remains required in CI. No SDK installation.", + "aot-trim": "Production Foundation hash compiled with existing AOT-compatible project analyzers; isolated old-client console does not replace or broaden existing Native AOT candidate proof.", + "compatibility": "Actual published old-client/current and current/minimum generated codec exchanges passed offline, including exact int64/decimal and unknown response retention. Descriptor mutation negatives and C#/TS semantic goldens passed. Later service matrix remains CON18 completion prerequisite.", + "licence-provenance": "Local exact package nuspec files declare Apache-2.0. Record their SHA256 and immutable NuGet content hashes; historical descriptor fixtures and generated hash export have append-only provenance records.", + "security-sbom": "Locked package content hashes, existing import/licence/provenance and CI security gates remain required; old packages are test-only and not production project references.", + "runtime-performance-migration": "Only offline generated codec file exchange ran. No live transport, installed consumer audit, device, browser, service deployment, performance or migration claim.", + "framework-runtime-posture": "No framework upgrade. Existing .NET10, Node24, protobuf and Kotlin selections remain unchanged." + }, + "frameworkVersions": { + "dotnetSdk": "10.0.400", + "node": "24.21.0", + "kotlin": "2.4.20", + "dokka": "2.2.0", + "protobuf": "4.36.2", + "grpc": "1.84.0", + "grpc-kotlin": "1.5.0", + "coroutines": "1.11.0", + "gson": "2.14.0", + "connect": "0.9.0" + }, + "previousReceipt": "eng/policy/dependency-reviews/dependabot-2026-09-26-protobuf-4-36-2.json" + }, + "closure": { + "maven:com.connectrpc:connect-kotlin-google-javalite-ext:0.9.0": { + "integrity": { + "connect-kotlin-google-javalite-ext-0.9.0.jar": [ + "c5dbde38cb1d6ad36073aa87c761cb573232c75c52c109393f4feb913296ab68" + ], + "connect-kotlin-google-javalite-ext-0.9.0.module": [ + "a90a481f65b7eceb64c8f75bf39840a0d4c7c07a9d6feca22e2bf9eaa4d5f18e" + ] + }, + "licence": "Apache-2.0", + "evidence": [ + { + "source": "https://repo.maven.apache.org/maven2/com/connectrpc/connect-kotlin-google-javalite-ext/0.9.0/connect-kotlin-google-javalite-ext-0.9.0.pom", + "sha256": "b3e72a140bdbf0cb23a9adf7a0c513b57e0658866c5dec5ee7a228175219971b" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "maven:com.connectrpc:connect-kotlin-okhttp:0.9.0": { + "integrity": { + "connect-kotlin-okhttp-0.9.0.jar": [ + "8c2387ee1e0e106965a9952aedd0ca88623008a8a3298c3cf8a8e408ad21b90c" + ], + "connect-kotlin-okhttp-0.9.0.module": [ + "027c0147a83e506015b8250a114b9f683f17e7f7938bfabc0cf1f09e1ffba9fb" + ] + }, + "licence": "Apache-2.0", + "evidence": [ + { + "source": "https://repo.maven.apache.org/maven2/com/connectrpc/connect-kotlin-okhttp/0.9.0/connect-kotlin-okhttp-0.9.0.pom", + "sha256": "4ac838e6c6dabdbaf5e947267171c00273340679eb07a9b1e60ab339928c992f" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "maven:com.connectrpc:connect-kotlin:0.9.0": { + "integrity": { + "connect-kotlin-0.9.0.jar": [ + "59b742254227d87818dc0a9dcf8c6ebc70c99744f371ed9fef643dbe268453d9" + ], + "connect-kotlin-0.9.0.module": [ + "2a2028fa71933ebed191f7ec9693de812461bafceb02c3e0c69bf999fbd2fc67" + ] + }, + "licence": "Apache-2.0", + "evidence": [ + { + "source": "https://repo.maven.apache.org/maven2/com/connectrpc/connect-kotlin/0.9.0/connect-kotlin-0.9.0.pom", + "sha256": "f676e2a9d8205b8fc33d4c34ba59cda877bf066e713173d05a22ca28da670787" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "maven:com.connectrpc:protoc-gen-connect-kotlin:0.9.0": { + "integrity": { + "protoc-gen-connect-kotlin-0.9.0.jar": [ + "c23657189f8f31beda517497d2c60610de71725c3748a011577bc546af0796e5" + ], + "protoc-gen-connect-kotlin-0.9.0.module": [ + "6734f444ceee95ad19b1612fb6a2bcf1791cd8d30b5a426d8973dce4e665eb5f" + ] + }, + "licence": "Apache-2.0", + "evidence": [ + { + "source": "https://repo.maven.apache.org/maven2/com/connectrpc/protoc-gen-connect-kotlin/0.9.0/protoc-gen-connect-kotlin-0.9.0.pom", + "sha256": "77e5216bf9880a8b5da7a631637ccb65340956167010beedfb1caaf19d0a4a95" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "maven:com.fasterxml.jackson.core:jackson-annotations:2.15.3": { + "integrity": { + "jackson-annotations-2.15.3.jar": [ + "aae865c3d88256d61b11523cb1e88bd48d5b9ad5855fa1fc859504fd2204708a" + ], + "jackson-annotations-2.15.3.module": [ + "6410c94b393e494d53d569dc4193a79187848ddb6ee3c2ee1f392477a21059cb" + ] + }, + "licence": "Apache-2.0", + "evidence": [ + { + "source": "https://repo.maven.apache.org/maven2/com/fasterxml/jackson/core/jackson-annotations/2.15.3/jackson-annotations-2.15.3.pom", + "sha256": "ffa67166fbe4cff3497d0cc629c2019cd0e7cd5ed01bec683a7cbf213d030ec8" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "maven:com.fasterxml.jackson.core:jackson-core:2.15.3": { + "integrity": { + "jackson-core-2.15.3.jar": [ + "51fab7aad51ed588482edc507fd542747936c5094d1ab76ed21ddb63b96b610d" + ], + "jackson-core-2.15.3.module": [ + "138029bcb32b0bfa7010d3f646632bde5c98c187e2f1aa120a1cd413f23a6c28" + ] + }, + "licence": "Apache-2.0", + "evidence": [ + { + "source": "https://repo.maven.apache.org/maven2/com/fasterxml/jackson/core/jackson-core/2.15.3/jackson-core-2.15.3.pom", + "sha256": "ccd500917483b21ae1835df9845b91ab11ac9aba08b793d2ecf82d28c069ece2" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "maven:com.fasterxml.jackson.core:jackson-databind:2.15.3": { + "integrity": { + "jackson-databind-2.15.3.jar": [ + "c3c53333a2172a80678bda1803e39cff45bec6ae3e9c7d4f44a81ec4e2ab18dc" + ], + "jackson-databind-2.15.3.module": [ + "51ba8d71f5a04ae768e84c91d4edf09a1fc8bc1244b03bd4f9b060b8fb395615" + ] + }, + "licence": "Apache-2.0", + "evidence": [ + { + "source": "https://repo.maven.apache.org/maven2/com/fasterxml/jackson/core/jackson-databind/2.15.3/jackson-databind-2.15.3.pom", + "sha256": "b6e3cd4ae77d0ff9507eab1ce794b3aa9ee278241c6544333bdb7efbc5a2e4f9" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "maven:com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.15.3": { + "integrity": { + "jackson-dataformat-xml-2.15.3.jar": [ + "39a34531dca5fca75eb547663c300855c968c8faca6861d92eca9e9747af0416" + ], + "jackson-dataformat-xml-2.15.3.module": [ + "30ad1786f48af58048353d9be1374fc022610ceab921ebea6f62e5080b345bf2" + ] + }, + "licence": "Apache-2.0", + "evidence": [ + { + "source": "https://repo.maven.apache.org/maven2/com/fasterxml/jackson/dataformat/jackson-dataformat-xml/2.15.3/jackson-dataformat-xml-2.15.3.pom", + "sha256": "e761ed896bf73b180f8af2e79975eef14aeb61cf64430a9ba03ed5f090a76aad" + }, + { + "source": "https://repo.maven.apache.org/maven2/com/fasterxml/jackson/jackson-base/2.15.3/jackson-base-2.15.3.pom", + "sha256": "4290342abf0b0e4567322ffb2d0c36e25b0a87a217bb56b35680a8dd8f8d66e4" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "maven:com.fasterxml.jackson.module:jackson-module-kotlin:2.15.3": { + "integrity": { + "jackson-module-kotlin-2.15.3.jar": [ + "8f72e6b99e6145e3284a5224355ca8ee6030afa8c1d6a3395b530d29026f8d52" + ], + "jackson-module-kotlin-2.15.3.module": [ + "0dee29c18a90700a3a0457be88f7c41f67571947e6633d84a22433a4fb5d792c" + ] + }, + "licence": "Apache-2.0", + "evidence": [ + { + "source": "https://repo.maven.apache.org/maven2/com/fasterxml/jackson/module/jackson-module-kotlin/2.15.3/jackson-module-kotlin-2.15.3.pom", + "sha256": "8dc5c9dadbaefa20022edb5190044a47a757e7d665621b801b32344e89af54ed" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "maven:com.fasterxml.jackson:jackson-bom:2.15.3": { + "integrity": { + "jackson-bom-2.15.3.pom": [ + "66fc9945c16716bc202f4b9d7e6d969df3f509feffbe1acf1a31511b753d5c9d" + ] + }, + "licence": "Apache-2.0", + "evidence": [ + { + "source": "https://repo.maven.apache.org/maven2/com/fasterxml/jackson/jackson-bom/2.15.3/jackson-bom-2.15.3.pom", + "sha256": "66fc9945c16716bc202f4b9d7e6d969df3f509feffbe1acf1a31511b753d5c9d" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "maven:com.fasterxml.woodstox:woodstox-core:6.5.1": { + "integrity": { + "woodstox-core-6.5.1.jar": [ + "c928d60665c6415fb1c39775cf95cfc44f7f4580cf5ab01b1c380ebffd76887f" + ], + "woodstox-core-6.5.1.pom": [ + "4839654e16b1714e74f51abcb378d8356814ab8f4d5273d1dd2f1ce8a390addc" + ] + }, + "licence": "Apache-2.0", + "evidence": [ + { + "source": "https://repo.maven.apache.org/maven2/com/fasterxml/woodstox/woodstox-core/6.5.1/woodstox-core-6.5.1.pom", + "sha256": "4839654e16b1714e74f51abcb378d8356814ab8f4d5273d1dd2f1ce8a390addc" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "maven:com.google.code.gson:gson:2.14.0": { + "integrity": { + "gson-2.14.0.jar": ["2cbd119bf1961c28788310963dc80ba65f58cdeec1dd139c8bdb1240faa2c36f"], + "gson-2.14.0.pom": ["1fa0122c0e3733192642861c36be4c6f799a795327a23bdd2922691b6e9ba480"] + }, + "licence": "Apache-2.0", + "evidence": [ + { + "source": "https://repo.maven.apache.org/maven2/com/google/code/gson/gson/2.14.0/gson-2.14.0.pom", + "sha256": "1fa0122c0e3733192642861c36be4c6f799a795327a23bdd2922691b6e9ba480" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "maven:com.google.errorprone:error_prone_annotations:2.48.0": { + "integrity": { + "error_prone_annotations-2.48.0.pom": [ + "189e09ad0489c325e90daaa9d5c8f406330602fa366609bca07cbcdad03ab9da" + ], + "error_prone_annotations-2.48.0.jar": [ + "b49c5c958316ed67a09c699dda9aa749caf434d51d863dea599ef36a49b9c855" + ] + }, + "licence": "Apache-2.0", + "evidence": [ + { + "source": "https://repo.maven.apache.org/maven2/com/google/errorprone/error_prone_annotations/2.48.0/error_prone_annotations-2.48.0.pom", + "sha256": "189e09ad0489c325e90daaa9d5c8f406330602fa366609bca07cbcdad03ab9da" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "maven:com.google.protobuf:protobuf-kotlin-lite:4.36.2": { + "integrity": { + "protobuf-kotlin-lite-4.36.2.jar": [ + "4265195265ac47e76f0e5eef3085975a5db17b4c9ae575fd9ab5705a8091fed9" + ], + "protobuf-kotlin-lite-4.36.2.pom": [ + "37b9e1127b79454d9f90e1972a399183ce99408bd333db4072661e3ef359ed1d" + ] + }, + "licence": "BSD-3-Clause", + "evidence": [ + { + "source": "https://repo.maven.apache.org/maven2/com/google/protobuf/protobuf-kotlin-lite/4.36.2/protobuf-kotlin-lite-4.36.2.pom", + "sha256": "37b9e1127b79454d9f90e1972a399183ce99408bd333db4072661e3ef359ed1d" + }, + { + "source": "https://repo.maven.apache.org/maven2/com/google/protobuf/protobuf-parent/4.36.2/protobuf-parent-4.36.2.pom", + "sha256": "aca76fe571fc9045367d14e45a6fad85e2a6b8f1f5b411d2a386df089e2111b2" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "maven:com.google.protobuf:protobuf-javalite:4.36.2": { + "integrity": { + "protobuf-javalite-4.36.2.jar": [ + "8f4f93d08cb37130ecb0bc69d376d7d27c36ff04ddb1bb27430b06caa9fa062e" + ], + "protobuf-javalite-4.36.2.pom": [ + "c84538e48562849ee3ad5df5f00b45ec77bc7c0512f6cbfb42234890329f4f48" + ] + }, + "licence": "BSD-3-Clause", + "evidence": [ + { + "source": "https://repo.maven.apache.org/maven2/com/google/protobuf/protobuf-javalite/4.36.2/protobuf-javalite-4.36.2.pom", + "sha256": "c84538e48562849ee3ad5df5f00b45ec77bc7c0512f6cbfb42234890329f4f48" + }, + { + "source": "https://repo.maven.apache.org/maven2/com/google/protobuf/protobuf-parent/4.36.2/protobuf-parent-4.36.2.pom", + "sha256": "aca76fe571fc9045367d14e45a6fad85e2a6b8f1f5b411d2a386df089e2111b2" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "maven:com.squareup.moshi:moshi-kotlin:1.15.2": { + "integrity": { + "moshi-kotlin-1.15.2.jar": [ + "5c39cd77e83b111af9c54708173af96a89fd3b09d15019a11da355e83e97d75a" + ], + "moshi-kotlin-1.15.2.module": [ + "e9d768798203049483cae20ce300cedff21bbb434bef38c7f91ee6aa2f034c31" + ] + }, + "licence": "Apache-2.0", + "evidence": [ + { + "source": "https://repo.maven.apache.org/maven2/com/squareup/moshi/moshi-kotlin/1.15.2/moshi-kotlin-1.15.2.pom", + "sha256": "ab6b0f3e440a4509dd940bba1c26658feb46a87699c6d65267e9ff96c9d1b030" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "maven:com.squareup.moshi:moshi:1.15.2": { + "integrity": { + "moshi-1.15.2.jar": ["767f7592c6c61eb693549a26d333c121f5383826bd287b899867aa326dae55e4"], + "moshi-1.15.2.module": ["d952c6dd91a7b426c3f0a51edc3f7ceb3490ac01ff18301527adfec7a7837dd9"] + }, + "licence": "Apache-2.0", + "evidence": [ + { + "source": "https://repo.maven.apache.org/maven2/com/squareup/moshi/moshi/1.15.2/moshi-1.15.2.pom", + "sha256": "317a1d3fb7054031bfe90cca89b1024901fd9b9fcca99166c2ce7853b5fc7bd9" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "maven:com.squareup.okhttp3:okhttp-jvm:5.4.0": { + "integrity": { + "okhttp-jvm-5.4.0.jar": [ + "b15e605ca0a4b12c62ea7f657dad413c236c947e875854767349cdbe20df473c" + ], + "okhttp-jvm-5.4.0.module": [ + "2ee94132ec09cd3f113cc900f6e6dce7a56d9ef9af44ed5acb2ea6b7bca1367d" + ] + }, + "licence": "Apache-2.0", + "evidence": [ + { + "source": "https://repo.maven.apache.org/maven2/com/squareup/okhttp3/okhttp-jvm/5.4.0/okhttp-jvm-5.4.0.pom", + "sha256": "02ca957550d89f499b561744d9b6a59abfd535723faf31269c3290a0d78c6d0e" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "maven:com.squareup.okhttp3:okhttp:5.4.0": { + "integrity": { + "okhttp-5.4.0.module": ["63973ba755ba6c77de1e82f5efa4195569800be00c93c0130ce4238a9b56c93c"] + }, + "licence": "Apache-2.0", + "evidence": [ + { + "source": "https://repo.maven.apache.org/maven2/com/squareup/okhttp3/okhttp/5.4.0/okhttp-5.4.0.pom", + "sha256": "ebee6842d0b5b700ab7e015fddcc3f1e575d92b31a76f7b62eb9026c3388b88b" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "maven:com.squareup.okio:okio-jvm:3.17.0": { + "integrity": { + "okio-jvm-3.17.0.jar": ["3b13dcc3e1573047c2d507fc4f7fcb0bb0cbcd9d395da21d20e09406e2cd6a73"], + "okio-jvm-3.17.0.module": [ + "d4617d0df71f202e7299471848e625f4f36d7fa64d46c3503f70acf4821a45de" + ] + }, + "licence": "Apache-2.0", + "evidence": [ + { + "source": "https://repo.maven.apache.org/maven2/com/squareup/okio/okio-jvm/3.17.0/okio-jvm-3.17.0.pom", + "sha256": "e4e44237a66f4091bc0f5b1d5a2bbe228ac014ab3c0f918cd6fc02ba31999030" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "maven:com.squareup.okio:okio:3.17.0": { + "integrity": { + "okio-3.17.0.module": ["3d878db9ffd4e959c30f9a8366a88c22d001e9b324378d7dbeed98568e7ec559"] + }, + "licence": "Apache-2.0", + "evidence": [ + { + "source": "https://repo.maven.apache.org/maven2/com/squareup/okio/okio/3.17.0/okio-3.17.0.pom", + "sha256": "15b4831e84f5ca52dd37c1d6e1709a2907e2e9bc2a9c3ea13f282031de0c0135" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "maven:io.github.java-diff-utils:java-diff-utils:4.12": { + "integrity": { + "java-diff-utils-4.12.jar": [ + "9990a2039778f6b4cc94790141c2868864eacee0620c6c459451121a901cd5b5" + ], + "java-diff-utils-4.12.pom": [ + "c26e097edc8ec6805d1319817d23d4e496cc1015cc55dc5202112d8f6a9165fc" + ] + }, + "licence": "Apache-2.0", + "evidence": [ + { + "source": "https://repo.maven.apache.org/maven2/io/github/java-diff-utils/java-diff-utils/4.12/java-diff-utils-4.12.pom", + "sha256": "c26e097edc8ec6805d1319817d23d4e496cc1015cc55dc5202112d8f6a9165fc" + }, + { + "source": "https://repo.maven.apache.org/maven2/io/github/java-diff-utils/java-diff-utils-parent/4.12/java-diff-utils-parent-4.12.pom", + "sha256": "d811cf9f118cc2cad130c9427ad55c174d4c0a6f1a00ac1ae1c9bcbec5c44b19" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "maven:io.ktor:ktor-http-jvm:3.5.0": { + "integrity": { + "ktor-http-jvm-3.5.0.jar": [ + "2babac355de364c473b27b060d1c810fc2f83ed6e44822eabc6c3f46adf155a3" + ], + "ktor-http-jvm-3.5.0.module": [ + "707fb825de713e0f21729e0ad6d4184990b83cfb5a61c7940b9e4ea1aba0c78e" + ] + }, + "licence": "Apache-2.0", + "evidence": [ + { + "source": "https://repo.maven.apache.org/maven2/io/ktor/ktor-http-jvm/3.5.0/ktor-http-jvm-3.5.0.pom", + "sha256": "f6ff315d426efe8be7402894ca4c48df48fcc5e3344f12499d286b8beaba3267" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "maven:io.ktor:ktor-http:3.5.0": { + "integrity": { + "ktor-http-3.5.0.module": [ + "5642284b76ac016d839c1c28c925c06e2ab4f6d16dfa737a1ff88965f1d937d4" + ] + }, + "licence": "Apache-2.0", + "evidence": [ + { + "source": "https://repo.maven.apache.org/maven2/io/ktor/ktor-http/3.5.0/ktor-http-3.5.0.pom", + "sha256": "3ab8580c4600bea1a14c0f69826d67e611f312785bb08a4645a67dd410288e40" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "maven:io.ktor:ktor-io-jvm:3.5.0": { + "integrity": { + "ktor-io-jvm-3.5.0.jar": [ + "ca9f9443479204fe97a00bd53bc3dee5b0514c1a088e9df1e0e4d4ccfc605e51" + ], + "ktor-io-jvm-3.5.0.module": [ + "fd0c6613ec827cf09d202753e6c663e7b393f766b098d3e101b502b677dbdba8" + ] + }, + "licence": "Apache-2.0", + "evidence": [ + { + "source": "https://repo.maven.apache.org/maven2/io/ktor/ktor-io-jvm/3.5.0/ktor-io-jvm-3.5.0.pom", + "sha256": "c50c8303f386e825fe7e677122ae2b9da01b261afa3e1f70a16c088877266cc5" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "maven:io.ktor:ktor-io:3.5.0": { + "integrity": { + "ktor-io-3.5.0.module": ["cb6151e2f7ac65c27028b16dee332a4dbbccc1530580cfd3fe8f4f2b0c8a7347"] + }, + "licence": "Apache-2.0", + "evidence": [ + { + "source": "https://repo.maven.apache.org/maven2/io/ktor/ktor-io/3.5.0/ktor-io-3.5.0.pom", + "sha256": "6e24950dc472cf5fbca86a05782d2e8d3e104a2f6458f39bdddde6d1b7ac72b5" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "maven:io.ktor:ktor-utils-jvm:3.5.0": { + "integrity": { + "ktor-utils-jvm-3.5.0.jar": [ + "214200f074afe9d4b915d347397b5c1f768fbdd10ead7192e8adfd662dd4a72f" + ], + "ktor-utils-jvm-3.5.0.module": [ + "96bf126533d38cb8b3f16911c36980c2db3e746c64878288003a0b6e19385ae3" + ] + }, + "licence": "Apache-2.0", + "evidence": [ + { + "source": "https://repo.maven.apache.org/maven2/io/ktor/ktor-utils-jvm/3.5.0/ktor-utils-jvm-3.5.0.pom", + "sha256": "59ef3c362d83064f0b064c7948ace38b199f6717183e0aad08e9e827929b876b" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "maven:io.ktor:ktor-utils:3.5.0": { + "integrity": { + "ktor-utils-3.5.0.module": [ + "2923cda55c01a6d7005a860f5b8ffd0872ee704b8b28d14ce905a5ea66bbaac8" + ] + }, + "licence": "Apache-2.0", + "evidence": [ + { + "source": "https://repo.maven.apache.org/maven2/io/ktor/ktor-utils/3.5.0/ktor-utils-3.5.0.pom", + "sha256": "24928172f75f0c79074a8fbdae02f428d47613f0f3f5ab32a27cf69911c20d2e" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "maven:org.codehaus.woodstox:stax2-api:4.2.1": { + "integrity": { + "stax2-api-4.2.1.jar": ["678567e48b51a42c65c699f266539ad3d676d4b1a5b0ad7d89ece8b9d5772579"], + "stax2-api-4.2.1.pom": ["79da410c8c0f46a3f8e8adb30d6c24ccd6065b6ef6bfde87bd97e9881ea0a2e7"] + }, + "licence": "BSD-2-Clause", + "evidence": [ + { + "source": "https://repo.maven.apache.org/maven2/org/codehaus/woodstox/stax2-api/4.2.1/stax2-api-4.2.1.pom", + "sha256": "79da410c8c0f46a3f8e8adb30d6c24ccd6065b6ef6bfde87bd97e9881ea0a2e7" + }, + { + "source": "org.codehaus.woodstox:stax2-api:4.2.1!/META-INF/LICENSE (existing cached archive)", + "sha256": "b3e969d18f690ab8783e4ec77729c9fea85691b8090c550bb3c626dda5e837a7" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "maven:org.freemarker:freemarker:2.3.32": { + "integrity": { + "freemarker-2.3.32.jar": [ + "04d65ec1bde6cea20e3495d5e78ef96ab774d9936434861d3254bd88e7e94f92" + ], + "freemarker-2.3.32.pom": [ + "07a07e2eaf0976022b540567c7df622712b9a0393a6c5f6d20e6ff1579222a01" + ] + }, + "licence": "Apache-2.0", + "evidence": [ + { + "source": "https://repo.maven.apache.org/maven2/org/freemarker/freemarker/2.3.32/freemarker-2.3.32.pom", + "sha256": "07a07e2eaf0976022b540567c7df622712b9a0393a6c5f6d20e6ff1579222a01" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "maven:org.jetbrains.dokka:analysis-kotlin-symbols:2.2.0": { + "integrity": { + "analysis-kotlin-symbols-2.2.0.jar": [ + "31b4eabf7436083ae33200da6be7203675fb1fcdcd34d2f394f55e822dac8f0f" + ], + "analysis-kotlin-symbols-2.2.0.pom": [ + "54573a79dfc16d0540a42594679feadbd36c11140213a0fe813c3a4716b53f88" + ] + }, + "licence": "Apache-2.0", + "evidence": [ + { + "source": "https://repo.maven.apache.org/maven2/org/jetbrains/dokka/analysis-kotlin-symbols/2.2.0/analysis-kotlin-symbols-2.2.0.pom", + "sha256": "54573a79dfc16d0540a42594679feadbd36c11140213a0fe813c3a4716b53f88" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "maven:org.jetbrains.dokka:analysis-markdown:2.2.0": { + "integrity": { + "analysis-markdown-2.2.0.jar": [ + "7070de21dc5078013b53cc9c139321cceaf476c1630711cc5bda6d96e9da2087" + ], + "analysis-markdown-2.2.0.module": [ + "f86033ab342a334b656d207a6b0b7041fea1732ff1f5560417e4a50dadf4b2ec" + ] + }, + "licence": "Apache-2.0", + "evidence": [ + { + "source": "https://repo.maven.apache.org/maven2/org/jetbrains/dokka/analysis-markdown/2.2.0/analysis-markdown-2.2.0.pom", + "sha256": "dc8116d4ed3505a252abb0da4e9c36c77c8b8c77f065182e44bb0b94021747b1" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "maven:org.jetbrains.dokka:dokka-base:2.2.0": { + "integrity": { + "dokka-base-2.2.0.jar": [ + "721c5a1647dc49d1680d884350b438a039b2426aec65b696baee8e5aeb6442f5" + ], + "dokka-base-2.2.0.module": [ + "f377ca30b57f80262b4d50694102cc56f1f27d4d388682eaf6b84b0bedc19550" + ] + }, + "licence": "Apache-2.0", + "evidence": [ + { + "source": "https://repo.maven.apache.org/maven2/org/jetbrains/dokka/dokka-base/2.2.0/dokka-base-2.2.0.pom", + "sha256": "e95d1140b163a7924b3b6cf384d71dec2ae1bfcee77908dfb3fcc349be20152e" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "maven:org.jetbrains.dokka:dokka-core:2.2.0": { + "integrity": { + "dokka-core-2.2.0.jar": [ + "2ea7e1eeb158163b6e1109ebc5c8137ef713ae020189f87bc79d1cbe3702093d" + ], + "dokka-core-2.2.0.module": [ + "7df767d1748176565443a4f3492da8c033d51fe0022ac0d7fe2212fd6aee068b" + ] + }, + "licence": "Apache-2.0", + "evidence": [ + { + "source": "https://repo.maven.apache.org/maven2/org/jetbrains/dokka/dokka-core/2.2.0/dokka-core-2.2.0.pom", + "sha256": "85e7dbd7c5b7640610752718ef2cbdbe972b065d4dd2f3369993857bd2bc3377" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "maven:org.jetbrains.dokka:templating-plugin:2.2.0": { + "integrity": { + "templating-plugin-2.2.0.jar": [ + "710774a96e555421066cb0c99a7222129ab39be4d86add06acd88f28bedbb7ce" + ], + "templating-plugin-2.2.0.module": [ + "66b32cbea904d79d9b88d3ebab01bce04a6d88b39025055c48a6ea42891b341b" + ] + }, + "licence": "Apache-2.0", + "evidence": [ + { + "source": "https://repo.maven.apache.org/maven2/org/jetbrains/dokka/templating-plugin/2.2.0/templating-plugin-2.2.0.pom", + "sha256": "084ae688e5459d69ca723632d8e3aa9e4f8a95ba77f355c74a2cf5f939a2025d" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "maven:org.jetbrains.kotlin:abi-tools-api:2.3.21": { + "integrity": { + "abi-tools-api-2.3.21.jar": [ + "dc721c7faa844df7f5d6eb62021dc9eadfd1998e1e8df918341f16eb3c391aea" + ], + "abi-tools-api-2.3.21.pom": [ + "7395788baca82921694d2661f4bea6737d9e78545b3b56aba624100e0505d8c2" + ] + }, + "licence": "Apache-2.0", + "evidence": [ + { + "source": "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/abi-tools-api/2.3.21/abi-tools-api-2.3.21.pom", + "sha256": "7395788baca82921694d2661f4bea6737d9e78545b3b56aba624100e0505d8c2" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "maven:org.jetbrains.kotlin:abi-tools:2.3.21": { + "integrity": { + "abi-tools-2.3.21.jar": [ + "6761656205c3514050f68fde7c32b2beb47246786247dacfb279db432a70562b" + ], + "abi-tools-2.3.21.pom": ["e2c00f01274b6f4645a728a4c6e4a90a7c9d46394096a30326f7c31af09567b3"] + }, + "licence": "Apache-2.0", + "evidence": [ + { + "source": "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/abi-tools/2.3.21/abi-tools-2.3.21.pom", + "sha256": "e2c00f01274b6f4645a728a4c6e4a90a7c9d46394096a30326f7c31af09567b3" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "maven:org.jetbrains.kotlin:kotlin-build-tools-api:2.4.0": { + "integrity": { + "kotlin-build-tools-api-2.4.0.jar": [ + "66917335497f9ab75a36c34b3d90bad2bc8dc256c34b2413ecd0c9467fcf597d" + ], + "kotlin-build-tools-api-2.4.0.pom": [ + "9686fa8f16867b2aba2e5c0e4cfc4a0aeecf59fe6de419f89f7bd838fdde8e74" + ] + }, + "licence": "Apache-2.0", + "evidence": [ + { + "source": "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-build-tools-api/2.4.0/kotlin-build-tools-api-2.4.0.pom", + "sha256": "9686fa8f16867b2aba2e5c0e4cfc4a0aeecf59fe6de419f89f7bd838fdde8e74" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "maven:org.jetbrains.kotlin:kotlin-build-tools-api:2.4.20": { + "integrity": { + "kotlin-build-tools-api-2.4.20.jar": [ + "47a622dce7231b1916334b69a00bc1094adf6577e6492f9f06b3d9c2450fe459" + ], + "kotlin-build-tools-api-2.4.20.pom": [ + "e8cd9ffd7d0886ba1a1795cbf4a34a06681f184aa50f25686effeefb3c1f56f5" + ] + }, + "licence": "Apache-2.0", + "evidence": [ + { + "source": "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-build-tools-api/2.4.20/kotlin-build-tools-api-2.4.20.pom", + "sha256": "e8cd9ffd7d0886ba1a1795cbf4a34a06681f184aa50f25686effeefb3c1f56f5" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "maven:org.jetbrains.kotlin:kotlin-build-tools-compat:2.4.20": { + "integrity": { + "kotlin-build-tools-compat-2.4.20.jar": [ + "937d2961fc0b957a50c3d85a14fcc1bd0585f2229164136895b623691660c9b4" + ], + "kotlin-build-tools-compat-2.4.20.pom": [ + "f8e9f647a00bfbc237e3ddff3891b2d4e4a947611b949281658f836def304002" + ] + }, + "licence": "Apache-2.0", + "evidence": [ + { + "source": "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-build-tools-compat/2.4.20/kotlin-build-tools-compat-2.4.20.pom", + "sha256": "f8e9f647a00bfbc237e3ddff3891b2d4e4a947611b949281658f836def304002" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "maven:org.jetbrains.kotlin:kotlin-build-tools-cri-impl:2.4.0": { + "integrity": { + "kotlin-build-tools-cri-impl-2.4.0.jar": [ + "5168b866945f6ac1ffcb6d4c88cf582497249469c2e4a4eafc0bcd35b5a264a9" + ], + "kotlin-build-tools-cri-impl-2.4.0.pom": [ + "856d59395489276e93edb4390c99397de83e20d27572c5238c56ed21e43433da" + ] + }, + "licence": "Apache-2.0", + "evidence": [ + { + "source": "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-build-tools-cri-impl/2.4.0/kotlin-build-tools-cri-impl-2.4.0.pom", + "sha256": "856d59395489276e93edb4390c99397de83e20d27572c5238c56ed21e43433da" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "maven:org.jetbrains.kotlin:kotlin-build-tools-cri-impl:2.4.20": { + "integrity": { + "kotlin-build-tools-cri-impl-2.4.20.jar": [ + "277d2acc8f7dbef364dca33f777b9ceeaf5fd803f07652c2bda14e155f83076f" + ], + "kotlin-build-tools-cri-impl-2.4.20.pom": [ + "8af52efa886eed45c54d568b692e339b70ddc7c768bee9ab9c2d2f96ed8bb0e1" + ] + }, + "licence": "Apache-2.0", + "evidence": [ + { + "source": "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-build-tools-cri-impl/2.4.20/kotlin-build-tools-cri-impl-2.4.20.pom", + "sha256": "8af52efa886eed45c54d568b692e339b70ddc7c768bee9ab9c2d2f96ed8bb0e1" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "maven:org.jetbrains.kotlin:kotlin-build-tools-impl:2.4.0": { + "integrity": { + "kotlin-build-tools-impl-2.4.0.jar": [ + "076c0a7f84d303f1e390774410c8678b8b584faa3f642435f93d2e4e81dabe7c" + ], + "kotlin-build-tools-impl-2.4.0.pom": [ + "485ca3d511aa384207db5706e0741dc79ace45d40e0489f9ef29731aafb14f7c" + ] + }, + "licence": "Apache-2.0", + "evidence": [ + { + "source": "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-build-tools-impl/2.4.0/kotlin-build-tools-impl-2.4.0.pom", + "sha256": "485ca3d511aa384207db5706e0741dc79ace45d40e0489f9ef29731aafb14f7c" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "maven:org.jetbrains.kotlin:kotlin-build-tools-impl:2.4.20": { + "integrity": { + "kotlin-build-tools-impl-2.4.20.jar": [ + "68fb6f266a66463a1ba3ddb99b96e5eb202ab19a5ca4e3b56dad5eec62641c7d" + ], + "kotlin-build-tools-impl-2.4.20.pom": [ + "7a13ab2d818a5de92afa23004aa9baed99671bb48553b7098cf920fa785c3351" + ] + }, + "licence": "Apache-2.0", + "evidence": [ + { + "source": "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-build-tools-impl/2.4.20/kotlin-build-tools-impl-2.4.20.pom", + "sha256": "7a13ab2d818a5de92afa23004aa9baed99671bb48553b7098cf920fa785c3351" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "maven:org.jetbrains.kotlin:kotlin-compiler-embeddable:2.4.0": { + "integrity": { + "kotlin-compiler-embeddable-2.4.0.jar": [ + "c2b25e8c1c93ec416ba4327f5e31eaec0f0c8847241b9353e294b8db9dce564f" + ], + "kotlin-compiler-embeddable-2.4.0.pom": [ + "f5d78540108e7bbc9162253ce52c42507ead2e530945213dd2a3b793b590c53c" + ] + }, + "licence": "Apache-2.0", + "evidence": [ + { + "source": "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-compiler-embeddable/2.4.0/kotlin-compiler-embeddable-2.4.0.pom", + "sha256": "f5d78540108e7bbc9162253ce52c42507ead2e530945213dd2a3b793b590c53c" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "maven:org.jetbrains.kotlin:kotlin-compiler-embeddable:2.4.20": { + "integrity": { + "kotlin-compiler-embeddable-2.4.20.jar": [ + "cf97161430683fb9af96dc6a7017ffae1fe8737b80d12eee11f2fe3e76f8ded8" + ], + "kotlin-compiler-embeddable-2.4.20.pom": [ + "269d98cc4c68670c11e4aeb404e1c7c6f31b782321908d7268ba25cd236d59b2" + ] + }, + "licence": "Apache-2.0", + "evidence": [ + { + "source": "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-compiler-embeddable/2.4.20/kotlin-compiler-embeddable-2.4.20.pom", + "sha256": "269d98cc4c68670c11e4aeb404e1c7c6f31b782321908d7268ba25cd236d59b2" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "maven:org.jetbrains.kotlin:kotlin-compiler-runner:2.4.0": { + "integrity": { + "kotlin-compiler-runner-2.4.0.jar": [ + "ad9608152740e92d94a278b4ff2ca82c4bf5ff8ef219220e3c07aeb554638cee" + ], + "kotlin-compiler-runner-2.4.0.pom": [ + "5e1ed156cb8d38b61e2ccc546dbd8b2bde778367eb298f8875bd820fbfd0b0f2" + ] + }, + "licence": "Apache-2.0", + "evidence": [ + { + "source": "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-compiler-runner/2.4.0/kotlin-compiler-runner-2.4.0.pom", + "sha256": "5e1ed156cb8d38b61e2ccc546dbd8b2bde778367eb298f8875bd820fbfd0b0f2" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "maven:org.jetbrains.kotlin:kotlin-compiler-runner:2.4.20": { + "integrity": { + "kotlin-compiler-runner-2.4.20.jar": [ + "cc467c5b63daa7441d6bfb72f3d559d68836ce61cdbf9fc8e1e3a76ec4883d2e" + ], + "kotlin-compiler-runner-2.4.20.pom": [ + "4566946280971fe8d67990ee83480af480e846590f325a40951f62657e26a40a" + ] + }, + "licence": "Apache-2.0", + "evidence": [ + { + "source": "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-compiler-runner/2.4.20/kotlin-compiler-runner-2.4.20.pom", + "sha256": "4566946280971fe8d67990ee83480af480e846590f325a40951f62657e26a40a" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "maven:org.jetbrains.kotlin:kotlin-daemon-client:2.4.0": { + "integrity": { + "kotlin-daemon-client-2.4.0.jar": [ + "f546f0b3699c4984f320dd03080de05cad61064208ba8f37df0d3f8f4a7fd14a" + ], + "kotlin-daemon-client-2.4.0.pom": [ + "143793627382d905eda93e152a28c993f6323fc4b748370a45c7badc99914a13" + ] + }, + "licence": "Apache-2.0", + "evidence": [ + { + "source": "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-daemon-client/2.4.0/kotlin-daemon-client-2.4.0.pom", + "sha256": "143793627382d905eda93e152a28c993f6323fc4b748370a45c7badc99914a13" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "maven:org.jetbrains.kotlin:kotlin-daemon-client:2.4.20": { + "integrity": { + "kotlin-daemon-client-2.4.20.jar": [ + "89532756fc258fbde177cf1654383f15127c048d17525141c922e9aa0969d997" + ], + "kotlin-daemon-client-2.4.20.pom": [ + "37cff66ae34c924f0f738106eeb7234e7ace880f199de3362e993f4987025adc" + ] + }, + "licence": "Apache-2.0", + "evidence": [ + { + "source": "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-daemon-client/2.4.20/kotlin-daemon-client-2.4.20.pom", + "sha256": "37cff66ae34c924f0f738106eeb7234e7ace880f199de3362e993f4987025adc" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "maven:org.jetbrains.kotlin:kotlin-daemon-embeddable:2.4.0": { + "integrity": { + "kotlin-daemon-embeddable-2.4.0.jar": [ + "383093af5e078435b60043d19bfa83eb6191be0f4d13a28fb1c8a0f3ab24fe66" + ], + "kotlin-daemon-embeddable-2.4.0.pom": [ + "cb36e780fcb39ee09aab6e398f9bd5ea27f982bb6e19329742a20eb2ebdc2936" + ] + }, + "licence": "Apache-2.0", + "evidence": [ + { + "source": "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-daemon-embeddable/2.4.0/kotlin-daemon-embeddable-2.4.0.pom", + "sha256": "cb36e780fcb39ee09aab6e398f9bd5ea27f982bb6e19329742a20eb2ebdc2936" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "maven:org.jetbrains.kotlin:kotlin-daemon-embeddable:2.4.20": { + "integrity": { + "kotlin-daemon-embeddable-2.4.20.jar": [ + "eef72cf8f17e6d98d33e5b7c7e1cab31a1cf5fc34084dd5e563e7b1f3ef53435" + ], + "kotlin-daemon-embeddable-2.4.20.pom": [ + "ca631ce7c7cc2a8ecb47d3462b429004c1cd3488437b3f739e35eafea2033bfb" + ] + }, + "licence": "Apache-2.0", + "evidence": [ + { + "source": "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-daemon-embeddable/2.4.20/kotlin-daemon-embeddable-2.4.20.pom", + "sha256": "ca631ce7c7cc2a8ecb47d3462b429004c1cd3488437b3f739e35eafea2033bfb" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "maven:org.jetbrains.kotlin:kotlin-klib-abi-reader:2.3.21": { + "integrity": { + "kotlin-klib-abi-reader-2.3.21.jar": [ + "c4541b0da25452a8ea6455aff0dd590b9d567d1da68f65b2badb281ffd14ceb6" + ], + "kotlin-klib-abi-reader-2.3.21.pom": [ + "6c34f3a5bc36f3fd99206d2ae1abb734fe2254881aeacf291541e6abca8894b7" + ] + }, + "licence": "Apache-2.0", + "evidence": [ + { + "source": "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-klib-abi-reader/2.3.21/kotlin-klib-abi-reader-2.3.21.pom", + "sha256": "6c34f3a5bc36f3fd99206d2ae1abb734fe2254881aeacf291541e6abca8894b7" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "maven:org.jetbrains.kotlin:kotlin-klib-commonizer-embeddable:2.4.20": { + "integrity": { + "kotlin-klib-commonizer-embeddable-2.4.20.jar": [ + "2025231ec82c932b56125916b1d4e41163d32d3c05816dd9546169a104d7dd3f" + ], + "kotlin-klib-commonizer-embeddable-2.4.20.pom": [ + "27b1b87d463fecc7f27eb859366c9afd19fd7a4dc0d87fcf70b7cf3cd83cca79" + ] + }, + "licence": "Apache-2.0", + "evidence": [ + { + "source": "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-klib-commonizer-embeddable/2.4.20/kotlin-klib-commonizer-embeddable-2.4.20.pom", + "sha256": "27b1b87d463fecc7f27eb859366c9afd19fd7a4dc0d87fcf70b7cf3cd83cca79" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "maven:org.jetbrains.kotlin:kotlin-metadata-jvm:2.3.21": { + "integrity": { + "kotlin-metadata-jvm-2.3.21.jar": [ + "00590f26a5a768777f04252c6cf93c016a3361a6bc93636df67375ad4d19557d" + ], + "kotlin-metadata-jvm-2.3.21.pom": [ + "83b7ab0b0123e7b1428a3d5f74dc151e904a10c8cd32063991a606508bc21e80" + ] + }, + "licence": "Apache-2.0", + "evidence": [ + { + "source": "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-metadata-jvm/2.3.21/kotlin-metadata-jvm-2.3.21.pom", + "sha256": "83b7ab0b0123e7b1428a3d5f74dc151e904a10c8cd32063991a606508bc21e80" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "maven:org.jetbrains.kotlin:kotlin-reflect:1.6.10": { + "integrity": { + "kotlin-reflect-1.6.10.jar": [ + "3277ac102ae17aad10a55abec75ff5696c8d109790396434b496e75087854203" + ], + "kotlin-reflect-1.6.10.pom": [ + "57905524274a00ae028aaccc27283f6bc5925a934a046c1cc5d06c8ee4d6d5a9" + ] + }, + "licence": "Apache-2.0", + "evidence": [ + { + "source": "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-reflect/1.6.10/kotlin-reflect-1.6.10.pom", + "sha256": "57905524274a00ae028aaccc27283f6bc5925a934a046c1cc5d06c8ee4d6d5a9" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "maven:org.jetbrains.kotlin:kotlin-reflect:1.8.21": { + "integrity": { + "kotlin-reflect-1.8.21.jar": [ + "8a6cd5a3cf092acee274ce2c444dc36eefdb631579859dd4d857b3309a529c91" + ], + "kotlin-reflect-1.8.21.pom": [ + "39d78db33222cdbb32b618c7c5223d4457cc19742856d116a85090e4a96f623a" + ] + }, + "licence": "Apache-2.0", + "evidence": [ + { + "source": "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-reflect/1.8.21/kotlin-reflect-1.8.21.pom", + "sha256": "39d78db33222cdbb32b618c7c5223d4457cc19742856d116a85090e4a96f623a" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "maven:org.jetbrains.kotlin:kotlin-reflect:2.0.21": { + "integrity": { + "kotlin-reflect-2.0.21.jar": [ + "3ad2fcad0c09ddc0922debab4444d612144b7b465b75a8bb7587e20ddfafd799" + ], + "kotlin-reflect-2.0.21.pom": [ + "02ab7aeab03c68f40103026e5e9c277360cbc360818a5b2e36b9a3a9d8e8b049" + ] + }, + "licence": "Apache-2.0", + "evidence": [ + { + "source": "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-reflect/2.0.21/kotlin-reflect-2.0.21.pom", + "sha256": "02ab7aeab03c68f40103026e5e9c277360cbc360818a5b2e36b9a3a9d8e8b049" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "maven:org.jetbrains.kotlin:kotlin-reflect:2.2.21": { + "integrity": { + "kotlin-reflect-2.2.21.jar": [ + "44380abf37d245ce5c0f294f43512d1c39a59642bfa463922c74e96877cf49f8" + ], + "kotlin-reflect-2.2.21.pom": [ + "e5ab6b10560a5a52562c35cdbe71ddbe427d51eb5bfc701dcd4f6b949bd9e03f" + ] + }, + "licence": "Apache-2.0", + "evidence": [ + { + "source": "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-reflect/2.2.21/kotlin-reflect-2.2.21.pom", + "sha256": "e5ab6b10560a5a52562c35cdbe71ddbe427d51eb5bfc701dcd4f6b949bd9e03f" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "maven:org.jetbrains.kotlin:kotlin-script-runtime:2.4.0": { + "integrity": { + "kotlin-script-runtime-2.4.0.jar": [ + "196e8ecbf63daf477e34e67c2f871ee232ae7bf8b377432d876d1bbf9d273de3" + ], + "kotlin-script-runtime-2.4.0.pom": [ + "ce705c50e7e0afb22298acff0a983cdb6ea0f7fe2d1b473cee42b38405bc357f" + ] + }, + "licence": "Apache-2.0", + "evidence": [ + { + "source": "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-script-runtime/2.4.0/kotlin-script-runtime-2.4.0.pom", + "sha256": "ce705c50e7e0afb22298acff0a983cdb6ea0f7fe2d1b473cee42b38405bc357f" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "maven:org.jetbrains.kotlin:kotlin-script-runtime:2.4.20": { + "integrity": { + "kotlin-script-runtime-2.4.20.jar": [ + "fc5a19df78be445d84e8352e0d01098a6a8181324aa50c6f7bf850338e81e1b4" + ], + "kotlin-script-runtime-2.4.20.pom": [ + "dd0e3846b61a6d641300958cc52e4693cd7b47bd1d626505f383b2f9d23ade0e" + ] + }, + "licence": "Apache-2.0", + "evidence": [ + { + "source": "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-script-runtime/2.4.20/kotlin-script-runtime-2.4.20.pom", + "sha256": "dd0e3846b61a6d641300958cc52e4693cd7b47bd1d626505f383b2f9d23ade0e" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "maven:org.jetbrains.kotlin:kotlin-scripting-common:2.4.20": { + "integrity": { + "kotlin-scripting-common-2.4.20.jar": [ + "3385f7f05984a6488809b015727eca9aeba7998dc5995d87b4ae5dc9c8d4124b" + ], + "kotlin-scripting-common-2.4.20.pom": [ + "2cf95a3cad9078b1e6161d2b7ce11499dfeb64c89b755ef0a89b03808baf2bd5" + ] + }, + "licence": "Apache-2.0", + "evidence": [ + { + "source": "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-common/2.4.20/kotlin-scripting-common-2.4.20.pom", + "sha256": "2cf95a3cad9078b1e6161d2b7ce11499dfeb64c89b755ef0a89b03808baf2bd5" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "maven:org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable:2.4.20": { + "integrity": { + "kotlin-scripting-compiler-embeddable-2.4.20.jar": [ + "6eb8ce1d73b89107804b3bdf295791f52c0394cbe18bcdfb90103aee955ea1c5" + ], + "kotlin-scripting-compiler-embeddable-2.4.20.pom": [ + "54fe4af63adcc7cf4f567eb6722e05182f637443a26394fa2ef8ffb641906b35" + ] + }, + "licence": "Apache-2.0", + "evidence": [ + { + "source": "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-compiler-embeddable/2.4.20/kotlin-scripting-compiler-embeddable-2.4.20.pom", + "sha256": "54fe4af63adcc7cf4f567eb6722e05182f637443a26394fa2ef8ffb641906b35" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "maven:org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable:2.4.20": { + "integrity": { + "kotlin-scripting-compiler-impl-embeddable-2.4.20.jar": [ + "d895b182c4c7bdbd688efb360a897f2182774d91e6c57a7acbeb2dc8f13f5ff2" + ], + "kotlin-scripting-compiler-impl-embeddable-2.4.20.pom": [ + "0fa989100bb54b94cea92212a9a1ceb43ef8d4786e2405b17a5dcd5900bc5afe" + ] + }, + "licence": "Apache-2.0", + "evidence": [ + { + "source": "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-compiler-impl-embeddable/2.4.20/kotlin-scripting-compiler-impl-embeddable-2.4.20.pom", + "sha256": "0fa989100bb54b94cea92212a9a1ceb43ef8d4786e2405b17a5dcd5900bc5afe" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "maven:org.jetbrains.kotlin:kotlin-scripting-jvm:2.4.20": { + "integrity": { + "kotlin-scripting-jvm-2.4.20.jar": [ + "2be43e56bdaf38db30f87347ad4f42e9cd69ca8433e579780143791933b01fac" + ], + "kotlin-scripting-jvm-2.4.20.pom": [ + "e1c51997f4c5113b74f6fdb87ab9ac2008c6d19dd6cab0986170cfeab2b1fd90" + ] + }, + "licence": "Apache-2.0", + "evidence": [ + { + "source": "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-jvm/2.4.20/kotlin-scripting-jvm-2.4.20.pom", + "sha256": "e1c51997f4c5113b74f6fdb87ab9ac2008c6d19dd6cab0986170cfeab2b1fd90" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "maven:org.jetbrains.kotlin:kotlin-stdlib-common:2.0.21": { + "integrity": { + "kotlin-stdlib-common-2.0.21.module": [ + "6f5df8af633600a6b9cfb0fcc764af3d5119f376677677b91b6aee816b1d30ab" + ] + }, + "licence": "Apache-2.0", + "evidence": [ + { + "source": "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/2.0.21/kotlin-stdlib-common-2.0.21.pom", + "sha256": "5f402cfb8d773195b967050124c9e89b5f84b172464e1894929789bf5c4c2f29" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "maven:org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.20": { + "integrity": { + "kotlin-stdlib-jdk7-1.8.20.jar": [ + "af1ec40c3b951afdcc0c2a0173c7b81763c5281c2d5bafbf0a8544a24c5dcc0c" + ], + "kotlin-stdlib-jdk7-1.8.20.pom": [ + "3622d106578cddcc0a9ec20f8ce815f7f49ff542f640228d2141fcaf80616b06" + ] + }, + "licence": "Apache-2.0", + "evidence": [ + { + "source": "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.8.20/kotlin-stdlib-jdk7-1.8.20.pom", + "sha256": "3622d106578cddcc0a9ec20f8ce815f7f49ff542f640228d2141fcaf80616b06" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "maven:org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.21": { + "integrity": { + "kotlin-stdlib-jdk7-1.8.21.jar": [ + "33d148db0e11debd0d90677d28242bced907f9c77730000fd597867089039d86" + ], + "kotlin-stdlib-jdk7-1.8.21.pom": [ + "9bb107d5d5e3930bc5977f007a43cd20b7d24d91b1c1e528ea6ee0f248f14d36" + ] + }, + "licence": "Apache-2.0", + "evidence": [ + { + "source": "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.8.21/kotlin-stdlib-jdk7-1.8.21.pom", + "sha256": "9bb107d5d5e3930bc5977f007a43cd20b7d24d91b1c1e528ea6ee0f248f14d36" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "maven:org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.20": { + "integrity": { + "kotlin-stdlib-jdk8-1.8.20.jar": [ + "e398b67977622718bf18ff99b739c7d9da060f33fb458a2e25203221c16af010" + ], + "kotlin-stdlib-jdk8-1.8.20.pom": [ + "3a462214a336e995687769531b1e37b0c81d8e10c9949cd5ea7ae1d7803a0232" + ] + }, + "licence": "Apache-2.0", + "evidence": [ + { + "source": "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.8.20/kotlin-stdlib-jdk8-1.8.20.pom", + "sha256": "3a462214a336e995687769531b1e37b0c81d8e10c9949cd5ea7ae1d7803a0232" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "maven:org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.21": { + "integrity": { + "kotlin-stdlib-jdk8-1.8.21.jar": [ + "3db752a30074f06ee6c57984aa6f27da44f4d2bbc7f5442651f6988f1cb2b7d7" + ], + "kotlin-stdlib-jdk8-1.8.21.pom": [ + "3839d728d7c309a5c368b0270b44b4f1c7878ff5ca5d32a9a204faa3491459d8" + ] + }, + "licence": "Apache-2.0", + "evidence": [ + { + "source": "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.8.21/kotlin-stdlib-jdk8-1.8.21.pom", + "sha256": "3839d728d7c309a5c368b0270b44b4f1c7878ff5ca5d32a9a204faa3491459d8" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "maven:org.jetbrains.kotlin:kotlin-stdlib:2.0.21": { + "integrity": { + "kotlin-stdlib-2.0.21.jar": [ + "f31cc53f105a7e48c093683bbd5437561d1233920513774b470805641bedbc09" + ], + "kotlin-stdlib-2.0.21.module": [ + "81fd6d181012487ee3246eff4e2bacb64b58c46e5b5aa72971a4ddf1bd1541ed" + ] + }, + "licence": "Apache-2.0", + "evidence": [ + { + "source": "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/2.0.21/kotlin-stdlib-2.0.21.pom", + "sha256": "fcbada4cd2e9f39658293570ef613752331db69fd1dad1cabaa60548403e17da" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "maven:org.jetbrains.kotlin:kotlin-stdlib:2.3.21": { + "integrity": { + "kotlin-stdlib-2.3.21.jar": [ + "6f64eac736db9434dd6925b4a518b9d1d17177652320c37916cf9ba3ce7d7d7a" + ], + "kotlin-stdlib-2.3.21.module": [ + "7b4ea4b2242bb177a4b4abb63c3f3d857331d40d35865e36fcc3db666ec10174" + ] + }, + "licence": "Apache-2.0", + "evidence": [ + { + "source": "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/2.3.21/kotlin-stdlib-2.3.21.pom", + "sha256": "3e0b48daa14dc73f8029d8d9e15ed32940377caf7b915510f88d33219b350186" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "maven:org.jetbrains.kotlin:kotlin-stdlib:2.4.0": { + "integrity": { + "kotlin-stdlib-2.4.0.jar": [ + "ccb14ff83fabcb11458b798dbc9824748ccdffeec79c9aba789e6ed1cda86b1c" + ], + "kotlin-stdlib-2.4.0.module": [ + "c24a47dcbd9295d776f443be41d77ac245309601ed053711dee2b0254be02db6" + ] + }, + "licence": "Apache-2.0", + "evidence": [ + { + "source": "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/2.4.0/kotlin-stdlib-2.4.0.pom", + "sha256": "8194ff79a9ee24a7fa3f74a6b179c04a1859de8b987a4f0983056e59451721de" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "maven:org.jetbrains.kotlin:kotlin-stdlib:2.4.20": { + "integrity": { + "kotlin-stdlib-2.4.20.jar": [ + "2226de463d309d4a5500a481320b3dea515a6981dcae1def531fbc158884e25f" + ], + "kotlin-stdlib-2.4.20.module": [ + "afb28052ac6c3d605c0f661816ea653e073eb039682fed35bfa6cdc704c0911c" + ] + }, + "licence": "Apache-2.0", + "evidence": [ + { + "source": "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/2.4.20/kotlin-stdlib-2.4.20.pom", + "sha256": "bd69b382dba8e2b7ae3846375eb2f1389017eb908987277051ae4e3acec8c938" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "maven:org.jetbrains.kotlin:kotlin-tooling-core:2.4.20": { + "integrity": { + "kotlin-tooling-core-2.4.20.jar": [ + "5fc5db083803232857408ed5c25bcc307c703b04bdef6cb2c34ebf4db611a622" + ], + "kotlin-tooling-core-2.4.20.pom": [ + "29dd79ed2bc1e64f6bfd5ccf0c1336c6b6c11ee2a69e0c585e3fad2f45b5325d" + ] + }, + "licence": "Apache-2.0", + "evidence": [ + { + "source": "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-tooling-core/2.4.20/kotlin-tooling-core-2.4.20.pom", + "sha256": "29dd79ed2bc1e64f6bfd5ccf0c1336c6b6c11ee2a69e0c585e3fad2f45b5325d" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "maven:org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.11.0": { + "integrity": { + "kotlinx-coroutines-bom-1.11.0.pom": [ + "f65860bce58a2bfadf05fdc516d38333421f0e387fef87e24449c0394c80d254" + ] + }, + "licence": "Apache-2.0", + "evidence": [ + { + "source": "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-bom/1.11.0/kotlinx-coroutines-bom-1.11.0.pom", + "sha256": "f65860bce58a2bfadf05fdc516d38333421f0e387fef87e24449c0394c80d254" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "maven:org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.7.3": { + "integrity": { + "kotlinx-coroutines-bom-1.7.3.pom": [ + "4e5d1900e6379ef3f5970d04a8f30529adc82f859e8cc107c21ce8149ef666c4" + ] + }, + "licence": "Apache-2.0", + "evidence": [ + { + "source": "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-bom/1.7.3/kotlinx-coroutines-bom-1.7.3.pom", + "sha256": "4e5d1900e6379ef3f5970d04a8f30529adc82f859e8cc107c21ce8149ef666c4" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "maven:org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.11.0": { + "integrity": { + "kotlinx-coroutines-core-jvm-1.11.0.jar": [ + "d1d75aa01dffbb4d1c520e67e4c4e7f5f6174718e7cb4632412503f2f0e604fa" + ], + "kotlinx-coroutines-core-jvm-1.11.0.module": [ + "5b255653ad6b1f21e0c46108605f129e3aa56ed9414849cc9f5b436441517528" + ] + }, + "licence": "Apache-2.0", + "evidence": [ + { + "source": "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-core-jvm/1.11.0/kotlinx-coroutines-core-jvm-1.11.0.pom", + "sha256": "dd54b97aa3fab91fc24f5df2916c22be9429a339d2f45b7ff092332f6c19dc39" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "maven:org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.7.3": { + "integrity": { + "kotlinx-coroutines-core-jvm-1.7.3.jar": [ + "1ab3acc38f3e7355c4f9d1ec62107a46fa73c899f3070d055e5d4373dfe67e12" + ], + "kotlinx-coroutines-core-jvm-1.7.3.module": [ + "34d6ee99b76ac062b51555b4a70be18349fe5566da79a190614f171c80b6538e" + ] + }, + "licence": "Apache-2.0", + "evidence": [ + { + "source": "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-core-jvm/1.7.3/kotlinx-coroutines-core-jvm-1.7.3.pom", + "sha256": "753858753decbbb2397343e2b871f062f697812e9422e41c9ee46a66b93eee30" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "maven:org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.8.0": { + "integrity": { + "kotlinx-coroutines-core-jvm-1.8.0.jar": [ + "9860906a1937490bf5f3b06d2f0e10ef451e65b95b269f22daf68a3d1f5065c5" + ], + "kotlinx-coroutines-core-jvm-1.8.0.module": [ + "ff6a22da40040938751db0ae21177e76517dbf126a76796f5426727bf76c1228" + ] + }, + "licence": "Apache-2.0", + "evidence": [ + { + "source": "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-core-jvm/1.8.0/kotlinx-coroutines-core-jvm-1.8.0.pom", + "sha256": "a5633abd53467ceb91622d81f2e982080877145e0b76e1b75788715434885d0b" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "maven:org.jetbrains.kotlinx:kotlinx-coroutines-core:1.11.0": { + "integrity": { + "kotlinx-coroutines-core-1.11.0.module": [ + "1e19785d34728b7525d7a77ff32ead4547d51cc7a45d4ac44d4de608169b0c0d" + ] + }, + "licence": "Apache-2.0", + "evidence": [ + { + "source": "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-core/1.11.0/kotlinx-coroutines-core-1.11.0.pom", + "sha256": "41b6e78c1b0d11bc99de795390df9e4ece64dc113f482d6e308f1b7a421c1d30" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "maven:org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3": { + "integrity": { + "kotlinx-coroutines-core-1.7.3.module": [ + "7fb162396594ec28e1b6a4411b457949a7670f5e12019176774e1fd6b9471bbf" + ] + }, + "licence": "Apache-2.0", + "evidence": [ + { + "source": "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-core/1.7.3/kotlinx-coroutines-core-1.7.3.pom", + "sha256": "ed6eb0398717035e29f1c1d60a4e3ddbb89858f3db9e07b57ad759d374dae829" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "maven:org.jetbrains.kotlinx:kotlinx-html-jvm:0.9.1": { + "integrity": { + "kotlinx-html-jvm-0.9.1.jar": [ + "b68f39cd9ad7b46de0a0e77e7f5908d4e7661f3d0c85d2d9171543fcd5b156fb" + ], + "kotlinx-html-jvm-0.9.1.module": [ + "ca273fd7d06cde0f32af83230700abd9b0f573b984ae8847ce90e3dc5d0d1353" + ] + }, + "licence": "Apache-2.0", + "evidence": [ + { + "source": "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-html-jvm/0.9.1/kotlinx-html-jvm-0.9.1.pom", + "sha256": "0b07cea4e8202a3906c546f17e2e5a923476aca859d354e79e871f29e84bd297" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "maven:org.jetbrains.kotlinx:kotlinx-io-bytestring-jvm:0.9.0": { + "integrity": { + "kotlinx-io-bytestring-jvm-0.9.0.jar": [ + "43a8c9d7c5460622c4ffe7e7c9443736af1a69183316b532de78a9aafa86b636" + ], + "kotlinx-io-bytestring-jvm-0.9.0.module": [ + "d11acf9df4cb8f0b015cd011662722d72490c0889984224ea56dfe4c2734aea4" + ] + }, + "licence": "Apache-2.0", + "evidence": [ + { + "source": "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-io-bytestring-jvm/0.9.0/kotlinx-io-bytestring-jvm-0.9.0.pom", + "sha256": "8d00f6e5077f3bbe81a1df328beb5eefd008cc8f81fffe6cacd526f015dc9e84" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "maven:org.jetbrains.kotlinx:kotlinx-io-bytestring:0.9.0": { + "integrity": { + "kotlinx-io-bytestring-0.9.0.module": [ + "86183e8f9d3a2d9a82888378fad6f95758619359e45dfb72ecaf6c0b07263850" + ] + }, + "licence": "Apache-2.0", + "evidence": [ + { + "source": "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-io-bytestring/0.9.0/kotlinx-io-bytestring-0.9.0.pom", + "sha256": "d4302f639a907b4025c07f3d2ee43edca0b7ebdfb6aed580da4d2076340b2067" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "maven:org.jetbrains.kotlinx:kotlinx-io-core-jvm:0.9.0": { + "integrity": { + "kotlinx-io-core-jvm-0.9.0.jar": [ + "338872148faa4a44acc9bfa91343813d51784e8d47f005ad4406647297f85041" + ], + "kotlinx-io-core-jvm-0.9.0.module": [ + "1ad8d0e4f80a361c567af5aa904607629e5300dee153a4673e6517f876b21436" + ] + }, + "licence": "Apache-2.0", + "evidence": [ + { + "source": "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-io-core-jvm/0.9.0/kotlinx-io-core-jvm-0.9.0.pom", + "sha256": "7cb911e263d1cf42e6d7363ed5601a61ac58819768d5207df91b0f69e22a6ce8" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "maven:org.jetbrains.kotlinx:kotlinx-io-core:0.9.0": { + "integrity": { + "kotlinx-io-core-0.9.0.module": [ + "f902561241cde204717e1eaedfaf0306e98ab99679acb7a663aaea81f15a3620" + ] + }, + "licence": "Apache-2.0", + "evidence": [ + { + "source": "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-io-core/0.9.0/kotlinx-io-core-0.9.0.pom", + "sha256": "ad86bb89840d68b0365b3d219d10024adad4c6464e04136c6a429e1bb768fea6" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "maven:org.jetbrains.kotlinx:kotlinx-serialization-bom:1.11.0": { + "integrity": { + "kotlinx-serialization-bom-1.11.0.pom": [ + "3be221b6da86dcda51cac6c4b2404b89e95ab09cc8d06a05689be2ef36735dec" + ] + }, + "licence": "Apache-2.0", + "evidence": [ + { + "source": "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-serialization-bom/1.11.0/kotlinx-serialization-bom-1.11.0.pom", + "sha256": "3be221b6da86dcda51cac6c4b2404b89e95ab09cc8d06a05689be2ef36735dec" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "maven:org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.11.0": { + "integrity": { + "kotlinx-serialization-core-jvm-1.11.0.jar": [ + "f4a801c647d4351327cd9e1ac4113e2be9ea37a64ab0abae269c25a52e28f35d" + ], + "kotlinx-serialization-core-jvm-1.11.0.module": [ + "d8bee6e8a51d7c169bd6060abbc6b2d4e7bc419a265cd705d47824b83f1bd0b6" + ] + }, + "licence": "Apache-2.0", + "evidence": [ + { + "source": "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-serialization-core-jvm/1.11.0/kotlinx-serialization-core-jvm-1.11.0.pom", + "sha256": "83039385976fdc494241f4572558a136e7b21116d7279b26daf335478bfacb57" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "maven:org.jetbrains.kotlinx:kotlinx-serialization-core:1.11.0": { + "integrity": { + "kotlinx-serialization-core-1.11.0.module": [ + "4e011406f2c2285a5a9ba8c3b6471ac168f6e82af82b1a93b71a0731d270364e" + ] + }, + "licence": "Apache-2.0", + "evidence": [ + { + "source": "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-serialization-core/1.11.0/kotlinx-serialization-core-1.11.0.pom", + "sha256": "3133773fbcf9822a7f3a5e85ab19941e67bd289bf5fc3182d9db4d1cab86eb22" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "maven:org.jetbrains:annotations:13.0": { + "integrity": { + "annotations-13.0.jar": [ + "ace2a10dc8e2d5fd34925ecac03e4988b2c0f851650c94b8cef49ba1bd111478" + ], + "annotations-13.0.pom": ["965aeb2bedff369819bdde1bf7a0b3b89b8247dd69c88b86375d76163bb8c397"] + }, + "licence": "Apache-2.0", + "evidence": [ + { + "source": "https://repo.maven.apache.org/maven2/org/jetbrains/annotations/13.0/annotations-13.0.pom", + "sha256": "965aeb2bedff369819bdde1bf7a0b3b89b8247dd69c88b86375d76163bb8c397" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "maven:org.jetbrains:annotations:23.0.0": { + "integrity": { + "annotations-23.0.0.jar": [ + "7b0f19724082cbfcbc66e5abea2b9bc92cf08a1ea11e191933ed43801eb3cd05" + ], + "annotations-23.0.0.pom": [ + "c9490f655132328df2cfbcfdf743f53fc3916d6c1d10437175a6ca6e3a67771c" + ] + }, + "licence": "Apache-2.0", + "evidence": [ + { + "source": "https://repo.maven.apache.org/maven2/org/jetbrains/annotations/23.0.0/annotations-23.0.0.pom", + "sha256": "c9490f655132328df2cfbcfdf743f53fc3916d6c1d10437175a6ca6e3a67771c" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "maven:org.jetbrains:markdown-jvm:0.7.3": { + "integrity": { + "markdown-jvm-0.7.3.jar": [ + "893abb31f15b6216f74dc704c0c6bf1e567dcf2b62cca29cf42e4f53153637ac" + ], + "markdown-jvm-0.7.3.module": [ + "7029b63c74964e5b4334308ee729e95b538da5ed6ac12b2e477d478572d02252" + ] + }, + "licence": "Apache-2.0", + "evidence": [ + { + "source": "https://repo.maven.apache.org/maven2/org/jetbrains/markdown-jvm/0.7.3/markdown-jvm-0.7.3.pom", + "sha256": "acb9d157ffc7a64ee62be8edd9600d26b5db03270a74e8be53cd79fe0b26f3cd" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "maven:org.jetbrains:markdown:0.7.3": { + "integrity": { + "markdown-0.7.3.module": [ + "dbfae7aa853eb5ea1eeba31896538a8403646f55c59a99191d687fc037bdac39" + ] + }, + "licence": "Apache-2.0", + "evidence": [ + { + "source": "https://repo.maven.apache.org/maven2/org/jetbrains/markdown/0.7.3/markdown-0.7.3.pom", + "sha256": "11e52e0a640e54a4b3b230d1485c95ba4ba77b2c7b1fc28437390f9e01227147" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "maven:org.jsoup:jsoup:1.16.1": { + "integrity": { + "jsoup-1.16.1.jar": ["1f115726540ddf71958c14bc517ebfc49cf481e91cd917b0face84f01272e901"], + "jsoup-1.16.1.pom": ["6cc507f630536f205bde2c1b38c3c5907511de2d7b1a444be9d638d4614f243c"] + }, + "licence": "MIT", + "evidence": [ + { + "source": "https://repo.maven.apache.org/maven2/org/jsoup/jsoup/1.16.1/jsoup-1.16.1.pom", + "sha256": "6cc507f630536f205bde2c1b38c3c5907511de2d7b1a444be9d638d4614f243c" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "maven:org.slf4j:slf4j-api:2.0.18": { + "integrity": { + "slf4j-api-2.0.18.jar": [ + "44508fd1576500688c790b190acdd16fec4f8c79a3e0b900afd70503cf055f55" + ], + "slf4j-api-2.0.18.pom": ["6c2c7f2c02774cc2b7b619fbd2df7873cdad29718926e44754b87f70d1eb43cb"] + }, + "licence": "MIT", + "evidence": [ + { + "source": "https://repo.maven.apache.org/maven2/org/slf4j/slf4j-api/2.0.18/slf4j-api-2.0.18.pom", + "sha256": "6c2c7f2c02774cc2b7b619fbd2df7873cdad29718926e44754b87f70d1eb43cb" + }, + { + "source": "https://repo.maven.apache.org/maven2/org/slf4j/slf4j-parent/2.0.18/slf4j-parent-2.0.18.pom", + "sha256": "0b3896bedad2c9ed9697edcbea1da0c54cd238a723583a81358a83bfb782e9fa" + }, + { + "source": "https://repo.maven.apache.org/maven2/org/slf4j/slf4j-bom/2.0.18/slf4j-bom-2.0.18.pom", + "sha256": "9219aab601575126c4e66e1331eb2b0c6c17a330ac4d5a07e3cd11d580a0c12d" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "npm:@bufbuild/protobuf@2.15.0": { + "integrity": "sha512-DAheWUkVr/SJTWCc+lg9dhY0eN4SaWlf4+bG1KzHeXbnqt0AfB/NX0Z+VunGlM1ki1B4zVvye27MpKh/svySUA==", + "licence": "(Apache-2.0 AND BSD-3-Clause)", + "evidence": [ + { + "source": "package-lock.json#node_modules/@bufbuild/protobuf", + "sha256": "5ccbb6790ac9f6995b28d33a66f9c06192eeed2434892bdae8f9badde1614f7d" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "npm:@bufbuild/protoc-gen-es@2.15.0": { + "integrity": "sha512-FRhNTAZEXW6arWx2JxgtpuazhmewYctXugu5SfXGpXpLLCInDT1005fSKDzEM/70Es2oIn07PM4RvpwvDvR/fg==", + "licence": "Apache-2.0", + "evidence": [ + { + "source": "package-lock.json#node_modules/@bufbuild/protoc-gen-es", + "sha256": "5ccbb6790ac9f6995b28d33a66f9c06192eeed2434892bdae8f9badde1614f7d" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "npm:@bufbuild/protoplugin@2.15.0": { + "integrity": "sha512-vZhRoqB/jTHATqItRvJQf1zbxdrGRRhiusGty4+lKcfEFODG0PMXky2Ezv4WHHS6oSxq+5qShITuE7K1/82SuQ==", + "licence": "Apache-2.0", + "evidence": [ + { + "source": "package-lock.json#node_modules/@bufbuild/protoplugin", + "sha256": "5ccbb6790ac9f6995b28d33a66f9c06192eeed2434892bdae8f9badde1614f7d" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "npm:@connectrpc/connect-web@2.2.0": { + "integrity": "sha512-uuBUcBTYfb/r1o98LzCCZk1H90yx0vmZ5m21dpw/q4EUwsKwkCDGI8H0aEdjcZld+Q2jJ5A5ADvPqfb6lzQ/sg==", + "licence": "Apache-2.0", + "evidence": [ + { + "source": "package-lock.json#node_modules/@connectrpc/connect-web", + "sha256": "5ccbb6790ac9f6995b28d33a66f9c06192eeed2434892bdae8f9badde1614f7d" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "npm:@connectrpc/connect@2.2.0": { + "integrity": "sha512-M63OQ1ZFcPUm85CuewJ9G9CMV8LjzGR9935xOnXNQGSazAbwMb3x2W7vXBYM1zqrP7XFD8uxp/dUAhirclgwnQ==", + "licence": "Apache-2.0", + "evidence": [ + { + "source": "package-lock.json#node_modules/@connectrpc/connect", + "sha256": "5ccbb6790ac9f6995b28d33a66f9c06192eeed2434892bdae8f9badde1614f7d" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "npm:@typescript/typescript-aix-ppc64@7.0.2": { + "integrity": "sha512-MTKKkWB7p/0E9xi1d1tHtZ5PiLkGEMIq88pK2CubZjOsLtYTLqhgIgi6zepFa+9GHZ6h05NMCkQxGKiPXMxXtQ==", + "licence": "Apache-2.0", + "evidence": [ + { + "source": "package-lock.json#node_modules/@typescript/typescript-aix-ppc64", + "sha256": "5ccbb6790ac9f6995b28d33a66f9c06192eeed2434892bdae8f9badde1614f7d" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "npm:@typescript/typescript-darwin-arm64@7.0.2": { + "integrity": "sha512-gowzar9MwS/aRWp6f3a4KUqzRjAZjOsmGNCM6LcTgXum+dBfgsBVMN+AgvOCCbguXyick6LJhpBszxMebJ8syA==", + "licence": "Apache-2.0", + "evidence": [ + { + "source": "package-lock.json#node_modules/@typescript/typescript-darwin-arm64", + "sha256": "5ccbb6790ac9f6995b28d33a66f9c06192eeed2434892bdae8f9badde1614f7d" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "npm:@typescript/typescript-darwin-x64@7.0.2": { + "integrity": "sha512-SZ9xZInqApNlNGc9s0W1VSsktYSOe9cFqNOIqmN1Gs8SmkjKZYFt017G4VwPxASInODuAdbTW7sXiFUf893RgA==", + "licence": "Apache-2.0", + "evidence": [ + { + "source": "package-lock.json#node_modules/@typescript/typescript-darwin-x64", + "sha256": "5ccbb6790ac9f6995b28d33a66f9c06192eeed2434892bdae8f9badde1614f7d" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "npm:@typescript/typescript-freebsd-arm64@7.0.2": { + "integrity": "sha512-W5NH4y/J0plIIS5b2xvTEkU7JFxyqdMAOgf+Ilhl0vHQXKO5dZoxd+C/jEtq56c4F3wk71RB4BMRQ2XdI+bwYQ==", + "licence": "Apache-2.0", + "evidence": [ + { + "source": "package-lock.json#node_modules/@typescript/typescript-freebsd-arm64", + "sha256": "5ccbb6790ac9f6995b28d33a66f9c06192eeed2434892bdae8f9badde1614f7d" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "npm:@typescript/typescript-freebsd-x64@7.0.2": { + "integrity": "sha512-UMGDx5sTpzNw3WiPebH7l90IWfJggEd+egHt/q6p7/Cm3zqoV7VxkGXt+3DxPIw8CcmvAB0j3sVVfbhX+M4Tpw==", + "licence": "Apache-2.0", + "evidence": [ + { + "source": "package-lock.json#node_modules/@typescript/typescript-freebsd-x64", + "sha256": "5ccbb6790ac9f6995b28d33a66f9c06192eeed2434892bdae8f9badde1614f7d" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "npm:@typescript/typescript-linux-arm64@7.0.2": { + "integrity": "sha512-Qh4eU4/y3yDjnfjjyPYihMj5/ODIlmt+Bzu17OI+fiSRDW57QmU5SiN63exPRNJPKUzcc1INa1NXdrJ+MqHjUQ==", + "licence": "Apache-2.0", + "evidence": [ + { + "source": "package-lock.json#node_modules/@typescript/typescript-linux-arm64", + "sha256": "5ccbb6790ac9f6995b28d33a66f9c06192eeed2434892bdae8f9badde1614f7d" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "npm:@typescript/typescript-linux-arm@7.0.2": { + "integrity": "sha512-gffT3xPz9sR7j/YJExkyPntrI0P2EP9XbOyWzth2/Gs0RstK+90RBcO0ncXoXy/beYll1SXw846Nf2zdnEz0QQ==", + "licence": "Apache-2.0", + "evidence": [ + { + "source": "package-lock.json#node_modules/@typescript/typescript-linux-arm", + "sha256": "5ccbb6790ac9f6995b28d33a66f9c06192eeed2434892bdae8f9badde1614f7d" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "npm:@typescript/typescript-linux-loong64@7.0.2": { + "integrity": "sha512-uEHck9i8hoAzXPiYRib1O7miOnz23SxIeVl6F4LXox+qov1K35jHcEW6VHKvZI+pyvl7fZEP4MCU5LYvIq1GuQ==", + "licence": "Apache-2.0", + "evidence": [ + { + "source": "package-lock.json#node_modules/@typescript/typescript-linux-loong64", + "sha256": "5ccbb6790ac9f6995b28d33a66f9c06192eeed2434892bdae8f9badde1614f7d" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "npm:@typescript/typescript-linux-mips64el@7.0.2": { + "integrity": "sha512-R4KvAMnE43W5Qeqb0Ly56O3mWMWIAgsMyz36DCaycd5nbg/9kzm0liw3JocfRqyJY0KPmzFjbswozXyW0DnIYA==", + "licence": "Apache-2.0", + "evidence": [ + { + "source": "package-lock.json#node_modules/@typescript/typescript-linux-mips64el", + "sha256": "5ccbb6790ac9f6995b28d33a66f9c06192eeed2434892bdae8f9badde1614f7d" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "npm:@typescript/typescript-linux-ppc64@7.0.2": { + "integrity": "sha512-DORx5b3sd/4S7eayxm4FQv+A7CrkUIGRaHiwI8oiHTAI1fAPWhF4J0vAlkC8biAlHSVVwxMQ3tjZ2/DVbnQiiA==", + "licence": "Apache-2.0", + "evidence": [ + { + "source": "package-lock.json#node_modules/@typescript/typescript-linux-ppc64", + "sha256": "5ccbb6790ac9f6995b28d33a66f9c06192eeed2434892bdae8f9badde1614f7d" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "npm:@typescript/typescript-linux-riscv64@7.0.2": { + "integrity": "sha512-wf0jqEDOjrPRnKwYRyyJDRo11KMbvMFrU+q4zqKyChODBzvlkbhNQfKvLxQCcwTpdDaXSHZTVuh0JoCrKCUMHQ==", + "licence": "Apache-2.0", + "evidence": [ + { + "source": "package-lock.json#node_modules/@typescript/typescript-linux-riscv64", + "sha256": "5ccbb6790ac9f6995b28d33a66f9c06192eeed2434892bdae8f9badde1614f7d" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "npm:@typescript/typescript-linux-s390x@7.0.2": { + "integrity": "sha512-IkwJc3L7yhytWd/ewjyxNDfOmswCm9GWMJT/ue/dU4aZNbwZeYAetq42VyLmsmSjvoX7z74X6ZaYCtzAr0EuGw==", + "licence": "Apache-2.0", + "evidence": [ + { + "source": "package-lock.json#node_modules/@typescript/typescript-linux-s390x", + "sha256": "5ccbb6790ac9f6995b28d33a66f9c06192eeed2434892bdae8f9badde1614f7d" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "npm:@typescript/typescript-linux-x64@7.0.2": { + "integrity": "sha512-EYdf2cNg7rgCWJnxCdJ+F3V39O8ihb37eHAu1LK8oAFizgTQbPOK7zHHXbPt8rX24COqODXeI3sIf0fCXG7H/A==", + "licence": "Apache-2.0", + "evidence": [ + { + "source": "package-lock.json#node_modules/@typescript/typescript-linux-x64", + "sha256": "5ccbb6790ac9f6995b28d33a66f9c06192eeed2434892bdae8f9badde1614f7d" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "npm:@typescript/typescript-netbsd-arm64@7.0.2": { + "integrity": "sha512-+polYF4MF04aPpO5FTkHran9yUQDSXqy5GiSDKpsll5jy3l3+g9QLhpf39T+ePtefhXLOGrLl0QIjkQP6VnelA==", + "licence": "Apache-2.0", + "evidence": [ + { + "source": "package-lock.json#node_modules/@typescript/typescript-netbsd-arm64", + "sha256": "5ccbb6790ac9f6995b28d33a66f9c06192eeed2434892bdae8f9badde1614f7d" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "npm:@typescript/typescript-netbsd-x64@7.0.2": { + "integrity": "sha512-8YIT0EHM/3dq10ZOVF/A7pc/YSMtbcecct4rWtexrnSCHOPcpC2KTLXfTCR6vDpnSiY12heNb1GiN/wu+T/FyA==", + "licence": "Apache-2.0", + "evidence": [ + { + "source": "package-lock.json#node_modules/@typescript/typescript-netbsd-x64", + "sha256": "5ccbb6790ac9f6995b28d33a66f9c06192eeed2434892bdae8f9badde1614f7d" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "npm:@typescript/typescript-openbsd-arm64@7.0.2": { + "integrity": "sha512-APT8+ClYnuYm1u9+kgGXoMj2VzWzcymwh2gNSQVySHfkRDGOTVkoWLjCmOQSaO+PoqQ57B0flRp9SA+7GnnkzQ==", + "licence": "Apache-2.0", + "evidence": [ + { + "source": "package-lock.json#node_modules/@typescript/typescript-openbsd-arm64", + "sha256": "5ccbb6790ac9f6995b28d33a66f9c06192eeed2434892bdae8f9badde1614f7d" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "npm:@typescript/typescript-openbsd-x64@7.0.2": { + "integrity": "sha512-yX7s+Q0Dln0Dt9tEzZsAjXXR/+ytBM7AlglaqyeMPxQszJ1JhlJdZ6jLA+IzldHtflX81em7lDao1xXu+aRRkg==", + "licence": "Apache-2.0", + "evidence": [ + { + "source": "package-lock.json#node_modules/@typescript/typescript-openbsd-x64", + "sha256": "5ccbb6790ac9f6995b28d33a66f9c06192eeed2434892bdae8f9badde1614f7d" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "npm:@typescript/typescript-sunos-x64@7.0.2": { + "integrity": "sha512-dLJDGaLZ1D4HPQn62u1n8mBDkJREwMsAkCdkwd4Ieqw+x3TUyTsqY0YiBCtE6H6OzzgGk3iuZ3vFWRS+E8/d1g==", + "licence": "Apache-2.0", + "evidence": [ + { + "source": "package-lock.json#node_modules/@typescript/typescript-sunos-x64", + "sha256": "5ccbb6790ac9f6995b28d33a66f9c06192eeed2434892bdae8f9badde1614f7d" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "npm:@typescript/typescript-win32-arm64@7.0.2": { + "integrity": "sha512-Gyl1Vy6OsWesLzmq+EP0Fb7b4Nid5232AvcA2SFcdYreldpNtYFFofPjnt62y9hQy7VTaZp65ICJjuAQRaVcIQ==", + "licence": "Apache-2.0", + "evidence": [ + { + "source": "package-lock.json#node_modules/@typescript/typescript-win32-arm64", + "sha256": "5ccbb6790ac9f6995b28d33a66f9c06192eeed2434892bdae8f9badde1614f7d" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "npm:@typescript/typescript-win32-x64@7.0.2": { + "integrity": "sha512-0BQ3HkAHHlKLSp1qRvf3SUhGpGsDuhB/jgFw75guyqbxJqEaS0Cw/VFO8i2nHglJUzQCRtMMR/IBAKE3ETMC4g==", + "licence": "Apache-2.0", + "evidence": [ + { + "source": "package-lock.json#node_modules/@typescript/typescript-win32-x64", + "sha256": "5ccbb6790ac9f6995b28d33a66f9c06192eeed2434892bdae8f9badde1614f7d" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "npm:@typescript/vfs@1.6.4": { + "integrity": "sha512-PJFXFS4ZJKiJ9Qiuix6Dz/OwEIqHD7Dme1UwZhTK11vR+5dqW2ACbdndWQexBzCx+CPuMe5WBYQWCsFyGlQLlQ==", + "licence": "MIT", + "evidence": [ + { + "source": "package-lock.json#node_modules/@typescript/vfs", + "sha256": "5ccbb6790ac9f6995b28d33a66f9c06192eeed2434892bdae8f9badde1614f7d" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "npm:debug@4.4.3": { + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "licence": "MIT", + "evidence": [ + { + "source": "package-lock.json#node_modules/debug", + "sha256": "5ccbb6790ac9f6995b28d33a66f9c06192eeed2434892bdae8f9badde1614f7d" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "npm:ms@2.1.3": { + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "licence": "MIT", + "evidence": [ + { + "source": "package-lock.json#node_modules/ms", + "sha256": "5ccbb6790ac9f6995b28d33a66f9c06192eeed2434892bdae8f9badde1614f7d" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "npm:prettier@3.9.8": { + "integrity": "sha512-WRFq3Wn3WId7LLROfMLdH7xaFr2jR62wU8nLO6rQUOLOxNZUviyJQs1M0iIhLexSFy+L+w0ch66wtoO2jRjG0A==", + "licence": "MIT", + "evidence": [ + { + "source": "package-lock.json#node_modules/prettier", + "sha256": "3e536db25743ceb5a021559dbc1f31d57112211c62d94f84df34daca5382709c" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "npm:typescript@5.4.5": { + "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", + "licence": "Apache-2.0", + "evidence": [ + { + "source": "package-lock.json#node_modules/typescript", + "sha256": "5ccbb6790ac9f6995b28d33a66f9c06192eeed2434892bdae8f9badde1614f7d" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "npm:typescript@7.0.2": { + "integrity": "sha512-8FYau96o3NKOhbjKi/qNvG/W5jhzxkbdm5sj9AbZ/5T5sWqn3hJgLfGx27sRKZWTvyzCP8dLRBTf5tBTSRVUNA==", + "licence": "Apache-2.0", + "evidence": [ + { + "source": "package-lock.json#node_modules/typescript", + "sha256": "5ccbb6790ac9f6995b28d33a66f9c06192eeed2434892bdae8f9badde1614f7d" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "nuget:google.protobuf@3.36.1": { + "integrity": "77AqPEoaY1ODE+syYBHti0jXiwQq0J/fUr/fRyYhNlc9oKtH5dZZEr/OLKtdKNVG83PRnCYB2r8B80ZrObzOGQ==", + "licence": "BSD-3-Clause", + "evidence": [ + { + "source": "https://api.nuget.org/v3-flatcontainer/google.protobuf/3.36.1/google.protobuf.nuspec", + "sha256": "d6a4a567ce4889e25d098fd39d13a65ce05c847e8574818edc0d1eee6277eb40" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "nuget:grpc.aspnetcore.server.clientfactory@2.83.0": { + "integrity": "DrX1dE9WJNOsaKDQpD1gQaVE567jMNfhpBuG6P2NvGhirf2HZczfIJtd2d1L+steYh0YZ1q57Sa1ZHuufMPYBw==", + "licence": "Apache-2.0", + "evidence": [ + { + "source": "https://api.nuget.org/v3-flatcontainer/grpc.aspnetcore.server.clientfactory/2.83.0/grpc.aspnetcore.server.clientfactory.nuspec", + "sha256": "c136c73c16bb696799979b16ec3e8cedb71f9787134697f595c9329367b46006" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "nuget:grpc.aspnetcore.server@2.83.0": { + "integrity": "rWeSaXaSPIIerc82lhHKqmzlp/sgLnG+Zw1c3YEEVp/un+hJKPxJOXWuGUOS2cs3EvcZBZ2tliXsnAg5Mdk2Ew==", + "licence": "Apache-2.0", + "evidence": [ + { + "source": "https://api.nuget.org/v3-flatcontainer/grpc.aspnetcore.server/2.83.0/grpc.aspnetcore.server.nuspec", + "sha256": "b9a51de789abe619de7ee4bb9ec9f30452c4bca13d514e53ac574a0bb96116e3" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "nuget:grpc.aspnetcore.web@2.84.0": { + "integrity": "xhpKA/nWQbgFLT0Z9sANWU2n9qMcb7l5Sfo7Z7f+7JZxGxGMEKe9kbGn9K8TxJmsDJ9wlxJKp+b40HsQfuMFEQ==", + "licence": "Apache-2.0", + "evidence": [ + { + "source": "https://api.nuget.org/v3-flatcontainer/grpc.aspnetcore.web/2.84.0/grpc.aspnetcore.web.nuspec", + "sha256": "9aa433115fb36b18c12cd74b4c1f7f9f0e656500f9a144b115d01c00b020f2d6" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "nuget:grpc.aspnetcore@2.83.0": { + "integrity": "PMoR+paO24EgBjBvfCqrmkurBH+RmfOIYThsUv6sGx6LUH0kxhzQkjtZ44mJxU0IwEw64dCzHhIjAM+CmORp3g==", + "licence": "Apache-2.0", + "evidence": [ + { + "source": "https://api.nuget.org/v3-flatcontainer/grpc.aspnetcore/2.83.0/grpc.aspnetcore.nuspec", + "sha256": "3852b062a3142127590a43bb41470c956570ca4dd5a65713c4da92a57de1714e" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "nuget:grpc.net.client@2.84.0": { + "integrity": "My6Fms2YCyAbihTBZZ3kLS39iTY2pkMAzGDBTC6XhPOujg70eB07AEJ7tPiW3tZ70bhFzHcc3+d4j3DaIPF3aA==", + "licence": "Apache-2.0", + "evidence": [ + { + "source": "https://api.nuget.org/v3-flatcontainer/grpc.net.client/2.84.0/grpc.net.client.nuspec", + "sha256": "32a43f3448ab90bb71c946533db4d5135cef4728a3ee29bf88d9a0cbf1e67413" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "nuget:grpc.core.api@2.84.0": { + "integrity": "p2SOMl6q/GZ4/5MLkgboC/z55g4zKUEruRn/g46QgppjQBVnsLZVBU/9VO7n60ll38G3Eo8Zu9b7x+W01GKFVg==", + "licence": "Apache-2.0", + "evidence": [ + { + "source": "https://api.nuget.org/v3-flatcontainer/grpc.core.api/2.84.0/grpc.core.api.nuspec", + "sha256": "bba00f5d5be8423dd351662e313648b0abd13100ef67d55f6fc29de44c544a96" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "nuget:grpc.net.clientfactory@2.83.0": { + "integrity": "j07orG5YnET3n5+TnczHCQsyWL3a4n/lJlIS88B3Zffylpp0RkcPzLv4ILAwKmOWOBvbBHiytPzAwJ8p7JomEQ==", + "licence": "Apache-2.0", + "evidence": [ + { + "source": "https://api.nuget.org/v3-flatcontainer/grpc.net.clientfactory/2.83.0/grpc.net.clientfactory.nuspec", + "sha256": "ba34068bb1e956e14021209f9576a3fd9c40340f444a7d0c62ddfdef2cf8788b" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "nuget:grpc.net.common@2.84.0": { + "integrity": "DPxm/H8G/lDRrz997wM0M2zN/PGqVeZKDakhBbtABEbv6WIW4HI9g3BvntBQT6ZUROuGacMzfyyF9e5kiTVFfQ==", + "licence": "Apache-2.0", + "evidence": [ + { + "source": "https://api.nuget.org/v3-flatcontainer/grpc.net.common/2.84.0/grpc.net.common.nuspec", + "sha256": "f621aa566e63340b572a4f0bd2b996b934407c77b8cdf121f38578e93ee796cb" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "nuget:grpc.tools@2.84.0": { + "integrity": "SarjdfpQYU/mmdu/fWgSW8kEHQ54jiyG2+I4THu9eubtAud+QJf+1iJdGtoKTJ/ZRaI0qAG+7ttsK2WUTao2OQ==", + "licence": "Apache-2.0", + "evidence": [ + { + "source": "https://api.nuget.org/v3-flatcontainer/grpc.tools/2.84.0/grpc.tools.nuspec", + "sha256": "ec22ca632fad79aac17b94fdad74aa17dd999a493b68f6b6e693863737daf2ed" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "nuget:microsoft.dotnet.ilcompiler@10.0.11": { + "integrity": "yloFUsIQOzspIsn2cDHrbgikKaWHAZspzj0EWxnWJJpFC89IBW64OXgCECsrrnzGWQvy1iLX9r5/R4zBf7Am3g==", + "licence": "MIT", + "evidence": [ + { + "source": "https://api.nuget.org/v3-flatcontainer/microsoft.dotnet.ilcompiler/10.0.11/microsoft.dotnet.ilcompiler.nuspec", + "sha256": "2c16a1f000bd7a7e5c0864d2b097d5d00afc5d723770751bc6228bd463c6cc56" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "nuget:microsoft.extensions.logging.abstractions@8.0.1": { + "integrity": "RIFgaqoaINxkM2KTOw72dmilDmTrYA0ns2KW4lDz4gZ2+o6IQ894CzmdL3StM2oh7QQq44nCWiqKqc4qUI9Jmg==", + "licence": "MIT", + "evidence": [ + { + "source": "https://api.nuget.org/v3-flatcontainer/microsoft.extensions.logging.abstractions/8.0.1/microsoft.extensions.logging.abstractions.nuspec", + "sha256": "7593932df3e935a8e6670efad230c82967bc45ea4065186d9b886670408b95cc" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "nuget:microsoft.extensions.dependencyinjection.abstractions@8.0.1": { + "integrity": "fGLiCRLMYd00JYpClraLjJTNKLmMJPnqxMaiRzEBIIvevlzxz33mXy39Lkd48hu1G+N21S7QpaO5ZzKsI6FRuA==", + "licence": "MIT", + "evidence": [ + { + "source": "https://api.nuget.org/v3-flatcontainer/microsoft.extensions.dependencyinjection.abstractions/8.0.1/microsoft.extensions.dependencyinjection.abstractions.nuspec", + "sha256": "1ed9fd0c77d67cc75208b3268df565762916a992f3e246973430dbd77ede2413" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "nuget:microsoft.net.illink.tasks@10.0.11": { + "integrity": "IBf7lbovvjGWVWXZX5cJ/cO0WXbId0Zq4BuSeT94mGZuOAP66oMeH9PTBZ9Jpp3Jb6jtK0qm/NyUbPRo1gC/wQ==", + "licence": "MIT", + "evidence": [ + { + "source": "https://api.nuget.org/v3-flatcontainer/microsoft.net.illink.tasks/10.0.11/microsoft.net.illink.tasks.nuspec", + "sha256": "6c10c93cd2958d71fc46d60c940044071e15b57a75d469d68adf80f0dff57da1" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "nuget:runtime.linux-x64.microsoft.dotnet.ilcompiler@10.0.11": { + "integrity": "0lJviBev2CvBdrLhMCJ1hmwOKgjbk1ccRy+brEewywtK4TMft1WaVXv112j6OuTQg8ZMbnN/i3KRD3S6o4NJDw==", + "licence": "MIT", + "evidence": [ + { + "source": "https://api.nuget.org/v3-flatcontainer/runtime.linux-x64.microsoft.dotnet.ilcompiler/10.0.11/runtime.linux-x64.microsoft.dotnet.ilcompiler.nuspec", + "sha256": "0d304c7cb54460b35cc188ca792aeb0f81772a6ac85d891e23d98889101aa3a0" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "nuget:runtime.win-x64.microsoft.dotnet.ilcompiler@10.0.11": { + "integrity": "D6ZKMo3NeTnos7l5S8bMmiPm4LK+y15Q/uduyPw7FX+xKbeWVWdwlcZGkLLPjLvW4ZO6o3ACanq5HsSXJgrt0g==", + "licence": "MIT", + "evidence": [ + { + "source": "https://api.nuget.org/v3-flatcontainer/runtime.win-x64.microsoft.dotnet.ilcompiler/10.0.11/runtime.win-x64.microsoft.dotnet.ilcompiler.nuspec", + "sha256": "e65322f78f21c985eea3b00e9f7cbc413d7b26a997ae861b08ee5265fc49b412" + } + ], + "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "nuget:arcforges.contracts.foundation@1.0.0-ci.113.1": { + "integrity": "k51yFjKnec92FJEfOM3/6YEhnbi1wfO4gztqjlhLumg7USTjVnA7ab7rE4X/H1cDb62Ny4c2ufn8Xi/CtBaZnA==", + "licence": "Apache-2.0", + "evidence": [ + { + "source": "https://api.nuget.org/v3-flatcontainer/arcforges.contracts.foundation/1.0.0-ci.113.1/arcforges.contracts.foundation.nuspec", + "sha256": "7726a233f9ce81c4373a2ab9423c33d566b919bb2cb90d2b5577cf844bbbbfc4" + } + ], + "scope": "Exact previously published first-party fixture consumed only by the isolated offline PreviousClient test executable; never a production package dependency." + }, + "nuget:arcforges.contracts.publicapi@1.0.0-ci.113.1": { + "integrity": "1ai2jcqdFfKLHahN62N9dqkcSsAEbgK/K5uQi4LDIUFDGaT38/2KJYYykrb/YLO2UyUBpFjxJmTk++A+4mr8Uw==", + "licence": "Apache-2.0", + "evidence": [ + { + "source": "https://api.nuget.org/v3-flatcontainer/arcforges.contracts.publicapi/1.0.0-ci.113.1/arcforges.contracts.publicapi.nuspec", + "sha256": "ff556689167901646fc045bdf691fdd2c8b72b25cb848e9312ff384d0b0e7216" + } + ], + "scope": "Exact previously published first-party fixture consumed only by the isolated offline PreviousClient test executable; never a production package dependency." + } + } +} diff --git a/eng/provenance/records/con17-published-descriptors-r1.json b/eng/provenance/records/con17-published-descriptors-r1.json new file mode 100644 index 00000000..55b2524a --- /dev/null +++ b/eng/provenance/records/con17-published-descriptors-r1.json @@ -0,0 +1,145 @@ +{ + "schemaVersion": 1, + "id": "con17-published-descriptors-r1", + "kind": "generated", + "sourceRepository": "https://github.com/ArcForges/Contracts", + "sourceCommit": "b10b2f6f316bf0c007e00632c5442fc102ebbe6e", + "sourcePaths": [ + "public/proto/arcforges/foundation/v1/foundation.proto", + "public/proto/arcforges/hello/v1/hello.proto", + "public/proto/arcforges/publicapi/v1/content.proto" + ], + "licence": { + "spdx": "Apache-2.0", + "category": "permissive", + "evidence": [ + { + "path": "LICENSE", + "sha256": "cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30", + "finding": "All selected authored schemas, shape rules, fixtures and orchestration carry the repository Apache-2.0 terms; exact source identities and hashes are bound below." + } + ], + "scope": "WP03.02 adds strict source-generated HTTP-exception JSON codecs, generated per-package service catalogues and the public binary-only transport export to the existing Apache-2.0 package closure. Schemas, generators and independent serialization vectors are Apache-2.0 repository material; third-party generator attribution and immutable prior records remain intact; no external product implementation is imported.", + "copyingPermission": null + }, + "attribution": [ + "Copyright 2026 ArcForges contributors.", + "Copyright 2008 Google Inc. All rights reserved.", + "Copyright 2015, 2019, 2020 gRPC authors.", + "Copyright 2021-2026 Buf Technologies, Inc.", + "Copyright 2022-2026 The Connect Authors." + ], + "targets": [ + { + "path": "eng/compatibility/foundation-1.0.0-ci.113.1.binpb", + "sha256": "c4a1cbf6201d09ee9f3dbbdf3ef96d8be78bc495755da5ab17496efee46cd558", + "normalization": "raw" + }, + { + "path": "eng/compatibility/public-api-1.0.0-ci.113.1.binpb", + "sha256": "0709b7bc039e2ebff9e6865ff362deb1520bc584384fc832bfea4a16bda9c707", + "normalization": "raw" + } + ], + "disposition": "Improve", + "verification": { + "kind": "byte-match", + "command": "python eng/check_compatibility.py --window", + "expected": "Pinned descriptor hashes equal source.json descriptorSha256 of the actual published 1.0.0-ci.113.1 packages, source b10b2f6. This necessary compatibility fixture is not a repeated publication audit.", + "artifacts": [] + }, + "notice": { + "required": true, + "text": "Selected ArcForges contract bindings are generated from Apache-2.0 schemas using Grpc.Tools 2.84.0, protoc-gen-es 2.15.0 and Connect-Kotlin 0.9.0. Shape validators, domain identity adapters and fixture exports use Apache-2.0 repository tooling. Historical protobuf BSD-3-Clause and applicable generator Apache-2.0 attributions are retained. Build tools are not bundled in client packages. Native-grpc-only Android generation remains retired.", + "files": [ + "LICENSE", + "third-party/protobuf-generator-LICENSE.txt", + "eng/provenance/NOTICE.txt" + ], + "distribution": "source", + "reason": "Historical descriptors are test-only compatibility fixtures; they are not exported as a new production contract or package." + }, + "lifetime": { + "status": "permanent", + "owner": "Licensing and Provenance Owner", + "removalTrigger": null + }, + "generation": { + "generators": [ + { + "repository": "https://github.com/protocolbuffers/protobuf", + "commit": "35cd01f9fe9afbeea38cc7b979a3b6bfcde82c03", + "paths": [ + "src/google/protobuf/compiler/csharp/csharp_generator.cc", + "src/google/protobuf/compiler/java/generator.cc", + "src/google/protobuf/compiler/kotlin/generator.cc" + ], + "spdx": "BSD-3-Clause", + "evidence": [ + { + "path": "src/google/protobuf/compiler/csharp/csharp_generator.cc", + "sha256": "8b1977fc091ca196408fd0b88332fe4457e8bde2b1fc9b92327ca0accbb618b6", + "finding": "The generator file header explicitly declares BSD-3-Clause; generated output retains applicable upstream obligations." + }, + { + "path": "src/google/protobuf/compiler/java/generator.cc", + "sha256": "62d1d34fa2003b460eeb793e5c87f7c9ba3a9ab43a06ba6032c0daacbcc15d7d", + "finding": "The generator file header explicitly declares BSD-3-Clause; generated output retains applicable upstream obligations." + }, + { + "path": "src/google/protobuf/compiler/kotlin/generator.cc", + "sha256": "a73a77ee148d87601686875fa7545e27dfedf2162845bc6b04a5b73a63e1fd57", + "finding": "The generator file header explicitly declares BSD-3-Clause; generated output retains applicable upstream obligations." + }, + { + "path": "LICENSE", + "sha256": "6e5e117324afd944dcf67f36cf329843bc1a92229a8cd9bb573d7a83130fea7d", + "finding": "Full governing BSD-3-Clause terms for these explicitly licensed generator files." + } + ] + } + ], + "inputs": [ + { + "repository": "https://github.com/ArcForges/Contracts", + "commit": "b10b2f6f316bf0c007e00632c5442fc102ebbe6e", + "paths": [ + "public/proto/arcforges/foundation/v1/foundation.proto", + "public/proto/arcforges/hello/v1/hello.proto", + "public/proto/arcforges/publicapi/v1/content.proto" + ], + "spdx": "Apache-2.0", + "evidence": [ + { + "path": "public/proto/arcforges/foundation/v1/foundation.proto", + "sha256": "ceda869bf2998ca4bc21c4b7504c365a4662e7f28183e6db81660592d5bcdb3f", + "finding": "Exact previously published Apache-2.0 schema source." + }, + { + "path": "public/proto/arcforges/hello/v1/hello.proto", + "sha256": "92489f89d1898a3d3bbea56c72116416cd0152ae8866c98745739437020c67d9", + "finding": "Exact previously published Apache-2.0 schema source." + }, + { + "path": "public/proto/arcforges/publicapi/v1/content.proto", + "sha256": "a352f31e0bcee5e5523e59cb6bcfe2af04423e78389c67fc0d8d0ab52f104dee", + "finding": "Exact previously published Apache-2.0 schema source." + } + ] + } + ], + "command": "Restore exact ArcForges.Contracts.PublicApi [1.0.0-ci.113.1] for the offline previous-client harness; retain its and Foundation contracts.binpb as immutable fixtures.", + "outputSpdx": "Apache-2.0" + }, + "review": { + "owner": "Licensing and Provenance Owner", + "reviewer": "w-20260927-platform (file-level licence assessment; independent task review remains required)", + "reviewedOn": "2026-09-27", + "decision": "approved", + "rationale": "Reuse exact first-party Apache-2.0 descriptor bytes from the published baseline required by CON.17. Preserve original generator attribution. No retired contract is reintroduced as a production export.", + "baselineCommit": "792306133ee1adcfd93e533c53ff3d4381c1c66a", + "reconciliation": false + }, + "supersedes": null, + "artifactTargets": [] +} diff --git a/eng/provenance/records/con17-semantic-export-r1.json b/eng/provenance/records/con17-semantic-export-r1.json new file mode 100644 index 00000000..7d2f24bd --- /dev/null +++ b/eng/provenance/records/con17-semantic-export-r1.json @@ -0,0 +1,3022 @@ +{ + "schemaVersion": 1, + "id": "con17-semantic-export-r1", + "kind": "generated", + "sourceRepository": "https://github.com/ArcForges/Contracts", + "sourceCommit": "792306133ee1adcfd93e533c53ff3d4381c1c66a", + "sourcePaths": [ + "eng/contract-packages.json", + "eng/contracts.py", + "fixtures/internal/wp03-00.json", + "fixtures/public/hello.json", + "fixtures/public/wp03-00.json", + "fixtures/public/wp03-01.json", + "fixtures/public/wp03-02.json", + "internal/ai-http/v1/schema.json", + "internal/proto/arcforges/local/chat/v1/chat.proto", + "internal/proto/arcforges/local/notes/v1/notes.proto", + "internal/proto/arcforges/local/platform/v1/platform.proto", + "internal/proto/arcforges/local/sandbox/v1/sandbox.proto", + "internal/proto/arcforges/local/scope/v1/scope.proto", + "internal/proto/arcforges/local/slate/v1/slate.proto", + "internal/proto/arcforges/operator/v1/operator.proto", + "internal/proto/constraints.json", + "public/http/v1/inventory.schema.json", + "public/http/v1/schema.json", + "public/proto/arcforges/events/v1/events.proto", + "public/proto/arcforges/extensions/v1/extensions.proto", + "public/proto/arcforges/foundation/v1/foundation.proto", + "public/proto/arcforges/hello/v1/hello.proto", + "public/proto/arcforges/publicapi/v1/content.proto", + "public/proto/constraints.json", + "public/proto/value-boundaries.json" + ], + "licence": { + "spdx": "Apache-2.0", + "category": "permissive", + "evidence": [ + { + "path": "LICENSE", + "sha256": "cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30", + "finding": "All selected authored schemas, shape rules, fixtures and orchestration carry the repository Apache-2.0 terms; exact source identities and hashes are bound below." + } + ], + "scope": "WP03.02 adds strict source-generated HTTP-exception JSON codecs, generated per-package service catalogues and the public binary-only transport export to the existing Apache-2.0 package closure. Schemas, generators and independent serialization vectors are Apache-2.0 repository material; third-party generator attribution and immutable prior records remain intact; no external product implementation is imported.", + "copyingPermission": null + }, + "attribution": [ + "Copyright 2026 ArcForges contributors.", + "Copyright 2008 Google Inc. All rights reserved.", + "Copyright 2015, 2019, 2020 gRPC authors.", + "Copyright 2021-2026 Buf Technologies, Inc.", + "Copyright 2022-2026 The Connect Authors." + ], + "targets": [ + { + "path": "src/internal/dotnet/ArcForges.Contracts.CloudInternal/Generated/Proto/Operator.cs", + "sha256": "e10c60c0576825a17c26ed03b07bf45ad0e98ca93763a578d3fdd46613938cae", + "normalization": "lf" + }, + { + "path": "src/internal/dotnet/ArcForges.Contracts.CloudInternal/Generated/Shapes/CommitReceipt.g.cs", + "sha256": "6c0a7fa715ffdadacf6b9965458cf464d440f6056e846dc849bd8724169babaa", + "normalization": "lf" + }, + { + "path": "src/internal/dotnet/ArcForges.Contracts.CloudInternal/Generated/Shapes/CommitReceiptValidator.g.cs", + "sha256": "e4e86541abe73dd43e5b2f89558f3730afeeb9797b99582478297f940274848a", + "normalization": "lf" + }, + { + "path": "src/internal/dotnet/ArcForges.Contracts.CloudInternal/Generated/Shapes/ProtoValidation.g.cs", + "sha256": "6b7a4607f79f632e35f27551d4e85134222c4e32eae3a0f67b506aeb157bf919", + "normalization": "lf" + }, + { + "path": "src/internal/dotnet/ArcForges.Contracts.LocalRpc.Chat/Generated/Proto/Chat.cs", + "sha256": "b7b35fefb991f98913d3f3586c696eb667c727c831f478338886d2f98cb5a6c6", + "normalization": "lf" + }, + { + "path": "src/internal/dotnet/ArcForges.Contracts.LocalRpc.Chat/Generated/Shapes/ProtoValidation.g.cs", + "sha256": "679c535bc8032fa6cf296fa7b93b338a9a33db8d6e767bf88fd21df981357d8f", + "normalization": "lf" + }, + { + "path": "src/internal/dotnet/ArcForges.Contracts.LocalRpc.Notes/Generated/Proto/Notes.cs", + "sha256": "0d16902d575c5201f4f25b2a61ed9aa3229bba44969d356cb3066fbef35d1c14", + "normalization": "lf" + }, + { + "path": "src/internal/dotnet/ArcForges.Contracts.LocalRpc.Notes/Generated/Shapes/ProtoValidation.g.cs", + "sha256": "7b857438632df1763e19eead876654da953ccf15506315b34387138903997b41", + "normalization": "lf" + }, + { + "path": "src/internal/dotnet/ArcForges.Contracts.LocalRpc.Platform/Generated/Proto/Platform.cs", + "sha256": "22d31db7bb514b215d5aa20e6cd230aed7ede730d303bca9670d90a3f05a56f1", + "normalization": "lf" + }, + { + "path": "src/internal/dotnet/ArcForges.Contracts.LocalRpc.Platform/Generated/Shapes/ProtoValidation.g.cs", + "sha256": "e891a89ecc2d704d3e4e91b5b2f8c8358f59afd9669bc01eb119b4cb78e6405b", + "normalization": "lf" + }, + { + "path": "src/internal/dotnet/ArcForges.Contracts.LocalRpc.Sandbox/Generated/Proto/Sandbox.cs", + "sha256": "bd1bf0afbdc8fe7ef1890e13760705b3713a13b7de0230c01b7b1e43ea0e7269", + "normalization": "lf" + }, + { + "path": "src/internal/dotnet/ArcForges.Contracts.LocalRpc.Sandbox/Generated/Shapes/ProtoValidation.g.cs", + "sha256": "4e233d99e0cb8ec38a8a1646abf8e491d3920024db4f5c7a389f75874214341a", + "normalization": "lf" + }, + { + "path": "src/internal/dotnet/ArcForges.Contracts.LocalRpc.Scope/Generated/Proto/Scope.cs", + "sha256": "29352108dd58c65fcd6ae47190a90f92e7ad71a1936a48643752a5dd116b1282", + "normalization": "lf" + }, + { + "path": "src/internal/dotnet/ArcForges.Contracts.LocalRpc.Scope/Generated/Shapes/ProtoValidation.g.cs", + "sha256": "c035add35c4ab044e73a35d79c2175ac06ebd00ed4441e87cf3de448c163ce95", + "normalization": "lf" + }, + { + "path": "src/internal/dotnet/ArcForges.Contracts.LocalRpc.Slate/Generated/Proto/Slate.cs", + "sha256": "a08a43fe85bafe7a20c819a5befd995e62cfa690f6e24499b6ea715eb8309749", + "normalization": "lf" + }, + { + "path": "src/internal/dotnet/ArcForges.Contracts.LocalRpc.Slate/Generated/Shapes/ProtoValidation.g.cs", + "sha256": "749be308f139c5f40b2206fa3dab34ba558196623ecdca422a6bef4ddfdbef6a", + "normalization": "lf" + }, + { + "path": "src/internal/ts/ai-internal/src/gen/http.ts", + "sha256": "2f77ad4309a03b099db14173dc84ad79c2eb05acc7af908f1bd307c5e1be6094", + "normalization": "lf" + }, + { + "path": "src/internal/ts/ai-internal/src/shapes/gen/CommitReceipt.ts", + "sha256": "242ff9d688b460806ddff00bc3a3371d1160952d04d3dd4ac15292ecc6143401", + "normalization": "lf" + }, + { + "path": "src/internal/ts/operator-client/src/gen/arcforges/operator/v1/operator_pb.ts", + "sha256": "6604d82da2537f469186376f0487e6c7a08152736a2aea0264e4abc21e0acabe", + "normalization": "lf" + }, + { + "path": "src/internal/ts/operator-client/src/index.ts", + "sha256": "d14861c0f7de332e30317a56a5acee58b86a17d7aa55460d1f458f253decd5e4", + "normalization": "lf" + }, + { + "path": "src/internal/ts/operator-client/src/shapes/gen/proto.ts", + "sha256": "03b28f089c35319d3454a7f46d98df95c33c4384095021dca72f0399ded9388f", + "normalization": "lf" + }, + { + "path": "src/public/dotnet/ArcForges.Contracts.Events/Generated/Proto/Events.cs", + "sha256": "815584ad9125ce01f187091596b3bab2c6c5388f97fe81310f7b12c7055386e6", + "normalization": "lf" + }, + { + "path": "src/public/dotnet/ArcForges.Contracts.Foundation/Generated/Proto/Foundation.cs", + "sha256": "abc58869f0dc490cff2012edd03de976d87de30d4d61cf20e5898e952861ff69", + "normalization": "lf" + }, + { + "path": "src/public/dotnet/ArcForges.Contracts.Foundation/Generated/Values/Identifiers.g.cs", + "sha256": "e6f061eae9ac6da634f4dc7430e0b8302184e47230ca497e9ab117f5b615b67a", + "normalization": "lf" + }, + { + "path": "src/public/dotnet/ArcForges.Contracts.PublicApi/Generated/Proto/Content.cs", + "sha256": "507cdff451f3bf19cd66251d3f6de544297546a76106e00787f6738afaa7449b", + "normalization": "lf" + }, + { + "path": "src/public/dotnet/ArcForges.Contracts.PublicApi/Generated/Proto/Hello.cs", + "sha256": "009300e6d8a46305d409d7920757347775fcf5dfc8f87ecc729be05d87b917eb", + "normalization": "lf" + }, + { + "path": "src/public/dotnet/ArcForges.Contracts.PublicApi/Generated/Proto/HelloGrpc.cs", + "sha256": "92049cb1d4cfc512499e1a3126140b3c6d8aa8f28f6398e6a79588fc352f3c75", + "normalization": "lf" + }, + { + "path": "src/public/dotnet/ArcForges.Contracts.PublicApi/Generated/Services/ContractServices.g.cs", + "sha256": "0286d33f4a32db0e111a5394b98b8b8124e03528270bdcf0c053103d27f10f79", + "normalization": "lf" + }, + { + "path": "src/public/dotnet/ArcForges.Contracts.PublicApi/Generated/Shapes/PartReceipt.g.cs", + "sha256": "c5fc2e21df017212204fbaf68648d4c8afe7c1fa69d53b29c824c116c21ee808", + "normalization": "lf" + }, + { + "path": "src/public/dotnet/ArcForges.Contracts.PublicApi/Generated/Values/Identifiers.g.cs", + "sha256": "64e61aa0598d5d393825169e6ecc462d24ea3c7b0ce19ebe07ba75d98558bb57", + "normalization": "lf" + }, + { + "path": "src/public/dotnet/ArcForges.Contracts.Validation/Generated/Shapes/PackageInventoryValidator.g.cs", + "sha256": "9cce0e4b875e6821e6ca5765d240f38539e1bd497f126d9dfb09054bd4870729", + "normalization": "lf" + }, + { + "path": "src/public/dotnet/ArcForges.Contracts.Validation/Generated/Shapes/PartReceiptValidator.g.cs", + "sha256": "a2ceeb9441b6dc39a8f26ad098ebe4bdcb4a41ba44353a2e5d1e757875c36835", + "normalization": "lf" + }, + { + "path": "src/public/dotnet/ArcForges.Contracts.Validation/Generated/Shapes/ProtoValidation.g.cs", + "sha256": "eb52070bbeb05aedc82af66987f574ff6da011af8a439a830ff78475ae0d4912", + "normalization": "lf" + }, + { + "path": "src/public/dotnet/ArcForges.Sdk.Contracts/Generated/Proto/Extensions.cs", + "sha256": "79e3c1de76e534df603d721b9da1a8cdcb0f8b4737d4c776b469d90c2937c447", + "normalization": "lf" + }, + { + "path": "src/public/dotnet/ArcForges.Sdk.Contracts/Generated/Proto/ExtensionsGrpc.cs", + "sha256": "b9d73d5c8d06bebfdb00a3fc52ec7abf9c809700e32207240ee552fcc917473c", + "normalization": "lf" + }, + { + "path": "src/public/dotnet/ArcForges.Sdk.Contracts/Generated/Services/ContractServices.g.cs", + "sha256": "f00b657422ef45db617c4c89e55bd129392d0602be82ba102b344b96a2fb1722", + "normalization": "lf" + }, + { + "path": "src/public/dotnet/ArcForges.Sdk.Contracts/Generated/Shapes/PackageInventory.g.cs", + "sha256": "cd91500d2f6870fffa11b0d3eef53d886664f77825c054706d00daf5eabab307", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-connect-client/generated/kotlin/io/github/arcforges/contracts/hello/v1/HelloServiceClient.kt", + "sha256": "990b77a0d1e1bc844355b1fe19914187660f842b175d29cb26b4f5fd3e6559a4", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-connect-client/generated/kotlin/io/github/arcforges/contracts/hello/v1/HelloServiceClientInterface.kt", + "sha256": "32b55e844500d7d6ac0c081b4c3d50cb4feaaefe5b24bcba708d7e515d1f8e3b", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/events/v1/EntitlementChanged.java", + "sha256": "f1651ea86a69749686de5335406129bfe778f22ecf1d821be96d613f0299cd39", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/events/v1/EntitlementChangedOrBuilder.java", + "sha256": "dea61b2cfc0d3673b1aa8d8613e9e5cac5b02f8f99de3752dbf8b08323574462", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/events/v1/EventsProto.java", + "sha256": "ce385ae3f764756fa5e367a623e084c348b7b25fc897f3c0b765047e6235f84d", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/ActorChain.java", + "sha256": "e469988ffa939f3aa1f2d18a80adda608a8ecfaa1458ded2d5e94b2b111f36e3", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/ActorChainOrBuilder.java", + "sha256": "27ee3db37561bd24bde2f7065994e0719f50abfb7f7b1f55c5ce3e0dc4d7e804", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/AggregateRef.java", + "sha256": "5ca342085c648d5f40ca93b88050d0737fd0b23f383aefb9f37368fd5d47435b", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/AggregateRefOrBuilder.java", + "sha256": "8640d078901a3044196b0f3c72134d0c01977ecd4c9e95afe9fea8dd4ee774b8", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/ApplicationScope.java", + "sha256": "481bd89784c1d1d9f7210f7fad6f2d9ea3f8e4589dcdf72e5592ec26d968f74a", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/ApplicationScopeOrBuilder.java", + "sha256": "1d78b93c6e9aabbd193908dac46d593985791eb722a871e8c66d0135f84e2a47", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/ArcError.java", + "sha256": "41759ab06da5ab491b416a6ace4aba5ca6de5fcbbe7022ad9882435e4940a048", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/ArcErrorOrBuilder.java", + "sha256": "05155dd38fbd28b86ffe308c64a35e2666efac2f89bdc8bd7fb8368b49c6b418", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/ArtifactRef.java", + "sha256": "67528ef961578e39ae2b2a3b4cda38e7d4fc82c7855899b309e8268b25d29b1e", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/ArtifactRefOrBuilder.java", + "sha256": "3b1340e36c03338262017f58ef90a8006c02329c36479b94cb56df9632bc3b5a", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/BlobRef.java", + "sha256": "0cbcf0cbe1dc6786526d507d3815524717d2e5b20b75b344d999f046034c6aba", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/BlobRefOrBuilder.java", + "sha256": "9a034ce665fa5c9e108fc504e1f6cd49118a8f26ef0f02115d99c881bde41489", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/ByteRange.java", + "sha256": "7608e9bbc381130b4a18724af275e42080c634055da9ea60a8f355a1160a34f7", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/ByteRangeOrBuilder.java", + "sha256": "a0f7a8d63f8faa1e380722723d9da5759866ac328f311fbb77b200a582aaa131", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/ContentOrigin.java", + "sha256": "3235ca65c876e126f5b9e52bcfb972581d05aa5a3d5015508f4a175d6731540d", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/ContentOriginOrBuilder.java", + "sha256": "7c5b1f100f8940d8a97b753cf2e423adfb252469ac53b5638c664c4104504e4e", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/Decimal.java", + "sha256": "4eba90670dd1c6051863350f06b5a2eaf53a0c7cd031ff264877580f43516ab0", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/DecimalOrBuilder.java", + "sha256": "ecff746cee89e091fcfa49904934028b0909b0b3098a1d8151a710fdce959e03", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/EffectCertainty.java", + "sha256": "79732345b9d39a7f475211e1362b9b73d5577ace596d2537ef66e35e391004d8", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/ErrorCategory.java", + "sha256": "c7af39da9a6d8ab7a9f037f069c39706182895b78c05fa2aa13ed80cfa04dd58", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/ErrorDetails.java", + "sha256": "4094df41b5c5a9612539122f50ce6b71ca109b06ca7b8362b59cc9da5a64867e", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/ErrorDetailsOrBuilder.java", + "sha256": "c85f989bb88ad6c42d2c7981114180fc9aabd2fd97858341f2ce8a577a6d0775", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/FoundationProto.java", + "sha256": "e00379ac4af65db8d9c581c72330a259b88c5b5918ce6a7f684f479072171f99", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/Id.java", + "sha256": "a0c4a9fba689e8b3a0f17a7fc8e2afa3cd965e990ffe009791bdf50cc639c061", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/IdOrBuilder.java", + "sha256": "839b166873748b95e746b2938e031749812f10afebe41a59ac43b666465bab51", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/Instant.java", + "sha256": "ab1ec79114ddaf1d503bc0ab6eccf16ba0a9916e05865139f6ca473c5787fb57", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/InstantOrBuilder.java", + "sha256": "f8994f6c9e50dc3f296220ab642129492af13709205a92b0af8cc72e3401e86f", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/LimitFailure.java", + "sha256": "1b12ac7d877839075996ee93fa63f22588c86019cd147529da9257ffb11e6d64", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/LimitFailureOrBuilder.java", + "sha256": "3c6ca262f7f015d52ad31b4fb918f41e9b63fc62baea44eb504302c4191ad87b", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/LocalNotesVersion.java", + "sha256": "c685c5b2f8a7cff75fc64daf25c20a900188bbc237577e2301eecb4341b492c5", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/LocalNotesVersionOrBuilder.java", + "sha256": "e6d0f49d83dbc4579506bf8aa8bb84ac798a1fcd6146d5624473c6f4e07fadbe", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/MediaRange.java", + "sha256": "9d502ad73d2b3d2a5370dd666356b545d5ffa4bd7a9b3b51edb404dfffe3ba27", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/MediaRangeOrBuilder.java", + "sha256": "10290d6bb2d15157ec0cd2039d7db54d275af7080eb2b8d4950834d5f1d26595", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/MediaTime.java", + "sha256": "d435b376d958f5ed185185e3867c8422b40cfc84d28ee8ed5533261dd524b007", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/MediaTimeOrBuilder.java", + "sha256": "79b45f62a50328c2aa6b231292438876eab786d246180c7c1a90a281a3c94010", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/NativeContentRev.java", + "sha256": "c50f0c212062994f1bcf13e8dfbe5158c2042a6b40b448cf24f78925957aaf46", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/NativeContentRevOrBuilder.java", + "sha256": "cd9f37449419231ea74962f0e87b0df3458c1a520120e8f50c3bad58234e7700", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/PageRequest.java", + "sha256": "547c55d0c15b5912c007c1318e9d153f597cd13b91ec3d37d07391fdc3132949", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/PageRequestOrBuilder.java", + "sha256": "ebd571a75c75c60abacfb21b08eb1f4e7f214717d2c220d9ce092a56b1b96c45", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/PageState.java", + "sha256": "a9f64ae3cfae9e047f2f37b3379a3f1c9dc27c86a31e2ced057028ef3c7771a5", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/PageStateOrBuilder.java", + "sha256": "068c10fb39683f3937ca37c6f8f0a88a7d29b5fb387600735ed03206a7b8f73a", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/Rational.java", + "sha256": "e8ca5c051f81ec463c1ae55827c7dfc36e0e146c25af06bd5140f46692f65a24", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/RationalOrBuilder.java", + "sha256": "8c681cd83328d0412ad93314ff3cb1bcb0e5d2f891b70860eb1a165e90765ea0", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/Receipt.java", + "sha256": "836a380ff454c9c841177765edce4890045af2d9812041d24a15f60d87c1dfe4", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/ReceiptOrBuilder.java", + "sha256": "44ca675570ae903e704d4dba0fc65581479b02613a607f986dcc4a36d9018d1a", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/RequestMeta.java", + "sha256": "b89752208dbc40842d52f53cf02e9a7ddf5b365ace92216f00438aef813657a6", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/RequestMetaOrBuilder.java", + "sha256": "bc2ba7a1553979a2b2fff3d8346a9d35795b8babf81d119b9b2e63210e5267c2", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/ResourceAvailability.java", + "sha256": "e91b649ba8ad7aceb5ce0d2c9248c8e2a2e6007f048361c509838d845d0a7e28", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/ResourceRef.java", + "sha256": "415d760b39c7dea45cb8703660a9222564ff2c6fa95d1fcde65cdb79d1d7f27d", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/ResourceRefOrBuilder.java", + "sha256": "b5ca0f32ba2275d6fd3e173810692e0f75b1118dd137fd49564010e2015ef414", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/ResourceVersionRef.java", + "sha256": "9e07e7a8073a62ed164c26969323e8ee193b7f0bd093e2eaa13fe5329fef84f8", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/ResourceVersionRefOrBuilder.java", + "sha256": "da927faa873101358283697338f6030b0c4509364c645d3577bd889b02da2204", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/ResponseMeta.java", + "sha256": "0a2cad41082005ab6e4715bc8f679836c7b55275154a04cd8856f428dd5be66b", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/ResponseMetaOrBuilder.java", + "sha256": "2b57501e9693bf8226c5b5d27d70232eef49e182a0c083a9b55a95581bd61e70", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/RetryAdvice.java", + "sha256": "02c57b0de06c99bbbd865330501791ee976fefdf204129076b25a85406b22e7e", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/RetryAdviceOrBuilder.java", + "sha256": "62979680ee33448777aa4feca8559989e19a408ec1dd1552584ff749564ba733", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/RetryMode.java", + "sha256": "0300c1d54f3d2070b3ed70a61e8011c412472708b8a2bdc56b75e14cd797a419", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/Revision.java", + "sha256": "b4b7f7a66efd15356900fcf0342e686c7ece2e60903f71dd41b91a4b5a91e112", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/RevisionConflict.java", + "sha256": "f4949bcb85e1864efec2a48f571b6e1716e59a5afe1de519eda24163af8a0a22", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/RevisionConflictOrBuilder.java", + "sha256": "009d3940c3f35f237fa8651aaf16c1430a5d76aea4079004334e8755ada79848", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/RevisionOrBuilder.java", + "sha256": "449a11473d7ee235d5b1e80df6b06a43786d8d2d6c897ec87560984085c2dff8", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/StateFailure.java", + "sha256": "32c5741780ef2b4ed5166f22ed74f15ff2e8a1fbf1a6d4d2233c176438e2123e", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/StateFailureOrBuilder.java", + "sha256": "e7a1404025c7c6c07ac2fee6bc320150aa20e143f118bccd516786b4623cfe78", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/TimeRangeUtc.java", + "sha256": "9ed1a8a181467a9a04cbe9b8fe3a7f79b7c297f9a834e4f3a46c107d6e831524", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/TimeRangeUtcOrBuilder.java", + "sha256": "ea8ac9d5a42e5492b674ef54341772f4da54b4f6c77c77236ce1958c1026ed21", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/VersionFailure.java", + "sha256": "3862a2be735400af87a8aa57cde56572074b17d41b183f65315709fe58c30114", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/VersionFailureOrBuilder.java", + "sha256": "657056a0bc0688efae70618ba0a541f0fd65782da26b597eb2b8700ce045192f", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/VersionedRef.java", + "sha256": "3131061fa28e11f5494dff299b495e81ead0906695b117d55bfbe51856fdca75", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/VersionedRefOrBuilder.java", + "sha256": "1bbe39ad30027c20fcf206af6c9482802c9bc96adac899f83e6e2b9ba1b72465", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/hello/v1/HelloProto.java", + "sha256": "53954801755cd825c80fa9b2721f4eef714287f4c428cdb574b4c81b90e25686", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/hello/v1/SayHelloRequest.java", + "sha256": "d7084f9c9349faeb2b9a516d740a1f45ead6da42cefe9094b479674071e91a4d", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/hello/v1/SayHelloRequestOrBuilder.java", + "sha256": "6cce3dca4baf6a40e288fa301f802205f987254448277e54b45e0ec8ec94c35e", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/hello/v1/SayHelloResponse.java", + "sha256": "31eccd856428b5b95e2e68219d5bb90f742e3c3e83322eaaea6313437131b57b", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/hello/v1/SayHelloResponseOrBuilder.java", + "sha256": "d5d83d2a9dc95bbf4013b49f473d69c0f132591fbcf9d9eba6e1cb7b8223a956", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/AgentProfile.java", + "sha256": "6c5a200412c2221952c4dc4bed4bfbd716c8ce924d543ccb6a2321ffd98f1cc2", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/AgentProfileOrBuilder.java", + "sha256": "56a666b79f43bc23e9aefb7b9dcc025dbb9e601d2f81e1988b92de65277a647b", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/AggregateBody.java", + "sha256": "03b3b15ef85208f4ff60298e542a2d9a75ac40dd45c9981bf3788459752b608f", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/AggregateBodyOrBuilder.java", + "sha256": "ff483affdc1c4e2bc3ef2c314a432c92cdfeb0011fb6f51a76c18020d55b3406", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/AlignmentSpec.java", + "sha256": "681dc595dc5feb2d9a3aab1d1e738d861168097bca5983d671ce4ba2b3e1132e", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/AlignmentSpecOrBuilder.java", + "sha256": "eca61ae005d19e0b77654a34f166bae9a652e762b7790e14c8c369aaf1023c75", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/AutomationSpec.java", + "sha256": "b89bd1ab08c23862eac81751628cd67b2ae59ecf44c012512503a8cadea1ab39", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/AutomationSpecOrBuilder.java", + "sha256": "abd26578b358521088c1928a23cb9771943737ee97e517f4de416e10cb49874d", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/AutomationView.java", + "sha256": "d20c348e1c6e9c146ea8a73028640d6cac95bc4dff8efe96c77df778d4dd934a", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/AutomationViewOrBuilder.java", + "sha256": "beb0ecf4e6856c03fdee1769234ef3eeecfdf7236d274b9d03a6b886a0ea79fe", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/Block.java", + "sha256": "dc2122caf9b91fc1a77709b3742c62ef7fb036e5aa19cfda856df1777dfe7b88", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/BlockBody.java", + "sha256": "8825521c290d085bb2c3f217a6a72487c702f06f797fe4dea8a2df0928bb5b08", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/BlockBodyOrBuilder.java", + "sha256": "2260de47e0cf129b06b06776f9229594e7a65cbc2a089197721a4ff02f72eb8d", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/BlockOrBuilder.java", + "sha256": "cb5863415cc7acb2f6ee3d7bcb90be60701cc57d869622da8ace07cc6dbbdd00", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/BlockProperties.java", + "sha256": "d2d98b014c04667d4f315ac48a53485323ee6c1f3e4fb0c99d8e16a3ba41cc54", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/BlockPropertiesOrBuilder.java", + "sha256": "c5c1a338502480405b4ca0be1d9840d250a2d5b1ba39d67610ffee80e85d55fc", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/Calibration.java", + "sha256": "c373ba330f148946842e06727f2f6cdbef57699f4be474a1b3621e29f59c631c", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/CalibrationOrBuilder.java", + "sha256": "a27c61d714eefe68312afc4d6111862a45ed333830463511a9489936376bc775", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/CapabilityArguments.java", + "sha256": "366d2973666df1491fd086cb7dc4b84aad0afabda3a2243a282e643761c46438", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/CapabilityArgumentsOrBuilder.java", + "sha256": "d651682cf61b03876506cf609c79d76dc7091ccbf309c7c66de45f5ce1ca3254", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/CapabilityResult.java", + "sha256": "42e926ffbe3323ec9cff9f4cd6e9c14fec4bcba252fe3f4302fd4c73c97c86c2", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/CapabilityResultOrBuilder.java", + "sha256": "80731a1304a4d612dc2d9feac100b45b11ea416bfe439dbe2ca8a2a32f99226f", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/CaptureMetadata.java", + "sha256": "3a0a2ca7fddfff710335c8e9599c202c09c12c42677d3976845e6444a404a82b", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/CaptureMetadataOrBuilder.java", + "sha256": "ef5dc9a1f829d0baa7d0198de42f20129547ab6884ad1b085a21bc750cbb3ba1", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ChannelDefinition.java", + "sha256": "a426d1c429b9228c9fce8eea8bc2aed5270e9e24f209559fa062b2b6aecd33be", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ChannelDefinitionOrBuilder.java", + "sha256": "ea991359f3eb142d40597d5e4c3513cc57fc51ac30083333a34030138c9e1de1", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ChatProjectRecord.java", + "sha256": "7660938af7164105e904179fe2a4c712bb727ccb3c0bf0f96516b94fa96df59d", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ChatProjectRecordOrBuilder.java", + "sha256": "5b3a7228c53126baba33c4efa00ad26331c4ace0f6eb504ad84a5942903db139", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ChecksumSpec.java", + "sha256": "3d4bea904bd99ff8c19e7a1374fab017a6781bca776ebff9e22f056af7d45f32", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ChecksumSpecOrBuilder.java", + "sha256": "70e5c9d396a6db567c0d0cb290b2cb0f94b3b3d17efd2af3452d6b7093c30564", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/CodeBlock.java", + "sha256": "67b5acbb9463391319c6fa0f7b58a50199f0891a6084d68cb4615bcbc7fd6555", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/CodeBlockOrBuilder.java", + "sha256": "9d92727c173a7311a911d4c0836ab013d95696cdbc0348a0a306e68b4e748893", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ColourConfiguration.java", + "sha256": "18a3f136820cc34de876ae04fc2b76ad20f806a00865980cb5acd4290f241f4a", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ColourConfigurationOrBuilder.java", + "sha256": "d637a46befc69850fec043f986ac6829b1f8b6f9f35c2dfaa9f144da2782422c", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ContentProto.java", + "sha256": "05d2fc1232adbbb2e7b5d1da5f355f95c8fdede972e3050bd9ad620e8c0e5edb", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ContextLifetime.java", + "sha256": "aa7793144a7a102ffc5088c1d3012cc738232b75c7f36d239ecdf65f27d0545b", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ContextRef.java", + "sha256": "b4da6836dd2fb166f27b1f0e3bafe23c37341cc38f3bd2f7a55c95331c3cc3a9", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ContextRefOrBuilder.java", + "sha256": "ffdc79d955b7599fde79a9ed9f8011ac1925f6b3556c1c7f68fa418346cf28e8", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ContextSelector.java", + "sha256": "afac0e0e451c7c49c7695947f38bf4e99f267c60cad66b5a6448ac3d81129c82", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ContextSelectorOrBuilder.java", + "sha256": "759b72c84a385f6f4fc87866c3084b326384e87bda3528b1321c28393627f047", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ControlKind.java", + "sha256": "19bd19e78fd90d74a8de8373c81f871473623859088526c389a5235fa45cc2f5", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ControlProgress.java", + "sha256": "f9f98fa2b2bf3067b4bb1a1cbcfa43eec15f7113d274955bcdc1e6175022c185", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ControlProgressOrBuilder.java", + "sha256": "85b3cb0f7dba508c4c4004a0221320178c38414f6841ce9ed0f6844d24f21d0b", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ControlState.java", + "sha256": "1465f0a26d098d1a62654f12202cd6609a6ca3e6fef4f18a7fe8d4a258bc95ab", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ConversationBody.java", + "sha256": "cc6b723a8f729c52c4ab50a49144e647f4bf1daf1a20c9691fd6be3f01dffd44", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ConversationBodyOrBuilder.java", + "sha256": "f600709e2deacfc55bc6896298c2a7f63d406eef8a0003d82b730aedf99c17a1", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ConversationView.java", + "sha256": "caa9b7ca8f49bbb56683da3416b344ca9daef024f8ca1a5681bfa2707edf34ac", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ConversationViewOrBuilder.java", + "sha256": "ff1271087da4a523eddb08bb187d57abe37fa8741d3c5f27b917306b793935aa", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/CursorResult.java", + "sha256": "bb11a128308b416b2fe479c42e0f08097dfcdb71c1d341036a63235d2ece379d", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/CursorResultOrBuilder.java", + "sha256": "199eae9379316f7146b1f31065e8022cd6dd651afb9fee96147e5b43ab2fd6eb", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/CursorSpec.java", + "sha256": "353cf3957c459b3f083f682e0f0315f5385df9d4c022485afe64c900934148a9", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/CursorSpecOrBuilder.java", + "sha256": "72248ce898838227189d6c5e49796d379bb14b192054665c6b583e20df69c0b9", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/EffectParameter.java", + "sha256": "d6c8b09c9b2d33c45e6ab7fa5d080326117a4a806ae3a98da41d4f3c0b80f77f", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/EffectParameterOrBuilder.java", + "sha256": "08fe0ee2a7bbc18b8df015453ff2e5f544439275fb558e3a20f1ace2af33c7ec", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/EffectSpec.java", + "sha256": "3f09bd271f5ed5b0b038e099b00d3f26a5614e320bbff6eb36ceafe9427ed5d6", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/EffectSpecOrBuilder.java", + "sha256": "e4653f7c56c26bdded9be9e88894fd965de7f2b6ec2c2f2936000036bb6fb99e", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/EphemeralSelection.java", + "sha256": "e311bd98eca273ffb5c8bb19c69ef9d770a94f215bfe85456d3303363d74a363", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/EphemeralSelectionOrBuilder.java", + "sha256": "1bda926285d7f2f4330de7a470727d6115d6638e522d4252db2a5e0d06873b33", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/EventTrigger.java", + "sha256": "94e3ae01847d007f4f2ed18595df32676fd962599158d4ec65c711070b7140d3", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/EventTriggerOrBuilder.java", + "sha256": "8eb5cc054e4a1609b353841a07cdd4c2764087452401bcaf84a47409cfcd94bf", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/FamilyResult.java", + "sha256": "baa83b1dc6b7c971fc2e93b8e9a1c165c14570a1be60b6a1dd24367a2450ea65", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/FamilyResultOrBuilder.java", + "sha256": "56aa700113b85090ac923d7fb0a52934142bb4d119c5ec744b83c071ca0e837e", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/FilterGroup.java", + "sha256": "7f2923a0a1dcc5dc72f4aaed9642732966f202d88731eee68cbcdad0de9ef003", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/FilterGroupOrBuilder.java", + "sha256": "811d217f5fef708f0d514c6cf7f3393fb0c64f3c96b0e67fa39ef3fc1fb86926", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/FolderView.java", + "sha256": "9dbd988da7953ddd91bdc8e2c7bf5885e52419fae20ae23bbfc0f5ade377f8e5", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/FolderViewOrBuilder.java", + "sha256": "6043258debcdcfd75445990b0a86224511234cf9f723404d0977b9deb27f8fdb", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/FrameConfiguration.java", + "sha256": "7e00f0ae09bddf16d33f5656a1a439cec531cdc9474e88986557e36c4ab056c2", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/FrameConfigurationOrBuilder.java", + "sha256": "a3eadd5679e5d7b3317c202fd9bd5735b5422b390b700d063473acb476f690cf", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/FrameField.java", + "sha256": "a503bf1d8d74199794fe358672e8232fcd7cc8d5ed2909027135f2b8e98e9dbb", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/FrameFieldOrBuilder.java", + "sha256": "987984f7bc20dfe0cc4bde6fda5dbc63cb74be65bb86abd60f1634bceca8ae4e", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/GeneratedSource.java", + "sha256": "579b37794bb4f8aeea897099875a1fed27d0b8ef9c843368afb751d57579799a", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/GeneratedSourceOrBuilder.java", + "sha256": "b4afe471ecdaa57eb48f1e37aace7712d39a8c1cdd77deb3de1049dee56b7084", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/HistoryMode.java", + "sha256": "bd24d3ae2ec35cc489302cd6ba3c49e98956928f72e88c4d0ae756f060de34b9", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/IdList.java", + "sha256": "8319bff20cbc4c83855837a95bf49b12da23bb3a2db296285675cb4969591d97", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/IdListOrBuilder.java", + "sha256": "2ce4553a9c2582ba8510331a3c05d10545ce1a8fea04d2472047907c75dcc64c", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ImageLayout.java", + "sha256": "01eb9f73abfbac4a310ebae2f323aa6f397d7be47b69e1899fe393577c89bc6c", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ImageLayoutOrBuilder.java", + "sha256": "2131f24dd17daccd2bd5a73b365ae6f982a8f07112dd1ca379853db13e5e8414", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/InlineAtom.java", + "sha256": "3d3c1fea6973abe37279a2a9effff2354add4fee87ff0814a726535693e921ce", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/InlineAtomOrBuilder.java", + "sha256": "f3831fd09c1fa95108acca52f08052e76fb56e5be733eabb9af64078f8f132c7", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/Keyframe.java", + "sha256": "f6fb71c01539c4792a87293983096ddab84695f70c3ef440a3fcc0a19dbced9a", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/KeyframeList.java", + "sha256": "f204125bb503ea67af941d9db62fa1fef35e32a58438f3b5c7f6e5795bdbf552", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/KeyframeListOrBuilder.java", + "sha256": "053bf7e190df8b973e7d28f94e7fee5ffa0a89a4ca5dc868304d058060e2028d", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/KeyframeOrBuilder.java", + "sha256": "de2ff121c5214f6cf12e7916c0ce58d71b4715941f4764cb374b4679e20bf0c8", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/LinkSpec.java", + "sha256": "0c65d268025ca2c15679aa90c6d0f673cd720eb7b4c607d876c63f411cc32d1e", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/LinkSpecOrBuilder.java", + "sha256": "3198c37b0814b14d08afc84ccccf7677f354f23f3809112e894a105864f80104", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/MarkerView.java", + "sha256": "c4a214e2662693809a81d37152cf36981db6630467600e634ea33266cd0519aa", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/MarkerViewOrBuilder.java", + "sha256": "1ff117ed43611ea71bb71d10c6165639f69f1a4792a2051e300a7f32f89e28f5", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/MathContent.java", + "sha256": "d55b7f7d9fbadc84666c04ebd5cda9e96a16722ab890d64fdd919a45f170971c", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/MathContentOrBuilder.java", + "sha256": "20fc3ca58e6e0a16a2e4a1c00bcc6c8a9aa05b352c15431341b816defb7bb661", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/MeasurementRequest.java", + "sha256": "84655299b94397a2115dd9b9c48c0207495a72f086c1ef4f04dcd9f6df6d4d8c", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/MeasurementRequestOrBuilder.java", + "sha256": "cb691f8647a2441740cd198527a5dcf8609db6b6bdc8e4bc04ddf2454d463bf0", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/MeasurementResult.java", + "sha256": "5b431b2b354aa603137aed48ff1f725533415eba8c474a3b9191092ae2e67118", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/MeasurementResultOrBuilder.java", + "sha256": "254a6d3753ef212e62294e230f0f100b18e6543c90fcd9fa6bf38fb040c6d05d", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/MeasurementSource.java", + "sha256": "ff6f9d903a9ca8cce284942c853d33960a5013299410a07a6abccbc769507a93", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/MeasurementSourceOrBuilder.java", + "sha256": "162e708f08303c7555b2a04f03575e3e98380b977d8ed3ee86cb232da0d37f13", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/MeasurementThreshold.java", + "sha256": "881778cece316252aba2b1bf8bdf49820b5dc21c3908169a527196f753174eeb", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/MeasurementThresholdOrBuilder.java", + "sha256": "33efe04987201993d70743c6812071b06018de3dd47d588278b71d452a8aa19a", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/MeasurementValue.java", + "sha256": "841c51101eb558cf7dcb59bfcb617d46dfe4838a812b1006b9eda5c2362ee6f2", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/MeasurementValueOrBuilder.java", + "sha256": "37a6614ffd61ad53a7b5c7b1a3b66bc7069e322ff62b61662a27581384055497", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/MeasurementWindow.java", + "sha256": "d04b7b01a20d9fd7a4c4e33c7aad4e80ce7fad3bb5227b62a1c98cc9d1590622", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/MeasurementWindowOrBuilder.java", + "sha256": "c97834765fdf6abd635a7208437cdf06b72c67062e06b8f6ea98001d0f0f5577", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/MediaBin.java", + "sha256": "8402cc7a1fad4584b2a000b0acbfdaa514f0b824f7c717a249a8e7e1e24905b5", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/MediaBinOrBuilder.java", + "sha256": "d0f7a25781713af0435c61a035dde51217b6b73e80d2d59b3d1482a29136405d", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/MediaColourAssignment.java", + "sha256": "a83bdf58e356bc1375fe7c2d1328dadb475fadec6fb5b7f38caf0a68a6cede72", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/MediaColourAssignmentOrBuilder.java", + "sha256": "19589846441862a6608bd88c22531a5d577eed35477bfd46b6b4aa54c64abdf1", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/MediaStream.java", + "sha256": "9097da858e4298af4b18797bd3347c1e7841f6a8b8c38312140e96734626e15a", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/MediaStreamOrBuilder.java", + "sha256": "ee50b047b629c8aa536b8f27ae300b898f2c827539f6ccabffe000b9e0026ffb", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/MediaView.java", + "sha256": "4fc4c829ac5e18b8454755c0eacb0a5f0da2b0b3bef381151ffed8d18eafed7e", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/MediaViewOrBuilder.java", + "sha256": "960f60142bcec1cb52ee7c37ac32ec0eec3a86750df8d347df3e5a3365df9768", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/MemoryRecord.java", + "sha256": "12dd63d1e8cd677b2857b037c9a10021553888536ae0ca92c35192001c6cec6e", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/MemoryRecordOrBuilder.java", + "sha256": "1c49b04ca8a9fa876a4acfadf1b8dda56cb522d93f4345bc92718902105491ca", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/MessageDraft.java", + "sha256": "70fa3fce03462200d77ddeadae654164e88a4485910956c729167c7072e909b5", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/MessageDraftOrBuilder.java", + "sha256": "cbec6bca6a19c737a9d4d11d4ab25147417b4871410fa7f5701f1ee47687badd", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/MessagePart.java", + "sha256": "22969a1f2dbb3faaec441a66f0f759c4b70c50d852ec14de7cb592ec225490fb", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/MessagePartOrBuilder.java", + "sha256": "232944fe7fb1451e59c418099941c95cc06f1edd3c3aeacaaa4aa104d4fbaac6", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/MessageView.java", + "sha256": "f192d72bc4b8ca50435d0c14e1305f0b9bce338cc1bf9ee9adc9f57f5aa35b6d", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/MessageViewOrBuilder.java", + "sha256": "8f8cc08e6e2c25b0cb6809d093101d4a188e107bf7698b3e3bec832c60bcbfb6", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/MetadataEntry.java", + "sha256": "722550840611e160cad9a38938d3cabddbc9f7de785af4d7df316471b368cb8d", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/MetadataEntryOrBuilder.java", + "sha256": "df6ec79177921af9703d5f4fc643445a3c01ab00298320133bd215cfbae7e382", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/MetadataScalar.java", + "sha256": "1784529094d66632e5d26dc0506cd60213aabb65194d3baef6798873af91e84b", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/MetadataScalarOrBuilder.java", + "sha256": "56b772e4cdff51e338dbf2848954e56e39b97aa4fbdafbc4c37ad20e2f70aebf", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/NotebookBody.java", + "sha256": "cbbd1c2bf9384aef45b04732c55586c8281ee6910095ab61db45173ead9918a0", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/NotebookBodyOrBuilder.java", + "sha256": "a03b742a70b76647c87ace1d5f18df4f29e32b068930261ea114928ce1be700a", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/NotebookView.java", + "sha256": "5d1f40947709dbc7eeeaa061d9e87faf79cecca7c68af76f3f28666c29942f03", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/NotebookViewOrBuilder.java", + "sha256": "c82c8e7c67834e57980349dfbcec4dde3e9b084f503db244acf9ba948349d929", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/NotesDocument.java", + "sha256": "79eb269215d7230f5e74ee63cebd703214a6fb6352e4b95842d1e493eff4d0d4", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/NotesDocumentOrBuilder.java", + "sha256": "4dd753819ef36638790eec2e0db727cd49f80feebb935319fc2a7f4a94fc6ebb", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/NotesFilter.java", + "sha256": "909c8a224064bc5f16f45ce67c9fd3aaaacc1d8c1335ec18e2caad0003d92def", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/NotesFilterOrBuilder.java", + "sha256": "e8acfbc8fcbd41d507c29f2095d55e80a006ec829c6c1fb395c9e3e04264bb08", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/NotesQuery.java", + "sha256": "fed2cfc8a22e3d11914af838e0c42d52f4a15c1eca474992e5d6c5caff852a58", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/NotesQueryOrBuilder.java", + "sha256": "e57df4030c15e02930230d40e3973bee89c6d1a51ba4685dedac59fa98bc48ac", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/NotesSelection.java", + "sha256": "f909bd3ff238d1949a87535ac0635ee414aaafbbbcf204a6c90ae65f14d8504b", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/NotesSelectionOrBuilder.java", + "sha256": "19d926cc3beef6e0313e27844da5bd505355a3b0d9dd43a6eac3748ab5c7338c", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/NotesSelectors.java", + "sha256": "0dbf7e81e5ce8d457203882892d552dd2c4a2a282081393a5accf1d403035d89", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/NotesSelectorsOrBuilder.java", + "sha256": "c1a142d66fc12d060ae314a09724d1867d14867d8070b0782c99713d9ceec1bc", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/NotesSort.java", + "sha256": "695ad74c43308fd026d0cb52642a3c1d53fc89ab4be780161d74f3677913c97c", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/NotesSortOrBuilder.java", + "sha256": "be078cb551f0529cb1282b4473712be4d87807fc146cf2caf5a57a5f4726984b", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/NotesTextPosition.java", + "sha256": "09a0e7db82fa67c07b51215862117ef7db2b351fa8fc4fbc0e7074e0d0b14204", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/NotesTextPositionOrBuilder.java", + "sha256": "67f0e3599f27b3af94e67f70689e7394f02766a3df398fb099926cc42bb56580", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/PreferenceRecord.java", + "sha256": "67b3c1a2a2172f924add313697a2cff7d2b2bc17f74c1294e6a8d974e3c00ada", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/PreferenceRecordOrBuilder.java", + "sha256": "5744c169e656b06609841912feda5516fdc4ab0924faaab625fa7f348786cddd", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ProcessingEdge.java", + "sha256": "1b1fc737f322322d9a2f59e6ea0dad68621905e1a842fbb19882205cace78e8b", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ProcessingEdgeOrBuilder.java", + "sha256": "cc78a10862934ac2853b79e94745ef6b180c95b683b222c0ae4a78be30f5acf8", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ProcessingGraph.java", + "sha256": "44b8f80c0c919af434c96d0d038867e0317219cd915cb566e4c18f75af29109c", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ProcessingGraphOrBuilder.java", + "sha256": "4b6f05f5037d9c9f00bb35702c1df08e38db6db61ac4523279b3210659be752c", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/PropertyDefinition.java", + "sha256": "c7c76daf23cc29a2b4f2fef5fd12eb9f08649691b5de359ef4c6ec96d56b09c3", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/PropertyDefinitionOrBuilder.java", + "sha256": "47e12664440e117e0aa32028123b5b7336c6f5cc617eafdd353e5a9c56af5b36", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/PropertyDefinitionVersion.java", + "sha256": "127fffd28e726387f1ffbbf10ddffe2c0558f59ca13ed38e76de0a2ff9b41abd", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/PropertyDefinitionVersionOrBuilder.java", + "sha256": "89c8f741b88efc4e6e3b31b87d2d8f43118642022493f14783ad49275d5f5b45", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/PropertyValue.java", + "sha256": "7d0e767a04e5e4513eb037024eebeeba2cf925db0ebf33be8bf0fea899f23b6c", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/PropertyValueOrBuilder.java", + "sha256": "19a5375ef86410d1f4782b5ae8ee817c6532589751fa8f7aa3f8187bff10c895", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/RenderPreset.java", + "sha256": "037cc41bd8f1eb436f01115d2b0b29593d95e67e18916d3c72ae87bdd1d772e2", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/RenderPresetOrBuilder.java", + "sha256": "ca437cda5a38561e9db595c28ea8be283e80d4f05c147f65b103a201b4fe1f82", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/RetimeCurve.java", + "sha256": "c3efec76f5e1ec7191f3d8f19606d37aca83f11e1ac2c613648fe4ce7c39ca42", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/RetimeCurveOrBuilder.java", + "sha256": "b1bd67e9b98d69955b029485c03f0c3fe59e3f1db232b3d41ddbe4eee13c0280", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/RetimePoint.java", + "sha256": "dc543d311dafad2e8fe10d6dbd10a09a1d186a2c394fa58c3e63ee4ba3e5b6b1", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/RetimePointOrBuilder.java", + "sha256": "249108c83a4e34e7043c67559a6f14cbfcb290d27f3494fb24f2d75d3436cdc0", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/RichText.java", + "sha256": "93a5e128677879fbe24f9e52f130609bcb55d5ddb37d66ed8f55d8954564b607", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/RichTextOrBuilder.java", + "sha256": "b3f79354dad466683bdb7c993b323df87ea6286dfeb0d93aae7c3e0a9e1116a0", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/SampleRange.java", + "sha256": "78ca7ac2271801db44e02d9e64eceb18e7954cf9137d329f35585186286ca72e", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/SampleRangeOrBuilder.java", + "sha256": "71f89649b45b1c2a514efc1c37db953442e31e8b11b3060d992cadd8a3e0694a", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/SavedViewRecord.java", + "sha256": "fa7634020c255aa54bfa7e8802bdc370618f9e25b630d368e90567ece54d17d6", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/SavedViewRecordOrBuilder.java", + "sha256": "825cbc7fea09ffcc8d5962fce499df39576b54a1431feee4f39301a0b77724de", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ScalarPredicate.java", + "sha256": "088384d58168e863ca25ad1aafc21e0e1745ff2bea76d4b0c1770357e0925879", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ScalarPredicateOrBuilder.java", + "sha256": "9900381ce28e84ce81d18d295cb451072e3e5952d070e12301ac91ae84e0f300", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ScalarValue.java", + "sha256": "e074e6e7c9994c090a89856d37f4e32b37814bb939a684c1b11df7081b9e6391", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ScalarValueOrBuilder.java", + "sha256": "2e876d55fba4c4c815a218b3b72d5c6fce2143d5ae8c825d08ebdd11ac9c2bfd", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ScheduleSpec.java", + "sha256": "ea7c9803991d9df2bdd781fac60b6e2c78c3bd68a53f429e1cc6241929a7dc9f", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ScheduleSpecOrBuilder.java", + "sha256": "378df50600f9afad98491ffc898dc0c69ff6dbbda162c72e69b72a6a4d9403a8", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ScopeAnnotation.java", + "sha256": "13dc126f49f1f349abc80b02fadd34d7a5ebccd1742727c1a8fbb9eecd16f8cc", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ScopeAnnotationOrBuilder.java", + "sha256": "31187d8bfe0af4044f735e3519d64da9d72107900e406a11c229e9c8c3038261", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ScopeConfiguration.java", + "sha256": "764a098e051af81bf781a5dca5907adceb54b7c2edc34cff20daf50304c1985a", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ScopeConfigurationOrBuilder.java", + "sha256": "f1c103c72f9e3ed29d417c192648b62ce306745a6285bebfdfcb128b5eaefe9f", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ScopeFinding.java", + "sha256": "717b3d451cad02ec2e5943ac6ab6027012374c0521a45acb4a69e7c71005dc57", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ScopeFindingOrBuilder.java", + "sha256": "16f56bdcc74eaab45dd75b9b9778019d9fdce7fcc02256f81cba5c142ff97459", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ScopeMetadata.java", + "sha256": "71cec151edadf9fcc82878351e1b34b8f3648fcc47525aa144f0ecdb3a5169eb", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ScopeMetadataOrBuilder.java", + "sha256": "1b3bbbc616e7f9ea4a01ccdeeecf088fea58e878f8bf7e62c12f40de0e961c2e", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ScopeSelection.java", + "sha256": "77d5dbd8a1722c25c360a2c553de4af3962916abaf56c25c0ed546efd091e1a6", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ScopeSelectionOrBuilder.java", + "sha256": "4786ea9486db7185926bb105ae64b74746be9e42b7aa7343d3e825fc3e4bd73d", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ScopeTime.java", + "sha256": "81e3658b672ca3b9a3a0aabce3cfd3ed2d836eff1af1be44e496a18836e3073e", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ScopeTimeOrBuilder.java", + "sha256": "52522e8c2416be6aba05c31a4ca765ae22f9909a7406886089282874af8c4947", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/SelectOption.java", + "sha256": "965bc3379d05a5a5ae5847e33ebf57935fa9076dc0211941dd49e10af0d0ce22", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/SelectOptionOrBuilder.java", + "sha256": "9d5e65179b62c9c7a02dcc1347ebd6aaf6b872cf7570cc989a78a8a1e2cb570a", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/SelectedSample.java", + "sha256": "5911debda85c7a210f35cfeace3505c6dd14c2d20ba4a0b0bf202e9198e7b948", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/SelectedSampleOrBuilder.java", + "sha256": "3b0ce49c8562def6189bdb32cc7123759c359ebf323f34b07967396200936e02", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/SequenceView.java", + "sha256": "1ea75d5e8c5a1b99313cefd22950a3a064a2510e644569aed64605ac06ea2953", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/SequenceViewOrBuilder.java", + "sha256": "ec30ed0d088d7c7fe30b36f5d89beb35945c5593a77b291546092cf57c8e5251", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/SkillRecord.java", + "sha256": "cdf2a799f3ce504e7807f07412ef6ab75b0cf5f46d9d585336d68e91ce8a8b78", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/SkillRecordOrBuilder.java", + "sha256": "898a0b972f03b0859674aeec1d120baae7e00da1c973580857c3c21499ac17b0", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/SlateMetadata.java", + "sha256": "539be6f3331a24005100b0f4714b101795224f0b406fe9e2687a448380aef462", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/SlateMetadataOrBuilder.java", + "sha256": "8edecd06dc183354af893a7ca9bc450ba47a6e4e89c44af9e8c8899e1333d569", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/SlateSelection.java", + "sha256": "c9071266ab6e0a85bab3e35920eac5184aa7a803da76098b318fc372e89295fb", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/SlateSelectionOrBuilder.java", + "sha256": "9de81117b8c99c8e9c290eba5b0158c28fbb68f8d3a4ef1f1f43d0571eee49a7", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/SourceConsentRef.java", + "sha256": "fefa583c17dff08853ba02b9b888551d39967b2aba005e89844d575bf932e8a3", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/SourceConsentRefOrBuilder.java", + "sha256": "fc7beeaefdd0adae48c880d4016b8193c3b42323cd446cdf8c5308011419348b", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/StructuredValue.java", + "sha256": "1598fd9c24570330967d8e4f6c7d86fa66ccfc36ae61fd179f72fb054246695a", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/StructuredValueOrBuilder.java", + "sha256": "16c306202c2bd783be4f15eeffee96bf804d0c25374c04c6a24abdfd2fbc5231", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/TableBlock.java", + "sha256": "b9971a98aac6df70fb54d1d3d6dc3a07ecb48cd2902623a271145adb191fa099", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/TableBlockOrBuilder.java", + "sha256": "31f8784706e613327da43f16c79e2bc62de6ca4c370d04e3449c2a46abe77858", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/TableCell.java", + "sha256": "fa44a305c6620b088df706e29ab613f55b1fe7c45e16e3c2a6d2fb2c8790db13", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/TableCellOrBuilder.java", + "sha256": "9dc7ee42c9ffd01c56ced131f84d26332aad1ca29bb2b49fc924fc116045f985", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/TableRow.java", + "sha256": "c2a450b34b0780d5cf1912fc2a4679ebe75dac167da4cf5c1ad1524588a30428", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/TableRowOrBuilder.java", + "sha256": "891029e319ae7d70e4e5025c15db7ad44757ea5c560b18c8129648a9ad41f9f9", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/TagRecord.java", + "sha256": "38b29ccd10e39e03a5f0a22ab544c2bbadb4e353886c751fea54cbffe8e85e93", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/TagRecordOrBuilder.java", + "sha256": "e9e93c83b914818d1c74438646647e062d16c3e11837a1b03d1dafff3e4ef519", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/TaskReasonFacet.java", + "sha256": "5925128cc65285cdaea3369eb57476afe7295fdba16e361b46e5afc35c1ef576", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/TaskSnapshot.java", + "sha256": "c59e19ad31b2f1ec8027c8d2e4abad00e8cdfcae59b9cdccbdafa98a5662239b", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/TaskSnapshotOrBuilder.java", + "sha256": "539a994cb000c294238e6df269e711c7d2efa74343f1456d7663844d7d76aec9", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/TaskState.java", + "sha256": "2718775583ebfea0f02dc1df842c87defe66d99351032b5f31a941dcf0d6a940", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/TextRunSegment.java", + "sha256": "e2f5c29c01084bd32659b94ed7c5cd0de88a99a99910aeeb6ef181392aa646c8", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/TextRunSegmentOrBuilder.java", + "sha256": "bd01e0693402777f3ebaf62daa0ef4d6984939800285d2693033631f8275c3ec", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/TextSpan.java", + "sha256": "e06bd7f7b7f13a817973b2552011c9e703277cc60706ef5a91d42cfdc329ccc9", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/TextSpanOrBuilder.java", + "sha256": "e8b26a01a21d54eef567a0dd547b86cdcb8eb20fc34d24c98af7d440d48771bc", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/TimedText.java", + "sha256": "67f03f3bdbe27b7c33d369582f95e32ba2d5664465a6e2786e055ed73b107586", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/TimedTextOrBuilder.java", + "sha256": "32ca1ab26005b316953477c594eeb8f80bc88187d2a94ff4a72f6c8d38b57dbb", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/TimelineClip.java", + "sha256": "bf6e762c072c010d51d4879d6ab84c2954b249bfc3ff9ea2bab8062346cc0dad", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/TimelineClipOrBuilder.java", + "sha256": "26498ad46d9a90deff7654a265582b0db5e8d26908405b1edc36bc6df802ffeb", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/TimelineTrack.java", + "sha256": "e80a04fcdf4426d0e0a0634f569842956c87d6081d17d7e8759a6208059be901", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/TimelineTrackOrBuilder.java", + "sha256": "b45315395bb1084a6f3fbd0d61f242ad9c1757396b84720dac9af2dbbeae5ac6", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/TimelineView.java", + "sha256": "819f91f3d0d42dce7640732a58429ee01cd3fd8949a571678c69d1a778c968d9", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/TimelineViewOrBuilder.java", + "sha256": "8b9d01a5477940f8ab45cf61c0b75f40daff23be7c61212233f6ee6d0db59705", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ToolProposal.java", + "sha256": "3008ac9bc2a7ff6e36b2af432ed53461139bc2b80470221b5051f8a3c0c6f55e", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ToolProposalOrBuilder.java", + "sha256": "e376ad7ee324dce7701c86340860689d5ce74b9e074c6dfaf12f5c4ea4c218d5", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ToolResult.java", + "sha256": "37792e082e2730e772a5e363ac66b4442e80b5092f9e28dbb58df28d8d5b422b", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ToolResultOrBuilder.java", + "sha256": "cf899b74f43bad27a32603b4e109e11eb29cf475804783991f298b5473ec11e4", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/TransitionSpec.java", + "sha256": "c6076c8923b05f179927e01f6eabd46a97f3fccde9c33860375611ba328bb0f1", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/TransitionSpecOrBuilder.java", + "sha256": "0d4a82086051f7e4d01548a9af6cacf44b9ff55b84202ccccf91c795c542e2e3", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/TriggerConfiguration.java", + "sha256": "5e3a64ba71637b16c2ca58bd7190c8e8118d4208c760727ad1a4ba465141e9ef", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/TriggerConfigurationOrBuilder.java", + "sha256": "5433df54397acd1b04df9c53df123910ced0e3e2366d811444b49c9865afd67f", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/TriggerSpec.java", + "sha256": "5a4eaa0f0438f34953f473b8b1eb21ecd8b025aac193f138ee3cc48880e73ce0", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/TriggerSpecOrBuilder.java", + "sha256": "23bf2bce69ae18aacbbf084635000d312139b25cb6da60972066f1ada0ee4d7e", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/TurnInput.java", + "sha256": "570bb78840b6a574ed74393f4300901d893dc79ca729b1e4f3d81fc2f06610fb", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/TurnInputOrBuilder.java", + "sha256": "95aaa4b1ee6276e4acc9bcc73a6d13da038a7bff716af146518a305c6bf5a110", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ValueEntry.java", + "sha256": "4dc27078be567ce0acd9729fc10c52dbd72b035ef3d0934835c4bf589344c260", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ValueEntryOrBuilder.java", + "sha256": "8ff7824c50b36c39545abb862a7e192ce30e0995b8e3378cd68e92984d8572d3", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ValueList.java", + "sha256": "3e5034cc4ca73b0c9e2a1280d52a44909390ab3ed9891d15a2fbeefe64faf7d6", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ValueListOrBuilder.java", + "sha256": "13d1ee3ba096b3e61d5380f115fe07ce29fabd8ef863b3f03dd3e606b53ffa32", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ValueRecord.java", + "sha256": "e7994e41fc04e26611615bed87d77d5fbe7a14b9330a69eb5620e6baa61a3de2", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ValueRecordOrBuilder.java", + "sha256": "77c14356c5d38cc595ec458b5840285968c8d5af2cbba7860eaedeb1d666c78c", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/events/v1/EntitlementChangedKt.kt", + "sha256": "fe8ebfcc9648408fe502f08a8a2723dc5a437b126f9676b2922bf7fa2a31b528", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/events/v1/EventsProtoKt.proto.kt", + "sha256": "1db62e96f448dac65b8d49a99349a065f5ff7feff0a1bac7a6e8071172a67658", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/foundation/v1/ActorChainKt.kt", + "sha256": "4cf8082790f9e6458ab3fe712e7d872fcb5862e76ce6de40bac461a70dac59c5", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/foundation/v1/AggregateRefKt.kt", + "sha256": "b311238a98caabb19dcd929ca76242c73311cd5084866ebd8d90d01099b7fdf1", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/foundation/v1/ApplicationScopeKt.kt", + "sha256": "83d0e34721e59593a62e34285ee0dbd6415e8d7288d600d4edaa759a3a349ce8", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/foundation/v1/ArcErrorKt.kt", + "sha256": "32b965355b0ecaff8c70a36d7cd79864c0d00bd180fcbec31750649a225025a1", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/foundation/v1/ArtifactRefKt.kt", + "sha256": "c15a3a3b8abe4a809cfc0b54fb77d4052b427c0b6a633576109feeb1775d4a80", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/foundation/v1/BlobRefKt.kt", + "sha256": "78180dec46322b0985a659b735f0036024fdcba5d8641de6277906d76052dcd5", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/foundation/v1/ByteRangeKt.kt", + "sha256": "672cc25a376834bee0d7eb8b1895cee8f0c2f348d51fc61a4f54399d86100895", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/foundation/v1/ContentOriginKt.kt", + "sha256": "94a920442d04ddc090de59c152eda17b00228ac3ca2cf96c91eea686bb280875", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/foundation/v1/DecimalKt.kt", + "sha256": "d257c9fce9193ea989b057d90f8cd7ead5d8887e3c2245bfe1f7258b860d6033", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/foundation/v1/ErrorDetailsKt.kt", + "sha256": "c1f0385e384567dafb6211f9fdb9daca78ee9ba14daa3b917595d3d5a2e8082e", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/foundation/v1/FoundationProtoKt.proto.kt", + "sha256": "99f4e6e3daaac7ced2a1dd41c62fc87cbeba6b19cf7557f181703dfbde444565", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/foundation/v1/IdKt.kt", + "sha256": "a82bdcef00c1697afb7f12696def78a30cd281cfd09e3742b9fb08ad65d25410", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/foundation/v1/InstantKt.kt", + "sha256": "02ae32542532961606cdeb3773376eadfa13e67367201d3d875775dcb74fc9da", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/foundation/v1/LimitFailureKt.kt", + "sha256": "490c1e2fc02a81e1cc35267be5d0925d870bb3a2ce0971a945a0631e003fd939", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/foundation/v1/LocalNotesVersionKt.kt", + "sha256": "37d2eea09ca3e1ca6df5d1f9ec1f504e77eaf0fe1906860fb0389947fb2b432c", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/foundation/v1/MediaRangeKt.kt", + "sha256": "ec8248c594c6b45b3f058ae895a15c62b0498206e106c01975320a644537b59d", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/foundation/v1/MediaTimeKt.kt", + "sha256": "30b76504b38d4b0edc1ce21e525e37d63dbf514f4e01052ae60666056faf9165", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/foundation/v1/NativeContentRevKt.kt", + "sha256": "b34322ae96a82e5e39a48273cd92d560d322e5c1b3320c9c3f309482f211724a", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/foundation/v1/PageRequestKt.kt", + "sha256": "af86715ef3ecc7a790537f9930ba69111913988d32f9c759ddd0c0d827656d94", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/foundation/v1/PageStateKt.kt", + "sha256": "1bc0e2278cba2bdf672114f3d5a5562b888878568c173f452ada5aa7960117a4", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/foundation/v1/RationalKt.kt", + "sha256": "d221fef6f61e51403a376e9b66a621528e0fbab2086733cf7e3e505a82f4f353", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/foundation/v1/ReceiptKt.kt", + "sha256": "633d2f2e253c9eee040025f35b5d06147d595ed90447a9ccb680830faeef7382", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/foundation/v1/RequestMetaKt.kt", + "sha256": "18e1c74074eb75edf4fca5bd1cc5c4d27e7e17bf23e29ffca85403be88ef0a98", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/foundation/v1/ResourceRefKt.kt", + "sha256": "d7b2b7a44172b04b4b8e6998086230beeb2745351c3ca130e0d87fb1165df3e8", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/foundation/v1/ResourceVersionRefKt.kt", + "sha256": "aeb0e4b8b3d16e2d31bb70f5ab6936840ceb28784071ceaafc5cfafe49f47371", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/foundation/v1/ResponseMetaKt.kt", + "sha256": "f8f499884810b908ab71f70f87ea43bcd2579e6a4b6a230f6c7b8aa5f66d3333", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/foundation/v1/RetryAdviceKt.kt", + "sha256": "8bca147f4687902ac98b545e083cf6718ad802d35558cbd195aa71089d9db283", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/foundation/v1/RevisionConflictKt.kt", + "sha256": "bff06769af5625833a81e9f3f1e3d42ab6c7eb1b7440f924e5f801f963a3b86e", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/foundation/v1/RevisionKt.kt", + "sha256": "9b6c2f4d01c669ce8283226eb31f3ea0edfaece14162d1fee79d6b525133cb83", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/foundation/v1/StateFailureKt.kt", + "sha256": "00b68e19347e56b4cefe892ac7ea96d9d018f15990d6359493944a06291a89ff", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/foundation/v1/TimeRangeUtcKt.kt", + "sha256": "3fcf36c235d663bfb6844177946556a17a3faf2ecb8d25e37b4198d0a987f9b6", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/foundation/v1/VersionFailureKt.kt", + "sha256": "386340e2635090263d6dacda90bfe8334a923f2eb6a745d3d86bd39d54d867c1", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/foundation/v1/VersionedRefKt.kt", + "sha256": "5cfa97b24ceb9d067fbd6781f398e3c48d075ea0dd25dc4f12ff1956bf550e09", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/hello/v1/HelloProtoKt.proto.kt", + "sha256": "858ffdee11fcb438e594b231a8c5870add28da12f0004e25202e579aae34651a", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/hello/v1/SayHelloRequestKt.kt", + "sha256": "6592591e75b92d28cdadd8d5bce7713b9128fe02283bed2f4f1c756eb39a0ddb", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/hello/v1/SayHelloResponseKt.kt", + "sha256": "fb82759414a4817fb9a932eb6e7a57edd602af796f75ab125c6f986eff546397", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/AgentProfileKt.kt", + "sha256": "a45eb550798e3843485b17ae17d6ac7659533749804f089221c0c3afb379ce30", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/AggregateBodyKt.kt", + "sha256": "26e32e5c47dc54d4ef5b2ce0743c0224e8291eb1035953f03b72cabff53b2fce", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/AlignmentSpecKt.kt", + "sha256": "d7f3625bb5edf73dd6d4cc35237aa291225c7a9c8b1a118ac4543dadc1ec6b21", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/AutomationSpecKt.kt", + "sha256": "87262a7c66542d7e201db95234b5eefe873cf589824988ca8c2703562b4fe77c", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/AutomationViewKt.kt", + "sha256": "42ca16cc55aab8c19f2d1f4746109ac61a2c4f154ca6ea31fd2520ea38fa6ff4", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/BlockBodyKt.kt", + "sha256": "2b47c079204c6c785f02292c9589833ed4bca520b50a1501287290510f629ef6", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/BlockKt.kt", + "sha256": "64051c8b199b68174066408a88c5cf669d97715fbc42421f9de876b4d624cae0", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/BlockPropertiesKt.kt", + "sha256": "d82224d359cc92fce325c7d5c4651232f4287e5f57833058bef0feaa37778f9c", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/CalibrationKt.kt", + "sha256": "bbfec0f770637c8f7f62f5d01dd346b4ab43a3f4c7661e5d603fe0d78967ac97", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/CapabilityArgumentsKt.kt", + "sha256": "5ec398abe370d01a676829dc65fce1c17f7c208fd614d5c8036029f2d5c2e7e4", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/CapabilityResultKt.kt", + "sha256": "b6d85047500639cdda64eccbc8962cc79d2596768d7bfc5b265b8ecc73af3b04", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/CaptureMetadataKt.kt", + "sha256": "f199fe8818771fd6f32503e006747cefba7a8aca29fc1d2923145bb512bf7022", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/ChannelDefinitionKt.kt", + "sha256": "db249c177d04b60e49ac94801578e10373964a821d87c6a6610a1bd3968f969e", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/ChatProjectRecordKt.kt", + "sha256": "7009b0ca43ec9c6cd0ad17859e1a49220fd6e2476949eb0f25e31fb1a77eae6d", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/ChecksumSpecKt.kt", + "sha256": "fec1fd2861d531bed711a4afa2b0e548ddd6644133be1c32ed6cc1a473aa123c", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/CodeBlockKt.kt", + "sha256": "1eb43ebca15bc9b9c9223be53715d666f012c2d80981d99200ba54b94ecd02da", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/ColourConfigurationKt.kt", + "sha256": "a26d3036d87b7e25cc7fed028407226f18df77abf76fd14db993c958b2aa2e53", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/ContentProtoKt.proto.kt", + "sha256": "4f638e31002baf902121d1a1a5e163adc66d5e681f12d8f522e8c2e489f67eb1", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/ContextRefKt.kt", + "sha256": "1221123d137a796a53384b6f20ac550d933f619cbe8473e27c21a4549fcfe513", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/ContextSelectorKt.kt", + "sha256": "22875304bb4b5b9af6da42f14226959b986bd80ef0408cb0aae9c25d59d56489", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/ControlProgressKt.kt", + "sha256": "afc80c601d79951d69bdd6c9f2743279bec9014606e73c9c1b7af47cf835f74f", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/ConversationBodyKt.kt", + "sha256": "00b514b24860d4b4989856ca91bbd2771bfa65a39d1eb9827858475c82e7fa62", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/ConversationViewKt.kt", + "sha256": "ece0ebe05850b16ef7329e9072edb6d5e4eadaedf7fcdbbcd792b8716ceb1034", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/CursorResultKt.kt", + "sha256": "667799eb159cbae20f757409e7e617c22888c99c167b9a1e153474c33498393d", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/CursorSpecKt.kt", + "sha256": "c0cd26501492f28712d9546e30f881306b63ad4ee58a433133ffe455f28d0564", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/EffectParameterKt.kt", + "sha256": "0447b336ef2526a0a69e4e1470f649f7f190882361f0b4d3c7f5edb5022d4acd", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/EffectSpecKt.kt", + "sha256": "5e052638246bea4160689190b1c2d4f99cd3c3597021eec0dc0de58fc982cdb1", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/EphemeralSelectionKt.kt", + "sha256": "309e3ac8801924bf1b1862b287d6785d5fe8760dee646f78870b21b3dad138d5", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/EventTriggerKt.kt", + "sha256": "428b45e99b7d882a7ef7d6827c4ae1c06669a5846478ad383f0075a5f68ebf9a", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/FamilyResultKt.kt", + "sha256": "ba3deabc8d1cd5f5164d82e7f13b37c7aa765fb5bd990a1497d6e36dcd4bba01", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/FilterGroupKt.kt", + "sha256": "6d953e957cece2abc4474ddaa37d302ecf5202278acc0a1da0ada8d53c9d4d09", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/FolderViewKt.kt", + "sha256": "9248d804a538078186e43c0f832a1bd517f7e84f632c5ba9773c596bf572dd5b", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/FrameConfigurationKt.kt", + "sha256": "ffe4c2581a442f2006d9302c655b089878d7b9d135ee0349bb2f78503145848a", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/FrameFieldKt.kt", + "sha256": "3ac1bd94c1294852a1a785f64302a3c4e278c19ffc9986f7c08bbb6d484a983d", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/GeneratedSourceKt.kt", + "sha256": "2dc861471b465986b0159ddc1ca83556fb981b86a2cc616d82a265f8b096c26f", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/IdListKt.kt", + "sha256": "d004488fccb2d1066bc931c7c0b8550013c22ce847f9943a7d32d15ced045748", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/ImageLayoutKt.kt", + "sha256": "d112d134e3158ad8e2cd1b583724b194061552b6d6baee811c122e9c079cb48f", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/InlineAtomKt.kt", + "sha256": "5a90b2ad7e53640be6f5931c5f02deff7d4d0d055dbe590723c93c5b983454a0", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/KeyframeKt.kt", + "sha256": "97360464f60a8895e17e9dd2e53c359282b773f3948e46853dd8dfa527fb6bd7", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/KeyframeListKt.kt", + "sha256": "cafe2108937916b0c833bcf3ef9dd808c0b9a272866b7e4a8597b618b597f516", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/LinkSpecKt.kt", + "sha256": "0bebce491233eff9e0d4dacfd52530d8e929debcc0d3068a269003f5ab9a4291", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/MarkerViewKt.kt", + "sha256": "b84427f4eeb6fe40b5606b8178be4b3f745bd6a0a05747826228a1442943ec1c", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/MathContentKt.kt", + "sha256": "be325ffe28155dcb6e64a11439831ebdcd8f22fc5571b0864999c44d4a5c8b74", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/MeasurementRequestKt.kt", + "sha256": "d3232e7c8d9fdecfd1af15257e1e837e1a9f1d8c52029cfd1eb80bdbb9889ca3", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/MeasurementResultKt.kt", + "sha256": "87b023e59605c6422b8eff250abe6baf6f1af4a5ee18f35ec4edb15b28d39f28", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/MeasurementSourceKt.kt", + "sha256": "a1228315d44b8a85fdafd66736443252312aa1f55f928d3d1206c7d8f3e7018b", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/MeasurementThresholdKt.kt", + "sha256": "e2f1de6413ca028ecd77df0ffc324374fd66cd028f2f1f8785cf49d4b15ce42c", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/MeasurementValueKt.kt", + "sha256": "d0d6b655934d477bc9763547736e534f8a8955c0536b2db5f4cba31ddebea83b", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/MeasurementWindowKt.kt", + "sha256": "39dcde653dc1b827bb74c7e63da735f3fced5e3d02d8c8770d6f822a20b6318e", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/MediaBinKt.kt", + "sha256": "2f8419cb50d4a0d51a7b4f5d15c610706b7bea65b71613ccf83c0a88947d027a", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/MediaColourAssignmentKt.kt", + "sha256": "22634316b0a5e66d17a231d30d6d7cc04d8f206e56eaa63bbfce5bad791d3e82", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/MediaStreamKt.kt", + "sha256": "e7bcf21001070fc06623814bf6af286fd1a25a304911d2bdc28eaa07e606176d", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/MediaViewKt.kt", + "sha256": "8be0ada67fbed678855aa7faf4355e46dcab71ceb13eb680c4aabb751b90b278", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/MemoryRecordKt.kt", + "sha256": "dde3ba508c486d7b6b6bf6229775c62e8c712babb6f69bb26656403465365cc6", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/MessageDraftKt.kt", + "sha256": "9aae599e3e367d42a7d2086a4744249058a7f25c9ba778beb3c265010df92abe", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/MessagePartKt.kt", + "sha256": "848322f72b1c7328f11a7f626ef7d732999e5c56f6d6cb6c8df0ffffe6fad237", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/MessageViewKt.kt", + "sha256": "f6cefa2bf61f68afa3ebbc0fcbc744401006f5b962685dc4afc202718b7b7d1f", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/MetadataEntryKt.kt", + "sha256": "2390edf52e86323024be8d9aa01c44ea52785c3493278dcf6dbf922af6e372f2", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/MetadataScalarKt.kt", + "sha256": "21a683c15a00ec9cd2a259895cfd5086c8fa717d5361b55d05690ba81e0ff26f", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/NotebookBodyKt.kt", + "sha256": "23671fd377f0c4c2f6fb85f1ab5097933e97f74b560fecb743186f18d8c06ba2", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/NotebookViewKt.kt", + "sha256": "6b5027fb83cdd293306d16f18ba831988d79781d93cd56d6a0900523effedfcb", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/NotesDocumentKt.kt", + "sha256": "b0592a637b1c981e226eab863f663eb1382914cc040431e6a92b9e90b54971a4", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/NotesFilterKt.kt", + "sha256": "7a5e44f28cafaacfee3e7595a4d3c23b810f653cd18887fdb7b1d52531f06191", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/NotesQueryKt.kt", + "sha256": "cc6286bbab3f1fc0db4d7a1d5ad33af9bd15a93e7b6e1e4ac2e8a4e511ba2f8b", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/NotesSelectionKt.kt", + "sha256": "50bee5570ded6e8ccc0e721ae95c1c7c4674f99481c09437fdec580b09736317", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/NotesSelectorsKt.kt", + "sha256": "bf31d0f89ff8cd3dad650b23918c17a9f7ee15c90088fda9579e5b120f22a9c3", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/NotesSortKt.kt", + "sha256": "ae219be90211e0629576192825abb3c2fa5fc8142ab83ee80aa8413498da545e", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/NotesTextPositionKt.kt", + "sha256": "5bcf38b6d071fc146718ce16d0c36c03704bc73423386b796b70c41ada6f9961", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/PreferenceRecordKt.kt", + "sha256": "f5d0ce8f38134d97b0b54fc6ef8cc92cdce0aa55af1ae37eeef65ed69c6a9e73", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/ProcessingEdgeKt.kt", + "sha256": "a223175728a5b495819bed9eee718faf5178cb2bb9d4cf36707b6356546f7c18", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/ProcessingGraphKt.kt", + "sha256": "c4c4d1165e1e189295dee4a0f328c7651f953432361b98c6a489f97ced5dceb7", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/PropertyDefinitionKt.kt", + "sha256": "275ea425130968a2cfecb1e15bbb058868c45e718cf5a5c5de6d809223ada49e", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/PropertyDefinitionVersionKt.kt", + "sha256": "263b92d4e9718a1a03c6b10482d79050b432aaed75ff360f29f4407e7fd1fa76", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/PropertyValueKt.kt", + "sha256": "bf8718fbcaa56b6e50f320f4700ef9af4cdc85d8b5025123c10a44c020798937", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/RenderPresetKt.kt", + "sha256": "72ba7bb615081738d65a91d727a88c97dd467478572a0188c80e83d7cf2e33f3", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/RetimeCurveKt.kt", + "sha256": "e006e12713649212be6f399bd84b8819a74d5ffadd58d26b74900d86fd92c2c9", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/RetimePointKt.kt", + "sha256": "668a751399e467e724b55711c8a5e40bc4921274bd25b390a20b43f66ba66fb0", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/RichTextKt.kt", + "sha256": "86008f09af82f4735324b35890742f62161c67877806f6a4daf37087ce8db6bf", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/SampleRangeKt.kt", + "sha256": "d2d8f984ae3e3fa744445df736d0544ab5fc617e5c2702a234ece2c4b38c8447", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/SavedViewRecordKt.kt", + "sha256": "1f130fdaa8ddc13bae8317872e78b89e76a0e710ea5f72077bb1a1651b3561e5", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/ScalarPredicateKt.kt", + "sha256": "32810b51545a25aec68c8604765be47509c57adabb4070fab7dbd785a98039df", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/ScalarValueKt.kt", + "sha256": "ec560ba5d15785ffd02886d72ddbb513f164822ae37f868b4e3343ebe79c3cdc", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/ScheduleSpecKt.kt", + "sha256": "8cc489b09bf4fae75b968cefdd6be93bdd748c6fec4d4c023f711c30337c36c7", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/ScopeAnnotationKt.kt", + "sha256": "f053632bfd69c41752466a1efe0a26bb90a531a841aa7a789ff449de4f2a92f6", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/ScopeConfigurationKt.kt", + "sha256": "7a6f4581bdb524646d29451eaa2b4f60f562a9ad11d971463944270da926cd71", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/ScopeFindingKt.kt", + "sha256": "a918f2ee1f9b20244cb4ddd9740bf26285d01d765a6f0ab4f46cee8e8c57dc98", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/ScopeMetadataKt.kt", + "sha256": "dc75fb5c7728aad77bf27a1e9575d63e6e47f79bf6b6bdb5766064aabd0925f8", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/ScopeSelectionKt.kt", + "sha256": "f71cf5604534eb5cbd887519343ab1901672df74c13dfa538a7a9c346621ebfc", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/ScopeTimeKt.kt", + "sha256": "9c8aa14f88b68b8c912b5e603917d224041d3afc9fde99bee838e23b1d68b659", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/SelectOptionKt.kt", + "sha256": "814e8c9fe4c880843c931d89a5f4bb94975b738b166af94f7f927a7ee8aab504", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/SelectedSampleKt.kt", + "sha256": "5922589945edaf49e2137189755d1f3d42c8db46d6d12d6a4383d74baa8999d4", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/SequenceViewKt.kt", + "sha256": "db0558af221397ee290f66bbe40be1bcb171f9abe6bbc941c70ae9482d06cf4f", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/SkillRecordKt.kt", + "sha256": "f2fe507dac1630b4b0021eeb0948498149da80ddae29a2a6b962e1c4d0bd8c93", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/SlateMetadataKt.kt", + "sha256": "4cbcbd0f696137eb212b9c1106c17d8f7d3767616a8952a82ed6229524fe4c50", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/SlateSelectionKt.kt", + "sha256": "3f1fcc11b48686eb108ad5b6294328f0406b7028e54f90a8d21851e8f4eff5f0", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/SourceConsentRefKt.kt", + "sha256": "7fbb8ace1fcd083c57625af24b6f4d0feb09766b0a042ae506352f738424f6e6", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/StructuredValueKt.kt", + "sha256": "58a4d915cc539604fc27419fc1ca148fa920c341f06f1d8c52f16dd66cbf9c98", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/TableBlockKt.kt", + "sha256": "490d08c04fa985d798505ae7ed81f1c2362b2214b4555efb49354b1070aa0701", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/TableCellKt.kt", + "sha256": "42fc8c84aab9ef46a3341172b69e81cf69a428efad194a2de853f0f0137956a5", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/TableRowKt.kt", + "sha256": "18c52a6a98f1a838bc14ecfd04036edd90385ef5c498eebc70eb5d5af039b90a", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/TagRecordKt.kt", + "sha256": "92d61cfe14828d6f0380282c43d4e310fb567d032a89163d9c0822d386f87133", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/TaskSnapshotKt.kt", + "sha256": "577eaca45d93bc74f485242d56e70693976ff22cc9b521ec780a9f8776eb843f", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/TextRunSegmentKt.kt", + "sha256": "d14187707d8b67c06b9e3d79c2a8b1a787b8739af1f4e8549548ef11de6e366e", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/TextSpanKt.kt", + "sha256": "2353b4a6131439be8659d782629ab5598cf8a030bbd2e6706d482908d89f0ffd", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/TimedTextKt.kt", + "sha256": "b1e41267b9274b8d28f525f84acce01259d53f39f8e409094ee8caab96f55bb1", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/TimelineClipKt.kt", + "sha256": "a0df8816c6cce1a9a6a67da15e245e3c462225f91243b4b1c5d4001f1749351a", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/TimelineTrackKt.kt", + "sha256": "96b891f22c26818ba330ec196b014037fe898c3305a614bb08e2485999783167", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/TimelineViewKt.kt", + "sha256": "ff8a5e003a2a5f21568c4cace5609cbdeb74f19b291b5b51f4bdf105d3e0bf76", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/ToolProposalKt.kt", + "sha256": "348582b04acb704846cfe171b039b16dfa5f4284903e9be08e51d4f230a76e0d", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/ToolResultKt.kt", + "sha256": "a54378b2e31f4cd2bee7671403cb3d55bab2cde124b45df19275b80fcc1bcd59", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/TransitionSpecKt.kt", + "sha256": "dbe634cc775793d6d01910c95030f5a45fe0d189a2ed896e71b747ec25244883", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/TriggerConfigurationKt.kt", + "sha256": "6381acd929afb5bad9383fcf273a235fffa7cd2419cf2b08377c089f46669809", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/TriggerSpecKt.kt", + "sha256": "b43c59195cedd658a3b2132c0f7cfa0e7727e3b4c5e217c7965afabfc1cb8827", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/TurnInputKt.kt", + "sha256": "c5db96fea68d7df830e07d0d424df5a5520af412d3abc52e4c0a7e50a1bb8f87", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/ValueEntryKt.kt", + "sha256": "200deac55d8a15fdd98d57bc974d721a6c88e7b0a153983c660824e64e53e3e6", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/ValueListKt.kt", + "sha256": "18af73fffb2196e492950371072c285085546bb4c1095bc42638071dddbbbb26", + "normalization": "lf" + }, + { + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/ValueRecordKt.kt", + "sha256": "29b6e185b0a2703dcd59255db2ce8ab208cb7dc1f9f06b6308b05bb56f30a892", + "normalization": "lf" + }, + { + "path": "src/public/ts/api-client/src/gen/http.ts", + "sha256": "c2d964d185d5ab0e0288401468780cae66284af73c9d3165ce5b8978e2664a82", + "normalization": "lf" + }, + { + "path": "src/public/ts/api-client/src/shapes/gen/PackageInventory.ts", + "sha256": "b644ffac577d48ed17a5cc4d1015697ba8e1bd0603087601cbc1e5d929b9d01f", + "normalization": "lf" + }, + { + "path": "src/public/ts/api-client/src/shapes/gen/PartReceipt.ts", + "sha256": "e19df4d0461e49eabee97cf44c31c348c8295e4d6bd37374c4178ad1f34e18ae", + "normalization": "lf" + }, + { + "path": "src/public/ts/contract-fixtures/src/index.ts", + "sha256": "ca73ba9be87173e10a50b7e6b0e77966b9be05e726c8359e0223e3a90954b304", + "normalization": "lf" + }, + { + "path": "src/public/ts/proto/src/gen/arcforges/events/v1/events_pb.ts", + "sha256": "a27e66f4552827cd094a026b37a3f2cd4beac1e6bc1c4043d5fa77a35bbde1ca", + "normalization": "lf" + }, + { + "path": "src/public/ts/proto/src/gen/arcforges/foundation/v1/foundation_pb.ts", + "sha256": "78ded595f1f17e465a0c6747d68ddba38abf231f1e611834a2ed444ea9813351", + "normalization": "lf" + }, + { + "path": "src/public/ts/proto/src/gen/arcforges/hello/v1/hello_pb.ts", + "sha256": "793a78310bceb84d08cdb402f69f15da22a1882f53c3b93c5ea4f688c46704dc", + "normalization": "lf" + }, + { + "path": "src/public/ts/proto/src/gen/arcforges/publicapi/v1/content_pb.ts", + "sha256": "5001e43e8abdffe443da6e933fe162b213b63cff2b9f595ad4358bb45919ecc1", + "normalization": "lf" + }, + { + "path": "src/public/ts/proto/src/index.ts", + "sha256": "f637d0b976ad65604ed5dde8fb61245bfd59b788171cb4dfaacca475e7cffefe", + "normalization": "lf" + }, + { + "path": "src/public/ts/proto/src/services/gen/catalog.ts", + "sha256": "835b8e11f1112aa7496b87c0b554bad2159ab84d393bd2f0222a90303438ad8c", + "normalization": "lf" + }, + { + "path": "src/public/ts/proto/src/shapes/gen/proto.ts", + "sha256": "1e98d1f5a0d75a6b80c2167778ce921af0c91a6270b6a237bb1ee64f01d66682", + "normalization": "lf" + }, + { + "path": "src/public/ts/proto/src/values/gen/identifiers.ts", + "sha256": "17f4c6adf458d0ba1df4ac9341f620f50219863ee127c6fbf1071d1870ec8c3c", + "normalization": "lf" + } + ], + "disposition": "Improve", + "verification": { + "kind": "regeneration", + "command": "python eng/contracts.py generate --check", + "expected": "The existing generator reproduces the one added semantic-hash export; all unchanged barrel exports retain their original package owners.", + "artifacts": [] + }, + "notice": { + "required": true, + "text": "Selected ArcForges contract bindings are generated from Apache-2.0 schemas using Grpc.Tools 2.84.0, protoc-gen-es 2.15.0 and Connect-Kotlin 0.9.0. Shape validators, domain identity adapters and fixture exports use Apache-2.0 repository tooling. Historical protobuf BSD-3-Clause and applicable generator Apache-2.0 attributions are retained. Build tools are not bundled in client packages. Native-grpc-only Android generation remains retired.", + "files": [ + "LICENSE", + "third-party/protobuf-generator-LICENSE.txt", + "eng/provenance/NOTICE.txt" + ], + "distribution": "packages", + "reason": "The generated bindings are distributed. Every package NOTICE retains the applicable generator attribution and protobuf licence text; runtime dependency notices remain separate." + }, + "lifetime": { + "status": "permanent", + "owner": "Licensing and Provenance Owner", + "removalTrigger": null + }, + "generation": { + "generators": [ + { + "repository": "https://github.com/protocolbuffers/protobuf", + "commit": "35cd01f9fe9afbeea38cc7b979a3b6bfcde82c03", + "paths": [ + "src/google/protobuf/compiler/csharp/csharp_generator.cc", + "src/google/protobuf/compiler/java/generator.cc", + "src/google/protobuf/compiler/kotlin/generator.cc" + ], + "spdx": "BSD-3-Clause", + "evidence": [ + { + "path": "src/google/protobuf/compiler/csharp/csharp_generator.cc", + "sha256": "8b1977fc091ca196408fd0b88332fe4457e8bde2b1fc9b92327ca0accbb618b6", + "finding": "The generator file header explicitly declares BSD-3-Clause; generated output retains applicable upstream obligations." + }, + { + "path": "src/google/protobuf/compiler/java/generator.cc", + "sha256": "62d1d34fa2003b460eeb793e5c87f7c9ba3a9ab43a06ba6032c0daacbcc15d7d", + "finding": "The generator file header explicitly declares BSD-3-Clause; generated output retains applicable upstream obligations." + }, + { + "path": "src/google/protobuf/compiler/kotlin/generator.cc", + "sha256": "a73a77ee148d87601686875fa7545e27dfedf2162845bc6b04a5b73a63e1fd57", + "finding": "The generator file header explicitly declares BSD-3-Clause; generated output retains applicable upstream obligations." + }, + { + "path": "LICENSE", + "sha256": "6e5e117324afd944dcf67f36cf329843bc1a92229a8cd9bb573d7a83130fea7d", + "finding": "Full governing BSD-3-Clause terms for these explicitly licensed generator files." + } + ] + }, + { + "repository": "https://github.com/grpc/grpc", + "commit": "3252a89f10d8e92997862167ca7d095ecda85973", + "paths": [ + "src/compiler/csharp_generator.cc" + ], + "spdx": "Apache-2.0", + "evidence": [ + { + "path": "src/compiler/csharp_generator.cc", + "sha256": "e530568c3ee5c889fefbed7430fcb96817a3866eebeeaafc2d30cd8326a6acf4", + "finding": "The generator file header explicitly declares Apache-2.0; generated output retains applicable upstream obligations." + }, + { + "path": "LICENSE", + "sha256": "58c86a3f2b5cca0ebdf9ed3e7f4e6dc38e3b38796d8c3dc92064c62a4e39d0dd", + "finding": "Full governing Apache-2.0 terms for these explicitly licensed generator files." + } + ] + }, + { + "repository": "https://github.com/bufbuild/protobuf-es", + "commit": "f72f5295c853b7be8c0828f350e4f2803c8afdde", + "paths": [ + "packages/protoc-gen-es/src/protoc-gen-es-plugin.ts" + ], + "spdx": "Apache-2.0", + "evidence": [ + { + "path": "packages/protoc-gen-es/src/protoc-gen-es-plugin.ts", + "sha256": "25d3dd51af9def8c18cf5636726d72805c9e653ccfc4c43717ae21bdcfed19ae", + "finding": "The generator file header explicitly declares Apache-2.0; generated output retains applicable upstream obligations." + }, + { + "path": "LICENSE", + "sha256": "c04b4216f1cd4c5a4f7fb2f2a1b0ae70d847e9e0cac7c9dee9bf8cc03177c449", + "finding": "Full governing Apache-2.0 terms for these explicitly licensed generator files." + } + ] + }, + { + "repository": "https://github.com/connectrpc/connect-kotlin", + "commit": "98f32633c462f6b17673a2a6504def7d3222da1c", + "paths": [ + "protoc-gen-connect-kotlin/src/main/kotlin/com/connectrpc/protocgen/connect/Generator.kt" + ], + "spdx": "Apache-2.0", + "evidence": [ + { + "path": "protoc-gen-connect-kotlin/src/main/kotlin/com/connectrpc/protocgen/connect/Generator.kt", + "sha256": "5ed68f3229db6e9a39b7d4a3aa2076d4e5c391949547f42c063f78ba34b6572b", + "finding": "The generator file header explicitly declares Apache-2.0; generated output retains applicable upstream obligations." + }, + { + "path": "LICENSE", + "sha256": "d8e16f7c884f3678b5cba0e5612e55903752945dc2006fcef2167356ecda8ceb", + "finding": "Full governing Apache-2.0 terms for these explicitly licensed generator files." + } + ] + }, + { + "repository": "https://github.com/ArcForges/Contracts", + "commit": "af7b6cca5e14a51735512d283b03d3ae9d96d170", + "paths": [ + "eng/contracts.py", + "eng/foundation_semantics.py", + "eng/generate_fixtures.py", + "eng/generate_shapes.py", + "eng/generate_values.py", + "eng/kotlin_tools.py" + ], + "spdx": "Apache-2.0", + "evidence": [ + { + "path": "eng/contracts.py", + "sha256": "50b3b18e871c1030204a5d37ca76107928552059f3303a1528629ff5a22b347b", + "finding": "Reviewed exact Apache-2.0 schema, rule, fixture or generator input at the bound source snapshot." + }, + { + "path": "eng/foundation_semantics.py", + "sha256": "696df0723403994619c2b4777890cae7ce6b5aab280925930994f256dcc65cc4", + "finding": "Reviewed exact Apache-2.0 schema, rule, fixture or generator input at the bound source snapshot." + }, + { + "path": "eng/generate_fixtures.py", + "sha256": "0417ade78531767c655d27d72999ec3916929283a8acf2d63b8af214af16ff88", + "finding": "Reviewed exact Apache-2.0 schema, rule, fixture or generator input at the bound source snapshot." + }, + { + "path": "eng/generate_shapes.py", + "sha256": "412b21f7913a3ef724ed0d32dd571d8e9ea007a0a552b23bac3331b00d0497a0", + "finding": "Reviewed exact Apache-2.0 schema, rule, fixture or generator input at the bound source snapshot." + }, + { + "path": "eng/generate_values.py", + "sha256": "0c3316bcd3402399ac24f3513a919818044509d8510f2eebf5719f16b3201355", + "finding": "Reviewed exact Apache-2.0 schema, rule, fixture or generator input at the bound source snapshot." + }, + { + "path": "eng/kotlin_tools.py", + "sha256": "219ff48ab12c421b63942047d16e61c6282ee6fa1af69c4148337be8e52d3325", + "finding": "Reviewed exact Apache-2.0 schema, rule, fixture or generator input at the bound source snapshot." + }, + { + "path": "LICENSE", + "sha256": "cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30", + "finding": "Reviewed exact Apache-2.0 schema, rule, fixture or generator input at the bound source snapshot." + } + ] + }, + { + "repository": "https://github.com/ArcForges/Contracts", + "commit": "792306133ee1adcfd93e533c53ff3d4381c1c66a", + "paths": [ + "eng/contracts.py" + ], + "spdx": "Apache-2.0", + "evidence": [ + { + "path": "LICENSE", + "sha256": "cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30", + "finding": "Repository-authored export barrel generator uses Apache-2.0." + }, + { + "path": "eng/contracts.py", + "sha256": "a7803ebe2a17e2a86bfb792c05f91a1b9bcd51d273da81152efa28711b528ab0", + "finding": "Exact export generator source snapshot; unchanged binding generator evidence is retained." + } + ] + } + ], + "inputs": [ + { + "repository": "https://github.com/ArcForges/Contracts", + "commit": "af7b6cca5e14a51735512d283b03d3ae9d96d170", + "paths": [ + "eng/contract-packages.json", + "fixtures/internal/wp03-00.json", + "fixtures/public/hello.json", + "fixtures/public/wp03-00.json", + "fixtures/public/wp03-01.json", + "internal/ai-http/v1/schema.json", + "internal/proto/arcforges/local/chat/v1/chat.proto", + "internal/proto/arcforges/local/notes/v1/notes.proto", + "internal/proto/arcforges/local/platform/v1/platform.proto", + "internal/proto/arcforges/local/sandbox/v1/sandbox.proto", + "internal/proto/arcforges/local/scope/v1/scope.proto", + "internal/proto/arcforges/local/slate/v1/slate.proto", + "internal/proto/arcforges/operator/v1/operator.proto", + "internal/proto/constraints.json", + "public/http/v1/inventory.schema.json", + "public/http/v1/schema.json", + "public/proto/arcforges/events/v1/events.proto", + "public/proto/arcforges/extensions/v1/extensions.proto", + "public/proto/arcforges/foundation/v1/foundation.proto", + "public/proto/arcforges/hello/v1/hello.proto", + "public/proto/arcforges/publicapi/v1/content.proto", + "public/proto/constraints.json", + "public/proto/value-boundaries.json" + ], + "spdx": "Apache-2.0", + "evidence": [ + { + "path": "eng/contract-packages.json", + "sha256": "4f31f579f1dc1ec708d8e76299592df748eb5206a957938f03a334d7048abe3b", + "finding": "Reviewed exact Apache-2.0 schema, rule, fixture or generator input at the bound source snapshot." + }, + { + "path": "fixtures/internal/wp03-00.json", + "sha256": "d199b011ee721c9f6010a9eb449f254de7fd7e24f3e0d46a74005a51f3c56b13", + "finding": "Reviewed exact Apache-2.0 schema, rule, fixture or generator input at the bound source snapshot." + }, + { + "path": "fixtures/public/hello.json", + "sha256": "5e1fe5f94dfad301514a341b1f52f5a113943dc1837c7c4f817caaa4ea886b4e", + "finding": "Reviewed exact Apache-2.0 schema, rule, fixture or generator input at the bound source snapshot." + }, + { + "path": "fixtures/public/wp03-00.json", + "sha256": "3c6e4b53644c2568b50dde46c1255071a2f7b9d1f4674c69603bded3c1f8acad", + "finding": "Reviewed exact Apache-2.0 schema, rule, fixture or generator input at the bound source snapshot." + }, + { + "path": "fixtures/public/wp03-01.json", + "sha256": "1dfe708496a001e0b900ff727130f9cb5e91fa79287049df8655dc09ac37f22b", + "finding": "Reviewed exact Apache-2.0 schema, rule, fixture or generator input at the bound source snapshot." + }, + { + "path": "internal/ai-http/v1/schema.json", + "sha256": "395ffc80d24bc9d59b2de0706e9efd5071ec8ce3763dddf2dc7c3f4f7456da78", + "finding": "Reviewed exact Apache-2.0 schema, rule, fixture or generator input at the bound source snapshot." + }, + { + "path": "internal/proto/arcforges/local/chat/v1/chat.proto", + "sha256": "3e9c76af5aefc63c78d21609e09d7106cf809f8e271d2382c3f0c15cdb4cd519", + "finding": "Reviewed exact Apache-2.0 schema, rule, fixture or generator input at the bound source snapshot." + }, + { + "path": "internal/proto/arcforges/local/notes/v1/notes.proto", + "sha256": "6986907e69f15c21e495f2f5ff4f234bca2c00fb2b2a90f8698680adc38e8fda", + "finding": "Reviewed exact Apache-2.0 schema, rule, fixture or generator input at the bound source snapshot." + }, + { + "path": "internal/proto/arcforges/local/platform/v1/platform.proto", + "sha256": "519bd579aa83cfaa00e05d981c8d646524bddb8c27be22e67573c190e5762800", + "finding": "Reviewed exact Apache-2.0 schema, rule, fixture or generator input at the bound source snapshot." + }, + { + "path": "internal/proto/arcforges/local/sandbox/v1/sandbox.proto", + "sha256": "f97dbd60a9bc471bfc58f0cc8998b40e3fef4ddb8b10dbea8906e89fafe02574", + "finding": "Reviewed exact Apache-2.0 schema, rule, fixture or generator input at the bound source snapshot." + }, + { + "path": "internal/proto/arcforges/local/scope/v1/scope.proto", + "sha256": "027b0f72e1d1285fa3b2fcc13130400f8e8f0e801601485fef63e7a102b014c4", + "finding": "Reviewed exact Apache-2.0 schema, rule, fixture or generator input at the bound source snapshot." + }, + { + "path": "internal/proto/arcforges/local/slate/v1/slate.proto", + "sha256": "9bdc13d5344a6b30b01cf844b34ce183bd4d58b6277696ec70f9e2dc1e918a6c", + "finding": "Reviewed exact Apache-2.0 schema, rule, fixture or generator input at the bound source snapshot." + }, + { + "path": "internal/proto/arcforges/operator/v1/operator.proto", + "sha256": "30e9f7ef3124839417839a25f7be2a43a954947d688387cea4faff09ddcf66e8", + "finding": "Reviewed exact Apache-2.0 schema, rule, fixture or generator input at the bound source snapshot." + }, + { + "path": "internal/proto/constraints.json", + "sha256": "2560a714da7d5f60d7b7010d95c9dc8bda26338dbb320073b57a15b7d8898285", + "finding": "Reviewed exact Apache-2.0 schema, rule, fixture or generator input at the bound source snapshot." + }, + { + "path": "public/http/v1/inventory.schema.json", + "sha256": "fb6929548278f6e16e61491001fecae4143882efbfe732950a1584e1e2f80a5d", + "finding": "Reviewed exact Apache-2.0 schema, rule, fixture or generator input at the bound source snapshot." + }, + { + "path": "public/http/v1/schema.json", + "sha256": "23587b33320fcbe4a917c2839552984eb40e716c4ce317a5c218f35bedf06751", + "finding": "Reviewed exact Apache-2.0 schema, rule, fixture or generator input at the bound source snapshot." + }, + { + "path": "public/proto/arcforges/events/v1/events.proto", + "sha256": "ea0ac740c06bbb5b81724b4a7e601110424cabc4940b07e579cf97d852880f43", + "finding": "Reviewed exact Apache-2.0 schema, rule, fixture or generator input at the bound source snapshot." + }, + { + "path": "public/proto/arcforges/extensions/v1/extensions.proto", + "sha256": "188c3667e1887926efd0df3bd3cb3574a2d8573ee0271171c7f96622d5dc8642", + "finding": "Reviewed exact Apache-2.0 schema, rule, fixture or generator input at the bound source snapshot." + }, + { + "path": "public/proto/arcforges/foundation/v1/foundation.proto", + "sha256": "ceda869bf2998ca4bc21c4b7504c365a4662e7f28183e6db81660592d5bcdb3f", + "finding": "Reviewed exact Apache-2.0 schema, rule, fixture or generator input at the bound source snapshot." + }, + { + "path": "public/proto/arcforges/hello/v1/hello.proto", + "sha256": "92489f89d1898a3d3bbea56c72116416cd0152ae8866c98745739437020c67d9", + "finding": "Reviewed exact Apache-2.0 schema, rule, fixture or generator input at the bound source snapshot." + }, + { + "path": "public/proto/arcforges/publicapi/v1/content.proto", + "sha256": "a352f31e0bcee5e5523e59cb6bcfe2af04423e78389c67fc0d8d0ab52f104dee", + "finding": "Reviewed exact Apache-2.0 schema, rule, fixture or generator input at the bound source snapshot." + }, + { + "path": "public/proto/constraints.json", + "sha256": "4f76f316c66d85dae393e64f0362610c479596859f3247825ca003d97a4157d8", + "finding": "Reviewed exact Apache-2.0 schema, rule, fixture or generator input at the bound source snapshot." + }, + { + "path": "public/proto/value-boundaries.json", + "sha256": "ba5173445ebcead5b8137383bc32072658f69d8cf0f4be6913989e3b7a30f1d7", + "finding": "Reviewed exact Apache-2.0 schema, rule, fixture or generator input at the bound source snapshot." + }, + { + "path": "LICENSE", + "sha256": "cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30", + "finding": "Reviewed exact Apache-2.0 schema, rule, fixture or generator input at the bound source snapshot." + } + ] + } + ], + "command": "python eng/contracts.py generate --check", + "outputSpdx": "Apache-2.0" + }, + "review": { + "owner": "Licensing and Provenance Owner", + "reviewer": "w-20260927-platform (file-level licence assessment; independent task review remains required)", + "reviewedOn": "2026-09-27", + "decision": "approved", + "rationale": "Only the generator-owned proto export barrel adds the first-party semantic hash module. No package identity, upstream generator or licence boundary changes; original generated provenance remains linked through supersedes.", + "baselineCommit": "792306133ee1adcfd93e533c53ff3d4381c1c66a", + "reconciliation": false + }, + "supersedes": "contract-bindings-r5", + "artifactTargets": [] +} diff --git a/tests/StructureTests/PreviousClient/packages.lock.json b/tests/StructureTests/PreviousClient/packages.lock.json index 93dc5b1d..66fd41ef 100644 --- a/tests/StructureTests/PreviousClient/packages.lock.json +++ b/tests/StructureTests/PreviousClient/packages.lock.json @@ -4,7 +4,7 @@ "net10.0": { "ArcForges.Contracts.PublicApi": { "type": "Direct", - "requested": "[1.0.0-ci.113.1, 1.0.0-ci.113.1]", + "requested": "[1.0.0-ci.113.1, )", "resolved": "1.0.0-ci.113.1", "contentHash": "1ai2jcqdFfKLHahN62N9dqkcSsAEbgK/K5uQi4LDIUFDGaT38/2KJYYykrb/YLO2UyUBpFjxJmTk++A+4mr8Uw==", "dependencies": { From 0a02e083384985780ce01f36eb32424cf06cb7e0 Mon Sep 17 00:00:00 2001 From: sammiller Date: Sun, 27 Sep 2026 19:36:06 +0100 Subject: [PATCH 5/9] [CON.17] Register semantic source ownership and refresh admission evidence --- .../con17-previous-client-113-1.json | 4 ++-- tests/tooling/test_compatibility_matrix.py | 15 ++++++++++++++- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/eng/policy/dependency-reviews/con17-previous-client-113-1.json b/eng/policy/dependency-reviews/con17-previous-client-113-1.json index 70ea4580..7168d00c 100644 --- a/eng/policy/dependency-reviews/con17-previous-client-113-1.json +++ b/eng/policy/dependency-reviews/con17-previous-client-113-1.json @@ -2,7 +2,7 @@ "review": { "owner": "Contracts maintainers", "reviewer": "w-20260927-platform (dependency admission assessment; independent CON.17 PR review required)", - "reviewedOn": "2026-09-26", + "reviewedOn": "2026-09-27", "baselineCommit": "792306133ee1adcfd93e533c53ff3d4381c1c66a", "inputHashes": { ".java-version": "b8481af4c809b46f02fc334825116cbe9e6d6a7bc8e2363511fa77044fca8016", @@ -19,7 +19,7 @@ "eng/central-signing/build.gradle.kts": "a24f120f0e503347fdca3e2520dab58583ebb1449550f3f0d99b05437af174a8", "eng/central-signing/settings.gradle.kts": "1f1f5285f2938dc48b7a5da29f1c86f43a06ead1cffabd469b47597580f671b5", "eng/contract-packages.json": "4f31f579f1dc1ec708d8e76299592df748eb5206a957938f03a334d7048abe3b", - "eng/policy/contract-access.json": "381c259ee36628481a9634c7f60cf975dca5f962567776009412a618f61620ec", + "eng/policy/contract-access.json": "622d53ff60931677847ab90c550721b7630c13e167133bd13688215e46f5ae1e", "eng/provenance/artifact-profiles/dokka-2-2-0-r1.json": "f0f1bc138f4406cc5176d7181165591426f58a67333a8aad64f16999173ade74", "eng/provenance/artifact-profiles/dokka-2-2-0-r2.json": "08347bde226256422e640c1db3a7eb7f8d882390a7dfa66445974344e241e13e", "eng/provenance/artifact-profiles/dokka-2-2-0-r3.json": "a1a4cf880b287c6b8f9a9707d9226168584772b13e5ecd579c527873b0351521", diff --git a/tests/tooling/test_compatibility_matrix.py b/tests/tooling/test_compatibility_matrix.py index c80137c1..2e0a190e 100644 --- a/tests/tooling/test_compatibility_matrix.py +++ b/tests/tooling/test_compatibility_matrix.py @@ -6,7 +6,7 @@ import unittest sys.path.insert(0, str(Path(__file__).resolve().parents[2] / "eng")) -from check_compatibility import compare, descriptor, fields +from check_compatibility import compare, descriptor, fields, retained def integer(value): @@ -89,6 +89,19 @@ def test_fixed_width_truncation(self): with self.assertRaises(ValueError): fields(raw) + def test_retirement_is_exact_and_does_not_waive_other_namespaces(self): + model = deepcopy(self.old) + model["messages"][".arcforges.foundation.v1.Request"] = deepcopy(model["messages"][".fixture.Request"]) + result = retained(model, {"messages": ["Request"]}) + self.assertNotIn(".arcforges.foundation.v1.Request", result["messages"]) + self.assertIn(".fixture.Request", result["messages"]) + self.assertIn(".arcforges.foundation.v1.Request", model["messages"]) + result = retained(model, {"fields": {"Request": [{"name": "other", "tag": 1}]}}) + self.assertIn(1, result["messages"][".arcforges.foundation.v1.Request"]) + result = retained(model, {"fields": {"Request": [{"name": "revision", "tag": 1}]}}) + self.assertNotIn(1, result["messages"][".arcforges.foundation.v1.Request"]) + self.assertIn(1, result["messages"][".fixture.Request"]) + if __name__ == "__main__": unittest.main() From e9fbb7a5a8393cfbf2ff0412d58b7c47501dbd5e Mon Sep 17 00:00:00 2001 From: sammiller Date: Sun, 27 Sep 2026 19:46:58 +0100 Subject: [PATCH 6/9] [CON.17] Reconcile compatibility evidence after retained contract cleanup --- eng/policy/contract-access.json | 24 +- eng/policy/dependency-policy.json | 70 +- .../con17-previous-client-113-1.json | 27 +- eng/provenance/NOTICE.txt | 15 +- eng/provenance/files.json | 789 +++++------ .../con17-published-descriptors-r1.json | 2 +- .../records/con17-semantic-export-r1.json | 1205 ++--------------- 7 files changed, 643 insertions(+), 1489 deletions(-) diff --git a/eng/policy/contract-access.json b/eng/policy/contract-access.json index 17a1f156..f1ce722f 100644 --- a/eng/policy/contract-access.json +++ b/eng/policy/contract-access.json @@ -7,7 +7,7 @@ "path": "docs/assurance/wp03-02-serialization-posture-profile.md", "sha256": "7add5ef64bd92ef5abb1b9f5d5b324066fbd54dfcd08c901390d0eb25f61992c" }, - "sourceCommit": "671f816ddc9e1a3a75782842234f2e899c3de01a", + "sourceCommit": "b323a494a9a4ab83832050fb52488407d8f51264", "schemas": [ { "path": "internal/proto/arcforges/local/chat/v1/chat.proto", @@ -1009,6 +1009,14 @@ "sha256": "815584ad9125ce01f187091596b3bab2c6c5388f97fe81310f7b12c7055386e6", "kind": "generated" }, + { + "path": "src/public/dotnet/ArcForges.Contracts.Foundation/CanonicalSemanticHash.cs", + "package": "ArcForges.Contracts.Foundation", + "access": "public", + "types": ["CanonicalSemanticHash"], + "sha256": "d8b3d2846ed015d7ae0bade7fa17b93aceea1d07022720fea3c584ebfd49ead0", + "kind": "authored" + }, { "path": "src/public/dotnet/ArcForges.Contracts.Foundation/ContractSerialization.cs", "package": "ArcForges.Contracts.Foundation", @@ -3932,9 +3940,17 @@ "package": "@arcforges/proto", "access": "public", "types": [], - "sha256": "c85b66293b811e44ed36537ae16f4eaa14da203bedff6bbc1febbeb29a9a2d3f", + "sha256": "f637d0b976ad65604ed5dde8fb61245bfd59b788171cb4dfaacca475e7cffefe", "kind": "generated" }, + { + "path": "src/public/ts/proto/src/semantic-hash.ts", + "package": "@arcforges/proto", + "access": "public", + "types": ["SemanticReader"], + "sha256": "c0fb7104c5d0ff671cbab866c5c0d409ce9186534e34fdf42bdacfddd1c9b5f9", + "kind": "authored" + }, { "path": "src/public/ts/proto/src/services/gen/catalog.ts", "package": "@arcforges/proto", @@ -4045,7 +4061,7 @@ }, { "path": "Directory.Packages.props", - "sha256": "e5b916abbfaea2cceb4471a7b2861fbda6685f09a7c35445e3dcb10803fbb43c" + "sha256": "4a83ab07c4e26a69d5153e683d311fa667a1d40130f69358a59b512b55d5a8d1" }, { "path": "NuGet.config", @@ -4081,7 +4097,7 @@ }, { "path": "package.json", - "sha256": "2f36038dcc047c24126270f680db23265625775c3faf83df0f18340476800c85" + "sha256": "3400bc5ed9b2c01335577d9f9d8f268f8053b76f61959169b06ecad702fc36ed" }, { "path": "public/http/v1/inventory.schema.json", diff --git a/eng/policy/dependency-policy.json b/eng/policy/dependency-policy.json index 87f4aea4..badf865f 100644 --- a/eng/policy/dependency-policy.json +++ b/eng/policy/dependency-policy.json @@ -8,7 +8,7 @@ ".python-version": "922fe0c3de073b01988e23348ea184456161678c5e329e6f34be89be24383f93", "Directory.Build.props": "c2a05ff316f24d7293378ef7f4257b1788f9442224a48d803d0016798babbb5b", "Directory.Build.targets": "1404c5997b2679c1e4dc7897d5ab9c80c788daf0d4fe456fd15bcb8afeb73965", - "Directory.Packages.props": "e5b916abbfaea2cceb4471a7b2861fbda6685f09a7c35445e3dcb10803fbb43c", + "Directory.Packages.props": "4a83ab07c4e26a69d5153e683d311fa667a1d40130f69358a59b512b55d5a8d1", "NuGet.config": "0bc8b5cfba429bcbd0cb692405e3b6e504793c122350d6a8c95a69c2d718b472", "build.gradle.kts": "1cf3ae88a76f49c159e4ee1856e1d1e78a2f2f801bc07d5436391f745faac9c5", "eng/Codegen/Codegen.csproj": "c702e5c3150d55ad8ecaf1db3d1d0fe34a0a5cc64ffd6229d6437a34bc5ff8a1", @@ -16,7 +16,7 @@ "eng/central-signing/build.gradle.kts": "a24f120f0e503347fdca3e2520dab58583ebb1449550f3f0d99b05437af174a8", "eng/central-signing/settings.gradle.kts": "1f1f5285f2938dc48b7a5da29f1c86f43a06ead1cffabd469b47597580f671b5", "eng/contract-packages.json": "9567c392329f5db7cdcace051e9c7806c7b7ae163bd6d2ed3fff734a5e1a9569", - "eng/policy/contract-access.json": "b59b9fc1491c3b34323d638a09d7b07a8c23620286b16691b4d78a5390332ff6", + "eng/policy/contract-access.json": "9de84aa03629c593bad2d795db15f7edb83c5f01cb37b2cb1aca012c67660cbf", "eng/provenance/artifact-profiles/dokka-2-2-0-r1.json": "f0f1bc138f4406cc5176d7181165591426f58a67333a8aad64f16999173ade74", "eng/provenance/artifact-profiles/dokka-2-2-0-r2.json": "08347bde226256422e640c1db3a7eb7f8d882390a7dfa66445974344e241e13e", "eng/provenance/artifact-profiles/dokka-2-2-0-r3.json": "a1a4cf880b287c6b8f9a9707d9226168584772b13e5ecd579c527873b0351521", @@ -26,6 +26,8 @@ "eng/provenance/artifact-profiles/dokka-2-2-0-r7.json": "5b86329a7aa205353dfdb0fb75d924e50d2486e281dafb22fe90bf93012b03ad", "eng/provenance/artifact-profiles/dokka-2-2-0-r8.json": "224432d3957639e42fb429aa2841d80dbfd10aaec18b8ab3b4bf3851829f2089", "eng/provenance/records/canonical-apache-licence-r1.json": "e4252278767a0b4dd27a09a50b176c9420469828345e61336a4b5ca1d17c7b44", + "eng/provenance/records/con17-published-descriptors-r1.json": "c8fedcec230cd787f523049a4efd6037ccece68f36888f5018b18c4549a38053", + "eng/provenance/records/con17-semantic-export-r1.json": "040d54cf9a9718f9221a2599bf84ac05cf8da4453c57d2f0c01a428943f9316b", "eng/provenance/records/contract-bindings-r2.json": "95d2bde3b8d00c03061866838bc28b907bcec0e29a0ede996a42e79b7bb53221", "eng/provenance/records/contract-bindings-r3.json": "ba8adc87164b16804cad6525c50674d4f1b05da89d1d300a9b4f770576906878", "eng/provenance/records/contract-bindings-r4.json": "0918c490633e7205d66af8fe7bd825cb4f6db259c12b4ba33ee08aa4e55e57aa", @@ -131,7 +133,7 @@ "gradle/verification-metadata.xml": "ee91387d7538ba25bfcdb385f42d3ffaeaec1a1aefdc54a96e94fa19f95334e2", "gradle/wrapper/gradle-wrapper.properties": "45b09518a2f0ea326bc776066e735b94527d2a94002e3b27621c32cdaee7e3ce", "package-lock.json": "3e536db25743ceb5a021559dbc1f31d57112211c62d94f84df34daca5382709c", - "package.json": "2f36038dcc047c24126270f680db23265625775c3faf83df0f18340476800c85", + "package.json": "3400bc5ed9b2c01335577d9f9d8f268f8053b76f61959169b06ecad702fc36ed", "settings-gradle.lockfile": "5e2d075903b5cd264613e7538c7c51b1484fe2ed489d4ead3e6b4ba0cf3911c4", "settings.gradle.kts": "08e4e324a1fd3b548fced7c36945454823410fd7a7fbb95061375352668a7e64", "src/internal/dotnet/ArcForges.Contracts.CloudInternal/ArcForges.Contracts.CloudInternal.csproj": "4d0a0dcdcebc57e2bb261b4e70ab8226ddfc853a405b5b28368cca1767380911", @@ -169,7 +171,9 @@ "src/public/ts/api-client/package.json": "898f6dd155206d058bd3b9ff73718fc5adaf9960db1b22719015c67d8437ecf8", "src/public/ts/contract-fixtures/package.json": "c593abc4f5179b38fc470cf034a993ba0e0d552e7d6bd224b770c87db3047128", "src/public/ts/proto/package.json": "ef1d092f9811439e7f9d5e232d437c7a886020b1fd68f1327b326e22fb6bfe5b", - "tests/StructureTests/StructureTests.csproj": "27b8786c8d1ad8806f5c5015a000542fa717bb23dda27989b09cac0a4b4f22fe", + "tests/StructureTests/PreviousClient/PreviousClient.csproj": "be5035e295c028041172d6d2a4559070cc8beedbca724758f7099a67b4c76c72", + "tests/StructureTests/PreviousClient/packages.lock.json": "5e4f160e83bd12b6f3d630a9ee93aa5e2becd200fef836a1068fc0cbee92e695", + "tests/StructureTests/StructureTests.csproj": "5bca08adfe954e140c6f78371f33c7315307afefeffa9d95c415271775510587", "tests/StructureTests/packages.lock.json": "1fbee24fc31f60affa0f95616bad59428521335b5f5705de95986a8b580627eb", "tests/public/HelloClient/HelloClient.csproj": "fa65e07276f1b2209e9d96b95eaf5bcfe8b04472d8bf334d90d74e6e939c6f2a", "tests/public/HelloClient/packages.lock.json": "1592ed0d5c1bc731764993c0629fbc4954673001b4757800f0c7511ac1e462e7", @@ -2378,6 +2382,28 @@ } ], "scope": "reviewed runtime/build/generator/test closure; package-specific runtime SBOM gate determines redistributed dependencies" + }, + "nuget:arcforges.contracts.foundation@1.0.0-ci.113.1": { + "integrity": "k51yFjKnec92FJEfOM3/6YEhnbi1wfO4gztqjlhLumg7USTjVnA7ab7rE4X/H1cDb62Ny4c2ufn8Xi/CtBaZnA==", + "licence": "Apache-2.0", + "evidence": [ + { + "source": "https://api.nuget.org/v3-flatcontainer/arcforges.contracts.foundation/1.0.0-ci.113.1/arcforges.contracts.foundation.nuspec", + "sha256": "7726a233f9ce81c4373a2ab9423c33d566b919bb2cb90d2b5577cf844bbbbfc4" + } + ], + "scope": "Exact previously published first-party fixture consumed only by the isolated offline PreviousClient test executable; never a production package dependency." + }, + "nuget:arcforges.contracts.publicapi@1.0.0-ci.113.1": { + "integrity": "1ai2jcqdFfKLHahN62N9dqkcSsAEbgK/K5uQi4LDIUFDGaT38/2KJYYykrb/YLO2UyUBpFjxJmTk++A+4mr8Uw==", + "licence": "Apache-2.0", + "evidence": [ + { + "source": "https://api.nuget.org/v3-flatcontainer/arcforges.contracts.publicapi/1.0.0-ci.113.1/arcforges.contracts.publicapi.nuspec", + "sha256": "ff556689167901646fc045bdf691fdd2c8b72b25cb848e9312ff384d0b0e7216" + } + ], + "scope": "Exact previously published first-party fixture consumed only by the isolated offline PreviousClient test executable; never a production package dependency." } }, "publisher": { @@ -2405,9 +2431,9 @@ }, "review": { "owner": "Contracts maintainers", - "reviewer": "CON.23 implementation owner under maintainer authorization; exact-head peer review required before merge", + "reviewer": "w-20260927-platform (dependency admission assessment; independent CON.17 PR review required)", "reviewedOn": "2026-09-27", - "baselineCommit": "62d2d47b4c70a2b8b30a6799d96be8a3bafab14f", + "baselineCommit": "b323a494a9a4ab83832050fb52488407d8f51264", "inputHashes": { ".java-version": "b8481af4c809b46f02fc334825116cbe9e6d6a7bc8e2363511fa77044fca8016", ".node-version": "73fb1b615e2043a933be1c0895cde4358036acc28d785692509b822aa53c761f", @@ -2415,7 +2441,7 @@ ".python-version": "922fe0c3de073b01988e23348ea184456161678c5e329e6f34be89be24383f93", "Directory.Build.props": "c2a05ff316f24d7293378ef7f4257b1788f9442224a48d803d0016798babbb5b", "Directory.Build.targets": "1404c5997b2679c1e4dc7897d5ab9c80c788daf0d4fe456fd15bcb8afeb73965", - "Directory.Packages.props": "e5b916abbfaea2cceb4471a7b2861fbda6685f09a7c35445e3dcb10803fbb43c", + "Directory.Packages.props": "4a83ab07c4e26a69d5153e683d311fa667a1d40130f69358a59b512b55d5a8d1", "NuGet.config": "0bc8b5cfba429bcbd0cb692405e3b6e504793c122350d6a8c95a69c2d718b472", "build.gradle.kts": "1cf3ae88a76f49c159e4ee1856e1d1e78a2f2f801bc07d5436391f745faac9c5", "eng/Codegen/Codegen.csproj": "c702e5c3150d55ad8ecaf1db3d1d0fe34a0a5cc64ffd6229d6437a34bc5ff8a1", @@ -2423,7 +2449,7 @@ "eng/central-signing/build.gradle.kts": "a24f120f0e503347fdca3e2520dab58583ebb1449550f3f0d99b05437af174a8", "eng/central-signing/settings.gradle.kts": "1f1f5285f2938dc48b7a5da29f1c86f43a06ead1cffabd469b47597580f671b5", "eng/contract-packages.json": "9567c392329f5db7cdcace051e9c7806c7b7ae163bd6d2ed3fff734a5e1a9569", - "eng/policy/contract-access.json": "b59b9fc1491c3b34323d638a09d7b07a8c23620286b16691b4d78a5390332ff6", + "eng/policy/contract-access.json": "9de84aa03629c593bad2d795db15f7edb83c5f01cb37b2cb1aca012c67660cbf", "eng/provenance/artifact-profiles/dokka-2-2-0-r1.json": "f0f1bc138f4406cc5176d7181165591426f58a67333a8aad64f16999173ade74", "eng/provenance/artifact-profiles/dokka-2-2-0-r2.json": "08347bde226256422e640c1db3a7eb7f8d882390a7dfa66445974344e241e13e", "eng/provenance/artifact-profiles/dokka-2-2-0-r3.json": "a1a4cf880b287c6b8f9a9707d9226168584772b13e5ecd579c527873b0351521", @@ -2433,6 +2459,8 @@ "eng/provenance/artifact-profiles/dokka-2-2-0-r7.json": "5b86329a7aa205353dfdb0fb75d924e50d2486e281dafb22fe90bf93012b03ad", "eng/provenance/artifact-profiles/dokka-2-2-0-r8.json": "224432d3957639e42fb429aa2841d80dbfd10aaec18b8ab3b4bf3851829f2089", "eng/provenance/records/canonical-apache-licence-r1.json": "e4252278767a0b4dd27a09a50b176c9420469828345e61336a4b5ca1d17c7b44", + "eng/provenance/records/con17-published-descriptors-r1.json": "c8fedcec230cd787f523049a4efd6037ccece68f36888f5018b18c4549a38053", + "eng/provenance/records/con17-semantic-export-r1.json": "040d54cf9a9718f9221a2599bf84ac05cf8da4453c57d2f0c01a428943f9316b", "eng/provenance/records/contract-bindings-r2.json": "95d2bde3b8d00c03061866838bc28b907bcec0e29a0ede996a42e79b7bb53221", "eng/provenance/records/contract-bindings-r3.json": "ba8adc87164b16804cad6525c50674d4f1b05da89d1d300a9b4f770576906878", "eng/provenance/records/contract-bindings-r4.json": "0918c490633e7205d66af8fe7bd825cb4f6db259c12b4ba33ee08aa4e55e57aa", @@ -2538,7 +2566,7 @@ "gradle/verification-metadata.xml": "ee91387d7538ba25bfcdb385f42d3ffaeaec1a1aefdc54a96e94fa19f95334e2", "gradle/wrapper/gradle-wrapper.properties": "45b09518a2f0ea326bc776066e735b94527d2a94002e3b27621c32cdaee7e3ce", "package-lock.json": "3e536db25743ceb5a021559dbc1f31d57112211c62d94f84df34daca5382709c", - "package.json": "2f36038dcc047c24126270f680db23265625775c3faf83df0f18340476800c85", + "package.json": "3400bc5ed9b2c01335577d9f9d8f268f8053b76f61959169b06ecad702fc36ed", "settings-gradle.lockfile": "5e2d075903b5cd264613e7538c7c51b1484fe2ed489d4ead3e6b4ba0cf3911c4", "settings.gradle.kts": "08e4e324a1fd3b548fced7c36945454823410fd7a7fbb95061375352668a7e64", "src/internal/dotnet/ArcForges.Contracts.CloudInternal/ArcForges.Contracts.CloudInternal.csproj": "4d0a0dcdcebc57e2bb261b4e70ab8226ddfc853a405b5b28368cca1767380911", @@ -2576,7 +2604,9 @@ "src/public/ts/api-client/package.json": "898f6dd155206d058bd3b9ff73718fc5adaf9960db1b22719015c67d8437ecf8", "src/public/ts/contract-fixtures/package.json": "c593abc4f5179b38fc470cf034a993ba0e0d552e7d6bd224b770c87db3047128", "src/public/ts/proto/package.json": "ef1d092f9811439e7f9d5e232d437c7a886020b1fd68f1327b326e22fb6bfe5b", - "tests/StructureTests/StructureTests.csproj": "27b8786c8d1ad8806f5c5015a000542fa717bb23dda27989b09cac0a4b4f22fe", + "tests/StructureTests/PreviousClient/PreviousClient.csproj": "be5035e295c028041172d6d2a4559070cc8beedbca724758f7099a67b4c76c72", + "tests/StructureTests/PreviousClient/packages.lock.json": "5e4f160e83bd12b6f3d630a9ee93aa5e2becd200fef836a1068fc0cbee92e695", + "tests/StructureTests/StructureTests.csproj": "5bca08adfe954e140c6f78371f33c7315307afefeffa9d95c415271775510587", "tests/StructureTests/packages.lock.json": "1fbee24fc31f60affa0f95616bad59428521335b5f5705de95986a8b580627eb", "tests/public/HelloClient/HelloClient.csproj": "fa65e07276f1b2209e9d96b95eaf5bcfe8b04472d8bf334d90d74e6e939c6f2a", "tests/public/HelloClient/packages.lock.json": "1592ed0d5c1bc731764993c0629fbc4954673001b4757800f0c7511ac1e462e7", @@ -2590,15 +2620,15 @@ "tests/public/SerializationProbe/SerializationProbe.csproj": "53094aaa51dcf5ad145f69e265b989de4b59fdb60c1444e41563346cc25e85f0", "tests/public/SerializationProbe/packages.lock.json": "02abe2417b8714c2bc1a0ec4e978b58ab3128c3483a7eaebf09760685c0930be" }, - "maintenanceAssessment": "Retire two obsolete local contract packages and their inputs. Existing external dependency selections and immutable integrity identities remain unchanged. Canonical naming scanner is standard-library build tooling carried by existing public packages.", + "maintenanceAssessment": "Add exact immutable already-published ArcForges Contracts 1.0.0-ci.113.1 Foundation/PublicApi only for the offline previous-client compatibility executable. Apache-2.0 first-party packages; existing Google.Protobuf3.36.1 and Grpc.Core.Api2.84.0 transitive dependencies remain unchanged. No SDK, framework, production package dependency or registry configuration change. Existing security gates remain required; no vulnerability-absence claim.", "checks": { - "compilation": "Retained C# projects and TypeScript workspaces compiled locally; exact pinned SDK CI remains required.", - "aot-trim": "Retained AOT-compatible12 package inventory and serialization policy checks pass; Native AOT candidate compilation remains required CI.", - "compatibility": "89 retained messages,47 identity domains, reserved retired names/tags,339 C# and339 TypeScript foundation fixtures; retired ProductId negatives added.", - "licence-provenance": "Append-only contract-bindings-r6 and Dokka resources/profile r8 preserve all historical records;8255 API pages regenerated and admitted with unchanged fixed resources.", - "security-sbom": "External dependency versions/integrity unchanged. Existing dependency review, secret scan, CodeQL and package SBOM remain required.", - "runtime-performance-migration": "No device, browser, live service or installed package execution; targeted offline codec/shape tests only.", - "framework-runtime-posture": "No framework upgrades. Local existingSDK10.0.401 adapter preserves locked10.0.11 compiler/linker packages; committedSDK10.0.400 remains authoritative in CI." + "compilation": "PreviousClient and current StructureTests compiled with existing local SDK10.0.401, zero warnings/errors; pinned10.0.400 remains required in CI. No SDK installation.", + "aot-trim": "Production Foundation hash compiled with existing AOT-compatible project analyzers; isolated old-client console does not replace or broaden existing Native AOT candidate proof.", + "compatibility": "Actual published old-client/current and current/minimum generated codec exchanges passed offline, including exact int64/decimal and unknown response retention. Descriptor mutation negatives and C#/TS semantic goldens passed. Later service matrix remains CON18 completion prerequisite.", + "licence-provenance": "Local exact package nuspec files declare Apache-2.0. Record their SHA256 and immutable NuGet content hashes; historical descriptor fixtures and generated hash export have append-only provenance records.", + "security-sbom": "Locked package content hashes, existing import/licence/provenance and CI security gates remain required; old packages are test-only and not production project references.", + "runtime-performance-migration": "Only offline generated codec file exchange ran. No live transport, installed consumer audit, device, browser, service deployment, performance or migration claim.", + "framework-runtime-posture": "No framework upgrade. Existing .NET10, Node24, protobuf and Kotlin selections remain unchanged." }, "frameworkVersions": { "dotnetSdk": "10.0.400", @@ -2612,7 +2642,7 @@ "gson": "2.14.0", "connect": "0.9.0" }, - "previousReceipt": "eng/policy/dependency-reviews/con-23-retirement-r1.json" + "previousReceipt": "eng/policy/dependency-reviews/con-23-retirement-r2.json" }, - "reviewReceipt": "eng/policy/dependency-reviews/con-23-retirement-r2.json" + "reviewReceipt": "eng/policy/dependency-reviews/con17-previous-client-113-1.json" } diff --git a/eng/policy/dependency-reviews/con17-previous-client-113-1.json b/eng/policy/dependency-reviews/con17-previous-client-113-1.json index 7168d00c..565dd3a6 100644 --- a/eng/policy/dependency-reviews/con17-previous-client-113-1.json +++ b/eng/policy/dependency-reviews/con17-previous-client-113-1.json @@ -3,7 +3,7 @@ "owner": "Contracts maintainers", "reviewer": "w-20260927-platform (dependency admission assessment; independent CON.17 PR review required)", "reviewedOn": "2026-09-27", - "baselineCommit": "792306133ee1adcfd93e533c53ff3d4381c1c66a", + "baselineCommit": "b323a494a9a4ab83832050fb52488407d8f51264", "inputHashes": { ".java-version": "b8481af4c809b46f02fc334825116cbe9e6d6a7bc8e2363511fa77044fca8016", ".node-version": "73fb1b615e2043a933be1c0895cde4358036acc28d785692509b822aa53c761f", @@ -18,8 +18,8 @@ "eng/Codegen/packages.lock.json": "1823b949cabbc4f28cfb0326e36aab09e688869fd612d3a9d2630d7c1b82b875", "eng/central-signing/build.gradle.kts": "a24f120f0e503347fdca3e2520dab58583ebb1449550f3f0d99b05437af174a8", "eng/central-signing/settings.gradle.kts": "1f1f5285f2938dc48b7a5da29f1c86f43a06ead1cffabd469b47597580f671b5", - "eng/contract-packages.json": "4f31f579f1dc1ec708d8e76299592df748eb5206a957938f03a334d7048abe3b", - "eng/policy/contract-access.json": "622d53ff60931677847ab90c550721b7630c13e167133bd13688215e46f5ae1e", + "eng/contract-packages.json": "9567c392329f5db7cdcace051e9c7806c7b7ae163bd6d2ed3fff734a5e1a9569", + "eng/policy/contract-access.json": "9de84aa03629c593bad2d795db15f7edb83c5f01cb37b2cb1aca012c67660cbf", "eng/provenance/artifact-profiles/dokka-2-2-0-r1.json": "f0f1bc138f4406cc5176d7181165591426f58a67333a8aad64f16999173ade74", "eng/provenance/artifact-profiles/dokka-2-2-0-r2.json": "08347bde226256422e640c1db3a7eb7f8d882390a7dfa66445974344e241e13e", "eng/provenance/artifact-profiles/dokka-2-2-0-r3.json": "a1a4cf880b287c6b8f9a9707d9226168584772b13e5ecd579c527873b0351521", @@ -27,13 +27,15 @@ "eng/provenance/artifact-profiles/dokka-2-2-0-r5.json": "1c6c005f814fe804298ccb00a32ffb69cad9c6bcabb0c8697cb1ddb2d4146dae", "eng/provenance/artifact-profiles/dokka-2-2-0-r6.json": "e7d03411e1c653f369a764d599bb5e8d3be68ccb9a2b04b0701a3845e7fcee35", "eng/provenance/artifact-profiles/dokka-2-2-0-r7.json": "5b86329a7aa205353dfdb0fb75d924e50d2486e281dafb22fe90bf93012b03ad", + "eng/provenance/artifact-profiles/dokka-2-2-0-r8.json": "224432d3957639e42fb429aa2841d80dbfd10aaec18b8ab3b4bf3851829f2089", "eng/provenance/records/canonical-apache-licence-r1.json": "e4252278767a0b4dd27a09a50b176c9420469828345e61336a4b5ca1d17c7b44", - "eng/provenance/records/con17-published-descriptors-r1.json": "465b0ac0624aa917794a258cd94b163f3841f63081bf2643096c5a7a5435c307", - "eng/provenance/records/con17-semantic-export-r1.json": "865402554b81540d0658451b1935c7ef70ab796717fc11cdbc5b3c5219905e5e", + "eng/provenance/records/con17-published-descriptors-r1.json": "c8fedcec230cd787f523049a4efd6037ccece68f36888f5018b18c4549a38053", + "eng/provenance/records/con17-semantic-export-r1.json": "040d54cf9a9718f9221a2599bf84ac05cf8da4453c57d2f0c01a428943f9316b", "eng/provenance/records/contract-bindings-r2.json": "95d2bde3b8d00c03061866838bc28b907bcec0e29a0ede996a42e79b7bb53221", "eng/provenance/records/contract-bindings-r3.json": "ba8adc87164b16804cad6525c50674d4f1b05da89d1d300a9b4f770576906878", "eng/provenance/records/contract-bindings-r4.json": "0918c490633e7205d66af8fe7bd825cb4f6db259c12b4ba33ee08aa4e55e57aa", "eng/provenance/records/contract-bindings-r5.json": "ed0dadea8490e9e97956af033d1c350efe6c67021adb6d5304c1cd1850b61588", + "eng/provenance/records/contract-bindings-r6.json": "d9542d9b3f7c316e3c280899313e9af6ba68f03e3e90b7840a25e077f3bcbb0d", "eng/provenance/records/dokka-array-buffer-byte-length-licence-r1.json": "906e5f9298de3d24654fa77460e12888a8ea2c98f89c1d95974dcf7d8bf73704", "eng/provenance/records/dokka-available-typed-arrays-licence-r1.json": "168ac5eef74afda62ef3567eae064fb817179a24653f24b9d15ec0f5dc052816", "eng/provenance/records/dokka-babel-runtime-licence-r1.json": "4ff13d02084d04052687e0151f0a3b9949d12ce712253b15437ff4a95902654e", @@ -56,6 +58,7 @@ "eng/provenance/records/dokka-documentation-resources-r5.json": "6ab8701ca3da446be1148b73699b256137943d315dcf92b20b3b35669cd284ef", "eng/provenance/records/dokka-documentation-resources-r6.json": "0c9b3c6783c7436ddd06588c39002b32f23e7424e394267a21a41c8af1a4024e", "eng/provenance/records/dokka-documentation-resources-r7.json": "bed620535cf50a6e736123e9223bfdbdb77202dc3838fed48e2baf3bb79aca8b", + "eng/provenance/records/dokka-documentation-resources-r8.json": "ae159ec440748eaf2a0e23518f64bdabbfec88006c26e78eddb9540a4db1dee8", "eng/provenance/records/dokka-dom-helpers-licence-r1.json": "13303b969579dd5694c0544925d45b7126c3d9c1a6e0a754122896ca263da918", "eng/provenance/records/dokka-dunder-proto-licence-r1.json": "78b90efc76c0649d6150b4710fc90b58a99fe582af3696a7f3180f3a79f6aa7d", "eng/provenance/records/dokka-es-define-property-licence-r1.json": "f496d51bead2a29f6d9ea98032b46ccf6363caeb3dea928807974128d2f16139", @@ -140,16 +143,12 @@ "src/internal/dotnet/ArcForges.Contracts.CloudInternal/packages.lock.json": "bfc4981894f94a4ee6f2518f6e1f5997d7d20e17749125c5711794cd2ee10d94", "src/internal/dotnet/ArcForges.Contracts.LocalRpc.Chat/ArcForges.Contracts.LocalRpc.Chat.csproj": "c9234b9f411e729544374450cd745cbfac520497499e88a990dc115c6803e6d9", "src/internal/dotnet/ArcForges.Contracts.LocalRpc.Chat/packages.lock.json": "bfc4981894f94a4ee6f2518f6e1f5997d7d20e17749125c5711794cd2ee10d94", - "src/internal/dotnet/ArcForges.Contracts.LocalRpc.Notes/ArcForges.Contracts.LocalRpc.Notes.csproj": "822453736ad47d07fa3e684d15545eb5efad2d01fc3570372ceca437ac2216d2", - "src/internal/dotnet/ArcForges.Contracts.LocalRpc.Notes/packages.lock.json": "bfc4981894f94a4ee6f2518f6e1f5997d7d20e17749125c5711794cd2ee10d94", "src/internal/dotnet/ArcForges.Contracts.LocalRpc.Platform/ArcForges.Contracts.LocalRpc.Platform.csproj": "07d07fa1db0b0d39d8ce92819270b28cf825ba5e41f7a952f81439eed4b5f24b", "src/internal/dotnet/ArcForges.Contracts.LocalRpc.Platform/packages.lock.json": "fa17fe6057706e36ae0b9370a457536d05d0f3a8f0f72df622881bfc1628337e", "src/internal/dotnet/ArcForges.Contracts.LocalRpc.Sandbox/ArcForges.Contracts.LocalRpc.Sandbox.csproj": "f7385e84978291ea74162ed555ddbfa81ea44926d0b2cbb584039a97e5d27869", "src/internal/dotnet/ArcForges.Contracts.LocalRpc.Sandbox/packages.lock.json": "fa17fe6057706e36ae0b9370a457536d05d0f3a8f0f72df622881bfc1628337e", "src/internal/dotnet/ArcForges.Contracts.LocalRpc.Scope/ArcForges.Contracts.LocalRpc.Scope.csproj": "34c1aa338c952ac2b5047ded8a67bdab783555ce01c4abdc04155cb268b1614c", "src/internal/dotnet/ArcForges.Contracts.LocalRpc.Scope/packages.lock.json": "bfc4981894f94a4ee6f2518f6e1f5997d7d20e17749125c5711794cd2ee10d94", - "src/internal/dotnet/ArcForges.Contracts.LocalRpc.Slate/ArcForges.Contracts.LocalRpc.Slate.csproj": "a7946add01ad8307f586773721d875c5e0cd585b73f93d899e4e1f90c08c3800", - "src/internal/dotnet/ArcForges.Contracts.LocalRpc.Slate/packages.lock.json": "bfc4981894f94a4ee6f2518f6e1f5997d7d20e17749125c5711794cd2ee10d94", "src/internal/ts/ai-internal/package.json": "0bff2cf81a1a98ae3b94b9215e813b97d5ce3048dc09184cab1a7de496a68870", "src/internal/ts/operator-client/package.json": "d086732d7aa86738498b74f57f82652667f3603059e5a71d0744c71e85ae8d58", "src/public/dotnet/ArcForges.Cli/ArcForges.Cli.csproj": "315e0898b9276c1fcde34510e2ef6c1fce067d30c462b71fc3ffa89261d9ba1a", @@ -177,8 +176,8 @@ "src/public/ts/proto/package.json": "ef1d092f9811439e7f9d5e232d437c7a886020b1fd68f1327b326e22fb6bfe5b", "tests/StructureTests/PreviousClient/PreviousClient.csproj": "be5035e295c028041172d6d2a4559070cc8beedbca724758f7099a67b4c76c72", "tests/StructureTests/PreviousClient/packages.lock.json": "5e4f160e83bd12b6f3d630a9ee93aa5e2becd200fef836a1068fc0cbee92e695", - "tests/StructureTests/StructureTests.csproj": "f99aa11ac763a0ef14e06eb31da9928f70ef2d9a5d1c81c8f7453784aff78506", - "tests/StructureTests/packages.lock.json": "b56d0834fe3cf34f8f3a621703592b2716b2664e6f3f21e80e13698d798b8715", + "tests/StructureTests/StructureTests.csproj": "5bca08adfe954e140c6f78371f33c7315307afefeffa9d95c415271775510587", + "tests/StructureTests/packages.lock.json": "1fbee24fc31f60affa0f95616bad59428521335b5f5705de95986a8b580627eb", "tests/public/HelloClient/HelloClient.csproj": "fa65e07276f1b2209e9d96b95eaf5bcfe8b04472d8bf334d90d74e6e939c6f2a", "tests/public/HelloClient/packages.lock.json": "1592ed0d5c1bc731764993c0629fbc4954673001b4757800f0c7511ac1e462e7", "tests/public/HelloHost/HelloHost.csproj": "c7ac2acb49c079907c4fdbe9a937421d93146f4b87e92546032d7881fadc6035", @@ -188,8 +187,8 @@ "tests/public/KotlinConnectClient/gradle/verification-metadata.xml": "e4a8bfec6de2eefee2bd5a471ae4cf6aeaf40baaa06cd4be61d0f6bbd48cce20", "tests/public/KotlinConnectClient/settings-gradle.lockfile": "5e2d075903b5cd264613e7538c7c51b1484fe2ed489d4ead3e6b4ba0cf3911c4", "tests/public/KotlinConnectClient/settings.gradle.kts": "997d5d04e67aafbd50d094c4aed81bcc239cf5a9c205a786f2847140474f61e5", - "tests/public/SerializationProbe/SerializationProbe.csproj": "df0cfb39d8218ff34492cb58c07c5eb9f535aecd8356318a29564fc02cfecb20", - "tests/public/SerializationProbe/packages.lock.json": "49c6e222abe9cc52f01bfc2aa1bb0dd4441b0fbb05acdbfab9bc909ca8c20afb" + "tests/public/SerializationProbe/SerializationProbe.csproj": "53094aaa51dcf5ad145f69e265b989de4b59fdb60c1444e41563346cc25e85f0", + "tests/public/SerializationProbe/packages.lock.json": "02abe2417b8714c2bc1a0ec4e978b58ab3128c3483a7eaebf09760685c0930be" }, "maintenanceAssessment": "Add exact immutable already-published ArcForges Contracts 1.0.0-ci.113.1 Foundation/PublicApi only for the offline previous-client compatibility executable. Apache-2.0 first-party packages; existing Google.Protobuf3.36.1 and Grpc.Core.Api2.84.0 transitive dependencies remain unchanged. No SDK, framework, production package dependency or registry configuration change. Existing security gates remain required; no vulnerability-absence claim.", "checks": { @@ -213,7 +212,7 @@ "gson": "2.14.0", "connect": "0.9.0" }, - "previousReceipt": "eng/policy/dependency-reviews/dependabot-2026-09-26-protobuf-4-36-2.json" + "previousReceipt": "eng/policy/dependency-reviews/con-23-retirement-r2.json" }, "closure": { "maven:com.connectrpc:connect-kotlin-google-javalite-ext:0.9.0": { diff --git a/eng/provenance/NOTICE.txt b/eng/provenance/NOTICE.txt index 9ca8c0b1..b820fb8b 100644 --- a/eng/provenance/NOTICE.txt +++ b/eng/provenance/NOTICE.txt @@ -9,8 +9,19 @@ Notice scope: source Apache License, Version 2.0, January 2004; preserve the complete terms. The complete Apache-2.0 terms remain in LICENSE and the four public export copies. -contract-bindings-r6 -Source: https://github.com/ArcForges/Contracts @ 671f816ddc9e1a3a75782842234f2e899c3de01a +con17-published-descriptors-r1 +Source: https://github.com/ArcForges/Contracts @ b10b2f6f316bf0c007e00632c5442fc102ebbe6e +Material licence: Apache-2.0 +Notice scope: source +Copyright 2026 ArcForges contributors. +Copyright 2008 Google Inc. All rights reserved. +Copyright 2015, 2019, 2020 gRPC authors. +Copyright 2021-2026 Buf Technologies, Inc. +Copyright 2022-2026 The Connect Authors. +Selected ArcForges contract bindings are generated from Apache-2.0 schemas using Grpc.Tools 2.84.0, protoc-gen-es 2.15.0 and Connect-Kotlin 0.9.0. Shape validators, domain identity adapters and fixture exports use Apache-2.0 repository tooling. Historical protobuf BSD-3-Clause and applicable generator Apache-2.0 attributions are retained. Build tools are not bundled in client packages. Native-grpc-only Android generation remains retired. + +con17-semantic-export-r1 +Source: https://github.com/ArcForges/Contracts @ b323a494a9a4ab83832050fb52488407d8f51264 Material licence: Apache-2.0 Notice scope: packages Copyright 2026 ArcForges contributors. diff --git a/eng/provenance/files.json b/eng/provenance/files.json index c75d7095..43c3b1c5 100644 --- a/eng/provenance/files.json +++ b/eng/provenance/files.json @@ -5,11 +5,11 @@ ".editorconfig", ".gitattributes", ".github/CODEOWNERS", - ".github/dependabot.yml", ".github/ISSUE_TEMPLATE/bug.yml", ".github/ISSUE_TEMPLATE/config.yml", ".github/ISSUE_TEMPLATE/proposal.yml", ".github/PULL_REQUEST_TEMPLATE.md", + ".github/dependabot.yml", ".github/workflows/ci.yml", ".github/workflows/security.yml", ".gitignore", @@ -22,12 +22,16 @@ ".python-version", "AGENTS.md", "ArcForges.Contracts.slnx", - "build.gradle.kts", "CODE_OF_CONDUCT.md", "CONTRIBUTING.md", "Directory.Build.props", "Directory.Build.targets", "Directory.Packages.props", + "NOTICE", + "NuGet.config", + "README.md", + "SECURITY.md", + "build.gradle.kts", "docs/architecture.md", "docs/bootstrap-plan.md", "docs/consuming.md", @@ -46,10 +50,13 @@ "docs/validation.md", "docs/wp03-01-foundation.md", "docs/wp03-02-serialization.md", + "eng/Codegen/Codegen.csproj", + "eng/Codegen/packages.lock.json", "eng/build_identity.py", - "eng/central_publish.py", "eng/central-signing/build.gradle.kts", "eng/central-signing/settings.gradle.kts", + "eng/central_publish.py", + "eng/check_compatibility.py", "eng/check_contract_access.mjs", "eng/check_foundation.py", "eng/check_licences.py", @@ -57,16 +64,15 @@ "eng/check_operation_scope.py", "eng/check_provenance.py", "eng/check_serialization.py", - "eng/Codegen/Codegen.csproj", - "eng/Codegen/packages.lock.json", + "eng/compatibility/window.json", "eng/consumer_tools.py", "eng/contract-packages.json", "eng/contracts.py", "eng/dependency_admission.py", "eng/documentation_tools.py", - "eng/foundation_semantics.py", "eng/foundation-baseline.json", "eng/foundation-inventory.json", + "eng/foundation_semantics.py", "eng/generate_fixtures.py", "eng/generate_shapes.py", "eng/generate_values.py", @@ -82,6 +88,7 @@ "eng/policy/dependency-policy.json", "eng/policy/dependency-reviews/con-23-retirement-r1.json", "eng/policy/dependency-reviews/con-23-retirement-r2.json", + "eng/policy/dependency-reviews/con17-previous-client-113-1.json", "eng/policy/dependency-reviews/dependabot-2026-09-26-grpc-2-84-0.json", "eng/policy/dependency-reviews/dependabot-2026-09-26-prettier-3-9-8.json", "eng/policy/dependency-reviews/dependabot-2026-09-26-protobuf-4-36-2.json", @@ -93,6 +100,7 @@ "eng/policy/licence-boundary.json", "eng/policy/product-names.json", "eng/policy/reuse-policy.json", + "eng/provenance/NOTICE.txt", "eng/provenance/artifact-profiles/dokka-2-2-0-r1.json", "eng/provenance/artifact-profiles/dokka-2-2-0-r2.json", "eng/provenance/artifact-profiles/dokka-2-2-0-r3.json", @@ -103,8 +111,9 @@ "eng/provenance/artifact-profiles/dokka-2-2-0-r8.json", "eng/provenance/conflicts/javadoc-script-boundary-r1.json", "eng/provenance/files.json", - "eng/provenance/NOTICE.txt", "eng/provenance/records/canonical-apache-licence-r1.json", + "eng/provenance/records/con17-published-descriptors-r1.json", + "eng/provenance/records/con17-semantic-export-r1.json", "eng/provenance/records/contract-bindings-r2.json", "eng/provenance/records/contract-bindings-r3.json", "eng/provenance/records/contract-bindings-r4.json", @@ -210,6 +219,7 @@ "eng/snapshot_publish.py", "eng/version-sources.json", "fixtures/internal/wp03-00.json", + "fixtures/public/con-17-compat-hash.json", "fixtures/public/hello.json", "fixtures/public/wp03-00.json", "fixtures/public/wp03-01.json", @@ -227,8 +237,6 @@ "internal/proto/arcforges/local/scope/v1/scope.proto", "internal/proto/arcforges/operator/v1/operator.proto", "internal/proto/constraints.json", - "NOTICE", - "NuGet.config", "package-lock.json", "package.json", "public/http/v1/inventory.schema.json", @@ -240,110 +248,117 @@ "public/proto/arcforges/publicapi/v1/content.proto", "public/proto/constraints.json", "public/proto/value-boundaries.json", - "README.md", - "SECURITY.md", "settings-gradle.lockfile", "settings.gradle.kts", "src/internal/dotnet/ArcForges.Contracts.CloudInternal/ArcForges.Contracts.CloudInternal.csproj", - "src/internal/dotnet/ArcForges.Contracts.CloudInternal/packages.lock.json", "src/internal/dotnet/ArcForges.Contracts.CloudInternal/README.md", + "src/internal/dotnet/ArcForges.Contracts.CloudInternal/packages.lock.json", "src/internal/dotnet/ArcForges.Contracts.LocalRpc.Chat/ArcForges.Contracts.LocalRpc.Chat.csproj", - "src/internal/dotnet/ArcForges.Contracts.LocalRpc.Chat/packages.lock.json", "src/internal/dotnet/ArcForges.Contracts.LocalRpc.Chat/README.md", + "src/internal/dotnet/ArcForges.Contracts.LocalRpc.Chat/packages.lock.json", "src/internal/dotnet/ArcForges.Contracts.LocalRpc.Platform/ArcForges.Contracts.LocalRpc.Platform.csproj", - "src/internal/dotnet/ArcForges.Contracts.LocalRpc.Platform/packages.lock.json", "src/internal/dotnet/ArcForges.Contracts.LocalRpc.Platform/README.md", + "src/internal/dotnet/ArcForges.Contracts.LocalRpc.Platform/packages.lock.json", "src/internal/dotnet/ArcForges.Contracts.LocalRpc.Sandbox/ArcForges.Contracts.LocalRpc.Sandbox.csproj", - "src/internal/dotnet/ArcForges.Contracts.LocalRpc.Sandbox/packages.lock.json", "src/internal/dotnet/ArcForges.Contracts.LocalRpc.Sandbox/README.md", + "src/internal/dotnet/ArcForges.Contracts.LocalRpc.Sandbox/packages.lock.json", "src/internal/dotnet/ArcForges.Contracts.LocalRpc.Scope/ArcForges.Contracts.LocalRpc.Scope.csproj", - "src/internal/dotnet/ArcForges.Contracts.LocalRpc.Scope/packages.lock.json", "src/internal/dotnet/ArcForges.Contracts.LocalRpc.Scope/README.md", - "src/internal/ts/ai-internal/package.json", + "src/internal/dotnet/ArcForges.Contracts.LocalRpc.Scope/packages.lock.json", "src/internal/ts/ai-internal/README.md", + "src/internal/ts/ai-internal/package.json", "src/internal/ts/ai-internal/src/index.ts", "src/internal/ts/ai-internal/tsconfig.json", - "src/internal/ts/operator-client/package.json", "src/internal/ts/operator-client/README.md", + "src/internal/ts/operator-client/package.json", "src/internal/ts/operator-client/tsconfig.json", "src/public/dotnet/ArcForges.Cli/ArcForges.Cli.csproj", - "src/public/dotnet/ArcForges.Cli/packages.lock.json", "src/public/dotnet/ArcForges.Cli/Program.cs", "src/public/dotnet/ArcForges.Cli/README.md", + "src/public/dotnet/ArcForges.Cli/packages.lock.json", "src/public/dotnet/ArcForges.Contracts.Events/ArcForges.Contracts.Events.csproj", - "src/public/dotnet/ArcForges.Contracts.Events/packages.lock.json", "src/public/dotnet/ArcForges.Contracts.Events/README.md", + "src/public/dotnet/ArcForges.Contracts.Events/packages.lock.json", "src/public/dotnet/ArcForges.Contracts.Foundation/ArcForges.Contracts.Foundation.csproj", + "src/public/dotnet/ArcForges.Contracts.Foundation/CanonicalSemanticHash.cs", "src/public/dotnet/ArcForges.Contracts.Foundation/ContractSerialization.cs", - "src/public/dotnet/ArcForges.Contracts.Foundation/packages.lock.json", "src/public/dotnet/ArcForges.Contracts.Foundation/README.md", "src/public/dotnet/ArcForges.Contracts.Foundation/ValueBoundaries.cs", + "src/public/dotnet/ArcForges.Contracts.Foundation/packages.lock.json", "src/public/dotnet/ArcForges.Contracts.PublicApi/ArcForges.Contracts.PublicApi.csproj", - "src/public/dotnet/ArcForges.Contracts.PublicApi/packages.lock.json", "src/public/dotnet/ArcForges.Contracts.PublicApi/README.md", + "src/public/dotnet/ArcForges.Contracts.PublicApi/packages.lock.json", "src/public/dotnet/ArcForges.Contracts.Validation/ArcForges.Contracts.Validation.csproj", - "src/public/dotnet/ArcForges.Contracts.Validation/packages.lock.json", "src/public/dotnet/ArcForges.Contracts.Validation/README.md", + "src/public/dotnet/ArcForges.Contracts.Validation/packages.lock.json", "src/public/dotnet/ArcForges.Sdk.Client/ArcForges.Sdk.Client.csproj", "src/public/dotnet/ArcForges.Sdk.Client/ExtensionLeaseClient.cs", - "src/public/dotnet/ArcForges.Sdk.Client/packages.lock.json", "src/public/dotnet/ArcForges.Sdk.Client/README.md", + "src/public/dotnet/ArcForges.Sdk.Client/packages.lock.json", "src/public/dotnet/ArcForges.Sdk.Contracts/ArcForges.Sdk.Contracts.csproj", - "src/public/dotnet/ArcForges.Sdk.Contracts/packages.lock.json", "src/public/dotnet/ArcForges.Sdk.Contracts/README.md", + "src/public/dotnet/ArcForges.Sdk.Contracts/packages.lock.json", + "src/public/kotlin/contract-fixtures/README.md", "src/public/kotlin/contract-fixtures/build.gradle.kts", "src/public/kotlin/contract-fixtures/gradle.lockfile", - "src/public/kotlin/contract-fixtures/README.md", "src/public/kotlin/contract-fixtures/src/main/java/io/github/arcforges/contracts/fixtures/ContractFixtures.java", + "src/public/kotlin/contracts-connect-client/README.md", "src/public/kotlin/contracts-connect-client/build.gradle.kts", "src/public/kotlin/contracts-connect-client/gradle.lockfile", - "src/public/kotlin/contracts-connect-client/README.md", + "src/public/kotlin/contracts-proto/README.md", "src/public/kotlin/contracts-proto/build.gradle.kts", "src/public/kotlin/contracts-proto/gradle.lockfile", - "src/public/kotlin/contracts-proto/README.md", - "src/public/ts/api-client/package.json", "src/public/ts/api-client/README.md", + "src/public/ts/api-client/package.json", "src/public/ts/api-client/src/index.ts", "src/public/ts/api-client/tsconfig.json", - "src/public/ts/contract-fixtures/package.json", "src/public/ts/contract-fixtures/README.md", + "src/public/ts/contract-fixtures/package.json", "src/public/ts/contract-fixtures/tsconfig.json", - "src/public/ts/proto/package.json", "src/public/ts/proto/README.md", + "src/public/ts/proto/package.json", + "src/public/ts/proto/src/semantic-hash.ts", "src/public/ts/proto/src/values.ts", "src/public/ts/proto/src/wire.ts", "src/public/ts/proto/tsconfig.json", - "tests/public/foundation-coverage.mjs", - "tests/public/foundation-links.test.mjs", - "tests/public/foundation-types.ts", - "tests/public/foundation.test.mjs", + "tests/StructureTests/CompatibilityCases.cs", + "tests/StructureTests/FoundationCases.cs", + "tests/StructureTests/FoundationLinkCases.cs", + "tests/StructureTests/PreviousClient/PreviousClient.csproj", + "tests/StructureTests/PreviousClient/Program.cs", + "tests/StructureTests/PreviousClient/packages.lock.json", + "tests/StructureTests/Program.cs", + "tests/StructureTests/SemanticHashCases.cs", + "tests/StructureTests/StructureTests.csproj", + "tests/StructureTests/packages.lock.json", "tests/public/HelloClient/HelloClient.csproj", - "tests/public/HelloClient/packages.lock.json", "tests/public/HelloClient/Program.cs", + "tests/public/HelloClient/packages.lock.json", "tests/public/HelloHost/HelloHost.csproj", - "tests/public/HelloHost/packages.lock.json", "tests/public/HelloHost/Program.cs", + "tests/public/HelloHost/packages.lock.json", "tests/public/KotlinConnectClient/build.gradle.kts", "tests/public/KotlinConnectClient/gradle.lockfile", "tests/public/KotlinConnectClient/gradle/verification-metadata.xml", "tests/public/KotlinConnectClient/settings-gradle.lockfile", "tests/public/KotlinConnectClient/settings.gradle.kts", "tests/public/KotlinConnectClient/src/main/kotlin/io/github/arcforges/tests/Main.kt", - "tests/public/package-consumer.ts", - "tests/public/serialization.test.mjs", - "tests/public/SerializationProbe/packages.lock.json", "tests/public/SerializationProbe/Program.cs", "tests/public/SerializationProbe/SerializationProbe.csproj", + "tests/public/SerializationProbe/packages.lock.json", + "tests/public/foundation-coverage.mjs", + "tests/public/foundation-links.test.mjs", + "tests/public/foundation-types.ts", + "tests/public/foundation.test.mjs", + "tests/public/package-consumer.ts", + "tests/public/semantic-hash.test.mjs", + "tests/public/serialization.test.mjs", "tests/public/structure.test.mjs", "tests/public/wire.test.mjs", - "tests/StructureTests/FoundationCases.cs", - "tests/StructureTests/FoundationLinkCases.cs", - "tests/StructureTests/packages.lock.json", - "tests/StructureTests/Program.cs", - "tests/StructureTests/StructureTests.csproj", "tests/tooling/contract_access.test.mjs", "tests/tooling/test_artifact_retirement.py", "tests/tooling/test_build_identity.py", + "tests/tooling/test_compatibility_matrix.py", "tests/tooling/test_contract_identity.py", "tests/tooling/test_dependency_admission.py", "tests/tooling/test_documentation_provenance.py", @@ -368,345 +383,345 @@ "gradlew": "gradle-wrapper-9-7-1-r1", "gradlew.bat": "gradle-wrapper-9-7-1-r1", "public/LICENSE": "canonical-apache-licence-r1", - "src/internal/dotnet/ArcForges.Contracts.CloudInternal/Generated/Proto/Operator.cs": "contract-bindings-r6", - "src/internal/dotnet/ArcForges.Contracts.CloudInternal/Generated/Shapes/CommitReceipt.g.cs": "contract-bindings-r6", - "src/internal/dotnet/ArcForges.Contracts.CloudInternal/Generated/Shapes/CommitReceiptValidator.g.cs": "contract-bindings-r6", - "src/internal/dotnet/ArcForges.Contracts.CloudInternal/Generated/Shapes/ProtoValidation.g.cs": "contract-bindings-r6", - "src/internal/dotnet/ArcForges.Contracts.LocalRpc.Chat/Generated/Proto/Chat.cs": "contract-bindings-r6", - "src/internal/dotnet/ArcForges.Contracts.LocalRpc.Chat/Generated/Shapes/ProtoValidation.g.cs": "contract-bindings-r6", - "src/internal/dotnet/ArcForges.Contracts.LocalRpc.Platform/Generated/Proto/Platform.cs": "contract-bindings-r6", - "src/internal/dotnet/ArcForges.Contracts.LocalRpc.Platform/Generated/Shapes/ProtoValidation.g.cs": "contract-bindings-r6", - "src/internal/dotnet/ArcForges.Contracts.LocalRpc.Sandbox/Generated/Proto/Sandbox.cs": "contract-bindings-r6", - "src/internal/dotnet/ArcForges.Contracts.LocalRpc.Sandbox/Generated/Shapes/ProtoValidation.g.cs": "contract-bindings-r6", - "src/internal/dotnet/ArcForges.Contracts.LocalRpc.Scope/Generated/Proto/Scope.cs": "contract-bindings-r6", - "src/internal/dotnet/ArcForges.Contracts.LocalRpc.Scope/Generated/Shapes/ProtoValidation.g.cs": "contract-bindings-r6", - "src/internal/ts/ai-internal/src/gen/http.ts": "contract-bindings-r6", - "src/internal/ts/ai-internal/src/shapes/gen/CommitReceipt.ts": "contract-bindings-r6", - "src/internal/ts/operator-client/src/gen/arcforges/operator/v1/operator_pb.ts": "contract-bindings-r6", - "src/internal/ts/operator-client/src/index.ts": "contract-bindings-r6", - "src/internal/ts/operator-client/src/shapes/gen/proto.ts": "contract-bindings-r6", + "src/internal/dotnet/ArcForges.Contracts.CloudInternal/Generated/Proto/Operator.cs": "con17-semantic-export-r1", + "src/internal/dotnet/ArcForges.Contracts.CloudInternal/Generated/Shapes/CommitReceipt.g.cs": "con17-semantic-export-r1", + "src/internal/dotnet/ArcForges.Contracts.CloudInternal/Generated/Shapes/CommitReceiptValidator.g.cs": "con17-semantic-export-r1", + "src/internal/dotnet/ArcForges.Contracts.CloudInternal/Generated/Shapes/ProtoValidation.g.cs": "con17-semantic-export-r1", + "src/internal/dotnet/ArcForges.Contracts.LocalRpc.Chat/Generated/Proto/Chat.cs": "con17-semantic-export-r1", + "src/internal/dotnet/ArcForges.Contracts.LocalRpc.Chat/Generated/Shapes/ProtoValidation.g.cs": "con17-semantic-export-r1", + "src/internal/dotnet/ArcForges.Contracts.LocalRpc.Platform/Generated/Proto/Platform.cs": "con17-semantic-export-r1", + "src/internal/dotnet/ArcForges.Contracts.LocalRpc.Platform/Generated/Shapes/ProtoValidation.g.cs": "con17-semantic-export-r1", + "src/internal/dotnet/ArcForges.Contracts.LocalRpc.Sandbox/Generated/Proto/Sandbox.cs": "con17-semantic-export-r1", + "src/internal/dotnet/ArcForges.Contracts.LocalRpc.Sandbox/Generated/Shapes/ProtoValidation.g.cs": "con17-semantic-export-r1", + "src/internal/dotnet/ArcForges.Contracts.LocalRpc.Scope/Generated/Proto/Scope.cs": "con17-semantic-export-r1", + "src/internal/dotnet/ArcForges.Contracts.LocalRpc.Scope/Generated/Shapes/ProtoValidation.g.cs": "con17-semantic-export-r1", + "src/internal/ts/ai-internal/src/gen/http.ts": "con17-semantic-export-r1", + "src/internal/ts/ai-internal/src/shapes/gen/CommitReceipt.ts": "con17-semantic-export-r1", + "src/internal/ts/operator-client/src/gen/arcforges/operator/v1/operator_pb.ts": "con17-semantic-export-r1", + "src/internal/ts/operator-client/src/index.ts": "con17-semantic-export-r1", + "src/internal/ts/operator-client/src/shapes/gen/proto.ts": "con17-semantic-export-r1", "src/public/LICENSE": "canonical-apache-licence-r1", - "src/public/dotnet/ArcForges.Contracts.Events/Generated/Proto/Events.cs": "contract-bindings-r6", - "src/public/dotnet/ArcForges.Contracts.Foundation/Generated/Proto/Foundation.cs": "contract-bindings-r6", - "src/public/dotnet/ArcForges.Contracts.Foundation/Generated/Values/Identifiers.g.cs": "contract-bindings-r6", - "src/public/dotnet/ArcForges.Contracts.PublicApi/Generated/Proto/Content.cs": "contract-bindings-r6", - "src/public/dotnet/ArcForges.Contracts.PublicApi/Generated/Proto/Hello.cs": "contract-bindings-r6", - "src/public/dotnet/ArcForges.Contracts.PublicApi/Generated/Proto/HelloGrpc.cs": "contract-bindings-r6", - "src/public/dotnet/ArcForges.Contracts.PublicApi/Generated/Shapes/PartReceipt.g.cs": "contract-bindings-r6", - "src/public/dotnet/ArcForges.Contracts.PublicApi/Generated/Values/Identifiers.g.cs": "contract-bindings-r6", - "src/public/dotnet/ArcForges.Contracts.Validation/Generated/Shapes/PackageInventoryValidator.g.cs": "contract-bindings-r6", - "src/public/dotnet/ArcForges.Contracts.Validation/Generated/Shapes/PartReceiptValidator.g.cs": "contract-bindings-r6", - "src/public/dotnet/ArcForges.Contracts.Validation/Generated/Shapes/ProtoValidation.g.cs": "contract-bindings-r6", - "src/public/dotnet/ArcForges.Sdk.Contracts/Generated/Proto/Extensions.cs": "contract-bindings-r6", - "src/public/dotnet/ArcForges.Sdk.Contracts/Generated/Proto/ExtensionsGrpc.cs": "contract-bindings-r6", - "src/public/dotnet/ArcForges.Sdk.Contracts/Generated/Shapes/PackageInventory.g.cs": "contract-bindings-r6", - "src/public/kotlin/contracts-connect-client/generated/kotlin/io/github/arcforges/contracts/hello/v1/HelloServiceClient.kt": "contract-bindings-r6", - "src/public/kotlin/contracts-connect-client/generated/kotlin/io/github/arcforges/contracts/hello/v1/HelloServiceClientInterface.kt": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/events/v1/EntitlementChanged.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/events/v1/EntitlementChangedOrBuilder.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/events/v1/EventsProto.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/ActorChain.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/ActorChainOrBuilder.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/AggregateRef.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/AggregateRefOrBuilder.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/ApplicationScope.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/ApplicationScopeOrBuilder.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/ArcError.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/ArcErrorOrBuilder.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/ArtifactRef.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/ArtifactRefOrBuilder.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/BlobRef.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/BlobRefOrBuilder.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/ByteRange.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/ByteRangeOrBuilder.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/ContentOrigin.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/ContentOriginOrBuilder.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/Decimal.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/DecimalOrBuilder.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/EffectCertainty.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/ErrorCategory.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/ErrorDetails.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/ErrorDetailsOrBuilder.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/FoundationProto.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/Id.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/IdOrBuilder.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/Instant.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/InstantOrBuilder.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/LimitFailure.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/LimitFailureOrBuilder.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/MediaRange.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/MediaRangeOrBuilder.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/MediaTime.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/MediaTimeOrBuilder.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/NativeContentRev.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/NativeContentRevOrBuilder.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/PageRequest.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/PageRequestOrBuilder.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/PageState.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/PageStateOrBuilder.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/Rational.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/RationalOrBuilder.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/Receipt.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/ReceiptOrBuilder.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/RequestMeta.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/RequestMetaOrBuilder.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/ResourceAvailability.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/ResourceRef.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/ResourceRefOrBuilder.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/ResourceVersionRef.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/ResourceVersionRefOrBuilder.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/ResponseMeta.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/ResponseMetaOrBuilder.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/RetryAdvice.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/RetryAdviceOrBuilder.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/RetryMode.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/Revision.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/RevisionConflict.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/RevisionConflictOrBuilder.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/RevisionOrBuilder.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/StateFailure.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/StateFailureOrBuilder.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/TimeRangeUtc.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/TimeRangeUtcOrBuilder.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/VersionFailure.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/VersionFailureOrBuilder.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/VersionedRef.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/VersionedRefOrBuilder.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/hello/v1/HelloProto.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/hello/v1/SayHelloRequest.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/hello/v1/SayHelloRequestOrBuilder.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/hello/v1/SayHelloResponse.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/hello/v1/SayHelloResponseOrBuilder.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/AgentProfile.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/AgentProfileOrBuilder.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/AggregateBody.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/AggregateBodyOrBuilder.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/AlignmentSpec.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/AlignmentSpecOrBuilder.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/AutomationSpec.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/AutomationSpecOrBuilder.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/AutomationView.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/AutomationViewOrBuilder.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/Calibration.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/CalibrationOrBuilder.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/CapabilityArguments.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/CapabilityArgumentsOrBuilder.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/CapabilityResult.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/CapabilityResultOrBuilder.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/CaptureMetadata.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/CaptureMetadataOrBuilder.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ChannelDefinition.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ChannelDefinitionOrBuilder.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ChatProjectRecord.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ChatProjectRecordOrBuilder.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ChecksumSpec.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ChecksumSpecOrBuilder.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ContentProto.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ContextLifetime.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ContextRef.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ContextRefOrBuilder.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ContextSelector.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ContextSelectorOrBuilder.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ControlKind.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ControlProgress.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ControlProgressOrBuilder.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ControlState.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ConversationBody.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ConversationBodyOrBuilder.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ConversationView.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ConversationViewOrBuilder.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/CursorResult.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/CursorResultOrBuilder.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/CursorSpec.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/CursorSpecOrBuilder.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/EphemeralSelection.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/EphemeralSelectionOrBuilder.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/EventTrigger.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/EventTriggerOrBuilder.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/FamilyResult.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/FamilyResultOrBuilder.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/FrameConfiguration.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/FrameConfigurationOrBuilder.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/FrameField.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/FrameFieldOrBuilder.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/HistoryMode.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/MeasurementRequest.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/MeasurementRequestOrBuilder.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/MeasurementResult.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/MeasurementResultOrBuilder.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/MeasurementSource.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/MeasurementSourceOrBuilder.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/MeasurementThreshold.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/MeasurementThresholdOrBuilder.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/MeasurementValue.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/MeasurementValueOrBuilder.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/MeasurementWindow.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/MeasurementWindowOrBuilder.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/MemoryRecord.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/MemoryRecordOrBuilder.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/MessageDraft.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/MessageDraftOrBuilder.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/MessagePart.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/MessagePartOrBuilder.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/MessageView.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/MessageViewOrBuilder.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/MetadataEntry.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/MetadataEntryOrBuilder.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/MetadataScalar.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/MetadataScalarOrBuilder.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/PreferenceRecord.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/PreferenceRecordOrBuilder.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/SampleRange.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/SampleRangeOrBuilder.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ScheduleSpec.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ScheduleSpecOrBuilder.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ScopeAnnotation.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ScopeAnnotationOrBuilder.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ScopeConfiguration.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ScopeConfigurationOrBuilder.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ScopeFinding.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ScopeFindingOrBuilder.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ScopeMetadata.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ScopeMetadataOrBuilder.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ScopeSelection.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ScopeSelectionOrBuilder.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ScopeTime.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ScopeTimeOrBuilder.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/SelectedSample.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/SelectedSampleOrBuilder.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/SkillRecord.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/SkillRecordOrBuilder.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/SourceConsentRef.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/SourceConsentRefOrBuilder.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/StructuredValue.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/StructuredValueOrBuilder.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/TaskReasonFacet.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/TaskSnapshot.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/TaskSnapshotOrBuilder.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/TaskState.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ToolProposal.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ToolProposalOrBuilder.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ToolResult.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ToolResultOrBuilder.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/TriggerConfiguration.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/TriggerConfigurationOrBuilder.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/TriggerSpec.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/TriggerSpecOrBuilder.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/TurnInput.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/TurnInputOrBuilder.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ValueEntry.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ValueEntryOrBuilder.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ValueList.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ValueListOrBuilder.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ValueRecord.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ValueRecordOrBuilder.java": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/events/v1/EntitlementChangedKt.kt": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/events/v1/EventsProtoKt.proto.kt": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/foundation/v1/ActorChainKt.kt": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/foundation/v1/AggregateRefKt.kt": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/foundation/v1/ApplicationScopeKt.kt": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/foundation/v1/ArcErrorKt.kt": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/foundation/v1/ArtifactRefKt.kt": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/foundation/v1/BlobRefKt.kt": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/foundation/v1/ByteRangeKt.kt": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/foundation/v1/ContentOriginKt.kt": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/foundation/v1/DecimalKt.kt": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/foundation/v1/ErrorDetailsKt.kt": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/foundation/v1/FoundationProtoKt.proto.kt": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/foundation/v1/IdKt.kt": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/foundation/v1/InstantKt.kt": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/foundation/v1/LimitFailureKt.kt": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/foundation/v1/MediaRangeKt.kt": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/foundation/v1/MediaTimeKt.kt": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/foundation/v1/NativeContentRevKt.kt": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/foundation/v1/PageRequestKt.kt": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/foundation/v1/PageStateKt.kt": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/foundation/v1/RationalKt.kt": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/foundation/v1/ReceiptKt.kt": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/foundation/v1/RequestMetaKt.kt": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/foundation/v1/ResourceRefKt.kt": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/foundation/v1/ResourceVersionRefKt.kt": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/foundation/v1/ResponseMetaKt.kt": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/foundation/v1/RetryAdviceKt.kt": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/foundation/v1/RevisionConflictKt.kt": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/foundation/v1/RevisionKt.kt": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/foundation/v1/StateFailureKt.kt": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/foundation/v1/TimeRangeUtcKt.kt": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/foundation/v1/VersionFailureKt.kt": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/foundation/v1/VersionedRefKt.kt": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/hello/v1/HelloProtoKt.proto.kt": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/hello/v1/SayHelloRequestKt.kt": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/hello/v1/SayHelloResponseKt.kt": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/AgentProfileKt.kt": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/AggregateBodyKt.kt": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/AlignmentSpecKt.kt": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/AutomationSpecKt.kt": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/AutomationViewKt.kt": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/CalibrationKt.kt": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/CapabilityArgumentsKt.kt": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/CapabilityResultKt.kt": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/CaptureMetadataKt.kt": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/ChannelDefinitionKt.kt": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/ChatProjectRecordKt.kt": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/ChecksumSpecKt.kt": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/ContentProtoKt.proto.kt": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/ContextRefKt.kt": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/ContextSelectorKt.kt": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/ControlProgressKt.kt": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/ConversationBodyKt.kt": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/ConversationViewKt.kt": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/CursorResultKt.kt": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/CursorSpecKt.kt": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/EphemeralSelectionKt.kt": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/EventTriggerKt.kt": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/FamilyResultKt.kt": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/FrameConfigurationKt.kt": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/FrameFieldKt.kt": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/MeasurementRequestKt.kt": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/MeasurementResultKt.kt": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/MeasurementSourceKt.kt": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/MeasurementThresholdKt.kt": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/MeasurementValueKt.kt": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/MeasurementWindowKt.kt": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/MemoryRecordKt.kt": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/MessageDraftKt.kt": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/MessagePartKt.kt": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/MessageViewKt.kt": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/MetadataEntryKt.kt": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/MetadataScalarKt.kt": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/PreferenceRecordKt.kt": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/SampleRangeKt.kt": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/ScheduleSpecKt.kt": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/ScopeAnnotationKt.kt": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/ScopeConfigurationKt.kt": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/ScopeFindingKt.kt": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/ScopeMetadataKt.kt": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/ScopeSelectionKt.kt": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/ScopeTimeKt.kt": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/SelectedSampleKt.kt": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/SkillRecordKt.kt": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/SourceConsentRefKt.kt": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/StructuredValueKt.kt": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/TaskSnapshotKt.kt": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/ToolProposalKt.kt": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/ToolResultKt.kt": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/TriggerConfigurationKt.kt": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/TriggerSpecKt.kt": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/TurnInputKt.kt": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/ValueEntryKt.kt": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/ValueListKt.kt": "contract-bindings-r6", - "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/ValueRecordKt.kt": "contract-bindings-r6", - "src/public/ts/api-client/src/gen/http.ts": "contract-bindings-r6", - "src/public/ts/api-client/src/shapes/gen/PackageInventory.ts": "contract-bindings-r6", - "src/public/ts/api-client/src/shapes/gen/PartReceipt.ts": "contract-bindings-r6", - "src/public/ts/contract-fixtures/src/index.ts": "contract-bindings-r6", - "src/public/ts/proto/src/gen/arcforges/events/v1/events_pb.ts": "contract-bindings-r6", - "src/public/ts/proto/src/gen/arcforges/foundation/v1/foundation_pb.ts": "contract-bindings-r6", - "src/public/ts/proto/src/gen/arcforges/hello/v1/hello_pb.ts": "contract-bindings-r6", - "src/public/ts/proto/src/gen/arcforges/publicapi/v1/content_pb.ts": "contract-bindings-r6", - "src/public/ts/proto/src/index.ts": "contract-bindings-r6", - "src/public/ts/proto/src/shapes/gen/proto.ts": "contract-bindings-r6", - "src/public/ts/proto/src/values/gen/identifiers.ts": "contract-bindings-r6", + "src/public/dotnet/ArcForges.Contracts.Events/Generated/Proto/Events.cs": "con17-semantic-export-r1", + "src/public/dotnet/ArcForges.Contracts.Foundation/Generated/Proto/Foundation.cs": "con17-semantic-export-r1", + "src/public/dotnet/ArcForges.Contracts.Foundation/Generated/Values/Identifiers.g.cs": "con17-semantic-export-r1", + "src/public/dotnet/ArcForges.Contracts.PublicApi/Generated/Proto/Content.cs": "con17-semantic-export-r1", + "src/public/dotnet/ArcForges.Contracts.PublicApi/Generated/Proto/Hello.cs": "con17-semantic-export-r1", + "src/public/dotnet/ArcForges.Contracts.PublicApi/Generated/Proto/HelloGrpc.cs": "con17-semantic-export-r1", + "src/public/dotnet/ArcForges.Contracts.PublicApi/Generated/Shapes/PartReceipt.g.cs": "con17-semantic-export-r1", + "src/public/dotnet/ArcForges.Contracts.PublicApi/Generated/Values/Identifiers.g.cs": "con17-semantic-export-r1", + "src/public/dotnet/ArcForges.Contracts.Validation/Generated/Shapes/PackageInventoryValidator.g.cs": "con17-semantic-export-r1", + "src/public/dotnet/ArcForges.Contracts.Validation/Generated/Shapes/PartReceiptValidator.g.cs": "con17-semantic-export-r1", + "src/public/dotnet/ArcForges.Contracts.Validation/Generated/Shapes/ProtoValidation.g.cs": "con17-semantic-export-r1", + "src/public/dotnet/ArcForges.Sdk.Contracts/Generated/Proto/Extensions.cs": "con17-semantic-export-r1", + "src/public/dotnet/ArcForges.Sdk.Contracts/Generated/Proto/ExtensionsGrpc.cs": "con17-semantic-export-r1", + "src/public/dotnet/ArcForges.Sdk.Contracts/Generated/Shapes/PackageInventory.g.cs": "con17-semantic-export-r1", + "src/public/kotlin/contracts-connect-client/generated/kotlin/io/github/arcforges/contracts/hello/v1/HelloServiceClient.kt": "con17-semantic-export-r1", + "src/public/kotlin/contracts-connect-client/generated/kotlin/io/github/arcforges/contracts/hello/v1/HelloServiceClientInterface.kt": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/events/v1/EntitlementChanged.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/events/v1/EntitlementChangedOrBuilder.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/events/v1/EventsProto.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/ActorChain.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/ActorChainOrBuilder.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/AggregateRef.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/AggregateRefOrBuilder.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/ApplicationScope.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/ApplicationScopeOrBuilder.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/ArcError.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/ArcErrorOrBuilder.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/ArtifactRef.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/ArtifactRefOrBuilder.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/BlobRef.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/BlobRefOrBuilder.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/ByteRange.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/ByteRangeOrBuilder.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/ContentOrigin.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/ContentOriginOrBuilder.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/Decimal.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/DecimalOrBuilder.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/EffectCertainty.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/ErrorCategory.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/ErrorDetails.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/ErrorDetailsOrBuilder.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/FoundationProto.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/Id.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/IdOrBuilder.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/Instant.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/InstantOrBuilder.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/LimitFailure.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/LimitFailureOrBuilder.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/MediaRange.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/MediaRangeOrBuilder.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/MediaTime.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/MediaTimeOrBuilder.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/NativeContentRev.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/NativeContentRevOrBuilder.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/PageRequest.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/PageRequestOrBuilder.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/PageState.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/PageStateOrBuilder.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/Rational.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/RationalOrBuilder.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/Receipt.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/ReceiptOrBuilder.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/RequestMeta.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/RequestMetaOrBuilder.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/ResourceAvailability.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/ResourceRef.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/ResourceRefOrBuilder.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/ResourceVersionRef.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/ResourceVersionRefOrBuilder.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/ResponseMeta.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/ResponseMetaOrBuilder.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/RetryAdvice.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/RetryAdviceOrBuilder.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/RetryMode.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/Revision.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/RevisionConflict.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/RevisionConflictOrBuilder.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/RevisionOrBuilder.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/StateFailure.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/StateFailureOrBuilder.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/TimeRangeUtc.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/TimeRangeUtcOrBuilder.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/VersionFailure.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/VersionFailureOrBuilder.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/VersionedRef.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/VersionedRefOrBuilder.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/hello/v1/HelloProto.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/hello/v1/SayHelloRequest.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/hello/v1/SayHelloRequestOrBuilder.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/hello/v1/SayHelloResponse.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/hello/v1/SayHelloResponseOrBuilder.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/AgentProfile.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/AgentProfileOrBuilder.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/AggregateBody.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/AggregateBodyOrBuilder.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/AlignmentSpec.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/AlignmentSpecOrBuilder.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/AutomationSpec.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/AutomationSpecOrBuilder.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/AutomationView.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/AutomationViewOrBuilder.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/Calibration.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/CalibrationOrBuilder.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/CapabilityArguments.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/CapabilityArgumentsOrBuilder.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/CapabilityResult.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/CapabilityResultOrBuilder.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/CaptureMetadata.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/CaptureMetadataOrBuilder.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ChannelDefinition.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ChannelDefinitionOrBuilder.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ChatProjectRecord.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ChatProjectRecordOrBuilder.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ChecksumSpec.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ChecksumSpecOrBuilder.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ContentProto.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ContextLifetime.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ContextRef.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ContextRefOrBuilder.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ContextSelector.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ContextSelectorOrBuilder.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ControlKind.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ControlProgress.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ControlProgressOrBuilder.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ControlState.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ConversationBody.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ConversationBodyOrBuilder.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ConversationView.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ConversationViewOrBuilder.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/CursorResult.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/CursorResultOrBuilder.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/CursorSpec.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/CursorSpecOrBuilder.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/EphemeralSelection.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/EphemeralSelectionOrBuilder.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/EventTrigger.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/EventTriggerOrBuilder.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/FamilyResult.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/FamilyResultOrBuilder.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/FrameConfiguration.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/FrameConfigurationOrBuilder.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/FrameField.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/FrameFieldOrBuilder.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/HistoryMode.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/MeasurementRequest.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/MeasurementRequestOrBuilder.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/MeasurementResult.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/MeasurementResultOrBuilder.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/MeasurementSource.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/MeasurementSourceOrBuilder.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/MeasurementThreshold.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/MeasurementThresholdOrBuilder.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/MeasurementValue.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/MeasurementValueOrBuilder.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/MeasurementWindow.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/MeasurementWindowOrBuilder.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/MemoryRecord.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/MemoryRecordOrBuilder.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/MessageDraft.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/MessageDraftOrBuilder.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/MessagePart.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/MessagePartOrBuilder.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/MessageView.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/MessageViewOrBuilder.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/MetadataEntry.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/MetadataEntryOrBuilder.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/MetadataScalar.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/MetadataScalarOrBuilder.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/PreferenceRecord.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/PreferenceRecordOrBuilder.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/SampleRange.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/SampleRangeOrBuilder.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ScheduleSpec.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ScheduleSpecOrBuilder.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ScopeAnnotation.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ScopeAnnotationOrBuilder.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ScopeConfiguration.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ScopeConfigurationOrBuilder.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ScopeFinding.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ScopeFindingOrBuilder.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ScopeMetadata.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ScopeMetadataOrBuilder.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ScopeSelection.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ScopeSelectionOrBuilder.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ScopeTime.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ScopeTimeOrBuilder.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/SelectedSample.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/SelectedSampleOrBuilder.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/SkillRecord.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/SkillRecordOrBuilder.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/SourceConsentRef.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/SourceConsentRefOrBuilder.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/StructuredValue.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/StructuredValueOrBuilder.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/TaskReasonFacet.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/TaskSnapshot.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/TaskSnapshotOrBuilder.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/TaskState.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ToolProposal.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ToolProposalOrBuilder.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ToolResult.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ToolResultOrBuilder.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/TriggerConfiguration.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/TriggerConfigurationOrBuilder.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/TriggerSpec.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/TriggerSpecOrBuilder.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/TurnInput.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/TurnInputOrBuilder.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ValueEntry.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ValueEntryOrBuilder.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ValueList.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ValueListOrBuilder.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ValueRecord.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ValueRecordOrBuilder.java": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/events/v1/EntitlementChangedKt.kt": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/events/v1/EventsProtoKt.proto.kt": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/foundation/v1/ActorChainKt.kt": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/foundation/v1/AggregateRefKt.kt": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/foundation/v1/ApplicationScopeKt.kt": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/foundation/v1/ArcErrorKt.kt": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/foundation/v1/ArtifactRefKt.kt": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/foundation/v1/BlobRefKt.kt": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/foundation/v1/ByteRangeKt.kt": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/foundation/v1/ContentOriginKt.kt": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/foundation/v1/DecimalKt.kt": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/foundation/v1/ErrorDetailsKt.kt": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/foundation/v1/FoundationProtoKt.proto.kt": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/foundation/v1/IdKt.kt": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/foundation/v1/InstantKt.kt": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/foundation/v1/LimitFailureKt.kt": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/foundation/v1/MediaRangeKt.kt": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/foundation/v1/MediaTimeKt.kt": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/foundation/v1/NativeContentRevKt.kt": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/foundation/v1/PageRequestKt.kt": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/foundation/v1/PageStateKt.kt": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/foundation/v1/RationalKt.kt": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/foundation/v1/ReceiptKt.kt": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/foundation/v1/RequestMetaKt.kt": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/foundation/v1/ResourceRefKt.kt": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/foundation/v1/ResourceVersionRefKt.kt": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/foundation/v1/ResponseMetaKt.kt": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/foundation/v1/RetryAdviceKt.kt": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/foundation/v1/RevisionConflictKt.kt": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/foundation/v1/RevisionKt.kt": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/foundation/v1/StateFailureKt.kt": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/foundation/v1/TimeRangeUtcKt.kt": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/foundation/v1/VersionFailureKt.kt": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/foundation/v1/VersionedRefKt.kt": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/hello/v1/HelloProtoKt.proto.kt": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/hello/v1/SayHelloRequestKt.kt": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/hello/v1/SayHelloResponseKt.kt": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/AgentProfileKt.kt": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/AggregateBodyKt.kt": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/AlignmentSpecKt.kt": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/AutomationSpecKt.kt": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/AutomationViewKt.kt": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/CalibrationKt.kt": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/CapabilityArgumentsKt.kt": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/CapabilityResultKt.kt": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/CaptureMetadataKt.kt": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/ChannelDefinitionKt.kt": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/ChatProjectRecordKt.kt": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/ChecksumSpecKt.kt": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/ContentProtoKt.proto.kt": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/ContextRefKt.kt": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/ContextSelectorKt.kt": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/ControlProgressKt.kt": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/ConversationBodyKt.kt": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/ConversationViewKt.kt": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/CursorResultKt.kt": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/CursorSpecKt.kt": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/EphemeralSelectionKt.kt": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/EventTriggerKt.kt": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/FamilyResultKt.kt": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/FrameConfigurationKt.kt": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/FrameFieldKt.kt": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/MeasurementRequestKt.kt": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/MeasurementResultKt.kt": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/MeasurementSourceKt.kt": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/MeasurementThresholdKt.kt": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/MeasurementValueKt.kt": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/MeasurementWindowKt.kt": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/MemoryRecordKt.kt": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/MessageDraftKt.kt": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/MessagePartKt.kt": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/MessageViewKt.kt": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/MetadataEntryKt.kt": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/MetadataScalarKt.kt": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/PreferenceRecordKt.kt": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/SampleRangeKt.kt": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/ScheduleSpecKt.kt": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/ScopeAnnotationKt.kt": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/ScopeConfigurationKt.kt": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/ScopeFindingKt.kt": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/ScopeMetadataKt.kt": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/ScopeSelectionKt.kt": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/ScopeTimeKt.kt": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/SelectedSampleKt.kt": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/SkillRecordKt.kt": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/SourceConsentRefKt.kt": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/StructuredValueKt.kt": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/TaskSnapshotKt.kt": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/ToolProposalKt.kt": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/ToolResultKt.kt": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/TriggerConfigurationKt.kt": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/TriggerSpecKt.kt": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/TurnInputKt.kt": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/ValueEntryKt.kt": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/ValueListKt.kt": "con17-semantic-export-r1", + "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/ValueRecordKt.kt": "con17-semantic-export-r1", + "src/public/ts/api-client/src/gen/http.ts": "con17-semantic-export-r1", + "src/public/ts/api-client/src/shapes/gen/PackageInventory.ts": "con17-semantic-export-r1", + "src/public/ts/api-client/src/shapes/gen/PartReceipt.ts": "con17-semantic-export-r1", + "src/public/ts/contract-fixtures/src/index.ts": "con17-semantic-export-r1", + "src/public/ts/proto/src/gen/arcforges/events/v1/events_pb.ts": "con17-semantic-export-r1", + "src/public/ts/proto/src/gen/arcforges/foundation/v1/foundation_pb.ts": "con17-semantic-export-r1", + "src/public/ts/proto/src/gen/arcforges/hello/v1/hello_pb.ts": "con17-semantic-export-r1", + "src/public/ts/proto/src/gen/arcforges/publicapi/v1/content_pb.ts": "con17-semantic-export-r1", + "src/public/ts/proto/src/index.ts": "con17-semantic-export-r1", + "src/public/ts/proto/src/shapes/gen/proto.ts": "con17-semantic-export-r1", + "src/public/ts/proto/src/values/gen/identifiers.ts": "con17-semantic-export-r1", "tests/public/LICENSE": "canonical-apache-licence-r1", "third-party/dokka/array-buffer-byte-length-LICENSE.txt": "dokka-array-buffer-byte-length-licence-r1", "third-party/dokka/available-typed-arrays-LICENSE.txt": "dokka-available-typed-arrays-licence-r1", @@ -792,9 +807,11 @@ "third-party/dokka/which-collection-LICENSE.txt": "dokka-which-collection-licence-r1", "third-party/dokka/which-typed-array-LICENSE.txt": "dokka-which-typed-array-licence-r1", "third-party/protobuf-generator-LICENSE.txt": "protobuf-generator-licence-r1", - "src/public/dotnet/ArcForges.Contracts.PublicApi/Generated/Services/ContractServices.g.cs": "contract-bindings-r6", - "src/public/dotnet/ArcForges.Sdk.Contracts/Generated/Services/ContractServices.g.cs": "contract-bindings-r6", - "src/public/ts/proto/src/services/gen/catalog.ts": "contract-bindings-r6" + "src/public/dotnet/ArcForges.Contracts.PublicApi/Generated/Services/ContractServices.g.cs": "con17-semantic-export-r1", + "src/public/dotnet/ArcForges.Sdk.Contracts/Generated/Services/ContractServices.g.cs": "con17-semantic-export-r1", + "src/public/ts/proto/src/services/gen/catalog.ts": "con17-semantic-export-r1", + "eng/compatibility/foundation-1.0.0-ci.113.1.binpb": "con17-published-descriptors-r1", + "eng/compatibility/public-api-1.0.0-ci.113.1.binpb": "con17-published-descriptors-r1" }, "artifacts": ["dokka-documentation-resources-r8"] } diff --git a/eng/provenance/records/con17-published-descriptors-r1.json b/eng/provenance/records/con17-published-descriptors-r1.json index 55b2524a..5db06910 100644 --- a/eng/provenance/records/con17-published-descriptors-r1.json +++ b/eng/provenance/records/con17-published-descriptors-r1.json @@ -137,7 +137,7 @@ "reviewedOn": "2026-09-27", "decision": "approved", "rationale": "Reuse exact first-party Apache-2.0 descriptor bytes from the published baseline required by CON.17. Preserve original generator attribution. No retired contract is reintroduced as a production export.", - "baselineCommit": "792306133ee1adcfd93e533c53ff3d4381c1c66a", + "baselineCommit": "b323a494a9a4ab83832050fb52488407d8f51264", "reconciliation": false }, "supersedes": null, diff --git a/eng/provenance/records/con17-semantic-export-r1.json b/eng/provenance/records/con17-semantic-export-r1.json index 7d2f24bd..31008d35 100644 --- a/eng/provenance/records/con17-semantic-export-r1.json +++ b/eng/provenance/records/con17-semantic-export-r1.json @@ -3,7 +3,7 @@ "id": "con17-semantic-export-r1", "kind": "generated", "sourceRepository": "https://github.com/ArcForges/Contracts", - "sourceCommit": "792306133ee1adcfd93e533c53ff3d4381c1c66a", + "sourceCommit": "b323a494a9a4ab83832050fb52488407d8f51264", "sourcePaths": [ "eng/contract-packages.json", "eng/contracts.py", @@ -14,11 +14,9 @@ "fixtures/public/wp03-02.json", "internal/ai-http/v1/schema.json", "internal/proto/arcforges/local/chat/v1/chat.proto", - "internal/proto/arcforges/local/notes/v1/notes.proto", "internal/proto/arcforges/local/platform/v1/platform.proto", "internal/proto/arcforges/local/sandbox/v1/sandbox.proto", "internal/proto/arcforges/local/scope/v1/scope.proto", - "internal/proto/arcforges/local/slate/v1/slate.proto", "internal/proto/arcforges/operator/v1/operator.proto", "internal/proto/constraints.json", "public/http/v1/inventory.schema.json", @@ -82,16 +80,6 @@ "sha256": "679c535bc8032fa6cf296fa7b93b338a9a33db8d6e767bf88fd21df981357d8f", "normalization": "lf" }, - { - "path": "src/internal/dotnet/ArcForges.Contracts.LocalRpc.Notes/Generated/Proto/Notes.cs", - "sha256": "0d16902d575c5201f4f25b2a61ed9aa3229bba44969d356cb3066fbef35d1c14", - "normalization": "lf" - }, - { - "path": "src/internal/dotnet/ArcForges.Contracts.LocalRpc.Notes/Generated/Shapes/ProtoValidation.g.cs", - "sha256": "7b857438632df1763e19eead876654da953ccf15506315b34387138903997b41", - "normalization": "lf" - }, { "path": "src/internal/dotnet/ArcForges.Contracts.LocalRpc.Platform/Generated/Proto/Platform.cs", "sha256": "22d31db7bb514b215d5aa20e6cd230aed7ede730d303bca9670d90a3f05a56f1", @@ -122,16 +110,6 @@ "sha256": "c035add35c4ab044e73a35d79c2175ac06ebd00ed4441e87cf3de448c163ce95", "normalization": "lf" }, - { - "path": "src/internal/dotnet/ArcForges.Contracts.LocalRpc.Slate/Generated/Proto/Slate.cs", - "sha256": "a08a43fe85bafe7a20c819a5befd995e62cfa690f6e24499b6ea715eb8309749", - "normalization": "lf" - }, - { - "path": "src/internal/dotnet/ArcForges.Contracts.LocalRpc.Slate/Generated/Shapes/ProtoValidation.g.cs", - "sha256": "749be308f139c5f40b2206fa3dab34ba558196623ecdca422a6bef4ddfdbef6a", - "normalization": "lf" - }, { "path": "src/internal/ts/ai-internal/src/gen/http.ts", "sha256": "2f77ad4309a03b099db14173dc84ad79c2eb05acc7af908f1bd307c5e1be6094", @@ -154,7 +132,7 @@ }, { "path": "src/internal/ts/operator-client/src/shapes/gen/proto.ts", - "sha256": "03b28f089c35319d3454a7f46d98df95c33c4384095021dca72f0399ded9388f", + "sha256": "4f269c398a54e60946a0192b8c0f3ab529f4373e8f768742ba265654866c4021", "normalization": "lf" }, { @@ -164,7 +142,7 @@ }, { "path": "src/public/dotnet/ArcForges.Contracts.Foundation/Generated/Proto/Foundation.cs", - "sha256": "abc58869f0dc490cff2012edd03de976d87de30d4d61cf20e5898e952861ff69", + "sha256": "18b597b052fe137b5697d9b34cf13f55348d5d0757fff0af3a315be0c3e3fe14", "normalization": "lf" }, { @@ -174,7 +152,7 @@ }, { "path": "src/public/dotnet/ArcForges.Contracts.PublicApi/Generated/Proto/Content.cs", - "sha256": "507cdff451f3bf19cd66251d3f6de544297546a76106e00787f6738afaa7449b", + "sha256": "f8d94bd4ad0eab553def1452212db81a498014186cc908dac1c54f5504883722", "normalization": "lf" }, { @@ -199,7 +177,7 @@ }, { "path": "src/public/dotnet/ArcForges.Contracts.PublicApi/Generated/Values/Identifiers.g.cs", - "sha256": "64e61aa0598d5d393825169e6ecc462d24ea3c7b0ce19ebe07ba75d98558bb57", + "sha256": "c91bf74af6a20ae42c1732e149d3619dc16bd1b201cc76860952648136f6c49d", "normalization": "lf" }, { @@ -214,7 +192,7 @@ }, { "path": "src/public/dotnet/ArcForges.Contracts.Validation/Generated/Shapes/ProtoValidation.g.cs", - "sha256": "eb52070bbeb05aedc82af66987f574ff6da011af8a439a830ff78475ae0d4912", + "sha256": "09c11327a9bbc42d8ca166570741cbeaaf37c3e6a0766108324bf6925a1c585f", "normalization": "lf" }, { @@ -407,16 +385,6 @@ "sha256": "3c6ca262f7f015d52ad31b4fb918f41e9b63fc62baea44eb504302c4191ad87b", "normalization": "lf" }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/LocalNotesVersion.java", - "sha256": "c685c5b2f8a7cff75fc64daf25c20a900188bbc237577e2301eecb4341b492c5", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/LocalNotesVersionOrBuilder.java", - "sha256": "e6d0f49d83dbc4579506bf8aa8bb84ac798a1fcd6146d5624473c6f4e07fadbe", - "normalization": "lf" - }, { "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/MediaRange.java", "sha256": "9d502ad73d2b3d2a5370dd666356b545d5ffa4bd7a9b3b51edb404dfffe3ba27", @@ -489,12 +457,12 @@ }, { "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/RequestMeta.java", - "sha256": "b89752208dbc40842d52f53cf02e9a7ddf5b365ace92216f00438aef813657a6", + "sha256": "4baf3c9ecbd379ce3855e9e8ea52ae39d9b4bad81afcce5dea93cf4e4918a091", "normalization": "lf" }, { "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/RequestMetaOrBuilder.java", - "sha256": "bc2ba7a1553979a2b2fff3d8346a9d35795b8babf81d119b9b2e63210e5267c2", + "sha256": "df735bed58347a0deeff8aa29fabc1fc8c7736cd112944f2e4dd3726fe6e388c", "normalization": "lf" }, { @@ -514,12 +482,12 @@ }, { "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/ResourceVersionRef.java", - "sha256": "9e07e7a8073a62ed164c26969323e8ee193b7f0bd093e2eaa13fe5329fef84f8", + "sha256": "a64da7611f128bae3fc327c9efa362e9ff9cbe1748282c702b67bd69d8374458", "normalization": "lf" }, { "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/ResourceVersionRefOrBuilder.java", - "sha256": "da927faa873101358283697338f6030b0c4509364c645d3577bd889b02da2204", + "sha256": "47073dc4380c3629728046915970673c8afeea8e8cd8a9262db890f2ab2b913e", "normalization": "lf" }, { @@ -569,12 +537,12 @@ }, { "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/StateFailure.java", - "sha256": "32c5741780ef2b4ed5166f22ed74f15ff2e8a1fbf1a6d4d2233c176438e2123e", + "sha256": "bdfc17f0004c2525afa00e838352c3b4742501d5203a1acd3b9edf84ea55466c", "normalization": "lf" }, { "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/foundation/v1/StateFailureOrBuilder.java", - "sha256": "e7a1404025c7c6c07ac2fee6bc320150aa20e143f118bccd516786b4623cfe78", + "sha256": "4945371fc2f6c339117c3c1fd4fdf6bdde706544ce98aa3afa8dc3d6c7ed4d9c", "normalization": "lf" }, { @@ -644,12 +612,12 @@ }, { "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/AggregateBody.java", - "sha256": "03b3b15ef85208f4ff60298e542a2d9a75ac40dd45c9981bf3788459752b608f", + "sha256": "2918bd401c3200e079e8bf113768d920287e72243c37a0e8d0febe6c04f0192f", "normalization": "lf" }, { "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/AggregateBodyOrBuilder.java", - "sha256": "ff483affdc1c4e2bc3ef2c314a432c92cdfeb0011fb6f51a76c18020d55b3406", + "sha256": "897a610217c8da043e09fa6778e485db814900e3ccd6d747062c98ddfa1f2839", "normalization": "lf" }, { @@ -682,36 +650,6 @@ "sha256": "beb0ecf4e6856c03fdee1769234ef3eeecfdf7236d274b9d03a6b886a0ea79fe", "normalization": "lf" }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/Block.java", - "sha256": "dc2122caf9b91fc1a77709b3742c62ef7fb036e5aa19cfda856df1777dfe7b88", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/BlockBody.java", - "sha256": "8825521c290d085bb2c3f217a6a72487c702f06f797fe4dea8a2df0928bb5b08", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/BlockBodyOrBuilder.java", - "sha256": "2260de47e0cf129b06b06776f9229594e7a65cbc2a089197721a4ff02f72eb8d", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/BlockOrBuilder.java", - "sha256": "cb5863415cc7acb2f6ee3d7bcb90be60701cc57d869622da8ace07cc6dbbdd00", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/BlockProperties.java", - "sha256": "d2d98b014c04667d4f315ac48a53485323ee6c1f3e4fb0c99d8e16a3ba41cc54", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/BlockPropertiesOrBuilder.java", - "sha256": "c5c1a338502480405b4ca0be1d9840d250a2d5b1ba39d67610ffee80e85d55fc", - "normalization": "lf" - }, { "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/Calibration.java", "sha256": "c373ba330f148946842e06727f2f6cdbef57699f4be474a1b3621e29f59c631c", @@ -782,26 +720,6 @@ "sha256": "70e5c9d396a6db567c0d0cb290b2cb0f94b3b3d17efd2af3452d6b7093c30564", "normalization": "lf" }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/CodeBlock.java", - "sha256": "67b5acbb9463391319c6fa0f7b58a50199f0891a6084d68cb4615bcbc7fd6555", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/CodeBlockOrBuilder.java", - "sha256": "9d92727c173a7311a911d4c0836ab013d95696cdbc0348a0a306e68b4e748893", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ColourConfiguration.java", - "sha256": "18a3f136820cc34de876ae04fc2b76ad20f806a00865980cb5acd4290f241f4a", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ColourConfigurationOrBuilder.java", - "sha256": "d637a46befc69850fec043f986ac6829b1f8b6f9f35c2dfaa9f144da2782422c", - "normalization": "lf" - }, { "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ContentProto.java", "sha256": "05d2fc1232adbbb2e7b5d1da5f355f95c8fdede972e3050bd9ad620e8c0e5edb", @@ -824,12 +742,12 @@ }, { "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ContextSelector.java", - "sha256": "afac0e0e451c7c49c7695947f38bf4e99f267c60cad66b5a6448ac3d81129c82", + "sha256": "fcaaa050cf67287303e745efe65bdef8c7bc8c1bb23fc01d774eff5baeb66929", "normalization": "lf" }, { "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ContextSelectorOrBuilder.java", - "sha256": "759b72c84a385f6f4fc87866c3084b326384e87bda3528b1321c28393627f047", + "sha256": "1b0b5090c0d0c53ec409abd582a3e1916d5453524c2ae106b6fa7441811b3a7b", "normalization": "lf" }, { @@ -892,26 +810,6 @@ "sha256": "72248ce898838227189d6c5e49796d379bb14b192054665c6b583e20df69c0b9", "normalization": "lf" }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/EffectParameter.java", - "sha256": "d6c8b09c9b2d33c45e6ab7fa5d080326117a4a806ae3a98da41d4f3c0b80f77f", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/EffectParameterOrBuilder.java", - "sha256": "08fe0ee2a7bbc18b8df015453ff2e5f544439275fb558e3a20f1ace2af33c7ec", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/EffectSpec.java", - "sha256": "3f09bd271f5ed5b0b038e099b00d3f26a5614e320bbff6eb36ceafe9427ed5d6", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/EffectSpecOrBuilder.java", - "sha256": "e4653f7c56c26bdded9be9e88894fd965de7f2b6ec2c2f2936000036bb6fb99e", - "normalization": "lf" - }, { "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/EphemeralSelection.java", "sha256": "e311bd98eca273ffb5c8bb19c69ef9d770a94f215bfe85456d3303363d74a363", @@ -924,12 +822,12 @@ }, { "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/EventTrigger.java", - "sha256": "94e3ae01847d007f4f2ed18595df32676fd962599158d4ec65c711070b7140d3", + "sha256": "e88ab3efb629125dbb678161b15b225e919ec935e01bf3104df846cb1f9e3ef7", "normalization": "lf" }, { "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/EventTriggerOrBuilder.java", - "sha256": "8eb5cc054e4a1609b353841a07cdd4c2764087452401bcaf84a47409cfcd94bf", + "sha256": "f4a23bd9525047e342e7eb329ac9508d0627f5c5ce52adb0c52a10496293a114", "normalization": "lf" }, { @@ -942,26 +840,6 @@ "sha256": "56aa700113b85090ac923d7fb0a52934142bb4d119c5ec744b83c071ca0e837e", "normalization": "lf" }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/FilterGroup.java", - "sha256": "7f2923a0a1dcc5dc72f4aaed9642732966f202d88731eee68cbcdad0de9ef003", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/FilterGroupOrBuilder.java", - "sha256": "811d217f5fef708f0d514c6cf7f3393fb0c64f3c96b0e67fa39ef3fc1fb86926", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/FolderView.java", - "sha256": "9dbd988da7953ddd91bdc8e2c7bf5885e52419fae20ae23bbfc0f5ade377f8e5", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/FolderViewOrBuilder.java", - "sha256": "6043258debcdcfd75445990b0a86224511234cf9f723404d0977b9deb27f8fdb", - "normalization": "lf" - }, { "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/FrameConfiguration.java", "sha256": "7e00f0ae09bddf16d33f5656a1a439cec531cdc9474e88986557e36c4ab056c2", @@ -982,101 +860,11 @@ "sha256": "987984f7bc20dfe0cc4bde6fda5dbc63cb74be65bb86abd60f1634bceca8ae4e", "normalization": "lf" }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/GeneratedSource.java", - "sha256": "579b37794bb4f8aeea897099875a1fed27d0b8ef9c843368afb751d57579799a", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/GeneratedSourceOrBuilder.java", - "sha256": "b4afe471ecdaa57eb48f1e37aace7712d39a8c1cdd77deb3de1049dee56b7084", - "normalization": "lf" - }, { "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/HistoryMode.java", "sha256": "bd24d3ae2ec35cc489302cd6ba3c49e98956928f72e88c4d0ae756f060de34b9", "normalization": "lf" }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/IdList.java", - "sha256": "8319bff20cbc4c83855837a95bf49b12da23bb3a2db296285675cb4969591d97", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/IdListOrBuilder.java", - "sha256": "2ce4553a9c2582ba8510331a3c05d10545ce1a8fea04d2472047907c75dcc64c", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ImageLayout.java", - "sha256": "01eb9f73abfbac4a310ebae2f323aa6f397d7be47b69e1899fe393577c89bc6c", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ImageLayoutOrBuilder.java", - "sha256": "2131f24dd17daccd2bd5a73b365ae6f982a8f07112dd1ca379853db13e5e8414", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/InlineAtom.java", - "sha256": "3d3c1fea6973abe37279a2a9effff2354add4fee87ff0814a726535693e921ce", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/InlineAtomOrBuilder.java", - "sha256": "f3831fd09c1fa95108acca52f08052e76fb56e5be733eabb9af64078f8f132c7", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/Keyframe.java", - "sha256": "f6fb71c01539c4792a87293983096ddab84695f70c3ef440a3fcc0a19dbced9a", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/KeyframeList.java", - "sha256": "f204125bb503ea67af941d9db62fa1fef35e32a58438f3b5c7f6e5795bdbf552", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/KeyframeListOrBuilder.java", - "sha256": "053bf7e190df8b973e7d28f94e7fee5ffa0a89a4ca5dc868304d058060e2028d", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/KeyframeOrBuilder.java", - "sha256": "de2ff121c5214f6cf12e7916c0ce58d71b4715941f4764cb374b4679e20bf0c8", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/LinkSpec.java", - "sha256": "0c65d268025ca2c15679aa90c6d0f673cd720eb7b4c607d876c63f411cc32d1e", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/LinkSpecOrBuilder.java", - "sha256": "3198c37b0814b14d08afc84ccccf7677f354f23f3809112e894a105864f80104", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/MarkerView.java", - "sha256": "c4a214e2662693809a81d37152cf36981db6630467600e634ea33266cd0519aa", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/MarkerViewOrBuilder.java", - "sha256": "1ff117ed43611ea71bb71d10c6165639f69f1a4792a2051e300a7f32f89e28f5", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/MathContent.java", - "sha256": "d55b7f7d9fbadc84666c04ebd5cda9e96a16722ab890d64fdd919a45f170971c", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/MathContentOrBuilder.java", - "sha256": "20fc3ca58e6e0a16a2e4a1c00bcc6c8a9aa05b352c15431341b816defb7bb661", - "normalization": "lf" - }, { "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/MeasurementRequest.java", "sha256": "84655299b94397a2115dd9b9c48c0207495a72f086c1ef4f04dcd9f6df6d4d8c", @@ -1137,46 +925,6 @@ "sha256": "c97834765fdf6abd635a7208437cdf06b72c67062e06b8f6ea98001d0f0f5577", "normalization": "lf" }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/MediaBin.java", - "sha256": "8402cc7a1fad4584b2a000b0acbfdaa514f0b824f7c717a249a8e7e1e24905b5", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/MediaBinOrBuilder.java", - "sha256": "d0f7a25781713af0435c61a035dde51217b6b73e80d2d59b3d1482a29136405d", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/MediaColourAssignment.java", - "sha256": "a83bdf58e356bc1375fe7c2d1328dadb475fadec6fb5b7f38caf0a68a6cede72", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/MediaColourAssignmentOrBuilder.java", - "sha256": "19589846441862a6608bd88c22531a5d577eed35477bfd46b6b4aa54c64abdf1", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/MediaStream.java", - "sha256": "9097da858e4298af4b18797bd3347c1e7841f6a8b8c38312140e96734626e15a", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/MediaStreamOrBuilder.java", - "sha256": "ee50b047b629c8aa536b8f27ae300b898f2c827539f6ccabffe000b9e0026ffb", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/MediaView.java", - "sha256": "4fc4c829ac5e18b8454755c0eacb0a5f0da2b0b3bef381151ffed8d18eafed7e", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/MediaViewOrBuilder.java", - "sha256": "960f60142bcec1cb52ee7c37ac32ec0eec3a86750df8d347df3e5a3365df9768", - "normalization": "lf" - }, { "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/MemoryRecord.java", "sha256": "12dd63d1e8cd677b2857b037c9a10021553888536ae0ca92c35192001c6cec6e", @@ -1238,598 +986,238 @@ "normalization": "lf" }, { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/NotebookBody.java", - "sha256": "cbbd1c2bf9384aef45b04732c55586c8281ee6910095ab61db45173ead9918a0", + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/PreferenceRecord.java", + "sha256": "67b3c1a2a2172f924add313697a2cff7d2b2bc17f74c1294e6a8d974e3c00ada", "normalization": "lf" }, { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/NotebookBodyOrBuilder.java", - "sha256": "a03b742a70b76647c87ace1d5f18df4f29e32b068930261ea114928ce1be700a", + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/PreferenceRecordOrBuilder.java", + "sha256": "5744c169e656b06609841912feda5516fdc4ab0924faaab625fa7f348786cddd", "normalization": "lf" }, { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/NotebookView.java", - "sha256": "5d1f40947709dbc7eeeaa061d9e87faf79cecca7c68af76f3f28666c29942f03", + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/SampleRange.java", + "sha256": "78ca7ac2271801db44e02d9e64eceb18e7954cf9137d329f35585186286ca72e", "normalization": "lf" }, { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/NotebookViewOrBuilder.java", - "sha256": "c82c8e7c67834e57980349dfbcec4dde3e9b084f503db244acf9ba948349d929", + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/SampleRangeOrBuilder.java", + "sha256": "71f89649b45b1c2a514efc1c37db953442e31e8b11b3060d992cadd8a3e0694a", "normalization": "lf" }, { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/NotesDocument.java", - "sha256": "79eb269215d7230f5e74ee63cebd703214a6fb6352e4b95842d1e493eff4d0d4", + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ScheduleSpec.java", + "sha256": "ea7c9803991d9df2bdd781fac60b6e2c78c3bd68a53f429e1cc6241929a7dc9f", "normalization": "lf" }, { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/NotesDocumentOrBuilder.java", - "sha256": "4dd753819ef36638790eec2e0db727cd49f80feebb935319fc2a7f4a94fc6ebb", + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ScheduleSpecOrBuilder.java", + "sha256": "378df50600f9afad98491ffc898dc0c69ff6dbbda162c72e69b72a6a4d9403a8", "normalization": "lf" }, { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/NotesFilter.java", - "sha256": "909c8a224064bc5f16f45ce67c9fd3aaaacc1d8c1335ec18e2caad0003d92def", + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ScopeAnnotation.java", + "sha256": "13dc126f49f1f349abc80b02fadd34d7a5ebccd1742727c1a8fbb9eecd16f8cc", "normalization": "lf" }, { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/NotesFilterOrBuilder.java", - "sha256": "e8acfbc8fcbd41d507c29f2095d55e80a006ec829c6c1fb395c9e3e04264bb08", + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ScopeAnnotationOrBuilder.java", + "sha256": "31187d8bfe0af4044f735e3519d64da9d72107900e406a11c229e9c8c3038261", "normalization": "lf" }, { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/NotesQuery.java", - "sha256": "fed2cfc8a22e3d11914af838e0c42d52f4a15c1eca474992e5d6c5caff852a58", + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ScopeConfiguration.java", + "sha256": "764a098e051af81bf781a5dca5907adceb54b7c2edc34cff20daf50304c1985a", "normalization": "lf" }, { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/NotesQueryOrBuilder.java", - "sha256": "e57df4030c15e02930230d40e3973bee89c6d1a51ba4685dedac59fa98bc48ac", + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ScopeConfigurationOrBuilder.java", + "sha256": "f1c103c72f9e3ed29d417c192648b62ce306745a6285bebfdfcb128b5eaefe9f", "normalization": "lf" }, { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/NotesSelection.java", - "sha256": "f909bd3ff238d1949a87535ac0635ee414aaafbbbcf204a6c90ae65f14d8504b", + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ScopeFinding.java", + "sha256": "717b3d451cad02ec2e5943ac6ab6027012374c0521a45acb4a69e7c71005dc57", "normalization": "lf" }, { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/NotesSelectionOrBuilder.java", - "sha256": "19d926cc3beef6e0313e27844da5bd505355a3b0d9dd43a6eac3748ab5c7338c", + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ScopeFindingOrBuilder.java", + "sha256": "16f56bdcc74eaab45dd75b9b9778019d9fdce7fcc02256f81cba5c142ff97459", "normalization": "lf" }, { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/NotesSelectors.java", - "sha256": "0dbf7e81e5ce8d457203882892d552dd2c4a2a282081393a5accf1d403035d89", + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ScopeMetadata.java", + "sha256": "71cec151edadf9fcc82878351e1b34b8f3648fcc47525aa144f0ecdb3a5169eb", "normalization": "lf" }, { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/NotesSelectorsOrBuilder.java", - "sha256": "c1a142d66fc12d060ae314a09724d1867d14867d8070b0782c99713d9ceec1bc", + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ScopeMetadataOrBuilder.java", + "sha256": "1b3bbbc616e7f9ea4a01ccdeeecf088fea58e878f8bf7e62c12f40de0e961c2e", "normalization": "lf" }, { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/NotesSort.java", - "sha256": "695ad74c43308fd026d0cb52642a3c1d53fc89ab4be780161d74f3677913c97c", + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ScopeSelection.java", + "sha256": "77d5dbd8a1722c25c360a2c553de4af3962916abaf56c25c0ed546efd091e1a6", "normalization": "lf" }, { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/NotesSortOrBuilder.java", - "sha256": "be078cb551f0529cb1282b4473712be4d87807fc146cf2caf5a57a5f4726984b", + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ScopeSelectionOrBuilder.java", + "sha256": "4786ea9486db7185926bb105ae64b74746be9e42b7aa7343d3e825fc3e4bd73d", "normalization": "lf" }, { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/NotesTextPosition.java", - "sha256": "09a0e7db82fa67c07b51215862117ef7db2b351fa8fc4fbc0e7074e0d0b14204", + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ScopeTime.java", + "sha256": "81e3658b672ca3b9a3a0aabce3cfd3ed2d836eff1af1be44e496a18836e3073e", "normalization": "lf" }, { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/NotesTextPositionOrBuilder.java", - "sha256": "67f0e3599f27b3af94e67f70689e7394f02766a3df398fb099926cc42bb56580", + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ScopeTimeOrBuilder.java", + "sha256": "52522e8c2416be6aba05c31a4ca765ae22f9909a7406886089282874af8c4947", "normalization": "lf" }, { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/PreferenceRecord.java", - "sha256": "67b3c1a2a2172f924add313697a2cff7d2b2bc17f74c1294e6a8d974e3c00ada", + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/SelectedSample.java", + "sha256": "5911debda85c7a210f35cfeace3505c6dd14c2d20ba4a0b0bf202e9198e7b948", "normalization": "lf" }, { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/PreferenceRecordOrBuilder.java", - "sha256": "5744c169e656b06609841912feda5516fdc4ab0924faaab625fa7f348786cddd", + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/SelectedSampleOrBuilder.java", + "sha256": "3b0ce49c8562def6189bdb32cc7123759c359ebf323f34b07967396200936e02", "normalization": "lf" }, { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ProcessingEdge.java", - "sha256": "1b1fc737f322322d9a2f59e6ea0dad68621905e1a842fbb19882205cace78e8b", + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/SkillRecord.java", + "sha256": "cdf2a799f3ce504e7807f07412ef6ab75b0cf5f46d9d585336d68e91ce8a8b78", "normalization": "lf" }, { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ProcessingEdgeOrBuilder.java", - "sha256": "cc78a10862934ac2853b79e94745ef6b180c95b683b222c0ae4a78be30f5acf8", + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/SkillRecordOrBuilder.java", + "sha256": "898a0b972f03b0859674aeec1d120baae7e00da1c973580857c3c21499ac17b0", "normalization": "lf" }, { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ProcessingGraph.java", - "sha256": "44b8f80c0c919af434c96d0d038867e0317219cd915cb566e4c18f75af29109c", + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/SourceConsentRef.java", + "sha256": "fefa583c17dff08853ba02b9b888551d39967b2aba005e89844d575bf932e8a3", "normalization": "lf" }, { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ProcessingGraphOrBuilder.java", - "sha256": "4b6f05f5037d9c9f00bb35702c1df08e38db6db61ac4523279b3210659be752c", + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/SourceConsentRefOrBuilder.java", + "sha256": "fc7beeaefdd0adae48c880d4016b8193c3b42323cd446cdf8c5308011419348b", "normalization": "lf" }, { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/PropertyDefinition.java", - "sha256": "c7c76daf23cc29a2b4f2fef5fd12eb9f08649691b5de359ef4c6ec96d56b09c3", + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/StructuredValue.java", + "sha256": "1598fd9c24570330967d8e4f6c7d86fa66ccfc36ae61fd179f72fb054246695a", "normalization": "lf" }, { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/PropertyDefinitionOrBuilder.java", - "sha256": "47e12664440e117e0aa32028123b5b7336c6f5cc617eafdd353e5a9c56af5b36", + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/StructuredValueOrBuilder.java", + "sha256": "16c306202c2bd783be4f15eeffee96bf804d0c25374c04c6a24abdfd2fbc5231", "normalization": "lf" }, { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/PropertyDefinitionVersion.java", - "sha256": "127fffd28e726387f1ffbbf10ddffe2c0558f59ca13ed38e76de0a2ff9b41abd", + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/TaskReasonFacet.java", + "sha256": "5925128cc65285cdaea3369eb57476afe7295fdba16e361b46e5afc35c1ef576", "normalization": "lf" }, { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/PropertyDefinitionVersionOrBuilder.java", - "sha256": "89c8f741b88efc4e6e3b31b87d2d8f43118642022493f14783ad49275d5f5b45", + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/TaskSnapshot.java", + "sha256": "c59e19ad31b2f1ec8027c8d2e4abad00e8cdfcae59b9cdccbdafa98a5662239b", "normalization": "lf" }, { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/PropertyValue.java", - "sha256": "7d0e767a04e5e4513eb037024eebeeba2cf925db0ebf33be8bf0fea899f23b6c", + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/TaskSnapshotOrBuilder.java", + "sha256": "539a994cb000c294238e6df269e711c7d2efa74343f1456d7663844d7d76aec9", "normalization": "lf" }, { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/PropertyValueOrBuilder.java", - "sha256": "19a5375ef86410d1f4782b5ae8ee817c6532589751fa8f7aa3f8187bff10c895", + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/TaskState.java", + "sha256": "2718775583ebfea0f02dc1df842c87defe66d99351032b5f31a941dcf0d6a940", "normalization": "lf" }, { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/RenderPreset.java", - "sha256": "037cc41bd8f1eb436f01115d2b0b29593d95e67e18916d3c72ae87bdd1d772e2", + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ToolProposal.java", + "sha256": "3008ac9bc2a7ff6e36b2af432ed53461139bc2b80470221b5051f8a3c0c6f55e", "normalization": "lf" }, { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/RenderPresetOrBuilder.java", - "sha256": "ca437cda5a38561e9db595c28ea8be283e80d4f05c147f65b103a201b4fe1f82", + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ToolProposalOrBuilder.java", + "sha256": "e376ad7ee324dce7701c86340860689d5ce74b9e074c6dfaf12f5c4ea4c218d5", "normalization": "lf" }, { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/RetimeCurve.java", - "sha256": "c3efec76f5e1ec7191f3d8f19606d37aca83f11e1ac2c613648fe4ce7c39ca42", + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ToolResult.java", + "sha256": "37792e082e2730e772a5e363ac66b4442e80b5092f9e28dbb58df28d8d5b422b", "normalization": "lf" }, { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/RetimeCurveOrBuilder.java", - "sha256": "b1bd67e9b98d69955b029485c03f0c3fe59e3f1db232b3d41ddbe4eee13c0280", + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ToolResultOrBuilder.java", + "sha256": "cf899b74f43bad27a32603b4e109e11eb29cf475804783991f298b5473ec11e4", "normalization": "lf" }, { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/RetimePoint.java", - "sha256": "dc543d311dafad2e8fe10d6dbd10a09a1d186a2c394fa58c3e63ee4ba3e5b6b1", + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/TriggerConfiguration.java", + "sha256": "5e3a64ba71637b16c2ca58bd7190c8e8118d4208c760727ad1a4ba465141e9ef", "normalization": "lf" }, { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/RetimePointOrBuilder.java", - "sha256": "249108c83a4e34e7043c67559a6f14cbfcb290d27f3494fb24f2d75d3436cdc0", + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/TriggerConfigurationOrBuilder.java", + "sha256": "5433df54397acd1b04df9c53df123910ced0e3e2366d811444b49c9865afd67f", "normalization": "lf" }, { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/RichText.java", - "sha256": "93a5e128677879fbe24f9e52f130609bcb55d5ddb37d66ed8f55d8954564b607", + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/TriggerSpec.java", + "sha256": "5a4eaa0f0438f34953f473b8b1eb21ecd8b025aac193f138ee3cc48880e73ce0", "normalization": "lf" }, { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/RichTextOrBuilder.java", - "sha256": "b3f79354dad466683bdb7c993b323df87ea6286dfeb0d93aae7c3e0a9e1116a0", + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/TriggerSpecOrBuilder.java", + "sha256": "23bf2bce69ae18aacbbf084635000d312139b25cb6da60972066f1ada0ee4d7e", "normalization": "lf" }, { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/SampleRange.java", - "sha256": "78ca7ac2271801db44e02d9e64eceb18e7954cf9137d329f35585186286ca72e", + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/TurnInput.java", + "sha256": "570bb78840b6a574ed74393f4300901d893dc79ca729b1e4f3d81fc2f06610fb", "normalization": "lf" }, { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/SampleRangeOrBuilder.java", - "sha256": "71f89649b45b1c2a514efc1c37db953442e31e8b11b3060d992cadd8a3e0694a", + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/TurnInputOrBuilder.java", + "sha256": "95aaa4b1ee6276e4acc9bcc73a6d13da038a7bff716af146518a305c6bf5a110", "normalization": "lf" }, { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/SavedViewRecord.java", - "sha256": "fa7634020c255aa54bfa7e8802bdc370618f9e25b630d368e90567ece54d17d6", + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ValueEntry.java", + "sha256": "4dc27078be567ce0acd9729fc10c52dbd72b035ef3d0934835c4bf589344c260", "normalization": "lf" }, { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/SavedViewRecordOrBuilder.java", - "sha256": "825cbc7fea09ffcc8d5962fce499df39576b54a1431feee4f39301a0b77724de", + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ValueEntryOrBuilder.java", + "sha256": "8ff7824c50b36c39545abb862a7e192ce30e0995b8e3378cd68e92984d8572d3", "normalization": "lf" }, { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ScalarPredicate.java", - "sha256": "088384d58168e863ca25ad1aafc21e0e1745ff2bea76d4b0c1770357e0925879", + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ValueList.java", + "sha256": "3e5034cc4ca73b0c9e2a1280d52a44909390ab3ed9891d15a2fbeefe64faf7d6", "normalization": "lf" }, { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ScalarPredicateOrBuilder.java", - "sha256": "9900381ce28e84ce81d18d295cb451072e3e5952d070e12301ac91ae84e0f300", + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ValueListOrBuilder.java", + "sha256": "13d1ee3ba096b3e61d5380f115fe07ce29fabd8ef863b3f03dd3e606b53ffa32", "normalization": "lf" }, { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ScalarValue.java", - "sha256": "e074e6e7c9994c090a89856d37f4e32b37814bb939a684c1b11df7081b9e6391", + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ValueRecord.java", + "sha256": "e7994e41fc04e26611615bed87d77d5fbe7a14b9330a69eb5620e6baa61a3de2", "normalization": "lf" }, { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ScalarValueOrBuilder.java", - "sha256": "2e876d55fba4c4c815a218b3b72d5c6fce2143d5ae8c825d08ebdd11ac9c2bfd", + "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ValueRecordOrBuilder.java", + "sha256": "77c14356c5d38cc595ec458b5840285968c8d5af2cbba7860eaedeb1d666c78c", "normalization": "lf" }, { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ScheduleSpec.java", - "sha256": "ea7c9803991d9df2bdd781fac60b6e2c78c3bd68a53f429e1cc6241929a7dc9f", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ScheduleSpecOrBuilder.java", - "sha256": "378df50600f9afad98491ffc898dc0c69ff6dbbda162c72e69b72a6a4d9403a8", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ScopeAnnotation.java", - "sha256": "13dc126f49f1f349abc80b02fadd34d7a5ebccd1742727c1a8fbb9eecd16f8cc", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ScopeAnnotationOrBuilder.java", - "sha256": "31187d8bfe0af4044f735e3519d64da9d72107900e406a11c229e9c8c3038261", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ScopeConfiguration.java", - "sha256": "764a098e051af81bf781a5dca5907adceb54b7c2edc34cff20daf50304c1985a", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ScopeConfigurationOrBuilder.java", - "sha256": "f1c103c72f9e3ed29d417c192648b62ce306745a6285bebfdfcb128b5eaefe9f", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ScopeFinding.java", - "sha256": "717b3d451cad02ec2e5943ac6ab6027012374c0521a45acb4a69e7c71005dc57", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ScopeFindingOrBuilder.java", - "sha256": "16f56bdcc74eaab45dd75b9b9778019d9fdce7fcc02256f81cba5c142ff97459", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ScopeMetadata.java", - "sha256": "71cec151edadf9fcc82878351e1b34b8f3648fcc47525aa144f0ecdb3a5169eb", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ScopeMetadataOrBuilder.java", - "sha256": "1b3bbbc616e7f9ea4a01ccdeeecf088fea58e878f8bf7e62c12f40de0e961c2e", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ScopeSelection.java", - "sha256": "77d5dbd8a1722c25c360a2c553de4af3962916abaf56c25c0ed546efd091e1a6", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ScopeSelectionOrBuilder.java", - "sha256": "4786ea9486db7185926bb105ae64b74746be9e42b7aa7343d3e825fc3e4bd73d", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ScopeTime.java", - "sha256": "81e3658b672ca3b9a3a0aabce3cfd3ed2d836eff1af1be44e496a18836e3073e", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ScopeTimeOrBuilder.java", - "sha256": "52522e8c2416be6aba05c31a4ca765ae22f9909a7406886089282874af8c4947", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/SelectOption.java", - "sha256": "965bc3379d05a5a5ae5847e33ebf57935fa9076dc0211941dd49e10af0d0ce22", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/SelectOptionOrBuilder.java", - "sha256": "9d5e65179b62c9c7a02dcc1347ebd6aaf6b872cf7570cc989a78a8a1e2cb570a", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/SelectedSample.java", - "sha256": "5911debda85c7a210f35cfeace3505c6dd14c2d20ba4a0b0bf202e9198e7b948", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/SelectedSampleOrBuilder.java", - "sha256": "3b0ce49c8562def6189bdb32cc7123759c359ebf323f34b07967396200936e02", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/SequenceView.java", - "sha256": "1ea75d5e8c5a1b99313cefd22950a3a064a2510e644569aed64605ac06ea2953", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/SequenceViewOrBuilder.java", - "sha256": "ec30ed0d088d7c7fe30b36f5d89beb35945c5593a77b291546092cf57c8e5251", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/SkillRecord.java", - "sha256": "cdf2a799f3ce504e7807f07412ef6ab75b0cf5f46d9d585336d68e91ce8a8b78", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/SkillRecordOrBuilder.java", - "sha256": "898a0b972f03b0859674aeec1d120baae7e00da1c973580857c3c21499ac17b0", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/SlateMetadata.java", - "sha256": "539be6f3331a24005100b0f4714b101795224f0b406fe9e2687a448380aef462", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/SlateMetadataOrBuilder.java", - "sha256": "8edecd06dc183354af893a7ca9bc450ba47a6e4e89c44af9e8c8899e1333d569", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/SlateSelection.java", - "sha256": "c9071266ab6e0a85bab3e35920eac5184aa7a803da76098b318fc372e89295fb", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/SlateSelectionOrBuilder.java", - "sha256": "9de81117b8c99c8e9c290eba5b0158c28fbb68f8d3a4ef1f1f43d0571eee49a7", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/SourceConsentRef.java", - "sha256": "fefa583c17dff08853ba02b9b888551d39967b2aba005e89844d575bf932e8a3", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/SourceConsentRefOrBuilder.java", - "sha256": "fc7beeaefdd0adae48c880d4016b8193c3b42323cd446cdf8c5308011419348b", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/StructuredValue.java", - "sha256": "1598fd9c24570330967d8e4f6c7d86fa66ccfc36ae61fd179f72fb054246695a", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/StructuredValueOrBuilder.java", - "sha256": "16c306202c2bd783be4f15eeffee96bf804d0c25374c04c6a24abdfd2fbc5231", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/TableBlock.java", - "sha256": "b9971a98aac6df70fb54d1d3d6dc3a07ecb48cd2902623a271145adb191fa099", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/TableBlockOrBuilder.java", - "sha256": "31f8784706e613327da43f16c79e2bc62de6ca4c370d04e3449c2a46abe77858", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/TableCell.java", - "sha256": "fa44a305c6620b088df706e29ab613f55b1fe7c45e16e3c2a6d2fb2c8790db13", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/TableCellOrBuilder.java", - "sha256": "9dc7ee42c9ffd01c56ced131f84d26332aad1ca29bb2b49fc924fc116045f985", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/TableRow.java", - "sha256": "c2a450b34b0780d5cf1912fc2a4679ebe75dac167da4cf5c1ad1524588a30428", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/TableRowOrBuilder.java", - "sha256": "891029e319ae7d70e4e5025c15db7ad44757ea5c560b18c8129648a9ad41f9f9", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/TagRecord.java", - "sha256": "38b29ccd10e39e03a5f0a22ab544c2bbadb4e353886c751fea54cbffe8e85e93", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/TagRecordOrBuilder.java", - "sha256": "e9e93c83b914818d1c74438646647e062d16c3e11837a1b03d1dafff3e4ef519", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/TaskReasonFacet.java", - "sha256": "5925128cc65285cdaea3369eb57476afe7295fdba16e361b46e5afc35c1ef576", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/TaskSnapshot.java", - "sha256": "c59e19ad31b2f1ec8027c8d2e4abad00e8cdfcae59b9cdccbdafa98a5662239b", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/TaskSnapshotOrBuilder.java", - "sha256": "539a994cb000c294238e6df269e711c7d2efa74343f1456d7663844d7d76aec9", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/TaskState.java", - "sha256": "2718775583ebfea0f02dc1df842c87defe66d99351032b5f31a941dcf0d6a940", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/TextRunSegment.java", - "sha256": "e2f5c29c01084bd32659b94ed7c5cd0de88a99a99910aeeb6ef181392aa646c8", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/TextRunSegmentOrBuilder.java", - "sha256": "bd01e0693402777f3ebaf62daa0ef4d6984939800285d2693033631f8275c3ec", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/TextSpan.java", - "sha256": "e06bd7f7b7f13a817973b2552011c9e703277cc60706ef5a91d42cfdc329ccc9", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/TextSpanOrBuilder.java", - "sha256": "e8b26a01a21d54eef567a0dd547b86cdcb8eb20fc34d24c98af7d440d48771bc", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/TimedText.java", - "sha256": "67f03f3bdbe27b7c33d369582f95e32ba2d5664465a6e2786e055ed73b107586", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/TimedTextOrBuilder.java", - "sha256": "32ca1ab26005b316953477c594eeb8f80bc88187d2a94ff4a72f6c8d38b57dbb", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/TimelineClip.java", - "sha256": "bf6e762c072c010d51d4879d6ab84c2954b249bfc3ff9ea2bab8062346cc0dad", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/TimelineClipOrBuilder.java", - "sha256": "26498ad46d9a90deff7654a265582b0db5e8d26908405b1edc36bc6df802ffeb", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/TimelineTrack.java", - "sha256": "e80a04fcdf4426d0e0a0634f569842956c87d6081d17d7e8759a6208059be901", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/TimelineTrackOrBuilder.java", - "sha256": "b45315395bb1084a6f3fbd0d61f242ad9c1757396b84720dac9af2dbbeae5ac6", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/TimelineView.java", - "sha256": "819f91f3d0d42dce7640732a58429ee01cd3fd8949a571678c69d1a778c968d9", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/TimelineViewOrBuilder.java", - "sha256": "8b9d01a5477940f8ab45cf61c0b75f40daff23be7c61212233f6ee6d0db59705", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ToolProposal.java", - "sha256": "3008ac9bc2a7ff6e36b2af432ed53461139bc2b80470221b5051f8a3c0c6f55e", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ToolProposalOrBuilder.java", - "sha256": "e376ad7ee324dce7701c86340860689d5ce74b9e074c6dfaf12f5c4ea4c218d5", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ToolResult.java", - "sha256": "37792e082e2730e772a5e363ac66b4442e80b5092f9e28dbb58df28d8d5b422b", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ToolResultOrBuilder.java", - "sha256": "cf899b74f43bad27a32603b4e109e11eb29cf475804783991f298b5473ec11e4", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/TransitionSpec.java", - "sha256": "c6076c8923b05f179927e01f6eabd46a97f3fccde9c33860375611ba328bb0f1", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/TransitionSpecOrBuilder.java", - "sha256": "0d4a82086051f7e4d01548a9af6cacf44b9ff55b84202ccccf91c795c542e2e3", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/TriggerConfiguration.java", - "sha256": "5e3a64ba71637b16c2ca58bd7190c8e8118d4208c760727ad1a4ba465141e9ef", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/TriggerConfigurationOrBuilder.java", - "sha256": "5433df54397acd1b04df9c53df123910ced0e3e2366d811444b49c9865afd67f", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/TriggerSpec.java", - "sha256": "5a4eaa0f0438f34953f473b8b1eb21ecd8b025aac193f138ee3cc48880e73ce0", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/TriggerSpecOrBuilder.java", - "sha256": "23bf2bce69ae18aacbbf084635000d312139b25cb6da60972066f1ada0ee4d7e", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/TurnInput.java", - "sha256": "570bb78840b6a574ed74393f4300901d893dc79ca729b1e4f3d81fc2f06610fb", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/TurnInputOrBuilder.java", - "sha256": "95aaa4b1ee6276e4acc9bcc73a6d13da038a7bff716af146518a305c6bf5a110", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ValueEntry.java", - "sha256": "4dc27078be567ce0acd9729fc10c52dbd72b035ef3d0934835c4bf589344c260", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ValueEntryOrBuilder.java", - "sha256": "8ff7824c50b36c39545abb862a7e192ce30e0995b8e3378cd68e92984d8572d3", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ValueList.java", - "sha256": "3e5034cc4ca73b0c9e2a1280d52a44909390ab3ed9891d15a2fbeefe64faf7d6", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ValueListOrBuilder.java", - "sha256": "13d1ee3ba096b3e61d5380f115fe07ce29fabd8ef863b3f03dd3e606b53ffa32", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ValueRecord.java", - "sha256": "e7994e41fc04e26611615bed87d77d5fbe7a14b9330a69eb5620e6baa61a3de2", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/java/io/github/arcforges/contracts/publicapi/v1/ValueRecordOrBuilder.java", - "sha256": "77c14356c5d38cc595ec458b5840285968c8d5af2cbba7860eaedeb1d666c78c", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/events/v1/EntitlementChangedKt.kt", - "sha256": "fe8ebfcc9648408fe502f08a8a2723dc5a437b126f9676b2922bf7fa2a31b528", + "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/events/v1/EntitlementChangedKt.kt", + "sha256": "fe8ebfcc9648408fe502f08a8a2723dc5a437b126f9676b2922bf7fa2a31b528", "normalization": "lf" }, { @@ -1907,11 +1295,6 @@ "sha256": "490c1e2fc02a81e1cc35267be5d0925d870bb3a2ce0971a945a0631e003fd939", "normalization": "lf" }, - { - "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/foundation/v1/LocalNotesVersionKt.kt", - "sha256": "37d2eea09ca3e1ca6df5d1f9ec1f504e77eaf0fe1906860fb0389947fb2b432c", - "normalization": "lf" - }, { "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/foundation/v1/MediaRangeKt.kt", "sha256": "ec8248c594c6b45b3f058ae895a15c62b0498206e106c01975320a644537b59d", @@ -1949,7 +1332,7 @@ }, { "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/foundation/v1/RequestMetaKt.kt", - "sha256": "18e1c74074eb75edf4fca5bd1cc5c4d27e7e17bf23e29ffca85403be88ef0a98", + "sha256": "5e61c64d69c20f776c41272f2ac1c174b715c9a6e8dd34f1ba0847f060391dce", "normalization": "lf" }, { @@ -1959,7 +1342,7 @@ }, { "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/foundation/v1/ResourceVersionRefKt.kt", - "sha256": "aeb0e4b8b3d16e2d31bb70f5ab6936840ceb28784071ceaafc5cfafe49f47371", + "sha256": "e8cc5081cbe8fb0a33a5f5cd91ce498aeaea696866c0b6bb8ac3855c44077a57", "normalization": "lf" }, { @@ -1984,7 +1367,7 @@ }, { "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/foundation/v1/StateFailureKt.kt", - "sha256": "00b68e19347e56b4cefe892ac7ea96d9d018f15990d6359493944a06291a89ff", + "sha256": "c19c377c9f4f17d7e0f32cd072ba60c1107712186f1368c688fdf848c2370da6", "normalization": "lf" }, { @@ -2024,7 +1407,7 @@ }, { "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/AggregateBodyKt.kt", - "sha256": "26e32e5c47dc54d4ef5b2ce0743c0224e8291eb1035953f03b72cabff53b2fce", + "sha256": "69b777adcf39f8b27530597ac02f54be9ae051d6f5ec37fba9b2bad7a0d1b563", "normalization": "lf" }, { @@ -2042,21 +1425,6 @@ "sha256": "42ca16cc55aab8c19f2d1f4746109ac61a2c4f154ca6ea31fd2520ea38fa6ff4", "normalization": "lf" }, - { - "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/BlockBodyKt.kt", - "sha256": "2b47c079204c6c785f02292c9589833ed4bca520b50a1501287290510f629ef6", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/BlockKt.kt", - "sha256": "64051c8b199b68174066408a88c5cf669d97715fbc42421f9de876b4d624cae0", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/BlockPropertiesKt.kt", - "sha256": "d82224d359cc92fce325c7d5c4651232f4287e5f57833058bef0feaa37778f9c", - "normalization": "lf" - }, { "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/CalibrationKt.kt", "sha256": "bbfec0f770637c8f7f62f5d01dd346b4ab43a3f4c7661e5d603fe0d78967ac97", @@ -2092,16 +1460,6 @@ "sha256": "fec1fd2861d531bed711a4afa2b0e548ddd6644133be1c32ed6cc1a473aa123c", "normalization": "lf" }, - { - "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/CodeBlockKt.kt", - "sha256": "1eb43ebca15bc9b9c9223be53715d666f012c2d80981d99200ba54b94ecd02da", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/ColourConfigurationKt.kt", - "sha256": "a26d3036d87b7e25cc7fed028407226f18df77abf76fd14db993c958b2aa2e53", - "normalization": "lf" - }, { "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/ContentProtoKt.proto.kt", "sha256": "4f638e31002baf902121d1a1a5e163adc66d5e681f12d8f522e8c2e489f67eb1", @@ -2114,7 +1472,7 @@ }, { "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/ContextSelectorKt.kt", - "sha256": "22875304bb4b5b9af6da42f14226959b986bd80ef0408cb0aae9c25d59d56489", + "sha256": "215c296f0fc5440aeeff29d58e79297495b073e4a19570e4b3c8df31b3e29d53", "normalization": "lf" }, { @@ -2142,16 +1500,6 @@ "sha256": "c0cd26501492f28712d9546e30f881306b63ad4ee58a433133ffe455f28d0564", "normalization": "lf" }, - { - "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/EffectParameterKt.kt", - "sha256": "0447b336ef2526a0a69e4e1470f649f7f190882361f0b4d3c7f5edb5022d4acd", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/EffectSpecKt.kt", - "sha256": "5e052638246bea4160689190b1c2d4f99cd3c3597021eec0dc0de58fc982cdb1", - "normalization": "lf" - }, { "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/EphemeralSelectionKt.kt", "sha256": "309e3ac8801924bf1b1862b287d6785d5fe8760dee646f78870b21b3dad138d5", @@ -2159,7 +1507,7 @@ }, { "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/EventTriggerKt.kt", - "sha256": "428b45e99b7d882a7ef7d6827c4ae1c06669a5846478ad383f0075a5f68ebf9a", + "sha256": "c8f3a26748bef1f6b5324cb03930a0307e99315441444b20cf6d6fae4e3d45d1", "normalization": "lf" }, { @@ -2167,16 +1515,6 @@ "sha256": "ba3deabc8d1cd5f5164d82e7f13b37c7aa765fb5bd990a1497d6e36dcd4bba01", "normalization": "lf" }, - { - "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/FilterGroupKt.kt", - "sha256": "6d953e957cece2abc4474ddaa37d302ecf5202278acc0a1da0ada8d53c9d4d09", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/FolderViewKt.kt", - "sha256": "9248d804a538078186e43c0f832a1bd517f7e84f632c5ba9773c596bf572dd5b", - "normalization": "lf" - }, { "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/FrameConfigurationKt.kt", "sha256": "ffe4c2581a442f2006d9302c655b089878d7b9d135ee0349bb2f78503145848a", @@ -2187,51 +1525,6 @@ "sha256": "3ac1bd94c1294852a1a785f64302a3c4e278c19ffc9986f7c08bbb6d484a983d", "normalization": "lf" }, - { - "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/GeneratedSourceKt.kt", - "sha256": "2dc861471b465986b0159ddc1ca83556fb981b86a2cc616d82a265f8b096c26f", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/IdListKt.kt", - "sha256": "d004488fccb2d1066bc931c7c0b8550013c22ce847f9943a7d32d15ced045748", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/ImageLayoutKt.kt", - "sha256": "d112d134e3158ad8e2cd1b583724b194061552b6d6baee811c122e9c079cb48f", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/InlineAtomKt.kt", - "sha256": "5a90b2ad7e53640be6f5931c5f02deff7d4d0d055dbe590723c93c5b983454a0", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/KeyframeKt.kt", - "sha256": "97360464f60a8895e17e9dd2e53c359282b773f3948e46853dd8dfa527fb6bd7", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/KeyframeListKt.kt", - "sha256": "cafe2108937916b0c833bcf3ef9dd808c0b9a272866b7e4a8597b618b597f516", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/LinkSpecKt.kt", - "sha256": "0bebce491233eff9e0d4dacfd52530d8e929debcc0d3068a269003f5ab9a4291", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/MarkerViewKt.kt", - "sha256": "b84427f4eeb6fe40b5606b8178be4b3f745bd6a0a05747826228a1442943ec1c", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/MathContentKt.kt", - "sha256": "be325ffe28155dcb6e64a11439831ebdcd8f22fc5571b0864999c44d4a5c8b74", - "normalization": "lf" - }, { "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/MeasurementRequestKt.kt", "sha256": "d3232e7c8d9fdecfd1af15257e1e837e1a9f1d8c52029cfd1eb80bdbb9889ca3", @@ -2262,26 +1555,6 @@ "sha256": "39dcde653dc1b827bb74c7e63da735f3fced5e3d02d8c8770d6f822a20b6318e", "normalization": "lf" }, - { - "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/MediaBinKt.kt", - "sha256": "2f8419cb50d4a0d51a7b4f5d15c610706b7bea65b71613ccf83c0a88947d027a", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/MediaColourAssignmentKt.kt", - "sha256": "22634316b0a5e66d17a231d30d6d7cc04d8f206e56eaa63bbfce5bad791d3e82", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/MediaStreamKt.kt", - "sha256": "e7bcf21001070fc06623814bf6af286fd1a25a304911d2bdc28eaa07e606176d", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/MediaViewKt.kt", - "sha256": "8be0ada67fbed678855aa7faf4355e46dcab71ceb13eb680c4aabb751b90b278", - "normalization": "lf" - }, { "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/MemoryRecordKt.kt", "sha256": "dde3ba508c486d7b6b6bf6229775c62e8c712babb6f69bb26656403465365cc6", @@ -2312,121 +1585,16 @@ "sha256": "21a683c15a00ec9cd2a259895cfd5086c8fa717d5361b55d05690ba81e0ff26f", "normalization": "lf" }, - { - "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/NotebookBodyKt.kt", - "sha256": "23671fd377f0c4c2f6fb85f1ab5097933e97f74b560fecb743186f18d8c06ba2", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/NotebookViewKt.kt", - "sha256": "6b5027fb83cdd293306d16f18ba831988d79781d93cd56d6a0900523effedfcb", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/NotesDocumentKt.kt", - "sha256": "b0592a637b1c981e226eab863f663eb1382914cc040431e6a92b9e90b54971a4", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/NotesFilterKt.kt", - "sha256": "7a5e44f28cafaacfee3e7595a4d3c23b810f653cd18887fdb7b1d52531f06191", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/NotesQueryKt.kt", - "sha256": "cc6286bbab3f1fc0db4d7a1d5ad33af9bd15a93e7b6e1e4ac2e8a4e511ba2f8b", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/NotesSelectionKt.kt", - "sha256": "50bee5570ded6e8ccc0e721ae95c1c7c4674f99481c09437fdec580b09736317", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/NotesSelectorsKt.kt", - "sha256": "bf31d0f89ff8cd3dad650b23918c17a9f7ee15c90088fda9579e5b120f22a9c3", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/NotesSortKt.kt", - "sha256": "ae219be90211e0629576192825abb3c2fa5fc8142ab83ee80aa8413498da545e", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/NotesTextPositionKt.kt", - "sha256": "5bcf38b6d071fc146718ce16d0c36c03704bc73423386b796b70c41ada6f9961", - "normalization": "lf" - }, { "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/PreferenceRecordKt.kt", "sha256": "f5d0ce8f38134d97b0b54fc6ef8cc92cdce0aa55af1ae37eeef65ed69c6a9e73", "normalization": "lf" }, - { - "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/ProcessingEdgeKt.kt", - "sha256": "a223175728a5b495819bed9eee718faf5178cb2bb9d4cf36707b6356546f7c18", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/ProcessingGraphKt.kt", - "sha256": "c4c4d1165e1e189295dee4a0f328c7651f953432361b98c6a489f97ced5dceb7", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/PropertyDefinitionKt.kt", - "sha256": "275ea425130968a2cfecb1e15bbb058868c45e718cf5a5c5de6d809223ada49e", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/PropertyDefinitionVersionKt.kt", - "sha256": "263b92d4e9718a1a03c6b10482d79050b432aaed75ff360f29f4407e7fd1fa76", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/PropertyValueKt.kt", - "sha256": "bf8718fbcaa56b6e50f320f4700ef9af4cdc85d8b5025123c10a44c020798937", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/RenderPresetKt.kt", - "sha256": "72ba7bb615081738d65a91d727a88c97dd467478572a0188c80e83d7cf2e33f3", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/RetimeCurveKt.kt", - "sha256": "e006e12713649212be6f399bd84b8819a74d5ffadd58d26b74900d86fd92c2c9", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/RetimePointKt.kt", - "sha256": "668a751399e467e724b55711c8a5e40bc4921274bd25b390a20b43f66ba66fb0", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/RichTextKt.kt", - "sha256": "86008f09af82f4735324b35890742f62161c67877806f6a4daf37087ce8db6bf", - "normalization": "lf" - }, { "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/SampleRangeKt.kt", "sha256": "d2d8f984ae3e3fa744445df736d0544ab5fc617e5c2702a234ece2c4b38c8447", "normalization": "lf" }, - { - "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/SavedViewRecordKt.kt", - "sha256": "1f130fdaa8ddc13bae8317872e78b89e76a0e710ea5f72077bb1a1651b3561e5", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/ScalarPredicateKt.kt", - "sha256": "32810b51545a25aec68c8604765be47509c57adabb4070fab7dbd785a98039df", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/ScalarValueKt.kt", - "sha256": "ec560ba5d15785ffd02886d72ddbb513f164822ae37f868b4e3343ebe79c3cdc", - "normalization": "lf" - }, { "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/ScheduleSpecKt.kt", "sha256": "8cc489b09bf4fae75b968cefdd6be93bdd748c6fec4d4c023f711c30337c36c7", @@ -2462,36 +1630,16 @@ "sha256": "9c8aa14f88b68b8c912b5e603917d224041d3afc9fde99bee838e23b1d68b659", "normalization": "lf" }, - { - "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/SelectOptionKt.kt", - "sha256": "814e8c9fe4c880843c931d89a5f4bb94975b738b166af94f7f927a7ee8aab504", - "normalization": "lf" - }, { "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/SelectedSampleKt.kt", "sha256": "5922589945edaf49e2137189755d1f3d42c8db46d6d12d6a4383d74baa8999d4", "normalization": "lf" }, - { - "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/SequenceViewKt.kt", - "sha256": "db0558af221397ee290f66bbe40be1bcb171f9abe6bbc941c70ae9482d06cf4f", - "normalization": "lf" - }, { "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/SkillRecordKt.kt", "sha256": "f2fe507dac1630b4b0021eeb0948498149da80ddae29a2a6b962e1c4d0bd8c93", "normalization": "lf" }, - { - "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/SlateMetadataKt.kt", - "sha256": "4cbcbd0f696137eb212b9c1106c17d8f7d3767616a8952a82ed6229524fe4c50", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/SlateSelectionKt.kt", - "sha256": "3f1fcc11b48686eb108ad5b6294328f0406b7028e54f90a8d21851e8f4eff5f0", - "normalization": "lf" - }, { "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/SourceConsentRefKt.kt", "sha256": "7fbb8ace1fcd083c57625af24b6f4d0feb09766b0a042ae506352f738424f6e6", @@ -2502,61 +1650,11 @@ "sha256": "58a4d915cc539604fc27419fc1ca148fa920c341f06f1d8c52f16dd66cbf9c98", "normalization": "lf" }, - { - "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/TableBlockKt.kt", - "sha256": "490d08c04fa985d798505ae7ed81f1c2362b2214b4555efb49354b1070aa0701", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/TableCellKt.kt", - "sha256": "42fc8c84aab9ef46a3341172b69e81cf69a428efad194a2de853f0f0137956a5", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/TableRowKt.kt", - "sha256": "18c52a6a98f1a838bc14ecfd04036edd90385ef5c498eebc70eb5d5af039b90a", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/TagRecordKt.kt", - "sha256": "92d61cfe14828d6f0380282c43d4e310fb567d032a89163d9c0822d386f87133", - "normalization": "lf" - }, { "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/TaskSnapshotKt.kt", "sha256": "577eaca45d93bc74f485242d56e70693976ff22cc9b521ec780a9f8776eb843f", "normalization": "lf" }, - { - "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/TextRunSegmentKt.kt", - "sha256": "d14187707d8b67c06b9e3d79c2a8b1a787b8739af1f4e8549548ef11de6e366e", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/TextSpanKt.kt", - "sha256": "2353b4a6131439be8659d782629ab5598cf8a030bbd2e6706d482908d89f0ffd", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/TimedTextKt.kt", - "sha256": "b1e41267b9274b8d28f525f84acce01259d53f39f8e409094ee8caab96f55bb1", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/TimelineClipKt.kt", - "sha256": "a0df8816c6cce1a9a6a67da15e245e3c462225f91243b4b1c5d4001f1749351a", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/TimelineTrackKt.kt", - "sha256": "96b891f22c26818ba330ec196b014037fe898c3305a614bb08e2485999783167", - "normalization": "lf" - }, - { - "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/TimelineViewKt.kt", - "sha256": "ff8a5e003a2a5f21568c4cace5609cbdeb74f19b291b5b51f4bdf105d3e0bf76", - "normalization": "lf" - }, { "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/ToolProposalKt.kt", "sha256": "348582b04acb704846cfe171b039b16dfa5f4284903e9be08e51d4f230a76e0d", @@ -2567,11 +1665,6 @@ "sha256": "a54378b2e31f4cd2bee7671403cb3d55bab2cde124b45df19275b80fcc1bcd59", "normalization": "lf" }, - { - "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/TransitionSpecKt.kt", - "sha256": "dbe634cc775793d6d01910c95030f5a45fe0d189a2ed896e71b747ec25244883", - "normalization": "lf" - }, { "path": "src/public/kotlin/contracts-proto/generated/kotlin/io/github/arcforges/contracts/publicapi/v1/TriggerConfigurationKt.kt", "sha256": "6381acd929afb5bad9383fcf273a235fffa7cd2419cf2b08377c089f46669809", @@ -2619,7 +1712,7 @@ }, { "path": "src/public/ts/contract-fixtures/src/index.ts", - "sha256": "ca73ba9be87173e10a50b7e6b0e77966b9be05e726c8359e0223e3a90954b304", + "sha256": "629ae43b5ba560b0f6322f46deebda5a181753bea649637b8a2021e5da15a212", "normalization": "lf" }, { @@ -2629,7 +1722,7 @@ }, { "path": "src/public/ts/proto/src/gen/arcforges/foundation/v1/foundation_pb.ts", - "sha256": "78ded595f1f17e465a0c6747d68ddba38abf231f1e611834a2ed444ea9813351", + "sha256": "b79c7c1231d85fc1385366d8260bfc01261f577b5b2f6bfd0b9f9c960788030b", "normalization": "lf" }, { @@ -2639,7 +1732,7 @@ }, { "path": "src/public/ts/proto/src/gen/arcforges/publicapi/v1/content_pb.ts", - "sha256": "5001e43e8abdffe443da6e933fe162b213b63cff2b9f595ad4358bb45919ecc1", + "sha256": "29b0edd012e3e76ff2c1b7223c8869224d6d0e9be2862ff78e5bc643901e599b", "normalization": "lf" }, { @@ -2654,12 +1747,12 @@ }, { "path": "src/public/ts/proto/src/shapes/gen/proto.ts", - "sha256": "1e98d1f5a0d75a6b80c2167778ce921af0c91a6270b6a237bb1ee64f01d66682", + "sha256": "5fe6e144d6babe4194717e5e47d01a99073ccf68dd3d04654d23463caf488f58", "normalization": "lf" }, { "path": "src/public/ts/proto/src/values/gen/identifiers.ts", - "sha256": "17f4c6adf458d0ba1df4ac9341f620f50219863ee127c6fbf1071d1870ec8c3c", + "sha256": "f93d058ebfcb43ab486de32de647e8f0feb0b47703ce8dde1e86c45d2c13e63f", "normalization": "lf" } ], @@ -2782,7 +1875,7 @@ }, { "repository": "https://github.com/ArcForges/Contracts", - "commit": "af7b6cca5e14a51735512d283b03d3ae9d96d170", + "commit": "671f816ddc9e1a3a75782842234f2e899c3de01a", "paths": [ "eng/contracts.py", "eng/foundation_semantics.py", @@ -2795,12 +1888,12 @@ "evidence": [ { "path": "eng/contracts.py", - "sha256": "50b3b18e871c1030204a5d37ca76107928552059f3303a1528629ff5a22b347b", + "sha256": "fc9e816e9dcba4f7c90fd35f4a2fffe8056600c6fe76eb38165a2838802726ef", "finding": "Reviewed exact Apache-2.0 schema, rule, fixture or generator input at the bound source snapshot." }, { "path": "eng/foundation_semantics.py", - "sha256": "696df0723403994619c2b4777890cae7ce6b5aab280925930994f256dcc65cc4", + "sha256": "880e7736000c5141c24f51a32918c9cf87de464ecd88fd54d51f3d9cf495cee4", "finding": "Reviewed exact Apache-2.0 schema, rule, fixture or generator input at the bound source snapshot." }, { @@ -2810,7 +1903,7 @@ }, { "path": "eng/generate_shapes.py", - "sha256": "412b21f7913a3ef724ed0d32dd571d8e9ea007a0a552b23bac3331b00d0497a0", + "sha256": "db9522dc0e822fc3b8b08d4f95277b238a129dfbfb2143d1090a4e4a251a8bce", "finding": "Reviewed exact Apache-2.0 schema, rule, fixture or generator input at the bound source snapshot." }, { @@ -2832,7 +1925,7 @@ }, { "repository": "https://github.com/ArcForges/Contracts", - "commit": "792306133ee1adcfd93e533c53ff3d4381c1c66a", + "commit": "b323a494a9a4ab83832050fb52488407d8f51264", "paths": [ "eng/contracts.py" ], @@ -2854,7 +1947,7 @@ "inputs": [ { "repository": "https://github.com/ArcForges/Contracts", - "commit": "af7b6cca5e14a51735512d283b03d3ae9d96d170", + "commit": "671f816ddc9e1a3a75782842234f2e899c3de01a", "paths": [ "eng/contract-packages.json", "fixtures/internal/wp03-00.json", @@ -2863,11 +1956,9 @@ "fixtures/public/wp03-01.json", "internal/ai-http/v1/schema.json", "internal/proto/arcforges/local/chat/v1/chat.proto", - "internal/proto/arcforges/local/notes/v1/notes.proto", "internal/proto/arcforges/local/platform/v1/platform.proto", "internal/proto/arcforges/local/sandbox/v1/sandbox.proto", "internal/proto/arcforges/local/scope/v1/scope.proto", - "internal/proto/arcforges/local/slate/v1/slate.proto", "internal/proto/arcforges/operator/v1/operator.proto", "internal/proto/constraints.json", "public/http/v1/inventory.schema.json", @@ -2884,12 +1975,12 @@ "evidence": [ { "path": "eng/contract-packages.json", - "sha256": "4f31f579f1dc1ec708d8e76299592df748eb5206a957938f03a334d7048abe3b", + "sha256": "9567c392329f5db7cdcace051e9c7806c7b7ae163bd6d2ed3fff734a5e1a9569", "finding": "Reviewed exact Apache-2.0 schema, rule, fixture or generator input at the bound source snapshot." }, { "path": "fixtures/internal/wp03-00.json", - "sha256": "d199b011ee721c9f6010a9eb449f254de7fd7e24f3e0d46a74005a51f3c56b13", + "sha256": "165a82cf362ff2b05a220724e042915769f467697261035d71bb0c6ffce5fe96", "finding": "Reviewed exact Apache-2.0 schema, rule, fixture or generator input at the bound source snapshot." }, { @@ -2899,17 +1990,17 @@ }, { "path": "fixtures/public/wp03-00.json", - "sha256": "3c6e4b53644c2568b50dde46c1255071a2f7b9d1f4674c69603bded3c1f8acad", + "sha256": "919b5585f9c403648dbe797e71a4da4d3dbd85eecd5dede2b3f5f9b948ec6a69", "finding": "Reviewed exact Apache-2.0 schema, rule, fixture or generator input at the bound source snapshot." }, { "path": "fixtures/public/wp03-01.json", - "sha256": "1dfe708496a001e0b900ff727130f9cb5e91fa79287049df8655dc09ac37f22b", + "sha256": "38919422eaa333bf94ce3b98264ec811f6ccff8c8e3e9ac9efe2bd10c3f2b886", "finding": "Reviewed exact Apache-2.0 schema, rule, fixture or generator input at the bound source snapshot." }, { "path": "internal/ai-http/v1/schema.json", - "sha256": "395ffc80d24bc9d59b2de0706e9efd5071ec8ce3763dddf2dc7c3f4f7456da78", + "sha256": "d74b35c88fcc220d23b2d94dd48d3e3a6a53f0bf5b4cafe93f75c09ba6b07831", "finding": "Reviewed exact Apache-2.0 schema, rule, fixture or generator input at the bound source snapshot." }, { @@ -2917,11 +2008,6 @@ "sha256": "3e9c76af5aefc63c78d21609e09d7106cf809f8e271d2382c3f0c15cdb4cd519", "finding": "Reviewed exact Apache-2.0 schema, rule, fixture or generator input at the bound source snapshot." }, - { - "path": "internal/proto/arcforges/local/notes/v1/notes.proto", - "sha256": "6986907e69f15c21e495f2f5ff4f234bca2c00fb2b2a90f8698680adc38e8fda", - "finding": "Reviewed exact Apache-2.0 schema, rule, fixture or generator input at the bound source snapshot." - }, { "path": "internal/proto/arcforges/local/platform/v1/platform.proto", "sha256": "519bd579aa83cfaa00e05d981c8d646524bddb8c27be22e67573c190e5762800", @@ -2937,11 +2023,6 @@ "sha256": "027b0f72e1d1285fa3b2fcc13130400f8e8f0e801601485fef63e7a102b014c4", "finding": "Reviewed exact Apache-2.0 schema, rule, fixture or generator input at the bound source snapshot." }, - { - "path": "internal/proto/arcforges/local/slate/v1/slate.proto", - "sha256": "9bdc13d5344a6b30b01cf844b34ce183bd4d58b6277696ec70f9e2dc1e918a6c", - "finding": "Reviewed exact Apache-2.0 schema, rule, fixture or generator input at the bound source snapshot." - }, { "path": "internal/proto/arcforges/operator/v1/operator.proto", "sha256": "30e9f7ef3124839417839a25f7be2a43a954947d688387cea4faff09ddcf66e8", @@ -2949,17 +2030,17 @@ }, { "path": "internal/proto/constraints.json", - "sha256": "2560a714da7d5f60d7b7010d95c9dc8bda26338dbb320073b57a15b7d8898285", + "sha256": "92fe9ee7c97d6dee8f79e4c98e61fb16f3acb0a291e15a53c20af22f4c00b6ea", "finding": "Reviewed exact Apache-2.0 schema, rule, fixture or generator input at the bound source snapshot." }, { "path": "public/http/v1/inventory.schema.json", - "sha256": "fb6929548278f6e16e61491001fecae4143882efbfe732950a1584e1e2f80a5d", + "sha256": "2d17acc663de43ff847e522ddb16f32b1e7ec356df7db7dcafe8342d3fb014ce", "finding": "Reviewed exact Apache-2.0 schema, rule, fixture or generator input at the bound source snapshot." }, { "path": "public/http/v1/schema.json", - "sha256": "23587b33320fcbe4a917c2839552984eb40e716c4ce317a5c218f35bedf06751", + "sha256": "8d4c1282c0f93452a0304e44c832179d4c6f65fa563ae53517aa324af87105ce", "finding": "Reviewed exact Apache-2.0 schema, rule, fixture or generator input at the bound source snapshot." }, { @@ -2974,7 +2055,7 @@ }, { "path": "public/proto/arcforges/foundation/v1/foundation.proto", - "sha256": "ceda869bf2998ca4bc21c4b7504c365a4662e7f28183e6db81660592d5bcdb3f", + "sha256": "8412a262ed890e1048680d437c8cbb42ea4e94a31b9c62ee08b0ba3007f53f9e", "finding": "Reviewed exact Apache-2.0 schema, rule, fixture or generator input at the bound source snapshot." }, { @@ -2984,17 +2065,17 @@ }, { "path": "public/proto/arcforges/publicapi/v1/content.proto", - "sha256": "a352f31e0bcee5e5523e59cb6bcfe2af04423e78389c67fc0d8d0ab52f104dee", + "sha256": "15acce6e5618843a24115f8e5ddf64aba5e4fb60ca55dcb926a1900dc46d078f", "finding": "Reviewed exact Apache-2.0 schema, rule, fixture or generator input at the bound source snapshot." }, { "path": "public/proto/constraints.json", - "sha256": "4f76f316c66d85dae393e64f0362610c479596859f3247825ca003d97a4157d8", + "sha256": "69b5e9a861d5e2e914bbfd1817dc15481965868ab719564308c99b77845a4f2f", "finding": "Reviewed exact Apache-2.0 schema, rule, fixture or generator input at the bound source snapshot." }, { "path": "public/proto/value-boundaries.json", - "sha256": "ba5173445ebcead5b8137383bc32072658f69d8cf0f4be6913989e3b7a30f1d7", + "sha256": "b4d7eaa24ec864c69426fa5d679cf1e2d4536b8ed720e4371fb4a3ee94bc5111", "finding": "Reviewed exact Apache-2.0 schema, rule, fixture or generator input at the bound source snapshot." }, { @@ -3014,9 +2095,9 @@ "reviewedOn": "2026-09-27", "decision": "approved", "rationale": "Only the generator-owned proto export barrel adds the first-party semantic hash module. No package identity, upstream generator or licence boundary changes; original generated provenance remains linked through supersedes.", - "baselineCommit": "792306133ee1adcfd93e533c53ff3d4381c1c66a", + "baselineCommit": "b323a494a9a4ab83832050fb52488407d8f51264", "reconciliation": false }, - "supersedes": "contract-bindings-r5", + "supersedes": "contract-bindings-r6", "artifactTargets": [] } From ec5520e024936d54dab56f7470de0767dd926c2d Mon Sep 17 00:00:00 2001 From: sammiller Date: Sun, 27 Sep 2026 19:53:31 +0100 Subject: [PATCH 7/9] fix(contracts): regenerate CON17 public fixture package --- eng/policy/contract-access.json | 4 +- eng/policy/dependency-policy.json | 14 +- .../con17-previous-client-113-1.json | 8 +- eng/provenance/NOTICE.txt | 2 +- .../con17-published-descriptors-r1.json | 2 +- .../records/con17-semantic-export-r1.json | 8 +- src/public/ts/contract-fixtures/src/index.ts | 131 ++++++++++++++++++ 7 files changed, 150 insertions(+), 19 deletions(-) diff --git a/eng/policy/contract-access.json b/eng/policy/contract-access.json index f1ce722f..e37a8ce4 100644 --- a/eng/policy/contract-access.json +++ b/eng/policy/contract-access.json @@ -7,7 +7,7 @@ "path": "docs/assurance/wp03-02-serialization-posture-profile.md", "sha256": "7add5ef64bd92ef5abb1b9f5d5b324066fbd54dfcd08c901390d0eb25f61992c" }, - "sourceCommit": "b323a494a9a4ab83832050fb52488407d8f51264", + "sourceCommit": "a1d2f4bd6ff05f80e86c776ce9f7070729b38898", "schemas": [ { "path": "internal/proto/arcforges/local/chat/v1/chat.proto", @@ -3799,7 +3799,7 @@ "package": "@arcforges/contract-fixtures", "access": "public", "types": [], - "sha256": "629ae43b5ba560b0f6322f46deebda5a181753bea649637b8a2021e5da15a212", + "sha256": "d6103a6836787faa59945c3106708e29b871548cfa31d297086e3808ad55a10d", "kind": "generated" }, { diff --git a/eng/policy/dependency-policy.json b/eng/policy/dependency-policy.json index badf865f..46fa6b2f 100644 --- a/eng/policy/dependency-policy.json +++ b/eng/policy/dependency-policy.json @@ -16,7 +16,7 @@ "eng/central-signing/build.gradle.kts": "a24f120f0e503347fdca3e2520dab58583ebb1449550f3f0d99b05437af174a8", "eng/central-signing/settings.gradle.kts": "1f1f5285f2938dc48b7a5da29f1c86f43a06ead1cffabd469b47597580f671b5", "eng/contract-packages.json": "9567c392329f5db7cdcace051e9c7806c7b7ae163bd6d2ed3fff734a5e1a9569", - "eng/policy/contract-access.json": "9de84aa03629c593bad2d795db15f7edb83c5f01cb37b2cb1aca012c67660cbf", + "eng/policy/contract-access.json": "145298928cd567802b7e8504f75b765270f95539fe9f12d2d65405b4d6c8dc92", "eng/provenance/artifact-profiles/dokka-2-2-0-r1.json": "f0f1bc138f4406cc5176d7181165591426f58a67333a8aad64f16999173ade74", "eng/provenance/artifact-profiles/dokka-2-2-0-r2.json": "08347bde226256422e640c1db3a7eb7f8d882390a7dfa66445974344e241e13e", "eng/provenance/artifact-profiles/dokka-2-2-0-r3.json": "a1a4cf880b287c6b8f9a9707d9226168584772b13e5ecd579c527873b0351521", @@ -26,8 +26,8 @@ "eng/provenance/artifact-profiles/dokka-2-2-0-r7.json": "5b86329a7aa205353dfdb0fb75d924e50d2486e281dafb22fe90bf93012b03ad", "eng/provenance/artifact-profiles/dokka-2-2-0-r8.json": "224432d3957639e42fb429aa2841d80dbfd10aaec18b8ab3b4bf3851829f2089", "eng/provenance/records/canonical-apache-licence-r1.json": "e4252278767a0b4dd27a09a50b176c9420469828345e61336a4b5ca1d17c7b44", - "eng/provenance/records/con17-published-descriptors-r1.json": "c8fedcec230cd787f523049a4efd6037ccece68f36888f5018b18c4549a38053", - "eng/provenance/records/con17-semantic-export-r1.json": "040d54cf9a9718f9221a2599bf84ac05cf8da4453c57d2f0c01a428943f9316b", + "eng/provenance/records/con17-published-descriptors-r1.json": "b0f35abb8edcaa665d53663f5eaad3cd7825195fd93bbe093101e29452bed97c", + "eng/provenance/records/con17-semantic-export-r1.json": "06bf05bdc83fe32ddd5bd98803654a8aa42ff0ef2d7a00f5d2993b494de357fd", "eng/provenance/records/contract-bindings-r2.json": "95d2bde3b8d00c03061866838bc28b907bcec0e29a0ede996a42e79b7bb53221", "eng/provenance/records/contract-bindings-r3.json": "ba8adc87164b16804cad6525c50674d4f1b05da89d1d300a9b4f770576906878", "eng/provenance/records/contract-bindings-r4.json": "0918c490633e7205d66af8fe7bd825cb4f6db259c12b4ba33ee08aa4e55e57aa", @@ -2433,7 +2433,7 @@ "owner": "Contracts maintainers", "reviewer": "w-20260927-platform (dependency admission assessment; independent CON.17 PR review required)", "reviewedOn": "2026-09-27", - "baselineCommit": "b323a494a9a4ab83832050fb52488407d8f51264", + "baselineCommit": "a1d2f4bd6ff05f80e86c776ce9f7070729b38898", "inputHashes": { ".java-version": "b8481af4c809b46f02fc334825116cbe9e6d6a7bc8e2363511fa77044fca8016", ".node-version": "73fb1b615e2043a933be1c0895cde4358036acc28d785692509b822aa53c761f", @@ -2449,7 +2449,7 @@ "eng/central-signing/build.gradle.kts": "a24f120f0e503347fdca3e2520dab58583ebb1449550f3f0d99b05437af174a8", "eng/central-signing/settings.gradle.kts": "1f1f5285f2938dc48b7a5da29f1c86f43a06ead1cffabd469b47597580f671b5", "eng/contract-packages.json": "9567c392329f5db7cdcace051e9c7806c7b7ae163bd6d2ed3fff734a5e1a9569", - "eng/policy/contract-access.json": "9de84aa03629c593bad2d795db15f7edb83c5f01cb37b2cb1aca012c67660cbf", + "eng/policy/contract-access.json": "145298928cd567802b7e8504f75b765270f95539fe9f12d2d65405b4d6c8dc92", "eng/provenance/artifact-profiles/dokka-2-2-0-r1.json": "f0f1bc138f4406cc5176d7181165591426f58a67333a8aad64f16999173ade74", "eng/provenance/artifact-profiles/dokka-2-2-0-r2.json": "08347bde226256422e640c1db3a7eb7f8d882390a7dfa66445974344e241e13e", "eng/provenance/artifact-profiles/dokka-2-2-0-r3.json": "a1a4cf880b287c6b8f9a9707d9226168584772b13e5ecd579c527873b0351521", @@ -2459,8 +2459,8 @@ "eng/provenance/artifact-profiles/dokka-2-2-0-r7.json": "5b86329a7aa205353dfdb0fb75d924e50d2486e281dafb22fe90bf93012b03ad", "eng/provenance/artifact-profiles/dokka-2-2-0-r8.json": "224432d3957639e42fb429aa2841d80dbfd10aaec18b8ab3b4bf3851829f2089", "eng/provenance/records/canonical-apache-licence-r1.json": "e4252278767a0b4dd27a09a50b176c9420469828345e61336a4b5ca1d17c7b44", - "eng/provenance/records/con17-published-descriptors-r1.json": "c8fedcec230cd787f523049a4efd6037ccece68f36888f5018b18c4549a38053", - "eng/provenance/records/con17-semantic-export-r1.json": "040d54cf9a9718f9221a2599bf84ac05cf8da4453c57d2f0c01a428943f9316b", + "eng/provenance/records/con17-published-descriptors-r1.json": "b0f35abb8edcaa665d53663f5eaad3cd7825195fd93bbe093101e29452bed97c", + "eng/provenance/records/con17-semantic-export-r1.json": "06bf05bdc83fe32ddd5bd98803654a8aa42ff0ef2d7a00f5d2993b494de357fd", "eng/provenance/records/contract-bindings-r2.json": "95d2bde3b8d00c03061866838bc28b907bcec0e29a0ede996a42e79b7bb53221", "eng/provenance/records/contract-bindings-r3.json": "ba8adc87164b16804cad6525c50674d4f1b05da89d1d300a9b4f770576906878", "eng/provenance/records/contract-bindings-r4.json": "0918c490633e7205d66af8fe7bd825cb4f6db259c12b4ba33ee08aa4e55e57aa", diff --git a/eng/policy/dependency-reviews/con17-previous-client-113-1.json b/eng/policy/dependency-reviews/con17-previous-client-113-1.json index 565dd3a6..7d8ea159 100644 --- a/eng/policy/dependency-reviews/con17-previous-client-113-1.json +++ b/eng/policy/dependency-reviews/con17-previous-client-113-1.json @@ -3,7 +3,7 @@ "owner": "Contracts maintainers", "reviewer": "w-20260927-platform (dependency admission assessment; independent CON.17 PR review required)", "reviewedOn": "2026-09-27", - "baselineCommit": "b323a494a9a4ab83832050fb52488407d8f51264", + "baselineCommit": "a1d2f4bd6ff05f80e86c776ce9f7070729b38898", "inputHashes": { ".java-version": "b8481af4c809b46f02fc334825116cbe9e6d6a7bc8e2363511fa77044fca8016", ".node-version": "73fb1b615e2043a933be1c0895cde4358036acc28d785692509b822aa53c761f", @@ -19,7 +19,7 @@ "eng/central-signing/build.gradle.kts": "a24f120f0e503347fdca3e2520dab58583ebb1449550f3f0d99b05437af174a8", "eng/central-signing/settings.gradle.kts": "1f1f5285f2938dc48b7a5da29f1c86f43a06ead1cffabd469b47597580f671b5", "eng/contract-packages.json": "9567c392329f5db7cdcace051e9c7806c7b7ae163bd6d2ed3fff734a5e1a9569", - "eng/policy/contract-access.json": "9de84aa03629c593bad2d795db15f7edb83c5f01cb37b2cb1aca012c67660cbf", + "eng/policy/contract-access.json": "145298928cd567802b7e8504f75b765270f95539fe9f12d2d65405b4d6c8dc92", "eng/provenance/artifact-profiles/dokka-2-2-0-r1.json": "f0f1bc138f4406cc5176d7181165591426f58a67333a8aad64f16999173ade74", "eng/provenance/artifact-profiles/dokka-2-2-0-r2.json": "08347bde226256422e640c1db3a7eb7f8d882390a7dfa66445974344e241e13e", "eng/provenance/artifact-profiles/dokka-2-2-0-r3.json": "a1a4cf880b287c6b8f9a9707d9226168584772b13e5ecd579c527873b0351521", @@ -29,8 +29,8 @@ "eng/provenance/artifact-profiles/dokka-2-2-0-r7.json": "5b86329a7aa205353dfdb0fb75d924e50d2486e281dafb22fe90bf93012b03ad", "eng/provenance/artifact-profiles/dokka-2-2-0-r8.json": "224432d3957639e42fb429aa2841d80dbfd10aaec18b8ab3b4bf3851829f2089", "eng/provenance/records/canonical-apache-licence-r1.json": "e4252278767a0b4dd27a09a50b176c9420469828345e61336a4b5ca1d17c7b44", - "eng/provenance/records/con17-published-descriptors-r1.json": "c8fedcec230cd787f523049a4efd6037ccece68f36888f5018b18c4549a38053", - "eng/provenance/records/con17-semantic-export-r1.json": "040d54cf9a9718f9221a2599bf84ac05cf8da4453c57d2f0c01a428943f9316b", + "eng/provenance/records/con17-published-descriptors-r1.json": "b0f35abb8edcaa665d53663f5eaad3cd7825195fd93bbe093101e29452bed97c", + "eng/provenance/records/con17-semantic-export-r1.json": "06bf05bdc83fe32ddd5bd98803654a8aa42ff0ef2d7a00f5d2993b494de357fd", "eng/provenance/records/contract-bindings-r2.json": "95d2bde3b8d00c03061866838bc28b907bcec0e29a0ede996a42e79b7bb53221", "eng/provenance/records/contract-bindings-r3.json": "ba8adc87164b16804cad6525c50674d4f1b05da89d1d300a9b4f770576906878", "eng/provenance/records/contract-bindings-r4.json": "0918c490633e7205d66af8fe7bd825cb4f6db259c12b4ba33ee08aa4e55e57aa", diff --git a/eng/provenance/NOTICE.txt b/eng/provenance/NOTICE.txt index b820fb8b..67b09691 100644 --- a/eng/provenance/NOTICE.txt +++ b/eng/provenance/NOTICE.txt @@ -21,7 +21,7 @@ Copyright 2022-2026 The Connect Authors. Selected ArcForges contract bindings are generated from Apache-2.0 schemas using Grpc.Tools 2.84.0, protoc-gen-es 2.15.0 and Connect-Kotlin 0.9.0. Shape validators, domain identity adapters and fixture exports use Apache-2.0 repository tooling. Historical protobuf BSD-3-Clause and applicable generator Apache-2.0 attributions are retained. Build tools are not bundled in client packages. Native-grpc-only Android generation remains retired. con17-semantic-export-r1 -Source: https://github.com/ArcForges/Contracts @ b323a494a9a4ab83832050fb52488407d8f51264 +Source: https://github.com/ArcForges/Contracts @ a1d2f4bd6ff05f80e86c776ce9f7070729b38898 Material licence: Apache-2.0 Notice scope: packages Copyright 2026 ArcForges contributors. diff --git a/eng/provenance/records/con17-published-descriptors-r1.json b/eng/provenance/records/con17-published-descriptors-r1.json index 5db06910..1623c332 100644 --- a/eng/provenance/records/con17-published-descriptors-r1.json +++ b/eng/provenance/records/con17-published-descriptors-r1.json @@ -137,7 +137,7 @@ "reviewedOn": "2026-09-27", "decision": "approved", "rationale": "Reuse exact first-party Apache-2.0 descriptor bytes from the published baseline required by CON.17. Preserve original generator attribution. No retired contract is reintroduced as a production export.", - "baselineCommit": "b323a494a9a4ab83832050fb52488407d8f51264", + "baselineCommit": "a1d2f4bd6ff05f80e86c776ce9f7070729b38898", "reconciliation": false }, "supersedes": null, diff --git a/eng/provenance/records/con17-semantic-export-r1.json b/eng/provenance/records/con17-semantic-export-r1.json index 31008d35..7e5a3513 100644 --- a/eng/provenance/records/con17-semantic-export-r1.json +++ b/eng/provenance/records/con17-semantic-export-r1.json @@ -3,7 +3,7 @@ "id": "con17-semantic-export-r1", "kind": "generated", "sourceRepository": "https://github.com/ArcForges/Contracts", - "sourceCommit": "b323a494a9a4ab83832050fb52488407d8f51264", + "sourceCommit": "a1d2f4bd6ff05f80e86c776ce9f7070729b38898", "sourcePaths": [ "eng/contract-packages.json", "eng/contracts.py", @@ -1712,7 +1712,7 @@ }, { "path": "src/public/ts/contract-fixtures/src/index.ts", - "sha256": "629ae43b5ba560b0f6322f46deebda5a181753bea649637b8a2021e5da15a212", + "sha256": "d6103a6836787faa59945c3106708e29b871548cfa31d297086e3808ad55a10d", "normalization": "lf" }, { @@ -1925,7 +1925,7 @@ }, { "repository": "https://github.com/ArcForges/Contracts", - "commit": "b323a494a9a4ab83832050fb52488407d8f51264", + "commit": "a1d2f4bd6ff05f80e86c776ce9f7070729b38898", "paths": [ "eng/contracts.py" ], @@ -2095,7 +2095,7 @@ "reviewedOn": "2026-09-27", "decision": "approved", "rationale": "Only the generator-owned proto export barrel adds the first-party semantic hash module. No package identity, upstream generator or licence boundary changes; original generated provenance remains linked through supersedes.", - "baselineCommit": "b323a494a9a4ab83832050fb52488407d8f51264", + "baselineCommit": "a1d2f4bd6ff05f80e86c776ce9f7070729b38898", "reconciliation": false }, "supersedes": "contract-bindings-r6", diff --git a/src/public/ts/contract-fixtures/src/index.ts b/src/public/ts/contract-fixtures/src/index.ts index db5e6e5c..2e716a59 100644 --- a/src/public/ts/contract-fixtures/src/index.ts +++ b/src/public/ts/contract-fixtures/src/index.ts @@ -1,6 +1,137 @@ // SPDX-License-Identifier: Apache-2.0 // Generated by eng/generate_fixtures.py from fixtures/public. Do not edit. export const publicFixtures = { + "con-17-compat-hash.json": { + "schemaVersion": "con-17-compat-hash.v1", + "license": "Apache-2.0", + "authority": "registry04 section 2 / WP03.06; these examples are not production command profiles", + "vectors": [ + { + "id": "property-order-a", + "input": "{\"schemaVersion\":\"example.v1\",\"z\":true,\"a\":\"9007199254740993\"}", + "canonical": "{\"a\":\"9007199254740993\",\"schemaVersion\":\"example.v1\",\"z\":true}", + "sha256": "228310716bcef7eb64ee57c4de81194c51c2b14c912cbc94422a069396a09699" + }, + { + "id": "property-order-b", + "input": " { \"a\":\"9007199254740993\",\"z\":true,\"schemaVersion\":\"example.v1\" } ", + "canonical": "{\"a\":\"9007199254740993\",\"schemaVersion\":\"example.v1\",\"z\":true}", + "sha256": "228310716bcef7eb64ee57c4de81194c51c2b14c912cbc94422a069396a09699" + }, + { + "id": "missing", + "input": "{\"schemaVersion\":\"example.v1\"}", + "canonical": "{\"schemaVersion\":\"example.v1\"}", + "sha256": "1c183843911cec857d2e9d52987c347ff50dd52b7a8ef1d8e46f58922afdd8c6" + }, + { + "id": "explicit-null", + "input": "{\"schemaVersion\":\"example.v1\",\"value\":null}", + "canonical": "{\"schemaVersion\":\"example.v1\",\"value\":null}", + "sha256": "5b2d9cf5a055a61d82bd7dfd89dfa2dc11c7484505a33fb39c9d117fb4ddfb45" + }, + { + "id": "empty-array", + "input": "{\"value\":[],\"schemaVersion\":\"example.v1\"}", + "canonical": "{\"schemaVersion\":\"example.v1\",\"value\":[]}", + "sha256": "e11497b034e66a29928f6a03220a7680f8846fd19236ccf3e9cd42fd992ebc56" + }, + { + "id": "exact-maxima", + "input": "{\"u\":\"18446744073709551615\",\"i\":\"9223372036854775807\",\"decimal\":\"0.000000001\",\"schemaVersion\":\"example.v1\"}", + "canonical": "{\"decimal\":\"0.000000001\",\"i\":\"9223372036854775807\",\"schemaVersion\":\"example.v1\",\"u\":\"18446744073709551615\"}", + "sha256": "de1afe4a563c5ac077a813690fd74ba6c7819d64922bd921c318ac7b7b73964c" + }, + { + "id": "unicode-preserved", + "input": "{\"value\":\"A\u4e2d\ud83d\ude00e\u0301\",\"schemaVersion\":\"example.v1\"}", + "canonical": "{\"schemaVersion\":\"example.v1\",\"value\":\"A\u4e2d\ud83d\ude00e\u0301\"}", + "sha256": "ce4fb4888658b79efa5454bfbac48183a872907372766e21097b2c697a8f05ee" + }, + { + "id": "owner-nfc", + "input": "{\"value\":\"e\u0301\",\"other\":\"e\u0301\",\"schemaVersion\":\"example.v1\"}", + "nfcPaths": [ + "/value" + ], + "canonical": "{\"other\":\"e\u0301\",\"schemaVersion\":\"example.v1\",\"value\":\"\u00e9\"}", + "sha256": "e8728c4b8c35bed53f7e95096d62661a62bfab014925bc01b6fd2ac08ef85aa6" + }, + { + "id": "escaped-controls", + "input": "{\"schemaVersion\":\"example.v1\",\"value\":\"\\u0000\\b\\f\\n\\r\\t\\\"\\\\/\"}", + "canonical": "{\"schemaVersion\":\"example.v1\",\"value\":\"\\u0000\\b\\f\\n\\r\\t\\\"\\\\/\"}", + "sha256": "05f696b27e37f383291d617bdb3b5caaee2d68d3c25933da1cbfd4fe0fc68b75" + }, + { + "id": "numeric-properties-sort-ordinal", + "input": "{\"2\":\"two\",\"10\":\"ten\",\"schemaVersion\":\"example.v1\"}", + "canonical": "{\"10\":\"ten\",\"2\":\"two\",\"schemaVersion\":\"example.v1\"}", + "sha256": "f0780853a18bead8642372690716b53df4916925a43ac968b330a131a90ad7b3" + }, + { + "id": "uuid-hash-bytes", + "input": "{\"schemaVersion\":\"example.v1\",\"id\":\"00112233-4455-6677-8899-aabbccddeeff\",\"bytes\":\"ABEiM0RVZneImaq7zN3u_w\"}", + "canonical": "{\"bytes\":\"ABEiM0RVZneImaq7zN3u_w\",\"id\":\"00112233-4455-6677-8899-aabbccddeeff\",\"schemaVersion\":\"example.v1\"}", + "sha256": "1c6d420632e17ded885dbc7222b56fbe54ce3086b9a9131b9149806e2462a688" + }, + { + "id": "nested-ordered-array", + "input": "{\"schemaVersion\":\"example.v1\",\"items\":[{\"b\":false,\"a\":null},\"x\"]}", + "canonical": "{\"items\":[{\"a\":null,\"b\":false},\"x\"],\"schemaVersion\":\"example.v1\"}", + "sha256": "97bc10b813950b79ffda938cfe8a207af84e6feea49aebb7f86d330a1c085c07" + } + ], + "invalid": [ + { + "id": "duplicate", + "input": "{\"schemaVersion\":\"example.v1\",\"a\":null,\"a\":true}" + }, + { + "id": "escaped-duplicate", + "input": "{\"schemaVersion\":\"example.v1\",\"a\":null,\"\\u0061\":true}" + }, + { + "id": "unpaired-high", + "input": "{\"schemaVersion\":\"example.v1\",\"a\":\"\\ud800\"}" + }, + { + "id": "unpaired-low", + "input": "{\"schemaVersion\":\"example.v1\",\"a\":\"\\udfff\"}" + }, + { + "id": "non-ascii-key", + "input": "{\"schemaVersion\":\"example.v1\",\"\u4e2d\":null}" + }, + { + "id": "unsafe-number", + "input": "{\"schemaVersion\":\"example.v1\",\"a\":9007199254740993}" + }, + { + "id": "float-number", + "input": "{\"schemaVersion\":\"example.v1\",\"a\":0.1}" + }, + { + "id": "nonfinite", + "input": "{\"schemaVersion\":\"example.v1\",\"a\":NaN}" + }, + { + "id": "missing-version", + "input": "{\"a\":true}" + }, + { + "id": "invalid-normalization", + "input": "{\"schemaVersion\":\"example.v1\"}", + "nfcPaths": [ + "/missing" + ] + }, + { + "id": "trailing-comma", + "input": "{\"schemaVersion\":\"example.v1\",}" + } + ] + }, "hello.json": { "cases": [ { From 56d083a3990762590e4ae973bbf8e46ba5f99170 Mon Sep 17 00:00:00 2001 From: sammiller Date: Sun, 27 Sep 2026 19:56:52 +0100 Subject: [PATCH 8/9] fix(contracts): register previous-client licence inventory --- eng/policy/licence-boundary.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/eng/policy/licence-boundary.json b/eng/policy/licence-boundary.json index 4e954b58..41c85bba 100644 --- a/eng/policy/licence-boundary.json +++ b/eng/policy/licence-boundary.json @@ -100,6 +100,10 @@ "path": "src/public/ts/proto/package.json", "kind": "npm" }, + { + "path": "tests/StructureTests/PreviousClient/PreviousClient.csproj", + "kind": "msbuild" + }, { "path": "tests/StructureTests/StructureTests.csproj", "kind": "msbuild" From f774c27ca4fc4198f9ae4da829a64c0fee97fe60 Mon Sep 17 00:00:00 2001 From: sammiller Date: Sun, 27 Sep 2026 20:03:05 +0100 Subject: [PATCH 9/9] fix(contracts): bind fixture provenance and exact public hash scan exceptions --- .gitleaks.toml | 23 ++++++++++++ eng/policy/dependency-policy.json | 4 +-- .../con17-previous-client-113-1.json | 2 +- .../records/con17-semantic-export-r1.json | 36 +++++++++++++++++-- tests/tooling/test_dependency_admission.py | 33 +++++++++++++++-- 5 files changed, 90 insertions(+), 8 deletions(-) diff --git a/.gitleaks.toml b/.gitleaks.toml index f856cdc9..46815ff0 100644 --- a/.gitleaks.toml +++ b/.gitleaks.toml @@ -406,3 +406,26 @@ regexes = [ '''(?s)^\s*"eng/provenance/records/dokka\-object\-keys\-licence\-r1\.json":\s*"55621ecc7032745ca46e56d13133dc22a3bd808d80966d737427b5d6fc5bd096",?\s*$''', '''(?s)^\s*"src/public/dotnet/ArcForges\.Contracts\.PublicApi/ArcForges\.Contracts\.PublicApi\.csproj":\s*"986b7a97734cd5d0630e548da897869de322a112c087c2d0df6a0bfc98b8784c",?\s*$''', ] + +[[allowlists]] +description = "CON17 observed exact public source inventory hashes; independently verified source snapshots" +targetRules = ["generic-api-key"] +condition = "AND" +regexTarget = "line" +paths = ['''^eng/policy/dependency\-reviews/con17\-previous\-client\-113\-1\.json$'''] +regexes = [ + '''(?s)^\s*"eng/policy/contract\-access\.json":\s*"622d53ff60931677847ab90c550721b7630c13e167133bd13688215e46f5ae1e",?\s*$''', + '''(?s)^\s*"eng/policy/contract\-access\.json":\s*"9de84aa03629c593bad2d795db15f7edb83c5f01cb37b2cb1aca012c67660cbf",?\s*$''', + '''(?s)^\s*"eng/policy/contract\-access\.json":\s*"145298928cd567802b7e8504f75b765270f95539fe9f12d2d65405b4d6c8dc92",?\s*$''', +] + +[[allowlists]] +description = "CON17 observed exact public source inventory hashes; independently verified source snapshots" +targetRules = ["generic-api-key"] +condition = "AND" +regexTarget = "line" +paths = ['''^eng/policy/dependency\-policy\.json$'''] +regexes = [ + '''(?s)^\s*"eng/policy/contract\-access\.json":\s*"9de84aa03629c593bad2d795db15f7edb83c5f01cb37b2cb1aca012c67660cbf",?\s*$''', + '''(?s)^\s*"eng/policy/contract\-access\.json":\s*"145298928cd567802b7e8504f75b765270f95539fe9f12d2d65405b4d6c8dc92",?\s*$''', +] diff --git a/eng/policy/dependency-policy.json b/eng/policy/dependency-policy.json index 46fa6b2f..396a94b0 100644 --- a/eng/policy/dependency-policy.json +++ b/eng/policy/dependency-policy.json @@ -27,7 +27,7 @@ "eng/provenance/artifact-profiles/dokka-2-2-0-r8.json": "224432d3957639e42fb429aa2841d80dbfd10aaec18b8ab3b4bf3851829f2089", "eng/provenance/records/canonical-apache-licence-r1.json": "e4252278767a0b4dd27a09a50b176c9420469828345e61336a4b5ca1d17c7b44", "eng/provenance/records/con17-published-descriptors-r1.json": "b0f35abb8edcaa665d53663f5eaad3cd7825195fd93bbe093101e29452bed97c", - "eng/provenance/records/con17-semantic-export-r1.json": "06bf05bdc83fe32ddd5bd98803654a8aa42ff0ef2d7a00f5d2993b494de357fd", + "eng/provenance/records/con17-semantic-export-r1.json": "9ae65ee01b25241105c986f5f696eb3bc99c23e165613ba227e094424b64d720", "eng/provenance/records/contract-bindings-r2.json": "95d2bde3b8d00c03061866838bc28b907bcec0e29a0ede996a42e79b7bb53221", "eng/provenance/records/contract-bindings-r3.json": "ba8adc87164b16804cad6525c50674d4f1b05da89d1d300a9b4f770576906878", "eng/provenance/records/contract-bindings-r4.json": "0918c490633e7205d66af8fe7bd825cb4f6db259c12b4ba33ee08aa4e55e57aa", @@ -2460,7 +2460,7 @@ "eng/provenance/artifact-profiles/dokka-2-2-0-r8.json": "224432d3957639e42fb429aa2841d80dbfd10aaec18b8ab3b4bf3851829f2089", "eng/provenance/records/canonical-apache-licence-r1.json": "e4252278767a0b4dd27a09a50b176c9420469828345e61336a4b5ca1d17c7b44", "eng/provenance/records/con17-published-descriptors-r1.json": "b0f35abb8edcaa665d53663f5eaad3cd7825195fd93bbe093101e29452bed97c", - "eng/provenance/records/con17-semantic-export-r1.json": "06bf05bdc83fe32ddd5bd98803654a8aa42ff0ef2d7a00f5d2993b494de357fd", + "eng/provenance/records/con17-semantic-export-r1.json": "9ae65ee01b25241105c986f5f696eb3bc99c23e165613ba227e094424b64d720", "eng/provenance/records/contract-bindings-r2.json": "95d2bde3b8d00c03061866838bc28b907bcec0e29a0ede996a42e79b7bb53221", "eng/provenance/records/contract-bindings-r3.json": "ba8adc87164b16804cad6525c50674d4f1b05da89d1d300a9b4f770576906878", "eng/provenance/records/contract-bindings-r4.json": "0918c490633e7205d66af8fe7bd825cb4f6db259c12b4ba33ee08aa4e55e57aa", diff --git a/eng/policy/dependency-reviews/con17-previous-client-113-1.json b/eng/policy/dependency-reviews/con17-previous-client-113-1.json index 7d8ea159..529c3550 100644 --- a/eng/policy/dependency-reviews/con17-previous-client-113-1.json +++ b/eng/policy/dependency-reviews/con17-previous-client-113-1.json @@ -30,7 +30,7 @@ "eng/provenance/artifact-profiles/dokka-2-2-0-r8.json": "224432d3957639e42fb429aa2841d80dbfd10aaec18b8ab3b4bf3851829f2089", "eng/provenance/records/canonical-apache-licence-r1.json": "e4252278767a0b4dd27a09a50b176c9420469828345e61336a4b5ca1d17c7b44", "eng/provenance/records/con17-published-descriptors-r1.json": "b0f35abb8edcaa665d53663f5eaad3cd7825195fd93bbe093101e29452bed97c", - "eng/provenance/records/con17-semantic-export-r1.json": "06bf05bdc83fe32ddd5bd98803654a8aa42ff0ef2d7a00f5d2993b494de357fd", + "eng/provenance/records/con17-semantic-export-r1.json": "9ae65ee01b25241105c986f5f696eb3bc99c23e165613ba227e094424b64d720", "eng/provenance/records/contract-bindings-r2.json": "95d2bde3b8d00c03061866838bc28b907bcec0e29a0ede996a42e79b7bb53221", "eng/provenance/records/contract-bindings-r3.json": "ba8adc87164b16804cad6525c50674d4f1b05da89d1d300a9b4f770576906878", "eng/provenance/records/contract-bindings-r4.json": "0918c490633e7205d66af8fe7bd825cb4f6db259c12b4ba33ee08aa4e55e57aa", diff --git a/eng/provenance/records/con17-semantic-export-r1.json b/eng/provenance/records/con17-semantic-export-r1.json index 7e5a3513..624b49c5 100644 --- a/eng/provenance/records/con17-semantic-export-r1.json +++ b/eng/provenance/records/con17-semantic-export-r1.json @@ -7,7 +7,9 @@ "sourcePaths": [ "eng/contract-packages.json", "eng/contracts.py", + "eng/generate_fixtures.py", "fixtures/internal/wp03-00.json", + "fixtures/public/con-17-compat-hash.json", "fixtures/public/hello.json", "fixtures/public/wp03-00.json", "fixtures/public/wp03-01.json", @@ -1760,7 +1762,7 @@ "verification": { "kind": "regeneration", "command": "python eng/contracts.py generate --check", - "expected": "The existing generator reproduces the one added semantic-hash export; all unchanged barrel exports retain their original package owners.", + "expected": "The existing generators reproduce the semantic-hash barrel export and public fixture package including the independently authored CON17 vectors; other generated targets retain their accepted ownership.", "artifacts": [] }, "notice": { @@ -1942,6 +1944,21 @@ "finding": "Exact export generator source snapshot; unchanged binding generator evidence is retained." } ] + }, + { + "repository": "https://github.com/ArcForges/Contracts", + "commit": "39612a52d25245cf6b1bbc7142b5a7864c00be53", + "paths": [ + "eng/generate_fixtures.py" + ], + "spdx": "Apache-2.0", + "evidence": [ + { + "path": "eng/generate_fixtures.py", + "sha256": "0417ade78531767c655d27d72999ec3916929283a8acf2d63b8af214af16ff88", + "finding": "Existing Apache fixture exporter regenerates the package index from the public fixture inputs." + } + ] } ], "inputs": [ @@ -2084,6 +2101,21 @@ "finding": "Reviewed exact Apache-2.0 schema, rule, fixture or generator input at the bound source snapshot." } ] + }, + { + "repository": "https://github.com/ArcForges/Contracts", + "commit": "39612a52d25245cf6b1bbc7142b5a7864c00be53", + "paths": [ + "fixtures/public/con-17-compat-hash.json" + ], + "spdx": "Apache-2.0", + "evidence": [ + { + "path": "fixtures/public/con-17-compat-hash.json", + "sha256": "61272b4e1bb12f83eadc4b60384c2734918e1814db829b02d9a127ef532d43b4", + "finding": "Exact independently authored CON17 canonical semantic hash golden/refusal input exported to the public fixture package." + } + ] } ], "command": "python eng/contracts.py generate --check", @@ -2094,7 +2126,7 @@ "reviewer": "w-20260927-platform (file-level licence assessment; independent task review remains required)", "reviewedOn": "2026-09-27", "decision": "approved", - "rationale": "Only the generator-owned proto export barrel adds the first-party semantic hash module. No package identity, upstream generator or licence boundary changes; original generated provenance remains linked through supersedes.", + "rationale": "The generator-owned proto barrel exports the first-party semantic hash module, and the public fixture package exports the exact owned CON17 golden/refusal vectors. Existing bindings retain their accepted input lineage; no package, upstream generator or licence boundary changes.", "baselineCommit": "a1d2f4bd6ff05f80e86c776ce9f7070729b38898", "reconciliation": false }, diff --git a/tests/tooling/test_dependency_admission.py b/tests/tooling/test_dependency_admission.py index ea9fbf3f..5ed979b3 100644 --- a/tests/tooling/test_dependency_admission.py +++ b/tests/tooling/test_dependency_admission.py @@ -40,12 +40,39 @@ def test_retirement_hash_exceptions_match_only_observed_exact_rows(self): changed = re.sub('[0-9a-f]{64}', '0' * 64, line) self.assertIsNone(re.fullmatch(pattern, changed)) + def test_con17_secret_exceptions_reject_other_paths_keys_digests_and_tokens(self): + config = tomllib.loads((ROOT / '.gitleaks.toml').read_text()) + paths = ['eng/policy/dependency-reviews/con17-previous-client-113-1.json', + 'eng/policy/dependency-policy.json'] + # Historical SHA verified from pre-rebase 8050e7f4c87eb40803c36cbc66979069246ed3dc; + # subsequent actual source snapshots are a1d2f4b and beb433af (CI findings). + digests = ['622d53ff60931677847ab90c550721b7630c13e167133bd13688215e46f5ae1e', + '9de84aa03629c593bad2d795db15f7edb83c5f01cb37b2cb1aca012c67660cbf', + '145298928cd567802b7e8504f75b765270f95539fe9f12d2d65405b4d6c8dc92'] + source = 'eng/policy/contract-access.json' + self.assertEqual(hashlib.sha256((ROOT / source).read_bytes().replace(b'\r\n', b'\n')).hexdigest(), digests[-1]) + for allow, path, expected in zip(config['allowlists'][17:], paths, [digests, digests[1:]], strict=True): + self.assertEqual(allow['targetRules'], ['generic-api-key']) + self.assertEqual(allow['condition'], 'AND') + self.assertEqual(allow['regexTarget'], 'line') + self.assertEqual(allow['paths'], ['^' + re.escape(path) + '$']) + for other in [path + '.backup', 'src/secrets.json', 'eng/policy/dependency-reviews/other.json']: + self.assertIsNone(re.fullmatch(allow['paths'][0], other)) + for pattern, digest in zip(allow['regexes'], expected, strict=True): + self.assertIsNotNone(re.fullmatch(pattern, f' "{source}": "{digest}",')) + for line in [f'"{source}": "' + '0' * 64 + '"', + f'"secret_key": "{digest}"', f'"{source}": "ghp_actual_credential"', + f'"{source}": "{digest}", "token": "extra"']: + self.assertIsNone(re.fullmatch(pattern, line)) + def setUp(self): self.policy = json.loads((ROOT / POLICY).read_text()) self.graph = inventory(ROOT) def test_current_closure(self): - self.assertEqual(audit(stable=True)['result'], 'passed') + self.assertEqual(audit()['result'], 'passed') + with self.assertRaisesRegex(ValueError, 'Stable closure contains prerelease: nuget:arcforges.contracts.'): + audit(stable=True) def test_forbidden_licence(self): next(iter(self.policy['closure'].values()))['licence'] = 'AGPL-3.0-only' @@ -128,7 +155,7 @@ def test_public_internal_guard_required(self): def test_secret_scan_exceptions_are_exact_public_source_rows(self): config = tomllib.loads((ROOT / '.gitleaks.toml').read_text()) self.assertEqual(config['extend'], {'useDefault': True}) - self.assertEqual(len(config['allowlists']), 17) + self.assertEqual(len(config['allowlists']), 19) allow = config['allowlists'][0] self.assertEqual(allow['targetRules'], ['generic-api-key']) self.assertEqual(allow['condition'], 'AND') @@ -278,7 +305,7 @@ def test_secret_scan_exceptions_are_exact_public_source_rows(self): self.assertIsNone(re.fullmatch(config['allowlists'][12]['paths'][0], 'eng/provenance/artifact-profiles/dokka-2-2-0-r8.json')) for source in sources: self.assertEqual(hashlib.sha256((ROOT / source).read_bytes().replace(b'\r\n', b'\n')).hexdigest(), self.policy['inputHashes'][source]) - self.assertEqual([len(item['regexes']) for item in config['allowlists']], [4, 2, 15, 4, 15, 45, 60, 4, 4, 4, 4, 4, 60, 2, 4, 15, 4]) + self.assertEqual([len(item['regexes']) for item in config['allowlists']], [4, 2, 15, 4, 15, 45, 60, 4, 4, 4, 4, 4, 60, 2, 4, 15, 4, 3, 2]) if __name__ == '__main__':