@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
@@ -1,11 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.AuthorDescriptor = exports.AssigneeDescriptor = exports.OwnerDescriptor = exports.UserDescriptor = void 0;
4
- const common_1 = require("../../../common");
4
+ const define_entity_1 = require("../../../common/helpers/define-entity");
5
5
  const company_1 = require("../../company/entities/company");
6
6
  const module_meta_1 = require("../../module/entities/module.meta");
7
7
  const role_meta_1 = require("../../role/entities/role.meta");
8
- const s3_1 = require("../../s3");
8
+ const s3_service_1 = require("../../s3/services/s3.service");
9
9
  const user_meta_1 = require("./user.meta");
10
10
  /**
11
11
  * User Entity Descriptor
@@ -13,9 +13,9 @@ const user_meta_1 = require("./user.meta");
13
13
  * Single source of truth for the User entity configuration.
14
14
  * Generates mapper, childrenTokens, and DataModelInterface automatically.
15
15
  */
16
- exports.UserDescriptor = (0, common_1.defineEntity)()({
16
+ exports.UserDescriptor = (0, define_entity_1.defineEntity)()({
17
17
  ...user_meta_1.userMeta,
18
- injectServices: [s3_1.S3Service],
18
+ injectServices: [s3_service_1.S3Service],
19
19
  // Field definitions
20
20
  fields: {
21
21
  email: { type: "string", required: true },
@@ -94,7 +94,7 @@ exports.UserDescriptor = (0, common_1.defineEntity)()({
94
94
  },
95
95
  });
96
96
  // Alias descriptors for relationship endpoints
97
- exports.OwnerDescriptor = (0, common_1.defineEntityAlias)(exports.UserDescriptor, user_meta_1.ownerMeta);
98
- exports.AssigneeDescriptor = (0, common_1.defineEntityAlias)(exports.UserDescriptor, user_meta_1.assigneeMeta);
99
- exports.AuthorDescriptor = (0, common_1.defineEntityAlias)(exports.UserDescriptor, user_meta_1.authorMeta);
97
+ exports.OwnerDescriptor = (0, define_entity_1.defineEntityAlias)(exports.UserDescriptor, user_meta_1.ownerMeta);
98
+ exports.AssigneeDescriptor = (0, define_entity_1.defineEntityAlias)(exports.UserDescriptor, user_meta_1.assigneeMeta);
99
+ exports.AuthorDescriptor = (0, define_entity_1.defineEntityAlias)(exports.UserDescriptor, user_meta_1.authorMeta);
100
100
  //# sourceMappingURL=user.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"user.js","sourceRoot":"","sources":["../../../../src/foundations/user/entities/user.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"user.js","sourceRoot":"","sources":["../../../../src/foundations/user/entities/user.ts"],"names":[],"mappings":"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"}
@@ -10,7 +10,7 @@ exports.UserModule = void 0;
10
10
  const common_1 = require("@nestjs/common");
11
11
  const registry_1 = require("../../common/registries/registry");
12
12
  const company_module_1 = require("../company/company.module");
13
- const relevancy_1 = require("../relevancy");
13
+ const relevancy_module_1 = require("../relevancy/relevancy.module");
14
14
  const s3_module_1 = require("../s3/s3.module");
15
15
  const user_controller_1 = require("./controllers/user.controller");
16
16
  const user_1 = require("./entities/user");
@@ -31,7 +31,7 @@ exports.UserModule = UserModule = __decorate([
31
31
  controllers: [user_controller_1.UserController],
32
32
  providers: [user_repository_1.UserRepository, user_service_1.UserService, user_1.UserDescriptor.model.serialiser, user_cypher_service_1.UserCypherService],
33
33
  exports: [user_service_1.UserService, user_repository_1.UserRepository, user_1.UserDescriptor.model.serialiser, user_cypher_service_1.UserCypherService],
34
- imports: [company_module_1.CompanyModule, s3_module_1.S3Module, relevancy_1.RelevancyModule],
34
+ imports: [company_module_1.CompanyModule, s3_module_1.S3Module, relevancy_module_1.RelevancyModule],
35
35
  })
36
36
  ], UserModule);
37
37
  //# sourceMappingURL=user.module.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"user.module.js","sourceRoot":"","sources":["../../../src/foundations/user/user.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAsD;AAEtD,+DAAiE;AACjE,8DAA0D;AAC1D,4CAA+C;AAC/C,+CAA2C;AAC3C,mEAA+D;AAC/D,0CAAwG;AACxG,oEAAgE;AAChE,wEAAmE;AACnE,0DAAsD;AAQ/C,IAAM,UAAU,GAAhB,MAAM,UAAU;IACrB,YAAY;QACV,wBAAa,CAAC,QAAQ,CAAC,qBAAc,CAAC,KAAK,CAAC,CAAC;QAC7C,wBAAa,CAAC,QAAQ,CAAC,sBAAe,CAAC,KAAK,CAAC,CAAC;QAC9C,wBAAa,CAAC,QAAQ,CAAC,yBAAkB,CAAC,KAAK,CAAC,CAAC;QACjD,wBAAa,CAAC,QAAQ,CAAC,uBAAgB,CAAC,KAAK,CAAC,CAAC;IACjD,CAAC;CACF,CAAA;AAPY,gCAAU;qBAAV,UAAU;IANtB,IAAA,eAAM,EAAC;QACN,WAAW,EAAE,CAAC,gCAAc,CAAC;QAC7B,SAAS,EAAE,CAAC,gCAAc,EAAE,0BAAW,EAAE,qBAAc,CAAC,KAAK,CAAC,UAAU,EAAE,uCAAiB,CAAC;QAC5F,OAAO,EAAE,CAAC,0BAAW,EAAE,gCAAc,EAAE,qBAAc,CAAC,KAAK,CAAC,UAAU,EAAE,uCAAiB,CAAC;QAC1F,OAAO,EAAE,CAAC,8BAAa,EAAE,oBAAQ,EAAE,2BAAe,CAAC;KACpD,CAAC;GACW,UAAU,CAOtB"}
1
+ {"version":3,"file":"user.module.js","sourceRoot":"","sources":["../../../src/foundations/user/user.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAsD;AAEtD,+DAAiE;AACjE,8DAA0D;AAC1D,oEAAgE;AAChE,+CAA2C;AAC3C,mEAA+D;AAC/D,0CAAwG;AACxG,oEAAgE;AAChE,wEAAmE;AACnE,0DAAsD;AAQ/C,IAAM,UAAU,GAAhB,MAAM,UAAU;IACrB,YAAY;QACV,wBAAa,CAAC,QAAQ,CAAC,qBAAc,CAAC,KAAK,CAAC,CAAC;QAC7C,wBAAa,CAAC,QAAQ,CAAC,sBAAe,CAAC,KAAK,CAAC,CAAC;QAC9C,wBAAa,CAAC,QAAQ,CAAC,yBAAkB,CAAC,KAAK,CAAC,CAAC;QACjD,wBAAa,CAAC,QAAQ,CAAC,uBAAgB,CAAC,KAAK,CAAC,CAAC;IACjD,CAAC;CACF,CAAA;AAPY,gCAAU;qBAAV,UAAU;IANtB,IAAA,eAAM,EAAC;QACN,WAAW,EAAE,CAAC,gCAAc,CAAC;QAC7B,SAAS,EAAE,CAAC,gCAAc,EAAE,0BAAW,EAAE,qBAAc,CAAC,KAAK,CAAC,UAAU,EAAE,uCAAiB,CAAC;QAC5F,OAAO,EAAE,CAAC,0BAAW,EAAE,gCAAc,EAAE,qBAAc,CAAC,KAAK,CAAC,UAAU,EAAE,uCAAiB,CAAC;QAC1F,OAAO,EAAE,CAAC,8BAAa,EAAE,oBAAQ,EAAE,kCAAe,CAAC;KACpD,CAAC;GACW,UAAU,CAOtB"}
@@ -7,8 +7,8 @@ import type { McpToolDefinition, McpToolResult, McpUserContext } from "../interf
7
7
  * MCP write executors (C4): create/update entities and add/remove to-many
8
8
  * relationship items for any JSON:API type registered in EntityServiceRegistry.
9
9
  *
10
- * Every write is gated by the catalog (type visible to the user's modules) and
11
- * RBAC (`create`/`update` permission on the entity's module), dispatched through
10
+ * Every write is gated by the catalog (type visible to the user's modules and
11
+ * declared `chat.writable`) and RBAC (`create`/`update` permission on the entity's module), dispatched through
12
12
  * the framework's `AbstractService.*FromDTO` path (never hand-built JSON:API
13
13
  * beyond the `JsonApiDTOData` framework type). Audit is NOT performed here:
14
14
  * `AbstractService.create/put` audits internally when the concrete entity
@@ -81,8 +81,13 @@ export declare class McpEntityWriteService {
81
81
  relatedIds: string[];
82
82
  }, ctx: McpUserContext): Promise<McpToolResult>;
83
83
  /**
84
- * Shared gate: catalog visibility (unknown_type), RBAC (forbidden), and
85
- * service registration (unknown_type).
84
+ * Shared gate: catalog visibility (unknown_type), write opt-in (not_writable),
85
+ * RBAC (forbidden), and service registration (unknown_type).
86
+ *
87
+ * Only types whose descriptor declares `chat.writable` are writable, exactly as
88
+ * for the operator write tools (`EntityWriteTools.resolveWritable`). A type
89
+ * without it is rejected before RBAC and before the service is resolved, so no
90
+ * service method is ever called for it.
86
91
  */
87
92
  private gate;
88
93
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"mcp.entity.write.service.d.ts","sourceRoot":"","sources":["../../../src/mcp/services/mcp.entity.write.service.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mDAAmD,CAAC;AAExF,OAAO,EAAE,qBAAqB,EAAE,MAAM,iDAAiD,CAAC;AACxF,OAAO,EAAE,gBAAgB,EAAE,MAAM,iDAAiD,CAAC;AAEnF,OAAO,EAAE,qBAAqB,EAAE,MAAM,yDAAyD,CAAC;AAChG,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAMzG;;;;;;;;;;GAUG;AACH,qBACa,qBAAqB;IAE9B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB;;;;;OAKG;IACH,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;gBATV,QAAQ,EAAE,qBAAqB,EAC/B,OAAO,EAAE,mBAAmB,EAC5B,IAAI,EAAE,qBAAqB;IAC5C;;;;;OAKG;IACc,SAAS,CAAC,EAAE,gBAAgB;IAG/C;;;OAGG;IACH,UAAU,CAAC,IAAI,EAAE,cAAc,GAAG,iBAAiB,EAAE;IAuHrD,oEAAoE;IAC9D,YAAY,CAChB,MAAM,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACpC,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;YAAE,IAAI,EAAE,KAAK,CAAC;gBAAE,IAAI,EAAE,MAAM,CAAC;gBAAC,EAAE,EAAE,MAAM,CAAA;aAAE,CAAC,CAAA;SAAE,CAAC,CAAC;KAC/E,EACD,GAAG,EAAE,cAAc,GAClB,OAAO,CAAC,aAAa,CAAC;IAyBzB;;;;;;;;;OASG;IACG,YAAY,CAChB,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,EACzE,GAAG,EAAE,cAAc,GAClB,OAAO,CAAC,aAAa,CAAC;IAmBzB,kEAAkE;IAC5D,eAAe,CACnB,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,EAAE,CAAA;KAAE,EACrG,GAAG,EAAE,cAAc,GAClB,OAAO,CAAC,aAAa,CAAC;IAiBzB,uEAAuE;IACjE,kBAAkB,CACtB,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,EAAE,CAAA;KAAE,EACrG,GAAG,EAAE,cAAc,GAClB,OAAO,CAAC,aAAa,CAAC;IAiBzB;;;OAGG;YACW,IAAI;IA0BlB;;;OAGG;IACH,OAAO,CAAC,iBAAiB;CAW1B"}
1
+ {"version":3,"file":"mcp.entity.write.service.d.ts","sourceRoot":"","sources":["../../../src/mcp/services/mcp.entity.write.service.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mDAAmD,CAAC;AAExF,OAAO,EAAE,qBAAqB,EAAE,MAAM,iDAAiD,CAAC;AACxF,OAAO,EAAE,gBAAgB,EAAE,MAAM,iDAAiD,CAAC;AAEnF,OAAO,EAAE,qBAAqB,EAAE,MAAM,yDAAyD,CAAC;AAChG,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAMzG;;;;;;;;;;GAUG;AACH,qBACa,qBAAqB;IAE9B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB;;;;;OAKG;IACH,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;gBATV,QAAQ,EAAE,qBAAqB,EAC/B,OAAO,EAAE,mBAAmB,EAC5B,IAAI,EAAE,qBAAqB;IAC5C;;;;;OAKG;IACc,SAAS,CAAC,EAAE,gBAAgB;IAG/C;;;OAGG;IACH,UAAU,CAAC,IAAI,EAAE,cAAc,GAAG,iBAAiB,EAAE;IAuHrD,oEAAoE;IAC9D,YAAY,CAChB,MAAM,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACpC,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;YAAE,IAAI,EAAE,KAAK,CAAC;gBAAE,IAAI,EAAE,MAAM,CAAC;gBAAC,EAAE,EAAE,MAAM,CAAA;aAAE,CAAC,CAAA;SAAE,CAAC,CAAC;KAC/E,EACD,GAAG,EAAE,cAAc,GAClB,OAAO,CAAC,aAAa,CAAC;IAyBzB;;;;;;;;;OASG;IACG,YAAY,CAChB,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,EACzE,GAAG,EAAE,cAAc,GAClB,OAAO,CAAC,aAAa,CAAC;IAmBzB,kEAAkE;IAC5D,eAAe,CACnB,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,EAAE,CAAA;KAAE,EACrG,GAAG,EAAE,cAAc,GAClB,OAAO,CAAC,aAAa,CAAC;IAiBzB,uEAAuE;IACjE,kBAAkB,CACtB,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,EAAE,CAAA;KAAE,EACrG,GAAG,EAAE,cAAc,GAClB,OAAO,CAAC,aAAa,CAAC;IAiBzB;;;;;;;;OAQG;YACW,IAAI;IA6BlB;;;OAGG;IACH,OAAO,CAAC,iBAAiB;CAW1B"}
@@ -23,8 +23,8 @@ const UPDATE_SEMANTICS = "Partial update: only the attributes you provide are ch
23
23
  * MCP write executors (C4): create/update entities and add/remove to-many
24
24
  * relationship items for any JSON:API type registered in EntityServiceRegistry.
25
25
  *
26
- * Every write is gated by the catalog (type visible to the user's modules) and
27
- * RBAC (`create`/`update` permission on the entity's module), dispatched through
26
+ * Every write is gated by the catalog (type visible to the user's modules and
27
+ * declared `chat.writable`) and RBAC (`create`/`update` permission on the entity's module), dispatched through
28
28
  * the framework's `AbstractService.*FromDTO` path (never hand-built JSON:API
29
29
  * beyond the `JsonApiDTOData` framework type). Audit is NOT performed here:
30
30
  * `AbstractService.create/put` audits internally when the concrete entity
@@ -246,8 +246,13 @@ let McpEntityWriteService = class McpEntityWriteService {
246
246
  }
247
247
  }
248
248
  /**
249
- * Shared gate: catalog visibility (unknown_type), RBAC (forbidden), and
250
- * service registration (unknown_type).
249
+ * Shared gate: catalog visibility (unknown_type), write opt-in (not_writable),
250
+ * RBAC (forbidden), and service registration (unknown_type).
251
+ *
252
+ * Only types whose descriptor declares `chat.writable` are writable, exactly as
253
+ * for the operator write tools (`EntityWriteTools.resolveWritable`). A type
254
+ * without it is rejected before RBAC and before the service is resolved, so no
255
+ * service method is ever called for it.
251
256
  */
252
257
  async gate(type, action, ctx) {
253
258
  const entity = this.catalog.getEntityDetail(type, ctx.userModuleIds);
@@ -256,6 +261,9 @@ let McpEntityWriteService = class McpEntityWriteService {
256
261
  error: (0, mcp_errors_1.mcpFlatError)("unknown_type", `Unknown or inaccessible entity type: ${type}. Call describe_entity first.`),
257
262
  };
258
263
  }
264
+ if (entity.writable !== true) {
265
+ return { error: (0, mcp_errors_1.mcpFlatError)("not_writable", `Entity type ${type} is read-only.`) };
266
+ }
259
267
  if (!(await this.rbac.can({ userId: ctx.userId, moduleId: entity.moduleId, action }))) {
260
268
  return { error: (0, mcp_errors_1.mcpFlatError)("forbidden", `You lack ${action} permission on ${type}.`) };
261
269
  }
@@ -1 +1 @@
1
- {"version":3,"file":"mcp.entity.write.service.js","sourceRoot":"","sources":["../../../src/mcp/services/mcp.entity.write.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp.entity.write.service.js","sourceRoot":"","sources":["../../../src/mcp/services/mcp.entity.write.service.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ import type { McpToolResult } from "../interfaces/mcp.tool.interface";
4
4
  * client as a FLAT JSON payload `{ code, message, ...meta }` — mirroring the
5
5
  * flat-error convention used by the HTTP layer's HttpExceptionFilter.
6
6
  */
7
- export type McpErrorCode = "unknown_type" | "forbidden" | "validation_failed" | "not_found" | "internal";
7
+ export type McpErrorCode = "unknown_type" | "not_writable" | "forbidden" | "validation_failed" | "not_found" | "internal";
8
8
  /**
9
9
  * Maps an unknown thrown value to a flat MCP error result.
10
10
  *
@@ -1 +1 @@
1
- {"version":3,"file":"mcp.errors.d.ts","sourceRoot":"","sources":["../../../src/mcp/services/mcp.errors.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAEtE;;;;GAIG;AACH,MAAM,MAAM,YAAY,GAAG,cAAc,GAAG,WAAW,GAAG,mBAAmB,GAAG,WAAW,GAAG,UAAU,CAAC;AAEzG;;;;;;;;;GASG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,OAAO,GAAG,aAAa,CAuBlD;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GAAG,aAAa,CAE7G"}
1
+ {"version":3,"file":"mcp.errors.d.ts","sourceRoot":"","sources":["../../../src/mcp/services/mcp.errors.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAEtE;;;;GAIG;AACH,MAAM,MAAM,YAAY,GACtB,cAAc,GAAG,cAAc,GAAG,WAAW,GAAG,mBAAmB,GAAG,WAAW,GAAG,UAAU,CAAC;AAEjG;;;;;;;;;GASG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,OAAO,GAAG,aAAa,CAuBlD;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GAAG,aAAa,CAE7G"}
@@ -1 +1 @@
1
- {"version":3,"file":"mcp.errors.js","sourceRoot":"","sources":["../../../src/mcp/services/mcp.errors.ts"],"names":[],"mappings":";;AAqBA,4BAuBC;AAMD,oCAEC;AApDD,2CAA+C;AAC/C,6BAA+B;AAU/B;;;;;;;;;GASG;AACH,SAAgB,QAAQ,CAAC,CAAU;IACjC,IAAI,IAAI,GAAiB,UAAU,CAAC;IACpC,IAAI,OAAO,GAAG,kBAAkB,CAAC;IACjC,IAAI,IAAI,GAA4B,EAAE,CAAC;IACvC,IAAI,CAAC,YAAY,sBAAa,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC;QAC7B,IAAI;YACF,MAAM,KAAK,GAAG;gBACZ,CAAC,CAAC,WAAW;gBACb,CAAC,CAAC,MAAM,KAAK,GAAG;oBACd,CAAC,CAAC,WAAW;oBACb,CAAC,CAAC,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG;wBAChC,CAAC,CAAC,mBAAmB;wBACrB,CAAC,CAAC,UAAU,CAAC;QACrB,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC;IACtB,CAAC;SAAM,IAAI,CAAC,YAAY,cAAQ,EAAE,CAAC;QACjC,IAAI,GAAG,mBAAmB,CAAC;QAC3B,OAAO,GAAG,yBAAyB,CAAC;QACpC,IAAI,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC;IAC3F,CAAC;SAAM,IAAI,CAAC,YAAY,KAAK,EAAE,CAAC;QAC9B,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC;IACtB,CAAC;IACD,OAAO,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;AAC3C,CAAC;AAED;;;GAGG;AACH,SAAgB,YAAY,CAAC,IAAY,EAAE,OAAe,EAAE,OAAgC,EAAE;IAC5F,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC1G,CAAC"}
1
+ {"version":3,"file":"mcp.errors.js","sourceRoot":"","sources":["../../../src/mcp/services/mcp.errors.ts"],"names":[],"mappings":";;AAsBA,4BAuBC;AAMD,oCAEC;AArDD,2CAA+C;AAC/C,6BAA+B;AAW/B;;;;;;;;;GASG;AACH,SAAgB,QAAQ,CAAC,CAAU;IACjC,IAAI,IAAI,GAAiB,UAAU,CAAC;IACpC,IAAI,OAAO,GAAG,kBAAkB,CAAC;IACjC,IAAI,IAAI,GAA4B,EAAE,CAAC;IACvC,IAAI,CAAC,YAAY,sBAAa,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC;QAC7B,IAAI;YACF,MAAM,KAAK,GAAG;gBACZ,CAAC,CAAC,WAAW;gBACb,CAAC,CAAC,MAAM,KAAK,GAAG;oBACd,CAAC,CAAC,WAAW;oBACb,CAAC,CAAC,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG;wBAChC,CAAC,CAAC,mBAAmB;wBACrB,CAAC,CAAC,UAAU,CAAC;QACrB,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC;IACtB,CAAC;SAAM,IAAI,CAAC,YAAY,cAAQ,EAAE,CAAC;QACjC,IAAI,GAAG,mBAAmB,CAAC;QAC3B,OAAO,GAAG,yBAAyB,CAAC;QACpC,IAAI,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC;IAC3F,CAAC;SAAM,IAAI,CAAC,YAAY,KAAK,EAAE,CAAC;QAC9B,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC;IACtB,CAAC;IACD,OAAO,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;AAC3C,CAAC;AAED;;;GAGG;AACH,SAAgB,YAAY,CAAC,IAAY,EAAE,OAAe,EAAE,OAAgC,EAAE;IAC5F,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC1G,CAAC"}
@@ -1,3 +1,4 @@
1
+ import { CreditValidatorInterface } from "../../common/tokens";
1
2
  import { McpToolContribution, McpToolDefinition, McpToolResult, McpUserContext } from "../interfaces/mcp.tool.interface";
2
3
  import { McpGenericToolsService } from "./mcp.generic.tools.service";
3
4
  import { McpPromotedToolsFactory } from "./mcp.promoted.tools.factory";
@@ -7,12 +8,20 @@ import { McpPromotedToolsFactory } from "./mcp.promoted.tools.factory";
7
8
  * - the config-promoted per-entity tools
8
9
  * - any app-contributed factories registered under the MCP_TOOLS token,
9
10
  * built per request with the same user context as the built-ins
11
+ *
12
+ * `call()` is credit-gated through the interactive validator
13
+ * (`INTERACTIVE_CREDIT_VALIDATOR`, else `CREDIT_VALIDATOR`): AI off returns the
14
+ * flat error `ai_disabled`, an empty balance (402) returns `no_credits`, any
15
+ * other validator error propagates. With no validator bound nothing is gated.
16
+ * `build()` (tools/list) is never gated, so a client still sees what exists.
10
17
  */
11
18
  export declare class McpToolRegistry {
12
19
  private readonly generic;
13
20
  private readonly promoted;
14
21
  private readonly contributed?;
15
- constructor(generic: McpGenericToolsService, promoted: McpPromotedToolsFactory, contributed?: McpToolContribution[]);
22
+ private readonly interactiveCreditValidator?;
23
+ private readonly creditValidator?;
24
+ constructor(generic: McpGenericToolsService, promoted: McpPromotedToolsFactory, contributed?: McpToolContribution[], interactiveCreditValidator?: CreditValidatorInterface, creditValidator?: CreditValidatorInterface);
16
25
  /** RBAC-filtered tool list for this user; throws on duplicate tool names. */
17
26
  build(ctx: McpUserContext): McpToolDefinition[];
18
27
  /** Routes a tools/call to the named tool; unknown names return a flat error payload. */
@@ -1 +1 @@
1
- {"version":3,"file":"mcp.tool.registry.d.ts","sourceRoot":"","sources":["../../../src/mcp/services/mcp.tool.registry.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,mBAAmB,EACnB,iBAAiB,EACjB,aAAa,EACb,cAAc,EACf,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAEvE;;;;;;GAMG;AACH,qBACa,eAAe;IAExB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACM,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC;gBAF3C,OAAO,EAAE,sBAAsB,EAC/B,QAAQ,EAAE,uBAAuB,EACF,WAAW,CAAC,EAAE,mBAAmB,EAAE;IAGrF,6EAA6E;IAC7E,KAAK,CAAC,GAAG,EAAE,cAAc,GAAG,iBAAiB,EAAE;IAsB/C,wFAAwF;IAClF,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC;CAUtG"}
1
+ {"version":3,"file":"mcp.tool.registry.d.ts","sourceRoot":"","sources":["../../../src/mcp/services/mcp.tool.registry.ts"],"names":[],"mappings":"AAEA,OAAO,EAAoB,wBAAwB,EAAgC,MAAM,qBAAqB,CAAC;AAC/G,OAAO,EAEL,mBAAmB,EACnB,iBAAiB,EACjB,aAAa,EACb,cAAc,EACf,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAEvE;;;;;;;;;;;;GAYG;AACH,qBACa,eAAe;IAExB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACM,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC;IAG5D,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAAC;IACN,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC;gBANtD,OAAO,EAAE,sBAAsB,EAC/B,QAAQ,EAAE,uBAAuB,EACF,WAAW,CAAC,EAAE,mBAAmB,EAAE,EAGlE,0BAA0B,CAAC,EAAE,wBAAwB,EACf,eAAe,CAAC,EAAE,wBAAwB;IAGnG,6EAA6E;IAC7E,KAAK,CAAC,GAAG,EAAE,cAAc,GAAG,iBAAiB,EAAE;IAsB/C,wFAAwF;IAClF,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC;CAmBtG"}
@@ -14,7 +14,10 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.McpToolRegistry = void 0;
16
16
  const common_1 = require("@nestjs/common");
17
+ const credit_gate_1 = require("../../common/helpers/credit-gate");
18
+ const tokens_1 = require("../../common/tokens");
17
19
  const mcp_tool_interface_1 = require("../interfaces/mcp.tool.interface");
20
+ const mcp_errors_1 = require("./mcp.errors");
18
21
  const mcp_generic_tools_service_1 = require("./mcp.generic.tools.service");
19
22
  const mcp_promoted_tools_factory_1 = require("./mcp.promoted.tools.factory");
20
23
  /**
@@ -23,12 +26,20 @@ const mcp_promoted_tools_factory_1 = require("./mcp.promoted.tools.factory");
23
26
  * - the config-promoted per-entity tools
24
27
  * - any app-contributed factories registered under the MCP_TOOLS token,
25
28
  * built per request with the same user context as the built-ins
29
+ *
30
+ * `call()` is credit-gated through the interactive validator
31
+ * (`INTERACTIVE_CREDIT_VALIDATOR`, else `CREDIT_VALIDATOR`): AI off returns the
32
+ * flat error `ai_disabled`, an empty balance (402) returns `no_credits`, any
33
+ * other validator error propagates. With no validator bound nothing is gated.
34
+ * `build()` (tools/list) is never gated, so a client still sees what exists.
26
35
  */
27
36
  let McpToolRegistry = class McpToolRegistry {
28
- constructor(generic, promoted, contributed) {
37
+ constructor(generic, promoted, contributed, interactiveCreditValidator, creditValidator) {
29
38
  this.generic = generic;
30
39
  this.promoted = promoted;
31
40
  this.contributed = contributed;
41
+ this.interactiveCreditValidator = interactiveCreditValidator;
42
+ this.creditValidator = creditValidator;
32
43
  }
33
44
  /** RBAC-filtered tool list for this user; throws on duplicate tool names. */
34
45
  build(ctx) {
@@ -58,6 +69,13 @@ let McpToolRegistry = class McpToolRegistry {
58
69
  content: [{ type: "text", text: JSON.stringify({ code: "unknown_type", message: `Unknown tool: ${name}` }) }],
59
70
  };
60
71
  }
72
+ const validator = (0, credit_gate_1.pickInteractiveValidator)(this.interactiveCreditValidator, this.creditValidator);
73
+ if (!(await (0, credit_gate_1.isAiEnabledVia)(validator, { companyId: ctx.companyId }))) {
74
+ return (0, mcp_errors_1.mcpFlatError)("ai_disabled", "AI is not enabled for this company");
75
+ }
76
+ if (!(await (0, credit_gate_1.hasAvailableCreditsVia)(validator, { companyId: ctx.companyId }))) {
77
+ return (0, mcp_errors_1.mcpFlatError)("no_credits", "The company has no available credits");
78
+ }
61
79
  return tool.execute(input, ctx);
62
80
  }
63
81
  };
@@ -66,7 +84,11 @@ exports.McpToolRegistry = McpToolRegistry = __decorate([
66
84
  (0, common_1.Injectable)(),
67
85
  __param(2, (0, common_1.Optional)()),
68
86
  __param(2, (0, common_1.Inject)(mcp_tool_interface_1.MCP_TOOLS)),
87
+ __param(3, (0, common_1.Optional)()),
88
+ __param(3, (0, common_1.Inject)(tokens_1.INTERACTIVE_CREDIT_VALIDATOR)),
89
+ __param(4, (0, common_1.Optional)()),
90
+ __param(4, (0, common_1.Inject)(tokens_1.CREDIT_VALIDATOR)),
69
91
  __metadata("design:paramtypes", [mcp_generic_tools_service_1.McpGenericToolsService,
70
- mcp_promoted_tools_factory_1.McpPromotedToolsFactory, Array])
92
+ mcp_promoted_tools_factory_1.McpPromotedToolsFactory, Array, Object, Object])
71
93
  ], McpToolRegistry);
72
94
  //# sourceMappingURL=mcp.tool.registry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mcp.tool.registry.js","sourceRoot":"","sources":["../../../src/mcp/services/mcp.tool.registry.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAA8D;AAC9D,yEAM0C;AAC1C,2EAAqE;AACrE,6EAAuE;AAEvE;;;;;;GAMG;AAEI,IAAM,eAAe,GAArB,MAAM,eAAe;IAC1B,YACmB,OAA+B,EAC/B,QAAiC,EACF,WAAmC;QAFlE,YAAO,GAAP,OAAO,CAAwB;QAC/B,aAAQ,GAAR,QAAQ,CAAyB;QACF,gBAAW,GAAX,WAAW,CAAwB;IAClF,CAAC;IAEJ,6EAA6E;IAC7E,KAAK,CAAC,GAAmB;QACvB,MAAM,KAAK,GAAG;YACZ,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC;YAC1B,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC;YAC3B,GAAG,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SACzD,CAAC;QAEF,0EAA0E;QAC1E,6DAA6D;QAC7D,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;QAC/B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBACxB,MAAM,IAAI,KAAK,CACb,6CAA6C,IAAI,CAAC,IAAI,IAAI;oBACxD,yGAAyG,CAC5G,CAAC;YACJ,CAAC;YACD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,wFAAwF;IACxF,KAAK,CAAC,IAAI,CAAC,IAAY,EAAE,KAA8B,EAAE,GAAmB;QAC1E,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;QAC1D,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,iBAAiB,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC;aAC9G,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAClC,CAAC;CACF,CAAA;AAzCY,0CAAe;0BAAf,eAAe;IAD3B,IAAA,mBAAU,GAAE;IAKR,WAAA,IAAA,iBAAQ,GAAE,CAAA;IAAE,WAAA,IAAA,eAAM,EAAC,8BAAS,CAAC,CAAA;qCAFJ,kDAAsB;QACrB,oDAAuB;GAHzC,eAAe,CAyC3B"}
1
+ {"version":3,"file":"mcp.tool.registry.js","sourceRoot":"","sources":["../../../src/mcp/services/mcp.tool.registry.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAA8D;AAC9D,kEAAoH;AACpH,gDAA+G;AAC/G,yEAM0C;AAC1C,6CAA4C;AAC5C,2EAAqE;AACrE,6EAAuE;AAEvE;;;;;;;;;;;;GAYG;AAEI,IAAM,eAAe,GAArB,MAAM,eAAe;IAC1B,YACmB,OAA+B,EAC/B,QAAiC,EACF,WAAmC,EAGlE,0BAAqD,EACf,eAA0C;QANhF,YAAO,GAAP,OAAO,CAAwB;QAC/B,aAAQ,GAAR,QAAQ,CAAyB;QACF,gBAAW,GAAX,WAAW,CAAwB;QAGlE,+BAA0B,GAA1B,0BAA0B,CAA2B;QACf,oBAAe,GAAf,eAAe,CAA2B;IAChG,CAAC;IAEJ,6EAA6E;IAC7E,KAAK,CAAC,GAAmB;QACvB,MAAM,KAAK,GAAG;YACZ,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC;YAC1B,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC;YAC3B,GAAG,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SACzD,CAAC;QAEF,0EAA0E;QAC1E,6DAA6D;QAC7D,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;QAC/B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBACxB,MAAM,IAAI,KAAK,CACb,6CAA6C,IAAI,CAAC,IAAI,IAAI;oBACxD,yGAAyG,CAC5G,CAAC;YACJ,CAAC;YACD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,wFAAwF;IACxF,KAAK,CAAC,IAAI,CAAC,IAAY,EAAE,KAA8B,EAAE,GAAmB;QAC1E,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;QAC1D,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,iBAAiB,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC;aAC9G,CAAC;QACJ,CAAC;QAED,MAAM,SAAS,GAAG,IAAA,sCAAwB,EAAC,IAAI,CAAC,0BAA0B,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QAClG,IAAI,CAAC,CAAC,MAAM,IAAA,4BAAc,EAAC,SAAS,EAAE,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC;YACrE,OAAO,IAAA,yBAAY,EAAC,aAAa,EAAE,oCAAoC,CAAC,CAAC;QAC3E,CAAC;QACD,IAAI,CAAC,CAAC,MAAM,IAAA,oCAAsB,EAAC,SAAS,EAAE,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC;YAC7E,OAAO,IAAA,yBAAY,EAAC,YAAY,EAAE,sCAAsC,CAAC,CAAC;QAC5E,CAAC;QAED,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAClC,CAAC;CACF,CAAA;AAtDY,0CAAe;0BAAf,eAAe;IAD3B,IAAA,mBAAU,GAAE;IAKR,WAAA,IAAA,iBAAQ,GAAE,CAAA;IAAE,WAAA,IAAA,eAAM,EAAC,8BAAS,CAAC,CAAA;IAC7B,WAAA,IAAA,iBAAQ,GAAE,CAAA;IACV,WAAA,IAAA,eAAM,EAAC,qCAA4B,CAAC,CAAA;IAEpC,WAAA,IAAA,iBAAQ,GAAE,CAAA;IAAE,WAAA,IAAA,eAAM,EAAC,yBAAgB,CAAC,CAAA;qCANX,kDAAsB;QACrB,oDAAuB;GAHzC,eAAe,CAsD3B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@carlonicora/nestjs-neo4jsonapi",
3
- "version": "4.11.0",
3
+ "version": "4.12.0",
4
4
  "description": "NestJS foundation package with JSON:API, Neo4j, Redis, LangChain agents, and common utilities",
5
5
  "author": "Carlo Nicora",
6
6
  "license": "GPL-3.0-or-later",