signalvault-verifiable-priv.../signalvault_verifiable_priv.../schema.py

62 lines
1.2 KiB
Python

from __future__ import annotations
from dataclasses import dataclass, field
from typing import List, Dict, Optional
@dataclass
class SignalNode:
asset: str
venue: str
signal_type: str
timestamp: int # epoch seconds
quality: float = 0.0
metadata: Dict[str, object] = field(default_factory=dict)
@dataclass
class Edge:
from_id: str
to_id: str
relation: str # e.g., "causal", "temporal"
timestamp: int
metadata: Dict[str, object] = field(default_factory=dict)
@dataclass
class Scenario:
id: str
nodes: List[str] = field(default_factory=list)
edges: List[str] = field(default_factory=list)
description: str = ""
version: int = 1
@dataclass
class HedgePlan:
id: str
delta: Dict[str, object] # minimal representation of hedging actions
version: int = 1
approvals: List[str] = field(default_factory=list)
@dataclass
class AuditLog:
entry: str
timestamp: int
actor: Optional[str] = None
@dataclass
class PrivacyBudget:
signal_id: str
budget: float # DP budget allocated per signal
policy: Dict[str, object] = field(default_factory=dict)
@dataclass
class RegistryEntry:
adapter_name: str
contract: Dict[str, object]
conformance: bool = False