@revealui/ai 0.1.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 (397) hide show
  1. package/LICENSE +22 -0
  2. package/LICENSE.commercial +112 -0
  3. package/README.md +314 -0
  4. package/dist/a2a/card.d.ts +26 -0
  5. package/dist/a2a/card.d.ts.map +1 -0
  6. package/dist/a2a/card.js +173 -0
  7. package/dist/a2a/handler.d.ts +26 -0
  8. package/dist/a2a/handler.d.ts.map +1 -0
  9. package/dist/a2a/handler.js +170 -0
  10. package/dist/a2a/index.d.ts +10 -0
  11. package/dist/a2a/index.d.ts.map +1 -0
  12. package/dist/a2a/index.js +9 -0
  13. package/dist/a2a/task-store.d.ts +42 -0
  14. package/dist/a2a/task-store.d.ts.map +1 -0
  15. package/dist/a2a/task-store.js +99 -0
  16. package/dist/audit/emitter.d.ts +34 -0
  17. package/dist/audit/emitter.d.ts.map +1 -0
  18. package/dist/audit/emitter.js +34 -0
  19. package/dist/audit/index.d.ts +44 -0
  20. package/dist/audit/index.d.ts.map +1 -0
  21. package/dist/audit/index.js +48 -0
  22. package/dist/audit/observer.d.ts +108 -0
  23. package/dist/audit/observer.d.ts.map +1 -0
  24. package/dist/audit/observer.js +271 -0
  25. package/dist/audit/policy.d.ts +70 -0
  26. package/dist/audit/policy.d.ts.map +1 -0
  27. package/dist/audit/policy.js +209 -0
  28. package/dist/audit/store.d.ts +42 -0
  29. package/dist/audit/store.d.ts.map +1 -0
  30. package/dist/audit/store.js +80 -0
  31. package/dist/audit/types.d.ts +169 -0
  32. package/dist/audit/types.d.ts.map +1 -0
  33. package/dist/audit/types.js +80 -0
  34. package/dist/client/hooks/index.d.ts +22 -0
  35. package/dist/client/hooks/index.d.ts.map +1 -0
  36. package/dist/client/hooks/index.js +21 -0
  37. package/dist/client/hooks/useAgentContext.d.ts +30 -0
  38. package/dist/client/hooks/useAgentContext.d.ts.map +1 -0
  39. package/dist/client/hooks/useAgentContext.js +161 -0
  40. package/dist/client/hooks/useAgentEvents.d.ts +126 -0
  41. package/dist/client/hooks/useAgentEvents.d.ts.map +1 -0
  42. package/dist/client/hooks/useAgentEvents.js +232 -0
  43. package/dist/client/hooks/useAgentStream.d.ts +44 -0
  44. package/dist/client/hooks/useAgentStream.d.ts.map +1 -0
  45. package/dist/client/hooks/useAgentStream.js +101 -0
  46. package/dist/client/hooks/useEpisodicMemory.d.ts +25 -0
  47. package/dist/client/hooks/useEpisodicMemory.d.ts.map +1 -0
  48. package/dist/client/hooks/useEpisodicMemory.js +174 -0
  49. package/dist/client/hooks/useWorkingMemory.d.ts +57 -0
  50. package/dist/client/hooks/useWorkingMemory.d.ts.map +1 -0
  51. package/dist/client/hooks/useWorkingMemory.js +276 -0
  52. package/dist/client/index.d.ts +14 -0
  53. package/dist/client/index.d.ts.map +1 -0
  54. package/dist/client/index.js +13 -0
  55. package/dist/embeddings/index.d.ts +51 -0
  56. package/dist/embeddings/index.d.ts.map +1 -0
  57. package/dist/embeddings/index.js +73 -0
  58. package/dist/index.d.ts +83 -0
  59. package/dist/index.d.ts.map +1 -0
  60. package/dist/index.js +103 -0
  61. package/dist/inference/context-assembly.d.ts +27 -0
  62. package/dist/inference/context-assembly.d.ts.map +1 -0
  63. package/dist/inference/context-assembly.js +81 -0
  64. package/dist/inference/overflow-compressor.d.ts +17 -0
  65. package/dist/inference/overflow-compressor.d.ts.map +1 -0
  66. package/dist/inference/overflow-compressor.js +40 -0
  67. package/dist/inference/runRag.d.ts +35 -0
  68. package/dist/inference/runRag.d.ts.map +1 -0
  69. package/dist/inference/runRag.js +53 -0
  70. package/dist/ingestion/bm25.d.ts +29 -0
  71. package/dist/ingestion/bm25.d.ts.map +1 -0
  72. package/dist/ingestion/bm25.js +161 -0
  73. package/dist/ingestion/cms-indexer.d.ts +39 -0
  74. package/dist/ingestion/cms-indexer.d.ts.map +1 -0
  75. package/dist/ingestion/cms-indexer.js +74 -0
  76. package/dist/ingestion/file-parsers.d.ts +51 -0
  77. package/dist/ingestion/file-parsers.d.ts.map +1 -0
  78. package/dist/ingestion/file-parsers.js +247 -0
  79. package/dist/ingestion/hybrid-search.d.ts +22 -0
  80. package/dist/ingestion/hybrid-search.d.ts.map +1 -0
  81. package/dist/ingestion/hybrid-search.js +63 -0
  82. package/dist/ingestion/index.d.ts +9 -0
  83. package/dist/ingestion/index.d.ts.map +1 -0
  84. package/dist/ingestion/index.js +8 -0
  85. package/dist/ingestion/pipeline.d.ts +35 -0
  86. package/dist/ingestion/pipeline.d.ts.map +1 -0
  87. package/dist/ingestion/pipeline.js +114 -0
  88. package/dist/ingestion/rag-vector-service.d.ts +34 -0
  89. package/dist/ingestion/rag-vector-service.d.ts.map +1 -0
  90. package/dist/ingestion/rag-vector-service.js +98 -0
  91. package/dist/ingestion/reranker.d.ts +10 -0
  92. package/dist/ingestion/reranker.d.ts.map +1 -0
  93. package/dist/ingestion/reranker.js +41 -0
  94. package/dist/ingestion/text-splitter.d.ts +25 -0
  95. package/dist/ingestion/text-splitter.d.ts.map +1 -0
  96. package/dist/ingestion/text-splitter.js +119 -0
  97. package/dist/llm/cache-utils.d.ts +146 -0
  98. package/dist/llm/cache-utils.d.ts.map +1 -0
  99. package/dist/llm/cache-utils.js +204 -0
  100. package/dist/llm/client.d.ts +134 -0
  101. package/dist/llm/client.d.ts.map +1 -0
  102. package/dist/llm/client.js +497 -0
  103. package/dist/llm/key-validator.d.ts +25 -0
  104. package/dist/llm/key-validator.d.ts.map +1 -0
  105. package/dist/llm/key-validator.js +101 -0
  106. package/dist/llm/provider-health.d.ts +40 -0
  107. package/dist/llm/provider-health.d.ts.map +1 -0
  108. package/dist/llm/provider-health.js +97 -0
  109. package/dist/llm/providers/anthropic.d.ts +31 -0
  110. package/dist/llm/providers/anthropic.d.ts.map +1 -0
  111. package/dist/llm/providers/anthropic.js +248 -0
  112. package/dist/llm/providers/base.d.ts +111 -0
  113. package/dist/llm/providers/base.d.ts.map +1 -0
  114. package/dist/llm/providers/base.js +6 -0
  115. package/dist/llm/providers/groq.d.ts +23 -0
  116. package/dist/llm/providers/groq.d.ts.map +1 -0
  117. package/dist/llm/providers/groq.js +27 -0
  118. package/dist/llm/providers/ollama.d.ts +27 -0
  119. package/dist/llm/providers/ollama.d.ts.map +1 -0
  120. package/dist/llm/providers/ollama.js +48 -0
  121. package/dist/llm/providers/openai.d.ts +19 -0
  122. package/dist/llm/providers/openai.d.ts.map +1 -0
  123. package/dist/llm/providers/openai.js +245 -0
  124. package/dist/llm/providers/vultr.d.ts +18 -0
  125. package/dist/llm/providers/vultr.d.ts.map +1 -0
  126. package/dist/llm/providers/vultr.js +168 -0
  127. package/dist/llm/response-cache.d.ts +166 -0
  128. package/dist/llm/response-cache.d.ts.map +1 -0
  129. package/dist/llm/response-cache.js +233 -0
  130. package/dist/llm/semantic-cache.d.ts +179 -0
  131. package/dist/llm/semantic-cache.d.ts.map +1 -0
  132. package/dist/llm/semantic-cache.js +306 -0
  133. package/dist/llm/server.d.ts +14 -0
  134. package/dist/llm/server.d.ts.map +1 -0
  135. package/dist/llm/server.js +15 -0
  136. package/dist/llm/token-counter.d.ts +48 -0
  137. package/dist/llm/token-counter.d.ts.map +1 -0
  138. package/dist/llm/token-counter.js +77 -0
  139. package/dist/llm/workspace-provider-config.d.ts +38 -0
  140. package/dist/llm/workspace-provider-config.d.ts.map +1 -0
  141. package/dist/llm/workspace-provider-config.js +47 -0
  142. package/dist/memory/agent/context-manager.d.ts +148 -0
  143. package/dist/memory/agent/context-manager.d.ts.map +1 -0
  144. package/dist/memory/agent/context-manager.js +284 -0
  145. package/dist/memory/agent/index.d.ts +7 -0
  146. package/dist/memory/agent/index.d.ts.map +1 -0
  147. package/dist/memory/agent/index.js +6 -0
  148. package/dist/memory/crdt/index.d.ts +13 -0
  149. package/dist/memory/crdt/index.d.ts.map +1 -0
  150. package/dist/memory/crdt/index.js +12 -0
  151. package/dist/memory/crdt/lww-register.d.ts +108 -0
  152. package/dist/memory/crdt/lww-register.d.ts.map +1 -0
  153. package/dist/memory/crdt/lww-register.js +169 -0
  154. package/dist/memory/crdt/or-set.d.ts +141 -0
  155. package/dist/memory/crdt/or-set.d.ts.map +1 -0
  156. package/dist/memory/crdt/or-set.js +291 -0
  157. package/dist/memory/crdt/pn-counter.d.ts +116 -0
  158. package/dist/memory/crdt/pn-counter.d.ts.map +1 -0
  159. package/dist/memory/crdt/pn-counter.js +174 -0
  160. package/dist/memory/crdt/vector-clock.d.ts +115 -0
  161. package/dist/memory/crdt/vector-clock.d.ts.map +1 -0
  162. package/dist/memory/crdt/vector-clock.js +179 -0
  163. package/dist/memory/errors/index.d.ts +56 -0
  164. package/dist/memory/errors/index.d.ts.map +1 -0
  165. package/dist/memory/errors/index.js +85 -0
  166. package/dist/memory/index.d.ts +21 -0
  167. package/dist/memory/index.d.ts.map +1 -0
  168. package/dist/memory/index.js +20 -0
  169. package/dist/memory/persistence/crdt-persistence.d.ts +85 -0
  170. package/dist/memory/persistence/crdt-persistence.d.ts.map +1 -0
  171. package/dist/memory/persistence/crdt-persistence.js +204 -0
  172. package/dist/memory/persistence/index.d.ts +7 -0
  173. package/dist/memory/persistence/index.d.ts.map +1 -0
  174. package/dist/memory/persistence/index.js +6 -0
  175. package/dist/memory/preferences/index.d.ts +7 -0
  176. package/dist/memory/preferences/index.d.ts.map +1 -0
  177. package/dist/memory/preferences/index.js +6 -0
  178. package/dist/memory/preferences/user-preferences-manager.d.ts +133 -0
  179. package/dist/memory/preferences/user-preferences-manager.d.ts.map +1 -0
  180. package/dist/memory/preferences/user-preferences-manager.js +342 -0
  181. package/dist/memory/services/index.d.ts +8 -0
  182. package/dist/memory/services/index.d.ts.map +1 -0
  183. package/dist/memory/services/index.js +6 -0
  184. package/dist/memory/services/node-id-service.d.ts +75 -0
  185. package/dist/memory/services/node-id-service.d.ts.map +1 -0
  186. package/dist/memory/services/node-id-service.js +190 -0
  187. package/dist/memory/stores/episodic-memory.d.ts +182 -0
  188. package/dist/memory/stores/episodic-memory.d.ts.map +1 -0
  189. package/dist/memory/stores/episodic-memory.js +378 -0
  190. package/dist/memory/stores/index.d.ts +16 -0
  191. package/dist/memory/stores/index.d.ts.map +1 -0
  192. package/dist/memory/stores/index.js +15 -0
  193. package/dist/memory/stores/procedural-memory.d.ts +89 -0
  194. package/dist/memory/stores/procedural-memory.d.ts.map +1 -0
  195. package/dist/memory/stores/procedural-memory.js +152 -0
  196. package/dist/memory/stores/semantic-memory.d.ts +92 -0
  197. package/dist/memory/stores/semantic-memory.d.ts.map +1 -0
  198. package/dist/memory/stores/semantic-memory.js +155 -0
  199. package/dist/memory/stores/working-memory.d.ts +225 -0
  200. package/dist/memory/stores/working-memory.d.ts.map +1 -0
  201. package/dist/memory/stores/working-memory.js +336 -0
  202. package/dist/memory/utils/deep-clone.d.ts +10 -0
  203. package/dist/memory/utils/deep-clone.d.ts.map +1 -0
  204. package/dist/memory/utils/deep-clone.js +9 -0
  205. package/dist/memory/utils/index.d.ts +8 -0
  206. package/dist/memory/utils/index.d.ts.map +1 -0
  207. package/dist/memory/utils/index.js +7 -0
  208. package/dist/memory/utils/logger.d.ts +21 -0
  209. package/dist/memory/utils/logger.d.ts.map +1 -0
  210. package/dist/memory/utils/logger.js +62 -0
  211. package/dist/memory/utils/sql-helpers.d.ts +97 -0
  212. package/dist/memory/utils/sql-helpers.d.ts.map +1 -0
  213. package/dist/memory/utils/sql-helpers.js +214 -0
  214. package/dist/memory/utils/validation.d.ts +62 -0
  215. package/dist/memory/utils/validation.d.ts.map +1 -0
  216. package/dist/memory/utils/validation.js +244 -0
  217. package/dist/memory/vector/index.d.ts +12 -0
  218. package/dist/memory/vector/index.d.ts.map +1 -0
  219. package/dist/memory/vector/index.js +14 -0
  220. package/dist/memory/vector/vector-memory-service.d.ts +88 -0
  221. package/dist/memory/vector/vector-memory-service.d.ts.map +1 -0
  222. package/dist/memory/vector/vector-memory-service.js +335 -0
  223. package/dist/observability/logger.d.ts +79 -0
  224. package/dist/observability/logger.d.ts.map +1 -0
  225. package/dist/observability/logger.js +165 -0
  226. package/dist/observability/metrics.d.ts +43 -0
  227. package/dist/observability/metrics.d.ts.map +1 -0
  228. package/dist/observability/metrics.js +197 -0
  229. package/dist/observability/query.d.ts +150 -0
  230. package/dist/observability/query.d.ts.map +1 -0
  231. package/dist/observability/query.js +339 -0
  232. package/dist/observability/types.d.ts +140 -0
  233. package/dist/observability/types.d.ts.map +1 -0
  234. package/dist/observability/types.js +6 -0
  235. package/dist/orchestration/agent.d.ts +98 -0
  236. package/dist/orchestration/agent.d.ts.map +1 -0
  237. package/dist/orchestration/agent.js +6 -0
  238. package/dist/orchestration/defaults.d.ts +21 -0
  239. package/dist/orchestration/defaults.d.ts.map +1 -0
  240. package/dist/orchestration/defaults.js +22 -0
  241. package/dist/orchestration/memory-integration.d.ts +58 -0
  242. package/dist/orchestration/memory-integration.d.ts.map +1 -0
  243. package/dist/orchestration/memory-integration.js +130 -0
  244. package/dist/orchestration/orchestrator.d.ts +67 -0
  245. package/dist/orchestration/orchestrator.d.ts.map +1 -0
  246. package/dist/orchestration/orchestrator.js +174 -0
  247. package/dist/orchestration/runtime.d.ts +82 -0
  248. package/dist/orchestration/runtime.d.ts.map +1 -0
  249. package/dist/orchestration/runtime.js +251 -0
  250. package/dist/orchestration/streaming-runtime.d.ts +36 -0
  251. package/dist/orchestration/streaming-runtime.d.ts.map +1 -0
  252. package/dist/orchestration/streaming-runtime.js +175 -0
  253. package/dist/orchestration/ticket-agent.d.ts +70 -0
  254. package/dist/orchestration/ticket-agent.d.ts.map +1 -0
  255. package/dist/orchestration/ticket-agent.js +146 -0
  256. package/dist/skills/activation/index.d.ts +7 -0
  257. package/dist/skills/activation/index.d.ts.map +1 -0
  258. package/dist/skills/activation/index.js +6 -0
  259. package/dist/skills/activation/skill-activator.d.ts +68 -0
  260. package/dist/skills/activation/skill-activator.d.ts.map +1 -0
  261. package/dist/skills/activation/skill-activator.js +224 -0
  262. package/dist/skills/catalog/catalog-search.d.ts +55 -0
  263. package/dist/skills/catalog/catalog-search.d.ts.map +1 -0
  264. package/dist/skills/catalog/catalog-search.js +111 -0
  265. package/dist/skills/catalog/catalog-types.d.ts +81 -0
  266. package/dist/skills/catalog/catalog-types.d.ts.map +1 -0
  267. package/dist/skills/catalog/catalog-types.js +66 -0
  268. package/dist/skills/catalog/index.d.ts +9 -0
  269. package/dist/skills/catalog/index.d.ts.map +1 -0
  270. package/dist/skills/catalog/index.js +7 -0
  271. package/dist/skills/catalog/vercel-catalog.d.ts +42 -0
  272. package/dist/skills/catalog/vercel-catalog.d.ts.map +1 -0
  273. package/dist/skills/catalog/vercel-catalog.js +189 -0
  274. package/dist/skills/compat/index.d.ts +9 -0
  275. package/dist/skills/compat/index.d.ts.map +1 -0
  276. package/dist/skills/compat/index.js +8 -0
  277. package/dist/skills/compat/skill-enhancer.d.ts +37 -0
  278. package/dist/skills/compat/skill-enhancer.d.ts.map +1 -0
  279. package/dist/skills/compat/skill-enhancer.js +76 -0
  280. package/dist/skills/compat/tool-mapper.d.ts +61 -0
  281. package/dist/skills/compat/tool-mapper.d.ts.map +1 -0
  282. package/dist/skills/compat/tool-mapper.js +168 -0
  283. package/dist/skills/compat/vercel-compat.d.ts +33 -0
  284. package/dist/skills/compat/vercel-compat.d.ts.map +1 -0
  285. package/dist/skills/compat/vercel-compat.js +132 -0
  286. package/dist/skills/index.d.ts +40 -0
  287. package/dist/skills/index.d.ts.map +1 -0
  288. package/dist/skills/index.js +47 -0
  289. package/dist/skills/integration/agent-skill-provider.d.ts +94 -0
  290. package/dist/skills/integration/agent-skill-provider.d.ts.map +1 -0
  291. package/dist/skills/integration/agent-skill-provider.js +161 -0
  292. package/dist/skills/integration/index.d.ts +7 -0
  293. package/dist/skills/integration/index.d.ts.map +1 -0
  294. package/dist/skills/integration/index.js +6 -0
  295. package/dist/skills/loader/github-loader.d.ts +61 -0
  296. package/dist/skills/loader/github-loader.d.ts.map +1 -0
  297. package/dist/skills/loader/github-loader.js +176 -0
  298. package/dist/skills/loader/index.d.ts +10 -0
  299. package/dist/skills/loader/index.d.ts.map +1 -0
  300. package/dist/skills/loader/index.js +9 -0
  301. package/dist/skills/loader/local-loader.d.ts +56 -0
  302. package/dist/skills/loader/local-loader.d.ts.map +1 -0
  303. package/dist/skills/loader/local-loader.js +186 -0
  304. package/dist/skills/loader/vercel-loader.d.ts +64 -0
  305. package/dist/skills/loader/vercel-loader.d.ts.map +1 -0
  306. package/dist/skills/loader/vercel-loader.js +313 -0
  307. package/dist/skills/loader/vercel-types.d.ts +64 -0
  308. package/dist/skills/loader/vercel-types.d.ts.map +1 -0
  309. package/dist/skills/loader/vercel-types.js +55 -0
  310. package/dist/skills/parser/index.d.ts +7 -0
  311. package/dist/skills/parser/index.d.ts.map +1 -0
  312. package/dist/skills/parser/index.js +6 -0
  313. package/dist/skills/parser/skill-md-parser.d.ts +64 -0
  314. package/dist/skills/parser/skill-md-parser.d.ts.map +1 -0
  315. package/dist/skills/parser/skill-md-parser.js +242 -0
  316. package/dist/skills/registry/index.d.ts +7 -0
  317. package/dist/skills/registry/index.d.ts.map +1 -0
  318. package/dist/skills/registry/index.js +6 -0
  319. package/dist/skills/registry/skill-registry.d.ts +133 -0
  320. package/dist/skills/registry/skill-registry.d.ts.map +1 -0
  321. package/dist/skills/registry/skill-registry.js +373 -0
  322. package/dist/skills/types.d.ts +216 -0
  323. package/dist/skills/types.d.ts.map +1 -0
  324. package/dist/skills/types.js +176 -0
  325. package/dist/templates/agent-spec.d.ts +138 -0
  326. package/dist/templates/agent-spec.d.ts.map +1 -0
  327. package/dist/templates/agent-spec.js +138 -0
  328. package/dist/templates/index.d.ts +56 -0
  329. package/dist/templates/index.d.ts.map +1 -0
  330. package/dist/templates/index.js +58 -0
  331. package/dist/templates/prompt-spec.d.ts +140 -0
  332. package/dist/templates/prompt-spec.d.ts.map +1 -0
  333. package/dist/templates/prompt-spec.js +210 -0
  334. package/dist/templates/skill-spec.d.ts +106 -0
  335. package/dist/templates/skill-spec.d.ts.map +1 -0
  336. package/dist/templates/skill-spec.js +119 -0
  337. package/dist/tools/base.d.ts +74 -0
  338. package/dist/tools/base.d.ts.map +1 -0
  339. package/dist/tools/base.js +6 -0
  340. package/dist/tools/cms/collection-tools.d.ts +36 -0
  341. package/dist/tools/cms/collection-tools.d.ts.map +1 -0
  342. package/dist/tools/cms/collection-tools.js +178 -0
  343. package/dist/tools/cms/factory.d.ts +89 -0
  344. package/dist/tools/cms/factory.d.ts.map +1 -0
  345. package/dist/tools/cms/factory.js +462 -0
  346. package/dist/tools/cms/global-tools.d.ts +21 -0
  347. package/dist/tools/cms/global-tools.d.ts.map +1 -0
  348. package/dist/tools/cms/global-tools.js +92 -0
  349. package/dist/tools/cms/index.d.ts +11 -0
  350. package/dist/tools/cms/index.d.ts.map +1 -0
  351. package/dist/tools/cms/index.js +11 -0
  352. package/dist/tools/cms/media-tools.d.ts +31 -0
  353. package/dist/tools/cms/media-tools.d.ts.map +1 -0
  354. package/dist/tools/cms/media-tools.js +140 -0
  355. package/dist/tools/cms/user-tools.d.ts +31 -0
  356. package/dist/tools/cms/user-tools.d.ts.map +1 -0
  357. package/dist/tools/cms/user-tools.js +135 -0
  358. package/dist/tools/deduplicator.d.ts +19 -0
  359. package/dist/tools/deduplicator.d.ts.map +1 -0
  360. package/dist/tools/deduplicator.js +53 -0
  361. package/dist/tools/document-summarizer.d.ts +11 -0
  362. package/dist/tools/document-summarizer.d.ts.map +1 -0
  363. package/dist/tools/document-summarizer.js +82 -0
  364. package/dist/tools/mcp-adapter.d.ts +66 -0
  365. package/dist/tools/mcp-adapter.d.ts.map +1 -0
  366. package/dist/tools/mcp-adapter.js +152 -0
  367. package/dist/tools/memory/index.d.ts +3 -0
  368. package/dist/tools/memory/index.d.ts.map +1 -0
  369. package/dist/tools/memory/index.js +1 -0
  370. package/dist/tools/memory/store-memory.d.ts +39 -0
  371. package/dist/tools/memory/store-memory.d.ts.map +1 -0
  372. package/dist/tools/memory/store-memory.js +94 -0
  373. package/dist/tools/registry.d.ts +14 -0
  374. package/dist/tools/registry.d.ts.map +1 -0
  375. package/dist/tools/registry.js +48 -0
  376. package/dist/tools/ticket-tools.d.ts +31 -0
  377. package/dist/tools/ticket-tools.d.ts.map +1 -0
  378. package/dist/tools/ticket-tools.js +74 -0
  379. package/dist/tools/web/duck-duck-go.d.ts +52 -0
  380. package/dist/tools/web/duck-duck-go.d.ts.map +1 -0
  381. package/dist/tools/web/duck-duck-go.js +202 -0
  382. package/dist/tools/web/exa.d.ts +34 -0
  383. package/dist/tools/web/exa.d.ts.map +1 -0
  384. package/dist/tools/web/exa.js +80 -0
  385. package/dist/tools/web/index.d.ts +6 -0
  386. package/dist/tools/web/index.d.ts.map +1 -0
  387. package/dist/tools/web/index.js +4 -0
  388. package/dist/tools/web/scraper.d.ts +9 -0
  389. package/dist/tools/web/scraper.d.ts.map +1 -0
  390. package/dist/tools/web/scraper.js +118 -0
  391. package/dist/tools/web/tavily.d.ts +32 -0
  392. package/dist/tools/web/tavily.d.ts.map +1 -0
  393. package/dist/tools/web/tavily.js +73 -0
  394. package/dist/tools/web/types.d.ts +31 -0
  395. package/dist/tools/web/types.d.ts.map +1 -0
  396. package/dist/tools/web/types.js +9 -0
  397. package/package.json +143 -0
@@ -0,0 +1,85 @@
1
+ /**
2
+ * Memory System Errors
3
+ *
4
+ * Custom error classes for the memory system with proper error codes and types.
5
+ */
6
+ /**
7
+ * Base error class for memory system errors
8
+ */
9
+ export class MemoryError extends Error {
10
+ code;
11
+ statusCode;
12
+ constructor(message, code, statusCode = 500) {
13
+ super(message);
14
+ this.name = 'MemoryError';
15
+ this.code = code;
16
+ this.statusCode = statusCode;
17
+ // Capture stack trace if available (Node.js/V8 only)
18
+ if (Error.captureStackTrace) {
19
+ Error.captureStackTrace(this, this.constructor);
20
+ }
21
+ }
22
+ }
23
+ /**
24
+ * Database connection errors
25
+ */
26
+ export class DatabaseConnectionError extends MemoryError {
27
+ constructor(message = 'Database connection failed', originalError) {
28
+ super(originalError ? `${message}: ${originalError.message}` : message, 'DB_CONNECTION_ERROR', 503);
29
+ this.name = 'DatabaseConnectionError';
30
+ }
31
+ }
32
+ /**
33
+ * Database constraint violation errors
34
+ */
35
+ export class DatabaseConstraintError extends MemoryError {
36
+ constructor(message = 'Database constraint violation', originalError) {
37
+ super(originalError ? `${message}: ${originalError.message}` : message, 'DB_CONSTRAINT_ERROR', 409);
38
+ this.name = 'DatabaseConstraintError';
39
+ }
40
+ }
41
+ /**
42
+ * Database query/operation errors
43
+ */
44
+ export class DatabaseOperationError extends MemoryError {
45
+ constructor(message = 'Database operation failed', originalError) {
46
+ super(originalError ? `${message}: ${originalError.message}` : message, 'DB_OPERATION_ERROR', 500);
47
+ this.name = 'DatabaseOperationError';
48
+ }
49
+ }
50
+ /**
51
+ * Validation errors
52
+ */
53
+ export class ValidationError extends MemoryError {
54
+ constructor(message) {
55
+ super(message, 'VALIDATION_ERROR', 400);
56
+ this.name = 'ValidationError';
57
+ }
58
+ }
59
+ /**
60
+ * Not found errors
61
+ */
62
+ export class NotFoundError extends MemoryError {
63
+ constructor(resource) {
64
+ super(`${resource} not found`, 'NOT_FOUND', 404);
65
+ this.name = 'NotFoundError';
66
+ }
67
+ }
68
+ /**
69
+ * Configuration errors
70
+ */
71
+ export class ConfigurationError extends MemoryError {
72
+ constructor(message) {
73
+ super(message, 'CONFIGURATION_ERROR', 500);
74
+ this.name = 'ConfigurationError';
75
+ }
76
+ }
77
+ /**
78
+ * Data migration errors
79
+ */
80
+ export class MigrationError extends MemoryError {
81
+ constructor(message) {
82
+ super(message, 'MIGRATION_ERROR', 400);
83
+ this.name = 'MigrationError';
84
+ }
85
+ }
@@ -0,0 +1,21 @@
1
+ /**
2
+ * @revealui/ai/memory - Memory System (Server-side)
3
+ *
4
+ * CRDT-based persistent memory system:
5
+ * - CRDT data structures (LWW Register, OR-Set, Counter)
6
+ * - Memory management (Working, Episodic memory)
7
+ * - Vector similarity search
8
+ *
9
+ * These are server-side implementations that can be used
10
+ * in Node.js, Edge Functions, and server components.
11
+ *
12
+ * @packageDocumentation
13
+ */
14
+ export * from './agent/index.js';
15
+ export * from './crdt/index.js';
16
+ export * from './errors/index.js';
17
+ export * from './persistence/index.js';
18
+ export * from './preferences/index.js';
19
+ export * from './services/index.js';
20
+ export * from './vector/index.js';
21
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/memory/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,cAAc,kBAAkB,CAAA;AAChC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,mBAAmB,CAAA;AACjC,cAAc,wBAAwB,CAAA;AACtC,cAAc,wBAAwB,CAAA;AACtC,cAAc,qBAAqB,CAAA;AACnC,cAAc,mBAAmB,CAAA"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * @revealui/ai/memory - Memory System (Server-side)
3
+ *
4
+ * CRDT-based persistent memory system:
5
+ * - CRDT data structures (LWW Register, OR-Set, Counter)
6
+ * - Memory management (Working, Episodic memory)
7
+ * - Vector similarity search
8
+ *
9
+ * These are server-side implementations that can be used
10
+ * in Node.js, Edge Functions, and server components.
11
+ *
12
+ * @packageDocumentation
13
+ */
14
+ export * from './agent/index.js';
15
+ export * from './crdt/index.js';
16
+ export * from './errors/index.js';
17
+ export * from './persistence/index.js';
18
+ export * from './preferences/index.js';
19
+ export * from './services/index.js';
20
+ export * from './vector/index.js';
@@ -0,0 +1,85 @@
1
+ /**
2
+ * CRDT Persistence Adapter
3
+ *
4
+ * Generic adapter for saving/loading CRDT state to/from database.
5
+ * Supports both state-based (JSONB) and operation-based (operations log) storage.
6
+ */
7
+ import type { Database } from '@revealui/db/client';
8
+ import type { LWWRegisterData, ORSetData, PNCounterData } from '../crdt/index.js';
9
+ export type CRDTType = 'lww_register' | 'or_set' | 'pn_counter';
10
+ export type CRDTOperationType = 'set' | 'add' | 'remove' | 'increment' | 'decrement';
11
+ export interface CRDTOperationPayload {
12
+ crdtId: string;
13
+ crdtType: CRDTType;
14
+ operationType: CRDTOperationType;
15
+ payload: Record<string, unknown>;
16
+ nodeId: string;
17
+ timestamp: number;
18
+ }
19
+ export interface CRDTStateData {
20
+ lww_register?: LWWRegisterData<unknown>;
21
+ or_set?: ORSetData<unknown>;
22
+ pn_counter?: PNCounterData;
23
+ }
24
+ /**
25
+ * Persistence adapter for CRDT operations.
26
+ *
27
+ * Supports:
28
+ * - State-based storage (JSONB in existing tables)
29
+ * - Operation-based storage (crdt_operations table)
30
+ */
31
+ export declare class CRDTPersistence {
32
+ private db;
33
+ constructor(db: Database);
34
+ /**
35
+ * Saves CRDT state to database (state-based approach).
36
+ * Stores serialized CRDT data in JSONB field.
37
+ *
38
+ * @param crdtId - Unique identifier for this CRDT instance
39
+ * @param type - Type of CRDT
40
+ * @param data - Serialized CRDT data
41
+ * @param table - Table to store in (default: agentContexts)
42
+ * @param field - JSONB field name (default: 'context')
43
+ */
44
+ saveCRDTState(crdtId: string, type: CRDTType, data: LWWRegisterData<unknown> | ORSetData<unknown> | PNCounterData, _table?: 'agentContexts', _field?: string): Promise<void>;
45
+ /**
46
+ * Loads CRDT state from database (state-based approach).
47
+ *
48
+ * @param crdtId - Unique identifier for this CRDT instance
49
+ * @param type - Type of CRDT to load
50
+ * @returns Serialized CRDT data or null if not found
51
+ */
52
+ loadCRDTState(crdtId: string, type: CRDTType): Promise<LWWRegisterData<unknown> | ORSetData<unknown> | PNCounterData | null>;
53
+ /**
54
+ * Appends an operation to the CRDT operations log.
55
+ *
56
+ * @param operation - The operation to append
57
+ */
58
+ appendOperation(operation: CRDTOperationPayload): Promise<void>;
59
+ /**
60
+ * Gets operations since a given timestamp (for sync).
61
+ *
62
+ * @param crdtId - CRDT instance identifier
63
+ * @param since - Unix timestamp (milliseconds) to get operations since
64
+ * @returns Array of operations
65
+ */
66
+ getOperationsSince(crdtId: string, since: number): Promise<CRDTOperationPayload[]>;
67
+ /**
68
+ * Saves composite CRDT state (multiple CRDTs in one record).
69
+ * Useful for WorkingMemory which uses multiple CRDTs.
70
+ *
71
+ * Supports storing multiple CRDTs with keys like "lww_register:context" or "or_set:agents"
72
+ *
73
+ * @param crdtId - Unique identifier
74
+ * @param states - Map of CRDT key (e.g., "lww_register:context") to serialized data
75
+ */
76
+ saveCompositeState(crdtId: string, states: Map<string, LWWRegisterData<unknown> | ORSetData<unknown> | PNCounterData>): Promise<void>;
77
+ /**
78
+ * Loads composite CRDT state (multiple CRDTs from one record).
79
+ *
80
+ * @param crdtId - Unique identifier
81
+ * @returns Map of CRDT key (e.g., "lww_register:context") to serialized data
82
+ */
83
+ loadCompositeState(crdtId: string): Promise<Map<string, LWWRegisterData<unknown> | ORSetData<unknown> | PNCounterData>>;
84
+ }
85
+ //# sourceMappingURL=crdt-persistence.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crdt-persistence.d.ts","sourceRoot":"","sources":["../../../src/memory/persistence/crdt-persistence.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAEnD,OAAO,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAOjF,MAAM,MAAM,QAAQ,GAAG,cAAc,GAAG,QAAQ,GAAG,YAAY,CAAA;AAC/D,MAAM,MAAM,iBAAiB,GAAG,KAAK,GAAG,KAAK,GAAG,QAAQ,GAAG,WAAW,GAAG,WAAW,CAAA;AAEpF,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,QAAQ,CAAA;IAClB,aAAa,EAAE,iBAAiB,CAAA;IAChC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAChC,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,YAAY,CAAC,EAAE,eAAe,CAAC,OAAO,CAAC,CAAA;IACvC,MAAM,CAAC,EAAE,SAAS,CAAC,OAAO,CAAC,CAAA;IAC3B,UAAU,CAAC,EAAE,aAAa,CAAA;CAC3B;AAMD;;;;;;GAMG;AACH,qBAAa,eAAe;IACd,OAAO,CAAC,EAAE;gBAAF,EAAE,EAAE,QAAQ;IAEhC;;;;;;;;;OASG;IACG,aAAa,CACjB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,QAAQ,EACd,IAAI,EAAE,eAAe,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,aAAa,EACnE,MAAM,GAAE,eAAiC,EACzC,MAAM,GAAE,MAAkB,GACzB,OAAO,CAAC,IAAI,CAAC;IA4ChB;;;;;;OAMG;IACG,aAAa,CACjB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,QAAQ,GACb,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,aAAa,GAAG,IAAI,CAAC;IAiBhF;;;;OAIG;IACG,eAAe,CAAC,SAAS,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAYrE;;;;;;OAMG;IACG,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAiBxF;;;;;;;;OAQG;IACG,kBAAkB,CACtB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,aAAa,CAAC,GACjF,OAAO,CAAC,IAAI,CAAC;IAuChB;;;;;OAKG;IACG,kBAAkB,CACtB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,aAAa,CAAC,CAAC;CAyBvF"}
@@ -0,0 +1,204 @@
1
+ /**
2
+ * CRDT Persistence Adapter
3
+ *
4
+ * Generic adapter for saving/loading CRDT state to/from database.
5
+ * Supports both state-based (JSONB) and operation-based (operations log) storage.
6
+ */
7
+ import { randomUUID } from 'node:crypto';
8
+ import { agentContexts, and, crdtOperations, eq, gte } from '@revealui/db/schema';
9
+ import { findAgentContextById } from '../utils/sql-helpers.js';
10
+ // =============================================================================
11
+ // CRDT Persistence
12
+ // =============================================================================
13
+ /**
14
+ * Persistence adapter for CRDT operations.
15
+ *
16
+ * Supports:
17
+ * - State-based storage (JSONB in existing tables)
18
+ * - Operation-based storage (crdt_operations table)
19
+ */
20
+ export class CRDTPersistence {
21
+ db;
22
+ constructor(db) {
23
+ this.db = db;
24
+ }
25
+ /**
26
+ * Saves CRDT state to database (state-based approach).
27
+ * Stores serialized CRDT data in JSONB field.
28
+ *
29
+ * @param crdtId - Unique identifier for this CRDT instance
30
+ * @param type - Type of CRDT
31
+ * @param data - Serialized CRDT data
32
+ * @param table - Table to store in (default: agentContexts)
33
+ * @param field - JSONB field name (default: 'context')
34
+ */
35
+ async saveCRDTState(crdtId, type, data, _table = 'agentContexts', _field = 'context') {
36
+ void _table;
37
+ void _field;
38
+ // For now, we'll store in agentContexts.context JSONB field
39
+ // This is a simplified state-based approach
40
+ const stateData = {
41
+ [type]: data,
42
+ };
43
+ // Check if context exists (using raw SQL for Neon HTTP compatibility)
44
+ const existing = await findAgentContextById(this.db, crdtId);
45
+ if (existing) {
46
+ // Update existing context
47
+ const currentContext = existing.context || {};
48
+ await this.db
49
+ .update(agentContexts)
50
+ .set({
51
+ context: {
52
+ ...currentContext,
53
+ // biome-ignore lint/style/useNamingConvention: _crdt is the CRDT state storage key — internal convention that must not be renamed
54
+ _crdt: stateData,
55
+ },
56
+ updatedAt: new Date(),
57
+ })
58
+ .where(eq(agentContexts.id, crdtId));
59
+ }
60
+ else {
61
+ // Create new context entry
62
+ await this.db.insert(agentContexts).values({
63
+ id: crdtId,
64
+ version: 1,
65
+ sessionId: crdtId.split(':')[0] || '',
66
+ agentId: crdtId.split(':')[1] || '',
67
+ context: {
68
+ // biome-ignore lint/style/useNamingConvention: _crdt is the CRDT state storage key — internal convention that must not be renamed
69
+ _crdt: stateData,
70
+ },
71
+ priority: 0.5,
72
+ createdAt: new Date(),
73
+ updatedAt: new Date(),
74
+ });
75
+ }
76
+ }
77
+ /**
78
+ * Loads CRDT state from database (state-based approach).
79
+ *
80
+ * @param crdtId - Unique identifier for this CRDT instance
81
+ * @param type - Type of CRDT to load
82
+ * @returns Serialized CRDT data or null if not found
83
+ */
84
+ async loadCRDTState(crdtId, type) {
85
+ const context = await findAgentContextById(this.db, crdtId);
86
+ if (!context?.context) {
87
+ return null;
88
+ }
89
+ const contextData = context.context;
90
+ const crdtData = contextData._crdt;
91
+ if (!crdtData?.[type]) {
92
+ return null;
93
+ }
94
+ return crdtData[type];
95
+ }
96
+ /**
97
+ * Appends an operation to the CRDT operations log.
98
+ *
99
+ * @param operation - The operation to append
100
+ */
101
+ async appendOperation(operation) {
102
+ await this.db.insert(crdtOperations).values({
103
+ id: randomUUID(),
104
+ crdtId: operation.crdtId,
105
+ crdtType: operation.crdtType,
106
+ operationType: operation.operationType,
107
+ payload: operation.payload,
108
+ nodeId: operation.nodeId,
109
+ timestamp: operation.timestamp,
110
+ });
111
+ }
112
+ /**
113
+ * Gets operations since a given timestamp (for sync).
114
+ *
115
+ * @param crdtId - CRDT instance identifier
116
+ * @param since - Unix timestamp (milliseconds) to get operations since
117
+ * @returns Array of operations
118
+ */
119
+ async getOperationsSince(crdtId, since) {
120
+ const operations = await this.db
121
+ .select()
122
+ .from(crdtOperations)
123
+ .where(and(eq(crdtOperations.crdtId, crdtId), gte(crdtOperations.timestamp, since)))
124
+ .orderBy(crdtOperations.timestamp);
125
+ return operations.map((op) => ({
126
+ crdtId: op.crdtId,
127
+ crdtType: op.crdtType,
128
+ operationType: op.operationType,
129
+ payload: op.payload,
130
+ nodeId: op.nodeId,
131
+ timestamp: op.timestamp,
132
+ }));
133
+ }
134
+ /**
135
+ * Saves composite CRDT state (multiple CRDTs in one record).
136
+ * Useful for WorkingMemory which uses multiple CRDTs.
137
+ *
138
+ * Supports storing multiple CRDTs with keys like "lww_register:context" or "or_set:agents"
139
+ *
140
+ * @param crdtId - Unique identifier
141
+ * @param states - Map of CRDT key (e.g., "lww_register:context") to serialized data
142
+ */
143
+ async saveCompositeState(crdtId, states) {
144
+ const stateData = {};
145
+ for (const [key, data] of states) {
146
+ stateData[key] = data;
147
+ }
148
+ const existing = await findAgentContextById(this.db, crdtId);
149
+ if (existing) {
150
+ const currentContext = existing.context || {};
151
+ await this.db
152
+ .update(agentContexts)
153
+ .set({
154
+ context: {
155
+ ...currentContext,
156
+ // biome-ignore lint/style/useNamingConvention: _crdt is the CRDT state storage key — internal convention that must not be renamed
157
+ _crdt: stateData,
158
+ },
159
+ updatedAt: new Date(),
160
+ })
161
+ .where(eq(agentContexts.id, crdtId));
162
+ }
163
+ else {
164
+ await this.db.insert(agentContexts).values({
165
+ id: crdtId,
166
+ version: 1,
167
+ sessionId: crdtId.split(':')[0] || '',
168
+ agentId: crdtId.split(':')[1] || '',
169
+ context: {
170
+ // biome-ignore lint/style/useNamingConvention: _crdt is the CRDT state storage key — internal convention that must not be renamed
171
+ _crdt: stateData,
172
+ },
173
+ priority: 0.5,
174
+ createdAt: new Date(),
175
+ updatedAt: new Date(),
176
+ });
177
+ }
178
+ }
179
+ /**
180
+ * Loads composite CRDT state (multiple CRDTs from one record).
181
+ *
182
+ * @param crdtId - Unique identifier
183
+ * @returns Map of CRDT key (e.g., "lww_register:context") to serialized data
184
+ */
185
+ async loadCompositeState(crdtId) {
186
+ const context = await findAgentContextById(this.db, crdtId);
187
+ const result = new Map();
188
+ if (!context?.context) {
189
+ return result;
190
+ }
191
+ const contextData = context.context;
192
+ const crdtData = contextData._crdt;
193
+ if (!crdtData) {
194
+ return result;
195
+ }
196
+ // Return all CRDT states with their keys
197
+ for (const [key, data] of Object.entries(crdtData)) {
198
+ if (data && typeof data === 'object') {
199
+ result.set(key, data);
200
+ }
201
+ }
202
+ return result;
203
+ }
204
+ }
@@ -0,0 +1,7 @@
1
+ /**
2
+ * CRDT Persistence Layer
3
+ *
4
+ * Adapters for saving/loading CRDT state to/from database.
5
+ */
6
+ export { type CRDTOperationPayload, type CRDTOperationType, CRDTPersistence, type CRDTStateData, type CRDTType, } from './crdt-persistence.js';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/memory/persistence/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACtB,eAAe,EACf,KAAK,aAAa,EAClB,KAAK,QAAQ,GACd,MAAM,uBAAuB,CAAA"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * CRDT Persistence Layer
3
+ *
4
+ * Adapters for saving/loading CRDT state to/from database.
5
+ */
6
+ export { CRDTPersistence, } from './crdt-persistence.js';
@@ -0,0 +1,7 @@
1
+ /**
2
+ * User Preferences Management
3
+ *
4
+ * CRDT-backed user preferences management.
5
+ */
6
+ export { UserPreferencesManager } from './user-preferences-manager.js';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/memory/preferences/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAA"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * User Preferences Management
3
+ *
4
+ * CRDT-backed user preferences management.
5
+ */
6
+ export { UserPreferencesManager } from './user-preferences-manager.js';
@@ -0,0 +1,133 @@
1
+ /**
2
+ * User Preferences Manager
3
+ *
4
+ * Manages user preferences with CRDT support for conflict-free updates
5
+ * from multiple devices. Uses LWWRegister for last-writer-wins semantics.
6
+ */
7
+ import type { UserPreferences } from '@revealui/contracts/entities';
8
+ import type { Database } from '@revealui/db/client';
9
+ import { type LWWRegisterData } from '../crdt/lww-register.js';
10
+ /**
11
+ * Manages user preferences with CRDT support.
12
+ *
13
+ * Note: This implementation stores CRDT state directly in users.preferences JSONB field.
14
+ * All preferences must be in CRDT format - legacy format is not supported.
15
+ *
16
+ * @example
17
+ * ```typescript
18
+ * const manager = new UserPreferencesManager('user-123', 'node-abc', db)
19
+ * await manager.load()
20
+ *
21
+ * await manager.updatePreferences({ theme: 'dark' })
22
+ * const prefs = manager.getPreferences()
23
+ *
24
+ * await manager.save()
25
+ * ```
26
+ */
27
+ export declare class UserPreferencesManager {
28
+ private preferences;
29
+ private userId;
30
+ private nodeId;
31
+ private db;
32
+ private logger;
33
+ /**
34
+ * Creates a new UserPreferencesManager.
35
+ *
36
+ * @param userId - User identifier
37
+ * @param nodeId - Node identifier (for CRDT operations)
38
+ * @param db - Database client
39
+ */
40
+ constructor(userId: string, nodeId: string, db: Database);
41
+ /**
42
+ * Gets the current preferences.
43
+ *
44
+ * @returns Current user preferences
45
+ */
46
+ getPreferences(): UserPreferences;
47
+ /**
48
+ * Updates preferences with partial data.
49
+ * Merges with existing preferences.
50
+ *
51
+ * @param updates - Partial preferences updates
52
+ */
53
+ updatePreferences(updates: Partial<UserPreferences>): void;
54
+ /**
55
+ * Sets entire preferences object.
56
+ *
57
+ * @param preferences - Complete preferences object
58
+ */
59
+ setPreferences(preferences: UserPreferences): void;
60
+ /**
61
+ * Gets a specific preference value.
62
+ *
63
+ * @param key - Preference key (supports dot notation for nested keys)
64
+ * @returns Preference value or undefined
65
+ */
66
+ getPreference(key: string): unknown;
67
+ /**
68
+ * Sets a specific preference value.
69
+ *
70
+ * @param key - Preference key (supports dot notation for nested keys)
71
+ * @param value - Preference value
72
+ */
73
+ setPreference(key: string, value: unknown): void;
74
+ /**
75
+ * Merges another UserPreferencesManager into this one.
76
+ * Uses CRDT merge for conflict resolution.
77
+ *
78
+ * @param other - UserPreferencesManager to merge
79
+ * @returns New merged UserPreferencesManager
80
+ */
81
+ merge(other: UserPreferencesManager): UserPreferencesManager;
82
+ /**
83
+ * Loads preferences from database.
84
+ * Stores CRDT state directly in users.preferences JSONB field.
85
+ * Requires preferences to be in CRDT format.
86
+ *
87
+ * @throws DatabaseConnectionError if database connection fails
88
+ * @throws DatabaseOperationError if database operation fails
89
+ * @throws ValidationError if preferences are not in CRDT format
90
+ */
91
+ load(): Promise<void>;
92
+ /**
93
+ * Saves preferences to database.
94
+ * Stores CRDT state directly in users.preferences JSONB field.
95
+ *
96
+ * @throws NotFoundError if user does not exist
97
+ * @throws DatabaseConnectionError if database connection fails
98
+ * @throws DatabaseConstraintError if database constraint violation occurs
99
+ * @throws DatabaseOperationError if database operation fails
100
+ */
101
+ save(): Promise<void>;
102
+ /**
103
+ * Serializes preferences to plain object.
104
+ *
105
+ * @returns Serialized data
106
+ */
107
+ toData(): LWWRegisterData<UserPreferences>;
108
+ /**
109
+ * Deserializes preferences from plain object.
110
+ *
111
+ * @param data - Serialized data
112
+ * @param userId - User identifier
113
+ * @param nodeId - Node identifier
114
+ * @param db - Database client
115
+ * @returns New UserPreferencesManager instance
116
+ */
117
+ static fromData(data: LWWRegisterData<UserPreferences>, userId: string, nodeId: string, db: Database): UserPreferencesManager;
118
+ /**
119
+ * Creates a copy of this UserPreferencesManager.
120
+ *
121
+ * @returns New UserPreferencesManager with same state
122
+ */
123
+ clone(): UserPreferencesManager;
124
+ /**
125
+ * Gets the user ID.
126
+ */
127
+ getUserId(): string;
128
+ /**
129
+ * Gets the node ID.
130
+ */
131
+ getNodeId(): string;
132
+ }
133
+ //# sourceMappingURL=user-preferences-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-preferences-manager.d.ts","sourceRoot":"","sources":["../../../src/memory/preferences/user-preferences-manager.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AAEnE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAEnD,OAAO,EAAe,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAgB3E;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,sBAAsB;IACjC,OAAO,CAAC,WAAW,CAA8B;IACjD,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,EAAE,CAAU;IACpB,OAAO,CAAC,MAAM,CAAoC;IAElD;;;;;;OAMG;gBACS,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ;IAcxD;;;;OAIG;IACH,cAAc,IAAI,eAAe;IAIjC;;;;;OAKG;IACH,iBAAiB,CAAC,OAAO,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,IAAI;IAsB1D;;;;OAIG;IACH,cAAc,CAAC,WAAW,EAAE,eAAe,GAAG,IAAI;IAUlD;;;;;OAKG;IACH,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAgBnC;;;;;OAKG;IACH,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAiChD;;;;;;OAMG;IACH,KAAK,CAAC,KAAK,EAAE,sBAAsB,GAAG,sBAAsB;IAM5D;;;;;;;;OAQG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAiF3B;;;;;;;;OAQG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA6E3B;;;;OAIG;IACH,MAAM,IAAI,eAAe,CAAC,eAAe,CAAC;IAI1C;;;;;;;;OAQG;IACH,MAAM,CAAC,QAAQ,CACb,IAAI,EAAE,eAAe,CAAC,eAAe,CAAC,EACtC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,EAAE,EAAE,QAAQ,GACX,sBAAsB;IAMzB;;;;OAIG;IACH,KAAK,IAAI,sBAAsB;IAI/B;;OAEG;IACH,SAAS,IAAI,MAAM;IAInB;;OAEG;IACH,SAAS,IAAI,MAAM;CAGpB"}