shieldcortex 2.20.1 → 3.0.1

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 (691) hide show
  1. package/README.md +248 -122
  2. package/dashboard/.next/standalone/dashboard/.next/BUILD_ID +1 -1
  3. package/dashboard/.next/standalone/dashboard/.next/build-manifest.json +5 -5
  4. package/dashboard/.next/standalone/dashboard/.next/prerender-manifest.json +3 -3
  5. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error/page/build-manifest.json +3 -3
  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/build-manifest.json +3 -3
  14. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  15. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.html +1 -1
  16. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.rsc +3 -3
  17. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_full.segment.rsc +3 -3
  18. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  19. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_index.segment.rsc +3 -3
  20. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  21. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  22. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  23. package/dashboard/.next/standalone/dashboard/.next/server/app/index.html +1 -1
  24. package/dashboard/.next/standalone/dashboard/.next/server/app/index.rsc +4 -4
  25. package/dashboard/.next/standalone/dashboard/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  26. package/dashboard/.next/standalone/dashboard/.next/server/app/index.segments/_full.segment.rsc +4 -4
  27. package/dashboard/.next/standalone/dashboard/.next/server/app/index.segments/_head.segment.rsc +1 -1
  28. package/dashboard/.next/standalone/dashboard/.next/server/app/index.segments/_index.segment.rsc +3 -3
  29. package/dashboard/.next/standalone/dashboard/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  30. package/dashboard/.next/standalone/dashboard/.next/server/app/page/build-manifest.json +3 -3
  31. package/dashboard/.next/standalone/dashboard/.next/server/app/page/react-loadable-manifest.json +2 -2
  32. package/dashboard/.next/standalone/dashboard/.next/server/app/page.js.nft.json +1 -1
  33. package/dashboard/.next/standalone/dashboard/.next/server/app/page_client-reference-manifest.js +1 -1
  34. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/9f1d4_next_dist_esm_build_templates_app-page_f7d4354e.js +1 -1
  35. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/9f1d4_next_dist_fe6a9400._.js +1 -1
  36. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/[root-of-the-server]__c95102dd._.js +1 -1
  37. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_1cd9d700._.js +1 -1
  38. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_3051539d._.js +11 -0
  39. package/dashboard/.next/standalone/dashboard/.next/server/middleware-build-manifest.js +3 -3
  40. package/dashboard/.next/standalone/dashboard/.next/server/pages/404.html +1 -1
  41. package/dashboard/.next/standalone/dashboard/.next/server/pages/500.html +2 -2
  42. package/dashboard/.next/standalone/dashboard/.next/server/server-reference-manifest.js +1 -1
  43. package/dashboard/.next/standalone/dashboard/.next/server/server-reference-manifest.json +1 -1
  44. package/dashboard/.next/standalone/dashboard/.next/static/chunks/{d334b69bff7779be.js → 215ce64499260c25.js} +1 -1
  45. package/dashboard/.next/standalone/dashboard/.next/static/chunks/{acf32ffeb20e4854.js → 39e59c45c12073c2.js} +1 -1
  46. package/dashboard/.next/standalone/dashboard/.next/static/chunks/3cc7e8d4f73cf5d2.js +1 -0
  47. package/dashboard/.next/standalone/dashboard/.next/static/chunks/{da96df828f9a0188.js → 6ba7a5c1a80a6791.js} +1 -1
  48. package/dashboard/.next/standalone/dashboard/.next/static/chunks/{fc4e920d4281c89e.js → 7d08316952ccdcef.js} +1 -1
  49. package/dashboard/.next/standalone/dashboard/.next/static/chunks/be6970da20a17c0b.js +9 -0
  50. package/dashboard/.next/standalone/dashboard/.next/static/chunks/da64d159c042f5ae.js +1 -0
  51. package/dashboard/.next/standalone/dashboard/.next/static/chunks/e63d2228780629dd.css +3 -0
  52. package/dashboard/.next/standalone/dashboard/.next/static/chunks/f69fd1c5e71fbbfd.js +1 -0
  53. package/dashboard/.next/standalone/dashboard/.next/static/chunks/{26118d592a545e00.js → fa5217550a8ab9a6.js} +2 -2
  54. package/dashboard/.next/standalone/dashboard/.next/static/chunks/{turbopack-7cf1ece01d32a474.js → turbopack-c2d84e7d37269ac1.js} +1 -1
  55. package/dist/api/control.d.ts +0 -1
  56. package/dist/api/control.js +0 -1
  57. package/dist/api/events.d.ts +0 -1
  58. package/dist/api/events.js +0 -1
  59. package/dist/api/session-token.d.ts +0 -1
  60. package/dist/api/session-token.js +0 -1
  61. package/dist/api/version.d.ts +0 -1
  62. package/dist/api/version.js +0 -1
  63. package/dist/api/visualization-server.d.ts +0 -1
  64. package/dist/api/visualization-server.js +117 -3
  65. package/dist/audit/env-scanner.d.ts +0 -1
  66. package/dist/audit/env-scanner.js +0 -1
  67. package/dist/audit/index.d.ts +0 -1
  68. package/dist/audit/index.js +0 -1
  69. package/dist/audit/mcp-config-scanner.d.ts +0 -1
  70. package/dist/audit/mcp-config-scanner.js +0 -1
  71. package/dist/audit/memory-scanner.d.ts +0 -1
  72. package/dist/audit/memory-scanner.js +0 -1
  73. package/dist/audit/report-formatter.d.ts +0 -1
  74. package/dist/audit/report-formatter.js +0 -1
  75. package/dist/audit/rules-file-scanner.d.ts +0 -1
  76. package/dist/audit/rules-file-scanner.js +0 -1
  77. package/dist/audit/types.d.ts +0 -1
  78. package/dist/audit/types.js +0 -1
  79. package/dist/cli/audit.d.ts +0 -1
  80. package/dist/cli/audit.js +0 -1
  81. package/dist/cli/doctor.d.ts +0 -1
  82. package/dist/cli/doctor.js +0 -1
  83. package/dist/cli/iron-dome.d.ts +0 -1
  84. package/dist/cli/iron-dome.js +0 -1
  85. package/dist/cloud/cli.d.ts +0 -1
  86. package/dist/cloud/cli.js +0 -1
  87. package/dist/cloud/config.d.ts +0 -1
  88. package/dist/cloud/config.js +1 -2
  89. package/dist/cloud/iron-dome-sync.d.ts +0 -1
  90. package/dist/cloud/iron-dome-sync.js +0 -1
  91. package/dist/cloud/quarantine-sync.d.ts +0 -1
  92. package/dist/cloud/quarantine-sync.js +0 -1
  93. package/dist/cloud/sync-queue.d.ts +0 -1
  94. package/dist/cloud/sync-queue.js +0 -1
  95. package/dist/cloud/sync.d.ts +0 -1
  96. package/dist/cloud/sync.js +0 -1
  97. package/dist/cloud/verify.d.ts +0 -1
  98. package/dist/cloud/verify.js +0 -1
  99. package/dist/context/project-context.d.ts +0 -1
  100. package/dist/context/project-context.js +0 -1
  101. package/dist/database/init.d.ts +0 -1
  102. package/dist/database/init.js +0 -1
  103. package/dist/defence/audit/export.d.ts +0 -1
  104. package/dist/defence/audit/export.js +0 -1
  105. package/dist/defence/audit/index.d.ts +0 -1
  106. package/dist/defence/audit/index.js +0 -1
  107. package/dist/defence/audit/logger.d.ts +0 -1
  108. package/dist/defence/audit/logger.js +0 -1
  109. package/dist/defence/audit/queries.d.ts +22 -1
  110. package/dist/defence/audit/queries.js +179 -1
  111. package/dist/defence/credential-leak/entropy.d.ts +0 -1
  112. package/dist/defence/credential-leak/entropy.js +0 -1
  113. package/dist/defence/credential-leak/index.d.ts +0 -1
  114. package/dist/defence/credential-leak/index.js +0 -1
  115. package/dist/defence/credential-leak/patterns.d.ts +0 -1
  116. package/dist/defence/credential-leak/patterns.js +0 -1
  117. package/dist/defence/custom-patterns/store.d.ts +0 -1
  118. package/dist/defence/custom-patterns/store.js +0 -1
  119. package/dist/defence/custom-rules/store.d.ts +0 -1
  120. package/dist/defence/custom-rules/store.js +0 -1
  121. package/dist/defence/firewall/anomaly-scorer.d.ts +0 -1
  122. package/dist/defence/firewall/anomaly-scorer.js +0 -1
  123. package/dist/defence/firewall/encoding-detector.d.ts +0 -1
  124. package/dist/defence/firewall/encoding-detector.js +0 -1
  125. package/dist/defence/firewall/index.d.ts +0 -1
  126. package/dist/defence/firewall/index.js +0 -1
  127. package/dist/defence/firewall/instruction-detector.d.ts +0 -1
  128. package/dist/defence/firewall/instruction-detector.js +0 -1
  129. package/dist/defence/firewall/privilege-detector.d.ts +0 -1
  130. package/dist/defence/firewall/privilege-detector.js +0 -1
  131. package/dist/defence/fragmentation/assembly-detector.d.ts +0 -1
  132. package/dist/defence/fragmentation/assembly-detector.js +0 -1
  133. package/dist/defence/fragmentation/entity-extractor.d.ts +0 -1
  134. package/dist/defence/fragmentation/entity-extractor.js +0 -1
  135. package/dist/defence/fragmentation/index.d.ts +0 -1
  136. package/dist/defence/fragmentation/index.js +0 -1
  137. package/dist/defence/fragmentation/temporal-analyzer.d.ts +0 -1
  138. package/dist/defence/fragmentation/temporal-analyzer.js +0 -1
  139. package/dist/defence/index.d.ts +0 -1
  140. package/dist/defence/index.js +0 -1
  141. package/dist/defence/input-sanitisation/index.d.ts +0 -1
  142. package/dist/defence/input-sanitisation/index.js +0 -1
  143. package/dist/defence/iron-dome/action-gate.d.ts +0 -1
  144. package/dist/defence/iron-dome/action-gate.js +0 -1
  145. package/dist/defence/iron-dome/audit.d.ts +0 -1
  146. package/dist/defence/iron-dome/audit.js +0 -1
  147. package/dist/defence/iron-dome/config.d.ts +0 -1
  148. package/dist/defence/iron-dome/config.js +0 -1
  149. package/dist/defence/iron-dome/confirmation-gate.d.ts +0 -1
  150. package/dist/defence/iron-dome/confirmation-gate.js +0 -1
  151. package/dist/defence/iron-dome/custom-policies.d.ts +0 -1
  152. package/dist/defence/iron-dome/custom-policies.js +0 -1
  153. package/dist/defence/iron-dome/gateway.d.ts +0 -1
  154. package/dist/defence/iron-dome/gateway.js +0 -1
  155. package/dist/defence/iron-dome/index.d.ts +0 -1
  156. package/dist/defence/iron-dome/index.js +0 -1
  157. package/dist/defence/iron-dome/injection-scanner.d.ts +0 -1
  158. package/dist/defence/iron-dome/injection-scanner.js +0 -1
  159. package/dist/defence/iron-dome/kill-switch.d.ts +0 -1
  160. package/dist/defence/iron-dome/kill-switch.js +0 -1
  161. package/dist/defence/iron-dome/pii-guard.d.ts +0 -1
  162. package/dist/defence/iron-dome/pii-guard.js +0 -1
  163. package/dist/defence/pipeline.d.ts +0 -1
  164. package/dist/defence/pipeline.js +0 -1
  165. package/dist/defence/quarantine/auto-expire.d.ts +0 -1
  166. package/dist/defence/quarantine/auto-expire.js +0 -1
  167. package/dist/defence/scanner/index.d.ts +0 -1
  168. package/dist/defence/scanner/index.js +0 -1
  169. package/dist/defence/scanner/scan-existing.d.ts +0 -1
  170. package/dist/defence/scanner/scan-existing.js +0 -1
  171. package/dist/defence/sensitivity/classifier.d.ts +0 -1
  172. package/dist/defence/sensitivity/classifier.js +0 -1
  173. package/dist/defence/sensitivity/index.d.ts +0 -1
  174. package/dist/defence/sensitivity/index.js +0 -1
  175. package/dist/defence/sensitivity/patterns.d.ts +0 -1
  176. package/dist/defence/sensitivity/patterns.js +0 -1
  177. package/dist/defence/sensitivity/redaction.d.ts +0 -1
  178. package/dist/defence/sensitivity/redaction.js +0 -1
  179. package/dist/defence/skill-scanner/deep-scan.d.ts +0 -1
  180. package/dist/defence/skill-scanner/deep-scan.js +0 -1
  181. package/dist/defence/skill-scanner/discover.d.ts +0 -1
  182. package/dist/defence/skill-scanner/discover.js +0 -1
  183. package/dist/defence/skill-scanner/index.d.ts +0 -1
  184. package/dist/defence/skill-scanner/index.js +0 -1
  185. package/dist/defence/skill-scanner/parser.d.ts +0 -1
  186. package/dist/defence/skill-scanner/parser.js +0 -1
  187. package/dist/defence/skill-scanner/patterns.d.ts +0 -1
  188. package/dist/defence/skill-scanner/patterns.js +0 -1
  189. package/dist/defence/skill-scanner/scan-skill.d.ts +0 -1
  190. package/dist/defence/skill-scanner/scan-skill.js +0 -1
  191. package/dist/defence/tool-response-scanner.d.ts +0 -1
  192. package/dist/defence/tool-response-scanner.js +0 -1
  193. package/dist/defence/trust/access-control.d.ts +0 -1
  194. package/dist/defence/trust/access-control.js +0 -1
  195. package/dist/defence/trust/agent-scorer.d.ts +0 -1
  196. package/dist/defence/trust/agent-scorer.js +0 -1
  197. package/dist/defence/trust/env-detector.d.ts +0 -1
  198. package/dist/defence/trust/env-detector.js +0 -1
  199. package/dist/defence/trust/index.d.ts +0 -1
  200. package/dist/defence/trust/index.js +0 -1
  201. package/dist/defence/trust/recall-filter.d.ts +0 -1
  202. package/dist/defence/trust/recall-filter.js +0 -1
  203. package/dist/defence/trust/source-scorer.d.ts +0 -1
  204. package/dist/defence/trust/source-scorer.js +0 -1
  205. package/dist/defence/types.d.ts +0 -1
  206. package/dist/defence/types.js +0 -1
  207. package/dist/embeddings/generator.d.ts +0 -1
  208. package/dist/embeddings/generator.js +0 -1
  209. package/dist/embeddings/index.d.ts +0 -1
  210. package/dist/embeddings/index.js +0 -1
  211. package/dist/embeddings/worker.d.ts +0 -1
  212. package/dist/embeddings/worker.js +0 -1
  213. package/dist/errors.d.ts +0 -1
  214. package/dist/errors.js +0 -1
  215. package/dist/events/webhooks.d.ts +0 -1
  216. package/dist/events/webhooks.js +0 -1
  217. package/dist/graph/backfill.d.ts +0 -1
  218. package/dist/graph/backfill.js +0 -1
  219. package/dist/graph/extract.d.ts +0 -1
  220. package/dist/graph/extract.js +0 -1
  221. package/dist/graph/resolve.d.ts +0 -1
  222. package/dist/graph/resolve.js +0 -1
  223. package/dist/index.d.ts +1 -1
  224. package/dist/index.js +10 -2
  225. package/dist/integrations/index.d.ts +0 -1
  226. package/dist/integrations/index.js +0 -1
  227. package/dist/integrations/langchain.d.ts +0 -1
  228. package/dist/integrations/langchain.js +0 -1
  229. package/dist/integrations/openclaw.d.ts +0 -1
  230. package/dist/integrations/openclaw.js +0 -1
  231. package/dist/integrations/universal.d.ts +0 -1
  232. package/dist/integrations/universal.js +0 -1
  233. package/dist/lib.d.ts +0 -1
  234. package/dist/lib.js +0 -1
  235. package/dist/license/cli.d.ts +0 -1
  236. package/dist/license/cli.js +0 -1
  237. package/dist/license/gate.d.ts +0 -1
  238. package/dist/license/gate.js +0 -1
  239. package/dist/license/index.d.ts +0 -1
  240. package/dist/license/index.js +0 -1
  241. package/dist/license/keys.d.ts +0 -1
  242. package/dist/license/keys.js +0 -1
  243. package/dist/license/store.d.ts +0 -1
  244. package/dist/license/store.js +0 -1
  245. package/dist/license/types.d.ts +0 -1
  246. package/dist/license/types.js +0 -1
  247. package/dist/license/validate.d.ts +0 -1
  248. package/dist/license/validate.js +0 -1
  249. package/dist/license/verify.d.ts +0 -1
  250. package/dist/license/verify.js +0 -1
  251. package/dist/memory/activation.d.ts +0 -1
  252. package/dist/memory/activation.js +0 -1
  253. package/dist/memory/consolidate.d.ts +0 -1
  254. package/dist/memory/consolidate.js +0 -1
  255. package/dist/memory/contradiction.d.ts +0 -1
  256. package/dist/memory/contradiction.js +0 -1
  257. package/dist/memory/decay.d.ts +0 -1
  258. package/dist/memory/decay.js +0 -1
  259. package/dist/memory/embedding-cache.d.ts +0 -1
  260. package/dist/memory/embedding-cache.js +0 -1
  261. package/dist/memory/embedding.d.ts +7 -2
  262. package/dist/memory/embedding.js +68 -7
  263. package/dist/memory/expiry.d.ts +0 -1
  264. package/dist/memory/expiry.js +0 -1
  265. package/dist/memory/salience.d.ts +0 -1
  266. package/dist/memory/salience.js +0 -1
  267. package/dist/memory/similarity.d.ts +0 -1
  268. package/dist/memory/similarity.js +0 -1
  269. package/dist/memory/store.d.ts +3 -1
  270. package/dist/memory/store.js +204 -123
  271. package/dist/memory/types.d.ts +21 -1
  272. package/dist/memory/types.js +0 -1
  273. package/dist/server.d.ts +0 -1
  274. package/dist/server.js +0 -1
  275. package/dist/service/install.d.ts +0 -1
  276. package/dist/service/install.js +0 -1
  277. package/dist/service/templates.d.ts +0 -1
  278. package/dist/service/templates.js +0 -1
  279. package/dist/setup/claude-md.d.ts +0 -1
  280. package/dist/setup/claude-md.js +0 -1
  281. package/dist/setup/copilot.d.ts +0 -1
  282. package/dist/setup/copilot.js +0 -1
  283. package/dist/setup/doctor.d.ts +0 -1
  284. package/dist/setup/doctor.js +0 -1
  285. package/dist/setup/hooks.d.ts +0 -1
  286. package/dist/setup/hooks.js +0 -1
  287. package/dist/setup/migrate.d.ts +0 -1
  288. package/dist/setup/migrate.js +0 -1
  289. package/dist/setup/openclaw.d.ts +0 -1
  290. package/dist/setup/openclaw.js +0 -1
  291. package/dist/setup/quickstart.d.ts +8 -0
  292. package/dist/setup/quickstart.js +108 -0
  293. package/dist/setup/settings-hooks.d.ts +0 -1
  294. package/dist/setup/settings-hooks.js +0 -1
  295. package/dist/setup/status.d.ts +0 -1
  296. package/dist/setup/status.js +0 -1
  297. package/dist/setup/uninstall.d.ts +0 -1
  298. package/dist/setup/uninstall.js +0 -1
  299. package/dist/tools/context.d.ts +0 -1
  300. package/dist/tools/context.js +0 -1
  301. package/dist/tools/forget.d.ts +0 -1
  302. package/dist/tools/forget.js +0 -1
  303. package/dist/tools/graph.d.ts +0 -1
  304. package/dist/tools/graph.js +0 -1
  305. package/dist/tools/recall.d.ts +0 -1
  306. package/dist/tools/recall.js +1 -1
  307. package/dist/tools/remember.d.ts +0 -1
  308. package/dist/tools/remember.js +0 -1
  309. package/dist/worker/brain-worker.d.ts +1 -1
  310. package/dist/worker/brain-worker.js +9 -2
  311. package/dist/worker/link-discovery.d.ts +0 -1
  312. package/dist/worker/link-discovery.js +0 -1
  313. package/dist/worker/predictive-consolidation.d.ts +0 -1
  314. package/dist/worker/predictive-consolidation.js +0 -1
  315. package/dist/worker/types.d.ts +0 -1
  316. package/dist/worker/types.js +0 -1
  317. package/hooks/openclaw/cortex-memory/handler.ts +62 -8
  318. package/package.json +9 -8
  319. package/scripts/run-jest.mjs +44 -0
  320. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_25b1b286._.js +0 -11
  321. package/dashboard/.next/standalone/dashboard/.next/static/chunks/364656baa57adaa7.js +0 -1
  322. package/dashboard/.next/standalone/dashboard/.next/static/chunks/6a6ccfb7834de00a.js +0 -9
  323. package/dashboard/.next/standalone/dashboard/.next/static/chunks/6b11a7d29e9abffd.js +0 -1
  324. package/dashboard/.next/standalone/dashboard/.next/static/chunks/ab13d81ce0e121f2.css +0 -3
  325. package/dashboard/.next/standalone/dashboard/.next/static/chunks/cf05262adfab5818.js +0 -1
  326. package/dist/__tests__/consolidation-merge.test.d.ts +0 -9
  327. package/dist/__tests__/consolidation-merge.test.d.ts.map +0 -1
  328. package/dist/__tests__/consolidation-merge.test.js +0 -137
  329. package/dist/__tests__/consolidation-merge.test.js.map +0 -1
  330. package/dist/__tests__/contradictions.test.d.ts +0 -8
  331. package/dist/__tests__/contradictions.test.d.ts.map +0 -1
  332. package/dist/__tests__/contradictions.test.js +0 -78
  333. package/dist/__tests__/contradictions.test.js.map +0 -1
  334. package/dist/__tests__/format-memory.test.d.ts +0 -11
  335. package/dist/__tests__/format-memory.test.d.ts.map +0 -1
  336. package/dist/__tests__/format-memory.test.js +0 -69
  337. package/dist/__tests__/format-memory.test.js.map +0 -1
  338. package/dist/__tests__/salience-evolution.test.d.ts +0 -7
  339. package/dist/__tests__/salience-evolution.test.d.ts.map +0 -1
  340. package/dist/__tests__/salience-evolution.test.js +0 -151
  341. package/dist/__tests__/salience-evolution.test.js.map +0 -1
  342. package/dist/__tests__/store.test.d.ts +0 -7
  343. package/dist/__tests__/store.test.d.ts.map +0 -1
  344. package/dist/__tests__/store.test.js +0 -583
  345. package/dist/__tests__/store.test.js.map +0 -1
  346. package/dist/api/control.d.ts.map +0 -1
  347. package/dist/api/control.js.map +0 -1
  348. package/dist/api/events.d.ts.map +0 -1
  349. package/dist/api/events.js.map +0 -1
  350. package/dist/api/session-token.d.ts.map +0 -1
  351. package/dist/api/session-token.js.map +0 -1
  352. package/dist/api/version.d.ts.map +0 -1
  353. package/dist/api/version.js.map +0 -1
  354. package/dist/api/visualization-server.d.ts.map +0 -1
  355. package/dist/api/visualization-server.js.map +0 -1
  356. package/dist/audit/env-scanner.d.ts.map +0 -1
  357. package/dist/audit/env-scanner.js.map +0 -1
  358. package/dist/audit/index.d.ts.map +0 -1
  359. package/dist/audit/index.js.map +0 -1
  360. package/dist/audit/mcp-config-scanner.d.ts.map +0 -1
  361. package/dist/audit/mcp-config-scanner.js.map +0 -1
  362. package/dist/audit/memory-scanner.d.ts.map +0 -1
  363. package/dist/audit/memory-scanner.js.map +0 -1
  364. package/dist/audit/report-formatter.d.ts.map +0 -1
  365. package/dist/audit/report-formatter.js.map +0 -1
  366. package/dist/audit/rules-file-scanner.d.ts.map +0 -1
  367. package/dist/audit/rules-file-scanner.js.map +0 -1
  368. package/dist/audit/types.d.ts.map +0 -1
  369. package/dist/audit/types.js.map +0 -1
  370. package/dist/cli/audit.d.ts.map +0 -1
  371. package/dist/cli/audit.js.map +0 -1
  372. package/dist/cli/doctor.d.ts.map +0 -1
  373. package/dist/cli/doctor.js.map +0 -1
  374. package/dist/cli/iron-dome.d.ts.map +0 -1
  375. package/dist/cli/iron-dome.js.map +0 -1
  376. package/dist/cloud/cli.d.ts.map +0 -1
  377. package/dist/cloud/cli.js.map +0 -1
  378. package/dist/cloud/config.d.ts.map +0 -1
  379. package/dist/cloud/config.js.map +0 -1
  380. package/dist/cloud/iron-dome-sync.d.ts.map +0 -1
  381. package/dist/cloud/iron-dome-sync.js.map +0 -1
  382. package/dist/cloud/quarantine-sync.d.ts.map +0 -1
  383. package/dist/cloud/quarantine-sync.js.map +0 -1
  384. package/dist/cloud/sync-queue.d.ts.map +0 -1
  385. package/dist/cloud/sync-queue.js.map +0 -1
  386. package/dist/cloud/sync.d.ts.map +0 -1
  387. package/dist/cloud/sync.js.map +0 -1
  388. package/dist/cloud/verify.d.ts.map +0 -1
  389. package/dist/cloud/verify.js.map +0 -1
  390. package/dist/context/project-context.d.ts.map +0 -1
  391. package/dist/context/project-context.js.map +0 -1
  392. package/dist/database/init.d.ts.map +0 -1
  393. package/dist/database/init.js.map +0 -1
  394. package/dist/defence/__tests__/access-control.test.d.ts +0 -5
  395. package/dist/defence/__tests__/access-control.test.d.ts.map +0 -1
  396. package/dist/defence/__tests__/access-control.test.js +0 -89
  397. package/dist/defence/__tests__/access-control.test.js.map +0 -1
  398. package/dist/defence/__tests__/agent-scorer.test.d.ts +0 -5
  399. package/dist/defence/__tests__/agent-scorer.test.d.ts.map +0 -1
  400. package/dist/defence/__tests__/agent-scorer.test.js +0 -75
  401. package/dist/defence/__tests__/agent-scorer.test.js.map +0 -1
  402. package/dist/defence/__tests__/credential-leak.test.d.ts +0 -8
  403. package/dist/defence/__tests__/credential-leak.test.d.ts.map +0 -1
  404. package/dist/defence/__tests__/credential-leak.test.js +0 -403
  405. package/dist/defence/__tests__/credential-leak.test.js.map +0 -1
  406. package/dist/defence/__tests__/env-detector.test.d.ts +0 -5
  407. package/dist/defence/__tests__/env-detector.test.d.ts.map +0 -1
  408. package/dist/defence/__tests__/env-detector.test.js +0 -100
  409. package/dist/defence/__tests__/env-detector.test.js.map +0 -1
  410. package/dist/defence/__tests__/firewall.test.d.ts +0 -8
  411. package/dist/defence/__tests__/firewall.test.d.ts.map +0 -1
  412. package/dist/defence/__tests__/firewall.test.js +0 -123
  413. package/dist/defence/__tests__/firewall.test.js.map +0 -1
  414. package/dist/defence/__tests__/fragmentation.test.d.ts +0 -7
  415. package/dist/defence/__tests__/fragmentation.test.d.ts.map +0 -1
  416. package/dist/defence/__tests__/fragmentation.test.js +0 -51
  417. package/dist/defence/__tests__/fragmentation.test.js.map +0 -1
  418. package/dist/defence/__tests__/pipeline.test.d.ts +0 -8
  419. package/dist/defence/__tests__/pipeline.test.d.ts.map +0 -1
  420. package/dist/defence/__tests__/pipeline.test.js +0 -106
  421. package/dist/defence/__tests__/pipeline.test.js.map +0 -1
  422. package/dist/defence/__tests__/sensitivity.test.d.ts +0 -7
  423. package/dist/defence/__tests__/sensitivity.test.d.ts.map +0 -1
  424. package/dist/defence/__tests__/sensitivity.test.js +0 -61
  425. package/dist/defence/__tests__/sensitivity.test.js.map +0 -1
  426. package/dist/defence/__tests__/tool-response-scanner.test.d.ts +0 -8
  427. package/dist/defence/__tests__/tool-response-scanner.test.d.ts.map +0 -1
  428. package/dist/defence/__tests__/tool-response-scanner.test.js +0 -106
  429. package/dist/defence/__tests__/tool-response-scanner.test.js.map +0 -1
  430. package/dist/defence/__tests__/trust.test.d.ts +0 -7
  431. package/dist/defence/__tests__/trust.test.d.ts.map +0 -1
  432. package/dist/defence/__tests__/trust.test.js +0 -50
  433. package/dist/defence/__tests__/trust.test.js.map +0 -1
  434. package/dist/defence/__tests__/verify.test.d.ts +0 -7
  435. package/dist/defence/__tests__/verify.test.d.ts.map +0 -1
  436. package/dist/defence/__tests__/verify.test.js +0 -143
  437. package/dist/defence/__tests__/verify.test.js.map +0 -1
  438. package/dist/defence/audit/export.d.ts.map +0 -1
  439. package/dist/defence/audit/export.js.map +0 -1
  440. package/dist/defence/audit/index.d.ts.map +0 -1
  441. package/dist/defence/audit/index.js.map +0 -1
  442. package/dist/defence/audit/logger.d.ts.map +0 -1
  443. package/dist/defence/audit/logger.js.map +0 -1
  444. package/dist/defence/audit/queries.d.ts.map +0 -1
  445. package/dist/defence/audit/queries.js.map +0 -1
  446. package/dist/defence/credential-leak/entropy.d.ts.map +0 -1
  447. package/dist/defence/credential-leak/entropy.js.map +0 -1
  448. package/dist/defence/credential-leak/index.d.ts.map +0 -1
  449. package/dist/defence/credential-leak/index.js.map +0 -1
  450. package/dist/defence/credential-leak/patterns.d.ts.map +0 -1
  451. package/dist/defence/credential-leak/patterns.js.map +0 -1
  452. package/dist/defence/custom-patterns/store.d.ts.map +0 -1
  453. package/dist/defence/custom-patterns/store.js.map +0 -1
  454. package/dist/defence/custom-rules/store.d.ts.map +0 -1
  455. package/dist/defence/custom-rules/store.js.map +0 -1
  456. package/dist/defence/firewall/anomaly-scorer.d.ts.map +0 -1
  457. package/dist/defence/firewall/anomaly-scorer.js.map +0 -1
  458. package/dist/defence/firewall/encoding-detector.d.ts.map +0 -1
  459. package/dist/defence/firewall/encoding-detector.js.map +0 -1
  460. package/dist/defence/firewall/index.d.ts.map +0 -1
  461. package/dist/defence/firewall/index.js.map +0 -1
  462. package/dist/defence/firewall/instruction-detector.d.ts.map +0 -1
  463. package/dist/defence/firewall/instruction-detector.js.map +0 -1
  464. package/dist/defence/firewall/privilege-detector.d.ts.map +0 -1
  465. package/dist/defence/firewall/privilege-detector.js.map +0 -1
  466. package/dist/defence/fragmentation/assembly-detector.d.ts.map +0 -1
  467. package/dist/defence/fragmentation/assembly-detector.js.map +0 -1
  468. package/dist/defence/fragmentation/entity-extractor.d.ts.map +0 -1
  469. package/dist/defence/fragmentation/entity-extractor.js.map +0 -1
  470. package/dist/defence/fragmentation/index.d.ts.map +0 -1
  471. package/dist/defence/fragmentation/index.js.map +0 -1
  472. package/dist/defence/fragmentation/temporal-analyzer.d.ts.map +0 -1
  473. package/dist/defence/fragmentation/temporal-analyzer.js.map +0 -1
  474. package/dist/defence/index.d.ts.map +0 -1
  475. package/dist/defence/index.js.map +0 -1
  476. package/dist/defence/input-sanitisation/index.d.ts.map +0 -1
  477. package/dist/defence/input-sanitisation/index.js.map +0 -1
  478. package/dist/defence/iron-dome/__tests__/action-gate.test.d.ts +0 -5
  479. package/dist/defence/iron-dome/__tests__/action-gate.test.d.ts.map +0 -1
  480. package/dist/defence/iron-dome/__tests__/action-gate.test.js +0 -71
  481. package/dist/defence/iron-dome/__tests__/action-gate.test.js.map +0 -1
  482. package/dist/defence/iron-dome/__tests__/confirmation-gate.test.d.ts +0 -5
  483. package/dist/defence/iron-dome/__tests__/confirmation-gate.test.d.ts.map +0 -1
  484. package/dist/defence/iron-dome/__tests__/confirmation-gate.test.js +0 -144
  485. package/dist/defence/iron-dome/__tests__/confirmation-gate.test.js.map +0 -1
  486. package/dist/defence/iron-dome/__tests__/gateway.test.d.ts +0 -5
  487. package/dist/defence/iron-dome/__tests__/gateway.test.d.ts.map +0 -1
  488. package/dist/defence/iron-dome/__tests__/gateway.test.js +0 -60
  489. package/dist/defence/iron-dome/__tests__/gateway.test.js.map +0 -1
  490. package/dist/defence/iron-dome/__tests__/injection-scanner.test.d.ts +0 -7
  491. package/dist/defence/iron-dome/__tests__/injection-scanner.test.d.ts.map +0 -1
  492. package/dist/defence/iron-dome/__tests__/injection-scanner.test.js +0 -230
  493. package/dist/defence/iron-dome/__tests__/injection-scanner.test.js.map +0 -1
  494. package/dist/defence/iron-dome/__tests__/pii-guard.test.d.ts +0 -5
  495. package/dist/defence/iron-dome/__tests__/pii-guard.test.d.ts.map +0 -1
  496. package/dist/defence/iron-dome/__tests__/pii-guard.test.js +0 -130
  497. package/dist/defence/iron-dome/__tests__/pii-guard.test.js.map +0 -1
  498. package/dist/defence/iron-dome/action-gate.d.ts.map +0 -1
  499. package/dist/defence/iron-dome/action-gate.js.map +0 -1
  500. package/dist/defence/iron-dome/audit.d.ts.map +0 -1
  501. package/dist/defence/iron-dome/audit.js.map +0 -1
  502. package/dist/defence/iron-dome/config.d.ts.map +0 -1
  503. package/dist/defence/iron-dome/config.js.map +0 -1
  504. package/dist/defence/iron-dome/confirmation-gate.d.ts.map +0 -1
  505. package/dist/defence/iron-dome/confirmation-gate.js.map +0 -1
  506. package/dist/defence/iron-dome/custom-policies.d.ts.map +0 -1
  507. package/dist/defence/iron-dome/custom-policies.js.map +0 -1
  508. package/dist/defence/iron-dome/gateway.d.ts.map +0 -1
  509. package/dist/defence/iron-dome/gateway.js.map +0 -1
  510. package/dist/defence/iron-dome/index.d.ts.map +0 -1
  511. package/dist/defence/iron-dome/index.js.map +0 -1
  512. package/dist/defence/iron-dome/injection-scanner.d.ts.map +0 -1
  513. package/dist/defence/iron-dome/injection-scanner.js.map +0 -1
  514. package/dist/defence/iron-dome/kill-switch.d.ts.map +0 -1
  515. package/dist/defence/iron-dome/kill-switch.js.map +0 -1
  516. package/dist/defence/iron-dome/pii-guard.d.ts.map +0 -1
  517. package/dist/defence/iron-dome/pii-guard.js.map +0 -1
  518. package/dist/defence/pipeline.d.ts.map +0 -1
  519. package/dist/defence/pipeline.js.map +0 -1
  520. package/dist/defence/quarantine/auto-expire.d.ts.map +0 -1
  521. package/dist/defence/quarantine/auto-expire.js.map +0 -1
  522. package/dist/defence/scanner/index.d.ts.map +0 -1
  523. package/dist/defence/scanner/index.js.map +0 -1
  524. package/dist/defence/scanner/scan-existing.d.ts.map +0 -1
  525. package/dist/defence/scanner/scan-existing.js.map +0 -1
  526. package/dist/defence/sensitivity/classifier.d.ts.map +0 -1
  527. package/dist/defence/sensitivity/classifier.js.map +0 -1
  528. package/dist/defence/sensitivity/index.d.ts.map +0 -1
  529. package/dist/defence/sensitivity/index.js.map +0 -1
  530. package/dist/defence/sensitivity/patterns.d.ts.map +0 -1
  531. package/dist/defence/sensitivity/patterns.js.map +0 -1
  532. package/dist/defence/sensitivity/redaction.d.ts.map +0 -1
  533. package/dist/defence/sensitivity/redaction.js.map +0 -1
  534. package/dist/defence/skill-scanner/__tests__/skill-scanner.test.d.ts +0 -12
  535. package/dist/defence/skill-scanner/__tests__/skill-scanner.test.d.ts.map +0 -1
  536. package/dist/defence/skill-scanner/__tests__/skill-scanner.test.js +0 -471
  537. package/dist/defence/skill-scanner/__tests__/skill-scanner.test.js.map +0 -1
  538. package/dist/defence/skill-scanner/deep-scan.d.ts.map +0 -1
  539. package/dist/defence/skill-scanner/deep-scan.js.map +0 -1
  540. package/dist/defence/skill-scanner/discover.d.ts.map +0 -1
  541. package/dist/defence/skill-scanner/discover.js.map +0 -1
  542. package/dist/defence/skill-scanner/index.d.ts.map +0 -1
  543. package/dist/defence/skill-scanner/index.js.map +0 -1
  544. package/dist/defence/skill-scanner/parser.d.ts.map +0 -1
  545. package/dist/defence/skill-scanner/parser.js.map +0 -1
  546. package/dist/defence/skill-scanner/patterns.d.ts.map +0 -1
  547. package/dist/defence/skill-scanner/patterns.js.map +0 -1
  548. package/dist/defence/skill-scanner/scan-skill.d.ts.map +0 -1
  549. package/dist/defence/skill-scanner/scan-skill.js.map +0 -1
  550. package/dist/defence/tool-response-scanner.d.ts.map +0 -1
  551. package/dist/defence/tool-response-scanner.js.map +0 -1
  552. package/dist/defence/trust/access-control.d.ts.map +0 -1
  553. package/dist/defence/trust/access-control.js.map +0 -1
  554. package/dist/defence/trust/agent-scorer.d.ts.map +0 -1
  555. package/dist/defence/trust/agent-scorer.js.map +0 -1
  556. package/dist/defence/trust/env-detector.d.ts.map +0 -1
  557. package/dist/defence/trust/env-detector.js.map +0 -1
  558. package/dist/defence/trust/index.d.ts.map +0 -1
  559. package/dist/defence/trust/index.js.map +0 -1
  560. package/dist/defence/trust/recall-filter.d.ts.map +0 -1
  561. package/dist/defence/trust/recall-filter.js.map +0 -1
  562. package/dist/defence/trust/source-scorer.d.ts.map +0 -1
  563. package/dist/defence/trust/source-scorer.js.map +0 -1
  564. package/dist/defence/types.d.ts.map +0 -1
  565. package/dist/defence/types.js.map +0 -1
  566. package/dist/embeddings/generator.d.ts.map +0 -1
  567. package/dist/embeddings/generator.js.map +0 -1
  568. package/dist/embeddings/index.d.ts.map +0 -1
  569. package/dist/embeddings/index.js.map +0 -1
  570. package/dist/embeddings/worker.d.ts.map +0 -1
  571. package/dist/embeddings/worker.js.map +0 -1
  572. package/dist/errors.d.ts.map +0 -1
  573. package/dist/errors.js.map +0 -1
  574. package/dist/events/webhooks.d.ts.map +0 -1
  575. package/dist/events/webhooks.js.map +0 -1
  576. package/dist/graph/backfill.d.ts.map +0 -1
  577. package/dist/graph/backfill.js.map +0 -1
  578. package/dist/graph/extract.d.ts.map +0 -1
  579. package/dist/graph/extract.js.map +0 -1
  580. package/dist/graph/resolve.d.ts.map +0 -1
  581. package/dist/graph/resolve.js.map +0 -1
  582. package/dist/index.d.ts.map +0 -1
  583. package/dist/index.js.map +0 -1
  584. package/dist/integrations/__tests__/openclaw.test.d.ts +0 -2
  585. package/dist/integrations/__tests__/openclaw.test.d.ts.map +0 -1
  586. package/dist/integrations/__tests__/openclaw.test.js +0 -72
  587. package/dist/integrations/__tests__/openclaw.test.js.map +0 -1
  588. package/dist/integrations/__tests__/universal.test.d.ts +0 -2
  589. package/dist/integrations/__tests__/universal.test.d.ts.map +0 -1
  590. package/dist/integrations/__tests__/universal.test.js +0 -144
  591. package/dist/integrations/__tests__/universal.test.js.map +0 -1
  592. package/dist/integrations/index.d.ts.map +0 -1
  593. package/dist/integrations/index.js.map +0 -1
  594. package/dist/integrations/langchain.d.ts.map +0 -1
  595. package/dist/integrations/langchain.js.map +0 -1
  596. package/dist/integrations/openclaw.d.ts.map +0 -1
  597. package/dist/integrations/openclaw.js.map +0 -1
  598. package/dist/integrations/universal.d.ts.map +0 -1
  599. package/dist/integrations/universal.js.map +0 -1
  600. package/dist/lib.d.ts.map +0 -1
  601. package/dist/lib.js.map +0 -1
  602. package/dist/license/__tests__/feature-gating.test.d.ts +0 -10
  603. package/dist/license/__tests__/feature-gating.test.d.ts.map +0 -1
  604. package/dist/license/__tests__/feature-gating.test.js +0 -188
  605. package/dist/license/__tests__/feature-gating.test.js.map +0 -1
  606. package/dist/license/cli.d.ts.map +0 -1
  607. package/dist/license/cli.js.map +0 -1
  608. package/dist/license/gate.d.ts.map +0 -1
  609. package/dist/license/gate.js.map +0 -1
  610. package/dist/license/index.d.ts.map +0 -1
  611. package/dist/license/index.js.map +0 -1
  612. package/dist/license/keys.d.ts.map +0 -1
  613. package/dist/license/keys.js.map +0 -1
  614. package/dist/license/store.d.ts.map +0 -1
  615. package/dist/license/store.js.map +0 -1
  616. package/dist/license/types.d.ts.map +0 -1
  617. package/dist/license/types.js.map +0 -1
  618. package/dist/license/validate.d.ts.map +0 -1
  619. package/dist/license/validate.js.map +0 -1
  620. package/dist/license/verify.d.ts.map +0 -1
  621. package/dist/license/verify.js.map +0 -1
  622. package/dist/memory/activation.d.ts.map +0 -1
  623. package/dist/memory/activation.js.map +0 -1
  624. package/dist/memory/consolidate.d.ts.map +0 -1
  625. package/dist/memory/consolidate.js.map +0 -1
  626. package/dist/memory/contradiction.d.ts.map +0 -1
  627. package/dist/memory/contradiction.js.map +0 -1
  628. package/dist/memory/decay.d.ts.map +0 -1
  629. package/dist/memory/decay.js.map +0 -1
  630. package/dist/memory/embedding-cache.d.ts.map +0 -1
  631. package/dist/memory/embedding-cache.js.map +0 -1
  632. package/dist/memory/embedding.d.ts.map +0 -1
  633. package/dist/memory/embedding.js.map +0 -1
  634. package/dist/memory/expiry.d.ts.map +0 -1
  635. package/dist/memory/expiry.js.map +0 -1
  636. package/dist/memory/salience.d.ts.map +0 -1
  637. package/dist/memory/salience.js.map +0 -1
  638. package/dist/memory/similarity.d.ts.map +0 -1
  639. package/dist/memory/similarity.js.map +0 -1
  640. package/dist/memory/store.d.ts.map +0 -1
  641. package/dist/memory/store.js.map +0 -1
  642. package/dist/memory/types.d.ts.map +0 -1
  643. package/dist/memory/types.js.map +0 -1
  644. package/dist/server.d.ts.map +0 -1
  645. package/dist/server.js.map +0 -1
  646. package/dist/service/install.d.ts.map +0 -1
  647. package/dist/service/install.js.map +0 -1
  648. package/dist/service/templates.d.ts.map +0 -1
  649. package/dist/service/templates.js.map +0 -1
  650. package/dist/setup/claude-md.d.ts.map +0 -1
  651. package/dist/setup/claude-md.js.map +0 -1
  652. package/dist/setup/copilot.d.ts.map +0 -1
  653. package/dist/setup/copilot.js.map +0 -1
  654. package/dist/setup/doctor.d.ts.map +0 -1
  655. package/dist/setup/doctor.js.map +0 -1
  656. package/dist/setup/hooks.d.ts.map +0 -1
  657. package/dist/setup/hooks.js.map +0 -1
  658. package/dist/setup/migrate.d.ts.map +0 -1
  659. package/dist/setup/migrate.js.map +0 -1
  660. package/dist/setup/openclaw.d.ts.map +0 -1
  661. package/dist/setup/openclaw.js.map +0 -1
  662. package/dist/setup/settings-hooks.d.ts.map +0 -1
  663. package/dist/setup/settings-hooks.js.map +0 -1
  664. package/dist/setup/status.d.ts.map +0 -1
  665. package/dist/setup/status.js.map +0 -1
  666. package/dist/setup/uninstall.d.ts.map +0 -1
  667. package/dist/setup/uninstall.js.map +0 -1
  668. package/dist/tools/context.d.ts.map +0 -1
  669. package/dist/tools/context.js.map +0 -1
  670. package/dist/tools/forget.d.ts.map +0 -1
  671. package/dist/tools/forget.js.map +0 -1
  672. package/dist/tools/graph.d.ts.map +0 -1
  673. package/dist/tools/graph.js.map +0 -1
  674. package/dist/tools/recall.d.ts.map +0 -1
  675. package/dist/tools/recall.js.map +0 -1
  676. package/dist/tools/remember.d.ts.map +0 -1
  677. package/dist/tools/remember.js.map +0 -1
  678. package/dist/worker/brain-worker.d.ts.map +0 -1
  679. package/dist/worker/brain-worker.js.map +0 -1
  680. package/dist/worker/link-discovery.d.ts.map +0 -1
  681. package/dist/worker/link-discovery.js.map +0 -1
  682. package/dist/worker/predictive-consolidation.d.ts.map +0 -1
  683. package/dist/worker/predictive-consolidation.js.map +0 -1
  684. package/dist/worker/types.d.ts.map +0 -1
  685. package/dist/worker/types.js.map +0 -1
  686. package/plugins/openclaw/README.md +0 -93
  687. package/plugins/openclaw/index.ts +0 -432
  688. package/plugins/openclaw/openclaw.plugin.json +0 -10
  689. /package/dashboard/.next/standalone/dashboard/.next/static/{3NPHem1lidYcerzR28Shs → QB0u2SMOnB24QHhhlDrIU}/_buildManifest.js +0 -0
  690. /package/dashboard/.next/standalone/dashboard/.next/static/{3NPHem1lidYcerzR28Shs → QB0u2SMOnB24QHhhlDrIU}/_clientMiddlewareManifest.json +0 -0
  691. /package/dashboard/.next/standalone/dashboard/.next/static/{3NPHem1lidYcerzR28Shs → QB0u2SMOnB24QHhhlDrIU}/_ssgManifest.js +0 -0
@@ -52,6 +52,27 @@ export interface SearchResult {
52
52
  title: string;
53
53
  score: number;
54
54
  }[];
55
+ explanation?: SearchExplanation;
56
+ }
57
+ export interface SearchScoreBreakdown {
58
+ ftsScore: number;
59
+ vectorSimilarity: number;
60
+ vectorBoost: number;
61
+ decayedScore: number;
62
+ priorityBoost: number;
63
+ recencyBoost: number;
64
+ categoryBoost: number;
65
+ linkBoost: number;
66
+ tagBoost: number;
67
+ activationBoost: number;
68
+ finalScore: number;
69
+ matchedTags: string[];
70
+ matchedCategory: string | null;
71
+ }
72
+ export interface SearchExplanation {
73
+ query: string;
74
+ reasons: string[];
75
+ breakdown: SearchScoreBreakdown;
55
76
  }
56
77
  export interface ConsolidationResult {
57
78
  consolidated: number;
@@ -95,4 +116,3 @@ export declare const DEFAULT_CONFIG: MemoryConfig;
95
116
  * Lower threshold = harder to delete (more valuable)
96
117
  */
97
118
  export declare const DELETION_THRESHOLDS: Record<MemoryCategory, number>;
98
- //# sourceMappingURL=types.d.ts.map
@@ -27,4 +27,3 @@ export const DELETION_THRESHOLDS = {
27
27
  todo: 0.25, // Todos - easier to delete
28
28
  custom: 0.22, // Custom memories
29
29
  };
30
- //# sourceMappingURL=types.js.map
package/dist/server.d.ts CHANGED
@@ -9,4 +9,3 @@ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
9
9
  * Create and configure the MCP server
10
10
  */
11
11
  export declare function createServer(dbPath?: string): McpServer;
12
- //# sourceMappingURL=server.d.ts.map
package/dist/server.js CHANGED
@@ -992,4 +992,3 @@ Runs injection detection (40+ patterns) and credential leak scanning (25+ provid
992
992
  }, CONSOLIDATION_INTERVAL);
993
993
  return server;
994
994
  }
995
- //# sourceMappingURL=server.js.map
@@ -12,4 +12,3 @@ export declare function uninstallService(options?: {
12
12
  }): Promise<void>;
13
13
  export declare function serviceStatus(): Promise<void>;
14
14
  export declare function handleServiceCommand(subcommand: string): Promise<void>;
15
- //# sourceMappingURL=install.d.ts.map
@@ -175,4 +175,3 @@ export async function handleServiceCommand(subcommand) {
175
175
  process.exit(1);
176
176
  }
177
177
  }
178
- //# sourceMappingURL=install.js.map
@@ -10,4 +10,3 @@ export interface ServiceConfig {
10
10
  export declare function launchdPlist(config: ServiceConfig): string;
11
11
  export declare function systemdUnit(config: ServiceConfig): string;
12
12
  export declare function windowsVbs(config: ServiceConfig): string;
13
- //# sourceMappingURL=templates.d.ts.map
@@ -55,4 +55,3 @@ export function windowsVbs(config) {
55
55
  return `Set WshShell = CreateObject("WScript.Shell")
56
56
  WshShell.Run """${nodePath}"" ""${entryPoint}"" --mode dashboard", 0, False`;
57
57
  }
58
- //# sourceMappingURL=templates.js.map
@@ -11,4 +11,3 @@
11
11
  export declare function setupClaudeMd(options?: {
12
12
  stopHook?: boolean;
13
13
  }): Promise<void>;
14
- //# sourceMappingURL=claude-md.d.ts.map
@@ -109,4 +109,3 @@ export async function setupClaudeMd(options) {
109
109
  }
110
110
  console.log('\nSetup complete.');
111
111
  }
112
- //# sourceMappingURL=claude-md.js.map
@@ -9,4 +9,3 @@ export declare function installCopilot(): Promise<void>;
9
9
  export declare function uninstallCopilot(): Promise<void>;
10
10
  export declare function copilotStatus(): Promise<void>;
11
11
  export declare function handleCopilotCommand(subcommand: string): Promise<void>;
12
- //# sourceMappingURL=copilot.d.ts.map
@@ -287,4 +287,3 @@ export async function handleCopilotCommand(subcommand) {
287
287
  process.exit(1);
288
288
  }
289
289
  }
290
- //# sourceMappingURL=copilot.js.map
@@ -2,4 +2,3 @@
2
2
  * `npx shieldcortex doctor` — diagnostic checks for Cortex installation health.
3
3
  */
4
4
  export declare function handleDoctorCommand(): Promise<void>;
5
- //# sourceMappingURL=doctor.d.ts.map
@@ -206,4 +206,3 @@ export async function handleDoctorCommand() {
206
206
  console.log(`\n${passed} passed, ${warns} warnings, ${fails} failed\n`);
207
207
  process.exit(fails > 0 ? 1 : 0);
208
208
  }
209
- //# sourceMappingURL=doctor.js.map
@@ -6,4 +6,3 @@
6
6
  * Custom hooks: user-defined in ~/.shieldcortex/config.json → customHooks
7
7
  */
8
8
  export declare function handleHookCommand(hookName: string): Promise<void>;
9
- //# sourceMappingURL=hooks.d.ts.map
@@ -98,4 +98,3 @@ export async function handleHookCommand(hookName) {
98
98
  }
99
99
  process.exit(1);
100
100
  }
101
- //# sourceMappingURL=hooks.js.map
@@ -37,4 +37,3 @@ export declare function migrateOpenClawHooks(): {
37
37
  cleanedLegacy: boolean;
38
38
  };
39
39
  export declare function handleMigrateCommand(): Promise<void>;
40
- //# sourceMappingURL=migrate.d.ts.map
@@ -378,4 +378,3 @@ export async function handleMigrateCommand() {
378
378
  console.log('\nRestart Claude Code to use the new configuration.');
379
379
  }
380
380
  }
381
- //# sourceMappingURL=migrate.js.map
@@ -16,4 +16,3 @@ export declare function installOpenClawHook(): Promise<void>;
16
16
  export declare function uninstallOpenClawHook(): Promise<void>;
17
17
  export declare function openClawHookStatus(): Promise<void>;
18
18
  export declare function handleOpenClawCommand(subcommand: string): Promise<void>;
19
- //# sourceMappingURL=openclaw.d.ts.map
@@ -443,4 +443,3 @@ export async function handleOpenClawCommand(subcommand) {
443
443
  process.exit(1);
444
444
  }
445
445
  }
446
- //# sourceMappingURL=openclaw.js.map
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Quickstart helper for the most common installation paths.
3
+ *
4
+ * `shieldcortex quickstart` is intentionally non-destructive by default:
5
+ * it detects likely environments and tells the user which single command
6
+ * to run next. Explicit targets perform the install.
7
+ */
8
+ export declare function handleQuickstartCommand(target?: string): Promise<void>;
@@ -0,0 +1,108 @@
1
+ /**
2
+ * Quickstart helper for the most common installation paths.
3
+ *
4
+ * `shieldcortex quickstart` is intentionally non-destructive by default:
5
+ * it detects likely environments and tells the user which single command
6
+ * to run next. Explicit targets perform the install.
7
+ */
8
+ import fs from 'fs';
9
+ import os from 'os';
10
+ import path from 'path';
11
+ import { setupClaudeMd } from './claude-md.js';
12
+ import { handleOpenClawCommand } from './openclaw.js';
13
+ import { handleCopilotCommand } from './copilot.js';
14
+ function detectEnvironment() {
15
+ const home = os.homedir();
16
+ const platform = process.platform;
17
+ const claude = fs.existsSync(path.join(home, '.claude')) ||
18
+ fs.existsSync(path.join(home, '.claude.json'));
19
+ const openclaw = fs.existsSync(path.join(home, '.openclaw'));
20
+ const cursor = fs.existsSync(path.join(home, '.cursor'));
21
+ const vscodeDirs = platform === 'darwin'
22
+ ? [
23
+ path.join(home, 'Library', 'Application Support', 'Code', 'User'),
24
+ path.join(home, 'Library', 'Application Support', 'Code - Insiders', 'User'),
25
+ ]
26
+ : platform === 'win32'
27
+ ? [
28
+ path.join(process.env.APPDATA ?? path.join(home, 'AppData', 'Roaming'), 'Code', 'User'),
29
+ path.join(process.env.APPDATA ?? path.join(home, 'AppData', 'Roaming'), 'Code - Insiders', 'User'),
30
+ ]
31
+ : [
32
+ path.join(home, '.config', 'Code', 'User'),
33
+ path.join(home, '.config', 'Code - Insiders', 'User'),
34
+ ];
35
+ const copilot = cursor || vscodeDirs.some((dir) => fs.existsSync(dir));
36
+ return { claude, openclaw, copilot, cursor };
37
+ }
38
+ function printAutoGuide() {
39
+ const env = detectEnvironment();
40
+ const lines = [];
41
+ lines.push('');
42
+ lines.push('ShieldCortex Quickstart');
43
+ lines.push('────────────────────────────────────────────────────');
44
+ lines.push(`Detected: Claude=${env.claude ? 'yes' : 'no'} · OpenClaw=${env.openclaw ? 'yes' : 'no'} · Copilot/Cursor=${env.copilot ? 'yes' : 'no'}`);
45
+ lines.push('');
46
+ if (env.claude) {
47
+ lines.push('Best next step for persistent memory in Claude Code:');
48
+ lines.push(' shieldcortex quickstart claude');
49
+ lines.push('');
50
+ }
51
+ if (env.openclaw) {
52
+ lines.push('Best next step for OpenClaw hook + realtime plugin:');
53
+ lines.push(' shieldcortex quickstart openclaw');
54
+ lines.push('');
55
+ }
56
+ if (env.copilot) {
57
+ lines.push('Best next step for VS Code / Cursor MCP wiring:');
58
+ lines.push(' shieldcortex quickstart copilot');
59
+ lines.push('');
60
+ }
61
+ lines.push('Security-only workflow:');
62
+ lines.push(' shieldcortex quickstart security');
63
+ lines.push('');
64
+ lines.push('You can also run one of these directly:');
65
+ lines.push(' shieldcortex setup');
66
+ lines.push(' shieldcortex openclaw install');
67
+ lines.push(' shieldcortex copilot install');
68
+ lines.push(' shieldcortex dashboard');
69
+ lines.push('');
70
+ console.log(lines.join('\n'));
71
+ }
72
+ function printSecurityGuide() {
73
+ console.log(`
74
+ ShieldCortex Security Quickstart
75
+ ────────────────────────────────────────────────────
76
+ 1. Scan one suspicious prompt or tool output:
77
+ shieldcortex scan "ignore previous instructions"
78
+
79
+ 2. Audit your local agent environment:
80
+ shieldcortex audit
81
+
82
+ 3. Open the dashboard for quarantine, audit, and graph visibility:
83
+ shieldcortex dashboard
84
+ `);
85
+ }
86
+ export async function handleQuickstartCommand(target) {
87
+ if (!target) {
88
+ printAutoGuide();
89
+ return;
90
+ }
91
+ switch (target.toLowerCase()) {
92
+ case 'claude':
93
+ await setupClaudeMd({ stopHook: false });
94
+ return;
95
+ case 'openclaw':
96
+ await handleOpenClawCommand('install');
97
+ return;
98
+ case 'copilot':
99
+ await handleCopilotCommand('install');
100
+ return;
101
+ case 'security':
102
+ printSecurityGuide();
103
+ return;
104
+ default:
105
+ console.error('Usage: shieldcortex quickstart [claude|openclaw|copilot|security]');
106
+ process.exit(1);
107
+ }
108
+ }
@@ -4,4 +4,3 @@
4
4
  export declare function setupHooks(options?: {
5
5
  stopHook?: boolean;
6
6
  }): void;
7
- //# sourceMappingURL=settings-hooks.d.ts.map
@@ -80,4 +80,3 @@ export function setupHooks(options) {
80
80
  console.log('Hooks: all hooks already configured in ~/.claude/settings.json');
81
81
  }
82
82
  }
83
- //# sourceMappingURL=settings-hooks.js.map
@@ -2,4 +2,3 @@
2
2
  * Status command - Display ShieldCortex database and system status
3
3
  */
4
4
  export declare function handleStatusCommand(): Promise<void>;
5
- //# sourceMappingURL=status.d.ts.map
@@ -155,4 +155,3 @@ export async function handleStatusCommand() {
155
155
  process.exit(1);
156
156
  }
157
157
  }
158
- //# sourceMappingURL=status.js.map
@@ -17,4 +17,3 @@ export declare function uninstallSetup(): Promise<void>;
17
17
  export declare function uninstallAll(options?: {
18
18
  keepLogs?: boolean;
19
19
  }): Promise<void>;
20
- //# sourceMappingURL=uninstall.d.ts.map
@@ -196,4 +196,3 @@ export async function uninstallAll(options) {
196
196
  console.log(' npx cache clean shieldcortex (npm 9+)');
197
197
  console.log(' rm -rf ~/.npm/_npx (older npm)\n');
198
198
  }
199
- //# sourceMappingURL=uninstall.js.map
@@ -150,4 +150,3 @@ export declare function executeImport(input: {
150
150
  imported?: number;
151
151
  error?: string;
152
152
  };
153
- //# sourceMappingURL=context.d.ts.map
@@ -276,4 +276,3 @@ export function executeImport(input) {
276
276
  };
277
277
  }
278
278
  }
279
- //# sourceMappingURL=context.js.map
@@ -68,4 +68,3 @@ export declare function executeForget(input: ForgetInput): Promise<{
68
68
  * Format the forget result for MCP response
69
69
  */
70
70
  export declare function formatForgetResult(result: Awaited<ReturnType<typeof executeForget>>): string;
71
- //# sourceMappingURL=forget.d.ts.map
@@ -187,4 +187,3 @@ export function formatForgetResult(result) {
187
187
  deleted,
188
188
  ].join('\n');
189
189
  }
190
- //# sourceMappingURL=forget.js.map
@@ -43,4 +43,3 @@ export declare function handleGraphExplain(args: {
43
43
  text: string;
44
44
  }[];
45
45
  };
46
- //# sourceMappingURL=graph.d.ts.map
@@ -203,4 +203,3 @@ export function handleGraphExplain(args) {
203
203
  }
204
204
  return mcpText({ paths: [{ hops }], sourceMemories });
205
205
  }
206
- //# sourceMappingURL=graph.js.map
@@ -114,4 +114,3 @@ export declare function executeGetMemory(input: {
114
114
  memory?: Memory;
115
115
  error?: string;
116
116
  };
117
- //# sourceMappingURL=recall.d.ts.map
@@ -72,6 +72,7 @@ export async function executeRecall(input) {
72
72
  limit: input.limit,
73
73
  project: projectFilter,
74
74
  threshold: 0.3,
75
+ existingResults: results,
75
76
  });
76
77
  // Merge: keep FTS results, add new embedding results
77
78
  const existingIds = new Set(memories.map(m => m.id));
@@ -186,4 +187,3 @@ export function executeGetMemory(input) {
186
187
  };
187
188
  }
188
189
  }
189
- //# sourceMappingURL=recall.js.map
@@ -80,4 +80,3 @@ export declare function executeRemember(input: RememberInput): Promise<{
80
80
  * Format the remember result for MCP response
81
81
  */
82
82
  export declare function formatRememberResult(result: Awaited<ReturnType<typeof executeRemember>>): string;
83
- //# sourceMappingURL=remember.d.ts.map
@@ -163,4 +163,3 @@ export function formatRememberResult(result) {
163
163
  }
164
164
  return lines.join('\n');
165
165
  }
166
- //# sourceMappingURL=remember.js.map
@@ -19,6 +19,7 @@ import { WorkerConfig, LightTickResult, MediumTickResult, WorkerStatus } from '.
19
19
  export declare class BrainWorker {
20
20
  private lightTimer;
21
21
  private mediumTimer;
22
+ private initialLightTickTimer;
22
23
  private isRunning;
23
24
  private config;
24
25
  private stats;
@@ -97,4 +98,3 @@ export declare function startDefaultWorker(): BrainWorker;
97
98
  * Stop the default worker
98
99
  */
99
100
  export declare function stopDefaultWorker(): void;
100
- //# sourceMappingURL=brain-worker.d.ts.map
@@ -31,6 +31,7 @@ import { isFeatureEnabled } from '../license/gate.js';
31
31
  export class BrainWorker {
32
32
  lightTimer = null;
33
33
  mediumTimer = null;
34
+ initialLightTickTimer = null;
34
35
  isRunning = false;
35
36
  config;
36
37
  // Statistics tracking
@@ -66,8 +67,10 @@ export class BrainWorker {
66
67
  console.log(`[BrainWorker] Medium tick interval: ${this.config.mediumTickIntervalMs / 1000}s`);
67
68
  // Light tick every 5 minutes (by default)
68
69
  this.lightTimer = setInterval(() => this.lightTick(), this.config.lightTickIntervalMs);
70
+ this.lightTimer.unref();
69
71
  // Medium tick every 30 minutes (by default)
70
72
  this.mediumTimer = setInterval(() => this.mediumTick(), this.config.mediumTickIntervalMs);
73
+ this.mediumTimer.unref();
71
74
  // Apply cached cloud Iron Dome patterns immediately on start (requires Pro+)
72
75
  if (isFeatureEnabled('custom_injection_patterns')) {
73
76
  try {
@@ -79,11 +82,12 @@ export class BrainWorker {
79
82
  }
80
83
  // Run initial light tick after a short delay (10 seconds)
81
84
  // This allows the server to fully initialize first
82
- setTimeout(() => {
85
+ this.initialLightTickTimer = setTimeout(() => {
83
86
  if (this.isRunning) {
84
87
  this.lightTick();
85
88
  }
86
89
  }, 10000);
90
+ this.initialLightTickTimer.unref();
87
91
  }
88
92
  /**
89
93
  * Stop the background worker
@@ -103,6 +107,10 @@ export class BrainWorker {
103
107
  clearInterval(this.mediumTimer);
104
108
  this.mediumTimer = null;
105
109
  }
110
+ if (this.initialLightTickTimer) {
111
+ clearTimeout(this.initialLightTickTimer);
112
+ this.initialLightTickTimer = null;
113
+ }
106
114
  console.log('[BrainWorker] Stopped');
107
115
  }
108
116
  /**
@@ -332,4 +340,3 @@ export function stopDefaultWorker() {
332
340
  defaultWorker.stop();
333
341
  }
334
342
  }
335
- //# sourceMappingURL=brain-worker.js.map
@@ -44,4 +44,3 @@ export declare function getLinkCoverageStats(): {
44
44
  memoriesWithoutLinks: number;
45
45
  averageLinksPerMemory: number;
46
46
  };
47
- //# sourceMappingURL=link-discovery.d.ts.map
@@ -100,4 +100,3 @@ export function getLinkCoverageStats() {
100
100
  : 0,
101
101
  };
102
102
  }
103
- //# sourceMappingURL=link-discovery.js.map
@@ -43,4 +43,3 @@ export declare function getMemoryPressure(stats: MemoryStats, config: WorkerConf
43
43
  isCritical: boolean;
44
44
  recommendation: string;
45
45
  };
46
- //# sourceMappingURL=predictive-consolidation.d.ts.map
@@ -107,4 +107,3 @@ export function getMemoryPressure(stats, config) {
107
107
  recommendation,
108
108
  };
109
109
  }
110
- //# sourceMappingURL=predictive-consolidation.js.map
@@ -88,4 +88,3 @@ export interface PredictiveDecision {
88
88
  /** Urgency level of the consolidation need */
89
89
  urgency: 'low' | 'medium' | 'high' | 'critical';
90
90
  }
91
- //# sourceMappingURL=types.d.ts.map
@@ -19,4 +19,3 @@ export const DEFAULT_WORKER_CONFIG = {
19
19
  contradictionScanLimit: 50,
20
20
  highActivityThreshold: 5,
21
21
  };
22
- //# sourceMappingURL=types.js.map
@@ -32,7 +32,8 @@ async function loadShieldConfig() {
32
32
 
33
33
  async function isOpenClawAutoMemoryEnabled() {
34
34
  const config = await loadShieldConfig();
35
- return config?.openclawAutoMemory !== false;
35
+ // Default OFF — OpenClaw has its own memory system. User must explicitly opt in.
36
+ return config?.openclawAutoMemory === true;
36
37
  }
37
38
 
38
39
  /**
@@ -79,6 +80,15 @@ async function resolveServerCmd() {
79
80
 
80
81
  // ==================== CORTEX MCP HELPER ====================
81
82
 
83
+ let _lastCallErrorType = null;
84
+
85
+ function classifyCallError(err) {
86
+ if (err.killed || err.code === "ETIMEDOUT" || err.signal === "SIGTERM") return "timeout";
87
+ if (/ENOENT|not found|command not found/i.test(err.message || "")) return "not-found";
88
+ if (/mcporter/i.test(err.message || "")) return "mcporter";
89
+ return "unknown";
90
+ }
91
+
82
92
  /**
83
93
  * Call a ShieldCortex MCP tool via mcporter
84
94
  * @param {string} tool - Tool name (e.g., "remember", "recall", "get_context")
@@ -121,8 +131,24 @@ async function callCortex(tool, args = {}, options = { retries: 1, timeout: 1500
121
131
  return;
122
132
  }
123
133
 
124
- console.error(`[cortex-memory] ${errorType} on ${tool} after ${attempts} attempt(s):`, err.message);
125
- if (err.code) console.error(`[cortex-memory] Error code: ${err.code}`);
134
+ // One-time categorised warning per error type (prevents spam)
135
+ const category = classifyCallError(err);
136
+ if (category !== _lastCallErrorType) {
137
+ _lastCallErrorType = category;
138
+ switch (category) {
139
+ case "timeout":
140
+ console.warn("[cortex-memory] ShieldCortex call timed out (15s). Memory may be under heavy load.");
141
+ break;
142
+ case "not-found":
143
+ console.warn("[cortex-memory] ShieldCortex binary not found. Run: npm install -g shieldcortex");
144
+ break;
145
+ case "mcporter":
146
+ console.warn("[cortex-memory] mcporter failed to reach ShieldCortex MCP server. Is it configured?");
147
+ break;
148
+ default:
149
+ console.warn(`[cortex-memory] ShieldCortex call failed: ${err.message}`);
150
+ }
151
+ }
126
152
  resolve(null);
127
153
  return;
128
154
  }
@@ -278,6 +304,21 @@ async function createNoveltyGate() {
278
304
  };
279
305
  }
280
306
 
307
+ // ==================== SHARED NOVELTY GATE ====================
308
+
309
+ /**
310
+ * Process-level shared novelty gate for ALL save paths (session-end, session-stop, keyword triggers).
311
+ * Avoids redundant disk round-trips and ensures cross-path deduplication.
312
+ */
313
+ let _sharedNoveltyGate = null;
314
+
315
+ async function getSharedNoveltyGate() {
316
+ if (!_sharedNoveltyGate) {
317
+ _sharedNoveltyGate = await createNoveltyGate();
318
+ }
319
+ return _sharedNoveltyGate;
320
+ }
321
+
281
322
  // ==================== HOOK SCANNER ====================
282
323
 
283
324
  /**
@@ -357,7 +398,10 @@ const PATTERNS = {
357
398
  /\b(?:TIL|today\s+I\s+learned)\b/i,
358
399
  ],
359
400
  preference: [
360
- /\b(?:always|never|prefer|don't\s+like|should\s+always)\b/i,
401
+ /\b(?:I|we|you\s+should)\s+(?:always|never)\b/i,
402
+ /\b(?:always\s+use|never\s+use|never\s+commit)\b/i,
403
+ /\bprefer(?:\s+to)?\s+\w+/i,
404
+ /\bshould\s+always\b/i,
361
405
  ],
362
406
  note: [
363
407
  /\b(?:important|remember|key\s+point|crucial|note)\s*:/i,
@@ -474,7 +518,7 @@ async function onSessionEnd(event) {
474
518
  return;
475
519
  }
476
520
 
477
- const noveltyGate = await createNoveltyGate();
521
+ const noveltyGate = await getSharedNoveltyGate();
478
522
  let saved = 0;
479
523
  let skipped = 0;
480
524
  for (const mem of memories) {
@@ -501,7 +545,7 @@ async function onSessionEnd(event) {
501
545
  await noveltyGate.flush();
502
546
 
503
547
  console.log(`[cortex-memory] Saved ${saved}/${memories.length} memories from session (${skipped} skipped as duplicates)`);
504
-
548
+
505
549
  // Provide visible feedback to user
506
550
  if (saved > 0 && event.messages) {
507
551
  event.messages.push(`🧠 ShieldCortex: Saved ${saved} memor${saved === 1 ? 'y' : 'ies'} from this session`);
@@ -542,7 +586,7 @@ async function onSessionStop(event) {
542
586
  return;
543
587
  }
544
588
 
545
- const noveltyGate = await createNoveltyGate();
589
+ const noveltyGate = await getSharedNoveltyGate();
546
590
  let saved = 0;
547
591
  let skipped = 0;
548
592
  for (const mem of memories) {
@@ -679,7 +723,7 @@ async function checkAndSaveKeywordTrigger(messageText, event) {
679
723
 
680
724
  // Extract content after the trigger phrase
681
725
  let content = messageText.slice(matchIdx + matchedTrigger.phrase.length).replace(/^[:\s]+/, "").trim();
682
-
726
+
683
727
  // If content is too short, use the whole message as context
684
728
  if (content.length < 5) {
685
729
  content = messageText;
@@ -687,6 +731,14 @@ async function checkAndSaveKeywordTrigger(messageText, event) {
687
731
 
688
732
  const title = content.slice(0, 80).replace(/["\n]/g, " ").trim();
689
733
 
734
+ // Deduplicate via shared novelty gate (same gate used by session-end/stop extraction)
735
+ const noveltyGate = await getSharedNoveltyGate();
736
+ const novelty = noveltyGate.inspect(content.slice(0, 500));
737
+ if (!novelty.allow) {
738
+ console.log(`[cortex-memory] Keyword trigger skipped (duplicate): "${title}"`);
739
+ return false;
740
+ }
741
+
690
742
  const result = await callCortex("remember", {
691
743
  title,
692
744
  content: content.slice(0, 500),
@@ -698,6 +750,8 @@ async function checkAndSaveKeywordTrigger(messageText, event) {
698
750
  });
699
751
 
700
752
  if (result) {
753
+ noveltyGate.remember({ content: content.slice(0, 500), title, category: matchedTrigger.category }, novelty);
754
+ await noveltyGate.flush();
701
755
  if (event.messages) {
702
756
  event.messages.push(`✅ Saved to Cortex memory (${matchedTrigger.category}): "${title}"`);
703
757
  }