openclaw-engram 3.7.4 → 3.8.0

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 (90) hide show
  1. package/dist/client.d.ts +69 -1
  2. package/dist/client.d.ts.map +1 -1
  3. package/dist/client.js +167 -1
  4. package/dist/client.js.map +1 -1
  5. package/dist/commands/remember.d.ts.map +1 -1
  6. package/dist/commands/remember.js +6 -3
  7. package/dist/commands/remember.js.map +1 -1
  8. package/dist/context/formatter.d.ts +11 -1
  9. package/dist/context/formatter.d.ts.map +1 -1
  10. package/dist/context/formatter.js +136 -19
  11. package/dist/context/formatter.js.map +1 -1
  12. package/dist/hooks/after-tool-call.d.ts +1 -1
  13. package/dist/hooks/after-tool-call.d.ts.map +1 -1
  14. package/dist/hooks/after-tool-call.js +9 -5
  15. package/dist/hooks/after-tool-call.js.map +1 -1
  16. package/dist/hooks/before-agent-start.d.ts +5 -0
  17. package/dist/hooks/before-agent-start.d.ts.map +1 -1
  18. package/dist/hooks/before-agent-start.js +18 -9
  19. package/dist/hooks/before-agent-start.js.map +1 -1
  20. package/dist/hooks/before-compaction.d.ts +1 -1
  21. package/dist/hooks/before-compaction.d.ts.map +1 -1
  22. package/dist/hooks/before-compaction.js +9 -5
  23. package/dist/hooks/before-compaction.js.map +1 -1
  24. package/dist/hooks/before-prompt-build.d.ts.map +1 -1
  25. package/dist/hooks/before-prompt-build.js +25 -19
  26. package/dist/hooks/before-prompt-build.js.map +1 -1
  27. package/dist/hooks/before-tool-call.d.ts +2 -1
  28. package/dist/hooks/before-tool-call.d.ts.map +1 -1
  29. package/dist/hooks/before-tool-call.js +28 -9
  30. package/dist/hooks/before-tool-call.js.map +1 -1
  31. package/dist/hooks/session-end.d.ts +1 -1
  32. package/dist/hooks/session-end.d.ts.map +1 -1
  33. package/dist/hooks/session-end.js +8 -4
  34. package/dist/hooks/session-end.js.map +1 -1
  35. package/dist/hooks/session-start.d.ts.map +1 -1
  36. package/dist/hooks/session-start.js +8 -4
  37. package/dist/hooks/session-start.js.map +1 -1
  38. package/dist/identity.d.ts +25 -0
  39. package/dist/identity.d.ts.map +1 -1
  40. package/dist/identity.js +208 -4
  41. package/dist/identity.js.map +1 -1
  42. package/dist/index.d.ts.map +1 -1
  43. package/dist/index.js +18 -19
  44. package/dist/index.js.map +1 -1
  45. package/dist/services/file-watcher.d.ts +1 -1
  46. package/dist/services/file-watcher.d.ts.map +1 -1
  47. package/dist/services/file-watcher.js +9 -3
  48. package/dist/services/file-watcher.js.map +1 -1
  49. package/dist/tools/engram-decisions.d.ts +2 -1
  50. package/dist/tools/engram-decisions.d.ts.map +1 -1
  51. package/dist/tools/engram-decisions.js +14 -7
  52. package/dist/tools/engram-decisions.js.map +1 -1
  53. package/dist/tools/engram-issues.d.ts +25 -0
  54. package/dist/tools/engram-issues.d.ts.map +1 -1
  55. package/dist/tools/engram-issues.js +59 -35
  56. package/dist/tools/engram-issues.js.map +1 -1
  57. package/dist/tools/engram-outcome.d.ts.map +1 -1
  58. package/dist/tools/engram-outcome.js +2 -1
  59. package/dist/tools/engram-outcome.js.map +1 -1
  60. package/dist/tools/engram-presets.d.ts.map +1 -1
  61. package/dist/tools/engram-presets.js +13 -6
  62. package/dist/tools/engram-presets.js.map +1 -1
  63. package/dist/tools/engram-remember.d.ts.map +1 -1
  64. package/dist/tools/engram-remember.js +10 -6
  65. package/dist/tools/engram-remember.js.map +1 -1
  66. package/dist/tools/engram-search.d.ts.map +1 -1
  67. package/dist/tools/engram-search.js +6 -3
  68. package/dist/tools/engram-search.js.map +1 -1
  69. package/dist/tools/engram-timeline.d.ts +2 -1
  70. package/dist/tools/engram-timeline.d.ts.map +1 -1
  71. package/dist/tools/engram-timeline.js +18 -6
  72. package/dist/tools/engram-timeline.js.map +1 -1
  73. package/dist/tools/engram-vault.d.ts.map +1 -1
  74. package/dist/tools/engram-vault.js +15 -7
  75. package/dist/tools/engram-vault.js.map +1 -1
  76. package/dist/tools/memory-get.d.ts +1 -0
  77. package/dist/tools/memory-get.d.ts.map +1 -1
  78. package/dist/tools/memory-get.js +45 -17
  79. package/dist/tools/memory-get.js.map +1 -1
  80. package/dist/tools/memory-migrate.d.ts +2 -0
  81. package/dist/tools/memory-migrate.d.ts.map +1 -1
  82. package/dist/tools/memory-migrate.js +23 -9
  83. package/dist/tools/memory-migrate.js.map +1 -1
  84. package/openclaw.plugin.json +1 -1
  85. package/package.json +2 -1
  86. package/scripts/check-publish-version.mjs +45 -0
  87. package/dist/tools/engram-find-by-file.d.ts +0 -11
  88. package/dist/tools/engram-find-by-file.d.ts.map +0 -1
  89. package/dist/tools/engram-find-by-file.js +0 -57
  90. package/dist/tools/engram-find-by-file.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"memory-migrate.js","sourceRoot":"","sources":["../../src/tools/memory-migrate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"memory-migrate.js","sourceRoot":"","sources":["../../src/tools/memory-migrate.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "engram",
3
3
  "id": "engram",
4
- "version": "3.7.4",
4
+ "version": "3.8.0",
5
5
  "displayName": "Engram Memory",
6
6
  "description": "Connects OpenClaw agents to engram persistent memory server for long-term context retention",
7
7
  "kind": "memory",
package/package.json CHANGED
@@ -1,11 +1,12 @@
1
1
  {
2
2
  "name": "openclaw-engram",
3
- "version": "3.7.4",
3
+ "version": "3.8.0",
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",
7
7
  "scripts": {
8
8
  "build": "tsc",
9
+ "test": "npm run build && node --test test/*.test.mjs",
9
10
  "typecheck": "tsc --noEmit",
10
11
  "prepublishOnly": "npm run build"
11
12
  },
@@ -0,0 +1,45 @@
1
+ import path from 'node:path';
2
+ import { fileURLToPath, pathToFileURL } from 'node:url';
3
+
4
+ const STABLE_SEMVER = /^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$/;
5
+
6
+ function parseStableVersion(value, label) {
7
+ const match = typeof value === 'string' ? STABLE_SEMVER.exec(value) : null;
8
+ if (!match) {
9
+ throw new Error(`OPENCLAW_PUBLISH_VERSION_INVALID: ${label} must be a stable semantic version`);
10
+ }
11
+ return match.slice(1).map((part) => BigInt(part));
12
+ }
13
+
14
+ export function compareStableVersions(left, right) {
15
+ const leftParts = parseStableVersion(left, 'local');
16
+ const rightParts = parseStableVersion(right, 'remote');
17
+ for (let index = 0; index < leftParts.length; index += 1) {
18
+ if (leftParts[index] > rightParts[index]) return 1;
19
+ if (leftParts[index] < rightParts[index]) return -1;
20
+ }
21
+ return 0;
22
+ }
23
+
24
+ export function assertPublishVersionAdvances(local, remote) {
25
+ if (compareStableVersions(local, remote) <= 0) {
26
+ throw new Error(
27
+ `OPENCLAW_PUBLISH_VERSION_NOT_ADVANCED: local ${local} must be greater than npm ${remote}`,
28
+ );
29
+ }
30
+ }
31
+
32
+ const invokedPath = process.argv[1] ? path.resolve(process.argv[1]) : '';
33
+ const isMain = invokedPath !== '' && import.meta.url === pathToFileURL(invokedPath).href;
34
+ if (isMain) {
35
+ const [local, remote] = process.argv.slice(2);
36
+ try {
37
+ assertPublishVersionAdvances(local, remote);
38
+ process.stdout.write(`OPENCLAW_PUBLISH_VERSION_OK: ${local} > ${remote}\n`);
39
+ } catch (error) {
40
+ process.stderr.write(`${error.message}\n`);
41
+ process.exitCode = 1;
42
+ }
43
+ }
44
+
45
+ export const scriptPath = fileURLToPath(import.meta.url);
@@ -1,11 +0,0 @@
1
- /**
2
- * engram_find_by_file — find observations related to a specific file.
3
- *
4
- * WHEN TO USE: BEFORE modifying any file. Returns what engram knows about it —
5
- * past bugs, decisions, patterns, and important context that should inform your changes.
6
- */
7
- import type { EngramRestClient } from '../client.js';
8
- import type { PluginConfig } from '../config.js';
9
- import type { AnyAgentTool, OpenClawPluginToolContext } from '../types/openclaw.js';
10
- export declare function createEngramFindByFileTool(ctx: OpenClawPluginToolContext, client: EngramRestClient, config: PluginConfig): AnyAgentTool;
11
- //# sourceMappingURL=engram-find-by-file.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"engram-find-by-file.d.ts","sourceRoot":"","sources":["../../src/tools/engram-find-by-file.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;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;AAYpF,wBAAgB,0BAA0B,CACxC,GAAG,EAAE,yBAAyB,EAC9B,MAAM,EAAE,gBAAgB,EACxB,MAAM,EAAE,YAAY,GACnB,YAAY,CAmCd"}
@@ -1,57 +0,0 @@
1
- "use strict";
2
- /**
3
- * engram_find_by_file — find observations related to a specific file.
4
- *
5
- * WHEN TO USE: BEFORE modifying any file. Returns what engram knows about it —
6
- * past bugs, decisions, patterns, and important context that should inform your changes.
7
- */
8
- Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.createEngramFindByFileTool = createEngramFindByFileTool;
10
- const zod_1 = require("zod");
11
- const typebox_1 = require("@sinclair/typebox");
12
- const identity_js_1 = require("../identity.js");
13
- const FindByFileParamsSchema = zod_1.z.object({
14
- file: zod_1.z.string().min(1),
15
- limit: zod_1.z.number().int().min(1).max(20).optional().default(5),
16
- });
17
- const findByFileParameters = typebox_1.Type.Object({
18
- file: typebox_1.Type.String({ description: 'File path to look up (absolute or relative)' }),
19
- limit: typebox_1.Type.Optional(typebox_1.Type.Number({ description: 'Max observations to return (default: 5)' })),
20
- });
21
- function createEngramFindByFileTool(ctx, client, config) {
22
- return {
23
- name: 'engram_find_by_file',
24
- description: 'Find observations related to a specific file. ' +
25
- 'Call BEFORE modifying any file to check what engram knows about it — ' +
26
- 'past bugs, decisions, patterns, and context that should inform your changes.',
27
- parameters: findByFileParameters,
28
- async execute(_toolCallId, params) {
29
- const parsed = FindByFileParamsSchema.safeParse(params);
30
- if (!parsed.success) {
31
- return `Invalid parameters: ${parsed.error.message}`;
32
- }
33
- if (!client.isAvailable()) {
34
- return 'engram is currently unreachable — file context unavailable';
35
- }
36
- const identity = (0, identity_js_1.resolveIdentity)(ctx.agentId ?? '', ctx.workspaceDir);
37
- const project = config.project ?? identity.projectId;
38
- const observations = await client.getFileContext(parsed.data.file, project, parsed.data.limit);
39
- if (observations.length === 0) {
40
- return `No observations found for file: ${parsed.data.file}`;
41
- }
42
- return formatFileContext(parsed.data.file, observations);
43
- },
44
- };
45
- }
46
- function formatFileContext(file, observations) {
47
- let out = `# Known Context for ${file}\n\n`;
48
- observations.forEach((obs, i) => {
49
- const typeLabel = (obs.type ?? 'observation').toUpperCase();
50
- out += `## ${i + 1}. [${typeLabel}] ${obs.title ?? 'Untitled'}\n`;
51
- if (obs.narrative)
52
- out += `${obs.narrative}\n`;
53
- out += '\n';
54
- });
55
- return out.trimEnd();
56
- }
57
- //# sourceMappingURL=engram-find-by-file.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"engram-find-by-file.js","sourceRoot":"","sources":["../../src/tools/engram-find-by-file.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAmBH,gEAuCC;AAxDD,6BAAwB;AACxB,+CAAyC;AAGzC,gDAAiD;AAGjD,MAAM,sBAAsB,GAAG,OAAC,CAAC,MAAM,CAAC;IACtC,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;CAC7D,CAAC,CAAC;AAEH,MAAM,oBAAoB,GAAG,cAAI,CAAC,MAAM,CAAC;IACvC,IAAI,EAAE,cAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,6CAA6C,EAAE,CAAC;IACjF,KAAK,EAAE,cAAI,CAAC,QAAQ,CAAC,cAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,yCAAyC,EAAE,CAAC,CAAC;CAC9F,CAAC,CAAC;AAEH,SAAgB,0BAA0B,CACxC,GAA8B,EAC9B,MAAwB,EACxB,MAAoB;IAEpB,OAAO;QACL,IAAI,EAAE,qBAAqB;QAC3B,WAAW,EACT,gDAAgD;YAChD,uEAAuE;YACvE,8EAA8E;QAChF,UAAU,EAAE,oBAAoB;QAEhC,KAAK,CAAC,OAAO,CAAC,WAAmB,EAAE,MAA+B;YAChE,MAAM,MAAM,GAAG,sBAAsB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YACxD,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,4DAA4D,CAAC;YACtE,CAAC;YAED,MAAM,QAAQ,GAAG,IAAA,6BAAe,EAAC,GAAG,CAAC,OAAO,IAAI,EAAE,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC;YACtE,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,QAAQ,CAAC,SAAS,CAAC;YAErD,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,cAAc,CAC9C,MAAM,CAAC,IAAI,CAAC,IAAI,EAChB,OAAO,EACP,MAAM,CAAC,IAAI,CAAC,KAAK,CAClB,CAAC;YAEF,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC9B,OAAO,mCAAmC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YAC/D,CAAC;YAED,OAAO,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QAC3D,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAY,EAAE,YAA2B;IAClE,IAAI,GAAG,GAAG,uBAAuB,IAAI,MAAM,CAAC;IAC5C,YAAY,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;QAC9B,MAAM,SAAS,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,aAAa,CAAC,CAAC,WAAW,EAAE,CAAC;QAC5D,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,MAAM,SAAS,KAAK,GAAG,CAAC,KAAK,IAAI,UAAU,IAAI,CAAC;QAClE,IAAI,GAAG,CAAC,SAAS;YAAE,GAAG,IAAI,GAAG,GAAG,CAAC,SAAS,IAAI,CAAC;QAC/C,GAAG,IAAI,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;IACH,OAAO,GAAG,CAAC,OAAO,EAAE,CAAC;AACvB,CAAC"}