/** In-memory, provider-owned intermediate facts confined to one composed task. */ export class AnalysisWorkScope { readonly #entries = new Map(); #closed = false; get(owner: object): T | undefined { return this.#entries.get(owner) as T | undefined; } set(owner: object, value: T): void { if (!this.#closed) this.#entries.set(owner, value); } clear(): void { this.#closed = true; this.#entries.clear(); } }