enigma-memory 0.1.12 → 0.1.13
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.
- package/apps/cli/bin/enigma.mjs +106 -8
- package/docs/benchmark-attestation-network.md +2 -2
- package/docs/benchmark-reproducibility.md +4 -4
- package/docs/client-connectors.md +512 -0
- package/docs/demo-proof-network.md +3 -3
- package/docs/developer-ecosystem.md +5 -5
- package/docs/developer-proof-quickstart.md +3 -3
- package/docs/enigma-memory-ready-conformance.md +1 -1
- package/docs/install-anywhere.md +517 -0
- package/docs/proof-network-build-notes.md +2 -2
- package/docs/proof-network.md +5 -5
- package/docs/sdk-api.md +4 -2
- package/docs/solana-proof-rail.md +1 -1
- package/examples/ci/github-actions.yml +6 -3
- package/package.json +4 -1
- package/packages/mcp-server/src/index.js +1 -1
- package/scripts/build-hosted-api-key-lifecycle.mjs +1 -1
- package/scripts/build-hosted-customer-lifecycle.mjs +1 -1
- package/scripts/build-installer-assets.mjs +1 -1
- package/scripts/build-proof-network-packet.mjs +1 -1
- package/scripts/install-enigma-local.mjs +270 -0
- package/scripts/run-standard-memory-benchmarks.mjs +1 -1
- package/scripts/verify-registry-install.mjs +1 -0
|
@@ -0,0 +1,512 @@
|
|
|
1
|
+
# Client connectors
|
|
2
|
+
|
|
3
|
+
Enigma connects to assistant clients through MCP. The client starts `enigma-mcp` over stdio, and Enigma reads/writes the local vault bundle named by `ENIGMA_BUNDLE`. Start with the public test drive, then create a regular local workspace, then explicitly connect installed/config-present clients when you are ready.
|
|
4
|
+
|
|
5
|
+
Supported connector IDs:
|
|
6
|
+
|
|
7
|
+
- `claude-desktop`
|
|
8
|
+
- `cursor`
|
|
9
|
+
- `kimi-code`
|
|
10
|
+
- `vscode-cline`
|
|
11
|
+
- `roo`
|
|
12
|
+
- `opencode`
|
|
13
|
+
- `generic-mcp`
|
|
14
|
+
|
|
15
|
+
## Public test drive first
|
|
16
|
+
|
|
17
|
+
Prove the live npm package path without credentials, hosted SaaS, provider calls, or client-config writes:
|
|
18
|
+
|
|
19
|
+
```sh
|
|
20
|
+
npm install -g enigma-memory
|
|
21
|
+
enigma test-drive --overwrite
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
`enigma test-drive --overwrite` writes an isolated demo under `.enigma/test-drive` by default, emits one public-safe JSON summary, and does not print raw private memory plaintext. Use `--dry-run` to preview without writing, or `--out-dir <path>` to choose another isolated demo directory. The local proof/demo is bounded to Enigma-controlled vault state, receipts, checkpoints, committed roots, exported bundle shape, and declared boundary operations; it is not hosted SaaS evidence and does not prove provider deletion or model forgetting.
|
|
25
|
+
|
|
26
|
+
## One clear path
|
|
27
|
+
|
|
28
|
+
After the test drive, create a regular local workspace:
|
|
29
|
+
|
|
30
|
+
```sh
|
|
31
|
+
npm install -g enigma-memory
|
|
32
|
+
enigma setup --overwrite
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
`enigma setup --overwrite` writes local Enigma artifacts under the workspace `.enigma` path and emits deterministic, public-safe JSON without printing raw memory plaintext. It does not write Claude, Cursor, Kimi, VS Code, Roo, OpenCode, or generic MCP client configs.
|
|
36
|
+
|
|
37
|
+
To auto-detect installed or already-configured clients and show the setup connector plan without mutating client configs:
|
|
38
|
+
|
|
39
|
+
```sh
|
|
40
|
+
enigma setup --client auto --overwrite
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
`--client auto` selects clients found by connector detection and falls back to the default setup client list when none are present. The setup output lists selected clients, skipped clients, and the reason for each skip.
|
|
44
|
+
|
|
45
|
+
To explicitly write connector entries for installed/config-present clients only:
|
|
46
|
+
|
|
47
|
+
```sh
|
|
48
|
+
enigma setup --connect-installed --overwrite
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
`--connect-installed` implies auto client selection and is a client-config write flag. It skips missing client configs instead of creating every default client config. Only explicit write flags mutate client configs. Existing `enigma connect <client>` behavior and existing `enigma setup --write-connectors` behavior for explicit/default clients are unchanged.
|
|
52
|
+
|
|
53
|
+
After setup, use the same local vault from the CLI or connected clients:
|
|
54
|
+
|
|
55
|
+
```sh
|
|
56
|
+
enigma remember --text-file ./memory.txt
|
|
57
|
+
enigma search --query "..."
|
|
58
|
+
enigma context --query "..." --optimize
|
|
59
|
+
enigma verify --export ./.enigma/export.json
|
|
60
|
+
enigma connect claude-desktop --dry-run
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
Provider-native memory is non-canonical cache only in this architecture. The Enigma vault remains canonical, and Enigma receipts prove Enigma-controlled lifecycle events; they do not prove that a hosted provider deleted hidden copies or that a model forgot anything.
|
|
64
|
+
|
|
65
|
+
One-off public test drive without a global install:
|
|
66
|
+
|
|
67
|
+
```sh
|
|
68
|
+
npx --yes --package enigma-memory enigma test-drive --overwrite
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
From a source checkout, use this only for package development or source-only docs:
|
|
72
|
+
|
|
73
|
+
```sh
|
|
74
|
+
cd enigma
|
|
75
|
+
npm install -g .
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
## Preview, then connect
|
|
79
|
+
|
|
80
|
+
Preview installed/config-present connector targets during setup without changing client configs:
|
|
81
|
+
|
|
82
|
+
```sh
|
|
83
|
+
enigma setup --client auto --overwrite
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
The output reports selected clients, skipped clients, and skip reasons. If no installed/config-present client is discovered, auto selection falls back to the default setup client list for planning.
|
|
87
|
+
|
|
88
|
+
Preview one client without changing it:
|
|
89
|
+
|
|
90
|
+
```sh
|
|
91
|
+
enigma connect claude-desktop --dry-run
|
|
92
|
+
enigma connect cursor --dry-run
|
|
93
|
+
enigma connect kimi-code --dry-run
|
|
94
|
+
enigma connect vscode-cline --dry-run
|
|
95
|
+
enigma connect roo --dry-run
|
|
96
|
+
enigma connect opencode --dry-run
|
|
97
|
+
enigma connect generic-mcp --dry-run
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
When you are ready to write all installed/config-present client configs discovered by setup, use the explicit setup-time write flag:
|
|
101
|
+
|
|
102
|
+
```sh
|
|
103
|
+
enigma setup --connect-installed --overwrite
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
`--connect-installed` skips missing client configs instead of creating every default client config. It is for installed/config-present clients only. Existing `enigma setup --write-connectors` behavior for explicit/default clients is unchanged.
|
|
107
|
+
|
|
108
|
+
When the single-client dry run looks right, remove `--dry-run` for the client you want:
|
|
109
|
+
|
|
110
|
+
```sh
|
|
111
|
+
enigma connect claude-desktop
|
|
112
|
+
enigma connect cursor
|
|
113
|
+
enigma connect kimi-code
|
|
114
|
+
enigma connect vscode-cline
|
|
115
|
+
enigma connect roo
|
|
116
|
+
enigma connect opencode
|
|
117
|
+
enigma connect generic-mcp
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
Disconnect one client without touching unrelated client settings:
|
|
121
|
+
|
|
122
|
+
```sh
|
|
123
|
+
enigma disconnect claude-desktop
|
|
124
|
+
enigma disconnect cursor
|
|
125
|
+
enigma disconnect kimi-code
|
|
126
|
+
enigma disconnect vscode-cline
|
|
127
|
+
enigma disconnect roo
|
|
128
|
+
enigma disconnect opencode
|
|
129
|
+
enigma disconnect generic-mcp
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
Connector writes are semantic and idempotent. Enigma preserves unrelated client settings and sibling MCP servers under `mcpServers`, writes changed JSON through a temporary file followed by `rename`, and creates a `.bak.<timestamp>` backup only when an existing config actually changes. Running the same `enigma connect ...` command against an equivalent config, even with JSON keys in a different order, reports `changed: false` and does not create or report a backup. Detection, `--client auto`, and dry runs are read-only.
|
|
133
|
+
|
|
134
|
+
## Copy-paste MCP snippets
|
|
135
|
+
|
|
136
|
+
Use an absolute bundle path. The MCP process inherits client environment in some apps and not in others; setting `ENIGMA_BUNDLE` directly in the entry is the portable path. The command defaults to `enigma-mcp`; if a GUI app cannot find shell-installed binaries, render an absolute command with `--mcp-command` (alias: `--command`).
|
|
137
|
+
|
|
138
|
+
Claude Desktop:
|
|
139
|
+
|
|
140
|
+
```json
|
|
141
|
+
{
|
|
142
|
+
"mcpServers": {
|
|
143
|
+
"enigma": {
|
|
144
|
+
"command": "enigma-mcp",
|
|
145
|
+
"args": [],
|
|
146
|
+
"env": {
|
|
147
|
+
"ENIGMA_BUNDLE": "/absolute/path/to/.enigma/bundle.json"
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
Cursor:
|
|
155
|
+
|
|
156
|
+
```json
|
|
157
|
+
{
|
|
158
|
+
"mcpServers": {
|
|
159
|
+
"enigma": {
|
|
160
|
+
"command": "enigma-mcp",
|
|
161
|
+
"args": [],
|
|
162
|
+
"env": {
|
|
163
|
+
"ENIGMA_BUNDLE": "/absolute/path/to/.enigma/bundle.json"
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
Kimi Code:
|
|
171
|
+
|
|
172
|
+
```json
|
|
173
|
+
{
|
|
174
|
+
"mcpServers": {
|
|
175
|
+
"enigma": {
|
|
176
|
+
"command": "enigma-mcp",
|
|
177
|
+
"args": [],
|
|
178
|
+
"env": {
|
|
179
|
+
"ENIGMA_BUNDLE": "/absolute/path/to/.enigma/bundle.json"
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
Generic MCP:
|
|
187
|
+
|
|
188
|
+
```json
|
|
189
|
+
{
|
|
190
|
+
"mcpServers": {
|
|
191
|
+
"enigma": {
|
|
192
|
+
"command": "enigma-mcp",
|
|
193
|
+
"args": [],
|
|
194
|
+
"env": {
|
|
195
|
+
"ENIGMA_BUNDLE": "/absolute/path/to/.enigma/bundle.json"
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
## Claude Desktop
|
|
203
|
+
|
|
204
|
+
Connector ID: `claude-desktop`
|
|
205
|
+
|
|
206
|
+
Default config paths:
|
|
207
|
+
|
|
208
|
+
- Windows: `%APPDATA%\Claude\claude_desktop_config.json`
|
|
209
|
+
- macOS: `$HOME/Library/Application Support/Claude/claude_desktop_config.json`
|
|
210
|
+
- Linux: `$HOME/.config/Claude/claude_desktop_config.json`
|
|
211
|
+
|
|
212
|
+
Manual entry:
|
|
213
|
+
|
|
214
|
+
```json
|
|
215
|
+
{
|
|
216
|
+
"mcpServers": {
|
|
217
|
+
"enigma": {
|
|
218
|
+
"command": "enigma-mcp",
|
|
219
|
+
"args": [],
|
|
220
|
+
"env": {
|
|
221
|
+
"ENIGMA_BUNDLE": "/absolute/path/to/.enigma/bundle.json"
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
CLI:
|
|
229
|
+
|
|
230
|
+
```sh
|
|
231
|
+
enigma connect claude-desktop --dry-run
|
|
232
|
+
enigma connect claude-desktop
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
Restart Claude Desktop after changing the config.
|
|
236
|
+
|
|
237
|
+
## Cursor
|
|
238
|
+
|
|
239
|
+
Connector ID: `cursor`
|
|
240
|
+
|
|
241
|
+
Default config paths:
|
|
242
|
+
|
|
243
|
+
- Windows: `%USERPROFILE%\.cursor\mcp.json`
|
|
244
|
+
- macOS: `$HOME/.cursor/mcp.json`
|
|
245
|
+
- Linux: `$HOME/.cursor/mcp.json`
|
|
246
|
+
|
|
247
|
+
Manual entry:
|
|
248
|
+
|
|
249
|
+
```json
|
|
250
|
+
{
|
|
251
|
+
"mcpServers": {
|
|
252
|
+
"enigma": {
|
|
253
|
+
"command": "enigma-mcp",
|
|
254
|
+
"args": [],
|
|
255
|
+
"env": {
|
|
256
|
+
"ENIGMA_BUNDLE": "/absolute/path/to/.enigma/bundle.json"
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
```
|
|
262
|
+
|
|
263
|
+
CLI:
|
|
264
|
+
|
|
265
|
+
```sh
|
|
266
|
+
enigma connect cursor --dry-run
|
|
267
|
+
enigma connect cursor
|
|
268
|
+
```
|
|
269
|
+
|
|
270
|
+
Restart Cursor or reload the window after changing the config.
|
|
271
|
+
|
|
272
|
+
## Kimi Code
|
|
273
|
+
|
|
274
|
+
Connector ID: `kimi-code`
|
|
275
|
+
|
|
276
|
+
Default config paths:
|
|
277
|
+
|
|
278
|
+
- Windows: `%APPDATA%\Kimi Code\mcp.json`
|
|
279
|
+
- macOS: `$HOME/Library/Application Support/Kimi Code/mcp.json`
|
|
280
|
+
- Linux: `$HOME/.config/kimi-code/mcp.json`
|
|
281
|
+
|
|
282
|
+
Manual entry:
|
|
283
|
+
|
|
284
|
+
```json
|
|
285
|
+
{
|
|
286
|
+
"mcpServers": {
|
|
287
|
+
"enigma": {
|
|
288
|
+
"command": "enigma-mcp",
|
|
289
|
+
"args": [],
|
|
290
|
+
"env": {
|
|
291
|
+
"ENIGMA_BUNDLE": "/absolute/path/to/.enigma/bundle.json"
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
```
|
|
297
|
+
|
|
298
|
+
CLI:
|
|
299
|
+
|
|
300
|
+
```sh
|
|
301
|
+
enigma connect kimi-code --dry-run
|
|
302
|
+
enigma connect kimi-code
|
|
303
|
+
```
|
|
304
|
+
|
|
305
|
+
Kimi Code is usually launched from the operating-system GUI, so it may not inherit the same `PATH` as your terminal. If Kimi Code does not find `enigma-mcp`, pass an absolute executable path:
|
|
306
|
+
|
|
307
|
+
```sh
|
|
308
|
+
enigma connect kimi-code --dry-run --mcp-command "/absolute/path/to/enigma-mcp"
|
|
309
|
+
enigma connect kimi-code --mcp-command "/absolute/path/to/enigma-mcp"
|
|
310
|
+
```
|
|
311
|
+
|
|
312
|
+
The rendered Kimi Code config still uses the same local bundle contract:
|
|
313
|
+
|
|
314
|
+
```json
|
|
315
|
+
{
|
|
316
|
+
"mcpServers": {
|
|
317
|
+
"enigma": {
|
|
318
|
+
"command": "/absolute/path/to/enigma-mcp",
|
|
319
|
+
"args": [],
|
|
320
|
+
"env": {
|
|
321
|
+
"ENIGMA_BUNDLE": "/absolute/path/to/.enigma/bundle.json"
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
```
|
|
327
|
+
|
|
328
|
+
Restart Kimi Code after changing the config.
|
|
329
|
+
|
|
330
|
+
## VS Code / Cline
|
|
331
|
+
|
|
332
|
+
Connector ID: `vscode-cline`
|
|
333
|
+
|
|
334
|
+
Default config paths:
|
|
335
|
+
|
|
336
|
+
- Windows: `%APPDATA%\Code\User\globalStorage\saoudrizwan.claude-dev\settings\cline_mcp_settings.json`
|
|
337
|
+
- macOS: `$HOME/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json`
|
|
338
|
+
- Linux: `$HOME/.config/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json`
|
|
339
|
+
|
|
340
|
+
Manual entry:
|
|
341
|
+
|
|
342
|
+
```json
|
|
343
|
+
{
|
|
344
|
+
"mcpServers": {
|
|
345
|
+
"enigma": {
|
|
346
|
+
"command": "enigma-mcp",
|
|
347
|
+
"args": [],
|
|
348
|
+
"env": {
|
|
349
|
+
"ENIGMA_BUNDLE": "/absolute/path/to/.enigma/bundle.json"
|
|
350
|
+
}
|
|
351
|
+
}
|
|
352
|
+
}
|
|
353
|
+
}
|
|
354
|
+
```
|
|
355
|
+
|
|
356
|
+
CLI:
|
|
357
|
+
|
|
358
|
+
```sh
|
|
359
|
+
enigma connect vscode-cline --dry-run
|
|
360
|
+
enigma connect vscode-cline
|
|
361
|
+
```
|
|
362
|
+
|
|
363
|
+
Reload VS Code after changing the config.
|
|
364
|
+
|
|
365
|
+
## Roo Code
|
|
366
|
+
|
|
367
|
+
Connector ID: `roo`
|
|
368
|
+
|
|
369
|
+
Default config paths:
|
|
370
|
+
|
|
371
|
+
- Windows: `%APPDATA%\Code\User\globalStorage\rooveterinaryinc.roo-cline\settings\mcp_settings.json`
|
|
372
|
+
- macOS: `$HOME/Library/Application Support/Code/User/globalStorage/rooveterinaryinc.roo-cline/settings/mcp_settings.json`
|
|
373
|
+
- Linux: `$HOME/.config/Code/User/globalStorage/rooveterinaryinc.roo-cline/settings/mcp_settings.json`
|
|
374
|
+
|
|
375
|
+
Manual entry:
|
|
376
|
+
|
|
377
|
+
```json
|
|
378
|
+
{
|
|
379
|
+
"mcpServers": {
|
|
380
|
+
"enigma": {
|
|
381
|
+
"command": "enigma-mcp",
|
|
382
|
+
"args": [],
|
|
383
|
+
"env": {
|
|
384
|
+
"ENIGMA_BUNDLE": "/absolute/path/to/.enigma/bundle.json"
|
|
385
|
+
}
|
|
386
|
+
}
|
|
387
|
+
}
|
|
388
|
+
}
|
|
389
|
+
```
|
|
390
|
+
|
|
391
|
+
CLI:
|
|
392
|
+
|
|
393
|
+
```sh
|
|
394
|
+
enigma connect roo --dry-run
|
|
395
|
+
enigma connect roo
|
|
396
|
+
```
|
|
397
|
+
|
|
398
|
+
Reload VS Code after changing the config.
|
|
399
|
+
|
|
400
|
+
## OpenCode
|
|
401
|
+
|
|
402
|
+
Connector ID: `opencode`
|
|
403
|
+
|
|
404
|
+
Default config paths:
|
|
405
|
+
|
|
406
|
+
- Windows: `%APPDATA%\opencode\opencode.json`
|
|
407
|
+
- macOS: `$HOME/Library/Application Support/opencode/opencode.json`
|
|
408
|
+
- Linux: `$HOME/.config/opencode/opencode.json`
|
|
409
|
+
|
|
410
|
+
Manual entry:
|
|
411
|
+
|
|
412
|
+
```json
|
|
413
|
+
{
|
|
414
|
+
"mcpServers": {
|
|
415
|
+
"enigma": {
|
|
416
|
+
"command": "enigma-mcp",
|
|
417
|
+
"args": [],
|
|
418
|
+
"env": {
|
|
419
|
+
"ENIGMA_BUNDLE": "/absolute/path/to/.enigma/bundle.json"
|
|
420
|
+
}
|
|
421
|
+
}
|
|
422
|
+
}
|
|
423
|
+
}
|
|
424
|
+
```
|
|
425
|
+
|
|
426
|
+
CLI:
|
|
427
|
+
|
|
428
|
+
```sh
|
|
429
|
+
enigma connect opencode --dry-run
|
|
430
|
+
enigma connect opencode
|
|
431
|
+
```
|
|
432
|
+
|
|
433
|
+
Restart OpenCode after changing the config.
|
|
434
|
+
|
|
435
|
+
## Generic MCP client
|
|
436
|
+
|
|
437
|
+
Connector ID: `generic-mcp`
|
|
438
|
+
|
|
439
|
+
Default config paths:
|
|
440
|
+
|
|
441
|
+
- Windows: `%APPDATA%\Enigma\mcp.json`
|
|
442
|
+
- macOS: `$HOME/Library/Application Support/Enigma/mcp.json`
|
|
443
|
+
- Linux: `$HOME/.config/enigma/mcp.json`
|
|
444
|
+
|
|
445
|
+
Manual entry:
|
|
446
|
+
|
|
447
|
+
```json
|
|
448
|
+
{
|
|
449
|
+
"mcpServers": {
|
|
450
|
+
"enigma": {
|
|
451
|
+
"command": "enigma-mcp",
|
|
452
|
+
"args": [],
|
|
453
|
+
"env": {
|
|
454
|
+
"ENIGMA_BUNDLE": "/absolute/path/to/.enigma/bundle.json"
|
|
455
|
+
}
|
|
456
|
+
}
|
|
457
|
+
}
|
|
458
|
+
}
|
|
459
|
+
```
|
|
460
|
+
|
|
461
|
+
CLI:
|
|
462
|
+
|
|
463
|
+
```sh
|
|
464
|
+
enigma connect generic-mcp --dry-run
|
|
465
|
+
enigma connect generic-mcp
|
|
466
|
+
```
|
|
467
|
+
|
|
468
|
+
## Verify MCP by hand
|
|
469
|
+
|
|
470
|
+
```sh
|
|
471
|
+
printf '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"manual","version":"0"}}}\n{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}\n' | ENIGMA_BUNDLE="$HOME/.enigma/bundle.json" enigma-mcp
|
|
472
|
+
```
|
|
473
|
+
|
|
474
|
+
Expected behavior: the response lists Enigma tools (`enigma_init`, `enigma_remember`, `enigma_search`, `enigma_context_pack`, `enigma_delete`, `enigma_verify_receipts`), the `enigma://passport/summary` resource, and the `enigma_standard_memory_prompt` prompt. This only verifies the local MCP process and bundle path. It does not prove that a hosted provider deleted memory or forgot anything.
|
|
475
|
+
|
|
476
|
+
## Import/export commands for migrations
|
|
477
|
+
|
|
478
|
+
Import a source export into an Enigma report:
|
|
479
|
+
|
|
480
|
+
```sh
|
|
481
|
+
enigma import chatgpt --file ./chatgpt-export.json --out ./enigma-import-report.json
|
|
482
|
+
enigma import claude --file ./claude-memory.json --out ./enigma-import-report.json
|
|
483
|
+
enigma import mem0 --file ./mem0-export.json --out ./enigma-import-report.json
|
|
484
|
+
enigma import letta --file ./letta-agent.json --out ./enigma-import-report.json
|
|
485
|
+
enigma import langgraph --file ./langgraph-store.json --out ./enigma-import-report.json
|
|
486
|
+
enigma import graphiti --file ./zep-graphiti-export.json --out ./enigma-import-report.json
|
|
487
|
+
```
|
|
488
|
+
|
|
489
|
+
Export/import an Enigma capsule:
|
|
490
|
+
|
|
491
|
+
```sh
|
|
492
|
+
enigma capsule export --file ./enigma-import-report.json --out ./enigma-capsule.json
|
|
493
|
+
enigma capsule import --file ./enigma-capsule.json --bundle "$HOME/.enigma/bundle.json"
|
|
494
|
+
```
|
|
495
|
+
|
|
496
|
+
Imported source memories carry limitations and completeness status. They become Enigma-canonical only after writing through the local vault and receiving Enigma receipts.
|
|
497
|
+
|
|
498
|
+
## Honesty boundaries for client setup
|
|
499
|
+
|
|
500
|
+
Enigma client connectors can say:
|
|
501
|
+
|
|
502
|
+
- The client is configured to start `enigma-mcp`.
|
|
503
|
+
- The Enigma MCP server can read/write the configured local bundle.
|
|
504
|
+
- Enigma receipts can verify Enigma-controlled lifecycle events.
|
|
505
|
+
- Provider-native memory is cache only in this architecture.
|
|
506
|
+
|
|
507
|
+
Enigma client connectors cannot say:
|
|
508
|
+
|
|
509
|
+
- Claude, Cursor, Kimi, VS Code extensions, Roo, OpenCode, ChatGPT, or any hosted provider deleted hidden copies.
|
|
510
|
+
- A model forgot a memory.
|
|
511
|
+
- A provider will never store prompt/context text after a user approves insertion.
|
|
512
|
+
- Imported provider exports are complete unless the source explicitly proves completeness.
|
|
@@ -201,7 +201,7 @@ enigma chain attest \
|
|
|
201
201
|
--report-hash sha256:5555555555555555555555555555555555555555555555555555555555555555 \
|
|
202
202
|
--dataset-ref enigma-fixture:deterministic-local:v1 \
|
|
203
203
|
--runner-ref enigma-memory:local-benchmark-runner:v1 \
|
|
204
|
-
--package-ref npm:enigma-memory@0.1.
|
|
204
|
+
--package-ref npm:enigma-memory@0.1.13 \
|
|
205
205
|
--score recall_at_5=1 \
|
|
206
206
|
--score p95_latency_ms=14 \
|
|
207
207
|
--out .enigma/proof-network/benchmark-attestation.json
|
|
@@ -219,7 +219,7 @@ enigma chain attest \
|
|
|
219
219
|
--report-file .enigma/benchmarks/report.json \
|
|
220
220
|
--dataset-ref enigma-fixture:deterministic-local:v1 \
|
|
221
221
|
--runner-ref enigma-memory:scripts/run-memory-benchmarks.mjs \
|
|
222
|
-
--package-ref npm:enigma-memory@0.1.
|
|
222
|
+
--package-ref npm:enigma-memory@0.1.13 \
|
|
223
223
|
--score recall_at_5=1 \
|
|
224
224
|
--score p95_latency_ms=14 \
|
|
225
225
|
--out .enigma/proof-network/benchmark-attestation.json
|
|
@@ -236,7 +236,7 @@ Expected public-safe output shape from `chain attest`:
|
|
|
236
236
|
"report_hash": "sha256:5555555555555555555555555555555555555555555555555555555555555555",
|
|
237
237
|
"dataset_ref": "enigma-fixture:deterministic-local:v1",
|
|
238
238
|
"runner_ref": "enigma-memory:local-benchmark-runner:v1",
|
|
239
|
-
"package_ref": "npm:enigma-memory@0.1.
|
|
239
|
+
"package_ref": "npm:enigma-memory@0.1.13",
|
|
240
240
|
"scores": {
|
|
241
241
|
"recall_at_5": 1,
|
|
242
242
|
"p95_latency_ms": 14
|
|
@@ -67,12 +67,12 @@ The example app prints ids, counts, roots, and verification status only. It does
|
|
|
67
67
|
|
|
68
68
|
## CLI and CI loop
|
|
69
69
|
|
|
70
|
-
The CI example installs Node 24, installs
|
|
70
|
+
The CI example installs Node 24, installs `enigma-memory` into a disposable npm project, exposes the package benchmark script, then runs:
|
|
71
71
|
|
|
72
72
|
```sh
|
|
73
|
-
npx
|
|
74
|
-
npx
|
|
75
|
-
npx
|
|
73
|
+
npx enigma test-drive --overwrite
|
|
74
|
+
npx enigma setup --overwrite
|
|
75
|
+
npx enigma doctor
|
|
76
76
|
npm run benchmark:memory-suite -- --out benchmark-report.json
|
|
77
77
|
```
|
|
78
78
|
|
|
@@ -105,7 +105,7 @@ npx --yes --package enigma-memory enigma test-drive --overwrite
|
|
|
105
105
|
npx --yes --package enigma-memory enigma chain anchor --root sha256:8f8f... --root sha256:9a9a... --ref demo-local-vault --authority demo-public-authority --batch-ref demo-anchor-batch --out .enigma/proof-anchor-batch.json
|
|
106
106
|
npx --yes --package enigma-memory enigma chain grant --subject did:example:agent --capability memory.read --scope demo-scope --resource-ref sha256:8f8f... --policy-hash sha256:7e7e... --expires-at 2026-07-01T00:00:00Z --grant-ref demo-grant --out .enigma/proof-capability-grant.json
|
|
107
107
|
npx --yes --package enigma-memory enigma chain revoke --grant-hash sha256:6d6d... --reason scope-ended --revocation-ref demo-revocation --out .enigma/proof-capability-revocation.json
|
|
108
|
-
npx --yes --package enigma-memory enigma chain attest --report-file benchmark-report.json --dataset-ref sha256:5c5c... --runner-ref enigma-standard-runner --package-ref enigma-memory@0.1.
|
|
108
|
+
npx --yes --package enigma-memory enigma chain attest --report-file benchmark-report.json --dataset-ref sha256:5c5c... --runner-ref enigma-standard-runner --package-ref enigma-memory@0.1.13 --score accuracy=0.92 --out .enigma/proof-benchmark-attestation.json
|
|
109
109
|
npx --yes --package enigma-memory enigma chain verify --file .enigma/proof-anchor-batch.json
|
|
110
110
|
```
|
|
111
111
|
|
|
@@ -141,7 +141,7 @@ npx --yes --package enigma-memory enigma chain attest \
|
|
|
141
141
|
--report-hash sha256:6666666666666666666666666666666666666666666666666666666666666666 \
|
|
142
142
|
--dataset-ref dataset:quickstart-public-fixture:v1 \
|
|
143
143
|
--runner-ref runner:enigma-local:v1 \
|
|
144
|
-
--package-ref npm:enigma-memory@0.1.
|
|
144
|
+
--package-ref npm:enigma-memory@0.1.13 \
|
|
145
145
|
--score recall_at_5=1 \
|
|
146
146
|
--score p95_latency_ms=14 \
|
|
147
147
|
--out .enigma/proof-quickstart/benchmark-attestation.json
|
|
@@ -154,7 +154,7 @@ npx --yes --package enigma-memory enigma chain attest \
|
|
|
154
154
|
--report-file .enigma/proof-quickstart/reviewed-benchmark-report.json \
|
|
155
155
|
--dataset-ref dataset:quickstart-public-fixture:v1 \
|
|
156
156
|
--runner-ref runner:enigma-local:v1 \
|
|
157
|
-
--package-ref npm:enigma-memory@0.1.
|
|
157
|
+
--package-ref npm:enigma-memory@0.1.13 \
|
|
158
158
|
--score recall_at_5=1 \
|
|
159
159
|
--score p95_latency_ms=14 \
|
|
160
160
|
--out .enigma/proof-quickstart/benchmark-attestation.json
|
|
@@ -282,7 +282,7 @@ const attestation = createBenchmarkAttestation({
|
|
|
282
282
|
report_hash: 'sha256:6666666666666666666666666666666666666666666666666666666666666666',
|
|
283
283
|
dataset_ref: 'dataset:quickstart-public-fixture:v1',
|
|
284
284
|
runner_ref: 'runner:enigma-local:v1',
|
|
285
|
-
package_ref: 'npm:enigma-memory@0.1.
|
|
285
|
+
package_ref: 'npm:enigma-memory@0.1.13',
|
|
286
286
|
sample_count: 12,
|
|
287
287
|
run_count: 1,
|
|
288
288
|
});
|
|
@@ -341,7 +341,7 @@ The negative fixture set should include intentionally unsafe keys and values so
|
|
|
341
341
|
"subject": {
|
|
342
342
|
"name_ref": "public-package-or-client-ref",
|
|
343
343
|
"version": "0.0.0",
|
|
344
|
-
"enigma_version": "0.1.
|
|
344
|
+
"enigma_version": "0.1.13"
|
|
345
345
|
},
|
|
346
346
|
"commands": [
|
|
347
347
|
{
|