mirror of
https://github.com/luxfi/api.git
synced 2026-07-26 21:22:38 +00:00
1047 lines
26 KiB
Cap'n Proto
1047 lines
26 KiB
Cap'n Proto
# Agentic Network RPC Protocol
|
|
# Support for ZMQ, Cap'n Proto, and gRPC wire protocols with PQ privacy
|
|
|
|
@0xdeadbeef12345678;
|
|
|
|
using Cxx = import "/capnp/c++.capnp";
|
|
$Cxx.namespace("lux::agentic");
|
|
|
|
# Agentic network message types
|
|
struct AgenticMessage {
|
|
# Message metadata
|
|
messageId @0: UInt64;
|
|
timestamp @1: UInt64;
|
|
sourceAgent @2: AgentId;
|
|
targetAgent @3: AgentId;
|
|
|
|
# Post-quantum encryption
|
|
encryption @4: PQEncryption;
|
|
|
|
# Message payload (union for different types)
|
|
payload :union {
|
|
valueTransfer @5: ValueTransfer;
|
|
computation @6: ComputationRequest;
|
|
intelligence @7: IntelligenceShare;
|
|
coordination @8: CoordinationMessage;
|
|
discovery @9: DiscoveryMessage;
|
|
}
|
|
|
|
# Message routing and delivery
|
|
routing @10: RoutingInfo;
|
|
|
|
# Zero-copy shared data reference
|
|
sharedDataRef @11: SharedDataReference;
|
|
}
|
|
|
|
# Agent identity with post-quantum keys
|
|
struct AgentId {
|
|
publicKey @0: PQPublicKey; # Post-quantum public key
|
|
address @1: Data; # Network address
|
|
capabilities @2: AgentCapabilities;
|
|
reputation @3: Float64; # Trust score
|
|
stake @4: UInt64; # Staked value for security
|
|
}
|
|
|
|
# Post-quantum cryptographic primitives
|
|
struct PQEncryption {
|
|
algorithm @0: PQAlgorithm;
|
|
encryptedData @1: Data; # Encrypted message payload
|
|
keyExchange @2: PQKeyExchange; # Key exchange for session
|
|
signature @3: PQSignature; # Post-quantum signature
|
|
}
|
|
|
|
enum PQAlgorithm {
|
|
kyber1024 @0; # NIST PQC standard
|
|
ntruHrss701 @1; # NTRU-based
|
|
classicMcEliece @2; # Code-based
|
|
sphincsHaraka128f @3; # Hash-based signatures
|
|
dilithium5 @4; # Lattice-based signatures
|
|
falcon1024 @5; # NTRU-based signatures
|
|
}
|
|
|
|
struct PQKeyExchange {
|
|
algorithm @0: PQAlgorithm;
|
|
publicKey @1: Data; # Ephemeral public key
|
|
encapsulatedSecret @2: Data; # KEM encapsulated secret
|
|
sessionKey @3: Data; # Derived session key (encrypted)
|
|
}
|
|
|
|
struct PQSignature {
|
|
algorithm @0: PQAlgorithm;
|
|
signature @1: Data; # Post-quantum signature
|
|
publicKey @2: Data; # Signing public key
|
|
}
|
|
|
|
struct PQPublicKey {
|
|
algorithm @0: PQAlgorithm;
|
|
keyData @1: Data; # Public key bytes
|
|
keyId @2: UInt64; # Unique key identifier
|
|
}
|
|
|
|
# Agent capabilities for intelligent routing
|
|
struct AgentCapabilities {
|
|
computeTypes @0: List(ComputeType);
|
|
maxMemory @1: UInt64; # Available memory (bytes)
|
|
maxCompute @2: UInt64; # Compute units available
|
|
specializations @3: List(Text); # AI/ML specializations
|
|
supportedProtocols @4: List(Protocol);
|
|
trustLevel @5: TrustLevel;
|
|
}
|
|
|
|
enum ComputeType {
|
|
cpu @0;
|
|
gpu @1;
|
|
tpu @2;
|
|
fpga @3;
|
|
quantum @4;
|
|
neuromorphic @5;
|
|
}
|
|
|
|
enum Protocol {
|
|
zmq @0;
|
|
capnp @1;
|
|
grpc @2;
|
|
libp2p @3;
|
|
websocket @4;
|
|
}
|
|
|
|
enum TrustLevel {
|
|
untrusted @0;
|
|
basic @1;
|
|
verified @2;
|
|
premium @3;
|
|
governance @4;
|
|
}
|
|
|
|
# Value transfer between agents
|
|
struct ValueTransfer {
|
|
amount @0: UInt64; # Transfer amount
|
|
currency @1: CurrencyType; # Currency/token type
|
|
sourceAccount @2: Data; # Source account/address
|
|
targetAccount @3: Data; # Target account/address
|
|
|
|
# Privacy features
|
|
zkProof @4: ZKProof; # Zero-knowledge proof
|
|
mixerData @5: MixerData; # Privacy mixing
|
|
|
|
# Smart contract execution
|
|
contractCall @6: ContractCall; # Optional contract interaction
|
|
|
|
# Fees and incentives
|
|
fee @7: UInt64; # Network fee
|
|
tip @8: UInt64; # Agent tip/incentive
|
|
}
|
|
|
|
enum CurrencyType {
|
|
lux @0; # Native LUX token
|
|
hanzo @1; # HANZO token
|
|
compute @2; # Compute credits
|
|
storage @3; # Storage credits
|
|
bandwidth @4; # Bandwidth credits
|
|
intelligence @5; # AI/intelligence credits
|
|
}
|
|
|
|
# Zero-knowledge privacy proofs
|
|
struct ZKProof {
|
|
proofType @0: ZKProofType;
|
|
proof @1: Data; # ZK proof bytes
|
|
publicInputs @2: Data; # Public verification inputs
|
|
circuitId @3: UInt64; # Circuit identifier
|
|
}
|
|
|
|
enum ZKProofType {
|
|
plonk @0;
|
|
groth16 @1;
|
|
stark @2;
|
|
bulletproofs @3;
|
|
nova @4;
|
|
}
|
|
|
|
# Privacy mixing for transaction unlinkability
|
|
struct MixerData {
|
|
mixerSet @0: UInt64; # Anonymity set ID
|
|
commitment @1: Data; # Pedersen commitment
|
|
nullifier @2: Data; # Spend nullifier
|
|
merkleProof @3: MerkleProof; # Membership proof
|
|
}
|
|
|
|
struct MerkleProof {
|
|
path @0: List(Data); # Merkle path hashes
|
|
indices @1: List(Bool); # Left/right path indicators
|
|
root @2: Data; # Merkle root
|
|
}
|
|
|
|
# Smart contract execution
|
|
struct ContractCall {
|
|
contractAddress @0: Data; # Contract address
|
|
method @1: Text; # Method name
|
|
parameters @2: Data; # Encoded parameters
|
|
gasLimit @3: UInt64; # Gas limit
|
|
gasPrice @4: UInt64; # Gas price
|
|
}
|
|
|
|
# Computation requests between agents
|
|
struct ComputationRequest {
|
|
computationType @0: ComputationType;
|
|
inputData @1: ComputationInput;
|
|
requirements @2: ComputeRequirements;
|
|
payment @3: ComputePayment;
|
|
privacy @4: ComputePrivacy;
|
|
}
|
|
|
|
enum ComputationType {
|
|
mlInference @0;
|
|
mlTraining @1;
|
|
zkProofGeneration @2;
|
|
cryptographicOp @3;
|
|
dataProcessing @4;
|
|
simulation @5;
|
|
}
|
|
|
|
struct ComputationInput {
|
|
dataType @0: DataType;
|
|
data @1: Data; # Input data (may be encrypted)
|
|
sharedMemoryRef @2: UInt64; # Zero-copy shared memory reference
|
|
metadata @3: Data; # Additional metadata
|
|
}
|
|
|
|
enum DataType {
|
|
tensor @0;
|
|
image @1;
|
|
text @2;
|
|
audio @3;
|
|
video @4;
|
|
structured @5;
|
|
encrypted @6;
|
|
}
|
|
|
|
struct ComputeRequirements {
|
|
minMemory @0: UInt64; # Minimum memory required
|
|
minCompute @1: UInt64; # Minimum compute required
|
|
maxLatency @2: UInt32; # Maximum acceptable latency (ms)
|
|
specialized @3: List(Text); # Specialized hardware requirements
|
|
trustRequired @4: TrustLevel; # Required trust level
|
|
}
|
|
|
|
struct ComputePayment {
|
|
paymentType @0: PaymentType;
|
|
amount @1: UInt64; # Payment amount
|
|
currency @2: CurrencyType; # Payment currency
|
|
escrow @3: EscrowTerms; # Escrow conditions
|
|
}
|
|
|
|
enum PaymentType {
|
|
prepaid @0;
|
|
postpaid @1;
|
|
escrow @2;
|
|
reputation @3;
|
|
}
|
|
|
|
struct EscrowTerms {
|
|
releaseConditions @0: List(Text); # Conditions for payment release
|
|
timeoutBlocks @1: UInt64; # Timeout in blocks
|
|
arbitrator @2: AgentId; # Optional arbitrator
|
|
}
|
|
|
|
# Privacy-preserving computation
|
|
struct ComputePrivacy {
|
|
inputPrivacy @0: PrivacyLevel;
|
|
outputPrivacy @1: PrivacyLevel;
|
|
fhe @2: FHEConfig; # Fully homomorphic encryption
|
|
mpc @3: MPCConfig; # Multi-party computation
|
|
tee @4: TEEConfig; # Trusted execution environment
|
|
}
|
|
|
|
enum PrivacyLevel {
|
|
none @0;
|
|
encrypted @1;
|
|
fhe @2; # Fully homomorphic
|
|
mpc @3; # Multi-party
|
|
tee @4; # Trusted execution
|
|
zksnark @5; # Zero-knowledge
|
|
}
|
|
|
|
struct FHEConfig {
|
|
scheme @0: FHEScheme;
|
|
publicKey @1: Data; # FHE public key
|
|
parameters @2: Data; # Scheme parameters
|
|
}
|
|
|
|
enum FHEScheme {
|
|
bfv @0;
|
|
ckks @1;
|
|
bgv @2;
|
|
tfhe @3;
|
|
}
|
|
|
|
struct MPCConfig {
|
|
protocol @0: MPCProtocol;
|
|
parties @1: List(AgentId); # MPC participants
|
|
threshold @2: UInt32; # Threshold for reconstruction
|
|
}
|
|
|
|
enum MPCProtocol {
|
|
shamir @0; # Shamir secret sharing
|
|
bgw @1; # BGW protocol
|
|
gmw @2; # GMW protocol
|
|
aby @3; # ABY framework
|
|
}
|
|
|
|
struct TEEConfig {
|
|
teeType @0: TEEType;
|
|
attestation @1: Data; # Remote attestation
|
|
enclave @2: Data; # Enclave configuration
|
|
}
|
|
|
|
enum TEEType {
|
|
sgx @0; # Intel SGX
|
|
sev @1; # AMD SEV
|
|
armTrustzone @2; # ARM TrustZone
|
|
risc5Keystone @3; # RISC-V Keystone
|
|
}
|
|
|
|
# Intelligence sharing between agents
|
|
struct IntelligenceShare {
|
|
shareType @0: IntelligenceType;
|
|
data @1: IntelligenceData;
|
|
rights @2: SharingRights;
|
|
provenance @3: DataProvenance;
|
|
incentives @4: IncentiveStructure;
|
|
}
|
|
|
|
enum IntelligenceType {
|
|
model @0; # ML model
|
|
dataset @1; # Training data
|
|
insights @2; # Derived insights
|
|
patterns @3; # Discovered patterns
|
|
predictions @4; # Prediction results
|
|
}
|
|
|
|
struct IntelligenceData {
|
|
format @0: DataFormat;
|
|
size @1: UInt64; # Data size in bytes
|
|
hash @2: Data; # Content hash for integrity
|
|
encryption @3: PQEncryption; # Encrypted intelligence data
|
|
sharedMemRef @4: UInt64; # Zero-copy reference
|
|
}
|
|
|
|
enum DataFormat {
|
|
onnx @0;
|
|
pytorch @1;
|
|
tensorflow @2;
|
|
hanzoMl @3;
|
|
raw @4;
|
|
compressed @5;
|
|
}
|
|
|
|
struct SharingRights {
|
|
usage @0: List(UsageRight);
|
|
restrictions @1: List(Text); # Usage restrictions
|
|
expiration @2: UInt64; # Rights expiration timestamp
|
|
transferable @3: Bool; # Can rights be transferred
|
|
}
|
|
|
|
enum UsageRight {
|
|
view @0;
|
|
inference @1;
|
|
training @2;
|
|
modification @3;
|
|
redistribution @4;
|
|
commercial @5;
|
|
}
|
|
|
|
struct DataProvenance {
|
|
creator @0: AgentId; # Original creator
|
|
contributors @1: List(AgentId); # Contributors
|
|
derivedFrom @2: List(Data); # Source data hashes
|
|
timestamp @3: UInt64; # Creation timestamp
|
|
lineage @4: List(ProvenanceStep); # Transformation lineage
|
|
}
|
|
|
|
struct ProvenanceStep {
|
|
operation @0: Text; # Operation performed
|
|
operator @1: AgentId; # Who performed it
|
|
timestamp @2: UInt64; # When performed
|
|
inputs @3: List(Data); # Input data hashes
|
|
outputs @4: List(Data); # Output data hashes
|
|
}
|
|
|
|
struct IncentiveStructure {
|
|
paymentModel @0: PaymentModel;
|
|
revenue @1: RevenueSharing;
|
|
attribution @2: AttributionRewards;
|
|
}
|
|
|
|
enum PaymentModel {
|
|
oneTime @0;
|
|
subscription @1;
|
|
usage @2;
|
|
revenue @3;
|
|
reputation @4;
|
|
}
|
|
|
|
struct RevenueSharing {
|
|
shares @0: List(RevenueShare);
|
|
duration @1: UInt64; # Sharing duration
|
|
triggers @2: List(Text); # Revenue triggers
|
|
}
|
|
|
|
struct RevenueShare {
|
|
agent @0: AgentId;
|
|
percentage @1: Float32; # Revenue percentage
|
|
minimum @2: UInt64; # Minimum payment
|
|
maximum @3: UInt64; # Maximum payment
|
|
}
|
|
|
|
struct AttributionRewards {
|
|
citationReward @0: UInt64; # Reward per citation
|
|
usageReward @1: UInt64; # Reward per usage
|
|
derivationReward @2: UInt64; # Reward for derived works
|
|
}
|
|
|
|
# Agent coordination and consensus
|
|
struct CoordinationMessage {
|
|
coordinationType @0: CoordinationType;
|
|
proposal @1: CoordinationProposal;
|
|
consensus @2: ConsensusData;
|
|
execution @3: ExecutionPlan;
|
|
}
|
|
|
|
enum CoordinationType {
|
|
taskAllocation @0;
|
|
resourceSharing @1;
|
|
consensusBuilding @2;
|
|
conflictResolution @3;
|
|
emergencyResponse @4;
|
|
}
|
|
|
|
struct CoordinationProposal {
|
|
proposalId @0: UInt64;
|
|
proposer @1: AgentId;
|
|
description @2: Text;
|
|
participants @3: List(AgentId);
|
|
deadline @4: UInt64; # Proposal deadline
|
|
votingMechanism @5: VotingMechanism;
|
|
}
|
|
|
|
enum VotingMechanism {
|
|
simple @0; # Simple majority
|
|
weighted @1; # Stake-weighted
|
|
quadratic @2; # Quadratic voting
|
|
futarchy @3; # Prediction markets
|
|
liquid @4; # Liquid democracy
|
|
}
|
|
|
|
struct ConsensusData {
|
|
votes @0: List(Vote);
|
|
result @1: ConsensusResult;
|
|
finalized @2: Bool;
|
|
proof @3: ConsensusProof;
|
|
}
|
|
|
|
struct Vote {
|
|
voter @0: AgentId;
|
|
choice @1: VoteChoice;
|
|
weight @2: UInt64; # Vote weight
|
|
reasoning @3: Text; # Optional reasoning
|
|
signature @4: PQSignature; # Cryptographic signature
|
|
}
|
|
|
|
union VoteChoice {
|
|
binary @0: Bool; # Yes/No
|
|
multiple @1: UInt32; # Multiple choice index
|
|
ranked @2: List(UInt32); # Ranked preferences
|
|
continuous @3: Float64; # Continuous value
|
|
}
|
|
|
|
struct ConsensusResult {
|
|
outcome @0: VoteChoice;
|
|
confidence @1: Float64; # Confidence level
|
|
participation @2: Float64; # Participation rate
|
|
finalizationTime @3: UInt64; # When finalized
|
|
}
|
|
|
|
struct ConsensusProof {
|
|
proofType @0: ProofType;
|
|
proof @1: Data; # Cryptographic proof
|
|
validators @2: List(AgentId); # Validating agents
|
|
}
|
|
|
|
enum ProofType {
|
|
aggregateSignature @0;
|
|
merkleTree @1;
|
|
zkProof @2;
|
|
threshold @3;
|
|
}
|
|
|
|
struct ExecutionPlan {
|
|
tasks @0: List(Task);
|
|
dependencies @1: List(Dependency);
|
|
timeline @2: Timeline;
|
|
monitoring @3: MonitoringPlan;
|
|
}
|
|
|
|
struct Task {
|
|
taskId @0: UInt64;
|
|
assignee @1: AgentId;
|
|
description @2: Text;
|
|
requirements @3: TaskRequirements;
|
|
deliverables @4: List(Deliverable);
|
|
deadline @5: UInt64;
|
|
}
|
|
|
|
struct TaskRequirements {
|
|
compute @0: ComputeRequirements;
|
|
data @1: List(DataRequirement);
|
|
permissions @2: List(Permission);
|
|
dependencies @3: List(UInt64); # Task IDs this depends on
|
|
}
|
|
|
|
struct DataRequirement {
|
|
dataType @0: DataType;
|
|
source @1: AgentId;
|
|
access @2: AccessLevel;
|
|
privacy @3: PrivacyLevel;
|
|
}
|
|
|
|
enum AccessLevel {
|
|
read @0;
|
|
write @1;
|
|
execute @2;
|
|
admin @3;
|
|
}
|
|
|
|
struct Permission {
|
|
resource @0: Text; # Resource identifier
|
|
action @1: Text; # Permitted action
|
|
grantor @2: AgentId; # Who granted permission
|
|
expiration @3: UInt64; # Permission expiration
|
|
}
|
|
|
|
struct Deliverable {
|
|
deliverableId @0: UInt64;
|
|
description @1: Text;
|
|
format @2: DataFormat;
|
|
verification @3: VerificationMethod;
|
|
quality @4: QualityMetrics;
|
|
}
|
|
|
|
enum VerificationMethod {
|
|
manual @0;
|
|
automated @1;
|
|
consensus @2;
|
|
oracle @3;
|
|
}
|
|
|
|
struct QualityMetrics {
|
|
accuracy @0: Float64;
|
|
completeness @1: Float64;
|
|
timeliness @2: Float64;
|
|
relevance @3: Float64;
|
|
}
|
|
|
|
struct Dependency {
|
|
fromTask @0: UInt64; # Source task
|
|
toTask @1: UInt64; # Dependent task
|
|
dependencyType @2: DependencyType;
|
|
data @3: List(DataDependency);
|
|
}
|
|
|
|
enum DependencyType {
|
|
sequential @0; # Must complete before
|
|
parallel @1; # Can run in parallel
|
|
conditional @2; # Depends on outcome
|
|
resource @3; # Shared resource constraint
|
|
}
|
|
|
|
struct DataDependency {
|
|
dataId @0: UInt64;
|
|
source @1: AgentId;
|
|
format @2: DataFormat;
|
|
size @3: UInt64;
|
|
}
|
|
|
|
struct Timeline {
|
|
start @0: UInt64; # Project start time
|
|
end @1: UInt64; # Project end time
|
|
milestones @2: List(Milestone);
|
|
criticalPath @3: List(UInt64); # Critical path task IDs
|
|
}
|
|
|
|
struct Milestone {
|
|
milestoneId @0: UInt64;
|
|
name @1: Text;
|
|
deadline @2: UInt64;
|
|
criteria @3: List(Text); # Success criteria
|
|
rewards @4: List(Reward);
|
|
}
|
|
|
|
struct Reward {
|
|
recipient @0: AgentId;
|
|
amount @1: UInt64;
|
|
currency @2: CurrencyType;
|
|
condition @3: Text; # Reward condition
|
|
}
|
|
|
|
struct MonitoringPlan {
|
|
metrics @0: List(MonitoringMetric);
|
|
alerts @1: List(AlertRule);
|
|
reports @2: List(ReportSchedule);
|
|
}
|
|
|
|
struct MonitoringMetric {
|
|
name @0: Text;
|
|
source @1: AgentId;
|
|
frequency @2: UInt32; # Collection frequency (seconds)
|
|
threshold @3: List(Threshold);
|
|
}
|
|
|
|
struct Threshold {
|
|
level @0: AlertLevel;
|
|
value @1: Float64;
|
|
action @2: Text; # Action to take
|
|
}
|
|
|
|
enum AlertLevel {
|
|
info @0;
|
|
warning @1;
|
|
error @2;
|
|
critical @3;
|
|
}
|
|
|
|
struct AlertRule {
|
|
condition @0: Text; # Alert condition
|
|
level @1: AlertLevel;
|
|
recipients @2: List(AgentId);
|
|
cooldown @3: UInt32; # Cooldown period (seconds)
|
|
}
|
|
|
|
struct ReportSchedule {
|
|
name @0: Text;
|
|
frequency @1: ReportFrequency;
|
|
recipients @2: List(AgentId);
|
|
template @3: Text; # Report template
|
|
}
|
|
|
|
enum ReportFrequency {
|
|
realtime @0;
|
|
hourly @1;
|
|
daily @2;
|
|
weekly @3;
|
|
monthly @4;
|
|
}
|
|
|
|
# Network discovery and routing
|
|
struct DiscoveryMessage {
|
|
discoveryType @0: DiscoveryType;
|
|
query @1: DiscoveryQuery;
|
|
response @2: DiscoveryResponse;
|
|
routing @3: RoutingUpdate;
|
|
}
|
|
|
|
enum DiscoveryType {
|
|
agentDiscovery @0;
|
|
serviceDiscovery @1;
|
|
resourceDiscovery @2;
|
|
routingUpdate @3;
|
|
healthCheck @4;
|
|
}
|
|
|
|
struct DiscoveryQuery {
|
|
queryId @0: UInt64;
|
|
requester @1: AgentId;
|
|
criteria @2: SearchCriteria;
|
|
maxResults @3: UInt32;
|
|
timeout @4: UInt32; # Query timeout (seconds)
|
|
}
|
|
|
|
struct SearchCriteria {
|
|
capabilities @0: List(ComputeType);
|
|
specializations @1: List(Text);
|
|
location @2: GeographicConstraints;
|
|
trustLevel @3: TrustLevel;
|
|
priceRange @4: PriceRange;
|
|
}
|
|
|
|
struct GeographicConstraints {
|
|
regions @0: List(Text); # Allowed regions
|
|
maxLatency @1: UInt32; # Maximum network latency
|
|
dataResidency @2: List(Text); # Data residency requirements
|
|
}
|
|
|
|
struct PriceRange {
|
|
minPrice @0: UInt64;
|
|
maxPrice @1: UInt64;
|
|
currency @2: CurrencyType;
|
|
pricingModel @3: PricingModel;
|
|
}
|
|
|
|
enum PricingModel {
|
|
fixed @0;
|
|
auction @1;
|
|
dynamic @2;
|
|
tiered @3;
|
|
}
|
|
|
|
struct DiscoveryResponse {
|
|
queryId @0: UInt64;
|
|
responder @1: AgentId;
|
|
matches @2: List(AgentMatch);
|
|
total @3: UInt32; # Total matches available
|
|
}
|
|
|
|
struct AgentMatch {
|
|
agent @0: AgentId;
|
|
score @1: Float64; # Match score
|
|
availability @2: Availability;
|
|
pricing @3: PricingInfo;
|
|
testimonials @4: List(Testimonial);
|
|
}
|
|
|
|
struct Availability {
|
|
status @0: AvailabilityStatus;
|
|
nextAvailable @1: UInt64; # Next availability timestamp
|
|
capacity @2: CapacityInfo;
|
|
schedule @3: List(ScheduleSlot);
|
|
}
|
|
|
|
enum AvailabilityStatus {
|
|
available @0;
|
|
busy @1;
|
|
maintenance @2;
|
|
offline @3;
|
|
}
|
|
|
|
struct CapacityInfo {
|
|
currentLoad @0: Float64; # Current utilization (0-1)
|
|
maxCapacity @1: UInt64; # Maximum capacity
|
|
reservedCapacity @2: UInt64; # Reserved/committed capacity
|
|
availableCapacity @3: UInt64; # Available capacity
|
|
}
|
|
|
|
struct ScheduleSlot {
|
|
start @0: UInt64; # Slot start time
|
|
end @1: UInt64; # Slot end time
|
|
capacity @2: UInt64; # Available capacity in slot
|
|
price @3: UInt64; # Price for slot
|
|
}
|
|
|
|
struct PricingInfo {
|
|
model @0: PricingModel;
|
|
basePrice @1: UInt64; # Base price
|
|
currency @2: CurrencyType;
|
|
discounts @3: List(Discount);
|
|
premiums @4: List(Premium);
|
|
}
|
|
|
|
struct Discount {
|
|
condition @0: Text; # Discount condition
|
|
percentage @1: Float32; # Discount percentage
|
|
maximum @2: UInt64; # Maximum discount amount
|
|
}
|
|
|
|
struct Premium {
|
|
condition @0: Text; # Premium condition
|
|
percentage @1: Float32; # Premium percentage
|
|
minimum @2: UInt64; # Minimum premium amount
|
|
}
|
|
|
|
struct Testimonial {
|
|
client @0: AgentId;
|
|
rating @1: Float32; # Rating (1-5)
|
|
review @2: Text; # Review text
|
|
timestamp @3: UInt64; # Review timestamp
|
|
verified @4: Bool; # Verified transaction
|
|
}
|
|
|
|
# Routing information for message delivery
|
|
struct RoutingInfo {
|
|
path @0: List(AgentId); # Route path
|
|
hops @1: UInt32; # Number of hops
|
|
latency @2: UInt32; # Expected latency (ms)
|
|
cost @3: UInt64; # Routing cost
|
|
priority @4: MessagePriority;
|
|
qos @5: QoSRequirements;
|
|
}
|
|
|
|
enum MessagePriority {
|
|
low @0;
|
|
normal @1;
|
|
high @2;
|
|
critical @3;
|
|
realtime @4;
|
|
}
|
|
|
|
struct QoSRequirements {
|
|
maxLatency @0: UInt32; # Maximum acceptable latency
|
|
minBandwidth @1: UInt64; # Minimum bandwidth required
|
|
reliability @2: Float32; # Required reliability (0-1)
|
|
security @3: SecurityLevel;
|
|
}
|
|
|
|
enum SecurityLevel {
|
|
none @0;
|
|
basic @1;
|
|
encrypted @2;
|
|
pqEncrypted @3; # Post-quantum encrypted
|
|
anonymous @4; # Anonymous routing
|
|
}
|
|
|
|
struct RoutingUpdate {
|
|
updateType @0: UpdateType;
|
|
routes @1: List(RouteInfo);
|
|
topology @2: NetworkTopology;
|
|
metrics @3: NetworkMetrics;
|
|
}
|
|
|
|
enum UpdateType {
|
|
add @0;
|
|
remove @1;
|
|
update @2;
|
|
full @3; # Full routing table
|
|
}
|
|
|
|
struct RouteInfo {
|
|
destination @0: AgentId;
|
|
nextHop @1: AgentId;
|
|
cost @2: UInt64;
|
|
latency @3: UInt32;
|
|
reliability @4: Float32;
|
|
lastUpdate @5: UInt64;
|
|
}
|
|
|
|
struct NetworkTopology {
|
|
nodes @0: List(NetworkNode);
|
|
edges @1: List(NetworkEdge);
|
|
clusters @2: List(NetworkCluster);
|
|
}
|
|
|
|
struct NetworkNode {
|
|
agent @0: AgentId;
|
|
position @1: NetworkPosition;
|
|
connections @2: UInt32; # Number of connections
|
|
centrality @3: Float64; # Network centrality measure
|
|
}
|
|
|
|
struct NetworkPosition {
|
|
x @0: Float64; # X coordinate in network space
|
|
y @1: Float64; # Y coordinate in network space
|
|
z @2: Float64; # Z coordinate for 3D networks
|
|
}
|
|
|
|
struct NetworkEdge {
|
|
from @0: AgentId;
|
|
to @1: AgentId;
|
|
weight @2: Float64; # Edge weight/cost
|
|
bandwidth @3: UInt64; # Available bandwidth
|
|
latency @4: UInt32; # Edge latency
|
|
}
|
|
|
|
struct NetworkCluster {
|
|
clusterId @0: UInt64;
|
|
members @1: List(AgentId);
|
|
representative @2: AgentId; # Cluster representative
|
|
properties @3: ClusterProperties;
|
|
}
|
|
|
|
struct ClusterProperties {
|
|
specialization @0: Text; # Cluster specialization
|
|
trustLevel @1: TrustLevel; # Average trust level
|
|
capacity @2: UInt64; # Total cluster capacity
|
|
load @3: Float64; # Current load
|
|
}
|
|
|
|
struct NetworkMetrics {
|
|
totalNodes @0: UInt64;
|
|
totalEdges @1: UInt64;
|
|
averageLatency @2: Float64;
|
|
networkThroughput @3: UInt64;
|
|
reliability @4: Float64;
|
|
timestamp @5: UInt64;
|
|
}
|
|
|
|
# Zero-copy shared data reference
|
|
struct SharedDataReference {
|
|
sharedId @0: UInt64; # Shared memory segment ID
|
|
offset @1: UInt64; # Offset within segment
|
|
size @2: UInt64; # Data size
|
|
checksum @3: UInt64; # Data integrity checksum
|
|
permissions @4: List(Text); # Access permissions
|
|
}
|
|
|
|
# RPC protocol configuration
|
|
struct RPCConfig {
|
|
protocol @0: RPCProtocol;
|
|
endpoint @1: Text; # Protocol endpoint
|
|
options @2: ProtocolOptions;
|
|
security @3: SecurityConfig;
|
|
}
|
|
|
|
enum RPCProtocol {
|
|
zmq @0;
|
|
capnp @1;
|
|
grpc @2;
|
|
websocket @3;
|
|
custom @4;
|
|
}
|
|
|
|
union ProtocolOptions {
|
|
zmq @0: ZMQOptions;
|
|
capnp @1: CapnpOptions;
|
|
grpc @2: GRPCOptions;
|
|
websocket @3: WebSocketOptions;
|
|
}
|
|
|
|
struct ZMQOptions {
|
|
socketType @0: ZMQSocketType;
|
|
highWaterMark @1: UInt64; # High water mark for queuing
|
|
linger @2: UInt32; # Linger time on close
|
|
reconnectInterval @3: UInt32; # Reconnection interval
|
|
maxReconnects @4: UInt32; # Maximum reconnection attempts
|
|
}
|
|
|
|
enum ZMQSocketType {
|
|
req @0; # Request socket
|
|
rep @1; # Reply socket
|
|
dealer @2; # Dealer socket
|
|
router @3; # Router socket
|
|
pub @4; # Publisher socket
|
|
sub @5; # Subscriber socket
|
|
xpub @6; # Extended publisher
|
|
xsub @7; # Extended subscriber
|
|
push @8; # Push socket
|
|
pull @9; # Pull socket
|
|
pair @10; # Pair socket
|
|
stream @11; # Stream socket
|
|
}
|
|
|
|
struct CapnpOptions {
|
|
compression @0: CompressionType;
|
|
packedEncoding @1: Bool; # Use packed encoding
|
|
traversalLimit @2: UInt64; # Message traversal limit
|
|
nestingLimit @3: UInt32; # Nesting limit
|
|
}
|
|
|
|
enum CompressionType {
|
|
none @0;
|
|
gzip @1;
|
|
lz4 @2;
|
|
zstd @3;
|
|
snappy @4;
|
|
}
|
|
|
|
struct GRPCOptions {
|
|
maxReceiveMessageSize @0: UInt64;
|
|
maxSendMessageSize @1: UInt64;
|
|
keepaliveTime @2: UInt32;
|
|
keepaliveTimeout @3: UInt32;
|
|
maxConnectionIdle @4: UInt32;
|
|
compression @5: GRPCCompression;
|
|
}
|
|
|
|
enum GRPCCompression {
|
|
identity @0; # No compression
|
|
gzip @1;
|
|
deflate @2;
|
|
}
|
|
|
|
struct WebSocketOptions {
|
|
maxFrameSize @0: UInt64;
|
|
maxMessageSize @1: UInt64;
|
|
compression @2: Bool;
|
|
pingInterval @3: UInt32;
|
|
pongTimeout @4: UInt32;
|
|
}
|
|
|
|
struct SecurityConfig {
|
|
tls @0: TLSConfig;
|
|
authentication @1: AuthConfig;
|
|
authorization @2: AuthzConfig;
|
|
rateLimit @3: RateLimitConfig;
|
|
}
|
|
|
|
struct TLSConfig {
|
|
enabled @0: Bool;
|
|
certificate @1: Data; # TLS certificate
|
|
privateKey @2: Data; # TLS private key
|
|
cipherSuites @3: List(Text); # Allowed cipher suites
|
|
minVersion @4: Text; # Minimum TLS version
|
|
}
|
|
|
|
struct AuthConfig {
|
|
method @0: AuthMethod;
|
|
credentials @1: AuthCredentials;
|
|
tokenExpiry @2: UInt64; # Token expiry time
|
|
refreshEnabled @3: Bool; # Enable token refresh
|
|
}
|
|
|
|
enum AuthMethod {
|
|
none @0;
|
|
apiKey @1;
|
|
jwt @2;
|
|
oauth2 @3;
|
|
mutual @4; # Mutual authentication
|
|
pqc @5; # Post-quantum authentication
|
|
}
|
|
|
|
union AuthCredentials {
|
|
apiKey @0: Data;
|
|
jwt @1: JWTCredentials;
|
|
oauth2 @2: OAuth2Credentials;
|
|
pqc @3: PQCredentials;
|
|
}
|
|
|
|
struct JWTCredentials {
|
|
token @0: Text; # JWT token
|
|
publicKey @1: Data; # Verification public key
|
|
algorithm @2: Text; # Signature algorithm
|
|
}
|
|
|
|
struct OAuth2Credentials {
|
|
clientId @0: Text;
|
|
clientSecret @1: Text;
|
|
accessToken @2: Text;
|
|
refreshToken @3: Text;
|
|
scope @4: List(Text);
|
|
}
|
|
|
|
struct PQCredentials {
|
|
algorithm @0: PQAlgorithm;
|
|
publicKey @1: Data;
|
|
signature @2: Data;
|
|
certificate @3: Data;
|
|
}
|
|
|
|
struct AuthzConfig {
|
|
enabled @0: Bool;
|
|
policies @1: List(AuthzPolicy);
|
|
defaultAction @2: AuthzAction;
|
|
}
|
|
|
|
struct AuthzPolicy {
|
|
resource @0: Text; # Resource pattern
|
|
action @1: Text; # Action pattern
|
|
principal @2: Text; # Principal pattern
|
|
effect @3: AuthzAction; # Allow or deny
|
|
conditions @4: List(Text); # Additional conditions
|
|
}
|
|
|
|
enum AuthzAction {
|
|
allow @0;
|
|
deny @1;
|
|
}
|
|
|
|
struct RateLimitConfig {
|
|
enabled @0: Bool;
|
|
requests @1: UInt64; # Requests per window
|
|
window @2: UInt32; # Time window (seconds)
|
|
burst @3: UInt64; # Burst allowance
|
|
strategy @4: RateLimitStrategy;
|
|
}
|
|
|
|
enum RateLimitStrategy {
|
|
fixedWindow @0;
|
|
slidingWindow @1;
|
|
tokenBucket @2;
|
|
leakyBucket @3;
|
|
} |