@lanonasis/recall-forge 1.1.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/.claw/skills/SKILL.md +347 -0
- package/CHANGELOG.md +162 -0
- package/LICENSE +21 -0
- package/README.md +302 -0
- package/SETUP.md +190 -0
- package/dist/cli-common.d.ts +25 -0
- package/dist/cli-common.js +338 -0
- package/dist/cli-memory.d.ts +6 -0
- package/dist/cli-memory.js +146 -0
- package/dist/cli.d.ts +7 -0
- package/dist/cli.js +135 -0
- package/dist/client.d.ts +116 -0
- package/dist/client.js +643 -0
- package/dist/config.d.ts +41 -0
- package/dist/config.js +125 -0
- package/dist/enrichment/capture-filter.d.ts +4 -0
- package/dist/enrichment/capture-filter.js +44 -0
- package/dist/enrichment/prompt-safety.d.ts +13 -0
- package/dist/enrichment/prompt-safety.js +83 -0
- package/dist/enrichment/tag-extractor.d.ts +1 -0
- package/dist/enrichment/tag-extractor.js +47 -0
- package/dist/enrichment/type-detector.d.ts +2 -0
- package/dist/enrichment/type-detector.js +95 -0
- package/dist/extraction/cli-extract.d.ts +8 -0
- package/dist/extraction/cli-extract.js +66 -0
- package/dist/extraction/format-adapters.d.ts +8 -0
- package/dist/extraction/format-adapters.js +268 -0
- package/dist/extraction/index.d.ts +7 -0
- package/dist/extraction/index.js +7 -0
- package/dist/extraction/jsonl-extractor.d.ts +32 -0
- package/dist/extraction/jsonl-extractor.js +207 -0
- package/dist/extraction/markdown-extractor.d.ts +23 -0
- package/dist/extraction/markdown-extractor.js +228 -0
- package/dist/extraction/secret-redactor.d.ts +7 -0
- package/dist/extraction/secret-redactor.js +112 -0
- package/dist/extraction/sqlite-extractor.d.ts +15 -0
- package/dist/extraction/sqlite-extractor.js +245 -0
- package/dist/extraction/types.d.ts +50 -0
- package/dist/extraction/types.js +1 -0
- package/dist/hooks/capture.d.ts +23 -0
- package/dist/hooks/capture.js +162 -0
- package/dist/hooks/context-engine.d.ts +4 -0
- package/dist/hooks/context-engine.js +54 -0
- package/dist/hooks/local-fallback.d.ts +5 -0
- package/dist/hooks/local-fallback.js +31 -0
- package/dist/hooks/recall.d.ts +21 -0
- package/dist/hooks/recall.js +123 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +103 -0
- package/dist/plugin-sdk-stub.d.ts +53 -0
- package/dist/plugin-sdk-stub.js +3 -0
- package/dist/privacy/privacy-guard.d.ts +33 -0
- package/dist/privacy/privacy-guard.js +130 -0
- package/dist/privacy/privacy-log.d.ts +6 -0
- package/dist/privacy/privacy-log.js +44 -0
- package/dist/tools/memory-forget.d.ts +3 -0
- package/dist/tools/memory-forget.js +109 -0
- package/dist/tools/memory-get.d.ts +3 -0
- package/dist/tools/memory-get.js +46 -0
- package/dist/tools/memory-search.d.ts +4 -0
- package/dist/tools/memory-search.js +95 -0
- package/dist/tools/memory-store.d.ts +5 -0
- package/dist/tools/memory-store.js +199 -0
- package/openclaw.plugin.json +315 -0
- package/package.json +90 -0
- package/setup/agents-memory.md +63 -0
- package/setup/heartbeat-memory.md +53 -0
- package/setup/install.sh +179 -0
package/setup/install.sh
ADDED
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
set -euo pipefail
|
|
3
|
+
|
|
4
|
+
# install.sh — Activate the recall-forge OpenClaw plugin
|
|
5
|
+
# Run from the monorepo root or the plugin directory.
|
|
6
|
+
#
|
|
7
|
+
# Prerequisites:
|
|
8
|
+
# - OpenClaw installed (npm install -g openclaw && openclaw onboard)
|
|
9
|
+
# - ~/.openclaw/ directory exists
|
|
10
|
+
#
|
|
11
|
+
# Usage:
|
|
12
|
+
# bash packages/openclaw-plugin/setup/install.sh
|
|
13
|
+
|
|
14
|
+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
15
|
+
PLUGIN_DIR="$(dirname "$SCRIPT_DIR")"
|
|
16
|
+
OPENCLAW_DIR="$HOME/.openclaw"
|
|
17
|
+
EXTENSIONS_DIR="$OPENCLAW_DIR/extensions"
|
|
18
|
+
LINK_NAME="recall-forge"
|
|
19
|
+
CONFIG_FILE="$OPENCLAW_DIR/openclaw.json"
|
|
20
|
+
|
|
21
|
+
# --- Preflight ---
|
|
22
|
+
echo "=== recall-forge plugin installer ==="
|
|
23
|
+
echo ""
|
|
24
|
+
|
|
25
|
+
if ! command -v openclaw &>/dev/null; then
|
|
26
|
+
echo "ERROR: OpenClaw is not installed."
|
|
27
|
+
echo ""
|
|
28
|
+
echo "Install with:"
|
|
29
|
+
echo " npm install -g openclaw"
|
|
30
|
+
echo " openclaw onboard"
|
|
31
|
+
echo ""
|
|
32
|
+
exit 1
|
|
33
|
+
fi
|
|
34
|
+
|
|
35
|
+
if [ ! -d "$OPENCLAW_DIR" ]; then
|
|
36
|
+
echo "ERROR: ~/.openclaw/ does not exist."
|
|
37
|
+
echo "Run 'openclaw onboard' first to initialize your workspace."
|
|
38
|
+
exit 1
|
|
39
|
+
fi
|
|
40
|
+
|
|
41
|
+
# --- Step 1: Symlink plugin ---
|
|
42
|
+
echo "1. Symlinking plugin..."
|
|
43
|
+
mkdir -p "$EXTENSIONS_DIR"
|
|
44
|
+
|
|
45
|
+
if [ -L "$EXTENSIONS_DIR/$LINK_NAME" ]; then
|
|
46
|
+
echo " Symlink already exists — updating..."
|
|
47
|
+
rm "$EXTENSIONS_DIR/$LINK_NAME"
|
|
48
|
+
elif [ -d "$EXTENSIONS_DIR/$LINK_NAME" ]; then
|
|
49
|
+
echo " Directory exists at target — backing up to ${LINK_NAME}.bak..."
|
|
50
|
+
mv "$EXTENSIONS_DIR/$LINK_NAME" "$EXTENSIONS_DIR/${LINK_NAME}.bak"
|
|
51
|
+
fi
|
|
52
|
+
|
|
53
|
+
ln -s "$PLUGIN_DIR" "$EXTENSIONS_DIR/$LINK_NAME"
|
|
54
|
+
echo " Linked: $EXTENSIONS_DIR/$LINK_NAME -> $PLUGIN_DIR"
|
|
55
|
+
|
|
56
|
+
# --- Step 2: Install dependencies + build ---
|
|
57
|
+
echo "2. Installing dependencies and building dist/..."
|
|
58
|
+
cd "$PLUGIN_DIR"
|
|
59
|
+
if command -v bun &>/dev/null; then
|
|
60
|
+
bun install --no-save 2>/dev/null || npm install --no-save 2>/dev/null
|
|
61
|
+
else
|
|
62
|
+
npm install --no-save 2>/dev/null
|
|
63
|
+
fi
|
|
64
|
+
if ! npm run build >/dev/null 2>&1; then
|
|
65
|
+
echo "ERROR: Build failed. Run 'npm run build' in $PLUGIN_DIR and fix the issue before continuing."
|
|
66
|
+
exit 1
|
|
67
|
+
fi
|
|
68
|
+
echo " Dependencies installed and dist/ built."
|
|
69
|
+
|
|
70
|
+
# --- Step 3: Merge openclaw.json config ---
|
|
71
|
+
echo "3. Configuring openclaw.json..."
|
|
72
|
+
|
|
73
|
+
# Check if jq is available for JSON manipulation
|
|
74
|
+
if ! command -v jq &>/dev/null; then
|
|
75
|
+
echo " WARNING: jq not installed — cannot auto-merge config."
|
|
76
|
+
echo " Please manually add the following to $CONFIG_FILE:"
|
|
77
|
+
echo ""
|
|
78
|
+
cat <<'MANUAL_CONFIG'
|
|
79
|
+
"plugins": {
|
|
80
|
+
"allow": ["recall-forge"],
|
|
81
|
+
"slots": { "memory": "recall-forge" },
|
|
82
|
+
"entries": {
|
|
83
|
+
"recall-forge": {
|
|
84
|
+
"enabled": true,
|
|
85
|
+
"config": {
|
|
86
|
+
"apiKey": "YOUR_LANONASIS_API_KEY",
|
|
87
|
+
"projectId": "YOUR_PROJECT_ID",
|
|
88
|
+
"captureMode": "hybrid",
|
|
89
|
+
"localFallback": true,
|
|
90
|
+
"autoRecall": true,
|
|
91
|
+
"agentId": "main"
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
MANUAL_CONFIG
|
|
97
|
+
echo ""
|
|
98
|
+
else
|
|
99
|
+
# Backup current config
|
|
100
|
+
if [ -f "$CONFIG_FILE" ]; then
|
|
101
|
+
cp "$CONFIG_FILE" "${CONFIG_FILE}.bak.$(date +%s)"
|
|
102
|
+
echo " Backed up: ${CONFIG_FILE}.bak.*"
|
|
103
|
+
fi
|
|
104
|
+
|
|
105
|
+
# Read existing or create empty
|
|
106
|
+
EXISTING=$(cat "$CONFIG_FILE" 2>/dev/null || echo '{}')
|
|
107
|
+
|
|
108
|
+
# Check if plugin already configured
|
|
109
|
+
if echo "$EXISTING" | jq -e '.plugins.entries["recall-forge"]' &>/dev/null; then
|
|
110
|
+
echo " Plugin already configured in openclaw.json — skipping merge."
|
|
111
|
+
else
|
|
112
|
+
# Prompt for credentials
|
|
113
|
+
echo ""
|
|
114
|
+
read -rp " LanOnasis API Key (lano_...): " API_KEY
|
|
115
|
+
read -rp " LanOnasis Project ID: " PROJECT_ID
|
|
116
|
+
|
|
117
|
+
if [ -z "$API_KEY" ] || [ -z "$PROJECT_ID" ]; then
|
|
118
|
+
echo " WARNING: Empty credentials — plugin will not connect to MaaS."
|
|
119
|
+
echo " Edit $CONFIG_FILE manually to add credentials."
|
|
120
|
+
API_KEY="${API_KEY:-YOUR_API_KEY}"
|
|
121
|
+
PROJECT_ID="${PROJECT_ID:-YOUR_PROJECT_ID}"
|
|
122
|
+
fi
|
|
123
|
+
|
|
124
|
+
# Merge plugin config
|
|
125
|
+
UPDATED=$(echo "$EXISTING" | jq --arg key "$API_KEY" --arg pid "$PROJECT_ID" '
|
|
126
|
+
.plugins.allow = ((.plugins.allow // []) + ["recall-forge"] | unique) |
|
|
127
|
+
.plugins.slots.memory = "recall-forge" |
|
|
128
|
+
.plugins.entries["recall-forge"] = {
|
|
129
|
+
"enabled": true,
|
|
130
|
+
"config": {
|
|
131
|
+
"apiKey": $key,
|
|
132
|
+
"projectId": $pid,
|
|
133
|
+
"captureMode": "hybrid",
|
|
134
|
+
"localFallback": true,
|
|
135
|
+
"autoRecall": true,
|
|
136
|
+
"agentId": "main"
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
')
|
|
140
|
+
|
|
141
|
+
echo "$UPDATED" | jq . > "$CONFIG_FILE"
|
|
142
|
+
echo " Config merged into $CONFIG_FILE"
|
|
143
|
+
fi
|
|
144
|
+
fi
|
|
145
|
+
|
|
146
|
+
# --- Step 4: Copy AGENTS.md and HEARTBEAT.md snippets ---
|
|
147
|
+
echo "4. Preparing workspace integration snippets..."
|
|
148
|
+
WORKSPACE_DIR="$OPENCLAW_DIR/workspace"
|
|
149
|
+
if [ -d "$WORKSPACE_DIR" ]; then
|
|
150
|
+
echo " AGENTS.md snippet: $SCRIPT_DIR/agents-memory.md"
|
|
151
|
+
echo " HEARTBEAT.md snippet: $SCRIPT_DIR/heartbeat-memory.md"
|
|
152
|
+
echo ""
|
|
153
|
+
echo " To activate, append these to your workspace files:"
|
|
154
|
+
echo " cat $SCRIPT_DIR/agents-memory.md >> $WORKSPACE_DIR/AGENTS.md"
|
|
155
|
+
echo " cat $SCRIPT_DIR/heartbeat-memory.md >> $WORKSPACE_DIR/HEARTBEAT.md"
|
|
156
|
+
else
|
|
157
|
+
echo " No workspace found at $WORKSPACE_DIR"
|
|
158
|
+
echo " Run 'openclaw onboard' to create a workspace first."
|
|
159
|
+
fi
|
|
160
|
+
|
|
161
|
+
# --- Step 5: Verify ---
|
|
162
|
+
echo ""
|
|
163
|
+
echo "5. Verifying..."
|
|
164
|
+
if openclaw recall status 2>/dev/null; then
|
|
165
|
+
echo ""
|
|
166
|
+
echo "=== Plugin activated successfully ==="
|
|
167
|
+
else
|
|
168
|
+
echo " Verification skipped — run 'openclaw recall status' manually after setup."
|
|
169
|
+
fi
|
|
170
|
+
|
|
171
|
+
echo ""
|
|
172
|
+
echo "=== Installation complete ==="
|
|
173
|
+
echo ""
|
|
174
|
+
echo "Next steps:"
|
|
175
|
+
echo " 1. Verify: openclaw recall status"
|
|
176
|
+
echo " 2. Test: openclaw recall list"
|
|
177
|
+
echo " 3. Append AGENTS.md snippet to your workspace"
|
|
178
|
+
echo " 4. Append HEARTBEAT.md snippet for health monitoring"
|
|
179
|
+
echo ""
|