Add bounded public member inspection through shared query scopes

This commit is contained in:
Timothy J. Aveni
2026-09-22 18:11:54 -07:00
parent bcc915d597
commit c5e79ae3c9
5 changed files with 282 additions and 52 deletions
+8 -3
View File
@@ -1,3 +1,4 @@
import { compileInspectionTemplates, type InspectionTemplate } from "./inspection.js";
import path from "node:path";
import { loadCheckedArtifactWorld } from "./receipts.js";
import { contentArtifactUrl, loadArtifactWorld, type LoadedArtifactWorld } from "./files.js";
@@ -24,6 +25,7 @@ export interface ExecutionGroupIdentity {
readonly executionDigest: string;
}
export interface ClientContractCatalog {
readonly inspections: readonly InspectionTemplate[];
readonly resultInterfaces: Readonly<Record<string, readonly string[]>>;
readonly operations: readonly PublicOperationContract[];
readonly queries: readonly PublicQueryContract[];
@@ -66,14 +68,17 @@ export function clientContractCatalog(
.map((operation) => publicOperationContract(iface, operation)),
),
);
const inspection = compileInspectionTemplates(plan);
return {
inspections: inspection.templates,
resultInterfaces: Object.fromEntries(
plan.definition.operations.map((operation) => [operation.key, resultInterfaces(plan, operation.key)]),
),
operations,
queries: packages.flatMap((pkg) =>
(pkg.checkedQueries ?? []).map((q) => publicQueryContract(pkg, q.declaration.id)),
),
queries: [
...inspection.contracts,
...packages.flatMap((pkg) => (pkg.checkedQueries ?? []).map((q) => publicQueryContract(pkg, q.declaration.id))),
],
components: installation.components.filter((c) => requestedPackages.includes(c.packageRevision)),
moduleBindings: plan.definition.workspace.conformances.flatMap((c) =>
(c.moduleBindings ?? [])