Metadata-Version: 2.4
Name: hanani
Version: 0.9.1
Summary: Hanani — the Intelligence Synthesis Engine: multi-source geopolitical evidence synthesis with inspectable reasoning.
License: Apache-2.0
Project-URL: Homepage, https://github.com/gellsmore-svg/Hanani
Project-URL: Repository, https://github.com/gellsmore-svg/Hanani
Project-URL: Issues, https://github.com/gellsmore-svg/Hanani/issues
Keywords: geopolitics,news,evidence,synthesis,intelligence,reasoning,llm,debate
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: keturah>=0.4.0
Provides-Extra: dev
Requires-Dist: pytest>=8.0; extra == "dev"
Requires-Dist: ruff>=0.6; extra == "dev"
Requires-Dist: markdown>=3.5; extra == "dev"
Provides-Extra: hoglah
Requires-Dist: hoglah>=0.8.0; extra == "hoglah"
Provides-Extra: milcah
Requires-Dist: milcah>=0.2.0; extra == "milcah"
Provides-Extra: tirzah
Requires-Dist: tirzah>=1.3.0; extra == "tirzah"
Requires-Dist: pymongo>=4.6; extra == "tirzah"
Provides-Extra: galeed
Requires-Dist: galeed>=0.1; extra == "galeed"
Requires-Dist: pymongo>=4.6; extra == "galeed"
Provides-Extra: family
Requires-Dist: hoglah>=0.8.0; extra == "family"
Requires-Dist: milcah>=0.2.0; extra == "family"
Requires-Dist: tirzah>=1.3.0; extra == "family"
Requires-Dist: galeed>=0.1; extra == "family"
Requires-Dist: pymongo>=4.6; extra == "family"
Dynamic: license-file

# Hanani — Geopolitical News Reasoning

**Hanani** is a standalone geopolitical **reasoning system** — expandable semantic
graphs + a layered assessment engine, not a one-off crisis briefing or news reader.

> What do all available reports imply when combined?

**Requirements (web):** run `hanani docs serve` → http://127.0.0.1:8805/

Architecture: [`docs/reasoning-system.md`](docs/reasoning-system.md) ·
[`docs/requirements.md`](docs/requirements.md) ·
[`docs/review-2026-08-08.md`](docs/review-2026-08-08.md) (functional + code
review of 0.8.0; findings actioned in **0.9.0** — expanded offline floor,
unassessed audit scores, declared-vs-detectable coverage on status commands)

Initial focus: Russia–Ukraine, Hormuz Strait / US–Iran–Gulf states.

See [`docs/vision.md`](docs/vision.md).

```bash
hanani --help
hanani factors
hanani reasoning         # engine status (Layer 1 → Layer 2 pipeline)
hanani ontology          # mechanism graph (L1–L5)
hanani rhetoric          # fallacy / audit graph
hanani workflow status
hanani docs serve          # requirements + architecture as web pages

# The vertical slice — article → atoms → Layer 1 rhetoric → Layer 2 → persisted:
hanani ingest article.txt --source-id reuters --title "Odesa depot strike"
hanani ingest article.txt --source-id reuters --hoglah-model llama3   # + model tier
hanani corpus              # summarise the persisted store (~/.hanani)
hanani gaps                # registry-aware gaps and stated information needs
hanani relations           # typed, auditable relations between assessed atoms
hanani push-tirzah         # push stored records into Tirzah memory (tirzah extra)
hanani debate              # Milcah multi-LLM debate over admissible atoms (milcah extra)
```

Graphs: [`living-semantic-model.md`](docs/ontology/living-semantic-model.md) ·
[`rhetorical-logic-graph.md`](docs/ontology/rhetorical-logic-graph.md)

## Family stack

| Sibling | Role |
|---|---|
| Milcah | argument evaluation, multi-LLM debate |
| Tirzah | memory over ingested reports |
| Hoglah | LLM execution queue |
| Galeed | process trace |
| Keturah | capability manifest |

## Install

```bash
pipx install hanani
hanani --help
```

Optional extras: `pipx inject hanani 'hanani[milcah]'`, `hanani[tirzah]`, `hanani[family]`.
`hanani docs serve` needs a git checkout (docs are not in the wheel).

## Develop

```bash
pip install -e ".[dev]"
pytest
```

## License

[Apache License 2.0](LICENSE).
