@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,335 @@
1
+ /**
2
+ * Vector Memory Service
3
+ *
4
+ * Service for managing agent memories in Supabase with vector search capabilities.
5
+ * Uses pgvector for semantic similarity search.
6
+ *
7
+ * @example
8
+ * ```typescript
9
+ * import { VectorMemoryService } from '@revealui/ai/memory/vector/vector-memory-service'
10
+ *
11
+ * const service = new VectorMemoryService()
12
+ * const memories = await service.searchSimilar(embedding, { siteId: 'site-123', limit: 10 })
13
+ * ```
14
+ */
15
+ import { getVectorClient } from '@revealui/db/client';
16
+ import { agentMemories } from '@revealui/db/schema/vector';
17
+ import { and, eq, sql } from 'drizzle-orm';
18
+ /**
19
+ * Vector Memory Service for semantic search operations.
20
+ */
21
+ export class VectorMemoryService {
22
+ _db = null;
23
+ /**
24
+ * Lazy-load database client to avoid connection initialization at module import time.
25
+ * This allows the module to be imported in test environments without triggering database connections.
26
+ */
27
+ get db() {
28
+ if (!this._db) {
29
+ this._db = getVectorClient();
30
+ }
31
+ return this._db;
32
+ }
33
+ /**
34
+ * Search for similar memories using vector similarity.
35
+ *
36
+ * @param queryEmbedding - Query embedding vector (768 dimensions — Ollama nomic-embed-text)
37
+ * @param options - Search options (filtering, limits, etc.)
38
+ * @returns Array of memories with similarity scores, sorted by similarity (highest first)
39
+ *
40
+ * @example
41
+ * ```typescript
42
+ * const embedding = await generateEmbedding('user prefers dark theme')
43
+ * const results = await service.searchSimilar(embedding, {
44
+ * siteId: 'site-123',
45
+ * limit: 10,
46
+ * threshold: 0.7
47
+ * })
48
+ * ```
49
+ */
50
+ async searchSimilar(queryEmbedding, options = {}) {
51
+ // Validate embedding dimensions
52
+ if (queryEmbedding.length !== 768) {
53
+ throw new Error(`Invalid embedding dimension: expected 768, got ${queryEmbedding.length}`);
54
+ }
55
+ // Build where conditions
56
+ const conditions = [];
57
+ if (options.siteId) {
58
+ conditions.push(eq(agentMemories.siteId, options.siteId));
59
+ }
60
+ if (options.agentId) {
61
+ conditions.push(eq(agentMemories.agentId, options.agentId));
62
+ }
63
+ if (options.type) {
64
+ conditions.push(eq(agentMemories.type, options.type));
65
+ }
66
+ // Build query with vector similarity
67
+ // Using cosine distance (<->) operator from pgvector
68
+ // 1 - distance = similarity (higher is better)
69
+ const query = this.db
70
+ .select({
71
+ id: agentMemories.id,
72
+ version: agentMemories.version,
73
+ content: agentMemories.content,
74
+ type: agentMemories.type,
75
+ source: agentMemories.source,
76
+ embedding: agentMemories.embedding,
77
+ embeddingMetadata: agentMemories.embeddingMetadata,
78
+ metadata: agentMemories.metadata,
79
+ accessCount: agentMemories.accessCount,
80
+ accessedAt: agentMemories.accessedAt,
81
+ verified: agentMemories.verified,
82
+ verifiedBy: agentMemories.verifiedBy,
83
+ verifiedAt: agentMemories.verifiedAt,
84
+ siteId: agentMemories.siteId,
85
+ agentId: agentMemories.agentId,
86
+ createdAt: agentMemories.createdAt,
87
+ expiresAt: agentMemories.expiresAt,
88
+ // Calculate similarity: 1 - cosine_distance
89
+ // Cosine distance returns 0-2, where 0 is identical
90
+ // We convert to similarity: 1 - (distance / 2) gives us 0-1 range
91
+ similarity: sql `1 - (embedding <-> ${JSON.stringify(queryEmbedding)}::vector) / 2`,
92
+ })
93
+ .from(agentMemories)
94
+ .where(and(
95
+ // Only search memories with embeddings
96
+ sql `embedding IS NOT NULL`,
97
+ // Apply filters
98
+ ...conditions,
99
+ // Apply similarity threshold if provided
100
+ options.threshold !== undefined
101
+ ? sql `1 - (embedding <-> ${JSON.stringify(queryEmbedding)}::vector) / 2 >= ${options.threshold}`
102
+ : undefined))
103
+ .orderBy(sql `embedding <-> ${JSON.stringify(queryEmbedding)}::vector`)
104
+ .limit(options.limit ?? 10);
105
+ const results = await query;
106
+ // Transform results to match AgentMemory schema
107
+ return results.map((row) => {
108
+ // Convert embedding from string format to number array if needed
109
+ let embedding;
110
+ if (row.embedding) {
111
+ // Embedding is stored as vector type, Drizzle should handle conversion
112
+ // But we need to construct the Embedding object
113
+ const embeddingMetadata = row.embeddingMetadata;
114
+ if (embeddingMetadata) {
115
+ embedding = {
116
+ vector: Array.isArray(row.embedding) ? row.embedding : [],
117
+ model: embeddingMetadata.model,
118
+ dimension: embeddingMetadata.dimension,
119
+ generatedAt: embeddingMetadata.generatedAt,
120
+ };
121
+ }
122
+ }
123
+ const memory = {
124
+ id: row.id,
125
+ version: row.version,
126
+ content: row.content,
127
+ type: row.type,
128
+ source: row.source,
129
+ embedding,
130
+ metadata: row.metadata || {},
131
+ accessCount: row.accessCount || 0,
132
+ accessedAt: row.accessedAt?.toISOString() || new Date().toISOString(),
133
+ verified: row.verified ?? false,
134
+ createdAt: row.createdAt.toISOString(),
135
+ };
136
+ return {
137
+ memory,
138
+ similarity: row.similarity || 0,
139
+ };
140
+ });
141
+ }
142
+ /**
143
+ * Create a new memory in the vector database.
144
+ *
145
+ * @param memory - Memory to create (without id, createdAt, accessedAt)
146
+ * @returns Created memory with generated id and timestamps
147
+ */
148
+ async create(memory) {
149
+ const id = memory.id || `mem-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;
150
+ const now = new Date();
151
+ // Pass embedding vector directly - Drizzle's vector type will handle conversion
152
+ // The vector custom type has toDriver() that converts number[] to string format
153
+ const embeddingVector = memory.embedding?.vector || null;
154
+ const result = await this.db
155
+ .insert(agentMemories)
156
+ .values({
157
+ id,
158
+ version: memory.version || 1,
159
+ content: memory.content,
160
+ type: memory.type,
161
+ source: memory.source,
162
+ embedding: embeddingVector,
163
+ embeddingMetadata: memory.embedding || null,
164
+ metadata: memory.metadata || {},
165
+ accessCount: 0,
166
+ accessedAt: now,
167
+ verified: memory.verified,
168
+ verifiedBy: null, // Can be set via update
169
+ verifiedAt: null,
170
+ siteId: memory.metadata?.siteId || null,
171
+ agentId: memory.metadata?.custom?.agentId || null,
172
+ createdAt: now,
173
+ expiresAt: memory.metadata?.expiresAt ? new Date(memory.metadata.expiresAt) : null,
174
+ })
175
+ .returning();
176
+ const row = result[0];
177
+ if (!row) {
178
+ throw new Error('Failed to create memory');
179
+ }
180
+ // Convert back to AgentMemory format
181
+ let embedding;
182
+ if (row.embeddingMetadata) {
183
+ const metadata = row.embeddingMetadata;
184
+ embedding = {
185
+ vector: Array.isArray(row.embedding) ? row.embedding : [],
186
+ model: metadata.model,
187
+ dimension: metadata.dimension,
188
+ generatedAt: metadata.generatedAt,
189
+ };
190
+ }
191
+ return {
192
+ id: row.id,
193
+ version: row.version,
194
+ content: row.content,
195
+ type: row.type,
196
+ source: row.source,
197
+ embedding,
198
+ metadata: row.metadata || {},
199
+ accessCount: row.accessCount || 0,
200
+ accessedAt: row.accessedAt?.toISOString() || now.toISOString(),
201
+ verified: row.verified ?? false,
202
+ createdAt: row.createdAt.toISOString(),
203
+ };
204
+ }
205
+ /**
206
+ * Update an existing memory.
207
+ *
208
+ * @param id - Memory ID
209
+ * @param updates - Partial memory updates
210
+ * @returns Updated memory
211
+ */
212
+ async update(id, updates) {
213
+ const updateData = {};
214
+ if (updates.content !== undefined)
215
+ updateData.content = updates.content;
216
+ if (updates.type !== undefined)
217
+ updateData.type = updates.type;
218
+ if (updates.source !== undefined)
219
+ updateData.source = updates.source;
220
+ if (updates.metadata !== undefined)
221
+ updateData.metadata = updates.metadata;
222
+ if (updates.verified !== undefined)
223
+ updateData.verified = updates.verified;
224
+ if (updates.accessCount !== undefined)
225
+ updateData.accessCount = updates.accessCount;
226
+ if (updates.accessedAt !== undefined)
227
+ updateData.accessedAt = new Date(updates.accessedAt);
228
+ // Handle embedding update
229
+ // Pass vector directly - Drizzle's vector type will handle conversion
230
+ if (updates.embedding !== undefined) {
231
+ if (updates.embedding) {
232
+ updateData.embedding = updates.embedding.vector; // number[] - Drizzle converts to string
233
+ updateData.embeddingMetadata = updates.embedding;
234
+ }
235
+ else {
236
+ updateData.embedding = null;
237
+ updateData.embeddingMetadata = null;
238
+ }
239
+ }
240
+ // Update siteId and agentId from metadata if provided
241
+ if (updates.metadata?.siteId !== undefined) {
242
+ updateData.siteId = updates.metadata.siteId || null;
243
+ }
244
+ if (updates.metadata?.custom?.agentId !== undefined) {
245
+ updateData.agentId = updates.metadata.custom.agentId || null;
246
+ }
247
+ const result = await this.db
248
+ .update(agentMemories)
249
+ .set(updateData)
250
+ .where(eq(agentMemories.id, id))
251
+ .returning();
252
+ const row = result[0];
253
+ if (!row) {
254
+ throw new Error(`Memory not found: ${id}`);
255
+ }
256
+ // Convert back to AgentMemory format
257
+ let embedding;
258
+ if (row.embeddingMetadata) {
259
+ const metadata = row.embeddingMetadata;
260
+ embedding = {
261
+ vector: Array.isArray(row.embedding) ? row.embedding : [],
262
+ model: metadata.model,
263
+ dimension: metadata.dimension,
264
+ generatedAt: metadata.generatedAt,
265
+ };
266
+ }
267
+ return {
268
+ id: row.id,
269
+ version: row.version,
270
+ content: row.content,
271
+ type: row.type,
272
+ source: row.source,
273
+ embedding,
274
+ metadata: row.metadata || {},
275
+ accessCount: row.accessCount || 0,
276
+ accessedAt: row.accessedAt?.toISOString() || new Date().toISOString(),
277
+ verified: row.verified ?? false,
278
+ createdAt: row.createdAt.toISOString(),
279
+ };
280
+ }
281
+ /**
282
+ * Delete a memory by ID.
283
+ *
284
+ * @param id - Memory ID to delete
285
+ * @returns true if memory was deleted
286
+ */
287
+ async delete(id) {
288
+ const result = await this.db.delete(agentMemories).where(eq(agentMemories.id, id)).returning();
289
+ return result.length > 0;
290
+ }
291
+ /**
292
+ * Get a memory by ID.
293
+ *
294
+ * @param id - Memory ID
295
+ * @returns Memory if found, null otherwise
296
+ */
297
+ async getById(id) {
298
+ const result = await this.db
299
+ .select()
300
+ .from(agentMemories)
301
+ .where(eq(agentMemories.id, id))
302
+ .limit(1);
303
+ if (result.length === 0) {
304
+ return null;
305
+ }
306
+ const row = result[0];
307
+ if (!row) {
308
+ return null;
309
+ }
310
+ // Convert to AgentMemory format
311
+ let embedding;
312
+ if (row.embeddingMetadata) {
313
+ const metadata = row.embeddingMetadata;
314
+ embedding = {
315
+ vector: Array.isArray(row.embedding) ? row.embedding : [],
316
+ model: metadata.model,
317
+ dimension: metadata.dimension,
318
+ generatedAt: metadata.generatedAt,
319
+ };
320
+ }
321
+ return {
322
+ id: row.id,
323
+ version: row.version,
324
+ content: row.content,
325
+ type: row.type,
326
+ source: row.source,
327
+ embedding,
328
+ metadata: row.metadata || {},
329
+ accessCount: row.accessCount || 0,
330
+ accessedAt: row.accessedAt?.toISOString() || new Date().toISOString(),
331
+ verified: row.verified ?? false,
332
+ createdAt: row.createdAt.toISOString(),
333
+ };
334
+ }
335
+ }
@@ -0,0 +1,79 @@
1
+ /**
2
+ * @revealui/ai - Agent Event Logger
3
+ *
4
+ * Circular buffer event logger for tracking agent operations.
5
+ * Maintains last N events in memory with optional persistence.
6
+ */
7
+ import type { AnyAgentEvent, DecisionEvent, ErrorEvent, EventFilter, EventStorage, LLMCallEvent, ToolCallEvent } from './types.js';
8
+ /**
9
+ * Agent event logger with circular buffer
10
+ */
11
+ export declare class AgentEventLogger {
12
+ private events;
13
+ private maxEvents;
14
+ private storage?;
15
+ private autoFlush;
16
+ private flushInterval?;
17
+ constructor(options?: {
18
+ maxEvents?: number;
19
+ storage?: EventStorage;
20
+ autoFlush?: boolean;
21
+ flushIntervalMs?: number;
22
+ });
23
+ /**
24
+ * Log a decision event
25
+ */
26
+ logDecision(event: Omit<DecisionEvent, 'eventType'>): void;
27
+ /**
28
+ * Log a tool call event
29
+ */
30
+ logToolCall(event: Omit<ToolCallEvent, 'eventType'>): void;
31
+ /**
32
+ * Log an LLM call event
33
+ */
34
+ logLLMCall(event: Omit<LLMCallEvent, 'eventType'>): void;
35
+ /**
36
+ * Log an error event
37
+ */
38
+ logError(event: Omit<ErrorEvent, 'eventType'>): void;
39
+ /**
40
+ * Add event to circular buffer
41
+ */
42
+ private addEvent;
43
+ /**
44
+ * Get events matching filter
45
+ */
46
+ getEvents(filter?: EventFilter): AnyAgentEvent[];
47
+ /**
48
+ * Get recent N events
49
+ */
50
+ getRecentEvents(count: number): AnyAgentEvent[];
51
+ /**
52
+ * Get events by type
53
+ */
54
+ getDecisions(): DecisionEvent[];
55
+ getToolCalls(): ToolCallEvent[];
56
+ getLLMCalls(): LLMCallEvent[];
57
+ getErrors(): ErrorEvent[];
58
+ /**
59
+ * Get total event count
60
+ */
61
+ getCount(filter?: EventFilter): number;
62
+ /**
63
+ * Clear all events from buffer
64
+ */
65
+ clear(): void;
66
+ /**
67
+ * Flush events to storage
68
+ */
69
+ flush(): Promise<void>;
70
+ /**
71
+ * Load events from storage
72
+ */
73
+ load(filter?: EventFilter): Promise<void>;
74
+ /**
75
+ * Cleanup resources
76
+ */
77
+ destroy(): void;
78
+ }
79
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/observability/logger.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,aAAa,EACb,aAAa,EACb,UAAU,EACV,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,aAAa,EACd,MAAM,YAAY,CAAA;AAEnB;;GAEG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,SAAS,CAAQ;IACzB,OAAO,CAAC,OAAO,CAAC,CAAc;IAC9B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,aAAa,CAAC,CAAgB;gBAE1B,OAAO,CAAC,EAAE;QACpB,SAAS,CAAC,EAAE,MAAM,CAAA;QAClB,OAAO,CAAC,EAAE,YAAY,CAAA;QACtB,SAAS,CAAC,EAAE,OAAO,CAAA;QACnB,eAAe,CAAC,EAAE,MAAM,CAAA;KACzB;IAYD;;OAEG;IACH,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,WAAW,CAAC,GAAG,IAAI;IAO1D;;OAEG;IACH,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,WAAW,CAAC,GAAG,IAAI;IAO1D;;OAEG;IACH,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,GAAG,IAAI;IAOxD;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,GAAG,IAAI;IAOpD;;OAEG;IACH,OAAO,CAAC,QAAQ;IAShB;;OAEG;IACH,SAAS,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,aAAa,EAAE;IAoChD;;OAEG;IACH,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,EAAE;IAI/C;;OAEG;IACH,YAAY,IAAI,aAAa,EAAE;IAI/B,YAAY,IAAI,aAAa,EAAE;IAI/B,WAAW,IAAI,YAAY,EAAE;IAI7B,SAAS,IAAI,UAAU,EAAE;IAIzB;;OAEG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,MAAM;IAOtC;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ5B;;OAEG;IACG,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAS/C;;OAEG;IACH,OAAO,IAAI,IAAI;CAKhB"}
@@ -0,0 +1,165 @@
1
+ /**
2
+ * @revealui/ai - Agent Event Logger
3
+ *
4
+ * Circular buffer event logger for tracking agent operations.
5
+ * Maintains last N events in memory with optional persistence.
6
+ */
7
+ /**
8
+ * Agent event logger with circular buffer
9
+ */
10
+ export class AgentEventLogger {
11
+ events = [];
12
+ maxEvents;
13
+ storage;
14
+ autoFlush;
15
+ flushInterval;
16
+ constructor(options) {
17
+ this.maxEvents = options?.maxEvents ?? 1000;
18
+ this.storage = options?.storage;
19
+ this.autoFlush = options?.autoFlush ?? false;
20
+ if (this.autoFlush && this.storage && options?.flushIntervalMs) {
21
+ this.flushInterval = setInterval(() => {
22
+ void this.flush();
23
+ }, options.flushIntervalMs);
24
+ }
25
+ }
26
+ /**
27
+ * Log a decision event
28
+ */
29
+ logDecision(event) {
30
+ this.addEvent({
31
+ ...event,
32
+ eventType: 'decision',
33
+ });
34
+ }
35
+ /**
36
+ * Log a tool call event
37
+ */
38
+ logToolCall(event) {
39
+ this.addEvent({
40
+ ...event,
41
+ eventType: 'tool_call',
42
+ });
43
+ }
44
+ /**
45
+ * Log an LLM call event
46
+ */
47
+ logLLMCall(event) {
48
+ this.addEvent({
49
+ ...event,
50
+ eventType: 'llm_call',
51
+ });
52
+ }
53
+ /**
54
+ * Log an error event
55
+ */
56
+ logError(event) {
57
+ this.addEvent({
58
+ ...event,
59
+ eventType: 'error',
60
+ });
61
+ }
62
+ /**
63
+ * Add event to circular buffer
64
+ */
65
+ addEvent(event) {
66
+ this.events.push(event);
67
+ // Maintain circular buffer size
68
+ if (this.events.length > this.maxEvents) {
69
+ this.events.shift();
70
+ }
71
+ }
72
+ /**
73
+ * Get events matching filter
74
+ */
75
+ getEvents(filter) {
76
+ let filtered = [...this.events];
77
+ if (!filter) {
78
+ return filtered;
79
+ }
80
+ if (filter.agentId) {
81
+ filtered = filtered.filter((e) => e.agentId === filter.agentId);
82
+ }
83
+ if (filter.sessionId) {
84
+ filtered = filtered.filter((e) => e.sessionId === filter.sessionId);
85
+ }
86
+ if (filter.taskId) {
87
+ filtered = filtered.filter((e) => e.taskId === filter.taskId);
88
+ }
89
+ if (filter.eventType) {
90
+ filtered = filtered.filter((e) => e.eventType === filter.eventType);
91
+ }
92
+ if (filter.startTime) {
93
+ const startTime = filter.startTime;
94
+ filtered = filtered.filter((e) => e.timestamp >= startTime);
95
+ }
96
+ if (filter.endTime) {
97
+ const endTime = filter.endTime;
98
+ filtered = filtered.filter((e) => e.timestamp <= endTime);
99
+ }
100
+ return filtered;
101
+ }
102
+ /**
103
+ * Get recent N events
104
+ */
105
+ getRecentEvents(count) {
106
+ return this.events.slice(-count);
107
+ }
108
+ /**
109
+ * Get events by type
110
+ */
111
+ getDecisions() {
112
+ return this.events.filter((e) => e.eventType === 'decision');
113
+ }
114
+ getToolCalls() {
115
+ return this.events.filter((e) => e.eventType === 'tool_call');
116
+ }
117
+ getLLMCalls() {
118
+ return this.events.filter((e) => e.eventType === 'llm_call');
119
+ }
120
+ getErrors() {
121
+ return this.events.filter((e) => e.eventType === 'error');
122
+ }
123
+ /**
124
+ * Get total event count
125
+ */
126
+ getCount(filter) {
127
+ if (!filter) {
128
+ return this.events.length;
129
+ }
130
+ return this.getEvents(filter).length;
131
+ }
132
+ /**
133
+ * Clear all events from buffer
134
+ */
135
+ clear() {
136
+ this.events = [];
137
+ }
138
+ /**
139
+ * Flush events to storage
140
+ */
141
+ async flush() {
142
+ if (!this.storage) {
143
+ return;
144
+ }
145
+ await this.storage.save([...this.events]);
146
+ }
147
+ /**
148
+ * Load events from storage
149
+ */
150
+ async load(filter) {
151
+ if (!this.storage) {
152
+ return;
153
+ }
154
+ const events = await this.storage.load(filter);
155
+ this.events = events.slice(-this.maxEvents);
156
+ }
157
+ /**
158
+ * Cleanup resources
159
+ */
160
+ destroy() {
161
+ if (this.flushInterval) {
162
+ clearInterval(this.flushInterval);
163
+ }
164
+ }
165
+ }
@@ -0,0 +1,43 @@
1
+ /**
2
+ * @revealui/ai - Agent Metrics Collector
3
+ *
4
+ * Aggregates statistics from agent events for monitoring and analysis.
5
+ */
6
+ import type { AgentEventLogger } from './logger.js';
7
+ import type { AgentMetrics, EventFilter, LLMMetrics, MetricsSummary, ToolMetrics } from './types.js';
8
+ /**
9
+ * Agent metrics collector
10
+ */
11
+ export declare class AgentMetricsCollector {
12
+ private logger;
13
+ private startTime;
14
+ constructor(logger: AgentEventLogger);
15
+ /**
16
+ * Get metrics for a specific agent
17
+ */
18
+ getMetrics(agentId: string): AgentMetrics;
19
+ /**
20
+ * Calculate tool-specific metrics
21
+ */
22
+ private calculateToolMetrics;
23
+ /**
24
+ * Calculate LLM-specific metrics
25
+ */
26
+ private calculateLLMMetrics;
27
+ /**
28
+ * Get summary metrics across all agents
29
+ */
30
+ getMetricsSummary(filter?: EventFilter): MetricsSummary;
31
+ /**
32
+ * Get tool usage statistics
33
+ */
34
+ getToolUsageStats(): Array<{
35
+ toolName: string;
36
+ metrics: ToolMetrics;
37
+ }>;
38
+ /**
39
+ * Get LLM usage statistics
40
+ */
41
+ getLLMUsageStats(): LLMMetrics;
42
+ }
43
+ //# sourceMappingURL=metrics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../../src/observability/metrics.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AACnD,OAAO,KAAK,EACV,YAAY,EAEZ,WAAW,EACX,UAAU,EACV,cAAc,EACd,WAAW,EACZ,MAAM,YAAY,CAAA;AAEnB;;GAEG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,SAAS,CAAQ;gBAEb,MAAM,EAAE,gBAAgB;IAKpC;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY;IA+DzC;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAkC5B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAqC3B;;OAEG;IACH,iBAAiB,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,cAAc;IA8CvD;;OAEG;IACH,iBAAiB,IAAI,KAAK,CAAC;QACzB,QAAQ,EAAE,MAAM,CAAA;QAChB,OAAO,EAAE,WAAW,CAAA;KACrB,CAAC;IASF;;OAEG;IACH,gBAAgB,IAAI,UAAU;CAI/B"}