All checks were successful
API Endpoint Tests / test-api-endpoints (push) Successful in 39s
Integration Tests / test-service-integration (push) Successful in 44s
Package Tests / test-python-packages (map[name:aitbc-core path:packages/py/aitbc-core]) (push) Successful in 16s
Package Tests / test-python-packages (map[name:aitbc-agent-sdk path:packages/py/aitbc-agent-sdk]) (push) Successful in 30s
Package Tests / test-python-packages (map[name:aitbc-crypto path:packages/py/aitbc-crypto]) (push) Successful in 20s
Package Tests / test-python-packages (map[name:aitbc-sdk path:packages/py/aitbc-sdk]) (push) Successful in 20s
Package Tests / test-javascript-packages (map[name:aitbc-sdk-js path:packages/js/aitbc-sdk]) (push) Successful in 17s
Package Tests / test-javascript-packages (map[name:aitbc-token path:packages/solidity/aitbc-token]) (push) Successful in 1m17s
Python Tests / test-python (push) Successful in 1m7s
Smart Contract Tests / test-solidity (map[name:aitbc-token path:packages/solidity/aitbc-token]) (push) Successful in 30s
Security Scanning / security-scan (push) Successful in 1m5s
Smart Contract Tests / test-solidity (map[name:zk-circuits path:apps/zk-circuits]) (push) Successful in 49s
Smart Contract Tests / lint-solidity (push) Successful in 54s
aitbc-agent-sdk (package-tests.yml): - Add AITBCAgent convenience class matching test expectations - Fix test_agent_sdk.py: was importing nonexistent AITBCAgent, now tests the real API (Agent.create, AgentCapabilities, to_dict) plus AITBCAgent - Fix 3 remaining mypy errors: supported_models Optional coercion (line 64), missing return types on _submit_to_marketplace/_update_marketplace_offer - Run black on all 5 src files — zero mypy errors, zero black warnings - All 6 tests pass python-tests.yml: - Add pynacl to pip install (aitbc-crypto and aitbc-sdk import nacl) - Add pynacl>=1.5.0 to root requirements.txt Service readiness (api-endpoint-tests.yml, integration-tests.yml): - Replace curl -sf with curl http_code check — -sf fails on 404 responses but port 8006 (blockchain RPC) returns 404 on / while being healthy - Blockchain RPC uses REST /rpc/* endpoints, not JSON-RPC POST to / Fix test_api_endpoints.py to test /health, /rpc/head, /rpc/info, /rpc/supply - Remove dead test_rpc() function, add blockchain RPC to perf tests - All 4 services now pass: coordinator, exchange, wallet, blockchain_rpc - Integration-tests: check is-active before systemctl start to avoid spurious warnings for already-running services Hardhat compile (smart-contract-tests.yml, package-tests.yml): - Relax engines field from >=24.14.0 to >=18.0.0 (CI has v24.13.0) - Remove 2>/dev/null from hardhat compile/test so errors are visible - Remove 2>/dev/null from npm run build/test in package-tests JS section
54 lines
1.7 KiB
Python
54 lines
1.7 KiB
Python
"""
|
|
Platform Builder - factory for constructing AITBC agent platform configurations
|
|
"""
|
|
|
|
import logging
|
|
from typing import Dict, List, Any, Optional
|
|
from .agent import Agent, AgentCapabilities, AgentIdentity
|
|
from .compute_provider import ComputeProvider
|
|
from .compute_consumer import ComputeConsumer
|
|
from .swarm_coordinator import SwarmCoordinator
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
|
|
class PlatformBuilder:
|
|
"""Builder pattern for constructing AITBC agent platforms"""
|
|
|
|
def __init__(self, platform_name: str = "default") -> None:
|
|
self.platform_name = platform_name
|
|
self.agents: List[Agent] = []
|
|
self.config: Dict[str, Any] = {}
|
|
|
|
def with_config(self, config: Dict[str, Any]) -> "PlatformBuilder":
|
|
"""Set platform configuration"""
|
|
self.config.update(config)
|
|
return self
|
|
|
|
def add_provider(
|
|
self, name: str, capabilities: Dict[str, Any]
|
|
) -> "PlatformBuilder":
|
|
"""Add a compute provider agent"""
|
|
agent = Agent.create(name, "compute_provider", capabilities)
|
|
self.agents.append(agent)
|
|
logger.info(f"Added provider: {name}")
|
|
return self
|
|
|
|
def add_consumer(
|
|
self, name: str, capabilities: Dict[str, Any]
|
|
) -> "PlatformBuilder":
|
|
"""Add a compute consumer agent"""
|
|
agent = Agent.create(name, "compute_consumer", capabilities)
|
|
self.agents.append(agent)
|
|
logger.info(f"Added consumer: {name}")
|
|
return self
|
|
|
|
def build(self) -> Dict[str, Any]:
|
|
"""Build and return the platform configuration"""
|
|
return {
|
|
"platform_name": self.platform_name,
|
|
"agents": [a.to_dict() for a in self.agents],
|
|
"config": self.config,
|
|
"agent_count": len(self.agents),
|
|
}
|