anairyspirit 0.1.441 → 0.1.442
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/README.md +10 -3
- package/lib/core.js +6 -1
- package/lib/notice.js +31 -6
- package/package.json +1 -5
- package/sums.json +4 -4
package/README.md
CHANGED
|
@@ -4,7 +4,7 @@ A personal AI memory graph that runs on your own machine. Your AI agents keep
|
|
|
4
4
|
long-term memory in it over MCP and REST; nothing leaves the machine.
|
|
5
5
|
|
|
6
6
|
This package installs it and runs it — macOS and Linux (x86_64, arm64), Node 18
|
|
7
|
-
or newer. It carries no program itself: it downloads the release it was built
|
|
7
|
+
or newer, and `curl` (setup downloads the models with it). It carries no program itself: it downloads the release it was built
|
|
8
8
|
for from GitHub and checks it against the checksums of that release's signed
|
|
9
9
|
manifest before anything runs.
|
|
10
10
|
|
|
@@ -14,10 +14,17 @@ manifest before anything runs.
|
|
|
14
14
|
npx anairyspirit setup
|
|
15
15
|
```
|
|
16
16
|
|
|
17
|
-
`setup` asks
|
|
18
|
-
|
|
17
|
+
`setup` asks you to accept the licence (answer `y`), asks about encryption and
|
|
18
|
+
the rest, shows a 24-word recovery phrase (write it down), installs the program
|
|
19
|
+
as `anairyspirit` (in `/usr/local/bin`, or `~/.local/bin` — then open a new
|
|
19
20
|
terminal) and starts its service.
|
|
20
21
|
|
|
22
|
+
`npm i anairyspirit` only adds this launcher (as `anairyspirit-npm`); the
|
|
23
|
+
install is the `npx` line above.
|
|
24
|
+
|
|
25
|
+
Windows has no build of its own: run anairyspirit in Docker Desktop, or inside
|
|
26
|
+
WSL with the line above — https://github.com/Seventhwalllab/anairyspirit#install
|
|
27
|
+
|
|
21
28
|
## Use it from an AI client
|
|
22
29
|
|
|
23
30
|
Once installed, every command goes to the installed program, so an MCP client
|
package/lib/core.js
CHANGED
|
@@ -202,7 +202,12 @@ async function main(args, opts) {
|
|
|
202
202
|
const o = { ...opts, log };
|
|
203
203
|
if (!archiveFor(o.platform, o.arch, o.sums.version)) {
|
|
204
204
|
log(`${TAG}: anairyspirit runs on macOS and on Linux (x86_64, arm64); this is ${o.platform}/${o.arch}.`);
|
|
205
|
-
log('On Windows, run it in Docker
|
|
205
|
+
log('On Windows, run it in Docker Desktop, or inside WSL with `npx anairyspirit setup`:');
|
|
206
|
+
log(' https://github.com/Seventhwalllab/anairyspirit#install');
|
|
207
|
+
if (args[0] === 'mcp') {
|
|
208
|
+
const text = notice.unsupportedText(o.sums.version, `${o.platform}/${o.arch}`);
|
|
209
|
+
return notice.serve(o.stdin || process.stdin, o.stdout || process.stdout, o.sums.version, text);
|
|
210
|
+
}
|
|
206
211
|
return 1;
|
|
207
212
|
}
|
|
208
213
|
const installed = findInstalled(o.env, o.home, o.self, o.extraDirs);
|
package/lib/notice.js
CHANGED
|
@@ -44,6 +44,27 @@ function setupText(version) {
|
|
|
44
44
|
].join('\n');
|
|
45
45
|
}
|
|
46
46
|
|
|
47
|
+
// Windows and anything else without a build: the memory runs in Docker there,
|
|
48
|
+
// or inside WSL (Linux), and the agent should hear that instead of a server
|
|
49
|
+
// that dies before `initialize`. Until 0.1.441 the package refused such a
|
|
50
|
+
// machine through npm's `os` field, so this was never said (public install
|
|
51
|
+
// check of 28.10).
|
|
52
|
+
function unsupportedText(version, platform) {
|
|
53
|
+
return [
|
|
54
|
+
`anairyspirit does not run on this system (${platform}) directly: it runs on macOS and Linux.`,
|
|
55
|
+
'',
|
|
56
|
+
'Ask the user to run it in Docker (Docker Desktop on Windows):',
|
|
57
|
+
'',
|
|
58
|
+
' docker run -d --name anairyspirit -v anairyspirit-data:/data \\',
|
|
59
|
+
' -v anairyspirit-models:/home/anairyspirit/.cache/anairyspirit \\',
|
|
60
|
+
` --restart unless-stopped seventhwalllab/anairyspirit:${version}`,
|
|
61
|
+
'',
|
|
62
|
+
'then change this MCP client to start: docker exec -i anairyspirit anairyspirit mcp',
|
|
63
|
+
'',
|
|
64
|
+
'Or, inside WSL (Linux on Windows): npx anairyspirit setup — and run the MCP client there.',
|
|
65
|
+
].join('\n');
|
|
66
|
+
}
|
|
67
|
+
|
|
47
68
|
function reply(id, result) {
|
|
48
69
|
return { jsonrpc: '2.0', id, result };
|
|
49
70
|
}
|
|
@@ -52,8 +73,9 @@ function failure(id, code, message) {
|
|
|
52
73
|
return { jsonrpc: '2.0', id, error: { code, message } };
|
|
53
74
|
}
|
|
54
75
|
|
|
55
|
-
/** One JSON-RPC message in, its response out — null for a notification.
|
|
56
|
-
|
|
76
|
+
/** One JSON-RPC message in, its response out — null for a notification.
|
|
77
|
+
* `text` is what the tool says: [`setupText`] by default. */
|
|
78
|
+
function respond(msg, version, text) {
|
|
57
79
|
if (!msg || typeof msg !== 'object' || Array.isArray(msg)) {
|
|
58
80
|
return failure(null, -32600, 'Invalid Request');
|
|
59
81
|
}
|
|
@@ -76,7 +98,10 @@ function respond(msg, version) {
|
|
|
76
98
|
case 'tools/call': {
|
|
77
99
|
const name = params && params.name;
|
|
78
100
|
if (name !== TOOL) return failure(id, -32602, `Unknown tool: ${name}`);
|
|
79
|
-
return reply(id, {
|
|
101
|
+
return reply(id, {
|
|
102
|
+
content: [{ type: 'text', text: text || setupText(version) }],
|
|
103
|
+
isError: false,
|
|
104
|
+
});
|
|
80
105
|
}
|
|
81
106
|
default:
|
|
82
107
|
return failure(id, -32601, `Method not found: ${method}`);
|
|
@@ -84,7 +109,7 @@ function respond(msg, version) {
|
|
|
84
109
|
}
|
|
85
110
|
|
|
86
111
|
/** Answer MCP on `input`/`output` until `input` closes; resolves to 0. */
|
|
87
|
-
function serve(input, output, version) {
|
|
112
|
+
function serve(input, output, version, text) {
|
|
88
113
|
return new Promise((resolve) => {
|
|
89
114
|
let buf = '';
|
|
90
115
|
const send = (m) => output.write(`${JSON.stringify(m)}\n`);
|
|
@@ -103,7 +128,7 @@ function serve(input, output, version) {
|
|
|
103
128
|
send(failure(null, -32700, 'Parse error'));
|
|
104
129
|
continue;
|
|
105
130
|
}
|
|
106
|
-
const out = respond(msg, version);
|
|
131
|
+
const out = respond(msg, version, text);
|
|
107
132
|
if (out) send(out);
|
|
108
133
|
}
|
|
109
134
|
});
|
|
@@ -112,4 +137,4 @@ function serve(input, output, version) {
|
|
|
112
137
|
});
|
|
113
138
|
}
|
|
114
139
|
|
|
115
|
-
module.exports = { TOOL, PROTOCOL_VERSIONS, respond, serve, setupText };
|
|
140
|
+
module.exports = { TOOL, PROTOCOL_VERSIONS, respond, serve, setupText, unsupportedText };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "anairyspirit",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.442",
|
|
4
4
|
"mcpName": "io.github.Seventhwalllab/anairyspirit",
|
|
5
5
|
"description": "Personal AI memory graph that runs locally: long-term memory for your AI agents over MCP and REST",
|
|
6
6
|
"homepage": "https://github.com/Seventhwalllab/anairyspirit",
|
|
@@ -29,10 +29,6 @@
|
|
|
29
29
|
"LICENSE",
|
|
30
30
|
"EULA.txt"
|
|
31
31
|
],
|
|
32
|
-
"os": [
|
|
33
|
-
"darwin",
|
|
34
|
-
"linux"
|
|
35
|
-
],
|
|
36
32
|
"engines": {
|
|
37
33
|
"node": ">=18"
|
|
38
34
|
},
|
package/sums.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "0.1.
|
|
2
|
+
"version": "0.1.442",
|
|
3
3
|
"files": {
|
|
4
|
-
"anairyspirit-0.1.
|
|
5
|
-
"anairyspirit-0.1.
|
|
6
|
-
"anairyspirit-0.1.
|
|
4
|
+
"anairyspirit-0.1.442-macos-universal.tar.gz": "09b98d2bdf5169df51823c9be065285cc2eb47798faac658212288d1e3c9197a",
|
|
5
|
+
"anairyspirit-0.1.442-arm64.tar.gz": "879fddb43ae5902b9fab704cafa8231bf1258be46f4ed59c4e451751c0aad5c5",
|
|
6
|
+
"anairyspirit-0.1.442-x86_64.tar.gz": "31dea25280e91a387c2032741b6275a8f0b746639f3ac04bc401ef61720d28a6"
|
|
7
7
|
}
|
|
8
8
|
}
|