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
@@ -1,24 +1,30 @@
1
1
  "use strict";
2
2
  /**
3
- * memory_forget — delete observations from engram by ID.
3
+ * memory_forget — suppress or permanently delete observations from engram by ID.
4
4
  *
5
- * Maps to engram's bulk_delete_observations endpoint.
5
+ * Default: suppress (reversible soft-hide from search results).
6
+ * With permanent=true: archive (permanent removal).
6
7
  */
7
8
  Object.defineProperty(exports, "__esModule", { value: true });
8
9
  exports.createMemoryForgetTool = createMemoryForgetTool;
9
10
  const zod_1 = require("zod");
10
11
  const typebox_1 = require("@sinclair/typebox");
11
12
  const ForgetParamsSchema = zod_1.z.object({
12
- id: zod_1.z.string().min(1),
13
+ id: zod_1.z.string().regex(/^[1-9]\d*$/, 'Must be a positive integer'),
14
+ permanent: zod_1.z.boolean().optional().default(false),
13
15
  });
14
16
  const forgetParameters = typebox_1.Type.Object({
15
- id: typebox_1.Type.String({ description: 'Observation UUID to delete' }),
17
+ id: typebox_1.Type.String({ description: 'Observation ID (positive integer)' }),
18
+ permanent: typebox_1.Type.Optional(typebox_1.Type.Boolean({
19
+ description: 'If true, permanently archives the observation. Default: false (reversible suppress).',
20
+ })),
16
21
  });
17
22
  function createMemoryForgetTool(_ctx, client, _config) {
18
23
  return {
19
24
  name: 'memory_forget',
20
25
  label: 'Forget Memory',
21
- description: 'Delete a specific observation from engram memory by its ID.',
26
+ description: 'Suppress an observation from future search results (reversible). ' +
27
+ 'Use permanent=true to permanently archive it instead.',
22
28
  parameters: forgetParameters,
23
29
  async execute(_toolCallId, params) {
24
30
  const parsed = ForgetParamsSchema.safeParse(params);
@@ -28,13 +34,23 @@ function createMemoryForgetTool(_ctx, client, _config) {
28
34
  if (!client.isAvailable()) {
29
35
  return 'engram is currently unreachable — memory forget unavailable';
30
36
  }
31
- const response = await client.bulkDelete([parsed.data.id]);
32
- if (!response) {
33
- return 'engram delete failed — server returned no response';
37
+ const numericId = parseInt(parsed.data.id, 10);
38
+ if (!Number.isSafeInteger(numericId) || numericId <= 0) {
39
+ return `Invalid observation ID: ${parsed.data.id}`;
34
40
  }
35
- return response.deleted > 0
36
- ? `Deleted observation: ${parsed.data.id}`
37
- : `Observation not found or already deleted: ${parsed.data.id}`;
41
+ if (parsed.data.permanent) {
42
+ const response = await client.bulkDelete([String(numericId)]);
43
+ if (!response) {
44
+ return 'engram archive failed — server returned no response';
45
+ }
46
+ return response.deleted > 0
47
+ ? `Permanently archived observation: ${parsed.data.id}`
48
+ : `Observation not found or already archived: ${parsed.data.id}`;
49
+ }
50
+ const suppressed = await client.suppressObservation(numericId);
51
+ return suppressed
52
+ ? `Suppressed observation: ${parsed.data.id} (reversible — will no longer appear in search)`
53
+ : `Failed to suppress observation: ${parsed.data.id}`;
38
54
  },
39
55
  };
40
56
  }
@@ -1 +1 @@
1
- {"version":3,"file":"memory-forget.js","sourceRoot":"","sources":["../../src/tools/memory-forget.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;AAgBH,wDA+BC;AA7CD,6BAAwB;AACxB,+CAAyC;AAKzC,MAAM,kBAAkB,GAAG,OAAC,CAAC,MAAM,CAAC;IAClC,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CACtB,CAAC,CAAC;AAEH,MAAM,gBAAgB,GAAG,cAAI,CAAC,MAAM,CAAC;IACnC,EAAE,EAAE,cAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,4BAA4B,EAAE,CAAC;CAC/D,CAAC,CAAC;AAEH,SAAgB,sBAAsB,CACpC,IAA+B,EAC/B,MAAwB,EACxB,OAAqB;IAErB,OAAO;QACL,IAAI,EAAE,eAAe;QACrB,KAAK,EAAE,eAAe;QACtB,WAAW,EAAE,6DAA6D;QAC1E,UAAU,EAAE,gBAAgB;QAE5B,KAAK,CAAC,OAAO,CAAC,WAAmB,EAAE,MAA+B;YAChE,MAAM,MAAM,GAAG,kBAAkB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YACpD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpB,OAAO,uBAAuB,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;YACvD,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC;gBAC1B,OAAO,6DAA6D,CAAC;YACvE,CAAC;YAED,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YAC3D,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,OAAO,oDAAoD,CAAC;YAC9D,CAAC;YAED,OAAO,QAAQ,CAAC,OAAO,GAAG,CAAC;gBACzB,CAAC,CAAC,wBAAwB,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE;gBAC1C,CAAC,CAAC,6CAA6C,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;QACpE,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"memory-forget.js","sourceRoot":"","sources":["../../src/tools/memory-forget.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAsBH,wDA4CC;AAhED,6BAAwB;AACxB,+CAAyC;AAKzC,MAAM,kBAAkB,GAAG,OAAC,CAAC,MAAM,CAAC;IAClC,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,YAAY,EAAE,4BAA4B,CAAC;IAChE,SAAS,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;CACjD,CAAC,CAAC;AAEH,MAAM,gBAAgB,GAAG,cAAI,CAAC,MAAM,CAAC;IACnC,EAAE,EAAE,cAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,mCAAmC,EAAE,CAAC;IACrE,SAAS,EAAE,cAAI,CAAC,QAAQ,CACtB,cAAI,CAAC,OAAO,CAAC;QACX,WAAW,EAAE,sFAAsF;KACpG,CAAC,CACH;CACF,CAAC,CAAC;AAEH,SAAgB,sBAAsB,CACpC,IAA+B,EAC/B,MAAwB,EACxB,OAAqB;IAErB,OAAO;QACL,IAAI,EAAE,eAAe;QACrB,KAAK,EAAE,eAAe;QACtB,WAAW,EACT,mEAAmE;YACnE,uDAAuD;QACzD,UAAU,EAAE,gBAAgB;QAE5B,KAAK,CAAC,OAAO,CAAC,WAAmB,EAAE,MAA+B;YAChE,MAAM,MAAM,GAAG,kBAAkB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YACpD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpB,OAAO,uBAAuB,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;YACvD,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC;gBAC1B,OAAO,6DAA6D,CAAC;YACvE,CAAC;YAED,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YAC/C,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;gBACvD,OAAO,2BAA2B,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACrD,CAAC;YAED,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;gBAC1B,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;gBAC9D,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,OAAO,qDAAqD,CAAC;gBAC/D,CAAC;gBACD,OAAO,QAAQ,CAAC,OAAO,GAAG,CAAC;oBACzB,CAAC,CAAC,qCAAqC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE;oBACvD,CAAC,CAAC,8CAA8C,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACrE,CAAC;YAED,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;YAC/D,OAAO,UAAU;gBACf,CAAC,CAAC,2BAA2B,MAAM,CAAC,IAAI,CAAC,EAAE,iDAAiD;gBAC5F,CAAC,CAAC,mCAAmC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;QAC1D,CAAC;KACF,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "openclaw-engram",
3
- "version": "2.0.7",
3
+ "version": "2.0.11",
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",