shieldcortex 2.4.12 → 2.4.14

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 (76) hide show
  1. package/dashboard/.next/standalone/dashboard/.next/BUILD_ID +1 -1
  2. package/dashboard/.next/standalone/dashboard/.next/build-manifest.json +2 -2
  3. package/dashboard/.next/standalone/dashboard/.next/prerender-manifest.json +3 -3
  4. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.html +2 -2
  5. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.rsc +1 -1
  6. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  7. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  8. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  9. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  10. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  11. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.html +1 -1
  12. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.rsc +1 -1
  13. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
  14. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  15. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
  16. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  17. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  18. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  19. package/dashboard/.next/standalone/dashboard/.next/server/app/index.html +1 -1
  20. package/dashboard/.next/standalone/dashboard/.next/server/app/index.rsc +1 -1
  21. package/dashboard/.next/standalone/dashboard/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  22. package/dashboard/.next/standalone/dashboard/.next/server/app/index.segments/_full.segment.rsc +1 -1
  23. package/dashboard/.next/standalone/dashboard/.next/server/app/index.segments/_head.segment.rsc +1 -1
  24. package/dashboard/.next/standalone/dashboard/.next/server/app/index.segments/_index.segment.rsc +1 -1
  25. package/dashboard/.next/standalone/dashboard/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  26. package/dashboard/.next/standalone/dashboard/.next/server/pages/404.html +1 -1
  27. package/dashboard/.next/standalone/dashboard/.next/server/pages/500.html +2 -2
  28. package/dashboard/.next/standalone/dashboard/.next/server/server-reference-manifest.js +1 -1
  29. package/dashboard/.next/standalone/dashboard/.next/server/server-reference-manifest.json +1 -1
  30. package/dist/api/visualization-server.d.ts.map +1 -1
  31. package/dist/api/visualization-server.js +36 -19
  32. package/dist/api/visualization-server.js.map +1 -1
  33. package/dist/defence/__tests__/env-detector.test.js +2 -1
  34. package/dist/defence/__tests__/env-detector.test.js.map +1 -1
  35. package/dist/defence/firewall/anomaly-scorer.d.ts.map +1 -1
  36. package/dist/defence/firewall/anomaly-scorer.js +34 -0
  37. package/dist/defence/firewall/anomaly-scorer.js.map +1 -1
  38. package/dist/defence/firewall/index.js +21 -3
  39. package/dist/defence/firewall/index.js.map +1 -1
  40. package/dist/defence/firewall/instruction-detector.d.ts.map +1 -1
  41. package/dist/defence/firewall/instruction-detector.js +17 -5
  42. package/dist/defence/firewall/instruction-detector.js.map +1 -1
  43. package/dist/defence/fragmentation/temporal-analyzer.d.ts +1 -1
  44. package/dist/defence/fragmentation/temporal-analyzer.d.ts.map +1 -1
  45. package/dist/defence/fragmentation/temporal-analyzer.js +4 -3
  46. package/dist/defence/fragmentation/temporal-analyzer.js.map +1 -1
  47. package/dist/defence/pipeline.d.ts +1 -1
  48. package/dist/defence/pipeline.js +15 -15
  49. package/dist/defence/pipeline.js.map +1 -1
  50. package/dist/defence/trust/env-detector.d.ts +1 -1
  51. package/dist/defence/trust/env-detector.js +3 -3
  52. package/dist/defence/trust/env-detector.js.map +1 -1
  53. package/dist/defence/types.d.ts +1 -1
  54. package/dist/defence/types.d.ts.map +1 -1
  55. package/dist/defence/types.js.map +1 -1
  56. package/dist/index.js +42 -9
  57. package/dist/index.js.map +1 -1
  58. package/dist/integrations/langchain.d.ts +6 -2
  59. package/dist/integrations/langchain.d.ts.map +1 -1
  60. package/dist/integrations/langchain.js +14 -4
  61. package/dist/integrations/langchain.js.map +1 -1
  62. package/dist/memory/store.d.ts.map +1 -1
  63. package/dist/memory/store.js +44 -14
  64. package/dist/memory/store.js.map +1 -1
  65. package/dist/server.d.ts.map +1 -1
  66. package/dist/server.js +5 -2
  67. package/dist/server.js.map +1 -1
  68. package/dist/tools/remember.d.ts +5 -5
  69. package/dist/tools/remember.d.ts.map +1 -1
  70. package/dist/tools/remember.js +25 -10
  71. package/dist/tools/remember.js.map +1 -1
  72. package/hooks/openclaw/cortex-memory/handler.js +32 -12
  73. package/package.json +1 -1
  74. /package/dashboard/.next/standalone/dashboard/.next/static/{j3yGjZ6Ts_LmQ9u4uPtD1 → 7MtayvtzlsI0qgE6EfeZO}/_buildManifest.js +0 -0
  75. /package/dashboard/.next/standalone/dashboard/.next/static/{j3yGjZ6Ts_LmQ9u4uPtD1 → 7MtayvtzlsI0qgE6EfeZO}/_clientMiddlewareManifest.json +0 -0
  76. /package/dashboard/.next/standalone/dashboard/.next/static/{j3yGjZ6Ts_LmQ9u4uPtD1 → 7MtayvtzlsI0qgE6EfeZO}/_ssgManifest.js +0 -0
@@ -27,15 +27,30 @@ export const rememberSchema = z.object({
27
27
  transferable: z.boolean().optional()
28
28
  .describe('Whether this memory can be transferred to other projects'),
29
29
  source: z.object({
30
- type: z.enum(['user', 'email', 'web', 'agent', 'file', 'api']),
30
+ type: z.enum(['user', 'cli', 'hook', 'email', 'web', 'agent', 'file', 'api']),
31
31
  identifier: z.string(),
32
- }).optional().describe('Source of this memory for trust scoring'),
32
+ }).optional().describe('Source of this memory for trust scoring (agents should pass this)'),
33
33
  });
34
34
  /**
35
35
  * Execute the remember tool
36
36
  */
37
37
  export async function executeRemember(input) {
38
38
  try {
39
+ // Validate non-empty title and content
40
+ const title = input.title?.trim();
41
+ const content = input.content?.trim();
42
+ if (!title || title.length === 0) {
43
+ return {
44
+ success: false,
45
+ error: 'Title cannot be empty. Provide a meaningful short title for the memory.',
46
+ };
47
+ }
48
+ if (!content || content.length === 0) {
49
+ return {
50
+ success: false,
51
+ error: 'Content cannot be empty. Provide detailed content for the memory.',
52
+ };
53
+ }
39
54
  // Resolve project (auto-detect if not provided)
40
55
  const resolvedProject = resolveProject(input.project);
41
56
  // Map importance to salience override
@@ -49,9 +64,9 @@ export async function executeRemember(input) {
49
64
  };
50
65
  salienceOverride = importanceMap[input.importance];
51
66
  }
52
- // Check for duplicates
67
+ // Check for duplicates (use trimmed title)
53
68
  const existing = await searchMemories({
54
- query: input.title,
69
+ query: title,
55
70
  project: resolvedProject ?? undefined,
56
71
  limit: 3,
57
72
  });
@@ -70,10 +85,10 @@ export async function executeRemember(input) {
70
85
  },
71
86
  };
72
87
  }
73
- // Create the memory
88
+ // Create the memory (use trimmed title and content)
74
89
  const memory = addMemory({
75
- title: input.title,
76
- content: input.content,
90
+ title,
91
+ content,
77
92
  category: input.category,
78
93
  type: input.type,
79
94
  project: resolvedProject ?? undefined,
@@ -81,7 +96,7 @@ export async function executeRemember(input) {
81
96
  salience: salienceOverride,
82
97
  scope: input.scope,
83
98
  transferable: input.transferable,
84
- }, undefined, input.source ? { type: input.source.type, identifier: input.source.identifier } : { type: 'cli', identifier: 'mcp' });
99
+ }, undefined, input.source ?? { type: 'cli', identifier: 'mcp' });
85
100
  // Auto-detect and create relationships with existing memories
86
101
  let linksCreated = 0;
87
102
  try {
@@ -95,8 +110,8 @@ export async function executeRemember(input) {
95
110
  catch {
96
111
  // Silently ignore relationship detection errors
97
112
  }
98
- // Explain why this was remembered
99
- const factors = analyzeSalienceFactors({ title: input.title, content: input.content });
113
+ // Explain why this was remembered (use trimmed values)
114
+ const factors = analyzeSalienceFactors({ title, content });
100
115
  const reason = explainSalience(factors);
101
116
  // Check if content was truncated
102
117
  const truncationInfo = getLastTruncationInfo();
@@ -1 +1 @@
1
- {"version":3,"file":"remember.js","sourceRoot":"","sources":["../../src/tools/remember.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC7H,OAAO,EAAqB,sBAAsB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAEnG,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAE/D,qCAAqC;AACrC,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,+CAA+C,CAAC;IAC3E,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;IAC9D,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC;QACf,cAAc,EAAE,SAAS,EAAE,YAAY,EAAE,OAAO;QAChD,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,QAAQ;KAChE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oDAAoD,CAAC;IAC5E,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,QAAQ,EAAE;SAC7D,QAAQ,CAAC,iEAAiE,CAAC;IAC9E,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;IACzE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;IACxE,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,QAAQ,EAAE;SACjE,QAAQ,CAAC,uCAAuC,CAAC;IACpD,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE;SAC5C,QAAQ,CAAC,2DAA2D,CAAC;IACxE,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;SACjC,QAAQ,CAAC,0DAA0D,CAAC;IACvE,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;QAC9D,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;KACvB,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yCAAyC,CAAC;CAClE,CAAC,CAAC;AAIH;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,KAAoB;IAkBxD,IAAI,CAAC;QACH,gDAAgD;QAChD,MAAM,eAAe,GAAG,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAEtD,sCAAsC;QACtC,IAAI,gBAAoC,CAAC;QACzC,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;YACrB,MAAM,aAAa,GAA2B;gBAC5C,GAAG,EAAE,GAAG;gBACR,MAAM,EAAE,GAAG;gBACX,IAAI,EAAE,GAAG;gBACT,QAAQ,EAAE,GAAG;aACd,CAAC;YACF,gBAAgB,GAAG,aAAa,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACrD,CAAC;QAED,uBAAuB;QACvB,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC;YACpC,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,OAAO,EAAE,eAAe,IAAI,SAAS;YACrC,KAAK,EAAE,CAAC;SACT,CAAC,CAAC;QAEH,gDAAgD;QAChD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,cAAc,GAAG,GAAG,EAAE,CAAC;YAC5D,MAAM,cAAc,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YAC1C,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE;oBACN,EAAE,EAAE,cAAc,CAAC,EAAE;oBACrB,KAAK,EAAE,cAAc,CAAC,KAAK;oBAC3B,QAAQ,EAAE,cAAc,CAAC,QAAQ;oBACjC,IAAI,EAAE,cAAc,CAAC,IAAI;oBACzB,QAAQ,EAAE,cAAc,CAAC,QAAQ;oBACjC,MAAM,EAAE,iCAAiC;iBAC1C;aACF,CAAC;QACJ,CAAC;QAED,oBAAoB;QACpB,MAAM,MAAM,GAAG,SAAS,CAAC;YACvB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,OAAO,EAAE,eAAe,IAAI,SAAS;YACrC,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,QAAQ,EAAE,gBAAgB;YAC1B,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,YAAY,EAAE,KAAK,CAAC,YAAY;SACjC,EAAE,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;QAEpI,8DAA8D;QAC9D,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,IAAI,CAAC;YACH,MAAM,cAAc,GAAG,mBAAmB,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YACtD,KAAK,MAAM,IAAI,IAAI,cAAc,EAAE,CAAC;gBAClC,MAAM,OAAO,GAAG,gBAAgB,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC7F,IAAI,OAAO;oBAAE,YAAY,EAAE,CAAC;YAC9B,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,gDAAgD;QAClD,CAAC;QAED,kCAAkC;QAClC,MAAM,OAAO,GAAG,sBAAsB,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACvF,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;QAExC,iCAAiC;QACjC,MAAM,cAAc,GAAG,qBAAqB,EAAE,CAAC;QAE/C,OAAO;YACL,OAAO,EAAE,IAAI;YACb,MAAM,EAAE;gBACN,EAAE,EAAE,MAAM,CAAC,EAAE;gBACb,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,MAAM;gBACN,YAAY;gBACZ,SAAS,EAAE,cAAc,EAAE,YAAY,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS;aACrE;SACF,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,iBAAiB,CAAC,KAAK,CAAC;SAChC,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAmD;IACtF,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,OAAO,uBAAuB,MAAM,CAAC,KAAK,EAAE,CAAC;IAC/C,CAAC;IAED,MAAM,CAAC,GAAG,MAAM,CAAC,MAAO,CAAC;IACzB,MAAM,KAAK,GAAG;QACZ,kBAAkB,CAAC,CAAC,KAAK,GAAG;QAC5B,SAAS,CAAC,CAAC,EAAE,EAAE;QACf,WAAW,CAAC,CAAC,IAAI,EAAE;QACnB,eAAe,CAAC,CAAC,QAAQ,EAAE;QAC3B,eAAe,CAAC,CAAC,CAAC,QAAQ,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;QAC/C,aAAa,CAAC,CAAC,MAAM,EAAE;KACxB,CAAC;IACF,IAAI,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,YAAY,GAAG,CAAC,EAAE,CAAC;QACzC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,YAAY,6BAA6B,CAAC,CAAC;IACtE,CAAC;IACD,IAAI,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;QAC5C,MAAM,UAAU,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAClE,MAAM,WAAW,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,eAAe,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACpE,KAAK,CAAC,IAAI,CAAC,yCAAyC,UAAU,SAAS,WAAW,iBAAiB,CAAC,CAAC;QACrG,KAAK,CAAC,IAAI,CAAC,mEAAmE,CAAC,CAAC;IAClF,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
1
+ {"version":3,"file":"remember.js","sourceRoot":"","sources":["../../src/tools/remember.ts"],"names":[],"mappings":"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"}
@@ -15,9 +15,10 @@ import fs from "node:fs/promises";
15
15
  * Call a ShieldCortex MCP tool via mcporter
16
16
  * @param {string} tool - Tool name (e.g., "remember", "recall", "get_context")
17
17
  * @param {Record<string, string>} args - Tool arguments as key:value pairs
18
+ * @param {object} options - Options { retries: number, timeout: number }
18
19
  * @returns {Promise<string|null>} Raw stdout or null on error
19
20
  */
20
- function callCortex(tool, args = {}) {
21
+ function callCortex(tool, args = {}, options = { retries: 1, timeout: 15000 }) {
21
22
  return new Promise((resolve) => {
22
23
  const cmdArgs = [
23
24
  "mcporter", "call", "--stdio",
@@ -30,17 +31,36 @@ function callCortex(tool, args = {}) {
30
31
  cmdArgs.push(`${key}:${safe}`);
31
32
  }
32
33
 
33
- execFile("npx", cmdArgs, {
34
- timeout: 15000,
35
- maxBuffer: 1024 * 256,
36
- }, (err, stdout) => {
37
- if (err) {
38
- console.error(`[cortex-memory] mcporter error (${tool}):`, err.message);
39
- resolve(null);
40
- return;
41
- }
42
- resolve(stdout?.trim() || null);
43
- });
34
+ let attempts = 0;
35
+ const maxAttempts = (options.retries || 0) + 1;
36
+
37
+ function attempt() {
38
+ attempts++;
39
+ execFile("npx", cmdArgs, {
40
+ timeout: options.timeout || 15000,
41
+ maxBuffer: 1024 * 256,
42
+ }, (err, stdout) => {
43
+ if (err) {
44
+ // Distinguish timeout from other errors
45
+ const isTimeout = err.killed || err.code === "ETIMEDOUT" || err.signal === "SIGTERM";
46
+ const errorType = isTimeout ? "TIMEOUT" : "ERROR";
47
+
48
+ if (attempts < maxAttempts) {
49
+ console.warn(`[cortex-memory] ${errorType} on ${tool} (attempt ${attempts}/${maxAttempts}), retrying...`);
50
+ setTimeout(attempt, 1000); // 1s delay before retry
51
+ return;
52
+ }
53
+
54
+ console.error(`[cortex-memory] ${errorType} on ${tool} after ${attempts} attempt(s):`, err.message);
55
+ if (err.code) console.error(`[cortex-memory] Error code: ${err.code}`);
56
+ resolve(null);
57
+ return;
58
+ }
59
+ resolve(stdout?.trim() || null);
60
+ });
61
+ }
62
+
63
+ attempt();
44
64
  });
45
65
  }
46
66
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "shieldcortex",
3
- "version": "2.4.12",
3
+ "version": "2.4.14",
4
4
  "description": "Complete memory system + security layer for AI agents. Native OpenClaw integration. Persistent storage, semantic search, prompt injection firewall, credential protection, and audit trail. One package, full solution.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",