22
33from quant_platform_kit .common .strategies import resolve_catalog_profile
44from quant_platform_kit .strategy_contracts import (
5+ StrategyArtifactContract ,
56 StrategyRuntimeAdapter ,
67 validate_strategy_runtime_adapter ,
78)
2324)
2425
2526
27+ CRYPTO_LEADER_ROTATION_ARTIFACT_CONTRACT = StrategyArtifactContract (
28+ requires_snapshot_artifacts = True ,
29+ requires_snapshot_manifest_path = True ,
30+ requires_strategy_config_path = False ,
31+ snapshot_contract_version = "crypto_leader_rotation.live_pool.v1" ,
32+ config_source_policy = "none" ,
33+ )
34+
35+
2636PLATFORM_RUNTIME_ADAPTERS : dict [str , dict [str , StrategyRuntimeAdapter ]] = {
2737 BINANCE_PLATFORM : {
2838 "crypto_leader_rotation" : StrategyRuntimeAdapter (
2939 status_icon = "🪙" ,
3040 available_inputs = CRYPTO_CANONICAL_REQUIRED_INPUTS ,
3141 portfolio_input_name = "portfolio_snapshot" ,
42+ artifact_contract = CRYPTO_LEADER_ROTATION_ARTIFACT_CONTRACT ,
3243 ),
3344 }
3445}
@@ -55,6 +66,7 @@ def get_platform_runtime_adapter(profile: str | None, *, platform_id: str) -> St
5566__all__ = [
5667 "BINANCE_PLATFORM" ,
5768 "CRYPTO_CANONICAL_REQUIRED_INPUTS" ,
69+ "CRYPTO_LEADER_ROTATION_ARTIFACT_CONTRACT" ,
5870 "PLATFORM_RUNTIME_ADAPTERS" ,
5971 "get_platform_runtime_adapter" ,
6072 "resolve_canonical_profile" ,
0 commit comments