Metadata-Version: 2.4
Name: humane-ai
Version: 0.2.0
Summary: Behavioral intelligence for your LLM apps. Every AI should know who it's talking to.
Project-URL: Homepage, https://github.com/humane-ai/humane2
Project-URL: Documentation, https://github.com/humane-ai/humane2#readme
Project-URL: Issues, https://github.com/humane-ai/humane2/issues
Author: Humane AI
License: LicenseRef-Humane-Source-Available
License-File: LICENSE
Keywords: ai,anthropic,behavioral,humane,llm,memory,openai,safety
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Requires-Python: >=3.10
Requires-Dist: httpx>=0.27.0
Requires-Dist: requests>=2.28.0
Provides-Extra: anthropic
Requires-Dist: anthropic>=0.20.0; extra == 'anthropic'
Provides-Extra: dev
Requires-Dist: mypy>=1.8; extra == 'dev'
Requires-Dist: pytest>=8.0; extra == 'dev'
Requires-Dist: ruff>=0.4; extra == 'dev'
Provides-Extra: openai
Requires-Dist: openai>=1.0.0; extra == 'openai'
Description-Content-Type: text/markdown

# Humane AI SDK

Behavioral intelligence layer for LLM applications. One line to make your AI emotionally aware, relationally continuous, and safety-gated.

## Install

```bash
pip install humane-ai
```

## Quick Start

```python
from humane_ai import HumaneClient

client = HumaneClient(api_key="hx_your_key")

# Single message
response = client.process("user_123", "I need help with my order")
print(response.response)           # AI response shaped by behavioral context
print(response.user.mood)          # 0.35 — frustration detected
print(response.context.empathy)    # 0.95 — auto-increased
print(response.timing.delay_ms)    # 400  — faster for urgent user
print(response.safety.action)      # PROCEED

# Multi-turn (history auto-managed)
client.process("user_123", "My name is Sarah, I work at TechCorp")
r = client.process("user_123", "Do you remember my name?")
# AI responds: "Yes, you're Sarah from TechCorp"

# Check behavioral state
if response.user.is_frustrated:
    print("User needs extra care")

# Proactive triggers
if response.proactive:
    for event in response.proactive:
        print(f"TRIGGER: {event.trigger} — {event.suggested_action}")

# Streaming
for event in client.stream("user_123", "Explain how engines work"):
    if event["type"] == "token":
        print(event["data"]["content"], end="", flush=True)
```
