Rename openclaw to hermes across documentation and workflows
Some checks failed
Cross-Node Transaction Testing / transaction-test (push) Has been cancelled
Deploy to Testnet / deploy-testnet (push) Has been cancelled
Documentation Validation / validate-docs (push) Has been cancelled
Documentation Validation / validate-policies-strict (push) Has been cancelled
Multi-Node Stress Testing / stress-test (push) Has been cancelled
Node Failover Simulation / failover-test (push) Has been cancelled
Integration Tests / test-service-integration (push) Has been cancelled
Security Scanning / security-scan (push) Has been cancelled
Python Tests / test-python (push) Has been cancelled
CLI Tests / test-cli (push) Has been cancelled
Blockchain Synchronization Verification / sync-verification (push) Successful in 11s
Contract Performance Benchmarks / benchmark-gas-usage (push) Successful in 1m36s
Contract Performance Benchmarks / benchmark-execution-time (push) Successful in 1m24s
Contract Performance Benchmarks / benchmark-throughput (push) Successful in 1m25s
Cross-Chain Functionality Tests / test-cross-chain-sync (push) Successful in 2s
Cross-Chain Functionality Tests / test-cross-chain-transactions (push) Successful in 5s
Cross-Chain Functionality Tests / test-cross-chain-bridge (push) Has been skipped
Cross-Chain Functionality Tests / test-multi-chain-consensus (push) Successful in 3s
Cross-Chain Functionality Tests / aggregate-results (push) Has been skipped
Multi-Chain Island Architecture Tests / test-multi-chain-island (push) Successful in 2s
Multi-Node Blockchain Health Monitoring / health-check (push) Successful in 3s
P2P Network Verification / p2p-verification (push) Successful in 2s
Smart Contract Tests / test-solidity (map[name:aitbc-contracts path:contracts]) (push) Failing after 1m28s
Smart Contract Tests / test-solidity (map[name:aitbc-token path:packages/solidity/aitbc-token]) (push) Successful in 21s
Smart Contract Tests / test-foundry (push) Failing after 20s
Smart Contract Tests / lint-solidity (push) Successful in 30s
Smart Contract Tests / deploy-contracts (push) Successful in 1m40s
Systemd Sync / sync-systemd (push) Successful in 26s
Contract Performance Benchmarks / compare-benchmarks (push) Successful in 4s

- Update workflow paths from docs/openclaw to docs/hermes
- Rename skill prefixes from openclaw-* to hermes-*
- Update agent skill references in refactoring and analysis docs
- Rename OPENCLAW_AITBC_MASTERY_PLAN.md to reflect hermes branding
- Update CLI examples and command references throughout documentation
This commit is contained in:
aitbc
2026-05-07 11:42:06 +02:00
parent 151aae1916
commit 852f2e5a8a
307 changed files with 3333 additions and 2837 deletions

View File

@@ -3,17 +3,17 @@ pragma solidity ^0.8.19;
import "@openzeppelin/contracts/access/Ownable.sol";
import "@openzeppelin/contracts/utils/math/SafeMath.sol";
import "./OpenClawDAO.sol";
import "./HermesDAO.sol";
/**
* @title AgentWallet
* @dev Smart contract wallet for AI agents to participate in OpenClaw DAO governance
* @dev Smart contract wallet for AI agents to participate in Hermes DAO governance
* @notice Enables autonomous voting and reputation-based governance participation
*/
contract AgentWallet is Ownable {
using SafeMath for uint256;
// Agent roles matching OpenClawDAO
// Agent roles matching HermesDAO
enum AgentRole {
NONE,
PROVIDER,
@@ -40,13 +40,13 @@ contract AgentWallet is Ownable {
uint8 supportThreshold; // 0-255, higher means more likely to support
uint256 minReputationToVote;
bool voteBasedOnRole;
mapping(OpenClawDAO.ProposalType => uint8) roleVotingPreferences;
mapping(HermesDAO.ProposalType => uint8) roleVotingPreferences;
}
// State variables
AgentState public agentState;
VotingStrategy public votingStrategy;
OpenClawDAO public dao;
HermesDAO public dao;
IERC20 public governanceToken;
// Events
@@ -83,7 +83,7 @@ contract AgentWallet is Ownable {
agentState.isActive = true;
agentState.authorizedCallers[_owner] = true;
dao = OpenClawDAO(_daoContract);
dao = HermesDAO(_daoContract);
governanceToken = IERC20(_governanceToken);
// Set default voting strategy based on role
@@ -93,7 +93,7 @@ contract AgentWallet is Ownable {
}
/**
* @dev Register agent with OpenClaw DAO
* @dev Register agent with Hermes DAO
*/
function registerWithDAO() external onlyAuthorized {
dao.registerAgentWallet(address(this), agentState.role);
@@ -182,7 +182,7 @@ contract AgentWallet is Ownable {
* @param preference Voting preference (0-255)
*/
function setRoleVotingPreference(
OpenClawDAO.ProposalType proposalType,
HermesDAO.ProposalType proposalType,
uint8 preference
) external onlyAuthorized {
votingStrategy.roleVotingPreferences[proposalType] = preference;
@@ -232,7 +232,7 @@ contract AgentWallet is Ownable {
*/
function _calculateAutonomousVote(uint256 proposalId) internal view returns (bool) {
// Get proposal type preference
(, , , OpenClawDAO.ProposalType proposalType, , , , , , ) = dao.getProposal(proposalId);
(, , , HermesDAO.ProposalType proposalType, , , , , , ) = dao.getProposal(proposalId);
uint8 preference = votingStrategy.roleVotingPreferences[proposalType];
// Combine with general support threshold
@@ -252,7 +252,7 @@ contract AgentWallet is Ownable {
uint256 proposalId,
bool support
) internal view returns (string memory) {
(, , , OpenClawDAO.ProposalType proposalType, , , , , , ) = dao.getProposal(proposalId);
(, , , HermesDAO.ProposalType proposalType, , , , , , ) = dao.getProposal(proposalId);
string memory roleString = _roleToString(agentState.role);
string memory actionString = support ? "support" : "oppose";
@@ -278,25 +278,25 @@ contract AgentWallet is Ownable {
if (role == AgentRole.PROVIDER) {
// Providers favor infrastructure and resource proposals
votingStrategy.roleVotingPreferences[OpenClawDAO.ProposalType.PARAMETER_CHANGE] = 180;
votingStrategy.roleVotingPreferences[OpenClawDAO.ProposalType.TREASURY_ALLOCATION] = 160;
votingStrategy.roleVotingPreferences[OpenClawDAO.ProposalType.AGENT_TRADING] = 200;
votingStrategy.roleVotingPreferences[HermesDAO.ProposalType.PARAMETER_CHANGE] = 180;
votingStrategy.roleVotingPreferences[HermesDAO.ProposalType.TREASURY_ALLOCATION] = 160;
votingStrategy.roleVotingPreferences[HermesDAO.ProposalType.AGENT_TRADING] = 200;
votingStrategy.supportThreshold = 128;
} else if (role == AgentRole.CONSUMER) {
// Consumers favor access and pricing proposals
votingStrategy.roleVotingPreferences[OpenClawDAO.ProposalType.PARAMETER_CHANGE] = 140;
votingStrategy.roleVotingPreferences[OpenClawDAO.ProposalType.TREASURY_ALLOCATION] = 180;
votingStrategy.roleVotingPreferences[OpenClawDAO.ProposalType.AGENT_TRADING] = 160;
votingStrategy.roleVotingPreferences[HermesDAO.ProposalType.PARAMETER_CHANGE] = 140;
votingStrategy.roleVotingPreferences[HermesDAO.ProposalType.TREASURY_ALLOCATION] = 180;
votingStrategy.roleVotingPreferences[HermesDAO.ProposalType.AGENT_TRADING] = 160;
votingStrategy.supportThreshold = 128;
} else if (role == AgentRole.BUILDER) {
// Builders favor development and upgrade proposals
votingStrategy.roleVotingPreferences[OpenClawDAO.ProposalType.PROTOCOL_UPGRADE] = 200;
votingStrategy.roleVotingPreferences[OpenClawDAO.ProposalType.DAO_GRANTS] = 180;
votingStrategy.roleVotingPreferences[HermesDAO.ProposalType.PROTOCOL_UPGRADE] = 200;
votingStrategy.roleVotingPreferences[HermesDAO.ProposalType.DAO_GRANTS] = 180;
votingStrategy.supportThreshold = 150;
} else if (role == AgentRole.COORDINATOR) {
// Coordinators favor governance and system proposals
votingStrategy.roleVotingPreferences[OpenClawDAO.ProposalType.PARAMETER_CHANGE] = 160;
votingStrategy.roleVotingPreferences[OpenClawDAO.ProposalType.PROTOCOL_UPGRADE] = 180;
votingStrategy.roleVotingPreferences[HermesDAO.ProposalType.PARAMETER_CHANGE] = 160;
votingStrategy.roleVotingPreferences[HermesDAO.ProposalType.PROTOCOL_UPGRADE] = 180;
votingStrategy.supportThreshold = 140;
}
}
@@ -319,13 +319,13 @@ contract AgentWallet is Ownable {
* @param proposalType Proposal type
* @return typeString String representation
*/
function _proposalTypeToString(OpenClawDAO.ProposalType proposalType) internal pure returns (string memory) {
if (proposalType == OpenClawDAO.ProposalType.PARAMETER_CHANGE) return "Parameter Change";
if (proposalType == OpenClawDAO.ProposalType.PROTOCOL_UPGRADE) return "Protocol Upgrade";
if (proposalType == OpenClawDAO.ProposalType.TREASURY_ALLOCATION) return "Treasury Allocation";
if (proposalType == OpenClawDAO.ProposalType.EMERGENCY_ACTION) return "Emergency Action";
if (proposalType == OpenClawDAO.ProposalType.AGENT_TRADING) return "Agent Trading";
if (proposalType == OpenClawDAO.ProposalType.DAO_GRANTS) return "DAO Grants";
function _proposalTypeToString(HermesDAO.ProposalType proposalType) internal pure returns (string memory) {
if (proposalType == HermesDAO.ProposalType.PARAMETER_CHANGE) return "Parameter Change";
if (proposalType == HermesDAO.ProposalType.PROTOCOL_UPGRADE) return "Protocol Upgrade";
if (proposalType == HermesDAO.ProposalType.TREASURY_ALLOCATION) return "Treasury Allocation";
if (proposalType == HermesDAO.ProposalType.EMERGENCY_ACTION) return "Emergency Action";
if (proposalType == HermesDAO.ProposalType.AGENT_TRADING) return "Agent Trading";
if (proposalType == HermesDAO.ProposalType.DAO_GRANTS) return "DAO Grants";
return "Unknown";
}

View File

@@ -12,11 +12,11 @@ import "@openzeppelin/contracts/access/Ownable.sol";
import "@openzeppelin/contracts/utils/math/SafeMath.sol";
/**
* @title OpenClawDAO
* @title HermesDAO
* @dev Decentralized Autonomous Organization for AITBC governance
* @notice Implements token-weighted voting with snapshot security and agent integration
*/
contract OpenClawDAO is
contract HermesDAO is
Governor,
GovernorSettings,
GovernorCountingSimple,
@@ -133,7 +133,7 @@ contract OpenClawDAO is
address _governanceToken,
TimelockController _timelock
)
Governor("OpenClawDAO")
Governor("HermesDAO")
GovernorSettings(VOTING_DELAY, VOTING_PERIOD, PROPOSAL_THRESHOLD)
GovernorVotes(IVotes(_governanceToken))
GovernorVotesQuorumFraction(QUORUM_PERCENTAGE)
@@ -239,7 +239,7 @@ contract OpenClawDAO is
) public override returns (uint256) {
require(
state(proposalId) == ProposalState.Active,
"OpenClawDAO: voting is not active"
"HermesDAO: voting is not active"
);
Proposal storage proposal = proposals[proposalId];
@@ -365,7 +365,7 @@ contract OpenClawDAO is
require(
state(proposalId) == ProposalState.Succeeded,
"OpenClawDAO: proposal not successful"
"HermesDAO: proposal not successful"
);
// Check multi-sig for critical proposals

View File

@@ -3,7 +3,7 @@ const fs = require("fs");
const path = require("path");
async function main() {
console.log("🚀 Deploying OpenClaw Autonomous Economics Contracts");
console.log("🚀 Deploying Hermes Autonomous Economics Contracts");
console.log("==============================================");
const [deployer] = await ethers.getSigners();
@@ -179,7 +179,7 @@ async function main() {
// Generate environment variables for frontend
const envVars = `
# AITBC OpenClaw Autonomous Economics - ${hre.network.name.toUpperCase()}
# AITBC Hermes Autonomous Economics - ${hre.network.name.toUpperCase()}
# Generated on ${new Date().toISOString()}
# Contract Addresses

View File

@@ -3,7 +3,7 @@ const fs = require("fs");
const path = require("path");
async function main() {
console.log("🔍 Verifying OpenClaw Autonomous Economics Contracts");
console.log("🔍 Verifying Hermes Autonomous Economics Contracts");
console.log("==============================================");
const networkName = hre.network.name;