shieldcortex 2.4.12 → 2.4.14
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/dashboard/.next/standalone/dashboard/.next/BUILD_ID +1 -1
- package/dashboard/.next/standalone/dashboard/.next/build-manifest.json +2 -2
- package/dashboard/.next/standalone/dashboard/.next/prerender-manifest.json +3 -3
- package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.html +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.html +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/index.html +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/index.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/index.segments/_full.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/index.segments/_index.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/index.segments/_tree.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/pages/404.html +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/pages/500.html +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/server-reference-manifest.js +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/server-reference-manifest.json +1 -1
- package/dist/api/visualization-server.d.ts.map +1 -1
- package/dist/api/visualization-server.js +36 -19
- package/dist/api/visualization-server.js.map +1 -1
- package/dist/defence/__tests__/env-detector.test.js +2 -1
- package/dist/defence/__tests__/env-detector.test.js.map +1 -1
- package/dist/defence/firewall/anomaly-scorer.d.ts.map +1 -1
- package/dist/defence/firewall/anomaly-scorer.js +34 -0
- package/dist/defence/firewall/anomaly-scorer.js.map +1 -1
- package/dist/defence/firewall/index.js +21 -3
- package/dist/defence/firewall/index.js.map +1 -1
- package/dist/defence/firewall/instruction-detector.d.ts.map +1 -1
- package/dist/defence/firewall/instruction-detector.js +17 -5
- package/dist/defence/firewall/instruction-detector.js.map +1 -1
- package/dist/defence/fragmentation/temporal-analyzer.d.ts +1 -1
- package/dist/defence/fragmentation/temporal-analyzer.d.ts.map +1 -1
- package/dist/defence/fragmentation/temporal-analyzer.js +4 -3
- package/dist/defence/fragmentation/temporal-analyzer.js.map +1 -1
- package/dist/defence/pipeline.d.ts +1 -1
- package/dist/defence/pipeline.js +15 -15
- package/dist/defence/pipeline.js.map +1 -1
- package/dist/defence/trust/env-detector.d.ts +1 -1
- package/dist/defence/trust/env-detector.js +3 -3
- package/dist/defence/trust/env-detector.js.map +1 -1
- package/dist/defence/types.d.ts +1 -1
- package/dist/defence/types.d.ts.map +1 -1
- package/dist/defence/types.js.map +1 -1
- package/dist/index.js +42 -9
- package/dist/index.js.map +1 -1
- package/dist/integrations/langchain.d.ts +6 -2
- package/dist/integrations/langchain.d.ts.map +1 -1
- package/dist/integrations/langchain.js +14 -4
- package/dist/integrations/langchain.js.map +1 -1
- package/dist/memory/store.d.ts.map +1 -1
- package/dist/memory/store.js +44 -14
- package/dist/memory/store.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +5 -2
- package/dist/server.js.map +1 -1
- package/dist/tools/remember.d.ts +5 -5
- package/dist/tools/remember.d.ts.map +1 -1
- package/dist/tools/remember.js +25 -10
- package/dist/tools/remember.js.map +1 -1
- package/hooks/openclaw/cortex-memory/handler.js +32 -12
- package/package.json +1 -1
- /package/dashboard/.next/standalone/dashboard/.next/static/{j3yGjZ6Ts_LmQ9u4uPtD1 → 7MtayvtzlsI0qgE6EfeZO}/_buildManifest.js +0 -0
- /package/dashboard/.next/standalone/dashboard/.next/static/{j3yGjZ6Ts_LmQ9u4uPtD1 → 7MtayvtzlsI0qgE6EfeZO}/_clientMiddlewareManifest.json +0 -0
- /package/dashboard/.next/standalone/dashboard/.next/static/{j3yGjZ6Ts_LmQ9u4uPtD1 → 7MtayvtzlsI0qgE6EfeZO}/_ssgManifest.js +0 -0
package/dist/tools/remember.js
CHANGED
|
@@ -27,15 +27,30 @@ export const rememberSchema = z.object({
|
|
|
27
27
|
transferable: z.boolean().optional()
|
|
28
28
|
.describe('Whether this memory can be transferred to other projects'),
|
|
29
29
|
source: z.object({
|
|
30
|
-
type: z.enum(['user', 'email', 'web', 'agent', 'file', 'api']),
|
|
30
|
+
type: z.enum(['user', 'cli', 'hook', 'email', 'web', 'agent', 'file', 'api']),
|
|
31
31
|
identifier: z.string(),
|
|
32
|
-
}).optional().describe('Source of this memory for trust scoring'),
|
|
32
|
+
}).optional().describe('Source of this memory for trust scoring (agents should pass this)'),
|
|
33
33
|
});
|
|
34
34
|
/**
|
|
35
35
|
* Execute the remember tool
|
|
36
36
|
*/
|
|
37
37
|
export async function executeRemember(input) {
|
|
38
38
|
try {
|
|
39
|
+
// Validate non-empty title and content
|
|
40
|
+
const title = input.title?.trim();
|
|
41
|
+
const content = input.content?.trim();
|
|
42
|
+
if (!title || title.length === 0) {
|
|
43
|
+
return {
|
|
44
|
+
success: false,
|
|
45
|
+
error: 'Title cannot be empty. Provide a meaningful short title for the memory.',
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
if (!content || content.length === 0) {
|
|
49
|
+
return {
|
|
50
|
+
success: false,
|
|
51
|
+
error: 'Content cannot be empty. Provide detailed content for the memory.',
|
|
52
|
+
};
|
|
53
|
+
}
|
|
39
54
|
// Resolve project (auto-detect if not provided)
|
|
40
55
|
const resolvedProject = resolveProject(input.project);
|
|
41
56
|
// Map importance to salience override
|
|
@@ -49,9 +64,9 @@ export async function executeRemember(input) {
|
|
|
49
64
|
};
|
|
50
65
|
salienceOverride = importanceMap[input.importance];
|
|
51
66
|
}
|
|
52
|
-
// Check for duplicates
|
|
67
|
+
// Check for duplicates (use trimmed title)
|
|
53
68
|
const existing = await searchMemories({
|
|
54
|
-
query:
|
|
69
|
+
query: title,
|
|
55
70
|
project: resolvedProject ?? undefined,
|
|
56
71
|
limit: 3,
|
|
57
72
|
});
|
|
@@ -70,10 +85,10 @@ export async function executeRemember(input) {
|
|
|
70
85
|
},
|
|
71
86
|
};
|
|
72
87
|
}
|
|
73
|
-
// Create the memory
|
|
88
|
+
// Create the memory (use trimmed title and content)
|
|
74
89
|
const memory = addMemory({
|
|
75
|
-
title
|
|
76
|
-
content
|
|
90
|
+
title,
|
|
91
|
+
content,
|
|
77
92
|
category: input.category,
|
|
78
93
|
type: input.type,
|
|
79
94
|
project: resolvedProject ?? undefined,
|
|
@@ -81,7 +96,7 @@ export async function executeRemember(input) {
|
|
|
81
96
|
salience: salienceOverride,
|
|
82
97
|
scope: input.scope,
|
|
83
98
|
transferable: input.transferable,
|
|
84
|
-
}, undefined, input.source
|
|
99
|
+
}, undefined, input.source ?? { type: 'cli', identifier: 'mcp' });
|
|
85
100
|
// Auto-detect and create relationships with existing memories
|
|
86
101
|
let linksCreated = 0;
|
|
87
102
|
try {
|
|
@@ -95,8 +110,8 @@ export async function executeRemember(input) {
|
|
|
95
110
|
catch {
|
|
96
111
|
// Silently ignore relationship detection errors
|
|
97
112
|
}
|
|
98
|
-
// Explain why this was remembered
|
|
99
|
-
const factors = analyzeSalienceFactors({ title
|
|
113
|
+
// Explain why this was remembered (use trimmed values)
|
|
114
|
+
const factors = analyzeSalienceFactors({ title, content });
|
|
100
115
|
const reason = explainSalience(factors);
|
|
101
116
|
// Check if content was truncated
|
|
102
117
|
const truncationInfo = getLastTruncationInfo();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remember.js","sourceRoot":"","sources":["../../src/tools/remember.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC7H,OAAO,EAAqB,sBAAsB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAEnG,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAE/D,qCAAqC;AACrC,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,+CAA+C,CAAC;IAC3E,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;IAC9D,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC;QACf,cAAc,EAAE,SAAS,EAAE,YAAY,EAAE,OAAO;QAChD,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,QAAQ;KAChE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oDAAoD,CAAC;IAC5E,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,QAAQ,EAAE;SAC7D,QAAQ,CAAC,iEAAiE,CAAC;IAC9E,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;IACzE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;IACxE,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,QAAQ,EAAE;SACjE,QAAQ,CAAC,uCAAuC,CAAC;IACpD,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE;SAC5C,QAAQ,CAAC,2DAA2D,CAAC;IACxE,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;SACjC,QAAQ,CAAC,0DAA0D,CAAC;IACvE,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"remember.js","sourceRoot":"","sources":["../../src/tools/remember.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,9 +15,10 @@ import fs from "node:fs/promises";
|
|
|
15
15
|
* Call a ShieldCortex MCP tool via mcporter
|
|
16
16
|
* @param {string} tool - Tool name (e.g., "remember", "recall", "get_context")
|
|
17
17
|
* @param {Record<string, string>} args - Tool arguments as key:value pairs
|
|
18
|
+
* @param {object} options - Options { retries: number, timeout: number }
|
|
18
19
|
* @returns {Promise<string|null>} Raw stdout or null on error
|
|
19
20
|
*/
|
|
20
|
-
function callCortex(tool, args = {}) {
|
|
21
|
+
function callCortex(tool, args = {}, options = { retries: 1, timeout: 15000 }) {
|
|
21
22
|
return new Promise((resolve) => {
|
|
22
23
|
const cmdArgs = [
|
|
23
24
|
"mcporter", "call", "--stdio",
|
|
@@ -30,17 +31,36 @@ function callCortex(tool, args = {}) {
|
|
|
30
31
|
cmdArgs.push(`${key}:${safe}`);
|
|
31
32
|
}
|
|
32
33
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
|
|
34
|
+
let attempts = 0;
|
|
35
|
+
const maxAttempts = (options.retries || 0) + 1;
|
|
36
|
+
|
|
37
|
+
function attempt() {
|
|
38
|
+
attempts++;
|
|
39
|
+
execFile("npx", cmdArgs, {
|
|
40
|
+
timeout: options.timeout || 15000,
|
|
41
|
+
maxBuffer: 1024 * 256,
|
|
42
|
+
}, (err, stdout) => {
|
|
43
|
+
if (err) {
|
|
44
|
+
// Distinguish timeout from other errors
|
|
45
|
+
const isTimeout = err.killed || err.code === "ETIMEDOUT" || err.signal === "SIGTERM";
|
|
46
|
+
const errorType = isTimeout ? "TIMEOUT" : "ERROR";
|
|
47
|
+
|
|
48
|
+
if (attempts < maxAttempts) {
|
|
49
|
+
console.warn(`[cortex-memory] ${errorType} on ${tool} (attempt ${attempts}/${maxAttempts}), retrying...`);
|
|
50
|
+
setTimeout(attempt, 1000); // 1s delay before retry
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
console.error(`[cortex-memory] ${errorType} on ${tool} after ${attempts} attempt(s):`, err.message);
|
|
55
|
+
if (err.code) console.error(`[cortex-memory] Error code: ${err.code}`);
|
|
56
|
+
resolve(null);
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
resolve(stdout?.trim() || null);
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
attempt();
|
|
44
64
|
});
|
|
45
65
|
}
|
|
46
66
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "shieldcortex",
|
|
3
|
-
"version": "2.4.
|
|
3
|
+
"version": "2.4.14",
|
|
4
4
|
"description": "Complete memory system + security layer for AI agents. Native OpenClaw integration. 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",
|
|
File without changes
|
|
File without changes
|