-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpyproject.toml
More file actions
92 lines (84 loc) · 3.52 KB
/
Copy pathpyproject.toml
File metadata and controls
92 lines (84 loc) · 3.52 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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
[build-system]
requires = ["setuptools>=68"]
build-backend = "setuptools.build_meta"
[project]
name = "memorymaster"
version = "4.8.4"
description = "Production-grade memory reliability system for AI coding agents. Lifecycle-managed claims with citations, conflict detection, steward governance, and MCP integration."
license = {text = "MIT"}
authors = [{name = "wolverin0"}]
keywords = ["memory", "ai-agents", "claims", "lifecycle", "mcp", "sqlite", "postgres", "coding-agents"]
classifiers = [
"Development Status :: 5 - Production/Stable",
"Intended Audience :: Developers",
"License :: OSI Approved :: MIT License",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Topic :: Software Development :: Libraries",
"Topic :: Scientific/Engineering :: Artificial Intelligence",
]
readme = "README.md"
requires-python = ">=3.10"
dependencies = [
"requests>=2.31",
"tenacity>=8.2",
]
[project.optional-dependencies]
postgres = ["psycopg[binary]>=3.2"]
security = ["cryptography>=42"]
embeddings = ["sentence-transformers>=3.0"]
gemini = ["google-genai>=1.0"]
qdrant = ["httpx>=0.27"]
capture = ["pypdf>=5.0", "python-docx>=1.1"]
# `vector` enables the Qdrant vector-search recall fallback and the
# scripts/index_claims_to_qdrant.py indexer. Local-only (no network deps
# beyond Qdrant itself); sentence-transformers gives deterministic
# 384-dim embeddings on CPU.
vector = ["sentence-transformers>=3.0", "qdrant-client>=1.9"]
# `graph` enables the Kuzu-backed graph retrieval stream (roadmap 11.3,
# memorymaster.recall.graph_store). Kuzu is an embedded, single-file graph
# database (no server) — lightweight enough to keep MemoryMaster's
# "single-file SQLite + optional Qdrant" story. Gated at runtime by
# MEMORYMASTER_RECALL_GRAPH=1; off by default.
graph = ["kuzu>=0.4"]
dev = ["pytest>=8.2", "pytest-cov>=6.0", "pytest-timeout>=2.3", "pip-audit>=2.10"]
# Streamable HTTP and its ASGI app landed in the 1.8 line. Stdio remains the
# default transport; the higher floor makes the explicit HTTP entrypoint real.
mcp = ["mcp>=1.8.1,<2"]
ml = ["scikit-learn>=1.3", "joblib>=1.3"]
[project.scripts]
memorymaster = "memorymaster.surfaces.cli:main"
memorymaster-mcp = "memorymaster.surfaces.mcp_server:main"
memorymaster-mcp-http = "memorymaster.surfaces.mcp_http:main"
memorymaster-dashboard = "memorymaster.surfaces.dashboard:main"
memorymaster-steward = "memorymaster.govern.llm_steward:main"
memorymaster-setup = "memorymaster.surfaces.setup_hooks:main"
memorymaster-session-end = "memorymaster.surfaces.session_end_ingest:main"
memorymaster-ops = "memorymaster.surfaces.operations:main"
[tool.ruff]
target-version = "py310"
line-length = 120
[tool.ruff.lint]
select = ["E", "F", "W"]
ignore = ["E501"] # line length handled by formatter
[tool.setuptools.packages.find]
where = ["."]
# Ship ONLY the library. Without this, find() sweeps every top-level dir
# (tests/, scripts/, benchmarks/, artifacts/, cloned/, docs/, ...) into
# site-packages as importable top-level packages — polluting the user's
# namespace (`import tests` / `import scripts` collide) and bloating the
# wheel. Scoped to memorymaster* so the published artifact is just the package.
include = ["memorymaster*"]
[tool.setuptools.package-data]
memorymaster = [
"schema.sql",
"schema_postgres.sql",
"config_templates/*.md",
"config_templates/hooks/*.py",
]
[tool.mypy]
python_version = "3.10"
ignore_missing_imports = true
check_untyped_defs = true