vaultzero 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.
@@ -67,3 +67,10 @@ dmypy.json
67
67
 
68
68
  # JetBrains IDE
69
69
  .idea/
70
+
71
+ # Internal note-taking. Draft listing text, submission checklists and "do not say this"
72
+ # reminders are working material, not something a visitor to a public repo should read:
73
+ # it reads as a company talking to itself about how to present itself. The published
74
+ # wording lives in README.md and server.json, which are what directories actually read.
75
+ .listing-copy.md
76
+ listing-copy.md
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: vaultzero
3
- Version: 0.1.0
3
+ Version: 0.1.2
4
4
  Summary: MCP server for a privacy-first agent memory vault: memories are encrypted on the client before they reach the server.
5
5
  Project-URL: Homepage, https://vaultzero.cc
6
6
  Project-URL: Documentation, https://github.com/xo0ps/VaultZero-Client#readme
@@ -14,29 +14,30 @@ Keywords: agent-memory,ai-agents,encryption,end-to-end-encryption,llm,long-term-
14
14
  Classifier: Development Status :: 3 - Alpha
15
15
  Classifier: Intended Audience :: Developers
16
16
  Classifier: License :: OSI Approved :: MIT License
17
+ Classifier: Programming Language :: Python :: 3
18
+ Classifier: Programming Language :: Python :: 3.10
19
+ Classifier: Programming Language :: Python :: 3.11
20
+ Classifier: Programming Language :: Python :: 3.12
17
21
  Classifier: Programming Language :: Python :: 3.13
18
22
  Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
19
23
  Classifier: Topic :: Security :: Cryptography
20
- Requires-Python: <3.14,>=3.13
24
+ Requires-Python: >=3.10
25
+ Requires-Dist: cryptography>=43
26
+ Requires-Dist: httpx>=0.28
27
+ Requires-Dist: mcp<2,>=1.6
21
28
  Provides-Extra: client
22
- Requires-Dist: cryptography>=43; extra == 'client'
23
- Requires-Dist: httpx>=0.28; extra == 'client'
24
- Requires-Dist: mcp<2,>=1.6; extra == 'client'
25
29
  Provides-Extra: dev
26
30
  Requires-Dist: pytest-asyncio>=0.25; extra == 'dev'
27
31
  Requires-Dist: pytest>=8.3; extra == 'dev'
28
32
  Requires-Dist: ruff>=0.8; extra == 'dev'
29
33
  Provides-Extra: mcp
30
- Requires-Dist: cryptography>=43; extra == 'mcp'
31
- Requires-Dist: httpx>=0.28; extra == 'mcp'
32
- Requires-Dist: mcp<2,>=1.6; extra == 'mcp'
33
34
  Description-Content-Type: text/markdown
34
35
 
35
36
  # VaultZero Client
36
37
 
37
38
  [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)
38
39
  [![MCP](https://img.shields.io/badge/MCP-server-blueviolet)](https://modelcontextprotocol.io)
39
- [![Python 3.13](https://img.shields.io/badge/python-3.13-blue.svg)](https://www.python.org)
40
+ [![Python 3.10+](https://img.shields.io/badge/python-3.10%2B-blue.svg)](https://www.python.org)
40
41
 
41
42
  **An MCP server that gives an AI agent long-term memory it cannot read.** VaultZero is a
42
43
  privacy-first memory vault: this package embeds and encrypts every memory on your machine
@@ -65,10 +66,10 @@ cannot become a command.
65
66
 
66
67
  ### Install
67
68
 
68
- Requires Python 3.13.
69
+ Requires Python 3.10 or newer.
69
70
 
70
71
  ```bash
71
- pip install "vaultzero[mcp]" # or: uv tool install "vaultzero[mcp]"
72
+ pip install vaultzero # or: uv tool install vaultzero
72
73
  ```
73
74
 
74
75
  ### Configure a client
@@ -78,7 +79,7 @@ pip install "vaultzero[mcp]" # or: uv tool install "vaultzero[mcp]"
78
79
  "mcpServers": {
79
80
  "vaultzero": {
80
81
  "command": "uvx",
81
- "args": ["--from", "vaultzero[mcp]", "vaultzero-mcp"],
82
+ "args": ["vaultzero-mcp"],
82
83
  "env": {
83
84
  "VZ_BASE_URL": "https://api.vaultzero.cc",
84
85
  "VZ_CREDENTIAL": "<your 64-hex-character bearer credential>",
@@ -155,14 +156,15 @@ tests/unit/ golden vectors and unit tests for the client
155
156
 
156
157
  ## Installing the SDK
157
158
 
158
- Requires Python 3.13.
159
+ Requires Python 3.10 or newer.
159
160
 
160
161
  ```bash
161
- pip install "vaultzero[client]"
162
+ pip install vaultzero
162
163
  ```
163
164
 
164
- The `[client]` extra pulls `cryptography`, `httpx`, and `mcp`; it installs the
165
- `vaultzero-mcp` console script and makes `vaultzero.client.sdk.VaultZeroClient` importable.
165
+ The dependencies (`cryptography`, `httpx`, `mcp`) are installed with the package: this is an
166
+ MCP server first, so there is no extra to remember. It installs the `vaultzero-mcp` console
167
+ script and makes `vaultzero.client.sdk.VaultZeroClient` importable.
166
168
 
167
169
  ## SDK usage
168
170
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)
4
4
  [![MCP](https://img.shields.io/badge/MCP-server-blueviolet)](https://modelcontextprotocol.io)
5
- [![Python 3.13](https://img.shields.io/badge/python-3.13-blue.svg)](https://www.python.org)
5
+ [![Python 3.10+](https://img.shields.io/badge/python-3.10%2B-blue.svg)](https://www.python.org)
6
6
 
7
7
  **An MCP server that gives an AI agent long-term memory it cannot read.** VaultZero is a
8
8
  privacy-first memory vault: this package embeds and encrypts every memory on your machine
@@ -31,10 +31,10 @@ cannot become a command.
31
31
 
32
32
  ### Install
33
33
 
34
- Requires Python 3.13.
34
+ Requires Python 3.10 or newer.
35
35
 
36
36
  ```bash
37
- pip install "vaultzero[mcp]" # or: uv tool install "vaultzero[mcp]"
37
+ pip install vaultzero # or: uv tool install vaultzero
38
38
  ```
39
39
 
40
40
  ### Configure a client
@@ -44,7 +44,7 @@ pip install "vaultzero[mcp]" # or: uv tool install "vaultzero[mcp]"
44
44
  "mcpServers": {
45
45
  "vaultzero": {
46
46
  "command": "uvx",
47
- "args": ["--from", "vaultzero[mcp]", "vaultzero-mcp"],
47
+ "args": ["vaultzero-mcp"],
48
48
  "env": {
49
49
  "VZ_BASE_URL": "https://api.vaultzero.cc",
50
50
  "VZ_CREDENTIAL": "<your 64-hex-character bearer credential>",
@@ -121,14 +121,15 @@ tests/unit/ golden vectors and unit tests for the client
121
121
 
122
122
  ## Installing the SDK
123
123
 
124
- Requires Python 3.13.
124
+ Requires Python 3.10 or newer.
125
125
 
126
126
  ```bash
127
- pip install "vaultzero[client]"
127
+ pip install vaultzero
128
128
  ```
129
129
 
130
- The `[client]` extra pulls `cryptography`, `httpx`, and `mcp`; it installs the
131
- `vaultzero-mcp` console script and makes `vaultzero.client.sdk.VaultZeroClient` importable.
130
+ The dependencies (`cryptography`, `httpx`, `mcp`) are installed with the package: this is an
131
+ MCP server first, so there is no extra to remember. It installs the `vaultzero-mcp` console
132
+ script and makes `vaultzero.client.sdk.VaultZeroClient` importable.
132
133
 
133
134
  ## SDK usage
134
135
 
@@ -4,12 +4,12 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "vaultzero"
7
- version = "0.1.0"
7
+ version = "0.1.2"
8
8
  # This string is what MCP directories show next to the listing, so it names the thing a
9
9
  # prospective user is looking for (an MCP server) before the architecture behind it.
10
10
  description = "MCP server for a privacy-first agent memory vault: memories are encrypted on the client before they reach the server."
11
11
  readme = "README.md"
12
- requires-python = ">=3.13,<3.14"
12
+ requires-python = ">=3.10"
13
13
  license = { text = "MIT" }
14
14
  authors = [{ name = "VaultZero contributors" }]
15
15
  keywords = [
@@ -27,25 +27,38 @@ classifiers = [
27
27
  "Development Status :: 3 - Alpha",
28
28
  "Intended Audience :: Developers",
29
29
  "License :: OSI Approved :: MIT License",
30
+ "Programming Language :: Python :: 3",
31
+ "Programming Language :: Python :: 3.10",
32
+ "Programming Language :: Python :: 3.11",
33
+ "Programming Language :: Python :: 3.12",
30
34
  "Programming Language :: Python :: 3.13",
31
35
  "Topic :: Scientific/Engineering :: Artificial Intelligence",
32
36
  "Topic :: Security :: Cryptography",
33
37
  ]
34
- dependencies = []
35
38
 
36
- [project.optional-dependencies]
37
- # Trusted customer-side SDK and MCP host process.
38
- client = [
39
+ # This package IS an MCP server, so its runtime dependencies are hard dependencies. They were
40
+ # previously behind a `client` extra with an `mcp` extra that re-exported it, which broke the
41
+ # one thing directories do: render an install command from `server.json`. A manifest can name
42
+ # a package but cannot express `vaultzero[mcp]`, so `uvx vaultzero` resolved a package with no
43
+ # dependencies, the console script failed to import, and Glama reported "does not currently
44
+ # have a deployable release" while the package was in fact published and working.
45
+ #
46
+ # The cost is that `pip install vaultzero` (SDK-only use) also pulls cryptography and mcp.
47
+ # For a package whose entire headline is the MCP server, that is the right trade.
48
+ dependencies = [
39
49
  "cryptography>=43",
40
50
  "httpx>=0.28",
41
51
  "mcp>=1.6,<2",
42
52
  ]
43
- # For `pip install vaultzero[mcp]`: everything the `vaultzero-mcp` console script needs, so a
44
- # directory's install snippet is a single line rather than an understanding of this repo's
45
- # extra layout.
46
- mcp = [
47
- "vaultzero[client]",
48
- ]
53
+
54
+ [project.optional-dependencies]
55
+ # `client` and `mcp` listed everything they needed before this change. They are kept, empty,
56
+ # so the strings `vaultzero[client]` and `vaultzero[mcp]` still resolve: they appear in
57
+ # published READMEs, in this repo's history, and in other people's requirements files, and a
58
+ # self-referential alias (`vaultzero = ["vaultzero"]`) is a dependency cycle that pip and uv
59
+ # both reject. An empty extra is the compatible way to keep the names working.
60
+ client = []
61
+ mcp = []
49
62
  dev = [
50
63
  "pytest>=8.3",
51
64
  "pytest-asyncio>=0.25",
@@ -86,7 +99,7 @@ asyncio_default_test_loop_scope = "session"
86
99
 
87
100
  [tool.ruff]
88
101
  line-length = 100
89
- target-version = "py313"
102
+ target-version = "py310"
90
103
 
91
104
  [tool.ruff.lint]
92
105
  select = ["E", "F", "W", "I", "B", "UP", "S", "ASYNC"]
File without changes
File without changes