shieldcortex 4.12.14 → 4.13.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 (386) 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/required-server-files.json +4 -4
  5. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/admin/page.js +1 -1
  6. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/admin/page.js.nft.json +1 -1
  7. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/admin/page_client-reference-manifest.js +1 -1
  8. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/cloud/page.js +1 -1
  9. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/cloud/page.js.nft.json +1 -1
  10. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/cloud/page_client-reference-manifest.js +1 -1
  11. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/capture/page.js +1 -1
  12. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/capture/page.js.nft.json +1 -1
  13. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/capture/page_client-reference-manifest.js +1 -1
  14. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/graph/page.js +1 -1
  15. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/graph/page.js.nft.json +1 -1
  16. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/graph/page_client-reference-manifest.js +1 -1
  17. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/page.js +1 -1
  18. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/page.js.nft.json +1 -1
  19. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/page_client-reference-manifest.js +1 -1
  20. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/recall/page.js +1 -1
  21. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/recall/page.js.nft.json +1 -1
  22. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/recall/page_client-reference-manifest.js +1 -1
  23. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/review/page.js +1 -1
  24. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/review/page.js.nft.json +1 -1
  25. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/review/page_client-reference-manifest.js +1 -1
  26. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/timeline/page.js +1 -1
  27. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/timeline/page.js.nft.json +1 -1
  28. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/timeline/page_client-reference-manifest.js +1 -1
  29. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/overview/page.js +1 -1
  30. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/overview/page.js.nft.json +1 -1
  31. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/overview/page_client-reference-manifest.js +1 -1
  32. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/audit/page.js +1 -1
  33. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/audit/page.js.nft.json +1 -1
  34. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/audit/page_client-reference-manifest.js +1 -1
  35. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/intercepts/page.js +1 -1
  36. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/intercepts/page.js.nft.json +1 -1
  37. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/intercepts/page_client-reference-manifest.js +1 -1
  38. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/iron-dome/page.js +1 -1
  39. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/iron-dome/page.js.nft.json +1 -1
  40. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/iron-dome/page_client-reference-manifest.js +1 -1
  41. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/page.js +1 -1
  42. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/page.js.nft.json +1 -1
  43. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/page_client-reference-manifest.js +1 -1
  44. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/policies/page.js +1 -1
  45. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/policies/page.js.nft.json +1 -1
  46. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/policies/page_client-reference-manifest.js +1 -1
  47. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/quarantine/page.js +1 -1
  48. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/quarantine/page.js.nft.json +1 -1
  49. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/quarantine/page_client-reference-manifest.js +1 -1
  50. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/settings/page.js +1 -1
  51. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/settings/page.js.nft.json +1 -1
  52. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/settings/page_client-reference-manifest.js +1 -1
  53. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/supply-chain/page.js +1 -1
  54. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/supply-chain/page.js.nft.json +1 -1
  55. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/supply-chain/page_client-reference-manifest.js +1 -1
  56. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/supply-chain/xray/page.js +1 -1
  57. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/supply-chain/xray/page.js.nft.json +1 -1
  58. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/supply-chain/xray/page_client-reference-manifest.js +1 -1
  59. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/xray/page.js +1 -1
  60. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/xray/page.js.nft.json +1 -1
  61. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/xray/page_client-reference-manifest.js +1 -1
  62. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error/page.js.nft.json +1 -1
  63. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  64. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.html +2 -2
  65. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.rsc +1 -1
  66. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  67. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  68. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  69. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  70. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  71. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found/page.js.nft.json +1 -1
  72. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  73. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.html +1 -1
  74. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.rsc +2 -2
  75. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  76. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  77. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
  78. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  79. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  80. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  81. package/dashboard/.next/standalone/dashboard/.next/server/app/admin.html +1 -1
  82. package/dashboard/.next/standalone/dashboard/.next/server/app/admin.rsc +17 -15
  83. package/dashboard/.next/standalone/dashboard/.next/server/app/admin.segments/!KGRhc2hib2FyZCk/admin/__PAGE__.segment.rsc +1 -1
  84. package/dashboard/.next/standalone/dashboard/.next/server/app/admin.segments/!KGRhc2hib2FyZCk/admin.segment.rsc +1 -1
  85. package/dashboard/.next/standalone/dashboard/.next/server/app/admin.segments/!KGRhc2hib2FyZCk.segment.rsc +9 -7
  86. package/dashboard/.next/standalone/dashboard/.next/server/app/admin.segments/_full.segment.rsc +17 -15
  87. package/dashboard/.next/standalone/dashboard/.next/server/app/admin.segments/_head.segment.rsc +1 -1
  88. package/dashboard/.next/standalone/dashboard/.next/server/app/admin.segments/_index.segment.rsc +2 -2
  89. package/dashboard/.next/standalone/dashboard/.next/server/app/admin.segments/_tree.segment.rsc +2 -2
  90. package/dashboard/.next/standalone/dashboard/.next/server/app/cloud.html +1 -1
  91. package/dashboard/.next/standalone/dashboard/.next/server/app/cloud.rsc +17 -15
  92. package/dashboard/.next/standalone/dashboard/.next/server/app/cloud.segments/!KGRhc2hib2FyZCk/cloud/__PAGE__.segment.rsc +1 -1
  93. package/dashboard/.next/standalone/dashboard/.next/server/app/cloud.segments/!KGRhc2hib2FyZCk/cloud.segment.rsc +1 -1
  94. package/dashboard/.next/standalone/dashboard/.next/server/app/cloud.segments/!KGRhc2hib2FyZCk.segment.rsc +9 -7
  95. package/dashboard/.next/standalone/dashboard/.next/server/app/cloud.segments/_full.segment.rsc +17 -15
  96. package/dashboard/.next/standalone/dashboard/.next/server/app/cloud.segments/_head.segment.rsc +1 -1
  97. package/dashboard/.next/standalone/dashboard/.next/server/app/cloud.segments/_index.segment.rsc +2 -2
  98. package/dashboard/.next/standalone/dashboard/.next/server/app/cloud.segments/_tree.segment.rsc +2 -2
  99. package/dashboard/.next/standalone/dashboard/.next/server/app/index.html +1 -1
  100. package/dashboard/.next/standalone/dashboard/.next/server/app/index.rsc +2 -2
  101. package/dashboard/.next/standalone/dashboard/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  102. package/dashboard/.next/standalone/dashboard/.next/server/app/index.segments/_full.segment.rsc +2 -2
  103. package/dashboard/.next/standalone/dashboard/.next/server/app/index.segments/_head.segment.rsc +1 -1
  104. package/dashboard/.next/standalone/dashboard/.next/server/app/index.segments/_index.segment.rsc +2 -2
  105. package/dashboard/.next/standalone/dashboard/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  106. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.html +1 -1
  107. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.rsc +17 -15
  108. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.segments/!KGRhc2hib2FyZCk/memory/capture/__PAGE__.segment.rsc +1 -1
  109. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.segments/!KGRhc2hib2FyZCk/memory/capture.segment.rsc +1 -1
  110. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.segments/!KGRhc2hib2FyZCk/memory.segment.rsc +1 -1
  111. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.segments/!KGRhc2hib2FyZCk.segment.rsc +9 -7
  112. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.segments/_full.segment.rsc +17 -15
  113. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.segments/_head.segment.rsc +1 -1
  114. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.segments/_index.segment.rsc +2 -2
  115. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.segments/_tree.segment.rsc +2 -2
  116. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.html +1 -1
  117. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.rsc +17 -15
  118. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.segments/!KGRhc2hib2FyZCk/memory/graph/__PAGE__.segment.rsc +1 -1
  119. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.segments/!KGRhc2hib2FyZCk/memory/graph.segment.rsc +1 -1
  120. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.segments/!KGRhc2hib2FyZCk/memory.segment.rsc +1 -1
  121. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.segments/!KGRhc2hib2FyZCk.segment.rsc +9 -7
  122. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.segments/_full.segment.rsc +17 -15
  123. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.segments/_head.segment.rsc +1 -1
  124. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.segments/_index.segment.rsc +2 -2
  125. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.segments/_tree.segment.rsc +2 -2
  126. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.html +1 -1
  127. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.rsc +17 -15
  128. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.segments/!KGRhc2hib2FyZCk/memory/recall/__PAGE__.segment.rsc +1 -1
  129. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.segments/!KGRhc2hib2FyZCk/memory/recall.segment.rsc +1 -1
  130. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.segments/!KGRhc2hib2FyZCk/memory.segment.rsc +1 -1
  131. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.segments/!KGRhc2hib2FyZCk.segment.rsc +9 -7
  132. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.segments/_full.segment.rsc +17 -15
  133. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.segments/_head.segment.rsc +1 -1
  134. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.segments/_index.segment.rsc +2 -2
  135. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.segments/_tree.segment.rsc +2 -2
  136. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.html +1 -1
  137. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.rsc +17 -15
  138. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/!KGRhc2hib2FyZCk/memory/review/__PAGE__.segment.rsc +1 -1
  139. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/!KGRhc2hib2FyZCk/memory/review.segment.rsc +1 -1
  140. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/!KGRhc2hib2FyZCk/memory.segment.rsc +1 -1
  141. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/!KGRhc2hib2FyZCk.segment.rsc +9 -7
  142. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/_full.segment.rsc +17 -15
  143. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/_head.segment.rsc +1 -1
  144. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/_index.segment.rsc +2 -2
  145. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/_tree.segment.rsc +2 -2
  146. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.html +1 -1
  147. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.rsc +17 -15
  148. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/!KGRhc2hib2FyZCk/memory/timeline/__PAGE__.segment.rsc +1 -1
  149. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/!KGRhc2hib2FyZCk/memory/timeline.segment.rsc +1 -1
  150. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/!KGRhc2hib2FyZCk/memory.segment.rsc +1 -1
  151. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/!KGRhc2hib2FyZCk.segment.rsc +9 -7
  152. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/_full.segment.rsc +17 -15
  153. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/_head.segment.rsc +1 -1
  154. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/_index.segment.rsc +2 -2
  155. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/_tree.segment.rsc +2 -2
  156. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.html +1 -1
  157. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.rsc +21 -18
  158. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.segments/!KGRhc2hib2FyZCk/memory/__PAGE__.segment.rsc +2 -2
  159. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.segments/!KGRhc2hib2FyZCk/memory.segment.rsc +1 -1
  160. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.segments/!KGRhc2hib2FyZCk.segment.rsc +9 -7
  161. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.segments/_full.segment.rsc +21 -18
  162. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.segments/_head.segment.rsc +1 -1
  163. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.segments/_index.segment.rsc +2 -2
  164. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.segments/_tree.segment.rsc +2 -2
  165. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.html +1 -1
  166. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.rsc +20 -18
  167. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.segments/!KGRhc2hib2FyZCk/overview/__PAGE__.segment.rsc +2 -2
  168. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.segments/!KGRhc2hib2FyZCk/overview.segment.rsc +1 -1
  169. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.segments/!KGRhc2hib2FyZCk.segment.rsc +9 -7
  170. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.segments/_full.segment.rsc +20 -18
  171. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.segments/_head.segment.rsc +1 -1
  172. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.segments/_index.segment.rsc +2 -2
  173. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.segments/_tree.segment.rsc +2 -2
  174. package/dashboard/.next/standalone/dashboard/.next/server/app/page.js.nft.json +1 -1
  175. package/dashboard/.next/standalone/dashboard/.next/server/app/page_client-reference-manifest.js +1 -1
  176. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.html +1 -1
  177. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.rsc +17 -15
  178. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/!KGRhc2hib2FyZCk/protection/audit/__PAGE__.segment.rsc +1 -1
  179. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/!KGRhc2hib2FyZCk/protection/audit.segment.rsc +1 -1
  180. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/!KGRhc2hib2FyZCk/protection.segment.rsc +1 -1
  181. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/!KGRhc2hib2FyZCk.segment.rsc +9 -7
  182. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/_full.segment.rsc +17 -15
  183. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/_head.segment.rsc +1 -1
  184. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/_index.segment.rsc +2 -2
  185. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/_tree.segment.rsc +2 -2
  186. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.html +1 -1
  187. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.rsc +17 -15
  188. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/!KGRhc2hib2FyZCk/protection/intercepts/__PAGE__.segment.rsc +1 -1
  189. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/!KGRhc2hib2FyZCk/protection/intercepts.segment.rsc +1 -1
  190. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/!KGRhc2hib2FyZCk/protection.segment.rsc +1 -1
  191. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/!KGRhc2hib2FyZCk.segment.rsc +9 -7
  192. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/_full.segment.rsc +17 -15
  193. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/_head.segment.rsc +1 -1
  194. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/_index.segment.rsc +2 -2
  195. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/_tree.segment.rsc +2 -2
  196. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.html +1 -1
  197. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.rsc +17 -15
  198. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/!KGRhc2hib2FyZCk/protection/iron-dome/__PAGE__.segment.rsc +1 -1
  199. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/!KGRhc2hib2FyZCk/protection/iron-dome.segment.rsc +1 -1
  200. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/!KGRhc2hib2FyZCk/protection.segment.rsc +1 -1
  201. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/!KGRhc2hib2FyZCk.segment.rsc +9 -7
  202. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/_full.segment.rsc +17 -15
  203. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/_head.segment.rsc +1 -1
  204. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/_index.segment.rsc +2 -2
  205. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/_tree.segment.rsc +2 -2
  206. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.html +1 -1
  207. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.rsc +17 -15
  208. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/!KGRhc2hib2FyZCk/protection/policies/__PAGE__.segment.rsc +1 -1
  209. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/!KGRhc2hib2FyZCk/protection/policies.segment.rsc +1 -1
  210. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/!KGRhc2hib2FyZCk/protection.segment.rsc +1 -1
  211. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/!KGRhc2hib2FyZCk.segment.rsc +9 -7
  212. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/_full.segment.rsc +17 -15
  213. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/_head.segment.rsc +1 -1
  214. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/_index.segment.rsc +2 -2
  215. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/_tree.segment.rsc +2 -2
  216. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.html +1 -1
  217. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.rsc +17 -15
  218. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/!KGRhc2hib2FyZCk/protection/quarantine/__PAGE__.segment.rsc +1 -1
  219. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/!KGRhc2hib2FyZCk/protection/quarantine.segment.rsc +1 -1
  220. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/!KGRhc2hib2FyZCk/protection.segment.rsc +1 -1
  221. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/!KGRhc2hib2FyZCk.segment.rsc +9 -7
  222. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/_full.segment.rsc +17 -15
  223. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/_head.segment.rsc +1 -1
  224. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/_index.segment.rsc +2 -2
  225. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/_tree.segment.rsc +2 -2
  226. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.html +1 -1
  227. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.rsc +17 -15
  228. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.segments/!KGRhc2hib2FyZCk/protection/__PAGE__.segment.rsc +2 -2
  229. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.segments/!KGRhc2hib2FyZCk/protection.segment.rsc +1 -1
  230. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.segments/!KGRhc2hib2FyZCk.segment.rsc +9 -7
  231. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.segments/_full.segment.rsc +17 -15
  232. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.segments/_head.segment.rsc +1 -1
  233. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.segments/_index.segment.rsc +2 -2
  234. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.segments/_tree.segment.rsc +2 -2
  235. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.html +1 -1
  236. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.rsc +17 -15
  237. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.segments/!KGRhc2hib2FyZCk/settings/__PAGE__.segment.rsc +2 -2
  238. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.segments/!KGRhc2hib2FyZCk/settings.segment.rsc +1 -1
  239. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.segments/!KGRhc2hib2FyZCk.segment.rsc +9 -7
  240. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.segments/_full.segment.rsc +17 -15
  241. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.segments/_head.segment.rsc +1 -1
  242. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.segments/_index.segment.rsc +2 -2
  243. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
  244. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.html +1 -1
  245. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.rsc +17 -15
  246. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/!KGRhc2hib2FyZCk/supply-chain/xray/__PAGE__.segment.rsc +1 -1
  247. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/!KGRhc2hib2FyZCk/supply-chain/xray.segment.rsc +1 -1
  248. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/!KGRhc2hib2FyZCk/supply-chain.segment.rsc +1 -1
  249. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/!KGRhc2hib2FyZCk.segment.rsc +9 -7
  250. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/_full.segment.rsc +17 -15
  251. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/_head.segment.rsc +1 -1
  252. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/_index.segment.rsc +2 -2
  253. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/_tree.segment.rsc +2 -2
  254. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.html +1 -1
  255. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.rsc +17 -15
  256. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.segments/!KGRhc2hib2FyZCk/supply-chain/__PAGE__.segment.rsc +1 -1
  257. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.segments/!KGRhc2hib2FyZCk/supply-chain.segment.rsc +1 -1
  258. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.segments/!KGRhc2hib2FyZCk.segment.rsc +9 -7
  259. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.segments/_full.segment.rsc +17 -15
  260. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.segments/_head.segment.rsc +1 -1
  261. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.segments/_index.segment.rsc +2 -2
  262. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.segments/_tree.segment.rsc +2 -2
  263. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.html +1 -1
  264. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.rsc +17 -15
  265. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.segments/!KGRhc2hib2FyZCk/xray/__PAGE__.segment.rsc +2 -2
  266. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.segments/!KGRhc2hib2FyZCk/xray.segment.rsc +1 -1
  267. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.segments/!KGRhc2hib2FyZCk.segment.rsc +9 -7
  268. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.segments/_full.segment.rsc +17 -15
  269. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.segments/_head.segment.rsc +1 -1
  270. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.segments/_index.segment.rsc +2 -2
  271. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.segments/_tree.segment.rsc +2 -2
  272. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/9f1d4_@tanstack_68dcbde9._.js +3 -0
  273. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/{[root-of-the-server]__fb5796ae._.js → [root-of-the-server]__2de25d56._.js} +2 -2
  274. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/[root-of-the-server]__52bd7a9f._.js +3 -0
  275. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/{[root-of-the-server]__b789489c._.js → [root-of-the-server]__6f881a23._.js} +2 -2
  276. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_01f6ceb0._.js +1 -1
  277. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_20c6acea._.js +3 -0
  278. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/{9f1d4_next_c9fe89e1._.js → dashboard_25b568c3._.js} +2 -2
  279. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_2a8eef6b._.js +3 -0
  280. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_35a9932a._.js +1 -1
  281. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_37f17371._.js +1 -1
  282. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_77cb2b63._.js +3 -0
  283. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_91003e6d._.js +3 -0
  284. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_9b8695d8._.js +3 -0
  285. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_a16ef10a._.js +3 -0
  286. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_c219bf07._.js +4 -4
  287. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_f9cd1dc2._.js +3 -0
  288. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_fefd3b85._.js +1 -1
  289. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_src_44a9f72c._.js +3 -0
  290. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_src_components_de7ac4f9._.js +3 -0
  291. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_src_components_protection_ProtectionOverview_tsx_54554a97._.js +3 -3
  292. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_src_components_settings_SettingsView_tsx_16dc83a7._.js +1 -1
  293. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_src_components_xray_XRayOverview_tsx_ceba698e._.js +1 -1
  294. package/dashboard/.next/standalone/dashboard/.next/server/pages/404.html +1 -1
  295. package/dashboard/.next/standalone/dashboard/.next/server/pages/500.html +2 -2
  296. package/dashboard/.next/standalone/dashboard/.next/server/server-reference-manifest.js +1 -1
  297. package/dashboard/.next/standalone/dashboard/.next/server/server-reference-manifest.json +1 -1
  298. package/dashboard/.next/standalone/dashboard/.next/static/chunks/015dc64369f26b7d.css +3 -0
  299. package/dashboard/.next/standalone/dashboard/.next/static/chunks/2fe84829530e61a3.js +1 -0
  300. package/dashboard/.next/standalone/dashboard/.next/static/chunks/34d0309a4e34b084.js +1 -0
  301. package/dashboard/.next/standalone/dashboard/.next/static/chunks/3729c748a4361c1f.js +1 -0
  302. package/dashboard/.next/standalone/dashboard/.next/static/chunks/3b7fdf1ee828254c.js +1 -0
  303. package/dashboard/.next/standalone/dashboard/.next/static/chunks/{3d53807a9a943ce7.js → 4c90ebd2c08cd656.js} +4 -4
  304. package/dashboard/.next/standalone/dashboard/.next/static/chunks/4d4af0cecaef56f2.js +1 -0
  305. package/dashboard/.next/standalone/dashboard/.next/static/chunks/4eb86dc2f379d3ca.js +1 -0
  306. package/dashboard/.next/standalone/dashboard/.next/static/chunks/6aba18b7aac42ccd.js +1 -0
  307. package/dashboard/.next/standalone/dashboard/.next/static/chunks/{b4b3fb5729bead7e.js → 6ea97c8dc9e30ea5.js} +1 -1
  308. package/dashboard/.next/standalone/dashboard/.next/static/chunks/74ea1a87751e93a3.js +1 -0
  309. package/dashboard/.next/standalone/dashboard/.next/static/chunks/910628c23329a773.js +1 -0
  310. package/dashboard/.next/standalone/dashboard/.next/static/chunks/{c288964c4c00982a.js → b308a787e8cbc2a9.js} +3 -3
  311. package/dashboard/.next/standalone/dashboard/.next/static/chunks/bdb50889a1c1ab37.js +1 -0
  312. package/dashboard/.next/standalone/dashboard/.next/static/chunks/d0bf5ccba09917dd.js +1 -0
  313. package/dashboard/.next/standalone/dashboard/.next/static/chunks/e804a1fda2839550.js +1 -0
  314. package/dashboard/.next/standalone/dashboard/server.js +1 -1
  315. package/dist/api/routes/digest.d.ts +59 -0
  316. package/dist/api/routes/digest.js +305 -0
  317. package/dist/api/routes/memories.js +84 -15
  318. package/dist/api/routes/system.js +10 -2
  319. package/dist/api/visualization-server.js +2 -0
  320. package/dist/cli/doctor.d.ts +27 -0
  321. package/dist/cli/doctor.js +88 -0
  322. package/dist/cli/migrate-legacy.d.ts +28 -0
  323. package/dist/cli/migrate-legacy.js +291 -0
  324. package/dist/cloud/cli.js +2 -2
  325. package/dist/database/init.js +26 -1
  326. package/dist/index.js +8 -1
  327. package/dist/memory/backup.d.ts +19 -0
  328. package/dist/memory/backup.js +47 -0
  329. package/dist/memory/dedupe-runner.d.ts +33 -0
  330. package/dist/memory/dedupe-runner.js +103 -0
  331. package/dist/memory/fts.d.ts +26 -0
  332. package/dist/memory/fts.js +59 -0
  333. package/dist/memory/lifecycle.d.ts +83 -0
  334. package/dist/memory/lifecycle.js +274 -0
  335. package/dist/memory/links.d.ts +63 -0
  336. package/dist/memory/links.js +232 -0
  337. package/dist/memory/prune.d.ts +34 -0
  338. package/dist/memory/prune.js +76 -0
  339. package/dist/memory/search-recall.d.ts +48 -0
  340. package/dist/memory/search-recall.js +367 -0
  341. package/dist/memory/store.d.ts +6 -121
  342. package/dist/memory/store.js +45 -854
  343. package/dist/setup/claude-md.d.ts +1 -0
  344. package/dist/setup/deep-clean.d.ts +33 -0
  345. package/dist/setup/deep-clean.js +26 -0
  346. package/dist/setup/doctor.js +7 -2
  347. package/dist/setup/settings-hooks.d.ts +1 -0
  348. package/dist/setup/settings-hooks.js +30 -5
  349. package/dist/setup/status.js +39 -0
  350. package/hooks/openclaw/cortex-memory/runtime.mjs +18 -4
  351. package/package.json +1 -1
  352. package/plugins/openclaw/dist/index.js +12 -6
  353. package/plugins/openclaw/dist/openclaw.plugin.json +1 -1
  354. package/scripts/lib/auto-memory-config.mjs +45 -0
  355. package/scripts/lib/telemetry.mjs +58 -0
  356. package/scripts/lib/transcript-reader.mjs +123 -0
  357. package/scripts/postinstall.mjs +47 -1
  358. package/scripts/pre-compact-hook.mjs +76 -124
  359. package/scripts/session-end-hook.mjs +102 -97
  360. package/scripts/stop-hook.mjs +346 -116
  361. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/9f1d4_@tanstack_785e068c._.js +0 -3
  362. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/[root-of-the-server]__c2b92077._.js +0 -3
  363. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_11878109._.js +0 -3
  364. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_35c9f22e._.js +0 -3
  365. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_836b4a04._.js +0 -3
  366. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_9770c429._.js +0 -3
  367. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_9dd626ed._.js +0 -3
  368. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_e94d2da2._.js +0 -3
  369. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_src_564ea5ae._.js +0 -3
  370. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_src_lib_3f1490a1._.js +0 -3
  371. package/dashboard/.next/standalone/dashboard/.next/static/chunks/079a5be036130e37.js +0 -1
  372. package/dashboard/.next/standalone/dashboard/.next/static/chunks/1770a8ce7abb2437.js +0 -1
  373. package/dashboard/.next/standalone/dashboard/.next/static/chunks/1a074f8ddc7cd385.js +0 -1
  374. package/dashboard/.next/standalone/dashboard/.next/static/chunks/24da99d1341bd573.css +0 -3
  375. package/dashboard/.next/standalone/dashboard/.next/static/chunks/2aa8afb655c1c2e5.js +0 -1
  376. package/dashboard/.next/standalone/dashboard/.next/static/chunks/302ad459a0e5c4ba.js +0 -1
  377. package/dashboard/.next/standalone/dashboard/.next/static/chunks/385ec610bad1acc5.js +0 -1
  378. package/dashboard/.next/standalone/dashboard/.next/static/chunks/4f57582c2d186438.js +0 -1
  379. package/dashboard/.next/standalone/dashboard/.next/static/chunks/52843253e4b833a5.js +0 -1
  380. package/dashboard/.next/standalone/dashboard/.next/static/chunks/7fca141efba9d353.js +0 -1
  381. package/dashboard/.next/standalone/dashboard/.next/static/chunks/8593e1796c9d043d.js +0 -1
  382. package/dashboard/.next/standalone/dashboard/.next/static/chunks/cbc2e6ffcad6e91c.js +0 -1
  383. package/dashboard/.next/standalone/dashboard/.next/static/chunks/fced7dd3c9874ed1.js +0 -1
  384. /package/dashboard/.next/standalone/dashboard/.next/static/{P2sW3M-qHaW9VS9YwCEg3 → kiA_iEHG_1wWOEYFsD0Tj}/_buildManifest.js +0 -0
  385. /package/dashboard/.next/standalone/dashboard/.next/static/{P2sW3M-qHaW9VS9YwCEg3 → kiA_iEHG_1wWOEYFsD0Tj}/_clientMiddlewareManifest.json +0 -0
  386. /package/dashboard/.next/standalone/dashboard/.next/static/{P2sW3M-qHaW9VS9YwCEg3 → kiA_iEHG_1wWOEYFsD0Tj}/_ssgManifest.js +0 -0
@@ -12,11 +12,14 @@
12
12
  */
13
13
 
14
14
  import Database from 'better-sqlite3';
15
- import { existsSync, mkdirSync, readFileSync, readdirSync, statSync } from 'fs';
15
+ import { existsSync, mkdirSync, readdirSync, statSync } from 'fs';
16
16
  import { join } from 'path';
17
17
  import { homedir } from 'os';
18
18
  import { encodeClaudeProjectDir } from './lib/claude-project-dir.mjs';
19
19
  import { saveAutoExtractedMemory } from './lib/save-memory.mjs';
20
+ import { readTranscriptText } from './lib/transcript-reader.mjs';
21
+ import { getAutoMemoryConfig } from './lib/auto-memory-config.mjs';
22
+ import { recordHookInvocation } from './lib/telemetry.mjs';
20
23
 
21
24
  // Database paths (with legacy fallback)
22
25
  const NEW_DB_DIR = join(homedir(), '.shieldcortex');
@@ -507,15 +510,24 @@ process.stdin.on('readable', () => {
507
510
  });
508
511
 
509
512
  process.stdin.on('end', () => {
513
+ const startedAt = Date.now();
514
+ let db = null;
515
+ let autoExtractedCount = 0;
516
+ let bytesRead = 0;
517
+ let exitCode = 0;
518
+ let notes = null;
510
519
  try {
511
520
  const hookData = JSON.parse(input || '{}');
512
521
 
513
522
  const trigger = hookData.trigger || 'unknown';
514
523
  const project = extractProjectFromPath(hookData.cwd);
524
+ const autoMemConfig = getAutoMemoryConfig();
515
525
 
516
526
  // Extract conversation text from hook data
517
527
  // Claude Code passes conversation in various formats
518
- const conversationText = extractConversationText(hookData);
528
+ const conversationOut = extractConversationText(hookData, autoMemConfig);
529
+ const conversationText = conversationOut.text;
530
+ bytesRead = conversationOut.bytesRead;
519
531
 
520
532
  // Ensure database directory exists
521
533
  if (!existsSync(DB_DIR)) {
@@ -526,12 +538,13 @@ process.stdin.on('end', () => {
526
538
  if (!existsSync(DB_PATH)) {
527
539
  console.error('[pre-compact] Memory database not found, skipping auto-extraction');
528
540
  outputReminder(0, BASE_THRESHOLD);
541
+ notes = 'no-database';
529
542
  process.exit(0);
530
543
  }
531
544
 
532
545
  // Connect to database with timeout to handle concurrent access
533
546
  // timeout: 5000ms prevents hook from hanging if DB is locked
534
- const db = new Database(DB_PATH, { timeout: 5000 });
547
+ db = new Database(DB_PATH, { timeout: 5000 });
535
548
 
536
549
  // Get current memory stats for dynamic threshold calculation
537
550
  const stats = getMemoryStats(db);
@@ -542,8 +555,6 @@ process.stdin.on('end', () => {
542
555
  console.error(`[auto-extract] Memory status: ${totalMemories}/${maxMemories} (${(totalMemories/maxMemories*100).toFixed(0)}% full)`);
543
556
  console.error(`[auto-extract] Dynamic threshold: ${dynamicThreshold.toFixed(2)}`);
544
557
 
545
- let autoExtractedCount = 0;
546
-
547
558
  // Only attempt extraction if we have conversation content
548
559
  if (conversationText && conversationText.length > 100) {
549
560
  // Extract memorable segments
@@ -561,142 +572,79 @@ process.stdin.on('end', () => {
561
572
  console.error(`[auto-extract] Failed to save "${memory.title}": ${err.message}`);
562
573
  }
563
574
  }
575
+ } else {
576
+ notes = 'no-content';
564
577
  }
565
578
 
566
579
  console.error(`[shieldcortex] Pre-compact complete: ${autoExtractedCount} memories auto-extracted`);
567
580
 
568
581
  outputReminder(autoExtractedCount, dynamicThreshold);
569
-
570
- db.close();
571
- process.exit(0);
572
582
  } catch (error) {
573
583
  console.error(`[pre-compact] Error: ${error.message}`);
584
+ notes = `error: ${error.message}`;
585
+ exitCode = 0; // Don't block compaction on errors
574
586
  outputReminder(0, BASE_THRESHOLD);
575
- process.exit(0); // Don't block compaction on errors
587
+ } finally {
588
+ if (db) {
589
+ recordHookInvocation(db, {
590
+ hookName: 'pre-compact',
591
+ exitCode,
592
+ durationMs: Date.now() - startedAt,
593
+ memoriesExtracted: autoExtractedCount,
594
+ transcriptBytes: bytesRead,
595
+ notes,
596
+ });
597
+ try { db.close(); } catch { /* ignore */ }
598
+ }
599
+ process.exit(exitCode);
576
600
  }
577
601
  });
578
602
 
579
603
  /**
580
- * Read conversation text from the current session's JSONL file.
581
- * Claude Code stores sessions in ~/.claude/projects/<project-slug>/<session-id>.jsonl
604
+ * Resolve the most-recently-modified JSONL transcript for the given cwd
605
+ * (Claude Code stores sessions under ~/.claude/projects/<encoded-cwd>/).
582
606
  */
583
- function readSessionConversation(cwd) {
584
- if (!cwd) return '';
585
-
607
+ function findLatestTranscriptForCwd(cwd) {
608
+ if (!cwd) return null;
609
+ const projectDir = join(homedir(), '.claude', 'projects', encodeClaudeProjectDir(cwd));
610
+ if (!existsSync(projectDir)) return null;
611
+ let files;
586
612
  try {
587
- const projectDir = join(homedir(), '.claude', 'projects', encodeClaudeProjectDir(cwd));
588
-
589
- if (!existsSync(projectDir)) {
590
- console.error(`[auto-extract] Session dir not found: ${projectDir}`);
591
- return '';
592
- }
593
-
594
- // Find the most recently modified .jsonl file (= current session)
595
- const files = readdirSync(projectDir)
596
- .filter(f => f.endsWith('.jsonl'))
597
- .map(f => ({ name: f, mtime: statSync(join(projectDir, f)).mtimeMs }))
613
+ files = readdirSync(projectDir)
614
+ .filter((f) => f.endsWith('.jsonl'))
615
+ .map((f) => ({ name: f, mtime: statSync(join(projectDir, f)).mtimeMs }))
598
616
  .sort((a, b) => b.mtime - a.mtime);
599
-
600
- if (files.length === 0) {
601
- console.error('[auto-extract] No session JSONL files found');
602
- return '';
603
- }
604
-
605
- const sessionFile = join(projectDir, files[0].name);
606
- const content = readFileSync(sessionFile, 'utf-8');
607
- const lines = content.trim().split('\n');
608
-
609
- // Read last 50 lines to get recent conversation
610
- const recentLines = lines.slice(-50);
611
- const messages = [];
612
-
613
- for (const line of recentLines) {
614
- try {
615
- const entry = JSON.parse(line);
616
- // Claude Code JSONL: entry.type is "user"|"assistant", entry.message has API content
617
- const role = entry.type || entry.message?.role;
618
- const content = entry.message?.content;
619
- if ((role === 'user' || role === 'assistant') && content) {
620
- const text = Array.isArray(content)
621
- ? content.filter(c => c.type === 'text').map(c => c.text).join('\n')
622
- : content;
623
- if (text && !text.startsWith('/')) {
624
- messages.push(text);
625
- }
626
- }
627
- } catch {
628
- // Skip invalid lines
629
- }
630
- }
631
-
632
- const result = messages.join('\n\n');
633
- console.error(`[auto-extract] Read ${messages.length} messages from session JSONL (${result.length} chars)`);
634
- return result;
635
- } catch (err) {
636
- console.error(`[auto-extract] Failed to read session: ${err.message}`);
637
- return '';
617
+ } catch {
618
+ return null;
638
619
  }
620
+ if (files.length === 0) return null;
621
+ return join(projectDir, files[0].name);
639
622
  }
640
623
 
641
624
  /**
642
- * Read conversation text from a specific transcript JSONL path.
643
- * Used when Claude Code provides transcript_path in hook data.
625
+ * Extract conversation text from hook data, with three fallbacks:
626
+ * 1. transcript_path supplied by Claude Code
627
+ * 2. inline payload fields (conversation, messages, etc.)
628
+ * 3. auto-detect latest JSONL under ~/.claude/projects/<encoded cwd>/
629
+ *
630
+ * Delegates JSONL parsing to scripts/lib/transcript-reader.mjs so the
631
+ * byte-cap and slash-command rules are shared with session-end-hook.
644
632
  */
645
- function readTranscriptFromPath(transcriptPath) {
646
- if (!transcriptPath) return '';
647
-
648
- const resolvedPath = transcriptPath.replace(/^~/, homedir());
649
- if (!existsSync(resolvedPath)) {
650
- console.error(`[auto-extract] Transcript not found: ${resolvedPath}`);
651
- return '';
652
- }
653
-
654
- try {
655
- const content = readFileSync(resolvedPath, 'utf-8');
656
- const lines = content.trim().split('\n');
657
- const recentLines = lines.slice(-50);
658
- const messages = [];
659
-
660
- for (const line of recentLines) {
661
- try {
662
- const entry = JSON.parse(line);
663
- const role = entry.type || entry.message?.role;
664
- const msgContent = entry.message?.content;
665
- if ((role === 'user' || role === 'assistant') && msgContent) {
666
- const text = Array.isArray(msgContent)
667
- ? msgContent.filter(c => c.type === 'text').map(c => c.text).join('\n')
668
- : msgContent;
669
- if (text && !text.startsWith('/')) {
670
- messages.push(text);
671
- }
672
- }
673
- } catch {
674
- // Skip invalid lines
675
- }
676
- }
633
+ function extractConversationText(hookData, autoMemConfig) {
634
+ const readerOpts = {
635
+ maxBytes: autoMemConfig.maxTranscriptBytes,
636
+ maxLines: autoMemConfig.maxTranscriptLines,
637
+ keepSlashCommandProse: autoMemConfig.keepSlashCommandProse,
638
+ };
677
639
 
678
- const result = messages.join('\n\n');
679
- console.error(`[auto-extract] Read ${messages.length} messages from transcript (${result.length} chars)`);
680
- return result;
681
- } catch (err) {
682
- console.error(`[auto-extract] Failed to read transcript: ${err.message}`);
683
- return '';
684
- }
685
- }
686
-
687
- /**
688
- * Extract conversation text from hook data, falling back to session JSONL
689
- */
690
- function extractConversationText(hookData) {
691
- // Primary: use transcript_path provided by Claude Code
692
640
  if (hookData.transcript_path) {
693
- const transcript = readTranscriptFromPath(hookData.transcript_path);
694
- if (transcript && transcript.length > 0) {
695
- return transcript;
641
+ const out = readTranscriptText(hookData.transcript_path, readerOpts);
642
+ if (out.text) {
643
+ console.error(`[auto-extract] Read ${out.messageCount} messages from transcript_path (${out.text.length} chars, ${out.bytesRead} bytes scanned)`);
644
+ return { text: out.text, bytesRead: out.bytesRead };
696
645
  }
697
646
  }
698
647
 
699
- // Secondary: try other possible locations for conversation content
700
648
  const sources = [
701
649
  hookData.conversation,
702
650
  hookData.messages,
@@ -705,25 +653,29 @@ function extractConversationText(hookData) {
705
653
  hookData.context,
706
654
  hookData.text,
707
655
  ];
708
-
709
656
  for (const source of sources) {
710
- if (typeof source === 'string' && source.length > 0) {
711
- return source;
712
- }
657
+ if (typeof source === 'string' && source.length > 0) return { text: source, bytesRead: 0 };
713
658
  if (Array.isArray(source)) {
714
- return source
715
- .map(msg => {
659
+ const text = source
660
+ .map((msg) => {
716
661
  if (typeof msg === 'string') return msg;
717
662
  if (msg.content) return msg.content;
718
663
  if (msg.text) return msg.text;
719
664
  return '';
720
665
  })
721
666
  .join('\n');
667
+ return { text, bytesRead: 0 };
722
668
  }
723
669
  }
724
670
 
725
- // Fallback: auto-detect session JSONL from cwd
726
- return readSessionConversation(hookData.cwd);
671
+ const latest = findLatestTranscriptForCwd(hookData.cwd);
672
+ if (!latest) {
673
+ console.error('[auto-extract] No transcript located for cwd');
674
+ return { text: '', bytesRead: 0 };
675
+ }
676
+ const out = readTranscriptText(latest, readerOpts);
677
+ console.error(`[auto-extract] Read ${out.messageCount} messages from session JSONL (${out.text.length} chars, ${out.bytesRead} bytes scanned)`);
678
+ return { text: out.text, bytesRead: out.bytesRead };
727
679
  }
728
680
 
729
681
  /**
@@ -22,10 +22,13 @@
22
22
  */
23
23
 
24
24
  import Database from 'better-sqlite3';
25
- import { existsSync, mkdirSync, readFileSync } from 'fs';
25
+ import { existsSync, mkdirSync } from 'fs';
26
26
  import { join } from 'path';
27
27
  import { homedir } from 'os';
28
28
  import { saveAutoExtractedMemory } from './lib/save-memory.mjs';
29
+ import { readTranscriptText } from './lib/transcript-reader.mjs';
30
+ import { getAutoMemoryConfig } from './lib/auto-memory-config.mjs';
31
+ import { recordHookInvocation } from './lib/telemetry.mjs';
29
32
 
30
33
  // Database paths (with legacy fallback)
31
34
  const NEW_DB_DIR = join(homedir(), '.shieldcortex');
@@ -405,57 +408,6 @@ function saveMemory(db, memory, project) {
405
408
  saveAutoExtractedMemory(db, memory, project);
406
409
  }
407
410
 
408
- // ==================== TRANSCRIPT READING ====================
409
-
410
- /**
411
- * Read conversation text from the session transcript JSONL file.
412
- */
413
- function readTranscript(transcriptPath) {
414
- if (!transcriptPath) return '';
415
-
416
- // Expand ~ to homedir
417
- const resolvedPath = transcriptPath.replace(/^~/, homedir());
418
-
419
- if (!existsSync(resolvedPath)) {
420
- console.error(`[session-end] Transcript not found: ${resolvedPath}`);
421
- return '';
422
- }
423
-
424
- try {
425
- const content = readFileSync(resolvedPath, 'utf-8');
426
- const lines = content.trim().split('\n');
427
-
428
- // Read last 50 lines to get recent conversation
429
- const recentLines = lines.slice(-50);
430
- const messages = [];
431
-
432
- for (const line of recentLines) {
433
- try {
434
- const entry = JSON.parse(line);
435
- const role = entry.type || entry.message?.role;
436
- const msgContent = entry.message?.content;
437
- if ((role === 'user' || role === 'assistant') && msgContent) {
438
- const text = Array.isArray(msgContent)
439
- ? msgContent.filter(c => c.type === 'text').map(c => c.text).join('\n')
440
- : msgContent;
441
- if (text && !text.startsWith('/')) {
442
- messages.push(text);
443
- }
444
- }
445
- } catch {
446
- // Skip invalid lines
447
- }
448
- }
449
-
450
- const result = messages.join('\n\n');
451
- console.error(`[session-end] Read ${messages.length} messages from transcript (${result.length} chars)`);
452
- return result;
453
- } catch (err) {
454
- console.error(`[session-end] Failed to read transcript: ${err.message}`);
455
- return '';
456
- }
457
- }
458
-
459
411
  // ==================== MAIN HOOK LOGIC ====================
460
412
 
461
413
  let input = '';
@@ -468,69 +420,122 @@ process.stdin.on('readable', () => {
468
420
  }
469
421
  });
470
422
 
423
+ function looksLikeOpenClawContext() {
424
+ // OpenClaw spawns Claude Code agents as subprocesses. When SessionEnd fires
425
+ // inside that subprocess, the OpenClaw runtime has often already torn down
426
+ // shared state (lock files, IPC channels) — extracting from there has caused
427
+ // fatal failures historically (settings-hooks.ts:23-25). Detect via env.
428
+ if (process.env.OPENCLAW_AGENT_ID) return true;
429
+ if (process.env.OPENCLAW_SESSION_ID) return true;
430
+ if (process.env.OPENCLAW_PARENT_PID) return true;
431
+ if (typeof process.env.OPENCLAW === 'string' && process.env.OPENCLAW.length > 0) return true;
432
+ return false;
433
+ }
434
+
471
435
  process.stdin.on('end', () => {
436
+ const startedAt = Date.now();
437
+ let db = null;
438
+ let autoExtractedCount = 0;
439
+ let bytesRead = 0;
440
+ let notes = null;
472
441
  try {
473
442
  const hookData = JSON.parse(input || '{}');
474
443
 
475
444
  const reason = hookData.reason || 'unknown';
476
445
  const project = extractProjectFromPath(hookData.cwd);
446
+ const autoMemConfig = getAutoMemoryConfig();
477
447
 
478
- // Skip extraction on /clear session is being intentionally wiped
479
- if (reason === 'clear') {
480
- console.error('[session-end] Session cleared, skipping extraction');
448
+ // Config gate: opt-in (default off). Preserves the historical default
449
+ // that protected OpenClaw users. We exit before touching the DB so a
450
+ // disabled hook never opens better-sqlite3 telemetry stays silent too.
451
+ if (!autoMemConfig.enableSessionEnd) {
452
+ console.error('[session-end] Disabled by config (autoMemory.enableSessionEnd=false)');
481
453
  process.exit(0);
482
454
  }
483
455
 
484
- // Read conversation from transcript_path (provided by Claude Code)
485
- const conversationText = readTranscript(hookData.transcript_path);
486
-
487
- if (!conversationText || conversationText.length < 100) {
488
- console.error('[session-end] Not enough conversation content to extract from');
456
+ // OpenClaw subprocess guard (extra defence on top of the config gate).
457
+ if (looksLikeOpenClawContext()) {
458
+ console.error('[session-end] OpenClaw context detected, skipping extraction');
489
459
  process.exit(0);
490
460
  }
491
461
 
492
- // Ensure database directory exists
493
- if (!existsSync(DB_DIR)) {
494
- mkdirSync(DB_DIR, { recursive: true });
495
- }
462
+ // Skip extraction on /clear — session is being intentionally wiped
463
+ if (reason === 'clear') {
464
+ console.error('[session-end] Session cleared, skipping extraction');
465
+ notes = 'reason=clear';
466
+ // fall through to telemetry record so 'fired but skipped' is visible
467
+ } else {
468
+ // Read conversation from transcript_path (provided by Claude Code)
469
+ const transcriptOut = readTranscriptText(hookData.transcript_path, {
470
+ maxBytes: autoMemConfig.maxTranscriptBytes,
471
+ maxLines: autoMemConfig.maxTranscriptLines,
472
+ keepSlashCommandProse: autoMemConfig.keepSlashCommandProse,
473
+ });
474
+ const conversationText = transcriptOut.text;
475
+ bytesRead = transcriptOut.bytesRead;
476
+ if (transcriptOut.messageCount > 0) {
477
+ console.error(`[session-end] Read ${transcriptOut.messageCount} messages from transcript (${conversationText.length} chars, ${bytesRead} bytes scanned)`);
478
+ }
496
479
 
497
- if (!existsSync(DB_PATH)) {
498
- console.error('[session-end] Memory database not found, skipping extraction');
499
- process.exit(0);
500
- }
480
+ if (conversationText && conversationText.length >= 100) {
481
+ // Ensure database directory exists
482
+ if (!existsSync(DB_DIR)) {
483
+ mkdirSync(DB_DIR, { recursive: true });
484
+ }
501
485
 
502
- const db = new Database(DB_PATH, { timeout: 5000 });
503
-
504
- const stats = getMemoryStats(db);
505
- const totalMemories = stats.shortTerm + stats.longTerm;
506
- const maxMemories = MAX_SHORT_TERM_MEMORIES + MAX_LONG_TERM_MEMORIES;
507
- const dynamicThreshold = getDynamicThreshold(totalMemories, maxMemories);
508
-
509
- console.error(`[session-end] Memory status: ${totalMemories}/${maxMemories} (${(totalMemories/maxMemories*100).toFixed(0)}% full)`);
510
- console.error(`[session-end] Reason: ${reason}, Dynamic threshold: ${dynamicThreshold.toFixed(2)}`);
511
-
512
- // Extract memorable segments
513
- const segments = extractMemorableSegments(conversationText);
514
- const processedSegments = processSegments(segments, dynamicThreshold);
515
-
516
- let autoExtractedCount = 0;
517
- for (const memory of processedSegments) {
518
- try {
519
- saveMemory(db, memory, project);
520
- autoExtractedCount++;
521
- const boostInfo = memory.frequencyBoost > 0 ? ` +${memory.frequencyBoost.toFixed(2)} boost` : '';
522
- console.error(`[session-end] Saved: ${memory.title} (salience: ${memory.salience.toFixed(2)}${boostInfo}, category: ${memory.category})`);
523
- } catch (err) {
524
- console.error(`[session-end] Failed to save "${memory.title}": ${err.message}`);
525
- }
526
- }
486
+ if (!existsSync(DB_PATH)) {
487
+ console.error('[session-end] Memory database not found, skipping extraction');
488
+ notes = 'no-database';
489
+ process.exit(0);
490
+ }
527
491
 
528
- console.error(`[session-end] Complete: ${autoExtractedCount} memories auto-extracted on session ${reason}`);
492
+ db = new Database(DB_PATH, { timeout: 5000 });
529
493
 
530
- db.close();
531
- process.exit(0);
494
+ const stats = getMemoryStats(db);
495
+ const totalMemories = stats.shortTerm + stats.longTerm;
496
+ const maxMemories = MAX_SHORT_TERM_MEMORIES + MAX_LONG_TERM_MEMORIES;
497
+ const dynamicThreshold = getDynamicThreshold(totalMemories, maxMemories);
498
+
499
+ console.error(`[session-end] Memory status: ${totalMemories}/${maxMemories} (${(totalMemories/maxMemories*100).toFixed(0)}% full)`);
500
+ console.error(`[session-end] Reason: ${reason}, Dynamic threshold: ${dynamicThreshold.toFixed(2)}`);
501
+
502
+ // Extract memorable segments
503
+ const segments = extractMemorableSegments(conversationText);
504
+ const processedSegments = processSegments(segments, dynamicThreshold);
505
+
506
+ for (const memory of processedSegments) {
507
+ try {
508
+ saveMemory(db, memory, project);
509
+ autoExtractedCount++;
510
+ const boostInfo = memory.frequencyBoost > 0 ? ` +${memory.frequencyBoost.toFixed(2)} boost` : '';
511
+ console.error(`[session-end] Saved: ${memory.title} (salience: ${memory.salience.toFixed(2)}${boostInfo}, category: ${memory.category})`);
512
+ } catch (err) {
513
+ console.error(`[session-end] Failed to save "${memory.title}": ${err.message}`);
514
+ }
515
+ }
516
+
517
+ console.error(`[session-end] Complete: ${autoExtractedCount} memories auto-extracted on session ${reason}`);
518
+ } else {
519
+ console.error('[session-end] Not enough conversation content to extract from');
520
+ notes = 'no-content';
521
+ }
522
+ }
532
523
  } catch (error) {
533
524
  console.error(`[session-end] Error: ${error.message}`);
534
- process.exit(0); // Don't block session exit on errors
525
+ notes = `error: ${error.message}`;
526
+ // Don't block session exit on errors
527
+ } finally {
528
+ if (db) {
529
+ recordHookInvocation(db, {
530
+ hookName: 'session-end',
531
+ exitCode: 0,
532
+ durationMs: Date.now() - startedAt,
533
+ memoriesExtracted: autoExtractedCount,
534
+ transcriptBytes: bytesRead,
535
+ notes,
536
+ });
537
+ try { db.close(); } catch { /* ignore */ }
538
+ }
539
+ process.exit(0);
535
540
  }
536
541
  });