JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 86
  • Score
    100M100P100Q79824F
  • License MIT

Smart Commit Tool - глобальный инструмент для генерации осмысленных сообщений коммитов с использованием ИИ

Package Exports

  • smart-commit-ai
  • smart-commit-ai/lib/index.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (smart-commit-ai) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

Smart Commit Tool

npm version License: MIT

Глобальный инструмент для генерации осмысленных сообщений коммитов с использованием ИИ.

GitHub

🌍 Доступные языки

Хотите добавить перевод? Создайте Pull Request или откройте Issue!

🔗 Ссылки

🚀 Особенности

  • 🤖 AI-powered: Генерация сообщений коммитов с помощью GPT моделей через gptunnel.ru
  • 💰 Экономичный: Использует самую дешевую модель GPT-5-nano ($0.001 за токен)
  • 📝 Conventional Commits: Поддержка формата conventional commits
  • 🔧 Гибкая конфигурация: Глобальные и проектные настройки
  • 🤖 Умный анализ: Два режима анализа - lite (быстрый) и full (детальный с diff)
  • 🎯 Несколько режимов: Стандартный, dry-run, только генерация, пользовательское сообщение
  • Быстрый: Генерация сообщений за < 30 секунд
  • 🛠️ Расширяемый: Чистая архитектура с поддержкой SOLID принципов
  • 🎨 Красивый CLI: Цветной вывод с индикаторами прогресса

📦 Установка

🚀 Быстрая установка

# Клонируйте репозиторий
git clone https://github.com/prod-broke-again/smart-commit.git
cd smart-commit

# Установите зависимости и соберите
npm install && npm run build

# Свяжите глобально (для разработки)
npm link

# Проверьте установку
smart-commit --version

⚡ Использование

# Перейдите в ваш git проект
cd your-project

# Обычный коммит (автоматически добавит все изменения)
smart-commit

# Только сгенерировать сообщение без коммита
smart-commit --generate-only

# Dry-run режим (показать что будет сделано)
smart-commit --dry-run

# Использовать свое сообщение
smart-commit -m "feat: add new feature"

🔍 Режимы анализа

Smart Commit поддерживает два режима анализа изменений:

Lite режим (по умолчанию)

  • Быстрый анализ только списка файлов
  • Минимальное использование токенов
  • Подходит для простых коммитов

Full режим (детальный)

  • Анализирует реальные изменения в коде (diff)
  • AI видит что именно изменилось
  • Лучшее качество генерации для сложных изменений
# Переключить на full режим анализа
smart-commit config --global --set analysisMode=full

# Вернуть в lite режим
smart-commit config --global --set analysisMode=lite

⚙️ Настройка

Первоначальная настройка

smart-commit setup

Настройка API ключа

Получите API ключ на gptunnel.ru/profile/business, затем:

smart-commit config --global --set apiKey=YOUR_API_KEY

Основные настройки

# Выбор модели ИИ
smart-commit config --global --set defaultModel=gpt-4

# Настройка языка
smart-commit config --global --set language=ru

# Максимальная длина заголовка коммита
smart-commit config --global --set maxCommitLength=72

# Использование баланса кошелька для оплаты (для обычных пользователей, не компаний)
smart-commit config --global --set useWalletBalance=true

# Работа с моделями ИИ
smart-commit models list                    # Показать доступные модели
smart-commit models refresh                 # Обновить список моделей из API
smart-commit models clear-cache             # Очистить кэш моделей

📖 Использование

Стандартный режим

Автоматически анализирует изменения, генерирует сообщение и создает коммит:

smart-commit

Dry-run режим

Показывает, какое сообщение будет сгенерировано, без создания коммита:

smart-commit --dry-run

Только генерация

Генерирует сообщение без создания коммита:

smart-commit --generate-only

Пользовательское сообщение

Использует указанное сообщение вместо генерации:

smart-commit --message "feat: add new authentication system"

📋 Конфигурация

Глобальная конфигурация

Хранится в ~/.smart-commit/config.json:

{
  "apiKey": "your-api-key",
  "defaultModel": "gpt-3.5-turbo",
  "defaultProvider": "gptunnel",
  "maxTokens": 1000,
  "temperature": 0.7,
  "language": "en",
  "useWalletBalance": true
}

Проектная конфигурация

Хранится в .smart-commit.json в корне проекта:

{
  "ignoredFiles": ["*.log", "dist/"],
  "customTypes": {},
  "maxCommitLength": 72,
  "includeScope": false,
  "conventionalCommitsOnly": true,
  "customInstructions": null
}

💰 Настройка оплаты

useWalletBalance

Настройка useWalletBalance определяет, откуда будут списываться средства за использование GPTunnel API:

  • true (по умолчанию): Средства списываются с баланса вашего личного кошелька. Используйте для обычных пользователей без компании.
  • false: Средства списываются с баланса компании (если у вас есть корпоративный аккаунт).
# Для обычных пользователей (использование баланса кошелька)
smart-commit config --global --set useWalletBalance=true

# Для корпоративных пользователей (баланс компании)
smart-commit config --global --set useWalletBalance=false

🤖 Управление моделями ИИ

Smart Commit Tool поддерживает динамическую загрузку моделей из API GPTunnel. Это позволяет всегда использовать актуальный список доступных моделей.

Автоматическая загрузка

При первом запуске инструмент автоматически пытается загрузить модели из API. Если загрузка не удалась, используются встроенные модели-заглушки.

Команды управления моделями

# Показать все доступные модели
smart-commit models list

# Принудительно обновить модели из API
smart-commit models refresh

# Очистить кэш моделей (вернуться к встроенным)
smart-commit models clear-cache

Кэширование

  • Модели кэшируются на 24 часа в ~/.smart-commit/models-cache.json
  • При отсутствии интернета используются закешированные модели
  • При недоступности API используются встроенные модели

Примеры вывода

Available models: 12
★ gpt-3.5-turbo (4096 tokens)
  gpt-4 (8192 tokens)
  gpt-4-turbo (128000 tokens)
  gpt-4o (128000 tokens)
  gpt-4o-mini (128000 tokens)
  ... and 7 more

Loaded from API: 12 models

🔧 Команды

smart-commit                    # Стандартный режим
smart-commit --dry-run         # Превью без коммита
smart-commit --generate-only   # Только генерация сообщения
smart-commit -m "message"      # Пользовательское сообщение

# Управление моделями
smart-commit models list       # Список доступных моделей
smart-commit models refresh    # Обновить модели из API
smart-commit models clear-cache # Очистить кэш моделей
smart-commit -v                # Verbose режим

# Конфигурация
smart-commit config --global --set key=value    # Установить глобальную настройку
smart-commit config --global --get key          # Получить настройку
smart-commit config --global --list             # Показать все настройки

# Настройка
smart-commit setup                             # Первоначальная настройка

🏗️ Архитектура

Проект построен с соблюдением принципов SOLID, DRY, KISS, YAGNI и DDD:

  • Domain Layer: Бизнес-логика (сущности, value objects, сервисы)
  • Application Layer: Оркестрация процессов
  • Infrastructure Layer: Работа с внешними системами (Git, API, файловая система)
  • Presentation Layer: CLI интерфейс

🤝 Разработка

Системные требования

  • Node.js >= 16.0.0
  • npm >= 7.0.0
  • Git >= 2.0.0

Сборка и тестирование

# Установка зависимостей
npm install

# Сборка
npm run build

# Запуск тестов
npm test

# Линтинг
npm run lint

# Форматирование кода
npm run format

📚 API

Проект предоставляет программный API для интеграции:

import { Container } from 'smart-commit';

const container = Container.getInstance();
container.initialize();

const workflow = container.workflowOrchestrator;
await workflow.runStandardWorkflow();

📄 Лицензия

MIT License - см. файл LICENSE

🤝 Вклад в проект

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

📞 Поддержка

🙏 Благодарности

  • gptunnel.ru за API доступа к ИИ моделям
  • Conventional Commits за стандарт формата коммитов
  • Сообществу разработчиков за вклад в open source