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
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:
@@ -25,7 +25,7 @@ The AITBC CLI provides 27 commands for comprehensive blockchain management:
|
||||
- `ai-ops` - AI compute operations
|
||||
- `mining` - Mining operations and status
|
||||
- `agent` - AI agent workflow and execution management
|
||||
- `openclaw` - OpenClaw agent ecosystem operations
|
||||
- `hermes` - Hermes agent ecosystem operations
|
||||
- `workflow` - Workflow automation and management
|
||||
- `resource` - Resource management and optimization
|
||||
- `system` - System status and information
|
||||
@@ -52,8 +52,8 @@ aitbc list
|
||||
**Output:**
|
||||
```
|
||||
Wallets:
|
||||
openclaw-backup: ait1cebd266469be5f85b5f0052f1556b5d708b42de9
|
||||
openclaw-trainee: ait10a252a31c79939c689bf392e960afc7861df5ee9
|
||||
hermes-backup: ait1cebd266469be5f85b5f0052f1556b5d708b42de9
|
||||
hermes-trainee: ait10a252a31c79939c689bf392e960afc7861df5ee9
|
||||
```
|
||||
|
||||
### 2. Get Balance
|
||||
@@ -66,12 +66,12 @@ aitbc balance --name <wallet-name>
|
||||
**Examples:**
|
||||
```bash
|
||||
# Get balance for specific wallet
|
||||
aitbc balance --name openclaw-backup
|
||||
aitbc balance --name hermes-backup
|
||||
```
|
||||
|
||||
**Output:**
|
||||
```
|
||||
Wallet: openclaw-backup
|
||||
Wallet: hermes-backup
|
||||
Address: ait1cebd266469be5f85b5f0052f1556b5d708b42de9
|
||||
Balance: 0 AIT
|
||||
Nonce: 0
|
||||
|
||||
@@ -1292,8 +1292,8 @@ def agent_operations(action: str, **kwargs) -> Optional[Dict]:
|
||||
return None
|
||||
|
||||
|
||||
def openclaw_training_operations(action: str, **kwargs) -> Optional[Dict]:
|
||||
"""Handle OpenClaw agent ecosystem operations"""
|
||||
def hermes_training_operations(action: str, **kwargs) -> Optional[Dict]:
|
||||
"""Handle hermes agent ecosystem operations"""
|
||||
try:
|
||||
if action == "deploy":
|
||||
return {
|
||||
@@ -1301,7 +1301,7 @@ def openclaw_training_operations(action: str, **kwargs) -> Optional[Dict]:
|
||||
"deployment_id": f"deploy_{int(time.time())}",
|
||||
"environment": kwargs.get("environment", "dev"),
|
||||
"status": "Deploying",
|
||||
"agent_id": f"openclaw_{int(time.time())}",
|
||||
"agent_id": f"hermes_{int(time.time())}",
|
||||
"estimated_deployment_time": "2-3 minutes",
|
||||
"deployment_cost": "50 AIT"
|
||||
}
|
||||
@@ -1325,9 +1325,9 @@ def openclaw_training_operations(action: str, **kwargs) -> Optional[Dict]:
|
||||
"action": "market",
|
||||
"market_action": "list",
|
||||
"agents": [
|
||||
{"id": "openclaw_001", "name": "Data Analysis Pro", "price": 100, "rating": 4.8},
|
||||
{"id": "openclaw_002", "name": "Trading Expert", "price": 250, "rating": 4.6},
|
||||
{"id": "openclaw_003", "name": "Content Creator", "price": 75, "rating": 4.9}
|
||||
{"id": "hermes_001", "name": "Data Analysis Pro", "price": 100, "rating": 4.8},
|
||||
{"id": "hermes_002", "name": "Trading Expert", "price": 250, "rating": 4.6},
|
||||
{"id": "hermes_003", "name": "Content Creator", "price": 75, "rating": 4.9}
|
||||
],
|
||||
"total_available": 3
|
||||
}
|
||||
@@ -1373,17 +1373,17 @@ def openclaw_training_operations(action: str, **kwargs) -> Optional[Dict]:
|
||||
os.makedirs(log_dir, exist_ok=True)
|
||||
log_file = f"{log_dir}/agent_{kwargs.get('agent_id')}_{stage}_{int(time.time())}.log"
|
||||
|
||||
# Execute training operations with actual OpenClaw calls
|
||||
# Execute training operations with actual hermes calls
|
||||
operations = training_config.get('training_data', {}).get('operations', [])
|
||||
completed_ops = 0
|
||||
failed_ops = 0
|
||||
|
||||
# OpenClaw service endpoints
|
||||
# hermes service endpoints
|
||||
agent_coordinator_url = "http://localhost:9001"
|
||||
exchange_url = "http://localhost:8001"
|
||||
blockchain_rpc_url = "http://localhost:8006"
|
||||
|
||||
# Write training log with actual OpenClaw calls
|
||||
# Write training log with actual hermes calls
|
||||
for i, op in enumerate(operations, 1):
|
||||
operation = op.get('operation')
|
||||
parameters = op.get('parameters', {})
|
||||
@@ -1399,16 +1399,16 @@ def openclaw_training_operations(action: str, **kwargs) -> Optional[Dict]:
|
||||
}
|
||||
}
|
||||
|
||||
# Execute training via OpenClaw agent with allowlist enabled
|
||||
# Execute training via hermes agent with allowlist enabled
|
||||
start_time = time.time()
|
||||
try:
|
||||
# Build prompt for OpenClaw agent to execute AITBC command
|
||||
# Build prompt for hermes agent to execute AITBC command
|
||||
prompt_message = f"Execute AITBC CLI command: {operation}"
|
||||
if parameters:
|
||||
prompt_message += f" with parameters: {json.dumps(parameters)}"
|
||||
|
||||
# Use OpenClaw agent with allowlist (AITBC CLI now allowed)
|
||||
cmd = ["openclaw", "agent", "--message", prompt_message, "--agent", "main"]
|
||||
# Use hermes agent with allowlist (AITBC CLI now allowed)
|
||||
cmd = ["hermes", "agent", "--message", prompt_message, "--agent", "main"]
|
||||
|
||||
try:
|
||||
result = subprocess.run(cmd, capture_output=True, text=True, timeout=30)
|
||||
@@ -1551,7 +1551,7 @@ def openclaw_training_operations(action: str, **kwargs) -> Optional[Dict]:
|
||||
return {"action": action, "status": "Not implemented yet"}
|
||||
|
||||
except Exception as e:
|
||||
print(f"Error in OpenClaw operations: {e}")
|
||||
print(f"Error in hermes operations: {e}")
|
||||
return None
|
||||
|
||||
|
||||
@@ -2132,7 +2132,7 @@ def legacy_main():
|
||||
mining_parser.add_argument("--wallet", help="Wallet name for mining rewards")
|
||||
mining_parser.add_argument("--rpc-url", default=DEFAULT_RPC_URL, help="RPC URL")
|
||||
|
||||
# Agent management commands (OpenClaw agent focused)
|
||||
# Agent management commands (hermes agent focused)
|
||||
agent_parser = subparsers.add_parser("agent", help="AI agent workflow and execution management")
|
||||
agent_subparsers = agent_parser.add_subparsers(dest="agent_action", help="Agent actions")
|
||||
|
||||
@@ -2162,27 +2162,27 @@ def legacy_main():
|
||||
agent_list_parser = agent_subparsers.add_parser("list", help="List available agent workflows")
|
||||
agent_list_parser.add_argument("--status", choices=["active", "completed", "failed"], help="Filter by status")
|
||||
|
||||
# OpenClaw specific commands
|
||||
openclaw_parser = subparsers.add_parser("openclaw", help="OpenClaw agent ecosystem operations")
|
||||
openclaw_subparsers = openclaw_parser.add_subparsers(dest="openclaw_action", help="OpenClaw actions")
|
||||
# hermes specific commands
|
||||
hermes_parser = subparsers.add_parser("hermes", help="hermes agent ecosystem operations")
|
||||
hermes_subparsers = hermes_parser.add_subparsers(dest="hermes_action", help="hermes actions")
|
||||
|
||||
# OpenClaw deploy
|
||||
openclaw_deploy_parser = openclaw_subparsers.add_parser("deploy", help="Deploy OpenClaw agent")
|
||||
openclaw_deploy_parser.add_argument("--agent-file", required=True, help="Agent configuration file")
|
||||
openclaw_deploy_parser.add_argument("--wallet", required=True, help="Wallet for deployment costs")
|
||||
openclaw_deploy_parser.add_argument("--environment", choices=["dev", "staging", "prod"], default="dev", help="Deployment environment")
|
||||
# hermes deploy
|
||||
hermes_deploy_parser = hermes_subparsers.add_parser("deploy", help="Deploy hermes agent")
|
||||
hermes_deploy_parser.add_argument("--agent-file", required=True, help="Agent configuration file")
|
||||
hermes_deploy_parser.add_argument("--wallet", required=True, help="Wallet for deployment costs")
|
||||
hermes_deploy_parser.add_argument("--environment", choices=["dev", "staging", "prod"], default="dev", help="Deployment environment")
|
||||
|
||||
# OpenClaw monitor
|
||||
openclaw_monitor_parser = openclaw_subparsers.add_parser("monitor", help="Monitor OpenClaw agent performance")
|
||||
openclaw_monitor_parser.add_argument("--agent-id", help="Specific agent ID to monitor")
|
||||
openclaw_monitor_parser.add_argument("--metrics", choices=["performance", "cost", "errors", "all"], default="all", help="Metrics to show")
|
||||
# hermes monitor
|
||||
hermes_monitor_parser = hermes_subparsers.add_parser("monitor", help="Monitor hermes agent performance")
|
||||
hermes_monitor_parser.add_argument("--agent-id", help="Specific agent ID to monitor")
|
||||
hermes_monitor_parser.add_argument("--metrics", choices=["performance", "cost", "errors", "all"], default="all", help="Metrics to show")
|
||||
|
||||
# OpenClaw market
|
||||
openclaw_market_parser = openclaw_subparsers.add_parser("market", help="OpenClaw agent marketplace")
|
||||
openclaw_market_parser.add_argument("--action", choices=["list", "publish", "purchase", "evaluate"],
|
||||
# hermes market
|
||||
hermes_market_parser = hermes_subparsers.add_parser("market", help="hermes agent marketplace")
|
||||
hermes_market_parser.add_argument("--action", choices=["list", "publish", "purchase", "evaluate"],
|
||||
required=True, help="Market action")
|
||||
openclaw_market_parser.add_argument("--agent-id", help="Agent ID for market operations")
|
||||
openclaw_market_parser.add_argument("--price", type=float, help="Price for market operations")
|
||||
hermes_market_parser.add_argument("--agent-id", help="Agent ID for market operations")
|
||||
hermes_market_parser.add_argument("--price", type=float, help="Price for market operations")
|
||||
|
||||
# Workflow automation commands
|
||||
workflow_parser = subparsers.add_parser("workflow", help="Workflow automation and management")
|
||||
@@ -2600,7 +2600,7 @@ def legacy_main():
|
||||
else:
|
||||
sys.exit(1)
|
||||
|
||||
elif args.command == "openclaw":
|
||||
elif args.command == "hermes":
|
||||
# Only pass arguments that are defined for this subcommand
|
||||
kwargs = {}
|
||||
if hasattr(args, 'agent_file') and args.agent_file:
|
||||
@@ -2614,14 +2614,14 @@ def legacy_main():
|
||||
if hasattr(args, 'metrics') and args.metrics:
|
||||
kwargs['metrics'] = args.metrics
|
||||
# Handle the market action parameter specifically
|
||||
if hasattr(args, 'action') and args.action and args.openclaw_action == 'market':
|
||||
if hasattr(args, 'action') and args.action and args.hermes_action == 'market':
|
||||
kwargs['market_action'] = args.action
|
||||
if hasattr(args, 'price') and args.price:
|
||||
kwargs['price'] = args.price
|
||||
|
||||
result = openclaw_operations(args.openclaw_action, **kwargs)
|
||||
result = hermes_operations(args.hermes_action, **kwargs)
|
||||
if result:
|
||||
print(f"OpenClaw {result['action']}:")
|
||||
print(f"hermes {result['action']}:")
|
||||
for key, value in result.items():
|
||||
if key != "action":
|
||||
if isinstance(value, list):
|
||||
@@ -2989,13 +2989,13 @@ def legacy_main():
|
||||
print("Falling back to mock balances:")
|
||||
print(" genesis: 10000 AIT")
|
||||
print(" aitbc1: 5000 AIT")
|
||||
print(" openclaw-trainee: 100 AIT")
|
||||
print(" hermes-trainee: 100 AIT")
|
||||
except Exception as e:
|
||||
print(f"Warning: Failed to query wallet daemon: {e}")
|
||||
print("Falling back to mock balances:")
|
||||
print(" genesis: 10000 AIT")
|
||||
print(" aitbc1: 5000 AIT")
|
||||
print(" openclaw-trainee: 100 AIT")
|
||||
print(" hermes-trainee: 100 AIT")
|
||||
elif args.name:
|
||||
try:
|
||||
http_client = AITBCHTTPClient(base_url=daemon_url, timeout=5)
|
||||
@@ -3045,7 +3045,7 @@ def legacy_main():
|
||||
print("All wallet balances:")
|
||||
print(" genesis: 10000 AIT")
|
||||
print(" aitbc1: 5000 AIT")
|
||||
print(" openclaw-trainee: 100 AIT")
|
||||
print(" hermes-trainee: 100 AIT")
|
||||
|
||||
elif args.command == "mining":
|
||||
# Handle flag-based commands
|
||||
|
||||
@@ -31,7 +31,7 @@ class CLIConfig(BaseAITBCConfig):
|
||||
governance_service_url: str = Field(default="http://localhost:8105", description="Governance Service URL")
|
||||
ai_service_url: str = Field(default="http://localhost:8106", description="AI Service URL")
|
||||
monitoring_service_url: str = Field(default="http://localhost:8107", description="Monitoring Service URL")
|
||||
openclaw_service_url: str = Field(default="http://localhost:8108", description="OpenClaw Service URL")
|
||||
hermes_service_url: str = Field(default="http://localhost:8108", description="hermes Service URL")
|
||||
plugin_service_url: str = Field(default="http://localhost:8109", description="Plugin Service URL")
|
||||
wallet_daemon_url: str = Field(default="http://localhost:8003", description="Wallet daemon URL")
|
||||
wallet_url: str = Field(default="http://localhost:8003", description="Wallet daemon URL (alias for compatibility)")
|
||||
|
||||
@@ -65,7 +65,7 @@ cli/
|
||||
13. **agent** - Agent operations
|
||||
14. **multimodal** - Multimodal AI operations
|
||||
15. **optimize** - Optimization operations
|
||||
16. **openclaw** - OpenClaw operations
|
||||
16. **hermes** - hermes operations
|
||||
17. **advanced** - Advanced marketplace operations
|
||||
18. **swarm** - Swarm operations
|
||||
19. **plugin** - Plugin management
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
OpenClaw DAO CLI Commands
|
||||
Hermes DAO CLI Commands
|
||||
Provides command-line interface for DAO governance operations
|
||||
"""
|
||||
|
||||
@@ -14,7 +14,7 @@ from utils.config import load_config
|
||||
|
||||
@click.group()
|
||||
def dao():
|
||||
"""OpenClaw DAO governance commands"""
|
||||
"""Hermes DAO governance commands"""
|
||||
pass
|
||||
|
||||
@dao.command()
|
||||
@@ -22,7 +22,7 @@ def dao():
|
||||
@click.option('--timelock-address', required=True, help='Timelock controller address')
|
||||
@click.option('--network', default='mainnet', help='Blockchain network')
|
||||
def deploy(token_address: str, timelock_address: str, network: str):
|
||||
"""Deploy OpenClaw DAO contract"""
|
||||
"""Deploy Hermes DAO contract"""
|
||||
try:
|
||||
w3 = get_web3_connection(network)
|
||||
config = load_config()
|
||||
@@ -60,7 +60,7 @@ def deploy(token_address: str, timelock_address: str, network: str):
|
||||
# Wait for confirmation
|
||||
receipt = w3.eth.wait_for_transaction_receipt(tx_hash)
|
||||
|
||||
click.echo(f"✅ OpenClaw DAO deployed at: {receipt.contractAddress}")
|
||||
click.echo(f"✅ Hermes DAO deployed at: {receipt.contractAddress}")
|
||||
click.echo(f"📦 Transaction hash: {tx_hash.hex()}")
|
||||
|
||||
except Exception as e:
|
||||
@@ -87,7 +87,7 @@ def propose(dao_address: str, targets: str, values: str, calldatas: str,
|
||||
calldata_list = calldatas.split(',')
|
||||
|
||||
# Get contract
|
||||
dao_contract = get_contract(dao_address, "OpenClawDAO")
|
||||
dao_contract = get_contract(dao_address, "HermesDAO")
|
||||
|
||||
# Build transaction
|
||||
tx = dao_contract.functions.propose(
|
||||
@@ -137,7 +137,7 @@ def vote(dao_address: str, proposal_id: int):
|
||||
config = load_config()
|
||||
|
||||
# Get contract
|
||||
dao_contract = get_contract(dao_address, "OpenClawDAO")
|
||||
dao_contract = get_contract(dao_address, "HermesDAO")
|
||||
|
||||
# Check proposal state
|
||||
state = dao_contract.functions.state(proposal_id).call()
|
||||
@@ -196,7 +196,7 @@ def execute(dao_address: str, proposal_id: int):
|
||||
config = load_config()
|
||||
|
||||
# Get contract
|
||||
dao_contract = get_contract(dao_address, "OpenClawDAO")
|
||||
dao_contract = get_contract(dao_address, "HermesDAO")
|
||||
|
||||
# Check proposal state
|
||||
state = dao_contract.functions.state(proposal_id).call()
|
||||
@@ -228,7 +228,7 @@ def list_proposals(dao_address: str):
|
||||
"""List all proposals"""
|
||||
try:
|
||||
w3 = get_web3_connection()
|
||||
dao_contract = get_contract(dao_address, "OpenClawDAO")
|
||||
dao_contract = get_contract(dao_address, "HermesDAO")
|
||||
|
||||
# Get proposal count
|
||||
proposal_count = dao_contract.functions.proposalCount().call()
|
||||
@@ -277,7 +277,7 @@ def status(dao_address: str):
|
||||
"""Show DAO status and statistics"""
|
||||
try:
|
||||
w3 = get_web3_connection()
|
||||
dao_contract = get_contract(dao_address, "OpenClawDAO")
|
||||
dao_contract = get_contract(dao_address, "HermesDAO")
|
||||
|
||||
# Get DAO info
|
||||
token_address = dao_contract.functions.governanceToken().call()
|
||||
@@ -289,7 +289,7 @@ def status(dao_address: str):
|
||||
# Get active proposals
|
||||
active_proposals = dao_contract.functions.getActiveProposals().call()
|
||||
|
||||
click.echo("🏛️ OpenClaw DAO Status")
|
||||
click.echo("🏛️ Hermes DAO Status")
|
||||
click.echo("=" * 40)
|
||||
click.echo(f"📊 Total Supply: {total_supply / 1e18:.2f} tokens")
|
||||
click.echo(f"📋 Total Proposals: {proposal_count}")
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
"""OpenClaw integration commands for AITBC CLI"""
|
||||
"""hermes integration commands for AITBC CLI"""
|
||||
|
||||
import click
|
||||
import httpx
|
||||
@@ -12,8 +12,8 @@ from utils import output, error, success, warning
|
||||
|
||||
|
||||
@click.group()
|
||||
def openclaw():
|
||||
"""OpenClaw integration with edge computing deployment"""
|
||||
def hermes():
|
||||
"""hermes integration with edge computing deployment"""
|
||||
pass
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@ def deploy():
|
||||
pass
|
||||
|
||||
|
||||
openclaw.add_command(deploy)
|
||||
hermes.add_command(deploy)
|
||||
|
||||
|
||||
@deploy.command()
|
||||
@@ -36,7 +36,7 @@ openclaw.add_command(deploy)
|
||||
@click.pass_context
|
||||
def deploy_agent(ctx, agent_id: str, region: str, instances: int, instance_type: str,
|
||||
edge_locations: Optional[str], auto_scale: bool):
|
||||
"""Deploy agent to OpenClaw network"""
|
||||
"""Deploy agent to hermes network"""
|
||||
config = ctx.obj['config']
|
||||
|
||||
deployment_data = {
|
||||
@@ -53,7 +53,7 @@ def deploy_agent(ctx, agent_id: str, region: str, instances: int, instance_type:
|
||||
try:
|
||||
with httpx.Client() as client:
|
||||
response = client.post(
|
||||
f"{config.coordinator_url}/openclaw/deploy",
|
||||
f"{config.coordinator_url}/hermes/deploy",
|
||||
headers={"X-Api-Key": config.api_key or ""},
|
||||
json=deployment_data
|
||||
)
|
||||
@@ -92,7 +92,7 @@ def scale(ctx, deployment_id: str, instances: int, auto_scale: bool, min_instanc
|
||||
try:
|
||||
with httpx.Client() as client:
|
||||
response = client.post(
|
||||
f"{config.coordinator_url}/openclaw/deployments/{deployment_id}/scale",
|
||||
f"{config.coordinator_url}/hermes/deployments/{deployment_id}/scale",
|
||||
headers={"X-Api-Key": config.api_key or ""},
|
||||
json=scale_data
|
||||
)
|
||||
@@ -126,7 +126,7 @@ def optimize(ctx, deployment_id: str, objective: str):
|
||||
try:
|
||||
with httpx.Client() as client:
|
||||
response = client.post(
|
||||
f"{config.coordinator_url}/openclaw/deployments/{deployment_id}/optimize",
|
||||
f"{config.coordinator_url}/hermes/deployments/{deployment_id}/optimize",
|
||||
headers={"X-Api-Key": config.api_key or ""},
|
||||
json=optimization_data
|
||||
)
|
||||
@@ -147,11 +147,11 @@ def optimize(ctx, deployment_id: str, objective: str):
|
||||
|
||||
@click.group()
|
||||
def monitor():
|
||||
"""OpenClaw monitoring operations"""
|
||||
"""hermes monitoring operations"""
|
||||
pass
|
||||
|
||||
|
||||
openclaw.add_command(monitor)
|
||||
hermes.add_command(monitor)
|
||||
|
||||
|
||||
@monitor.command()
|
||||
@@ -161,7 +161,7 @@ openclaw.add_command(monitor)
|
||||
@click.option("--interval", default=10, help="Update interval for real-time monitoring")
|
||||
@click.pass_context
|
||||
def monitor_metrics(ctx, deployment_id: str, metrics: str, real_time: bool, interval: int):
|
||||
"""Monitor OpenClaw agent performance"""
|
||||
"""Monitor hermes agent performance"""
|
||||
config = ctx.obj['config']
|
||||
|
||||
params = {"metrics": [m.strip() for m in metrics.split(',')]}
|
||||
@@ -170,7 +170,7 @@ def monitor_metrics(ctx, deployment_id: str, metrics: str, real_time: bool, inte
|
||||
try:
|
||||
with httpx.Client() as client:
|
||||
response = client.get(
|
||||
f"{config.coordinator_url}/openclaw/deployments/{deployment_id}/metrics",
|
||||
f"{config.coordinator_url}/hermes/deployments/{deployment_id}/metrics",
|
||||
headers={"X-Api-Key": config.api_key or ""},
|
||||
params=params
|
||||
)
|
||||
@@ -220,7 +220,7 @@ def status(ctx, deployment_id: str):
|
||||
try:
|
||||
with httpx.Client() as client:
|
||||
response = client.get(
|
||||
f"{config.coordinator_url}/openclaw/deployments/{deployment_id}/status",
|
||||
f"{config.coordinator_url}/hermes/deployments/{deployment_id}/status",
|
||||
headers={"X-Api-Key": config.api_key or ""}
|
||||
)
|
||||
|
||||
@@ -241,7 +241,7 @@ def edge():
|
||||
pass
|
||||
|
||||
|
||||
openclaw.add_command(edge)
|
||||
hermes.add_command(edge)
|
||||
|
||||
|
||||
@edge.command()
|
||||
@@ -266,7 +266,7 @@ def deploy(ctx, agent_id: str, locations: str, strategy: str, replicas: int):
|
||||
try:
|
||||
with httpx.Client() as client:
|
||||
response = client.post(
|
||||
f"{config.coordinator_url}/openclaw/edge/deploy",
|
||||
f"{config.coordinator_url}/hermes/edge/deploy",
|
||||
headers={"X-Api-Key": config.api_key or ""},
|
||||
json=edge_data
|
||||
)
|
||||
@@ -299,7 +299,7 @@ def resources(ctx, location: Optional[str]):
|
||||
try:
|
||||
with httpx.Client() as client:
|
||||
response = client.get(
|
||||
f"{config.coordinator_url}/openclaw/edge/resources",
|
||||
f"{config.coordinator_url}/hermes/edge/resources",
|
||||
headers={"X-Api-Key": config.api_key or ""},
|
||||
params=params
|
||||
)
|
||||
@@ -337,7 +337,7 @@ def optimize(ctx, deployment_id: str, latency_target: Optional[int],
|
||||
try:
|
||||
with httpx.Client() as client:
|
||||
response = client.post(
|
||||
f"{config.coordinator_url}/openclaw/edge/deployments/{deployment_id}/optimize",
|
||||
f"{config.coordinator_url}/hermes/edge/deployments/{deployment_id}/optimize",
|
||||
headers={"X-Api-Key": config.api_key or ""},
|
||||
json=optimization_data
|
||||
)
|
||||
@@ -371,7 +371,7 @@ def compliance(ctx, deployment_id: str, standards: Optional[str]):
|
||||
try:
|
||||
with httpx.Client() as client:
|
||||
response = client.get(
|
||||
f"{config.coordinator_url}/openclaw/edge/deployments/{deployment_id}/compliance",
|
||||
f"{config.coordinator_url}/hermes/edge/deployments/{deployment_id}/compliance",
|
||||
headers={"X-Api-Key": config.api_key or ""},
|
||||
params=params
|
||||
)
|
||||
@@ -393,7 +393,7 @@ def routing():
|
||||
pass
|
||||
|
||||
|
||||
openclaw.add_command(routing)
|
||||
hermes.add_command(routing)
|
||||
|
||||
|
||||
@routing.command()
|
||||
@@ -414,7 +414,7 @@ def optimize(ctx, deployment_id: str, algorithm: str, weights: Optional[str]):
|
||||
try:
|
||||
with httpx.Client() as client:
|
||||
response = client.post(
|
||||
f"{config.coordinator_url}/openclaw/routing/deployments/{deployment_id}/optimize",
|
||||
f"{config.coordinator_url}/hermes/routing/deployments/{deployment_id}/optimize",
|
||||
headers={"X-Api-Key": config.api_key or ""},
|
||||
json=routing_data
|
||||
)
|
||||
@@ -443,7 +443,7 @@ def status(ctx, deployment_id: str):
|
||||
try:
|
||||
with httpx.Client() as client:
|
||||
response = client.get(
|
||||
f"{config.coordinator_url}/openclaw/routing/deployments/{deployment_id}/status",
|
||||
f"{config.coordinator_url}/hermes/routing/deployments/{deployment_id}/status",
|
||||
headers={"X-Api-Key": config.api_key or ""}
|
||||
)
|
||||
|
||||
@@ -460,11 +460,11 @@ def status(ctx, deployment_id: str):
|
||||
|
||||
@click.group()
|
||||
def ecosystem():
|
||||
"""OpenClaw ecosystem development"""
|
||||
"""hermes ecosystem development"""
|
||||
pass
|
||||
|
||||
|
||||
openclaw.add_command(ecosystem)
|
||||
hermes.add_command(ecosystem)
|
||||
|
||||
|
||||
@click.group()
|
||||
@@ -473,7 +473,7 @@ def train():
|
||||
pass
|
||||
|
||||
|
||||
openclaw.add_command(train)
|
||||
hermes.add_command(train)
|
||||
|
||||
|
||||
@ecosystem.command()
|
||||
@@ -485,7 +485,7 @@ openclaw.add_command(train)
|
||||
@click.option("--package", type=click.File('rb'), help="Solution package file")
|
||||
@click.pass_context
|
||||
def create(ctx, name: str, type: str, description: str, package):
|
||||
"""Create OpenClaw ecosystem solution"""
|
||||
"""Create hermes ecosystem solution"""
|
||||
config = ctx.obj['config']
|
||||
|
||||
solution_data = {
|
||||
@@ -501,7 +501,7 @@ def create(ctx, name: str, type: str, description: str, package):
|
||||
try:
|
||||
with httpx.Client() as client:
|
||||
response = client.post(
|
||||
f"{config.coordinator_url}/openclaw/ecosystem/solutions",
|
||||
f"{config.coordinator_url}/hermes/ecosystem/solutions",
|
||||
headers={"X-Api-Key": config.api_key or ""},
|
||||
data=solution_data,
|
||||
files=files
|
||||
@@ -509,7 +509,7 @@ def create(ctx, name: str, type: str, description: str, package):
|
||||
|
||||
if response.status_code == 201:
|
||||
solution = response.json()
|
||||
success(f"OpenClaw solution created: {solution['id']}")
|
||||
success(f"hermes solution created: {solution['id']}")
|
||||
output(solution, ctx.obj['output_format'])
|
||||
else:
|
||||
error(f"Failed to create solution: {response.status_code}")
|
||||
@@ -527,7 +527,7 @@ def create(ctx, name: str, type: str, description: str, package):
|
||||
@click.option("--limit", default=20, help="Number of solutions to list")
|
||||
@click.pass_context
|
||||
def list(ctx, type: Optional[str], category: Optional[str], limit: int):
|
||||
"""List OpenClaw ecosystem solutions"""
|
||||
"""List hermes ecosystem solutions"""
|
||||
config = ctx.obj['config']
|
||||
|
||||
params = {"limit": limit}
|
||||
@@ -539,7 +539,7 @@ def list(ctx, type: Optional[str], category: Optional[str], limit: int):
|
||||
try:
|
||||
with httpx.Client() as client:
|
||||
response = client.get(
|
||||
f"{config.coordinator_url}/openclaw/ecosystem/solutions",
|
||||
f"{config.coordinator_url}/hermes/ecosystem/solutions",
|
||||
headers={"X-Api-Key": config.api_key or ""},
|
||||
params=params
|
||||
)
|
||||
@@ -559,13 +559,13 @@ def list(ctx, type: Optional[str], category: Optional[str], limit: int):
|
||||
@click.argument("solution_id")
|
||||
@click.pass_context
|
||||
def install(ctx, solution_id: str):
|
||||
"""Install OpenClaw ecosystem solution"""
|
||||
"""Install hermes ecosystem solution"""
|
||||
config = ctx.obj['config']
|
||||
|
||||
try:
|
||||
with httpx.Client() as client:
|
||||
response = client.post(
|
||||
f"{config.coordinator_url}/openclaw/ecosystem/solutions/{solution_id}/install",
|
||||
f"{config.coordinator_url}/hermes/ecosystem/solutions/{solution_id}/install",
|
||||
headers={"X-Api-Key": config.api_key or ""}
|
||||
)
|
||||
|
||||
@@ -590,7 +590,7 @@ def install(ctx, solution_id: str):
|
||||
@click.option("--log-level", default="INFO", type=click.Choice(["DEBUG", "INFO", "SUCCESS", "WARNING", "ERROR"]), help="Logging level")
|
||||
@click.pass_context
|
||||
def agent(ctx, agent_id: str, stage: str, training_data: str, log_level: str):
|
||||
"""Train OpenClaw agent on AITBC operations"""
|
||||
"""Train hermes agent on AITBC operations"""
|
||||
config = ctx.obj['config']
|
||||
|
||||
# Load training data
|
||||
@@ -869,11 +869,11 @@ def certify(ctx, agent_id: str):
|
||||
}, ctx.obj['output_format'])
|
||||
|
||||
|
||||
@openclaw.command()
|
||||
@hermes.command()
|
||||
@click.argument("deployment_id")
|
||||
@click.pass_context
|
||||
def terminate(ctx, deployment_id: str):
|
||||
"""Terminate OpenClaw deployment"""
|
||||
"""Terminate hermes deployment"""
|
||||
config = ctx.obj['config']
|
||||
|
||||
if not click.confirm(f"Terminate deployment {deployment_id}? This action cannot be undone."):
|
||||
@@ -883,7 +883,7 @@ def terminate(ctx, deployment_id: str):
|
||||
try:
|
||||
with httpx.Client() as client:
|
||||
response = client.delete(
|
||||
f"{config.coordinator_url}/openclaw/deployments/{deployment_id}",
|
||||
f"{config.coordinator_url}/hermes/deployments/{deployment_id}",
|
||||
headers={"X-Api-Key": config.api_key or ""}
|
||||
)
|
||||
|
||||
@@ -688,10 +688,10 @@ def list(ctx, status: Optional[str], gpu_model: Optional[str], price_max: Option
|
||||
error(f"Network error: {e}")
|
||||
|
||||
|
||||
# OpenClaw Agent Marketplace Commands
|
||||
# hermes Agent Marketplace Commands
|
||||
@marketplace.group()
|
||||
def agents():
|
||||
"""OpenClaw agent marketplace operations"""
|
||||
"""hermes agent marketplace operations"""
|
||||
pass
|
||||
|
||||
|
||||
@@ -704,7 +704,7 @@ def agents():
|
||||
@click.pass_context
|
||||
def register(ctx, agent_id: str, agent_type: str, capabilities: Optional[str],
|
||||
region: Optional[str], reputation: float):
|
||||
"""Register agent on OpenClaw marketplace"""
|
||||
"""Register agent on hermes marketplace"""
|
||||
config = ctx.obj['config']
|
||||
|
||||
agent_data = {
|
||||
@@ -994,7 +994,7 @@ def analytics(ctx, time_range: str):
|
||||
# Governance Commands
|
||||
@marketplace.group()
|
||||
def governance():
|
||||
"""OpenClaw agent governance operations"""
|
||||
"""hermes agent governance operations"""
|
||||
pass
|
||||
|
||||
|
||||
@@ -1104,7 +1104,7 @@ def list_proposals(ctx, status: Optional[str], limit: int):
|
||||
# Performance Testing Commands
|
||||
@marketplace.group()
|
||||
def test():
|
||||
"""OpenClaw marketplace testing operations"""
|
||||
"""hermes marketplace testing operations"""
|
||||
pass
|
||||
|
||||
|
||||
|
||||
@@ -75,7 +75,7 @@ def check(service):
|
||||
else:
|
||||
click.echo(f"❌ Service file missing: {service_file}")
|
||||
else:
|
||||
services = ['marketplace', 'mining-blockchain', 'openclaw-ai', 'blockchain-node']
|
||||
services = ['marketplace', 'mining-blockchain', 'hermes-ai', 'blockchain-node']
|
||||
for svc in services:
|
||||
service_file = f"/etc/systemd/system/aitbc-{svc}.service"
|
||||
if os.path.exists(service_file):
|
||||
|
||||
@@ -5,14 +5,14 @@ This document analyzes the currently disabled CLI commands and provides recommen
|
||||
|
||||
## Disabled Commands
|
||||
|
||||
### 1. `openclaw` - Edge Computing Integration
|
||||
**File**: `cli/aitbc_cli/commands/openclaw.py`
|
||||
### 1. `hermes` - Edge Computing Integration
|
||||
**File**: `cli/aitbc_cli/commands/hermes.py`
|
||||
**Status**: Commented out in `main.py` line 28
|
||||
**Reason**: "Temporarily disabled due to command registration issues"
|
||||
|
||||
**Analysis**:
|
||||
- **Size**: 604 lines of code
|
||||
- **Functionality**: OpenClaw integration with edge computing deployment
|
||||
- **Functionality**: hermes integration with edge computing deployment
|
||||
- **Dependencies**: httpx, JSON, time utilities
|
||||
- **Potential Value**: High - edge computing is strategic for AITBC
|
||||
|
||||
@@ -55,11 +55,11 @@ This document analyzes the currently disabled CLI commands and provides recommen
|
||||
## Cleanup Action Items
|
||||
|
||||
### Immediate Actions (High Priority)
|
||||
1. **Fix `openclaw` registration**
|
||||
1. **Fix `hermes` registration**
|
||||
```bash
|
||||
# Uncomment line 28 in main.py
|
||||
# from .commands.openclaw import openclaw
|
||||
# cli.add_command(openclaw)
|
||||
# from .commands.hermes import hermes
|
||||
# cli.add_command(hermes)
|
||||
```
|
||||
- Test for naming conflicts
|
||||
- Rename if necessary (e.g., `edge-deploy`)
|
||||
@@ -116,7 +116,7 @@ Before re-enabling any disabled command:
|
||||
|
||||
| Week | Action | Status |
|
||||
|------|--------|--------|
|
||||
| 1 | Fix openclaw registration issues | 🔄 In Progress |
|
||||
| 1 | Fix hermes registration issues | 🔄 In Progress |
|
||||
| 1 | Resolve marketplace command conflicts | 🔄 In Progress |
|
||||
| 2 | Locate and evaluate marketplace_advanced | ⏳ Pending |
|
||||
| 2 | Add comprehensive tests | ⏳ Pending |
|
||||
@@ -126,7 +126,7 @@ Before re-enabling any disabled command:
|
||||
|
||||
| Command | Risk Level | Action |
|
||||
|---------|-----------|--------|
|
||||
| openclaw | Low | Re-enable after testing |
|
||||
| hermes | Low | Re-enable after testing |
|
||||
| marketplace_cmd | Low | Merge or delete |
|
||||
| marketplace_advanced | Unknown | Locate and evaluate |
|
||||
|
||||
|
||||
@@ -191,8 +191,8 @@ def handle_agent_sdk_action(args, render_mapping):
|
||||
render_mapping("SDK Operation:", sdk_result)
|
||||
|
||||
|
||||
def handle_openclaw_training_action(args, openclaw_training_operations, first, render_mapping):
|
||||
"""Handle OpenClaw training action command."""
|
||||
def handle_hermes_training_action(args, hermes_training_operations, first, render_mapping):
|
||||
"""Handle hermes training action command."""
|
||||
kwargs = {}
|
||||
for name in ("agent_file", "wallet", "environment", "agent_id", "metrics", "price"):
|
||||
value = getattr(args, name, None)
|
||||
@@ -203,7 +203,7 @@ def handle_openclaw_training_action(args, openclaw_training_operations, first, r
|
||||
kwargs["market_action"] = market_action
|
||||
|
||||
# Handle train actions
|
||||
if getattr(args, "openclaw_training_action", None) == "train":
|
||||
if getattr(args, "hermes_training_action", None) == "train":
|
||||
train_action = getattr(args, "train_action", None)
|
||||
if train_action == "agent":
|
||||
for name in ("agent_id", "stage", "training_data", "log_level"):
|
||||
@@ -224,10 +224,10 @@ def handle_openclaw_training_action(args, openclaw_training_operations, first, r
|
||||
kwargs[name] = value
|
||||
kwargs["train_action"] = "certify"
|
||||
|
||||
result = openclaw_training_operations(args.openclaw_training_action, **kwargs)
|
||||
result = hermes_training_operations(args.hermes_training_action, **kwargs)
|
||||
if not result:
|
||||
sys.exit(1)
|
||||
render_mapping(f"OpenClaw Training {result['action']}:", result)
|
||||
render_mapping(f"hermes Training {result['action']}:", result)
|
||||
|
||||
|
||||
def handle_workflow_action(args, workflow_operations, render_mapping):
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
"""Parser registration modules for the unified CLI."""
|
||||
|
||||
from . import ai, agent, analytics, blockchain, bridge, contract, genesis, market, messaging, network, openclaw, pool_hub, resource, script, system, wallet, workflow
|
||||
from . import ai, agent, analytics, blockchain, bridge, contract, genesis, market, messaging, network, hermes, pool_hub, resource, script, system, wallet, workflow
|
||||
|
||||
def register_all(subparsers, ctx):
|
||||
wallet.register(subparsers, ctx)
|
||||
@@ -13,7 +13,7 @@ def register_all(subparsers, ctx):
|
||||
script.register(subparsers, ctx)
|
||||
system.register(subparsers, ctx)
|
||||
agent.register(subparsers, ctx)
|
||||
openclaw.register(subparsers, ctx)
|
||||
hermes.register(subparsers, ctx)
|
||||
workflow.register(subparsers, ctx)
|
||||
resource.register(subparsers, ctx)
|
||||
genesis.register(subparsers, ctx)
|
||||
|
||||
48
cli/parsers/hermes.py
Normal file
48
cli/parsers/hermes.py
Normal file
@@ -0,0 +1,48 @@
|
||||
"""hermes Agent Training command registration for the unified CLI."""
|
||||
|
||||
import argparse
|
||||
|
||||
from parser_context import ParserContext
|
||||
|
||||
|
||||
def register(subparsers: argparse._SubParsersAction, ctx: ParserContext) -> None:
|
||||
hermes_training_parser = subparsers.add_parser("hermes-training", help="hermes agent training operations")
|
||||
hermes_training_parser.set_defaults(handler=lambda parsed, parser=hermes_training_parser: parser.print_help())
|
||||
hermes_training_subparsers = hermes_training_parser.add_subparsers(dest="hermes_training_action")
|
||||
|
||||
hermes_deploy_parser = hermes_training_subparsers.add_parser("deploy", help="Deploy an hermes agent")
|
||||
hermes_deploy_parser.add_argument("--agent-file", required=True)
|
||||
hermes_deploy_parser.add_argument("--wallet", required=True)
|
||||
hermes_deploy_parser.add_argument("--environment", choices=["dev", "staging", "prod"], default="dev")
|
||||
hermes_deploy_parser.set_defaults(handler=ctx.handle_hermes_training_action)
|
||||
|
||||
hermes_monitor_parser = hermes_training_subparsers.add_parser("monitor", help="Monitor hermes performance")
|
||||
hermes_monitor_parser.add_argument("--agent-id")
|
||||
hermes_monitor_parser.add_argument("--metrics", choices=["performance", "cost", "errors", "all"], default="all")
|
||||
hermes_monitor_parser.set_defaults(handler=ctx.handle_hermes_training_action)
|
||||
|
||||
hermes_market_parser = hermes_training_subparsers.add_parser("market", help="Manage hermes marketplace activity")
|
||||
hermes_market_parser.add_argument("market_action", nargs="?", choices=["list", "publish", "purchase", "evaluate"])
|
||||
hermes_market_parser.add_argument("--action", dest="market_action_opt", choices=["list", "publish", "purchase", "evaluate"], help=argparse.SUPPRESS)
|
||||
hermes_market_parser.add_argument("--agent-id")
|
||||
hermes_market_parser.add_argument("--price", type=float)
|
||||
hermes_market_parser.set_defaults(handler=ctx.handle_hermes_training_action, hermes_training_action="market")
|
||||
|
||||
hermes_train_parser = hermes_training_subparsers.add_parser("train", help="Agent training operations")
|
||||
hermes_train_subparsers = hermes_train_parser.add_subparsers(dest="train_action")
|
||||
|
||||
hermes_train_agent_parser = hermes_train_subparsers.add_parser("agent", help="Train hermes agent on AITBC operations")
|
||||
hermes_train_agent_parser.add_argument("--agent-id", required=True, help="Agent ID to train")
|
||||
hermes_train_agent_parser.add_argument("--stage", required=True, help="Training stage (stage1_foundation, stage2_operations_mastery, etc.)")
|
||||
hermes_train_agent_parser.add_argument("--training-data", required=True, help="Path to training data JSON file")
|
||||
hermes_train_agent_parser.add_argument("--log-level", default="INFO", choices=["DEBUG", "INFO", "SUCCESS", "WARNING", "ERROR"], help="Logging level")
|
||||
hermes_train_agent_parser.set_defaults(handler=ctx.handle_hermes_training_action, hermes_training_action="train")
|
||||
|
||||
hermes_train_validate_parser = hermes_train_subparsers.add_parser("validate", help="Validate agent training progress")
|
||||
hermes_train_validate_parser.add_argument("--agent-id", required=True, help="Agent ID to validate")
|
||||
hermes_train_validate_parser.add_argument("--stage", required=True, help="Training stage to validate")
|
||||
hermes_train_validate_parser.set_defaults(handler=ctx.handle_hermes_training_action, hermes_training_action="train")
|
||||
|
||||
hermes_train_certify_parser = hermes_train_subparsers.add_parser("certify", help="Certify agent mastery")
|
||||
hermes_train_certify_parser.add_argument("--agent-id", required=True, help="Agent ID to certify")
|
||||
hermes_train_certify_parser.set_defaults(handler=ctx.handle_hermes_training_action, hermes_training_action="train")
|
||||
@@ -1,48 +0,0 @@
|
||||
"""OpenClaw Agent Training command registration for the unified CLI."""
|
||||
|
||||
import argparse
|
||||
|
||||
from parser_context import ParserContext
|
||||
|
||||
|
||||
def register(subparsers: argparse._SubParsersAction, ctx: ParserContext) -> None:
|
||||
openclaw_training_parser = subparsers.add_parser("openclaw-training", help="OpenClaw agent training operations")
|
||||
openclaw_training_parser.set_defaults(handler=lambda parsed, parser=openclaw_training_parser: parser.print_help())
|
||||
openclaw_training_subparsers = openclaw_training_parser.add_subparsers(dest="openclaw_training_action")
|
||||
|
||||
openclaw_deploy_parser = openclaw_training_subparsers.add_parser("deploy", help="Deploy an OpenClaw agent")
|
||||
openclaw_deploy_parser.add_argument("--agent-file", required=True)
|
||||
openclaw_deploy_parser.add_argument("--wallet", required=True)
|
||||
openclaw_deploy_parser.add_argument("--environment", choices=["dev", "staging", "prod"], default="dev")
|
||||
openclaw_deploy_parser.set_defaults(handler=ctx.handle_openclaw_training_action)
|
||||
|
||||
openclaw_monitor_parser = openclaw_training_subparsers.add_parser("monitor", help="Monitor OpenClaw performance")
|
||||
openclaw_monitor_parser.add_argument("--agent-id")
|
||||
openclaw_monitor_parser.add_argument("--metrics", choices=["performance", "cost", "errors", "all"], default="all")
|
||||
openclaw_monitor_parser.set_defaults(handler=ctx.handle_openclaw_training_action)
|
||||
|
||||
openclaw_market_parser = openclaw_training_subparsers.add_parser("market", help="Manage OpenClaw marketplace activity")
|
||||
openclaw_market_parser.add_argument("market_action", nargs="?", choices=["list", "publish", "purchase", "evaluate"])
|
||||
openclaw_market_parser.add_argument("--action", dest="market_action_opt", choices=["list", "publish", "purchase", "evaluate"], help=argparse.SUPPRESS)
|
||||
openclaw_market_parser.add_argument("--agent-id")
|
||||
openclaw_market_parser.add_argument("--price", type=float)
|
||||
openclaw_market_parser.set_defaults(handler=ctx.handle_openclaw_training_action, openclaw_training_action="market")
|
||||
|
||||
openclaw_train_parser = openclaw_training_subparsers.add_parser("train", help="Agent training operations")
|
||||
openclaw_train_subparsers = openclaw_train_parser.add_subparsers(dest="train_action")
|
||||
|
||||
openclaw_train_agent_parser = openclaw_train_subparsers.add_parser("agent", help="Train OpenClaw agent on AITBC operations")
|
||||
openclaw_train_agent_parser.add_argument("--agent-id", required=True, help="Agent ID to train")
|
||||
openclaw_train_agent_parser.add_argument("--stage", required=True, help="Training stage (stage1_foundation, stage2_operations_mastery, etc.)")
|
||||
openclaw_train_agent_parser.add_argument("--training-data", required=True, help="Path to training data JSON file")
|
||||
openclaw_train_agent_parser.add_argument("--log-level", default="INFO", choices=["DEBUG", "INFO", "SUCCESS", "WARNING", "ERROR"], help="Logging level")
|
||||
openclaw_train_agent_parser.set_defaults(handler=ctx.handle_openclaw_training_action, openclaw_training_action="train")
|
||||
|
||||
openclaw_train_validate_parser = openclaw_train_subparsers.add_parser("validate", help="Validate agent training progress")
|
||||
openclaw_train_validate_parser.add_argument("--agent-id", required=True, help="Agent ID to validate")
|
||||
openclaw_train_validate_parser.add_argument("--stage", required=True, help="Training stage to validate")
|
||||
openclaw_train_validate_parser.set_defaults(handler=ctx.handle_openclaw_training_action, openclaw_training_action="train")
|
||||
|
||||
openclaw_train_certify_parser = openclaw_train_subparsers.add_parser("certify", help="Certify agent mastery")
|
||||
openclaw_train_certify_parser.add_argument("--agent-id", required=True, help="Agent ID to certify")
|
||||
openclaw_train_certify_parser.set_defaults(handler=ctx.handle_openclaw_training_action, openclaw_training_action="train")
|
||||
@@ -133,7 +133,7 @@ class TestIntegrationScenarios:
|
||||
def test_cli_help_comprehensive(self):
|
||||
result = run_cli("--help")
|
||||
assert result.returncode == 0
|
||||
for command in ["wallet", "blockchain", "network", "market", "ai", "mining", "agent", "openclaw", "workflow", "resource", "simulate"]:
|
||||
for command in ["wallet", "blockchain", "network", "market", "ai", "mining", "agent", "hermes", "workflow", "resource", "simulate"]:
|
||||
assert command in result.stdout
|
||||
|
||||
def test_wallet_alias_and_nested_forms(self):
|
||||
|
||||
@@ -59,7 +59,7 @@ def run_cli(argv, core):
|
||||
ai_operations = core["ai_operations"]
|
||||
mining_operations = core["mining_operations"]
|
||||
agent_operations = core["agent_operations"]
|
||||
openclaw_training_operations = core["openclaw_training_operations"]
|
||||
hermes_training_operations = core["hermes_training_operations"]
|
||||
workflow_operations = core["workflow_operations"]
|
||||
resource_operations = core["resource_operations"]
|
||||
simulate_blockchain = core["simulate_blockchain"]
|
||||
@@ -577,8 +577,8 @@ def run_cli(argv, core):
|
||||
def handle_agent_sdk_action(args):
|
||||
system_handlers.handle_agent_sdk_action(args, render_mapping)
|
||||
|
||||
def handle_openclaw_training_action(args):
|
||||
system_handlers.handle_openclaw_training_action(args, openclaw_training_operations, first, render_mapping)
|
||||
def handle_hermes_training_action(args):
|
||||
system_handlers.handle_hermes_training_action(args, hermes_training_operations, first, render_mapping)
|
||||
|
||||
def handle_workflow_action(args):
|
||||
system_handlers.handle_workflow_action(args, workflow_operations, render_mapping)
|
||||
@@ -739,7 +739,7 @@ def run_cli(argv, core):
|
||||
"handle_analytics": handle_analytics,
|
||||
"handle_agent_action": handle_agent_action,
|
||||
"handle_agent_sdk_action": handle_agent_sdk_action,
|
||||
"handle_openclaw_training_action": handle_openclaw_training_action,
|
||||
"handle_hermes_training_action": handle_hermes_training_action,
|
||||
"handle_workflow_action": handle_workflow_action,
|
||||
"handle_resource_action": handle_resource_action,
|
||||
"handle_simulate_action": handle_simulate_action,
|
||||
|
||||
Reference in New Issue
Block a user