Entry construction — a 50+ line if/elif chain mapping entry types to constructors with type-specific kwargs — is duplicated in three places:
Any new entry type with special constructor kwargs must be added to all three locations, and they can drift out of sync.
Also: the KB config lookup pattern (`for kbc in config.knowledge_bases: if kbc.name == kb:`) is repeated 4x in entries.py when `config.get_kb()` already exists.
Fix
Extract a `build_entry(entry_type: str, **kwargs) -> Entry` factory function in `pyrite/models/factory.py` that all call sites use. The factory should consult the plugin registry for plugin-provided entry types.