@ixo/common 1.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 (328) hide show
  1. package/.eslintrc.js +9 -0
  2. package/.prettierignore +3 -0
  3. package/.prettierrc.cjs +4 -0
  4. package/.turbo/turbo-build.log +4 -0
  5. package/CHANGELOG.md +76 -0
  6. package/README.md +245 -0
  7. package/dist/ai/checkpointer/index.d.ts +2 -0
  8. package/dist/ai/checkpointer/index.d.ts.map +1 -0
  9. package/dist/ai/checkpointer/index.js +2 -0
  10. package/dist/ai/checkpointer/index.js.map +1 -0
  11. package/dist/ai/index.d.ts +9 -0
  12. package/dist/ai/index.d.ts.map +1 -0
  13. package/dist/ai/index.js +9 -0
  14. package/dist/ai/index.js.map +1 -0
  15. package/dist/ai/models/index.d.ts +2 -0
  16. package/dist/ai/models/index.d.ts.map +1 -0
  17. package/dist/ai/models/index.js +2 -0
  18. package/dist/ai/models/index.js.map +1 -0
  19. package/dist/ai/models/openai.d.ts +10 -0
  20. package/dist/ai/models/openai.d.ts.map +1 -0
  21. package/dist/ai/models/openai.js +38 -0
  22. package/dist/ai/models/openai.js.map +1 -0
  23. package/dist/ai/models/openai.test.d.ts +2 -0
  24. package/dist/ai/models/openai.test.d.ts.map +1 -0
  25. package/dist/ai/models/openai.test.js +58 -0
  26. package/dist/ai/models/openai.test.js.map +1 -0
  27. package/dist/ai/nodes/create-fake-node.d.ts +2 -0
  28. package/dist/ai/nodes/create-fake-node.d.ts.map +1 -0
  29. package/dist/ai/nodes/create-fake-node.js +2 -0
  30. package/dist/ai/nodes/create-fake-node.js.map +1 -0
  31. package/dist/ai/nodes/find-docs/find-docs.prompt.d.ts +3 -0
  32. package/dist/ai/nodes/find-docs/find-docs.prompt.d.ts.map +1 -0
  33. package/dist/ai/nodes/find-docs/find-docs.prompt.js +61 -0
  34. package/dist/ai/nodes/find-docs/find-docs.prompt.js.map +1 -0
  35. package/dist/ai/nodes/find-docs/index.d.ts +3 -0
  36. package/dist/ai/nodes/find-docs/index.d.ts.map +1 -0
  37. package/dist/ai/nodes/find-docs/index.js +3 -0
  38. package/dist/ai/nodes/find-docs/index.js.map +1 -0
  39. package/dist/ai/nodes/find-docs/node.d.ts +17 -0
  40. package/dist/ai/nodes/find-docs/node.d.ts.map +1 -0
  41. package/dist/ai/nodes/find-docs/node.js +46 -0
  42. package/dist/ai/nodes/find-docs/node.js.map +1 -0
  43. package/dist/ai/nodes/generic-chat/generic-chat.node.d.ts +12 -0
  44. package/dist/ai/nodes/generic-chat/generic-chat.node.d.ts.map +1 -0
  45. package/dist/ai/nodes/generic-chat/generic-chat.node.js +34 -0
  46. package/dist/ai/nodes/generic-chat/generic-chat.node.js.map +1 -0
  47. package/dist/ai/nodes/generic-chat/generic-chat.prompt.d.ts +10 -0
  48. package/dist/ai/nodes/generic-chat/generic-chat.prompt.d.ts.map +1 -0
  49. package/dist/ai/nodes/generic-chat/generic-chat.prompt.js +58 -0
  50. package/dist/ai/nodes/generic-chat/generic-chat.prompt.js.map +1 -0
  51. package/dist/ai/nodes/generic-chat/index.d.ts +2 -0
  52. package/dist/ai/nodes/generic-chat/index.d.ts.map +1 -0
  53. package/dist/ai/nodes/generic-chat/index.js +2 -0
  54. package/dist/ai/nodes/generic-chat/index.js.map +1 -0
  55. package/dist/ai/nodes/index.d.ts +4 -0
  56. package/dist/ai/nodes/index.d.ts.map +1 -0
  57. package/dist/ai/nodes/index.js +4 -0
  58. package/dist/ai/nodes/index.js.map +1 -0
  59. package/dist/ai/semantic-router-factory/create-semantic-router.d.ts +7 -0
  60. package/dist/ai/semantic-router-factory/create-semantic-router.d.ts.map +1 -0
  61. package/dist/ai/semantic-router-factory/create-semantic-router.js +71 -0
  62. package/dist/ai/semantic-router-factory/create-semantic-router.js.map +1 -0
  63. package/dist/ai/semantic-router-factory/create-semantic-router.test.d.ts +2 -0
  64. package/dist/ai/semantic-router-factory/create-semantic-router.test.d.ts.map +1 -0
  65. package/dist/ai/semantic-router-factory/create-semantic-router.test.js +68 -0
  66. package/dist/ai/semantic-router-factory/create-semantic-router.test.js.map +1 -0
  67. package/dist/ai/semantic-router-factory/index.d.ts +4 -0
  68. package/dist/ai/semantic-router-factory/index.d.ts.map +1 -0
  69. package/dist/ai/semantic-router-factory/index.js +4 -0
  70. package/dist/ai/semantic-router-factory/index.js.map +1 -0
  71. package/dist/ai/semantic-router-factory/semantic-router-prompt.d.ts +2 -0
  72. package/dist/ai/semantic-router-factory/semantic-router-prompt.d.ts.map +1 -0
  73. package/dist/ai/semantic-router-factory/semantic-router-prompt.js +169 -0
  74. package/dist/ai/semantic-router-factory/semantic-router-prompt.js.map +1 -0
  75. package/dist/ai/semantic-router-factory/validate-routes.d.ts +2 -0
  76. package/dist/ai/semantic-router-factory/validate-routes.d.ts.map +1 -0
  77. package/dist/ai/semantic-router-factory/validate-routes.js +16 -0
  78. package/dist/ai/semantic-router-factory/validate-routes.js.map +1 -0
  79. package/dist/ai/tools/action-caller.d.ts +14 -0
  80. package/dist/ai/tools/action-caller.d.ts.map +1 -0
  81. package/dist/ai/tools/action-caller.js +12 -0
  82. package/dist/ai/tools/action-caller.js.map +1 -0
  83. package/dist/ai/tools/ask-ixo-guru/ask-ixo-guru.d.ts +25 -0
  84. package/dist/ai/tools/ask-ixo-guru/ask-ixo-guru.d.ts.map +1 -0
  85. package/dist/ai/tools/ask-ixo-guru/ask-ixo-guru.js +46 -0
  86. package/dist/ai/tools/ask-ixo-guru/ask-ixo-guru.js.map +1 -0
  87. package/dist/ai/tools/ask-ixo-guru/index.d.ts +2 -0
  88. package/dist/ai/tools/ask-ixo-guru/index.d.ts.map +1 -0
  89. package/dist/ai/tools/ask-ixo-guru/index.js +2 -0
  90. package/dist/ai/tools/ask-ixo-guru/index.js.map +1 -0
  91. package/dist/ai/tools/browser-tool-caller.d.ts +14 -0
  92. package/dist/ai/tools/browser-tool-caller.d.ts.map +1 -0
  93. package/dist/ai/tools/browser-tool-caller.js +12 -0
  94. package/dist/ai/tools/browser-tool-caller.js.map +1 -0
  95. package/dist/ai/tools/frontend-tool-caller.d.ts +10 -0
  96. package/dist/ai/tools/frontend-tool-caller.d.ts.map +1 -0
  97. package/dist/ai/tools/frontend-tool-caller.js +50 -0
  98. package/dist/ai/tools/frontend-tool-caller.js.map +1 -0
  99. package/dist/ai/tools/index.d.ts +11 -0
  100. package/dist/ai/tools/index.d.ts.map +1 -0
  101. package/dist/ai/tools/index.js +11 -0
  102. package/dist/ai/tools/index.js.map +1 -0
  103. package/dist/ai/tools/log-action-to-matrix.d.ts +13 -0
  104. package/dist/ai/tools/log-action-to-matrix.d.ts.map +1 -0
  105. package/dist/ai/tools/log-action-to-matrix.js +14 -0
  106. package/dist/ai/tools/log-action-to-matrix.js.map +1 -0
  107. package/dist/ai/tools/parser-action-tool.d.ts +8 -0
  108. package/dist/ai/tools/parser-action-tool.d.ts.map +1 -0
  109. package/dist/ai/tools/parser-action-tool.js +40 -0
  110. package/dist/ai/tools/parser-action-tool.js.map +1 -0
  111. package/dist/ai/tools/parser-browser-tool.d.ts +8 -0
  112. package/dist/ai/tools/parser-browser-tool.d.ts.map +1 -0
  113. package/dist/ai/tools/parser-browser-tool.js +38 -0
  114. package/dist/ai/tools/parser-browser-tool.js.map +1 -0
  115. package/dist/ai/tools/retriever-tool/index.d.ts +2 -0
  116. package/dist/ai/tools/retriever-tool/index.d.ts.map +1 -0
  117. package/dist/ai/tools/retriever-tool/index.js +2 -0
  118. package/dist/ai/tools/retriever-tool/index.js.map +1 -0
  119. package/dist/ai/tools/retriever-tool/retriever-tool.d.ts +18 -0
  120. package/dist/ai/tools/retriever-tool/retriever-tool.d.ts.map +1 -0
  121. package/dist/ai/tools/retriever-tool/retriever-tool.js +62 -0
  122. package/dist/ai/tools/retriever-tool/retriever-tool.js.map +1 -0
  123. package/dist/ai/tools/retriever-tool/retriever-tool.test.d.ts +2 -0
  124. package/dist/ai/tools/retriever-tool/retriever-tool.test.d.ts.map +1 -0
  125. package/dist/ai/tools/retriever-tool/retriever-tool.test.js +119 -0
  126. package/dist/ai/tools/retriever-tool/retriever-tool.test.js.map +1 -0
  127. package/dist/ai/tools/scrape-web-page.d.ts +7 -0
  128. package/dist/ai/tools/scrape-web-page.d.ts.map +1 -0
  129. package/dist/ai/tools/scrape-web-page.js +65 -0
  130. package/dist/ai/tools/scrape-web-page.js.map +1 -0
  131. package/dist/ai/tools/web-search-tool.d.ts +10 -0
  132. package/dist/ai/tools/web-search-tool.d.ts.map +1 -0
  133. package/dist/ai/tools/web-search-tool.js +30 -0
  134. package/dist/ai/tools/web-search-tool.js.map +1 -0
  135. package/dist/ai/types.d.ts +4 -0
  136. package/dist/ai/types.d.ts.map +1 -0
  137. package/dist/ai/types.js +2 -0
  138. package/dist/ai/types.js.map +1 -0
  139. package/dist/ai/utils/__tests__/chunk-arr.test.d.ts +2 -0
  140. package/dist/ai/utils/__tests__/chunk-arr.test.d.ts.map +1 -0
  141. package/dist/ai/utils/__tests__/chunk-arr.test.js +37 -0
  142. package/dist/ai/utils/__tests__/chunk-arr.test.js.map +1 -0
  143. package/dist/ai/utils/__tests__/doc-relevance-checker.test.d.ts +2 -0
  144. package/dist/ai/utils/__tests__/doc-relevance-checker.test.d.ts.map +1 -0
  145. package/dist/ai/utils/__tests__/doc-relevance-checker.test.js +80 -0
  146. package/dist/ai/utils/__tests__/doc-relevance-checker.test.js.map +1 -0
  147. package/dist/ai/utils/__tests__/doc-splitter.test.d.ts +2 -0
  148. package/dist/ai/utils/__tests__/doc-splitter.test.d.ts.map +1 -0
  149. package/dist/ai/utils/__tests__/doc-splitter.test.js +35 -0
  150. package/dist/ai/utils/__tests__/doc-splitter.test.js.map +1 -0
  151. package/dist/ai/utils/__tests__/filter-similarity-search-results.test.d.ts +2 -0
  152. package/dist/ai/utils/__tests__/filter-similarity-search-results.test.d.ts.map +1 -0
  153. package/dist/ai/utils/__tests__/filter-similarity-search-results.test.js +47 -0
  154. package/dist/ai/utils/__tests__/filter-similarity-search-results.test.js.map +1 -0
  155. package/dist/ai/utils/__tests__/json-to-yaml.test.d.ts +2 -0
  156. package/dist/ai/utils/__tests__/json-to-yaml.test.d.ts.map +1 -0
  157. package/dist/ai/utils/__tests__/json-to-yaml.test.js +63 -0
  158. package/dist/ai/utils/__tests__/json-to-yaml.test.js.map +1 -0
  159. package/dist/ai/utils/__tests__/stringify-docs.test.d.ts +2 -0
  160. package/dist/ai/utils/__tests__/stringify-docs.test.d.ts.map +1 -0
  161. package/dist/ai/utils/__tests__/stringify-docs.test.js +54 -0
  162. package/dist/ai/utils/__tests__/stringify-docs.test.js.map +1 -0
  163. package/dist/ai/utils/chunk-arr.d.ts +3 -0
  164. package/dist/ai/utils/chunk-arr.d.ts.map +1 -0
  165. package/dist/ai/utils/chunk-arr.js +13 -0
  166. package/dist/ai/utils/chunk-arr.js.map +1 -0
  167. package/dist/ai/utils/doc-relevance-checker.d.ts +10 -0
  168. package/dist/ai/utils/doc-relevance-checker.d.ts.map +1 -0
  169. package/dist/ai/utils/doc-relevance-checker.js +37 -0
  170. package/dist/ai/utils/doc-relevance-checker.js.map +1 -0
  171. package/dist/ai/utils/doc-splitter.d.ts +3 -0
  172. package/dist/ai/utils/doc-splitter.d.ts.map +1 -0
  173. package/dist/ai/utils/doc-splitter.js +20 -0
  174. package/dist/ai/utils/doc-splitter.js.map +1 -0
  175. package/dist/ai/utils/filter-similarity-search-results.d.ts +4 -0
  176. package/dist/ai/utils/filter-similarity-search-results.d.ts.map +1 -0
  177. package/dist/ai/utils/filter-similarity-search-results.js +11 -0
  178. package/dist/ai/utils/filter-similarity-search-results.js.map +1 -0
  179. package/dist/ai/utils/generate-questions-from-chunks.d.ts +15 -0
  180. package/dist/ai/utils/generate-questions-from-chunks.d.ts.map +1 -0
  181. package/dist/ai/utils/generate-questions-from-chunks.js +101 -0
  182. package/dist/ai/utils/generate-questions-from-chunks.js.map +1 -0
  183. package/dist/ai/utils/index.d.ts +11 -0
  184. package/dist/ai/utils/index.d.ts.map +1 -0
  185. package/dist/ai/utils/index.js +11 -0
  186. package/dist/ai/utils/index.js.map +1 -0
  187. package/dist/ai/utils/json-to-yaml.d.ts +2 -0
  188. package/dist/ai/utils/json-to-yaml.d.ts.map +1 -0
  189. package/dist/ai/utils/json-to-yaml.js +25 -0
  190. package/dist/ai/utils/json-to-yaml.js.map +1 -0
  191. package/dist/ai/utils/load-file.d.ts +3 -0
  192. package/dist/ai/utils/load-file.d.ts.map +1 -0
  193. package/dist/ai/utils/load-file.js +133 -0
  194. package/dist/ai/utils/load-file.js.map +1 -0
  195. package/dist/ai/utils/stringify-docs.d.ts +3 -0
  196. package/dist/ai/utils/stringify-docs.d.ts.map +1 -0
  197. package/dist/ai/utils/stringify-docs.js +6 -0
  198. package/dist/ai/utils/stringify-docs.js.map +1 -0
  199. package/dist/ai/utils/transformGraphStateMessageToListMessageResponse.d.ts +35 -0
  200. package/dist/ai/utils/transformGraphStateMessageToListMessageResponse.d.ts.map +1 -0
  201. package/dist/ai/utils/transformGraphStateMessageToListMessageResponse.js +55 -0
  202. package/dist/ai/utils/transformGraphStateMessageToListMessageResponse.js.map +1 -0
  203. package/dist/ai/utils/verify-matrix-openId-token.d.ts +6 -0
  204. package/dist/ai/utils/verify-matrix-openId-token.d.ts.map +1 -0
  205. package/dist/ai/utils/verify-matrix-openId-token.js +36 -0
  206. package/dist/ai/utils/verify-matrix-openId-token.js.map +1 -0
  207. package/dist/index.d.ts +4 -0
  208. package/dist/index.d.ts.map +1 -0
  209. package/dist/index.js +4 -0
  210. package/dist/index.js.map +1 -0
  211. package/dist/services/env/env-service.test.d.ts +2 -0
  212. package/dist/services/env/env-service.test.d.ts.map +1 -0
  213. package/dist/services/env/env-service.test.js +99 -0
  214. package/dist/services/env/env-service.test.js.map +1 -0
  215. package/dist/services/env/env.service.d.ts +11 -0
  216. package/dist/services/env/env.service.d.ts.map +1 -0
  217. package/dist/services/env/env.service.js +42 -0
  218. package/dist/services/env/env.service.js.map +1 -0
  219. package/dist/services/env/index.d.ts +2 -0
  220. package/dist/services/env/index.d.ts.map +1 -0
  221. package/dist/services/env/index.js +2 -0
  222. package/dist/services/env/index.js.map +1 -0
  223. package/dist/services/index.d.ts +5 -0
  224. package/dist/services/index.d.ts.map +1 -0
  225. package/dist/services/index.js +5 -0
  226. package/dist/services/index.js.map +1 -0
  227. package/dist/services/memory-engine/memory-engine.service.d.ts +35 -0
  228. package/dist/services/memory-engine/memory-engine.service.d.ts.map +1 -0
  229. package/dist/services/memory-engine/memory-engine.service.js +295 -0
  230. package/dist/services/memory-engine/memory-engine.service.js.map +1 -0
  231. package/dist/services/memory-engine/types.d.ts +88 -0
  232. package/dist/services/memory-engine/types.d.ts.map +1 -0
  233. package/dist/services/memory-engine/types.js +2 -0
  234. package/dist/services/memory-engine/types.js.map +1 -0
  235. package/dist/services/session-manager/dto.d.ts +40 -0
  236. package/dist/services/session-manager/dto.d.ts.map +1 -0
  237. package/dist/services/session-manager/dto.js +170 -0
  238. package/dist/services/session-manager/dto.js.map +1 -0
  239. package/dist/services/session-manager/errors.d.ts +22 -0
  240. package/dist/services/session-manager/errors.d.ts.map +1 -0
  241. package/dist/services/session-manager/errors.js +41 -0
  242. package/dist/services/session-manager/errors.js.map +1 -0
  243. package/dist/services/session-manager/index.d.ts +4 -0
  244. package/dist/services/session-manager/index.d.ts.map +1 -0
  245. package/dist/services/session-manager/index.js +4 -0
  246. package/dist/services/session-manager/index.js.map +1 -0
  247. package/dist/services/session-manager/session-manager.service.d.ts +40 -0
  248. package/dist/services/session-manager/session-manager.service.d.ts.map +1 -0
  249. package/dist/services/session-manager/session-manager.service.js +251 -0
  250. package/dist/services/session-manager/session-manager.service.js.map +1 -0
  251. package/dist/utils/get-user-subscription.d.ts +21 -0
  252. package/dist/utils/get-user-subscription.d.ts.map +1 -0
  253. package/dist/utils/get-user-subscription.js +44 -0
  254. package/dist/utils/get-user-subscription.js.map +1 -0
  255. package/dist/utils/index.d.ts +2 -0
  256. package/dist/utils/index.d.ts.map +1 -0
  257. package/dist/utils/index.js +2 -0
  258. package/dist/utils/index.js.map +1 -0
  259. package/docs/ai-module.md +84 -0
  260. package/docs/services.md +168 -0
  261. package/docs/tools.md +325 -0
  262. package/jest.config.js +6 -0
  263. package/package.json +81 -0
  264. package/src/ai/checkpointer/index.ts +1 -0
  265. package/src/ai/index.ts +8 -0
  266. package/src/ai/models/index.ts +1 -0
  267. package/src/ai/models/openai.test.ts +72 -0
  268. package/src/ai/models/openai.ts +54 -0
  269. package/src/ai/nodes/create-fake-node.ts +1 -0
  270. package/src/ai/nodes/find-docs/find-docs.prompt.ts +61 -0
  271. package/src/ai/nodes/find-docs/index.ts +2 -0
  272. package/src/ai/nodes/find-docs/node.ts +83 -0
  273. package/src/ai/nodes/generic-chat/generic-chat.node.ts +58 -0
  274. package/src/ai/nodes/generic-chat/generic-chat.prompt.ts +66 -0
  275. package/src/ai/nodes/generic-chat/index.ts +1 -0
  276. package/src/ai/nodes/index.ts +3 -0
  277. package/src/ai/semantic-router-factory/create-semantic-router.test.ts +98 -0
  278. package/src/ai/semantic-router-factory/create-semantic-router.ts +136 -0
  279. package/src/ai/semantic-router-factory/index.ts +3 -0
  280. package/src/ai/semantic-router-factory/semantic-router-prompt.ts +168 -0
  281. package/src/ai/semantic-router-factory/validate-routes.ts +26 -0
  282. package/src/ai/tools/action-caller.ts +37 -0
  283. package/src/ai/tools/ask-ixo-guru/ask-ixo-guru.ts +73 -0
  284. package/src/ai/tools/ask-ixo-guru/index.ts +1 -0
  285. package/src/ai/tools/browser-tool-caller.ts +37 -0
  286. package/src/ai/tools/frontend-tool-caller.ts +86 -0
  287. package/src/ai/tools/index.ts +10 -0
  288. package/src/ai/tools/log-action-to-matrix.ts +30 -0
  289. package/src/ai/tools/parser-action-tool.ts +61 -0
  290. package/src/ai/tools/parser-browser-tool.ts +55 -0
  291. package/src/ai/tools/retriever-tool/index.ts +1 -0
  292. package/src/ai/tools/retriever-tool/retriever-tool.test.ts +156 -0
  293. package/src/ai/tools/retriever-tool/retriever-tool.ts +107 -0
  294. package/src/ai/tools/scrape-web-page.ts +75 -0
  295. package/src/ai/tools/web-search-tool.ts +38 -0
  296. package/src/ai/types.ts +6 -0
  297. package/src/ai/utils/__tests__/chunk-arr.test.ts +46 -0
  298. package/src/ai/utils/__tests__/doc-relevance-checker.test.ts +90 -0
  299. package/src/ai/utils/__tests__/doc-splitter.test.ts +42 -0
  300. package/src/ai/utils/__tests__/filter-similarity-search-results.test.ts +57 -0
  301. package/src/ai/utils/__tests__/json-to-yaml.test.ts +70 -0
  302. package/src/ai/utils/__tests__/stringify-docs.test.ts +61 -0
  303. package/src/ai/utils/chunk-arr.ts +13 -0
  304. package/src/ai/utils/doc-relevance-checker.ts +58 -0
  305. package/src/ai/utils/doc-splitter.ts +28 -0
  306. package/src/ai/utils/filter-similarity-search-results.ts +15 -0
  307. package/src/ai/utils/generate-questions-from-chunks.ts +114 -0
  308. package/src/ai/utils/index.ts +10 -0
  309. package/src/ai/utils/json-to-yaml.ts +32 -0
  310. package/src/ai/utils/load-file.ts +170 -0
  311. package/src/ai/utils/stringify-docs.ts +14 -0
  312. package/src/ai/utils/transformGraphStateMessageToListMessageResponse.ts +108 -0
  313. package/src/ai/utils/verify-matrix-openId-token.ts +46 -0
  314. package/src/index.ts +3 -0
  315. package/src/services/env/env-service.test.ts +153 -0
  316. package/src/services/env/env.service.ts +65 -0
  317. package/src/services/env/index.ts +1 -0
  318. package/src/services/index.ts +4 -0
  319. package/src/services/memory-engine/memory-engine.service.ts +486 -0
  320. package/src/services/memory-engine/types.ts +208 -0
  321. package/src/services/session-manager/dto.ts +120 -0
  322. package/src/services/session-manager/errors.ts +56 -0
  323. package/src/services/session-manager/index.ts +3 -0
  324. package/src/services/session-manager/session-manager.service.ts +405 -0
  325. package/src/utils/get-user-subscription.ts +84 -0
  326. package/src/utils/index.ts +1 -0
  327. package/tsconfig.json +16 -0
  328. package/tsconfig.tsbuildinfo +1 -0
@@ -0,0 +1,208 @@
1
+ // Complete TypeScript Response Types for /search-enhanced Endpoint
2
+
3
+ // Complete response type for /search-enhanced endpoint
4
+ export interface SearchEnhancedResponse {
5
+ strategy_used: string;
6
+ query: string;
7
+ total_results: {
8
+ facts: number;
9
+ entities: number;
10
+ episodes: number;
11
+ communities: number;
12
+ };
13
+ facts: FactResult[];
14
+ entities: EntityResult[];
15
+ episodes: EpisodeResult[];
16
+ communities: CommunityResult[];
17
+ }
18
+
19
+ // Individual result types
20
+ export interface FactResult {
21
+ uuid: string;
22
+ fact: string;
23
+ source_node_uuid: string;
24
+ target_node_uuid: string;
25
+ created_at: string; // ISO 8601 datetime string
26
+ valid_at: string | null; // ISO 8601 datetime string or null
27
+ invalid_at: string | null; // ISO 8601 datetime string or null
28
+ }
29
+
30
+ export interface EntityResult {
31
+ uuid: string;
32
+ name: string;
33
+ summary: string;
34
+ labels: string[]; // Array of entity type labels
35
+ group_id: string;
36
+ created_at: string; // ISO 8601 datetime string
37
+ }
38
+
39
+ export interface EpisodeResult {
40
+ uuid: string;
41
+ name: string;
42
+ content: string;
43
+ created_at: string; // ISO 8601 datetime string
44
+ group_id: string;
45
+ }
46
+
47
+ export interface CommunityResult {
48
+ uuid: string;
49
+ name: string;
50
+ summary: string;
51
+ created_at: string | null; // ISO 8601 datetime string or null
52
+ }
53
+
54
+ // Request type for /search-enhanced endpoint
55
+ export interface SearchEnhancedRequest {
56
+ oracle_dids: string[]; // Array of oracle identifiers (1-5 items)
57
+ query: string; // Search query string
58
+ strategy?: SearchStrategy; // Optional, defaults to "balanced"
59
+ max_facts?: number; // Optional, defaults to 10
60
+ max_entities?: number; // Optional, defaults to 5
61
+ max_episodes?: number; // Optional, defaults to 3
62
+ max_communities?: number; // Optional, defaults to 2
63
+ knowledge_level?: KnowledgeLevel; // Optional, defaults to "both"
64
+ center_node_uuid?: string | null; // Optional UUID for contextual search
65
+ search_filters?: SearchFilters | null; // Optional filters
66
+ }
67
+
68
+ // Search strategy enum
69
+ export type SearchStrategy =
70
+ | 'balanced' // Default - fast, comprehensive
71
+ | 'diverse' // Diverse results, avoid repetition
72
+ | 'precise' // High-precision results
73
+ | 'contextual' // Focus on specific entity (requires center_node_uuid)
74
+ | 'recent_memory' // Recent conversations
75
+ | 'facts_only' // Quick fact retrieval only
76
+ | 'entities_only' // Entity lookup only
77
+ | 'topics_only'; // Topic discovery only
78
+
79
+ // Knowledge level enum
80
+ export type KnowledgeLevel =
81
+ | 'both' // Search both personal + shared knowledge (default)
82
+ | 'user' // Search only personal/private memories
83
+ | 'oracle'; // Search only shared oracle knowledge
84
+
85
+ // Search filters type
86
+ export interface SearchFilters {
87
+ node_labels?: EntityType[] | null; // Array of entity type filters
88
+ edge_types?: EdgeType[] | null; // Array of relationship type filters
89
+ valid_at?: DateFilter[][] | null; // When event occurred
90
+ invalid_at?: DateFilter[][] | null; // When fact stopped being true
91
+ created_at?: DateFilter[][] | null; // When system learned the fact
92
+ expired_at?: DateFilter[][] | null; // When system learned fact became invalid
93
+ }
94
+
95
+ // Date filter type
96
+ export interface DateFilter {
97
+ date: string | null; // ISO 8601 datetime string or null
98
+ comparison_operator: ComparisonOperator;
99
+ }
100
+
101
+ // Comparison operator enum
102
+ export type ComparisonOperator =
103
+ | '=' // Equal to
104
+ | '<>' // Not equal to
105
+ | '>' // Greater than
106
+ | '<' // Less than
107
+ | '>=' // Greater than or equal
108
+ | '<=' // Less than or equal
109
+ | 'IS NULL' // Is null
110
+ | 'IS NOT NULL'; // Is not null
111
+
112
+ // Entity types enum (from search_filters.py)
113
+ export type EntityType =
114
+ | 'Person'
115
+ | 'Trait'
116
+ | 'Value'
117
+ | 'Identity'
118
+ | 'Attribute'
119
+ | 'Emotion'
120
+ | 'Stress'
121
+ | 'CopingStrategy'
122
+ | 'Job'
123
+ | 'Project'
124
+ | 'Skill'
125
+ | 'Tool'
126
+ | 'Organization'
127
+ | 'Goal'
128
+ | 'Milestone'
129
+ | 'Habit'
130
+ | 'Routine'
131
+ | 'Pattern'
132
+ | 'Interest'
133
+ | 'Hobby'
134
+ | 'Content'
135
+ | 'Preference'
136
+ | 'Product'
137
+ | 'Expertise'
138
+ | 'LearningGoal'
139
+ | 'Resource'
140
+ | 'Location'
141
+ | 'Experience'
142
+ | 'Event'
143
+ | 'Group'
144
+ | 'Pet'
145
+ | 'CommunicationStyle'
146
+ | 'Language'
147
+ | 'Task'
148
+ | 'Belief'
149
+ | 'Cause'
150
+ | 'Procedure';
151
+
152
+ // Edge types enum (from search_filters.py)
153
+ export type EdgeType =
154
+ | 'Knows'
155
+ | 'WorksWith'
156
+ | 'Causes'
157
+ | 'Enables'
158
+ | 'Blocks'
159
+ | 'PartOf'
160
+ | 'BelongsTo'
161
+ | 'Practices'
162
+ | 'Uses'
163
+ | 'Pursuing'
164
+ | 'Requires'
165
+ | 'Achieved'
166
+ | 'EmployedAt'
167
+ | 'WorksOn'
168
+ | 'Manages'
169
+ | 'LivesAt'
170
+ | 'VisitedLocation'
171
+ | 'LocatedIn'
172
+ | 'Prefers'
173
+ | 'Likes'
174
+ | 'Dislikes'
175
+ | 'InterestedIn'
176
+ | 'ExpertiseIn'
177
+ | 'Studying'
178
+ | 'LearnedFrom'
179
+ | 'Triggers'
180
+ | 'Motivates'
181
+ | 'ManagesVia'
182
+ | 'Influences'
183
+ | 'Supports'
184
+ | 'MemberOf'
185
+ | 'Owns'
186
+ | 'CurrentlyIs'
187
+ | 'WasPreviously'
188
+ | 'AlignedWith'
189
+ | 'ConflictsWith'
190
+ | 'RelatesTo';
191
+
192
+ // HTTP Headers type
193
+ export interface SearchHeaders {
194
+ Authorization: string; // "Bearer <matrix_openid_token>"
195
+ 'x-oracle-did': string; // Oracle identifier
196
+ 'x-room-id': string; // Matrix room ID
197
+ 'Content-Type': 'application/json';
198
+ }
199
+
200
+ // User context data structure
201
+ export interface UserContextData {
202
+ identity?: SearchEnhancedResponse;
203
+ work?: SearchEnhancedResponse;
204
+ goals?: SearchEnhancedResponse;
205
+ interests?: SearchEnhancedResponse;
206
+ relationships?: SearchEnhancedResponse;
207
+ recent?: SearchEnhancedResponse;
208
+ }
@@ -0,0 +1,120 @@
1
+ import {
2
+ IsArray,
3
+ IsNotEmpty,
4
+ IsNumber,
5
+ IsOptional,
6
+ IsString,
7
+ Min,
8
+ } from 'class-validator';
9
+ import { type UserContextData } from '../memory-engine/types.js';
10
+
11
+ export class UserAuthDto {
12
+ @IsString()
13
+ @IsNotEmpty()
14
+ did: string;
15
+
16
+ @IsString()
17
+ @IsOptional()
18
+ homeServer?: string;
19
+ }
20
+
21
+ export class ListChatSessionsDto extends UserAuthDto {
22
+ @IsString()
23
+ @IsNotEmpty()
24
+ oracleEntityDid: string;
25
+
26
+ @IsNumber()
27
+ @IsOptional()
28
+ @Min(1)
29
+ limit?: number;
30
+
31
+ @IsNumber()
32
+ @IsOptional()
33
+ @Min(0)
34
+ offset?: number;
35
+ }
36
+
37
+ export class CreateChatSessionDto extends UserAuthDto {
38
+ @IsString()
39
+ @IsNotEmpty()
40
+ oracleDid: string;
41
+
42
+ @IsString()
43
+ @IsNotEmpty()
44
+ oracleEntityDid: string;
45
+
46
+ @IsString()
47
+ @IsNotEmpty()
48
+ oracleName: string;
49
+
50
+ @IsString()
51
+ @IsOptional()
52
+ slackThreadTs?: string;
53
+ }
54
+
55
+ export class DeleteChatSessionDto extends UserAuthDto {
56
+ @IsString()
57
+ @IsNotEmpty()
58
+ sessionId: string;
59
+
60
+ @IsString()
61
+ @IsNotEmpty()
62
+ oracleEntityDid: string;
63
+ }
64
+
65
+ export class ChatSession {
66
+ @IsString()
67
+ @IsNotEmpty()
68
+ sessionId: string;
69
+
70
+ @IsString()
71
+ @IsOptional()
72
+ title?: string;
73
+
74
+ @IsString()
75
+ @IsNotEmpty()
76
+ lastUpdatedAt: string;
77
+
78
+ @IsString()
79
+ @IsNotEmpty()
80
+ createdAt: string;
81
+
82
+ @IsString()
83
+ @IsNotEmpty()
84
+ oracleName: string;
85
+
86
+ @IsString()
87
+ @IsNotEmpty()
88
+ oracleDid: string;
89
+
90
+ @IsString()
91
+ @IsNotEmpty()
92
+ oracleEntityDid: string;
93
+
94
+ @IsNumber()
95
+ @IsNotEmpty()
96
+ lastProcessedCount?: number;
97
+
98
+ @IsOptional()
99
+ userContext?: UserContextData;
100
+
101
+ @IsString()
102
+ @IsOptional()
103
+ roomId?: string;
104
+
105
+ @IsString()
106
+ @IsOptional()
107
+ slackThreadTs?: string;
108
+ }
109
+
110
+ export class ListChatSessionsResponseDto {
111
+ @IsArray()
112
+ @IsNotEmpty()
113
+ sessions: ChatSession[];
114
+
115
+ @IsNumber()
116
+ @IsOptional()
117
+ total?: number;
118
+ }
119
+
120
+ export class CreateChatSessionResponseDto extends ChatSession {}
@@ -0,0 +1,56 @@
1
+ export enum SessionManagerErrorCodes {
2
+ NO_USER_ROOMS_FOUND = 'NO_USER_ROOMS_FOUND',
3
+ ROOM_NOT_FOUND = 'ROOM_NOT_FOUND',
4
+ USER_NOT_IN_ROOM = 'USER_NOT_IN_ROOM',
5
+ }
6
+
7
+ export class SessionManagerError extends Error {
8
+ constructor(
9
+ message: string,
10
+ public readonly code: SessionManagerErrorCodes,
11
+ ) {
12
+ super(message);
13
+ }
14
+ }
15
+
16
+ export class NoUserRoomsFoundError extends SessionManagerError {
17
+ constructor(did: string) {
18
+ super(
19
+ `No user rooms found for the given did ${did}`,
20
+ SessionManagerErrorCodes.NO_USER_ROOMS_FOUND,
21
+ );
22
+ }
23
+ isNoUserRoomsFoundError(error: unknown): error is NoUserRoomsFoundError {
24
+ return (
25
+ error instanceof NoUserRoomsFoundError &&
26
+ error.code === SessionManagerErrorCodes.NO_USER_ROOMS_FOUND
27
+ );
28
+ }
29
+ }
30
+
31
+ export class RoomNotFoundError extends SessionManagerError {
32
+ constructor(roomId: string) {
33
+ super(`Room ${roomId} not found`, SessionManagerErrorCodes.ROOM_NOT_FOUND);
34
+ }
35
+ isRoomNotFoundError(error: unknown): error is RoomNotFoundError {
36
+ return (
37
+ error instanceof RoomNotFoundError &&
38
+ error.code === SessionManagerErrorCodes.ROOM_NOT_FOUND
39
+ );
40
+ }
41
+ }
42
+
43
+ export class UserNotInRoomError extends SessionManagerError {
44
+ constructor(did: string, roomId: string) {
45
+ super(
46
+ `User ${did} not in room ${roomId}`,
47
+ SessionManagerErrorCodes.USER_NOT_IN_ROOM,
48
+ );
49
+ }
50
+ isUserNotInRoomError(error: unknown): error is UserNotInRoomError {
51
+ return (
52
+ error instanceof UserNotInRoomError &&
53
+ error.code === SessionManagerErrorCodes.USER_NOT_IN_ROOM
54
+ );
55
+ }
56
+ }
@@ -0,0 +1,3 @@
1
+ export * from './dto.js';
2
+ export * from './errors.js';
3
+ export * from './session-manager.service.js';