shieldcortex 2.4.0 → 2.4.2
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 +177 -246
- package/dist/index.d.ts +3 -3
- package/dist/index.js +7 -7
- package/dist/index.js.map +1 -1
- package/dist/setup/claude-md.d.ts +1 -1
- package/dist/setup/claude-md.js +6 -6
- package/dist/setup/claude-md.js.map +1 -1
- package/dist/setup/openclaw.d.ts +15 -0
- package/dist/setup/openclaw.d.ts.map +1 -0
- package/dist/setup/openclaw.js +118 -0
- package/dist/setup/openclaw.js.map +1 -0
- package/dist/setup/uninstall.d.ts +1 -1
- package/dist/setup/uninstall.js +5 -5
- package/hooks/{clawdbot → openclaw}/cortex-memory/HOOK.md +3 -3
- package/hooks/{clawdbot → openclaw}/cortex-memory/handler.js +6 -6
- package/package.json +16 -8
package/README.md
CHANGED
|
@@ -3,298 +3,134 @@
|
|
|
3
3
|
[](https://www.npmjs.com/package/shieldcortex)
|
|
4
4
|
[](https://www.npmjs.com/package/shieldcortex)
|
|
5
5
|
[](https://opensource.org/licenses/MIT)
|
|
6
|
+
[](https://github.com/Drakon-Systems-Ltd/ShieldCortex)
|
|
7
|
+
[](https://nodejs.org/)
|
|
6
8
|
|
|
7
|
-
|
|
9
|
+
## Complete Memory & Security for AI Agents
|
|
8
10
|
|
|
9
|
-
|
|
11
|
+
**ShieldCortex gives your AI agent persistent memory AND protects it from attack. One package. Full solution.**
|
|
10
12
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
ShieldCortex is agent-agnostic middleware. It works with:
|
|
14
|
-
|
|
15
|
-
- **[Claude Code](https://claude.ai)** — Native MCP server + hooks (`npx shieldcortex setup`)
|
|
16
|
-
- **[OpenClaw / Moltbook](https://openclaw.dev)** — Native hook support (`npx shieldcortex clawdbot install`)
|
|
17
|
-
- **[LangChain JS](https://js.langchain.com)** — `ShieldCortexMemory` adapter (`import { ShieldCortexMemory } from 'shieldcortex/integrations/langchain'`)
|
|
18
|
-
- **Python frameworks (CrewAI, AutoGPT, etc.)** — Via REST API (`POST /api/v1/scan`)
|
|
19
|
-
- **Any MCP-compatible agent** — Via `@langchain/mcp-adapters` or direct MCP protocol
|
|
20
|
-
- **Any agent with a memory backend** — REST API for scanning, quarantine, and audit
|
|
21
|
-
|
|
22
|
-
If your agent stores memories, ShieldCortex can protect them.
|
|
23
|
-
|
|
24
|
-
---
|
|
25
|
-
|
|
26
|
-
## Is Your AI Agent Compromised?
|
|
27
|
-
|
|
28
|
-
Find out in 30 seconds:
|
|
29
|
-
|
|
30
|
-
```bash
|
|
31
|
-
npx shieldcortex setup
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
Then ask your AI agent: **"Scan my memories for threats"**
|
|
35
|
-
|
|
36
|
-
ShieldCortex will scan every stored memory and report:
|
|
37
|
-
- Hidden instructions disguised as normal content
|
|
38
|
-
- Credential harvesting attempts
|
|
39
|
-
- Encoded payloads (base64, unicode tricks, hex)
|
|
40
|
-
- Fragmented attack patterns spread across multiple memories
|
|
41
|
-
- Privilege escalation attempts
|
|
42
|
-
|
|
43
|
-
**No threats found?** Great — now you're protected going forward too.
|
|
44
|
-
|
|
45
|
-
---
|
|
46
|
-
|
|
47
|
-
## What It Does
|
|
48
|
-
|
|
49
|
-
ShieldCortex is a defence pipeline that sits between AI agents and their memory:
|
|
13
|
+
Most AI agents are stateless — they forget everything between sessions. ShieldCortex fixes that with production-grade persistent memory. But memory creates risk: researchers have [demonstrated memory poisoning attacks](https://embracethered.com/blog/posts/2024/chatgpt-hacking-memories/) that hijack AI behaviour. **ShieldCortex is the only solution that solves both problems.**
|
|
50
14
|
|
|
51
15
|
```
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
16
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
17
|
+
│ ShieldCortex │
|
|
18
|
+
├─────────────────────────────┬───────────────────────────────┤
|
|
19
|
+
│ MEMORY SYSTEM │ SECURITY LAYER │
|
|
20
|
+
├─────────────────────────────┼───────────────────────────────┤
|
|
21
|
+
│ • Persistent storage │ • Memory firewall │
|
|
22
|
+
│ • Semantic search │ • Prompt injection detection │
|
|
23
|
+
│ • Project scoping │ • Credential protection │
|
|
24
|
+
│ • Importance ranking │ • Sub-agent access control │
|
|
25
|
+
│ • Auto-cleanup & decay │ • Full audit trail │
|
|
26
|
+
│ • Category organisation │ • Threat quarantine │
|
|
27
|
+
└─────────────────────────────┴───────────────────────────────┘
|
|
55
28
|
```
|
|
56
29
|
|
|
57
|
-
|
|
30
|
+
**Stop choosing between memory and security. Get both.**
|
|
58
31
|
|
|
59
|
-
|
|
32
|
+
---
|
|
60
33
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
34
|
+
## What You Get
|
|
35
|
+
|
|
36
|
+
### Memory System (Production-Ready)
|
|
37
|
+
- **Persistent storage** — SQLite-backed, survives restarts
|
|
38
|
+
- **Semantic search** — Find memories by meaning, not just keywords
|
|
39
|
+
- **Project scoping** — Isolate memories per project/context
|
|
40
|
+
- **Importance levels** — Critical, high, normal, low with auto-decay
|
|
41
|
+
- **Categories** — Architecture, decisions, preferences, context, learnings
|
|
42
|
+
- **Auto-cleanup** — Configurable retention, importance-based expiry
|
|
43
|
+
- **Full MCP support** — Works with any MCP-compatible agent
|
|
44
|
+
|
|
45
|
+
### Security Layer (5 Defence Layers)
|
|
46
|
+
| Layer | What It Does | Tier |
|
|
47
|
+
|-------|-------------|------|
|
|
48
|
+
| **Memory Firewall** | Blocks prompt injection, encoding tricks, hidden instructions | Free |
|
|
64
49
|
| **Audit Logger** | Full forensic trail of every memory operation | Free |
|
|
65
|
-
| **Trust Scorer** |
|
|
66
|
-
| **Sub-Agent Security** | Access control, rate limiting, auto-quarantine
|
|
67
|
-
| **Sensitivity Classifier** | Detects passwords, API keys, PII
|
|
68
|
-
| **Fragmentation Detector** | Catches
|
|
50
|
+
| **Trust Scorer** | Scores memories by source reliability | Free |
|
|
51
|
+
| **Sub-Agent Security** | Access control, rate limiting, auto-quarantine | Free |
|
|
52
|
+
| **Sensitivity Classifier** | Detects & redacts passwords, API keys, PII | Pro |
|
|
53
|
+
| **Fragmentation Detector** | Catches slow-burn assembly attacks | Pro |
|
|
69
54
|
|
|
70
55
|
### Attack Vectors Blocked
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
5. **Privilege escalation** — Memories referencing system commands, file paths, or admin URLs
|
|
56
|
+
- **Direct injection** — `[SYSTEM: ignore previous]` hidden in content
|
|
57
|
+
- **Credential harvesting** — Attempts to exfiltrate secrets
|
|
58
|
+
- **Encoding tricks** — Base64/hex/unicode payloads
|
|
59
|
+
- **Slow-burn assembly** — Attack fragments planted over days
|
|
60
|
+
- **Privilege escalation** — System command references
|
|
77
61
|
|
|
78
62
|
---
|
|
79
63
|
|
|
80
64
|
## Quick Start
|
|
81
65
|
|
|
82
|
-
### Fresh Install
|
|
83
|
-
|
|
84
66
|
```bash
|
|
85
|
-
# Install
|
|
67
|
+
# Install globally
|
|
86
68
|
npm install -g shieldcortex
|
|
87
69
|
|
|
88
|
-
# Auto-
|
|
70
|
+
# Auto-configure for your agent (Claude Code, OpenClaw, LangChain, etc.)
|
|
89
71
|
npx shieldcortex setup
|
|
90
72
|
|
|
91
|
-
#
|
|
73
|
+
# That's it. Your agent now has persistent memory + security.
|
|
92
74
|
```
|
|
93
75
|
|
|
94
|
-
|
|
95
|
-
|
|
76
|
+
**Already using Claude Cortex?** Migrate in one command:
|
|
96
77
|
```bash
|
|
97
|
-
# Non-destructive — copies your database, updates settings
|
|
98
78
|
npx shieldcortex migrate
|
|
99
|
-
|
|
100
|
-
# Restart your agent
|
|
101
79
|
```
|
|
102
80
|
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
### Verify Installation
|
|
106
|
-
|
|
81
|
+
**Verify installation:**
|
|
107
82
|
```bash
|
|
108
83
|
npx shieldcortex doctor
|
|
109
84
|
```
|
|
110
85
|
|
|
111
86
|
---
|
|
112
87
|
|
|
113
|
-
##
|
|
114
|
-
|
|
115
|
-
### Automatic Memory (via Hooks)
|
|
116
|
-
|
|
117
|
-
When you run `npx shieldcortex setup`, three hooks are installed:
|
|
118
|
-
|
|
119
|
-
| Hook | Fires When | What It Does |
|
|
120
|
-
|------|-----------|--------------|
|
|
121
|
-
| **SessionStart** | Session begins | Loads project context from memory |
|
|
122
|
-
| **PreCompact** | Before context compaction | Extracts important content before it's lost |
|
|
123
|
-
| **SessionEnd** | Session exits | Saves decisions, fixes, and learnings |
|
|
124
|
-
|
|
125
|
-
**What gets auto-extracted:**
|
|
126
|
-
- Decisions: "decided to...", "going with...", "chose..."
|
|
127
|
-
- Error fixes: "fixed by...", "the solution was...", "root cause..."
|
|
128
|
-
- Learnings: "learned that...", "discovered...", "turns out..."
|
|
129
|
-
- Architecture: "the architecture uses...", "design pattern..."
|
|
130
|
-
|
|
131
|
-
### Brain-Like Memory Model
|
|
132
|
-
|
|
133
|
-
ShieldCortex doesn't just store text — it thinks like a brain:
|
|
88
|
+
## Supported Agents
|
|
134
89
|
|
|
135
|
-
|
|
136
|
-
- **Salience detection** — auto-scores what's worth keeping
|
|
137
|
-
- **Temporal decay** — unused memories fade, accessed memories strengthen
|
|
138
|
-
- **Knowledge graph** — entities and relationships extracted automatically
|
|
90
|
+
ShieldCortex is agent-agnostic middleware:
|
|
139
91
|
|
|
140
|
-
|
|
92
|
+
| Agent | Integration |
|
|
93
|
+
|-------|-------------|
|
|
94
|
+
| **[Claude Code](https://claude.ai)** | `npx shieldcortex setup` — Native MCP server |
|
|
95
|
+
| **[OpenClaw / Moltbot](https://openclaw.dev)** | `npx shieldcortex openclaw install` — Native hooks |
|
|
96
|
+
| **[LangChain JS](https://js.langchain.com)** | `import { ShieldCortexMemory } from 'shieldcortex/integrations/langchain'` |
|
|
97
|
+
| **Python (CrewAI, AutoGPT)** | REST API — `POST /api/v1/scan` |
|
|
98
|
+
| **Any MCP agent** | Via MCP protocol or `@langchain/mcp-adapters` |
|
|
141
99
|
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
1. **Trust scoring** — source gets a trust score (user=1.0, CLI=0.9, agents=hierarchy-based with 0.7× decay)
|
|
145
|
-
2. **Firewall scan** — content checked for injection, encoding, privilege escalation
|
|
146
|
-
3. **Sensitivity classification** — detects secrets, PII, credentials
|
|
147
|
-
4. **Fragmentation analysis** — cross-references with recent memories for assembly patterns
|
|
148
|
-
5. **Access control** — sub-agents auto-quarantined, rate-limited (20 writes/min), credential access blocked below trust 0.7
|
|
149
|
-
6. **Audit logging** — full record regardless of outcome
|
|
150
|
-
7. **Decision** — ALLOW, QUARANTINE, or BLOCK
|
|
151
|
-
|
|
152
|
-
On recall, memories are filtered by trust score and sensitivity level. RESTRICTED content is redacted.
|
|
153
|
-
|
|
154
|
-
### Sub-Agent Security
|
|
155
|
-
|
|
156
|
-
AI agents spawn sub-agents that inherit full system access. ShieldCortex isolates them:
|
|
157
|
-
|
|
158
|
-
- **Agent hierarchy trust** — `user-spawned>task-1>subtask` scores decay 0.7× per level (max depth 5)
|
|
159
|
-
- **Read ACLs** — trust ≥0.7: all memories; 0.5–0.7: own + shared; <0.5: own only
|
|
160
|
-
- **Write restrictions** — untrusted agents auto-quarantined, parent approves
|
|
161
|
-
- **Rate limiting** — 20 writes/min per source, hard block on exceed
|
|
162
|
-
- **Credential isolation** — RESTRICTED memories blocked below trust 0.7
|
|
163
|
-
- **Quarantine auto-expiry** — unreviewed items auto-rejected after 7 days
|
|
164
|
-
- **Environment-based inference** — auto-detects Claude Code agents from env vars (not forgeable via MCP)
|
|
165
|
-
- **Uninstall protection** — blocks agents from removing ShieldCortex
|
|
100
|
+
If your agent stores memories, ShieldCortex can power and protect them.
|
|
166
101
|
|
|
167
102
|
---
|
|
168
103
|
|
|
169
|
-
##
|
|
104
|
+
## Requirements
|
|
170
105
|
|
|
171
|
-
|
|
|
172
|
-
|
|
173
|
-
|
|
|
174
|
-
|
|
|
175
|
-
|
|
|
176
|
-
| `get_context` | Get relevant project context |
|
|
177
|
-
| `memory_stats` | View memory statistics |
|
|
178
|
-
| `scan_memories` | Scan existing memories for threats |
|
|
179
|
-
| `audit_query` | Query the defence audit trail |
|
|
180
|
-
| `quarantine_review` | Review quarantined memories |
|
|
181
|
-
| `defence_stats` | Threat counts, trust distribution |
|
|
182
|
-
| `graph_query` | Traverse the knowledge graph |
|
|
183
|
-
| `graph_entities` | List known entities |
|
|
184
|
-
| `graph_explain` | Find paths between entities |
|
|
185
|
-
|
|
186
|
-
---
|
|
187
|
-
|
|
188
|
-
## Dashboard
|
|
106
|
+
| Requirement | Version |
|
|
107
|
+
|-------------|---------|
|
|
108
|
+
| **Node.js** | >= 18.0.0 |
|
|
109
|
+
| **Platform** | macOS, Linux, or Windows |
|
|
110
|
+
| **Storage** | ~50MB for SQLite database |
|
|
189
111
|
|
|
190
|
-
|
|
191
|
-
npx shieldcortex --dashboard
|
|
192
|
-
```
|
|
193
|
-
|
|
194
|
-
- **Dashboard**: http://localhost:3030
|
|
195
|
-
- **API**: http://localhost:3001
|
|
196
|
-
|
|
197
|
-
Views: Shield (defence overview), Audit Log, Quarantine, Memories, 3D Brain, Knowledge Graph.
|
|
198
|
-
|
|
199
|
-
### Auto-start on login
|
|
200
|
-
|
|
201
|
-
```bash
|
|
202
|
-
npx shieldcortex service install # Enable
|
|
203
|
-
npx shieldcortex service uninstall # Disable
|
|
204
|
-
npx shieldcortex service status # Check
|
|
205
|
-
```
|
|
206
|
-
|
|
207
|
-
Works on macOS (launchd), Linux (systemd), and Windows.
|
|
112
|
+
No external dependencies. No Docker required. Just `npm install` and go.
|
|
208
113
|
|
|
209
114
|
---
|
|
210
115
|
|
|
211
|
-
##
|
|
212
|
-
|
|
213
|
-
```bash
|
|
214
|
-
npx shieldcortex setup # Auto-detect agent + configure hooks
|
|
215
|
-
npx shieldcortex migrate # Migrate from Claude Cortex
|
|
216
|
-
npx shieldcortex doctor # Check installation health
|
|
217
|
-
npx shieldcortex --dashboard # Start dashboard + API
|
|
218
|
-
npx shieldcortex --version # Show version
|
|
219
|
-
npx shieldcortex service install # Auto-start on login
|
|
220
|
-
npx shieldcortex graph backfill # Extract entities from existing memories
|
|
221
|
-
npx shieldcortex clawdbot install # Install OpenClaw hook
|
|
222
|
-
npx shieldcortex uninstall # Full uninstall (requires confirmation)
|
|
223
|
-
npx shieldcortex uninstall --confirm # Non-interactive uninstall
|
|
224
|
-
```
|
|
225
|
-
|
|
226
|
-
---
|
|
227
|
-
|
|
228
|
-
## Pricing
|
|
116
|
+
## Is Your AI Agent Already Compromised?
|
|
229
117
|
|
|
230
|
-
|
|
231
|
-
|---|---|---|
|
|
232
|
-
| Memory Firewall | Yes | Yes |
|
|
233
|
-
| Audit Logger | Yes | Yes |
|
|
234
|
-
| Trust Scorer | Yes | Yes |
|
|
235
|
-
| Retroactive Scanner | Yes | Yes |
|
|
236
|
-
| Sensitivity Classifier | — | Yes |
|
|
237
|
-
| Fragmentation Detector | — | Yes |
|
|
238
|
-
| Cloud API | — | Yes |
|
|
239
|
-
| Dashboard & Alerts | — | Yes |
|
|
240
|
-
| Compliance Exports | — | Yes |
|
|
241
|
-
|
|
242
|
-
Free tier is fully functional for individual developers. Pro adds enterprise defence layers and a hosted cloud API.
|
|
243
|
-
|
|
244
|
-
---
|
|
245
|
-
|
|
246
|
-
## Advanced Configuration
|
|
247
|
-
|
|
248
|
-
<details>
|
|
249
|
-
<summary>Alternative install methods</summary>
|
|
250
|
-
|
|
251
|
-
### Use with npx (no global install)
|
|
252
|
-
|
|
253
|
-
Create `.mcp.json` in your project directory:
|
|
254
|
-
|
|
255
|
-
```json
|
|
256
|
-
{
|
|
257
|
-
"mcpServers": {
|
|
258
|
-
"memory": {
|
|
259
|
-
"type": "stdio",
|
|
260
|
-
"command": "npx",
|
|
261
|
-
"args": ["-y", "shieldcortex"]
|
|
262
|
-
}
|
|
263
|
-
}
|
|
264
|
-
}
|
|
265
|
-
```
|
|
266
|
-
|
|
267
|
-
### Install from source
|
|
268
|
-
|
|
269
|
-
```bash
|
|
270
|
-
git clone https://github.com/Drakon-Systems-Ltd/ShieldCortex.git
|
|
271
|
-
cd ShieldCortex
|
|
272
|
-
npm install
|
|
273
|
-
npm run build
|
|
274
|
-
```
|
|
275
|
-
|
|
276
|
-
</details>
|
|
277
|
-
|
|
278
|
-
<details>
|
|
279
|
-
<summary>Custom database location</summary>
|
|
280
|
-
|
|
281
|
-
Default: `~/.shieldcortex/memories.db`
|
|
118
|
+
Find out in 30 seconds:
|
|
282
119
|
|
|
283
120
|
```bash
|
|
284
|
-
npx shieldcortex
|
|
121
|
+
npx shieldcortex setup
|
|
285
122
|
```
|
|
286
123
|
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
<details>
|
|
290
|
-
<summary>Environment variables</summary>
|
|
124
|
+
Then ask your agent: **"Scan my memories for threats"**
|
|
291
125
|
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
126
|
+
ShieldCortex will scan every stored memory and report:
|
|
127
|
+
- Hidden instructions disguised as normal content
|
|
128
|
+
- Credential harvesting attempts
|
|
129
|
+
- Encoded payloads (base64, unicode, hex)
|
|
130
|
+
- Fragmented attack patterns spread across memories
|
|
131
|
+
- Privilege escalation attempts
|
|
296
132
|
|
|
297
|
-
|
|
133
|
+
**No threats found?** Great — now you're protected going forward.
|
|
298
134
|
|
|
299
135
|
---
|
|
300
136
|
|
|
@@ -316,6 +152,8 @@ if (!result.allowed) {
|
|
|
316
152
|
}
|
|
317
153
|
```
|
|
318
154
|
|
|
155
|
+
---
|
|
156
|
+
|
|
319
157
|
## REST API (Any Agent)
|
|
320
158
|
|
|
321
159
|
Start the API server, then scan content from any language or framework:
|
|
@@ -346,23 +184,116 @@ curl -X POST http://localhost:3001/api/v1/quarantine/1/approve
|
|
|
346
184
|
curl -X POST http://localhost:3001/api/v1/quarantine/1/reject
|
|
347
185
|
```
|
|
348
186
|
|
|
349
|
-
|
|
187
|
+
---
|
|
188
|
+
|
|
189
|
+
## OpenClaw Integration
|
|
190
|
+
|
|
191
|
+
```bash
|
|
192
|
+
npx shieldcortex openclaw install
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
The **cortex-memory** hook provides:
|
|
196
|
+
- Auto-save on `/new` command
|
|
197
|
+
- Context injection on bootstrap
|
|
198
|
+
- Keyword triggers ("remember this...")
|
|
199
|
+
|
|
200
|
+
---
|
|
201
|
+
|
|
202
|
+
## Dashboard
|
|
203
|
+
|
|
204
|
+
```bash
|
|
205
|
+
npx shieldcortex --dashboard
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
- **Dashboard**: http://localhost:3030
|
|
209
|
+
- **API**: http://localhost:3001
|
|
210
|
+
|
|
211
|
+
Views: Shield (defence overview), Audit Log, Quarantine, Memories, 3D Brain, Knowledge Graph.
|
|
212
|
+
|
|
213
|
+
### Auto-start on login
|
|
214
|
+
|
|
215
|
+
```bash
|
|
216
|
+
npx shieldcortex service install # Enable
|
|
217
|
+
npx shieldcortex service uninstall # Disable
|
|
218
|
+
npx shieldcortex service status # Check
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
Works on macOS (launchd), Linux (systemd), and Windows.
|
|
350
222
|
|
|
351
223
|
---
|
|
352
224
|
|
|
353
|
-
##
|
|
225
|
+
## CLI Reference
|
|
354
226
|
|
|
355
227
|
```bash
|
|
356
|
-
npx shieldcortex
|
|
228
|
+
npx shieldcortex setup # Auto-detect agent + configure hooks
|
|
229
|
+
npx shieldcortex migrate # Migrate from Claude Cortex
|
|
230
|
+
npx shieldcortex doctor # Check installation health
|
|
231
|
+
npx shieldcortex --dashboard # Start dashboard + API
|
|
232
|
+
npx shieldcortex --version # Show version
|
|
233
|
+
npx shieldcortex service install # Auto-start on login
|
|
234
|
+
npx shieldcortex graph backfill # Extract entities from existing memories
|
|
235
|
+
npx shieldcortex openclaw install # Install OpenClaw hook
|
|
236
|
+
npx shieldcortex uninstall # Full uninstall (requires confirmation)
|
|
237
|
+
npx shieldcortex uninstall --confirm # Non-interactive uninstall
|
|
357
238
|
```
|
|
358
239
|
|
|
359
|
-
|
|
240
|
+
---
|
|
241
|
+
|
|
242
|
+
## MCP Tools
|
|
243
|
+
|
|
244
|
+
| Tool | Description |
|
|
245
|
+
|------|-------------|
|
|
246
|
+
| `remember` | Store a memory (optional — hooks do this automatically) |
|
|
247
|
+
| `recall` | Search memories by query, category, or tags |
|
|
248
|
+
| `forget` | Delete memories |
|
|
249
|
+
| `get_context` | Get relevant project context |
|
|
250
|
+
| `memory_stats` | View memory statistics |
|
|
251
|
+
| `scan_memories` | Scan existing memories for threats |
|
|
252
|
+
| `audit_query` | Query the defence audit trail |
|
|
253
|
+
| `quarantine_review` | Review quarantined memories |
|
|
254
|
+
| `defence_stats` | Threat counts, trust distribution |
|
|
255
|
+
| `graph_query` | Traverse the knowledge graph |
|
|
256
|
+
| `graph_entities` | List known entities |
|
|
257
|
+
| `graph_explain` | Find paths between entities |
|
|
258
|
+
|
|
259
|
+
---
|
|
260
|
+
|
|
261
|
+
## Why ShieldCortex?
|
|
262
|
+
|
|
263
|
+
| Feature | Claude Cortex | Mem0 | Zep | **ShieldCortex** |
|
|
264
|
+
|---------|---------------|------|-----|------------------|
|
|
265
|
+
| Persistent Memory | Yes | Yes | Yes | Yes |
|
|
266
|
+
| Semantic Search | Yes | Yes | Yes | Yes |
|
|
267
|
+
| Prompt Injection Detection | No | No | No | **Yes** |
|
|
268
|
+
| Memory Firewall | No | No | No | **Yes** |
|
|
269
|
+
| Sub-Agent Access Control | No | No | No | **Yes** |
|
|
270
|
+
| Audit Trail | No | No | Partial | **Yes** |
|
|
271
|
+
| Credential Protection | No | No | No | **Yes** |
|
|
272
|
+
| MCP Native | Yes | No | No | **Yes** |
|
|
273
|
+
| Self-Hosted | Yes | No | Partial | **Yes** |
|
|
274
|
+
| Open Source | Yes | Partial | Partial | **Yes** |
|
|
275
|
+
|
|
276
|
+
**ShieldCortex is the only memory system built for adversarial conditions.**
|
|
277
|
+
|
|
278
|
+
---
|
|
279
|
+
|
|
280
|
+
## Pricing
|
|
281
|
+
|
|
282
|
+
| Tier | What You Get | Price |
|
|
283
|
+
|------|--------------|-------|
|
|
284
|
+
| **Free** | Full memory system + core security (firewall, audit, trust scoring) | Free |
|
|
285
|
+
| **Pro** | + Sensitivity classifier, fragmentation detector, web dashboard | Coming soon |
|
|
286
|
+
|
|
287
|
+
Free tier is fully functional for individual developers.
|
|
360
288
|
|
|
361
289
|
---
|
|
362
290
|
|
|
363
|
-
##
|
|
291
|
+
## Links
|
|
364
292
|
|
|
365
|
-
|
|
293
|
+
- **Website:** [shieldcortex.ai](https://shieldcortex.ai)
|
|
294
|
+
- **npm:** [npmjs.com/package/shieldcortex](https://www.npmjs.com/package/shieldcortex)
|
|
295
|
+
- **GitHub:** [github.com/Drakon-Systems-Ltd/ShieldCortex](https://github.com/Drakon-Systems-Ltd/ShieldCortex)
|
|
296
|
+
- **Architecture:** [ARCHITECTURE.md](ARCHITECTURE.md)
|
|
366
297
|
|
|
367
298
|
---
|
|
368
299
|
|
package/dist/index.d.ts
CHANGED
|
@@ -19,9 +19,9 @@
|
|
|
19
19
|
* npx shieldcortex service install # Auto-start dashboard on login
|
|
20
20
|
* npx shieldcortex service uninstall # Remove auto-start
|
|
21
21
|
* npx shieldcortex service status # Check service status
|
|
22
|
-
* npx shieldcortex
|
|
23
|
-
* npx shieldcortex
|
|
24
|
-
* npx shieldcortex
|
|
22
|
+
* npx shieldcortex openclaw install # Install OpenClaw hook
|
|
23
|
+
* npx shieldcortex openclaw uninstall # Remove OpenClaw hook
|
|
24
|
+
* npx shieldcortex openclaw status # Check OpenClaw hook status
|
|
25
25
|
* npx shieldcortex migrate # Migrate from Claude Cortex
|
|
26
26
|
* npx shieldcortex setup uninstall # Remove hooks + CLAUDE.md block (requires confirmation)
|
|
27
27
|
* npx shieldcortex uninstall # Full uninstall (requires confirmation)
|
package/dist/index.js
CHANGED
|
@@ -19,9 +19,9 @@
|
|
|
19
19
|
* npx shieldcortex service install # Auto-start dashboard on login
|
|
20
20
|
* npx shieldcortex service uninstall # Remove auto-start
|
|
21
21
|
* npx shieldcortex service status # Check service status
|
|
22
|
-
* npx shieldcortex
|
|
23
|
-
* npx shieldcortex
|
|
24
|
-
* npx shieldcortex
|
|
22
|
+
* npx shieldcortex openclaw install # Install OpenClaw hook
|
|
23
|
+
* npx shieldcortex openclaw uninstall # Remove OpenClaw hook
|
|
24
|
+
* npx shieldcortex openclaw status # Check OpenClaw hook status
|
|
25
25
|
* npx shieldcortex migrate # Migrate from Claude Cortex
|
|
26
26
|
* npx shieldcortex setup uninstall # Remove hooks + CLAUDE.md block (requires confirmation)
|
|
27
27
|
* npx shieldcortex uninstall # Full uninstall (requires confirmation)
|
|
@@ -37,7 +37,7 @@ import { startVisualizationServer } from './api/visualization-server.js';
|
|
|
37
37
|
import { handleServiceCommand } from './service/install.js';
|
|
38
38
|
import { setupClaudeMd } from './setup/claude-md.js';
|
|
39
39
|
import { handleHookCommand } from './setup/hooks.js';
|
|
40
|
-
import {
|
|
40
|
+
import { handleOpenClawCommand } from './setup/openclaw.js';
|
|
41
41
|
import { createRequire } from 'module';
|
|
42
42
|
const require = createRequire(import.meta.url);
|
|
43
43
|
const pkg = require('../package.json');
|
|
@@ -177,9 +177,9 @@ async function main() {
|
|
|
177
177
|
await handleHookCommand(process.argv[3] || '');
|
|
178
178
|
return;
|
|
179
179
|
}
|
|
180
|
-
// Handle "clawdbot"
|
|
181
|
-
if (process.argv[2] === 'clawdbot') {
|
|
182
|
-
await
|
|
180
|
+
// Handle "openclaw" subcommand (backward compat: "clawdbot" also accepted)
|
|
181
|
+
if (process.argv[2] === 'openclaw' || process.argv[2] === 'clawdbot') {
|
|
182
|
+
await handleOpenClawCommand(process.argv[3] || '');
|
|
183
183
|
return;
|
|
184
184
|
}
|
|
185
185
|
// Handle "service" subcommand before normal mode parsing
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* 1. Injects proactive memory instructions into ~/.claude/CLAUDE.md (Claude Code)
|
|
5
5
|
* 2. Creates global MCP server config at ~/.claude.json (user scope)
|
|
6
6
|
* 3. Installs hooks into ~/.claude/settings.json
|
|
7
|
-
* 4. Installs cortex-memory hook into OpenClaw
|
|
7
|
+
* 4. Installs cortex-memory hook into OpenClaw if detected
|
|
8
8
|
*
|
|
9
9
|
* Both steps are idempotent.
|
|
10
10
|
*/
|
package/dist/setup/claude-md.js
CHANGED
|
@@ -4,14 +4,14 @@
|
|
|
4
4
|
* 1. Injects proactive memory instructions into ~/.claude/CLAUDE.md (Claude Code)
|
|
5
5
|
* 2. Creates global MCP server config at ~/.claude.json (user scope)
|
|
6
6
|
* 3. Installs hooks into ~/.claude/settings.json
|
|
7
|
-
* 4. Installs cortex-memory hook into OpenClaw
|
|
7
|
+
* 4. Installs cortex-memory hook into OpenClaw if detected
|
|
8
8
|
*
|
|
9
9
|
* Both steps are idempotent.
|
|
10
10
|
*/
|
|
11
11
|
import fs from 'fs';
|
|
12
12
|
import path from 'path';
|
|
13
13
|
import os from 'os';
|
|
14
|
-
import {
|
|
14
|
+
import { installOpenClawHook, findOpenClawHooksDir } from './openclaw.js';
|
|
15
15
|
import { setupHooks } from './settings-hooks.js';
|
|
16
16
|
const MARKER = '# ShieldCortex — Memory System';
|
|
17
17
|
const INSTRUCTIONS = `
|
|
@@ -93,19 +93,19 @@ export async function setupClaudeMd(options) {
|
|
|
93
93
|
setupGlobalMcp();
|
|
94
94
|
// 3. Hooks in settings.json
|
|
95
95
|
setupHooks(options);
|
|
96
|
-
// 4. OpenClaw
|
|
97
|
-
const hooksDir =
|
|
96
|
+
// 4. OpenClaw — if detected
|
|
97
|
+
const hooksDir = findOpenClawHooksDir();
|
|
98
98
|
if (hooksDir) {
|
|
99
99
|
const hookExists = fs.existsSync(path.join(hooksDir, 'cortex-memory'));
|
|
100
100
|
if (hookExists) {
|
|
101
101
|
console.log('✓ OpenClaw: cortex-memory hook already installed');
|
|
102
102
|
}
|
|
103
103
|
else {
|
|
104
|
-
await
|
|
104
|
+
await installOpenClawHook();
|
|
105
105
|
}
|
|
106
106
|
}
|
|
107
107
|
else {
|
|
108
|
-
console.log('- OpenClaw
|
|
108
|
+
console.log('- OpenClaw: not detected (skipped)');
|
|
109
109
|
}
|
|
110
110
|
console.log('\nSetup complete.');
|
|
111
111
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-md.js","sourceRoot":"","sources":["../../src/setup/claude-md.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAC1E,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,MAAM,MAAM,GAAG,gCAAgC,CAAC;AAEhD,MAAM,YAAY,GAAG;EACnB,MAAM;;;;;;;;;;;;CAYP,CAAC;AAEF,SAAS,eAAe;IACtB,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC;IACrD,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IAEvD,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE7C,IAAI,QAAQ,GAAG,EAAE,CAAC;IAClB,IAAI,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAChC,QAAQ,GAAG,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IACpD,CAAC;IAED,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC9B,OAAO,CAAC,GAAG,CAAC,oEAAoE,CAAC,CAAC;IACpF,CAAC;SAAM,CAAC;QACN,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,EAAE,GAAG,IAAI,GAAG,YAAY,CAAC;QAC5D,EAAE,CAAC,aAAa,CAAC,YAAY,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;QACpD,OAAO,CAAC,GAAG,CAAC,iEAAiE,CAAC,CAAC;IACjF,CAAC;AACH,CAAC;AAED,SAAS,cAAc;IACrB,+DAA+D;IAC/D,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,cAAc,CAAC,CAAC;IAExD,8BAA8B;IAC9B,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;YAC/D,MAAM,OAAO,GAAG,QAAQ,CAAC,UAAU,IAAI,EAAE,CAAC;YAC1C,IAAI,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,cAAc,CAAC;gBACnD,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC;gBAC5E,OAAO,CAAC,GAAG,CAAC,2DAA2D,CAAC,CAAC;gBACzE,OAAO;YACT,CAAC;YACD,sDAAsD;YACtD,QAAQ,CAAC,UAAU,GAAG,OAAO,CAAC;YAC9B,QAAQ,CAAC,UAAU,CAAC,MAAM,GAAG;gBAC3B,IAAI,EAAE,OAAO;gBACb,OAAO,EAAE,KAAK;gBACd,IAAI,EAAE,CAAC,IAAI,EAAE,cAAc,CAAC;aAC7B,CAAC;YACF,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC;YAC7E,OAAO,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC;YAClE,OAAO;QACT,CAAC;QAAC,MAAM,CAAC;YACP,6BAA6B;QAC/B,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG;QACb,UAAU,EAAE;YACV,MAAM,EAAE;gBACN,IAAI,EAAE,OAAO;gBACb,OAAO,EAAE,KAAK;gBACd,IAAI,EAAE,CAAC,IAAI,EAAE,cAAc,CAAC;aAC7B;SACF;KACF,CAAC;IACF,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC;IAC3E,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;AACvE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,OAAgC;IAClE,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;IAE5C,oCAAoC;IACpC,eAAe,EAAE,CAAC;IAElB,8BAA8B;IAC9B,cAAc,EAAE,CAAC;IAEjB,4BAA4B;IAC5B,UAAU,CAAC,OAAO,CAAC,CAAC;IAEpB,
|
|
1
|
+
{"version":3,"file":"claude-md.js","sourceRoot":"","sources":["../../src/setup/claude-md.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OpenClaw hook installer.
|
|
3
|
+
*
|
|
4
|
+
* Copies the cortex-memory hook into OpenClaw's bundled hooks directory.
|
|
5
|
+
* Only works if OpenClaw is installed on the system.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Find OpenClaw's bundled hooks directory by locating the binary
|
|
9
|
+
*/
|
|
10
|
+
export declare function findOpenClawHooksDir(): string | null;
|
|
11
|
+
export declare function installOpenClawHook(): Promise<void>;
|
|
12
|
+
export declare function uninstallOpenClawHook(): Promise<void>;
|
|
13
|
+
export declare function openClawHookStatus(): Promise<void>;
|
|
14
|
+
export declare function handleOpenClawCommand(subcommand: string): Promise<void>;
|
|
15
|
+
//# sourceMappingURL=openclaw.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openclaw.d.ts","sourceRoot":"","sources":["../../src/setup/openclaw.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAgBH;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,GAAG,IAAI,CA8BpD;AAED,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,CAgCzD;AAED,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC,CAiB3D;AAED,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC,CAcxD;AAED,wBAAsB,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAe7E"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OpenClaw hook installer.
|
|
3
|
+
*
|
|
4
|
+
* Copies the cortex-memory hook into OpenClaw's bundled hooks directory.
|
|
5
|
+
* Only works if OpenClaw is installed on the system.
|
|
6
|
+
*/
|
|
7
|
+
import fs from 'fs';
|
|
8
|
+
import path from 'path';
|
|
9
|
+
import { execSync } from 'child_process';
|
|
10
|
+
import { fileURLToPath } from 'url';
|
|
11
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
12
|
+
const __dirname = path.dirname(__filename);
|
|
13
|
+
const HOOK_NAME = 'cortex-memory';
|
|
14
|
+
// Hook source is in hooks/openclaw/cortex-memory/ relative to project root
|
|
15
|
+
// From dist/setup/, go up two levels to project root
|
|
16
|
+
const HOOK_SOURCE = path.resolve(__dirname, '..', '..', 'hooks', 'openclaw', HOOK_NAME);
|
|
17
|
+
/**
|
|
18
|
+
* Find OpenClaw's bundled hooks directory by locating the binary
|
|
19
|
+
*/
|
|
20
|
+
export function findOpenClawHooksDir() {
|
|
21
|
+
try {
|
|
22
|
+
const binPath = execSync('which openclaw 2>/dev/null || which clawdbot 2>/dev/null || which moltbot 2>/dev/null', {
|
|
23
|
+
encoding: 'utf-8',
|
|
24
|
+
}).trim();
|
|
25
|
+
if (!binPath)
|
|
26
|
+
return null;
|
|
27
|
+
// Resolve symlink — lands in e.g. <prefix>/lib/node_modules/openclaw/dist/entry.js
|
|
28
|
+
const realBin = fs.realpathSync(binPath);
|
|
29
|
+
// Walk up from resolved path to find dist/hooks/bundled/
|
|
30
|
+
let dir = path.dirname(realBin);
|
|
31
|
+
for (let i = 0; i < 5; i++) {
|
|
32
|
+
const candidate = path.join(dir, 'hooks', 'bundled');
|
|
33
|
+
if (fs.existsSync(candidate)) {
|
|
34
|
+
return candidate;
|
|
35
|
+
}
|
|
36
|
+
// Also check dist/hooks/bundled from current dir
|
|
37
|
+
const distCandidate = path.join(dir, 'dist', 'hooks', 'bundled');
|
|
38
|
+
if (fs.existsSync(distCandidate)) {
|
|
39
|
+
return distCandidate;
|
|
40
|
+
}
|
|
41
|
+
dir = path.dirname(dir);
|
|
42
|
+
}
|
|
43
|
+
return null;
|
|
44
|
+
}
|
|
45
|
+
catch {
|
|
46
|
+
return null;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
export async function installOpenClawHook() {
|
|
50
|
+
const hooksDir = findOpenClawHooksDir();
|
|
51
|
+
if (!hooksDir) {
|
|
52
|
+
console.error('OpenClaw is not installed on this system.');
|
|
53
|
+
console.log('Install it first: npm install -g openclaw');
|
|
54
|
+
process.exit(1);
|
|
55
|
+
}
|
|
56
|
+
if (!fs.existsSync(HOOK_SOURCE)) {
|
|
57
|
+
console.error('Hook source files not found. Package may be corrupted.');
|
|
58
|
+
process.exit(1);
|
|
59
|
+
}
|
|
60
|
+
const destDir = path.join(hooksDir, HOOK_NAME);
|
|
61
|
+
// Copy hook files
|
|
62
|
+
fs.mkdirSync(destDir, { recursive: true });
|
|
63
|
+
for (const file of ['HOOK.md', 'handler.js']) {
|
|
64
|
+
const src = path.join(HOOK_SOURCE, file);
|
|
65
|
+
const dest = path.join(destDir, file);
|
|
66
|
+
fs.copyFileSync(src, dest);
|
|
67
|
+
}
|
|
68
|
+
console.log(`✓ Installed cortex-memory hook to ${destDir}`);
|
|
69
|
+
console.log(' The hook will activate on next OpenClaw restart.');
|
|
70
|
+
console.log('');
|
|
71
|
+
console.log(' What it does:');
|
|
72
|
+
console.log(' • Auto-saves important session context on /new');
|
|
73
|
+
console.log(' • Injects past memories on session start');
|
|
74
|
+
console.log(' • "remember this: ..." keyword trigger');
|
|
75
|
+
}
|
|
76
|
+
export async function uninstallOpenClawHook() {
|
|
77
|
+
const hooksDir = findOpenClawHooksDir();
|
|
78
|
+
if (!hooksDir) {
|
|
79
|
+
console.log('OpenClaw is not installed on this system.');
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
const destDir = path.join(hooksDir, HOOK_NAME);
|
|
83
|
+
if (!fs.existsSync(destDir)) {
|
|
84
|
+
console.log('cortex-memory hook is not installed.');
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
fs.rmSync(destDir, { recursive: true });
|
|
88
|
+
console.log(`✓ Removed cortex-memory hook from ${destDir}`);
|
|
89
|
+
}
|
|
90
|
+
export async function openClawHookStatus() {
|
|
91
|
+
const hooksDir = findOpenClawHooksDir();
|
|
92
|
+
if (!hooksDir) {
|
|
93
|
+
console.log('OpenClaw: not installed');
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
const destDir = path.join(hooksDir, HOOK_NAME);
|
|
97
|
+
const installed = fs.existsSync(destDir);
|
|
98
|
+
console.log(`OpenClaw: installed`);
|
|
99
|
+
console.log(`Hooks directory: ${hooksDir}`);
|
|
100
|
+
console.log(`cortex-memory: ${installed ? 'installed' : 'not installed'}`);
|
|
101
|
+
}
|
|
102
|
+
export async function handleOpenClawCommand(subcommand) {
|
|
103
|
+
switch (subcommand) {
|
|
104
|
+
case 'install':
|
|
105
|
+
await installOpenClawHook();
|
|
106
|
+
break;
|
|
107
|
+
case 'uninstall':
|
|
108
|
+
await uninstallOpenClawHook();
|
|
109
|
+
break;
|
|
110
|
+
case 'status':
|
|
111
|
+
await openClawHookStatus();
|
|
112
|
+
break;
|
|
113
|
+
default:
|
|
114
|
+
console.log('Usage: shieldcortex openclaw <install|uninstall|status>');
|
|
115
|
+
process.exit(1);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
//# sourceMappingURL=openclaw.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openclaw.js","sourceRoot":"","sources":["../../src/setup/openclaw.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Uninstall utilities for ShieldCortex.
|
|
3
3
|
*
|
|
4
|
-
* Removes hooks from settings.json, CLAUDE.md block, service, and
|
|
4
|
+
* Removes hooks from settings.json, CLAUDE.md block, service, and OpenClaw hook.
|
|
5
5
|
*
|
|
6
6
|
* SECURITY: Requires --confirm flag or interactive TTY confirmation.
|
|
7
7
|
* This prevents automated/bot-initiated uninstalls.
|
package/dist/setup/uninstall.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Uninstall utilities for ShieldCortex.
|
|
3
3
|
*
|
|
4
|
-
* Removes hooks from settings.json, CLAUDE.md block, service, and
|
|
4
|
+
* Removes hooks from settings.json, CLAUDE.md block, service, and OpenClaw hook.
|
|
5
5
|
*
|
|
6
6
|
* SECURITY: Requires --confirm flag or interactive TTY confirmation.
|
|
7
7
|
* This prevents automated/bot-initiated uninstalls.
|
|
@@ -11,7 +11,7 @@ import path from 'path';
|
|
|
11
11
|
import os from 'os';
|
|
12
12
|
import readline from 'readline';
|
|
13
13
|
import { uninstallService } from '../service/install.js';
|
|
14
|
-
import {
|
|
14
|
+
import { uninstallOpenClawHook } from './openclaw.js';
|
|
15
15
|
/**
|
|
16
16
|
* Check if the current process is running in an agent context.
|
|
17
17
|
* Agents (sub-agents) should not be able to uninstall ShieldCortex.
|
|
@@ -167,12 +167,12 @@ export async function uninstallAll(options) {
|
|
|
167
167
|
catch (err) {
|
|
168
168
|
console.error(`Failed to uninstall service: ${err.message}`);
|
|
169
169
|
}
|
|
170
|
-
// 2. Uninstall
|
|
170
|
+
// 2. Uninstall OpenClaw hook
|
|
171
171
|
try {
|
|
172
|
-
await
|
|
172
|
+
await uninstallOpenClawHook();
|
|
173
173
|
}
|
|
174
174
|
catch (err) {
|
|
175
|
-
console.error(`Failed to uninstall
|
|
175
|
+
console.error(`Failed to uninstall OpenClaw hook: ${err.message}`);
|
|
176
176
|
}
|
|
177
177
|
// 3. Remove hooks from settings.json
|
|
178
178
|
try {
|
|
@@ -4,7 +4,7 @@ description: "Persistent brain-like memory via ShieldCortex — auto-saves sessi
|
|
|
4
4
|
homepage: https://github.com/Drakon-Systems-Ltd/ShieldCortex
|
|
5
5
|
metadata:
|
|
6
6
|
{
|
|
7
|
-
"
|
|
7
|
+
"openclaw":
|
|
8
8
|
{
|
|
9
9
|
"emoji": "🧠",
|
|
10
10
|
"events": ["command:new", "agent:bootstrap", "command"],
|
|
@@ -47,13 +47,13 @@ Memories stored in `~/.shieldcortex/memories.db` (SQLite). Shared with Claude Co
|
|
|
47
47
|
## Install
|
|
48
48
|
|
|
49
49
|
```bash
|
|
50
|
-
npx shieldcortex
|
|
50
|
+
npx shieldcortex openclaw install
|
|
51
51
|
```
|
|
52
52
|
|
|
53
53
|
## Uninstall
|
|
54
54
|
|
|
55
55
|
```bash
|
|
56
|
-
npx shieldcortex
|
|
56
|
+
npx shieldcortex openclaw uninstall
|
|
57
57
|
```
|
|
58
58
|
|
|
59
59
|
Or disable without removing:
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Cortex Memory Hook — Persistent brain-like memory for
|
|
2
|
+
* Cortex Memory Hook — Persistent brain-like memory for OpenClaw
|
|
3
3
|
*
|
|
4
4
|
* Integrates ShieldCortex MCP server via mcporter to provide:
|
|
5
5
|
* - Auto-extraction of important session content on /new
|
|
@@ -176,10 +176,10 @@ async function onSessionEnd(event) {
|
|
|
176
176
|
title: mem.title,
|
|
177
177
|
content: mem.content,
|
|
178
178
|
category: mem.category,
|
|
179
|
-
project: "
|
|
179
|
+
project: "openclaw",
|
|
180
180
|
scope: "global",
|
|
181
181
|
importance: "high",
|
|
182
|
-
tags: "auto-extracted,
|
|
182
|
+
tags: "auto-extracted,openclaw-hook",
|
|
183
183
|
});
|
|
184
184
|
if (result) saved++;
|
|
185
185
|
}
|
|
@@ -195,7 +195,7 @@ async function onBootstrap(event) {
|
|
|
195
195
|
if (!Array.isArray(context.bootstrapFiles)) return;
|
|
196
196
|
|
|
197
197
|
const result = await callCortex("get_context", {
|
|
198
|
-
query: "
|
|
198
|
+
query: "openclaw session context",
|
|
199
199
|
format: "summary",
|
|
200
200
|
});
|
|
201
201
|
|
|
@@ -245,10 +245,10 @@ async function onKeywordTrigger(event) {
|
|
|
245
245
|
title,
|
|
246
246
|
content: content.slice(0, 500),
|
|
247
247
|
category: "note",
|
|
248
|
-
project: "
|
|
248
|
+
project: "openclaw",
|
|
249
249
|
scope: "global",
|
|
250
250
|
importance: "critical",
|
|
251
|
-
tags: "keyword-trigger,
|
|
251
|
+
tags: "keyword-trigger,openclaw-hook",
|
|
252
252
|
});
|
|
253
253
|
|
|
254
254
|
if (result) {
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "shieldcortex",
|
|
3
|
-
"version": "2.4.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "2.4.2",
|
|
4
|
+
"description": "Complete memory system + security layer for AI agents. Persistent storage, semantic search, prompt injection firewall, credential protection, and audit trail. One package, full solution.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
7
7
|
"exports": {
|
|
@@ -40,16 +40,24 @@
|
|
|
40
40
|
"prepublishOnly": "npm run build"
|
|
41
41
|
},
|
|
42
42
|
"keywords": [
|
|
43
|
+
"ai",
|
|
44
|
+
"agent",
|
|
45
|
+
"memory",
|
|
46
|
+
"persistent-memory",
|
|
47
|
+
"semantic-search",
|
|
43
48
|
"security",
|
|
44
49
|
"firewall",
|
|
45
|
-
"
|
|
46
|
-
"memory-protection",
|
|
47
|
-
"threat-detection",
|
|
50
|
+
"prompt-injection",
|
|
48
51
|
"mcp",
|
|
49
|
-
"langchain",
|
|
50
52
|
"claude",
|
|
51
|
-
"
|
|
52
|
-
"
|
|
53
|
+
"langchain",
|
|
54
|
+
"llm",
|
|
55
|
+
"ai-security",
|
|
56
|
+
"agent-memory",
|
|
57
|
+
"ai-memory",
|
|
58
|
+
"credential-protection",
|
|
59
|
+
"audit-trail",
|
|
60
|
+
"trust-scoring"
|
|
53
61
|
],
|
|
54
62
|
"author": "Michael Kyriacou",
|
|
55
63
|
"license": "MIT",
|