Update docs: add repo URL, refresh AGENTS.md and README, remove stale READMEs
This commit is contained in:
33
AGENTS.md
33
AGENTS.md
@@ -1,11 +1,17 @@
|
||||
# komAI Agent Guidelines
|
||||
|
||||
## Репозиторий
|
||||
|
||||
https://git.komisar.gin.by/komisar/komAI
|
||||
|
||||
## Entry Point
|
||||
|
||||
```
|
||||
python -m app.komAI
|
||||
```
|
||||
|
||||
## Architecture
|
||||
|
||||
- `app/` - application entry point (komAI.py expected)
|
||||
- `src/` - source code, `src/__init__.py` exposes centralized API
|
||||
- `config/` - YAML configuration; `config/global.yaml` is the main config
|
||||
@@ -14,19 +20,34 @@ python -m app.komAI
|
||||
- `tests/` - standalone unit tests (executable from CLI)
|
||||
|
||||
## Config System
|
||||
- Modules register parameters at initialization
|
||||
- Save config: `from src import save_config; save_config()`
|
||||
|
||||
Modules register parameters at initialization via `config.register()`.
|
||||
|
||||
Access global config:
|
||||
```python
|
||||
import src.utils.config_manager
|
||||
config = src.utils.config_manager.config
|
||||
```
|
||||
|
||||
Save config: `config.save()`
|
||||
|
||||
## Logging
|
||||
- All console output is duplicated to log files
|
||||
- Log config in `config/global.yaml` (level, file, path)
|
||||
|
||||
All console output is duplicated to log files. Configure in `config/global.yaml`.
|
||||
|
||||
## Env Vars (see `.env.example`)
|
||||
|
||||
- `KOMAI_CONFIG` - path to config file (optional)
|
||||
- `LOGGING_LOG_PATH`, `LOGGING_LOG_FILE`, `LOGGING_LEVEL`
|
||||
|
||||
## Requirements
|
||||
|
||||
- Python >3.10
|
||||
|
||||
## No Code Yet
|
||||
This repo is a scaffold. No `.py` source files exist yet. Do not assume any modules, classes, or APIs are implemented.
|
||||
## Module Development
|
||||
|
||||
When creating new modules:
|
||||
- Register parameters with `config.register(name=..., val=..., cat="module_name", ...)`
|
||||
- Use categories to organize params
|
||||
- All param changes trigger validators if set
|
||||
- Use `getall()` / `getrawall()` for nested param groups
|
||||
@@ -7,8 +7,12 @@
|
||||
- Реализован `ConfigManager` с регистрацией, загрузкой, сохранением параметров
|
||||
- Глобальный экземпляр `config` доступен при импорте модуля
|
||||
- Поддержка категорий, описаний, переменных окружения
|
||||
- 8/8 тестов проходят
|
||||
- Вложенные параметры через точки в имени (`getall`, `getrawall`)
|
||||
- Константа `ROOT_KEY = "$root$"` для вложенных структур
|
||||
- 10/10 тестов проходят
|
||||
- Документация: `doc/src.utils.config_manager.md`, `src/utils/config_manager/AGENTS.md`
|
||||
- [x] Создан `requirements.txt`
|
||||
- [x] Опубликован на https://git.komisar.gin.by/komisar/komAI
|
||||
|
||||
## In Progress
|
||||
|
||||
@@ -18,4 +22,4 @@
|
||||
- [ ] Реализовать модуль логирования
|
||||
- [ ] Реализовать систему модулей (`modules/`)
|
||||
- [ ] Настроить CI/CD
|
||||
- [ ] Написать интеграционные тесты
|
||||
- [ ] Написать интеграционные тесты
|
||||
@@ -1,5 +1,7 @@
|
||||
# komAI - локальный AI-ассистент
|
||||
|
||||
Репозиторий: https://git.komisar.gin.by/komisar/komAI
|
||||
|
||||
## Требования
|
||||
|
||||
- Python >3.10
|
||||
@@ -7,6 +9,8 @@
|
||||
## Установка
|
||||
|
||||
```bash
|
||||
git clone https://git.komisar.gin.by/komisar/komAI.git
|
||||
cd komAI
|
||||
pip install -r requirements.txt
|
||||
```
|
||||
|
||||
@@ -54,4 +58,4 @@ config.save()
|
||||
|
||||
```bash
|
||||
python -m tests.test_config_manager
|
||||
```
|
||||
```
|
||||
@@ -1,2 +0,0 @@
|
||||
# Приложения проекта
|
||||
|
||||
@@ -1,92 +0,0 @@
|
||||
# ConfigManager
|
||||
|
||||
Управление конфигурацией с регистрацией параметров и описаний.
|
||||
|
||||
## Описание
|
||||
|
||||
### Класс ConfigParameter
|
||||
|
||||
Базовый класс для описания параметра
|
||||
|
||||
name: Имя параметра
|
||||
val: Значение
|
||||
def: Значение по умолчанию
|
||||
desc: Описание параметра (не обязательно)
|
||||
cat: Категория параметра (не обязательно, по умолчанию 'global')
|
||||
env: Имя переменной окружения (не обязательно)
|
||||
validator: Функция проверки допустимости параметра (если не используется, то значение -- строка. не обязательно)
|
||||
|
||||
Параметры хранятся к конфиге так:
|
||||
|
||||
```config
|
||||
#$description
|
||||
#$category.$name: $value
|
||||
$category.$name: $value
|
||||
```
|
||||
например:
|
||||
```config
|
||||
#Наименование проекта
|
||||
#global.name: "komAI"
|
||||
global.name: "SuperAPP"
|
||||
```
|
||||
|
||||
Пример использования параметра:
|
||||
|
||||
```python
|
||||
param1 = ConfigParameter(cat="global", name="name", val="komAI", desc="Наименование проекта", def="SuppaPuppa")
|
||||
|
||||
#name:name value:Наименование проекта
|
||||
print(f"name:{param1.name} value:{param1.desc}")
|
||||
|
||||
#name.as_int:0
|
||||
print(f"{param1.name}.as_int:{param1.as_int()}")
|
||||
|
||||
##Наименование проекта\n#global.name: "SuppaPuppa"\nglobal.name: "komAI"
|
||||
print(param1)
|
||||
```
|
||||
|
||||
### Класс ConfigManager
|
||||
|
||||
- Базовый класс для работы с параметрами
|
||||
- Параметры хранятся текстовом конфиге (например в `config/global.yaml`)
|
||||
- Файл можно переопределить из командной строки (например `--config ~/myApp/config/app.yaml`)
|
||||
- Файл можно переопределить через переменную окружения `$projectname_CONFIG=~/superApp/config.yaml`
|
||||
- Приоритет определения параметров (от высшего к низшему):
|
||||
коммандная строка --> переменные окружения --> файл ~/.ENV
|
||||
- Для ConfigManager значение файла конфигурации по умолчанию задано в тексте конcтантой. Например:
|
||||
```python
|
||||
config_file_default = "config/global.yaml"
|
||||
config_env_default = "KOMAI_CONFIG_FILE"
|
||||
```
|
||||
- Регистрация и инициализация класса должна быть глобальная
|
||||
|
||||
Пример использования:
|
||||
```python
|
||||
from src.utils.config_manager.config_manager import get_config
|
||||
|
||||
config = get_config()
|
||||
config.register(cat="global", name="app.name", val="komAI", desc="Наименование проекта")
|
||||
#если не задана cat, использовать значение по умолчанию
|
||||
#данный вызов вернёт значение параметра 'global.app.name'
|
||||
value = config.get("app.name")
|
||||
#данный вызов вернёт значение описания параметра 'global.app.name'
|
||||
desc = config.get_description("app.name", cat="global")
|
||||
```
|
||||
|
||||
## Глобальный доступ
|
||||
|
||||
`get_config()` - возвращает singleton ConfigManager
|
||||
|
||||
## Регистрация параметров модулями
|
||||
|
||||
Каждый модуль регистрирует свои параметры при инициализации:
|
||||
```python
|
||||
config.register(name="level", val="INFO", desc="Уровень логирования", cat="logging")
|
||||
```
|
||||
|
||||
## Категории
|
||||
|
||||
Возможные категории параметров
|
||||
- `app` - приложение
|
||||
- `logging` - логирование
|
||||
- `global` - общие
|
||||
@@ -1 +0,0 @@
|
||||
# Тестовые юниты для тестирования различных аспектов проекта, которы можно выполнить автономно из консоли.
|
||||
Reference in New Issue
Block a user