agent-nuvira 2.7.3 → 3.0.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 (366) hide show
  1. package/dist/agents/agents/writer-tool-calling.d.ts +14 -0
  2. package/dist/agents/agents/writer-tool-calling.d.ts.map +1 -1
  3. package/dist/agents/agents/writer-tool-calling.js +20 -0
  4. package/dist/agents/agents/writer-tool-calling.js.map +1 -1
  5. package/dist/agents/agents/writer.d.ts.map +1 -1
  6. package/dist/agents/agents/writer.js +15 -4
  7. package/dist/agents/agents/writer.js.map +1 -1
  8. package/dist/agents/edit-module.d.ts +7 -0
  9. package/dist/agents/edit-module.d.ts.map +1 -1
  10. package/dist/agents/edit-module.js +21 -6
  11. package/dist/agents/edit-module.js.map +1 -1
  12. package/dist/agents/orchestrator.d.ts +40 -0
  13. package/dist/agents/orchestrator.d.ts.map +1 -1
  14. package/dist/agents/orchestrator.js +116 -27
  15. package/dist/agents/orchestrator.js.map +1 -1
  16. package/dist/agents/tool-calling-agent.d.ts +19 -0
  17. package/dist/agents/tool-calling-agent.d.ts.map +1 -1
  18. package/dist/agents/tool-calling-agent.js +42 -2
  19. package/dist/agents/tool-calling-agent.js.map +1 -1
  20. package/dist/cli/chat.d.ts +55 -1
  21. package/dist/cli/chat.d.ts.map +1 -1
  22. package/dist/cli/chat.js +239 -63
  23. package/dist/cli/chat.js.map +1 -1
  24. package/dist/cli/cli-program.d.ts +6 -0
  25. package/dist/cli/cli-program.d.ts.map +1 -0
  26. package/dist/cli/cli-program.js +222 -0
  27. package/dist/cli/cli-program.js.map +1 -0
  28. package/dist/cli/edit.d.ts.map +1 -1
  29. package/dist/cli/edit.js +18 -3
  30. package/dist/cli/edit.js.map +1 -1
  31. package/dist/cli/execute.d.ts.map +1 -1
  32. package/dist/cli/execute.js +29 -5
  33. package/dist/cli/execute.js.map +1 -1
  34. package/dist/cli/failover-runner.d.ts +13 -0
  35. package/dist/cli/failover-runner.d.ts.map +1 -1
  36. package/dist/cli/failover-runner.js +11 -0
  37. package/dist/cli/failover-runner.js.map +1 -1
  38. package/dist/cli/gateway.d.ts +16 -0
  39. package/dist/cli/gateway.d.ts.map +1 -1
  40. package/dist/cli/gateway.js +108 -2
  41. package/dist/cli/gateway.js.map +1 -1
  42. package/dist/cli/loop-executor.d.ts.map +1 -1
  43. package/dist/cli/loop-executor.js +245 -12
  44. package/dist/cli/loop-executor.js.map +1 -1
  45. package/dist/cli/plan.d.ts.map +1 -1
  46. package/dist/cli/plan.js +20 -6
  47. package/dist/cli/plan.js.map +1 -1
  48. package/dist/cli/process-control.d.ts +10 -0
  49. package/dist/cli/process-control.d.ts.map +1 -1
  50. package/dist/cli/process-control.js +73 -7
  51. package/dist/cli/process-control.js.map +1 -1
  52. package/dist/cli/router.d.ts +16 -5
  53. package/dist/cli/router.d.ts.map +1 -1
  54. package/dist/cli/router.js +31 -206
  55. package/dist/cli/router.js.map +1 -1
  56. package/dist/config/paths.d.ts +23 -0
  57. package/dist/config/paths.d.ts.map +1 -1
  58. package/dist/config/paths.js +30 -0
  59. package/dist/config/paths.js.map +1 -1
  60. package/dist/config/provider-env.d.ts +37 -0
  61. package/dist/config/provider-env.d.ts.map +1 -0
  62. package/dist/config/provider-env.js +86 -0
  63. package/dist/config/provider-env.js.map +1 -0
  64. package/dist/context/history.d.ts.map +1 -1
  65. package/dist/context/history.js +24 -8
  66. package/dist/context/history.js.map +1 -1
  67. package/dist/context/session-recall.d.ts +30 -0
  68. package/dist/context/session-recall.d.ts.map +1 -1
  69. package/dist/context/session-recall.js +61 -0
  70. package/dist/context/session-recall.js.map +1 -1
  71. package/dist/file.js +0 -1
  72. package/dist/file.js.map +1 -1
  73. package/dist/gateway/adapters.d.ts +10 -0
  74. package/dist/gateway/adapters.d.ts.map +1 -1
  75. package/dist/gateway/adapters.js +4 -1
  76. package/dist/gateway/adapters.js.map +1 -1
  77. package/dist/gateway/dedup.d.ts +105 -0
  78. package/dist/gateway/dedup.d.ts.map +1 -0
  79. package/dist/gateway/dedup.js +160 -0
  80. package/dist/gateway/dedup.js.map +1 -0
  81. package/dist/gateway/heartbeat.d.ts +99 -0
  82. package/dist/gateway/heartbeat.d.ts.map +1 -0
  83. package/dist/gateway/heartbeat.js +122 -0
  84. package/dist/gateway/heartbeat.js.map +1 -0
  85. package/dist/gateway/inbox.d.ts +14 -1
  86. package/dist/gateway/inbox.d.ts.map +1 -1
  87. package/dist/gateway/inbox.js.map +1 -1
  88. package/dist/gateway/platform-config.d.ts +5 -0
  89. package/dist/gateway/platform-config.d.ts.map +1 -1
  90. package/dist/gateway/platform-config.js +8 -13
  91. package/dist/gateway/platform-config.js.map +1 -1
  92. package/dist/gateway/registry.d.ts +47 -0
  93. package/dist/gateway/registry.d.ts.map +1 -1
  94. package/dist/gateway/registry.js +227 -21
  95. package/dist/gateway/registry.js.map +1 -1
  96. package/dist/gateway/whatsapp/baileys-bridge.d.ts +11 -1
  97. package/dist/gateway/whatsapp/baileys-bridge.d.ts.map +1 -1
  98. package/dist/gateway/whatsapp/baileys-bridge.js +64 -1
  99. package/dist/gateway/whatsapp/baileys-bridge.js.map +1 -1
  100. package/dist/gateway/whatsapp/bridge.d.ts +4 -2
  101. package/dist/gateway/whatsapp/bridge.d.ts.map +1 -1
  102. package/dist/gateway/whatsapp/bridge.js.map +1 -1
  103. package/dist/index.js +1 -1
  104. package/dist/index.js.map +1 -1
  105. package/dist/inference/factory.d.ts +16 -0
  106. package/dist/inference/factory.d.ts.map +1 -1
  107. package/dist/inference/factory.js +42 -0
  108. package/dist/inference/factory.js.map +1 -1
  109. package/dist/inference/gemini-adapter.d.ts.map +1 -1
  110. package/dist/inference/gemini-adapter.js +3 -0
  111. package/dist/inference/gemini-adapter.js.map +1 -1
  112. package/dist/inference/interface.d.ts +12 -0
  113. package/dist/inference/interface.d.ts.map +1 -1
  114. package/dist/inference/local-adapter.d.ts +2 -0
  115. package/dist/inference/local-adapter.d.ts.map +1 -1
  116. package/dist/inference/local-adapter.js +36 -5
  117. package/dist/inference/local-adapter.js.map +1 -1
  118. package/dist/inference/native-tools.d.ts +8 -0
  119. package/dist/inference/native-tools.d.ts.map +1 -1
  120. package/dist/inference/native-tools.js +14 -3
  121. package/dist/inference/native-tools.js.map +1 -1
  122. package/dist/inference/tool-call-utils.d.ts +66 -7
  123. package/dist/inference/tool-call-utils.d.ts.map +1 -1
  124. package/dist/inference/tool-call-utils.js +134 -13
  125. package/dist/inference/tool-call-utils.js.map +1 -1
  126. package/dist/learning/auto-router.d.ts.map +1 -1
  127. package/dist/learning/auto-router.js +90 -5
  128. package/dist/learning/auto-router.js.map +1 -1
  129. package/dist/learning/context-budget.d.ts +133 -0
  130. package/dist/learning/context-budget.d.ts.map +1 -0
  131. package/dist/learning/context-budget.js +196 -0
  132. package/dist/learning/context-budget.js.map +1 -0
  133. package/dist/learning/cost-tracker.d.ts.map +1 -1
  134. package/dist/learning/cost-tracker.js +20 -8
  135. package/dist/learning/cost-tracker.js.map +1 -1
  136. package/dist/learning/eval-framework.d.ts.map +1 -1
  137. package/dist/learning/eval-framework.js +6 -2
  138. package/dist/learning/eval-framework.js.map +1 -1
  139. package/dist/learning/failure-bookkeeping.d.ts +19 -0
  140. package/dist/learning/failure-bookkeeping.d.ts.map +1 -1
  141. package/dist/learning/failure-bookkeeping.js +67 -2
  142. package/dist/learning/failure-bookkeeping.js.map +1 -1
  143. package/dist/learning/feedback.d.ts.map +1 -1
  144. package/dist/learning/feedback.js +19 -8
  145. package/dist/learning/feedback.js.map +1 -1
  146. package/dist/learning/model-harness.d.ts +76 -0
  147. package/dist/learning/model-harness.d.ts.map +1 -0
  148. package/dist/learning/model-harness.js +119 -0
  149. package/dist/learning/model-harness.js.map +1 -0
  150. package/dist/learning/model-selection.d.ts +15 -0
  151. package/dist/learning/model-selection.d.ts.map +1 -1
  152. package/dist/learning/model-selection.js +27 -1
  153. package/dist/learning/model-selection.js.map +1 -1
  154. package/dist/learning/provider-fallback.d.ts +12 -0
  155. package/dist/learning/provider-fallback.d.ts.map +1 -1
  156. package/dist/learning/provider-fallback.js +74 -0
  157. package/dist/learning/provider-fallback.js.map +1 -1
  158. package/dist/learning/provider-revival.d.ts +106 -0
  159. package/dist/learning/provider-revival.d.ts.map +1 -0
  160. package/dist/learning/provider-revival.js +154 -0
  161. package/dist/learning/provider-revival.js.map +1 -0
  162. package/dist/learning/resilient-call.d.ts.map +1 -1
  163. package/dist/learning/resilient-call.js +48 -3
  164. package/dist/learning/resilient-call.js.map +1 -1
  165. package/dist/nlu/conversation-gate.d.ts +37 -0
  166. package/dist/nlu/conversation-gate.d.ts.map +1 -1
  167. package/dist/nlu/conversation-gate.js +49 -0
  168. package/dist/nlu/conversation-gate.js.map +1 -1
  169. package/dist/nlu/schema.d.ts +2 -2
  170. package/dist/observability/dag-bridge.d.ts +69 -0
  171. package/dist/observability/dag-bridge.d.ts.map +1 -0
  172. package/dist/observability/dag-bridge.js +56 -0
  173. package/dist/observability/dag-bridge.js.map +1 -0
  174. package/dist/observability/event-bus.d.ts +5 -10
  175. package/dist/observability/event-bus.d.ts.map +1 -1
  176. package/dist/observability/event-bus.js +10 -42
  177. package/dist/observability/event-bus.js.map +1 -1
  178. package/dist/skills/execution-audit.d.ts.map +1 -1
  179. package/dist/skills/execution-audit.js +17 -5
  180. package/dist/skills/execution-audit.js.map +1 -1
  181. package/dist/skills/sandbox-executor.d.ts +12 -1
  182. package/dist/skills/sandbox-executor.d.ts.map +1 -1
  183. package/dist/skills/sandbox-executor.js +28 -6
  184. package/dist/skills/sandbox-executor.js.map +1 -1
  185. package/dist/skills/secret-capture.d.ts +45 -1
  186. package/dist/skills/secret-capture.d.ts.map +1 -1
  187. package/dist/skills/secret-capture.js +82 -19
  188. package/dist/skills/secret-capture.js.map +1 -1
  189. package/dist/skills/skill-env-inventory.d.ts +79 -0
  190. package/dist/skills/skill-env-inventory.d.ts.map +1 -0
  191. package/dist/skills/skill-env-inventory.js +167 -0
  192. package/dist/skills/skill-env-inventory.js.map +1 -0
  193. package/dist/skills/skill-executor.d.ts +2 -0
  194. package/dist/skills/skill-executor.d.ts.map +1 -1
  195. package/dist/skills/skill-executor.js +19 -24
  196. package/dist/skills/skill-executor.js.map +1 -1
  197. package/dist/tools/ask-user.d.ts +14 -1
  198. package/dist/tools/ask-user.d.ts.map +1 -1
  199. package/dist/tools/ask-user.js +25 -1
  200. package/dist/tools/ask-user.js.map +1 -1
  201. package/dist/tools/followup-utils.d.ts +64 -0
  202. package/dist/tools/followup-utils.d.ts.map +1 -0
  203. package/dist/tools/followup-utils.js +158 -0
  204. package/dist/tools/followup-utils.js.map +1 -0
  205. package/dist/tools/memory-tools.d.ts +35 -0
  206. package/dist/tools/memory-tools.d.ts.map +1 -1
  207. package/dist/tools/memory-tools.js +76 -0
  208. package/dist/tools/memory-tools.js.map +1 -1
  209. package/dist/tools/pipeline-tool.d.ts.map +1 -1
  210. package/dist/tools/pipeline-tool.js +8 -3
  211. package/dist/tools/pipeline-tool.js.map +1 -1
  212. package/dist/tools/registry.d.ts +25 -12
  213. package/dist/tools/registry.d.ts.map +1 -1
  214. package/dist/tools/registry.js +31 -6
  215. package/dist/tools/registry.js.map +1 -1
  216. package/dist/tools/skill-tool.d.ts.map +1 -1
  217. package/dist/tools/skill-tool.js +52 -5
  218. package/dist/tools/skill-tool.js.map +1 -1
  219. package/dist/tools/tool-loop.d.ts +63 -1
  220. package/dist/tools/tool-loop.d.ts.map +1 -1
  221. package/dist/tools/tool-loop.js +305 -66
  222. package/dist/tools/tool-loop.js.map +1 -1
  223. package/dist/tools/toolsets.d.ts +19 -3
  224. package/dist/tools/toolsets.d.ts.map +1 -1
  225. package/dist/tools/toolsets.js +21 -5
  226. package/dist/tools/toolsets.js.map +1 -1
  227. package/dist/utils/env.d.ts.map +1 -1
  228. package/dist/utils/env.js +9 -13
  229. package/dist/utils/env.js.map +1 -1
  230. package/dist/web-dashboard/chat-console.d.ts +13 -1
  231. package/dist/web-dashboard/chat-console.d.ts.map +1 -1
  232. package/dist/web-dashboard/chat-console.js +16 -2
  233. package/dist/web-dashboard/chat-console.js.map +1 -1
  234. package/dist/web-dashboard/hub-data.d.ts +2 -0
  235. package/dist/web-dashboard/hub-data.d.ts.map +1 -1
  236. package/dist/web-dashboard/hub-data.js +4 -0
  237. package/dist/web-dashboard/hub-data.js.map +1 -1
  238. package/dist/web-dashboard/server.d.ts +6 -0
  239. package/dist/web-dashboard/server.d.ts.map +1 -1
  240. package/dist/web-dashboard/server.js +192 -3
  241. package/dist/web-dashboard/server.js.map +1 -1
  242. package/dist/web-dashboard/src/types.d.ts +31 -1
  243. package/dist/web-dashboard/src/types.d.ts.map +1 -1
  244. package/package.json +11 -1
  245. package/src/web-dashboard/public/assets/index-56yPnN_m.js +207 -0
  246. package/src/web-dashboard/public/assets/index-56yPnN_m.js.map +1 -0
  247. package/src/web-dashboard/public/assets/{index-C507EUWf.css → index-Cyd6tIew.css} +1 -1
  248. package/src/web-dashboard/public/index.html +2 -2
  249. package/dist/example.d.ts +0 -1
  250. package/dist/example.d.ts.map +0 -1
  251. package/dist/example.js +0 -3
  252. package/dist/example.js.map +0 -1
  253. package/dist/fresh.d.ts +0 -2
  254. package/dist/fresh.d.ts.map +0 -1
  255. package/dist/fresh.js +0 -2
  256. package/dist/fresh.js.map +0 -1
  257. package/dist/mcp/mcp-dashboard-oauth.d.ts +0 -94
  258. package/dist/mcp/mcp-dashboard-oauth.d.ts.map +0 -1
  259. package/dist/mcp/mcp-dashboard-oauth.js +0 -140
  260. package/dist/mcp/mcp-dashboard-oauth.js.map +0 -1
  261. package/dist/memory/background-sync.d.ts +0 -107
  262. package/dist/memory/background-sync.d.ts.map +0 -1
  263. package/dist/memory/background-sync.js +0 -242
  264. package/dist/memory/background-sync.js.map +0 -1
  265. package/dist/memory/cross-session.d.ts +0 -68
  266. package/dist/memory/cross-session.d.ts.map +0 -1
  267. package/dist/memory/cross-session.js +0 -153
  268. package/dist/memory/cross-session.js.map +0 -1
  269. package/dist/memory/drift-detector.d.ts +0 -76
  270. package/dist/memory/drift-detector.d.ts.map +0 -1
  271. package/dist/memory/drift-detector.js +0 -216
  272. package/dist/memory/drift-detector.js.map +0 -1
  273. package/dist/memory/enhanced-manager.d.ts +0 -105
  274. package/dist/memory/enhanced-manager.d.ts.map +0 -1
  275. package/dist/memory/enhanced-manager.js +0 -280
  276. package/dist/memory/enhanced-manager.js.map +0 -1
  277. package/dist/memory/session-extraction.d.ts +0 -93
  278. package/dist/memory/session-extraction.d.ts.map +0 -1
  279. package/dist/memory/session-extraction.js +0 -290
  280. package/dist/memory/session-extraction.js.map +0 -1
  281. package/dist/memory/sqlite-store.d.ts +0 -208
  282. package/dist/memory/sqlite-store.d.ts.map +0 -1
  283. package/dist/memory/sqlite-store.js +0 -556
  284. package/dist/memory/sqlite-store.js.map +0 -1
  285. package/dist/skills/daytona-executor.d.ts +0 -78
  286. package/dist/skills/daytona-executor.d.ts.map +0 -1
  287. package/dist/skills/daytona-executor.js +0 -256
  288. package/dist/skills/daytona-executor.js.map +0 -1
  289. package/dist/skills/modal-executor.d.ts +0 -81
  290. package/dist/skills/modal-executor.d.ts.map +0 -1
  291. package/dist/skills/modal-executor.js +0 -285
  292. package/dist/skills/modal-executor.js.map +0 -1
  293. package/dist/sync/inventory.d.ts +0 -1
  294. package/dist/sync/inventory.d.ts.map +0 -1
  295. package/dist/sync/inventory.js +0 -3
  296. package/dist/sync/inventory.js.map +0 -1
  297. package/dist/sync/validate.d.ts +0 -1
  298. package/dist/sync/validate.d.ts.map +0 -1
  299. package/dist/sync/validate.js +0 -3
  300. package/dist/sync/validate.js.map +0 -1
  301. package/dist/test.d.ts +0 -2
  302. package/dist/test.d.ts.map +0 -1
  303. package/dist/test.js +0 -3
  304. package/dist/test.js.map +0 -1
  305. package/dist/tools/browser-tool.d.ts +0 -206
  306. package/dist/tools/browser-tool.d.ts.map +0 -1
  307. package/dist/tools/browser-tool.js +0 -726
  308. package/dist/tools/browser-tool.js.map +0 -1
  309. package/dist/tools/delegate-tool.d.ts +0 -109
  310. package/dist/tools/delegate-tool.d.ts.map +0 -1
  311. package/dist/tools/delegate-tool.js +0 -185
  312. package/dist/tools/delegate-tool.js.map +0 -1
  313. package/dist/tools/delegation-state.d.ts +0 -87
  314. package/dist/tools/delegation-state.d.ts.map +0 -1
  315. package/dist/tools/delegation-state.js +0 -278
  316. package/dist/tools/delegation-state.js.map +0 -1
  317. package/dist/tools/desktop-ui.d.ts +0 -148
  318. package/dist/tools/desktop-ui.d.ts.map +0 -1
  319. package/dist/tools/desktop-ui.js +0 -486
  320. package/dist/tools/desktop-ui.js.map +0 -1
  321. package/dist/tools/image-video-tool.d.ts +0 -88
  322. package/dist/tools/image-video-tool.d.ts.map +0 -1
  323. package/dist/tools/image-video-tool.js +0 -276
  324. package/dist/tools/image-video-tool.js.map +0 -1
  325. package/dist/tools/kanban-cron-tools.d.ts +0 -92
  326. package/dist/tools/kanban-cron-tools.d.ts.map +0 -1
  327. package/dist/tools/kanban-cron-tools.js +0 -197
  328. package/dist/tools/kanban-cron-tools.js.map +0 -1
  329. package/dist/tools/messaging-tool.d.ts +0 -127
  330. package/dist/tools/messaging-tool.d.ts.map +0 -1
  331. package/dist/tools/messaging-tool.js +0 -314
  332. package/dist/tools/messaging-tool.js.map +0 -1
  333. package/dist/tools/modality/generic-caller.d.ts +0 -43
  334. package/dist/tools/modality/generic-caller.d.ts.map +0 -1
  335. package/dist/tools/modality/generic-caller.js +0 -254
  336. package/dist/tools/modality/generic-caller.js.map +0 -1
  337. package/dist/tools/modality/modality-catalog.d.ts +0 -134
  338. package/dist/tools/modality/modality-catalog.d.ts.map +0 -1
  339. package/dist/tools/modality/modality-catalog.js +0 -445
  340. package/dist/tools/modality/modality-catalog.js.map +0 -1
  341. package/dist/tools/modality/tool-router.d.ts +0 -81
  342. package/dist/tools/modality/tool-router.d.ts.map +0 -1
  343. package/dist/tools/modality/tool-router.js +0 -84
  344. package/dist/tools/modality/tool-router.js.map +0 -1
  345. package/dist/tools/security-tools.d.ts +0 -107
  346. package/dist/tools/security-tools.d.ts.map +0 -1
  347. package/dist/tools/security-tools.js +0 -264
  348. package/dist/tools/security-tools.js.map +0 -1
  349. package/dist/tools/ssh-tool.d.ts +0 -130
  350. package/dist/tools/ssh-tool.d.ts.map +0 -1
  351. package/dist/tools/ssh-tool.js +0 -328
  352. package/dist/tools/ssh-tool.js.map +0 -1
  353. package/dist/tools/tts-tool.d.ts +0 -91
  354. package/dist/tools/tts-tool.d.ts.map +0 -1
  355. package/dist/tools/tts-tool.js +0 -406
  356. package/dist/tools/tts-tool.js.map +0 -1
  357. package/dist/utils/shell-detection.d.ts +0 -124
  358. package/dist/utils/shell-detection.d.ts.map +0 -1
  359. package/dist/utils/shell-detection.js +0 -305
  360. package/dist/utils/shell-detection.js.map +0 -1
  361. package/dist/utils/windows-paths.d.ts +0 -185
  362. package/dist/utils/windows-paths.d.ts.map +0 -1
  363. package/dist/utils/windows-paths.js +0 -472
  364. package/dist/utils/windows-paths.js.map +0 -1
  365. package/src/web-dashboard/public/assets/index-C4frng1Q.js +0 -207
  366. package/src/web-dashboard/public/assets/index-C4frng1Q.js.map +0 -1
@@ -1,153 +0,0 @@
1
- /**
2
- * CrossSessionPersistence — Maintain memory across sessions.
3
- *
4
- * Loads and saves memory context at session boundaries to enable
5
- * continuous learning across multiple sessions.
6
- *
7
- * Features:
8
- * - Session context loading at start
9
- * - Session context saving at end
10
- * - Session history tracking
11
- * - Automatic cleanup of old sessions
12
- */
13
- import { getSQLiteStore } from './sqlite-store.js';
14
- import { logger } from '../utils/logger.js';
15
- // ─── Cross-Session Persistence ──────────────────────────────────────────────
16
- export class CrossSessionPersistence {
17
- store;
18
- currentSessionId = null;
19
- constructor(store) {
20
- this.store = store || getSQLiteStore();
21
- }
22
- /**
23
- * Load session context at session start.
24
- */
25
- async loadSessionContext(sessionId) {
26
- this.currentSessionId = sessionId;
27
- // Load recent memories
28
- const memories = this.store.listMemories(undefined, 100);
29
- // Load recent trajectories
30
- const trajectories = this.store.getRecentTrajectories(50);
31
- // Load top patterns
32
- const patterns = this.store.getTopPatterns(20);
33
- // Load recent lessons
34
- const lessons = [
35
- ...this.store.getLessonsBySeverity('critical', 10),
36
- ...this.store.getLessonsBySeverity('high', 10),
37
- ];
38
- return {
39
- sessionId,
40
- memories,
41
- trajectories,
42
- patterns,
43
- lessons,
44
- startedAt: Date.now(),
45
- };
46
- }
47
- /**
48
- * Save session context at session end.
49
- */
50
- async saveSessionContext(context) {
51
- // Context is already persisted via individual operations
52
- // This method just logs and updates metadata
53
- logger.debug(`Session ${context.sessionId} saved: ${context.memories.length} memories, ${context.trajectories.length} trajectories`);
54
- }
55
- /**
56
- * Get session history.
57
- */
58
- getSessionHistory(limit = 20) {
59
- // Get from trajectories
60
- const trajectories = this.store.getRecentTrajectories(1000);
61
- // Group by session
62
- const sessions = new Map();
63
- for (const t of trajectories) {
64
- if (!sessions.has(t.session_id)) {
65
- sessions.set(t.session_id, {
66
- sessionId: t.session_id,
67
- startedAt: t.created_at,
68
- memoryCount: 0,
69
- trajectoryCount: 0,
70
- });
71
- }
72
- const session = sessions.get(t.session_id);
73
- session.trajectoryCount++;
74
- session.endedAt = t.created_at;
75
- }
76
- return Array.from(sessions.values())
77
- .sort((a, b) => b.startedAt - a.startedAt)
78
- .slice(0, limit);
79
- }
80
- /**
81
- * Get context for a specific session.
82
- */
83
- async getSessionContext(sessionId) {
84
- // Load memories created in this session
85
- const memories = this.store.listMemories(undefined, 1000)
86
- .filter((m) => m.session_id === sessionId);
87
- // Load trajectories for this session
88
- const trajectories = this.store.getRecentTrajectories(1000)
89
- .filter((t) => t.session_id === sessionId);
90
- if (memories.length === 0 && trajectories.length === 0) {
91
- return null;
92
- }
93
- return {
94
- sessionId,
95
- memories,
96
- trajectories,
97
- patterns: [],
98
- lessons: [],
99
- startedAt: trajectories[0]?.created_at || Date.now(),
100
- endedAt: trajectories[trajectories.length - 1]?.created_at,
101
- };
102
- }
103
- /**
104
- * Get memory context for prompt injection.
105
- */
106
- async getMemoryContext(query) {
107
- // Search for relevant memories
108
- const memories = this.store.searchMemories(query, 20);
109
- const facts = memories
110
- .filter((m) => m.type === 'fact' || m.type === 'observation')
111
- .map((m) => m.content)
112
- .join('\n');
113
- // Get relevant patterns
114
- const patterns = this.store.getTopPatterns(10)
115
- .map((p) => p.pattern)
116
- .join('\n');
117
- // Get relevant lessons
118
- const lessons = [
119
- ...this.store.getLessonsBySeverity('critical', 5),
120
- ...this.store.getLessonsBySeverity('high', 5),
121
- ].map((l) => l.lesson)
122
- .join('\n');
123
- // Get similar trajectories
124
- const trajectories = this.store.getRecentTrajectories(10)
125
- .map((t) => `User: ${t.user_text.slice(0, 100)}\nAssistant: ${t.assistant_text.slice(0, 100)}`)
126
- .join('\n');
127
- return {
128
- facts,
129
- patterns,
130
- lessons,
131
- trajectories,
132
- };
133
- }
134
- /**
135
- * Cleanup old sessions.
136
- */
137
- cleanupOldSessions(maxAgeDays = 30) {
138
- // This is a placeholder - in production, implement proper cleanup
139
- logger.debug(`CrossSessionPersistence: Cleanup not implemented yet`);
140
- return 0;
141
- }
142
- }
143
- // ─── Singleton ──────────────────────────────────────────────────────────────
144
- let _instance = null;
145
- export function getCrossSessionPersistence() {
146
- if (!_instance)
147
- _instance = new CrossSessionPersistence();
148
- return _instance;
149
- }
150
- export function resetCrossSessionPersistence() {
151
- _instance = null;
152
- }
153
- //# sourceMappingURL=cross-session.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cross-session.js","sourceRoot":"","sources":["../../src/memory/cross-session.ts"],"names":[],"mappings":"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"}
@@ -1,76 +0,0 @@
1
- /**
2
- * DriftDetector — Detect external modifications to memory files.
3
- *
4
- * Prevents data corruption by detecting when memory files have been
5
- * modified outside of the memory tools (e.g., by patch tool, shell append,
6
- * manual edit, or concurrent session).
7
- *
8
- * Features:
9
- * - Checksum-based drift detection
10
- * - Snapshot backup before writes
11
- * - Automatic rollback on drift
12
- * - Audit logging
13
- */
14
- interface FileSnapshot {
15
- path: string;
16
- checksum: string;
17
- content: string;
18
- timestamp: number;
19
- }
20
- interface DriftEvent {
21
- path: string;
22
- expectedChecksum: string;
23
- actualChecksum: string;
24
- timestamp: number;
25
- action: 'detected' | 'rolled_back' | 'merged';
26
- }
27
- export declare class DriftDetector {
28
- private snapshots;
29
- private driftLog;
30
- private memoryDir;
31
- constructor(memoryDir?: string);
32
- /**
33
- * Record a snapshot of a file before writing.
34
- */
35
- snapshot(filePath: string): FileSnapshot | null;
36
- /**
37
- * Check for drift before writing.
38
- */
39
- checkDrift(filePath: string): {
40
- hasDrift: boolean;
41
- currentChecksum: string;
42
- expectedChecksum: string;
43
- currentContent?: string;
44
- };
45
- /**
46
- * Create a backup before writing.
47
- */
48
- backup(filePath: string): string | null;
49
- /**
50
- * Restore from backup.
51
- */
52
- restore(backupPath: string): boolean;
53
- /**
54
- * Merge external changes with our changes.
55
- */
56
- merge(filePath: string, ourContent: string, theirContent: string): string;
57
- /**
58
- * Compute checksum for content.
59
- */
60
- private computeChecksum;
61
- /**
62
- * Get drift log.
63
- */
64
- getDriftLog(limit?: number): DriftEvent[];
65
- /**
66
- * Get snapshot for a file.
67
- */
68
- getSnapshot(filePath: string): FileSnapshot | null;
69
- /**
70
- * Clear old snapshots.
71
- */
72
- clearOldSnapshots(maxAgeMs?: number): number;
73
- }
74
- export declare function getDriftDetector(): DriftDetector;
75
- export {};
76
- //# sourceMappingURL=drift-detector.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"drift-detector.d.ts","sourceRoot":"","sources":["../../src/memory/drift-detector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAQH,UAAU,YAAY;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,UAAU;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,UAAU,GAAG,aAAa,GAAG,QAAQ,CAAC;CAC/C;AAID,qBAAa,aAAa;IACxB,OAAO,CAAC,SAAS,CAAmC;IACpD,OAAO,CAAC,QAAQ,CAAoB;IACpC,OAAO,CAAC,SAAS,CAAS;gBAEd,SAAS,CAAC,EAAE,MAAM;IAI9B;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI;IAuB/C;;OAEG;IACH,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG;QAC5B,QAAQ,EAAE,OAAO,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;QACxB,gBAAgB,EAAE,MAAM,CAAC;QACzB,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB;IAoDD;;OAEG;IACH,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAcvC;;OAEG;IACH,OAAO,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IA0BpC;;OAEG;IACH,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM;IAuCzE;;OAEG;IACH,OAAO,CAAC,eAAe;IAIvB;;OAEG;IACH,WAAW,CAAC,KAAK,SAAK,GAAG,UAAU,EAAE;IAIrC;;OAEG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI;IAIlD;;OAEG;IACH,iBAAiB,CAAC,QAAQ,SAAW,GAAG,MAAM;CAa/C;AAMD,wBAAgB,gBAAgB,IAAI,aAAa,CAGhD"}
@@ -1,216 +0,0 @@
1
- /**
2
- * DriftDetector — Detect external modifications to memory files.
3
- *
4
- * Prevents data corruption by detecting when memory files have been
5
- * modified outside of the memory tools (e.g., by patch tool, shell append,
6
- * manual edit, or concurrent session).
7
- *
8
- * Features:
9
- * - Checksum-based drift detection
10
- * - Snapshot backup before writes
11
- * - Automatic rollback on drift
12
- * - Audit logging
13
- */
14
- import * as fs from 'fs';
15
- import * as path from 'path';
16
- import * as crypto from 'crypto';
17
- // ─── Drift Detector ─────────────────────────────────────────────────────────
18
- export class DriftDetector {
19
- snapshots = new Map();
20
- driftLog = [];
21
- memoryDir;
22
- constructor(memoryDir) {
23
- this.memoryDir = memoryDir || path.join(process.env.HOME || '~', '.nuvira', 'memory');
24
- }
25
- /**
26
- * Record a snapshot of a file before writing.
27
- */
28
- snapshot(filePath) {
29
- try {
30
- if (!fs.existsSync(filePath)) {
31
- return null;
32
- }
33
- const content = fs.readFileSync(filePath, 'utf-8');
34
- const checksum = this.computeChecksum(content);
35
- const snapshot = {
36
- path: filePath,
37
- checksum,
38
- content,
39
- timestamp: Date.now(),
40
- };
41
- this.snapshots.set(filePath, snapshot);
42
- return snapshot;
43
- }
44
- catch {
45
- return null;
46
- }
47
- }
48
- /**
49
- * Check for drift before writing.
50
- */
51
- checkDrift(filePath) {
52
- const snapshot = this.snapshots.get(filePath);
53
- if (!snapshot) {
54
- // No snapshot, can't detect drift
55
- return {
56
- hasDrift: false,
57
- currentChecksum: '',
58
- expectedChecksum: '',
59
- };
60
- }
61
- try {
62
- if (!fs.existsSync(filePath)) {
63
- // File was deleted
64
- return {
65
- hasDrift: true,
66
- currentChecksum: '',
67
- expectedChecksum: snapshot.checksum,
68
- };
69
- }
70
- const currentContent = fs.readFileSync(filePath, 'utf-8');
71
- const currentChecksum = this.computeChecksum(currentContent);
72
- const hasDrift = currentChecksum !== snapshot.checksum;
73
- if (hasDrift) {
74
- this.driftLog.push({
75
- path: filePath,
76
- expectedChecksum: snapshot.checksum,
77
- actualChecksum: currentChecksum,
78
- timestamp: Date.now(),
79
- action: 'detected',
80
- });
81
- }
82
- return {
83
- hasDrift,
84
- currentChecksum,
85
- expectedChecksum: snapshot.checksum,
86
- currentContent,
87
- };
88
- }
89
- catch {
90
- return {
91
- hasDrift: false,
92
- currentChecksum: '',
93
- expectedChecksum: snapshot.checksum,
94
- };
95
- }
96
- }
97
- /**
98
- * Create a backup before writing.
99
- */
100
- backup(filePath) {
101
- try {
102
- if (!fs.existsSync(filePath)) {
103
- return null;
104
- }
105
- const backupPath = `${filePath}.bak.${Date.now()}`;
106
- fs.copyFileSync(filePath, backupPath);
107
- return backupPath;
108
- }
109
- catch {
110
- return null;
111
- }
112
- }
113
- /**
114
- * Restore from backup.
115
- */
116
- restore(backupPath) {
117
- try {
118
- if (!fs.existsSync(backupPath)) {
119
- return false;
120
- }
121
- const originalPath = backupPath.replace(/\.bak\.\d+$/, '');
122
- fs.copyFileSync(backupPath, originalPath);
123
- // Update snapshot
124
- this.snapshot(originalPath);
125
- this.driftLog.push({
126
- path: originalPath,
127
- expectedChecksum: '',
128
- actualChecksum: '',
129
- timestamp: Date.now(),
130
- action: 'rolled_back',
131
- });
132
- return true;
133
- }
134
- catch {
135
- return false;
136
- }
137
- }
138
- /**
139
- * Merge external changes with our changes.
140
- */
141
- merge(filePath, ourContent, theirContent) {
142
- // Simple merge strategy: prefer ours for conflicts
143
- // In production, use a proper merge algorithm
144
- const ourLines = ourContent.split('\n');
145
- const theirLines = theirContent.split('\n');
146
- // Simple line-based merge
147
- const merged = [];
148
- const maxLength = Math.max(ourLines.length, theirLines.length);
149
- for (let i = 0; i < maxLength; i++) {
150
- const ourLine = ourLines[i];
151
- const theirLine = theirLines[i];
152
- if (ourLine === theirLine) {
153
- merged.push(ourLine || '');
154
- }
155
- else if (ourLine !== undefined && theirLine !== undefined) {
156
- // Conflict - prefer ours
157
- merged.push(ourLine);
158
- merged.push(`<!-- DRIFT CONFLICT: ${theirLine} -->`);
159
- }
160
- else if (ourLine !== undefined) {
161
- merged.push(ourLine);
162
- }
163
- else {
164
- merged.push(theirLine);
165
- }
166
- }
167
- this.driftLog.push({
168
- path: filePath,
169
- expectedChecksum: '',
170
- actualChecksum: '',
171
- timestamp: Date.now(),
172
- action: 'merged',
173
- });
174
- return merged.join('\n');
175
- }
176
- /**
177
- * Compute checksum for content.
178
- */
179
- computeChecksum(content) {
180
- return crypto.createHash('sha256').update(content).digest('hex');
181
- }
182
- /**
183
- * Get drift log.
184
- */
185
- getDriftLog(limit = 50) {
186
- return this.driftLog.slice(-limit);
187
- }
188
- /**
189
- * Get snapshot for a file.
190
- */
191
- getSnapshot(filePath) {
192
- return this.snapshots.get(filePath) || null;
193
- }
194
- /**
195
- * Clear old snapshots.
196
- */
197
- clearOldSnapshots(maxAgeMs = 3600_000) {
198
- const cutoff = Date.now() - maxAgeMs;
199
- let cleared = 0;
200
- for (const [path, snapshot] of this.snapshots) {
201
- if (snapshot.timestamp < cutoff) {
202
- this.snapshots.delete(path);
203
- cleared++;
204
- }
205
- }
206
- return cleared;
207
- }
208
- }
209
- // ─── Singleton ──────────────────────────────────────────────────────────────
210
- let _instance = null;
211
- export function getDriftDetector() {
212
- if (!_instance)
213
- _instance = new DriftDetector();
214
- return _instance;
215
- }
216
- //# sourceMappingURL=drift-detector.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"drift-detector.js","sourceRoot":"","sources":["../../src/memory/drift-detector.ts"],"names":[],"mappings":"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"}
@@ -1,105 +0,0 @@
1
- /**
2
- * EnhancedMemoryManager — Memory manager with background sync.
3
- *
4
- * Extends the base MemoryManager with:
5
- * - Background sync for zero-cost per-turn operations
6
- * - Session-end extraction for fact distillation
7
- * - Drift detection for memory file safety
8
- * - Daemon thread management
9
- *
10
- * This is the recommended entry point for production use.
11
- */
12
- import { EventEmitter } from 'events';
13
- import { BackgroundSyncManager } from './background-sync.js';
14
- import { DriftDetector } from './drift-detector.js';
15
- import { type SQLiteStore } from './sqlite-store.js';
16
- import { type CrossSessionPersistence } from './cross-session.js';
17
- interface EnhancedMemoryConfig {
18
- enableBackgroundSync: boolean;
19
- enableDriftDetection: boolean;
20
- enableSessionExtraction: boolean;
21
- enableSQLite: boolean;
22
- syncConcurrency: number;
23
- drainTimeoutMs: number;
24
- }
25
- interface MemoryMetrics {
26
- turnsBuffered: number;
27
- factsExtracted: number;
28
- driftsDetected: number;
29
- backgroundTasksQueued: number;
30
- backgroundTasksCompleted: number;
31
- }
32
- export declare class EnhancedMemoryManager extends EventEmitter {
33
- private baseManager;
34
- private backgroundSync;
35
- private sessionExtraction;
36
- private driftDetector;
37
- private config;
38
- private metrics;
39
- private sessionId;
40
- private sqliteStore;
41
- private crossSession;
42
- constructor(config?: Partial<EnhancedMemoryConfig>);
43
- /**
44
- * Setup event handlers for background sync.
45
- */
46
- private setupEventHandlers;
47
- /**
48
- * Begin a session.
49
- */
50
- startSession(sessionId: string): Promise<void>;
51
- /**
52
- * Build memory block for a query.
53
- */
54
- buildMemoryBlock(query: string): Promise<any>;
55
- /**
56
- * Record a completed user↔assistant turn (buffered, zero-cost).
57
- */
58
- recordTurn(userText: string, assistantText: string): Promise<void>;
59
- /**
60
- * End the session — flush buffered turns into durable facts.
61
- */
62
- endSession(): Promise<string | null>;
63
- /**
64
- * Execute a sync task in background.
65
- */
66
- private executeSyncTask;
67
- /**
68
- * Add a memory with drift detection.
69
- */
70
- addMemoryWithDriftDetection(filePath: string, content: string): Promise<{
71
- success: boolean;
72
- driftDetected: boolean;
73
- }>;
74
- /**
75
- * Get metrics.
76
- */
77
- getMetrics(): MemoryMetrics & {
78
- backgroundSync: any;
79
- sqlite?: any;
80
- };
81
- /**
82
- * Get SQLite store.
83
- */
84
- getSQLiteStore(): SQLiteStore | null;
85
- /**
86
- * Get cross-session persistence.
87
- */
88
- getCrossSession(): CrossSessionPersistence | null;
89
- /**
90
- * Get background sync manager.
91
- */
92
- getBackgroundSync(): BackgroundSyncManager;
93
- /**
94
- * Get drift detector.
95
- */
96
- getDriftDetector(): DriftDetector;
97
- /**
98
- * Shutdown gracefully.
99
- */
100
- shutdown(): Promise<void>;
101
- }
102
- export declare function getEnhancedMemoryManager(): EnhancedMemoryManager;
103
- export declare function resetEnhancedMemoryManager(): void;
104
- export {};
105
- //# sourceMappingURL=enhanced-manager.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"enhanced-manager.d.ts","sourceRoot":"","sources":["../../src/memory/enhanced-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEtC,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAE7D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAkB,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,EAA8B,KAAK,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAK9F,UAAU,oBAAoB;IAC5B,oBAAoB,EAAE,OAAO,CAAC;IAC9B,oBAAoB,EAAE,OAAO,CAAC;IAC9B,uBAAuB,EAAE,OAAO,CAAC;IACjC,YAAY,EAAE,OAAO,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,UAAU,aAAa;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,wBAAwB,EAAE,MAAM,CAAC;CAClC;AAID,qBAAa,qBAAsB,SAAQ,YAAY;IACrD,OAAO,CAAC,WAAW,CAAgB;IACnC,OAAO,CAAC,cAAc,CAAwB;IAC9C,OAAO,CAAC,iBAAiB,CAA2B;IACpD,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,YAAY,CAAwC;gBAEhD,MAAM,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC;IAoClD;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAgB1B;;OAEG;IACG,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAapD;;OAEG;IACG,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAInD;;OAEG;IACG,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgCxE;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IA4D1C;;OAEG;YACW,eAAe;IAiB7B;;OAEG;IACG,2BAA2B,CAC/B,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,aAAa,EAAE,OAAO,CAAA;KAAE,CAAC;IAoCxD;;OAEG;IACH,UAAU,IAAI,aAAa,GAAG;QAAE,cAAc,EAAE,GAAG,CAAC;QAAC,MAAM,CAAC,EAAE,GAAG,CAAA;KAAE;IAQnE;;OAEG;IACH,cAAc,IAAI,WAAW,GAAG,IAAI;IAIpC;;OAEG;IACH,eAAe,IAAI,uBAAuB,GAAG,IAAI;IAIjD;;OAEG;IACH,iBAAiB,IAAI,qBAAqB;IAI1C;;OAEG;IACH,gBAAgB,IAAI,aAAa;IAIjC;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAIhC;AAMD,wBAAgB,wBAAwB,IAAI,qBAAqB,CAGhE;AAED,wBAAgB,0BAA0B,IAAI,IAAI,CAKjD"}