Update docs: add repo URL, refresh AGENTS.md and README, remove stale READMEs

This commit is contained in:
2026-04-16 13:53:23 +03:00
parent 3beccbf35e
commit 547362de12
6 changed files with 38 additions and 104 deletions

View File

@@ -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

View File

@@ -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
- [ ] Написать интеграционные тесты
- [ ] Написать интеграционные тесты

View File

@@ -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
```
```

View File

@@ -1,2 +0,0 @@
# Приложения проекта

View File

@@ -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` - общие

View File

@@ -1 +0,0 @@
# Тестовые юниты для тестирования различных аспектов проекта, которы можно выполнить автономно из консоли.