@ubundi/openclaw-cortex 2.9.0 → 2.9.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/dist/features/capture/compressor.d.ts +14 -0
- package/dist/features/capture/compressor.d.ts.map +1 -0
- package/dist/features/capture/compressor.js +317 -0
- package/dist/features/capture/compressor.js.map +1 -0
- package/dist/features/capture/handler.d.ts.map +1 -1
- package/dist/features/capture/handler.js +23 -22
- package/dist/features/capture/handler.js.map +1 -1
- package/openclaw.plugin.json +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Content-aware compression for large messages before Cortex ingestion.
|
|
3
|
+
* Replaces blind truncation with structured summaries that preserve
|
|
4
|
+
* key facts for the backend's fact extraction pipeline.
|
|
5
|
+
*/
|
|
6
|
+
export type ContentFormat = "json" | "yaml" | "code" | "logs" | "config" | "text";
|
|
7
|
+
export declare function detectContentFormat(content: string): ContentFormat;
|
|
8
|
+
export declare function summarizeJson(content: string): string;
|
|
9
|
+
export declare function summarizeYaml(content: string): string;
|
|
10
|
+
export declare function summarizeLogs(content: string): string;
|
|
11
|
+
export declare function summarizeCode(content: string): string;
|
|
12
|
+
export declare function summarizeConfig(content: string): string;
|
|
13
|
+
export declare function compressLargeContent(content: string, maxChars: number): string;
|
|
14
|
+
//# sourceMappingURL=compressor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compressor.d.ts","sourceRoot":"","sources":["../../../src/features/capture/compressor.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC;AAelF,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,CAgClE;AAID,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAsCrD;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAYrD;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CA0DrD;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAiDrD;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAiCvD;AAID,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAuD9E"}
|
|
@@ -0,0 +1,317 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Content-aware compression for large messages before Cortex ingestion.
|
|
3
|
+
* Replaces blind truncation with structured summaries that preserve
|
|
4
|
+
* key facts for the backend's fact extraction pipeline.
|
|
5
|
+
*/
|
|
6
|
+
const SUMMARY_BUDGET = 2_000;
|
|
7
|
+
// --- Format detection ---
|
|
8
|
+
const JSON_START_RE = /^\s*[{\[]/;
|
|
9
|
+
const YAML_HEADER_RE = /^---\s*$/m;
|
|
10
|
+
const YAML_KV_RE = /^\w[\w.-]*\s*:/m;
|
|
11
|
+
const LOG_LINE_RE = /^\d{4}-\d{2}-\d{2}[T ]\d{2}:\d{2}/;
|
|
12
|
+
const CODE_IMPORT_RE = /^(import |from |require\(|const .+ = require|#include |using |package )/m;
|
|
13
|
+
const CODE_DEF_RE = /^(function |def |class |export |pub fn |fn |async function |const \w+ = (?:async )?\()/m;
|
|
14
|
+
// Config directives that are NOT ambiguous with YAML
|
|
15
|
+
const CONFIG_DIRECTIVE_RE = /^\s*(server\s*\{|location\s|upstream\s|FROM |RUN |ENV |COPY |ADD |ENTRYPOINT |CMD )/m;
|
|
16
|
+
export function detectContentFormat(content) {
|
|
17
|
+
const head = content.slice(0, 500);
|
|
18
|
+
const lines = content.split("\n");
|
|
19
|
+
// JSON: starts with { or [ and is parseable (or at least looks like JSON)
|
|
20
|
+
if (JSON_START_RE.test(head)) {
|
|
21
|
+
try {
|
|
22
|
+
JSON.parse(content);
|
|
23
|
+
return "json";
|
|
24
|
+
}
|
|
25
|
+
catch {
|
|
26
|
+
// Truncated JSON — still treat as JSON if it has nested structure
|
|
27
|
+
if (/["{}[\]:,]/.test(head.slice(0, 100)))
|
|
28
|
+
return "json";
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
// Logs: multiple lines starting with timestamps — check early
|
|
32
|
+
const logLineCount = lines.slice(0, 20).filter((l) => LOG_LINE_RE.test(l)).length;
|
|
33
|
+
if (logLineCount >= 3)
|
|
34
|
+
return "logs";
|
|
35
|
+
// YAML — check before config since docker-compose is YAML
|
|
36
|
+
if (YAML_HEADER_RE.test(head) || (YAML_KV_RE.test(head) && head.includes("\n"))) {
|
|
37
|
+
const kvCount = lines.slice(0, 30).filter((l) => /^\w[\w.-]*\s*:/.test(l)).length;
|
|
38
|
+
if (kvCount >= 2)
|
|
39
|
+
return "yaml";
|
|
40
|
+
}
|
|
41
|
+
// Config (nginx, Dockerfile) — unambiguous directives only
|
|
42
|
+
if (CONFIG_DIRECTIVE_RE.test(head))
|
|
43
|
+
return "config";
|
|
44
|
+
// Code
|
|
45
|
+
if (CODE_IMPORT_RE.test(head) || CODE_DEF_RE.test(head))
|
|
46
|
+
return "code";
|
|
47
|
+
return "text";
|
|
48
|
+
}
|
|
49
|
+
// --- Per-format summarizers ---
|
|
50
|
+
export function summarizeJson(content) {
|
|
51
|
+
const lines = [];
|
|
52
|
+
try {
|
|
53
|
+
const parsed = JSON.parse(content);
|
|
54
|
+
if (typeof parsed === "object" && parsed !== null && !Array.isArray(parsed)) {
|
|
55
|
+
const keys = Object.keys(parsed);
|
|
56
|
+
lines.push(`Top-level keys: ${keys.join(", ")} (${keys.length} keys)`);
|
|
57
|
+
for (const key of keys.slice(0, 10)) {
|
|
58
|
+
const val = parsed[key];
|
|
59
|
+
if (typeof val === "object" && val !== null) {
|
|
60
|
+
if (Array.isArray(val)) {
|
|
61
|
+
lines.push(` ${key}: array (${val.length} items)`);
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
const subKeys = Object.keys(val);
|
|
65
|
+
const preview = subKeys.slice(0, 5).join(", ");
|
|
66
|
+
const more = subKeys.length > 5 ? `, +${subKeys.length - 5} more` : "";
|
|
67
|
+
lines.push(` ${key}: {${preview}${more}}`);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
lines.push(` ${key}: ${JSON.stringify(val)}`);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
if (keys.length > 10)
|
|
75
|
+
lines.push(` ... +${keys.length - 10} more keys`);
|
|
76
|
+
}
|
|
77
|
+
else if (Array.isArray(parsed)) {
|
|
78
|
+
lines.push(`Array with ${parsed.length} items`);
|
|
79
|
+
if (parsed.length > 0 && typeof parsed[0] === "object" && parsed[0] !== null) {
|
|
80
|
+
lines.push(`Item keys: ${Object.keys(parsed[0]).join(", ")}`);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
catch {
|
|
85
|
+
// Malformed JSON — extract what we can with regex
|
|
86
|
+
const keyMatches = content.match(/"(\w[\w.-]*)"\s*:/g);
|
|
87
|
+
if (keyMatches) {
|
|
88
|
+
const uniqueKeys = [...new Set(keyMatches.map((m) => m.replace(/[":\s]/g, "")))];
|
|
89
|
+
lines.push(`Detected keys (partial parse): ${uniqueKeys.slice(0, 20).join(", ")}`);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
return lines.join("\n").slice(0, SUMMARY_BUDGET);
|
|
93
|
+
}
|
|
94
|
+
export function summarizeYaml(content) {
|
|
95
|
+
const lines = [];
|
|
96
|
+
const yamlLines = content.split("\n");
|
|
97
|
+
const topLevelKeys = [];
|
|
98
|
+
for (const line of yamlLines) {
|
|
99
|
+
const match = line.match(/^(\w[\w.-]*)\s*:/);
|
|
100
|
+
if (match)
|
|
101
|
+
topLevelKeys.push(match[1]);
|
|
102
|
+
}
|
|
103
|
+
if (topLevelKeys.length > 0) {
|
|
104
|
+
lines.push(`Top-level keys: ${topLevelKeys.slice(0, 20).join(", ")} (${topLevelKeys.length} keys)`);
|
|
105
|
+
}
|
|
106
|
+
return lines.join("\n").slice(0, SUMMARY_BUDGET);
|
|
107
|
+
}
|
|
108
|
+
export function summarizeLogs(content) {
|
|
109
|
+
const logLines = content.split("\n").filter((l) => l.trim().length > 0);
|
|
110
|
+
const lines = [];
|
|
111
|
+
// Time range
|
|
112
|
+
const timestamps = [];
|
|
113
|
+
for (const line of logLines) {
|
|
114
|
+
const match = line.match(/^(\d{4}-\d{2}-\d{2}[T ]\d{2}:\d{2}(?::\d{2}(?:\.\d+)?)?Z?)/);
|
|
115
|
+
if (match)
|
|
116
|
+
timestamps.push(match[1]);
|
|
117
|
+
}
|
|
118
|
+
if (timestamps.length >= 2) {
|
|
119
|
+
lines.push(`Time range: ${timestamps[0]} to ${timestamps[timestamps.length - 1]}`);
|
|
120
|
+
}
|
|
121
|
+
// Log level counts
|
|
122
|
+
const levelCounts = {};
|
|
123
|
+
const LEVEL_RE = /\b(DEBUG|INFO|WARN(?:ING)?|ERROR|FATAL|CRIT(?:ICAL)?)\b/i;
|
|
124
|
+
for (const line of logLines) {
|
|
125
|
+
const match = line.match(LEVEL_RE);
|
|
126
|
+
if (match) {
|
|
127
|
+
const level = match[1].toUpperCase().replace("WARNING", "WARN").replace("CRITICAL", "CRIT");
|
|
128
|
+
levelCounts[level] = (levelCounts[level] ?? 0) + 1;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
if (Object.keys(levelCounts).length > 0) {
|
|
132
|
+
const breakdown = Object.entries(levelCounts)
|
|
133
|
+
.sort(([, a], [, b]) => b - a)
|
|
134
|
+
.map(([level, count]) => `${level}=${count}`)
|
|
135
|
+
.join(", ");
|
|
136
|
+
lines.push(`Log levels: ${breakdown}`);
|
|
137
|
+
}
|
|
138
|
+
// Error summary — deduplicate and count
|
|
139
|
+
const errorLines = logLines.filter((l) => /\b(ERROR|FATAL|CRIT)/i.test(l));
|
|
140
|
+
if (errorLines.length > 0) {
|
|
141
|
+
const errorMessages = new Map();
|
|
142
|
+
for (const line of errorLines) {
|
|
143
|
+
// Strip timestamp and level prefix to get the core message
|
|
144
|
+
const core = line.replace(/^\d{4}-\d{2}-\d{2}[T ]\d{2}:\d{2}[^\s]*\s+\S+\s+/, "").trim();
|
|
145
|
+
const normalized = core.slice(0, 100);
|
|
146
|
+
const existing = errorMessages.get(normalized);
|
|
147
|
+
if (existing) {
|
|
148
|
+
existing.count++;
|
|
149
|
+
}
|
|
150
|
+
else {
|
|
151
|
+
const ts = line.match(/^(\d{4}-\d{2}-\d{2}[T ]\d{2}:\d{2}[^\s]*)/);
|
|
152
|
+
errorMessages.set(normalized, { count: 1, first: ts?.[1] ?? "" });
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
lines.push("Error summary:");
|
|
156
|
+
const sorted = [...errorMessages.entries()].sort(([, a], [, b]) => b.count - a.count);
|
|
157
|
+
for (const [msg, info] of sorted.slice(0, 10)) {
|
|
158
|
+
const countStr = info.count > 1 ? ` (x${info.count})` : "";
|
|
159
|
+
const tsStr = info.first ? `, first at ${info.first}` : "";
|
|
160
|
+
lines.push(` - "${msg}"${countStr}${tsStr}`);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
return lines.join("\n").slice(0, SUMMARY_BUDGET);
|
|
164
|
+
}
|
|
165
|
+
export function summarizeCode(content) {
|
|
166
|
+
const codeLines = content.split("\n");
|
|
167
|
+
const lines = [];
|
|
168
|
+
// Detect language from patterns
|
|
169
|
+
const hasImport = /^import\s/m.test(content);
|
|
170
|
+
const hasDef = /^def\s/m.test(content);
|
|
171
|
+
const hasClass = /^class\s/m.test(content);
|
|
172
|
+
const hasFrom = /^from\s/m.test(content);
|
|
173
|
+
const hasConst = /^(export\s+)?(const|let|var)\s/m.test(content);
|
|
174
|
+
const hasFunction = /^(export\s+)?(async\s+)?function\s/m.test(content);
|
|
175
|
+
const hasFn = /^(pub\s+)?fn\s/m.test(content);
|
|
176
|
+
let lang = "unknown";
|
|
177
|
+
if ((hasImport && hasFrom && hasDef) || (hasDef && hasClass))
|
|
178
|
+
lang = "Python";
|
|
179
|
+
else if (hasConst || hasFunction)
|
|
180
|
+
lang = "JavaScript/TypeScript";
|
|
181
|
+
else if (hasFn)
|
|
182
|
+
lang = "Rust";
|
|
183
|
+
else if (/^package\s/m.test(content))
|
|
184
|
+
lang = "Go";
|
|
185
|
+
if (lang !== "unknown")
|
|
186
|
+
lines.push(`Language: ${lang}`);
|
|
187
|
+
// Imports
|
|
188
|
+
const imports = [];
|
|
189
|
+
for (const line of codeLines) {
|
|
190
|
+
// JS/TS import — check first since Python `import x` would also match
|
|
191
|
+
const jsImport = line.match(/^import\s+.*?\s+from\s+["']([^"']+)["']/);
|
|
192
|
+
if (jsImport) {
|
|
193
|
+
imports.push(jsImport[1]);
|
|
194
|
+
continue;
|
|
195
|
+
}
|
|
196
|
+
// Python import
|
|
197
|
+
const pyImport = line.match(/^(?:from\s+(\S+)\s+import|import\s+([\w.]+))/);
|
|
198
|
+
if (pyImport) {
|
|
199
|
+
imports.push(pyImport[1] ?? pyImport[2]);
|
|
200
|
+
continue;
|
|
201
|
+
}
|
|
202
|
+
const requireMatch = line.match(/require\(["']([^"']+)["']\)/);
|
|
203
|
+
if (requireMatch)
|
|
204
|
+
imports.push(requireMatch[1]);
|
|
205
|
+
}
|
|
206
|
+
if (imports.length > 0) {
|
|
207
|
+
lines.push(`Imports: ${[...new Set(imports)].slice(0, 15).join(", ")}`);
|
|
208
|
+
}
|
|
209
|
+
// Classes and functions
|
|
210
|
+
const classes = [];
|
|
211
|
+
const functions = [];
|
|
212
|
+
for (const line of codeLines) {
|
|
213
|
+
const classMatch = line.match(/^(?:export\s+)?class\s+(\w+)/);
|
|
214
|
+
if (classMatch) {
|
|
215
|
+
classes.push(classMatch[1]);
|
|
216
|
+
continue;
|
|
217
|
+
}
|
|
218
|
+
const funcMatch = line.match(/^(?:export\s+)?(?:async\s+)?(?:function\s+|def\s+|(?:pub\s+)?fn\s+)(\w+)/);
|
|
219
|
+
if (funcMatch)
|
|
220
|
+
functions.push(funcMatch[1]);
|
|
221
|
+
}
|
|
222
|
+
if (classes.length > 0)
|
|
223
|
+
lines.push(`Classes: ${classes.slice(0, 10).join(", ")}`);
|
|
224
|
+
if (functions.length > 0)
|
|
225
|
+
lines.push(`Functions: ${functions.slice(0, 20).join(", ")}`);
|
|
226
|
+
return lines.join("\n").slice(0, SUMMARY_BUDGET);
|
|
227
|
+
}
|
|
228
|
+
export function summarizeConfig(content) {
|
|
229
|
+
const lines = [];
|
|
230
|
+
// Nginx
|
|
231
|
+
const nginxBlocks = content.match(/(?:server|location|upstream)\s+[^{]*\{/g);
|
|
232
|
+
if (nginxBlocks) {
|
|
233
|
+
lines.push(`Nginx blocks: ${nginxBlocks.map((b) => b.replace(/\s*\{$/, "").trim()).slice(0, 10).join(", ")}`);
|
|
234
|
+
}
|
|
235
|
+
// Docker Compose
|
|
236
|
+
const serviceMatch = content.match(/^services:\s*\n((?:\s+\w[\w-]*:\s*\n[\s\S]*?(?=\n\w|\n$))*)/m);
|
|
237
|
+
if (serviceMatch) {
|
|
238
|
+
const serviceNames = serviceMatch[1].match(/^\s{2}(\w[\w-]*):/gm);
|
|
239
|
+
if (serviceNames) {
|
|
240
|
+
lines.push(`Services: ${serviceNames.map((s) => s.trim().replace(/:$/, "")).join(", ")}`);
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
// Dockerfile
|
|
244
|
+
const fromImages = content.match(/^FROM\s+(\S+)/gm);
|
|
245
|
+
if (fromImages) {
|
|
246
|
+
lines.push(`Base images: ${fromImages.map((f) => f.replace(/^FROM\s+/, "")).join(", ")}`);
|
|
247
|
+
}
|
|
248
|
+
// Generic key-value extraction for unrecognized configs
|
|
249
|
+
if (lines.length === 0) {
|
|
250
|
+
const kvLines = content.split("\n").filter((l) => /^\w[\w.-]*\s*[=:]/.test(l));
|
|
251
|
+
if (kvLines.length > 0) {
|
|
252
|
+
lines.push(`Key settings: ${kvLines.slice(0, 15).map((l) => l.split(/[=:]/)[0].trim()).join(", ")}`);
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
return lines.join("\n").slice(0, SUMMARY_BUDGET);
|
|
256
|
+
}
|
|
257
|
+
// --- Main entry ---
|
|
258
|
+
export function compressLargeContent(content, maxChars) {
|
|
259
|
+
// Content at or under the limit passes through unchanged
|
|
260
|
+
if (content.length <= maxChars)
|
|
261
|
+
return content;
|
|
262
|
+
const format = detectContentFormat(content);
|
|
263
|
+
const lineCount = content.split("\n").length;
|
|
264
|
+
// Build structured summary
|
|
265
|
+
let summary;
|
|
266
|
+
switch (format) {
|
|
267
|
+
case "json":
|
|
268
|
+
summary = summarizeJson(content);
|
|
269
|
+
break;
|
|
270
|
+
case "yaml":
|
|
271
|
+
summary = summarizeYaml(content);
|
|
272
|
+
break;
|
|
273
|
+
case "logs":
|
|
274
|
+
summary = summarizeLogs(content);
|
|
275
|
+
break;
|
|
276
|
+
case "code":
|
|
277
|
+
summary = summarizeCode(content);
|
|
278
|
+
break;
|
|
279
|
+
case "config":
|
|
280
|
+
summary = summarizeConfig(content);
|
|
281
|
+
break;
|
|
282
|
+
case "text":
|
|
283
|
+
summary = "";
|
|
284
|
+
break;
|
|
285
|
+
}
|
|
286
|
+
const header = `[Large content: ${format}, ~${content.length.toLocaleString("en-US")} chars, ${lineCount} lines]`;
|
|
287
|
+
// Calculate how much original content we can preserve
|
|
288
|
+
const headerAndSummary = summary
|
|
289
|
+
? `${header}\n${summary}\n[Original content preserved below]\n`
|
|
290
|
+
: `${header}\n`;
|
|
291
|
+
const overhead = headerAndSummary.length;
|
|
292
|
+
const availableForOriginal = maxChars - overhead;
|
|
293
|
+
if (availableForOriginal <= 0) {
|
|
294
|
+
// Summary alone exceeds budget — just return truncated summary
|
|
295
|
+
return `${header}\n${summary}`.slice(0, maxChars);
|
|
296
|
+
}
|
|
297
|
+
// Split available budget: head gets 70%, tail gets 30%
|
|
298
|
+
const headBudget = Math.floor(availableForOriginal * 0.7);
|
|
299
|
+
const tailBudget = availableForOriginal - headBudget;
|
|
300
|
+
// For very short tail budgets, just use head
|
|
301
|
+
if (tailBudget < 200) {
|
|
302
|
+
return `${headerAndSummary}${content.slice(0, availableForOriginal)}`;
|
|
303
|
+
}
|
|
304
|
+
const head = content.slice(0, headBudget);
|
|
305
|
+
const tail = content.slice(-tailBudget);
|
|
306
|
+
const omitted = content.length - headBudget - tailBudget;
|
|
307
|
+
const omittedMarker = `\n[... ${omitted.toLocaleString("en-US")} chars omitted ...]\n`;
|
|
308
|
+
// Check if marker fits
|
|
309
|
+
const totalWithMarker = overhead + headBudget + omittedMarker.length + tailBudget;
|
|
310
|
+
if (totalWithMarker > maxChars) {
|
|
311
|
+
// Shrink head to fit marker
|
|
312
|
+
const shrink = totalWithMarker - maxChars;
|
|
313
|
+
return `${headerAndSummary}${content.slice(0, headBudget - shrink)}${omittedMarker}${tail}`;
|
|
314
|
+
}
|
|
315
|
+
return `${headerAndSummary}${head}${omittedMarker}${tail}`;
|
|
316
|
+
}
|
|
317
|
+
//# sourceMappingURL=compressor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compressor.js","sourceRoot":"","sources":["../../../src/features/capture/compressor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../src/features/capture/handler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAuB,MAAM,wBAAwB,CAAC;AAChF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../src/features/capture/handler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAuB,MAAM,wBAAwB,CAAC;AAChF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAGlE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AAE3E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2CAA2C,CAAC;AAEvF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAEvE,UAAU,eAAe;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,UAAU,aAAa;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,WAAW,CAAC,EAAE;QACZ,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;QACrB,eAAe,EAAE,MAAM,CAAC;QACxB,gBAAgB,EAAE,MAAM,CAAC;QACzB,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;CACH;AAED,KAAK,MAAM,GAAG;IACZ,KAAK,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IACjC,IAAI,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAC/B,IAAI,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAC/B,KAAK,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;CACjC,CAAC;AA4GF,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE,MAAM,EACd,UAAU,CAAC,EAAE,UAAU,EACvB,cAAc,CAAC,EAAE,cAAc,EAC/B,SAAS,CAAC,EAAE,MAAM,MAAM,GAAG,SAAS,EACpC,WAAW,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,EAC3B,eAAe,CAAC,EAAE,MAAM,EACxB,WAAW,CAAC,EAAE,WAAW,EACzB,SAAS,CAAC,EAAE,eAAe,EAC3B,cAAc,CAAC,EAAE,qBAAqB,EACtC,gBAAgB,CAAC,EAAE,gBAAgB,IAKrB,OAAO,aAAa,KAAG,OAAO,CAAC,OAAO,CAAC,CAoOtD"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { createHash } from "node:crypto";
|
|
2
2
|
import { filterLowSignalMessages, stripVolatileContent, sanitizeConversationText } from "./filter.js";
|
|
3
|
+
import { compressLargeContent } from "./compressor.js";
|
|
3
4
|
import { containsHeartbeatPrompt } from "../../internal/heartbeat-detect.js";
|
|
4
5
|
import { filterConversationMessagesForMemory } from "../../internal/message-provenance.js";
|
|
5
6
|
const MIN_CONTENT_LENGTH = 50;
|
|
@@ -139,14 +140,6 @@ export function createCaptureHandler(client, config, logger, retryQueue, knowled
|
|
|
139
140
|
content: sanitizeConversationText(extractContent(msg.content)),
|
|
140
141
|
}))
|
|
141
142
|
.filter((msg) => msg.content.length > 0);
|
|
142
|
-
// Truncate individual messages that exceed the Cortex per-message limit.
|
|
143
|
-
// The API rejects messages with content > 10,000 chars (422).
|
|
144
|
-
const API_MAX_MESSAGE_CHARS = 10_000;
|
|
145
|
-
for (const msg of normalized) {
|
|
146
|
-
if (msg.content.length > API_MAX_MESSAGE_CHARS) {
|
|
147
|
-
msg.content = msg.content.slice(0, API_MAX_MESSAGE_CHARS);
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
143
|
// Skip capture entirely for heartbeat turns — they produce low-signal
|
|
151
144
|
// operational noise that pollutes the memory store and amplifies false facts.
|
|
152
145
|
if (containsHeartbeatPrompt(normalized)) {
|
|
@@ -191,22 +184,30 @@ export function createCaptureHandler(client, config, logger, retryQueue, knowled
|
|
|
191
184
|
const trimmed = echoFiltered.length > MAX_MESSAGES ? echoFiltered.slice(-MAX_MESSAGES) : echoFiltered;
|
|
192
185
|
// Enforce byte-size cap — drop oldest messages until the transcript fits.
|
|
193
186
|
// This prevents oversized payloads from pasted files or verbose replies.
|
|
187
|
+
//
|
|
188
|
+
// Compression runs here, after echo filtering and duplicate detection use
|
|
189
|
+
// the original sanitized text, so those heuristics still see the full turn.
|
|
190
|
+
const API_MAX_MESSAGE_CHARS = 10_000;
|
|
191
|
+
const compressed = trimmed.map((msg) => (msg.content.length > API_MAX_MESSAGE_CHARS
|
|
192
|
+
? { ...msg, content: compressLargeContent(msg.content, API_MAX_MESSAGE_CHARS) }
|
|
193
|
+
: msg));
|
|
194
|
+
// Enforce byte-size cap on the actual payload that will be sent.
|
|
194
195
|
const maxBytes = config.captureMaxPayloadBytes ?? 262_144;
|
|
195
|
-
while (
|
|
196
|
-
const estimatedSize =
|
|
196
|
+
while (compressed.length > 2) {
|
|
197
|
+
const estimatedSize = compressed.reduce((sum, m) => sum + Buffer.byteLength(m.role, "utf-8") + 2 + Buffer.byteLength(m.content, "utf-8") + 2, 0);
|
|
197
198
|
if (estimatedSize <= maxBytes)
|
|
198
199
|
break;
|
|
199
|
-
|
|
200
|
+
compressed.shift();
|
|
200
201
|
}
|
|
201
202
|
// Enforce character cap — the Cortex API rejects text > 50,000 chars.
|
|
202
203
|
// The transcript format is "role: content\n\n" per message, so we estimate
|
|
203
204
|
// the final transcript length and drop oldest messages to fit.
|
|
204
205
|
const API_MAX_CHARS = 50_000;
|
|
205
|
-
while (
|
|
206
|
-
const estimatedChars =
|
|
206
|
+
while (compressed.length > 2) {
|
|
207
|
+
const estimatedChars = compressed.reduce((sum, m) => sum + m.role.length + 2 + m.content.length + 2, 0);
|
|
207
208
|
if (estimatedChars <= API_MAX_CHARS)
|
|
208
209
|
break;
|
|
209
|
-
|
|
210
|
+
compressed.shift();
|
|
210
211
|
}
|
|
211
212
|
// Keep probe-lookup filtering enabled for normal traffic and benchmark probes,
|
|
212
213
|
// but bypass it for benchmark seed sessions so factual seed Q&A is retained.
|
|
@@ -239,8 +240,8 @@ export function createCaptureHandler(client, config, logger, retryQueue, knowled
|
|
|
239
240
|
seenTurnFingerprints.delete(stale);
|
|
240
241
|
}
|
|
241
242
|
}
|
|
242
|
-
const totalChars =
|
|
243
|
-
logger.info(`Cortex capture: ${
|
|
243
|
+
const totalChars = compressed.reduce((sum, m) => sum + m.content.length, 0);
|
|
244
|
+
logger.info(`Cortex capture: ${compressed.length} messages, ${totalChars} chars`);
|
|
244
245
|
// Advance watermark before async work so a second turn doesn't re-send this delta
|
|
245
246
|
markCapturedWatermark();
|
|
246
247
|
// Ensure userId is resolved before sending — in practice this resolves in <100ms
|
|
@@ -249,17 +250,17 @@ export function createCaptureHandler(client, config, logger, retryQueue, knowled
|
|
|
249
250
|
await userIdReady;
|
|
250
251
|
logger.debug?.(`Cortex capture: sessionId=${sessionId}, userId=${getUserId?.()}`);
|
|
251
252
|
// Flatten messages into a role:content transcript for concise logging/audit
|
|
252
|
-
const transcript =
|
|
253
|
+
const transcript = compressed
|
|
253
254
|
.map((m) => `${m.role}: ${m.content}`)
|
|
254
255
|
.join("\n\n");
|
|
255
256
|
// Log a summary of what's being sent
|
|
256
257
|
const roleCounts = {};
|
|
257
|
-
for (const m of
|
|
258
|
+
for (const m of compressed) {
|
|
258
259
|
roleCounts[m.role] = (roleCounts[m.role] ?? 0) + 1;
|
|
259
260
|
}
|
|
260
261
|
const roleBreakdown = Object.entries(roleCounts).map(([r, n]) => `${r}=${n}`).join(", ");
|
|
261
262
|
const preview = (transcript.length > 200 ? transcript.slice(0, 200) + "…" : transcript).replace(/\n/g, " ");
|
|
262
|
-
logger.info(`Cortex capture summary: ${
|
|
263
|
+
logger.info(`Cortex capture summary: ${compressed.length} msgs (${roleBreakdown}), ${transcript.length} chars, sessionId=${sessionId}`);
|
|
263
264
|
logger.info(`Cortex capture preview: ${preview}`);
|
|
264
265
|
if (auditLogger) {
|
|
265
266
|
void auditLogger.log({
|
|
@@ -269,7 +270,7 @@ export function createCaptureHandler(client, config, logger, retryQueue, knowled
|
|
|
269
270
|
payload: transcript,
|
|
270
271
|
sessionId,
|
|
271
272
|
userId: getUserId?.(),
|
|
272
|
-
messageCount:
|
|
273
|
+
messageCount: compressed.length,
|
|
273
274
|
});
|
|
274
275
|
}
|
|
275
276
|
const doRemember = async () => {
|
|
@@ -280,9 +281,9 @@ export function createCaptureHandler(client, config, logger, retryQueue, knowled
|
|
|
280
281
|
throw new Error("Cortex ingest requires user_id");
|
|
281
282
|
}
|
|
282
283
|
const referenceDate = new Date().toISOString();
|
|
283
|
-
const { sourceChannel, originSessionId } = extractBatchProvenance(
|
|
284
|
+
const { sourceChannel, originSessionId } = extractBatchProvenance(compressed, event.inputProvenance);
|
|
284
285
|
// Use async conversation ingest so role attribution is preserved for RESONATE.
|
|
285
|
-
const job = await client.submitIngestConversation(
|
|
286
|
+
const job = await client.submitIngestConversation(compressed, sessionId, referenceDate, userId, "openclaw", "OpenClaw", CAPTURE_DERIVATION_MODE, sourceChannel, originSessionId, activeGoal);
|
|
286
287
|
logger.info(`Cortex capture: submitted job ${job.job_id} (status=${job.status})`);
|
|
287
288
|
// Mark that we have memories — heartbeat handler owns full knowledge refresh
|
|
288
289
|
if (knowledgeState) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/features/capture/handler.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/features/capture/handler.ts"],"names":[],"mappings":"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"}
|
package/openclaw.plugin.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"id": "openclaw-cortex",
|
|
3
3
|
"name": "Cortex Memory",
|
|
4
4
|
"description": "Long-term memory powered by Cortex — Auto-Recall, Auto-Capture, agent memory tools, and deduplication",
|
|
5
|
-
"version": "2.9.
|
|
5
|
+
"version": "2.9.1",
|
|
6
6
|
"configSchema": {
|
|
7
7
|
"type": "object",
|
|
8
8
|
"properties": {
|