@carlonicora/nestjs-neo4jsonapi 4.11.0 → 4.12.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 (253) hide show
  1. package/dist/agents/common/inline-entity-links.d.ts +22 -0
  2. package/dist/agents/common/inline-entity-links.d.ts.map +1 -0
  3. package/dist/agents/common/inline-entity-links.js +60 -0
  4. package/dist/agents/common/inline-entity-links.js.map +1 -0
  5. package/dist/agents/community.detector/services/community.detector.service.d.ts.map +1 -1
  6. package/dist/agents/community.detector/services/community.detector.service.js +4 -0
  7. package/dist/agents/community.detector/services/community.detector.service.js.map +1 -1
  8. package/dist/agents/graph/interfaces/graph.catalog.interface.d.ts +17 -0
  9. package/dist/agents/graph/interfaces/graph.catalog.interface.d.ts.map +1 -1
  10. package/dist/agents/graph/services/graph.catalog.service.d.ts +15 -2
  11. package/dist/agents/graph/services/graph.catalog.service.d.ts.map +1 -1
  12. package/dist/agents/graph/services/graph.catalog.service.js +87 -0
  13. package/dist/agents/graph/services/graph.catalog.service.js.map +1 -1
  14. package/dist/agents/graph/services/graph.index.manager.d.ts +18 -1
  15. package/dist/agents/graph/services/graph.index.manager.d.ts.map +1 -1
  16. package/dist/agents/graph/services/graph.index.manager.js +16 -2
  17. package/dist/agents/graph/services/graph.index.manager.js.map +1 -1
  18. package/dist/agents/graph/services/graph.search.service.d.ts +38 -1
  19. package/dist/agents/graph/services/graph.search.service.d.ts.map +1 -1
  20. package/dist/agents/graph/services/graph.search.service.js +126 -7
  21. package/dist/agents/graph/services/graph.search.service.js.map +1 -1
  22. package/dist/agents/graph/services/scope.guard.d.ts +30 -1
  23. package/dist/agents/graph/services/scope.guard.d.ts.map +1 -1
  24. package/dist/agents/graph/services/scope.guard.js +53 -2
  25. package/dist/agents/graph/services/scope.guard.js.map +1 -1
  26. package/dist/agents/graph/tools/search-entities.tool.d.ts.map +1 -1
  27. package/dist/agents/graph/tools/search-entities.tool.js +3 -1
  28. package/dist/agents/graph/tools/search-entities.tool.js.map +1 -1
  29. package/dist/agents/graph/tools/traverse.tool.d.ts.map +1 -1
  30. package/dist/agents/graph/tools/traverse.tool.js +18 -8
  31. package/dist/agents/graph/tools/traverse.tool.js.map +1 -1
  32. package/dist/agents/operator/contexts/operator.context.d.ts +8 -1
  33. package/dist/agents/operator/contexts/operator.context.d.ts.map +1 -1
  34. package/dist/agents/operator/contexts/operator.context.js +6 -0
  35. package/dist/agents/operator/contexts/operator.context.js.map +1 -1
  36. package/dist/agents/operator/controllers/operator.controller.d.ts +4 -1
  37. package/dist/agents/operator/controllers/operator.controller.d.ts.map +1 -1
  38. package/dist/agents/operator/controllers/operator.controller.js +15 -8
  39. package/dist/agents/operator/controllers/operator.controller.js.map +1 -1
  40. package/dist/agents/operator/services/operator.service.d.ts +15 -0
  41. package/dist/agents/operator/services/operator.service.d.ts.map +1 -1
  42. package/dist/agents/operator/services/operator.service.js +31 -8
  43. package/dist/agents/operator/services/operator.service.js.map +1 -1
  44. package/dist/agents/operator/tools/operator.tool.registry.d.ts +2 -1
  45. package/dist/agents/operator/tools/operator.tool.registry.d.ts.map +1 -1
  46. package/dist/agents/operator/tools/operator.tool.registry.js +8 -3
  47. package/dist/agents/operator/tools/operator.tool.registry.js.map +1 -1
  48. package/dist/agents/responder/contexts/responder.context.d.ts +6 -0
  49. package/dist/agents/responder/contexts/responder.context.d.ts.map +1 -1
  50. package/dist/agents/responder/contexts/responder.context.js +2 -0
  51. package/dist/agents/responder/contexts/responder.context.js.map +1 -1
  52. package/dist/agents/responder/nodes/responder.answer.node.service.d.ts.map +1 -1
  53. package/dist/agents/responder/nodes/responder.answer.node.service.js +8 -2
  54. package/dist/agents/responder/nodes/responder.answer.node.service.js.map +1 -1
  55. package/dist/agents/responder/services/responder.service.d.ts +2 -0
  56. package/dist/agents/responder/services/responder.service.d.ts.map +1 -1
  57. package/dist/agents/responder/services/responder.service.js +1 -0
  58. package/dist/agents/responder/services/responder.service.js.map +1 -1
  59. package/dist/common/decorators/oauth.scopes.decorator.d.ts +2 -2
  60. package/dist/common/decorators/oauth.scopes.decorator.js +2 -2
  61. package/dist/common/helpers/credit-gate.d.ts +8 -0
  62. package/dist/common/helpers/credit-gate.d.ts.map +1 -1
  63. package/dist/common/helpers/credit-gate.js +11 -0
  64. package/dist/common/helpers/credit-gate.js.map +1 -1
  65. package/dist/common/helpers/define-entity.d.ts.map +1 -1
  66. package/dist/common/helpers/define-entity.js +6 -0
  67. package/dist/common/helpers/define-entity.js.map +1 -1
  68. package/dist/common/interfaces/assistant.scope.interface.d.ts +47 -0
  69. package/dist/common/interfaces/assistant.scope.interface.d.ts.map +1 -0
  70. package/dist/common/interfaces/assistant.scope.interface.js +14 -0
  71. package/dist/common/interfaces/assistant.scope.interface.js.map +1 -0
  72. package/dist/common/interfaces/assistant.title.interface.d.ts +30 -0
  73. package/dist/common/interfaces/assistant.title.interface.d.ts.map +1 -0
  74. package/dist/common/interfaces/assistant.title.interface.js +18 -0
  75. package/dist/common/interfaces/assistant.title.interface.js.map +1 -0
  76. package/dist/common/interfaces/datamodel.interface.d.ts +1 -0
  77. package/dist/common/interfaces/datamodel.interface.d.ts.map +1 -1
  78. package/dist/common/interfaces/entity.schema.interface.d.ts +63 -6
  79. package/dist/common/interfaces/entity.schema.interface.d.ts.map +1 -1
  80. package/dist/common/interfaces/external.entity.source.interface.d.ts +43 -0
  81. package/dist/common/interfaces/external.entity.source.interface.d.ts.map +1 -0
  82. package/dist/common/interfaces/external.entity.source.interface.js +17 -0
  83. package/dist/common/interfaces/external.entity.source.interface.js.map +1 -0
  84. package/dist/common/interfaces/index.d.ts +4 -0
  85. package/dist/common/interfaces/index.d.ts.map +1 -1
  86. package/dist/common/interfaces/index.js +4 -0
  87. package/dist/common/interfaces/index.js.map +1 -1
  88. package/dist/common/interfaces/s3.key-access.policy.interface.d.ts +48 -0
  89. package/dist/common/interfaces/s3.key-access.policy.interface.d.ts.map +1 -0
  90. package/dist/common/interfaces/s3.key-access.policy.interface.js +36 -0
  91. package/dist/common/interfaces/s3.key-access.policy.interface.js.map +1 -0
  92. package/dist/common/tokens.d.ts +13 -0
  93. package/dist/common/tokens.d.ts.map +1 -1
  94. package/dist/common/tokens.js +14 -1
  95. package/dist/common/tokens.js.map +1 -1
  96. package/dist/config/base.config.d.ts +13 -0
  97. package/dist/config/base.config.d.ts.map +1 -1
  98. package/dist/config/base.config.js +2 -0
  99. package/dist/config/base.config.js.map +1 -1
  100. package/dist/config/interfaces/base.config.interface.d.ts +2 -0
  101. package/dist/config/interfaces/base.config.interface.d.ts.map +1 -1
  102. package/dist/config/interfaces/config.assistant.interface.d.ts +9 -0
  103. package/dist/config/interfaces/config.assistant.interface.d.ts.map +1 -0
  104. package/dist/config/interfaces/config.assistant.interface.js +3 -0
  105. package/dist/config/interfaces/config.assistant.interface.js.map +1 -0
  106. package/dist/config/interfaces/config.oauth.interface.d.ts +8 -0
  107. package/dist/config/interfaces/config.oauth.interface.d.ts.map +1 -1
  108. package/dist/config/interfaces/config.operator.interface.d.ts +5 -0
  109. package/dist/config/interfaces/config.operator.interface.d.ts.map +1 -1
  110. package/dist/config/interfaces/index.d.ts +1 -0
  111. package/dist/config/interfaces/index.d.ts.map +1 -1
  112. package/dist/config/interfaces/index.js +1 -0
  113. package/dist/config/interfaces/index.js.map +1 -1
  114. package/dist/core/neo4j/abstracts/abstract.repository.d.ts +26 -0
  115. package/dist/core/neo4j/abstracts/abstract.repository.d.ts.map +1 -1
  116. package/dist/core/neo4j/abstracts/abstract.repository.js +70 -37
  117. package/dist/core/neo4j/abstracts/abstract.repository.js.map +1 -1
  118. package/dist/core/neo4j/index.d.ts +2 -0
  119. package/dist/core/neo4j/index.d.ts.map +1 -1
  120. package/dist/core/neo4j/index.js +5 -1
  121. package/dist/core/neo4j/index.js.map +1 -1
  122. package/dist/core/neo4j/queries/update.relationship.d.ts +8 -0
  123. package/dist/core/neo4j/queries/update.relationship.d.ts.map +1 -1
  124. package/dist/core/neo4j/queries/update.relationship.js +4 -1
  125. package/dist/core/neo4j/queries/update.relationship.js.map +1 -1
  126. package/dist/core/neo4j/services/neo4j.service.d.ts +10 -0
  127. package/dist/core/neo4j/services/neo4j.service.d.ts.map +1 -1
  128. package/dist/core/neo4j/services/neo4j.service.js +12 -1
  129. package/dist/core/neo4j/services/neo4j.service.js.map +1 -1
  130. package/dist/foundations/assistant/assistant.module.d.ts +7 -2
  131. package/dist/foundations/assistant/assistant.module.d.ts.map +1 -1
  132. package/dist/foundations/assistant/assistant.module.js +37 -1
  133. package/dist/foundations/assistant/assistant.module.js.map +1 -1
  134. package/dist/foundations/assistant/controllers/assistant.controller.d.ts +4 -1
  135. package/dist/foundations/assistant/controllers/assistant.controller.d.ts.map +1 -1
  136. package/dist/foundations/assistant/controllers/assistant.controller.js +15 -8
  137. package/dist/foundations/assistant/controllers/assistant.controller.js.map +1 -1
  138. package/dist/foundations/assistant/services/assistant.service.d.ts +37 -1
  139. package/dist/foundations/assistant/services/assistant.service.d.ts.map +1 -1
  140. package/dist/foundations/assistant/services/assistant.service.js +144 -11
  141. package/dist/foundations/assistant/services/assistant.service.js.map +1 -1
  142. package/dist/foundations/assistant-action/controllers/assistant-action.controller.d.ts +7 -1
  143. package/dist/foundations/assistant-action/controllers/assistant-action.controller.d.ts.map +1 -1
  144. package/dist/foundations/assistant-action/controllers/assistant-action.controller.js +15 -5
  145. package/dist/foundations/assistant-action/controllers/assistant-action.controller.js.map +1 -1
  146. package/dist/foundations/assistant-message/assistant-message.module.d.ts +4 -0
  147. package/dist/foundations/assistant-message/assistant-message.module.d.ts.map +1 -1
  148. package/dist/foundations/assistant-message/assistant-message.module.js +27 -2
  149. package/dist/foundations/assistant-message/assistant-message.module.js.map +1 -1
  150. package/dist/foundations/company/entities/company.d.ts +4 -4
  151. package/dist/foundations/company/entities/company.d.ts.map +1 -1
  152. package/dist/foundations/company/entities/company.js +2 -2
  153. package/dist/foundations/company/entities/company.js.map +1 -1
  154. package/dist/foundations/content/interfaces/content.extension.interface.d.ts +22 -0
  155. package/dist/foundations/content/interfaces/content.extension.interface.d.ts.map +1 -1
  156. package/dist/foundations/content/interfaces/content.extension.interface.js.map +1 -1
  157. package/dist/foundations/content/services/content.cypher.service.d.ts +27 -0
  158. package/dist/foundations/content/services/content.cypher.service.d.ts.map +1 -1
  159. package/dist/foundations/content/services/content.cypher.service.js +68 -9
  160. package/dist/foundations/content/services/content.cypher.service.js.map +1 -1
  161. package/dist/foundations/oauth/constants/oauth.scopes.d.ts +26 -11
  162. package/dist/foundations/oauth/constants/oauth.scopes.d.ts.map +1 -1
  163. package/dist/foundations/oauth/constants/oauth.scopes.js +13 -18
  164. package/dist/foundations/oauth/constants/oauth.scopes.js.map +1 -1
  165. package/dist/foundations/oauth/controllers/oauth.authorize.controller.d.ts.map +1 -1
  166. package/dist/foundations/oauth/controllers/oauth.authorize.controller.js +3 -0
  167. package/dist/foundations/oauth/controllers/oauth.authorize.controller.js.map +1 -1
  168. package/dist/foundations/oauth/controllers/oauth.registration.controller.d.ts.map +1 -1
  169. package/dist/foundations/oauth/controllers/oauth.registration.controller.js +2 -0
  170. package/dist/foundations/oauth/controllers/oauth.registration.controller.js.map +1 -1
  171. package/dist/foundations/oauth/controllers/oauth.token.controller.d.ts.map +1 -1
  172. package/dist/foundations/oauth/controllers/oauth.token.controller.js +2 -0
  173. package/dist/foundations/oauth/controllers/oauth.token.controller.js.map +1 -1
  174. package/dist/foundations/oauth/dtos/oauth.authorize.dto.d.ts +1 -0
  175. package/dist/foundations/oauth/dtos/oauth.authorize.dto.d.ts.map +1 -1
  176. package/dist/foundations/oauth/dtos/oauth.authorize.dto.js +5 -0
  177. package/dist/foundations/oauth/dtos/oauth.authorize.dto.js.map +1 -1
  178. package/dist/foundations/oauth/entities/oauth.authorization.code.entity.d.ts +2 -0
  179. package/dist/foundations/oauth/entities/oauth.authorization.code.entity.d.ts.map +1 -1
  180. package/dist/foundations/oauth/entities/oauth.authorization.code.entity.js.map +1 -1
  181. package/dist/foundations/oauth/entities/oauth.authorization.code.model.d.ts.map +1 -1
  182. package/dist/foundations/oauth/entities/oauth.authorization.code.model.js +1 -0
  183. package/dist/foundations/oauth/entities/oauth.authorization.code.model.js.map +1 -1
  184. package/dist/foundations/oauth/filters/oauth.error.filter.d.ts +16 -0
  185. package/dist/foundations/oauth/filters/oauth.error.filter.d.ts.map +1 -0
  186. package/dist/foundations/oauth/filters/oauth.error.filter.js +70 -0
  187. package/dist/foundations/oauth/filters/oauth.error.filter.js.map +1 -0
  188. package/dist/foundations/oauth/guards/oauth.token.guard.d.ts +2 -2
  189. package/dist/foundations/oauth/guards/oauth.token.guard.js +2 -2
  190. package/dist/foundations/oauth/index.d.ts +2 -1
  191. package/dist/foundations/oauth/index.d.ts.map +1 -1
  192. package/dist/foundations/oauth/index.js +3 -1
  193. package/dist/foundations/oauth/index.js.map +1 -1
  194. package/dist/foundations/oauth/oauth.module.d.ts +2 -2
  195. package/dist/foundations/oauth/oauth.module.d.ts.map +1 -1
  196. package/dist/foundations/oauth/oauth.module.js +11 -5
  197. package/dist/foundations/oauth/oauth.module.js.map +1 -1
  198. package/dist/foundations/oauth/repositories/oauth.repository.d.ts +20 -1
  199. package/dist/foundations/oauth/repositories/oauth.repository.d.ts.map +1 -1
  200. package/dist/foundations/oauth/repositories/oauth.repository.js +54 -10
  201. package/dist/foundations/oauth/repositories/oauth.repository.js.map +1 -1
  202. package/dist/foundations/oauth/services/index.d.ts +1 -0
  203. package/dist/foundations/oauth/services/index.d.ts.map +1 -1
  204. package/dist/foundations/oauth/services/index.js +1 -0
  205. package/dist/foundations/oauth/services/index.js.map +1 -1
  206. package/dist/foundations/oauth/services/oauth.client.service.d.ts +3 -1
  207. package/dist/foundations/oauth/services/oauth.client.service.d.ts.map +1 -1
  208. package/dist/foundations/oauth/services/oauth.client.service.js +7 -5
  209. package/dist/foundations/oauth/services/oauth.client.service.js.map +1 -1
  210. package/dist/foundations/oauth/services/oauth.scope.service.d.ts +32 -0
  211. package/dist/foundations/oauth/services/oauth.scope.service.d.ts.map +1 -0
  212. package/dist/foundations/oauth/services/oauth.scope.service.js +71 -0
  213. package/dist/foundations/oauth/services/oauth.scope.service.js.map +1 -0
  214. package/dist/foundations/oauth/services/oauth.service.d.ts +13 -1
  215. package/dist/foundations/oauth/services/oauth.service.d.ts.map +1 -1
  216. package/dist/foundations/oauth/services/oauth.service.js +18 -8
  217. package/dist/foundations/oauth/services/oauth.service.js.map +1 -1
  218. package/dist/foundations/relevancy/queries/relevance.d.ts +20 -0
  219. package/dist/foundations/relevancy/queries/relevance.d.ts.map +1 -1
  220. package/dist/foundations/relevancy/queries/relevance.js +44 -8
  221. package/dist/foundations/relevancy/queries/relevance.js.map +1 -1
  222. package/dist/foundations/relevancy/repositories/relevancy.repository.d.ts +41 -2
  223. package/dist/foundations/relevancy/repositories/relevancy.repository.d.ts.map +1 -1
  224. package/dist/foundations/relevancy/repositories/relevancy.repository.js +89 -6
  225. package/dist/foundations/relevancy/repositories/relevancy.repository.js.map +1 -1
  226. package/dist/foundations/relevancy/services/relevancy.service.js +1 -1
  227. package/dist/foundations/relevancy/services/relevancy.service.js.map +1 -1
  228. package/dist/foundations/s3/controllers/s3.controller.d.ts +10 -1
  229. package/dist/foundations/s3/controllers/s3.controller.d.ts.map +1 -1
  230. package/dist/foundations/s3/controllers/s3.controller.js +33 -2
  231. package/dist/foundations/s3/controllers/s3.controller.js.map +1 -1
  232. package/dist/foundations/user/controllers/user.controller.d.ts +1 -1
  233. package/dist/foundations/user/controllers/user.controller.d.ts.map +1 -1
  234. package/dist/foundations/user/controllers/user.controller.js +4 -4
  235. package/dist/foundations/user/controllers/user.controller.js.map +1 -1
  236. package/dist/foundations/user/entities/user.d.ts +17 -17
  237. package/dist/foundations/user/entities/user.d.ts.map +1 -1
  238. package/dist/foundations/user/entities/user.js +7 -7
  239. package/dist/foundations/user/entities/user.js.map +1 -1
  240. package/dist/foundations/user/user.module.js +2 -2
  241. package/dist/foundations/user/user.module.js.map +1 -1
  242. package/dist/mcp/services/mcp.entity.write.service.d.ts +9 -4
  243. package/dist/mcp/services/mcp.entity.write.service.d.ts.map +1 -1
  244. package/dist/mcp/services/mcp.entity.write.service.js +12 -4
  245. package/dist/mcp/services/mcp.entity.write.service.js.map +1 -1
  246. package/dist/mcp/services/mcp.errors.d.ts +1 -1
  247. package/dist/mcp/services/mcp.errors.d.ts.map +1 -1
  248. package/dist/mcp/services/mcp.errors.js.map +1 -1
  249. package/dist/mcp/services/mcp.tool.registry.d.ts +10 -1
  250. package/dist/mcp/services/mcp.tool.registry.d.ts.map +1 -1
  251. package/dist/mcp/services/mcp.tool.registry.js +24 -2
  252. package/dist/mcp/services/mcp.tool.registry.js.map +1 -1
  253. package/package.json +1 -1
@@ -4,6 +4,7 @@ import { CatalogEntity } from "../interfaces/graph.catalog.interface";
4
4
  import { GraphIndexManager } from "./graph.index.manager";
5
5
  import { GraphCatalogService } from "./graph.catalog.service";
6
6
  import { ScopeGuard } from "./scope.guard";
7
+ import { EntityServiceRegistry } from "../../../common/registries/entity.service.registry";
7
8
  export declare const GRAPH_EXACT_MAX_RESULTS = 10;
8
9
  export declare const GRAPH_FUZZY_MAX_RESULTS = 10;
9
10
  export declare const GRAPH_SEMANTIC_MAX_RESULTS = 5;
@@ -66,9 +67,27 @@ export declare class GraphSearchService {
66
67
  private readonly indexNames;
67
68
  private readonly catalog;
68
69
  private readonly scopeGuard;
70
+ /**
71
+ * Supplies each type's service for two things: an `ExternalEntitySource`
72
+ * name lookup, and the record-level access check every app-database
73
+ * candidate must pass (`findRecordById`). Optional in the TYPE signature
74
+ * only, after ScopeGuard for the same positional reason; Nest resolves it
75
+ * (CoreModule exports it globally). Without it no external type is
76
+ * searched and every app-database candidate is dropped (fail closed).
77
+ */
78
+ private readonly registry?;
69
79
  private readonly logger;
70
80
  private existingIndexesPromise;
71
- constructor(neo4j: Neo4jService, embedder: EmbedderService, indexNames: GraphIndexManager, catalog: GraphCatalogService, scopeGuard: ScopeGuard);
81
+ constructor(neo4j: Neo4jService, embedder: EmbedderService, indexNames: GraphIndexManager, catalog: GraphCatalogService, scopeGuard: ScopeGuard,
82
+ /**
83
+ * Supplies each type's service for two things: an `ExternalEntitySource`
84
+ * name lookup, and the record-level access check every app-database
85
+ * candidate must pass (`findRecordById`). Optional in the TYPE signature
86
+ * only, after ScopeGuard for the same positional reason; Nest resolves it
87
+ * (CoreModule exports it globally). Without it no external type is
88
+ * searched and every app-database candidate is dropped (fail closed).
89
+ */
90
+ registry?: EntityServiceRegistry);
72
91
  /**
73
92
  * Scope predicate for a tier query, or null when the run is unscoped.
74
93
  * The clause NARROWS the existing company predicate; it never replaces it.
@@ -76,6 +95,24 @@ export declare class GraphSearchService {
76
95
  private scopeClauseFor;
77
96
  private getExistingIndexes;
78
97
  resolveEntity(params: ResolveEntityParams): Promise<ResolveEntityResult>;
98
+ /**
99
+ * Walks the score-ordered candidates and keeps those the user may see, until
100
+ * GRAPH_RESOLVE_MAX_RESULTS are kept:
101
+ * - an app-database candidate is kept only when its type's service reads it
102
+ * back (`findRecordById`), so the repository's record-level access rules
103
+ * apply to the name lookup exactly as they apply to read_entity. A type
104
+ * with no registered service is dropped;
105
+ * - an external candidate is global reference data: no record-level check;
106
+ * - in a scoped run, a candidate with no Cypher scope clause (an external
107
+ * candidate, or any `viaService` type) is kept only when `ScopeGuard.filter`
108
+ * keeps it.
109
+ * Candidates are checked in windows, in parallel within a window, so order is
110
+ * preserved without one sequential read per candidate.
111
+ */
112
+ private keepAccessible;
113
+ private isCandidateVisible;
114
+ /** `ExternalEntitySource.resolveByText` for one type; errors drop the type, never the lookup. */
115
+ private runExternalForEntitySafe;
79
116
  private runTierForEntitySafe;
80
117
  private projectSummary;
81
118
  private tierFulltext;
@@ -1 +1 @@
1
- {"version":3,"file":"graph.search.service.d.ts","sourceRoot":"","sources":["../../../../src/agents/graph/services/graph.search.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,6CAA6C,CAAC;AAC9E,OAAO,EAAE,YAAY,EAAE,MAAM,4CAA4C,CAAC;AAE1E,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAG3C,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAC1C,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAC1C,eAAO,MAAM,0BAA0B,IAAI,CAAC;AAC5C,eAAO,MAAM,yBAAyB,KAAK,CAAC;AAC5C,eAAO,MAAM,wBAAwB,MAAM,CAAC;AAG5C,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;IACd,2EAA2E;IAC3E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iFAAiF;IACjF,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;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;IACxB,2EAA2E;IAC3E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iFAAiF;IACjF,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,SAAS,CAAC;IACrB,KAAK,EAAE,eAAe,EAAE,CAAC;IACzB;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,eAAe,EAAE,EACxB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,SAAS,GACnB,MAAM,GAAG,SAAS,CAepB;AASD,qBACa,kBAAkB;IAY3B,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,OAAO;IAIxB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAlB7B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAuC;IAQ9D,OAAO,CAAC,sBAAsB,CAAqC;gBAGhD,KAAK,EAAE,YAAY,EACnB,QAAQ,EAAE,eAAe,EACzB,UAAU,EAAE,iBAAiB,EAC7B,OAAO,EAAE,mBAAmB,EAI5B,UAAU,EAAE,UAAU;IAGzC;;;OAGG;IACH,OAAO,CAAC,cAAc;IAetB,OAAO,CAAC,kBAAkB;IAmBpB,aAAa,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,CAAC;YAiChE,oBAAoB;IAuDlC,OAAO,CAAC,cAAc;YAiBR,YAAY;YA4CZ,YAAY;CAkD3B"}
1
+ {"version":3,"file":"graph.search.service.d.ts","sourceRoot":"","sources":["../../../../src/agents/graph/services/graph.search.service.ts"],"names":[],"mappings":"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"}
@@ -20,6 +20,8 @@ const graph_index_manager_1 = require("./graph.index.manager");
20
20
  const graph_catalog_service_1 = require("./graph.catalog.service");
21
21
  const scope_guard_1 = require("./scope.guard");
22
22
  const build_fulltext_term_1 = require("../../../core/neo4j/helpers/build-fulltext-term");
23
+ const entity_service_registry_1 = require("../../../common/registries/entity.service.registry");
24
+ const external_entity_source_interface_1 = require("../../../common/interfaces/external.entity.source.interface");
23
25
  exports.GRAPH_EXACT_MAX_RESULTS = 10;
24
26
  exports.GRAPH_FUZZY_MAX_RESULTS = 10;
25
27
  exports.GRAPH_SEMANTIC_MAX_RESULTS = 5;
@@ -59,12 +61,22 @@ let GraphSearchService = GraphSearchService_1 = class GraphSearchService {
59
61
  // ScopeGuard is deliberately the LAST constructor parameter so existing
60
62
  // positional call sites keep working. It is only consulted for a scoped
61
63
  // run (scopeId + scopeType present).
62
- scopeGuard) {
64
+ scopeGuard,
65
+ /**
66
+ * Supplies each type's service for two things: an `ExternalEntitySource`
67
+ * name lookup, and the record-level access check every app-database
68
+ * candidate must pass (`findRecordById`). Optional in the TYPE signature
69
+ * only, after ScopeGuard for the same positional reason; Nest resolves it
70
+ * (CoreModule exports it globally). Without it no external type is
71
+ * searched and every app-database candidate is dropped (fail closed).
72
+ */
73
+ registry) {
63
74
  this.neo4j = neo4j;
64
75
  this.embedder = embedder;
65
76
  this.indexNames = indexNames;
66
77
  this.catalog = catalog;
67
78
  this.scopeGuard = scopeGuard;
79
+ this.registry = registry;
68
80
  this.logger = new common_1.Logger(GraphSearchService_1.name);
69
81
  // Cached at first use, holds the names of fulltext + vector indexes that
70
82
  // actually exist in Neo4j. Pre-checking this set lets us skip the
@@ -116,7 +128,10 @@ let GraphSearchService = GraphSearchService_1 = class GraphSearchService {
116
128
  // Fail closed: in a scoped run, a type that cannot be chained to the run's
117
129
  // scope root is unreachable, so it never fans out a tier query at all.
118
130
  // Leaving it in would surface candidates from other scope roots.
119
- const entities = params.scopeId && params.scopeType ? visible.filter((e) => e.scope?.rootType === params.scopeType) : visible;
131
+ // A `scopeShared` type is reference data, visible in every scoped run.
132
+ const entities = params.scopeId && params.scopeType
133
+ ? visible.filter((e) => e.scope?.rootType === params.scopeType || e.scopeShared)
134
+ : visible;
120
135
  if (!entities.length) {
121
136
  return { matchMode: "none", items: [] };
122
137
  }
@@ -125,18 +140,121 @@ let GraphSearchService = GraphSearchService_1 = class GraphSearchService {
125
140
  ["fuzzy", "fuzzy"],
126
141
  ["semantic", "semantic"],
127
142
  ];
143
+ // A type whose records live outside the app database supplies its own name
144
+ // lookup. It replaces that type's app-DB tiers and runs with the first tier.
145
+ const externalByType = new Map();
146
+ for (const entity of entities) {
147
+ const service = this.registry?.get(entity.type);
148
+ if ((0, external_entity_source_interface_1.isExternalEntitySource)(service))
149
+ externalByType.set(entity.type, service);
150
+ }
151
+ const entityByType = new Map(entities.map((entity) => [entity.type, entity]));
128
152
  for (const [tier, label] of tiers) {
129
- const buckets = await Promise.all(entities.map((e) => this.runTierForEntitySafe(e, params, tier)));
153
+ const buckets = await Promise.all(entities.map((e) => {
154
+ const external = externalByType.get(e.type);
155
+ if (!external)
156
+ return this.runTierForEntitySafe(e, params, tier);
157
+ return tier === "substring" ? this.runExternalForEntitySafe(e, external, params) : Promise.resolve([]);
158
+ }));
130
159
  const merged = buckets.flat();
131
- if (merged.length) {
132
- merged.sort((a, b) => b.score - a.score);
133
- const items = merged.slice(0, exports.GRAPH_RESOLVE_MAX_RESULTS);
160
+ if (!merged.length)
161
+ continue;
162
+ merged.sort((a, b) => b.score - a.score);
163
+ const items = await this.keepAccessible({ candidates: merged, params, externalByType, entityByType });
164
+ if (items.length) {
134
165
  const recommendation = buildResolveRecommendation(items, params.text, label);
135
166
  return recommendation ? { matchMode: label, items, recommendation } : { matchMode: label, items };
136
167
  }
137
168
  }
138
169
  return { matchMode: "none", items: [] };
139
170
  }
171
+ /**
172
+ * Walks the score-ordered candidates and keeps those the user may see, until
173
+ * GRAPH_RESOLVE_MAX_RESULTS are kept:
174
+ * - an app-database candidate is kept only when its type's service reads it
175
+ * back (`findRecordById`), so the repository's record-level access rules
176
+ * apply to the name lookup exactly as they apply to read_entity. A type
177
+ * with no registered service is dropped;
178
+ * - an external candidate is global reference data: no record-level check;
179
+ * - in a scoped run, a candidate with no Cypher scope clause (an external
180
+ * candidate, or any `viaService` type) is kept only when `ScopeGuard.filter`
181
+ * keeps it.
182
+ * Candidates are checked in windows, in parallel within a window, so order is
183
+ * preserved without one sequential read per candidate.
184
+ */
185
+ async keepAccessible(params) {
186
+ const kept = [];
187
+ let cursor = 0;
188
+ while (kept.length < exports.GRAPH_RESOLVE_MAX_RESULTS && cursor < params.candidates.length) {
189
+ const window = params.candidates.slice(cursor, cursor + (exports.GRAPH_RESOLVE_MAX_RESULTS - kept.length));
190
+ cursor += window.length;
191
+ const verdicts = await Promise.all(window.map((candidate) => this.isCandidateVisible({
192
+ candidate,
193
+ params: params.params,
194
+ external: params.externalByType.has(candidate.type),
195
+ entity: params.entityByType.get(candidate.type),
196
+ })));
197
+ window.forEach((candidate, index) => {
198
+ if (verdicts[index] && kept.length < exports.GRAPH_RESOLVE_MAX_RESULTS)
199
+ kept.push(candidate);
200
+ });
201
+ }
202
+ return kept;
203
+ }
204
+ async isCandidateVisible(params) {
205
+ const { candidate } = params;
206
+ try {
207
+ if (!params.external) {
208
+ const service = this.registry?.get(candidate.type);
209
+ if (!service)
210
+ return false;
211
+ const record = await service.findRecordById({ id: candidate.id });
212
+ if (!record)
213
+ return false;
214
+ }
215
+ const scoped = !!params.params.scopeId && !!params.params.scopeType;
216
+ const needsScopeFilter = params.external || !!params.entity?.scope?.viaService;
217
+ if (!scoped || !needsScopeFilter)
218
+ return true;
219
+ if (!this.scopeGuard)
220
+ return false;
221
+ const inScope = await this.scopeGuard.filter({
222
+ type: candidate.type,
223
+ records: [{ id: candidate.id }],
224
+ ctx: {
225
+ companyId: params.params.companyId,
226
+ userId: "",
227
+ userModuleIds: params.params.userModuleIds,
228
+ scopeId: params.params.scopeId,
229
+ scopeType: params.params.scopeType,
230
+ },
231
+ });
232
+ return inScope.length === 1;
233
+ }
234
+ catch (err) {
235
+ const message = err instanceof Error ? err.message : String(err);
236
+ this.logger.warn(`resolveEntity: access check type=${candidate.type} id=${candidate.id} threw: ${message}`);
237
+ return false;
238
+ }
239
+ }
240
+ /** `ExternalEntitySource.resolveByText` for one type; errors drop the type, never the lookup. */
241
+ async runExternalForEntitySafe(entity, source, params) {
242
+ try {
243
+ const candidates = await source.resolveByText({ text: params.text, limit: exports.GRAPH_EXACT_MAX_RESULTS });
244
+ this.logger.debug(`resolve_entity external type=${entity.type} items=${candidates.length}`);
245
+ return candidates.map((candidate) => ({
246
+ type: entity.type,
247
+ id: candidate.id,
248
+ summary: candidate.name || candidate.id,
249
+ score: candidate.score,
250
+ }));
251
+ }
252
+ catch (err) {
253
+ const message = err instanceof Error ? err.message : String(err);
254
+ this.logger.warn(`resolveEntity: external type=${entity.type} threw: ${message}`);
255
+ return [];
256
+ }
257
+ }
140
258
  async runTierForEntitySafe(entity, params, tier) {
141
259
  try {
142
260
  const runParams = {
@@ -281,6 +399,7 @@ exports.GraphSearchService = GraphSearchService = GraphSearchService_1 = __decor
281
399
  embedder_service_1.EmbedderService,
282
400
  graph_index_manager_1.GraphIndexManager,
283
401
  graph_catalog_service_1.GraphCatalogService,
284
- scope_guard_1.ScopeGuard])
402
+ scope_guard_1.ScopeGuard,
403
+ entity_service_registry_1.EntityServiceRegistry])
285
404
  ], GraphSearchService);
286
405
  //# sourceMappingURL=graph.search.service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"graph.search.service.js","sourceRoot":"","sources":["../../../../src/agents/graph/services/graph.search.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"graph.search.service.js","sourceRoot":"","sources":["../../../../src/agents/graph/services/graph.search.service.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { Neo4jService } from "../../../core/neo4j/services/neo4j.service";
2
+ import { EntityServiceRegistry } from "../../../common/registries/entity.service.registry";
2
3
  import { CatalogEntity } from "../interfaces/graph.catalog.interface";
3
4
  import { GraphCatalogService } from "./graph.catalog.service";
4
5
  import { UserContext } from "../tools/tool.factory";
@@ -11,12 +12,34 @@ import { UserContext } from "../tools/tool.factory";
11
12
  * treated as OUT of scope. The alternative — treating it as universally
12
13
  * visible — is a cross-scope leak, which is the whole failure this service
13
14
  * exists to prevent.
15
+ *
16
+ * Exception: a `scopeShared` type is reference data (laws, tariffs, …) and is
17
+ * visible in every scoped run, whatever the root. It is passed through with no
18
+ * constraint. Chunk scoping (`ScopePredicateService`) does NOT apply this
19
+ * exception and stays strict.
20
+ *
21
+ * A `chat.scopeByService` type (`scope.viaService`) has no scope edge in the
22
+ * app database: its own service decides membership through
23
+ * `ExternalEntitySource.filterInScope`. No Cypher clause exists for it, and a
24
+ * service without that hook keeps nothing (fail closed).
14
25
  */
15
26
  export declare class ScopeGuard {
16
27
  private readonly catalog;
17
28
  private readonly neo4j;
29
+ /**
30
+ * Optional in the TYPE signature only, so unit tests can construct the guard
31
+ * without it. Nest resolves it (CoreModule exports it globally). Without it a
32
+ * `viaService` type keeps nothing.
33
+ */
34
+ private readonly registry?;
18
35
  private readonly logger;
19
- constructor(catalog: GraphCatalogService, neo4j: Neo4jService);
36
+ constructor(catalog: GraphCatalogService, neo4j: Neo4jService,
37
+ /**
38
+ * Optional in the TYPE signature only, so unit tests can construct the guard
39
+ * without it. Nest resolves it (CoreModule exports it globally). Without it a
40
+ * `viaService` type keeps nothing.
41
+ */
42
+ registry?: EntityServiceRegistry);
20
43
  buildMatchClause(params: {
21
44
  entity: CatalogEntity;
22
45
  ctx: UserContext;
@@ -37,6 +60,12 @@ export declare class ScopeGuard {
37
60
  records: T[];
38
61
  ctx: UserContext;
39
62
  }): Promise<T[]>;
63
+ /**
64
+ * `chat.scopeByService`: delegate to the type's `filterInScope`. Keeps the
65
+ * returned ids only, in the input order. A service without the hook keeps
66
+ * nothing.
67
+ */
68
+ private filterViaService;
40
69
  /** `(alias)-[:REL]->(:Label)…-[:REL]->(:Root { id: $scopeId })` */
41
70
  private buildPattern;
42
71
  }
@@ -1 +1 @@
1
- {"version":3,"file":"scope.guard.d.ts","sourceRoot":"","sources":["../../../../src/agents/graph/services/scope.guard.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,4CAA4C,CAAC;AAC1E,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAE9D,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD;;;;;;;;;GASG;AACH,qBACa,UAAU;IAInB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,KAAK;IAJxB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA+B;gBAGnC,OAAO,EAAE,mBAAmB,EAC5B,KAAK,EAAE,YAAY;IAGtC,gBAAgB,CAAC,MAAM,EAAE;QACvB,MAAM,EAAE,aAAa,CAAC;QACtB,GAAG,EAAE,WAAW,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;KACnB,GAAG;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,GAAG,IAAI;IAYxD,SAAS,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAKnF,MAAM,CAAC,CAAC,SAAS;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,EAAE,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,CAAC,EAAE,CAAC;QAAC,GAAG,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;IAiC9G,mEAAmE;IACnE,OAAO,CAAC,YAAY;CAGrB"}
1
+ {"version":3,"file":"scope.guard.d.ts","sourceRoot":"","sources":["../../../../src/agents/graph/services/scope.guard.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,4CAA4C,CAAC;AAC1E,OAAO,EAAE,qBAAqB,EAAE,MAAM,oDAAoD,CAAC;AAE3F,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAE9D,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBACa,UAAU;IAInB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;IAV5B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA+B;gBAGnC,OAAO,EAAE,mBAAmB,EAC5B,KAAK,EAAE,YAAY;IACpC;;;;OAIG;IACc,QAAQ,CAAC,EAAE,qBAAqB;IAGnD,gBAAgB,CAAC,MAAM,EAAE;QACvB,MAAM,EAAE,aAAa,CAAC;QACtB,GAAG,EAAE,WAAW,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;KACnB,GAAG;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,GAAG,IAAI;IAiBxD,SAAS,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAKnF,MAAM,CAAC,CAAC,SAAS;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,EAAE,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,CAAC,EAAE,CAAC;QAAC,GAAG,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;IAuC9G;;;;OAIG;YACW,gBAAgB;IAqB9B,mEAAmE;IACnE,OAAO,CAAC,YAAY;CAGrB"}
@@ -13,6 +13,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
13
13
  exports.ScopeGuard = void 0;
14
14
  const common_1 = require("@nestjs/common");
15
15
  const neo4j_service_1 = require("../../../core/neo4j/services/neo4j.service");
16
+ const entity_service_registry_1 = require("../../../common/registries/entity.service.registry");
16
17
  const graph_catalog_service_1 = require("./graph.catalog.service");
17
18
  const scope_pattern_1 = require("./scope.pattern");
18
19
  /**
@@ -24,19 +25,43 @@ const scope_pattern_1 = require("./scope.pattern");
24
25
  * treated as OUT of scope. The alternative — treating it as universally
25
26
  * visible — is a cross-scope leak, which is the whole failure this service
26
27
  * exists to prevent.
28
+ *
29
+ * Exception: a `scopeShared` type is reference data (laws, tariffs, …) and is
30
+ * visible in every scoped run, whatever the root. It is passed through with no
31
+ * constraint. Chunk scoping (`ScopePredicateService`) does NOT apply this
32
+ * exception and stays strict.
33
+ *
34
+ * A `chat.scopeByService` type (`scope.viaService`) has no scope edge in the
35
+ * app database: its own service decides membership through
36
+ * `ExternalEntitySource.filterInScope`. No Cypher clause exists for it, and a
37
+ * service without that hook keeps nothing (fail closed).
27
38
  */
28
39
  let ScopeGuard = ScopeGuard_1 = class ScopeGuard {
29
- constructor(catalog, neo4j) {
40
+ constructor(catalog, neo4j,
41
+ /**
42
+ * Optional in the TYPE signature only, so unit tests can construct the guard
43
+ * without it. Nest resolves it (CoreModule exports it globally). Without it a
44
+ * `viaService` type keeps nothing.
45
+ */
46
+ registry) {
30
47
  this.catalog = catalog;
31
48
  this.neo4j = neo4j;
49
+ this.registry = registry;
32
50
  this.logger = new common_1.Logger(ScopeGuard_1.name);
33
51
  }
34
52
  buildMatchClause(params) {
35
53
  if (!params.ctx.scopeId || !params.ctx.scopeType)
36
54
  return null;
55
+ // Shared reference data: no constraint (empty clause), NOT out of scope.
56
+ if (params.entity.scopeShared)
57
+ return { cypher: "", params: {} };
37
58
  const scope = params.entity.scope;
38
59
  if (!scope || scope.rootType !== params.ctx.scopeType)
39
60
  return null;
61
+ // Scope decided by the type's service: there is no Cypher clause for it.
62
+ // The caller must post-filter through `filter`.
63
+ if (scope.viaService)
64
+ return null;
40
65
  const pattern = this.buildPattern(scope, params.nodeAlias);
41
66
  return {
42
67
  cypher: `AND EXISTS { MATCH ${pattern} }`,
@@ -53,11 +78,17 @@ let ScopeGuard = ScopeGuard_1 = class ScopeGuard {
53
78
  if (params.records.length === 0)
54
79
  return params.records;
55
80
  const entity = this.catalog.getEntityDetail(params.type, params.ctx.userModuleIds);
81
+ // Shared reference data is visible in every scoped run: no query needed.
82
+ if (entity?.scopeShared)
83
+ return params.records;
56
84
  const scope = entity?.scope;
57
85
  if (!entity || !scope || scope.rootType !== params.ctx.scopeType) {
58
86
  this.logger.warn(`filter: type "${params.type}" has no scope chain to "${params.ctx.scopeType}" — dropping ${params.records.length} record(s).`);
59
87
  return [];
60
88
  }
89
+ if (scope.viaService) {
90
+ return this.filterViaService({ type: params.type, records: params.records, ctx: params.ctx });
91
+ }
61
92
  if (scope.path.length === 0) {
62
93
  // The entity IS the root: it is in scope iff it is the scope root itself.
63
94
  return params.records.filter((record) => record.id === params.ctx.scopeId);
@@ -72,6 +103,25 @@ let ScopeGuard = ScopeGuard_1 = class ScopeGuard {
72
103
  const allowed = new Set((result.records ?? []).map((row) => row.get("id")));
73
104
  return params.records.filter((record) => allowed.has(record.id));
74
105
  }
106
+ /**
107
+ * `chat.scopeByService`: delegate to the type's `filterInScope`. Keeps the
108
+ * returned ids only, in the input order. A service without the hook keeps
109
+ * nothing.
110
+ */
111
+ async filterViaService(params) {
112
+ const service = this.registry?.get(params.type);
113
+ if (typeof service?.filterInScope !== "function") {
114
+ this.logger.warn(`filter: type "${params.type}" is scoped by its service, which does not implement filterInScope — dropping ${params.records.length} record(s).`);
115
+ return [];
116
+ }
117
+ const allowedIds = await service.filterInScope({
118
+ ids: params.records.map((record) => record.id),
119
+ scopeType: params.ctx.scopeType,
120
+ scopeId: params.ctx.scopeId,
121
+ });
122
+ const allowed = new Set(allowedIds);
123
+ return params.records.filter((record) => allowed.has(record.id));
124
+ }
75
125
  /** `(alias)-[:REL]->(:Label)…-[:REL]->(:Root { id: $scopeId })` */
76
126
  buildPattern(scope, alias) {
77
127
  return (0, scope_pattern_1.buildScopePattern)({ scope, alias, paramName: "scopeId" });
@@ -81,6 +131,7 @@ exports.ScopeGuard = ScopeGuard;
81
131
  exports.ScopeGuard = ScopeGuard = ScopeGuard_1 = __decorate([
82
132
  (0, common_1.Injectable)(),
83
133
  __metadata("design:paramtypes", [graph_catalog_service_1.GraphCatalogService,
84
- neo4j_service_1.Neo4jService])
134
+ neo4j_service_1.Neo4jService,
135
+ entity_service_registry_1.EntityServiceRegistry])
85
136
  ], ScopeGuard);
86
137
  //# sourceMappingURL=scope.guard.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"scope.guard.js","sourceRoot":"","sources":["../../../../src/agents/graph/services/scope.guard.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scope.guard.js","sourceRoot":"","sources":["../../../../src/agents/graph/services/scope.guard.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"search-entities.tool.d.ts","sourceRoot":"","sources":["../../../../src/agents/graph/tools/search-entities.tool.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE1E,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AAEzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,oDAAoD,CAAC;AAC3F,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAGrD,QAAA,MAAM,WAAW;;;;;kBAON,CAAC;AAEZ,OAAO,EAAE,WAAW,IAAI,yBAAyB,EAAE,CAAC;AAUpD,qBACa,kBAAkB;IAE3B,OAAO,CAAC,QAAQ,CAAC,OAAO;IAGxB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAG3B,OAAO,CAAC,QAAQ,CAAC,SAAS;gBATT,OAAO,EAAE,WAAW,EAGpB,OAAO,EAAE,kBAAkB,EAC3B,OAAO,EAAE,mBAAmB,EAC5B,QAAQ,EAAE,qBAAqB,EAC/B,UAAU,EAAE,UAAU,EAGtB,SAAS,EAAE,yBAAyB;IAGvD,KAAK,CAAC,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,qBAAqB;IAUpE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAsGhH;;;;OAIG;YACW,aAAa;YAKb,WAAW;CAwC1B"}
1
+ {"version":3,"file":"search-entities.tool.d.ts","sourceRoot":"","sources":["../../../../src/agents/graph/tools/search-entities.tool.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE1E,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AAEzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,oDAAoD,CAAC;AAC3F,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAGrD,QAAA,MAAM,WAAW;;;;;kBAON,CAAC;AAEZ,OAAO,EAAE,WAAW,IAAI,yBAAyB,EAAE,CAAC;AAUpD,qBACa,kBAAkB;IAE3B,OAAO,CAAC,QAAQ,CAAC,OAAO;IAGxB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAG3B,OAAO,CAAC,QAAQ,CAAC,SAAS;gBATT,OAAO,EAAE,WAAW,EAGpB,OAAO,EAAE,kBAAkB,EAC3B,OAAO,EAAE,mBAAmB,EAC5B,QAAQ,EAAE,qBAAqB,EAC/B,UAAU,EAAE,UAAU,EAGtB,SAAS,EAAE,yBAAyB;IAGvD,KAAK,CAAC,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,qBAAqB;IAUpE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAyGhH;;;;OAIG;YACW,aAAa;YAKb,WAAW;CAwC1B"}
@@ -108,7 +108,9 @@ let SearchEntitiesTool = class SearchEntitiesTool {
108
108
  if (!svc)
109
109
  return { error: `Service not available for "${entity.type}".` };
110
110
  const limit = Math.min(Math.max(input.limit ?? 10, 1), 50);
111
- const scopeRelKey = entity.scope?.path.length === 1 ? entity.scope.path[0].key : undefined;
111
+ // An inline hop is not a descriptor relationship, so it cannot be read
112
+ // through the repository: it takes the ScopeGuard.filter path below.
113
+ const scopeRelKey = entity.scope?.path.length === 1 && !entity.scope.path[0].inline ? entity.scope.path[0].key : undefined;
112
114
  const useScopedRead = !!ctx.scopeId && entity.scope?.rootType === ctx.scopeType;
113
115
  // A 1-hop scope is expressible as a relationship read, which reuses the
114
116
  // entity's own repository (and therefore its ownership rules). Deeper
@@ -1 +1 @@
1
- {"version":3,"file":"search-entities.tool.js","sourceRoot":"","sources":["../../../../src/agents/graph/tools/search-entities.tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"search-entities.tool.js","sourceRoot":"","sources":["../../../../src/agents/graph/tools/search-entities.tool.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"traverse.tool.d.ts","sourceRoot":"","sources":["../../../../src/agents/graph/tools/traverse.tool.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC1E,OAAO,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AAEzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAExE,OAAO,EAAE,qBAAqB,EAAE,MAAM,oDAAoD,CAAC;AAC3F,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAExE,QAAA,MAAM,YAAY;;;;;;;;;;;EAAsF,CAAC;AAMzG,QAAA,MAAM,WAAW;;;;;;;iBAOf,CAAC;AAEH,OAAO,EAAE,WAAW,IAAI,mBAAmB,EAAE,CAAC;AAE9C,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,KAAK,GAAG,MAAM,CAAC;CAC3B;AACD,MAAM,MAAM,qBAAqB,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;AACpF,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;IACjC,KAAK,CAAC,EAAE,qBAAqB,CAAC;CAC/B;AAYD;;;;;;;;;;GAUG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,OAAO,GAAG,cAAc,EAAE,CAwBzD;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,gBAAgB,EAAE,CAgB9D;AAUD,qBACa,YAAY;IAErB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAG1B,OAAO,CAAC,QAAQ,CAAC,YAAY;gBAPZ,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,mBAAmB,EAC5B,QAAQ,EAAE,qBAAqB,EAC/B,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,yBAAyB,EAGpC,YAAY,EAAE,mBAAmB;IAGpD,KAAK,CAAC,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,qBAAqB;IASpE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IA8IhH;;;;;;;;;OASG;YACW,iBAAiB;IA4F/B;;;;OAIG;YACW,aAAa;CAI5B"}
1
+ {"version":3,"file":"traverse.tool.d.ts","sourceRoot":"","sources":["../../../../src/agents/graph/tools/traverse.tool.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC1E,OAAO,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AAEzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAExE,OAAO,EAAE,qBAAqB,EAAE,MAAM,oDAAoD,CAAC;AAC3F,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAGxE,QAAA,MAAM,YAAY;;;;;;;;;;;EAAsF,CAAC;AAMzG,QAAA,MAAM,WAAW;;;;;;;iBAOf,CAAC;AAEH,OAAO,EAAE,WAAW,IAAI,mBAAmB,EAAE,CAAC;AAE9C,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,KAAK,GAAG,MAAM,CAAC;CAC3B;AACD,MAAM,MAAM,qBAAqB,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;AACpF,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;IACjC,KAAK,CAAC,EAAE,qBAAqB,CAAC;CAC/B;AAYD;;;;;;;;;;GAUG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,OAAO,GAAG,cAAc,EAAE,CAwBzD;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,gBAAgB,EAAE,CAgB9D;AAUD,qBACa,YAAY;IAErB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAG1B,OAAO,CAAC,QAAQ,CAAC,YAAY;gBAPZ,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,mBAAmB,EAC5B,QAAQ,EAAE,qBAAqB,EAC/B,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,yBAAyB,EAGpC,YAAY,EAAE,mBAAmB;IAGpD,KAAK,CAAC,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,qBAAqB;IASpE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IA8IhH;;;;;;;;;OASG;YACW,iBAAiB;IAyG/B;;;;OAIG;YACW,aAAa;CAI5B"}
@@ -282,14 +282,25 @@ let TraverseTool = class TraverseTool {
282
282
  if (!sourceRecord)
283
283
  return { error: `No ${source.type} with id ${input.fromId}.` };
284
284
  const limit = Math.min(Math.max(input.limit ?? 10, 1), 50);
285
+ const typeByLabel = new Map(this.catalog.getAllEntities().map((e) => [e.labelName, e.type]));
285
286
  // Probe one extra row so truncation is visible to the model: without this,
286
287
  // a silently clipped list is reported as complete.
287
- const pairs = await this.relatedEdges.findRelatedIds({
288
- labelName: source.labelName,
289
- id: input.fromId,
290
- cypherLabel: rel.cypherLabel,
291
- limit: limit + 1,
292
- });
288
+ // A source whose edges do not live in the app database (an
289
+ // ExternalEntitySource implementing findRelatedIds) supplies its own
290
+ // related ids, already typed; every other source reads the edge here.
291
+ const externalFindRelatedIds = sourceSvc.findRelatedIds;
292
+ const pairs = typeof externalFindRelatedIds === "function"
293
+ ? await externalFindRelatedIds.call(sourceSvc, {
294
+ id: input.fromId,
295
+ cypherLabel: rel.cypherLabel,
296
+ limit: limit + 1,
297
+ })
298
+ : (await this.relatedEdges.findRelatedIds({
299
+ labelName: source.labelName,
300
+ id: input.fromId,
301
+ cypherLabel: rel.cypherLabel,
302
+ limit: limit + 1,
303
+ })).map((pair) => ({ id: pair.id, type: typeByLabel.get(pair.label) }));
293
304
  const hasMore = pairs.length > limit;
294
305
  const kept = hasMore ? pairs.slice(0, limit) : pairs;
295
306
  const truncation = hasMore
@@ -298,7 +309,6 @@ let TraverseTool = class TraverseTool {
298
309
  note: `Only the first ${limit} matches are shown. Call this tool again with a higher "limit" (max 50) to fetch the rest.`,
299
310
  }
300
311
  : {};
301
- const typeByLabel = new Map(this.catalog.getAllEntities().map((e) => [e.labelName, e.type]));
302
312
  const entityByType = new Map();
303
313
  const idsByType = new Map();
304
314
  const gatedTypes = new Set();
@@ -309,7 +319,7 @@ let TraverseTool = class TraverseTool {
309
319
  if (seenIds.has(pair.id))
310
320
  continue;
311
321
  seenIds.add(pair.id);
312
- const type = typeByLabel.get(pair.label);
322
+ const type = pair.type;
313
323
  if (!type || gatedTypes.has(type))
314
324
  continue;
315
325
  if (!entityByType.has(type)) {