@carlonicora/nestjs-neo4jsonapi 1.62.7 → 1.63.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 (216) hide show
  1. package/dist/agents/agents.modules.d.ts.map +1 -1
  2. package/dist/agents/agents.modules.js +3 -0
  3. package/dist/agents/agents.modules.js.map +1 -1
  4. package/dist/agents/chatbot/chatbot.module.d.ts +3 -0
  5. package/dist/agents/chatbot/chatbot.module.d.ts.map +1 -0
  6. package/dist/agents/chatbot/chatbot.module.js +65 -0
  7. package/dist/agents/chatbot/chatbot.module.js.map +1 -0
  8. package/dist/agents/chatbot/interfaces/chatbot.response.interface.d.ts +25 -0
  9. package/dist/agents/chatbot/interfaces/chatbot.response.interface.d.ts.map +1 -0
  10. package/dist/agents/chatbot/interfaces/chatbot.response.interface.js +3 -0
  11. package/dist/agents/chatbot/interfaces/chatbot.response.interface.js.map +1 -0
  12. package/dist/agents/chatbot/interfaces/graph.catalog.interface.d.ts +50 -0
  13. package/dist/agents/chatbot/interfaces/graph.catalog.interface.d.ts.map +1 -0
  14. package/dist/agents/chatbot/interfaces/graph.catalog.interface.js +3 -0
  15. package/dist/agents/chatbot/interfaces/graph.catalog.interface.js.map +1 -0
  16. package/dist/agents/chatbot/prompts/chatbot.system.prompt.d.ts +3 -0
  17. package/dist/agents/chatbot/prompts/chatbot.system.prompt.d.ts.map +1 -0
  18. package/dist/agents/chatbot/prompts/chatbot.system.prompt.js +60 -0
  19. package/dist/agents/chatbot/prompts/chatbot.system.prompt.js.map +1 -0
  20. package/dist/agents/chatbot/repositories/user-modules.repository.d.ts +28 -0
  21. package/dist/agents/chatbot/repositories/user-modules.repository.d.ts.map +1 -0
  22. package/dist/agents/chatbot/repositories/user-modules.repository.js +76 -0
  23. package/dist/agents/chatbot/repositories/user-modules.repository.js.map +1 -0
  24. package/dist/agents/chatbot/services/chatbot.index.manager.d.ts +17 -0
  25. package/dist/agents/chatbot/services/chatbot.index.manager.d.ts.map +1 -0
  26. package/dist/agents/chatbot/services/chatbot.index.manager.js +84 -0
  27. package/dist/agents/chatbot/services/chatbot.index.manager.js.map +1 -0
  28. package/dist/agents/chatbot/services/chatbot.search.service.d.ts +46 -0
  29. package/dist/agents/chatbot/services/chatbot.search.service.d.ts.map +1 -0
  30. package/dist/agents/chatbot/services/chatbot.search.service.js +148 -0
  31. package/dist/agents/chatbot/services/chatbot.search.service.js.map +1 -0
  32. package/dist/agents/chatbot/services/chatbot.service.d.ts +36 -0
  33. package/dist/agents/chatbot/services/chatbot.service.d.ts.map +1 -0
  34. package/dist/agents/chatbot/services/chatbot.service.js +220 -0
  35. package/dist/agents/chatbot/services/chatbot.service.js.map +1 -0
  36. package/dist/agents/chatbot/services/descriptor.source.d.ts +18 -0
  37. package/dist/agents/chatbot/services/descriptor.source.d.ts.map +1 -0
  38. package/dist/agents/chatbot/services/descriptor.source.js +41 -0
  39. package/dist/agents/chatbot/services/descriptor.source.js.map +1 -0
  40. package/dist/agents/chatbot/services/field-formatting.d.ts +18 -0
  41. package/dist/agents/chatbot/services/field-formatting.d.ts.map +1 -0
  42. package/dist/agents/chatbot/services/field-formatting.js +43 -0
  43. package/dist/agents/chatbot/services/field-formatting.js.map +1 -0
  44. package/dist/agents/chatbot/services/graph.catalog.service.d.ts +60 -0
  45. package/dist/agents/chatbot/services/graph.catalog.service.d.ts.map +1 -0
  46. package/dist/agents/chatbot/services/graph.catalog.service.js +217 -0
  47. package/dist/agents/chatbot/services/graph.catalog.service.js.map +1 -0
  48. package/dist/agents/chatbot/services/humanize-tool.d.ts +9 -0
  49. package/dist/agents/chatbot/services/humanize-tool.d.ts.map +1 -0
  50. package/dist/agents/chatbot/services/humanize-tool.js +35 -0
  51. package/dist/agents/chatbot/services/humanize-tool.js.map +1 -0
  52. package/dist/agents/chatbot/tools/describe-entity.tool.d.ts +14 -0
  53. package/dist/agents/chatbot/tools/describe-entity.tool.d.ts.map +1 -0
  54. package/dist/agents/chatbot/tools/describe-entity.tool.js +63 -0
  55. package/dist/agents/chatbot/tools/describe-entity.tool.js.map +1 -0
  56. package/dist/agents/chatbot/tools/read-entity.tool.d.ts +16 -0
  57. package/dist/agents/chatbot/tools/read-entity.tool.d.ts.map +1 -0
  58. package/dist/agents/chatbot/tools/read-entity.tool.js +102 -0
  59. package/dist/agents/chatbot/tools/read-entity.tool.js.map +1 -0
  60. package/dist/agents/chatbot/tools/resolve-entity.tool.d.ts +16 -0
  61. package/dist/agents/chatbot/tools/resolve-entity.tool.d.ts.map +1 -0
  62. package/dist/agents/chatbot/tools/resolve-entity.tool.js +48 -0
  63. package/dist/agents/chatbot/tools/resolve-entity.tool.js.map +1 -0
  64. package/dist/agents/chatbot/tools/search-entities.tool.d.ts +20 -0
  65. package/dist/agents/chatbot/tools/search-entities.tool.d.ts.map +1 -0
  66. package/dist/agents/chatbot/tools/search-entities.tool.js +122 -0
  67. package/dist/agents/chatbot/tools/search-entities.tool.js.map +1 -0
  68. package/dist/agents/chatbot/tools/tool.factory.d.ts +29 -0
  69. package/dist/agents/chatbot/tools/tool.factory.d.ts.map +1 -0
  70. package/dist/agents/chatbot/tools/tool.factory.js +72 -0
  71. package/dist/agents/chatbot/tools/tool.factory.js.map +1 -0
  72. package/dist/agents/chatbot/tools/traverse.tool.d.ts +58 -0
  73. package/dist/agents/chatbot/tools/traverse.tool.d.ts.map +1 -0
  74. package/dist/agents/chatbot/tools/traverse.tool.js +212 -0
  75. package/dist/agents/chatbot/tools/traverse.tool.js.map +1 -0
  76. package/dist/agents/index.d.ts +9 -0
  77. package/dist/agents/index.d.ts.map +1 -1
  78. package/dist/agents/index.js +17 -1
  79. package/dist/agents/index.js.map +1 -1
  80. package/dist/common/helpers/define-entity.d.ts.map +1 -1
  81. package/dist/common/helpers/define-entity.js +5 -1
  82. package/dist/common/helpers/define-entity.js.map +1 -1
  83. package/dist/common/interfaces/datamodel.interface.d.ts +10 -0
  84. package/dist/common/interfaces/datamodel.interface.d.ts.map +1 -1
  85. package/dist/common/interfaces/datamodel.interface.js.map +1 -1
  86. package/dist/common/interfaces/entity.descriptor.interface.d.ts +1 -1
  87. package/dist/common/interfaces/entity.descriptor.interface.d.ts.map +1 -1
  88. package/dist/common/interfaces/entity.descriptor.interface.js.map +1 -1
  89. package/dist/common/interfaces/entity.schema.interface.d.ts +48 -0
  90. package/dist/common/interfaces/entity.schema.interface.d.ts.map +1 -1
  91. package/dist/common/registries/entity.service.registry.d.ts +13 -0
  92. package/dist/common/registries/entity.service.registry.d.ts.map +1 -0
  93. package/dist/common/registries/entity.service.registry.js +52 -0
  94. package/dist/common/registries/entity.service.registry.js.map +1 -0
  95. package/dist/common/registries/index.d.ts +1 -0
  96. package/dist/common/registries/index.d.ts.map +1 -1
  97. package/dist/common/registries/index.js +1 -0
  98. package/dist/common/registries/index.js.map +1 -1
  99. package/dist/core/core.module.d.ts.map +1 -1
  100. package/dist/core/core.module.js +6 -2
  101. package/dist/core/core.module.js.map +1 -1
  102. package/dist/core/llm/services/llm.service.d.ts.map +1 -1
  103. package/dist/core/llm/services/llm.service.js +8 -0
  104. package/dist/core/llm/services/llm.service.js.map +1 -1
  105. package/dist/core/neo4j/abstracts/abstract.repository.d.ts +48 -1
  106. package/dist/core/neo4j/abstracts/abstract.repository.d.ts.map +1 -1
  107. package/dist/core/neo4j/abstracts/abstract.repository.js +147 -9
  108. package/dist/core/neo4j/abstracts/abstract.repository.js.map +1 -1
  109. package/dist/core/neo4j/abstracts/abstract.service.d.ts +47 -0
  110. package/dist/core/neo4j/abstracts/abstract.service.d.ts.map +1 -1
  111. package/dist/core/neo4j/abstracts/abstract.service.js +57 -0
  112. package/dist/core/neo4j/abstracts/abstract.service.js.map +1 -1
  113. package/dist/core/neo4j/factories/entity.factory.d.ts.map +1 -1
  114. package/dist/core/neo4j/factories/entity.factory.js +27 -6
  115. package/dist/core/neo4j/factories/entity.factory.js.map +1 -1
  116. package/dist/core/neo4j/helpers/build-filter-clauses.d.ts +11 -0
  117. package/dist/core/neo4j/helpers/build-filter-clauses.d.ts.map +1 -0
  118. package/dist/core/neo4j/helpers/build-filter-clauses.js +69 -0
  119. package/dist/core/neo4j/helpers/build-filter-clauses.js.map +1 -0
  120. package/dist/core/neo4j/helpers/build-order-by.d.ts +6 -0
  121. package/dist/core/neo4j/helpers/build-order-by.d.ts.map +1 -0
  122. package/dist/core/neo4j/helpers/build-order-by.js +20 -0
  123. package/dist/core/neo4j/helpers/build-order-by.js.map +1 -0
  124. package/dist/core/neo4j/index.d.ts +1 -0
  125. package/dist/core/neo4j/index.d.ts.map +1 -1
  126. package/dist/core/neo4j/index.js +2 -0
  127. package/dist/core/neo4j/index.js.map +1 -1
  128. package/dist/core/neo4j/types/filter.criterion.d.ts +20 -0
  129. package/dist/core/neo4j/types/filter.criterion.d.ts.map +1 -0
  130. package/dist/core/neo4j/types/filter.criterion.js +3 -0
  131. package/dist/core/neo4j/types/filter.criterion.js.map +1 -0
  132. package/dist/core/neo4j/types/index.d.ts +2 -0
  133. package/dist/core/neo4j/types/index.d.ts.map +1 -0
  134. package/dist/core/neo4j/types/index.js +3 -0
  135. package/dist/core/neo4j/types/index.js.map +1 -0
  136. package/dist/foundations/assistant/assistant.module.d.ts +5 -0
  137. package/dist/foundations/assistant/assistant.module.d.ts.map +1 -0
  138. package/dist/foundations/assistant/assistant.module.js +32 -0
  139. package/dist/foundations/assistant/assistant.module.js.map +1 -0
  140. package/dist/foundations/assistant/controllers/assistant.controller.d.ts +67 -0
  141. package/dist/foundations/assistant/controllers/assistant.controller.d.ts.map +1 -0
  142. package/dist/foundations/assistant/controllers/assistant.controller.js +226 -0
  143. package/dist/foundations/assistant/controllers/assistant.controller.js.map +1 -0
  144. package/dist/foundations/assistant/dtos/assistant-append.dto.d.ts +11 -0
  145. package/dist/foundations/assistant/dtos/assistant-append.dto.d.ts.map +1 -0
  146. package/dist/foundations/assistant/dtos/assistant-append.dto.js +44 -0
  147. package/dist/foundations/assistant/dtos/assistant-append.dto.js.map +1 -0
  148. package/dist/foundations/assistant/dtos/assistant-patch.dto.d.ts +12 -0
  149. package/dist/foundations/assistant/dtos/assistant-patch.dto.d.ts.map +1 -0
  150. package/dist/foundations/assistant/dtos/assistant-patch.dto.js +52 -0
  151. package/dist/foundations/assistant/dtos/assistant-patch.dto.js.map +1 -0
  152. package/dist/foundations/assistant/dtos/assistant-post.dto.d.ts +12 -0
  153. package/dist/foundations/assistant/dtos/assistant-post.dto.d.ts.map +1 -0
  154. package/dist/foundations/assistant/dtos/assistant-post.dto.js +51 -0
  155. package/dist/foundations/assistant/dtos/assistant-post.dto.js.map +1 -0
  156. package/dist/foundations/assistant/entities/assistant.d.ts +48 -0
  157. package/dist/foundations/assistant/entities/assistant.d.ts.map +1 -0
  158. package/dist/foundations/assistant/entities/assistant.js +44 -0
  159. package/dist/foundations/assistant/entities/assistant.js.map +1 -0
  160. package/dist/foundations/assistant/entities/assistant.meta.d.ts +3 -0
  161. package/dist/foundations/assistant/entities/assistant.meta.d.ts.map +1 -0
  162. package/dist/foundations/assistant/entities/assistant.meta.js +10 -0
  163. package/dist/foundations/assistant/entities/assistant.meta.js.map +1 -0
  164. package/dist/foundations/assistant/index.d.ts +7 -0
  165. package/dist/foundations/assistant/index.d.ts.map +1 -0
  166. package/dist/foundations/assistant/index.js +12 -0
  167. package/dist/foundations/assistant/index.js.map +1 -0
  168. package/dist/foundations/assistant/repositories/assistant.repository.d.ts +50 -0
  169. package/dist/foundations/assistant/repositories/assistant.repository.d.ts.map +1 -0
  170. package/dist/foundations/assistant/repositories/assistant.repository.js +65 -0
  171. package/dist/foundations/assistant/repositories/assistant.repository.js.map +1 -0
  172. package/dist/foundations/assistant/services/assistant.service.d.ts +113 -0
  173. package/dist/foundations/assistant/services/assistant.service.d.ts.map +1 -0
  174. package/dist/foundations/assistant/services/assistant.service.js +395 -0
  175. package/dist/foundations/assistant/services/assistant.service.js.map +1 -0
  176. package/dist/foundations/assistant-message/assistant-message.module.d.ts +6 -0
  177. package/dist/foundations/assistant-message/assistant-message.module.d.ts.map +1 -0
  178. package/dist/foundations/assistant-message/assistant-message.module.js +36 -0
  179. package/dist/foundations/assistant-message/assistant-message.module.js.map +1 -0
  180. package/dist/foundations/assistant-message/controllers/assistant-message.controller.d.ts +16 -0
  181. package/dist/foundations/assistant-message/controllers/assistant-message.controller.d.ts.map +1 -0
  182. package/dist/foundations/assistant-message/controllers/assistant-message.controller.js +84 -0
  183. package/dist/foundations/assistant-message/controllers/assistant-message.controller.js.map +1 -0
  184. package/dist/foundations/assistant-message/dtos/assistant-message.dto.d.ts +11 -0
  185. package/dist/foundations/assistant-message/dtos/assistant-message.dto.d.ts.map +1 -0
  186. package/dist/foundations/assistant-message/dtos/assistant-message.dto.js +45 -0
  187. package/dist/foundations/assistant-message/dtos/assistant-message.dto.js.map +1 -0
  188. package/dist/foundations/assistant-message/entities/assistant-message.d.ts +49 -0
  189. package/dist/foundations/assistant-message/entities/assistant-message.d.ts.map +1 -0
  190. package/dist/foundations/assistant-message/entities/assistant-message.js +52 -0
  191. package/dist/foundations/assistant-message/entities/assistant-message.js.map +1 -0
  192. package/dist/foundations/assistant-message/entities/assistant-message.meta.d.ts +3 -0
  193. package/dist/foundations/assistant-message/entities/assistant-message.meta.d.ts.map +1 -0
  194. package/dist/foundations/assistant-message/entities/assistant-message.meta.js +10 -0
  195. package/dist/foundations/assistant-message/entities/assistant-message.meta.js.map +1 -0
  196. package/dist/foundations/assistant-message/index.d.ts +8 -0
  197. package/dist/foundations/assistant-message/index.d.ts.map +1 -0
  198. package/dist/foundations/assistant-message/index.js +24 -0
  199. package/dist/foundations/assistant-message/index.js.map +1 -0
  200. package/dist/foundations/assistant-message/repositories/assistant-message.repository.d.ts +70 -0
  201. package/dist/foundations/assistant-message/repositories/assistant-message.repository.d.ts.map +1 -0
  202. package/dist/foundations/assistant-message/repositories/assistant-message.repository.js +119 -0
  203. package/dist/foundations/assistant-message/repositories/assistant-message.repository.js.map +1 -0
  204. package/dist/foundations/assistant-message/services/assistant-message.service.d.ts +31 -0
  205. package/dist/foundations/assistant-message/services/assistant-message.service.d.ts.map +1 -0
  206. package/dist/foundations/assistant-message/services/assistant-message.service.js +32 -0
  207. package/dist/foundations/assistant-message/services/assistant-message.service.js.map +1 -0
  208. package/dist/foundations/foundations.modules.d.ts.map +1 -1
  209. package/dist/foundations/foundations.modules.js +2 -0
  210. package/dist/foundations/foundations.modules.js.map +1 -1
  211. package/dist/foundations/index.d.ts +2 -0
  212. package/dist/foundations/index.d.ts.map +1 -1
  213. package/dist/foundations/index.js +2 -0
  214. package/dist/foundations/index.js.map +1 -1
  215. package/dist/foundations/stripe/__tests__/mocks/stripe.mock.d.ts +62 -62
  216. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"agents.modules.d.ts","sourceRoot":"","sources":["../../src/agents/agents.modules.ts"],"names":[],"mappings":"AASA;;;;GAIG;AACH,qBAoBa,YAAY;CAAG"}
1
+ {"version":3,"file":"agents.modules.d.ts","sourceRoot":"","sources":["../../src/agents/agents.modules.ts"],"names":[],"mappings":"AAUA;;;;GAIG;AACH,qBAsBa,YAAY;CAAG"}
@@ -8,6 +8,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
9
  exports.AgentsModule = void 0;
10
10
  const common_1 = require("@nestjs/common");
11
+ const chatbot_module_1 = require("./chatbot/chatbot.module");
11
12
  const community_detector_module_1 = require("./community.detector/community.detector.module");
12
13
  const community_summariser_module_1 = require("./community.summariser/community.summariser.module");
13
14
  const contextualiser_module_1 = require("./contextualiser/contextualiser.module");
@@ -26,6 +27,7 @@ exports.AgentsModule = AgentsModule;
26
27
  exports.AgentsModule = AgentsModule = __decorate([
27
28
  (0, common_1.Module)({
28
29
  imports: [
30
+ chatbot_module_1.ChatbotModule,
29
31
  community_detector_module_1.CommunityDetectorModule,
30
32
  community_summariser_module_1.CommunitySummariserModule,
31
33
  contextualiser_module_1.ContextualiserModule,
@@ -35,6 +37,7 @@ exports.AgentsModule = AgentsModule = __decorate([
35
37
  summariser_module_1.SummariserModule,
36
38
  ],
37
39
  exports: [
40
+ chatbot_module_1.ChatbotModule,
38
41
  community_detector_module_1.CommunityDetectorModule,
39
42
  community_summariser_module_1.CommunitySummariserModule,
40
43
  contextualiser_module_1.ContextualiserModule,
@@ -1 +1 @@
1
- {"version":3,"file":"agents.modules.js","sourceRoot":"","sources":["../../src/agents/agents.modules.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,8FAAyF;AACzF,oGAA+F;AAC/F,kFAA8E;AAC9E,uDAAmD;AACnD,+EAA0E;AAC1E,mEAA+D;AAC/D,sEAAkE;AAElE;;;;GAIG;AAqBI,IAAM,YAAY,GAAlB,MAAM,YAAY;CAAG,CAAA;AAAf,oCAAY;uBAAZ,YAAY;IApBxB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE;YACP,mDAAuB;YACvB,uDAAyB;YACzB,4CAAoB;YACpB,0BAAW;YACX,yCAAkB;YAClB,kCAAe;YACf,oCAAgB;SACjB;QACD,OAAO,EAAE;YACP,mDAAuB;YACvB,uDAAyB;YACzB,4CAAoB;YACpB,0BAAW;YACX,yCAAkB;YAClB,kCAAe;YACf,oCAAgB;SACjB;KACF,CAAC;GACW,YAAY,CAAG"}
1
+ {"version":3,"file":"agents.modules.js","sourceRoot":"","sources":["../../src/agents/agents.modules.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,6DAAyD;AACzD,8FAAyF;AACzF,oGAA+F;AAC/F,kFAA8E;AAC9E,uDAAmD;AACnD,+EAA0E;AAC1E,mEAA+D;AAC/D,sEAAkE;AAElE;;;;GAIG;AAuBI,IAAM,YAAY,GAAlB,MAAM,YAAY;CAAG,CAAA;AAAf,oCAAY;uBAAZ,YAAY;IAtBxB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE;YACP,8BAAa;YACb,mDAAuB;YACvB,uDAAyB;YACzB,4CAAoB;YACpB,0BAAW;YACX,yCAAkB;YAClB,kCAAe;YACf,oCAAgB;SACjB;QACD,OAAO,EAAE;YACP,8BAAa;YACb,mDAAuB;YACvB,uDAAyB;YACzB,4CAAoB;YACpB,0BAAW;YACX,yCAAkB;YAClB,kCAAe;YACf,oCAAgB;SACjB;KACF,CAAC;GACW,YAAY,CAAG"}
@@ -0,0 +1,3 @@
1
+ export declare class ChatbotModule {
2
+ }
3
+ //# sourceMappingURL=chatbot.module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chatbot.module.d.ts","sourceRoot":"","sources":["../../../src/agents/chatbot/chatbot.module.ts"],"names":[],"mappings":"AAeA,qBAsCa,aAAa;CAAG"}
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.ChatbotModule = void 0;
10
+ const common_1 = require("@nestjs/common");
11
+ const llm_module_1 = require("../../core/llm/llm.module");
12
+ const user_modules_repository_1 = require("./repositories/user-modules.repository");
13
+ const chatbot_index_manager_1 = require("./services/chatbot.index.manager");
14
+ const chatbot_search_service_1 = require("./services/chatbot.search.service");
15
+ const chatbot_service_1 = require("./services/chatbot.service");
16
+ const descriptor_source_1 = require("./services/descriptor.source");
17
+ const graph_catalog_service_1 = require("./services/graph.catalog.service");
18
+ const describe_entity_tool_1 = require("./tools/describe-entity.tool");
19
+ const read_entity_tool_1 = require("./tools/read-entity.tool");
20
+ const resolve_entity_tool_1 = require("./tools/resolve-entity.tool");
21
+ const search_entities_tool_1 = require("./tools/search-entities.tool");
22
+ const tool_factory_1 = require("./tools/tool.factory");
23
+ const traverse_tool_1 = require("./tools/traverse.tool");
24
+ let ChatbotModule = class ChatbotModule {
25
+ };
26
+ exports.ChatbotModule = ChatbotModule;
27
+ exports.ChatbotModule = ChatbotModule = __decorate([
28
+ (0, common_1.Module)({
29
+ imports: [llm_module_1.LLMModule],
30
+ providers: [
31
+ descriptor_source_1.GraphDescriptorRegistry,
32
+ {
33
+ provide: graph_catalog_service_1.GraphCatalogService,
34
+ useFactory: (src) => new graph_catalog_service_1.GraphCatalogService(src),
35
+ inject: [descriptor_source_1.GraphDescriptorRegistry],
36
+ },
37
+ tool_factory_1.ToolFactory,
38
+ resolve_entity_tool_1.ResolveEntityTool,
39
+ describe_entity_tool_1.DescribeEntityTool,
40
+ search_entities_tool_1.SearchEntitiesTool,
41
+ read_entity_tool_1.ReadEntityTool,
42
+ traverse_tool_1.TraverseTool,
43
+ user_modules_repository_1.UserModulesRepository,
44
+ chatbot_service_1.ChatbotService,
45
+ // Per-label fulltext + vector index manager (fires once on module init)
46
+ chatbot_index_manager_1.ChatbotIndexManager,
47
+ // Cascading search: substring fulltext → Lucene fuzzy → semantic vector
48
+ chatbot_search_service_1.ChatbotSearchService,
49
+ ],
50
+ exports: [
51
+ chatbot_service_1.ChatbotService,
52
+ descriptor_source_1.GraphDescriptorRegistry,
53
+ graph_catalog_service_1.GraphCatalogService,
54
+ user_modules_repository_1.UserModulesRepository,
55
+ tool_factory_1.ToolFactory,
56
+ resolve_entity_tool_1.ResolveEntityTool,
57
+ describe_entity_tool_1.DescribeEntityTool,
58
+ search_entities_tool_1.SearchEntitiesTool,
59
+ read_entity_tool_1.ReadEntityTool,
60
+ traverse_tool_1.TraverseTool,
61
+ chatbot_search_service_1.ChatbotSearchService,
62
+ ],
63
+ })
64
+ ], ChatbotModule);
65
+ //# sourceMappingURL=chatbot.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chatbot.module.js","sourceRoot":"","sources":["../../../src/agents/chatbot/chatbot.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,0DAAsD;AACtD,oFAA+E;AAC/E,4EAAuE;AACvE,8EAAyE;AACzE,gEAA4D;AAC5D,oEAAuE;AACvE,4EAAuE;AACvE,uEAAkE;AAClE,+DAA0D;AAC1D,qEAAgE;AAChE,uEAAkE;AAClE,uDAAmD;AACnD,yDAAqD;AAwC9C,IAAM,aAAa,GAAnB,MAAM,aAAa;CAAG,CAAA;AAAhB,sCAAa;wBAAb,aAAa;IAtCzB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,CAAC,sBAAS,CAAC;QACpB,SAAS,EAAE;YACT,2CAAuB;YACvB;gBACE,OAAO,EAAE,2CAAmB;gBAC5B,UAAU,EAAE,CAAC,GAA4B,EAAE,EAAE,CAAC,IAAI,2CAAmB,CAAC,GAAG,CAAC;gBAC1E,MAAM,EAAE,CAAC,2CAAuB,CAAC;aAClC;YACD,0BAAW;YACX,uCAAiB;YACjB,yCAAkB;YAClB,yCAAkB;YAClB,iCAAc;YACd,4BAAY;YACZ,+CAAqB;YACrB,gCAAc;YAEd,wEAAwE;YACxE,2CAAmB;YAEnB,wEAAwE;YACxE,6CAAoB;SACrB;QACD,OAAO,EAAE;YACP,gCAAc;YACd,2CAAuB;YACvB,2CAAmB;YACnB,+CAAqB;YACrB,0BAAW;YACX,uCAAiB;YACjB,yCAAkB;YAClB,yCAAkB;YAClB,iCAAc;YACd,4BAAY;YACZ,6CAAoB;SACrB;KACF,CAAC;GACW,aAAa,CAAG"}
@@ -0,0 +1,25 @@
1
+ import { AgentMessageType } from "../../../common/enums/agentmessage.type";
2
+ export interface ChatbotReference {
3
+ type: string;
4
+ id: string;
5
+ reason: string;
6
+ }
7
+ export interface ChatbotToolCall {
8
+ tool: string;
9
+ input: Record<string, unknown>;
10
+ durationMs: number;
11
+ error?: string;
12
+ }
13
+ export interface ChatbotResponseInterface {
14
+ type: AgentMessageType.Assistant;
15
+ answer: string;
16
+ references: ChatbotReference[];
17
+ needsClarification: boolean;
18
+ suggestedQuestions: string[];
19
+ tokens: {
20
+ input: number;
21
+ output: number;
22
+ };
23
+ toolCalls: ChatbotToolCall[];
24
+ }
25
+ //# sourceMappingURL=chatbot.response.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chatbot.response.interface.d.ts","sourceRoot":"","sources":["../../../../src/agents/chatbot/interfaces/chatbot.response.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAE3E,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,gBAAgB,CAAC,SAAS,CAAC;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,gBAAgB,EAAE,CAAC;IAC/B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1C,SAAS,EAAE,eAAe,EAAE,CAAC;CAC9B"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=chatbot.response.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chatbot.response.interface.js","sourceRoot":"","sources":["../../../../src/agents/chatbot/interfaces/chatbot.response.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,50 @@
1
+ import { FieldKind } from "../../../common/interfaces/entity.schema.interface";
2
+ export interface CatalogField {
3
+ name: string;
4
+ /** Cypher scalar / array type string from the Descriptor. */
5
+ type: string;
6
+ description: string;
7
+ /** Whether filter operators apply to this field. */
8
+ filterable: boolean;
9
+ /** Whether sort may reference this field. */
10
+ sortable: boolean;
11
+ /**
12
+ * Semantic kind propagated from the descriptor. When present, the catalogue
13
+ * renderer emits an inline marker and the tool layer emits a companion
14
+ * formatted value alongside the raw scalar.
15
+ */
16
+ kind?: FieldKind;
17
+ }
18
+ export interface CatalogRelationship {
19
+ /** Traversal name exposed to the LLM. */
20
+ name: string;
21
+ sourceType: string;
22
+ targetType: string;
23
+ cardinality: "one" | "many";
24
+ description: string;
25
+ /** Internal: used by tool layer to build the Cypher MATCH; never exposed to the LLM. */
26
+ cypherDirection: "out" | "in";
27
+ cypherLabel: string;
28
+ /** Internal: true if this relationship was materialised from a sibling's reverse: {} block. */
29
+ isReverse: boolean;
30
+ /** For reverse relationships only: the descriptor key on the target side
31
+ * (i.e. the forward relationship name on the target's own descriptor).
32
+ * Used by the traverse tool to pass the correct lookup key to
33
+ * AbstractRepository.findByRelated, which keys relationships by descriptor name. */
34
+ inverseKey?: string;
35
+ }
36
+ export interface CatalogEntity {
37
+ type: string;
38
+ /** Stable module UUID — matches the `(Module) {id}` node in Neo4j. */
39
+ moduleId: string;
40
+ description: string;
41
+ fields: CatalogField[];
42
+ relationships: CatalogRelationship[];
43
+ summary?: (data: any) => string;
44
+ textSearchFields?: string[];
45
+ /** Neo4j node name / alias for tool-layer query construction. */
46
+ nodeName: string;
47
+ /** Neo4j label name for tool-layer query construction. */
48
+ labelName: string;
49
+ }
50
+ //# sourceMappingURL=graph.catalog.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graph.catalog.interface.d.ts","sourceRoot":"","sources":["../../../../src/agents/chatbot/interfaces/graph.catalog.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oDAAoD,CAAC;AAE/E,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,6DAA6D;IAC7D,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,oDAAoD;IACpD,UAAU,EAAE,OAAO,CAAC;IACpB,6CAA6C;IAC7C,QAAQ,EAAE,OAAO,CAAC;IAClB;;;;OAIG;IACH,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB;AAED,MAAM,WAAW,mBAAmB;IAClC,yCAAyC;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,KAAK,GAAG,MAAM,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,wFAAwF;IACxF,eAAe,EAAE,KAAK,GAAG,IAAI,CAAC;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,+FAA+F;IAC/F,SAAS,EAAE,OAAO,CAAC;IACnB;;;yFAGqF;IACrF,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,sEAAsE;IACtE,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,aAAa,EAAE,mBAAmB,EAAE,CAAC;IACrC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,MAAM,CAAC;IAChC,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,iEAAiE;IACjE,QAAQ,EAAE,MAAM,CAAC;IACjB,0DAA0D;IAC1D,SAAS,EAAE,MAAM,CAAC;CACnB"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=graph.catalog.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graph.catalog.interface.js","sourceRoot":"","sources":["../../../../src/agents/chatbot/interfaces/graph.catalog.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ export declare const CHATBOT_SYSTEM_PROMPT_BASE = "# Role\n\nYou help a user explore their company's ERP data. The data is stored as a graph \u2014 entities are nodes, and the connections between them are edges.\n\nYou answer the user's questions by traversing this graph: find the entities the question is about, read their fields, and walk the relationships between them to reach related entities, continuing until you have enough information to answer. Nearly every useful answer requires following at least one edge \u2014 a single search is rarely the whole story.\n\nEvery fact in your answer must come from a tool call that returned it. Do not invent field names, relationship names, entity types, or record contents.\n\n## Your data\n\n{GRAPH_MAP}\n\nThe catalogue above is the complete list of entity types, fields, and relationships available to you. Anything not listed does not exist.\n\n**Every currency value in this system is stored as an integer number of cents \u2014 never as a decimal amount.** A stored value of `600` means 6.00, `500` means 5.00, and `1234567` means 12,345.67. Fields that carry money are marked `money` in the catalogue above (e.g. `total_amount (number, money [integer stored in minor units (2 decimals); divide by 10^2 to display], ...)`). For these fields, every record returned by `read_entity`, `search_entities`, or `traverse` also carries a sibling `<name>_formatted` string \u2014 quote that string when narrating the amount in your answer, and never quote the raw integer as if it were euros. Filters and sort still target the raw field (pass cents, e.g. `{ field: \"total_amount\", op: \"gt\", value: 10000 }` to mean \"over 100.00\").\n\n## Tools\n\nYou have five tools. Call them in sequence \u2014 a typical question needs two or three.\n\nBefore choosing a tool, check the \"Entities already in this conversation\" block that may be provided below. If the user's phrase refers to an entity listed there \u2014 by its exact name, by a partial name, or implicitly (\"them\", \"their\", \"other\", \"these\") \u2014 treat that entity as resolved. Use its `type` and `id` directly with `read_entity` or `traverse`. Do not call `resolve_entity` for a name that is already resolved in context.\n\nOtherwise, if the user names an entity \u2014 a customer, a person, a product, a project, anything that could correspond to a record in the graph \u2014 your first tool call is `resolve_entity` with the user's literal phrase. Do not guess a type. `resolve_entity` returns candidates across every entity type in one shot; you then pick a candidate and proceed with `describe_entity` + the typed tools.\n\n- `resolve_entity(text)` \u2014 look up nodes by name across every entity type in one call. Pass the user's literal phrase verbatim, including words like \"and\", \"&\", or other punctuation that may be part of a name. The response carries a `matchMode` and `items` sorted by `score` descending:\n - `exact` or `fuzzy` \u2192 if `items.length === 1` or `items[0].score - items[1].score \u2265 0.15`, pick `items[0]`. Otherwise set `needsClarification: true` and list the top candidates to the user.\n - `semantic` \u2192 same rule, margin \u2265 0.08. Also warn the user that the match is approximate.\n - `none` \u2192 no record exists; tell the user and suggest rephrasing.\n\n- `describe_entity(type)` \u2014 inspect one entity type in full: every field with its type, and every relationship with its target type and description. Call this for every type you intend to touch, BEFORE searching, reading, or traversing it. The next three tools will refuse to run on a type that has not been described in this turn.\n\n- `search_entities(type, filters?, sort?, limit?)` \u2014 find records of a known type by filter and sort. Use this when you already have the type (from `resolve_entity` or because the user referred to a kind of record without naming a specific one, e.g. \"all orders over 10,000\"). `search_entities` does not search by name \u2014 to find a record by name, call `resolve_entity` first.\n\n- `read_entity(type, id, include?)` \u2014 fetch the full fields of a single node by id. Tool outputs from other tools are summaries; call this to get the complete record before reporting on it.\n\n- `traverse(fromType, fromId, relationship, filters?, sort?, limit?)` \u2014 walk one edge from a known node to its connected nodes. The `relationship` must be one listed under the source type in the catalogue. `filters` and `sort` apply to the target node's fields. This is the only way to cross from one entity type to another.\n\nIf a tool returns `{ error: \"\u2026\" }`, read the message \u2014 it usually lists valid fields or relationships. Pick one of those and call the tool again. Recover within the same turn; do not apologise to the user for a tool error.\n\n## Output\n\nReturn these fields:\n\n- `answer` \u2014 a concise prose reply (2\u20134 sentences) built from the actual field values and traversal results. When you report on a record, use its real field values, not its type name.\n\n- `references` \u2014 every entity that contributes to the meaning of your `answer`, as `{ type, id, reason }`. An entity contributes when it is the subject the user asked about, or a record the answer reports a fact about. `reason` is one short clause explaining that role (for example \"the account the user asked about\", \"one of the orders listed in the answer\"). Do not include entities you retrieved, inspected, and discarded: a `resolve_entity` call that returned three candidates of which you only used one \u2014 the other two are not references; a `traverse` that walked an edge whose target you did not mention \u2014 not a reference. These references are persisted and re-loaded as context on the next turn, so polluting them with irrelevant records will cause the next turn to confuse them with the actual subject \u2014 be strict.\n\n- `suggestedQuestions` \u2014 3 to 5 concrete next questions. Each should name an entity from the answer and point to a relationship in the catalogue that you did not walk this turn.\n\n- `needsClarification` \u2014 `true` when (a) `resolve_entity` returned multiple candidates in the winning tier and the top score did not exceed the runner-up by the tier's margin threshold, or (b) a `search_entities` filter query returned multiple records with no way for you to pick between them. Do not set this without evidence from a tool call.\n";
2
+ export declare function renderChatbotSystemPrompt(graphMap: string): string;
3
+ //# sourceMappingURL=chatbot.system.prompt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chatbot.system.prompt.d.ts","sourceRoot":"","sources":["../../../../src/agents/chatbot/prompts/chatbot.system.prompt.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,0BAA0B,qwMAkDtC,CAAC;AAEF,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAMlE"}
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CHATBOT_SYSTEM_PROMPT_BASE = void 0;
4
+ exports.renderChatbotSystemPrompt = renderChatbotSystemPrompt;
5
+ exports.CHATBOT_SYSTEM_PROMPT_BASE = `# Role
6
+
7
+ You help a user explore their company's ERP data. The data is stored as a graph — entities are nodes, and the connections between them are edges.
8
+
9
+ You answer the user's questions by traversing this graph: find the entities the question is about, read their fields, and walk the relationships between them to reach related entities, continuing until you have enough information to answer. Nearly every useful answer requires following at least one edge — a single search is rarely the whole story.
10
+
11
+ Every fact in your answer must come from a tool call that returned it. Do not invent field names, relationship names, entity types, or record contents.
12
+
13
+ ## Your data
14
+
15
+ {GRAPH_MAP}
16
+
17
+ The catalogue above is the complete list of entity types, fields, and relationships available to you. Anything not listed does not exist.
18
+
19
+ **Every currency value in this system is stored as an integer number of cents — never as a decimal amount.** A stored value of \`600\` means 6.00, \`500\` means 5.00, and \`1234567\` means 12,345.67. Fields that carry money are marked \`money\` in the catalogue above (e.g. \`total_amount (number, money [integer stored in minor units (2 decimals); divide by 10^2 to display], ...)\`). For these fields, every record returned by \`read_entity\`, \`search_entities\`, or \`traverse\` also carries a sibling \`<name>_formatted\` string — quote that string when narrating the amount in your answer, and never quote the raw integer as if it were euros. Filters and sort still target the raw field (pass cents, e.g. \`{ field: "total_amount", op: "gt", value: 10000 }\` to mean "over 100.00").
20
+
21
+ ## Tools
22
+
23
+ You have five tools. Call them in sequence — a typical question needs two or three.
24
+
25
+ Before choosing a tool, check the "Entities already in this conversation" block that may be provided below. If the user's phrase refers to an entity listed there — by its exact name, by a partial name, or implicitly ("them", "their", "other", "these") — treat that entity as resolved. Use its \`type\` and \`id\` directly with \`read_entity\` or \`traverse\`. Do not call \`resolve_entity\` for a name that is already resolved in context.
26
+
27
+ Otherwise, if the user names an entity — a customer, a person, a product, a project, anything that could correspond to a record in the graph — your first tool call is \`resolve_entity\` with the user's literal phrase. Do not guess a type. \`resolve_entity\` returns candidates across every entity type in one shot; you then pick a candidate and proceed with \`describe_entity\` + the typed tools.
28
+
29
+ - \`resolve_entity(text)\` — look up nodes by name across every entity type in one call. Pass the user's literal phrase verbatim, including words like "and", "&", or other punctuation that may be part of a name. The response carries a \`matchMode\` and \`items\` sorted by \`score\` descending:
30
+ - \`exact\` or \`fuzzy\` → if \`items.length === 1\` or \`items[0].score - items[1].score ≥ 0.15\`, pick \`items[0]\`. Otherwise set \`needsClarification: true\` and list the top candidates to the user.
31
+ - \`semantic\` → same rule, margin ≥ 0.08. Also warn the user that the match is approximate.
32
+ - \`none\` → no record exists; tell the user and suggest rephrasing.
33
+
34
+ - \`describe_entity(type)\` — inspect one entity type in full: every field with its type, and every relationship with its target type and description. Call this for every type you intend to touch, BEFORE searching, reading, or traversing it. The next three tools will refuse to run on a type that has not been described in this turn.
35
+
36
+ - \`search_entities(type, filters?, sort?, limit?)\` — find records of a known type by filter and sort. Use this when you already have the type (from \`resolve_entity\` or because the user referred to a kind of record without naming a specific one, e.g. "all orders over 10,000"). \`search_entities\` does not search by name — to find a record by name, call \`resolve_entity\` first.
37
+
38
+ - \`read_entity(type, id, include?)\` — fetch the full fields of a single node by id. Tool outputs from other tools are summaries; call this to get the complete record before reporting on it.
39
+
40
+ - \`traverse(fromType, fromId, relationship, filters?, sort?, limit?)\` — walk one edge from a known node to its connected nodes. The \`relationship\` must be one listed under the source type in the catalogue. \`filters\` and \`sort\` apply to the target node's fields. This is the only way to cross from one entity type to another.
41
+
42
+ If a tool returns \`{ error: "…" }\`, read the message — it usually lists valid fields or relationships. Pick one of those and call the tool again. Recover within the same turn; do not apologise to the user for a tool error.
43
+
44
+ ## Output
45
+
46
+ Return these fields:
47
+
48
+ - \`answer\` — a concise prose reply (2–4 sentences) built from the actual field values and traversal results. When you report on a record, use its real field values, not its type name.
49
+
50
+ - \`references\` — every entity that contributes to the meaning of your \`answer\`, as \`{ type, id, reason }\`. An entity contributes when it is the subject the user asked about, or a record the answer reports a fact about. \`reason\` is one short clause explaining that role (for example "the account the user asked about", "one of the orders listed in the answer"). Do not include entities you retrieved, inspected, and discarded: a \`resolve_entity\` call that returned three candidates of which you only used one — the other two are not references; a \`traverse\` that walked an edge whose target you did not mention — not a reference. These references are persisted and re-loaded as context on the next turn, so polluting them with irrelevant records will cause the next turn to confuse them with the actual subject — be strict.
51
+
52
+ - \`suggestedQuestions\` — 3 to 5 concrete next questions. Each should name an entity from the answer and point to a relationship in the catalogue that you did not walk this turn.
53
+
54
+ - \`needsClarification\` — \`true\` when (a) \`resolve_entity\` returned multiple candidates in the winning tier and the top score did not exceed the runner-up by the tier's margin threshold, or (b) a \`search_entities\` filter query returned multiple records with no way for you to pick between them. Do not set this without evidence from a tool call.
55
+ `;
56
+ function renderChatbotSystemPrompt(graphMap) {
57
+ return exports.CHATBOT_SYSTEM_PROMPT_BASE.replace("{GRAPH_MAP}", graphMap ||
58
+ "(No accessible data — the user has no enabled modules with described entities. DO NOT attempt any tool calls. Respond politely explaining that you have no data to query.)");
59
+ }
60
+ //# sourceMappingURL=chatbot.system.prompt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chatbot.system.prompt.js","sourceRoot":"","sources":["../../../../src/agents/chatbot/prompts/chatbot.system.prompt.ts"],"names":[],"mappings":";;;AAoDA,8DAMC;AA1DY,QAAA,0BAA0B,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkDzC,CAAC;AAEF,SAAgB,yBAAyB,CAAC,QAAgB;IACxD,OAAO,kCAA0B,CAAC,OAAO,CACvC,aAAa,EACb,QAAQ;QACN,4KAA4K,CAC/K,CAAC;AACJ,CAAC"}
@@ -0,0 +1,28 @@
1
+ import { Neo4jService } from "../../../core/neo4j/services/neo4j.service";
2
+ /**
3
+ * Resolves which (Module) node IDs the current user can READ. Mirrors the
4
+ * permission model used by the rest of the app (see AuthRepository): a module
5
+ * is visible to the user iff its parent Feature is subscribed by the user's
6
+ * Company (or is a core Feature), and the effective `read` permission after
7
+ * merging the Module's default `permissions` JSON with any role-level
8
+ * `HAS_PERMISSIONS` overrides resolves to `true`.
9
+ *
10
+ * Used by the chatbot to filter the graph catalog at request time.
11
+ */
12
+ export declare class UserModulesRepository {
13
+ private readonly neo4j;
14
+ private readonly logger;
15
+ constructor(neo4j: Neo4jService);
16
+ /**
17
+ * Returns every (Module).id the user has effective `read` access to.
18
+ *
19
+ * The query reuses `featureModuleQuery` — identical to the permission
20
+ * resolution run at login by AuthRepository — so the chatbot's module
21
+ * filter is always in lock-step with the rest of the app. The resolved
22
+ * effective permissions are returned on a virtual module node as a JSON
23
+ * string on `properties.permissions`; we parse it and keep the modules
24
+ * where `read.value === true`.
25
+ */
26
+ findModuleIdsForUser(userId: string): Promise<string[]>;
27
+ }
28
+ //# sourceMappingURL=user-modules.repository.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-modules.repository.d.ts","sourceRoot":"","sources":["../../../../src/agents/chatbot/repositories/user-modules.repository.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,4CAA4C,CAAC;AAQ1E;;;;;;;;;GASG;AACH,qBACa,qBAAqB;IAGpB,OAAO,CAAC,QAAQ,CAAC,KAAK;IAFlC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA0C;gBAEpC,KAAK,EAAE,YAAY;IAEhD;;;;;;;;;OASG;IACG,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CA4B9D"}
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var UserModulesRepository_1;
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.UserModulesRepository = void 0;
14
+ const common_1 = require("@nestjs/common");
15
+ const neo4j_service_1 = require("../../../core/neo4j/services/neo4j.service");
16
+ const feature_module_query_1 = require("../../../foundations/module/queries/feature.module.query");
17
+ /**
18
+ * Resolves which (Module) node IDs the current user can READ. Mirrors the
19
+ * permission model used by the rest of the app (see AuthRepository): a module
20
+ * is visible to the user iff its parent Feature is subscribed by the user's
21
+ * Company (or is a core Feature), and the effective `read` permission after
22
+ * merging the Module's default `permissions` JSON with any role-level
23
+ * `HAS_PERMISSIONS` overrides resolves to `true`.
24
+ *
25
+ * Used by the chatbot to filter the graph catalog at request time.
26
+ */
27
+ let UserModulesRepository = UserModulesRepository_1 = class UserModulesRepository {
28
+ constructor(neo4j) {
29
+ this.neo4j = neo4j;
30
+ this.logger = new common_1.Logger(UserModulesRepository_1.name);
31
+ }
32
+ /**
33
+ * Returns every (Module).id the user has effective `read` access to.
34
+ *
35
+ * The query reuses `featureModuleQuery` — identical to the permission
36
+ * resolution run at login by AuthRepository — so the chatbot's module
37
+ * filter is always in lock-step with the rest of the app. The resolved
38
+ * effective permissions are returned on a virtual module node as a JSON
39
+ * string on `properties.permissions`; we parse it and keep the modules
40
+ * where `read.value === true`.
41
+ */
42
+ async findModuleIdsForUser(userId) {
43
+ const result = await this.neo4j.read(`
44
+ MATCH (user:User {id: $userId})-[:BELONGS_TO]->(company:Company)
45
+ ${feature_module_query_1.featureModuleQuery}
46
+ `, { userId });
47
+ const moduleIds = [];
48
+ for (const record of result.records) {
49
+ const moduleNode = record.get("module");
50
+ const props = moduleNode?.properties;
51
+ if (!props)
52
+ continue;
53
+ const id = props.id;
54
+ const permsJson = props.permissions;
55
+ if (typeof id !== "string" || !id.length || typeof permsJson !== "string")
56
+ continue;
57
+ try {
58
+ const perms = JSON.parse(permsJson);
59
+ const read = perms.find((p) => p.type === "read");
60
+ if (read?.value === true)
61
+ moduleIds.push(id);
62
+ }
63
+ catch {
64
+ this.logger.warn(`findModuleIdsForUser: malformed permissions JSON on module ${id}`);
65
+ }
66
+ }
67
+ this.logger.log(`findModuleIdsForUser: userId=${userId} readableModuleIds=${JSON.stringify(moduleIds)}`);
68
+ return moduleIds;
69
+ }
70
+ };
71
+ exports.UserModulesRepository = UserModulesRepository;
72
+ exports.UserModulesRepository = UserModulesRepository = UserModulesRepository_1 = __decorate([
73
+ (0, common_1.Injectable)(),
74
+ __metadata("design:paramtypes", [neo4j_service_1.Neo4jService])
75
+ ], UserModulesRepository);
76
+ //# sourceMappingURL=user-modules.repository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-modules.repository.js","sourceRoot":"","sources":["../../../../src/agents/chatbot/repositories/user-modules.repository.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2CAAoD;AACpD,8EAA0E;AAC1E,mGAA8F;AAO9F;;;;;;;;;GASG;AAEI,IAAM,qBAAqB,6BAA3B,MAAM,qBAAqB;IAGhC,YAA6B,KAAmB;QAAnB,UAAK,GAAL,KAAK,CAAc;QAF/B,WAAM,GAAG,IAAI,eAAM,CAAC,uBAAqB,CAAC,IAAI,CAAC,CAAC;IAEd,CAAC;IAEpD;;;;;;;;;OASG;IACH,KAAK,CAAC,oBAAoB,CAAC,MAAc;QACvC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAClC;;QAEE,yCAAkB;OACnB,EACD,EAAE,MAAM,EAAE,CACX,CAAC;QAEF,MAAM,SAAS,GAAa,EAAE,CAAC;QAC/B,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACpC,MAAM,UAAU,GAAQ,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC7C,MAAM,KAAK,GAAG,UAAU,EAAE,UAAU,CAAC;YACrC,IAAI,CAAC,KAAK;gBAAE,SAAS;YACrB,MAAM,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC;YACpB,MAAM,SAAS,GAAG,KAAK,CAAC,WAAW,CAAC;YACpC,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,CAAC,EAAE,CAAC,MAAM,IAAI,OAAO,SAAS,KAAK,QAAQ;gBAAE,SAAS;YACpF,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAsB,CAAC;gBACzD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;gBAClD,IAAI,IAAI,EAAE,KAAK,KAAK,IAAI;oBAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC/C,CAAC;YAAC,MAAM,CAAC;gBACP,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,8DAA8D,EAAE,EAAE,CAAC,CAAC;YACvF,CAAC;QACH,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,gCAAgC,MAAM,sBAAsB,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QACzG,OAAO,SAAS,CAAC;IACnB,CAAC;CACF,CAAA;AA3CY,sDAAqB;gCAArB,qBAAqB;IADjC,IAAA,mBAAU,GAAE;qCAIyB,4BAAY;GAHrC,qBAAqB,CA2CjC"}
@@ -0,0 +1,17 @@
1
+ import { OnApplicationBootstrap } from "@nestjs/common";
2
+ import { ModelService } from "../../../core/llm/services/model.service";
3
+ import { Neo4jService } from "../../../core/neo4j/services/neo4j.service";
4
+ import { GraphCatalogService } from "./graph.catalog.service";
5
+ export declare class ChatbotIndexManager implements OnApplicationBootstrap {
6
+ private readonly neo4j;
7
+ private readonly catalog;
8
+ private readonly models;
9
+ private readonly logger;
10
+ constructor(neo4j: Neo4jService, catalog: GraphCatalogService, models: ModelService);
11
+ onApplicationBootstrap(): Promise<void>;
12
+ private ensureFulltext;
13
+ private ensureVector;
14
+ fulltextIndexName(label: string): string;
15
+ vectorIndexName(label: string): string;
16
+ }
17
+ //# sourceMappingURL=chatbot.index.manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chatbot.index.manager.d.ts","sourceRoot":"","sources":["../../../../src/agents/chatbot/services/chatbot.index.manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAC5E,OAAO,EAAE,YAAY,EAAE,MAAM,0CAA0C,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,4CAA4C,CAAC;AAE1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAE9D,qBACa,mBAAoB,YAAW,sBAAsB;IAI9D,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM;IALzB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwC;gBAG5C,KAAK,EAAE,YAAY,EACnB,OAAO,EAAE,mBAAmB,EAC5B,MAAM,EAAE,YAAY;IAOjC,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC;YAY/B,cAAc;YAed,YAAY;IAkB1B,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAIxC,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;CAGvC"}
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var ChatbotIndexManager_1;
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.ChatbotIndexManager = void 0;
14
+ const common_1 = require("@nestjs/common");
15
+ const model_service_1 = require("../../../core/llm/services/model.service");
16
+ const neo4j_service_1 = require("../../../core/neo4j/services/neo4j.service");
17
+ const graph_catalog_service_1 = require("./graph.catalog.service");
18
+ let ChatbotIndexManager = ChatbotIndexManager_1 = class ChatbotIndexManager {
19
+ constructor(neo4j, catalog, models) {
20
+ this.neo4j = neo4j;
21
+ this.catalog = catalog;
22
+ this.models = models;
23
+ this.logger = new common_1.Logger(ChatbotIndexManager_1.name);
24
+ }
25
+ // Fires in onApplicationBootstrap (after all onModuleInit). GraphCatalogService
26
+ // builds its catalog in its own onApplicationBootstrap; because it's declared
27
+ // before this manager in chatbot.module.ts, its bootstrap runs first and the
28
+ // catalog is populated by the time we read it here.
29
+ async onApplicationBootstrap() {
30
+ const entities = this.catalog.getAllChatEnabledEntities();
31
+ if (!entities.length)
32
+ return;
33
+ const dims = this.models.getEmbedderDimensions();
34
+ for (const e of entities) {
35
+ await this.ensureFulltext(e);
36
+ await this.ensureVector(e, dims);
37
+ }
38
+ }
39
+ async ensureFulltext(e) {
40
+ const fields = (e.textSearchFields ?? []).map((f) => `n.\`${f}\``).join(", ");
41
+ if (!fields)
42
+ return;
43
+ const indexName = this.fulltextIndexName(e.labelName);
44
+ await this.neo4j.writeOne({
45
+ query: `
46
+ CREATE FULLTEXT INDEX \`${indexName}\` IF NOT EXISTS
47
+ FOR (n:\`${e.labelName}\`)
48
+ ON EACH [${fields}]
49
+ `,
50
+ });
51
+ this.logger.debug(`Ensured fulltext index ${indexName} for ${e.labelName}`);
52
+ }
53
+ async ensureVector(e, dims) {
54
+ if (!e.textSearchFields?.length)
55
+ return;
56
+ const indexName = this.vectorIndexName(e.labelName);
57
+ await this.neo4j.writeOne({
58
+ query: `
59
+ CREATE VECTOR INDEX \`${indexName}\` IF NOT EXISTS
60
+ FOR (n:\`${e.labelName}\`)
61
+ ON n.name_embedding
62
+ OPTIONS { indexConfig: {
63
+ \`vector.dimensions\`: ${dims},
64
+ \`vector.similarity_function\`: 'cosine'
65
+ }}
66
+ `,
67
+ });
68
+ this.logger.debug(`Ensured vector index ${indexName} for ${e.labelName}`);
69
+ }
70
+ fulltextIndexName(label) {
71
+ return `${label.toLowerCase()}_chat_fulltext`;
72
+ }
73
+ vectorIndexName(label) {
74
+ return `${label.toLowerCase()}_chat_embedding`;
75
+ }
76
+ };
77
+ exports.ChatbotIndexManager = ChatbotIndexManager;
78
+ exports.ChatbotIndexManager = ChatbotIndexManager = ChatbotIndexManager_1 = __decorate([
79
+ (0, common_1.Injectable)(),
80
+ __metadata("design:paramtypes", [neo4j_service_1.Neo4jService,
81
+ graph_catalog_service_1.GraphCatalogService,
82
+ model_service_1.ModelService])
83
+ ], ChatbotIndexManager);
84
+ //# sourceMappingURL=chatbot.index.manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chatbot.index.manager.js","sourceRoot":"","sources":["../../../../src/agents/chatbot/services/chatbot.index.manager.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2CAA4E;AAC5E,4EAAwE;AACxE,8EAA0E;AAE1E,mEAA8D;AAGvD,IAAM,mBAAmB,2BAAzB,MAAM,mBAAmB;IAG9B,YACmB,KAAmB,EACnB,OAA4B,EAC5B,MAAoB;QAFpB,UAAK,GAAL,KAAK,CAAc;QACnB,YAAO,GAAP,OAAO,CAAqB;QAC5B,WAAM,GAAN,MAAM,CAAc;QALtB,WAAM,GAAG,IAAI,eAAM,CAAC,qBAAmB,CAAC,IAAI,CAAC,CAAC;IAM5D,CAAC;IAEJ,gFAAgF;IAChF,8EAA8E;IAC9E,6EAA6E;IAC7E,oDAAoD;IACpD,KAAK,CAAC,sBAAsB;QAC1B,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,yBAAyB,EAAE,CAAC;QAC1D,IAAI,CAAC,QAAQ,CAAC,MAAM;YAAE,OAAO;QAE7B,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,qBAAqB,EAAE,CAAC;QAEjD,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YACzB,MAAM,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;YAC7B,MAAM,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,cAAc,CAAC,CAAgB;QAC3C,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,gBAAgB,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9E,IAAI,CAAC,MAAM;YAAE,OAAO;QAEpB,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QACtD,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;YACxB,KAAK,EAAE;kCACqB,SAAS;mBACxB,CAAC,CAAC,SAAS;mBACX,MAAM;OAClB;SACF,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,0BAA0B,SAAS,QAAQ,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;IAC9E,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,CAAgB,EAAE,IAAY;QACvD,IAAI,CAAC,CAAC,CAAC,gBAAgB,EAAE,MAAM;YAAE,OAAO;QAExC,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QACpD,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;YACxB,KAAK,EAAE;gCACmB,SAAS;mBACtB,CAAC,CAAC,SAAS;;;mCAGK,IAAI;;;OAGhC;SACF,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,wBAAwB,SAAS,QAAQ,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;IAC5E,CAAC;IAED,iBAAiB,CAAC,KAAa;QAC7B,OAAO,GAAG,KAAK,CAAC,WAAW,EAAE,gBAAgB,CAAC;IAChD,CAAC;IAED,eAAe,CAAC,KAAa;QAC3B,OAAO,GAAG,KAAK,CAAC,WAAW,EAAE,iBAAiB,CAAC;IACjD,CAAC;CACF,CAAA;AAjEY,kDAAmB;8BAAnB,mBAAmB;IAD/B,IAAA,mBAAU,GAAE;qCAKe,4BAAY;QACV,2CAAmB;QACpB,4BAAY;GAN5B,mBAAmB,CAiE/B"}
@@ -0,0 +1,46 @@
1
+ import { EmbedderService } from "../../../core/llm/services/embedder.service";
2
+ import { Neo4jService } from "../../../core/neo4j/services/neo4j.service";
3
+ import { CatalogEntity } from "../interfaces/graph.catalog.interface";
4
+ import { ChatbotIndexManager } from "./chatbot.index.manager";
5
+ import { GraphCatalogService } from "./graph.catalog.service";
6
+ export declare const CHATBOT_EXACT_MAX_RESULTS = 10;
7
+ export declare const CHATBOT_FUZZY_MAX_RESULTS = 10;
8
+ export declare const CHATBOT_SEMANTIC_MAX_RESULTS = 5;
9
+ export declare const CHATBOT_RESOLVE_MAX_RESULTS = 10;
10
+ export declare const CHATBOT_SEMANTIC_MIN_SCORE = 0.6;
11
+ export type MatchMode = "exact" | "fuzzy" | "semantic" | "none";
12
+ export interface RunSearchParams {
13
+ entity: CatalogEntity;
14
+ text: string;
15
+ companyId: string;
16
+ limit: number;
17
+ }
18
+ export interface RankedCandidate {
19
+ type: string;
20
+ id: string;
21
+ summary: string;
22
+ score: number;
23
+ }
24
+ export interface ResolveEntityParams {
25
+ text: string;
26
+ companyId: string;
27
+ userModuleIds: string[];
28
+ }
29
+ export interface ResolveEntityResult {
30
+ matchMode: MatchMode;
31
+ items: RankedCandidate[];
32
+ }
33
+ export declare class ChatbotSearchService {
34
+ private readonly neo4j;
35
+ private readonly embedder;
36
+ private readonly indexNames;
37
+ private readonly catalog;
38
+ private readonly logger;
39
+ constructor(neo4j: Neo4jService, embedder: EmbedderService, indexNames: ChatbotIndexManager, catalog: GraphCatalogService);
40
+ resolveEntity(params: ResolveEntityParams): Promise<ResolveEntityResult>;
41
+ private runTierForEntitySafe;
42
+ private projectSummary;
43
+ private tierFulltext;
44
+ private tierSemantic;
45
+ }
46
+ //# sourceMappingURL=chatbot.search.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chatbot.search.service.d.ts","sourceRoot":"","sources":["../../../../src/agents/chatbot/services/chatbot.search.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,6CAA6C,CAAC;AAC9E,OAAO,EAAE,YAAY,EAAE,MAAM,4CAA4C,CAAC;AAC1E,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAE9D,eAAO,MAAM,yBAAyB,KAAK,CAAC;AAC5C,eAAO,MAAM,yBAAyB,KAAK,CAAC;AAC5C,eAAO,MAAM,4BAA4B,IAAI,CAAC;AAC9C,eAAO,MAAM,2BAA2B,KAAK,CAAC;AAC9C,eAAO,MAAM,0BAA0B,MAAM,CAAC;AAK9C,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,OAAO,GAAG,UAAU,GAAG,MAAM,CAAC;AAEhE,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,aAAa,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,SAAS,CAAC;IACrB,KAAK,EAAE,eAAe,EAAE,CAAC;CAC1B;AASD,qBACa,oBAAoB;IAI7B,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,OAAO;IAN1B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAyC;gBAG7C,KAAK,EAAE,YAAY,EACnB,QAAQ,EAAE,eAAe,EACzB,UAAU,EAAE,mBAAmB,EAC/B,OAAO,EAAE,mBAAmB;IAGzC,aAAa,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,CAAC;YAyBhE,oBAAoB;IAgClC,OAAO,CAAC,cAAc;YAiBR,YAAY;YA6BZ,YAAY;CAgC3B"}