system-prompts-and-models-o.../salesflow-saas/memory/patterns/library-decisions.md
Claude b0c3d038f8
feat: Finalize all systems + add 20 production libraries
Finalized implementations:
- skill_registry.py: CRM skill system with policy enforcement
- autopilot.py: Safe autopilot (simulation/approval-gated modes)
- escalation.py: Human escalation with Arabic packets
- signal_intelligence.py: Real-time signal scoring and watchlists
- alert_delivery.py: Multi-channel alerts with Arabic templates
- behavior_intelligence.py: Rep performance and pattern detection
- intelligence.py: Full API for signals/alerts/patterns/escalations

Added 20 production libraries to requirements.txt:
- Security: PyJWT (replaces abandoned python-jose), slowapi
- Arabic: camel-tools, pyarabic, hijridate, phonenumbers
- AI: litellm (unified LLM), instructor (structured outputs), statsforecast
- WhatsApp: pywa (direct Cloud API)
- Email: resend (transactional)
- PDF: weasyprint (Arabic RTL)
- Performance: fastapi-cache2, celery-redbeat, structlog
- Monitoring: sentry-sdk, prometheus-fastapi-instrumentator
- Testing: pytest-asyncio, pytest-cov, factory-boy

https://claude.ai/code/session_01LsnvBa7HwF5hs99VZbgLGj
2026-04-11 07:56:24 +00:00

2.5 KiB

Library Decisions — Dealix AI Revenue OS

Type: pattern Date: 2026-04-11 Status: active

Added Libraries (Priority Order)

Immediate (Security + Core)

Library Why Replaces
PyJWT[crypto] Active JWT library python-jose (abandoned 3+ years)
litellm Unified LLM provider with auto-fallback Manual Groq→OpenAI switching
sentry-sdk[fastapi] Production error tracking None (was missing)
slowapi API rate limiting None (was missing)
pydantic-extra-types[phonenumbers] Saudi +966 phone validation None

Arabic & Saudi

Library Why
camel-tools Best Arabic NLP (NYU Abu Dhabi) — morphology, NER, dialect detection
pyarabic Arabic text normalization before NLP processing
hijridate Official Umm al-Qura Hijri calendar for Saudi UX
phonenumbers Format/validate Saudi mobile numbers for WhatsApp

Communication

Library Why
pywa Direct WhatsApp Cloud API (cheaper than Twilio per-message)
resend Transactional email with free tier
weasyprint Arabic RTL PDF generation for invoices/quotes

Performance & Monitoring

Library Why
fastapi-cache2 Redis-backed response caching (90% DB load reduction)
celery-redbeat Dynamic Celery scheduling from Redis (no restart needed)
prometheus-fastapi-instrumentator Prometheus metrics for Grafana dashboards
structlog JSON structured logging with tenant_id context

AI Enhancement

Library Why
instructor Extract structured Pydantic models from LLM outputs
statsforecast Fast time-series forecasting (500x faster than Prophet)

Testing

Library Why
pytest-asyncio Test async FastAPI endpoints
pytest-cov Coverage reporting
factory-boy Test data factories for SQLAlchemy models

Rejected Libraries

Library Why Rejected
prophet Heavy dependencies (PyStan), statsforecast is faster
elasticsearch Too heavy for current scale, use pg_trgm then Meilisearch
apscheduler Already have Celery, celery-redbeat is better fit
fatoora Abandoned (2022), built our own ZATCA QR in invoice_generator.py

Migration Notes

  • python-jose → PyJWT: Minor API change. jose.jwt.decode()jwt.decode(). Same RSA/HS256 support.
  • Manual LLM fallback → litellm: Replace services/llm/provider.py logic with litellm.completion() + fallback list.