-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpyproject.toml
More file actions
71 lines (66 loc) · 2.42 KB
/
Copy pathpyproject.toml
File metadata and controls
71 lines (66 loc) · 2.42 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
[project]
name = "kahzaabu"
version = "0.1.0"
description = "Maldives Presidency content archiver + fact-checking pipeline"
requires-python = ">=3.8"
# Core: scraping + claims/curation/verification pipeline + infographics.
# Anyone running `kahzaabu pipeline`, `kahzaabu extract`, `kahzaabu ask`
# needs every entry here. Web UI / TUI / standalone MCP server are extras
# below — `pip install -e ".[web,tui]"` to add them.
dependencies = [
"requests>=2.31",
"beautifulsoup4>=4.12",
"click>=8.1",
"lxml>=5.0",
"anthropic>=0.40", # extractor / curator / verifier / inspector / dv_compare / qna*
"Pillow>=10.0", # infographics renderer
]
[project.urls]
Homepage = "https://github.com/Sofwath/kahzaabu"
Repository = "https://github.com/Sofwath/kahzaabu"
Issues = "https://github.com/Sofwath/kahzaabu/issues"
[project.optional-dependencies]
web = [
"fastapi>=0.110",
"uvicorn[standard]>=0.27",
"slowapi>=0.1.9", # rate limiting on /api/ask
"python-multipart>=0.0.9", # FastAPI form-data support
"pydantic>=2.0",
"prometheus-client>=0.20", # /metrics endpoint (ADR 0010)
# passlib + itsdangerous removed — no password-based admin auth.
# Web UI is read-only public; operator actions run via the CLI.
]
tui = [
"rich>=13.0",
"prompt_toolkit>=3.0",
]
mcp = [
"mcp>=0.9", # legacy standalone stdio MCP server under kahzaabu/legacy/mcp_server.py. Superseded by the hermes plugin (hermes-plugin/); kept for reference. The native hermes plugin uses no MCP SDK.
]
# V2 Slice 3 — embedding-provider extras. ADR 0007 mandates that no single
# proprietary API is required; users pick the backend they want and install
# the matching extra. At least one ml-* extra must be installed for the
# `match` command to work.
ml-local = [
"sentence-transformers>=2.5", # default — no API key needed
"numpy>=1.24",
]
ml-openai = [
"openai>=1.40", # text-embedding-3-small (literature default)
"numpy>=1.24",
]
ml-voyage = [
"voyageai>=0.2", # voyage-3 (Anthropic-recommended)
"numpy>=1.24",
]
ml = ["kahzaabu[ml-local]"] # the OSS default — `pip install kahzaabu[ml]` works offline
all = [
"kahzaabu[web,tui,mcp,ml]",
]
[project.scripts]
kahzaabu = "kahzaabu.cli:main"
[build-system]
requires = ["setuptools>=68.0"]
build-backend = "setuptools.build_meta"
[tool.setuptools.packages.find]
include = ["kahzaabu*"]