@carlonicora/nestjs-neo4jsonapi 1.115.1 → 1.117.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 (437) hide show
  1. package/dist/bootstrap/app.module.factory.d.ts.map +1 -1
  2. package/dist/bootstrap/app.module.factory.js +1 -0
  3. package/dist/bootstrap/app.module.factory.js.map +1 -1
  4. package/dist/bootstrap/bootstrap.options.d.ts +17 -0
  5. package/dist/bootstrap/bootstrap.options.d.ts.map +1 -1
  6. package/dist/common/guards/jwt.auth.admin.guard.d.ts +3 -2
  7. package/dist/common/guards/jwt.auth.admin.guard.d.ts.map +1 -1
  8. package/dist/common/guards/jwt.auth.admin.guard.js +19 -4
  9. package/dist/common/guards/jwt.auth.admin.guard.js.map +1 -1
  10. package/dist/common/guards/jwt.auth.guard.d.ts +3 -2
  11. package/dist/common/guards/jwt.auth.guard.d.ts.map +1 -1
  12. package/dist/common/guards/jwt.auth.guard.js +7 -2
  13. package/dist/common/guards/jwt.auth.guard.js.map +1 -1
  14. package/dist/common/interfaces/entity.schema.interface.d.ts +2 -0
  15. package/dist/common/interfaces/entity.schema.interface.d.ts.map +1 -1
  16. package/dist/common/tokens.d.ts +68 -0
  17. package/dist/common/tokens.d.ts.map +1 -1
  18. package/dist/common/tokens.js +37 -2
  19. package/dist/common/tokens.js.map +1 -1
  20. package/dist/config/base.config.d.ts.map +1 -1
  21. package/dist/config/base.config.js +9 -0
  22. package/dist/config/base.config.js.map +1 -1
  23. package/dist/config/enums/queue.id.d.ts +2 -1
  24. package/dist/config/enums/queue.id.d.ts.map +1 -1
  25. package/dist/config/enums/queue.id.js +1 -0
  26. package/dist/config/enums/queue.id.js.map +1 -1
  27. package/dist/config/interfaces/base.config.interface.d.ts +2 -0
  28. package/dist/config/interfaces/base.config.interface.d.ts.map +1 -1
  29. package/dist/config/interfaces/config.ai.interface.d.ts +8 -0
  30. package/dist/config/interfaces/config.ai.interface.d.ts.map +1 -1
  31. package/dist/config/interfaces/config.auth.interface.d.ts +7 -0
  32. package/dist/config/interfaces/config.auth.interface.d.ts.map +1 -1
  33. package/dist/config/interfaces/config.credits.interface.d.ts +24 -0
  34. package/dist/config/interfaces/config.credits.interface.d.ts.map +1 -0
  35. package/dist/{foundations/auth/entities/auth.entity.js → config/interfaces/config.credits.interface.js} +1 -1
  36. package/dist/config/interfaces/config.credits.interface.js.map +1 -0
  37. package/dist/config/interfaces/config.email.interface.d.ts +6 -0
  38. package/dist/config/interfaces/config.email.interface.d.ts.map +1 -1
  39. package/dist/config/interfaces/index.d.ts +1 -0
  40. package/dist/config/interfaces/index.d.ts.map +1 -1
  41. package/dist/config/interfaces/index.js +1 -0
  42. package/dist/config/interfaces/index.js.map +1 -1
  43. package/dist/core/email/services/email.service.d.ts +1 -0
  44. package/dist/core/email/services/email.service.d.ts.map +1 -1
  45. package/dist/core/email/services/email.service.js +10 -7
  46. package/dist/core/email/services/email.service.js.map +1 -1
  47. package/dist/core/llm/services/embedder.service.d.ts +36 -2
  48. package/dist/core/llm/services/embedder.service.d.ts.map +1 -1
  49. package/dist/core/llm/services/embedder.service.js +87 -7
  50. package/dist/core/llm/services/embedder.service.js.map +1 -1
  51. package/dist/core/llm/services/llm.service.d.ts +9 -1
  52. package/dist/core/llm/services/llm.service.d.ts.map +1 -1
  53. package/dist/core/llm/services/llm.service.js +13 -3
  54. package/dist/core/llm/services/llm.service.js.map +1 -1
  55. package/dist/core/neo4j/abstracts/abstract.repository.d.ts.map +1 -1
  56. package/dist/core/neo4j/abstracts/abstract.repository.js +33 -2
  57. package/dist/core/neo4j/abstracts/abstract.repository.js.map +1 -1
  58. package/dist/foundations/auth/auth.module.d.ts.map +1 -1
  59. package/dist/foundations/auth/auth.module.js +9 -10
  60. package/dist/foundations/auth/auth.module.js.map +1 -1
  61. package/dist/foundations/auth/controllers/auth.controller.d.ts.map +1 -1
  62. package/dist/foundations/auth/controllers/auth.controller.js +5 -0
  63. package/dist/foundations/auth/controllers/auth.controller.js.map +1 -1
  64. package/dist/foundations/auth/controllers/auth.discord.controller.d.ts.map +1 -1
  65. package/dist/foundations/auth/controllers/auth.discord.controller.js +6 -3
  66. package/dist/foundations/auth/controllers/auth.discord.controller.js.map +1 -1
  67. package/dist/foundations/auth/controllers/auth.google.controller.d.ts.map +1 -1
  68. package/dist/foundations/auth/controllers/auth.google.controller.js +7 -3
  69. package/dist/foundations/auth/controllers/auth.google.controller.js.map +1 -1
  70. package/dist/foundations/auth/entities/auth.code.d.ts +34 -0
  71. package/dist/foundations/auth/entities/auth.code.d.ts.map +1 -0
  72. package/dist/foundations/auth/entities/auth.code.js +53 -0
  73. package/dist/foundations/auth/entities/auth.code.js.map +1 -0
  74. package/dist/foundations/auth/entities/auth.d.ts +41 -0
  75. package/dist/foundations/auth/entities/auth.d.ts.map +1 -0
  76. package/dist/foundations/auth/entities/auth.js +68 -0
  77. package/dist/foundations/auth/entities/auth.js.map +1 -0
  78. package/dist/foundations/auth/entities/pending-auth.d.ts +39 -0
  79. package/dist/foundations/auth/entities/pending-auth.d.ts.map +1 -0
  80. package/dist/foundations/auth/entities/pending-auth.js +41 -0
  81. package/dist/foundations/auth/entities/pending-auth.js.map +1 -0
  82. package/dist/foundations/auth/index.d.ts +13 -0
  83. package/dist/foundations/auth/index.d.ts.map +1 -1
  84. package/dist/foundations/auth/index.js +31 -1
  85. package/dist/foundations/auth/index.js.map +1 -1
  86. package/dist/foundations/auth/repositories/auth.repository.d.ts +49 -9
  87. package/dist/foundations/auth/repositories/auth.repository.d.ts.map +1 -1
  88. package/dist/foundations/auth/repositories/auth.repository.js +115 -63
  89. package/dist/foundations/auth/repositories/auth.repository.js.map +1 -1
  90. package/dist/foundations/auth/services/auth.discord.service.d.ts +1 -1
  91. package/dist/foundations/auth/services/auth.discord.service.d.ts.map +1 -1
  92. package/dist/foundations/auth/services/auth.discord.service.js +5 -2
  93. package/dist/foundations/auth/services/auth.discord.service.js.map +1 -1
  94. package/dist/foundations/auth/services/auth.google.service.d.ts +1 -1
  95. package/dist/foundations/auth/services/auth.google.service.d.ts.map +1 -1
  96. package/dist/foundations/auth/services/auth.google.service.js +6 -2
  97. package/dist/foundations/auth/services/auth.google.service.js.map +1 -1
  98. package/dist/foundations/auth/services/auth.service.d.ts +42 -7
  99. package/dist/foundations/auth/services/auth.service.d.ts.map +1 -1
  100. package/dist/foundations/auth/services/auth.service.js +140 -77
  101. package/dist/foundations/auth/services/auth.service.js.map +1 -1
  102. package/dist/foundations/company/dtos/company.post.dto.d.ts +3 -3
  103. package/dist/foundations/company/dtos/company.post.dto.d.ts.map +1 -1
  104. package/dist/foundations/company/dtos/company.post.dto.js +3 -3
  105. package/dist/foundations/company/dtos/company.post.dto.js.map +1 -1
  106. package/dist/foundations/company/dtos/company.put.dto.d.ts +3 -3
  107. package/dist/foundations/company/dtos/company.put.dto.d.ts.map +1 -1
  108. package/dist/foundations/company/dtos/company.put.dto.js +3 -3
  109. package/dist/foundations/company/dtos/company.put.dto.js.map +1 -1
  110. package/dist/foundations/company/entities/company.d.ts +4 -4
  111. package/dist/foundations/company/entities/company.d.ts.map +1 -1
  112. package/dist/foundations/company/entities/company.js +18 -4
  113. package/dist/foundations/company/entities/company.js.map +1 -1
  114. package/dist/foundations/company/index.d.ts +5 -0
  115. package/dist/foundations/company/index.d.ts.map +1 -1
  116. package/dist/foundations/company/index.js +16 -1
  117. package/dist/foundations/company/index.js.map +1 -1
  118. package/dist/foundations/company/processors/company.processor.js +1 -1
  119. package/dist/foundations/company/processors/company.processor.js.map +1 -1
  120. package/dist/foundations/company/repositories/company.repository.d.ts +96 -33
  121. package/dist/foundations/company/repositories/company.repository.d.ts.map +1 -1
  122. package/dist/foundations/company/repositories/company.repository.js +125 -95
  123. package/dist/foundations/company/repositories/company.repository.js.map +1 -1
  124. package/dist/foundations/company/services/company.service.d.ts +52 -13
  125. package/dist/foundations/company/services/company.service.d.ts.map +1 -1
  126. package/dist/foundations/company/services/company.service.js +62 -39
  127. package/dist/foundations/company/services/company.service.js.map +1 -1
  128. package/dist/foundations/content/content.module.d.ts +20 -8
  129. package/dist/foundations/content/content.module.d.ts.map +1 -1
  130. package/dist/foundations/content/content.module.js +40 -24
  131. package/dist/foundations/content/content.module.js.map +1 -1
  132. package/dist/foundations/content/controllers/content.controller.d.ts +1 -1
  133. package/dist/foundations/content/controllers/content.controller.d.ts.map +1 -1
  134. package/dist/foundations/content/controllers/content.controller.js +2 -2
  135. package/dist/foundations/content/controllers/content.controller.js.map +1 -1
  136. package/dist/foundations/content/entities/content.d.ts +74 -0
  137. package/dist/foundations/content/entities/content.d.ts.map +1 -0
  138. package/dist/foundations/content/entities/content.js +141 -0
  139. package/dist/foundations/content/entities/content.js.map +1 -0
  140. package/dist/foundations/content/index.d.ts +2 -4
  141. package/dist/foundations/content/index.d.ts.map +1 -1
  142. package/dist/foundations/content/index.js +6 -5
  143. package/dist/foundations/content/index.js.map +1 -1
  144. package/dist/foundations/content/interfaces/content.extension.interface.d.ts +126 -0
  145. package/dist/foundations/content/interfaces/content.extension.interface.d.ts.map +1 -1
  146. package/dist/foundations/content/interfaces/content.extension.interface.js +7 -1
  147. package/dist/foundations/content/interfaces/content.extension.interface.js.map +1 -1
  148. package/dist/foundations/content/repositories/content.repository.d.ts +14 -7
  149. package/dist/foundations/content/repositories/content.repository.d.ts.map +1 -1
  150. package/dist/foundations/content/repositories/content.repository.js +18 -16
  151. package/dist/foundations/content/repositories/content.repository.js.map +1 -1
  152. package/dist/foundations/content/services/content.cypher.service.d.ts +19 -0
  153. package/dist/foundations/content/services/content.cypher.service.d.ts.map +1 -1
  154. package/dist/foundations/content/services/content.cypher.service.js +65 -4
  155. package/dist/foundations/content/services/content.cypher.service.js.map +1 -1
  156. package/dist/foundations/content/services/content.service.js +4 -4
  157. package/dist/foundations/content/services/content.service.js.map +1 -1
  158. package/dist/foundations/discord-user/services/discord-user.service.js +2 -2
  159. package/dist/foundations/discord-user/services/discord-user.service.js.map +1 -1
  160. package/dist/foundations/feature/entities/feature.d.ts +32 -0
  161. package/dist/foundations/feature/entities/feature.d.ts.map +1 -0
  162. package/dist/foundations/feature/entities/feature.js +64 -0
  163. package/dist/foundations/feature/entities/feature.js.map +1 -0
  164. package/dist/foundations/feature/entities/feature.model.d.ts +1 -3
  165. package/dist/foundations/feature/entities/feature.model.d.ts.map +1 -1
  166. package/dist/foundations/feature/entities/feature.model.js +3 -11
  167. package/dist/foundations/feature/entities/feature.model.js.map +1 -1
  168. package/dist/foundations/feature/feature.module.d.ts.map +1 -1
  169. package/dist/foundations/feature/feature.module.js +4 -5
  170. package/dist/foundations/feature/feature.module.js.map +1 -1
  171. package/dist/foundations/feature/index.d.ts +12 -0
  172. package/dist/foundations/feature/index.d.ts.map +1 -1
  173. package/dist/foundations/feature/index.js +22 -1
  174. package/dist/foundations/feature/index.js.map +1 -1
  175. package/dist/foundations/feature/repositories/feature.repository.d.ts +37 -13
  176. package/dist/foundations/feature/repositories/feature.repository.d.ts.map +1 -1
  177. package/dist/foundations/feature/repositories/feature.repository.js +41 -35
  178. package/dist/foundations/feature/repositories/feature.repository.js.map +1 -1
  179. package/dist/foundations/feature/services/feature.service.d.ts +31 -4
  180. package/dist/foundations/feature/services/feature.service.d.ts.map +1 -1
  181. package/dist/foundations/feature/services/feature.service.js +20 -12
  182. package/dist/foundations/feature/services/feature.service.js.map +1 -1
  183. package/dist/foundations/foundations.modules.d.ts +6 -0
  184. package/dist/foundations/foundations.modules.d.ts.map +1 -1
  185. package/dist/foundations/foundations.modules.js +14 -3
  186. package/dist/foundations/foundations.modules.js.map +1 -1
  187. package/dist/foundations/google-user/services/google-user.service.js +2 -2
  188. package/dist/foundations/google-user/services/google-user.service.js.map +1 -1
  189. package/dist/foundations/index.d.ts +3 -0
  190. package/dist/foundations/index.d.ts.map +1 -1
  191. package/dist/foundations/index.js +3 -0
  192. package/dist/foundations/index.js.map +1 -1
  193. package/dist/foundations/membership/entities/membership.d.ts.map +1 -1
  194. package/dist/foundations/membership/entities/membership.js +4 -0
  195. package/dist/foundations/membership/entities/membership.js.map +1 -1
  196. package/dist/foundations/notification/controllers/notification.controller.js +2 -2
  197. package/dist/foundations/notification/controllers/notification.controller.js.map +1 -1
  198. package/dist/foundations/notification/entities/notification.d.ts +75 -0
  199. package/dist/foundations/notification/entities/notification.d.ts.map +1 -0
  200. package/dist/foundations/notification/entities/notification.js +73 -0
  201. package/dist/foundations/notification/entities/notification.js.map +1 -0
  202. package/dist/foundations/notification/index.d.ts +6 -2
  203. package/dist/foundations/notification/index.d.ts.map +1 -1
  204. package/dist/foundations/notification/index.js +17 -3
  205. package/dist/foundations/notification/index.js.map +1 -1
  206. package/dist/foundations/notification/notification.module.d.ts.map +1 -1
  207. package/dist/foundations/notification/notification.module.js +3 -4
  208. package/dist/foundations/notification/notification.module.js.map +1 -1
  209. package/dist/foundations/notification/repositories/notification.repository.d.ts +125 -8
  210. package/dist/foundations/notification/repositories/notification.repository.d.ts.map +1 -1
  211. package/dist/foundations/notification/repositories/notification.repository.js +219 -20
  212. package/dist/foundations/notification/repositories/notification.repository.js.map +1 -1
  213. package/dist/foundations/notification/services/notification.service.d.ts +31 -5
  214. package/dist/foundations/notification/services/notification.service.d.ts.map +1 -1
  215. package/dist/foundations/notification/services/notification.service.js +26 -9
  216. package/dist/foundations/notification/services/notification.service.js.map +1 -1
  217. package/dist/foundations/rbac/dump.d.ts +48 -4
  218. package/dist/foundations/rbac/dump.d.ts.map +1 -1
  219. package/dist/foundations/rbac/dump.js +28 -4
  220. package/dist/foundations/rbac/dump.js.map +1 -1
  221. package/dist/foundations/rbac/serializer/matrix-to-ts.d.ts +14 -0
  222. package/dist/foundations/rbac/serializer/matrix-to-ts.d.ts.map +1 -1
  223. package/dist/foundations/rbac/serializer/matrix-to-ts.js +13 -3
  224. package/dist/foundations/rbac/serializer/matrix-to-ts.js.map +1 -1
  225. package/dist/foundations/referral/services/referral.service.js +4 -4
  226. package/dist/foundations/referral/services/referral.service.js.map +1 -1
  227. package/dist/foundations/relevancy/repositories/relevancy.repository.d.ts.map +1 -1
  228. package/dist/foundations/relevancy/repositories/relevancy.repository.js +13 -1
  229. package/dist/foundations/relevancy/repositories/relevancy.repository.js.map +1 -1
  230. package/dist/foundations/role/entities/role.d.ts +1 -1
  231. package/dist/foundations/role/entities/role.d.ts.map +1 -1
  232. package/dist/foundations/stripe/index.d.ts +3 -0
  233. package/dist/foundations/stripe/index.d.ts.map +1 -1
  234. package/dist/foundations/stripe/index.js +6 -0
  235. package/dist/foundations/stripe/index.js.map +1 -1
  236. package/dist/foundations/stripe-price/entities/stripe-price.entity.d.ts +1 -1
  237. package/dist/foundations/stripe-price/entities/stripe-price.entity.d.ts.map +1 -1
  238. package/dist/foundations/stripe-subscription/services/token-allocation.service.d.ts +1 -1
  239. package/dist/foundations/stripe-subscription/services/token-allocation.service.js +10 -10
  240. package/dist/foundations/stripe-subscription/services/token-allocation.service.js.map +1 -1
  241. package/dist/foundations/stripe-trial/services/trial.service.js +2 -2
  242. package/dist/foundations/stripe-trial/services/trial.service.js.map +1 -1
  243. package/dist/foundations/stripe-webhook/processors/stripe-webhook.processor.js +2 -2
  244. package/dist/foundations/stripe-webhook/processors/stripe-webhook.processor.js.map +1 -1
  245. package/dist/foundations/tokenusage/entities/tokenusage.d.ts +50 -0
  246. package/dist/foundations/tokenusage/entities/tokenusage.d.ts.map +1 -0
  247. package/dist/foundations/tokenusage/entities/tokenusage.js +68 -0
  248. package/dist/foundations/tokenusage/entities/tokenusage.js.map +1 -0
  249. package/dist/foundations/tokenusage/enums/tokenusage.type.d.ts +2 -1
  250. package/dist/foundations/tokenusage/enums/tokenusage.type.d.ts.map +1 -1
  251. package/dist/foundations/tokenusage/enums/tokenusage.type.js +1 -0
  252. package/dist/foundations/tokenusage/enums/tokenusage.type.js.map +1 -1
  253. package/dist/foundations/tokenusage/events/tokenusage.events.d.ts +2 -0
  254. package/dist/foundations/tokenusage/events/tokenusage.events.d.ts.map +1 -1
  255. package/dist/foundations/tokenusage/index.d.ts +3 -3
  256. package/dist/foundations/tokenusage/index.d.ts.map +1 -1
  257. package/dist/foundations/tokenusage/index.js +5 -3
  258. package/dist/foundations/tokenusage/index.js.map +1 -1
  259. package/dist/foundations/tokenusage/repositories/tokenusage.repository.d.ts +90 -5
  260. package/dist/foundations/tokenusage/repositories/tokenusage.repository.d.ts.map +1 -1
  261. package/dist/foundations/tokenusage/repositories/tokenusage.repository.js +165 -14
  262. package/dist/foundations/tokenusage/repositories/tokenusage.repository.js.map +1 -1
  263. package/dist/foundations/tokenusage/services/tokenusage.service.d.ts +73 -10
  264. package/dist/foundations/tokenusage/services/tokenusage.service.d.ts.map +1 -1
  265. package/dist/foundations/tokenusage/services/tokenusage.service.js +88 -8
  266. package/dist/foundations/tokenusage/services/tokenusage.service.js.map +1 -1
  267. package/dist/foundations/tokenusage/tokenusage.module.js +3 -3
  268. package/dist/foundations/tokenusage/tokenusage.module.js.map +1 -1
  269. package/dist/foundations/user/controllers/user.controller.js +4 -4
  270. package/dist/foundations/user/controllers/user.controller.js.map +1 -1
  271. package/dist/foundations/user/dtos/user.put.dto.d.ts +1 -1
  272. package/dist/foundations/user/dtos/user.put.dto.d.ts.map +1 -1
  273. package/dist/foundations/user/dtos/user.put.dto.js +1 -1
  274. package/dist/foundations/user/dtos/user.put.dto.js.map +1 -1
  275. package/dist/foundations/user/entities/user.d.ts +4 -0
  276. package/dist/foundations/user/entities/user.d.ts.map +1 -1
  277. package/dist/foundations/user/entities/user.js +18 -4
  278. package/dist/foundations/user/entities/user.js.map +1 -1
  279. package/dist/foundations/user/index.d.ts +6 -1
  280. package/dist/foundations/user/index.d.ts.map +1 -1
  281. package/dist/foundations/user/index.js +13 -1
  282. package/dist/foundations/user/index.js.map +1 -1
  283. package/dist/foundations/user/repositories/user.repository.d.ts +56 -11
  284. package/dist/foundations/user/repositories/user.repository.d.ts.map +1 -1
  285. package/dist/foundations/user/repositories/user.repository.js +55 -35
  286. package/dist/foundations/user/repositories/user.repository.js.map +1 -1
  287. package/dist/foundations/user/services/user.service.d.ts +48 -9
  288. package/dist/foundations/user/services/user.service.d.ts.map +1 -1
  289. package/dist/foundations/user/services/user.service.js +50 -32
  290. package/dist/foundations/user/services/user.service.js.map +1 -1
  291. package/dist/foundations/user-activity/entities/user-activity.d.ts +36 -0
  292. package/dist/foundations/user-activity/entities/user-activity.d.ts.map +1 -0
  293. package/dist/foundations/user-activity/entities/user-activity.js +86 -0
  294. package/dist/foundations/user-activity/entities/user-activity.js.map +1 -0
  295. package/dist/foundations/user-activity/entities/user-activity.meta.d.ts +3 -0
  296. package/dist/foundations/user-activity/entities/user-activity.meta.d.ts.map +1 -0
  297. package/dist/foundations/user-activity/entities/user-activity.meta.js +10 -0
  298. package/dist/foundations/user-activity/entities/user-activity.meta.js.map +1 -0
  299. package/dist/foundations/user-activity/index.d.ts +10 -0
  300. package/dist/foundations/user-activity/index.d.ts.map +1 -0
  301. package/dist/foundations/user-activity/index.js +22 -0
  302. package/dist/foundations/user-activity/index.js.map +1 -0
  303. package/dist/foundations/user-activity/interceptors/user-activity.interceptor.d.ts +29 -0
  304. package/dist/foundations/user-activity/interceptors/user-activity.interceptor.d.ts.map +1 -0
  305. package/dist/foundations/user-activity/interceptors/user-activity.interceptor.js +98 -0
  306. package/dist/foundations/user-activity/interceptors/user-activity.interceptor.js.map +1 -0
  307. package/dist/foundations/user-activity/interfaces/user-activity.config.interface.d.ts +67 -0
  308. package/dist/foundations/user-activity/interfaces/user-activity.config.interface.d.ts.map +1 -0
  309. package/dist/foundations/user-activity/interfaces/user-activity.config.interface.js +26 -0
  310. package/dist/foundations/user-activity/interfaces/user-activity.config.interface.js.map +1 -0
  311. package/dist/foundations/user-activity/interfaces/user-activity.record.input.d.ts +18 -0
  312. package/dist/foundations/user-activity/interfaces/user-activity.record.input.d.ts.map +1 -0
  313. package/dist/foundations/{auth/entities/pending-auth.entity.js → user-activity/interfaces/user-activity.record.input.js} +1 -1
  314. package/dist/foundations/user-activity/interfaces/user-activity.record.input.js.map +1 -0
  315. package/dist/foundations/user-activity/processors/user-activity.processor.d.ts +25 -0
  316. package/dist/foundations/user-activity/processors/user-activity.processor.d.ts.map +1 -0
  317. package/dist/foundations/user-activity/processors/user-activity.processor.js +74 -0
  318. package/dist/foundations/user-activity/processors/user-activity.processor.js.map +1 -0
  319. package/dist/foundations/user-activity/repositories/user-activity.repository.d.ts +47 -0
  320. package/dist/foundations/user-activity/repositories/user-activity.repository.d.ts.map +1 -0
  321. package/dist/foundations/user-activity/repositories/user-activity.repository.js +124 -0
  322. package/dist/foundations/user-activity/repositories/user-activity.repository.js.map +1 -0
  323. package/dist/foundations/user-activity/services/user-activity.service.d.ts +29 -0
  324. package/dist/foundations/user-activity/services/user-activity.service.d.ts.map +1 -0
  325. package/dist/foundations/user-activity/services/user-activity.service.js +61 -0
  326. package/dist/foundations/user-activity/services/user-activity.service.js.map +1 -0
  327. package/dist/foundations/user-activity/user-activity.module.d.ts +40 -0
  328. package/dist/foundations/user-activity/user-activity.module.d.ts.map +1 -0
  329. package/dist/foundations/user-activity/user-activity.module.js +99 -0
  330. package/dist/foundations/user-activity/user-activity.module.js.map +1 -0
  331. package/package.json +2 -1
  332. package/dist/foundations/auth/entities/auth.code.entity.d.ts +0 -7
  333. package/dist/foundations/auth/entities/auth.code.entity.d.ts.map +0 -1
  334. package/dist/foundations/auth/entities/auth.code.entity.js +0 -3
  335. package/dist/foundations/auth/entities/auth.code.entity.js.map +0 -1
  336. package/dist/foundations/auth/entities/auth.code.map.d.ts +0 -8
  337. package/dist/foundations/auth/entities/auth.code.map.d.ts.map +0 -1
  338. package/dist/foundations/auth/entities/auth.code.map.js +0 -13
  339. package/dist/foundations/auth/entities/auth.code.map.js.map +0 -1
  340. package/dist/foundations/auth/entities/auth.code.model.d.ts +0 -4
  341. package/dist/foundations/auth/entities/auth.code.model.d.ts.map +0 -1
  342. package/dist/foundations/auth/entities/auth.code.model.js +0 -13
  343. package/dist/foundations/auth/entities/auth.code.model.js.map +0 -1
  344. package/dist/foundations/auth/entities/auth.entity.d.ts +0 -18
  345. package/dist/foundations/auth/entities/auth.entity.d.ts.map +0 -1
  346. package/dist/foundations/auth/entities/auth.entity.js.map +0 -1
  347. package/dist/foundations/auth/entities/auth.map.d.ts +0 -8
  348. package/dist/foundations/auth/entities/auth.map.d.ts.map +0 -1
  349. package/dist/foundations/auth/entities/auth.map.js +0 -14
  350. package/dist/foundations/auth/entities/auth.map.js.map +0 -1
  351. package/dist/foundations/auth/entities/auth.model.d.ts +0 -4
  352. package/dist/foundations/auth/entities/auth.model.d.ts.map +0 -1
  353. package/dist/foundations/auth/entities/auth.model.js +0 -15
  354. package/dist/foundations/auth/entities/auth.model.js.map +0 -1
  355. package/dist/foundations/auth/entities/pending-auth.entity.d.ts +0 -16
  356. package/dist/foundations/auth/entities/pending-auth.entity.d.ts.map +0 -1
  357. package/dist/foundations/auth/entities/pending-auth.entity.js.map +0 -1
  358. package/dist/foundations/auth/entities/pending-auth.map.d.ts +0 -6
  359. package/dist/foundations/auth/entities/pending-auth.map.d.ts.map +0 -1
  360. package/dist/foundations/auth/entities/pending-auth.map.js +0 -20
  361. package/dist/foundations/auth/entities/pending-auth.map.js.map +0 -1
  362. package/dist/foundations/auth/entities/pending-auth.model.d.ts +0 -9
  363. package/dist/foundations/auth/entities/pending-auth.model.d.ts.map +0 -1
  364. package/dist/foundations/auth/entities/pending-auth.model.js +0 -19
  365. package/dist/foundations/auth/entities/pending-auth.model.js.map +0 -1
  366. package/dist/foundations/auth/serialisers/auth.serialiser.d.ts +0 -13
  367. package/dist/foundations/auth/serialisers/auth.serialiser.d.ts.map +0 -1
  368. package/dist/foundations/auth/serialisers/auth.serialiser.js +0 -52
  369. package/dist/foundations/auth/serialisers/auth.serialiser.js.map +0 -1
  370. package/dist/foundations/auth/serialisers/pending-auth.serialiser.d.ts +0 -18
  371. package/dist/foundations/auth/serialisers/pending-auth.serialiser.d.ts.map +0 -1
  372. package/dist/foundations/auth/serialisers/pending-auth.serialiser.js +0 -49
  373. package/dist/foundations/auth/serialisers/pending-auth.serialiser.js.map +0 -1
  374. package/dist/foundations/content/entities/content.entity.d.ts +0 -31
  375. package/dist/foundations/content/entities/content.entity.d.ts.map +0 -1
  376. package/dist/foundations/content/entities/content.entity.js +0 -3
  377. package/dist/foundations/content/entities/content.entity.js.map +0 -1
  378. package/dist/foundations/content/entities/content.map.d.ts +0 -8
  379. package/dist/foundations/content/entities/content.map.d.ts.map +0 -1
  380. package/dist/foundations/content/entities/content.map.js +0 -19
  381. package/dist/foundations/content/entities/content.map.js.map +0 -1
  382. package/dist/foundations/content/entities/content.model.d.ts +0 -4
  383. package/dist/foundations/content/entities/content.model.d.ts.map +0 -1
  384. package/dist/foundations/content/entities/content.model.js +0 -16
  385. package/dist/foundations/content/entities/content.model.js.map +0 -1
  386. package/dist/foundations/content/factories/content.model.factory.d.ts +0 -17
  387. package/dist/foundations/content/factories/content.model.factory.d.ts.map +0 -1
  388. package/dist/foundations/content/factories/content.model.factory.js +0 -65
  389. package/dist/foundations/content/factories/content.model.factory.js.map +0 -1
  390. package/dist/foundations/content/serialisers/content.serialiser.d.ts +0 -14
  391. package/dist/foundations/content/serialisers/content.serialiser.d.ts.map +0 -1
  392. package/dist/foundations/content/serialisers/content.serialiser.js +0 -78
  393. package/dist/foundations/content/serialisers/content.serialiser.js.map +0 -1
  394. package/dist/foundations/feature/entities/feature.entity.d.ts +0 -8
  395. package/dist/foundations/feature/entities/feature.entity.d.ts.map +0 -1
  396. package/dist/foundations/feature/entities/feature.entity.js +0 -3
  397. package/dist/foundations/feature/entities/feature.entity.js.map +0 -1
  398. package/dist/foundations/feature/entities/feature.map.d.ts +0 -8
  399. package/dist/foundations/feature/entities/feature.map.d.ts.map +0 -1
  400. package/dist/foundations/feature/entities/feature.map.js +0 -14
  401. package/dist/foundations/feature/entities/feature.map.js.map +0 -1
  402. package/dist/foundations/feature/serialisers/feature.serialiser.d.ts +0 -12
  403. package/dist/foundations/feature/serialisers/feature.serialiser.d.ts.map +0 -1
  404. package/dist/foundations/feature/serialisers/feature.serialiser.js +0 -45
  405. package/dist/foundations/feature/serialisers/feature.serialiser.js.map +0 -1
  406. package/dist/foundations/notification/entities/notification.entity.d.ts +0 -10
  407. package/dist/foundations/notification/entities/notification.entity.d.ts.map +0 -1
  408. package/dist/foundations/notification/entities/notification.entity.js +0 -3
  409. package/dist/foundations/notification/entities/notification.entity.js.map +0 -1
  410. package/dist/foundations/notification/entities/notification.map.d.ts +0 -8
  411. package/dist/foundations/notification/entities/notification.map.d.ts.map +0 -1
  412. package/dist/foundations/notification/entities/notification.map.js +0 -16
  413. package/dist/foundations/notification/entities/notification.map.js.map +0 -1
  414. package/dist/foundations/notification/entities/notification.model.d.ts +0 -4
  415. package/dist/foundations/notification/entities/notification.model.d.ts.map +0 -1
  416. package/dist/foundations/notification/entities/notification.model.js +0 -15
  417. package/dist/foundations/notification/entities/notification.model.js.map +0 -1
  418. package/dist/foundations/notification/interfaces/notification.service.interface.d.ts +0 -4
  419. package/dist/foundations/notification/interfaces/notification.service.interface.d.ts.map +0 -1
  420. package/dist/foundations/notification/interfaces/notification.service.interface.js +0 -3
  421. package/dist/foundations/notification/interfaces/notification.service.interface.js.map +0 -1
  422. package/dist/foundations/notification/serialisers/notifications.serialiser.d.ts +0 -12
  423. package/dist/foundations/notification/serialisers/notifications.serialiser.d.ts.map +0 -1
  424. package/dist/foundations/notification/serialisers/notifications.serialiser.js +0 -47
  425. package/dist/foundations/notification/serialisers/notifications.serialiser.js.map +0 -1
  426. package/dist/foundations/tokenusage/entities/tokenusage.entity.d.ts +0 -11
  427. package/dist/foundations/tokenusage/entities/tokenusage.entity.d.ts.map +0 -1
  428. package/dist/foundations/tokenusage/entities/tokenusage.entity.js +0 -3
  429. package/dist/foundations/tokenusage/entities/tokenusage.entity.js.map +0 -1
  430. package/dist/foundations/tokenusage/entities/tokenusage.map.d.ts +0 -8
  431. package/dist/foundations/tokenusage/entities/tokenusage.map.d.ts.map +0 -1
  432. package/dist/foundations/tokenusage/entities/tokenusage.map.js +0 -17
  433. package/dist/foundations/tokenusage/entities/tokenusage.map.js.map +0 -1
  434. package/dist/foundations/tokenusage/entities/tokenusage.model.d.ts +0 -4
  435. package/dist/foundations/tokenusage/entities/tokenusage.model.d.ts.map +0 -1
  436. package/dist/foundations/tokenusage/entities/tokenusage.model.js +0 -15
  437. package/dist/foundations/tokenusage/entities/tokenusage.model.js.map +0 -1
@@ -224,6 +224,14 @@ export interface ConfigAiInterface {
224
224
  region?: string;
225
225
  /** Base64-encoded GCP service account JSON for Google Vertex AI */
226
226
  googleCredentialsBase64?: string;
227
+ /**
228
+ * € per 1M input tokens billed by the embedding provider, driven by
229
+ * EMBEDDER_INPUT_COST_PER_1M_TOKENS. Embedding providers return vectors
230
+ * only (no usage figures), so EmbedderService counts tokens locally and
231
+ * charges `tokens * rate / 1_000_000` as the cost override. 0 or unset →
232
+ * embeddings are free and no usage record is written.
233
+ */
234
+ inputCostPer1MTokens?: number;
227
235
  /**
228
236
  * Distributed token-bucket rate limit for the embedder. When present,
229
237
  * ModelService.getEmbedder() wraps the provider embedder in a
@@ -1 +1 @@
1
- {"version":3,"file":"config.ai.interface.d.ts","sourceRoot":"","sources":["../../../src/config/interfaces/config.ai.interface.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.ai.interface.d.ts","sourceRoot":"","sources":["../../../src/config/interfaces/config.ai.interface.ts"],"names":[],"mappings":"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"}
@@ -2,5 +2,12 @@ export type RegistrationMode = "open" | "closed" | "waitlist";
2
2
  export interface ConfigAuthInterface {
3
3
  allowRegistration: boolean;
4
4
  registrationMode: RegistrationMode;
5
+ /**
6
+ * Locale used for transactional auth emails (activation, password reset,
7
+ * admin registration notification) and for the `<locale>/…` prefix of the
8
+ * links inside them. Defaults to "en" when not set, which is the value the
9
+ * flows were previously hardcoded to.
10
+ */
11
+ emailLocale?: string;
5
12
  }
6
13
  //# sourceMappingURL=config.auth.interface.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.auth.interface.d.ts","sourceRoot":"","sources":["../../../src/config/interfaces/config.auth.interface.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,QAAQ,GAAG,UAAU,CAAC;AAE9D,MAAM,WAAW,mBAAmB;IAClC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,gBAAgB,EAAE,gBAAgB,CAAC;CACpC"}
1
+ {"version":3,"file":"config.auth.interface.d.ts","sourceRoot":"","sources":["../../../src/config/interfaces/config.auth.interface.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,QAAQ,GAAG,UAAU,CAAC;AAE9D,MAAM,WAAW,mBAAmB;IAClC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,gBAAgB,EAAE,gBAAgB,CAAC;IAEnC;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Credits are the billing unit exposed to customers: a fractional, tier-accurate
3
+ * conversion of the real provider cost of an AI call.
4
+ *
5
+ * `credits = max(minCreditsPerRecord, round2(cost / creditCost))`, where `cost`
6
+ * is the euro figure produced by `TokenUsageService.computeCost` (or an explicit
7
+ * `costOverride`). ALL monetary values here — and every `*_COST_PER_1M_TOKENS`
8
+ * env value feeding `cost` — are expressed in EUROS.
9
+ *
10
+ * `creditCost: 0` (or an absent `credits` config block) DISABLES credits: usage
11
+ * records store `credits: 0` and no balance is deducted, so package consumers
12
+ * that never set `CREDIT_COST` keep their pre-credits behaviour.
13
+ */
14
+ export interface ConfigCreditsInterface {
15
+ /** € per credit; driven by CREDIT_COST. 0 → credits tracking disabled. */
16
+ creditCost: number;
17
+ /**
18
+ * Floor applied to every recorded call so sub-cent calls are still billed;
19
+ * driven by CREDIT_MINIMUM (default 0.1). Skipped when the caller passes
20
+ * `applyMinimum: false` (embeddings).
21
+ */
22
+ minCreditsPerRecord: number;
23
+ }
24
+ //# sourceMappingURL=config.credits.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.credits.interface.d.ts","sourceRoot":"","sources":["../../../src/config/interfaces/config.credits.interface.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,sBAAsB;IACrC,0EAA0E;IAC1E,UAAU,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,mBAAmB,EAAE,MAAM,CAAC;CAC7B"}
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=auth.entity.js.map
3
+ //# sourceMappingURL=config.credits.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.credits.interface.js","sourceRoot":"","sources":["../../../src/config/interfaces/config.credits.interface.ts"],"names":[],"mappings":""}
@@ -7,5 +7,11 @@ export interface ConfigEmailInterface {
7
7
  emailSecure: boolean;
8
8
  emailUsername: string;
9
9
  emailPassword: string;
10
+ /**
11
+ * Locale used as the template fallback when the requested locale has no
12
+ * template file. Default "en" (historical behaviour). Set to the product's
13
+ * primary language (e.g. "it") when app templates exist only in that locale.
14
+ */
15
+ defaultLocale?: string;
10
16
  }
11
17
  //# sourceMappingURL=config.email.interface.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.email.interface.d.ts","sourceRoot":"","sources":["../../../src/config/interfaces/config.email.interface.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,oBAAoB;IACnC,aAAa,EAAE,UAAU,GAAG,MAAM,GAAG,OAAO,CAAC;IAC7C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;CACvB"}
1
+ {"version":3,"file":"config.email.interface.d.ts","sourceRoot":"","sources":["../../../src/config/interfaces/config.email.interface.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,oBAAoB;IACnC,aAAa,EAAE,UAAU,GAAG,MAAM,GAAG,OAAO,CAAC;IAC7C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB"}
@@ -11,6 +11,7 @@ export * from "./config.chunker.interface";
11
11
  export * from "./config.chunk.queues.interface";
12
12
  export * from "./config.content.types.interface";
13
13
  export * from "./config.cors.interface";
14
+ export * from "./config.credits.interface";
14
15
  export * from "./config.discord.interface";
15
16
  export * from "./config.embedding.context.interface";
16
17
  export * from "./config.google.interface";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/config/interfaces/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iCAAiC,CAAC;AAChD,cAAc,kCAAkC,CAAC;AACjD,cAAc,yBAAyB,CAAC;AACxC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sCAAsC,CAAC;AACrD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,oBAAoB,CAAC;AACnC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/config/interfaces/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iCAAiC,CAAC;AAChD,cAAc,kCAAkC,CAAC;AACjD,cAAc,yBAAyB,CAAC;AACxC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sCAAsC,CAAC;AACrD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,oBAAoB,CAAC;AACnC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0BAA0B,CAAC"}
@@ -27,6 +27,7 @@ __exportStar(require("./config.chunker.interface"), exports);
27
27
  __exportStar(require("./config.chunk.queues.interface"), exports);
28
28
  __exportStar(require("./config.content.types.interface"), exports);
29
29
  __exportStar(require("./config.cors.interface"), exports);
30
+ __exportStar(require("./config.credits.interface"), exports);
30
31
  __exportStar(require("./config.discord.interface"), exports);
31
32
  __exportStar(require("./config.embedding.context.interface"), exports);
32
33
  __exportStar(require("./config.google.interface"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/config/interfaces/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;AAEH,0DAAwC;AACxC,wDAAsC;AACtC,yDAAuC;AACvC,yDAAuC;AACvC,0DAAwC;AACxC,2DAAyC;AACzC,6DAA2C;AAC3C,kEAAgD;AAChD,mEAAiD;AACjD,0DAAwC;AACxC,6DAA2C;AAC3C,uEAAqD;AACrD,4DAA0C;AAC1C,2DAAyC;AACzC,gEAA8C;AAC9C,iEAA+C;AAC/C,qDAAmC;AACnC,+DAA6C;AAC7C,yDAAuC;AACvC,6DAA2C;AAC3C,yDAAuC;AACvC,2DAAyC;AACzC,2DAAyC;AACzC,8DAA4C;AAC5C,6DAA2C;AAC3C,+DAA6C;AAC7C,2DAAyC;AACzC,wDAAsC;AACtC,4DAA0C;AAC1C,2DAAyC;AACzC,gEAA8C;AAC9C,2DAAyC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/config/interfaces/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;AAEH,0DAAwC;AACxC,wDAAsC;AACtC,yDAAuC;AACvC,yDAAuC;AACvC,0DAAwC;AACxC,2DAAyC;AACzC,6DAA2C;AAC3C,kEAAgD;AAChD,mEAAiD;AACjD,0DAAwC;AACxC,6DAA2C;AAC3C,6DAA2C;AAC3C,uEAAqD;AACrD,4DAA0C;AAC1C,2DAAyC;AACzC,gEAA8C;AAC9C,iEAA+C;AAC/C,qDAAmC;AACnC,+DAA6C;AAC7C,yDAAuC;AACvC,6DAA2C;AAC3C,yDAAuC;AACvC,2DAAyC;AACzC,2DAAyC;AACzC,8DAA4C;AAC5C,6DAA2C;AAC3C,+DAA6C;AAC7C,2DAAyC;AACzC,wDAAsC;AACtC,4DAA0C;AAC1C,2DAAyC;AACzC,gEAA8C;AAC9C,2DAAyC"}
@@ -17,6 +17,7 @@ export declare class EmailService {
17
17
  private readonly logger;
18
18
  private templateBasePath;
19
19
  private libraryTemplateBasePath;
20
+ private readonly defaultLocale;
20
21
  constructor(config: ConfigService<BaseConfigInterface>, logger: AppLoggingService);
21
22
  private loadTemplate;
22
23
  sendEmail(templateId: string, emailParams: EmailParams, locale: string): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"email.service.d.ts","sourceRoot":"","sources":["../../../../src/core/email/services/email.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAK/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,kDAAkD,CAAC;AAGvF,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAG3E,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,eAAe,EAAE,CAAC;IAChC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAOD,qBACa,YAAY;IAKrB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IALzB,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,uBAAuB,CAAS;gBAGrB,MAAM,EAAE,aAAa,CAAC,mBAAmB,CAAC,EAC1C,MAAM,EAAE,iBAAiB;IA+B5C,OAAO,CAAC,YAAY;IA0Cd,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAuC9E,kBAAkB;YAoBlB,qBAAqB;IAuCnC,OAAO,CAAC,0BAA0B;YA0BpB,iBAAiB;CAwChC"}
1
+ {"version":3,"file":"email.service.d.ts","sourceRoot":"","sources":["../../../../src/core/email/services/email.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAK/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,kDAAkD,CAAC;AAGvF,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAG3E,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,eAAe,EAAE,CAAC;IAChC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAOD,qBACa,YAAY;IAMrB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IANzB,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,uBAAuB,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;gBAGpB,MAAM,EAAE,aAAa,CAAC,mBAAmB,CAAC,EAC1C,MAAM,EAAE,iBAAiB;IAgC5C,OAAO,CAAC,YAAY;IA4Cd,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAuC9E,kBAAkB;YAoBlB,qBAAqB;IAuCnC,OAAO,CAAC,0BAA0B;YA0BpB,iBAAiB;CAwChC"}
@@ -56,6 +56,7 @@ let EmailService = class EmailService {
56
56
  constructor(config, logger) {
57
57
  this.config = config;
58
58
  this.logger = logger;
59
+ this.defaultLocale = this.config.get("email")?.defaultLocale ?? "en";
59
60
  // App templates (overrides)
60
61
  this.templateBasePath = (0, path_1.join)(process.cwd(), "templates", "email");
61
62
  // Library templates (defaults)
@@ -84,16 +85,18 @@ let EmailService = class EmailService {
84
85
  loadTemplate(templateId, locale) {
85
86
  // Try app templates first (override)
86
87
  const appTemplatePath = (0, path_1.join)(this.templateBasePath, locale, `${templateId}.hbs`);
87
- const appFallbackPath = (0, path_1.join)(this.templateBasePath, "en", `${templateId}.hbs`);
88
- // Try library templates as fallback (default)
88
+ const appFallbackPath = (0, path_1.join)(this.templateBasePath, this.defaultLocale, `${templateId}.hbs`);
89
+ // Try library templates as fallback (default). Library templates ship in
90
+ // English only, so the library fallback is always "en" regardless of the
91
+ // app's configured defaultLocale.
89
92
  const libraryTemplatePath = (0, path_1.join)(this.libraryTemplateBasePath, locale, `${templateId}.hbs`);
90
93
  const libraryFallbackPath = (0, path_1.join)(this.libraryTemplateBasePath, "en", `${templateId}.hbs`);
91
94
  let templatePath = null;
92
- // Check in order: app locale → app en → library locale → library en
95
+ // Check in order: app locale → app default-locale → library locale → library en
93
96
  if (fs.existsSync(appTemplatePath)) {
94
97
  templatePath = appTemplatePath;
95
98
  }
96
- else if (locale !== "en" && fs.existsSync(appFallbackPath)) {
99
+ else if (locale !== this.defaultLocale && fs.existsSync(appFallbackPath)) {
97
100
  templatePath = appFallbackPath;
98
101
  }
99
102
  else if (fs.existsSync(libraryTemplatePath)) {
@@ -103,13 +106,13 @@ let EmailService = class EmailService {
103
106
  templatePath = libraryFallbackPath;
104
107
  }
105
108
  if (!templatePath) {
106
- throw new Error(`Template file not found for template "${templateId}" in locale "${locale}" or default "en". ` +
109
+ throw new Error(`Template file not found for template "${templateId}" in locale "${locale}", app default "${this.defaultLocale}", or library default "en". ` +
107
110
  `Checked app (${this.templateBasePath}) and library (${this.libraryTemplateBasePath}).`);
108
111
  }
109
112
  // Load unsubscribe partial if exists
110
113
  let unsubscribePath = (0, path_1.join)(this.templateBasePath, locale, "unsubscribe.hbs");
111
- if (!fs.existsSync(unsubscribePath) && locale !== "en") {
112
- unsubscribePath = (0, path_1.join)(this.templateBasePath, "en", "unsubscribe.hbs");
114
+ if (!fs.existsSync(unsubscribePath) && locale !== this.defaultLocale) {
115
+ unsubscribePath = (0, path_1.join)(this.templateBasePath, this.defaultLocale, "unsubscribe.hbs");
113
116
  }
114
117
  if (fs.existsSync(unsubscribePath)) {
115
118
  const unsubscribePartial = fs.readFileSync(unsubscribePath, "utf8");
@@ -1 +1 @@
1
- {"version":3,"file":"email.service.js","sourceRoot":"","sources":["../../../../src/core/email/services/email.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"email.service.js","sourceRoot":"","sources":["../../../../src/core/email/services/email.service.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,44 @@
1
+ import { ConfigService } from "@nestjs/config";
2
+ import { TokenUsageRecorderInterface } from "../../../common/tokens";
3
+ import { BaseConfigInterface } from "../../../config/interfaces";
4
+ import { TokenUsageService } from "../../../foundations/tokenusage/services/tokenusage.service";
1
5
  import { ModelService } from "../../llm/services/model.service";
6
+ /**
7
+ * Opt-in cost attribution for an embedding call. Without both
8
+ * `relationshipId` and `relationshipType` no usage record is written — the
9
+ * package stays domain-agnostic and the caller decides what the usage is
10
+ * billed against.
11
+ */
12
+ export interface EmbedderAttribution {
13
+ relationshipId: string;
14
+ relationshipType: string;
15
+ tokenUsageType?: string;
16
+ }
2
17
  export declare class EmbedderService {
3
18
  private readonly modelService;
4
- constructor(modelService: ModelService);
19
+ private readonly config;
20
+ private readonly tokenUsageService?;
21
+ private readonly tokenUsageRecorder?;
22
+ private readonly logger;
23
+ constructor(modelService: ModelService, config: ConfigService<BaseConfigInterface>, tokenUsageService?: TokenUsageService, tokenUsageRecorder?: TokenUsageRecorderInterface);
5
24
  vectoriseText(params: {
6
25
  text: string;
26
+ attribution?: EmbedderAttribution;
7
27
  }): Promise<any>;
8
- vectoriseTextBatch(texts: string[]): Promise<any[]>;
28
+ vectoriseTextBatch(texts: string[], attribution?: EmbedderAttribution): Promise<any[]>;
29
+ /** Lazily-built tokenizer for the configured embedder model; null after a failed init. */
30
+ private tokenizer;
31
+ /**
32
+ * Embedding providers return vectors only — no usage figures — so tokens are
33
+ * counted LOCALLY with the embedder model's own tokenizer (js-tiktoken).
34
+ * For OpenAI-family models (text-embedding-3-large on Azure — a360ai's
35
+ * embedder) this count is exactly what the provider bills. Models unknown to
36
+ * tiktoken fall back to the rate limiter's chars-per-token heuristic.
37
+ * One record per service invocation (a batch is one record), attribution
38
+ * opt-in exactly like LLMService.persistUsage, floor-exempt (applyMinimum
39
+ * false): sub-cent embedding calls must never floor to 0.1 credits.
40
+ */
41
+ private persistUsage;
42
+ private countTokens;
9
43
  }
10
44
  //# sourceMappingURL=embedder.service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"embedder.service.d.ts","sourceRoot":"","sources":["../../../../src/core/llm/services/embedder.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAEhE,qBACa,eAAe;IACd,OAAO,CAAC,QAAQ,CAAC,YAAY;gBAAZ,YAAY,EAAE,YAAY;IAEjD,aAAa,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,GAAG,CAAC;IAIrD,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;CAG1D"}
1
+ {"version":3,"file":"embedder.service.d.ts","sourceRoot":"","sources":["../../../../src/core/llm/services/embedder.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/C,OAAO,EAAwB,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAC3F,OAAO,EAAE,mBAAmB,EAAqB,MAAM,4BAA4B,CAAC;AAEpF,OAAO,EAAE,iBAAiB,EAAE,MAAM,6DAA6D,CAAC;AAChG,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAEhE;;;;;GAKG;AACH,MAAM,WAAW,mBAAmB;IAClC,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,qBACa,eAAe;IAIxB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,MAAM;IAIX,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC;IACL,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC;IAThF,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoC;gBAGxC,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,aAAa,CAAC,mBAAmB,CAAC,EAI9B,iBAAiB,CAAC,EAAE,iBAAiB,EACP,kBAAkB,CAAC,EAAE,2BAA2B;IAGvG,aAAa,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,mBAAmB,CAAA;KAAE,GAAG,OAAO,CAAC,GAAG,CAAC;IAMxF,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,WAAW,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAM5F,0FAA0F;IAC1F,OAAO,CAAC,SAAS,CAA8B;IAE/C;;;;;;;;;OASG;YACW,YAAY;IAsB1B,OAAO,CAAC,WAAW;CAsBpB"}
@@ -8,24 +8,104 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
8
8
  var __metadata = (this && this.__metadata) || function (k, v) {
9
9
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
10
  };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ var EmbedderService_1;
11
15
  Object.defineProperty(exports, "__esModule", { value: true });
12
16
  exports.EmbedderService = void 0;
13
17
  const common_1 = require("@nestjs/common");
18
+ const config_1 = require("@nestjs/config");
19
+ const js_tiktoken_1 = require("js-tiktoken");
20
+ const tokens_1 = require("../../../common/tokens");
21
+ const tokenusage_type_1 = require("../../../foundations/tokenusage/enums/tokenusage.type");
22
+ const tokenusage_service_1 = require("../../../foundations/tokenusage/services/tokenusage.service");
14
23
  const model_service_1 = require("../../llm/services/model.service");
15
- let EmbedderService = class EmbedderService {
16
- constructor(modelService) {
24
+ let EmbedderService = EmbedderService_1 = class EmbedderService {
25
+ constructor(modelService, config, tokenUsageService, tokenUsageRecorder) {
17
26
  this.modelService = modelService;
27
+ this.config = config;
28
+ this.tokenUsageService = tokenUsageService;
29
+ this.tokenUsageRecorder = tokenUsageRecorder;
30
+ this.logger = new common_1.Logger(EmbedderService_1.name);
18
31
  }
19
32
  async vectoriseText(params) {
20
- return this.modelService.getEmbedder().embedQuery(params.text);
33
+ const result = await this.modelService.getEmbedder().embedQuery(params.text);
34
+ await this.persistUsage([params.text], params.attribution);
35
+ return result;
36
+ }
37
+ async vectoriseTextBatch(texts, attribution) {
38
+ const result = await this.modelService.getEmbedder().embedDocuments(texts);
39
+ await this.persistUsage(texts, attribution);
40
+ return result;
41
+ }
42
+ /**
43
+ * Embedding providers return vectors only — no usage figures — so tokens are
44
+ * counted LOCALLY with the embedder model's own tokenizer (js-tiktoken).
45
+ * For OpenAI-family models (text-embedding-3-large on Azure — a360ai's
46
+ * embedder) this count is exactly what the provider bills. Models unknown to
47
+ * tiktoken fall back to the rate limiter's chars-per-token heuristic.
48
+ * One record per service invocation (a batch is one record), attribution
49
+ * opt-in exactly like LLMService.persistUsage, floor-exempt (applyMinimum
50
+ * false): sub-cent embedding calls must never floor to 0.1 credits.
51
+ */
52
+ async persistUsage(texts, attribution) {
53
+ if (!attribution?.relationshipId || !attribution?.relationshipType)
54
+ return;
55
+ const embedderConfig = this.config.get("ai")?.embedder;
56
+ const rate = embedderConfig?.inputCostPer1MTokens ?? 0;
57
+ if (rate <= 0)
58
+ return;
59
+ const recorder = this.tokenUsageRecorder ?? this.tokenUsageService;
60
+ if (!recorder)
61
+ return;
62
+ try {
63
+ const tokens = this.countTokens(texts, embedderConfig);
64
+ await recorder.recordTokenUsage({
65
+ tokens: { input: tokens, output: 0 },
66
+ type: attribution.tokenUsageType ?? tokenusage_type_1.TokenUsageType.Embedding,
67
+ relationshipId: attribution.relationshipId,
68
+ relationshipType: attribution.relationshipType,
69
+ applyMinimum: false,
70
+ costOverride: (tokens * rate) / 1_000_000,
71
+ });
72
+ }
73
+ catch (err) {
74
+ this.logger.warn(`Embedding usage persistence failed — continuing: ${String(err)}`);
75
+ }
21
76
  }
22
- async vectoriseTextBatch(texts) {
23
- return this.modelService.getEmbedder().embedDocuments(texts);
77
+ countTokens(texts, embedderConfig) {
78
+ if (this.tokenizer === undefined) {
79
+ // Try the raw model name, then the provider-prefixed form normalised
80
+ // ("azure/openai/text-embedding-3-large@francecentral" → "text-embedding-3-large").
81
+ const raw = embedderConfig?.model ?? "";
82
+ const normalised = raw.split("/").pop()?.split("@")[0] ?? raw;
83
+ this.tokenizer = null;
84
+ for (const candidate of [raw, normalised]) {
85
+ try {
86
+ this.tokenizer = (0, js_tiktoken_1.encodingForModel)(candidate);
87
+ break;
88
+ }
89
+ catch {
90
+ /* not a tiktoken model — try next candidate, else heuristic fallback */
91
+ }
92
+ }
93
+ }
94
+ if (this.tokenizer) {
95
+ return texts.reduce((sum, t) => sum + this.tokenizer.encode(t).length, 0);
96
+ }
97
+ const charsPerToken = embedderConfig?.rateLimit?.charsPerToken || 4;
98
+ return texts.reduce((sum, t) => sum + Math.ceil(t.length / charsPerToken), 0);
24
99
  }
25
100
  };
26
101
  exports.EmbedderService = EmbedderService;
27
- exports.EmbedderService = EmbedderService = __decorate([
102
+ exports.EmbedderService = EmbedderService = EmbedderService_1 = __decorate([
28
103
  (0, common_1.Injectable)(),
29
- __metadata("design:paramtypes", [model_service_1.ModelService])
104
+ __param(2, (0, common_1.Optional)()),
105
+ __param(3, (0, common_1.Optional)()),
106
+ __param(3, (0, common_1.Inject)(tokens_1.TOKEN_USAGE_RECORDER)),
107
+ __metadata("design:paramtypes", [model_service_1.ModelService,
108
+ config_1.ConfigService,
109
+ tokenusage_service_1.TokenUsageService, Object])
30
110
  ], EmbedderService);
31
111
  //# sourceMappingURL=embedder.service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"embedder.service.js","sourceRoot":"","sources":["../../../../src/core/llm/services/embedder.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,oEAAgE;AAGzD,IAAM,eAAe,GAArB,MAAM,eAAe;IAC1B,YAA6B,YAA0B;QAA1B,iBAAY,GAAZ,YAAY,CAAc;IAAG,CAAC;IAE3D,KAAK,CAAC,aAAa,CAAC,MAAwB;QAC1C,OAAO,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACjE,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,KAAe;QACtC,OAAO,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAC/D,CAAC;CACF,CAAA;AAVY,0CAAe;0BAAf,eAAe;IAD3B,IAAA,mBAAU,GAAE;qCAEgC,4BAAY;GAD5C,eAAe,CAU3B"}
1
+ {"version":3,"file":"embedder.service.js","sourceRoot":"","sources":["../../../../src/core/llm/services/embedder.service.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ import { DynamicStructuredTool } from "@langchain/core/tools";
3
3
  import { ConfigService } from "@nestjs/config";
4
4
  import { ZodType } from "zod";
5
5
  import { AgentMessageType } from "../../../common/enums/agentmessage.type";
6
+ import { TokenUsageRecorderInterface } from "../../../common/tokens";
6
7
  import { BaseConfigInterface } from "../../../config/interfaces";
7
8
  import { TokenUsageService } from "../../../foundations/tokenusage/services/tokenusage.service";
8
9
  import { ModelWeight } from "../enums/model.weight";
@@ -64,6 +65,7 @@ export declare class LLMService {
64
65
  private readonly dumper;
65
66
  private readonly tokenUsageService;
66
67
  private readonly cache?;
68
+ private readonly tokenUsageRecorder?;
67
69
  private readonly logger;
68
70
  /**
69
71
  * LangChain's ChatModel.invoke crashes with `TypeError: Cannot read
@@ -73,7 +75,7 @@ export declare class LLMService {
73
75
  * retryable error; every other error passes through untouched.
74
76
  */
75
77
  private static normaliseEmptyResponseError;
76
- constructor(modelService: ModelService, config: ConfigService<BaseConfigInterface>, dumper: LLMCallDumper, tokenUsageService: TokenUsageService, cache?: LLMCacheService);
78
+ constructor(modelService: ModelService, config: ConfigService<BaseConfigInterface>, dumper: LLMCallDumper, tokenUsageService: TokenUsageService, cache?: LLMCacheService, tokenUsageRecorder?: TokenUsageRecorderInterface);
77
79
  /**
78
80
  * The per-ATTEMPT budget for one provider request. `params.timeout` wins;
79
81
  * otherwise the configured default (`AI_REQUEST_TIMEOUT_MS`).
@@ -111,6 +113,12 @@ export declare class LLMService {
111
113
  * Records token usage for cost/observability attribution. Never throws —
112
114
  * a persistence failure logs a warning and the LLM call continues, so
113
115
  * observability problems can't break the primary request path.
116
+ *
117
+ * Writes through the application-provided `TOKEN_USAGE_RECORDER` when one is
118
+ * bound, falling back to the module-local `TokenUsageService` otherwise. This
119
+ * is the ONLY token-usage write inside the package; any future package caller
120
+ * MUST use the same token rather than injecting `TokenUsageService` directly
121
+ * (see the token's docblock for why).
114
122
  */
115
123
  private persistUsage;
116
124
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"llm.service.d.ts","sourceRoot":"","sources":["../../../../src/core/llm/services/llm.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"llm.service.d.ts","sourceRoot":"","sources":["../../../../src/core/llm/services/llm.service.ts"],"names":[],"mappings":"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"}
@@ -57,6 +57,7 @@ const config_1 = require("@nestjs/config");
57
57
  const ai = __importStar(require("ai"));
58
58
  const vercel_1 = require("langsmith/experimental/vercel");
59
59
  const agentmessage_type_1 = require("../../../common/enums/agentmessage.type");
60
+ const tokens_1 = require("../../../common/tokens");
60
61
  const tokenusage_type_1 = require("../../../foundations/tokenusage/enums/tokenusage.type");
61
62
  const tokenusage_service_1 = require("../../../foundations/tokenusage/services/tokenusage.service");
62
63
  const model_weight_1 = require("../enums/model.weight");
@@ -227,12 +228,13 @@ let LLMService = LLMService_1 = class LLMService {
227
228
  }
228
229
  return error;
229
230
  }
230
- constructor(modelService, config, dumper, tokenUsageService, cache) {
231
+ constructor(modelService, config, dumper, tokenUsageService, cache, tokenUsageRecorder) {
231
232
  this.modelService = modelService;
232
233
  this.config = config;
233
234
  this.dumper = dumper;
234
235
  this.tokenUsageService = tokenUsageService;
235
236
  this.cache = cache;
237
+ this.tokenUsageRecorder = tokenUsageRecorder;
236
238
  this.logger = new common_1.Logger(LLMService_1.name);
237
239
  }
238
240
  /**
@@ -306,6 +308,12 @@ let LLMService = LLMService_1 = class LLMService {
306
308
  * Records token usage for cost/observability attribution. Never throws —
307
309
  * a persistence failure logs a warning and the LLM call continues, so
308
310
  * observability problems can't break the primary request path.
311
+ *
312
+ * Writes through the application-provided `TOKEN_USAGE_RECORDER` when one is
313
+ * bound, falling back to the module-local `TokenUsageService` otherwise. This
314
+ * is the ONLY token-usage write inside the package; any future package caller
315
+ * MUST use the same token rather than injecting `TokenUsageService` directly
316
+ * (see the token's docblock for why).
309
317
  */
310
318
  async persistUsage(params, tokens) {
311
319
  // Attribution is opt-in: the caller decides which entity this usage is
@@ -314,7 +322,7 @@ let LLMService = LLMService_1 = class LLMService {
314
322
  if (!params.relationshipId || !params.relationshipType)
315
323
  return;
316
324
  try {
317
- await this.tokenUsageService.recordTokenUsage({
325
+ await (this.tokenUsageRecorder ?? this.tokenUsageService).recordTokenUsage({
318
326
  tokens,
319
327
  type: params.tokenUsageType ?? tokenusage_type_1.TokenUsageType.TextGeneration,
320
328
  relationshipId: params.relationshipId,
@@ -1724,10 +1732,12 @@ exports.LLMService = LLMService;
1724
1732
  exports.LLMService = LLMService = LLMService_1 = __decorate([
1725
1733
  (0, common_1.Injectable)(),
1726
1734
  __param(4, (0, common_1.Optional)()),
1735
+ __param(5, (0, common_1.Optional)()),
1736
+ __param(5, (0, common_1.Inject)(tokens_1.TOKEN_USAGE_RECORDER)),
1727
1737
  __metadata("design:paramtypes", [model_service_1.ModelService,
1728
1738
  config_1.ConfigService,
1729
1739
  llm_call_dumper_service_1.LLMCallDumper,
1730
1740
  tokenusage_service_1.TokenUsageService,
1731
- llm_cache_service_1.LLMCacheService])
1741
+ llm_cache_service_1.LLMCacheService, Object])
1732
1742
  ], LLMService);
1733
1743
  //# sourceMappingURL=llm.service.js.map