- Moved core/ directory to aitbc_cli/core/ to make it a proper subpackage
- Updated aitbc_cli.py to load from new path
- Simplified aitbc_cli/__init__.py to use normal import instead of spec_from_file_location
- Updated all core imports to use aitbc_cli.core prefix
- Copied utils files (wallet_daemon_client, error_handling, crypto_utils, subprocess) to aitbc_cli/utils/
- Fixed wallet list command to work with new structure
- This fixes ModuleNotFoundError for aitbc_cli.core submodules
- Register aitbc_cli.core module pointing to core/ directory before loading
- Register aitbc_cli.core.main in sys.modules before exec_module
- Fixes No module named 'aitbc_cli.core' error when core/main.py imports
- Allows core/main.py to import from aitbc_cli.commands.* correctly
- Disabled compatibility aliases for core and models (sibling directories, not subpackages)
- Changed __getattr__ to use spec_from_file_location instead of import_module
- Prevents sys.modules corruption that broke aitbc_cli.utils imports
- Fixes wallet command ModuleNotFoundError for dual_mode_wallet_adapter
Renamed cli/config/ directory to cli/config_data/ to prevent package
shadowing of cli/aitbc_cli/config.py module. Removed problematic
sys.modules manipulation in aitbc_cli/__init__.py that was causing
circular import issues. Now 'from aitbc_cli.config import CLIConfig' works correctly.
- Changed bare except clauses to specific exception types in web3_utils.py, testing.py, messages.py, and message_storage.py
- Replaced print() calls with logger in testing.py, agent_discovery.py, compliance_agent.py, coordinator.py, trading_agent.py, keys.py, escrow.py, persistent_spending_tracker.py, sync_cli.py, and client.py
- Added logger initialization using get_logger(__name__) in compliance_agent.py, coordinator.py, trading_agent.py, keys.py, escrow.py, persistent_spending_tracker.py, and client.py
- Removed hardcoded secret
✅ CLI System Architecture Commands Working
- Created inline system commands to avoid import issues
- system command group with architect, audit, check subcommands
- system architect: Shows system architecture and directory status
- system audit: Checks FHS compliance and repository cleanliness
- system check: Verifies service configuration
✅ CLI Features
- Version 0.2.2 with system architecture support
- Working help system with detailed descriptions
- Proper command structure and organization
- Error-free command execution
✅ System Architecture Support
- FHS compliance checking
- System directory verification
- Service configuration validation
- Repository cleanliness monitoring
✅ Technical Improvements
- Eliminated import path issues with inline commands
- Simplified CLI structure for reliability
- Better error handling and user feedback
- Clean, maintainable code structure
🚀 AITBC CLI is now fully functional with system architecture features!
BEFORE:
/opt/aitbc/cli/
├── aitbc_cli/ # Python package (box in a box)
│ ├── commands/
│ ├── main.py
│ └── ...
├── setup.py
AFTER:
/opt/aitbc/cli/ # Flat structure
├── commands/ # Direct access
├── main.py # Direct access
├── auth/
├── config/
├── core/
├── models/
├── utils/
├── plugins.py
└── setup.py
CHANGES MADE:
- Moved all files from aitbc_cli/ to cli/ root
- Fixed all relative imports (from . to absolute imports)
- Updated setup.py entry point: aitbc_cli.main → main
- Added CLI directory to Python path in entry script
- Simplified deployment.py to remove dependency on deleted core.deployment
- Fixed import paths in all command files
- Recreated virtual environment with new structure
BENEFITS:
- Eliminated 'box in a box' nesting
- Simpler directory structure
- Direct access to all modules
- Cleaner imports
- Easier maintenance and development
- CLI works with both 'python main.py' and 'aitbc' commands
- Change file mode from 644 to 755 for all project files
- Add chain_id parameter to get_balance RPC endpoint with default "ait-devnet"
- Rename Miner.extra_meta_data to extra_metadata for consistency
- Add GPU fields (model, memory, count, CUDA version, price, region) to MarketplaceOffer model
- Create new marketplace_gpu router for GPU-specific operations
- Update offer sync to populate GPU fields from miner capabilities
- Move GPU attributes from generic attributes dict to dedicated fields
- Update MarketplaceOfferView schema with GPU fields
- Expand CLI README with comprehensive documentation and