Metadata-Version: 2.4
Name: ai_debuing
Version: 0.1.0
Summary: Automatic AI-powered error explainer — catches unhandled exceptions and suggests fixes via an AI API. tele @Q_B_H
License: MIT
Keywords: debugging,ai,errors,developer-tools
Requires-Python: >=3.8
Description-Content-Type: text/markdown
Requires-Dist: requests>=2.28
Requires-Dist: colorama>=0.4.6
Provides-Extra: dev
Requires-Dist: pytest; extra == "dev"
Requires-Dist: build; extra == "dev"

# ai_debugger  v0.2.0

مكتبة Python تلتقط أي خطأ غير معالج تلقائياً وترسل **السكريبت كاملاً** مع سياق
المتغيرات إلى خادم ذكاء اصطناعي، ثم تعرض الحل المقترح في التيرمينال بتنسيق
مُلوَّن قبل الـ traceback الأصلي.

---

## ما الجديد في v0.2.0؟

| الميزة | الوصف |
|--------|-------|
| **قراءة السكريبت كاملاً** | يُرسَل كود المستخدم بالكامل مع الخطأ للذكاء الاصطناعي |
| **متغيرات كل Frame** | قيم جميع المتغيرات المحلية لكل خطوة في traceback تُرسَل ضمن السياق |
| **Verbose Mode** | يعرض المتغيرات أيضاً في التيرمينال للمستخدم |
| **مؤشر انتظار** | رسالة "⏳ جاري الاستشارة..." تظهر أثناء طلب الـ API |

---

## التثبيت

```bash
pip install .
# أو في وضع التطوير:
pip install -e .
```

---

## الاستخدام

### الأساسي
```python
import ai_debugger   # سطر واحد — يفعّل كل شيء تلقائياً

x = 1 / 0   # سيُلتقط، سيُقرأ الملف كاملاً، سيُرسَل للذكاء الاصطناعي
```

### مع Verbose Mode (عرض المتغيرات في التيرمينال)
```python
import ai_debugger
ai_debugger.set_verbose(True)

name = "أحمد"
scores = [90, 85, 0]
result = 100 / scores[2]   # سيظهر اسم + scores في التيرمينال
```

---

## التحكم في المكتبة

### عبر الكود
```python
import ai_debugger

ai_debugger.disable()        # تعطيل مؤقت
ai_debugger.enable()         # إعادة تفعيل
ai_debugger.set_verbose(True)   # تفعيل عرض المتغيرات
ai_debugger.set_verbose(False)  # إيقاف عرض المتغيرات
```

### عبر متغيرات البيئة
```bash
# تعطيل المكتبة كلياً
AI_DEBUGGER_OFF=1 python script.py

# تفعيل Verbose Mode
AI_DEBUGGER_VERBOSE=1 python script.py

# كلاهما
AI_DEBUGGER_OFF=1 AI_DEBUGGER_VERBOSE=1 python script.py
```

---

## ما يُرسَل للذكاء الاصطناعي عند كل خطأ

```
=== معلومات الخطأ ===
نوع الخطأ: ZeroDivisionError
الرسالة: division by zero
الملف: script.py، السطر: 12، الدالة: process_item

=== Traceback كامل ===
  File "script.py", line 20, in run_pipeline
    ...

=== قيم المتغيرات وقت الخطأ ===
  [process_item] في script.py السطر 12:
    item = 1
    divisor = 0

=== كود السكريبت كاملاً (script.py) ===
... [كامل محتوى الملف] ...
```

---

## شكل الإخراج في التيرمينال

```
⏳ جاري الاستشارة مع المساعد الذكي ...

┌────────────────────────────────────────────────────────────────────────┐
│  💡 اقتراح المساعد الذكي
│
│  المشكلة: divisor يساوي صفر لأن value - value = 0 دائماً.
│  الإصلاح: تحقق من قيمة المقسوم عليه قبل القسمة:
│    if divisor != 0:
│        result = item / divisor
└────────────────────────────────────────────────────────────────────────┘

Traceback (most recent call last):
  ...
ZeroDivisionError: division by zero
```

---

## المتطلبات

| الحزمة | الإصدار |
|--------|---------|
| Python | >= 3.8  |
| requests | >= 2.28 |
| colorama | >= 0.4.6 |

---

## هيكل الملفات

```
ai_debugger/
  __init__.py   ← نقطة الدخول، تفعيل الـ hook تلقائياً
  core.py       ← كل المنطق (hook، API، قراءة الملف، تنسيق الإخراج)
pyproject.toml
README_ai_debugger.md
test_ai_debugger.py
```
