openclaw-engram 1.3.1 → 1.4.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.
Files changed (35) hide show
  1. package/dist/client.d.ts +15 -2
  2. package/dist/client.d.ts.map +1 -1
  3. package/dist/client.js +6 -2
  4. package/dist/client.js.map +1 -1
  5. package/dist/context/formatter.d.ts +14 -0
  6. package/dist/context/formatter.d.ts.map +1 -1
  7. package/dist/context/formatter.js +49 -0
  8. package/dist/context/formatter.js.map +1 -1
  9. package/dist/hooks/after-tool-call.d.ts.map +1 -1
  10. package/dist/hooks/after-tool-call.js +25 -9
  11. package/dist/hooks/after-tool-call.js.map +1 -1
  12. package/dist/hooks/before-compaction.d.ts.map +1 -1
  13. package/dist/hooks/before-compaction.js +2 -9
  14. package/dist/hooks/before-compaction.js.map +1 -1
  15. package/dist/hooks/before-prompt-build.d.ts.map +1 -1
  16. package/dist/hooks/before-prompt-build.js +20 -3
  17. package/dist/hooks/before-prompt-build.js.map +1 -1
  18. package/dist/hooks/content.d.ts +16 -0
  19. package/dist/hooks/content.d.ts.map +1 -0
  20. package/dist/hooks/content.js +23 -0
  21. package/dist/hooks/content.js.map +1 -0
  22. package/dist/hooks/message-classifier.d.ts +23 -0
  23. package/dist/hooks/message-classifier.d.ts.map +1 -0
  24. package/dist/hooks/message-classifier.js +92 -0
  25. package/dist/hooks/message-classifier.js.map +1 -0
  26. package/dist/hooks/session-end.d.ts.map +1 -1
  27. package/dist/hooks/session-end.js +2 -11
  28. package/dist/hooks/session-end.js.map +1 -1
  29. package/dist/tools/engram-remember.d.ts.map +1 -1
  30. package/dist/tools/engram-remember.js +4 -1
  31. package/dist/tools/engram-remember.js.map +1 -1
  32. package/dist/tools/engram-search.d.ts.map +1 -1
  33. package/dist/tools/engram-search.js +0 -6
  34. package/dist/tools/engram-search.js.map +1 -1
  35. package/package.json +1 -1
package/dist/client.d.ts CHANGED
@@ -23,6 +23,12 @@ export interface ContextInjectResponse {
23
23
  }
24
24
  export interface ContextSearchResponse {
25
25
  observations: Observation[];
26
+ /**
27
+ * Observations flagged always_inject=true in the server config.
28
+ * These are behavioral rules that must be rendered in every context injection
29
+ * regardless of query relevance.
30
+ */
31
+ always_inject?: Observation[];
26
32
  }
27
33
  export interface SessionInitResponse {
28
34
  sessionDbId: number;
@@ -88,6 +94,8 @@ export declare class EngramRestClient {
88
94
  query: string;
89
95
  cwd?: string;
90
96
  agent_id?: string;
97
+ /** Source identifier passed through to the server for analytics/routing. */
98
+ source?: string;
91
99
  }): Promise<ContextSearchResponse | null>;
92
100
  /**
93
101
  * Search for relevant decisions.
@@ -116,6 +124,8 @@ export declare class EngramRestClient {
116
124
  tool_name: string;
117
125
  tool_input: string;
118
126
  tool_result: string;
127
+ /** Source identifier passed through to the server for analytics/routing. */
128
+ source?: string;
119
129
  }): Promise<void>;
120
130
  /**
121
131
  * Submit a transcript for session backfill/extraction.
@@ -154,10 +164,13 @@ export declare class EngramRestClient {
154
164
  * Bulk-import observations.
155
165
  * POST /api/observations/bulk-import
156
166
  *
157
- * Server expects: { project, observations: [{ type, title, narrative, scope, concepts }] }
167
+ * Server expects: { project, session_id?, observations: [{ type, title, narrative, scope, concepts }] }
158
168
  * Client uses: { content → narrative, tags → concepts }
169
+ *
170
+ * Passing sessionId reuses the caller's existing session instead of creating a new
171
+ * synthetic one per call, preventing phantom session proliferation.
159
172
  */
160
- bulkImport(observations: BulkObservationInput[]): Promise<BulkImportResponse | null>;
173
+ bulkImport(observations: BulkObservationInput[], sessionId?: string): Promise<BulkImportResponse | null>;
161
174
  /**
162
175
  * Bulk-delete (archive) observations by ID.
163
176
  * POST /api/observations/bulk-status { action: "archive", ids, reason }
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/dist/client.js CHANGED
@@ -103,10 +103,13 @@ class EngramRestClient {
103
103
  * Bulk-import observations.
104
104
  * POST /api/observations/bulk-import
105
105
  *
106
- * Server expects: { project, observations: [{ type, title, narrative, scope, concepts }] }
106
+ * Server expects: { project, session_id?, observations: [{ type, title, narrative, scope, concepts }] }
107
107
  * Client uses: { content → narrative, tags → concepts }
108
+ *
109
+ * Passing sessionId reuses the caller's existing session instead of creating a new
110
+ * synthetic one per call, preventing phantom session proliferation.
108
111
  */
109
- async bulkImport(observations) {
112
+ async bulkImport(observations, sessionId) {
110
113
  if (observations.length === 0)
111
114
  return { imported: 0, skipped_duplicates: 0 };
112
115
  // All observations in a batch must share the same project.
@@ -120,6 +123,7 @@ class EngramRestClient {
120
123
  }));
121
124
  return this.post('/api/observations/bulk-import', {
122
125
  project,
126
+ ...(sessionId ? { session_id: sessionId } : {}),
123
127
  observations: mapped,
124
128
  });
125
129
  }
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
@@ -17,6 +17,20 @@ export interface FormatResult {
17
17
  /** Number of observations trimmed by token budget. */
18
18
  trimmedCount: number;
19
19
  }
20
+ /**
21
+ * Format always_inject observations into a compact behavioral rules block.
22
+ *
23
+ * These are observations marked always_inject=true on the server. They represent
24
+ * standing behavioral rules (e.g., "always use X", "never do Y") that must be
25
+ * injected into every turn regardless of query relevance.
26
+ *
27
+ * Rendered as a lightweight XML block separate from the main engram-context so
28
+ * the agent can distinguish standing rules from query-matched knowledge.
29
+ *
30
+ * @param observations - The always_inject observations from the search response.
31
+ * @returns A non-empty XML block string, or '' if nothing to render.
32
+ */
33
+ export declare function formatAlwaysInject(observations: Observation[]): string;
20
34
  /**
21
35
  * Format an array of engram observations into an XML context block.
22
36
  *
@@ -1 +1 @@
1
- {"version":3,"file":"formatter.d.ts","sourceRoot":"","sources":["../../src/context/formatter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAMhD,UAAU,gBAAgB;IACxB,wDAAwD;IACxD,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAoBD,MAAM,WAAW,YAAY;IAC3B,0EAA0E;IAC1E,OAAO,EAAE,MAAM,CAAC;IAChB,qFAAqF;IACrF,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,sDAAsD;IACtD,YAAY,EAAE,MAAM,CAAC;CACtB;AAMD;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAC3B,YAAY,EAAE,WAAW,EAAE,EAC3B,OAAO,GAAE,gBAAqB,GAC7B,YAAY,CA6Cd"}
1
+ {"version":3,"file":"formatter.d.ts","sourceRoot":"","sources":["../../src/context/formatter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAMhD,UAAU,gBAAgB;IACxB,wDAAwD;IACxD,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAoBD,MAAM,WAAW,YAAY;IAC3B,0EAA0E;IAC1E,OAAO,EAAE,MAAM,CAAC;IAChB,qFAAqF;IACrF,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,sDAAsD;IACtD,YAAY,EAAE,MAAM,CAAC;CACtB;AAMD;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,WAAW,EAAE,GAAG,MAAM,CAuCtE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAC3B,YAAY,EAAE,WAAW,EAAE,EAC3B,OAAO,GAAE,gBAAqB,GAC7B,YAAY,CA6Cd"}
@@ -6,6 +6,7 @@
6
6
  * Faithfully ported from plugin/engram/hooks/user-prompt.js with TypeScript types.
7
7
  */
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.formatAlwaysInject = formatAlwaysInject;
9
10
  exports.formatContext = formatContext;
10
11
  const SECTION_DEFS = [
11
12
  { key: 'decisions', label: 'Decisions' },
@@ -16,6 +17,54 @@ const SECTION_DEFS = [
16
17
  // ---------------------------------------------------------------------------
17
18
  // Public API
18
19
  // ---------------------------------------------------------------------------
20
+ /**
21
+ * Format always_inject observations into a compact behavioral rules block.
22
+ *
23
+ * These are observations marked always_inject=true on the server. They represent
24
+ * standing behavioral rules (e.g., "always use X", "never do Y") that must be
25
+ * injected into every turn regardless of query relevance.
26
+ *
27
+ * Rendered as a lightweight XML block separate from the main engram-context so
28
+ * the agent can distinguish standing rules from query-matched knowledge.
29
+ *
30
+ * @param observations - The always_inject observations from the search response.
31
+ * @returns A non-empty XML block string, or '' if nothing to render.
32
+ */
33
+ function formatAlwaysInject(observations) {
34
+ const safe = observations.filter((obs) => asString(obs.type).toLowerCase() !== 'credential');
35
+ if (safe.length === 0)
36
+ return '';
37
+ let out = '<engram-behavioral-rules>\n';
38
+ out += '# Standing Behavioral Rules (Always Active)\n';
39
+ out += 'IMPORTANT: These rules apply to ALL tasks in this session. Follow them unconditionally.\n\n';
40
+ for (let i = 0; i < safe.length; i++) {
41
+ const obs = safe[i];
42
+ const title = escapeXml(obs.title);
43
+ const obsType = escapeXml(asString(obs.type).toUpperCase());
44
+ const scopeTag = typeof obs.scope === 'string' && obs.scope === 'global' ? ' [GLOBAL]' : '';
45
+ out += `## ${i + 1}. [${obsType}] ${title}${scopeTag}\n`;
46
+ const facts = Array.isArray(obs.facts) ? obs.facts : [];
47
+ if (facts.length > 0) {
48
+ let hasFacts = false;
49
+ for (const fact of facts) {
50
+ if (typeof fact === 'string' && fact !== '') {
51
+ if (!hasFacts) {
52
+ out += 'Key facts:\n';
53
+ hasFacts = true;
54
+ }
55
+ out += `- ${escapeXml(fact)}\n`;
56
+ }
57
+ }
58
+ if (hasFacts)
59
+ out += '\n';
60
+ }
61
+ const narrative = escapeXml(obs.narrative);
62
+ if (narrative !== '')
63
+ out += `${narrative}\n\n`;
64
+ }
65
+ out += '</engram-behavioral-rules>\n';
66
+ return out;
67
+ }
19
68
  /**
20
69
  * Format an array of engram observations into an XML context block.
21
70
  *
@@ -1 +1 @@
1
- {"version":3,"file":"formatter.js","sourceRoot":"","sources":["../../src/context/formatter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"formatter.js","sourceRoot":"","sources":["../../src/context/formatter.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"after-tool-call.d.ts","sourceRoot":"","sources":["../../src/hooks/after-tool-call.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD,OAAO,KAAK,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAuBhG;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,kBAAkB,EACzB,GAAG,EAAE,iBAAiB,EACtB,MAAM,EAAE,gBAAgB,EACxB,MAAM,EAAE,YAAY,EACpB,MAAM,CAAC,EAAE,YAAY,GACpB,IAAI,CAuCN"}
1
+ {"version":3,"file":"after-tool-call.d.ts","sourceRoot":"","sources":["../../src/hooks/after-tool-call.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAGjD,OAAO,KAAK,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAsBhG;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,kBAAkB,EACzB,GAAG,EAAE,iBAAiB,EACtB,MAAM,EAAE,gBAAgB,EACxB,MAAM,EAAE,YAAY,EACpB,MAAM,CAAC,EAAE,YAAY,GACpB,IAAI,CAoDN"}
@@ -9,14 +9,14 @@
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
10
  exports.handleAfterToolCall = handleAfterToolCall;
11
11
  const identity_js_1 = require("../identity.js");
12
+ const message_classifier_js_1 = require("./message-classifier.js");
12
13
  const TOOL_INPUT_MAX_CHARS = 500;
13
14
  const TOOL_RESULT_MAX_CHARS = 500;
14
15
  /**
15
- * Tool names that are considered heartbeat / keep-alive events.
16
- * These are low-value, high-frequency events that create noise in the
17
- * observation store. Ingestion is skipped unless config.heartbeat.ingest is true.
16
+ * Tool names whose name alone identifies them as heartbeat / keep-alive events
17
+ * regardless of input content. These supplement the content-based classifier.
18
18
  */
19
- const HEARTBEAT_TOOLS = new Set([
19
+ const HEARTBEAT_TOOL_NAMES = new Set([
20
20
  'heartbeat',
21
21
  'keepalive',
22
22
  'keep_alive',
@@ -41,10 +41,25 @@ function handleAfterToolCall(event, ctx, client, config, logger) {
41
41
  return;
42
42
  if (!config.autoExtract)
43
43
  return;
44
- // Skip heartbeat / keep-alive tool events unless explicitly opted in
44
+ // Skip heartbeat / keep-alive tool events unless explicitly opted in.
45
+ // Two-layer check:
46
+ // 1. Tool name allowlist — fast path for well-known heartbeat tool names.
47
+ // 2. Content-based classifier — catches heartbeat file reads/writes by input content.
45
48
  const toolNameLower = (event.toolName ?? '').toLowerCase();
46
- if (HEARTBEAT_TOOLS.has(toolNameLower) && !config.heartbeat?.ingest) {
47
- return;
49
+ if (!config.heartbeat?.ingest) {
50
+ if (HEARTBEAT_TOOL_NAMES.has(toolNameLower))
51
+ return;
52
+ // Build a probe string from tool name + serialized input for content classification
53
+ let inputProbe;
54
+ try {
55
+ inputProbe = JSON.stringify(event.toolInput ?? '');
56
+ }
57
+ catch {
58
+ inputProbe = '';
59
+ }
60
+ const category = (0, message_classifier_js_1.classifyMessage)(`${event.toolName ?? ''} ${inputProbe}`, event.toolName);
61
+ if (category === 'heartbeat' || category === 'system')
62
+ return;
48
63
  }
49
64
  const agentId = ctx.agentId ?? '';
50
65
  const sessionId = ctx.sessionId ?? ctx.sessionKey ?? agentId;
@@ -69,6 +84,7 @@ function handleAfterToolCall(event, ctx, client, config, logger) {
69
84
  tool_name: event.toolName ?? 'unknown',
70
85
  tool_input: toolInput,
71
86
  tool_result: toolResult,
87
+ source: 'openclaw',
72
88
  }).catch(() => { });
73
89
  // Contradiction detection: check Write/Edit results against stored decisions
74
90
  if (isWriteOrEdit(event.toolName)) {
@@ -83,9 +99,9 @@ function truncate(value, maxChars) {
83
99
  // ---------------------------------------------------------------------------
84
100
  // Contradiction detection helpers
85
101
  // ---------------------------------------------------------------------------
86
- const WRITE_TOOLS = new Set(['write', 'edit', 'Write', 'Edit']);
102
+ const WRITE_TOOLS = new Set(['write', 'edit']);
87
103
  function isWriteOrEdit(toolName) {
88
- return toolName != null && WRITE_TOOLS.has(toolName);
104
+ return typeof toolName === 'string' && WRITE_TOOLS.has(toolName.toLowerCase());
89
105
  }
90
106
  async function checkContradictions(client, project, toolResult, logger) {
91
107
  // Extract text content from tool result
@@ -1 +1 @@
1
- {"version":3,"file":"after-tool-call.js","sourceRoot":"","sources":["../../src/hooks/after-tool-call.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"after-tool-call.js","sourceRoot":"","sources":["../../src/hooks/after-tool-call.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"before-compaction.d.ts","sourceRoot":"","sources":["../../src/hooks/before-compaction.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD,OAAO,KAAK,EAAE,qBAAqB,EAAuB,iBAAiB,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAOxH;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,qBAAqB,EAC5B,GAAG,EAAE,iBAAiB,EACtB,MAAM,EAAE,gBAAgB,EACxB,MAAM,EAAE,YAAY,EACpB,MAAM,CAAC,EAAE,YAAY,GACpB,IAAI,CAkCN"}
1
+ {"version":3,"file":"before-compaction.d.ts","sourceRoot":"","sources":["../../src/hooks/before-compaction.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAGjD,OAAO,KAAK,EAAE,qBAAqB,EAAuB,iBAAiB,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAKxH;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,qBAAqB,EAC5B,GAAG,EAAE,iBAAiB,EACtB,MAAM,EAAE,gBAAgB,EACxB,MAAM,EAAE,YAAY,EACpB,MAAM,CAAC,EAAE,YAAY,GACpB,IAAI,CA+BN"}
@@ -8,11 +8,10 @@
8
8
  */
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
10
  exports.handleBeforeCompaction = handleBeforeCompaction;
11
+ const content_js_1 = require("./content.js");
11
12
  const identity_js_1 = require("../identity.js");
12
13
  /** Maximum recent messages to include in the backfill payload. */
13
14
  const MAX_MESSAGES = 20;
14
- /** Soft character limit for the content field (server hard limit: 10,000). */
15
- const CONTENT_MAX_CHARS = 6000;
16
15
  /**
17
16
  * Handle the before_compaction hook.
18
17
  *
@@ -38,10 +37,7 @@ function handleBeforeCompaction(event, ctx, client, config, logger) {
38
37
  const content = serializeMessages(recent);
39
38
  if (!content)
40
39
  return;
41
- const stripped = stripEngramContext(content);
42
- const truncated = stripped.length > CONTENT_MAX_CHARS
43
- ? stripped.slice(0, CONTENT_MAX_CHARS)
44
- : stripped;
40
+ const truncated = (0, content_js_1.normalizeEngramContent)(content);
45
41
  // Fire-and-forget — do not await
46
42
  void client.backfillSession({
47
43
  session_id: sessionId,
@@ -62,7 +58,4 @@ function serializeMessages(messages) {
62
58
  .map((m) => `[${m.role}]: ${m.content}`)
63
59
  .join('\n\n');
64
60
  }
65
- function stripEngramContext(text) {
66
- return text.replace(/<engram-context>[\s\S]*?<\/engram-context>/g, '');
67
- }
68
61
  //# sourceMappingURL=before-compaction.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"before-compaction.js","sourceRoot":"","sources":["../../src/hooks/before-compaction.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;AAoBH,wDAwCC;AAxDD,gDAAiD;AAGjD,kEAAkE;AAClE,MAAM,YAAY,GAAG,EAAE,CAAC;AACxB,8EAA8E;AAC9E,MAAM,iBAAiB,GAAG,IAAI,CAAC;AAE/B;;;;;;;GAOG;AACH,SAAgB,sBAAsB,CACpC,KAA4B,EAC5B,GAAsB,EACtB,MAAwB,EACxB,MAAoB,EACpB,MAAqB;IAErB,IAAI,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;YAAE,OAAO;QAClC,IAAI,CAAC,MAAM,CAAC,WAAW;YAAE,OAAO;QAEhC,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC;QAClC,MAAM,SAAS,GAAG,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,UAAU,IAAI,OAAO,CAAC;QAC7D,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE;YAAE,OAAO,CAAC,uCAAuC;QACvE,MAAM,QAAQ,GAAG,IAAA,6BAAe,EAAC,OAAO,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC;QAC5D,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,QAAQ,CAAC,SAAS,CAAC;QAErD,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;QACrE,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC;QAC7C,MAAM,OAAO,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAC1C,IAAI,CAAC,OAAO;YAAE,OAAO;QAErB,MAAM,QAAQ,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAC7C,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,GAAG,iBAAiB;YACnD,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,iBAAiB,CAAC;YACtC,CAAC,CAAC,QAAQ,CAAC;QAEb,iCAAiC;QACjC,KAAK,MAAM,CAAC,eAAe,CAAC;YAC1B,UAAU,EAAE,SAAS;YACrB,OAAO;YACP,OAAO,EAAE,SAAS;SACnB,CAAC,CAAC;QAEH,CAAC,MAAM,IAAI,OAAO,CAAC,CAAC,IAAI,CACtB,0CAA0C,MAAM,CAAC,MAAM,mCAAmC,OAAO,GAAG,CACrG,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,CAAC,MAAM,IAAI,OAAO,CAAC,CAAC,KAAK,CAAC,sBAAsB,EAAE,GAAG,CAAC,CAAC;IACzD,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E,SAAS,iBAAiB,CAAC,QAA+B;IACxD,OAAO,QAAQ;SACZ,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC;SACvC,IAAI,CAAC,MAAM,CAAC,CAAC;AAClB,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAY;IACtC,OAAO,IAAI,CAAC,OAAO,CAAC,6CAA6C,EAAE,EAAE,CAAC,CAAC;AACzE,CAAC"}
1
+ {"version":3,"file":"before-compaction.js","sourceRoot":"","sources":["../../src/hooks/before-compaction.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;AAmBH,wDAqCC;AApDD,6CAAsD;AACtD,gDAAiD;AAGjD,kEAAkE;AAClE,MAAM,YAAY,GAAG,EAAE,CAAC;AAExB;;;;;;;GAOG;AACH,SAAgB,sBAAsB,CACpC,KAA4B,EAC5B,GAAsB,EACtB,MAAwB,EACxB,MAAoB,EACpB,MAAqB;IAErB,IAAI,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;YAAE,OAAO;QAClC,IAAI,CAAC,MAAM,CAAC,WAAW;YAAE,OAAO;QAEhC,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC;QAClC,MAAM,SAAS,GAAG,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,UAAU,IAAI,OAAO,CAAC;QAC7D,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE;YAAE,OAAO,CAAC,uCAAuC;QACvE,MAAM,QAAQ,GAAG,IAAA,6BAAe,EAAC,OAAO,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC;QAC5D,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,QAAQ,CAAC,SAAS,CAAC;QAErD,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;QACrE,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC;QAC7C,MAAM,OAAO,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAC1C,IAAI,CAAC,OAAO;YAAE,OAAO;QAErB,MAAM,SAAS,GAAG,IAAA,mCAAsB,EAAC,OAAO,CAAC,CAAC;QAElD,iCAAiC;QACjC,KAAK,MAAM,CAAC,eAAe,CAAC;YAC1B,UAAU,EAAE,SAAS;YACrB,OAAO;YACP,OAAO,EAAE,SAAS;SACnB,CAAC,CAAC;QAEH,CAAC,MAAM,IAAI,OAAO,CAAC,CAAC,IAAI,CACtB,0CAA0C,MAAM,CAAC,MAAM,mCAAmC,OAAO,GAAG,CACrG,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,CAAC,MAAM,IAAI,OAAO,CAAC,CAAC,KAAK,CAAC,sBAAsB,EAAE,GAAG,CAAC,CAAC;IACzD,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E,SAAS,iBAAiB,CAAC,QAA+B;IACxD,OAAO,QAAQ;SACZ,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC;SACvC,IAAI,CAAC,MAAM,CAAC,CAAC;AAClB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"before-prompt-build.d.ts","sourceRoot":"","sources":["../../src/hooks/before-prompt-build.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAKjD,OAAO,KAAK,EACV,sBAAsB,EACtB,iBAAiB,EACjB,iBAAiB,EACjB,YAAY,EACb,MAAM,sBAAsB,CAAC;AAI9B;;;;;;;;GAQG;AACH,wBAAsB,uBAAuB,CAC3C,KAAK,EAAE,sBAAsB,EAC7B,GAAG,EAAE,iBAAiB,EACtB,MAAM,EAAE,gBAAgB,EACxB,MAAM,EAAE,YAAY,EACpB,MAAM,CAAC,EAAE,YAAY,GACpB,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CA4EnC"}
1
+ {"version":3,"file":"before-prompt-build.d.ts","sourceRoot":"","sources":["../../src/hooks/before-prompt-build.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAMjD,OAAO,KAAK,EACV,sBAAsB,EACtB,iBAAiB,EACjB,iBAAiB,EACjB,YAAY,EACb,MAAM,sBAAsB,CAAC;AAI9B;;;;;;;;GAQG;AACH,wBAAsB,uBAAuB,CAC3C,KAAK,EAAE,sBAAsB,EAC7B,GAAG,EAAE,iBAAiB,EACtB,MAAM,EAAE,gBAAgB,EACxB,MAAM,EAAE,YAAY,EACpB,MAAM,CAAC,EAAE,YAAY,GACpB,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CA6FnC"}
@@ -11,6 +11,7 @@ exports.handleBeforePromptBuild = handleBeforePromptBuild;
11
11
  const identity_js_1 = require("../identity.js");
12
12
  const formatter_js_1 = require("../context/formatter.js");
13
13
  const tiers_js_1 = require("../context/tiers.js");
14
+ const message_classifier_js_1 = require("./message-classifier.js");
14
15
  const turnTracker = new tiers_js_1.TurnTracker();
15
16
  /**
16
17
  * Handle the before_prompt_build hook.
@@ -27,6 +28,10 @@ async function handleBeforePromptBuild(event, ctx, client, config, logger) {
27
28
  return;
28
29
  if (!event.prompt || event.prompt.trim() === '')
29
30
  return;
31
+ // Skip non-user messages — heartbeats and SDK metadata are not real queries
32
+ const category = (0, message_classifier_js_1.classifyMessage)(event.prompt);
33
+ if (category !== 'user_prompt')
34
+ return;
30
35
  const tier = turnTracker.classify(event.prompt ?? '', event.messages);
31
36
  logger?.debug(`[engram] before-prompt-build: tier=${tier.tier} budget=${tier.tokenBudget} reason=${tier.reason}`);
32
37
  if (tier.tier === 'NONE')
@@ -41,6 +46,7 @@ async function handleBeforePromptBuild(event, ctx, client, config, logger) {
41
46
  query: event.prompt,
42
47
  cwd: ctx.workspaceDir,
43
48
  agent_id: agentId,
49
+ source: 'openclaw',
44
50
  });
45
51
  }
46
52
  catch (err) {
@@ -61,9 +67,17 @@ async function handleBeforePromptBuild(event, ctx, client, config, logger) {
61
67
  if (trimmedCount > 0) {
62
68
  (logger ?? console).warn(`[engram] before-prompt-build: trimmed ${trimmedCount} observations to fit token budget`);
63
69
  }
64
- if (!context)
70
+ // Render always_inject behavioral rules (appended before the main context block).
71
+ // These are observations marked always_inject=true on the server — they contain
72
+ // behavioral guidance that must be present in every turn regardless of query match.
73
+ const alwaysInjectObs = Array.isArray(response.always_inject) ? response.always_inject : [];
74
+ const alwaysInjectBlock = alwaysInjectObs.length > 0
75
+ ? (0, formatter_js_1.formatAlwaysInject)(alwaysInjectObs)
76
+ : '';
77
+ if (!context && !alwaysInjectBlock)
65
78
  return;
66
- (logger ?? console).warn(`[engram] before-prompt-build: injecting ${injectedIds.length} observations for project ${project}`);
79
+ const totalInjected = injectedIds.length + alwaysInjectObs.length;
80
+ (logger ?? console).warn(`[engram] before-prompt-build: injecting ${injectedIds.length} observations + ${alwaysInjectObs.length} always_inject rules for project ${project}`);
67
81
  // Mark injected observations (fire-and-forget)
68
82
  if (injectedIds.length > 0) {
69
83
  try {
@@ -81,7 +95,10 @@ async function handleBeforePromptBuild(event, ctx, client, config, logger) {
81
95
  // Non-critical — context was already injected
82
96
  }
83
97
  }
84
- return { prependContext: context };
98
+ // Combine: always_inject rules first (highest priority), then query-matched context
99
+ const combined = [alwaysInjectBlock, context].filter(Boolean).join('\n');
100
+ void totalInjected; // used only in log message above
101
+ return { prependContext: combined };
85
102
  }
86
103
  catch (err) {
87
104
  (logger ?? console).error('[engram] hook error:', err);
@@ -1 +1 @@
1
- {"version":3,"file":"before-prompt-build.js","sourceRoot":"","sources":["../../src/hooks/before-prompt-build.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"before-prompt-build.js","sourceRoot":"","sources":["../../src/hooks/before-prompt-build.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Shared content normalization helpers used across hook implementations.
3
+ *
4
+ * Centralizes strip-and-truncate logic to ensure consistent behaviour
5
+ * in before-compaction and session-end hooks.
6
+ */
7
+ /** Soft character limit for the content field (server hard limit: 10,000). */
8
+ export declare const CONTENT_MAX_CHARS = 6000;
9
+ /**
10
+ * Strip `<engram-context>` blocks from `text` and truncate to {@link CONTENT_MAX_CHARS}.
11
+ *
12
+ * @param content - Raw serialized conversation text.
13
+ * @returns Normalized content safe for the engram backfill API.
14
+ */
15
+ export declare function normalizeEngramContent(content: string): string;
16
+ //# sourceMappingURL=content.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content.d.ts","sourceRoot":"","sources":["../../src/hooks/content.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,8EAA8E;AAC9E,eAAO,MAAM,iBAAiB,OAAO,CAAC;AAEtC;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAG9D"}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ /**
3
+ * Shared content normalization helpers used across hook implementations.
4
+ *
5
+ * Centralizes strip-and-truncate logic to ensure consistent behaviour
6
+ * in before-compaction and session-end hooks.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.CONTENT_MAX_CHARS = void 0;
10
+ exports.normalizeEngramContent = normalizeEngramContent;
11
+ /** Soft character limit for the content field (server hard limit: 10,000). */
12
+ exports.CONTENT_MAX_CHARS = 6000;
13
+ /**
14
+ * Strip `<engram-context>` blocks from `text` and truncate to {@link CONTENT_MAX_CHARS}.
15
+ *
16
+ * @param content - Raw serialized conversation text.
17
+ * @returns Normalized content safe for the engram backfill API.
18
+ */
19
+ function normalizeEngramContent(content) {
20
+ const stripped = content.replace(/<engram-context>[\s\S]*?<\/engram-context>/g, '');
21
+ return stripped.length > exports.CONTENT_MAX_CHARS ? stripped.slice(0, exports.CONTENT_MAX_CHARS) : stripped;
22
+ }
23
+ //# sourceMappingURL=content.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content.js","sourceRoot":"","sources":["../../src/hooks/content.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAWH,wDAGC;AAZD,8EAA8E;AACjE,QAAA,iBAAiB,GAAG,IAAI,CAAC;AAEtC;;;;;GAKG;AACH,SAAgB,sBAAsB,CAAC,OAAe;IACpD,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,6CAA6C,EAAE,EAAE,CAAC,CAAC;IACpF,OAAO,QAAQ,CAAC,MAAM,GAAG,yBAAiB,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,yBAAiB,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC/F,CAAC"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * message-classifier — content-based message classification for hook filtering.
3
+ *
4
+ * Provides an allowlist/blocklist approach to classify incoming prompts so that
5
+ * hooks can skip low-value messages (heartbeats, SDK metadata) without duplicating
6
+ * detection logic across multiple hook files.
7
+ */
8
+ /** Semantic category of an incoming message. */
9
+ export type MessageCategory = 'user_prompt' | 'heartbeat' | 'system' | 'agent_internal';
10
+ /**
11
+ * Classify an incoming message based on its content and optional tool name.
12
+ *
13
+ * Decision order:
14
+ * 1. Heartbeat — always block (workspace health check noise)
15
+ * 2. System — always block (SDK metadata, not a user query)
16
+ * 3. Default — treat as user_prompt (allow)
17
+ *
18
+ * @param prompt - The raw prompt or message text to classify.
19
+ * @param toolName - Optional tool name associated with the message (after_tool_call hook).
20
+ * @returns The most specific category that matches, or 'user_prompt' by default.
21
+ */
22
+ export declare function classifyMessage(prompt: string, toolName?: string): MessageCategory;
23
+ //# sourceMappingURL=message-classifier.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message-classifier.d.ts","sourceRoot":"","sources":["../../src/hooks/message-classifier.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,gDAAgD;AAChD,MAAM,MAAM,eAAe,GAAG,aAAa,GAAG,WAAW,GAAG,QAAQ,GAAG,gBAAgB,CAAC;AAuCxF;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,eAAe,CAIlF"}
@@ -0,0 +1,92 @@
1
+ "use strict";
2
+ /**
3
+ * message-classifier — content-based message classification for hook filtering.
4
+ *
5
+ * Provides an allowlist/blocklist approach to classify incoming prompts so that
6
+ * hooks can skip low-value messages (heartbeats, SDK metadata) without duplicating
7
+ * detection logic across multiple hook files.
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.classifyMessage = classifyMessage;
11
+ // ---------------------------------------------------------------------------
12
+ // Pattern lists
13
+ // ---------------------------------------------------------------------------
14
+ /**
15
+ * Content substrings that positively identify a heartbeat message.
16
+ * All comparisons are case-sensitive to avoid false positives on common words.
17
+ */
18
+ const HEARTBEAT_CONTENT_PATTERNS = [
19
+ 'heartbeat.md',
20
+ 'heartbeat_ok',
21
+ 'HEARTBEAT',
22
+ 'Read HEARTBEAT',
23
+ 'check heartbeat',
24
+ ];
25
+ /**
26
+ * Tool names that operate on files. Used together with content inspection:
27
+ * a Read/Write tool call is only a heartbeat if its target IS the heartbeat file.
28
+ */
29
+ const FILE_TOOLS = new Set(['Read', 'Write']);
30
+ /**
31
+ * SDK-injected metadata patterns that should not be treated as real user prompts.
32
+ * These appear at the beginning of forwarded agent-to-agent messages or tool events.
33
+ */
34
+ const SYSTEM_CONTENT_PATTERNS = [
35
+ 'Conversation info (untrusted metadata)',
36
+ 'Sender (untrusted metadata)',
37
+ '<task-notification>',
38
+ '<command-name>',
39
+ ];
40
+ // ---------------------------------------------------------------------------
41
+ // Public API
42
+ // ---------------------------------------------------------------------------
43
+ /**
44
+ * Classify an incoming message based on its content and optional tool name.
45
+ *
46
+ * Decision order:
47
+ * 1. Heartbeat — always block (workspace health check noise)
48
+ * 2. System — always block (SDK metadata, not a user query)
49
+ * 3. Default — treat as user_prompt (allow)
50
+ *
51
+ * @param prompt - The raw prompt or message text to classify.
52
+ * @param toolName - Optional tool name associated with the message (after_tool_call hook).
53
+ * @returns The most specific category that matches, or 'user_prompt' by default.
54
+ */
55
+ function classifyMessage(prompt, toolName) {
56
+ if (isHeartbeat(prompt, toolName))
57
+ return 'heartbeat';
58
+ if (isSystemMessage(prompt))
59
+ return 'system';
60
+ return 'user_prompt';
61
+ }
62
+ // ---------------------------------------------------------------------------
63
+ // Internal classifiers
64
+ // ---------------------------------------------------------------------------
65
+ /**
66
+ * Returns true if the prompt is a workspace heartbeat / keep-alive check.
67
+ *
68
+ * Two detection strategies:
69
+ * a) Content match — prompt contains a known heartbeat substring.
70
+ * b) Tool match — a file-operating tool (Read/Write) targets the HEARTBEAT file
71
+ * (handles cases where the prompt text itself is sparse).
72
+ */
73
+ function isHeartbeat(prompt, toolName) {
74
+ // Strategy (a): content substring match
75
+ for (const pattern of HEARTBEAT_CONTENT_PATTERNS) {
76
+ if (prompt.includes(pattern))
77
+ return true;
78
+ }
79
+ // Strategy (b): file tool whose target is the heartbeat file
80
+ if (toolName && FILE_TOOLS.has(toolName) && prompt.includes('HEARTBEAT')) {
81
+ return true;
82
+ }
83
+ return false;
84
+ }
85
+ /**
86
+ * Returns true if the prompt is an SDK-injected metadata block rather than a
87
+ * real user query. These appear in agent-to-agent forwarded messages.
88
+ */
89
+ function isSystemMessage(prompt) {
90
+ return SYSTEM_CONTENT_PATTERNS.some((pattern) => prompt.includes(pattern));
91
+ }
92
+ //# sourceMappingURL=message-classifier.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message-classifier.js","sourceRoot":"","sources":["../../src/hooks/message-classifier.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;AA0DH,0CAIC;AArDD,8EAA8E;AAC9E,gBAAgB;AAChB,8EAA8E;AAE9E;;;GAGG;AACH,MAAM,0BAA0B,GAAsB;IACpD,cAAc;IACd,cAAc;IACd,WAAW;IACX,gBAAgB;IAChB,iBAAiB;CAClB,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,GAAwB,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAEnE;;;GAGG;AACH,MAAM,uBAAuB,GAAsB;IACjD,wCAAwC;IACxC,6BAA6B;IAC7B,qBAAqB;IACrB,gBAAgB;CACjB,CAAC;AAEF,8EAA8E;AAC9E,aAAa;AACb,8EAA8E;AAE9E;;;;;;;;;;;GAWG;AACH,SAAgB,eAAe,CAAC,MAAc,EAAE,QAAiB;IAC/D,IAAI,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC;QAAE,OAAO,WAAW,CAAC;IACtD,IAAI,eAAe,CAAC,MAAM,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC7C,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,8EAA8E;AAC9E,uBAAuB;AACvB,8EAA8E;AAE9E;;;;;;;GAOG;AACH,SAAS,WAAW,CAAC,MAAc,EAAE,QAAiB;IACpD,wCAAwC;IACxC,KAAK,MAAM,OAAO,IAAI,0BAA0B,EAAE,CAAC;QACjD,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC;YAAE,OAAO,IAAI,CAAC;IAC5C,CAAC;IAED,6DAA6D;IAC7D,IAAI,QAAQ,IAAI,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QACzE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,SAAS,eAAe,CAAC,MAAc;IACrC,OAAO,uBAAuB,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;AAC7E,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"session-end.d.ts","sourceRoot":"","sources":["../../src/hooks/session-end.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD,OAAO,KAAK,EAAE,eAAe,EAAuB,iBAAiB,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAKlH;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,eAAe,EACtB,GAAG,EAAE,iBAAiB,EACtB,MAAM,EAAE,gBAAgB,EACxB,MAAM,EAAE,YAAY,EACpB,MAAM,CAAC,EAAE,YAAY,GACpB,IAAI,CAyCN"}
1
+ {"version":3,"file":"session-end.d.ts","sourceRoot":"","sources":["../../src/hooks/session-end.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAGjD,OAAO,KAAK,EAAE,eAAe,EAAuB,iBAAiB,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAIlH;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,eAAe,EACtB,GAAG,EAAE,iBAAiB,EACtB,MAAM,EAAE,gBAAgB,EACxB,MAAM,EAAE,YAAY,EACpB,MAAM,CAAC,EAAE,YAAY,GACpB,IAAI,CAsCN"}
@@ -7,9 +7,9 @@
7
7
  */
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
9
  exports.handleSessionEnd = handleSessionEnd;
10
+ const content_js_1 = require("./content.js");
10
11
  const identity_js_1 = require("../identity.js");
11
12
  const MAX_MESSAGES = 20;
12
- const CONTENT_MAX_CHARS = 6000;
13
13
  /**
14
14
  * Handle the session_end hook.
15
15
  *
@@ -36,10 +36,7 @@ function handleSessionEnd(event, ctx, client, config, logger) {
36
36
  .join('\n\n');
37
37
  if (!content)
38
38
  return;
39
- const stripped = stripEngramContext(content);
40
- const truncated = stripped.length > CONTENT_MAX_CHARS
41
- ? stripped.slice(0, CONTENT_MAX_CHARS)
42
- : stripped;
39
+ const truncated = (0, content_js_1.normalizeEngramContent)(content);
43
40
  const sessionId = ctx.sessionId ?? ctx.sessionKey ?? agentId;
44
41
  if (!sessionId?.trim())
45
42
  return;
@@ -56,10 +53,4 @@ function handleSessionEnd(event, ctx, client, config, logger) {
56
53
  (logger ?? console).error('[engram] hook error:', err);
57
54
  }
58
55
  }
59
- // ---------------------------------------------------------------------------
60
- // Helpers
61
- // ---------------------------------------------------------------------------
62
- function stripEngramContext(text) {
63
- return text.replace(/<engram-context>[\s\S]*?<\/engram-context>/g, '');
64
- }
65
56
  //# sourceMappingURL=session-end.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"session-end.js","sourceRoot":"","sources":["../../src/hooks/session-end.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAkBH,4CA+CC;AA7DD,gDAAiD;AAGjD,MAAM,YAAY,GAAG,EAAE,CAAC;AACxB,MAAM,iBAAiB,GAAG,IAAI,CAAC;AAE/B;;;;;;;GAOG;AACH,SAAgB,gBAAgB,CAC9B,KAAsB,EACtB,GAAsB,EACtB,MAAwB,EACxB,MAAoB,EACpB,MAAqB;IAErB,IAAI,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;YAAE,OAAO;QAClC,IAAI,CAAC,MAAM,CAAC,WAAW;YAAE,OAAO;QAEhC,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC;QAClC,MAAM,QAAQ,GAAG,IAAA,6BAAe,EAAC,OAAO,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC;QAC5D,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,QAAQ,CAAC,SAAS,CAAC;QAErD,MAAM,QAAQ,GAA0B,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5F,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAElC,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC;QAC7C,MAAM,OAAO,GAAG,MAAM;aACnB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC;aACvC,IAAI,CAAC,MAAM,CAAC,CAAC;QAEhB,IAAI,CAAC,OAAO;YAAE,OAAO;QAErB,MAAM,QAAQ,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAC7C,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,GAAG,iBAAiB;YACnD,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,iBAAiB,CAAC;YACtC,CAAC,CAAC,QAAQ,CAAC;QAEb,MAAM,SAAS,GAAG,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,UAAU,IAAI,OAAO,CAAC;QAC7D,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE;YAAE,OAAO;QAE/B,iCAAiC;QACjC,KAAK,MAAM,CAAC,eAAe,CAAC;YAC1B,UAAU,EAAE,SAAS;YACrB,OAAO;YACP,OAAO,EAAE,SAAS;SACnB,CAAC,CAAC;QAEH,CAAC,MAAM,IAAI,OAAO,CAAC,CAAC,IAAI,CACtB,mCAAmC,MAAM,CAAC,MAAM,wBAAwB;YACtE,aAAa,OAAO,aAAa,KAAK,CAAC,MAAM,IAAI,SAAS,GAAG,CAChE,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,CAAC,MAAM,IAAI,OAAO,CAAC,CAAC,KAAK,CAAC,sBAAsB,EAAE,GAAG,CAAC,CAAC;IACzD,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E,SAAS,kBAAkB,CAAC,IAAY;IACtC,OAAO,IAAI,CAAC,OAAO,CAAC,6CAA6C,EAAE,EAAE,CAAC,CAAC;AACzE,CAAC"}
1
+ {"version":3,"file":"session-end.js","sourceRoot":"","sources":["../../src/hooks/session-end.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAkBH,4CA4CC;AA1DD,6CAAsD;AACtD,gDAAiD;AAGjD,MAAM,YAAY,GAAG,EAAE,CAAC;AAExB;;;;;;;GAOG;AACH,SAAgB,gBAAgB,CAC9B,KAAsB,EACtB,GAAsB,EACtB,MAAwB,EACxB,MAAoB,EACpB,MAAqB;IAErB,IAAI,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;YAAE,OAAO;QAClC,IAAI,CAAC,MAAM,CAAC,WAAW;YAAE,OAAO;QAEhC,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC;QAClC,MAAM,QAAQ,GAAG,IAAA,6BAAe,EAAC,OAAO,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC;QAC5D,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,QAAQ,CAAC,SAAS,CAAC;QAErD,MAAM,QAAQ,GAA0B,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5F,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAElC,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC;QAC7C,MAAM,OAAO,GAAG,MAAM;aACnB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC;aACvC,IAAI,CAAC,MAAM,CAAC,CAAC;QAEhB,IAAI,CAAC,OAAO;YAAE,OAAO;QAErB,MAAM,SAAS,GAAG,IAAA,mCAAsB,EAAC,OAAO,CAAC,CAAC;QAElD,MAAM,SAAS,GAAG,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,UAAU,IAAI,OAAO,CAAC;QAC7D,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE;YAAE,OAAO;QAE/B,iCAAiC;QACjC,KAAK,MAAM,CAAC,eAAe,CAAC;YAC1B,UAAU,EAAE,SAAS;YACrB,OAAO;YACP,OAAO,EAAE,SAAS;SACnB,CAAC,CAAC;QAEH,CAAC,MAAM,IAAI,OAAO,CAAC,CAAC,IAAI,CACtB,mCAAmC,MAAM,CAAC,MAAM,wBAAwB;YACtE,aAAa,OAAO,aAAa,KAAK,CAAC,MAAM,IAAI,SAAS,GAAG,CAChE,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,CAAC,MAAM,IAAI,OAAO,CAAC,CAAC,KAAK,CAAC,sBAAsB,EAAE,GAAG,CAAC,CAAC;IACzD,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"engram-remember.d.ts","sourceRoot":"","sources":["../../src/tools/engram-remember.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,gBAAgB,EAAqB,MAAM,cAAc,CAAC;AACxE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD,OAAO,KAAK,EAAE,YAAY,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAgGpF,wBAAgB,wBAAwB,CACtC,GAAG,EAAE,yBAAyB,EAC9B,MAAM,EAAE,gBAAgB,EACxB,MAAM,EAAE,YAAY,GACnB,YAAY,CAoBd;AAED,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,yBAAyB,EAC9B,MAAM,EAAE,gBAAgB,EACxB,MAAM,EAAE,YAAY,GACnB,YAAY,CAqBd"}
1
+ {"version":3,"file":"engram-remember.d.ts","sourceRoot":"","sources":["../../src/tools/engram-remember.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,gBAAgB,EAAqB,MAAM,cAAc,CAAC;AACxE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD,OAAO,KAAK,EAAE,YAAY,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAoGpF,wBAAgB,wBAAwB,CACtC,GAAG,EAAE,yBAAyB,EAC9B,MAAM,EAAE,gBAAgB,EACxB,MAAM,EAAE,YAAY,GACnB,YAAY,CAoBd;AAED,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,yBAAyB,EAC9B,MAAM,EAAE,gBAAgB,EACxB,MAAM,EAAE,YAAY,GACnB,YAAY,CAqBd"}
@@ -67,7 +67,10 @@ async function storeObservation(title, content, type, scope, tags, ctx, client,
67
67
  scope,
68
68
  tags,
69
69
  };
70
- const response = await client.bulkImport([observation]);
70
+ // Pass the agent's session ID so the server reuses the existing session
71
+ // instead of creating a new synthetic one for every store call.
72
+ const sessionId = ctx.sessionId ?? ctx.sessionKey;
73
+ const response = await client.bulkImport([observation], sessionId);
71
74
  if (!response) {
72
75
  return 'engram store failed — server returned no response';
73
76
  }
@@ -1 +1 @@
1
- {"version":3,"file":"engram-remember.js","sourceRoot":"","sources":["../../src/tools/engram-remember.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engram-remember.js","sourceRoot":"","sources":["../../src/tools/engram-remember.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"engram-search.d.ts","sourceRoot":"","sources":["../../src/tools/engram-search.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAGjD,OAAO,KAAK,EAAE,YAAY,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAsEpF,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,yBAAyB,EAC9B,MAAM,EAAE,gBAAgB,EACxB,MAAM,EAAE,YAAY,GACnB,YAAY,CAEd;AAED,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,yBAAyB,EAC9B,MAAM,EAAE,gBAAgB,EACxB,MAAM,EAAE,YAAY,GACnB,YAAY,CAEd"}
1
+ {"version":3,"file":"engram-search.d.ts","sourceRoot":"","sources":["../../src/tools/engram-search.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAGjD,OAAO,KAAK,EAAE,YAAY,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAgEpF,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,yBAAyB,EAC9B,MAAM,EAAE,gBAAgB,EACxB,MAAM,EAAE,YAAY,GACnB,YAAY,CAEd;AAED,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,yBAAyB,EAC9B,MAAM,EAAE,gBAAgB,EACxB,MAAM,EAAE,YAAY,GACnB,YAAY,CAEd"}
@@ -12,14 +12,10 @@ const formatter_js_1 = require("../context/formatter.js");
12
12
  const SearchParamsSchema = zod_1.z.object({
13
13
  query: zod_1.z.string().min(1),
14
14
  limit: zod_1.z.number().int().positive().max(50).optional(),
15
- scope: zod_1.z.enum(['personal', 'shared', 'all']).optional(),
16
15
  });
17
16
  const searchParameters = typebox_1.Type.Object({
18
17
  query: typebox_1.Type.String({ description: 'Search query for engram memory' }),
19
18
  limit: typebox_1.Type.Optional(typebox_1.Type.Number({ description: 'Maximum number of results (default: 10)' })),
20
- scope: typebox_1.Type.Optional(typebox_1.Type.Union([
21
- typebox_1.Type.Literal('personal'), typebox_1.Type.Literal('shared'), typebox_1.Type.Literal('all'),
22
- ], { description: 'Search scope: personal (agent only), shared (project+global), all (default)' })),
23
19
  });
24
20
  function createSearchTool(name, ctx, client, config) {
25
21
  return {
@@ -38,8 +34,6 @@ function createSearchTool(name, ctx, client, config) {
38
34
  }
39
35
  const identity = (0, identity_js_1.resolveIdentity)(ctx.agentId ?? '', ctx.workspaceDir);
40
36
  const project = config.project ?? identity.projectId;
41
- // TODO: Pass scope filter to server when dedicated endpoint supports it.
42
- // Currently all searches include agent-scoped results via agent_id.
43
37
  const response = await client.searchContext({
44
38
  project,
45
39
  query: parsed.data.query,
@@ -1 +1 @@
1
- {"version":3,"file":"engram-search.js","sourceRoot":"","sources":["../../src/tools/engram-search.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engram-search.js","sourceRoot":"","sources":["../../src/tools/engram-search.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "openclaw-engram",
3
- "version": "1.3.1",
3
+ "version": "1.4.1",
4
4
  "description": "OpenClaw plugin that connects to engram persistent memory server",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",