from smoke.capabilities import ( CAPABILITY_CONTRACTS, capability_names, contracted_feature_ids, ) from smoke.features import FEATURE_INVENTORY, feature_ids EXPECTED_CAPABILITIES = { "api_compatibility", "auth", "cli", "config", "extensibility", "local_providers", "messaging", "openrouter", "persistence", "provider_routing", "provider_runtime", "request_behavior", "streaming_conversion", "voice", } def test_capability_map_covers_every_public_feature() -> None: assert contracted_feature_ids() == feature_ids() def test_capability_map_has_expected_top_level_groups() -> None: assert capability_names() == EXPECTED_CAPABILITIES def test_capability_contracts_are_decision_complete() -> None: known_features = {feature.feature_id: feature for feature in FEATURE_INVENTORY} for contract in CAPABILITY_CONTRACTS: assert contract.feature_id in known_features, contract assert contract.capability.strip(), contract assert contract.subfeature.strip(), contract assert contract.owner.strip(), contract assert contract.inputs.strip(), contract assert contract.outputs.strip(), contract assert contract.failure.strip(), contract assert contract.pytest_tests or contract.smoke_tests, contract def test_capability_contract_owners_do_not_reference_removed_request_pipeline() -> None: stale = [ contract for contract in CAPABILITY_CONTRACTS if "free_claude_code.api.request_pipeline" in contract.owner or "ApiRequestPipeline" in contract.owner ] assert stale == []