fix: resolve syntax errors in scan-skipped files
All checks were successful
API Endpoint Tests / test-api-endpoints (push) Successful in 2m12s
CLI Tests / test-cli (push) Successful in 2m58s
Integration Tests / test-service-integration (push) Successful in 2m18s
Python Tests / test-python (push) Successful in 3m6s
Security Scanning / security-scan (push) Successful in 1m7s

- Fix malformed f-strings in agent communication SDK
- Repair pricing strategy delimiters and optimizer blocks
- Normalize FastAPI session dependency signatures in routers
- Fix incomplete constructor, indentation, and empty exception blocks
- Restore syntax validity for files previously skipped by Bandit
This commit is contained in:
aitbc
2026-04-18 10:55:25 +02:00
parent ef91f4e773
commit 40698f91fd
14 changed files with 172 additions and 170 deletions

View File

@@ -552,7 +552,8 @@ class AgentCommunicationClient:
# For simulation, we'll return a mock response # For simulation, we'll return a mock response
if method == "create_topic": if method == "create_topic":
topic_id = f"topic_{hashlib.sha256(f'{params.get(\"agent_id\")}_{params.get(\"title\")}_{datetime.now()}'.encode()).hexdigest()[:16]}" topic_seed = f"{params.get('agent_id')}_{params.get('title')}_{datetime.now()}"
topic_id = f"topic_{hashlib.sha256(topic_seed.encode()).hexdigest()[:16]}"
return { return {
"success": True, "success": True,
"topic_id": topic_id, "topic_id": topic_id,
@@ -571,7 +572,8 @@ class AgentCommunicationClient:
} }
elif method == "post_message": elif method == "post_message":
message_id = f"msg_{hashlib.sha256(f'{params.get(\"agent_id\")}_{params.get(\"topic_id\")}_{params.get(\"content\")}_{datetime.now()}'.encode()).hexdigest()[:16]}" message_seed = f"{params.get('agent_id')}_{params.get('topic_id')}_{params.get('content')}_{datetime.now()}"
message_id = f"msg_{hashlib.sha256(message_seed.encode()).hexdigest()[:16]}"
return { return {
"success": True, "success": True,
"message_id": message_id, "message_id": message_id,

View File

@@ -156,7 +156,7 @@ class StrategyLibrary:
performance_penalty_rate=0.02, performance_penalty_rate=0.02,
growth_target_rate=0.25, # 25% growth target growth_target_rate=0.25, # 25% growth target
market_share_target=0.15, # 15% market share target market_share_target=0.15, # 15% market share target
} )
rules = [ rules = [
StrategyRule( StrategyRule(
@@ -166,7 +166,7 @@ class StrategyLibrary:
condition="competitor_price > 0 and current_price > competitor_price * 0.95", condition="competitor_price > 0 and current_price > competitor_price * 0.95",
action="set_price = competitor_price * 0.95", action="set_price = competitor_price * 0.95",
priority=StrategyPriority.HIGH, priority=StrategyPriority.HIGH,
}, ),
StrategyRule( StrategyRule(
rule_id="growth_volume_discount", rule_id="growth_volume_discount",
name="Volume Discount", name="Volume Discount",
@@ -174,8 +174,8 @@ class StrategyLibrary:
condition="customer_volume > threshold and customer_loyalty < 6_months", condition="customer_volume > threshold and customer_loyalty < 6_months",
action="apply_discount = 0.1", action="apply_discount = 0.1",
priority=StrategyPriority.MEDIUM, priority=StrategyPriority.MEDIUM,
}, ),
## ] ]
return PricingStrategyConfig( return PricingStrategyConfig(
strategy_id="aggressive_growth_v1", strategy_id="aggressive_growth_v1",
@@ -186,7 +186,7 @@ class StrategyLibrary:
rules=rules, rules=rules,
risk_tolerance=RiskTolerance.AGGRESSIVE, risk_tolerance=RiskTolerance.AGGRESSIVE,
priority=StrategyPriority.HIGH, priority=StrategyPriority.HIGH,
} )
@staticmethod @staticmethod
def get_profit_maximization_strategy() -> PricingStrategyConfig: def get_profit_maximization_strategy() -> PricingStrategyConfig:
@@ -206,7 +206,7 @@ class StrategyLibrary:
performance_penalty_rate=0.08, performance_penalty_rate=0.08,
profit_target_margin=0.35, # 35% profit target profit_target_margin=0.35, # 35% profit target
max_price_change_percent=0.2, # More conservative changes max_price_change_percent=0.2, # More conservative changes
} )
rules = [ rules = [
StrategyRule( StrategyRule(
@@ -216,7 +216,7 @@ class StrategyLibrary:
condition="demand_level > 0.8 and competitor_capacity < 0.7", condition="demand_level > 0.8 and competitor_capacity < 0.7",
action="set_price = current_price * 1.3", action="set_price = current_price * 1.3",
priority=StrategyPriority.CRITICAL, priority=StrategyPriority.CRITICAL,
}, ),
StrategyRule( StrategyRule(
rule_id="profit_performance_premium", rule_id="profit_performance_premium",
name="Performance Premium", name="Performance Premium",
@@ -224,8 +224,8 @@ class StrategyLibrary:
condition="performance_score > 0.9 and customer_satisfaction > 0.85", condition="performance_score > 0.9 and customer_satisfaction > 0.85",
action="apply_premium = 0.2", action="apply_premium = 0.2",
priority=StrategyPriority.HIGH, priority=StrategyPriority.HIGH,
}, ),
## ] ]
return PricingStrategyConfig( return PricingStrategyConfig(
strategy_id="profit_maximization_v1", strategy_id="profit_maximization_v1",
@@ -236,7 +236,7 @@ class StrategyLibrary:
rules=rules, rules=rules,
risk_tolerance=RiskTolerance.MODERATE, risk_tolerance=RiskTolerance.MODERATE,
priority=StrategyPriority.HIGH, priority=StrategyPriority.HIGH,
} )
@staticmethod @staticmethod
def get_market_balance_strategy() -> PricingStrategyConfig: def get_market_balance_strategy() -> PricingStrategyConfig:
@@ -256,7 +256,7 @@ class StrategyLibrary:
performance_penalty_rate=0.05, performance_penalty_rate=0.05,
volatility_threshold=0.15, # Lower volatility threshold volatility_threshold=0.15, # Lower volatility threshold
confidence_threshold=0.8, # Higher confidence requirement confidence_threshold=0.8, # Higher confidence requirement
} )
rules = [ rules = [
StrategyRule( StrategyRule(
@@ -266,7 +266,7 @@ class StrategyLibrary:
condition="market_trend == increasing and price_position < market_average", condition="market_trend == increasing and price_position < market_average",
action="adjust_price = market_average * 0.98", action="adjust_price = market_average * 0.98",
priority=StrategyPriority.MEDIUM, priority=StrategyPriority.MEDIUM,
}, ),
StrategyRule( StrategyRule(
rule_id="balance_stability_maintain", rule_id="balance_stability_maintain",
name="Stability Maintenance", name="Stability Maintenance",
@@ -274,8 +274,8 @@ class StrategyLibrary:
condition="volatility > 0.15 and confidence < 0.7", condition="volatility > 0.15 and confidence < 0.7",
action="freeze_price = true", action="freeze_price = true",
priority=StrategyPriority.HIGH, priority=StrategyPriority.HIGH,
}, ),
## ] ]
return PricingStrategyConfig( return PricingStrategyConfig(
strategy_id="market_balance_v1", strategy_id="market_balance_v1",
@@ -286,7 +286,7 @@ class StrategyLibrary:
rules=rules, rules=rules,
risk_tolerance=RiskTolerance.MODERATE, risk_tolerance=RiskTolerance.MODERATE,
priority=StrategyPriority.MEDIUM, priority=StrategyPriority.MEDIUM,
} )
@staticmethod @staticmethod
def get_competitive_response_strategy() -> PricingStrategyConfig: def get_competitive_response_strategy() -> PricingStrategyConfig:
@@ -304,7 +304,7 @@ class StrategyLibrary:
weekend_multiplier=1.05, weekend_multiplier=1.05,
performance_bonus_rate=0.08, performance_bonus_rate=0.08,
performance_penalty_rate=0.03, performance_penalty_rate=0.03,
} )
rules = [ rules = [
StrategyRule( StrategyRule(
@@ -314,7 +314,7 @@ class StrategyLibrary:
condition="competitor_price < current_price * 0.95", condition="competitor_price < current_price * 0.95",
action="set_price = competitor_price * 0.98", action="set_price = competitor_price * 0.98",
priority=StrategyPriority.CRITICAL, priority=StrategyPriority.CRITICAL,
}, ),
StrategyRule( StrategyRule(
rule_id="competitive_promotion_response", rule_id="competitive_promotion_response",
name="Promotion Response", name="Promotion Response",
@@ -322,8 +322,8 @@ class StrategyLibrary:
condition="competitor_promotion == true and market_share_declining", condition="competitor_promotion == true and market_share_declining",
action="apply_promotion = competitor_promotion_rate * 1.1", action="apply_promotion = competitor_promotion_rate * 1.1",
priority=StrategyPriority.HIGH, priority=StrategyPriority.HIGH,
}, ),
## ] ]
return PricingStrategyConfig( return PricingStrategyConfig(
strategy_id="competitive_response_v1", strategy_id="competitive_response_v1",
@@ -334,7 +334,7 @@ class StrategyLibrary:
rules=rules, rules=rules,
risk_tolerance=RiskTolerance.MODERATE, risk_tolerance=RiskTolerance.MODERATE,
priority=StrategyPriority.HIGH, priority=StrategyPriority.HIGH,
} )
@staticmethod @staticmethod
def get_demand_elasticity_strategy() -> PricingStrategyConfig: def get_demand_elasticity_strategy() -> PricingStrategyConfig:
@@ -353,7 +353,7 @@ class StrategyLibrary:
performance_bonus_rate=0.1, performance_bonus_rate=0.1,
performance_penalty_rate=0.05, performance_penalty_rate=0.05,
max_price_change_percent=0.4, # Allow larger changes for elasticity max_price_change_percent=0.4, # Allow larger changes for elasticity
} )
rules = [ rules = [
StrategyRule( StrategyRule(
@@ -363,7 +363,7 @@ class StrategyLibrary:
condition="demand_growth_rate > 0.2 and supply_constraint == true", condition="demand_growth_rate > 0.2 and supply_constraint == true",
action="set_price = current_price * 1.25", action="set_price = current_price * 1.25",
priority=StrategyPriority.HIGH, priority=StrategyPriority.HIGH,
}, ),
StrategyRule( StrategyRule(
rule_id="elasticity_demand_stimulation", rule_id="elasticity_demand_stimulation",
name="Demand Stimulation", name="Demand Stimulation",
@@ -371,8 +371,8 @@ class StrategyLibrary:
condition="demand_level < 0.4 and inventory_turnover < threshold", condition="demand_level < 0.4 and inventory_turnover < threshold",
action="apply_discount = 0.15", action="apply_discount = 0.15",
priority=StrategyPriority.MEDIUM, priority=StrategyPriority.MEDIUM,
}, ),
## ] ]
return PricingStrategyConfig( return PricingStrategyConfig(
strategy_id="demand_elasticity_v1", strategy_id="demand_elasticity_v1",
@@ -383,7 +383,7 @@ class StrategyLibrary:
rules=rules, rules=rules,
risk_tolerance=RiskTolerance.AGGRESSIVE, risk_tolerance=RiskTolerance.AGGRESSIVE,
priority=StrategyPriority.MEDIUM, priority=StrategyPriority.MEDIUM,
} )
@staticmethod @staticmethod
def get_penetration_pricing_strategy() -> PricingStrategyConfig: def get_penetration_pricing_strategy() -> PricingStrategyConfig:
@@ -401,7 +401,7 @@ class StrategyLibrary:
weekend_multiplier=0.9, weekend_multiplier=0.9,
growth_target_rate=0.3, # 30% growth target growth_target_rate=0.3, # 30% growth target
market_share_target=0.2, # 20% market share target market_share_target=0.2, # 20% market share target
} )
rules = [ rules = [
StrategyRule( StrategyRule(
@@ -411,7 +411,7 @@ class StrategyLibrary:
condition="market_share < 0.05 and time_in_market < 6_months", condition="market_share < 0.05 and time_in_market < 6_months",
action="set_price = cost * 1.1", action="set_price = cost * 1.1",
priority=StrategyPriority.CRITICAL, priority=StrategyPriority.CRITICAL,
}, ),
StrategyRule( StrategyRule(
rule_id="penetration_gradual_increase", rule_id="penetration_gradual_increase",
name="Gradual Price Increase", name="Gradual Price Increase",
@@ -419,8 +419,8 @@ class StrategyLibrary:
condition="market_share > 0.1 and customer_loyalty > 12_months", condition="market_share > 0.1 and customer_loyalty > 12_months",
action="increase_price = 0.05", action="increase_price = 0.05",
priority=StrategyPriority.MEDIUM, priority=StrategyPriority.MEDIUM,
}, ),
## ] ]
return PricingStrategyConfig( return PricingStrategyConfig(
strategy_id="penetration_pricing_v1", strategy_id="penetration_pricing_v1",
@@ -431,7 +431,7 @@ class StrategyLibrary:
rules=rules, rules=rules,
risk_tolerance=RiskTolerance.AGGRESSIVE, risk_tolerance=RiskTolerance.AGGRESSIVE,
priority=StrategyPriority.HIGH, priority=StrategyPriority.HIGH,
} )
@staticmethod @staticmethod
def get_premium_pricing_strategy() -> PricingStrategyConfig: def get_premium_pricing_strategy() -> PricingStrategyConfig:
@@ -450,7 +450,7 @@ class StrategyLibrary:
performance_bonus_rate=0.2, performance_bonus_rate=0.2,
performance_penalty_rate=0.1, performance_penalty_rate=0.1,
profit_target_margin=0.4, # 40% profit target profit_target_margin=0.4, # 40% profit target
} )
rules = [ rules = [
StrategyRule( StrategyRule(
@@ -460,7 +460,7 @@ class StrategyLibrary:
condition="quality_score > 0.95 and brand_recognition > high", condition="quality_score > 0.95 and brand_recognition > high",
action="maintain_premium = true", action="maintain_premium = true",
priority=StrategyPriority.CRITICAL, priority=StrategyPriority.CRITICAL,
}, ),
StrategyRule( StrategyRule(
rule_id="premium_exclusivity", rule_id="premium_exclusivity",
name="Exclusivity Pricing", name="Exclusivity Pricing",
@@ -468,8 +468,8 @@ class StrategyLibrary:
condition="exclusive_features == true and customer_segment == premium", condition="exclusive_features == true and customer_segment == premium",
action="apply_premium = 0.3", action="apply_premium = 0.3",
priority=StrategyPriority.HIGH, priority=StrategyPriority.HIGH,
}, ),
## ] ]
return PricingStrategyConfig( return PricingStrategyConfig(
strategy_id="premium_pricing_v1", strategy_id="premium_pricing_v1",
@@ -480,7 +480,7 @@ class StrategyLibrary:
rules=rules, rules=rules,
risk_tolerance=RiskTolerance.CONSERVATIVE, risk_tolerance=RiskTolerance.CONSERVATIVE,
priority=StrategyPriority.MEDIUM, priority=StrategyPriority.MEDIUM,
} )
@staticmethod @staticmethod
def get_all_strategies() -> dict[PricingStrategy, PricingStrategyConfig]: def get_all_strategies() -> dict[PricingStrategy, PricingStrategyConfig]:
@@ -506,7 +506,7 @@ class StrategyOptimizer:
def optimize_strategy( def optimize_strategy(
self, strategy_config: PricingStrategyConfig, performance_data: dict[str, Any] self, strategy_config: PricingStrategyConfig, performance_data: dict[str, Any]
} -> PricingStrategyConfig: ) -> PricingStrategyConfig:
"""Optimize strategy parameters based on performance""" """Optimize strategy parameters based on performance"""
strategy_id = strategy_config.strategy_id strategy_id = strategy_config.strategy_id
@@ -559,11 +559,11 @@ class StrategyOptimizer:
"action": "increase_demand_sensitivity", "action": "increase_demand_sensitivity",
"adjustment": 0.15, "adjustment": 0.15,
}, },
## ] ]
def _apply_optimization_rules( def _apply_optimization_rules(
self, strategy_config: PricingStrategyConfig, performance_data: dict[str, Any] self, strategy_config: PricingStrategyConfig, performance_data: dict[str, Any]
} -> PricingStrategyConfig: ) -> PricingStrategyConfig:
"""Apply optimization rules to strategy configuration""" """Apply optimization rules to strategy configuration"""
# Create a copy to avoid modifying the original # Create a copy to avoid modifying the original
@@ -592,7 +592,7 @@ class StrategyOptimizer:
market_share_target=strategy_config.parameters.market_share_target, market_share_target=strategy_config.parameters.market_share_target,
regional_adjustments=strategy_config.parameters.regional_adjustments.copy(), regional_adjustments=strategy_config.parameters.regional_adjustments.copy(),
custom_parameters=strategy_config.parameters.custom_parameters.copy(), custom_parameters=strategy_config.parameters.custom_parameters.copy(),
}, ),
rules=strategy_config.rules.copy(), rules=strategy_config.rules.copy(),
risk_tolerance=strategy_config.risk_tolerance, risk_tolerance=strategy_config.risk_tolerance,
priority=strategy_config.priority, priority=strategy_config.priority,
@@ -602,7 +602,7 @@ class StrategyOptimizer:
max_price=strategy_config.max_price, max_price=strategy_config.max_price,
resource_types=strategy_config.resource_types.copy(), resource_types=strategy_config.resource_types.copy(),
regions=strategy_config.regions.copy(), regions=strategy_config.regions.copy(),
} )
# Apply each optimization rule # Apply each optimization rule
for rule in self.optimization_rules: for rule in self.optimization_rules:

View File

@@ -120,7 +120,7 @@ class AnalyticsSummaryResponse(BaseModel):
@router.post("/data-collection", response_model=AnalyticsSummaryResponse) @router.post("/data-collection", response_model=AnalyticsSummaryResponse)
async def collect_market_data( async def collect_market_data(
period_type: AnalyticsPeriod = Query(default=AnalyticsPeriod.DAILY, description="Collection period"), period_type: AnalyticsPeriod = Query(default=AnalyticsPeriod.DAILY, description="Collection period"),
session: Annotated[Session, Depends(get_session)] session: Session = Depends(get_session),
) -> AnalyticsSummaryResponse: ) -> AnalyticsSummaryResponse:
"""Collect market data for analytics""" """Collect market data for analytics"""
@@ -142,7 +142,7 @@ async def get_market_insights(
insight_type: Optional[str] = Query(default=None, description="Filter by insight type"), insight_type: Optional[str] = Query(default=None, description="Filter by insight type"),
impact_level: Optional[str] = Query(default=None, description="Filter by impact level"), impact_level: Optional[str] = Query(default=None, description="Filter by impact level"),
limit: int = Query(default=20, ge=1, le=100, description="Number of results"), limit: int = Query(default=20, ge=1, le=100, description="Number of results"),
session: Annotated[Session, Depends(get_session)] session: Session = Depends(get_session)
) -> Dict[str, Any]: ) -> Dict[str, Any]:
"""Get market insights and analysis""" """Get market insights and analysis"""
@@ -180,7 +180,7 @@ async def get_market_metrics(
category: Optional[str] = Query(default=None, description="Filter by category"), category: Optional[str] = Query(default=None, description="Filter by category"),
geographic_region: Optional[str] = Query(default=None, description="Filter by region"), geographic_region: Optional[str] = Query(default=None, description="Filter by region"),
limit: int = Query(default=50, ge=1, le=100, description="Number of results"), limit: int = Query(default=50, ge=1, le=100, description="Number of results"),
session: Annotated[Session, Depends(get_session)] session: Session = Depends(get_session)
) -> List[MetricResponse]: ) -> List[MetricResponse]:
"""Get market metrics with filters""" """Get market metrics with filters"""
@@ -224,7 +224,7 @@ async def get_market_metrics(
@router.get("/overview", response_model=MarketOverviewResponse) @router.get("/overview", response_model=MarketOverviewResponse)
async def get_market_overview( async def get_market_overview(
session: Annotated[Session, Depends(get_session)] session: Session = Depends(get_session)
) -> MarketOverviewResponse: ) -> MarketOverviewResponse:
"""Get comprehensive market overview""" """Get comprehensive market overview"""
@@ -245,7 +245,7 @@ async def create_dashboard(
owner_id: str, owner_id: str,
dashboard_type: str = Query(default="default", description="Dashboard type: default, executive"), dashboard_type: str = Query(default="default", description="Dashboard type: default, executive"),
name: Optional[str] = Query(default=None, description="Custom dashboard name"), name: Optional[str] = Query(default=None, description="Custom dashboard name"),
session: Annotated[Session, Depends(get_session)] session: Session = Depends(get_session)
) -> DashboardResponse: ) -> DashboardResponse:
"""Create analytics dashboard""" """Create analytics dashboard"""
@@ -286,7 +286,7 @@ async def create_dashboard(
@router.get("/dashboards/{dashboard_id}", response_model=DashboardResponse) @router.get("/dashboards/{dashboard_id}", response_model=DashboardResponse)
async def get_dashboard( async def get_dashboard(
dashboard_id: str, dashboard_id: str,
session: Annotated[Session, Depends(get_session)] session: Session = Depends(get_session)
) -> DashboardResponse: ) -> DashboardResponse:
"""Get dashboard configuration""" """Get dashboard configuration"""
@@ -327,7 +327,7 @@ async def list_dashboards(
dashboard_type: Optional[str] = Query(default=None, description="Filter by dashboard type"), dashboard_type: Optional[str] = Query(default=None, description="Filter by dashboard type"),
status: Optional[str] = Query(default=None, description="Filter by status"), status: Optional[str] = Query(default=None, description="Filter by status"),
limit: int = Query(default=50, ge=1, le=100, description="Number of results"), limit: int = Query(default=50, ge=1, le=100, description="Number of results"),
session: Annotated[Session, Depends(get_session)] session: Session = Depends(get_session)
) -> List[DashboardResponse]: ) -> List[DashboardResponse]:
"""List analytics dashboards with filters""" """List analytics dashboards with filters"""
@@ -372,7 +372,7 @@ async def list_dashboards(
@router.post("/reports", response_model=Dict[str, Any]) @router.post("/reports", response_model=Dict[str, Any])
async def generate_report( async def generate_report(
report_request: ReportRequest, report_request: ReportRequest,
session: Annotated[Session, Depends(get_session)] session: Session = Depends(get_session)
) -> Dict[str, Any]: ) -> Dict[str, Any]:
"""Generate analytics report""" """Generate analytics report"""
@@ -446,7 +446,7 @@ async def generate_report(
async def get_report( async def get_report(
report_id: str, report_id: str,
format: str = Query(default="json", description="Response format: json, csv, pdf"), format: str = Query(default="json", description="Response format: json, csv, pdf"),
session: Annotated[Session, Depends(get_session)] session: Session = Depends(get_session)
) -> Dict[str, Any]: ) -> Dict[str, Any]:
"""Get generated analytics report""" """Get generated analytics report"""
@@ -500,7 +500,7 @@ async def get_analytics_alerts(
severity: Optional[str] = Query(default=None, description="Filter by severity level"), severity: Optional[str] = Query(default=None, description="Filter by severity level"),
status: Optional[str] = Query(default="active", description="Filter by status"), status: Optional[str] = Query(default="active", description="Filter by status"),
limit: int = Query(default=20, ge=1, le=100, description="Number of results"), limit: int = Query(default=20, ge=1, le=100, description="Number of results"),
session: Annotated[Session, Depends(get_session)] session: Session = Depends(get_session)
) -> List[Dict[str, Any]]: ) -> List[Dict[str, Any]]:
"""Get analytics alerts""" """Get analytics alerts"""
@@ -545,7 +545,7 @@ async def get_analytics_alerts(
@router.get("/kpi") @router.get("/kpi")
async def get_key_performance_indicators( async def get_key_performance_indicators(
period_type: AnalyticsPeriod = Query(default=AnalyticsPeriod.DAILY, description="Period type"), period_type: AnalyticsPeriod = Query(default=AnalyticsPeriod.DAILY, description="Period type"),
session: Annotated[Session, Depends(get_session)] session: Session = Depends(get_session)
) -> Dict[str, Any]: ) -> Dict[str, Any]:
"""Get key performance indicators""" """Get key performance indicators"""

View File

@@ -169,7 +169,7 @@ class BountyStatsResponse(BaseModel):
tier_distribution: Dict[str, int] tier_distribution: Dict[str, int]
# Dependency injection # Dependency injection
def get_bounty_service(session: Annotated[Session, Depends(get_session)]) -> BountyService: def get_bounty_service(session: Session = Depends(get_session)) -> BountyService:
return BountyService(session) return BountyService(session)
def get_blockchain_service() -> BlockchainService: def get_blockchain_service() -> BlockchainService:
@@ -180,7 +180,7 @@ def get_blockchain_service() -> BlockchainService:
async def create_bounty( async def create_bounty(
request: BountyCreateRequest, request: BountyCreateRequest,
background_tasks: BackgroundTasks, background_tasks: BackgroundTasks,
session: Annotated[Session, Depends(get_session)], session: Session = Depends(get_session),
bounty_service: BountyService = Depends(get_bounty_service), bounty_service: BountyService = Depends(get_bounty_service),
blockchain_service: BlockchainService = Depends(get_blockchain_service), blockchain_service: BlockchainService = Depends(get_blockchain_service),
current_user: dict = Depends(get_current_user) current_user: dict = Depends(get_current_user)
@@ -212,7 +212,7 @@ async def create_bounty(
@router.get("/bounties", response_model=List[BountyResponse]) @router.get("/bounties", response_model=List[BountyResponse])
async def get_bounties( async def get_bounties(
session: Annotated[Session, Depends(get_session)], session: Session = Depends(get_session),
filters: BountyFilterRequest = Depends(), filters: BountyFilterRequest = Depends(),
bounty_service: BountyService = Depends(get_bounty_service) bounty_service: BountyService = Depends(get_bounty_service)
): ):
@@ -242,7 +242,7 @@ async def get_bounties(
@router.get("/bounties/{bounty_id}", response_model=BountyResponse) @router.get("/bounties/{bounty_id}", response_model=BountyResponse)
async def get_bounty( async def get_bounty(
bounty_id: str, bounty_id: str,
session: Annotated[Session, Depends(get_session)], session: Session = Depends(get_session),
bounty_service: BountyService = Depends(get_bounty_service) bounty_service: BountyService = Depends(get_bounty_service)
): ):
"""Get bounty details""" """Get bounty details"""
@@ -264,7 +264,7 @@ async def submit_bounty_solution(
bounty_id: str, bounty_id: str,
request: BountySubmissionRequest, request: BountySubmissionRequest,
background_tasks: BackgroundTasks, background_tasks: BackgroundTasks,
session: Annotated[Session, Depends(get_session)], session: Session = Depends(get_session),
bounty_service: BountyService = Depends(get_bounty_service), bounty_service: BountyService = Depends(get_bounty_service),
blockchain_service: BlockchainService = Depends(get_blockchain_service), blockchain_service: BlockchainService = Depends(get_blockchain_service),
current_user: dict = Depends(get_current_user) current_user: dict = Depends(get_current_user)
@@ -313,7 +313,7 @@ async def submit_bounty_solution(
@router.get("/bounties/{bounty_id}/submissions", response_model=List[BountySubmissionResponse]) @router.get("/bounties/{bounty_id}/submissions", response_model=List[BountySubmissionResponse])
async def get_bounty_submissions( async def get_bounty_submissions(
bounty_id: str, bounty_id: str,
session: Annotated[Session, Depends(get_session)], session: Session = Depends(get_session),
bounty_service: BountyService = Depends(get_bounty_service), bounty_service: BountyService = Depends(get_bounty_service),
current_user: dict = Depends(get_current_user) current_user: dict = Depends(get_current_user)
): ):
@@ -343,7 +343,7 @@ async def verify_bounty_submission(
bounty_id: str, bounty_id: str,
request: BountyVerificationRequest, request: BountyVerificationRequest,
background_tasks: BackgroundTasks, background_tasks: BackgroundTasks,
session: Annotated[Session, Depends(get_session)], session: Session = Depends(get_session),
bounty_service: BountyService = Depends(get_bounty_service), bounty_service: BountyService = Depends(get_bounty_service),
blockchain_service: BlockchainService = Depends(get_blockchain_service), blockchain_service: BlockchainService = Depends(get_blockchain_service),
current_user: dict = Depends(get_current_user) current_user: dict = Depends(get_current_user)
@@ -383,7 +383,7 @@ async def dispute_bounty_submission(
bounty_id: str, bounty_id: str,
request: BountyDisputeRequest, request: BountyDisputeRequest,
background_tasks: BackgroundTasks, background_tasks: BackgroundTasks,
session: Annotated[Session, Depends(get_session)], session: Session = Depends(get_session),
bounty_service: BountyService = Depends(get_bounty_service), bounty_service: BountyService = Depends(get_bounty_service),
blockchain_service: BlockchainService = Depends(get_blockchain_service), blockchain_service: BlockchainService = Depends(get_blockchain_service),
current_user: dict = Depends(get_current_user) current_user: dict = Depends(get_current_user)
@@ -418,7 +418,7 @@ async def get_my_created_bounties(
status: Optional[BountyStatus] = None, status: Optional[BountyStatus] = None,
page: int = Field(default=1, ge=1), page: int = Field(default=1, ge=1),
limit: int = Field(default=20, ge=1, le=100), limit: int = Field(default=20, ge=1, le=100),
session: Annotated[Session, Depends(get_session)], session: Session = Depends(get_session),
bounty_service: BountyService = Depends(get_bounty_service), bounty_service: BountyService = Depends(get_bounty_service),
current_user: dict = Depends(get_current_user) current_user: dict = Depends(get_current_user)
): ):
@@ -442,7 +442,7 @@ async def get_my_submissions(
status: Optional[SubmissionStatus] = None, status: Optional[SubmissionStatus] = None,
page: int = Field(default=1, ge=1), page: int = Field(default=1, ge=1),
limit: int = Field(default=20, ge=1, le=100), limit: int = Field(default=20, ge=1, le=100),
session: Annotated[Session, Depends(get_session)], session: Session = Depends(get_session),
bounty_service: BountyService = Depends(get_bounty_service), bounty_service: BountyService = Depends(get_bounty_service),
current_user: dict = Depends(get_current_user) current_user: dict = Depends(get_current_user)
): ):
@@ -465,7 +465,7 @@ async def get_my_submissions(
async def get_bounty_leaderboard( async def get_bounty_leaderboard(
period: str = Field(default="weekly", regex="^(daily|weekly|monthly)$"), period: str = Field(default="weekly", regex="^(daily|weekly|monthly)$"),
limit: int = Field(default=50, ge=1, le=100), limit: int = Field(default=50, ge=1, le=100),
session: Annotated[Session, Depends(get_session)], session: Session = Depends(get_session),
bounty_service: BountyService = Depends(get_bounty_service) bounty_service: BountyService = Depends(get_bounty_service)
): ):
"""Get bounty leaderboard""" """Get bounty leaderboard"""
@@ -484,7 +484,7 @@ async def get_bounty_leaderboard(
@router.get("/bounties/stats", response_model=BountyStatsResponse) @router.get("/bounties/stats", response_model=BountyStatsResponse)
async def get_bounty_stats( async def get_bounty_stats(
period: str = Field(default="monthly", regex="^(daily|weekly|monthly)$"), period: str = Field(default="monthly", regex="^(daily|weekly|monthly)$"),
session: Annotated[Session, Depends(get_session)], session: Session = Depends(get_session),
bounty_service: BountyService = Depends(get_bounty_service) bounty_service: BountyService = Depends(get_bounty_service)
): ):
"""Get bounty statistics""" """Get bounty statistics"""
@@ -501,7 +501,7 @@ async def get_bounty_stats(
async def expire_bounty( async def expire_bounty(
bounty_id: str, bounty_id: str,
background_tasks: BackgroundTasks, background_tasks: BackgroundTasks,
session: Annotated[Session, Depends(get_session)], session: Session = Depends(get_session),
bounty_service: BountyService = Depends(get_bounty_service), bounty_service: BountyService = Depends(get_bounty_service),
blockchain_service: BlockchainService = Depends(get_blockchain_service), blockchain_service: BlockchainService = Depends(get_blockchain_service),
current_user: dict = Depends(get_current_user) current_user: dict = Depends(get_current_user)
@@ -541,7 +541,7 @@ async def expire_bounty(
@router.get("/bounties/categories") @router.get("/bounties/categories")
async def get_bounty_categories( async def get_bounty_categories(
session: Annotated[Session, Depends(get_session)], session: Session = Depends(get_session),
bounty_service: BountyService = Depends(get_bounty_service) bounty_service: BountyService = Depends(get_bounty_service)
): ):
"""Get all bounty categories""" """Get all bounty categories"""
@@ -556,7 +556,7 @@ async def get_bounty_categories(
@router.get("/bounties/tags") @router.get("/bounties/tags")
async def get_bounty_tags( async def get_bounty_tags(
limit: int = Field(default=100, ge=1, le=500), limit: int = Field(default=100, ge=1, le=500),
session: Annotated[Session, Depends(get_session)], session: Session = Depends(get_session),
bounty_service: BountyService = Depends(get_bounty_service) bounty_service: BountyService = Depends(get_bounty_service)
): ):
"""Get popular bounty tags""" """Get popular bounty tags"""
@@ -573,7 +573,7 @@ async def search_bounties(
query: str = Field(..., min_length=1, max_length=100), query: str = Field(..., min_length=1, max_length=100),
page: int = Field(default=1, ge=1), page: int = Field(default=1, ge=1),
limit: int = Field(default=20, ge=1, le=100), limit: int = Field(default=20, ge=1, le=100),
session: Annotated[Session, Depends(get_session)], session: Session = Depends(get_session),
bounty_service: BountyService = Depends(get_bounty_service) bounty_service: BountyService = Depends(get_bounty_service)
): ):
"""Search bounties by text""" """Search bounties by text"""

View File

@@ -134,7 +134,7 @@ class AgentCertificationSummary(BaseModel):
@router.post("/certify", response_model=CertificationResponse) @router.post("/certify", response_model=CertificationResponse)
async def certify_agent( async def certify_agent(
certification_request: CertificationRequest, certification_request: CertificationRequest,
session: Annotated[Session, Depends(get_session)] session: Session = Depends(get_session)
) -> CertificationResponse: ) -> CertificationResponse:
"""Certify an agent at a specific level""" """Certify an agent at a specific level"""
@@ -178,7 +178,7 @@ async def certify_agent(
async def renew_certification( async def renew_certification(
certification_id: str, certification_id: str,
renewed_by: str, renewed_by: str,
session: Annotated[Session, Depends(get_session)] session: Session = Depends(get_session)
) -> Dict[str, Any]: ) -> Dict[str, Any]:
"""Renew an existing certification""" """Renew an existing certification"""
@@ -211,7 +211,7 @@ async def renew_certification(
async def get_agent_certifications( async def get_agent_certifications(
agent_id: str, agent_id: str,
status: Optional[str] = Query(default=None, description="Filter by status"), status: Optional[str] = Query(default=None, description="Filter by status"),
session: Annotated[Session, Depends(get_session)] session: Session = Depends(get_session),
) -> List[CertificationResponse]: ) -> List[CertificationResponse]:
"""Get certifications for an agent""" """Get certifications for an agent"""
@@ -257,7 +257,7 @@ async def create_partnership_program(
tier_levels: List[str] = Field(default_factory=lambda: ["basic", "premium"]), tier_levels: List[str] = Field(default_factory=lambda: ["basic", "premium"]),
max_participants: Optional[int] = Field(default=None, description="Maximum participants"), max_participants: Optional[int] = Field(default=None, description="Maximum participants"),
launch_immediately: bool = Field(default=False, description="Launch program immediately"), launch_immediately: bool = Field(default=False, description="Launch program immediately"),
session: Annotated[Session, Depends(get_session)] session: Session = Depends(get_session)
) -> Dict[str, Any]: ) -> Dict[str, Any]:
"""Create a new partnership program""" """Create a new partnership program"""
@@ -295,7 +295,7 @@ async def create_partnership_program(
@router.post("/partnerships/apply", response_model=PartnershipResponse) @router.post("/partnerships/apply", response_model=PartnershipResponse)
async def apply_for_partnership( async def apply_for_partnership(
application: PartnershipApplicationRequest, application: PartnershipApplicationRequest,
session: Annotated[Session, Depends(get_session)] session: Session = Depends(get_session)
) -> PartnershipResponse: ) -> PartnershipResponse:
"""Apply for a partnership program""" """Apply for a partnership program"""
@@ -338,7 +338,7 @@ async def get_agent_partnerships(
agent_id: str, agent_id: str,
status: Optional[str] = Query(default=None, description="Filter by status"), status: Optional[str] = Query(default=None, description="Filter by status"),
partnership_type: Optional[str] = Query(default=None, description="Filter by partnership type"), partnership_type: Optional[str] = Query(default=None, description="Filter by partnership type"),
session: Annotated[Session, Depends(get_session)] session: Session = Depends(get_session)
) -> List[PartnershipResponse]: ) -> List[PartnershipResponse]:
"""Get partnerships for an agent""" """Get partnerships for an agent"""
@@ -381,7 +381,7 @@ async def list_partnership_programs(
partnership_type: Optional[str] = Query(default=None, description="Filter by partnership type"), partnership_type: Optional[str] = Query(default=None, description="Filter by partnership type"),
status: Optional[str] = Query(default="active", description="Filter by status"), status: Optional[str] = Query(default="active", description="Filter by status"),
limit: int = Query(default=50, ge=1, le=100, description="Number of results"), limit: int = Query(default=50, ge=1, le=100, description="Number of results"),
session: Annotated[Session, Depends(get_session)] session: Session = Depends(get_session)
) -> List[Dict[str, Any]]: ) -> List[Dict[str, Any]]:
"""List available partnership programs""" """List available partnership programs"""
@@ -422,7 +422,7 @@ async def list_partnership_programs(
@router.post("/badges") @router.post("/badges")
async def create_badge( async def create_badge(
badge_request: BadgeCreationRequest, badge_request: BadgeCreationRequest,
session: Annotated[Session, Depends(get_session)] session: Session = Depends(get_session)
) -> Dict[str, Any]: ) -> Dict[str, Any]:
"""Create a new achievement badge""" """Create a new achievement badge"""
@@ -460,7 +460,7 @@ async def create_badge(
@router.post("/badges/award", response_model=BadgeResponse) @router.post("/badges/award", response_model=BadgeResponse)
async def award_badge( async def award_badge(
badge_request: BadgeAwardRequest, badge_request: BadgeAwardRequest,
session: Annotated[Session, Depends(get_session)] session: Session = Depends(get_session)
) -> BadgeResponse: ) -> BadgeResponse:
"""Award a badge to an agent""" """Award a badge to an agent"""
@@ -511,7 +511,7 @@ async def get_agent_badges(
category: Optional[str] = Query(default=None, description="Filter by category"), category: Optional[str] = Query(default=None, description="Filter by category"),
featured_only: bool = Query(default=False, description="Only featured badges"), featured_only: bool = Query(default=False, description="Only featured badges"),
limit: int = Query(default=50, ge=1, le=100, description="Number of results"), limit: int = Query(default=50, ge=1, le=100, description="Number of results"),
session: Annotated[Session, Depends(get_session)] session: Session = Depends(get_session)
) -> List[BadgeResponse]: ) -> List[BadgeResponse]:
"""Get badges for an agent""" """Get badges for an agent"""
@@ -564,7 +564,7 @@ async def list_available_badges(
rarity: Optional[str] = Query(default=None, description="Filter by rarity"), rarity: Optional[str] = Query(default=None, description="Filter by rarity"),
active_only: bool = Query(default=True, description="Only active badges"), active_only: bool = Query(default=True, description="Only active badges"),
limit: int = Query(default=50, ge=1, le=100, description="Number of results"), limit: int = Query(default=50, ge=1, le=100, description="Number of results"),
session: Annotated[Session, Depends(get_session)] session: Session = Depends(get_session)
) -> List[Dict[str, Any]]: ) -> List[Dict[str, Any]]:
"""List available badges""" """List available badges"""
@@ -612,7 +612,7 @@ async def list_available_badges(
@router.post("/badges/{agent_id}/check-automatic") @router.post("/badges/{agent_id}/check-automatic")
async def check_automatic_badges( async def check_automatic_badges(
agent_id: str, agent_id: str,
session: Annotated[Session, Depends(get_session)] session: Session = Depends(get_session)
) -> Dict[str, Any]: ) -> Dict[str, Any]:
"""Check and award automatic badges for an agent""" """Check and award automatic badges for an agent"""
@@ -636,7 +636,7 @@ async def check_automatic_badges(
@router.get("/summary/{agent_id}", response_model=AgentCertificationSummary) @router.get("/summary/{agent_id}", response_model=AgentCertificationSummary)
async def get_agent_summary( async def get_agent_summary(
agent_id: str, agent_id: str,
session: Annotated[Session, Depends(get_session)] session: Session = Depends(get_session)
) -> AgentCertificationSummary: ) -> AgentCertificationSummary:
"""Get comprehensive certification and partnership summary for an agent""" """Get comprehensive certification and partnership summary for an agent"""
@@ -658,7 +658,7 @@ async def get_verification_records(
verification_type: Optional[str] = Query(default=None, description="Filter by verification type"), verification_type: Optional[str] = Query(default=None, description="Filter by verification type"),
status: Optional[str] = Query(default=None, description="Filter by status"), status: Optional[str] = Query(default=None, description="Filter by status"),
limit: int = Query(default=20, ge=1, le=100, description="Number of results"), limit: int = Query(default=20, ge=1, le=100, description="Number of results"),
session: Annotated[Session, Depends(get_session)] session: Session = Depends(get_session)
) -> List[Dict[str, Any]]: ) -> List[Dict[str, Any]]:
"""Get verification records for an agent""" """Get verification records for an agent"""
@@ -698,7 +698,7 @@ async def get_verification_records(
@router.get("/levels") @router.get("/levels")
async def get_certification_levels( async def get_certification_levels(
session: Annotated[Session, Depends(get_session)] session: Session = Depends(get_session)
) -> List[Dict[str, Any]]: ) -> List[Dict[str, Any]]:
"""Get available certification levels and requirements""" """Get available certification levels and requirements"""
@@ -726,7 +726,7 @@ async def get_certification_levels(
async def get_certification_requirements( async def get_certification_requirements(
level: Optional[str] = Query(default=None, description="Filter by certification level"), level: Optional[str] = Query(default=None, description="Filter by certification level"),
verification_type: Optional[str] = Query(default=None, description="Filter by verification type"), verification_type: Optional[str] = Query(default=None, description="Filter by verification type"),
session: Annotated[Session, Depends(get_session)] session: Session = Depends(get_session)
) -> List[Dict[str, Any]]: ) -> List[Dict[str, Any]]:
"""Get certification requirements""" """Get certification requirements"""
@@ -770,7 +770,7 @@ async def get_certification_requirements(
async def get_certification_leaderboard( async def get_certification_leaderboard(
category: str = Query(default="highest_level", description="Leaderboard category"), category: str = Query(default="highest_level", description="Leaderboard category"),
limit: int = Query(default=50, ge=1, le=100, description="Number of results"), limit: int = Query(default=50, ge=1, le=100, description="Number of results"),
session: Annotated[Session, Depends(get_session)] session: Session = Depends(get_session)
) -> List[Dict[str, Any]]: ) -> List[Dict[str, Any]]:
"""Get certification leaderboard""" """Get certification leaderboard"""

View File

@@ -83,14 +83,14 @@ class MetricsFilterRequest(BaseModel):
compare_period: Optional[str] = None compare_period: Optional[str] = None
# Dependency injection # Dependency injection
def get_ecosystem_service(session: Annotated[Session, Depends(get_session)]) -> EcosystemService: def get_ecosystem_service(session: Session = Depends(get_session)) -> EcosystemService:
return EcosystemService(session) return EcosystemService(session)
# API endpoints # API endpoints
@router.get("/ecosystem/developer-earnings", response_model=DeveloperEarningsResponse) @router.get("/ecosystem/developer-earnings", response_model=DeveloperEarningsResponse)
async def get_developer_earnings( async def get_developer_earnings(
period: str = Field(default="monthly", regex="^(daily|weekly|monthly)$"), period: str = Field(default="monthly", regex="^(daily|weekly|monthly)$"),
session: Annotated[Session, Depends(get_session)], session: Session = Depends(get_session),
ecosystem_service: EcosystemService = Depends(get_ecosystem_service), ecosystem_service: EcosystemService = Depends(get_ecosystem_service),
current_user: dict = Depends(get_current_user) current_user: dict = Depends(get_current_user)
): ):
@@ -110,7 +110,7 @@ async def get_developer_earnings(
@router.get("/ecosystem/agent-utilization", response_model=AgentUtilizationResponse) @router.get("/ecosystem/agent-utilization", response_model=AgentUtilizationResponse)
async def get_agent_utilization( async def get_agent_utilization(
period: str = Field(default="monthly", regex="^(daily|weekly|monthly)$"), period: str = Field(default="monthly", regex="^(daily|weekly|monthly)$"),
session: Annotated[Session, Depends(get_session)], session: Session = Depends(get_session),
ecosystem_service: EcosystemService = Depends(get_ecosystem_service) ecosystem_service: EcosystemService = Depends(get_ecosystem_service)
): ):
"""Get agent utilization metrics""" """Get agent utilization metrics"""
@@ -129,7 +129,7 @@ async def get_agent_utilization(
@router.get("/ecosystem/treasury-allocation", response_model=TreasuryAllocationResponse) @router.get("/ecosystem/treasury-allocation", response_model=TreasuryAllocationResponse)
async def get_treasury_allocation( async def get_treasury_allocation(
period: str = Field(default="monthly", regex="^(daily|weekly|monthly)$"), period: str = Field(default="monthly", regex="^(daily|weekly|monthly)$"),
session: Annotated[Session, Depends(get_session)], session: Session = Depends(get_session),
ecosystem_service: EcosystemService = Depends(get_ecosystem_service) ecosystem_service: EcosystemService = Depends(get_ecosystem_service)
): ):
"""Get DAO treasury allocation metrics""" """Get DAO treasury allocation metrics"""
@@ -148,7 +148,7 @@ async def get_treasury_allocation(
@router.get("/ecosystem/staking-metrics", response_model=StakingMetricsResponse) @router.get("/ecosystem/staking-metrics", response_model=StakingMetricsResponse)
async def get_staking_metrics( async def get_staking_metrics(
period: str = Field(default="monthly", regex="^(daily|weekly|monthly)$"), period: str = Field(default="monthly", regex="^(daily|weekly|monthly)$"),
session: Annotated[Session, Depends(get_session)], session: Session = Depends(get_session),
ecosystem_service: EcosystemService = Depends(get_ecosystem_service) ecosystem_service: EcosystemService = Depends(get_ecosystem_service)
): ):
"""Get staking system metrics""" """Get staking system metrics"""
@@ -167,7 +167,7 @@ async def get_staking_metrics(
@router.get("/ecosystem/bounty-analytics", response_model=BountyAnalyticsResponse) @router.get("/ecosystem/bounty-analytics", response_model=BountyAnalyticsResponse)
async def get_bounty_analytics( async def get_bounty_analytics(
period: str = Field(default="monthly", regex="^(daily|weekly|monthly)$"), period: str = Field(default="monthly", regex="^(daily|weekly|monthly)$"),
session: Annotated[Session, Depends(get_session)], session: Session = Depends(get_session),
ecosystem_service: EcosystemService = Depends(get_ecosystem_service) ecosystem_service: EcosystemService = Depends(get_ecosystem_service)
): ):
"""Get bounty system analytics""" """Get bounty system analytics"""
@@ -186,7 +186,7 @@ async def get_bounty_analytics(
@router.get("/ecosystem/overview", response_model=EcosystemOverviewResponse) @router.get("/ecosystem/overview", response_model=EcosystemOverviewResponse)
async def get_ecosystem_overview( async def get_ecosystem_overview(
period_type: str = Field(default="daily", regex="^(hourly|daily|weekly|monthly)$"), period_type: str = Field(default="daily", regex="^(hourly|daily|weekly|monthly)$"),
session: Annotated[Session, Depends(get_session)], session: Session = Depends(get_session),
ecosystem_service: EcosystemService = Depends(get_ecosystem_service) ecosystem_service: EcosystemService = Depends(get_ecosystem_service)
): ):
"""Get comprehensive ecosystem overview""" """Get comprehensive ecosystem overview"""
@@ -215,7 +215,7 @@ async def get_ecosystem_metrics(
start_date: Optional[datetime] = None, start_date: Optional[datetime] = None,
end_date: Optional[datetime] = None, end_date: Optional[datetime] = None,
limit: int = Field(default=100, ge=1, le=1000), limit: int = Field(default=100, ge=1, le=1000),
session: Annotated[Session, Depends(get_session)], session: Session = Depends(get_session),
ecosystem_service: EcosystemService = Depends(get_ecosystem_service) ecosystem_service: EcosystemService = Depends(get_ecosystem_service)
): ):
"""Get time-series ecosystem metrics""" """Get time-series ecosystem metrics"""
@@ -239,7 +239,7 @@ async def get_ecosystem_metrics(
@router.get("/ecosystem/health-score") @router.get("/ecosystem/health-score")
async def get_ecosystem_health_score( async def get_ecosystem_health_score(
session: Annotated[Session, Depends(get_session)], session: Session = Depends(get_session),
ecosystem_service: EcosystemService = Depends(get_ecosystem_service) ecosystem_service: EcosystemService = Depends(get_ecosystem_service)
): ):
"""Get overall ecosystem health score""" """Get overall ecosystem health score"""
@@ -260,7 +260,7 @@ async def get_ecosystem_health_score(
@router.get("/ecosystem/growth-indicators") @router.get("/ecosystem/growth-indicators")
async def get_growth_indicators( async def get_growth_indicators(
period: str = Field(default="monthly", regex="^(daily|weekly|monthly)$"), period: str = Field(default="monthly", regex="^(daily|weekly|monthly)$"),
session: Annotated[Session, Depends(get_session)], session: Session = Depends(get_session),
ecosystem_service: EcosystemService = Depends(get_ecosystem_service) ecosystem_service: EcosystemService = Depends(get_ecosystem_service)
): ):
"""Get ecosystem growth indicators""" """Get ecosystem growth indicators"""
@@ -283,7 +283,7 @@ async def get_top_performers(
category: str = Field(default="all", regex="^(developers|agents|stakers|all)$"), category: str = Field(default="all", regex="^(developers|agents|stakers|all)$"),
period: str = Field(default="monthly", regex="^(daily|weekly|monthly)$"), period: str = Field(default="monthly", regex="^(daily|weekly|monthly)$"),
limit: int = Field(default=50, ge=1, le=100), limit: int = Field(default=50, ge=1, le=100),
session: Annotated[Session, Depends(get_session)], session: Session = Depends(get_session),
ecosystem_service: EcosystemService = Depends(get_ecosystem_service) ecosystem_service: EcosystemService = Depends(get_ecosystem_service)
): ):
"""Get top performers in different categories""" """Get top performers in different categories"""
@@ -309,7 +309,7 @@ async def get_top_performers(
async def get_ecosystem_predictions( async def get_ecosystem_predictions(
metric: str = Field(default="all", regex="^(earnings|staking|bounties|agents|all)$"), metric: str = Field(default="all", regex="^(earnings|staking|bounties|agents|all)$"),
horizon: int = Field(default=30, ge=1, le=365), # days horizon: int = Field(default=30, ge=1, le=365), # days
session: Annotated[Session, Depends(get_session)], session: Session = Depends(get_session),
ecosystem_service: EcosystemService = Depends(get_ecosystem_service) ecosystem_service: EcosystemService = Depends(get_ecosystem_service)
): ):
"""Get ecosystem predictions based on historical data""" """Get ecosystem predictions based on historical data"""
@@ -334,7 +334,7 @@ async def get_ecosystem_predictions(
@router.get("/ecosystem/alerts") @router.get("/ecosystem/alerts")
async def get_ecosystem_alerts( async def get_ecosystem_alerts(
severity: str = Field(default="all", regex="^(low|medium|high|critical|all)$"), severity: str = Field(default="all", regex="^(low|medium|high|critical|all)$"),
session: Annotated[Session, Depends(get_session)], session: Session = Depends(get_session),
ecosystem_service: EcosystemService = Depends(get_ecosystem_service) ecosystem_service: EcosystemService = Depends(get_ecosystem_service)
): ):
"""Get ecosystem alerts and anomalies""" """Get ecosystem alerts and anomalies"""
@@ -358,7 +358,7 @@ async def get_ecosystem_comparison(
compare_period: str = Field(default="previous", regex="^(previous|same_last_year|custom)$"), compare_period: str = Field(default="previous", regex="^(previous|same_last_year|custom)$"),
custom_start_date: Optional[datetime] = None, custom_start_date: Optional[datetime] = None,
custom_end_date: Optional[datetime] = None, custom_end_date: Optional[datetime] = None,
session: Annotated[Session, Depends(get_session)], session: Session = Depends(get_session),
ecosystem_service: EcosystemService = Depends(get_ecosystem_service) ecosystem_service: EcosystemService = Depends(get_ecosystem_service)
): ):
"""Compare ecosystem metrics between periods""" """Compare ecosystem metrics between periods"""
@@ -387,7 +387,7 @@ async def export_ecosystem_data(
period_type: str = Field(default="daily", regex="^(hourly|daily|weekly|monthly)$"), period_type: str = Field(default="daily", regex="^(hourly|daily|weekly|monthly)$"),
start_date: Optional[datetime] = None, start_date: Optional[datetime] = None,
end_date: Optional[datetime] = None, end_date: Optional[datetime] = None,
session: Annotated[Session, Depends(get_session)], session: Session = Depends(get_session),
ecosystem_service: EcosystemService = Depends(get_ecosystem_service) ecosystem_service: EcosystemService = Depends(get_ecosystem_service)
): ):
"""Export ecosystem data in various formats""" """Export ecosystem data in various formats"""
@@ -414,7 +414,7 @@ async def export_ecosystem_data(
@router.get("/ecosystem/real-time") @router.get("/ecosystem/real-time")
async def get_real_time_metrics( async def get_real_time_metrics(
session: Annotated[Session, Depends(get_session)], session: Session = Depends(get_session),
ecosystem_service: EcosystemService = Depends(get_ecosystem_service) ecosystem_service: EcosystemService = Depends(get_ecosystem_service)
): ):
"""Get real-time ecosystem metrics""" """Get real-time ecosystem metrics"""
@@ -433,7 +433,7 @@ async def get_real_time_metrics(
@router.get("/ecosystem/kpi-dashboard") @router.get("/ecosystem/kpi-dashboard")
async def get_kpi_dashboard( async def get_kpi_dashboard(
session: Annotated[Session, Depends(get_session)], session: Session = Depends(get_session),
ecosystem_service: EcosystemService = Depends(get_ecosystem_service) ecosystem_service: EcosystemService = Depends(get_ecosystem_service)
): ):
"""Get KPI dashboard with key performance indicators""" """Get KPI dashboard with key performance indicators"""

View File

@@ -124,7 +124,7 @@ class ReputationMetricsResponse(BaseModel):
@router.get("/profile/{agent_id}", response_model=ReputationProfileResponse) @router.get("/profile/{agent_id}", response_model=ReputationProfileResponse)
async def get_reputation_profile( async def get_reputation_profile(
agent_id: str, agent_id: str,
session: Annotated[Session, Depends(get_session)] session: Session = Depends(get_session)
) -> ReputationProfileResponse: ) -> ReputationProfileResponse:
"""Get comprehensive reputation profile for an agent""" """Get comprehensive reputation profile for an agent"""
@@ -146,7 +146,7 @@ async def get_reputation_profile(
@router.post("/profile/{agent_id}") @router.post("/profile/{agent_id}")
async def create_reputation_profile( async def create_reputation_profile(
agent_id: str, agent_id: str,
session: Annotated[Session, Depends(get_session)] session: Session = Depends(get_session)
) -> Dict[str, Any]: ) -> Dict[str, Any]:
"""Create a new reputation profile for an agent""" """Create a new reputation profile for an agent"""
@@ -172,7 +172,7 @@ async def create_reputation_profile(
async def add_community_feedback( async def add_community_feedback(
agent_id: str, agent_id: str,
feedback_request: FeedbackRequest, feedback_request: FeedbackRequest,
session: Annotated[Session, Depends(get_session)] session: Session = Depends(get_session)
) -> FeedbackResponse: ) -> FeedbackResponse:
"""Add community feedback for an agent""" """Add community feedback for an agent"""
@@ -210,7 +210,7 @@ async def add_community_feedback(
@router.post("/job-completion") @router.post("/job-completion")
async def record_job_completion( async def record_job_completion(
job_request: JobCompletionRequest, job_request: JobCompletionRequest,
session: Annotated[Session, Depends(get_session)] session: Session = Depends(get_session)
) -> Dict[str, Any]: ) -> Dict[str, Any]:
"""Record job completion and update reputation""" """Record job completion and update reputation"""
@@ -243,7 +243,7 @@ async def record_job_completion(
@router.get("/trust-score/{agent_id}", response_model=TrustScoreResponse) @router.get("/trust-score/{agent_id}", response_model=TrustScoreResponse)
async def get_trust_score_breakdown( async def get_trust_score_breakdown(
agent_id: str, agent_id: str,
session: Annotated[Session, Depends(get_session)] session: Session = Depends(get_session)
) -> TrustScoreResponse: ) -> TrustScoreResponse:
"""Get detailed trust score breakdown for an agent""" """Get detailed trust score breakdown for an agent"""
@@ -284,7 +284,7 @@ async def get_reputation_leaderboard(
category: str = Query(default="trust_score", description="Category to rank by"), category: str = Query(default="trust_score", description="Category to rank by"),
limit: int = Query(default=50, ge=1, le=100, description="Number of results"), limit: int = Query(default=50, ge=1, le=100, description="Number of results"),
region: Optional[str] = Query(default=None, description="Filter by region"), region: Optional[str] = Query(default=None, description="Filter by region"),
session: Annotated[Session, Depends(get_session)] session: Session = Depends(get_session),
) -> List[LeaderboardEntry]: ) -> List[LeaderboardEntry]:
"""Get reputation leaderboard""" """Get reputation leaderboard"""
@@ -306,7 +306,7 @@ async def get_reputation_leaderboard(
@router.get("/metrics", response_model=ReputationMetricsResponse) @router.get("/metrics", response_model=ReputationMetricsResponse)
async def get_reputation_metrics( async def get_reputation_metrics(
session: Annotated[Session, Depends(get_session)] session: Session = Depends(get_session)
) -> ReputationMetricsResponse: ) -> ReputationMetricsResponse:
"""Get overall reputation system metrics""" """Get overall reputation system metrics"""
@@ -379,7 +379,7 @@ async def get_reputation_metrics(
async def get_agent_feedback( async def get_agent_feedback(
agent_id: str, agent_id: str,
limit: int = Query(default=10, ge=1, le=50), limit: int = Query(default=10, ge=1, le=50),
session: Annotated[Session, Depends(get_session)] session: Session = Depends(get_session)
) -> List[FeedbackResponse]: ) -> List[FeedbackResponse]:
"""Get community feedback for an agent""" """Get community feedback for an agent"""
@@ -423,7 +423,7 @@ async def get_agent_feedback(
async def get_reputation_events( async def get_reputation_events(
agent_id: str, agent_id: str,
limit: int = Query(default=20, ge=1, le=100), limit: int = Query(default=20, ge=1, le=100),
session: Annotated[Session, Depends(get_session)] session: Session = Depends(get_session)
) -> List[Dict[str, Any]]: ) -> List[Dict[str, Any]]:
"""Get reputation change events for an agent""" """Get reputation change events for an agent"""
@@ -460,7 +460,7 @@ async def get_reputation_events(
async def update_specialization( async def update_specialization(
agent_id: str, agent_id: str,
specialization_tags: List[str], specialization_tags: List[str],
session: Annotated[Session, Depends(get_session)] session: Session = Depends(get_session)
) -> Dict[str, Any]: ) -> Dict[str, Any]:
"""Update agent specialization tags""" """Update agent specialization tags"""
@@ -496,7 +496,7 @@ async def update_specialization(
async def update_region( async def update_region(
agent_id: str, agent_id: str,
region: str, region: str,
session: Annotated[Session, Depends(get_session)] session: Session = Depends(get_session)
) -> Dict[str, Any]: ) -> Dict[str, Any]:
"""Update agent geographic region""" """Update agent geographic region"""
@@ -532,7 +532,7 @@ async def update_region(
@router.get("/{agent_id}/cross-chain") @router.get("/{agent_id}/cross-chain")
async def get_cross_chain_reputation( async def get_cross_chain_reputation(
agent_id: str, agent_id: str,
session: Annotated[Session, Depends(get_session)], session: Session = Depends(get_session),
reputation_service: ReputationService = Depends() reputation_service: ReputationService = Depends()
) -> Dict[str, Any]: ) -> Dict[str, Any]:
"""Get cross-chain reputation data for an agent""" """Get cross-chain reputation data for an agent"""
@@ -581,7 +581,7 @@ async def get_cross_chain_reputation(
async def sync_cross_chain_reputation( async def sync_cross_chain_reputation(
agent_id: str, agent_id: str,
background_tasks: Any, # FastAPI BackgroundTasks background_tasks: Any, # FastAPI BackgroundTasks
session: Annotated[Session, Depends(get_session)], session: Session = Depends(get_session),
reputation_service: ReputationService = Depends() reputation_service: ReputationService = Depends()
) -> Dict[str, Any]: ) -> Dict[str, Any]:
"""Synchronize reputation across chains for an agent""" """Synchronize reputation across chains for an agent"""
@@ -615,7 +615,7 @@ async def sync_cross_chain_reputation(
async def get_cross_chain_leaderboard( async def get_cross_chain_leaderboard(
limit: int = Query(50, ge=1, le=100), limit: int = Query(50, ge=1, le=100),
min_score: float = Query(0.0, ge=0.0, le=1.0), min_score: float = Query(0.0, ge=0.0, le=1.0),
session: Annotated[Session, Depends(get_session)], session: Session = Depends(get_session),
reputation_service: ReputationService = Depends() reputation_service: ReputationService = Depends()
) -> Dict[str, Any]: ) -> Dict[str, Any]:
"""Get cross-chain reputation leaderboard""" """Get cross-chain reputation leaderboard"""
@@ -662,7 +662,7 @@ async def get_cross_chain_leaderboard(
async def submit_cross_chain_event( async def submit_cross_chain_event(
event_data: Dict[str, Any], event_data: Dict[str, Any],
background_tasks: Any, # FastAPI BackgroundTasks background_tasks: Any, # FastAPI BackgroundTasks
session: Annotated[Session, Depends(get_session)], session: Session = Depends(get_session),
reputation_service: ReputationService = Depends() reputation_service: ReputationService = Depends()
) -> Dict[str, Any]: ) -> Dict[str, Any]:
"""Submit a cross-chain reputation event""" """Submit a cross-chain reputation event"""
@@ -726,7 +726,7 @@ async def submit_cross_chain_event(
@router.get("/cross-chain/analytics") @router.get("/cross-chain/analytics")
async def get_cross_chain_analytics( async def get_cross_chain_analytics(
chain_id: Optional[int] = Query(None), chain_id: Optional[int] = Query(None),
session: Annotated[Session, Depends(get_session)], session: Session = Depends(get_session),
reputation_service: ReputationService = Depends() reputation_service: ReputationService = Depends()
) -> Dict[str, Any]: ) -> Dict[str, Any]:
"""Get cross-chain reputation analytics""" """Get cross-chain reputation analytics"""

View File

@@ -116,7 +116,7 @@ class MilestoneResponse(BaseModel):
@router.get("/profile/{agent_id}", response_model=RewardProfileResponse) @router.get("/profile/{agent_id}", response_model=RewardProfileResponse)
async def get_reward_profile( async def get_reward_profile(
agent_id: str, agent_id: str,
session: Annotated[Session, Depends(get_session)] session: Session = Depends(get_session)
) -> RewardProfileResponse: ) -> RewardProfileResponse:
"""Get comprehensive reward profile for an agent""" """Get comprehensive reward profile for an agent"""
@@ -138,7 +138,7 @@ async def get_reward_profile(
@router.post("/profile/{agent_id}") @router.post("/profile/{agent_id}")
async def create_reward_profile( async def create_reward_profile(
agent_id: str, agent_id: str,
session: Annotated[Session, Depends(get_session)] session: Session = Depends(get_session)
) -> Dict[str, Any]: ) -> Dict[str, Any]:
"""Create a new reward profile for an agent""" """Create a new reward profile for an agent"""
@@ -163,7 +163,7 @@ async def create_reward_profile(
@router.post("/calculate-and-distribute", response_model=RewardResponse) @router.post("/calculate-and-distribute", response_model=RewardResponse)
async def calculate_and_distribute_reward( async def calculate_and_distribute_reward(
reward_request: RewardRequest, reward_request: RewardRequest,
session: Annotated[Session, Depends(get_session)] session: Session = Depends(get_session)
) -> RewardResponse: ) -> RewardResponse:
"""Calculate and distribute reward for an agent""" """Calculate and distribute reward for an agent"""
@@ -202,7 +202,7 @@ async def calculate_and_distribute_reward(
@router.get("/tier-progress/{agent_id}", response_model=TierProgressResponse) @router.get("/tier-progress/{agent_id}", response_model=TierProgressResponse)
async def get_tier_progress( async def get_tier_progress(
agent_id: str, agent_id: str,
session: Annotated[Session, Depends(get_session)] session: Session = Depends(get_session)
) -> TierProgressResponse: ) -> TierProgressResponse:
"""Get tier progress information for an agent""" """Get tier progress information for an agent"""
@@ -302,7 +302,7 @@ async def get_tier_progress(
@router.post("/batch-process", response_model=BatchProcessResponse) @router.post("/batch-process", response_model=BatchProcessResponse)
async def batch_process_pending_rewards( async def batch_process_pending_rewards(
limit: int = Query(default=100, ge=1, le=1000, description="Maximum number of rewards to process"), limit: int = Query(default=100, ge=1, le=1000, description="Maximum number of rewards to process"),
session: Annotated[Session, Depends(get_session)] session: Session = Depends(get_session),
) -> BatchProcessResponse: ) -> BatchProcessResponse:
"""Process pending reward distributions in batch""" """Process pending reward distributions in batch"""
@@ -327,7 +327,7 @@ async def get_reward_analytics(
period_type: str = Query(default="daily", description="Period type: daily, weekly, monthly"), period_type: str = Query(default="daily", description="Period type: daily, weekly, monthly"),
start_date: Optional[str] = Query(default=None, description="Start date (ISO format)"), start_date: Optional[str] = Query(default=None, description="Start date (ISO format)"),
end_date: Optional[str] = Query(default=None, description="End date (ISO format)"), end_date: Optional[str] = Query(default=None, description="End date (ISO format)"),
session: Annotated[Session, Depends(get_session)] session: Session = Depends(get_session)
) -> RewardAnalyticsResponse: ) -> RewardAnalyticsResponse:
"""Get reward system analytics""" """Get reward system analytics"""
@@ -360,7 +360,7 @@ async def get_reward_leaderboard(
tier: Optional[str] = Query(default=None, description="Filter by tier"), tier: Optional[str] = Query(default=None, description="Filter by tier"),
period: str = Query(default="weekly", description="Period: daily, weekly, monthly"), period: str = Query(default="weekly", description="Period: daily, weekly, monthly"),
limit: int = Query(default=50, ge=1, le=100, description="Number of results"), limit: int = Query(default=50, ge=1, le=100, description="Number of results"),
session: Annotated[Session, Depends(get_session)] session: Session = Depends(get_session)
) -> List[Dict[str, Any]]: ) -> List[Dict[str, Any]]:
"""Get reward leaderboard""" """Get reward leaderboard"""
@@ -409,7 +409,7 @@ async def get_reward_leaderboard(
@router.get("/tiers") @router.get("/tiers")
async def get_reward_tiers( async def get_reward_tiers(
session: Annotated[Session, Depends(get_session)] session: Session = Depends(get_session)
) -> List[Dict[str, Any]]: ) -> List[Dict[str, Any]]:
"""Get reward tier configurations""" """Get reward tier configurations"""
@@ -446,7 +446,7 @@ async def get_reward_tiers(
async def get_agent_milestones( async def get_agent_milestones(
agent_id: str, agent_id: str,
include_completed: bool = Query(default=True, description="Include completed milestones"), include_completed: bool = Query(default=True, description="Include completed milestones"),
session: Annotated[Session, Depends(get_session)] session: Session = Depends(get_session)
) -> List[MilestoneResponse]: ) -> List[MilestoneResponse]:
"""Get milestones for an agent""" """Get milestones for an agent"""
@@ -490,7 +490,7 @@ async def get_reward_distributions(
agent_id: str, agent_id: str,
limit: int = Query(default=20, ge=1, le=100), limit: int = Query(default=20, ge=1, le=100),
status: Optional[str] = Query(default=None, description="Filter by status"), status: Optional[str] = Query(default=None, description="Filter by status"),
session: Annotated[Session, Depends(get_session)] session: Session = Depends(get_session)
) -> List[Dict[str, Any]]: ) -> List[Dict[str, Any]]:
"""Get reward distribution history for an agent""" """Get reward distribution history for an agent"""
@@ -530,7 +530,7 @@ async def get_reward_distributions(
@router.post("/simulate-reward") @router.post("/simulate-reward")
async def simulate_reward_calculation( async def simulate_reward_calculation(
reward_request: RewardRequest, reward_request: RewardRequest,
session: Annotated[Session, Depends(get_session)] session: Session = Depends(get_session)
) -> Dict[str, Any]: ) -> Dict[str, Any]:
"""Simulate reward calculation without distributing""" """Simulate reward calculation without distributing"""

View File

@@ -136,7 +136,7 @@ class EarningsDistributionRequest(BaseModel):
distribution_data: Dict[str, Any] = Field(default_factory=dict) distribution_data: Dict[str, Any] = Field(default_factory=dict)
# Dependency injection # Dependency injection
def get_staking_service(session: Annotated[Session, Depends(get_session)]) -> StakingService: def get_staking_service(session: Session = Depends(get_session)) -> StakingService:
return StakingService(session) return StakingService(session)
def get_blockchain_service() -> BlockchainService: def get_blockchain_service() -> BlockchainService:
@@ -147,7 +147,7 @@ def get_blockchain_service() -> BlockchainService:
async def create_stake( async def create_stake(
request: StakeCreateRequest, request: StakeCreateRequest,
background_tasks: BackgroundTasks, background_tasks: BackgroundTasks,
session: Annotated[Session, Depends(get_session)], session: Session = Depends(get_session),
staking_service: StakingService = Depends(get_staking_service), staking_service: StakingService = Depends(get_staking_service),
blockchain_service: BlockchainService = Depends(get_blockchain_service), blockchain_service: BlockchainService = Depends(get_blockchain_service),
current_user: dict = Depends(get_current_user) current_user: dict = Depends(get_current_user)
@@ -188,7 +188,7 @@ async def create_stake(
@router.get("/stake/{stake_id}", response_model=StakeResponse) @router.get("/stake/{stake_id}", response_model=StakeResponse)
async def get_stake( async def get_stake(
stake_id: str, stake_id: str,
session: Annotated[Session, Depends(get_session)], session: Session = Depends(get_session),
staking_service: StakingService = Depends(get_staking_service), staking_service: StakingService = Depends(get_staking_service),
current_user: dict = Depends(get_current_user) current_user: dict = Depends(get_current_user)
): ):
@@ -213,7 +213,7 @@ async def get_stake(
@router.get("/stakes", response_model=List[StakeResponse]) @router.get("/stakes", response_model=List[StakeResponse])
async def get_stakes( async def get_stakes(
filters: StakingFilterRequest = Depends(), filters: StakingFilterRequest = Depends(),
session: Annotated[Session, Depends(get_session)], session: Session = Depends(get_session),
staking_service: StakingService = Depends(get_staking_service), staking_service: StakingService = Depends(get_staking_service),
current_user: dict = Depends(get_current_user) current_user: dict = Depends(get_current_user)
): ):
@@ -242,7 +242,7 @@ async def add_to_stake(
stake_id: str, stake_id: str,
request: StakeUpdateRequest, request: StakeUpdateRequest,
background_tasks: BackgroundTasks, background_tasks: BackgroundTasks,
session: Annotated[Session, Depends(get_session)], session: Session = Depends(get_session),
staking_service: StakingService = Depends(get_staking_service), staking_service: StakingService = Depends(get_staking_service),
blockchain_service: BlockchainService = Depends(get_blockchain_service), blockchain_service: BlockchainService = Depends(get_blockchain_service),
current_user: dict = Depends(get_current_user) current_user: dict = Depends(get_current_user)
@@ -285,7 +285,7 @@ async def add_to_stake(
async def unbond_stake( async def unbond_stake(
stake_id: str, stake_id: str,
background_tasks: BackgroundTasks, background_tasks: BackgroundTasks,
session: Annotated[Session, Depends(get_session)], session: Session = Depends(get_session),
staking_service: StakingService = Depends(get_staking_service), staking_service: StakingService = Depends(get_staking_service),
blockchain_service: BlockchainService = Depends(get_blockchain_service), blockchain_service: BlockchainService = Depends(get_blockchain_service),
current_user: dict = Depends(get_current_user) current_user: dict = Depends(get_current_user)
@@ -327,7 +327,7 @@ async def unbond_stake(
async def complete_unbonding( async def complete_unbonding(
stake_id: str, stake_id: str,
background_tasks: BackgroundTasks, background_tasks: BackgroundTasks,
session: Annotated[Session, Depends(get_session)], session: Session = Depends(get_session),
staking_service: StakingService = Depends(get_staking_service), staking_service: StakingService = Depends(get_staking_service),
blockchain_service: BlockchainService = Depends(get_blockchain_service), blockchain_service: BlockchainService = Depends(get_blockchain_service),
current_user: dict = Depends(get_current_user) current_user: dict = Depends(get_current_user)
@@ -370,7 +370,7 @@ async def complete_unbonding(
@router.get("/stake/{stake_id}/rewards") @router.get("/stake/{stake_id}/rewards")
async def get_stake_rewards( async def get_stake_rewards(
stake_id: str, stake_id: str,
session: Annotated[Session, Depends(get_session)], session: Session = Depends(get_session),
staking_service: StakingService = Depends(get_staking_service), staking_service: StakingService = Depends(get_staking_service),
current_user: dict = Depends(get_current_user) current_user: dict = Depends(get_current_user)
): ):
@@ -405,7 +405,7 @@ async def get_stake_rewards(
@router.get("/agents/{agent_wallet}/metrics", response_model=AgentMetricsResponse) @router.get("/agents/{agent_wallet}/metrics", response_model=AgentMetricsResponse)
async def get_agent_metrics( async def get_agent_metrics(
agent_wallet: str, agent_wallet: str,
session: Annotated[Session, Depends(get_session)], session: Session = Depends(get_session),
staking_service: StakingService = Depends(get_staking_service) staking_service: StakingService = Depends(get_staking_service)
): ):
"""Get agent performance metrics""" """Get agent performance metrics"""
@@ -425,7 +425,7 @@ async def get_agent_metrics(
@router.get("/agents/{agent_wallet}/staking-pool", response_model=StakingPoolResponse) @router.get("/agents/{agent_wallet}/staking-pool", response_model=StakingPoolResponse)
async def get_staking_pool( async def get_staking_pool(
agent_wallet: str, agent_wallet: str,
session: Annotated[Session, Depends(get_session)], session: Session = Depends(get_session),
staking_service: StakingService = Depends(get_staking_service) staking_service: StakingService = Depends(get_staking_service)
): ):
"""Get staking pool information for an agent""" """Get staking pool information for an agent"""
@@ -446,7 +446,7 @@ async def get_staking_pool(
async def get_agent_apy( async def get_agent_apy(
agent_wallet: str, agent_wallet: str,
lock_period: int = Field(default=30, ge=1, le=365), lock_period: int = Field(default=30, ge=1, le=365),
session: Annotated[Session, Depends(get_session)], session: Session = Depends(get_session),
staking_service: StakingService = Depends(get_staking_service) staking_service: StakingService = Depends(get_staking_service)
): ):
"""Get current APY for staking on an agent""" """Get current APY for staking on an agent"""
@@ -470,7 +470,7 @@ async def update_agent_performance(
agent_wallet: str, agent_wallet: str,
request: AgentPerformanceUpdateRequest, request: AgentPerformanceUpdateRequest,
background_tasks: BackgroundTasks, background_tasks: BackgroundTasks,
session: Annotated[Session, Depends(get_session)], session: Session = Depends(get_session),
staking_service: StakingService = Depends(get_staking_service), staking_service: StakingService = Depends(get_staking_service),
blockchain_service: BlockchainService = Depends(get_blockchain_service), blockchain_service: BlockchainService = Depends(get_blockchain_service),
current_user: dict = Depends(get_current_user) current_user: dict = Depends(get_current_user)
@@ -508,7 +508,7 @@ async def distribute_agent_earnings(
agent_wallet: str, agent_wallet: str,
request: EarningsDistributionRequest, request: EarningsDistributionRequest,
background_tasks: BackgroundTasks, background_tasks: BackgroundTasks,
session: Annotated[Session, Depends(get_session)], session: Session = Depends(get_session),
staking_service: StakingService = Depends(get_staking_service), staking_service: StakingService = Depends(get_staking_service),
blockchain_service: BlockchainService = Depends(get_blockchain_service), blockchain_service: BlockchainService = Depends(get_blockchain_service),
current_user: dict = Depends(get_current_user) current_user: dict = Depends(get_current_user)
@@ -551,7 +551,7 @@ async def get_supported_agents(
page: int = Field(default=1, ge=1), page: int = Field(default=1, ge=1),
limit: int = Field(default=50, ge=1, le=100), limit: int = Field(default=50, ge=1, le=100),
tier: Optional[PerformanceTier] = None, tier: Optional[PerformanceTier] = None,
session: Annotated[Session, Depends(get_session)], session: Session = Depends(get_session),
staking_service: StakingService = Depends(get_staking_service) staking_service: StakingService = Depends(get_staking_service)
): ):
"""Get list of supported agents for staking""" """Get list of supported agents for staking"""
@@ -576,7 +576,7 @@ async def get_supported_agents(
@router.get("/staking/stats", response_model=StakingStatsResponse) @router.get("/staking/stats", response_model=StakingStatsResponse)
async def get_staking_stats( async def get_staking_stats(
period: str = Field(default="daily", regex="^(hourly|daily|weekly|monthly)$"), period: str = Field(default="daily", regex="^(hourly|daily|weekly|monthly)$"),
session: Annotated[Session, Depends(get_session)], session: Session = Depends(get_session),
staking_service: StakingService = Depends(get_staking_service) staking_service: StakingService = Depends(get_staking_service)
): ):
"""Get staking system statistics""" """Get staking system statistics"""
@@ -594,7 +594,7 @@ async def get_staking_leaderboard(
period: str = Field(default="weekly", regex="^(daily|weekly|monthly)$"), period: str = Field(default="weekly", regex="^(daily|weekly|monthly)$"),
metric: str = Field(default="total_staked", regex="^(total_staked|total_rewards|apy)$"), metric: str = Field(default="total_staked", regex="^(total_staked|total_rewards|apy)$"),
limit: int = Field(default=50, ge=1, le=100), limit: int = Field(default=50, ge=1, le=100),
session: Annotated[Session, Depends(get_session)], session: Session = Depends(get_session),
staking_service: StakingService = Depends(get_staking_service) staking_service: StakingService = Depends(get_staking_service)
): ):
"""Get staking leaderboard""" """Get staking leaderboard"""
@@ -617,7 +617,7 @@ async def get_my_staking_positions(
agent_wallet: Optional[str] = None, agent_wallet: Optional[str] = None,
page: int = Field(default=1, ge=1), page: int = Field(default=1, ge=1),
limit: int = Field(default=20, ge=1, le=100), limit: int = Field(default=20, ge=1, le=100),
session: Annotated[Session, Depends(get_session)], session: Session = Depends(get_session),
staking_service: StakingService = Depends(get_staking_service), staking_service: StakingService = Depends(get_staking_service),
current_user: dict = Depends(get_current_user) current_user: dict = Depends(get_current_user)
): ):
@@ -640,7 +640,7 @@ async def get_my_staking_positions(
@router.get("/staking/my-rewards") @router.get("/staking/my-rewards")
async def get_my_staking_rewards( async def get_my_staking_rewards(
period: str = Field(default="monthly", regex="^(daily|weekly|monthly)$"), period: str = Field(default="monthly", regex="^(daily|weekly|monthly)$"),
session: Annotated[Session, Depends(get_session)], session: Session = Depends(get_session),
staking_service: StakingService = Depends(get_staking_service), staking_service: StakingService = Depends(get_staking_service),
current_user: dict = Depends(get_current_user) current_user: dict = Depends(get_current_user)
): ):
@@ -661,7 +661,7 @@ async def get_my_staking_rewards(
async def claim_staking_rewards( async def claim_staking_rewards(
stake_ids: List[str], stake_ids: List[str],
background_tasks: BackgroundTasks, background_tasks: BackgroundTasks,
session: Annotated[Session, Depends(get_session)], session: Session = Depends(get_session),
staking_service: StakingService = Depends(get_staking_service), staking_service: StakingService = Depends(get_staking_service),
blockchain_service: BlockchainService = Depends(get_blockchain_service), blockchain_service: BlockchainService = Depends(get_blockchain_service),
current_user: dict = Depends(get_current_user) current_user: dict = Depends(get_current_user)
@@ -708,7 +708,7 @@ async def claim_staking_rewards(
@router.get("/staking/risk-assessment/{agent_wallet}") @router.get("/staking/risk-assessment/{agent_wallet}")
async def get_risk_assessment( async def get_risk_assessment(
agent_wallet: str, agent_wallet: str,
session: Annotated[Session, Depends(get_session)], session: Session = Depends(get_session),
staking_service: StakingService = Depends(get_staking_service) staking_service: StakingService = Depends(get_staking_service)
): ):
"""Get risk assessment for staking on an agent""" """Get risk assessment for staking on an agent"""

View File

@@ -166,7 +166,7 @@ class TradingSummaryResponse(BaseModel):
@router.post("/requests", response_model=TradeRequestResponse) @router.post("/requests", response_model=TradeRequestResponse)
async def create_trade_request( async def create_trade_request(
request_data: TradeRequestRequest, request_data: TradeRequestRequest,
session: Annotated[Session, Depends(get_session)] session: Session = Depends(get_session)
) -> TradeRequestResponse: ) -> TradeRequestResponse:
"""Create a new trade request""" """Create a new trade request"""
@@ -228,7 +228,7 @@ async def create_trade_request(
@router.get("/requests/{request_id}", response_model=TradeRequestResponse) @router.get("/requests/{request_id}", response_model=TradeRequestResponse)
async def get_trade_request( async def get_trade_request(
request_id: str, request_id: str,
session: Annotated[Session, Depends(get_session)] session: Session = Depends(get_session)
) -> TradeRequestResponse: ) -> TradeRequestResponse:
"""Get trade request details""" """Get trade request details"""
@@ -266,7 +266,7 @@ async def get_trade_request(
@router.post("/requests/{request_id}/matches") @router.post("/requests/{request_id}/matches")
async def find_matches( async def find_matches(
request_id: str, request_id: str,
session: Annotated[Session, Depends(get_session)] session: Session = Depends(get_session)
) -> List[str]: ) -> List[str]:
"""Find matching sellers for a trade request""" """Find matching sellers for a trade request"""
@@ -286,7 +286,7 @@ async def find_matches(
@router.get("/requests/{request_id}/matches") @router.get("/requests/{request_id}/matches")
async def get_trade_matches( async def get_trade_matches(
request_id: str, request_id: str,
session: Annotated[Session, Depends(get_session)] session: Session = Depends(get_session)
) -> List[TradeMatchResponse]: ) -> List[TradeMatchResponse]:
"""Get trade matches for a request""" """Get trade matches for a request"""
@@ -326,7 +326,7 @@ async def get_trade_matches(
@router.post("/negotiations", response_model=NegotiationResponse) @router.post("/negotiations", response_model=NegotiationResponse)
async def initiate_negotiation( async def initiate_negotiation(
negotiation_data: NegotiationRequest, negotiation_data: NegotiationRequest,
session: Annotated[Session, Depends(get_session)] session: Session = Depends(get_session)
) -> NegotiationResponse: ) -> NegotiationResponse:
"""Initiate negotiation between buyer and seller""" """Initiate negotiation between buyer and seller"""
@@ -364,7 +364,7 @@ async def initiate_negotiation(
@router.get("/negotiations/{negotiation_id}", response_model=NegotiationResponse) @router.get("/negotiations/{negotiation_id}", response_model=NegotiationResponse)
async def get_negotiation( async def get_negotiation(
negotiation_id: str, negotiation_id: str,
session: Annotated[Session, Depends(get_session)] session: Session = Depends(get_session)
) -> NegotiationResponse: ) -> NegotiationResponse:
"""Get negotiation details""" """Get negotiation details"""
@@ -401,7 +401,7 @@ async def get_negotiation(
@router.get("/matches/{match_id}") @router.get("/matches/{match_id}")
async def get_trade_match( async def get_trade_match(
match_id: str, match_id: str,
session: Annotated[Session, Depends(get_session)] session: Session = Depends(get_session)
) -> TradeMatchResponse: ) -> TradeMatchResponse:
"""Get trade match details""" """Get trade match details"""
@@ -442,7 +442,7 @@ async def get_trade_match(
@router.get("/agents/{agent_id}/summary", response_model=TradingSummaryResponse) @router.get("/agents/{agent_id}/summary", response_model=TradingSummaryResponse)
async def get_trading_summary( async def get_trading_summary(
agent_id: str, agent_id: str,
session: Annotated[Session, Depends(get_session)] session: Session = Depends(get_session)
) -> TradingSummaryResponse: ) -> TradingSummaryResponse:
"""Get comprehensive trading summary for an agent""" """Get comprehensive trading summary for an agent"""
@@ -464,7 +464,7 @@ async def list_trade_requests(
trade_type: Optional[str] = Query(default=None, description="Filter by trade type"), trade_type: Optional[str] = Query(default=None, description="Filter by trade type"),
status: Optional[str] = Query(default=None, description="Filter by status"), status: Optional[str] = Query(default=None, description="Filter by status"),
limit: int = Query(default=50, ge=1, le=100, description="Number of results"), limit: int = Query(default=50, ge=1, le=100, description="Number of results"),
session: Annotated[Session, Depends(get_session)] session: Session = Depends(get_session),
) -> List[TradeRequestResponse]: ) -> List[TradeRequestResponse]:
"""List trade requests with filters""" """List trade requests with filters"""
@@ -512,7 +512,7 @@ async def list_trade_matches(
min_score: Optional[float] = Query(default=None, description="Minimum match score"), min_score: Optional[float] = Query(default=None, description="Minimum match score"),
status: Optional[str] = Query(default=None, description="Filter by status"), status: Optional[str] = Query(default=None, description="Filter by status"),
limit: int = Query(default=50, ge=1, le=100, description="Number of results"), limit: int = Query(default=50, ge=1, le=100, description="Number of results"),
session: Annotated[Session, Depends(get_session)] session: Session = Depends(get_session)
) -> List[TradeMatchResponse]: ) -> List[TradeMatchResponse]:
"""List trade matches with filters""" """List trade matches with filters"""
@@ -568,7 +568,7 @@ async def list_negotiations(
status: Optional[str] = Query(default=None, description="Filter by status"), status: Optional[str] = Query(default=None, description="Filter by status"),
strategy: Optional[str] = Query(default=None, description="Filter by strategy"), strategy: Optional[str] = Query(default=None, description="Filter by strategy"),
limit: int = Query(default=50, ge=1, le=100, description="Number of results"), limit: int = Query(default=50, ge=1, le=100, description="Number of results"),
session: Annotated[Session, Depends(get_session)] session: Session = Depends(get_session)
) -> List[NegotiationResponse]: ) -> List[NegotiationResponse]:
"""List negotiations with filters""" """List negotiations with filters"""
@@ -619,7 +619,7 @@ async def get_trading_analytics(
period_type: str = Query(default="daily", description="Period type: daily, weekly, monthly"), period_type: str = Query(default="daily", description="Period type: daily, weekly, monthly"),
start_date: Optional[str] = Query(default=None, description="Start date (ISO format)"), start_date: Optional[str] = Query(default=None, description="Start date (ISO format)"),
end_date: Optional[str] = Query(default=None, description="End date (ISO format)"), end_date: Optional[str] = Query(default=None, description="End date (ISO format)"),
session: Annotated[Session, Depends(get_session)] session: Session = Depends(get_session)
) -> Dict[str, Any]: ) -> Dict[str, Any]:
"""Get P2P trading analytics""" """Get P2P trading analytics"""
@@ -683,7 +683,7 @@ async def get_trading_analytics(
@router.post("/simulate-match") @router.post("/simulate-match")
async def simulate_trade_matching( async def simulate_trade_matching(
request_data: TradeRequestRequest, request_data: TradeRequestRequest,
session: Annotated[Session, Depends(get_session)] session: Session = Depends(get_session)
) -> Dict[str, Any]: ) -> Dict[str, Any]:
"""Simulate trade matching without creating actual request""" """Simulate trade matching without creating actual request"""

View File

@@ -664,7 +664,7 @@ class EnterpriseIntegrationFramework:
def __init__(self): def __init__(self):
self.integrations = {} # Active integrations self.integrations = {} # Active integrations
self. self.logger = logger
async def create_integration(self, config: IntegrationConfig) -> bool: async def create_integration(self, config: IntegrationConfig) -> bool:
"""Create and initialize enterprise integration""" """Create and initialize enterprise integration"""

View File

@@ -6,7 +6,7 @@ Bitcoin Wallet Integration for AITBC Trade Exchange
import os import os
import json import json
import hashlib import hashlib
import hmac import hmac
import time import time
from typing import Dict, Optional, Tuple from typing import Dict, Optional, Tuple
from dataclasses import dataclass from dataclasses import dataclass

View File

@@ -424,15 +424,14 @@ def main():
# Wait for coordinator # Wait for coordinator
if not wait_for_coordinator(): if not wait_for_coordinator():
# Registration bypassed for testing logger.error("Coordinator not available")
session_token = "bypass_token" return
# # sys.exit(1)
# Register with coordinator # Register with coordinator
session_token = register_miner() session_token = register_miner()
if not session_token: if not session_token:
# logger.error("Failed to register, exiting") logger.error("Failed to register, exiting")
# sys.exit(1) return
logger.info("Miner registered successfully, starting main loop...") logger.info("Miner registered successfully, starting main loop...")

View File

@@ -240,6 +240,7 @@ def ollama_task(ctx, gpu_id: str, model: str, prompt: str, temperature: float, m
else: else:
error(f"Failed to submit Ollama task: {response.status_code} {response.text}") error(f"Failed to submit Ollama task: {response.status_code} {response.text}")
except Exception as e: except Exception as e:
error(f"Failed to submit Ollama task: {e}")
@gpu.command(name="pay") @gpu.command(name="pay")