Fix Gemini API, increase OpenAI temperature, and bug fixes

This commit is contained in:
suyashbhawsar
2025-06-19 23:04:41 +05:30
parent cccd5173ea
commit 566b9ff994
4 changed files with 200 additions and 24 deletions
+43
View File
@@ -0,0 +1,43 @@
# CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
## Project Overview
GIMS (Git Made Simple) is an AI-powered Git CLI tool that automatically generates meaningful commit messages from code changes. It's a Node.js package published to npm that integrates with OpenAI GPT-4 and Google Gemini APIs.
## Architecture
- **Single-file CLI**: All functionality is contained in `bin/gims.js`
- **AI Integration**: Supports both OpenAI and Google Gemini APIs with intelligent fallback strategies
- **Git Wrapper**: Built on top of `simple-git` library for Git operations
- **Token Management**: Implements sophisticated content chunking to handle large diffs within AI token limits
## Key Components
- **Command System**: Uses `commander.js` for CLI argument parsing with aliases (e.g., `g o` for `gims online`)
- **AI Message Generation**: Multi-strategy approach that falls back from full diff → summary → status → truncated content
- **Commit Resolution**: Supports both commit hashes and numbered indices for referencing commits
- **Safe Operations**: Includes error handling for empty repositories and edge cases
## Environment Setup
Required environment variables (at least one):
- `OPENAI_API_KEY` - For OpenAI GPT-4o-mini integration
- `GEMINI_API_KEY` - For Google Gemini 2.0 Flash integration
## Common Commands
- **Install globally**: `npm install -g .`
- **Test locally**: `node bin/gims.js --help`
- **Test specific command**: `node bin/gims.js suggest`
- **Run with alias**: `g o` (after global install)
## Development Notes
- No test framework is currently configured (package.json shows placeholder test script)
- Node.js version requirement: >=20.0.0
- Uses CommonJS modules (`require`/`module.exports`)
- Dependencies are minimal and focused on core functionality
- Token estimation uses 4 characters per token approximation
- Maximum context limit set conservatively at 100,000 tokens