vecscope 0.1.0__tar.gz → 0.1.1__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.
- vecscope-0.1.1/.gitattributes +3 -0
- {vecscope-0.1.0 → vecscope-0.1.1}/CHANGELOG.md +11 -0
- {vecscope-0.1.0 → vecscope-0.1.1}/CONTRIBUTING.md +26 -0
- {vecscope-0.1.0 → vecscope-0.1.1}/PKG-INFO +3 -2
- {vecscope-0.1.0 → vecscope-0.1.1}/pyproject.toml +2 -1
- {vecscope-0.1.0 → vecscope-0.1.1}/src/vecscope/__init__.py +1 -1
- {vecscope-0.1.0 → vecscope-0.1.1}/src/vecscope/mcp_server.py +5 -2
- {vecscope-0.1.0 → vecscope-0.1.1}/tests/test_audit.py +11 -0
- {vecscope-0.1.0 → vecscope-0.1.1}/.agents/skills/vecscope/SKILL.md +0 -0
- {vecscope-0.1.0 → vecscope-0.1.1}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
- {vecscope-0.1.0 → vecscope-0.1.1}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {vecscope-0.1.0 → vecscope-0.1.1}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
- {vecscope-0.1.0 → vecscope-0.1.1}/.github/pull_request_template.md +0 -0
- {vecscope-0.1.0 → vecscope-0.1.1}/.github/workflows/ci.yml +0 -0
- {vecscope-0.1.0 → vecscope-0.1.1}/.github/workflows/release.yml +0 -0
- {vecscope-0.1.0 → vecscope-0.1.1}/.gitignore +0 -0
- {vecscope-0.1.0 → vecscope-0.1.1}/AGENTS.md +0 -0
- {vecscope-0.1.0 → vecscope-0.1.1}/LICENSE +0 -0
- {vecscope-0.1.0 → vecscope-0.1.1}/README.md +0 -0
- {vecscope-0.1.0 → vecscope-0.1.1}/SECURITY.md +0 -0
- {vecscope-0.1.0 → vecscope-0.1.1}/docs/readme/README_ko.md +0 -0
- {vecscope-0.1.0 → vecscope-0.1.1}/examples/make_examples.py +0 -0
- {vecscope-0.1.0 → vecscope-0.1.1}/examples/real_models.py +0 -0
- {vecscope-0.1.0 → vecscope-0.1.1}/src/vecscope/_knn.py +0 -0
- {vecscope-0.1.0 → vecscope-0.1.1}/src/vecscope/cli.py +0 -0
- {vecscope-0.1.0 → vecscope-0.1.1}/src/vecscope/diagnostics/__init__.py +0 -0
- {vecscope-0.1.0 → vecscope-0.1.1}/src/vecscope/diagnostics/anisotropy.py +0 -0
- {vecscope-0.1.0 → vecscope-0.1.1}/src/vecscope/diagnostics/ann_recall.py +0 -0
- {vecscope-0.1.0 → vecscope-0.1.1}/src/vecscope/diagnostics/clusters.py +0 -0
- {vecscope-0.1.0 → vecscope-0.1.1}/src/vecscope/diagnostics/collapse.py +0 -0
- {vecscope-0.1.0 → vecscope-0.1.1}/src/vecscope/diagnostics/geometry.py +0 -0
- {vecscope-0.1.0 → vecscope-0.1.1}/src/vecscope/diagnostics/hubness.py +0 -0
- {vecscope-0.1.0 → vecscope-0.1.1}/src/vecscope/diagnostics/queries.py +0 -0
- {vecscope-0.1.0 → vecscope-0.1.1}/src/vecscope/evidence.py +0 -0
- {vecscope-0.1.0 → vecscope-0.1.1}/src/vecscope/io.py +0 -0
- {vecscope-0.1.0 → vecscope-0.1.1}/src/vecscope/sweep.py +0 -0
|
@@ -6,6 +6,17 @@ All notable changes to this project are documented here. The format follows
|
|
|
6
6
|
|
|
7
7
|
## [Unreleased]
|
|
8
8
|
|
|
9
|
+
## [0.1.1] - 2026-10-26
|
|
10
|
+
|
|
11
|
+
### Fixed
|
|
12
|
+
|
|
13
|
+
- MCP server failed to import with `mcp` 2.x, which renamed `FastMCP` to `MCPServer`; both
|
|
14
|
+
1.x and 2.x are now supported and the server is smoke-tested in CI
|
|
15
|
+
|
|
16
|
+
### Added
|
|
17
|
+
|
|
18
|
+
- Python 3.14 classifier and a `.gitattributes` that normalizes line endings
|
|
19
|
+
|
|
9
20
|
## [0.1.0] - 2026-10-25
|
|
10
21
|
|
|
11
22
|
### Added
|
|
@@ -42,3 +42,29 @@ audit time, or when it makes two runs on the same input produce different output
|
|
|
42
42
|
|
|
43
43
|
Keep PRs focused on one change. Fill in the template, especially the evidence section.
|
|
44
44
|
Dependencies stay at NumPy for the core; optional extras are fine for loaders and the MCP server.
|
|
45
|
+
|
|
46
|
+
## Releasing
|
|
47
|
+
|
|
48
|
+
Releases are published to PyPI by `.github/workflows/release.yml` through PyPI trusted
|
|
49
|
+
publishing; no token is stored anywhere. PyPI never lets a version number be reused, so bump
|
|
50
|
+
the version before tagging.
|
|
51
|
+
|
|
52
|
+
1. Bump `__version__` in `src/vecscope/__init__.py` (the only place the version lives).
|
|
53
|
+
2. Move the entries under `Unreleased` in `CHANGELOG.md` into a new `## [x.y.z] - YYYY-MM-DD`
|
|
54
|
+
section.
|
|
55
|
+
3. Commit and push to `main`, and wait for CI to pass.
|
|
56
|
+
4. Tag and push the tag. The workflow builds, publishes to PyPI, and finishes in about a minute:
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
git tag -a vx.y.z -m "vx.y.z"
|
|
60
|
+
git push origin vx.y.z
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
5. Create the GitHub release from the changelog section, attaching the built files:
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
python -m build
|
|
67
|
+
gh release create vx.y.z dist/* --title "vx.y.z" --notes-file <notes.md>
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
6. Check `pip install vecscope==x.y.z` in a clean environment.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: vecscope
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.1
|
|
4
4
|
Summary: Embedding space evidence for agents: hubness, anisotropy, collapse, ANN recall.
|
|
5
5
|
Project-URL: Homepage, https://github.com/076923/vecscope
|
|
6
6
|
Project-URL: Repository, https://github.com/076923/vecscope
|
|
@@ -17,6 +17,7 @@ Classifier: Programming Language :: Python :: 3.10
|
|
|
17
17
|
Classifier: Programming Language :: Python :: 3.11
|
|
18
18
|
Classifier: Programming Language :: Python :: 3.12
|
|
19
19
|
Classifier: Programming Language :: Python :: 3.13
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
20
21
|
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
21
22
|
Requires-Python: >=3.10
|
|
22
23
|
Requires-Dist: numpy>=1.24
|
|
@@ -26,7 +27,7 @@ Requires-Dist: ruff>=0.5; extra == 'dev'
|
|
|
26
27
|
Provides-Extra: index
|
|
27
28
|
Requires-Dist: faiss-cpu>=1.8; extra == 'index'
|
|
28
29
|
Provides-Extra: mcp
|
|
29
|
-
Requires-Dist: mcp>=1.
|
|
30
|
+
Requires-Dist: mcp>=1.2; extra == 'mcp'
|
|
30
31
|
Description-Content-Type: text/markdown
|
|
31
32
|
|
|
32
33
|
<div align="center">
|
|
@@ -20,6 +20,7 @@ classifiers = [
|
|
|
20
20
|
"Programming Language :: Python :: 3.11",
|
|
21
21
|
"Programming Language :: Python :: 3.12",
|
|
22
22
|
"Programming Language :: Python :: 3.13",
|
|
23
|
+
"Programming Language :: Python :: 3.14",
|
|
23
24
|
"Topic :: Scientific/Engineering :: Artificial Intelligence",
|
|
24
25
|
]
|
|
25
26
|
dependencies = ["numpy>=1.24"]
|
|
@@ -30,7 +31,7 @@ Repository = "https://github.com/076923/vecscope"
|
|
|
30
31
|
Issues = "https://github.com/076923/vecscope/issues"
|
|
31
32
|
|
|
32
33
|
[project.optional-dependencies]
|
|
33
|
-
mcp = ["mcp>=1.
|
|
34
|
+
mcp = ["mcp>=1.2"]
|
|
34
35
|
index = ["faiss-cpu>=1.8"]
|
|
35
36
|
dev = ["pytest>=8", "ruff>=0.5"]
|
|
36
37
|
|
|
@@ -2,12 +2,15 @@
|
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
try: # mcp >= 2.0 renamed FastMCP to MCPServer
|
|
6
|
+
from mcp.server.mcpserver import MCPServer as _Server
|
|
7
|
+
except ImportError: # mcp 1.x
|
|
8
|
+
from mcp.server.fastmcp import FastMCP as _Server
|
|
6
9
|
|
|
7
10
|
from vecscope.evidence import audit
|
|
8
11
|
from vecscope.io import load_vectors
|
|
9
12
|
|
|
10
|
-
mcp =
|
|
13
|
+
mcp = _Server("vecscope")
|
|
11
14
|
|
|
12
15
|
|
|
13
16
|
@mcp.tool()
|
|
@@ -240,3 +240,14 @@ def test_sweep_device_selection():
|
|
|
240
240
|
rng = np.random.default_rng(0)
|
|
241
241
|
res = sweep(rng.standard_normal((1000, 16)).astype(np.float32), k=5, n_queries=50, device="cpu")
|
|
242
242
|
assert res.device == "cpu" and all(p.device == "cpu" for p in res.points)
|
|
243
|
+
|
|
244
|
+
|
|
245
|
+
def test_mcp_server_exposes_tools():
|
|
246
|
+
pytest = __import__("pytest")
|
|
247
|
+
pytest.importorskip("mcp")
|
|
248
|
+
import asyncio
|
|
249
|
+
|
|
250
|
+
from vecscope.mcp_server import mcp as server
|
|
251
|
+
|
|
252
|
+
tools = asyncio.run(server.list_tools())
|
|
253
|
+
assert {t.name for t in tools} >= {"audit_embeddings", "sweep_index"}
|
|
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
|