36 lines
1.6 KiB
Markdown
36 lines
1.6 KiB
Markdown
# Tool Management
|
|
|
|
SIA uses and creates tools to extend its capabilities.
|
|
A tool in the SIA context refers to a clearly packaged software component that provides specific functionality.
|
|
This document outlines how tools are structured, managed, and developed.
|
|
All tools reside in the `/root/sia/tools/` directory and are part of the main git repository.
|
|
|
|
## Typical patterns
|
|
|
|
Tools in SIA follow these established patterns:
|
|
|
|
- **Independence**: Each tool functions as a standalone component with clear boundaries
|
|
- **Python**: The preferred language for tools is Python
|
|
- **Installation**: The Dockerfile and bootstrap script intall all tools in the directory using `pip install -e`
|
|
- **Documentation**: Each tool has a README.md file that provides requirements, usage instructions and documentation
|
|
- **Modification**: Tools can be modified by SIA as part of its self-improvement process
|
|
- **Procedures**: Tools are created to support procedures
|
|
- **Training**: No separate training data is maintained, this is included in the procedure training
|
|
|
|
## Tool Directory Structure
|
|
|
|
Each tool follows a consistent structure:
|
|
|
|
```
|
|
tools/
|
|
└── tool_name/
|
|
├── README.md # Documentation
|
|
├── requirements.txt # Tool-specific dependencies
|
|
├── setup.py # Installation configuration
|
|
├── tool_name/ # Main package code
|
|
│ └── __init__.py
|
|
├── bin/ # Command-line executables
|
|
│ └── tool_command
|
|
└── test/ # Tool-specific tests
|
|
└── test_tool.py
|
|
``` |