Use a local PdfJsXmpMetadata interface instead of the non-exported pdfjs
Metadata type, omit undefined optional fields in reconcileFingerprint, and
type discovery hook mocks with explicit DiscoveryCandidate return types.
Add ingestHtml and ingestMarkdown with ADR-0003 pageless offset semantics,
PDF intrinsic metadata extraction with caller-wins merge (WP-0003), and
citation recovery primitives including re-ingest reconcile, local quote
search, and pluggable discovery hooks (ADR-0004). Mark all three workplans
finished with contract tests (80 passing).