| 710 | } |
| 711 | |
| 712 | async read(path: string, offset?: number, limit?: number): Promise<ReadResult | null> { |
| 713 | // Resolve the one lazy artifact being read into `files`; a no-op for eager |
| 714 | // paths (already present) and unknown paths (no loader). Lazy keys are always |
| 715 | // ASCII (built via encodeURIComponent), so no Unicode-normalized lookup is |
| 716 | // needed here; ops.read still does its own NFC/NFD fallback over `files`. |
| 717 | await this.resolveLazyPath(path) |
| 718 | return ops.read(this.files, path, offset, limit) |
| 719 | } |
| 720 | |
| 721 | suggestSimilar(missingPath: string, max?: number): string[] { |
| 722 | return ops.suggestSimilar(this.keyView(true), missingPath, max) |