@everme/claude-code 0.1.0 → 0.2.1
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/.claude-plugin/marketplace.json +1 -1
- package/{plugin.json → .claude-plugin/plugin.json} +1 -1
- package/README.md +2 -2
- package/hooks/scripts/inject-memories.js +14 -2
- package/hooks/scripts/mcp-server.js +1 -1
- package/hooks/scripts/store-memories.js +10 -1
- package/package.json +16 -6
- /package/{.claude-plugin/.mcp.json → .mcp.json} +0 -0
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
"name": "everme",
|
|
11
11
|
"source": "./",
|
|
12
12
|
"description": "Automatic memory recall for Claude Code through the EverMe gateway. Saves and recalls per-session context using your EverMe account credentials.",
|
|
13
|
-
"version": "0.
|
|
13
|
+
"version": "0.2.0",
|
|
14
14
|
"homepage": "https://everme.evermind.ai",
|
|
15
15
|
"license": "Apache-2.0"
|
|
16
16
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "everme",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "EverMe — automatic memory recall for Claude Code. Recalls relevant context from past sessions before each prompt and saves new turns through the EverMe gateway.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "EverMind AI",
|
package/README.md
CHANGED
|
@@ -76,9 +76,9 @@ In a new Claude Code session:
|
|
|
76
76
|
## Files
|
|
77
77
|
|
|
78
78
|
```
|
|
79
|
-
plugin.json
|
|
80
|
-
.claude-plugin/.mcp.json MCP server registration
|
|
79
|
+
.claude-plugin/plugin.json plugin metadata
|
|
81
80
|
.claude-plugin/marketplace.json marketplace listing
|
|
81
|
+
.mcp.json MCP server registration
|
|
82
82
|
hooks/hooks.json SessionStart / UserPromptSubmit / Stop / SessionEnd wiring
|
|
83
83
|
hooks/scripts/inject-memories.js UserPromptSubmit handler
|
|
84
84
|
hooks/scripts/store-memories.js Stop handler
|
|
@@ -48,6 +48,7 @@ async function main() {
|
|
|
48
48
|
// where there is no prompt, but per-turn inject goes through search.
|
|
49
49
|
let block = "";
|
|
50
50
|
let count = 0;
|
|
51
|
+
let degraded = null;
|
|
51
52
|
try {
|
|
52
53
|
const res = await searchMemories(prompt, { topK: TOP_K });
|
|
53
54
|
// EverOS frequently returns score=null on episodic hits (decoded as
|
|
@@ -77,11 +78,22 @@ async function main() {
|
|
|
77
78
|
const inner = buildMemoryPrompt(bundle, { wrapInCodeBlock: false });
|
|
78
79
|
if (inner) block = `<everme_recall>\n${inner}\n</everme_recall>`;
|
|
79
80
|
} catch (err) {
|
|
80
|
-
|
|
81
|
+
const reason = redactError(err?.message || String(err));
|
|
82
|
+
degraded = reason;
|
|
83
|
+
debug("inject", "search failed:", reason);
|
|
81
84
|
}
|
|
82
85
|
|
|
83
86
|
if (!block || count === 0) {
|
|
84
|
-
|
|
87
|
+
if (degraded) {
|
|
88
|
+
// Visible single-line WARN — the hook is by design non-blocking,
|
|
89
|
+
// but a fully silent failure means the user thinks EverMe is
|
|
90
|
+
// running while every recall is dropped. Surface it once per
|
|
91
|
+
// hook invocation so persistent issues (expired token, backend
|
|
92
|
+
// unreachable) bubble up without forcing EVERME_DEBUG=1.
|
|
93
|
+
process.stderr.write(`EverMe inject hook degraded: ${degraded}\n`);
|
|
94
|
+
} else {
|
|
95
|
+
debug("inject", "no memories above threshold");
|
|
96
|
+
}
|
|
85
97
|
return process.exit(0);
|
|
86
98
|
}
|
|
87
99
|
|
|
@@ -53,7 +53,7 @@ const handlers = {
|
|
|
53
53
|
initialize: () => ({
|
|
54
54
|
protocolVersion: "2024-11-05",
|
|
55
55
|
capabilities: { tools: { listChanged: false } },
|
|
56
|
-
serverInfo: { name: "everme", version: "0.
|
|
56
|
+
serverInfo: { name: "everme", version: "0.2.0" },
|
|
57
57
|
}),
|
|
58
58
|
"tools/list": () => ({ tools: TOOLS }),
|
|
59
59
|
"tools/call": async (params) => {
|
|
@@ -68,11 +68,20 @@ async function main() {
|
|
|
68
68
|
});
|
|
69
69
|
debug("store", `ok agent-memory status=${res?.status || "unknown"} flushed=${!!res?.flushed} messages=${res?.messageCount || tail.length}`);
|
|
70
70
|
} catch (err) {
|
|
71
|
+
// Visible single-line WARN — Stop hook is non-blocking by design,
|
|
72
|
+
// but silently dropping every turn means a misconfigured machine
|
|
73
|
+
// looks healthy while EverMe never receives a write. Surface
|
|
74
|
+
// it once per Stop so persistent issues (401, network, schema
|
|
75
|
+
// drift) bubble up without forcing EVERME_DEBUG=1.
|
|
76
|
+
let reason;
|
|
71
77
|
if (err instanceof EvermeError) {
|
|
78
|
+
reason = `${err.type}: ${redactError(err.message)}`;
|
|
72
79
|
debug("store", `failed type=${err.type}:`, redactError(err.message));
|
|
73
80
|
} else {
|
|
74
|
-
|
|
81
|
+
reason = redactError(err?.message || String(err));
|
|
82
|
+
debug("store", "unexpected:", reason);
|
|
75
83
|
}
|
|
84
|
+
process.stderr.write(`EverMe store hook degraded: ${reason}\n`);
|
|
76
85
|
}
|
|
77
86
|
process.exit(0);
|
|
78
87
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@everme/claude-code",
|
|
3
|
-
"version": "0.1
|
|
3
|
+
"version": "0.2.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "EverMe native plugin for Claude Code — automatic memory recall via SessionStart/UserPromptSubmit/Stop/SessionEnd hooks, plus /recall slash + bundled MCP server.",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -8,11 +8,11 @@
|
|
|
8
8
|
"node": ">=18.0.0"
|
|
9
9
|
},
|
|
10
10
|
"scripts": {
|
|
11
|
-
"test": "node --test tests/redact.test.js tests/config.test.js tests/transcript.test.js"
|
|
11
|
+
"test": "node --test tests/redact.test.js tests/config.test.js tests/transcript.test.js tests/hooks.test.js"
|
|
12
12
|
},
|
|
13
13
|
"files": [
|
|
14
|
-
"plugin.json",
|
|
15
14
|
".claude-plugin/",
|
|
15
|
+
".mcp.json",
|
|
16
16
|
"hooks/",
|
|
17
17
|
"commands/",
|
|
18
18
|
"skills/",
|
|
@@ -21,10 +21,20 @@
|
|
|
21
21
|
"README.md"
|
|
22
22
|
],
|
|
23
23
|
"dependencies": {
|
|
24
|
-
"@everme/agent-sdk": "^0.1
|
|
24
|
+
"@everme/agent-sdk": "^0.2.1"
|
|
25
25
|
},
|
|
26
|
-
"keywords": [
|
|
27
|
-
|
|
26
|
+
"keywords": [
|
|
27
|
+
"evermind",
|
|
28
|
+
"everme",
|
|
29
|
+
"claude-code",
|
|
30
|
+
"claude",
|
|
31
|
+
"anthropic",
|
|
32
|
+
"memory",
|
|
33
|
+
"ai",
|
|
34
|
+
"agent",
|
|
35
|
+
"mcp"
|
|
36
|
+
],
|
|
37
|
+
"homepage": "https://everme.evermind.ai",
|
|
28
38
|
"repository": {
|
|
29
39
|
"type": "git",
|
|
30
40
|
"url": "git+https://github.com/alwaysday1/everme.git",
|
|
File without changes
|