Posture HF provider boundary for future extraction - #28
Conversation
Exact verification dispositionThe adapter-posture candidate is verified without provider/network/model access.
New contract evidence includes:
No Pluggy, entry-point discovery, separate wheels, generic registry, acquisition interface, provider SDK, credential use, runtime plugin, or policy/qualification change was introduced. The implementation remains a posture seam, not a plugin-system commitment. PR stays draft; no merge implied. |
Follow-through after real HF native materializationDownstream #29 / draft PR #30 has now exercised the first live provider-native acquisition boundary. Evidence:
Architecture disposition: CONFIRMS / NARROW. The live path did not require Pluggy, entry-point discovery, a generic
No broader provider/plugin work is justified before another real provider or extraction trigger supplies evidence. |
Purpose
Implements #27 as a posture-only increment on top of draft PR #25. It preserves the option to extract provider integrations into separately distributed wheels later without adding a plugin ecosystem to the MVP critical path now.
Red-team disposition
NARROW: use a small in-tree provider adapter seam now; defer Pluggy, Python entry-point discovery, separate wheels/repos, compatibility negotiation, and a general plugin manager until a second real implementation validates the boundary and an extraction trigger exists.
Implementation
tools/provider_adapters/contracts.pywith one stdlib-onlyProviderEvidenceAdapterprotocol for the already-proven boundary: captured provider evidence -> normalized Foundry observation;tools/provider_adapters/huggingface.pycontaining the HF-specific evidence interpretation formerly embedded in the CLI;tools/normalize_hf_observation.pybackward-compatible as a thin explicit wrapper around the in-tree HF adapter;docs/architecture/provider-adapter-posture.mdwith ownership boundaries, security caveat, extraction triggers, second-implementation gate, and explicit deferred work;Explicitly not added
A separately distributed Python wheel is documented as a packaging/dependency boundary, not a security sandbox.
Critical-path effect
No new MVP stage is introduced. The first HF path remains:
captured exact HF evidence -> in-tree HF adapter -> normalized observation -> later native materialization -> verified local handle -> desktop-ui-cv qualificationR4
Stacking:
impl/issue-24-hf-observationatc1694296eeed81a9f5cd11f5dadb13cb945ec976;Related: #18, #19, #24, #27; draft PRs #22/#23/#25;
SemperSupra/desktop-ui-cv#17/#19.