From 547362de1268127625aeeb516d0ae7ccfb98a496 Mon Sep 17 00:00:00 2001 From: Komisar Date: Thu, 16 Apr 2026 13:53:23 +0300 Subject: [PATCH] Update docs: add repo URL, refresh AGENTS.md and README, remove stale READMEs --- AGENTS.md | 33 +++++++++-- CHECKLIST.md | 8 ++- README.md | 6 +- app/README.md | 2 - src/utils/config_manager/README.md | 92 ------------------------------ tests/README.md | 1 - 6 files changed, 38 insertions(+), 104 deletions(-) delete mode 100644 app/README.md delete mode 100644 src/utils/config_manager/README.md delete mode 100644 tests/README.md diff --git a/AGENTS.md b/AGENTS.md index be0c4c9..9f9eea6 100644 --- a/AGENTS.md +++ b/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. \ No newline at end of file +## 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 \ No newline at end of file diff --git a/CHECKLIST.md b/CHECKLIST.md index 14e44e1..a45df3b 100644 --- a/CHECKLIST.md +++ b/CHECKLIST.md @@ -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 -- [ ] Написать интеграционные тесты +- [ ] Написать интеграционные тесты \ No newline at end of file diff --git a/README.md b/README.md index 05431c6..e89094e 100644 --- a/README.md +++ b/README.md @@ -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 -``` +``` \ No newline at end of file diff --git a/app/README.md b/app/README.md deleted file mode 100644 index 9fb14a0..0000000 --- a/app/README.md +++ /dev/null @@ -1,2 +0,0 @@ -# Приложения проекта - diff --git a/src/utils/config_manager/README.md b/src/utils/config_manager/README.md deleted file mode 100644 index 2d27c27..0000000 --- a/src/utils/config_manager/README.md +++ /dev/null @@ -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` - общие diff --git a/tests/README.md b/tests/README.md deleted file mode 100644 index 100ed88..0000000 --- a/tests/README.md +++ /dev/null @@ -1 +0,0 @@ -# Тестовые юниты для тестирования различных аспектов проекта, которы можно выполнить автономно из консоли.