Metadata-Version: 2.2
Name: morix
Version: 0.8.1
Home-page: https://gitlab.com/good-day-inc/morix/
Author: Kirill Kusov
Author-email: dzenkir@gmail.com
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: rich
Requires-Dist: prompt_toolkit
Requires-Dist: openai
Requires-Dist: pyyaml
Requires-Dist: colorama
Requires-Dist: tiktoken
Requires-Dist: typer
Requires-Dist: langchain_openai
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: requires-dist
Dynamic: requires-python

# Руководство пользователя Morix

<!-- no toc -->
- [Руководство пользователя Morix](#руководство-пользователя-morix)
  - [Общее введение](#общее-введение)
  - [Установка и настройка](#установка-и-настройка)
    - [Предварительные требования](#предварительные-требования)
    - [Установка](#установка)
    - [Начальные настройки](#начальные-настройки)
  - [Функциональные возможности](#функциональные-возможности)
  - [Аргументы командной строки](#аргументы-командной-строки)
  - [Советы по использованию](#советы-по-использованию)
  - [Ограничения и рекомендации](#ограничения-и-рекомендации)
- Остальная документация
  - [О токенах](docs/about_tokens.md)
  - [Документация по конфигурации](docs/about_config.md)
  - [Использование ролей](docs/roles.md)
  - [Руководство по игнорированию файлов](docs/ignore_pattern.md)
  - [Руководство по разработке плагинов](docs/plugin_development.md)
  - [Примеры промптов](docs/prompts_examples.md)

## Общее введение

Проект реализован на Python и включает модули для сканирования директорий, работы с файлами (создание, чтение, обновление, удаление), выполнения консольных команд с контролем ввода и таймаутами, а также систему плагинов для расширения функциональности. Особое внимание уделено взаимодействию с языковой моделью OpenAI GPT, что позволяет автоматизировать процессы обработки данных проекта.

## Установка и настройка

### Предварительные требования

- Убедитесь, что у вас установлен Python версии 3.10 или выше.
- Настройте переменную окружения `OPENAI_API_KEY` для взаимодействия с моделями OpenAI.
- Пожалуйста ознакомьтесь с [информацией о токенах](docs/about_tokens.md)

### Установка

```shell
pip install morix
```

### Начальные настройки

После установки запустите программу с помощью команды `morix` для начала работы. При необходимости используйте параметр `--config` для открытия файла конфигурации.

> Примечание: Открытие файла конфигурации работает только на macOS, в остальных системах программа лишь выведет путь до файла конфигурации.

[Подробное описания файла конфигурации](docs/about_config.md)

## Функциональные возможности

- Сканиование структуры директорий и анализ содержимого файлов
- Выполнение консольных команд с контролем ввода и таймаутами
- Расширение функциональности через [систему плагинов](docs/plugin_development.md)
- Интеграция с языковыми моделями для автоматизации задач

## Аргументы командной строки

Команда `morix` принимает следующие аргументы:

- **`path`** (позиционный): Путь к рабочей директории. По умолчанию используется директория запуска (`os.getcwd()`).
- **`-m, --message`**: Сообщение для отправки в качестве начального ввода пользователя.
- **`-r, --role`**: Роль для системного сообщения. Доступные значения определяются на основе файлов с подсказками; по умолчанию используется `developer`.
- **`--llm`**: Выбор LLM для взаимодействия. Доступные варианты устанавливаются в конфигурационном файле; по умолчанию используется `openai`.
- **`-c, --contents`**: Флаг, указывающий на необходимость сканирования структуры директории вместе с содержимым файлов.
- **`-s, --structure-only`**: Флаг для сканирования только структуры директории без чтения содержимого файлов.
- **`--config`**: Флаг для открытия конфигурационного файла в системном редакторе. Работает только на macOS, в остальных системах выводит путь до конфига.
- **`-e, --wait-enter`**: Параметр, включающий ожидание нажатия клавиши Enter перед выполнением консольной команды. По умолчанию, в конфиге установлено `true`.
- **`-vvv, --verbose`**: Флаг для включения подробного (debug) режима, отображающего расширенную отладочную информацию.
- **`-v, --version`**: Вывод версии приложения.

## Советы по использованию

>Напоминание: Состояние файлов в git: `No changes → Changed (Modified) → Staged → Committed`

Флоу работы с morix предлагается следующий.

1. В vscode открывается папка с проектом над которым будет вестись рабта.
2. Проверяется наличие git в этой папке или родительской, если нет - то стоит выполнить `git init`
3. Запускается morix, модель делает задание и вносит измеенения в файлы (`Changed (Modified)`)
4. Проверяется корректность выполнение задания, в vscode просматриваются файлы в состоянии `Changed (Modified)` и дифф изменений, те что удовлетворяют переводятся в состояние `Staged`
5. Если заданий несколько, то 3-5 пункт повторяется.
6. По окончанию изменения комитятся (`Committed`)


## Ограничения и рекомендации

- ⚠️ **Important!** ⚠️ Выполнение консольных команд несет потенциальные риски безопасности. Убедитесь, что разрешаете выполнение только тех команд, в которых уверены.

