# 🧠 ondemand-ai-error-explaner

Sebuah pustaka sederhana untuk memberikan penjelasan atas error secara otomatis menggunakan **Gemini AI** dari Google.

> Versi: `1.1.1`  
> Penulis: Raka Agi Saputra  
> Lisensi: MIT

---

## ✨ Fitur

- Menjelaskan pesan error menggunakan AI (Gemini API).
- Dibuat menggunakan TypeScript.
- Mudah digunakan di aplikasi Node.js.

---

## 📦 Instalasi

```bash
npm install ondemande-ai-error-explaner
```

---

## ⚙️ Konfigurasi API Key

Untuk menggunakan pustaka ini, Anda perlu memiliki API Key dari **Google Generative AI (Gemini)**.

1. Daftar atau login ke [Google AI Studio](https://ai.google.dev/gemini-api/docs?hl=id).
2. Dapatkan `GEMINI_API_KEY`.
3. Buat file `.env` di root project Anda dan masukkan key seperti ini:

```env
GEMINI_API_KEY=your_api_key_here
```

---

## 🚀 Cara Penggunaan

Contoh penggunaan dasar:

```ts
import "dotenv/config";
import { explainError } from "ondemande-ai-error-explaner";

const error = new Error("ReferenceError: user is not defined");

explainError(error.message).then((explanation) => {
  console.log("💬 Penjelasan AI:", explanation);
});
```

---

## 📁 Struktur Output

Setelah dibuild dengan `tsc`, output akan berada di folder:

```
dist/
├── index.js       // Entrypoint utama
├── index.d.ts     // Tipe definisi untuk TypeScript
```

---

## 🧩 Dependency

- [@google/genai](https://www.npmjs.com/package/@google/genai)
- [@google/generative-ai](https://www.npmjs.com/package/@google/generative-ai)
- [dotenv](https://www.npmjs.com/package/dotenv)

---

## ❗ Catatan

- Pastikan Anda **tidak membagikan file `.env`** ke publik.
- Error yang dijelaskan hanya berbasis pada `error.message`, bukan stack trace penuh.
- Anda membutuhkan koneksi internet agar pustaka ini dapat terhubung ke Gemini API.

---

## 🧑‍💻 Kontribusi

Kontribusi terbuka! Silakan fork dan buat pull request jika ingin menambahkan fitur baru atau perbaikan bug.

---

## 📄 Lisensi

MIT © Raka Agi Saputra
