Metadata-Version: 2.4
Name: meleknotes
Version: 1.1.0
Summary: Melek Yapay Zeka Asistanı - Zihin Sarayı ve Akıllı Günlük Türkçe NLP Modülü
Author-email: Melek AI Team <info@melek.ai>
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Intended Audience :: Developers
Classifier: Topic :: Text Processing :: Linguistic
Requires-Python: >=3.7
Description-Content-Type: text/markdown
License-File: LICENSE
Dynamic: license-file

# MelekNotes (`meleknotes`)

[![PyPI version](https://img.shields.io/pypi/v/meleknotes.svg)](https://pypi.org/project/meleknotes/)
[![Python 3.7+](https://img.shields.io/badge/python-3.7+-blue.svg)](https://www.python.org/)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

`meleknotes`, **Melek Yapay Zeka Asistanı** için geliştirilmiş, harici bağımlılığı olmayan (saf Python), Türkçe doğal dil işleme (NLP) yeteneklerine sahip bir **Zihin Sarayı, Akıllı Günlük ve Not Yönetim (CRUD)** modülüdür.

Kullanıcıların anlık veya serbest biçimli Türkçe notlarını analiz eder, yapılandırılmış Obsidian uyumlu Markdown (`.md`) dosyalarına dönüştürür, arama/düzenleme/silme operasyonlarını yürütür ve bir bağlantı (`WikiLink`/`Backlink`) dizini tutar.

---

## 🌟 Özellikler

- 📁 **Date-Tree Klasör Mimarisi:** Notları otomatik olarak `Yıl/Ay/Gün/` şeklinde hiyerarşik dizinlerde saklar.
- 📝 **YAML Front-Matter:** Her nota otomatik olarak `title`, `date`, `id`, `tags` ve `priority` değerlerini içeren Obsidian uyumlu YAML bloğu ekler.
- 🏷️ **Akıllı Başlık Üretimi:** Notun ilk cümlesindeki Türkçe stop-word (dolgu kelimeleri) ifadelerini temizleyerek en fazla 4 kelimelik anlamlı `kebab-case` başlıklar oluşturur.
- 🚨 **Aciliyet ve Öncelik Analizi:** Not içindeki kelime dağarcığı ve CAPS LOCK kullanımına göre öncelik seviyesini belirler (`NORMAL`, `HIGH`, `CRITICAL`).
- ✍️ **Otomatik Görev (To-Do) Tespiti:** Yükümlülük ekleri (`-meli/-malı`, `-ecek/-acak` vb.) veya eylem kelimeleri içeren cümleleri otomatik olarak Markdown checklist (`- [ ]`) formatına dönüştürür.
- 🏷️ **Semantik Etiketleme:** Not içeriğini tarayarak `yazilim`, `finans`, `is`, `saglik`, `egitim`, `kisisel`, `alisveris` gibi kategorileri ve `#hashtag` ifadelerini tespit edip etiket olarak ekler.
- 🔗 **WikiLink ve Backlink Desteği:** Notlar içindeki `[[İlişkili Not]]` yapılarını çözümler, bir indeks dosyası (`melek_wiki_index.json`) tutar ve çift yönlü bağlantı takibi yapmanızı sağlar.
- 🔄 **Tam CRUD ve Arama Desteği:**
  - `save_note`: Not ekleme
  - `get_note`: ID veya başlıkla not okuma
  - `update_note`: Not güncelleme (YAML ve bağlantı indeksini koruyarak)
  - `delete_note`: Not ve bağlantı indeksinden güvenli silme
  - `search_notes`: İçerikte, başlıkta, etiketlerde veya öncelikte arama
  - `list_notes`: Tarihe göre sıralı listeleme

---

## 📦 Kurulum

```bash
pip install meleknotes
```

---

## 🚀 Hızlı Başlangıç

```python
from meleknotes import MelekNotesController

# Kontrolcüyü başlatın
controller = MelekNotesController(base_dir="Melek_Notlar")

# 1. Yeni bir Türkçe not kaydedin
res = controller.save_note(
    "Python ile yazdığım fonksiyon sürekli hata veriyor. Kod acilen refactor edilmeli. "
    "Müşteriye yarına kadar [[API-Raporu]] gönderilecek. #yazılım #entegrasyon"
)
note_id = res["id"]
print("Kaydedildi:", res["title"], res["priority"])

# 2. Notu getirin
note = controller.get_note(note_id)
print("İçerik:", note["content"])

# 3. Notu güncelleyin
controller.update_note(note_id, "Kod refactor edildi ve testler geçti! #tamamlandı")

# 4. Arama yapın
results = controller.search_notes(query="refactor", tag="yazilim")
print(f"{len(results)} not bulundu.")

# 5. Listeleme
recent_notes = controller.list_notes(limit=10)

# 6. Notu silin
controller.delete_note(note_id)
```

---

## 🧪 Testleri Çalıştırma

```bash
pytest tests/
```

---

## 📄 Lisans

Bu proje **MIT Lisansı** altında lisanslanmıştır.
