openclaw-engram 2.0.7 → 2.0.11

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 (51) hide show
  1. package/dist/client.d.ts +45 -0
  2. package/dist/client.d.ts.map +1 -1
  3. package/dist/client.js +72 -0
  4. package/dist/client.js.map +1 -1
  5. package/dist/hooks/before-tool-call.d.ts +21 -0
  6. package/dist/hooks/before-tool-call.d.ts.map +1 -0
  7. package/dist/hooks/before-tool-call.js +72 -0
  8. package/dist/hooks/before-tool-call.js.map +1 -0
  9. package/dist/hooks/session-end.d.ts +4 -3
  10. package/dist/hooks/session-end.d.ts.map +1 -1
  11. package/dist/hooks/session-end.js +64 -22
  12. package/dist/hooks/session-end.js.map +1 -1
  13. package/dist/index.d.ts.map +1 -1
  14. package/dist/index.js +18 -0
  15. package/dist/index.js.map +1 -1
  16. package/dist/tools/engram-decisions.d.ts.map +1 -1
  17. package/dist/tools/engram-decisions.js +12 -17
  18. package/dist/tools/engram-decisions.js.map +1 -1
  19. package/dist/tools/engram-find-by-file.d.ts +11 -0
  20. package/dist/tools/engram-find-by-file.d.ts.map +1 -0
  21. package/dist/tools/engram-find-by-file.js +57 -0
  22. package/dist/tools/engram-find-by-file.js.map +1 -0
  23. package/dist/tools/engram-outcome.d.ts +11 -0
  24. package/dist/tools/engram-outcome.d.ts.map +1 -0
  25. package/dist/tools/engram-outcome.js +50 -0
  26. package/dist/tools/engram-outcome.js.map +1 -0
  27. package/dist/tools/engram-presets.d.ts +12 -0
  28. package/dist/tools/engram-presets.d.ts.map +1 -0
  29. package/dist/tools/engram-presets.js +66 -0
  30. package/dist/tools/engram-presets.js.map +1 -0
  31. package/dist/tools/engram-rate.d.ts +11 -0
  32. package/dist/tools/engram-rate.d.ts.map +1 -0
  33. package/dist/tools/engram-rate.js +42 -0
  34. package/dist/tools/engram-rate.js.map +1 -0
  35. package/dist/tools/engram-suppress.d.ts +11 -0
  36. package/dist/tools/engram-suppress.d.ts.map +1 -0
  37. package/dist/tools/engram-suppress.js +39 -0
  38. package/dist/tools/engram-suppress.js.map +1 -0
  39. package/dist/tools/engram-timeline.d.ts +11 -0
  40. package/dist/tools/engram-timeline.d.ts.map +1 -0
  41. package/dist/tools/engram-timeline.js +66 -0
  42. package/dist/tools/engram-timeline.js.map +1 -0
  43. package/dist/tools/engram-vault.d.ts +12 -0
  44. package/dist/tools/engram-vault.d.ts.map +1 -0
  45. package/dist/tools/engram-vault.js +80 -0
  46. package/dist/tools/engram-vault.js.map +1 -0
  47. package/dist/tools/memory-forget.d.ts +3 -2
  48. package/dist/tools/memory-forget.d.ts.map +1 -1
  49. package/dist/tools/memory-forget.js +27 -11
  50. package/dist/tools/memory-forget.js.map +1 -1
  51. 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;
@@ -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();
@@ -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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"}
@@ -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 session statistics.
2
+ * session_end hook — final backfill, outcome recording, and utility tracking.
3
3
  *
4
- * Submits any remaining conversation content to engram for extraction.
5
- * This is the last chance to persist observations from the session.
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;;;;;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"}
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 session statistics.
3
+ * session_end hook — final backfill, outcome recording, and utility tracking.
4
4
  *
5
- * Submits any remaining conversation content to engram for extraction.
6
- * This is the last chance to persist observations from the session.
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
- // Fire-and-forget — do not await
44
- void client.backfillSession({
45
- session_id: sessionId,
46
- project,
47
- content: truncated,
48
- });
49
- (logger ?? console).warn(`[engram] session-end: submitted ${recent.length} messages for backfill` +
50
- ` (project ${project}, reason: ${event.reason ?? 'unknown'})`);
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;;;;;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
+ {"version":3,"file":"session-end.js","sourceRoot":"","sources":["../../src/hooks/session-end.ts"],"names":[],"mappings":"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"}
@@ -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;AA6B7B,QAAA,MAAM,MAAM,EAAE,wBA0Lb,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"}
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":"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"}
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;AAC1D,qEAAmE;AAEnE,+DAA0F;AAC1F,mEAA6F;AAC7F,qEAAwE;AACxE,+DAAkE;AAClE,yDAA4D;AAC5D,iEAAoE;AACpE,2DAA8D;AAC9D,mEAAsE;AACtE,iEAAoE;AACpE,2EAA4E;AAC5E,mEAAsE;AACtE,iEAAgG;AAChG,6DAA+F;AAE/F,oDAA0D;AAC1D,wDAA8D;AAC9D,gEAAsE;AAEtE,8EAA8E;AAC9E,oBAAoB;AACpB,8EAA8E;AAE9E,MAAM,MAAM,GAA6B;IACvC,EAAE,EAAE,QAAQ;IACZ,IAAI,EAAE,eAAe;IACrB,WAAW,EAAE,4CAA4C;IACzD,OAAO,EAAE,OAAO;IAChB,IAAI,EAAE,QAAQ;IACd,YAAY,EAAE,IAAA,yBAAa,GAAE;IAE7B,QAAQ,CAAC,GAAsB;QAC7B,MAAM,MAAM,GAAG,IAAA,uBAAW,EAAC,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;QACnD,MAAM,MAAM,GAAG,IAAI,4BAAgB,CAAC,MAAM,CAAC,CAAC;QAE5C,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,mCAAmC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;QAEjE,qEAAqE;QACrE,QAAQ;QACR,qEAAqE;QAErE,GAAG,CAAC,EAAE,CAAC,eAAe,EAAE,CAAC,KAAK,EAAE,GAAsB,EAAE,EAAE,CACxD,IAAA,qCAAkB,EAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAC3D,CAAC;QAEF,GAAG,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAAC,KAAK,EAAE,GAAsB,EAAE,EAAE,CAC7D,IAAA,8CAAsB,EAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAC/D,CAAC;QAEF,GAAG,CAAC,EAAE,CAAC,qBAAqB,EAAE,CAAC,KAAK,EAAE,GAAsB,EAAE,EAAE,CAC9D,IAAA,gDAAuB,EAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAChE,CAAC;QAEF,GAAG,CAAC,EAAE,CAAC,iBAAiB,EAAE,CAAC,KAAK,EAAE,GAAsB,EAAE,EAAE;YAC1D,IAAA,wCAAmB,EAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;QAEH,GAAG,CAAC,EAAE,CAAC,mBAAmB,EAAE,CAAC,KAAK,EAAE,GAAsB,EAAE,EAAE;YAC5D,IAAA,6CAAsB,EAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QACjE,CAAC,CAAC,CAAC;QAEH,GAAG,CAAC,EAAE,CAAC,kBAAkB,EAAE,CAAC,KAAK,EAAE,GAAsB,EAAE,EAAE,CAC3D,IAAA,0CAAoB,EAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,CACjD,CAAC;QAEF,GAAG,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE,GAAsB,EAAE,EAAE;YACtD,IAAA,iCAAgB,EAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QAC3D,CAAC,CAAC,CAAC;QAEH,qEAAqE;QACrE,0BAA0B;QAC1B,qEAAqE;QAErE,MAAM,WAAW,GAAG,CAAC,GAA8B,EAAE,EAAE,CAAC;YACtD,IAAA,yCAAsB,EAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC;YAC3C,IAAA,yCAAsB,EAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC;YAC3C,IAAA,6CAAwB,EAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC;YAC7C,IAAA,0CAAqB,EAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC;YAC1C,IAAA,+CAAyB,EAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC;YAC9C,IAAA,yCAAsB,EAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC;YAC3C,IAAA,mCAAmB,EAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC;YAC7C,IAAA,2CAAuB,EAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC;YACjD,IAAA,qCAAoB,EAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC;YACzC,IAAA,6CAAwB,EAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC;YAC7C,IAAA,2CAAuB,EAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC;YAC5C,IAAA,mDAA0B,EAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC;YAC/C,IAAA,6CAAwB,EAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC;YAC7C,IAAA,2CAAuB,EAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC;YAC5C,IAAA,8CAA0B,EAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC;YAC/C,IAAA,4CAA0B,EAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC;YAC/C,IAAA,0CAAwB,EAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC;SAC9C,CAAC;QAEF,GAAG,CAAC,YAAY,CAAC,WAAW,EAAE;YAC5B,KAAK,EAAE;gBACL,eAAe,EAAE,eAAe;gBAChC,iBAAiB,EAAE,cAAc;gBACjC,kBAAkB;gBAClB,eAAe;gBACf,YAAY;gBACZ,gBAAgB;aACjB;SACF,CAAC,CAAC;QAEH,qEAAqE;QACrE,WAAW;QACX,qEAAqE;QAErE,GAAG,CAAC,eAAe,CAAC,IAAA,8BAAkB,EAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;QACxD,GAAG,CAAC,eAAe,CAAC,IAAA,kCAAoB,EAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;QAE1D,GAAG,CAAC,eAAe,CAAC;YAClB,IAAI,EAAE,SAAS;YACf,WAAW,EAAE,mEAAmE;YAChF,WAAW,EAAE,IAAI;YACjB,KAAK,CAAC,OAAO,CAAC,GAAyB;gBACrC,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;gBACxC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBACnD,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;gBAC3C,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;gBACxC,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC1D,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gBAEzE,oEAAoE;gBACpE,iFAAiF;gBACjF,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY;uBACnC,IAAA,gBAAI,EAAC,IAAA,iBAAO,GAAE,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;gBAC/C,MAAM,OAAO,GAA8B,EAAE,YAAY,EAAE,CAAC;gBAC5D,MAAM,IAAI,GAAG,IAAA,2CAAuB,EAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;gBACnE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;gBACvF,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;YAC1B,CAAC;SACF,CAAC,CAAC;QAEH,qEAAqE;QACrE,oCAAoC;QACpC,qEAAqE;QAErE,GAAG,CAAC,WAAW,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE;YAC9B,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,0BAA0B,CAAC,CAAC;YAEjF,MAAM;iBACH,OAAO,CAAC,QAAQ,CAAC;iBACjB,WAAW,CAAC,2BAA2B,CAAC;iBACxC,MAAM,CAAC,KAAK,IAAI,EAAE;gBACjB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC;gBACrC,MAAM,MAAM,GAAG,MAAM,EAAE,MAAM,IAAI,SAAS,CAAC;gBAC3C,MAAM,OAAO,GAAG,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC7D,OAAO,CAAC,GAAG,CAAC,WAAW,MAAM,GAAG,OAAO,KAAK,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC;YAC7D,CAAC,CAAC,CAAC;YAEL,MAAM;iBACH,OAAO,CAAC,QAAQ,CAAC;iBACjB,WAAW,CAAC,sBAAsB,CAAC;iBACnC,QAAQ,CAAC,SAAS,EAAE,cAAc,CAAC;iBACnC,MAAM,CAAC,KAAK,EAAE,KAAc,EAAE,EAAE;gBAC/B,MAAM,QAAQ,GAAG,IAAA,6BAAe,EAAC,EAAE,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;gBACpD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC;oBAC1C,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,QAAQ,CAAC,SAAS;oBAC7C,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC;iBACrB,CAAC,CAAC;gBACH,MAAM,GAAG,GAAG,QAAQ,EAAE,YAAY,IAAI,EAAE,CAAC;gBACzC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACrB,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;oBACjC,OAAO;gBACT,CAAC;gBACD,KAAK,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC;oBACpB,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;oBACtF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,KAAK,EAAE,CAAC,CAAC;gBACtC,CAAC;YACH,CAAC,CAAC,CAAC;YAEL,MAAM;iBACH,OAAO,CAAC,OAAO,CAAC;iBAChB,WAAW,CAAC,gBAAgB,CAAC;iBAC7B,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,CAAC;iBACtC,MAAM,CAAC,KAAK,EAAE,IAAa,EAAE,EAAE;gBAC9B,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;gBAC7B,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC;gBAC3E,MAAM,aAAa,GAAG,IAAA,6BAAe,EAAC,EAAE,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;gBACzD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;wBACxC,KAAK;wBACL,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;wBAC9B,IAAI,EAAE,QAAQ;wBACd,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,aAAa,CAAC,SAAS;wBAClD,KAAK,EAAE,SAAS;qBACjB,CAAC,CAAC,CAAC;gBACJ,IAAI,QAAQ,IAAI,QAAQ,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC;oBACtC,OAAO,CAAC,GAAG,CAAC,YAAY,KAAK,GAAG,CAAC,CAAC;gBACpC,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;gBACzC,CAAC;YACH,CAAC,CAAC,CAAC;YAEL,+DAA+D;YAC/D,MAAM,cAAc,GAAG,IAAA,2CAAuB,EAC5C,EAAE,YAAY,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,EAC/B,MAAM,EAAE,MAAM,EAAE,GAAG,CACpB,CAAC;YAEF,MAAM;iBACH,OAAO,CAAC,SAAS,CAAC;iBAClB,WAAW,CAAC,uCAAuC,CAAC;iBACpD,MAAM,CAAC,WAAW,EAAE,2BAA2B,CAAC;iBAChD,MAAM,CAAC,SAAS,EAAE,kCAAkC,CAAC;iBACrD,MAAM,CAAC,KAAK,EAAE,GAAG,IAAe,EAAE,EAAE;gBACnC,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,CAA4B,CAAC;gBACtE,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;gBAC1D,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAClC,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;gBAC9E,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACtB,CAAC,CAAC,CAAC;QACP,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAE7B,+DAA+D;QAC/D,6DAA6D;QAC7D,MAAM,mBAAmB,GAAG,MAAM,CAAC,YAAY;eAC1C,IAAA,gBAAI,EAAC,IAAA,iBAAO,GAAE,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;QAC/C,GAAG,CAAC,eAAe,CAAC,IAAA,0CAAwB,EAAC,mBAAmB,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;QAE/F,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;IAC7D,CAAC;CACF,CAAC;AAEF,kBAAe,MAAM,CAAC;AAEtB,2DAA2D;AAC3D,yCAA+C;AAAtC,6GAAA,gBAAgB,OAAA;AACzB,yCAAyD;AAAhD,wGAAA,WAAW,OAAA;AAAE,0GAAA,aAAa,OAAA;AACnC,6CAAwE;AAA/D,8GAAA,eAAe,OAAA;AAAE,qHAAA,sBAAsB,OAAA;AAChD,uDAAuD;AAA9C,6GAAA,aAAa,OAAA;AACtB,qDAAwD;AAA/C,sHAAA,mBAAmB,OAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"engram-decisions.d.ts","sourceRoot":"","sources":["../../src/tools/engram-decisions.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,gBAAgB,EAAe,MAAM,cAAc,CAAC;AAClE,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,CA0Cd"}
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.searchContext({
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 = (Array.isArray(response.observations) ? response.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
- const score = typeof d.similarity === 'number' ? ` [relevance: ${d.similarity.toFixed(2)}]` : '';
54
- const scopeTag = d.scope === 'global' ? ' [GLOBAL]' : '';
55
- out += `## ${i + 1}. ${d.title}${scopeTag}${score}\n`;
56
- const facts = Array.isArray(d.facts) ? d.facts : [];
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\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":"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"}
1
+ {"version":3,"file":"engram-decisions.js","sourceRoot":"","sources":["../../src/tools/engram-decisions.ts"],"names":[],"mappings":"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"}