Metadata-Version: 2.2
Name: morix
Version: 0.7
Home-page: https://gitlab.com/good-day-inc/morix/
Author: Enemchy
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
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)
  - [TL;DR](#tldr)
    - [Примеры](#примеры)
  - [Общее введение](#общее-введение)
  - [Установка и настройка](#установка-и-настройка)
    - [Предварительные требования](#предварительные-требования)
    - [Установка](#установка)
    - [Начальные настройки](#начальные-настройки)
  - [Функциональные возможности](#функциональные-возможности)
  - [Примеры использования](#примеры-использования)
    - [Основные команды](#основные-команды)
  - [Советы по использованию](#советы-по-использованию)
  - [Ограничения и рекомендации](#ограничения-и-рекомендации)
- Остальная документация
  - [О токенах](docs/about_tokens.md)
  - [Документация по конфигурации](docs/config_documentation.md)
  - [Руководство по игнорированию файлов](docs/ignore_pattern_guide.md)
  - [Руководство по разработке плагинов](docs/plugin_development_guide.md)
  - [Примеры промптов](docs/prompts_examples.md)

## TL;DR

Для тех кому надоело копипастить из чата с chatgpt при разработке, а так же хочеться посмотреть на что способна модель если ей дать доступ к консоли 😀

### Примеры

- Откройте терминал и перейдите в целевую директорию.
- Введите команду:

   ```shell
   morix -c ./
   ```

- Введите промт:

```text
Проведи анализ проекта, и расскажи о чем проект.
```

или

```text
Вот проект на haskell 3хлетней давностии, твоя задача - перевести код на последнюю версию хаскеля и получить компилирующееся приложение.
```

или

```text
Твоя здача - получить покрытие кода тестами, поднять его до 80%, запустить тесты и починить тесты или код если тесты завершаются не успешно.
```

или

```text
Запусти приложение в docker-compose (с флагом up -d) и проверь работоспособность методов rest и grpc. Твоя задача - работоспособное приложение.
```

Еще примеры промтов можно посмотреть [тут](prompts_examples).

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

Morix — это инструмент для сканирования, анализа и автоматизированного изменения файлов в заданной директории с использованием возможностей OpenAI GPT. Он также позволяет модели запускать консольные команды и получать их результаты.
Основное предназначение Morix — упростить рутинные задачи, связанные с обработкой файлов.

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

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

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

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

```shell
pip install morix
```

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

После установки используйте команду `morix`, чтобы начать работу с программой. Вы также можете открыть конфигурационный файл для настройки программы под свои нужды:

```shell
morix --config
```

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

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

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

Morix предоставляет следующие функции:

- **Сканирование и анализ структуры директорий и содержания файлов**: позволяет быстро получить информацию о файлах и каталогах.
- **Запуск утилит моделью и написанию плагинов (plugin_development_guide.md) для их запуска**:
  - по умолчанию реализованы следующие функции:
    - получение файлов и их содержимого
    - получение структуры рабочей папки
    - отображнение текущего статуса задания выполняемого моделью
    - запуск консольных команд (только для *nix систем и wsl для windows)
  - вы же можете реализовать свою утилиту, например дать доступ модели к вашей базе данных. [Подробнее тут](docs/plugin_development_guide.md)

>Примечание: В случае, если в рабочей директории нет `.git`, приложение выдаёт предупреждение.

## Примеры использования

### Основные команды

- **Запуск приложения в текущей директории без сканирования**:

  ```shell
  morix
  ```

- **Сканирование содержания файлов в директории**:

  ```shell
  morix -c <path_to_directory>
  ```

- **Сканирование только структуры директории**:

  ```shell
  morix -s <path_to_directory>
  ```

  Может быть использовано если при полном сканировании выходите за лимит токенов. При таком использовании можно говорить модели самой начитать нужные файлы.

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

>Напоминание: Состояние файлов в 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`)


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

- Morix может испытывать ограничения производительности при работе с большими объемами данных.
- Выполнение консольных команд несет потенциальные риски безопасности. Убедитесь, что разрешаете выполнение только тех команд, в которых уверены.
