shieldcortex 2.4.1 → 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 +153 -102
- 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 +1 -1
package/README.md
CHANGED
|
@@ -3,8 +3,10 @@
|
|
|
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
|
|
|
@@ -14,7 +16,7 @@ Most AI agents are stateless — they forget everything between sessions. Shield
|
|
|
14
16
|
┌─────────────────────────────────────────────────────────────┐
|
|
15
17
|
│ ShieldCortex │
|
|
16
18
|
├─────────────────────────────┬───────────────────────────────┤
|
|
17
|
-
│
|
|
19
|
+
│ MEMORY SYSTEM │ SECURITY LAYER │
|
|
18
20
|
├─────────────────────────────┼───────────────────────────────┤
|
|
19
21
|
│ • Persistent storage │ • Memory firewall │
|
|
20
22
|
│ • Semantic search │ • Prompt injection detection │
|
|
@@ -31,7 +33,7 @@ Most AI agents are stateless — they forget everything between sessions. Shield
|
|
|
31
33
|
|
|
32
34
|
## What You Get
|
|
33
35
|
|
|
34
|
-
###
|
|
36
|
+
### Memory System (Production-Ready)
|
|
35
37
|
- **Persistent storage** — SQLite-backed, survives restarts
|
|
36
38
|
- **Semantic search** — Find memories by meaning, not just keywords
|
|
37
39
|
- **Project scoping** — Isolate memories per project/context
|
|
@@ -40,7 +42,7 @@ Most AI agents are stateless — they forget everything between sessions. Shield
|
|
|
40
42
|
- **Auto-cleanup** — Configurable retention, importance-based expiry
|
|
41
43
|
- **Full MCP support** — Works with any MCP-compatible agent
|
|
42
44
|
|
|
43
|
-
###
|
|
45
|
+
### Security Layer (5 Defence Layers)
|
|
44
46
|
| Layer | What It Does | Tier |
|
|
45
47
|
|-------|-------------|------|
|
|
46
48
|
| **Memory Firewall** | Blocks prompt injection, encoding tricks, hidden instructions | Free |
|
|
@@ -50,7 +52,7 @@ Most AI agents are stateless — they forget everything between sessions. Shield
|
|
|
50
52
|
| **Sensitivity Classifier** | Detects & redacts passwords, API keys, PII | Pro |
|
|
51
53
|
| **Fragmentation Detector** | Catches slow-burn assembly attacks | Pro |
|
|
52
54
|
|
|
53
|
-
###
|
|
55
|
+
### Attack Vectors Blocked
|
|
54
56
|
- **Direct injection** — `[SYSTEM: ignore previous]` hidden in content
|
|
55
57
|
- **Credential harvesting** — Attempts to exfiltrate secrets
|
|
56
58
|
- **Encoding tricks** — Base64/hex/unicode payloads
|
|
@@ -59,7 +61,7 @@ Most AI agents are stateless — they forget everything between sessions. Shield
|
|
|
59
61
|
|
|
60
62
|
---
|
|
61
63
|
|
|
62
|
-
## Quick Start
|
|
64
|
+
## Quick Start
|
|
63
65
|
|
|
64
66
|
```bash
|
|
65
67
|
# Install globally
|
|
@@ -76,6 +78,11 @@ npx shieldcortex setup
|
|
|
76
78
|
npx shieldcortex migrate
|
|
77
79
|
```
|
|
78
80
|
|
|
81
|
+
**Verify installation:**
|
|
82
|
+
```bash
|
|
83
|
+
npx shieldcortex doctor
|
|
84
|
+
```
|
|
85
|
+
|
|
79
86
|
---
|
|
80
87
|
|
|
81
88
|
## Supported Agents
|
|
@@ -85,7 +92,7 @@ ShieldCortex is agent-agnostic middleware:
|
|
|
85
92
|
| Agent | Integration |
|
|
86
93
|
|-------|-------------|
|
|
87
94
|
| **[Claude Code](https://claude.ai)** | `npx shieldcortex setup` — Native MCP server |
|
|
88
|
-
| **[OpenClaw](https://openclaw.
|
|
95
|
+
| **[OpenClaw / Moltbot](https://openclaw.dev)** | `npx shieldcortex openclaw install` — Native hooks |
|
|
89
96
|
| **[LangChain JS](https://js.langchain.com)** | `import { ShieldCortexMemory } from 'shieldcortex/integrations/langchain'` |
|
|
90
97
|
| **Python (CrewAI, AutoGPT)** | REST API — `POST /api/v1/scan` |
|
|
91
98
|
| **Any MCP agent** | Via MCP protocol or `@langchain/mcp-adapters` |
|
|
@@ -94,6 +101,18 @@ If your agent stores memories, ShieldCortex can power and protect them.
|
|
|
94
101
|
|
|
95
102
|
---
|
|
96
103
|
|
|
104
|
+
## Requirements
|
|
105
|
+
|
|
106
|
+
| Requirement | Version |
|
|
107
|
+
|-------------|---------|
|
|
108
|
+
| **Node.js** | >= 18.0.0 |
|
|
109
|
+
| **Platform** | macOS, Linux, or Windows |
|
|
110
|
+
| **Storage** | ~50MB for SQLite database |
|
|
111
|
+
|
|
112
|
+
No external dependencies. No Docker required. Just `npm install` and go.
|
|
113
|
+
|
|
114
|
+
---
|
|
115
|
+
|
|
97
116
|
## Is Your AI Agent Already Compromised?
|
|
98
117
|
|
|
99
118
|
Find out in 30 seconds:
|
|
@@ -115,100 +134,144 @@ ShieldCortex will scan every stored memory and report:
|
|
|
115
134
|
|
|
116
135
|
---
|
|
117
136
|
|
|
118
|
-
##
|
|
137
|
+
## LangChain Integration
|
|
138
|
+
|
|
139
|
+
```javascript
|
|
140
|
+
import { ShieldCortexMemory, ShieldCortexGuard } from 'shieldcortex/integrations/langchain';
|
|
141
|
+
|
|
142
|
+
// As a LangChain memory backend (scans before storing)
|
|
143
|
+
const memory = new ShieldCortexMemory({ mode: 'balanced' });
|
|
144
|
+
const vars = await memory.loadMemoryVariables({ input: 'deployment config' });
|
|
145
|
+
await memory.saveContext({ input: 'hello' }, { output: 'hi' });
|
|
146
|
+
|
|
147
|
+
// As standalone middleware (scan without storing)
|
|
148
|
+
const guard = new ShieldCortexGuard();
|
|
149
|
+
const result = guard.scan('some content to check');
|
|
150
|
+
if (!result.allowed) {
|
|
151
|
+
console.warn('Blocked:', result.firewall.reason);
|
|
152
|
+
}
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
---
|
|
156
|
+
|
|
157
|
+
## REST API (Any Agent)
|
|
158
|
+
|
|
159
|
+
Start the API server, then scan content from any language or framework:
|
|
160
|
+
|
|
161
|
+
```bash
|
|
162
|
+
npm run dev:api # Starts on http://localhost:3001
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
```bash
|
|
166
|
+
# Scan content
|
|
167
|
+
curl -X POST http://localhost:3001/api/v1/scan \
|
|
168
|
+
-H 'Content-Type: application/json' \
|
|
169
|
+
-d '{"content": "memory to scan", "title": "test"}'
|
|
170
|
+
|
|
171
|
+
# Batch scan
|
|
172
|
+
curl -X POST http://localhost:3001/api/v1/scan/batch \
|
|
173
|
+
-H 'Content-Type: application/json' \
|
|
174
|
+
-d '{"items": [{"content": "item 1"}, {"content": "item 2"}]}'
|
|
175
|
+
|
|
176
|
+
# Query audit logs
|
|
177
|
+
curl http://localhost:3001/api/v1/audit?firewallResult=BLOCK
|
|
119
178
|
|
|
179
|
+
# List quarantined items
|
|
180
|
+
curl http://localhost:3001/api/v1/quarantine
|
|
181
|
+
|
|
182
|
+
# Approve/reject quarantined items
|
|
183
|
+
curl -X POST http://localhost:3001/api/v1/quarantine/1/approve
|
|
184
|
+
curl -X POST http://localhost:3001/api/v1/quarantine/1/reject
|
|
120
185
|
```
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
│ │ On Every Write: │
|
|
129
|
-
│ │ ✓ Scan for injection patterns │
|
|
130
|
-
│ │ ✓ Detect credential exposure │
|
|
131
|
-
│ │ ✓ Check encoding tricks │
|
|
132
|
-
│ │ ✓ Score trust level │
|
|
133
|
-
│ │ ✓ Log to audit trail │
|
|
134
|
-
│ └───────────────────────────────────────────┘
|
|
135
|
-
│
|
|
136
|
-
│ ┌─────────────────────────────────────────────┐
|
|
137
|
-
└───▶│ On Every Read: │
|
|
138
|
-
│ ✓ Filter by trust threshold │
|
|
139
|
-
│ ✓ Semantic search & ranking │
|
|
140
|
-
│ ✓ Redact sensitive content │
|
|
141
|
-
│ ✓ Log access to audit trail │
|
|
142
|
-
└─────────────────────────────────────────────┘
|
|
186
|
+
|
|
187
|
+
---
|
|
188
|
+
|
|
189
|
+
## OpenClaw Integration
|
|
190
|
+
|
|
191
|
+
```bash
|
|
192
|
+
npx shieldcortex openclaw install
|
|
143
193
|
```
|
|
144
194
|
|
|
195
|
+
The **cortex-memory** hook provides:
|
|
196
|
+
- Auto-save on `/new` command
|
|
197
|
+
- Context injection on bootstrap
|
|
198
|
+
- Keyword triggers ("remember this...")
|
|
199
|
+
|
|
145
200
|
---
|
|
146
201
|
|
|
147
|
-
##
|
|
148
|
-
|
|
149
|
-
```
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
"search": {
|
|
165
|
-
"semanticEnabled": true,
|
|
166
|
-
"maxResults": 20
|
|
167
|
-
}
|
|
168
|
-
}
|
|
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
|
|
169
219
|
```
|
|
170
220
|
|
|
221
|
+
Works on macOS (launchd), Linux (systemd), and Windows.
|
|
222
|
+
|
|
171
223
|
---
|
|
172
224
|
|
|
173
|
-
## CLI
|
|
225
|
+
## CLI Reference
|
|
174
226
|
|
|
175
227
|
```bash
|
|
176
|
-
#
|
|
177
|
-
shieldcortex
|
|
178
|
-
shieldcortex
|
|
179
|
-
|
|
180
|
-
#
|
|
181
|
-
shieldcortex
|
|
182
|
-
shieldcortex
|
|
183
|
-
shieldcortex
|
|
184
|
-
shieldcortex
|
|
185
|
-
|
|
186
|
-
# Security Operations
|
|
187
|
-
shieldcortex scan # Scan all memories for threats
|
|
188
|
-
shieldcortex audit # View audit log
|
|
189
|
-
shieldcortex quarantine list # View quarantined memories
|
|
190
|
-
shieldcortex trust <id> <score> # Manually set trust score
|
|
191
|
-
|
|
192
|
-
# Dashboard
|
|
193
|
-
shieldcortex dashboard # Open web dashboard (Pro)
|
|
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
|
|
194
238
|
```
|
|
195
239
|
|
|
196
240
|
---
|
|
197
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
|
+
|
|
198
261
|
## Why ShieldCortex?
|
|
199
262
|
|
|
200
263
|
| Feature | Claude Cortex | Mem0 | Zep | **ShieldCortex** |
|
|
201
264
|
|---------|---------------|------|-----|------------------|
|
|
202
|
-
| Persistent Memory |
|
|
203
|
-
| Semantic Search |
|
|
204
|
-
| Prompt Injection Detection |
|
|
205
|
-
| Memory Firewall |
|
|
206
|
-
| Sub-Agent Access Control |
|
|
207
|
-
| Audit Trail |
|
|
208
|
-
| Credential Protection |
|
|
209
|
-
| MCP Native |
|
|
210
|
-
| Self-Hosted |
|
|
211
|
-
| Open Source |
|
|
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** |
|
|
212
275
|
|
|
213
276
|
**ShieldCortex is the only memory system built for adversarial conditions.**
|
|
214
277
|
|
|
@@ -218,36 +281,24 @@ shieldcortex dashboard # Open web dashboard (Pro)
|
|
|
218
281
|
|
|
219
282
|
| Tier | What You Get | Price |
|
|
220
283
|
|------|--------------|-------|
|
|
221
|
-
| **Free** | Full memory system + core security (firewall, audit, trust scoring) |
|
|
222
|
-
| **Pro** | + Sensitivity classifier, fragmentation detector, web dashboard |
|
|
223
|
-
| **Team** | + Multi-agent coordination, shared memory pools, team audit | £99/mo |
|
|
224
|
-
| **Enterprise** | + SSO, SLA, dedicated support, custom integrations | Contact us |
|
|
284
|
+
| **Free** | Full memory system + core security (firewall, audit, trust scoring) | Free |
|
|
285
|
+
| **Pro** | + Sensitivity classifier, fragmentation detector, web dashboard | Coming soon |
|
|
225
286
|
|
|
226
|
-
|
|
287
|
+
Free tier is fully functional for individual developers.
|
|
227
288
|
|
|
228
289
|
---
|
|
229
290
|
|
|
230
291
|
## Links
|
|
231
292
|
|
|
232
|
-
-
|
|
233
|
-
-
|
|
234
|
-
-
|
|
235
|
-
-
|
|
236
|
-
- 🏢 **By:** [Drakon Systems](https://drakonsystems.com)
|
|
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)
|
|
237
297
|
|
|
238
298
|
---
|
|
239
299
|
|
|
240
|
-
## Contributing
|
|
241
|
-
|
|
242
|
-
We welcome contributions! See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.
|
|
243
|
-
|
|
244
300
|
## License
|
|
245
301
|
|
|
246
|
-
MIT
|
|
247
|
-
|
|
248
|
-
---
|
|
302
|
+
MIT
|
|
249
303
|
|
|
250
|
-
|
|
251
|
-
<strong>Give your AI agent a brain that fights back.</strong><br>
|
|
252
|
-
<a href="https://shieldcortex.ai">shieldcortex.ai</a>
|
|
253
|
-
</p>
|
|
304
|
+
**Built by [Drakon Systems](https://github.com/Drakon-Systems-Ltd)**
|
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":"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
|
|
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,4BAA4B;IAC5B,MAAM,QAAQ,GAAG,oBAAoB,EAAE,CAAC;IACxC,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,UAAU,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC,CAAC;QACvE,IAAI,UAAU,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,kDAAkD,CAAC,CAAC;QAClE,CAAC;aAAM,CAAC;YACN,MAAM,mBAAmB,EAAE,CAAC;QAC9B,CAAC;IACH,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;IACpD,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;AACnC,CAAC"}
|
|
@@ -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,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "shieldcortex",
|
|
3
|
-
"version": "2.4.
|
|
3
|
+
"version": "2.4.2",
|
|
4
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",
|