openclaw-engram 0.2.0 → 0.4.0
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/openclaw.plugin.json +86 -86
- package/package.json +49 -45
- package/scripts/install.sh +38 -0
package/openclaw.plugin.json
CHANGED
|
@@ -1,86 +1,86 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "engram",
|
|
3
|
-
"id": "engram",
|
|
4
|
-
"version": "0.2.0",
|
|
5
|
-
"displayName": "Engram Memory",
|
|
6
|
-
"description": "Connects OpenClaw agents to engram persistent memory server for long-term context retention",
|
|
7
|
-
"kind": "memory",
|
|
8
|
-
"author": "thebtf",
|
|
9
|
-
"main": "dist/index.js",
|
|
10
|
-
"configSchema": {
|
|
11
|
-
"type": "object",
|
|
12
|
-
"properties": {
|
|
13
|
-
"url": {
|
|
14
|
-
"type": "string",
|
|
15
|
-
"description": "Engram server URL (e.g. http://localhost:37777)",
|
|
16
|
-
"default": "http://localhost:37777"
|
|
17
|
-
},
|
|
18
|
-
"token": {
|
|
19
|
-
"type": "string",
|
|
20
|
-
"description": "Bearer token for engram API authentication",
|
|
21
|
-
"uiHints": { "sensitive": true }
|
|
22
|
-
},
|
|
23
|
-
"project": {
|
|
24
|
-
"type": "string",
|
|
25
|
-
"description": "Project scope override (defaults to auto-detected from workspace)"
|
|
26
|
-
},
|
|
27
|
-
"contextLimit": {
|
|
28
|
-
"type": "number",
|
|
29
|
-
"description": "Maximum observations to inject per prompt",
|
|
30
|
-
"default": 10
|
|
31
|
-
},
|
|
32
|
-
"sessionContextLimit": {
|
|
33
|
-
"type": "number",
|
|
34
|
-
"description": "Maximum observations to inject at session start",
|
|
35
|
-
"default": 20
|
|
36
|
-
},
|
|
37
|
-
"tokenBudget": {
|
|
38
|
-
"type": "number",
|
|
39
|
-
"description": "Maximum token budget for context injection (approx 4 chars per token)",
|
|
40
|
-
"default": 2000
|
|
41
|
-
},
|
|
42
|
-
"timeoutMs": {
|
|
43
|
-
"type": "number",
|
|
44
|
-
"description": "Per-request timeout in milliseconds",
|
|
45
|
-
"default": 5000
|
|
46
|
-
},
|
|
47
|
-
"autoExtract": {
|
|
48
|
-
"type": "boolean",
|
|
49
|
-
"description": "Enable automatic observation extraction on compaction/session-end",
|
|
50
|
-
"default": true
|
|
51
|
-
},
|
|
52
|
-
"logLevel": {
|
|
53
|
-
"type": "string",
|
|
54
|
-
"enum": ["debug", "info", "warn", "error"],
|
|
55
|
-
"description": "Log verbosity level",
|
|
56
|
-
"default": "warn"
|
|
57
|
-
}
|
|
58
|
-
},
|
|
59
|
-
"required": ["url", "token"]
|
|
60
|
-
},
|
|
61
|
-
"hooks": [
|
|
62
|
-
"session_start",
|
|
63
|
-
"before_prompt_build",
|
|
64
|
-
"after_tool_call",
|
|
65
|
-
"before_compaction",
|
|
66
|
-
"session_end"
|
|
67
|
-
],
|
|
68
|
-
"tools": [
|
|
69
|
-
"engram_search",
|
|
70
|
-
"engram_remember",
|
|
71
|
-
"engram_decisions",
|
|
72
|
-
"memory_search",
|
|
73
|
-
"memory_store",
|
|
74
|
-
"memory_forget",
|
|
75
|
-
"memory_get",
|
|
76
|
-
"memory_migrate"
|
|
77
|
-
],
|
|
78
|
-
"commands": [
|
|
79
|
-
"memory",
|
|
80
|
-
"remember",
|
|
81
|
-
"migrate"
|
|
82
|
-
],
|
|
83
|
-
"cli": {
|
|
84
|
-
"commands": ["memory"]
|
|
85
|
-
}
|
|
86
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "engram",
|
|
3
|
+
"id": "engram",
|
|
4
|
+
"version": "0.2.0",
|
|
5
|
+
"displayName": "Engram Memory",
|
|
6
|
+
"description": "Connects OpenClaw agents to engram persistent memory server for long-term context retention",
|
|
7
|
+
"kind": "memory",
|
|
8
|
+
"author": "thebtf",
|
|
9
|
+
"main": "dist/index.js",
|
|
10
|
+
"configSchema": {
|
|
11
|
+
"type": "object",
|
|
12
|
+
"properties": {
|
|
13
|
+
"url": {
|
|
14
|
+
"type": "string",
|
|
15
|
+
"description": "Engram server URL (e.g. http://localhost:37777)",
|
|
16
|
+
"default": "http://localhost:37777"
|
|
17
|
+
},
|
|
18
|
+
"token": {
|
|
19
|
+
"type": "string",
|
|
20
|
+
"description": "Bearer token for engram API authentication",
|
|
21
|
+
"uiHints": { "sensitive": true }
|
|
22
|
+
},
|
|
23
|
+
"project": {
|
|
24
|
+
"type": "string",
|
|
25
|
+
"description": "Project scope override (defaults to auto-detected from workspace)"
|
|
26
|
+
},
|
|
27
|
+
"contextLimit": {
|
|
28
|
+
"type": "number",
|
|
29
|
+
"description": "Maximum observations to inject per prompt",
|
|
30
|
+
"default": 10
|
|
31
|
+
},
|
|
32
|
+
"sessionContextLimit": {
|
|
33
|
+
"type": "number",
|
|
34
|
+
"description": "Maximum observations to inject at session start",
|
|
35
|
+
"default": 20
|
|
36
|
+
},
|
|
37
|
+
"tokenBudget": {
|
|
38
|
+
"type": "number",
|
|
39
|
+
"description": "Maximum token budget for context injection (approx 4 chars per token)",
|
|
40
|
+
"default": 2000
|
|
41
|
+
},
|
|
42
|
+
"timeoutMs": {
|
|
43
|
+
"type": "number",
|
|
44
|
+
"description": "Per-request timeout in milliseconds",
|
|
45
|
+
"default": 5000
|
|
46
|
+
},
|
|
47
|
+
"autoExtract": {
|
|
48
|
+
"type": "boolean",
|
|
49
|
+
"description": "Enable automatic observation extraction on compaction/session-end",
|
|
50
|
+
"default": true
|
|
51
|
+
},
|
|
52
|
+
"logLevel": {
|
|
53
|
+
"type": "string",
|
|
54
|
+
"enum": ["debug", "info", "warn", "error"],
|
|
55
|
+
"description": "Log verbosity level",
|
|
56
|
+
"default": "warn"
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
"required": ["url", "token"]
|
|
60
|
+
},
|
|
61
|
+
"hooks": [
|
|
62
|
+
"session_start",
|
|
63
|
+
"before_prompt_build",
|
|
64
|
+
"after_tool_call",
|
|
65
|
+
"before_compaction",
|
|
66
|
+
"session_end"
|
|
67
|
+
],
|
|
68
|
+
"tools": [
|
|
69
|
+
"engram_search",
|
|
70
|
+
"engram_remember",
|
|
71
|
+
"engram_decisions",
|
|
72
|
+
"memory_search",
|
|
73
|
+
"memory_store",
|
|
74
|
+
"memory_forget",
|
|
75
|
+
"memory_get",
|
|
76
|
+
"memory_migrate"
|
|
77
|
+
],
|
|
78
|
+
"commands": [
|
|
79
|
+
"memory",
|
|
80
|
+
"remember",
|
|
81
|
+
"migrate"
|
|
82
|
+
],
|
|
83
|
+
"cli": {
|
|
84
|
+
"commands": ["memory"]
|
|
85
|
+
}
|
|
86
|
+
}
|
package/package.json
CHANGED
|
@@ -1,45 +1,49 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "openclaw-engram",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "OpenClaw plugin that connects to engram persistent memory server",
|
|
5
|
-
"main": "dist/index.js",
|
|
6
|
-
"types": "dist/index.d.ts",
|
|
7
|
-
"scripts": {
|
|
8
|
-
"build": "tsc",
|
|
9
|
-
"typecheck": "tsc --noEmit",
|
|
10
|
-
"prepublishOnly": "npm run build"
|
|
11
|
-
},
|
|
12
|
-
"files": [
|
|
13
|
-
"dist/",
|
|
14
|
-
"openclaw.plugin.json"
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
"engram"
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
"
|
|
24
|
-
"
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
"
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
"
|
|
35
|
-
"
|
|
36
|
-
},
|
|
37
|
-
"
|
|
38
|
-
"node": "
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
1
|
+
{
|
|
2
|
+
"name": "openclaw-engram",
|
|
3
|
+
"version": "0.4.0",
|
|
4
|
+
"description": "OpenClaw plugin that connects to engram persistent memory server",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"types": "dist/index.d.ts",
|
|
7
|
+
"scripts": {
|
|
8
|
+
"build": "tsc",
|
|
9
|
+
"typecheck": "tsc --noEmit",
|
|
10
|
+
"prepublishOnly": "npm run build"
|
|
11
|
+
},
|
|
12
|
+
"files": [
|
|
13
|
+
"dist/",
|
|
14
|
+
"openclaw.plugin.json",
|
|
15
|
+
"scripts/"
|
|
16
|
+
],
|
|
17
|
+
"bin": {
|
|
18
|
+
"openclaw-engram-install": "scripts/install.sh"
|
|
19
|
+
},
|
|
20
|
+
"keywords": [
|
|
21
|
+
"openclaw",
|
|
22
|
+
"engram",
|
|
23
|
+
"memory",
|
|
24
|
+
"plugin"
|
|
25
|
+
],
|
|
26
|
+
"repository": {
|
|
27
|
+
"type": "git",
|
|
28
|
+
"url": "https://github.com/thebtf/engram.git",
|
|
29
|
+
"directory": "plugin/openclaw-engram"
|
|
30
|
+
},
|
|
31
|
+
"license": "MIT",
|
|
32
|
+
"dependencies": {
|
|
33
|
+
"@sinclair/typebox": "^0.34.0",
|
|
34
|
+
"chokidar": "^4.0.3",
|
|
35
|
+
"zod": "^3.25.76"
|
|
36
|
+
},
|
|
37
|
+
"devDependencies": {
|
|
38
|
+
"@types/node": "^18.19.0",
|
|
39
|
+
"typescript": "^5.9.3"
|
|
40
|
+
},
|
|
41
|
+
"engines": {
|
|
42
|
+
"node": ">=18.0.0"
|
|
43
|
+
},
|
|
44
|
+
"openclaw": {
|
|
45
|
+
"extensions": [
|
|
46
|
+
"dist/index.js"
|
|
47
|
+
]
|
|
48
|
+
}
|
|
49
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# Install openclaw-engram plugin into OpenClaw extensions directory.
|
|
3
|
+
# Usage: npx openclaw-engram-install
|
|
4
|
+
# or: bash <(curl -sL https://raw.githubusercontent.com/thebtf/engram/main/plugin/openclaw-engram/scripts/install.sh)
|
|
5
|
+
|
|
6
|
+
set -euo pipefail
|
|
7
|
+
|
|
8
|
+
EXTENSIONS_DIR="${OPENCLAW_EXTENSIONS_DIR:-${HOME}/.openclaw/extensions}"
|
|
9
|
+
PLUGIN_DIR="${EXTENSIONS_DIR}/engram"
|
|
10
|
+
|
|
11
|
+
echo "Installing openclaw-engram to ${PLUGIN_DIR}..."
|
|
12
|
+
|
|
13
|
+
mkdir -p "${PLUGIN_DIR}"
|
|
14
|
+
cd "${PLUGIN_DIR}"
|
|
15
|
+
|
|
16
|
+
# Create minimal package.json wrapper if not exists
|
|
17
|
+
if [ ! -f package.json ]; then
|
|
18
|
+
cat > package.json << 'WRAP'
|
|
19
|
+
{
|
|
20
|
+
"name": "openclaw-ext-engram",
|
|
21
|
+
"version": "1.0.0",
|
|
22
|
+
"private": true,
|
|
23
|
+
"description": "OpenClaw extension wrapper for openclaw-engram plugin",
|
|
24
|
+
"main": "node_modules/openclaw-engram/dist/index.js"
|
|
25
|
+
}
|
|
26
|
+
WRAP
|
|
27
|
+
fi
|
|
28
|
+
|
|
29
|
+
# Install the npm package (brings all runtime deps)
|
|
30
|
+
npm install openclaw-engram@latest --save 2>&1 | tail -3
|
|
31
|
+
|
|
32
|
+
# Symlink plugin manifest and dist to extension root (OpenClaw expects them here)
|
|
33
|
+
ln -sf node_modules/openclaw-engram/openclaw.plugin.json openclaw.plugin.json
|
|
34
|
+
ln -sf node_modules/openclaw-engram/dist dist
|
|
35
|
+
|
|
36
|
+
echo ""
|
|
37
|
+
echo "Installed openclaw-engram@$(node -p "require('openclaw-engram/package.json').version")"
|
|
38
|
+
echo "Restart gateway: openclaw gateway restart"
|