feat(knowledge): bind domain handoff to signer snapshot
This commit is contained in:
parent
323ceb58c7
commit
5054d4620f
4 changed files with 187 additions and 1 deletions
|
|
@ -9,6 +9,7 @@ const REGISTRY_ID = 'GH-AIOS-TRUSTED-DOMAIN-MANIFEST-SIGNERS-001';
|
|||
const REGISTRY_PATH = 'routing/trusted-domain-manifest-signers.json';
|
||||
const COMMIT_PATTERN = /^[a-f0-9]{40}(?:[a-f0-9]{24})?$/;
|
||||
const VERSION_PATTERN = /^(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)$/;
|
||||
const registeredLoadedSnapshots = new WeakSet<object>();
|
||||
|
||||
export interface TrustedSignerSnapshotTransport {
|
||||
fetchJson(url: string): Promise<unknown>;
|
||||
|
|
@ -98,7 +99,16 @@ function result(
|
|||
registry: TrustedManifestSignerRegistry | null,
|
||||
snapshotReceipt: Readonly<TrustedSignerSnapshotReceipt>,
|
||||
): TrustedSignerSnapshotResult {
|
||||
return Object.freeze({ registry, receipt: snapshotReceipt });
|
||||
const loaded = Object.freeze({ registry, receipt: snapshotReceipt });
|
||||
registeredLoadedSnapshots.add(loaded);
|
||||
return loaded;
|
||||
}
|
||||
|
||||
export function assertLoadedTrustedSignerSnapshot(
|
||||
snapshot: TrustedSignerSnapshotResult,
|
||||
): TrustedSignerSnapshotResult {
|
||||
if (!registeredLoadedSnapshots.has(snapshot)) throw new Error('trusted_signer_snapshot_unregistered');
|
||||
return snapshot;
|
||||
}
|
||||
|
||||
export class TrustedSignerSnapshotLoader {
|
||||
|
|
|
|||
Loading…
Reference in a new issue