@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,233 @@
1
+ /**
2
+ * Response Cache for LLM Providers
3
+ *
4
+ * Application-level caching for LLM responses. Works with any provider.
5
+ * Provides 100% cost savings on cache hits vs Anthropic's 90% token-level savings.
6
+ *
7
+ * Use cases:
8
+ * - Vultr (doesn't have prompt caching)
9
+ * - OpenAI (doesn't have prompt caching)
10
+ * - Any provider without built-in caching
11
+ * - Supplement to Anthropic prompt caching for exact duplicates
12
+ *
13
+ * Features:
14
+ * - LRU eviction policy
15
+ * - Configurable TTL (default: 5 minutes)
16
+ * - SHA-256 based cache keys
17
+ * - Hit/miss statistics
18
+ * - Memory-efficient storage
19
+ */
20
+ import { createHash } from 'node:crypto';
21
+ import { LRUCache } from 'lru-cache';
22
+ /**
23
+ * Response cache for LLM completions
24
+ *
25
+ * @example
26
+ * ```typescript
27
+ * const cache = new ResponseCache({ max: 1000, ttl: 5 * 60 * 1000 })
28
+ *
29
+ * const key = cache.getCacheKey(messages, options)
30
+ * const cached = cache.get(key)
31
+ *
32
+ * if (cached) {
33
+ * return { ...cached, cached: true }
34
+ * }
35
+ *
36
+ * const response = await llm.chat(messages, options)
37
+ * cache.set(key, response)
38
+ * ```
39
+ */
40
+ export class ResponseCache {
41
+ cache;
42
+ stats;
43
+ enableStats;
44
+ constructor(options = {}) {
45
+ this.enableStats = options.enableStats ?? true;
46
+ this.cache = new LRUCache({
47
+ max: options.max ?? 1000,
48
+ ttl: options.ttl ?? 5 * 60 * 1000, // 5 minutes default
49
+ updateAgeOnGet: true, // Reset TTL on access
50
+ dispose: () => {
51
+ if (this.enableStats) {
52
+ this.stats.evictions++;
53
+ }
54
+ },
55
+ });
56
+ this.stats = {
57
+ hits: 0,
58
+ misses: 0,
59
+ evictions: 0,
60
+ };
61
+ }
62
+ /**
63
+ * Generate cache key from messages and options
64
+ *
65
+ * Uses SHA-256 hash of JSON-serialized payload for:
66
+ * - Consistent key generation
67
+ * - Fixed-length keys (64 chars)
68
+ * - Security (prevents key enumeration)
69
+ */
70
+ getCacheKey(messages, options) {
71
+ // Normalize messages (remove non-deterministic fields)
72
+ const normalizedMessages = messages.map((msg) => ({
73
+ role: msg.role,
74
+ content: msg.content,
75
+ name: msg.name,
76
+ toolCallId: msg.toolCallId,
77
+ }));
78
+ const payload = {
79
+ messages: normalizedMessages,
80
+ temperature: options?.temperature,
81
+ maxTokens: options?.maxTokens,
82
+ tools: options?.tools,
83
+ model: options?.model,
84
+ };
85
+ const json = JSON.stringify(payload);
86
+ return createHash('sha256').update(json).digest('hex');
87
+ }
88
+ /**
89
+ * Get cached response
90
+ *
91
+ * @returns Cached response or undefined if not found/expired
92
+ */
93
+ get(key) {
94
+ const cached = this.cache.get(key);
95
+ if (cached) {
96
+ if (this.enableStats) {
97
+ this.stats.hits++;
98
+ }
99
+ return cached;
100
+ }
101
+ if (this.enableStats) {
102
+ this.stats.misses++;
103
+ }
104
+ return undefined;
105
+ }
106
+ /**
107
+ * Store response in cache
108
+ */
109
+ set(key, response) {
110
+ // Ensure timestamp is set
111
+ if (!response.timestamp) {
112
+ response.timestamp = Date.now();
113
+ }
114
+ this.cache.set(key, response);
115
+ }
116
+ /**
117
+ * Check if key exists in cache (without updating stats)
118
+ */
119
+ has(key) {
120
+ return this.cache.has(key);
121
+ }
122
+ /**
123
+ * Remove entry from cache
124
+ */
125
+ delete(key) {
126
+ return this.cache.delete(key);
127
+ }
128
+ /**
129
+ * Clear all cached responses
130
+ */
131
+ clear() {
132
+ this.cache.clear();
133
+ if (this.enableStats) {
134
+ // Reset stats but preserve eviction count
135
+ this.stats.hits = 0;
136
+ this.stats.misses = 0;
137
+ }
138
+ }
139
+ /**
140
+ * Get cache statistics
141
+ */
142
+ getStats() {
143
+ const totalRequests = this.stats.hits + this.stats.misses;
144
+ const hitRate = totalRequests > 0 ? (this.stats.hits / totalRequests) * 100 : 0;
145
+ return {
146
+ hits: this.stats.hits,
147
+ misses: this.stats.misses,
148
+ evictions: this.stats.evictions,
149
+ hitRate: Math.round(hitRate * 100) / 100, // 2 decimal places
150
+ size: this.cache.size,
151
+ };
152
+ }
153
+ /**
154
+ * Reset statistics
155
+ */
156
+ resetStats() {
157
+ this.stats = {
158
+ hits: 0,
159
+ misses: 0,
160
+ evictions: 0,
161
+ };
162
+ }
163
+ /**
164
+ * Get cache size (number of entries)
165
+ */
166
+ get size() {
167
+ return this.cache.size;
168
+ }
169
+ /**
170
+ * Get maximum cache size
171
+ */
172
+ get maxSize() {
173
+ return this.cache.max;
174
+ }
175
+ }
176
+ /**
177
+ * Global response cache instance
178
+ * Shared across all LLM client instances in the process
179
+ */
180
+ let globalCache = null;
181
+ /**
182
+ * Get or create global response cache
183
+ *
184
+ * @example
185
+ * ```typescript
186
+ * const cache = getGlobalResponseCache()
187
+ * const stats = cache.getStats()
188
+ * // Hit rate: ${stats.hitRate}%
189
+ * ```
190
+ */
191
+ export function getGlobalResponseCache(options) {
192
+ if (!globalCache) {
193
+ globalCache = new ResponseCache(options);
194
+ }
195
+ return globalCache;
196
+ }
197
+ /**
198
+ * Clear global response cache
199
+ */
200
+ export function clearGlobalResponseCache() {
201
+ if (globalCache) {
202
+ globalCache.clear();
203
+ }
204
+ }
205
+ /**
206
+ * Calculate cost savings from response caching
207
+ *
208
+ * @example
209
+ * ```typescript
210
+ * const stats = cache.getStats()
211
+ * const savings = calculateResponseCacheSavings(stats, {
212
+ * avgInputTokens: 3000,
213
+ * avgOutputTokens: 500,
214
+ * inputCostPerM: 3.0,
215
+ * outputCostPerM: 15.0,
216
+ * })
217
+ *
218
+ * // Saved: $${savings.totalSaved.toFixed(2)}
219
+ * // Avoided ${savings.tokensAvoided.toLocaleString()} tokens
220
+ * ```
221
+ */
222
+ export function calculateResponseCacheSavings(stats, pricing) {
223
+ const requestsAvoided = stats.hits;
224
+ const tokensAvoided = (pricing.avgInputTokens + pricing.avgOutputTokens) * requestsAvoided;
225
+ const inputSaved = (requestsAvoided * pricing.avgInputTokens * pricing.inputCostPerM) / 1_000_000;
226
+ const outputSaved = (requestsAvoided * pricing.avgOutputTokens * pricing.outputCostPerM) / 1_000_000;
227
+ const totalSaved = inputSaved + outputSaved;
228
+ return {
229
+ totalSaved,
230
+ tokensAvoided,
231
+ requestsAvoided,
232
+ };
233
+ }
@@ -0,0 +1,179 @@
1
+ /**
2
+ * Semantic Cache for LLM Responses
3
+ *
4
+ * Caches responses based on semantic similarity rather than exact matches.
5
+ * Provides 73% cost reduction vs 20% from exact match caching.
6
+ *
7
+ * Key Features:
8
+ * - Vector-based similarity search (cosine similarity)
9
+ * - Configurable similarity threshold (default: 0.95)
10
+ * - Automatic cache warming
11
+ * - TTL-based expiration
12
+ * - Hit/miss statistics
13
+ *
14
+ * Real-world impact:
15
+ * - 73% cost reduction (vs 20% for exact matches)
16
+ * - 96.9% latency reduction on cache hits
17
+ * - 65% cache hit rate (vs 18% for exact matches)
18
+ *
19
+ * Examples of semantic matches:
20
+ * - "How do I reset my password?" ✅ cached
21
+ * - "What's the process to reset my password?" ✅ also cached (same meaning)
22
+ * - "Help me reset my password" ✅ also cached (same meaning)
23
+ *
24
+ * @see https://redis.io/blog/what-is-semantic-caching/
25
+ */
26
+ import type { Message } from './providers/base.js';
27
+ export interface SemanticCacheOptions {
28
+ /** Similarity threshold for cache hits (0-1, default: 0.95) */
29
+ similarityThreshold?: number;
30
+ /** Time to live in milliseconds (default: 1 hour) */
31
+ ttl?: number;
32
+ /** Enable statistics tracking (default: true) */
33
+ enableStats?: boolean;
34
+ /** User ID for multi-tenant caching */
35
+ userId?: string;
36
+ /** Site ID for multi-tenant caching */
37
+ siteId?: string;
38
+ }
39
+ export interface SemanticCacheStats {
40
+ hits: number;
41
+ misses: number;
42
+ hitRate: number;
43
+ avgSimilarity: number;
44
+ totalQueries: number;
45
+ }
46
+ export interface CachedSemanticResponse {
47
+ query: string;
48
+ response: string;
49
+ embedding: number[];
50
+ similarity: number;
51
+ timestamp: number;
52
+ usage?: {
53
+ promptTokens: number;
54
+ completionTokens: number;
55
+ totalTokens: number;
56
+ };
57
+ }
58
+ /**
59
+ * Semantic cache that uses vector similarity for intelligent caching
60
+ *
61
+ * @example
62
+ * ```typescript
63
+ * const cache = new SemanticCache({ similarityThreshold: 0.95 })
64
+ *
65
+ * // Check cache
66
+ * const cached = await cache.get("How do I reset my password?")
67
+ * if (cached) {
68
+ * return cached.response // 100% cost savings!
69
+ * }
70
+ *
71
+ * // Cache miss - call LLM
72
+ * const response = await llm.chat(messages)
73
+ *
74
+ * // Store in cache
75
+ * await cache.set("How do I reset my password?", response)
76
+ * ```
77
+ */
78
+ export declare class SemanticCache {
79
+ private vectorService;
80
+ private options;
81
+ private stats;
82
+ private logger;
83
+ constructor(options?: SemanticCacheOptions);
84
+ /**
85
+ * Get cached response for semantically similar query
86
+ *
87
+ * @param query - User query to search for
88
+ * @returns Cached response if similar query found, undefined otherwise
89
+ */
90
+ get(query: string): Promise<CachedSemanticResponse | undefined>;
91
+ /**
92
+ * Store response in semantic cache
93
+ *
94
+ * @param query - Original user query
95
+ * @param response - LLM response to cache
96
+ * @param usage - Optional token usage stats
97
+ */
98
+ set(query: string, response: string, usage?: {
99
+ promptTokens: number;
100
+ completionTokens: number;
101
+ totalTokens: number;
102
+ }): Promise<void>;
103
+ /**
104
+ * Extract query text from messages
105
+ *
106
+ * Combines all user messages into a single query string for caching
107
+ */
108
+ extractQuery(messages: Message[]): string;
109
+ /**
110
+ * Get cache statistics
111
+ */
112
+ getStats(): SemanticCacheStats;
113
+ /**
114
+ * Reset statistics
115
+ */
116
+ resetStats(): void;
117
+ /**
118
+ * Clear expired cache entries
119
+ *
120
+ * @returns Number of entries cleared
121
+ */
122
+ clearExpired(): Promise<number>;
123
+ /**
124
+ * Warm cache with common queries
125
+ *
126
+ * Pre-populate cache with FAQ responses
127
+ *
128
+ * @example
129
+ * ```typescript
130
+ * await cache.warmCache([
131
+ * { query: 'How do I reset my password?', response: 'Go to...' },
132
+ * { query: 'What are your hours?', response: 'We are open...' },
133
+ * ])
134
+ * ```
135
+ */
136
+ warmCache(entries: Array<{
137
+ query: string;
138
+ response: string;
139
+ }>): Promise<void>;
140
+ }
141
+ /**
142
+ * Calculate cost savings from semantic caching
143
+ *
144
+ * @example
145
+ * ```typescript
146
+ * const stats = cache.getStats()
147
+ * const savings = calculateSemanticCacheSavings(stats, {
148
+ * avgTokensPerQuery: 3500,
149
+ * costPerMTokens: 3.0,
150
+ * })
151
+ *
152
+ * // Saved: $X.XX, Avoided: N API calls
153
+ * logger.info('Cache savings', { saved: savings.totalSaved, avoided: savings.queriesAvoided })
154
+ * ```
155
+ */
156
+ export declare function calculateSemanticCacheSavings(stats: SemanticCacheStats, pricing: {
157
+ avgTokensPerQuery: number;
158
+ costPerMTokens: number;
159
+ }): {
160
+ totalSaved: number;
161
+ queriesAvoided: number;
162
+ tokensAvoided: number;
163
+ };
164
+ /**
165
+ * Get or create global semantic cache
166
+ *
167
+ * @example
168
+ * ```typescript
169
+ * const cache = getGlobalSemanticCache({ similarityThreshold: 0.95 })
170
+ * const stats = cache.getStats()
171
+ * // Access stats.hitRate, stats.hits, stats.misses, etc.
172
+ * ```
173
+ */
174
+ export declare function getGlobalSemanticCache(options?: SemanticCacheOptions): SemanticCache;
175
+ /**
176
+ * Clear global semantic cache
177
+ */
178
+ export declare function clearGlobalSemanticCache(): void;
179
+ //# sourceMappingURL=semantic-cache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"semantic-cache.d.ts","sourceRoot":"","sources":["../../src/llm/semantic-cache.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAKH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAElD,MAAM,WAAW,oBAAoB;IACnC,+DAA+D;IAC/D,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,qDAAqD;IACrD,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,iDAAiD;IACjD,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,uCAAuC;IACvC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,uCAAuC;IACvC,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf,aAAa,EAAE,MAAM,CAAA;IACrB,YAAY,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE;QACN,YAAY,EAAE,MAAM,CAAA;QACpB,gBAAgB,EAAE,MAAM,CAAA;QACxB,WAAW,EAAE,MAAM,CAAA;KACpB,CAAA;CACF;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,aAAa,CAAqB;IAC1C,OAAO,CAAC,OAAO,CAAgC;IAC/C,OAAO,CAAC,KAAK,CAIZ;IACD,OAAO,CAAC,MAAM,CAAkC;gBAEpC,OAAO,GAAE,oBAAyB;IAiB9C;;;;;OAKG;IACG,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,GAAG,SAAS,CAAC;IAwFrE;;;;;;OAMG;IACG,GAAG,CACP,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,KAAK,CAAC,EAAE;QACN,YAAY,EAAE,MAAM,CAAA;QACpB,gBAAgB,EAAE,MAAM,CAAA;QACxB,WAAW,EAAE,MAAM,CAAA;KACpB,GACA,OAAO,CAAC,IAAI,CAAC;IAqChB;;;;OAIG;IACH,YAAY,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,MAAM;IAOzC;;OAEG;IACH,QAAQ,IAAI,kBAAkB;IAmB9B;;OAEG;IACH,UAAU,IAAI,IAAI;IAQlB;;;;OAIG;IACG,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;IAMrC;;;;;;;;;;;;OAYG;IACG,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;CAKpF;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,kBAAkB,EACzB,OAAO,EAAE;IACP,iBAAiB,EAAE,MAAM,CAAA;IACzB,cAAc,EAAE,MAAM,CAAA;CACvB,GACA;IACD,UAAU,EAAE,MAAM,CAAA;IAClB,cAAc,EAAE,MAAM,CAAA;IACtB,aAAa,EAAE,MAAM,CAAA;CACtB,CAUA;AAQD;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,aAAa,CAKpF;AAED;;GAEG;AACH,wBAAgB,wBAAwB,IAAI,IAAI,CAE/C"}