Metadata-Version: 2.4
Name: reenzar
Version: 0.1.1
Summary: LangGraph-based coding agent CLI with multi-provider routing
Author-email: Erik_es97 <developer@reetech.xyz>
License: MIT License
        
        Copyright (c) 2026 Ramaerik97
        
        Permission is hereby granted, free of charge, to any person obtaining a copy
        of this software and associated documentation files (the "Software"), to deal
        in the Software without restriction, including without limitation the rights
        to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
        copies of the Software, and to permit persons to whom the Software is
        furnished to do so, subject to the following conditions:
        
        The above copyright notice and this permission notice shall be included in all
        copies or substantial portions of the Software.
        
        THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
        AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
        OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
        SOFTWARE.
        
Project-URL: Homepage, https://github.com/Erik-cpu-create/reenzar-coding-agent
Project-URL: Repository, https://github.com/Erik-cpu-create/reenzar-coding-agent
Project-URL: Issues, https://github.com/Erik-cpu-create/reenzar-coding-agent/issues
Keywords: ai,agent,cli,langgraph,automation
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Topic :: Software Development :: Libraries
Classifier: Topic :: Utilities
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
License-File: NOTICE
Requires-Dist: langgraph>=0.1.0
Requires-Dist: langchain-core>=0.3.0
Requires-Dist: httpx>=0.27.0
Requires-Dist: pydantic>=2.6.0
Requires-Dist: python-dotenv>=1.0.1
Requires-Dist: google-auth>=2.33.0
Requires-Dist: google-auth-oauthlib>=1.2.1
Requires-Dist: keyring>=25.2.0
Requires-Dist: pyyaml>=6.0.0
Requires-Dist: typer[all]>=0.12.0
Requires-Dist: rich>=13.7.0
Provides-Extra: dev
Requires-Dist: pytest>=8.0.0; extra == "dev"
Requires-Dist: respx>=0.21.1; extra == "dev"
Dynamic: license-file

# Reenzar Coding Agent

Ini CLI coding agent berbasis LangGraph. Fokusnya simpel: bantu bikin rencana kerja, generate patch, kasih review, atau tanya jawab soal repo. Routing model bisa pindah antar provider (Google AI Studio, OpenRouter, Z.ai) lewat config.

Catatan singkat: tanpa API key, perintah yang butuh model akan gagal dengan pesan error. Jadi pastikan key sudah diisi dulu.

## Yang sudah jalan
- Pipeline LangGraph: plan -> implement -> critic -> summary.
- Repo indexer buat ngasih konteks file yang relevan ke model.
- CLI + REPL interaktif (banner, prompt git-aware, status provider, tips).
- Progress indicator detail buat operasi yang lama.
- Artifacts otomatis ke .reenzar-memory/ (plan, summary, patch, log).
- Deteksi request pembuatan file dari response model.
- Konfigurasi provider, UI, dan tips lewat file YAML.

## Yang masih WIP / catatan
- Output patch tergantung kualitas model, jadi selalu cek diff dulu.
- Default model, prompt, dan UX masih bisa berubah.
- Sebagian fitur butuh koneksi dan API key valid.

## Quick start
### Install (PyPI)
Pilih salah satu:
- `pipx install reenzar` (disarankan untuk CLI)
- `pip install reenzar`

Kalau mau ambil versi terbaru langsung dari repo:
- `pipx install git+https://github.com/Erik-cpu-create/reenzar-coding-agent.git`
- `pip install git+https://github.com/Erik-cpu-create/reenzar-coding-agent.git`

### Windows (PowerShell)
```powershell
python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -e .
copy .env.example .env
```

Edit .env dan isi key. Atau pakai helper:
```powershell
reenzar auth GOOGLE_API_KEY "your_key"
reenzar auth OPENROUTER_API_KEY "your_key"
reenzar auth ZAI_API_KEY "your_key"
```

Coba jalanin:
```powershell
reenzar init
reenzar plan "rapikan struktur folder"
```

### macOS/Linux
```bash
python3 -m venv .venv
source .venv/bin/activate
pip install -e .
cp .env.example .env
```

## Gemini OAuth (opsional)
Kalau mau pakai OAuth (bukan API key) untuk Gemini:
1. Buat OAuth Client di Google Cloud Console (Desktop App).
2. Download `client_secret.json`, simpan sebagai `config/google_oauth_client.json` (file ini jangan di-commit).
3. Isi `GOOGLE_CLOUD_PROJECT` di `.env`.
4. Ubah `auth_mode: oauth` di `config/default.yaml` untuk `google_ai_studio`.
5. Jalankan:
   ```bash
   reenzar auth --oauth google
   ```

Token akan disimpan ke OS keyring (fallback ke `.reenzar-memory/google_oauth_token.json` kalau keyring tidak tersedia).

## Gemini CLI OAuth (eksperimental)
Ini flow alternatif yang mengikuti Gemini CLI (Google login + Code Assist). Cocok kalau kamu mau coba akses kuota/plan dari akun Google-mu.
1. Ubah `auth_mode: gemini_cli` di `config/default.yaml` untuk `google_ai_studio`.
2. (Opsional tapi disarankan) set `GOOGLE_CLOUD_PROJECT` atau `OPENCODE_GEMINI_PROJECT_ID` di `.env`.
3. Jalankan:
   ```bash
   reenzar auth --oauth gemini-cli
   ```

Flow ini memakai OAuth "Gemini CLI" dan endpoint Code Assist. Ini bukan jalur API resmi standar, jadi bisa berubah sewaktu-waktu.
Token disimpan ke OS keyring (fallback ke `.reenzar-memory/gemini_cli_oauth.json`).

## Codex OAuth (eksperimental)
Mode ini pakai login ChatGPT (Codex OAuth) dan backend Codex. Cocok buat yang punya langganan ChatGPT Plus/Pro dan mau coba akses Codex tanpa API key.
1. Ubah `auth_mode: codex_oauth` di `config/default.yaml` untuk `openai_codex`.
2. Jalankan:
   ```bash
   reenzar auth --oauth codex
   ```

Token disimpan ke OS keyring (fallback ke `.reenzar-memory/codex_oauth.json`).

## Perintah penting
- `reenzar` menjalankan mode interaktif (REPL).
- `reenzar init` cek setup dan bikin folder artifacts.
- `reenzar plan "<goal>"` bikin rencana.
- `reenzar implement "<goal>"` plan -> implement -> critic -> summary.
- `reenzar ask "<question>"` tanya cepat (default free-mode).
- `reenzar review "<goal>"` review ringan tanpa diff.
- `reenzar diff` lihat patch terakhir.
- `reenzar apply` terapkan patch terakhir (`--revert` untuk rollback).
- `reenzar commit-msg` draft commit message dari patch terakhir.
- `reenzar repl` jalankan REPL secara eksplisit.
- Opsi umum: `--provider` untuk override provider, `--free-mode` untuk prefer provider gratis.
  - Contoh provider: `google_ai_studio`, `openai_codex`, `openrouter`, `z_ai`.

## Konfigurasi singkat
- `config/default.yaml` ngatur urutan provider, model, token, retry, safety, dan UI.
- Kamu bisa atur provider per role (planner/implementer/reviewer/responder) di:
  - `providers.defaults.role` (contoh: planner = openai_codex, implementer = google_ai_studio).
- Di REPL, kamu juga bisa override sementara:
  - `:set role.plan openai_codex`
  - `:set role.review openrouter`
- Bahasa UI bisa diatur di config:
  - `ui.language: id` atau `ui.language: en`
- Di REPL juga bisa ganti cepat:
  - `:set lang id` / `:set lang en`
- `config/tips.yaml` isi tips yang muncul di progress indicator (EN).
- `config/tips.id.yaml` versi Indonesia (dipakai otomatis kalau `ui.language: id`).
- Kalau mau matiin banner/tips, cek bagian `ui` di config.

## Security
Lokal di Windows maupun Linux tetap bisa pakai `.env` (lebih gampang dan aman).
- Jangan commit `.env` ke repo.
- API key dibaca dari environment variables (bisa di-load lewat `.env`).
- `reenzar auth` nulis ke `.env` dengan permission yang lebih aman (kalau OS mendukung).

## Struktur repo
- `src/agent/` inti logika agent, graph, clients.
- `src/agent/cli/` UI CLI, REPL, progress indicator.
- `config/` file konfigurasi.
- `docs/` dokumentasi tambahan.
- `.reenzar-memory/` hasil artifact (plan, summary, patch, log).

## Dokumentasi lain
- `docs/CLI_USAGE.md`
- `docs/TIPS_CONFIGURATION.md`
- `docs/WINDOWS_COMPATIBILITY.md`

## Development
```bash
pytest
```
