next-wiki-hermes-memory 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.
- next_wiki_hermes_memory-0.1.0/PKG-INFO +117 -0
- next_wiki_hermes_memory-0.1.0/README.md +96 -0
- next_wiki_hermes_memory-0.1.0/pyproject.toml +45 -0
- next_wiki_hermes_memory-0.1.0/setup.cfg +4 -0
- next_wiki_hermes_memory-0.1.0/src/next_wiki_hermes_memory.egg-info/PKG-INFO +117 -0
- next_wiki_hermes_memory-0.1.0/src/next_wiki_hermes_memory.egg-info/SOURCES.txt +24 -0
- next_wiki_hermes_memory-0.1.0/src/next_wiki_hermes_memory.egg-info/dependency_links.txt +1 -0
- next_wiki_hermes_memory-0.1.0/src/next_wiki_hermes_memory.egg-info/entry_points.txt +5 -0
- next_wiki_hermes_memory-0.1.0/src/next_wiki_hermes_memory.egg-info/requires.txt +4 -0
- next_wiki_hermes_memory-0.1.0/src/next_wiki_hermes_memory.egg-info/top_level.txt +1 -0
- next_wiki_hermes_memory-0.1.0/src/next_wiki_memory/__init__.py +373 -0
- next_wiki_hermes_memory-0.1.0/src/next_wiki_memory/api_client.py +95 -0
- next_wiki_hermes_memory-0.1.0/src/next_wiki_memory/cli.py +112 -0
- next_wiki_hermes_memory-0.1.0/src/next_wiki_memory/config.py +141 -0
- next_wiki_hermes_memory-0.1.0/src/next_wiki_memory/config_schema.py +23 -0
- next_wiki_hermes_memory-0.1.0/src/next_wiki_memory/redaction.py +28 -0
- next_wiki_hermes_memory-0.1.0/tests/test_api_client.py +77 -0
- next_wiki_hermes_memory-0.1.0/tests/test_availability.py +21 -0
- next_wiki_hermes_memory-0.1.0/tests/test_capture_lifecycle.py +54 -0
- next_wiki_hermes_memory-0.1.0/tests/test_checkpoints.py +39 -0
- next_wiki_hermes_memory-0.1.0/tests/test_cli.py +22 -0
- next_wiki_hermes_memory-0.1.0/tests/test_config.py +55 -0
- next_wiki_hermes_memory-0.1.0/tests/test_config_schema.py +16 -0
- next_wiki_hermes_memory-0.1.0/tests/test_provider.py +75 -0
- next_wiki_hermes_memory-0.1.0/tests/test_provider_registration.py +26 -0
- next_wiki_hermes_memory-0.1.0/tests/test_tools.py +36 -0
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: next-wiki-hermes-memory
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: Hermes MemoryProvider backed by next-wiki's scoped memory API
|
|
5
|
+
Author: next-wiki contributors
|
|
6
|
+
License-Expression: Apache-2.0
|
|
7
|
+
Project-URL: Homepage, https://github.com/hugogu/next-wiki
|
|
8
|
+
Project-URL: Documentation, https://github.com/hugogu/next-wiki/blob/main/docs/hermes-memory-provider.md
|
|
9
|
+
Project-URL: Repository, https://github.com/hugogu/next-wiki
|
|
10
|
+
Classifier: Development Status :: 3 - Alpha
|
|
11
|
+
Classifier: Programming Language :: Python :: 3
|
|
12
|
+
Classifier: Programming Language :: Python :: 3 :: Only
|
|
13
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
16
|
+
Requires-Python: >=3.11
|
|
17
|
+
Description-Content-Type: text/markdown
|
|
18
|
+
Provides-Extra: dev
|
|
19
|
+
Requires-Dist: build>=1.2; extra == "dev"
|
|
20
|
+
Requires-Dist: pytest>=8; extra == "dev"
|
|
21
|
+
|
|
22
|
+
# next-wiki Hermes Memory Provider
|
|
23
|
+
|
|
24
|
+
Use a [next-wiki](https://github.com/hugogu/next-wiki) instance as the durable,
|
|
25
|
+
inspectable memory destination for one configured agent identity. Hermes is the
|
|
26
|
+
first client integration. Records are stored as immutable, append-only Raw
|
|
27
|
+
entries with published revisions. Each memory-provider API key is bound
|
|
28
|
+
server-side to one memory destination and identity, so a client cannot select
|
|
29
|
+
another profile's namespace through a tool argument or URL.
|
|
30
|
+
|
|
31
|
+
## Install and activate
|
|
32
|
+
|
|
33
|
+
1. Enable **LLM Wiki** writing mode so the shared Raw space is available. Then
|
|
34
|
+
open **User Center → API Keys** and select **Memory provider**. Set the
|
|
35
|
+
non-secret **Agent identity** (normally `hermes`). The preset grants only `memory.read`, `memory.write`, and
|
|
36
|
+
`memory.delete`; it does not grant generic page access. Copy the secret once.
|
|
37
|
+
2. Install the provider:
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
python -m pip install next-wiki-hermes-memory
|
|
41
|
+
hermes memory setup
|
|
42
|
+
hermes memory status
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
3. Select `next-wiki` in the Hermes picker. Enter the versioned API base URL
|
|
46
|
+
(for example `https://wiki.example.com/api/v1`) and enter the key only at
|
|
47
|
+
Hermes's secret prompt. Hermes exposes it as `NEXT_WIKI_MEMORY_API_KEY`.
|
|
48
|
+
|
|
49
|
+
The primary distribution path is the Python entry point
|
|
50
|
+
`hermes_agent.memory_providers`. For development only, a package can be placed
|
|
51
|
+
under `$HERMES_HOME/plugins/next-wiki` or `./.hermes/plugins/next-wiki` (the
|
|
52
|
+
latter needs `HERMES_ENABLE_PROJECT_PLUGINS=1`). Do not install two providers
|
|
53
|
+
with the `next-wiki` slug: Hermes uses discovery precedence and reports the
|
|
54
|
+
first matching provider.
|
|
55
|
+
|
|
56
|
+
## Safe configuration and checks
|
|
57
|
+
|
|
58
|
+
The provider writes only non-secret settings (including `agent_identity`) to
|
|
59
|
+
`$HERMES_HOME/next-wiki-memory.json`; the secret belongs in Hermes's profile
|
|
60
|
+
secret store. It never accepts a key as a command-line argument.
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
# Preview a local configuration without writing it or contacting the Wiki.
|
|
64
|
+
next-wiki-hermes-memory init --wiki-url https://wiki.example.com/api/v1 --dry-run
|
|
65
|
+
|
|
66
|
+
# Active-provider commands, after selecting next-wiki in Hermes.
|
|
67
|
+
hermes next-wiki status # local only; never prints the key
|
|
68
|
+
hermes next-wiki check # validates TLS, authentication, binding, and scopes
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
`status` is intentionally offline. `check` returns repair guidance for invalid
|
|
72
|
+
or revoked keys, insufficient scopes, redirects, timeouts, an unavailable
|
|
73
|
+
route, and incompatible versions without echoing response bodies or secrets.
|
|
74
|
+
|
|
75
|
+
| Deployment | API URL example |
|
|
76
|
+
| --- | --- |
|
|
77
|
+
| Local Hermes + local Wiki | `http://127.0.0.1:3000/api/v1` |
|
|
78
|
+
| Remote / reverse-proxied Wiki | `https://wiki.example.com/api/v1` |
|
|
79
|
+
| Hermes in another container | the Wiki's reachable container/DNS address, normally HTTPS behind the proxy |
|
|
80
|
+
|
|
81
|
+
Remote URLs must use HTTPS. A loopback URL is valid only when Hermes runs in
|
|
82
|
+
the same network namespace as the Wiki; Docker containers generally cannot use
|
|
83
|
+
the host's `127.0.0.1`.
|
|
84
|
+
|
|
85
|
+
## Memory behavior and privacy
|
|
86
|
+
|
|
87
|
+
Hermes receives three namespaced tools:
|
|
88
|
+
|
|
89
|
+
- `next_wiki_memory_search(query, limit)` recalls only the key's destination;
|
|
90
|
+
- `next_wiki_memory_save(content, title?, tags?)` writes an immutable Raw
|
|
91
|
+
memory record; and
|
|
92
|
+
- `next_wiki_memory_forget(memory_id, reason?)` hides a record from future
|
|
93
|
+
recall in that same destination. The original Raw entry is never changed.
|
|
94
|
+
|
|
95
|
+
Recall results contain a canonical Wiki revision citation. Automatic turn
|
|
96
|
+
capture is disabled by default. If it is enabled, the provider preserves only
|
|
97
|
+
user and assistant text, excludes tool calls/results and system content, and
|
|
98
|
+
does not capture delegated/non-primary agent contexts.
|
|
99
|
+
|
|
100
|
+
Strict pre-compression checkpoints are opt-in and require a Hermes runtime that
|
|
101
|
+
supports checkpoint API v2. When enabled, compression must not treat a
|
|
102
|
+
checkpoint as successful until the queued capture reports `durable`; a failed
|
|
103
|
+
or timed-out capture fails closed. Keep strict mode off on older Hermes
|
|
104
|
+
versions, and verify it after every Hermes upgrade.
|
|
105
|
+
|
|
106
|
+
## Rotation, recovery, and backups
|
|
107
|
+
|
|
108
|
+
Create a new dedicated key, re-run setup, confirm `hermes next-wiki check`,
|
|
109
|
+
then revoke the old key in **User Center → API Keys**. Revocation stops future
|
|
110
|
+
access immediately. Forget changes only the Hermes record's recall state, so
|
|
111
|
+
the immutable Raw entry retains its original content and revisions for
|
|
112
|
+
administrators according to the Wiki's Raw-space retention policy.
|
|
113
|
+
|
|
114
|
+
Back up the Wiki database and content store with the normal deployment backup
|
|
115
|
+
procedure; memory pages and their revision citations are included. For full
|
|
116
|
+
server and reverse-proxy guidance, see
|
|
117
|
+
[the deployment guide](../../docs/hermes-memory-provider.md).
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
# next-wiki Hermes Memory Provider
|
|
2
|
+
|
|
3
|
+
Use a [next-wiki](https://github.com/hugogu/next-wiki) instance as the durable,
|
|
4
|
+
inspectable memory destination for one configured agent identity. Hermes is the
|
|
5
|
+
first client integration. Records are stored as immutable, append-only Raw
|
|
6
|
+
entries with published revisions. Each memory-provider API key is bound
|
|
7
|
+
server-side to one memory destination and identity, so a client cannot select
|
|
8
|
+
another profile's namespace through a tool argument or URL.
|
|
9
|
+
|
|
10
|
+
## Install and activate
|
|
11
|
+
|
|
12
|
+
1. Enable **LLM Wiki** writing mode so the shared Raw space is available. Then
|
|
13
|
+
open **User Center → API Keys** and select **Memory provider**. Set the
|
|
14
|
+
non-secret **Agent identity** (normally `hermes`). The preset grants only `memory.read`, `memory.write`, and
|
|
15
|
+
`memory.delete`; it does not grant generic page access. Copy the secret once.
|
|
16
|
+
2. Install the provider:
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
python -m pip install next-wiki-hermes-memory
|
|
20
|
+
hermes memory setup
|
|
21
|
+
hermes memory status
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
3. Select `next-wiki` in the Hermes picker. Enter the versioned API base URL
|
|
25
|
+
(for example `https://wiki.example.com/api/v1`) and enter the key only at
|
|
26
|
+
Hermes's secret prompt. Hermes exposes it as `NEXT_WIKI_MEMORY_API_KEY`.
|
|
27
|
+
|
|
28
|
+
The primary distribution path is the Python entry point
|
|
29
|
+
`hermes_agent.memory_providers`. For development only, a package can be placed
|
|
30
|
+
under `$HERMES_HOME/plugins/next-wiki` or `./.hermes/plugins/next-wiki` (the
|
|
31
|
+
latter needs `HERMES_ENABLE_PROJECT_PLUGINS=1`). Do not install two providers
|
|
32
|
+
with the `next-wiki` slug: Hermes uses discovery precedence and reports the
|
|
33
|
+
first matching provider.
|
|
34
|
+
|
|
35
|
+
## Safe configuration and checks
|
|
36
|
+
|
|
37
|
+
The provider writes only non-secret settings (including `agent_identity`) to
|
|
38
|
+
`$HERMES_HOME/next-wiki-memory.json`; the secret belongs in Hermes's profile
|
|
39
|
+
secret store. It never accepts a key as a command-line argument.
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
# Preview a local configuration without writing it or contacting the Wiki.
|
|
43
|
+
next-wiki-hermes-memory init --wiki-url https://wiki.example.com/api/v1 --dry-run
|
|
44
|
+
|
|
45
|
+
# Active-provider commands, after selecting next-wiki in Hermes.
|
|
46
|
+
hermes next-wiki status # local only; never prints the key
|
|
47
|
+
hermes next-wiki check # validates TLS, authentication, binding, and scopes
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
`status` is intentionally offline. `check` returns repair guidance for invalid
|
|
51
|
+
or revoked keys, insufficient scopes, redirects, timeouts, an unavailable
|
|
52
|
+
route, and incompatible versions without echoing response bodies or secrets.
|
|
53
|
+
|
|
54
|
+
| Deployment | API URL example |
|
|
55
|
+
| --- | --- |
|
|
56
|
+
| Local Hermes + local Wiki | `http://127.0.0.1:3000/api/v1` |
|
|
57
|
+
| Remote / reverse-proxied Wiki | `https://wiki.example.com/api/v1` |
|
|
58
|
+
| Hermes in another container | the Wiki's reachable container/DNS address, normally HTTPS behind the proxy |
|
|
59
|
+
|
|
60
|
+
Remote URLs must use HTTPS. A loopback URL is valid only when Hermes runs in
|
|
61
|
+
the same network namespace as the Wiki; Docker containers generally cannot use
|
|
62
|
+
the host's `127.0.0.1`.
|
|
63
|
+
|
|
64
|
+
## Memory behavior and privacy
|
|
65
|
+
|
|
66
|
+
Hermes receives three namespaced tools:
|
|
67
|
+
|
|
68
|
+
- `next_wiki_memory_search(query, limit)` recalls only the key's destination;
|
|
69
|
+
- `next_wiki_memory_save(content, title?, tags?)` writes an immutable Raw
|
|
70
|
+
memory record; and
|
|
71
|
+
- `next_wiki_memory_forget(memory_id, reason?)` hides a record from future
|
|
72
|
+
recall in that same destination. The original Raw entry is never changed.
|
|
73
|
+
|
|
74
|
+
Recall results contain a canonical Wiki revision citation. Automatic turn
|
|
75
|
+
capture is disabled by default. If it is enabled, the provider preserves only
|
|
76
|
+
user and assistant text, excludes tool calls/results and system content, and
|
|
77
|
+
does not capture delegated/non-primary agent contexts.
|
|
78
|
+
|
|
79
|
+
Strict pre-compression checkpoints are opt-in and require a Hermes runtime that
|
|
80
|
+
supports checkpoint API v2. When enabled, compression must not treat a
|
|
81
|
+
checkpoint as successful until the queued capture reports `durable`; a failed
|
|
82
|
+
or timed-out capture fails closed. Keep strict mode off on older Hermes
|
|
83
|
+
versions, and verify it after every Hermes upgrade.
|
|
84
|
+
|
|
85
|
+
## Rotation, recovery, and backups
|
|
86
|
+
|
|
87
|
+
Create a new dedicated key, re-run setup, confirm `hermes next-wiki check`,
|
|
88
|
+
then revoke the old key in **User Center → API Keys**. Revocation stops future
|
|
89
|
+
access immediately. Forget changes only the Hermes record's recall state, so
|
|
90
|
+
the immutable Raw entry retains its original content and revisions for
|
|
91
|
+
administrators according to the Wiki's Raw-space retention policy.
|
|
92
|
+
|
|
93
|
+
Back up the Wiki database and content store with the normal deployment backup
|
|
94
|
+
procedure; memory pages and their revision citations are included. For full
|
|
95
|
+
server and reverse-proxy guidance, see
|
|
96
|
+
[the deployment guide](../../docs/hermes-memory-provider.md).
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["setuptools>=69"]
|
|
3
|
+
build-backend = "setuptools.build_meta"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "next-wiki-hermes-memory"
|
|
7
|
+
version = "0.1.0"
|
|
8
|
+
description = "Hermes MemoryProvider backed by next-wiki's scoped memory API"
|
|
9
|
+
readme = "README.md"
|
|
10
|
+
requires-python = ">=3.11"
|
|
11
|
+
license = "Apache-2.0"
|
|
12
|
+
authors = [{ name = "next-wiki contributors" }]
|
|
13
|
+
classifiers = [
|
|
14
|
+
"Development Status :: 3 - Alpha",
|
|
15
|
+
"Programming Language :: Python :: 3",
|
|
16
|
+
"Programming Language :: Python :: 3 :: Only",
|
|
17
|
+
"Programming Language :: Python :: 3.11",
|
|
18
|
+
"Programming Language :: Python :: 3.12",
|
|
19
|
+
"Programming Language :: Python :: 3.13",
|
|
20
|
+
]
|
|
21
|
+
|
|
22
|
+
[project.urls]
|
|
23
|
+
Homepage = "https://github.com/hugogu/next-wiki"
|
|
24
|
+
Documentation = "https://github.com/hugogu/next-wiki/blob/main/docs/hermes-memory-provider.md"
|
|
25
|
+
Repository = "https://github.com/hugogu/next-wiki"
|
|
26
|
+
|
|
27
|
+
[project.scripts]
|
|
28
|
+
next-wiki-hermes-memory = "next_wiki_memory.cli:main"
|
|
29
|
+
|
|
30
|
+
[project.optional-dependencies]
|
|
31
|
+
dev = ["build>=1.2", "pytest>=8"]
|
|
32
|
+
|
|
33
|
+
[project.entry-points."hermes_agent.memory_providers"]
|
|
34
|
+
next-wiki = "next_wiki_memory:register"
|
|
35
|
+
|
|
36
|
+
[tool.pytest.ini_options]
|
|
37
|
+
testpaths = ["tests"]
|
|
38
|
+
addopts = "-q"
|
|
39
|
+
|
|
40
|
+
[tool.setuptools]
|
|
41
|
+
package-dir = { "" = "src" }
|
|
42
|
+
include-package-data = true
|
|
43
|
+
|
|
44
|
+
[tool.setuptools.packages.find]
|
|
45
|
+
where = ["src"]
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: next-wiki-hermes-memory
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: Hermes MemoryProvider backed by next-wiki's scoped memory API
|
|
5
|
+
Author: next-wiki contributors
|
|
6
|
+
License-Expression: Apache-2.0
|
|
7
|
+
Project-URL: Homepage, https://github.com/hugogu/next-wiki
|
|
8
|
+
Project-URL: Documentation, https://github.com/hugogu/next-wiki/blob/main/docs/hermes-memory-provider.md
|
|
9
|
+
Project-URL: Repository, https://github.com/hugogu/next-wiki
|
|
10
|
+
Classifier: Development Status :: 3 - Alpha
|
|
11
|
+
Classifier: Programming Language :: Python :: 3
|
|
12
|
+
Classifier: Programming Language :: Python :: 3 :: Only
|
|
13
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
16
|
+
Requires-Python: >=3.11
|
|
17
|
+
Description-Content-Type: text/markdown
|
|
18
|
+
Provides-Extra: dev
|
|
19
|
+
Requires-Dist: build>=1.2; extra == "dev"
|
|
20
|
+
Requires-Dist: pytest>=8; extra == "dev"
|
|
21
|
+
|
|
22
|
+
# next-wiki Hermes Memory Provider
|
|
23
|
+
|
|
24
|
+
Use a [next-wiki](https://github.com/hugogu/next-wiki) instance as the durable,
|
|
25
|
+
inspectable memory destination for one configured agent identity. Hermes is the
|
|
26
|
+
first client integration. Records are stored as immutable, append-only Raw
|
|
27
|
+
entries with published revisions. Each memory-provider API key is bound
|
|
28
|
+
server-side to one memory destination and identity, so a client cannot select
|
|
29
|
+
another profile's namespace through a tool argument or URL.
|
|
30
|
+
|
|
31
|
+
## Install and activate
|
|
32
|
+
|
|
33
|
+
1. Enable **LLM Wiki** writing mode so the shared Raw space is available. Then
|
|
34
|
+
open **User Center → API Keys** and select **Memory provider**. Set the
|
|
35
|
+
non-secret **Agent identity** (normally `hermes`). The preset grants only `memory.read`, `memory.write`, and
|
|
36
|
+
`memory.delete`; it does not grant generic page access. Copy the secret once.
|
|
37
|
+
2. Install the provider:
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
python -m pip install next-wiki-hermes-memory
|
|
41
|
+
hermes memory setup
|
|
42
|
+
hermes memory status
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
3. Select `next-wiki` in the Hermes picker. Enter the versioned API base URL
|
|
46
|
+
(for example `https://wiki.example.com/api/v1`) and enter the key only at
|
|
47
|
+
Hermes's secret prompt. Hermes exposes it as `NEXT_WIKI_MEMORY_API_KEY`.
|
|
48
|
+
|
|
49
|
+
The primary distribution path is the Python entry point
|
|
50
|
+
`hermes_agent.memory_providers`. For development only, a package can be placed
|
|
51
|
+
under `$HERMES_HOME/plugins/next-wiki` or `./.hermes/plugins/next-wiki` (the
|
|
52
|
+
latter needs `HERMES_ENABLE_PROJECT_PLUGINS=1`). Do not install two providers
|
|
53
|
+
with the `next-wiki` slug: Hermes uses discovery precedence and reports the
|
|
54
|
+
first matching provider.
|
|
55
|
+
|
|
56
|
+
## Safe configuration and checks
|
|
57
|
+
|
|
58
|
+
The provider writes only non-secret settings (including `agent_identity`) to
|
|
59
|
+
`$HERMES_HOME/next-wiki-memory.json`; the secret belongs in Hermes's profile
|
|
60
|
+
secret store. It never accepts a key as a command-line argument.
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
# Preview a local configuration without writing it or contacting the Wiki.
|
|
64
|
+
next-wiki-hermes-memory init --wiki-url https://wiki.example.com/api/v1 --dry-run
|
|
65
|
+
|
|
66
|
+
# Active-provider commands, after selecting next-wiki in Hermes.
|
|
67
|
+
hermes next-wiki status # local only; never prints the key
|
|
68
|
+
hermes next-wiki check # validates TLS, authentication, binding, and scopes
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
`status` is intentionally offline. `check` returns repair guidance for invalid
|
|
72
|
+
or revoked keys, insufficient scopes, redirects, timeouts, an unavailable
|
|
73
|
+
route, and incompatible versions without echoing response bodies or secrets.
|
|
74
|
+
|
|
75
|
+
| Deployment | API URL example |
|
|
76
|
+
| --- | --- |
|
|
77
|
+
| Local Hermes + local Wiki | `http://127.0.0.1:3000/api/v1` |
|
|
78
|
+
| Remote / reverse-proxied Wiki | `https://wiki.example.com/api/v1` |
|
|
79
|
+
| Hermes in another container | the Wiki's reachable container/DNS address, normally HTTPS behind the proxy |
|
|
80
|
+
|
|
81
|
+
Remote URLs must use HTTPS. A loopback URL is valid only when Hermes runs in
|
|
82
|
+
the same network namespace as the Wiki; Docker containers generally cannot use
|
|
83
|
+
the host's `127.0.0.1`.
|
|
84
|
+
|
|
85
|
+
## Memory behavior and privacy
|
|
86
|
+
|
|
87
|
+
Hermes receives three namespaced tools:
|
|
88
|
+
|
|
89
|
+
- `next_wiki_memory_search(query, limit)` recalls only the key's destination;
|
|
90
|
+
- `next_wiki_memory_save(content, title?, tags?)` writes an immutable Raw
|
|
91
|
+
memory record; and
|
|
92
|
+
- `next_wiki_memory_forget(memory_id, reason?)` hides a record from future
|
|
93
|
+
recall in that same destination. The original Raw entry is never changed.
|
|
94
|
+
|
|
95
|
+
Recall results contain a canonical Wiki revision citation. Automatic turn
|
|
96
|
+
capture is disabled by default. If it is enabled, the provider preserves only
|
|
97
|
+
user and assistant text, excludes tool calls/results and system content, and
|
|
98
|
+
does not capture delegated/non-primary agent contexts.
|
|
99
|
+
|
|
100
|
+
Strict pre-compression checkpoints are opt-in and require a Hermes runtime that
|
|
101
|
+
supports checkpoint API v2. When enabled, compression must not treat a
|
|
102
|
+
checkpoint as successful until the queued capture reports `durable`; a failed
|
|
103
|
+
or timed-out capture fails closed. Keep strict mode off on older Hermes
|
|
104
|
+
versions, and verify it after every Hermes upgrade.
|
|
105
|
+
|
|
106
|
+
## Rotation, recovery, and backups
|
|
107
|
+
|
|
108
|
+
Create a new dedicated key, re-run setup, confirm `hermes next-wiki check`,
|
|
109
|
+
then revoke the old key in **User Center → API Keys**. Revocation stops future
|
|
110
|
+
access immediately. Forget changes only the Hermes record's recall state, so
|
|
111
|
+
the immutable Raw entry retains its original content and revisions for
|
|
112
|
+
administrators according to the Wiki's Raw-space retention policy.
|
|
113
|
+
|
|
114
|
+
Back up the Wiki database and content store with the normal deployment backup
|
|
115
|
+
procedure; memory pages and their revision citations are included. For full
|
|
116
|
+
server and reverse-proxy guidance, see
|
|
117
|
+
[the deployment guide](../../docs/hermes-memory-provider.md).
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
README.md
|
|
2
|
+
pyproject.toml
|
|
3
|
+
src/next_wiki_hermes_memory.egg-info/PKG-INFO
|
|
4
|
+
src/next_wiki_hermes_memory.egg-info/SOURCES.txt
|
|
5
|
+
src/next_wiki_hermes_memory.egg-info/dependency_links.txt
|
|
6
|
+
src/next_wiki_hermes_memory.egg-info/entry_points.txt
|
|
7
|
+
src/next_wiki_hermes_memory.egg-info/requires.txt
|
|
8
|
+
src/next_wiki_hermes_memory.egg-info/top_level.txt
|
|
9
|
+
src/next_wiki_memory/__init__.py
|
|
10
|
+
src/next_wiki_memory/api_client.py
|
|
11
|
+
src/next_wiki_memory/cli.py
|
|
12
|
+
src/next_wiki_memory/config.py
|
|
13
|
+
src/next_wiki_memory/config_schema.py
|
|
14
|
+
src/next_wiki_memory/redaction.py
|
|
15
|
+
tests/test_api_client.py
|
|
16
|
+
tests/test_availability.py
|
|
17
|
+
tests/test_capture_lifecycle.py
|
|
18
|
+
tests/test_checkpoints.py
|
|
19
|
+
tests/test_cli.py
|
|
20
|
+
tests/test_config.py
|
|
21
|
+
tests/test_config_schema.py
|
|
22
|
+
tests/test_provider.py
|
|
23
|
+
tests/test_provider_registration.py
|
|
24
|
+
tests/test_tools.py
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
next_wiki_memory
|