shieldcortex 3.0.4 → 3.2.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 (102) hide show
  1. package/README.md +21 -2
  2. package/dashboard/.next/standalone/dashboard/.next/BUILD_ID +1 -1
  3. package/dashboard/.next/standalone/dashboard/.next/build-manifest.json +2 -2
  4. package/dashboard/.next/standalone/dashboard/.next/prerender-manifest.json +3 -3
  5. package/dashboard/.next/standalone/dashboard/.next/required-server-files.json +4 -4
  6. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.html +2 -2
  7. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.rsc +1 -1
  8. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  9. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  10. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  11. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  12. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  13. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  14. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.html +1 -1
  15. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.rsc +2 -2
  16. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  17. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  18. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
  19. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  20. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  21. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  22. package/dashboard/.next/standalone/dashboard/.next/server/app/index.html +1 -1
  23. package/dashboard/.next/standalone/dashboard/.next/server/app/index.rsc +3 -3
  24. package/dashboard/.next/standalone/dashboard/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  25. package/dashboard/.next/standalone/dashboard/.next/server/app/index.segments/_full.segment.rsc +3 -3
  26. package/dashboard/.next/standalone/dashboard/.next/server/app/index.segments/_head.segment.rsc +1 -1
  27. package/dashboard/.next/standalone/dashboard/.next/server/app/index.segments/_index.segment.rsc +2 -2
  28. package/dashboard/.next/standalone/dashboard/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  29. package/dashboard/.next/standalone/dashboard/.next/server/app/page/react-loadable-manifest.json +1 -1
  30. package/dashboard/.next/standalone/dashboard/.next/server/app/page_client-reference-manifest.js +1 -1
  31. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_3051539d._.js +1 -1
  32. package/dashboard/.next/standalone/dashboard/.next/server/pages/404.html +1 -1
  33. package/dashboard/.next/standalone/dashboard/.next/server/pages/500.html +2 -2
  34. package/dashboard/.next/standalone/dashboard/.next/server/server-reference-manifest.js +1 -1
  35. package/dashboard/.next/standalone/dashboard/.next/server/server-reference-manifest.json +1 -1
  36. package/dashboard/.next/standalone/dashboard/.next/static/chunks/9232a2d99b47b21f.js +3 -0
  37. package/dashboard/.next/standalone/dashboard/.next/static/chunks/98e2c181d5c4349f.js +1 -0
  38. package/dashboard/.next/standalone/dashboard/.next/static/chunks/9cb86821c1107fd6.js +9 -0
  39. package/dashboard/.next/standalone/dashboard/.next/static/chunks/a56c497e02afd4ba.css +3 -0
  40. package/dashboard/.next/standalone/dashboard/.next/static/chunks/a90355d73183a5e6.js +1 -0
  41. package/dashboard/.next/standalone/dashboard/node_modules/@img/sharp-darwin-arm64/lib/sharp-darwin-arm64.node +0 -0
  42. package/dashboard/.next/standalone/{node_modules/@img/sharp-linux-x64 → dashboard/node_modules/@img/sharp-darwin-arm64}/package.json +7 -13
  43. package/dashboard/.next/standalone/dashboard/node_modules/@img/{sharp-libvips-linux-x64 → sharp-libvips-darwin-arm64}/README.md +2 -2
  44. package/dashboard/.next/standalone/dashboard/node_modules/@img/{sharp-libvips-linux-x64 → sharp-libvips-darwin-arm64}/lib/glib-2.0/include/glibconfig.h +8 -9
  45. package/dashboard/.next/standalone/dashboard/node_modules/@img/{sharp-libvips-linux-x64/lib/libvips-cpp.so.8.17.3 → sharp-libvips-darwin-arm64/lib/libvips-cpp.8.17.3.dylib} +0 -0
  46. package/dashboard/.next/standalone/dashboard/node_modules/@img/{sharp-libvips-linux-x64 → sharp-libvips-darwin-arm64}/package.json +5 -11
  47. package/dashboard/.next/standalone/dashboard/server.js +1 -1
  48. package/dashboard/.next/standalone/{dashboard/node_modules/@img/sharp-linux-x64 → node_modules/@img/sharp-darwin-arm64}/package.json +7 -13
  49. package/dashboard/.next/standalone/node_modules/@img/{sharp-libvips-linux-x64 → sharp-libvips-darwin-arm64}/package.json +5 -11
  50. package/dist/api/routes/memories.js +366 -1
  51. package/dist/api/routes/recall.js +53 -0
  52. package/dist/api/routes/system.js +67 -2
  53. package/dist/cloud/cli.d.ts +1 -0
  54. package/dist/cloud/cli.js +40 -0
  55. package/dist/cloud/config.d.ts +10 -0
  56. package/dist/cloud/config.js +54 -0
  57. package/dist/cloud/graph-sync.d.ts +45 -0
  58. package/dist/cloud/graph-sync.js +260 -0
  59. package/dist/cloud/memory-sync.d.ts +37 -0
  60. package/dist/cloud/memory-sync.js +186 -0
  61. package/dist/cloud/sync-queue.d.ts +24 -0
  62. package/dist/cloud/sync-queue.js +126 -7
  63. package/dist/database/init.js +53 -0
  64. package/dist/graph/backfill.js +3 -5
  65. package/dist/graph/resolve.d.ts +10 -0
  66. package/dist/graph/resolve.js +63 -1
  67. package/dist/index.d.ts +2 -0
  68. package/dist/index.js +61 -4
  69. package/dist/memory/search.d.ts +1 -0
  70. package/dist/memory/search.js +4 -0
  71. package/dist/memory/store.js +188 -30
  72. package/dist/memory/types.d.ts +33 -0
  73. package/dist/service/install.d.ts +1 -0
  74. package/dist/service/install.js +43 -1
  75. package/dist/tools/context.d.ts +4 -4
  76. package/dist/tools/forget.d.ts +6 -6
  77. package/dist/tools/recall.d.ts +11 -11
  78. package/dist/tools/remember.d.ts +19 -4
  79. package/dist/tools/remember.js +17 -1
  80. package/hooks/openclaw/cortex-memory/handler.ts +8 -0
  81. package/package.json +1 -1
  82. package/dashboard/.next/standalone/dashboard/.next/static/chunks/313c0d327bbf244a.js +0 -9
  83. package/dashboard/.next/standalone/dashboard/.next/static/chunks/3cc7e8d4f73cf5d2.js +0 -1
  84. package/dashboard/.next/standalone/dashboard/.next/static/chunks/49c1cec591af1460.js +0 -3
  85. package/dashboard/.next/standalone/dashboard/.next/static/chunks/ca21f348cb163905.js +0 -1
  86. package/dashboard/.next/standalone/dashboard/.next/static/chunks/f4ca424319f58dc7.css +0 -3
  87. package/dashboard/.next/standalone/dashboard/node_modules/@img/sharp-libvips-linuxmusl-x64/README.md +0 -46
  88. package/dashboard/.next/standalone/dashboard/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/glib-2.0/include/glibconfig.h +0 -221
  89. package/dashboard/.next/standalone/dashboard/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/index.js +0 -1
  90. package/dashboard/.next/standalone/dashboard/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/libvips-cpp.so.8.17.3 +0 -0
  91. package/dashboard/.next/standalone/dashboard/node_modules/@img/sharp-libvips-linuxmusl-x64/package.json +0 -42
  92. package/dashboard/.next/standalone/dashboard/node_modules/@img/sharp-libvips-linuxmusl-x64/versions.json +0 -30
  93. package/dashboard/.next/standalone/dashboard/node_modules/@img/sharp-linux-x64/lib/sharp-linux-x64.node +0 -0
  94. package/dashboard/.next/standalone/dashboard/node_modules/@img/sharp-linuxmusl-x64/lib/sharp-linuxmusl-x64.node +0 -0
  95. package/dashboard/.next/standalone/dashboard/node_modules/@img/sharp-linuxmusl-x64/package.json +0 -46
  96. package/dashboard/.next/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/package.json +0 -42
  97. package/dashboard/.next/standalone/node_modules/@img/sharp-linuxmusl-x64/package.json +0 -46
  98. /package/dashboard/.next/standalone/dashboard/.next/static/{BEvyMAX62LQMyt5iSb-F9 → ctp9eCBcHDpTWtUYMwJK7}/_buildManifest.js +0 -0
  99. /package/dashboard/.next/standalone/dashboard/.next/static/{BEvyMAX62LQMyt5iSb-F9 → ctp9eCBcHDpTWtUYMwJK7}/_clientMiddlewareManifest.json +0 -0
  100. /package/dashboard/.next/standalone/dashboard/.next/static/{BEvyMAX62LQMyt5iSb-F9 → ctp9eCBcHDpTWtUYMwJK7}/_ssgManifest.js +0 -0
  101. /package/dashboard/.next/standalone/dashboard/node_modules/@img/{sharp-libvips-linux-x64 → sharp-libvips-darwin-arm64}/lib/index.js +0 -0
  102. /package/dashboard/.next/standalone/dashboard/node_modules/@img/{sharp-libvips-linux-x64 → sharp-libvips-darwin-arm64}/versions.json +0 -0
@@ -20,10 +20,10 @@ export declare const recallSchema: z.ZodObject<{
20
20
  type: z.ZodEnum<["user", "cli", "hook", "email", "web", "agent", "file", "api", "tool_response"]>;
21
21
  identifier: z.ZodString;
22
22
  }, "strip", z.ZodTypeAny, {
23
- type: "api" | "user" | "cli" | "hook" | "email" | "web" | "agent" | "file" | "tool_response";
23
+ type: "user" | "cli" | "hook" | "agent" | "api" | "email" | "web" | "file" | "tool_response";
24
24
  identifier: string;
25
25
  }, {
26
- type: "api" | "user" | "cli" | "hook" | "email" | "web" | "agent" | "file" | "tool_response";
26
+ type: "user" | "cli" | "hook" | "agent" | "api" | "email" | "web" | "file" | "tool_response";
27
27
  identifier: string;
28
28
  }>>;
29
29
  }, "strip", z.ZodTypeAny, {
@@ -32,26 +32,26 @@ export declare const recallSchema: z.ZodObject<{
32
32
  includeDecayed: boolean;
33
33
  includeGlobal: boolean;
34
34
  source?: {
35
- type: "api" | "user" | "cli" | "hook" | "email" | "web" | "agent" | "file" | "tool_response";
35
+ type: "user" | "cli" | "hook" | "agent" | "api" | "email" | "web" | "file" | "tool_response";
36
36
  identifier: string;
37
37
  } | undefined;
38
38
  project?: string | undefined;
39
39
  type?: "short_term" | "long_term" | "episodic" | undefined;
40
- query?: string | undefined;
41
40
  category?: "architecture" | "pattern" | "preference" | "error" | "context" | "learning" | "todo" | "note" | "relationship" | "custom" | undefined;
42
41
  tags?: string[] | undefined;
42
+ query?: string | undefined;
43
43
  }, {
44
44
  source?: {
45
- type: "api" | "user" | "cli" | "hook" | "email" | "web" | "agent" | "file" | "tool_response";
45
+ type: "user" | "cli" | "hook" | "agent" | "api" | "email" | "web" | "file" | "tool_response";
46
46
  identifier: string;
47
47
  } | undefined;
48
48
  project?: string | undefined;
49
49
  mode?: "search" | "important" | "recent" | undefined;
50
50
  type?: "short_term" | "long_term" | "episodic" | undefined;
51
- limit?: number | undefined;
52
- query?: string | undefined;
53
51
  category?: "architecture" | "pattern" | "preference" | "error" | "context" | "learning" | "todo" | "note" | "relationship" | "custom" | undefined;
54
52
  tags?: string[] | undefined;
53
+ limit?: number | undefined;
54
+ query?: string | undefined;
55
55
  includeDecayed?: boolean | undefined;
56
56
  includeGlobal?: boolean | undefined;
57
57
  }>;
@@ -87,22 +87,22 @@ export declare const getMemorySchema: z.ZodObject<{
87
87
  type: z.ZodEnum<["user", "cli", "hook", "email", "web", "agent", "file", "api", "tool_response"]>;
88
88
  identifier: z.ZodString;
89
89
  }, "strip", z.ZodTypeAny, {
90
- type: "api" | "user" | "cli" | "hook" | "email" | "web" | "agent" | "file" | "tool_response";
90
+ type: "user" | "cli" | "hook" | "agent" | "api" | "email" | "web" | "file" | "tool_response";
91
91
  identifier: string;
92
92
  }, {
93
- type: "api" | "user" | "cli" | "hook" | "email" | "web" | "agent" | "file" | "tool_response";
93
+ type: "user" | "cli" | "hook" | "agent" | "api" | "email" | "web" | "file" | "tool_response";
94
94
  identifier: string;
95
95
  }>>;
96
96
  }, "strip", z.ZodTypeAny, {
97
97
  id: number;
98
98
  source?: {
99
- type: "api" | "user" | "cli" | "hook" | "email" | "web" | "agent" | "file" | "tool_response";
99
+ type: "user" | "cli" | "hook" | "agent" | "api" | "email" | "web" | "file" | "tool_response";
100
100
  identifier: string;
101
101
  } | undefined;
102
102
  }, {
103
103
  id: number;
104
104
  source?: {
105
- type: "api" | "user" | "cli" | "hook" | "email" | "web" | "agent" | "file" | "tool_response";
105
+ type: "user" | "cli" | "hook" | "agent" | "api" | "email" | "web" | "file" | "tool_response";
106
106
  identifier: string;
107
107
  } | undefined;
108
108
  }>;
@@ -19,40 +19,55 @@ export declare const rememberSchema: z.ZodObject<{
19
19
  type: z.ZodEnum<["user", "cli", "hook", "email", "web", "agent", "file", "api", "tool_response"]>;
20
20
  identifier: z.ZodString;
21
21
  }, "strip", z.ZodTypeAny, {
22
- type: "api" | "user" | "cli" | "hook" | "email" | "web" | "agent" | "file" | "tool_response";
22
+ type: "user" | "cli" | "hook" | "agent" | "api" | "email" | "web" | "file" | "tool_response";
23
23
  identifier: string;
24
24
  }, {
25
- type: "api" | "user" | "cli" | "hook" | "email" | "web" | "agent" | "file" | "tool_response";
25
+ type: "user" | "cli" | "hook" | "agent" | "api" | "email" | "web" | "file" | "tool_response";
26
26
  identifier: string;
27
27
  }>>;
28
+ sourceType: z.ZodOptional<z.ZodEnum<["user", "cli", "hook", "email", "web", "agent", "file", "api", "tool_response"]>>;
29
+ sourceIdentifier: z.ZodOptional<z.ZodString>;
30
+ sessionId: z.ZodOptional<z.ZodString>;
31
+ agentId: z.ZodOptional<z.ZodString>;
32
+ workspaceDir: z.ZodOptional<z.ZodString>;
28
33
  }, "strip", z.ZodTypeAny, {
29
34
  title: string;
30
35
  content: string;
31
36
  scope?: "project" | "global" | undefined;
32
37
  transferable?: boolean | undefined;
33
38
  source?: {
34
- type: "api" | "user" | "cli" | "hook" | "email" | "web" | "agent" | "file" | "tool_response";
39
+ type: "user" | "cli" | "hook" | "agent" | "api" | "email" | "web" | "file" | "tool_response";
35
40
  identifier: string;
36
41
  } | undefined;
37
42
  project?: string | undefined;
38
43
  type?: "short_term" | "long_term" | "episodic" | undefined;
39
44
  category?: "architecture" | "pattern" | "preference" | "error" | "context" | "learning" | "todo" | "note" | "relationship" | "custom" | undefined;
40
45
  tags?: string[] | undefined;
46
+ sourceIdentifier?: string | undefined;
47
+ sessionId?: string | undefined;
41
48
  importance?: "critical" | "low" | "high" | "normal" | undefined;
49
+ sourceType?: "user" | "cli" | "hook" | "agent" | "api" | "email" | "web" | "file" | "tool_response" | undefined;
50
+ agentId?: string | undefined;
51
+ workspaceDir?: string | undefined;
42
52
  }, {
43
53
  title: string;
44
54
  content: string;
45
55
  scope?: "project" | "global" | undefined;
46
56
  transferable?: boolean | undefined;
47
57
  source?: {
48
- type: "api" | "user" | "cli" | "hook" | "email" | "web" | "agent" | "file" | "tool_response";
58
+ type: "user" | "cli" | "hook" | "agent" | "api" | "email" | "web" | "file" | "tool_response";
49
59
  identifier: string;
50
60
  } | undefined;
51
61
  project?: string | undefined;
52
62
  type?: "short_term" | "long_term" | "episodic" | undefined;
53
63
  category?: "architecture" | "pattern" | "preference" | "error" | "context" | "learning" | "todo" | "note" | "relationship" | "custom" | undefined;
54
64
  tags?: string[] | undefined;
65
+ sourceIdentifier?: string | undefined;
66
+ sessionId?: string | undefined;
55
67
  importance?: "critical" | "low" | "high" | "normal" | undefined;
68
+ sourceType?: "user" | "cli" | "hook" | "agent" | "api" | "email" | "web" | "file" | "tool_response" | undefined;
69
+ agentId?: string | undefined;
70
+ workspaceDir?: string | undefined;
56
71
  }>;
57
72
  export type RememberInput = z.infer<typeof rememberSchema>;
58
73
  /**
@@ -30,6 +30,13 @@ export const rememberSchema = z.object({
30
30
  type: z.enum(['user', 'cli', 'hook', 'email', 'web', 'agent', 'file', 'api', 'tool_response']),
31
31
  identifier: z.string(),
32
32
  }).optional().describe('Source of this memory for trust scoring (agents should pass this)'),
33
+ sourceType: z.enum(['user', 'cli', 'hook', 'email', 'web', 'agent', 'file', 'api', 'tool_response']).optional()
34
+ .describe('Flat source type for integrations that cannot pass nested objects'),
35
+ sourceIdentifier: z.string().optional()
36
+ .describe('Flat source identifier for integrations that cannot pass nested objects'),
37
+ sessionId: z.string().optional().describe('Optional integration session identifier'),
38
+ agentId: z.string().optional().describe('Optional integration agent identifier'),
39
+ workspaceDir: z.string().optional().describe('Optional workspace/source path'),
33
40
  });
34
41
  /**
35
42
  * Execute the remember tool
@@ -53,6 +60,14 @@ export async function executeRemember(input) {
53
60
  }
54
61
  // Resolve project (auto-detect if not provided)
55
62
  const resolvedProject = resolveProject(input.project);
63
+ const derivedSource = input.source ?? (input.sourceType && input.sourceIdentifier
64
+ ? { type: input.sourceType, identifier: input.sourceIdentifier }
65
+ : undefined);
66
+ const metadata = {
67
+ ...(input.sessionId ? { sessionId: input.sessionId } : {}),
68
+ ...(input.agentId ? { agentId: input.agentId } : {}),
69
+ ...(input.workspaceDir ? { workspaceDir: input.workspaceDir } : {}),
70
+ };
56
71
  // Map importance to salience override
57
72
  let salienceOverride;
58
73
  if (input.importance) {
@@ -96,7 +111,8 @@ export async function executeRemember(input) {
96
111
  salience: salienceOverride,
97
112
  scope: input.scope,
98
113
  transferable: input.transferable,
99
- }, undefined, input.source ?? { type: 'cli', identifier: 'mcp' });
114
+ metadata: Object.keys(metadata).length > 0 ? metadata : undefined,
115
+ }, undefined, derivedSource ?? { type: 'cli', identifier: 'mcp' });
100
116
  // Auto-detect and create relationships with existing memories
101
117
  let linksCreated = 0;
102
118
  try {
@@ -400,6 +400,9 @@ async function onSessionEnd(event) {
400
400
  scope: "global",
401
401
  importance: "high",
402
402
  tags: "auto-extracted,openclaw-hook",
403
+ sourceType: "hook",
404
+ sourceIdentifier: "openclaw-session-end",
405
+ workspaceDir: context.workspaceDir || "",
403
406
  });
404
407
  if (result) {
405
408
  saved++;
@@ -468,6 +471,9 @@ async function onSessionStop(event) {
468
471
  scope: "global",
469
472
  importance: "high",
470
473
  tags: "auto-extracted,openclaw-hook,session-stop",
474
+ sourceType: "hook",
475
+ sourceIdentifier: "openclaw-session-stop",
476
+ workspaceDir: context.workspaceDir || "",
471
477
  });
472
478
  if (result) {
473
479
  saved++;
@@ -611,6 +617,8 @@ async function checkAndSaveKeywordTrigger(messageText, event) {
611
617
  scope: "global",
612
618
  importance: matchedTrigger.importance,
613
619
  tags: `keyword-trigger,openclaw-hook,trigger:${matchedTrigger.phrase.replace(/\s+/g, "-")}`,
620
+ sourceType: "hook",
621
+ sourceIdentifier: `openclaw-keyword:${matchedTrigger.phrase.replace(/\s+/g, "-")}`,
614
622
  });
615
623
 
616
624
  if (result) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "shieldcortex",
3
- "version": "3.0.4",
3
+ "version": "3.2.0",
4
4
  "description": "Persistent brain for AI agents. Knowledge graphs, memory decay, contradiction detection, Iron Dome behaviour protection — plus the only defence pipeline that stops memory poisoning. Works with Claude Code, OpenClaw, LangChain, and any MCP agent.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",