agent-nuvira 2.7.3 → 3.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (369) 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 +278 -72
  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 +242 -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 +92 -7
  123. package/dist/inference/tool-call-utils.d.ts.map +1 -1
  124. package/dist/inference/tool-call-utils.js +203 -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/loop-skill-hint.d.ts.map +1 -1
  206. package/dist/tools/loop-skill-hint.js +22 -1
  207. package/dist/tools/loop-skill-hint.js.map +1 -1
  208. package/dist/tools/memory-tools.d.ts +35 -0
  209. package/dist/tools/memory-tools.d.ts.map +1 -1
  210. package/dist/tools/memory-tools.js +76 -0
  211. package/dist/tools/memory-tools.js.map +1 -1
  212. package/dist/tools/pipeline-tool.d.ts.map +1 -1
  213. package/dist/tools/pipeline-tool.js +8 -3
  214. package/dist/tools/pipeline-tool.js.map +1 -1
  215. package/dist/tools/registry.d.ts +25 -12
  216. package/dist/tools/registry.d.ts.map +1 -1
  217. package/dist/tools/registry.js +31 -6
  218. package/dist/tools/registry.js.map +1 -1
  219. package/dist/tools/skill-tool.d.ts.map +1 -1
  220. package/dist/tools/skill-tool.js +52 -5
  221. package/dist/tools/skill-tool.js.map +1 -1
  222. package/dist/tools/tool-loop.d.ts +63 -1
  223. package/dist/tools/tool-loop.d.ts.map +1 -1
  224. package/dist/tools/tool-loop.js +305 -66
  225. package/dist/tools/tool-loop.js.map +1 -1
  226. package/dist/tools/toolsets.d.ts +19 -3
  227. package/dist/tools/toolsets.d.ts.map +1 -1
  228. package/dist/tools/toolsets.js +21 -5
  229. package/dist/tools/toolsets.js.map +1 -1
  230. package/dist/utils/env.d.ts.map +1 -1
  231. package/dist/utils/env.js +9 -13
  232. package/dist/utils/env.js.map +1 -1
  233. package/dist/web-dashboard/chat-console.d.ts +13 -1
  234. package/dist/web-dashboard/chat-console.d.ts.map +1 -1
  235. package/dist/web-dashboard/chat-console.js +16 -2
  236. package/dist/web-dashboard/chat-console.js.map +1 -1
  237. package/dist/web-dashboard/hub-data.d.ts +2 -0
  238. package/dist/web-dashboard/hub-data.d.ts.map +1 -1
  239. package/dist/web-dashboard/hub-data.js +4 -0
  240. package/dist/web-dashboard/hub-data.js.map +1 -1
  241. package/dist/web-dashboard/server.d.ts +6 -0
  242. package/dist/web-dashboard/server.d.ts.map +1 -1
  243. package/dist/web-dashboard/server.js +192 -3
  244. package/dist/web-dashboard/server.js.map +1 -1
  245. package/dist/web-dashboard/src/types.d.ts +31 -1
  246. package/dist/web-dashboard/src/types.d.ts.map +1 -1
  247. package/package.json +11 -1
  248. package/src/web-dashboard/public/assets/index-56yPnN_m.js +207 -0
  249. package/src/web-dashboard/public/assets/index-56yPnN_m.js.map +1 -0
  250. package/src/web-dashboard/public/assets/{index-C507EUWf.css → index-Cyd6tIew.css} +1 -1
  251. package/src/web-dashboard/public/index.html +2 -2
  252. package/dist/example.d.ts +0 -1
  253. package/dist/example.d.ts.map +0 -1
  254. package/dist/example.js +0 -3
  255. package/dist/example.js.map +0 -1
  256. package/dist/fresh.d.ts +0 -2
  257. package/dist/fresh.d.ts.map +0 -1
  258. package/dist/fresh.js +0 -2
  259. package/dist/fresh.js.map +0 -1
  260. package/dist/mcp/mcp-dashboard-oauth.d.ts +0 -94
  261. package/dist/mcp/mcp-dashboard-oauth.d.ts.map +0 -1
  262. package/dist/mcp/mcp-dashboard-oauth.js +0 -140
  263. package/dist/mcp/mcp-dashboard-oauth.js.map +0 -1
  264. package/dist/memory/background-sync.d.ts +0 -107
  265. package/dist/memory/background-sync.d.ts.map +0 -1
  266. package/dist/memory/background-sync.js +0 -242
  267. package/dist/memory/background-sync.js.map +0 -1
  268. package/dist/memory/cross-session.d.ts +0 -68
  269. package/dist/memory/cross-session.d.ts.map +0 -1
  270. package/dist/memory/cross-session.js +0 -153
  271. package/dist/memory/cross-session.js.map +0 -1
  272. package/dist/memory/drift-detector.d.ts +0 -76
  273. package/dist/memory/drift-detector.d.ts.map +0 -1
  274. package/dist/memory/drift-detector.js +0 -216
  275. package/dist/memory/drift-detector.js.map +0 -1
  276. package/dist/memory/enhanced-manager.d.ts +0 -105
  277. package/dist/memory/enhanced-manager.d.ts.map +0 -1
  278. package/dist/memory/enhanced-manager.js +0 -280
  279. package/dist/memory/enhanced-manager.js.map +0 -1
  280. package/dist/memory/session-extraction.d.ts +0 -93
  281. package/dist/memory/session-extraction.d.ts.map +0 -1
  282. package/dist/memory/session-extraction.js +0 -290
  283. package/dist/memory/session-extraction.js.map +0 -1
  284. package/dist/memory/sqlite-store.d.ts +0 -208
  285. package/dist/memory/sqlite-store.d.ts.map +0 -1
  286. package/dist/memory/sqlite-store.js +0 -556
  287. package/dist/memory/sqlite-store.js.map +0 -1
  288. package/dist/skills/daytona-executor.d.ts +0 -78
  289. package/dist/skills/daytona-executor.d.ts.map +0 -1
  290. package/dist/skills/daytona-executor.js +0 -256
  291. package/dist/skills/daytona-executor.js.map +0 -1
  292. package/dist/skills/modal-executor.d.ts +0 -81
  293. package/dist/skills/modal-executor.d.ts.map +0 -1
  294. package/dist/skills/modal-executor.js +0 -285
  295. package/dist/skills/modal-executor.js.map +0 -1
  296. package/dist/sync/inventory.d.ts +0 -1
  297. package/dist/sync/inventory.d.ts.map +0 -1
  298. package/dist/sync/inventory.js +0 -3
  299. package/dist/sync/inventory.js.map +0 -1
  300. package/dist/sync/validate.d.ts +0 -1
  301. package/dist/sync/validate.d.ts.map +0 -1
  302. package/dist/sync/validate.js +0 -3
  303. package/dist/sync/validate.js.map +0 -1
  304. package/dist/test.d.ts +0 -2
  305. package/dist/test.d.ts.map +0 -1
  306. package/dist/test.js +0 -3
  307. package/dist/test.js.map +0 -1
  308. package/dist/tools/browser-tool.d.ts +0 -206
  309. package/dist/tools/browser-tool.d.ts.map +0 -1
  310. package/dist/tools/browser-tool.js +0 -726
  311. package/dist/tools/browser-tool.js.map +0 -1
  312. package/dist/tools/delegate-tool.d.ts +0 -109
  313. package/dist/tools/delegate-tool.d.ts.map +0 -1
  314. package/dist/tools/delegate-tool.js +0 -185
  315. package/dist/tools/delegate-tool.js.map +0 -1
  316. package/dist/tools/delegation-state.d.ts +0 -87
  317. package/dist/tools/delegation-state.d.ts.map +0 -1
  318. package/dist/tools/delegation-state.js +0 -278
  319. package/dist/tools/delegation-state.js.map +0 -1
  320. package/dist/tools/desktop-ui.d.ts +0 -148
  321. package/dist/tools/desktop-ui.d.ts.map +0 -1
  322. package/dist/tools/desktop-ui.js +0 -486
  323. package/dist/tools/desktop-ui.js.map +0 -1
  324. package/dist/tools/image-video-tool.d.ts +0 -88
  325. package/dist/tools/image-video-tool.d.ts.map +0 -1
  326. package/dist/tools/image-video-tool.js +0 -276
  327. package/dist/tools/image-video-tool.js.map +0 -1
  328. package/dist/tools/kanban-cron-tools.d.ts +0 -92
  329. package/dist/tools/kanban-cron-tools.d.ts.map +0 -1
  330. package/dist/tools/kanban-cron-tools.js +0 -197
  331. package/dist/tools/kanban-cron-tools.js.map +0 -1
  332. package/dist/tools/messaging-tool.d.ts +0 -127
  333. package/dist/tools/messaging-tool.d.ts.map +0 -1
  334. package/dist/tools/messaging-tool.js +0 -314
  335. package/dist/tools/messaging-tool.js.map +0 -1
  336. package/dist/tools/modality/generic-caller.d.ts +0 -43
  337. package/dist/tools/modality/generic-caller.d.ts.map +0 -1
  338. package/dist/tools/modality/generic-caller.js +0 -254
  339. package/dist/tools/modality/generic-caller.js.map +0 -1
  340. package/dist/tools/modality/modality-catalog.d.ts +0 -134
  341. package/dist/tools/modality/modality-catalog.d.ts.map +0 -1
  342. package/dist/tools/modality/modality-catalog.js +0 -445
  343. package/dist/tools/modality/modality-catalog.js.map +0 -1
  344. package/dist/tools/modality/tool-router.d.ts +0 -81
  345. package/dist/tools/modality/tool-router.d.ts.map +0 -1
  346. package/dist/tools/modality/tool-router.js +0 -84
  347. package/dist/tools/modality/tool-router.js.map +0 -1
  348. package/dist/tools/security-tools.d.ts +0 -107
  349. package/dist/tools/security-tools.d.ts.map +0 -1
  350. package/dist/tools/security-tools.js +0 -264
  351. package/dist/tools/security-tools.js.map +0 -1
  352. package/dist/tools/ssh-tool.d.ts +0 -130
  353. package/dist/tools/ssh-tool.d.ts.map +0 -1
  354. package/dist/tools/ssh-tool.js +0 -328
  355. package/dist/tools/ssh-tool.js.map +0 -1
  356. package/dist/tools/tts-tool.d.ts +0 -91
  357. package/dist/tools/tts-tool.d.ts.map +0 -1
  358. package/dist/tools/tts-tool.js +0 -406
  359. package/dist/tools/tts-tool.js.map +0 -1
  360. package/dist/utils/shell-detection.d.ts +0 -124
  361. package/dist/utils/shell-detection.d.ts.map +0 -1
  362. package/dist/utils/shell-detection.js +0 -305
  363. package/dist/utils/shell-detection.js.map +0 -1
  364. package/dist/utils/windows-paths.d.ts +0 -185
  365. package/dist/utils/windows-paths.d.ts.map +0 -1
  366. package/dist/utils/windows-paths.js +0 -472
  367. package/dist/utils/windows-paths.js.map +0 -1
  368. package/src/web-dashboard/public/assets/index-C4frng1Q.js +0 -207
  369. 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"}