openclaw-engram 2.0.7 → 2.1.5
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/client.d.ts +45 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +72 -0
- package/dist/client.js.map +1 -1
- package/dist/hooks/before-tool-call.d.ts +21 -0
- package/dist/hooks/before-tool-call.d.ts.map +1 -0
- package/dist/hooks/before-tool-call.js +72 -0
- package/dist/hooks/before-tool-call.js.map +1 -0
- package/dist/hooks/session-end.d.ts +4 -3
- package/dist/hooks/session-end.d.ts.map +1 -1
- package/dist/hooks/session-end.js +64 -22
- package/dist/hooks/session-end.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +18 -0
- package/dist/index.js.map +1 -1
- package/dist/tools/engram-decisions.d.ts.map +1 -1
- package/dist/tools/engram-decisions.js +12 -17
- package/dist/tools/engram-decisions.js.map +1 -1
- package/dist/tools/engram-find-by-file.d.ts +11 -0
- package/dist/tools/engram-find-by-file.d.ts.map +1 -0
- package/dist/tools/engram-find-by-file.js +57 -0
- package/dist/tools/engram-find-by-file.js.map +1 -0
- package/dist/tools/engram-outcome.d.ts +11 -0
- package/dist/tools/engram-outcome.d.ts.map +1 -0
- package/dist/tools/engram-outcome.js +50 -0
- package/dist/tools/engram-outcome.js.map +1 -0
- package/dist/tools/engram-presets.d.ts +12 -0
- package/dist/tools/engram-presets.d.ts.map +1 -0
- package/dist/tools/engram-presets.js +66 -0
- package/dist/tools/engram-presets.js.map +1 -0
- package/dist/tools/engram-rate.d.ts +11 -0
- package/dist/tools/engram-rate.d.ts.map +1 -0
- package/dist/tools/engram-rate.js +42 -0
- package/dist/tools/engram-rate.js.map +1 -0
- package/dist/tools/engram-suppress.d.ts +11 -0
- package/dist/tools/engram-suppress.d.ts.map +1 -0
- package/dist/tools/engram-suppress.js +39 -0
- package/dist/tools/engram-suppress.js.map +1 -0
- package/dist/tools/engram-timeline.d.ts +11 -0
- package/dist/tools/engram-timeline.d.ts.map +1 -0
- package/dist/tools/engram-timeline.js +66 -0
- package/dist/tools/engram-timeline.js.map +1 -0
- package/dist/tools/engram-vault.d.ts +12 -0
- package/dist/tools/engram-vault.d.ts.map +1 -0
- package/dist/tools/engram-vault.js +80 -0
- package/dist/tools/engram-vault.js.map +1 -0
- package/dist/tools/memory-forget.d.ts +3 -2
- package/dist/tools/memory-forget.d.ts.map +1 -1
- package/dist/tools/memory-forget.js +27 -11
- package/dist/tools/memory-forget.js.map +1 -1
- package/dist/tools/memory-get.d.ts.map +1 -1
- package/dist/tools/memory-get.js +18 -2
- package/dist/tools/memory-get.js.map +1 -1
- package/package.json +1 -1
package/dist/client.d.ts
CHANGED
|
@@ -96,6 +96,8 @@ export declare class EngramRestClient {
|
|
|
96
96
|
agent_id?: string;
|
|
97
97
|
/** Source identifier passed through to the server for analytics/routing. */
|
|
98
98
|
source?: string;
|
|
99
|
+
/** Search preset: decisions, changes, how_it_works. */
|
|
100
|
+
preset?: string;
|
|
99
101
|
}): Promise<ContextSearchResponse | null>;
|
|
100
102
|
/**
|
|
101
103
|
* Search for relevant decisions.
|
|
@@ -178,7 +180,50 @@ export declare class EngramRestClient {
|
|
|
178
180
|
* The server has no dedicated bulk-delete endpoint. Archiving is the closest
|
|
179
181
|
* equivalent — it removes observations from search results and context injection.
|
|
180
182
|
*/
|
|
183
|
+
/**
|
|
184
|
+
* Suppress an observation (reversible soft-hide from search results).
|
|
185
|
+
* POST /api/observations/bulk-status { action: "suppress", ids: [id] }
|
|
186
|
+
*/
|
|
187
|
+
suppressObservation(id: number): Promise<boolean>;
|
|
181
188
|
bulkDelete(ids: string[]): Promise<BulkDeleteResponse | null>;
|
|
189
|
+
/**
|
|
190
|
+
* Rate an observation as useful or not useful.
|
|
191
|
+
* POST /api/observations/{id}/feedback { feedback: 1 or -1 }
|
|
192
|
+
*/
|
|
193
|
+
rateObservation(id: number, useful: boolean): Promise<boolean>;
|
|
194
|
+
/**
|
|
195
|
+
* Record session outcome for closed-loop learning.
|
|
196
|
+
* POST /api/sessions/{sessionId}/outcome { outcome, reason }
|
|
197
|
+
* sessionId is the Claude session ID string (not numeric DB ID).
|
|
198
|
+
*/
|
|
199
|
+
setSessionOutcome(sessionId: string, outcome: string, reason?: string): Promise<boolean>;
|
|
200
|
+
/**
|
|
201
|
+
* Get file-context observations for a specific file.
|
|
202
|
+
* GET /api/context/by-file?path={file}&project={project}&limit={limit}
|
|
203
|
+
*/
|
|
204
|
+
getFileContext(file: string, project: string, limit?: number, timeoutMs?: number): Promise<Observation[]>;
|
|
205
|
+
/**
|
|
206
|
+
* Get timeline of observations.
|
|
207
|
+
* POST /api/context/search with timeline params.
|
|
208
|
+
*/
|
|
209
|
+
getTimeline(project: string, mode: 'recent' | 'anchor' | 'query', params?: {
|
|
210
|
+
query?: string;
|
|
211
|
+
anchor_id?: number;
|
|
212
|
+
limit?: number;
|
|
213
|
+
}): Promise<Observation[]>;
|
|
214
|
+
/**
|
|
215
|
+
* Store an encrypted credential in the vault.
|
|
216
|
+
* POST /api/vault/credentials { name, value, scope, project }
|
|
217
|
+
*/
|
|
218
|
+
storeCredential(name: string, value: string, scope: string, project?: string): Promise<boolean>;
|
|
219
|
+
/**
|
|
220
|
+
* Retrieve and decrypt a credential from the vault.
|
|
221
|
+
* GET /api/vault/credentials/{name}
|
|
222
|
+
*/
|
|
223
|
+
getCredential(name: string): Promise<{
|
|
224
|
+
name: string;
|
|
225
|
+
value: string;
|
|
226
|
+
} | null>;
|
|
182
227
|
/** Returns true if the server is currently considered reachable. */
|
|
183
228
|
isAvailable(): boolean;
|
|
184
229
|
private get;
|
package/dist/client.d.ts.map
CHANGED
|
@@ -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
|
@@ -137,6 +137,17 @@ class EngramRestClient {
|
|
|
137
137
|
* The server has no dedicated bulk-delete endpoint. Archiving is the closest
|
|
138
138
|
* equivalent — it removes observations from search results and context injection.
|
|
139
139
|
*/
|
|
140
|
+
/**
|
|
141
|
+
* Suppress an observation (reversible soft-hide from search results).
|
|
142
|
+
* POST /api/observations/bulk-status { action: "suppress", ids: [id] }
|
|
143
|
+
*/
|
|
144
|
+
async suppressObservation(id) {
|
|
145
|
+
const resp = await this.post('/api/observations/bulk-status', {
|
|
146
|
+
action: 'suppress',
|
|
147
|
+
ids: [id],
|
|
148
|
+
});
|
|
149
|
+
return resp != null && resp.updated > 0;
|
|
150
|
+
}
|
|
140
151
|
async bulkDelete(ids) {
|
|
141
152
|
const numericIds = ids.map((id) => Number(id)).filter((n) => !Number.isNaN(n));
|
|
142
153
|
if (numericIds.length === 0)
|
|
@@ -146,6 +157,67 @@ class EngramRestClient {
|
|
|
146
157
|
return null;
|
|
147
158
|
return { deleted: resp.updated };
|
|
148
159
|
}
|
|
160
|
+
/**
|
|
161
|
+
* Rate an observation as useful or not useful.
|
|
162
|
+
* POST /api/observations/{id}/feedback { feedback: 1 or -1 }
|
|
163
|
+
*/
|
|
164
|
+
async rateObservation(id, useful) {
|
|
165
|
+
const resp = await this.post(`/api/observations/${id}/feedback`, { feedback: useful ? 1 : -1 });
|
|
166
|
+
return resp != null;
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Record session outcome for closed-loop learning.
|
|
170
|
+
* POST /api/sessions/{sessionId}/outcome { outcome, reason }
|
|
171
|
+
* sessionId is the Claude session ID string (not numeric DB ID).
|
|
172
|
+
*/
|
|
173
|
+
async setSessionOutcome(sessionId, outcome, reason) {
|
|
174
|
+
const resp = await this.post(`/api/sessions/${encodeURIComponent(sessionId)}/outcome`, { outcome, reason: reason ?? '' }, 3000);
|
|
175
|
+
return resp != null;
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Get file-context observations for a specific file.
|
|
179
|
+
* GET /api/context/by-file?path={file}&project={project}&limit={limit}
|
|
180
|
+
*/
|
|
181
|
+
async getFileContext(file, project, limit = 5, timeoutMs = 3000) {
|
|
182
|
+
const params = new URLSearchParams({ path: file, project, limit: String(limit) });
|
|
183
|
+
const resp = await this.get(`/api/context/by-file?${params.toString()}`, timeoutMs);
|
|
184
|
+
return resp?.observations ?? [];
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Get timeline of observations.
|
|
188
|
+
* POST /api/context/search with timeline params.
|
|
189
|
+
*/
|
|
190
|
+
async getTimeline(project, mode, params) {
|
|
191
|
+
const body = { project, mode };
|
|
192
|
+
if (params?.query)
|
|
193
|
+
body.query = params.query;
|
|
194
|
+
if (params?.anchor_id)
|
|
195
|
+
body.anchor_id = params.anchor_id;
|
|
196
|
+
if (params?.limit)
|
|
197
|
+
body.limit = params.limit;
|
|
198
|
+
const resp = await this.post('/api/context/search', body, 15_000);
|
|
199
|
+
return resp?.observations ?? [];
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* Store an encrypted credential in the vault.
|
|
203
|
+
* POST /api/vault/credentials { name, value, scope, project }
|
|
204
|
+
*/
|
|
205
|
+
async storeCredential(name, value, scope, project) {
|
|
206
|
+
const resp = await this.post('/api/vault/credentials', {
|
|
207
|
+
name,
|
|
208
|
+
value,
|
|
209
|
+
scope,
|
|
210
|
+
project: project ?? '',
|
|
211
|
+
});
|
|
212
|
+
return resp != null;
|
|
213
|
+
}
|
|
214
|
+
/**
|
|
215
|
+
* Retrieve and decrypt a credential from the vault.
|
|
216
|
+
* GET /api/vault/credentials/{name}
|
|
217
|
+
*/
|
|
218
|
+
async getCredential(name) {
|
|
219
|
+
return this.get(`/api/vault/credentials/${encodeURIComponent(name)}`);
|
|
220
|
+
}
|
|
149
221
|
/** Returns true if the server is currently considered reachable. */
|
|
150
222
|
isAvailable() {
|
|
151
223
|
return this.availability.isAvailable();
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,uDAAwD;AAoFxD,8EAA8E;AAC9E,SAAS;AACT,8EAA8E;AAE9E,MAAa,gBAAgB;IACV,OAAO,CAAS;IAChB,KAAK,CAAS;IACd,gBAAgB,CAAS;IACjC,YAAY,CAAsB;IAE3C,YAAY,MAAoB;QAC9B,mDAAmD;QACnD,IAAI,CAAC,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACzC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAC1B,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,SAAS,CAAC;QACzC,IAAI,CAAC,YAAY,GAAG,IAAI,qCAAmB,EAAE,CAAC;IAChD,CAAC;IAED,8EAA8E;IAC9E,YAAY;IACZ,8EAA8E;IAE9E;;;OAGG;IACH,KAAK,CAAC,gBAAgB,CACpB,OAAe,EACf,GAAY;QAEZ,yFAAyF;QACzF,0FAA0F;QAC1F,OAAO,IAAI,CAAC,IAAI,CAAwB,qBAAqB,EAAE;YAC7D,QAAQ,EAAE,OAAO;YACjB,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACxB,EAAE,MAAM,CAAC,CAAC;IACb,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,aAAa,CAAC,
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* before_tool_call hook — inject file-context observations before Write/Edit tools.
|
|
3
|
+
*
|
|
4
|
+
* Matches CC PreToolUse behavior: before an agent modifies a file, inject
|
|
5
|
+
* relevant observations so it doesn't repeat past mistakes or miss known patterns.
|
|
6
|
+
*
|
|
7
|
+
* Non-blocking: 500ms timeout, failures swallowed (Constitution Principle 3).
|
|
8
|
+
*/
|
|
9
|
+
import type { EngramRestClient } from '../client.js';
|
|
10
|
+
import type { PluginConfig } from '../config.js';
|
|
11
|
+
import type { BaseHookEvent, PluginHookContext } from '../types/openclaw.js';
|
|
12
|
+
/**
|
|
13
|
+
* Handle the before_tool_call hook.
|
|
14
|
+
*
|
|
15
|
+
* Detects file-modifying tools (Write/Edit), fetches relevant observations
|
|
16
|
+
* from engram, and injects them as system context.
|
|
17
|
+
*/
|
|
18
|
+
export declare function handleBeforeToolCall(event: BaseHookEvent, ctx: PluginHookContext, client: EngramRestClient, config: PluginConfig): Promise<{
|
|
19
|
+
appendSystemContext?: string;
|
|
20
|
+
} | void>;
|
|
21
|
+
//# sourceMappingURL=before-tool-call.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"before-tool-call.d.ts","sourceRoot":"","sources":["../../src/hooks/before-tool-call.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAe,MAAM,cAAc,CAAC;AAClE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAkC7E;;;;;GAKG;AACH,wBAAsB,oBAAoB,CACxC,KAAK,EAAE,aAAa,EACpB,GAAG,EAAE,iBAAiB,EACtB,MAAM,EAAE,gBAAgB,EACxB,MAAM,EAAE,YAAY,GACnB,OAAO,CAAC;IAAE,mBAAmB,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,CA2BlD"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* before_tool_call hook — inject file-context observations before Write/Edit tools.
|
|
4
|
+
*
|
|
5
|
+
* Matches CC PreToolUse behavior: before an agent modifies a file, inject
|
|
6
|
+
* relevant observations so it doesn't repeat past mistakes or miss known patterns.
|
|
7
|
+
*
|
|
8
|
+
* Non-blocking: 500ms timeout, failures swallowed (Constitution Principle 3).
|
|
9
|
+
*/
|
|
10
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
+
exports.handleBeforeToolCall = handleBeforeToolCall;
|
|
12
|
+
const identity_js_1 = require("../identity.js");
|
|
13
|
+
/** Tool name patterns that modify files. */
|
|
14
|
+
const FILE_MODIFY_TOOLS = ['write', 'edit', 'create_file', 'replace', 'patch'];
|
|
15
|
+
function extractFilePath(toolInput) {
|
|
16
|
+
// Common parameter names for file paths across tool implementations
|
|
17
|
+
for (const key of ['file_path', 'path', 'filePath', 'file', 'filename']) {
|
|
18
|
+
const val = toolInput[key];
|
|
19
|
+
if (typeof val === 'string' && val.length > 0)
|
|
20
|
+
return val;
|
|
21
|
+
}
|
|
22
|
+
return null;
|
|
23
|
+
}
|
|
24
|
+
function formatFileContext(file, observations) {
|
|
25
|
+
if (observations.length === 0)
|
|
26
|
+
return '';
|
|
27
|
+
let out = `<file-context>\n# Known Context for ${file}\n`;
|
|
28
|
+
out += `Found ${observations.length} relevant observation(s).\n\n`;
|
|
29
|
+
for (const obs of observations) {
|
|
30
|
+
const typeLabel = (obs.type ?? 'observation').toUpperCase();
|
|
31
|
+
out += `## [${typeLabel}] ${obs.title ?? 'Untitled'}\n`;
|
|
32
|
+
if (obs.narrative)
|
|
33
|
+
out += `${obs.narrative}\n`;
|
|
34
|
+
out += '\n';
|
|
35
|
+
}
|
|
36
|
+
out += '</file-context>';
|
|
37
|
+
return out;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Handle the before_tool_call hook.
|
|
41
|
+
*
|
|
42
|
+
* Detects file-modifying tools (Write/Edit), fetches relevant observations
|
|
43
|
+
* from engram, and injects them as system context.
|
|
44
|
+
*/
|
|
45
|
+
async function handleBeforeToolCall(event, ctx, client, config) {
|
|
46
|
+
try {
|
|
47
|
+
if (!client.isAvailable())
|
|
48
|
+
return;
|
|
49
|
+
const toolEvent = event;
|
|
50
|
+
const toolName = (toolEvent.tool_name ?? '').toLowerCase();
|
|
51
|
+
// Only trigger for file-modifying tools
|
|
52
|
+
const isFileModify = FILE_MODIFY_TOOLS.some((pattern) => toolName.includes(pattern));
|
|
53
|
+
if (!isFileModify)
|
|
54
|
+
return;
|
|
55
|
+
const filePath = toolEvent.tool_input ? extractFilePath(toolEvent.tool_input) : null;
|
|
56
|
+
if (!filePath)
|
|
57
|
+
return;
|
|
58
|
+
const identity = (0, identity_js_1.resolveIdentity)(ctx.agentId ?? '', ctx.workspaceDir);
|
|
59
|
+
const project = config.project ?? identity.projectId;
|
|
60
|
+
// 500ms timeout — must not noticeably delay Write/Edit tools
|
|
61
|
+
const observations = await client.getFileContext(filePath, project, 5, 500);
|
|
62
|
+
if (observations.length === 0)
|
|
63
|
+
return;
|
|
64
|
+
const context = formatFileContext(filePath, observations);
|
|
65
|
+
return { appendSystemContext: context };
|
|
66
|
+
}
|
|
67
|
+
catch {
|
|
68
|
+
// Non-blocking: swallow all errors (Constitution Principle 3)
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=before-tool-call.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"before-tool-call.js","sourceRoot":"","sources":["../../src/hooks/before-tool-call.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;AA6CH,oDAgCC;AAzED,gDAAiD;AAGjD,4CAA4C;AAC5C,MAAM,iBAAiB,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;AAO/E,SAAS,eAAe,CAAC,SAAkC;IACzD,oEAAoE;IACpE,KAAK,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,CAAC;QACxE,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;QAC3B,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,GAAG,CAAC;IAC5D,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAY,EAAE,YAA2B;IAClE,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAEzC,IAAI,GAAG,GAAG,uCAAuC,IAAI,IAAI,CAAC;IAC1D,GAAG,IAAI,SAAS,YAAY,CAAC,MAAM,+BAA+B,CAAC;IACnE,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;QAC/B,MAAM,SAAS,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,aAAa,CAAC,CAAC,WAAW,EAAE,CAAC;QAC5D,GAAG,IAAI,OAAO,SAAS,KAAK,GAAG,CAAC,KAAK,IAAI,UAAU,IAAI,CAAC;QACxD,IAAI,GAAG,CAAC,SAAS;YAAE,GAAG,IAAI,GAAG,GAAG,CAAC,SAAS,IAAI,CAAC;QAC/C,GAAG,IAAI,IAAI,CAAC;IACd,CAAC;IACD,GAAG,IAAI,iBAAiB,CAAC;IACzB,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;GAKG;AACI,KAAK,UAAU,oBAAoB,CACxC,KAAoB,EACpB,GAAsB,EACtB,MAAwB,EACxB,MAAoB;IAEpB,IAAI,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;YAAE,OAAO;QAElC,MAAM,SAAS,GAAG,KAAsB,CAAC;QACzC,MAAM,QAAQ,GAAG,CAAC,SAAS,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;QAE3D,wCAAwC;QACxC,MAAM,YAAY,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;QACrF,IAAI,CAAC,YAAY;YAAE,OAAO;QAE1B,MAAM,QAAQ,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,eAAe,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACrF,IAAI,CAAC,QAAQ;YAAE,OAAO;QAEtB,MAAM,QAAQ,GAAG,IAAA,6BAAe,EAAC,GAAG,CAAC,OAAO,IAAI,EAAE,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC;QACtE,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,QAAQ,CAAC,SAAS,CAAC;QAErD,6DAA6D;QAC7D,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;QAC5E,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAEtC,MAAM,OAAO,GAAG,iBAAiB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QAC1D,OAAO,EAAE,mBAAmB,EAAE,OAAO,EAAE,CAAC;IAC1C,CAAC;IAAC,MAAM,CAAC;QACP,8DAA8D;QAC9D,OAAO;IACT,CAAC;AACH,CAAC"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* session_end hook — final backfill and
|
|
2
|
+
* session_end hook — final backfill, outcome recording, and utility tracking.
|
|
3
3
|
*
|
|
4
|
-
* Submits
|
|
5
|
-
*
|
|
4
|
+
* Submits remaining conversation content to engram for extraction,
|
|
5
|
+
* records session outcome (success/partial/abandoned) for closed-loop learning,
|
|
6
|
+
* and tracks utility signals for injected observations.
|
|
6
7
|
*/
|
|
7
8
|
import type { EngramRestClient } from '../client.js';
|
|
8
9
|
import type { PluginConfig } from '../config.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-end.d.ts","sourceRoot":"","sources":["../../src/hooks/session-end.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"session-end.d.ts","sourceRoot":"","sources":["../../src/hooks/session-end.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,eAAe,EAAuB,iBAAiB,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAyClH;;;;;;;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,CAgDN"}
|
|
@@ -1,15 +1,47 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/**
|
|
3
|
-
* session_end hook — final backfill and
|
|
3
|
+
* session_end hook — final backfill, outcome recording, and utility tracking.
|
|
4
4
|
*
|
|
5
|
-
* Submits
|
|
6
|
-
*
|
|
5
|
+
* Submits remaining conversation content to engram for extraction,
|
|
6
|
+
* records session outcome (success/partial/abandoned) for closed-loop learning,
|
|
7
|
+
* and tracks utility signals for injected observations.
|
|
7
8
|
*/
|
|
8
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
10
|
exports.handleSessionEnd = handleSessionEnd;
|
|
10
11
|
const content_js_1 = require("./content.js");
|
|
11
12
|
const identity_js_1 = require("../identity.js");
|
|
12
13
|
const MAX_MESSAGES = 20;
|
|
14
|
+
/** Detect session outcome from conversation signals. */
|
|
15
|
+
function detectOutcome(messages) {
|
|
16
|
+
if (messages.length === 0) {
|
|
17
|
+
return { outcome: 'abandoned', reason: 'no messages in session' };
|
|
18
|
+
}
|
|
19
|
+
const textContent = messages
|
|
20
|
+
.map((m) => (typeof m.content === 'string' ? m.content : '').toLowerCase())
|
|
21
|
+
.join('\n');
|
|
22
|
+
// Success signals: multi-word phrases to avoid false positives from common words
|
|
23
|
+
const successPatterns = [
|
|
24
|
+
'task complete', 'successfully implemented', 'pr merged',
|
|
25
|
+
'deployed to', 'issue resolved', 'committed and pushed',
|
|
26
|
+
];
|
|
27
|
+
const hasSuccess = successPatterns.some((p) => textContent.includes(p));
|
|
28
|
+
// Failure signals: also multi-word to reduce false positives
|
|
29
|
+
const failurePatterns = [
|
|
30
|
+
'build failed', 'test failed', 'unable to fix', 'regression found',
|
|
31
|
+
];
|
|
32
|
+
const hasFailure = failurePatterns.some((p) => textContent.includes(p));
|
|
33
|
+
if (hasSuccess && !hasFailure) {
|
|
34
|
+
return { outcome: 'success', reason: 'completion signals detected' };
|
|
35
|
+
}
|
|
36
|
+
if (hasSuccess && hasFailure) {
|
|
37
|
+
return { outcome: 'partial', reason: 'mixed success and failure signals' };
|
|
38
|
+
}
|
|
39
|
+
if (hasFailure) {
|
|
40
|
+
return { outcome: 'partial', reason: 'failure signals detected but session continued' };
|
|
41
|
+
}
|
|
42
|
+
// Default: completed (agent ran to end) — conservative, avoid false negatives
|
|
43
|
+
return { outcome: 'partial', reason: 'session ended without explicit outcome signal' };
|
|
44
|
+
}
|
|
13
45
|
/**
|
|
14
46
|
* Handle the session_end hook.
|
|
15
47
|
*
|
|
@@ -22,32 +54,42 @@ function handleSessionEnd(event, ctx, client, config, logger) {
|
|
|
22
54
|
try {
|
|
23
55
|
if (!client.isAvailable())
|
|
24
56
|
return;
|
|
25
|
-
if (!config.autoExtract)
|
|
26
|
-
return;
|
|
27
57
|
const agentId = ctx.agentId ?? '';
|
|
28
58
|
const identity = (0, identity_js_1.resolveIdentity)(agentId, ctx.workspaceDir);
|
|
29
59
|
const project = config.project ?? identity.projectId;
|
|
30
60
|
const messages = Array.isArray(event.messages) ? event.messages : [];
|
|
31
|
-
if (messages.length === 0)
|
|
32
|
-
return;
|
|
33
|
-
const recent = messages.slice(-MAX_MESSAGES);
|
|
34
|
-
const content = recent
|
|
35
|
-
.map((m) => `[${m.role}]: ${m.content}`)
|
|
36
|
-
.join('\n\n');
|
|
37
|
-
if (!content)
|
|
38
|
-
return;
|
|
39
|
-
const truncated = (0, content_js_1.normalizeEngramContent)(content);
|
|
40
61
|
const sessionId = ctx.sessionId ?? ctx.sessionKey ?? agentId;
|
|
41
62
|
if (!sessionId?.trim())
|
|
42
63
|
return;
|
|
43
|
-
//
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
64
|
+
// 1. Backfill remaining conversation content (fire-and-forget)
|
|
65
|
+
if (config.autoExtract && messages.length > 0) {
|
|
66
|
+
const recent = messages.slice(-MAX_MESSAGES);
|
|
67
|
+
const content = recent
|
|
68
|
+
.map((m) => `[${m.role}]: ${m.content}`)
|
|
69
|
+
.join('\n\n');
|
|
70
|
+
if (content) {
|
|
71
|
+
const truncated = (0, content_js_1.normalizeEngramContent)(content);
|
|
72
|
+
void client.backfillSession({
|
|
73
|
+
session_id: sessionId,
|
|
74
|
+
project,
|
|
75
|
+
content: truncated,
|
|
76
|
+
});
|
|
77
|
+
(logger ?? console).warn(`[engram] session-end: submitted ${recent.length} messages for backfill` +
|
|
78
|
+
` (project ${project}, reason: ${event.reason ?? 'unknown'})`);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
// 2. Record session outcome (fire-and-forget)
|
|
82
|
+
// Server accepts Claude session ID string directly — no DB ID lookup needed.
|
|
83
|
+
void (async () => {
|
|
84
|
+
try {
|
|
85
|
+
const { outcome, reason } = detectOutcome(messages);
|
|
86
|
+
await client.setSessionOutcome(sessionId, outcome, reason);
|
|
87
|
+
(logger ?? console).warn(`[engram] session-end: outcome=${outcome} (${reason})`);
|
|
88
|
+
}
|
|
89
|
+
catch (err) {
|
|
90
|
+
(logger ?? console).error('[engram] session-end outcome error:', err);
|
|
91
|
+
}
|
|
92
|
+
})();
|
|
51
93
|
}
|
|
52
94
|
catch (err) {
|
|
53
95
|
(logger ?? console).error('[engram] hook error:', err);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-end.js","sourceRoot":"","sources":["../../src/hooks/session-end.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"session-end.js","sourceRoot":"","sources":["../../src/hooks/session-end.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EACV,wBAAwB,EAKzB,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EACV,wBAAwB,EAKzB,MAAM,qBAAqB,CAAC;AAqC7B,QAAA,MAAM,MAAM,EAAE,wBAuMb,CAAC;AAEF,eAAe,MAAM,CAAC;AAGtB,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -27,12 +27,20 @@ const before_prompt_build_js_1 = require("./hooks/before-prompt-build.js");
|
|
|
27
27
|
const after_tool_call_js_1 = require("./hooks/after-tool-call.js");
|
|
28
28
|
const before_compaction_js_1 = require("./hooks/before-compaction.js");
|
|
29
29
|
const session_end_js_1 = require("./hooks/session-end.js");
|
|
30
|
+
const before_tool_call_js_1 = require("./hooks/before-tool-call.js");
|
|
30
31
|
const engram_search_js_1 = require("./tools/engram-search.js");
|
|
31
32
|
const engram_remember_js_1 = require("./tools/engram-remember.js");
|
|
32
33
|
const engram_decisions_js_1 = require("./tools/engram-decisions.js");
|
|
33
34
|
const memory_forget_js_1 = require("./tools/memory-forget.js");
|
|
34
35
|
const memory_get_js_1 = require("./tools/memory-get.js");
|
|
35
36
|
const memory_migrate_js_1 = require("./tools/memory-migrate.js");
|
|
37
|
+
const engram_rate_js_1 = require("./tools/engram-rate.js");
|
|
38
|
+
const engram_suppress_js_1 = require("./tools/engram-suppress.js");
|
|
39
|
+
const engram_outcome_js_1 = require("./tools/engram-outcome.js");
|
|
40
|
+
const engram_find_by_file_js_1 = require("./tools/engram-find-by-file.js");
|
|
41
|
+
const engram_timeline_js_1 = require("./tools/engram-timeline.js");
|
|
42
|
+
const engram_presets_js_1 = require("./tools/engram-presets.js");
|
|
43
|
+
const engram_vault_js_1 = require("./tools/engram-vault.js");
|
|
36
44
|
const memory_js_1 = require("./commands/memory.js");
|
|
37
45
|
const remember_js_1 = require("./commands/remember.js");
|
|
38
46
|
const file_watcher_js_1 = require("./services/file-watcher.js");
|
|
@@ -62,6 +70,7 @@ const plugin = {
|
|
|
62
70
|
api.on('before_compaction', (event, ctx) => {
|
|
63
71
|
(0, before_compaction_js_1.handleBeforeCompaction)(event, ctx, client, config, api.logger);
|
|
64
72
|
});
|
|
73
|
+
api.on('before_tool_call', (event, ctx) => (0, before_tool_call_js_1.handleBeforeToolCall)(event, ctx, client, config));
|
|
65
74
|
api.on('session_end', (event, ctx) => {
|
|
66
75
|
(0, session_end_js_1.handleSessionEnd)(event, ctx, client, config, api.logger);
|
|
67
76
|
});
|
|
@@ -77,6 +86,15 @@ const plugin = {
|
|
|
77
86
|
(0, memory_forget_js_1.createMemoryForgetTool)(ctx, client, config),
|
|
78
87
|
(0, memory_get_js_1.createMemoryGetTool)(ctx, client, config, api),
|
|
79
88
|
(0, memory_migrate_js_1.createMemoryMigrateTool)(ctx, client, config, api),
|
|
89
|
+
(0, engram_rate_js_1.createEngramRateTool)(ctx, client, config),
|
|
90
|
+
(0, engram_suppress_js_1.createEngramSuppressTool)(ctx, client, config),
|
|
91
|
+
(0, engram_outcome_js_1.createEngramOutcomeTool)(ctx, client, config),
|
|
92
|
+
(0, engram_find_by_file_js_1.createEngramFindByFileTool)(ctx, client, config),
|
|
93
|
+
(0, engram_timeline_js_1.createEngramTimelineTool)(ctx, client, config),
|
|
94
|
+
(0, engram_presets_js_1.createEngramChangesTool)(ctx, client, config),
|
|
95
|
+
(0, engram_presets_js_1.createEngramHowItWorksTool)(ctx, client, config),
|
|
96
|
+
(0, engram_vault_js_1.createEngramVaultStoreTool)(ctx, client, config),
|
|
97
|
+
(0, engram_vault_js_1.createEngramVaultGetTool)(ctx, client, config),
|
|
80
98
|
];
|
|
81
99
|
api.registerTool(toolFactory, {
|
|
82
100
|
names: [
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AASH,2CAAyD;AACzD,2CAA+C;AAC/C,qCAAkC;AAClC,yCAAiC;AACjC,+CAAgD;AAEhD,+DAA8D;AAC9D,yEAAuE;AACvE,2EAAyE;AACzE,mEAAiE;AACjE,uEAAsE;AACtE,2DAA0D;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engram-decisions.d.ts","sourceRoot":"","sources":["../../src/tools/engram-decisions.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"engram-decisions.d.ts","sourceRoot":"","sources":["../../src/tools/engram-decisions.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAA6B,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD,OAAO,KAAK,EAAE,YAAY,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAUpF,wBAAgB,yBAAyB,CACvC,GAAG,EAAE,yBAAyB,EAC9B,MAAM,EAAE,gBAAgB,EACxB,MAAM,EAAE,YAAY,GACnB,YAAY,CAuCd"}
|
|
@@ -29,17 +29,14 @@ function createEngramDecisionsTool(ctx, client, config) {
|
|
|
29
29
|
}
|
|
30
30
|
const identity = (0, identity_js_1.resolveIdentity)(ctx.agentId ?? '', ctx.workspaceDir);
|
|
31
31
|
const project = config.project ?? identity.projectId;
|
|
32
|
-
const response = await client.
|
|
32
|
+
const response = await client.searchDecisions({
|
|
33
33
|
project,
|
|
34
34
|
query: parsed.data.query,
|
|
35
|
-
cwd: ctx.workspaceDir,
|
|
36
|
-
agent_id: ctx.agentId,
|
|
37
35
|
});
|
|
38
36
|
if (!response) {
|
|
39
37
|
return 'engram decisions query failed — server returned no response';
|
|
40
38
|
}
|
|
41
|
-
const observations =
|
|
42
|
-
.filter((obs) => obs.type?.toLowerCase() === 'decision');
|
|
39
|
+
const observations = Array.isArray(response.observations) ? response.observations : [];
|
|
43
40
|
if (observations.length === 0) {
|
|
44
41
|
return 'No architectural decisions found for this query.';
|
|
45
42
|
}
|
|
@@ -50,20 +47,18 @@ function createEngramDecisionsTool(ctx, client, config) {
|
|
|
50
47
|
function formatDecisions(decisions) {
|
|
51
48
|
let out = '# Relevant Architectural Decisions\n\n';
|
|
52
49
|
decisions.forEach((d, i) => {
|
|
53
|
-
|
|
54
|
-
const
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
if (facts.length > 0) {
|
|
58
|
-
out += 'Rationale:\n';
|
|
59
|
-
for (const fact of facts) {
|
|
60
|
-
if (typeof fact === 'string' && fact)
|
|
61
|
-
out += `- ${fact}\n`;
|
|
62
|
-
}
|
|
63
|
-
out += '\n';
|
|
50
|
+
out += `## ${i + 1}. ${d.title ?? 'Untitled'}\n`;
|
|
51
|
+
const concepts = Array.isArray(d.concepts) ? d.concepts : [];
|
|
52
|
+
if (concepts.length > 0) {
|
|
53
|
+
out += `Tags: ${concepts.join(', ')}\n`;
|
|
64
54
|
}
|
|
65
55
|
if (d.narrative)
|
|
66
|
-
out += `${d.narrative}\n
|
|
56
|
+
out += `${d.narrative}\n`;
|
|
57
|
+
const rejected = Array.isArray(d.rejected) ? d.rejected : [];
|
|
58
|
+
if (rejected.length > 0) {
|
|
59
|
+
out += `Rejected: ${rejected.join(', ')}\n`;
|
|
60
|
+
}
|
|
61
|
+
out += '\n';
|
|
67
62
|
});
|
|
68
63
|
return out.trimEnd();
|
|
69
64
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engram-decisions.js","sourceRoot":"","sources":["../../src/tools/engram-decisions.ts"],"names":[],"mappings":";AAAA;;GAEG;;AAiBH,
|
|
1
|
+
{"version":3,"file":"engram-decisions.js","sourceRoot":"","sources":["../../src/tools/engram-decisions.ts"],"names":[],"mappings":"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"}
|