lean-memory 0.1.0__tar.gz → 0.1.2__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.
- lean_memory-0.1.2/.github/workflows/publish-mcp.yml +52 -0
- {lean_memory-0.1.0 → lean_memory-0.1.2}/CHANGELOG.md +13 -0
- {lean_memory-0.1.0 → lean_memory-0.1.2}/PKG-INFO +4 -1
- {lean_memory-0.1.0 → lean_memory-0.1.2}/README.md +3 -0
- {lean_memory-0.1.0 → lean_memory-0.1.2}/pyproject.toml +1 -1
- lean_memory-0.1.2/server.json +49 -0
- {lean_memory-0.1.0 → lean_memory-0.1.2}/src/lean_memory/__init__.py +1 -1
- {lean_memory-0.1.0 → lean_memory-0.1.2}/.github/workflows/release.yml +0 -0
- {lean_memory-0.1.0 → lean_memory-0.1.2}/.github/workflows/test.yml +0 -0
- {lean_memory-0.1.0 → lean_memory-0.1.2}/.gitignore +0 -0
- {lean_memory-0.1.0 → lean_memory-0.1.2}/ARCHITECTURE.md +0 -0
- {lean_memory-0.1.0 → lean_memory-0.1.2}/CLAUDE.md +0 -0
- {lean_memory-0.1.0 → lean_memory-0.1.2}/PERFORMANCE.md +0 -0
- {lean_memory-0.1.0 → lean_memory-0.1.2}/bench/bet2_ablation.py +0 -0
- {lean_memory-0.1.0 → lean_memory-0.1.2}/bench/bet2_goldset.py +0 -0
- {lean_memory-0.1.0 → lean_memory-0.1.2}/bench/phase2_escalation_probe.py +0 -0
- {lean_memory-0.1.0 → lean_memory-0.1.2}/bench/phase2_eval.py +0 -0
- {lean_memory-0.1.0 → lean_memory-0.1.2}/bench/phase2_ingest.py +0 -0
- {lean_memory-0.1.0 → lean_memory-0.1.2}/bench/phase2_judge.py +0 -0
- {lean_memory-0.1.0 → lean_memory-0.1.2}/bench/phase2_reader.py +0 -0
- {lean_memory-0.1.0 → lean_memory-0.1.2}/bench/results/calibration/2026-07-bet2-revalidation.txt +0 -0
- {lean_memory-0.1.0 → lean_memory-0.1.2}/bench/results/calibration/2026-07-escalation-baseline.json +0 -0
- {lean_memory-0.1.0 → lean_memory-0.1.2}/bench/results/calibration/2026-07-escalation-postdrop-p1.json +0 -0
- {lean_memory-0.1.0 → lean_memory-0.1.2}/bench/results/calibration/2026-07-escalation-postdrop-p2.json +0 -0
- {lean_memory-0.1.0 → lean_memory-0.1.2}/bench/results/calibration/2026-07-escalation-postdrop-p3.json +0 -0
- {lean_memory-0.1.0 → lean_memory-0.1.2}/bench/results/calibration/2026-07-escalation-postdrop-p4.json +0 -0
- {lean_memory-0.1.0 → lean_memory-0.1.2}/bench/results/calibration/2026-07-escalation-postfix.json +0 -0
- {lean_memory-0.1.0 → lean_memory-0.1.2}/bench/results/calibration/2026-07-granularity-sweep.json +0 -0
- {lean_memory-0.1.0 → lean_memory-0.1.2}/bench/results/calibration/README.md +0 -0
- {lean_memory-0.1.0 → lean_memory-0.1.2}/bench/results/phase2/.gitkeep +0 -0
- {lean_memory-0.1.0 → lean_memory-0.1.2}/bench/results/phase2/dataset_pins.json +0 -0
- {lean_memory-0.1.0 → lean_memory-0.1.2}/bench/smoke_quality.py +0 -0
- {lean_memory-0.1.0 → lean_memory-0.1.2}/docs/assets/quickstart.gif +0 -0
- {lean_memory-0.1.0 → lean_memory-0.1.2}/docs/assets/quickstart.tape +0 -0
- {lean_memory-0.1.0 → lean_memory-0.1.2}/docs/benchmarks.md +0 -0
- {lean_memory-0.1.0 → lean_memory-0.1.2}/docs/competitive-landscape.md +0 -0
- {lean_memory-0.1.0 → lean_memory-0.1.2}/docs/launch-fixlist.md +0 -0
- {lean_memory-0.1.0 → lean_memory-0.1.2}/docs/phase2-eval-plan.md +0 -0
- {lean_memory-0.1.0 → lean_memory-0.1.2}/docs/phase2-learnings.md +0 -0
- {lean_memory-0.1.0 → lean_memory-0.1.2}/docs/superpowers/phase2-HANDOFF.md +0 -0
- {lean_memory-0.1.0 → lean_memory-0.1.2}/docs/superpowers/plans/2026-06-21-demo-agent.md +0 -0
- {lean_memory-0.1.0 → lean_memory-0.1.2}/docs/superpowers/plans/2026-06-21-mcp-server.md +0 -0
- {lean_memory-0.1.0 → lean_memory-0.1.2}/docs/superpowers/plans/2026-07-02-phase2-eval-harness.md +0 -0
- {lean_memory-0.1.0 → lean_memory-0.1.2}/docs/superpowers/plans/2026-07-08-launch-quality-gate.md +0 -0
- {lean_memory-0.1.0 → lean_memory-0.1.2}/docs/superpowers/specs/2026-07-02-phase2-eval-harness-design.md +0 -0
- {lean_memory-0.1.0 → lean_memory-0.1.2}/docs/superpowers/specs/2026-07-08-strategic-direction-design.md +0 -0
- {lean_memory-0.1.0 → lean_memory-0.1.2}/docs/superpowers/workpackets.md +0 -0
- {lean_memory-0.1.0 → lean_memory-0.1.2}/examples/chat.py +0 -0
- {lean_memory-0.1.0 → lean_memory-0.1.2}/examples/mcp_config.json +0 -0
- {lean_memory-0.1.0 → lean_memory-0.1.2}/src/lean_memory/embed/__init__.py +0 -0
- {lean_memory-0.1.0 → lean_memory-0.1.2}/src/lean_memory/embed/base.py +0 -0
- {lean_memory-0.1.0 → lean_memory-0.1.2}/src/lean_memory/embed/fake.py +0 -0
- {lean_memory-0.1.0 → lean_memory-0.1.2}/src/lean_memory/embed/sentence_transformer.py +0 -0
- {lean_memory-0.1.0 → lean_memory-0.1.2}/src/lean_memory/extract/__init__.py +0 -0
- {lean_memory-0.1.0 → lean_memory-0.1.2}/src/lean_memory/extract/contradiction.py +0 -0
- {lean_memory-0.1.0 → lean_memory-0.1.2}/src/lean_memory/extract/gliner_extractor.py +0 -0
- {lean_memory-0.1.0 → lean_memory-0.1.2}/src/lean_memory/extract/llm_typer.py +0 -0
- {lean_memory-0.1.0 → lean_memory-0.1.2}/src/lean_memory/extract/router.py +0 -0
- {lean_memory-0.1.0 → lean_memory-0.1.2}/src/lean_memory/extract/rules.py +0 -0
- {lean_memory-0.1.0 → lean_memory-0.1.2}/src/lean_memory/extract/salience.py +0 -0
- {lean_memory-0.1.0 → lean_memory-0.1.2}/src/lean_memory/extract/taxonomy.py +0 -0
- {lean_memory-0.1.0 → lean_memory-0.1.2}/src/lean_memory/mcp_server.py +0 -0
- {lean_memory-0.1.0 → lean_memory-0.1.2}/src/lean_memory/memory.py +0 -0
- {lean_memory-0.1.0 → lean_memory-0.1.2}/src/lean_memory/retrieve/__init__.py +0 -0
- {lean_memory-0.1.0 → lean_memory-0.1.2}/src/lean_memory/retrieve/rerank.py +0 -0
- {lean_memory-0.1.0 → lean_memory-0.1.2}/src/lean_memory/retrieve/retriever.py +0 -0
- {lean_memory-0.1.0 → lean_memory-0.1.2}/src/lean_memory/store/__init__.py +0 -0
- {lean_memory-0.1.0 → lean_memory-0.1.2}/src/lean_memory/store/base.py +0 -0
- {lean_memory-0.1.0 → lean_memory-0.1.2}/src/lean_memory/store/schema.py +0 -0
- {lean_memory-0.1.0 → lean_memory-0.1.2}/src/lean_memory/store/sqlite_store.py +0 -0
- {lean_memory-0.1.0 → lean_memory-0.1.2}/src/lean_memory/types.py +0 -0
- {lean_memory-0.1.0 → lean_memory-0.1.2}/tests/fixtures/phase2/lme_oracle_mini.json +0 -0
- {lean_memory-0.1.0 → lean_memory-0.1.2}/tests/fixtures/phase2/lme_s_mini.json +0 -0
- {lean_memory-0.1.0 → lean_memory-0.1.2}/tests/fixtures/phase2/locomo_mini.json +0 -0
- {lean_memory-0.1.0 → lean_memory-0.1.2}/tests/test_asof_sparse.py +0 -0
- {lean_memory-0.1.0 → lean_memory-0.1.2}/tests/test_chat.py +0 -0
- {lean_memory-0.1.0 → lean_memory-0.1.2}/tests/test_contradiction_extends.py +0 -0
- {lean_memory-0.1.0 → lean_memory-0.1.2}/tests/test_embedder_default.py +0 -0
- {lean_memory-0.1.0 → lean_memory-0.1.2}/tests/test_escalation_probe.py +0 -0
- {lean_memory-0.1.0 → lean_memory-0.1.2}/tests/test_known_entities_cap.py +0 -0
- {lean_memory-0.1.0 → lean_memory-0.1.2}/tests/test_mcp_server.py +0 -0
- {lean_memory-0.1.0 → lean_memory-0.1.2}/tests/test_phase1_extraction.py +0 -0
- {lean_memory-0.1.0 → lean_memory-0.1.2}/tests/test_phase2_eval.py +0 -0
- {lean_memory-0.1.0 → lean_memory-0.1.2}/tests/test_phase2_ingest.py +0 -0
- {lean_memory-0.1.0 → lean_memory-0.1.2}/tests/test_phase2_judge.py +0 -0
- {lean_memory-0.1.0 → lean_memory-0.1.2}/tests/test_phase2_reader.py +0 -0
- {lean_memory-0.1.0 → lean_memory-0.1.2}/tests/test_router.py +0 -0
- {lean_memory-0.1.0 → lean_memory-0.1.2}/tests/test_search_now.py +0 -0
- {lean_memory-0.1.0 → lean_memory-0.1.2}/tests/test_spine.py +0 -0
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
name: publish-mcp
|
|
2
|
+
|
|
3
|
+
# Publishes the server.json metadata to the official MCP Registry
|
|
4
|
+
# (registry.modelcontextprotocol.io) using GitHub OIDC — no stored secret.
|
|
5
|
+
#
|
|
6
|
+
# This workflow ONLY publishes registry metadata. The PyPI artifact itself is
|
|
7
|
+
# published separately by release.yml (Trusted Publishing on the same v* tag).
|
|
8
|
+
# The registry validates PyPI package ownership by reading the `mcp-name:`
|
|
9
|
+
# marker from the package's PyPI description (README), so the PyPI release for
|
|
10
|
+
# this version MUST already be live — and its README MUST contain
|
|
11
|
+
# `mcp-name: io.github.wuesteon/lean-memory` — before this runs. Prefer
|
|
12
|
+
# workflow_dispatch after confirming the release, or let the tag trigger run
|
|
13
|
+
# once PyPI Trusted Publishing has completed.
|
|
14
|
+
|
|
15
|
+
on:
|
|
16
|
+
push:
|
|
17
|
+
tags: ["v*"]
|
|
18
|
+
workflow_dispatch:
|
|
19
|
+
|
|
20
|
+
jobs:
|
|
21
|
+
publish:
|
|
22
|
+
name: Publish server.json to MCP Registry
|
|
23
|
+
runs-on: ubuntu-latest
|
|
24
|
+
permissions:
|
|
25
|
+
id-token: write # Required for GitHub OIDC authentication
|
|
26
|
+
contents: read
|
|
27
|
+
steps:
|
|
28
|
+
- name: Checkout code
|
|
29
|
+
uses: actions/checkout@v4
|
|
30
|
+
|
|
31
|
+
- name: Install mcp-publisher
|
|
32
|
+
run: |
|
|
33
|
+
curl -L "https://github.com/modelcontextprotocol/registry/releases/latest/download/mcp-publisher_$(uname -s | tr '[:upper:]' '[:lower:]')_$(uname -m | sed 's/x86_64/amd64/;s/aarch64/arm64/').tar.gz" | tar xz mcp-publisher
|
|
34
|
+
|
|
35
|
+
# On a tag push, sync server.json's versions to the tag (v0.1.1 -> 0.1.1).
|
|
36
|
+
# No-op for workflow_dispatch (server.json is published as committed).
|
|
37
|
+
- name: Sync server.json version to tag
|
|
38
|
+
if: startsWith(github.ref, 'refs/tags/v')
|
|
39
|
+
run: |
|
|
40
|
+
VERSION="${GITHUB_REF#refs/tags/v}"
|
|
41
|
+
jq --arg v "$VERSION" '.version = $v | .packages[0].version = $v' server.json > server.tmp
|
|
42
|
+
mv server.tmp server.json
|
|
43
|
+
cat server.json
|
|
44
|
+
|
|
45
|
+
- name: Validate server.json
|
|
46
|
+
run: ./mcp-publisher validate server.json
|
|
47
|
+
|
|
48
|
+
- name: Authenticate to MCP Registry (GitHub OIDC)
|
|
49
|
+
run: ./mcp-publisher login github-oidc
|
|
50
|
+
|
|
51
|
+
- name: Publish server to MCP Registry
|
|
52
|
+
run: ./mcp-publisher publish
|
|
@@ -4,6 +4,19 @@ All notable changes to lean-memory are documented here. The format is based on
|
|
|
4
4
|
[Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project
|
|
5
5
|
adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
6
6
|
|
|
7
|
+
## [0.1.2] - 2026-07-12
|
|
8
|
+
|
|
9
|
+
### Fixed
|
|
10
|
+
- MCP Registry namespace case: `io.github.Wuesteon/lean-memory` (the registry's
|
|
11
|
+
PyPI ownership marker is compared case-exactly against the published README).
|
|
12
|
+
|
|
13
|
+
## [0.1.1] - 2026-07-12
|
|
14
|
+
|
|
15
|
+
### Added
|
|
16
|
+
- MCP Registry metadata: `server.json` (io.github.wuesteon/lean-memory) and an
|
|
17
|
+
OIDC publish workflow; `mcp-name` ownership marker in the README (required by
|
|
18
|
+
the registry's PyPI validation — the reason for this patch release).
|
|
19
|
+
|
|
7
20
|
## [0.1.0] - 2026-07-12
|
|
8
21
|
|
|
9
22
|
First public release. lean-memory is an embedded, local-first agent-memory
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: lean-memory
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.2
|
|
4
4
|
Summary: Embedded, local-first agent memory with hybrid retrieval and ADD-only supersession.
|
|
5
5
|
Project-URL: Homepage, https://github.com/Wuesteon/lean-memory
|
|
6
6
|
Project-URL: Repository, https://github.com/Wuesteon/lean-memory
|
|
@@ -226,3 +226,6 @@ bench/ Retrieval quality + BET-2 ablation harnesses
|
|
|
226
226
|
## License
|
|
227
227
|
|
|
228
228
|
Apache-2.0
|
|
229
|
+
|
|
230
|
+
<!-- mcp-name: io.github.Wuesteon/lean-memory -->
|
|
231
|
+
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
|
|
3
|
+
"name": "io.github.Wuesteon/lean-memory",
|
|
4
|
+
"description": "Embedded, local-first agent memory: one SQLite file per namespace, no server, no cloud.",
|
|
5
|
+
"title": "lean-memory",
|
|
6
|
+
"repository": {
|
|
7
|
+
"url": "https://github.com/Wuesteon/lean-memory",
|
|
8
|
+
"source": "github"
|
|
9
|
+
},
|
|
10
|
+
"version": "0.1.2",
|
|
11
|
+
"packages": [
|
|
12
|
+
{
|
|
13
|
+
"registryType": "pypi",
|
|
14
|
+
"registryBaseUrl": "https://pypi.org",
|
|
15
|
+
"identifier": "lean-memory",
|
|
16
|
+
"version": "0.1.2",
|
|
17
|
+
"runtimeHint": "uvx",
|
|
18
|
+
"transport": {
|
|
19
|
+
"type": "stdio"
|
|
20
|
+
},
|
|
21
|
+
"runtimeArguments": [
|
|
22
|
+
{
|
|
23
|
+
"type": "named",
|
|
24
|
+
"name": "--from",
|
|
25
|
+
"value": "lean-memory",
|
|
26
|
+
"isRequired": true,
|
|
27
|
+
"description": "Install the lean-memory package, then run its lean-memory-mcp console-script entry point (the package name and script name differ, so uvx needs --from)."
|
|
28
|
+
}
|
|
29
|
+
],
|
|
30
|
+
"packageArguments": [
|
|
31
|
+
{
|
|
32
|
+
"type": "positional",
|
|
33
|
+
"value": "lean-memory-mcp",
|
|
34
|
+
"isRequired": true,
|
|
35
|
+
"description": "Console script entry point that starts the stdio MCP server."
|
|
36
|
+
}
|
|
37
|
+
],
|
|
38
|
+
"environmentVariables": [
|
|
39
|
+
{
|
|
40
|
+
"name": "LM_DATA_ROOT",
|
|
41
|
+
"description": "Directory for per-namespace SQLite memory files. Defaults to ~/.lean_memory when unset.",
|
|
42
|
+
"isRequired": false,
|
|
43
|
+
"isSecret": false,
|
|
44
|
+
"default": "~/.lean_memory"
|
|
45
|
+
}
|
|
46
|
+
]
|
|
47
|
+
}
|
|
48
|
+
]
|
|
49
|
+
}
|
|
@@ -11,4 +11,4 @@ from .memory import Memory
|
|
|
11
11
|
from .types import Entity, Episode, Fact, RetrievedFact
|
|
12
12
|
|
|
13
13
|
__all__ = ["Memory", "Episode", "Entity", "Fact", "RetrievedFact"]
|
|
14
|
-
__version__ = "0.1.
|
|
14
|
+
__version__ = "0.1.2" # keep in sync with pyproject.toml [project].version
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lean_memory-0.1.0 → lean_memory-0.1.2}/bench/results/calibration/2026-07-bet2-revalidation.txt
RENAMED
|
File without changes
|
{lean_memory-0.1.0 → lean_memory-0.1.2}/bench/results/calibration/2026-07-escalation-baseline.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lean_memory-0.1.0 → lean_memory-0.1.2}/bench/results/calibration/2026-07-escalation-postfix.json
RENAMED
|
File without changes
|
{lean_memory-0.1.0 → lean_memory-0.1.2}/bench/results/calibration/2026-07-granularity-sweep.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lean_memory-0.1.0 → lean_memory-0.1.2}/docs/superpowers/plans/2026-07-02-phase2-eval-harness.md
RENAMED
|
File without changes
|
{lean_memory-0.1.0 → lean_memory-0.1.2}/docs/superpowers/plans/2026-07-08-launch-quality-gate.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|