nexor-mneme 0.1.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- nexor_mneme-0.1.0/.gitignore +10 -0
- nexor_mneme-0.1.0/PKG-INFO +83 -0
- nexor_mneme-0.1.0/README.md +47 -0
- nexor_mneme-0.1.0/pyproject.toml +61 -0
- nexor_mneme-0.1.0/src/nexor_memory/__init__.py +310 -0
- nexor_mneme-0.1.0/src/nexor_memory/_scip/NOTICE.md +13 -0
- nexor_mneme-0.1.0/src/nexor_memory/_scip/__init__.py +0 -0
- nexor_mneme-0.1.0/src/nexor_memory/_scip/scip.proto +897 -0
- nexor_mneme-0.1.0/src/nexor_memory/_scip/scip_pb2.py +89 -0
- nexor_mneme-0.1.0/src/nexor_memory/auto_profile.py +492 -0
- nexor_mneme-0.1.0/src/nexor_memory/benchmark.py +778 -0
- nexor_mneme-0.1.0/src/nexor_memory/category_extractor.py +431 -0
- nexor_mneme-0.1.0/src/nexor_memory/classifier.py +110 -0
- nexor_mneme-0.1.0/src/nexor_memory/code_chunker.py +874 -0
- nexor_mneme-0.1.0/src/nexor_memory/code_communities.py +96 -0
- nexor_mneme-0.1.0/src/nexor_memory/code_graph.py +811 -0
- nexor_mneme-0.1.0/src/nexor_memory/code_graph_age.py +150 -0
- nexor_mneme-0.1.0/src/nexor_memory/code_graph_cache.py +83 -0
- nexor_mneme-0.1.0/src/nexor_memory/code_graph_sync.py +159 -0
- nexor_mneme-0.1.0/src/nexor_memory/code_repomap.py +130 -0
- nexor_mneme-0.1.0/src/nexor_memory/contradiction.py +346 -0
- nexor_mneme-0.1.0/src/nexor_memory/embeddings.py +375 -0
- nexor_mneme-0.1.0/src/nexor_memory/entity_resolution.py +414 -0
- nexor_mneme-0.1.0/src/nexor_memory/episodic.py +289 -0
- nexor_mneme-0.1.0/src/nexor_memory/forgetting.py +505 -0
- nexor_mneme-0.1.0/src/nexor_memory/layering.py +270 -0
- nexor_mneme-0.1.0/src/nexor_memory/lifecycle.py +193 -0
- nexor_mneme-0.1.0/src/nexor_memory/mcp_server.py +187 -0
- nexor_mneme-0.1.0/src/nexor_memory/observation.py +360 -0
- nexor_mneme-0.1.0/src/nexor_memory/obsidian_export.py +208 -0
- nexor_mneme-0.1.0/src/nexor_memory/offload.py +122 -0
- nexor_mneme-0.1.0/src/nexor_memory/privacy.py +345 -0
- nexor_mneme-0.1.0/src/nexor_memory/privacy_rules.default.yaml +41 -0
- nexor_mneme-0.1.0/src/nexor_memory/reranker.py +360 -0
- nexor_mneme-0.1.0/src/nexor_memory/result_factory.py +74 -0
- nexor_mneme-0.1.0/src/nexor_memory/sanitizer.py +145 -0
- nexor_mneme-0.1.0/src/nexor_memory/scip_import.py +188 -0
- nexor_mneme-0.1.0/src/nexor_memory/semantic.py +697 -0
- nexor_mneme-0.1.0/src/nexor_memory/server/__init__.py +11 -0
- nexor_mneme-0.1.0/src/nexor_memory/server/__main__.py +25 -0
- nexor_mneme-0.1.0/src/nexor_memory/server/app.py +64 -0
- nexor_mneme-0.1.0/src/nexor_memory/server/deps.py +143 -0
- nexor_mneme-0.1.0/src/nexor_memory/server/routers/__init__.py +5 -0
- nexor_mneme-0.1.0/src/nexor_memory/server/routers/code.py +60 -0
- nexor_mneme-0.1.0/src/nexor_memory/server/routers/layers.py +62 -0
- nexor_mneme-0.1.0/src/nexor_memory/server/routers/memory.py +64 -0
- nexor_mneme-0.1.0/src/nexor_memory/server/routers/tasks.py +140 -0
- nexor_mneme-0.1.0/src/nexor_memory/short_term.py +187 -0
- nexor_mneme-0.1.0/src/nexor_memory/symbolic.py +346 -0
- nexor_mneme-0.1.0/src/nexor_memory/sync_pipeline.py +146 -0
- nexor_mneme-0.1.0/src/nexor_memory/team_db.py +118 -0
- nexor_mneme-0.1.0/src/nexor_memory/temporal.py +378 -0
- nexor_mneme-0.1.0/src/nexor_memory/warmup.py +47 -0
- nexor_mneme-0.1.0/src/nexor_memory/webhooks.py +203 -0
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: nexor-mneme
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: Open memory engine + code intelligence for AI agents
|
|
5
|
+
Project-URL: Homepage, https://github.com/nexorhq/nexor-mneme
|
|
6
|
+
Project-URL: Repository, https://github.com/nexorhq/nexor-mneme
|
|
7
|
+
Author: Giovanni Consiglio
|
|
8
|
+
License-Expression: MIT
|
|
9
|
+
Keywords: ai-agents,code-intelligence,knowledge-graph,memory,nexor,rag,scip
|
|
10
|
+
Classifier: Development Status :: 4 - Beta
|
|
11
|
+
Classifier: Intended Audience :: Developers
|
|
12
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
13
|
+
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
14
|
+
Classifier: Topic :: Software Development :: Libraries
|
|
15
|
+
Requires-Python: >=3.12
|
|
16
|
+
Requires-Dist: asyncpg>=0.29
|
|
17
|
+
Requires-Dist: httpx>=0.27
|
|
18
|
+
Requires-Dist: nexor-core>=0.1.0
|
|
19
|
+
Requires-Dist: pyyaml>=6.0
|
|
20
|
+
Requires-Dist: qdrant-client>=1.7
|
|
21
|
+
Requires-Dist: redis>=5.0
|
|
22
|
+
Provides-Extra: codegraph
|
|
23
|
+
Requires-Dist: tree-sitter-languages>=1.10; extra == 'codegraph'
|
|
24
|
+
Requires-Dist: tree-sitter<0.22,>=0.21; extra == 'codegraph'
|
|
25
|
+
Provides-Extra: hybrid
|
|
26
|
+
Requires-Dist: flagembedding>=1.2; extra == 'hybrid'
|
|
27
|
+
Provides-Extra: mcp
|
|
28
|
+
Requires-Dist: httpx>=0.27; extra == 'mcp'
|
|
29
|
+
Requires-Dist: mcp>=1.2; extra == 'mcp'
|
|
30
|
+
Provides-Extra: scip
|
|
31
|
+
Requires-Dist: protobuf>=5; extra == 'scip'
|
|
32
|
+
Provides-Extra: server
|
|
33
|
+
Requires-Dist: fastapi>=0.110; extra == 'server'
|
|
34
|
+
Requires-Dist: uvicorn>=0.30; extra == 'server'
|
|
35
|
+
Description-Content-Type: text/markdown
|
|
36
|
+
|
|
37
|
+
# nexor-mneme
|
|
38
|
+
|
|
39
|
+
> Persistent memory + code-intelligence for AI agents — a knowledge layer you self-host.
|
|
40
|
+
|
|
41
|
+
`nexor-mneme` is the open memory engine of the [Nexor](https://github.com/nexorhq) project
|
|
42
|
+
(*mneme*, μνήμη — "memory"). It gives agents long-term semantic memory **and** a queryable
|
|
43
|
+
structural map of your codebase, so they answer *"what did we decide"* and *"what calls this
|
|
44
|
+
function / what's the blast radius"* without re-reading everything.
|
|
45
|
+
|
|
46
|
+
Dependency-light core; heavier capabilities are optional extras. Run it standalone — **no
|
|
47
|
+
dependency on anyone's personal orchestrator or daemon**.
|
|
48
|
+
|
|
49
|
+
## What's inside
|
|
50
|
+
|
|
51
|
+
- **Semantic memory** — hybrid (dense+sparse) retrieval over Qdrant, cross-encoder reranking,
|
|
52
|
+
forgetting, contradiction & entity resolution, auto-profile.
|
|
53
|
+
- **Progressive layering (L0→L3)** — a semantic pyramid with provenance + deterministic
|
|
54
|
+
drill-down from an abstraction to its evidence.
|
|
55
|
+
- **Code structure graph** — multi-language (Python via stdlib `ast`; JS/TS/Go via tree-sitter),
|
|
56
|
+
precise resolution via **SCIP** ingest, blast-radius queries, PageRank repo-map, community
|
|
57
|
+
detection, incremental cache — landed in Apache AGE.
|
|
58
|
+
- **Symbolic task memory** — Mermaid task canvases with offload-by-reference.
|
|
59
|
+
- **Obsidian export** — a human-browsable, interlinked vault of the whole graph.
|
|
60
|
+
- **Standalone service** — a FastAPI server + docker-compose (`server` extra).
|
|
61
|
+
|
|
62
|
+
## Install
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
pip install nexor-mneme # core memory + code graph (Python)
|
|
66
|
+
pip install "nexor-mneme[codegraph]" # + tree-sitter (JS/TS/Go)
|
|
67
|
+
pip install "nexor-mneme[scip]" # + SCIP precise resolution
|
|
68
|
+
pip install "nexor-mneme[server]" # + FastAPI standalone service
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
## Run your own instance
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
git clone https://github.com/nexorhq/nexor-mneme && cd nexor-mneme/deploy
|
|
75
|
+
docker compose up -d # API on http://localhost:8200
|
|
76
|
+
curl http://localhost:8200/health
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
See the [deploy guide](https://github.com/nexorhq/nexor-mneme/blob/main/deploy/README.md).
|
|
80
|
+
|
|
81
|
+
## License
|
|
82
|
+
|
|
83
|
+
MIT — see [LICENSE](https://github.com/nexorhq/nexor-mneme/blob/main/LICENSE).
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# nexor-mneme
|
|
2
|
+
|
|
3
|
+
> Persistent memory + code-intelligence for AI agents — a knowledge layer you self-host.
|
|
4
|
+
|
|
5
|
+
`nexor-mneme` is the open memory engine of the [Nexor](https://github.com/nexorhq) project
|
|
6
|
+
(*mneme*, μνήμη — "memory"). It gives agents long-term semantic memory **and** a queryable
|
|
7
|
+
structural map of your codebase, so they answer *"what did we decide"* and *"what calls this
|
|
8
|
+
function / what's the blast radius"* without re-reading everything.
|
|
9
|
+
|
|
10
|
+
Dependency-light core; heavier capabilities are optional extras. Run it standalone — **no
|
|
11
|
+
dependency on anyone's personal orchestrator or daemon**.
|
|
12
|
+
|
|
13
|
+
## What's inside
|
|
14
|
+
|
|
15
|
+
- **Semantic memory** — hybrid (dense+sparse) retrieval over Qdrant, cross-encoder reranking,
|
|
16
|
+
forgetting, contradiction & entity resolution, auto-profile.
|
|
17
|
+
- **Progressive layering (L0→L3)** — a semantic pyramid with provenance + deterministic
|
|
18
|
+
drill-down from an abstraction to its evidence.
|
|
19
|
+
- **Code structure graph** — multi-language (Python via stdlib `ast`; JS/TS/Go via tree-sitter),
|
|
20
|
+
precise resolution via **SCIP** ingest, blast-radius queries, PageRank repo-map, community
|
|
21
|
+
detection, incremental cache — landed in Apache AGE.
|
|
22
|
+
- **Symbolic task memory** — Mermaid task canvases with offload-by-reference.
|
|
23
|
+
- **Obsidian export** — a human-browsable, interlinked vault of the whole graph.
|
|
24
|
+
- **Standalone service** — a FastAPI server + docker-compose (`server` extra).
|
|
25
|
+
|
|
26
|
+
## Install
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
pip install nexor-mneme # core memory + code graph (Python)
|
|
30
|
+
pip install "nexor-mneme[codegraph]" # + tree-sitter (JS/TS/Go)
|
|
31
|
+
pip install "nexor-mneme[scip]" # + SCIP precise resolution
|
|
32
|
+
pip install "nexor-mneme[server]" # + FastAPI standalone service
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## Run your own instance
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
git clone https://github.com/nexorhq/nexor-mneme && cd nexor-mneme/deploy
|
|
39
|
+
docker compose up -d # API on http://localhost:8200
|
|
40
|
+
curl http://localhost:8200/health
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
See the [deploy guide](https://github.com/nexorhq/nexor-mneme/blob/main/deploy/README.md).
|
|
44
|
+
|
|
45
|
+
## License
|
|
46
|
+
|
|
47
|
+
MIT — see [LICENSE](https://github.com/nexorhq/nexor-mneme/blob/main/LICENSE).
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
[project]
|
|
2
|
+
name = "nexor-mneme"
|
|
3
|
+
version = "0.1.0"
|
|
4
|
+
description = "Open memory engine + code intelligence for AI agents"
|
|
5
|
+
readme = "README.md"
|
|
6
|
+
requires-python = ">=3.12"
|
|
7
|
+
license = "MIT"
|
|
8
|
+
authors = [{ name = "Giovanni Consiglio" }]
|
|
9
|
+
keywords = [
|
|
10
|
+
"nexor",
|
|
11
|
+
"ai-agents",
|
|
12
|
+
"memory",
|
|
13
|
+
"code-intelligence",
|
|
14
|
+
"knowledge-graph",
|
|
15
|
+
"rag",
|
|
16
|
+
"scip",
|
|
17
|
+
]
|
|
18
|
+
classifiers = [
|
|
19
|
+
"Development Status :: 4 - Beta",
|
|
20
|
+
"Intended Audience :: Developers",
|
|
21
|
+
"Programming Language :: Python :: 3.12",
|
|
22
|
+
"Topic :: Software Development :: Libraries",
|
|
23
|
+
"Topic :: Scientific/Engineering :: Artificial Intelligence",
|
|
24
|
+
]
|
|
25
|
+
dependencies = [
|
|
26
|
+
"nexor-core>=0.1.0",
|
|
27
|
+
"redis>=5.0",
|
|
28
|
+
"asyncpg>=0.29",
|
|
29
|
+
"qdrant-client>=1.7",
|
|
30
|
+
"httpx>=0.27",
|
|
31
|
+
"pyyaml>=6.0",
|
|
32
|
+
]
|
|
33
|
+
|
|
34
|
+
[project.optional-dependencies]
|
|
35
|
+
hybrid = ["FlagEmbedding>=1.2"]
|
|
36
|
+
# Multi-language code structure graph (tree-sitter). Optional: the Python
|
|
37
|
+
# extractor uses the stdlib ast and needs none of this.
|
|
38
|
+
codegraph = ["tree-sitter-languages>=1.10", "tree-sitter>=0.21,<0.22"]
|
|
39
|
+
# Precise resolution by ingesting SCIP indexes (scip-typescript/python/…).
|
|
40
|
+
scip = ["protobuf>=5"]
|
|
41
|
+
# Standalone deployable service (FastAPI) — run your own nexor-mneme instance.
|
|
42
|
+
server = ["fastapi>=0.110", "uvicorn>=0.30"]
|
|
43
|
+
# MCP server: expose a running nexor-mneme instance to Claude Code / any agent.
|
|
44
|
+
mcp = ["mcp>=1.2", "httpx>=0.27"]
|
|
45
|
+
|
|
46
|
+
[project.scripts]
|
|
47
|
+
nexor-mneme-mcp = "nexor_memory.mcp_server:main"
|
|
48
|
+
|
|
49
|
+
[build-system]
|
|
50
|
+
requires = ["hatchling"]
|
|
51
|
+
build-backend = "hatchling.build"
|
|
52
|
+
|
|
53
|
+
[project.urls]
|
|
54
|
+
Homepage = "https://github.com/nexorhq/nexor-mneme"
|
|
55
|
+
Repository = "https://github.com/nexorhq/nexor-mneme"
|
|
56
|
+
|
|
57
|
+
[tool.hatch.build.targets.wheel]
|
|
58
|
+
packages = ["src/nexor_memory"]
|
|
59
|
+
|
|
60
|
+
[tool.uv.sources]
|
|
61
|
+
nexor-core = { workspace = true }
|
|
@@ -0,0 +1,310 @@
|
|
|
1
|
+
"""Nexor Memory — Memory layer (short-term, episodic, semantic).
|
|
2
|
+
|
|
3
|
+
Sprint 2 additions: contradiction resolution, temporal extraction,
|
|
4
|
+
entity resolution, cross-encoder reranking.
|
|
5
|
+
|
|
6
|
+
Sprint 3 additions: category extraction, auto-profile generation,
|
|
7
|
+
AST-aware code chunking.
|
|
8
|
+
|
|
9
|
+
Sprint 5 additions: memory quality benchmark, semantic auto-forgetting.
|
|
10
|
+
|
|
11
|
+
Sprint 6 additions: hybrid search (dense+sparse), HybridEmbedding,
|
|
12
|
+
BGEM3HybridProvider, RRF fusion in Qdrant, migration script.
|
|
13
|
+
"""
|
|
14
|
+
|
|
15
|
+
__version__ = "0.6.0"
|
|
16
|
+
|
|
17
|
+
from nexor_memory.auto_profile import (
|
|
18
|
+
AutoProfileGenerator,
|
|
19
|
+
UserProfile,
|
|
20
|
+
export_profile_markdown,
|
|
21
|
+
)
|
|
22
|
+
from nexor_memory.benchmark import (
|
|
23
|
+
ABComparison,
|
|
24
|
+
BenchmarkCategory,
|
|
25
|
+
BenchmarkQuestion,
|
|
26
|
+
BenchmarkRun,
|
|
27
|
+
MemoryBenchmarkRunner,
|
|
28
|
+
QuestionResult,
|
|
29
|
+
aggregate_results,
|
|
30
|
+
compare_runs,
|
|
31
|
+
evaluate_question,
|
|
32
|
+
format_ab_comparison,
|
|
33
|
+
format_benchmark_run,
|
|
34
|
+
load_default_test_set,
|
|
35
|
+
)
|
|
36
|
+
from nexor_memory.category_extractor import (
|
|
37
|
+
CategoryExtractor,
|
|
38
|
+
CategoryResult,
|
|
39
|
+
MemoryCategory,
|
|
40
|
+
)
|
|
41
|
+
from nexor_memory.code_chunker import (
|
|
42
|
+
CodeChunk,
|
|
43
|
+
chunk_code,
|
|
44
|
+
chunk_diff,
|
|
45
|
+
detect_language,
|
|
46
|
+
)
|
|
47
|
+
from nexor_memory.code_communities import (
|
|
48
|
+
Community,
|
|
49
|
+
communities,
|
|
50
|
+
detect_communities,
|
|
51
|
+
)
|
|
52
|
+
from nexor_memory.code_graph import (
|
|
53
|
+
SUPPORTED_EXTENSIONS,
|
|
54
|
+
CodeEdge,
|
|
55
|
+
CodeGraph,
|
|
56
|
+
CodeGraphBuilder,
|
|
57
|
+
CodeNode,
|
|
58
|
+
PythonAstExtractor,
|
|
59
|
+
TreeSitterExtractor,
|
|
60
|
+
build_code_graph,
|
|
61
|
+
)
|
|
62
|
+
from nexor_memory.code_graph_age import CodeGraphStore
|
|
63
|
+
from nexor_memory.code_graph_cache import (
|
|
64
|
+
FileGraphCache,
|
|
65
|
+
file_sha256,
|
|
66
|
+
)
|
|
67
|
+
from nexor_memory.code_graph_sync import (
|
|
68
|
+
CodeGraphSync,
|
|
69
|
+
SourceSpec,
|
|
70
|
+
SyncResult,
|
|
71
|
+
build_for_spec,
|
|
72
|
+
load_sources,
|
|
73
|
+
)
|
|
74
|
+
from nexor_memory.code_repomap import (
|
|
75
|
+
rank_nodes,
|
|
76
|
+
ranked_symbols,
|
|
77
|
+
repo_map,
|
|
78
|
+
)
|
|
79
|
+
from nexor_memory.contradiction import (
|
|
80
|
+
ContradictionCheck,
|
|
81
|
+
ContradictionResolver,
|
|
82
|
+
ContradictionResult,
|
|
83
|
+
ResolutionStrategy,
|
|
84
|
+
)
|
|
85
|
+
from nexor_memory.embeddings import (
|
|
86
|
+
BaseEmbeddingProvider,
|
|
87
|
+
BGEM3HybridProvider,
|
|
88
|
+
FakeEmbeddingProvider,
|
|
89
|
+
HybridEmbedding,
|
|
90
|
+
OllamaEmbeddingProvider,
|
|
91
|
+
)
|
|
92
|
+
from nexor_memory.entity_resolution import (
|
|
93
|
+
EntityCatalog,
|
|
94
|
+
EntityResolver,
|
|
95
|
+
ResolvedEntity,
|
|
96
|
+
fuzzy_similarity,
|
|
97
|
+
levenshtein_distance,
|
|
98
|
+
)
|
|
99
|
+
from nexor_memory.episodic import (
|
|
100
|
+
BaseEpisodicMemory,
|
|
101
|
+
InMemoryEpisodicMemory,
|
|
102
|
+
PostgresEpisodicMemory,
|
|
103
|
+
)
|
|
104
|
+
from nexor_memory.forgetting import (
|
|
105
|
+
DEFAULT_ARCHIVE_THRESHOLD,
|
|
106
|
+
FORGETTABLE_COLLECTIONS,
|
|
107
|
+
PROTECTED_COLLECTIONS,
|
|
108
|
+
ForgettingResult,
|
|
109
|
+
RelevanceScore,
|
|
110
|
+
SemanticForgettingEngine,
|
|
111
|
+
compute_access_score,
|
|
112
|
+
compute_importance_score,
|
|
113
|
+
compute_recency_score,
|
|
114
|
+
format_forgetting_result,
|
|
115
|
+
score_memory,
|
|
116
|
+
)
|
|
117
|
+
from nexor_memory.layering import (
|
|
118
|
+
DEFAULT_TIER,
|
|
119
|
+
TIER_BY_COLLECTION,
|
|
120
|
+
LayeredMemory,
|
|
121
|
+
MemoryTier,
|
|
122
|
+
ProvenanceRef,
|
|
123
|
+
)
|
|
124
|
+
from nexor_memory.lifecycle import (
|
|
125
|
+
cleanup_old_events,
|
|
126
|
+
generate_daily_summary,
|
|
127
|
+
generate_weekly_summary,
|
|
128
|
+
)
|
|
129
|
+
from nexor_memory.observation import (
|
|
130
|
+
Observation,
|
|
131
|
+
ObservationCompressor,
|
|
132
|
+
RawToolEvent,
|
|
133
|
+
should_compress,
|
|
134
|
+
)
|
|
135
|
+
from nexor_memory.obsidian_export import (
|
|
136
|
+
MemoryRecord,
|
|
137
|
+
ObsidianVaultWriter,
|
|
138
|
+
VaultNote,
|
|
139
|
+
code_graph_to_notes,
|
|
140
|
+
memories_to_notes,
|
|
141
|
+
slugify,
|
|
142
|
+
)
|
|
143
|
+
from nexor_memory.offload import (
|
|
144
|
+
DEFAULT_OFFLOAD_THRESHOLD,
|
|
145
|
+
OFFLOAD_COLLECTION,
|
|
146
|
+
LogOffloader,
|
|
147
|
+
OffloadResult,
|
|
148
|
+
)
|
|
149
|
+
from nexor_memory.reranker import (
|
|
150
|
+
CrossEncoderReranker,
|
|
151
|
+
RerankResult,
|
|
152
|
+
rerank_with_cross_encoder,
|
|
153
|
+
)
|
|
154
|
+
from nexor_memory.result_factory import result_from_tool_result
|
|
155
|
+
from nexor_memory.scip_import import (
|
|
156
|
+
ScipDocument,
|
|
157
|
+
ScipOccurrence,
|
|
158
|
+
load_scip_index,
|
|
159
|
+
parse_scip_symbol,
|
|
160
|
+
scip_to_code_graph,
|
|
161
|
+
)
|
|
162
|
+
from nexor_memory.semantic import (
|
|
163
|
+
BaseSemanticMemory,
|
|
164
|
+
InMemorySemanticMemory,
|
|
165
|
+
QdrantSemanticMemory,
|
|
166
|
+
)
|
|
167
|
+
from nexor_memory.short_term import (
|
|
168
|
+
BaseShortTermMemory,
|
|
169
|
+
InMemoryShortTermMemory,
|
|
170
|
+
RedisShortTermMemory,
|
|
171
|
+
)
|
|
172
|
+
from nexor_memory.symbolic import (
|
|
173
|
+
SymbolicEdge,
|
|
174
|
+
SymbolicNode,
|
|
175
|
+
SymbolicTaskMemory,
|
|
176
|
+
TaskCanvas,
|
|
177
|
+
)
|
|
178
|
+
from nexor_memory.temporal import (
|
|
179
|
+
DateExtractor,
|
|
180
|
+
TemporalMetadata,
|
|
181
|
+
build_temporal_filter,
|
|
182
|
+
compute_temporal_boost,
|
|
183
|
+
filter_by_temporal_range,
|
|
184
|
+
)
|
|
185
|
+
from nexor_memory.warmup import WarmupSchedule
|
|
186
|
+
|
|
187
|
+
__all__ = [
|
|
188
|
+
# Sprint 5 — Forgetting
|
|
189
|
+
"DEFAULT_ARCHIVE_THRESHOLD",
|
|
190
|
+
"DEFAULT_OFFLOAD_THRESHOLD",
|
|
191
|
+
"DEFAULT_TIER",
|
|
192
|
+
"FORGETTABLE_COLLECTIONS",
|
|
193
|
+
"OFFLOAD_COLLECTION",
|
|
194
|
+
"PROTECTED_COLLECTIONS",
|
|
195
|
+
"SUPPORTED_EXTENSIONS",
|
|
196
|
+
"TIER_BY_COLLECTION",
|
|
197
|
+
# Sprint 5 — Benchmark
|
|
198
|
+
"ABComparison",
|
|
199
|
+
# Existing
|
|
200
|
+
"AutoProfileGenerator",
|
|
201
|
+
"BGEM3HybridProvider",
|
|
202
|
+
"BaseEmbeddingProvider",
|
|
203
|
+
"BaseEpisodicMemory",
|
|
204
|
+
"BaseSemanticMemory",
|
|
205
|
+
"BaseShortTermMemory",
|
|
206
|
+
"BenchmarkCategory",
|
|
207
|
+
"BenchmarkQuestion",
|
|
208
|
+
"BenchmarkRun",
|
|
209
|
+
"CategoryExtractor",
|
|
210
|
+
"CategoryResult",
|
|
211
|
+
"CodeChunk",
|
|
212
|
+
"CodeEdge",
|
|
213
|
+
"CodeGraph",
|
|
214
|
+
"CodeGraphBuilder",
|
|
215
|
+
"CodeGraphStore",
|
|
216
|
+
"CodeGraphSync",
|
|
217
|
+
"CodeNode",
|
|
218
|
+
"Community",
|
|
219
|
+
"ContradictionCheck",
|
|
220
|
+
"ContradictionResolver",
|
|
221
|
+
"ContradictionResult",
|
|
222
|
+
"CrossEncoderReranker",
|
|
223
|
+
"DateExtractor",
|
|
224
|
+
"EntityCatalog",
|
|
225
|
+
"EntityResolver",
|
|
226
|
+
"FakeEmbeddingProvider",
|
|
227
|
+
"FileGraphCache",
|
|
228
|
+
"ForgettingResult",
|
|
229
|
+
"HybridEmbedding",
|
|
230
|
+
"InMemoryEpisodicMemory",
|
|
231
|
+
"InMemorySemanticMemory",
|
|
232
|
+
"InMemoryShortTermMemory",
|
|
233
|
+
"LayeredMemory",
|
|
234
|
+
"LogOffloader",
|
|
235
|
+
"MemoryBenchmarkRunner",
|
|
236
|
+
"MemoryCategory",
|
|
237
|
+
"MemoryRecord",
|
|
238
|
+
"MemoryTier",
|
|
239
|
+
"Observation",
|
|
240
|
+
"ObservationCompressor",
|
|
241
|
+
"ObsidianVaultWriter",
|
|
242
|
+
"OffloadResult",
|
|
243
|
+
"OllamaEmbeddingProvider",
|
|
244
|
+
"PostgresEpisodicMemory",
|
|
245
|
+
"ProvenanceRef",
|
|
246
|
+
"PythonAstExtractor",
|
|
247
|
+
"QdrantSemanticMemory",
|
|
248
|
+
"QuestionResult",
|
|
249
|
+
"RawToolEvent",
|
|
250
|
+
"RedisShortTermMemory",
|
|
251
|
+
"RelevanceScore",
|
|
252
|
+
"RerankResult",
|
|
253
|
+
"ResolutionStrategy",
|
|
254
|
+
"ResolvedEntity",
|
|
255
|
+
"ScipDocument",
|
|
256
|
+
"ScipOccurrence",
|
|
257
|
+
"SemanticForgettingEngine",
|
|
258
|
+
"SourceSpec",
|
|
259
|
+
"SymbolicEdge",
|
|
260
|
+
"SymbolicNode",
|
|
261
|
+
"SymbolicTaskMemory",
|
|
262
|
+
"SyncResult",
|
|
263
|
+
"TaskCanvas",
|
|
264
|
+
"TemporalMetadata",
|
|
265
|
+
"TreeSitterExtractor",
|
|
266
|
+
"UserProfile",
|
|
267
|
+
"VaultNote",
|
|
268
|
+
"WarmupSchedule",
|
|
269
|
+
"aggregate_results",
|
|
270
|
+
"build_code_graph",
|
|
271
|
+
"build_for_spec",
|
|
272
|
+
"build_temporal_filter",
|
|
273
|
+
"chunk_code",
|
|
274
|
+
"chunk_diff",
|
|
275
|
+
"cleanup_old_events",
|
|
276
|
+
"code_graph_to_notes",
|
|
277
|
+
"communities",
|
|
278
|
+
"compare_runs",
|
|
279
|
+
"compute_access_score",
|
|
280
|
+
"compute_importance_score",
|
|
281
|
+
"compute_recency_score",
|
|
282
|
+
"compute_temporal_boost",
|
|
283
|
+
"detect_communities",
|
|
284
|
+
"detect_language",
|
|
285
|
+
"evaluate_question",
|
|
286
|
+
"export_profile_markdown",
|
|
287
|
+
"file_sha256",
|
|
288
|
+
"filter_by_temporal_range",
|
|
289
|
+
"format_ab_comparison",
|
|
290
|
+
"format_benchmark_run",
|
|
291
|
+
"format_forgetting_result",
|
|
292
|
+
"fuzzy_similarity",
|
|
293
|
+
"generate_daily_summary",
|
|
294
|
+
"generate_weekly_summary",
|
|
295
|
+
"levenshtein_distance",
|
|
296
|
+
"load_default_test_set",
|
|
297
|
+
"load_scip_index",
|
|
298
|
+
"load_sources",
|
|
299
|
+
"memories_to_notes",
|
|
300
|
+
"parse_scip_symbol",
|
|
301
|
+
"rank_nodes",
|
|
302
|
+
"ranked_symbols",
|
|
303
|
+
"repo_map",
|
|
304
|
+
"rerank_with_cross_encoder",
|
|
305
|
+
"result_from_tool_result",
|
|
306
|
+
"scip_to_code_graph",
|
|
307
|
+
"score_memory",
|
|
308
|
+
"should_compress",
|
|
309
|
+
"slugify",
|
|
310
|
+
]
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# Vendored SCIP schema
|
|
2
|
+
|
|
3
|
+
`scip.proto` is vendored from [sourcegraph/scip](https://github.com/sourcegraph/scip)
|
|
4
|
+
(SCIP Code Intelligence Protocol), licensed **Apache-2.0**.
|
|
5
|
+
|
|
6
|
+
`scip_pb2.py` is generated from it via `grpc_tools.protoc` and committed so that
|
|
7
|
+
runtime only needs `protobuf` (the `scip` optional extra), not a protoc toolchain.
|
|
8
|
+
|
|
9
|
+
To regenerate after updating `scip.proto`:
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
python -m grpc_tools.protoc -I. --python_out=. scip.proto
|
|
13
|
+
```
|
|
File without changes
|