Metadata-Version: 2.4
Name: qanuni-sdk
Version: 0.3.0
Summary: Arabic-first legal intelligence SDK for Saudi-focused legal workflows.
Author: BandAI
License-Expression: MIT
License-File: LICENSE
Keywords: arabic,compliance,legal,openai,saudi,sdk
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Typing :: Typed
Requires-Python: >=3.11
Requires-Dist: cryptography<42.0.0,>=41.0.0
Requires-Dist: httpx>=0.27.0
Requires-Dist: jinja2>=3.1.4
Requires-Dist: openai<3.0.0,>=2.0.0
Requires-Dist: packaging>=24.1
Requires-Dist: pydantic-settings>=2.3.4
Requires-Dist: pydantic>=2.8.2
Requires-Dist: pyyaml>=6.0.2
Provides-Extra: cli
Requires-Dist: rich>=13.7.1; extra == 'cli'
Requires-Dist: typer>=0.12.3; extra == 'cli'
Provides-Extra: dev
Requires-Dist: build>=1.2.2.post1; extra == 'dev'
Requires-Dist: mcp[cli]<2.0.0,>=1.27.1; extra == 'dev'
Requires-Dist: mypy>=1.11.1; extra == 'dev'
Requires-Dist: pytest-cov>=5.0.0; extra == 'dev'
Requires-Dist: pytest>=8.3.2; extra == 'dev'
Requires-Dist: ruff>=0.6.1; extra == 'dev'
Requires-Dist: twine>=6.1.0; extra == 'dev'
Provides-Extra: mcp
Requires-Dist: mcp[cli]<2.0.0,>=1.27.1; extra == 'mcp'
Provides-Extra: pdf
Requires-Dist: pdfplumber>=0.11.4; extra == 'pdf'
Provides-Extra: release
Requires-Dist: build>=1.2.2.post1; extra == 'release'
Requires-Dist: twine>=6.1.0; extra == 'release'
Description-Content-Type: text/markdown

# Qanuni SDK

Qanuni is an Arabic-first Python SDK for Saudi legal workflows.

It supports two usage styles in one package:

- direct legal tools for focused tasks
- workflows and a deterministic legal agent for harder multi-step matters

## Install

```bash
python -m pip install --upgrade qanuni-sdk
```

Optional MCP support:

```bash
python -m pip install "qanuni-sdk[mcp]"
```

## Quickstart

```python
from qanuni import LegalClient

client = LegalClient()

result = client.contracts.gap_analysis(
    contract_text="""
    يلتزم الطرف الثاني بتنفيذ الأعمال،
    ويتم السداد لاحقًا وفق ما يراه الطرف الأول مناسبًا،
    ويجوز إنهاء العقد عند الحاجة.
    """,
    contract_type="service_agreement",
)

print(result.summary)
```

## Workflow Example

```python
workflow_result = client.workflow.contract_review(
    document_text="""
    اتفق الطرف الأول مع الطرف الثاني على تقديم خدمات تقنية،
    ويتم السداد بعد الفاتورة، ويجوز إنهاء العقد عند الحاجة.
    """,
    contract_type="service_agreement",
)

print(workflow_result.executive_summary)
print(workflow_result.risk_level)
```

## Agent Example

```python
agent_result = client.agent.run(
    goal="راجع العقد وحدد المخاطر ثم جهز تصورًا لمطالبة قانونية مناسبة.",
    documents=[
        {
            "name": "contract.md",
            "text": """
            اتفق الطرف الأول مع الطرف الثاني على تقديم خدمات تقنية،
            ويتم السداد بعد الفاتورة، ويجوز إنهاء العقد عند الحاجة.
            """,
        }
    ],
)

print(agent_result.status)
print(agent_result.answer_text)
```

## Included Surfaces

- tools: `labor`, `legal`, `contracts`, `compliance`, `drafting`, `policies`
- workflows: `client.workflow`
- agent runtime: `client.agent`
- optional signed-license operations: `client.license`
- acceptance CLI and human-testing examples
- optional MCP server

## Built-in Operational Features

- structured outputs
- cost estimation
- selective caching
- observability events
- dated agent logs

## Optional Commands

```bash
qanuni-examples --list
qanuni-acceptance --list
qanuni-mcp-smoke --mode mocked
qanuni-mcp-server serve --host 127.0.0.1 --port 8088
```
