@carlonicora/nestjs-neo4jsonapi 4.4.0 → 4.6.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 (215) hide show
  1. package/dist/agents/responder/factories/responder.context.factory.d.ts +2 -1
  2. package/dist/agents/responder/factories/responder.context.factory.d.ts.map +1 -1
  3. package/dist/agents/responder/factories/responder.context.factory.js.map +1 -1
  4. package/dist/agents/responder/services/responder.service.d.ts +16 -1
  5. package/dist/agents/responder/services/responder.service.d.ts.map +1 -1
  6. package/dist/agents/responder/services/responder.service.js +14 -2
  7. package/dist/agents/responder/services/responder.service.js.map +1 -1
  8. package/dist/bootstrap/app.module.factory.d.ts.map +1 -1
  9. package/dist/bootstrap/app.module.factory.js +2 -0
  10. package/dist/bootstrap/app.module.factory.js.map +1 -1
  11. package/dist/bootstrap/bootstrap.options.d.ts +35 -0
  12. package/dist/bootstrap/bootstrap.options.d.ts.map +1 -1
  13. package/dist/common/index.d.ts +1 -0
  14. package/dist/common/index.d.ts.map +1 -1
  15. package/dist/common/index.js +4 -0
  16. package/dist/common/index.js.map +1 -1
  17. package/dist/common/repositories/handbook.ai-source-query.provider.d.ts +34 -0
  18. package/dist/common/repositories/handbook.ai-source-query.provider.d.ts.map +1 -0
  19. package/dist/common/repositories/handbook.ai-source-query.provider.js +58 -0
  20. package/dist/common/repositories/handbook.ai-source-query.provider.js.map +1 -0
  21. package/dist/common/repositories/index.d.ts +1 -0
  22. package/dist/common/repositories/index.d.ts.map +1 -1
  23. package/dist/common/repositories/index.js +1 -0
  24. package/dist/common/repositories/index.js.map +1 -1
  25. package/dist/common/types/data.limits.d.ts +4 -0
  26. package/dist/common/types/data.limits.d.ts.map +1 -1
  27. package/dist/common/utils/chunk-content.util.d.ts +28 -0
  28. package/dist/common/utils/chunk-content.util.d.ts.map +1 -0
  29. package/dist/common/utils/chunk-content.util.js +32 -0
  30. package/dist/common/utils/chunk-content.util.js.map +1 -0
  31. package/dist/config/base.config.d.ts.map +1 -1
  32. package/dist/config/base.config.js +1 -0
  33. package/dist/config/base.config.js.map +1 -1
  34. package/dist/config/enums/queue.id.d.ts +1 -0
  35. package/dist/config/enums/queue.id.d.ts.map +1 -1
  36. package/dist/config/enums/queue.id.js +1 -0
  37. package/dist/config/enums/queue.id.js.map +1 -1
  38. package/dist/config/interfaces/config.two.factor.interface.d.ts +10 -3
  39. package/dist/config/interfaces/config.two.factor.interface.d.ts.map +1 -1
  40. package/dist/core/core.module.d.ts.map +1 -1
  41. package/dist/core/core.module.js +8 -1
  42. package/dist/core/core.module.js.map +1 -1
  43. package/dist/core/llm/services/model.service.d.ts +13 -0
  44. package/dist/core/llm/services/model.service.d.ts.map +1 -1
  45. package/dist/core/llm/services/model.service.js +22 -0
  46. package/dist/core/llm/services/model.service.js.map +1 -1
  47. package/dist/core/neo4j/abstracts/abstract.service.d.ts.map +1 -1
  48. package/dist/core/neo4j/abstracts/abstract.service.js +8 -1
  49. package/dist/core/neo4j/abstracts/abstract.service.js.map +1 -1
  50. package/dist/foundations/assistant/controllers/assistant.controller.d.ts.map +1 -1
  51. package/dist/foundations/assistant/controllers/assistant.controller.js +6 -2
  52. package/dist/foundations/assistant/controllers/assistant.controller.js.map +1 -1
  53. package/dist/foundations/assistant/dtos/assistant-append.dto.d.ts +2 -0
  54. package/dist/foundations/assistant/dtos/assistant-append.dto.d.ts.map +1 -1
  55. package/dist/foundations/assistant/dtos/assistant-append.dto.js +10 -0
  56. package/dist/foundations/assistant/dtos/assistant-append.dto.js.map +1 -1
  57. package/dist/foundations/assistant/dtos/assistant-post.dto.d.ts +2 -0
  58. package/dist/foundations/assistant/dtos/assistant-post.dto.d.ts.map +1 -1
  59. package/dist/foundations/assistant/dtos/assistant-post.dto.js +10 -0
  60. package/dist/foundations/assistant/dtos/assistant-post.dto.js.map +1 -1
  61. package/dist/foundations/assistant/services/assistant.service.d.ts +8 -1
  62. package/dist/foundations/assistant/services/assistant.service.d.ts.map +1 -1
  63. package/dist/foundations/assistant/services/assistant.service.js +14 -1
  64. package/dist/foundations/assistant/services/assistant.service.js.map +1 -1
  65. package/dist/foundations/foundations.modules.d.ts +6 -0
  66. package/dist/foundations/foundations.modules.d.ts.map +1 -1
  67. package/dist/foundations/foundations.modules.js +10 -2
  68. package/dist/foundations/foundations.modules.js.map +1 -1
  69. package/dist/foundations/handbook/controllers/handbook-thread.controller.d.ts +61 -0
  70. package/dist/foundations/handbook/controllers/handbook-thread.controller.d.ts.map +1 -0
  71. package/dist/foundations/handbook/controllers/handbook-thread.controller.js +170 -0
  72. package/dist/foundations/handbook/controllers/handbook-thread.controller.js.map +1 -0
  73. package/dist/foundations/handbook/controllers/handbook.controller.d.ts +29 -0
  74. package/dist/foundations/handbook/controllers/handbook.controller.d.ts.map +1 -0
  75. package/dist/foundations/handbook/controllers/handbook.controller.js +123 -0
  76. package/dist/foundations/handbook/controllers/handbook.controller.js.map +1 -0
  77. package/dist/foundations/handbook/dtos/handbook-page.dto.d.ts +11 -0
  78. package/dist/foundations/handbook/dtos/handbook-page.dto.d.ts.map +1 -0
  79. package/dist/foundations/handbook/dtos/handbook-page.dto.js +45 -0
  80. package/dist/foundations/handbook/dtos/handbook-page.dto.js.map +1 -0
  81. package/dist/foundations/handbook/dtos/handbook-thread-message-post.dto.d.ts +24 -0
  82. package/dist/foundations/handbook/dtos/handbook-thread-message-post.dto.d.ts.map +1 -0
  83. package/dist/foundations/handbook/dtos/handbook-thread-message-post.dto.js +60 -0
  84. package/dist/foundations/handbook/dtos/handbook-thread-message-post.dto.js.map +1 -0
  85. package/dist/foundations/handbook/dtos/handbook-thread-patch.dto.d.ts +19 -0
  86. package/dist/foundations/handbook/dtos/handbook-thread-patch.dto.d.ts.map +1 -0
  87. package/dist/foundations/handbook/dtos/handbook-thread-patch.dto.js +59 -0
  88. package/dist/foundations/handbook/dtos/handbook-thread-patch.dto.js.map +1 -0
  89. package/dist/foundations/handbook/dtos/handbook-thread-post.dto.d.ts +24 -0
  90. package/dist/foundations/handbook/dtos/handbook-thread-post.dto.d.ts.map +1 -0
  91. package/dist/foundations/handbook/dtos/handbook-thread-post.dto.js +60 -0
  92. package/dist/foundations/handbook/dtos/handbook-thread-post.dto.js.map +1 -0
  93. package/dist/foundations/handbook/entities/handbook-page.d.ts +25 -0
  94. package/dist/foundations/handbook/entities/handbook-page.d.ts.map +1 -0
  95. package/dist/foundations/handbook/entities/handbook-page.js +45 -0
  96. package/dist/foundations/handbook/entities/handbook-page.js.map +1 -0
  97. package/dist/foundations/handbook/entities/handbook-page.meta.d.ts +3 -0
  98. package/dist/foundations/handbook/entities/handbook-page.meta.d.ts.map +1 -0
  99. package/dist/foundations/handbook/entities/handbook-page.meta.js +10 -0
  100. package/dist/foundations/handbook/entities/handbook-page.meta.js.map +1 -0
  101. package/dist/foundations/handbook/entities/handbook-section.d.ts +22 -0
  102. package/dist/foundations/handbook/entities/handbook-section.d.ts.map +1 -0
  103. package/dist/foundations/handbook/entities/handbook-section.js +24 -0
  104. package/dist/foundations/handbook/entities/handbook-section.js.map +1 -0
  105. package/dist/foundations/handbook/entities/handbook-section.meta.d.ts +3 -0
  106. package/dist/foundations/handbook/entities/handbook-section.meta.d.ts.map +1 -0
  107. package/dist/foundations/handbook/entities/handbook-section.meta.js +10 -0
  108. package/dist/foundations/handbook/entities/handbook-section.meta.js.map +1 -0
  109. package/dist/foundations/handbook/entities/handbook-thread-message.d.ts +36 -0
  110. package/dist/foundations/handbook/entities/handbook-thread-message.d.ts.map +1 -0
  111. package/dist/foundations/handbook/entities/handbook-thread-message.js +28 -0
  112. package/dist/foundations/handbook/entities/handbook-thread-message.js.map +1 -0
  113. package/dist/foundations/handbook/entities/handbook-thread-message.meta.d.ts +3 -0
  114. package/dist/foundations/handbook/entities/handbook-thread-message.meta.d.ts.map +1 -0
  115. package/dist/foundations/handbook/entities/handbook-thread-message.meta.js +10 -0
  116. package/dist/foundations/handbook/entities/handbook-thread-message.meta.js.map +1 -0
  117. package/dist/foundations/handbook/entities/handbook-thread.d.ts +47 -0
  118. package/dist/foundations/handbook/entities/handbook-thread.d.ts.map +1 -0
  119. package/dist/foundations/handbook/entities/handbook-thread.js +35 -0
  120. package/dist/foundations/handbook/entities/handbook-thread.js.map +1 -0
  121. package/dist/foundations/handbook/entities/handbook-thread.meta.d.ts +3 -0
  122. package/dist/foundations/handbook/entities/handbook-thread.meta.d.ts.map +1 -0
  123. package/dist/foundations/handbook/entities/handbook-thread.meta.js +10 -0
  124. package/dist/foundations/handbook/entities/handbook-thread.meta.js.map +1 -0
  125. package/dist/foundations/handbook/handbook.module.d.ts +21 -0
  126. package/dist/foundations/handbook/handbook.module.d.ts.map +1 -0
  127. package/dist/foundations/handbook/handbook.module.js +135 -0
  128. package/dist/foundations/handbook/handbook.module.js.map +1 -0
  129. package/dist/foundations/handbook/index.d.ts +23 -0
  130. package/dist/foundations/handbook/index.d.ts.map +1 -0
  131. package/dist/foundations/handbook/index.js +39 -0
  132. package/dist/foundations/handbook/index.js.map +1 -0
  133. package/dist/foundations/handbook/interfaces/handbook.config.interface.d.ts +26 -0
  134. package/dist/foundations/handbook/interfaces/handbook.config.interface.d.ts.map +1 -0
  135. package/dist/foundations/handbook/interfaces/handbook.config.interface.js +10 -0
  136. package/dist/foundations/handbook/interfaces/handbook.config.interface.js.map +1 -0
  137. package/dist/foundations/handbook/processors/handbook.processor.d.ts +22 -0
  138. package/dist/foundations/handbook/processors/handbook.processor.d.ts.map +1 -0
  139. package/dist/foundations/handbook/processors/handbook.processor.js +108 -0
  140. package/dist/foundations/handbook/processors/handbook.processor.js.map +1 -0
  141. package/dist/foundations/handbook/repositories/handbook-page.repository.d.ts +135 -0
  142. package/dist/foundations/handbook/repositories/handbook-page.repository.d.ts.map +1 -0
  143. package/dist/foundations/handbook/repositories/handbook-page.repository.js +245 -0
  144. package/dist/foundations/handbook/repositories/handbook-page.repository.js.map +1 -0
  145. package/dist/foundations/handbook/repositories/handbook-section.repository.d.ts +36 -0
  146. package/dist/foundations/handbook/repositories/handbook-section.repository.d.ts.map +1 -0
  147. package/dist/foundations/handbook/repositories/handbook-section.repository.js +91 -0
  148. package/dist/foundations/handbook/repositories/handbook-section.repository.js.map +1 -0
  149. package/dist/foundations/handbook/repositories/handbook-thread-message.repository.d.ts +36 -0
  150. package/dist/foundations/handbook/repositories/handbook-thread-message.repository.d.ts.map +1 -0
  151. package/dist/foundations/handbook/repositories/handbook-thread-message.repository.js +63 -0
  152. package/dist/foundations/handbook/repositories/handbook-thread-message.repository.js.map +1 -0
  153. package/dist/foundations/handbook/repositories/handbook-thread.repository.d.ts +63 -0
  154. package/dist/foundations/handbook/repositories/handbook-thread.repository.d.ts.map +1 -0
  155. package/dist/foundations/handbook/repositories/handbook-thread.repository.js +86 -0
  156. package/dist/foundations/handbook/repositories/handbook-thread.repository.js.map +1 -0
  157. package/dist/foundations/handbook/services/handbook-ingest.service.d.ts +121 -0
  158. package/dist/foundations/handbook/services/handbook-ingest.service.d.ts.map +1 -0
  159. package/dist/foundations/handbook/services/handbook-ingest.service.js +434 -0
  160. package/dist/foundations/handbook/services/handbook-ingest.service.js.map +1 -0
  161. package/dist/foundations/handbook/services/handbook-page.service.d.ts +57 -0
  162. package/dist/foundations/handbook/services/handbook-page.service.d.ts.map +1 -0
  163. package/dist/foundations/handbook/services/handbook-page.service.js +116 -0
  164. package/dist/foundations/handbook/services/handbook-page.service.js.map +1 -0
  165. package/dist/foundations/handbook/services/handbook-section.service.d.ts +15 -0
  166. package/dist/foundations/handbook/services/handbook-section.service.d.ts.map +1 -0
  167. package/dist/foundations/handbook/services/handbook-section.service.js +37 -0
  168. package/dist/foundations/handbook/services/handbook-section.service.js.map +1 -0
  169. package/dist/foundations/handbook/services/handbook-thread-message.service.d.ts +27 -0
  170. package/dist/foundations/handbook/services/handbook-thread-message.service.d.ts.map +1 -0
  171. package/dist/foundations/handbook/services/handbook-thread-message.service.js +39 -0
  172. package/dist/foundations/handbook/services/handbook-thread-message.service.js.map +1 -0
  173. package/dist/foundations/handbook/services/handbook-thread.service.d.ts +164 -0
  174. package/dist/foundations/handbook/services/handbook-thread.service.d.ts.map +1 -0
  175. package/dist/foundations/handbook/services/handbook-thread.service.js +297 -0
  176. package/dist/foundations/handbook/services/handbook-thread.service.js.map +1 -0
  177. package/dist/foundations/how-to/controllers/how-to.controller.d.ts +7 -1
  178. package/dist/foundations/how-to/controllers/how-to.controller.d.ts.map +1 -1
  179. package/dist/foundations/how-to/controllers/how-to.controller.js +18 -12
  180. package/dist/foundations/how-to/controllers/how-to.controller.js.map +1 -1
  181. package/dist/foundations/how-to/controllers/how-to.public.controller.d.ts +7 -0
  182. package/dist/foundations/how-to/controllers/how-to.public.controller.d.ts.map +1 -1
  183. package/dist/foundations/how-to/controllers/how-to.public.controller.js +7 -0
  184. package/dist/foundations/how-to/controllers/how-to.public.controller.js.map +1 -1
  185. package/dist/foundations/how-to/entities/how-to.d.ts.map +1 -1
  186. package/dist/foundations/how-to/entities/how-to.js +60 -13
  187. package/dist/foundations/how-to/entities/how-to.js.map +1 -1
  188. package/dist/foundations/how-to/how-to.module.d.ts +36 -1
  189. package/dist/foundations/how-to/how-to.module.d.ts.map +1 -1
  190. package/dist/foundations/how-to/how-to.module.js +80 -4
  191. package/dist/foundations/how-to/how-to.module.js.map +1 -1
  192. package/dist/foundations/how-to/index.d.ts +1 -0
  193. package/dist/foundations/how-to/index.d.ts.map +1 -1
  194. package/dist/foundations/how-to/index.js +1 -0
  195. package/dist/foundations/how-to/index.js.map +1 -1
  196. package/dist/foundations/how-to/interfaces/how-to.config.interface.d.ts +30 -0
  197. package/dist/foundations/how-to/interfaces/how-to.config.interface.d.ts.map +1 -0
  198. package/dist/foundations/how-to/interfaces/how-to.config.interface.js +10 -0
  199. package/dist/foundations/how-to/interfaces/how-to.config.interface.js.map +1 -0
  200. package/dist/foundations/how-to/processors/how-to.processor.d.ts +3 -1
  201. package/dist/foundations/how-to/processors/how-to.processor.d.ts.map +1 -1
  202. package/dist/foundations/how-to/processors/how-to.processor.js +8 -1
  203. package/dist/foundations/how-to/processors/how-to.processor.js.map +1 -1
  204. package/dist/foundations/how-to/services/how-to.service.d.ts +4 -0
  205. package/dist/foundations/how-to/services/how-to.service.d.ts.map +1 -1
  206. package/dist/foundations/how-to/services/how-to.service.js +47 -24
  207. package/dist/foundations/how-to/services/how-to.service.js.map +1 -1
  208. package/dist/foundations/index.d.ts +1 -0
  209. package/dist/foundations/index.d.ts.map +1 -1
  210. package/dist/foundations/index.js +1 -0
  211. package/dist/foundations/index.js.map +1 -1
  212. package/dist/foundations/two-factor/services/totp.service.d.ts.map +1 -1
  213. package/dist/foundations/two-factor/services/totp.service.js +2 -1
  214. package/dist/foundations/two-factor/services/totp.service.js.map +1 -1
  215. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handbook-ingest.service.js","sourceRoot":"","sources":["../../../../src/foundations/handbook/services/handbook-ingest.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,57 @@
1
+ import { ConfigService } from "@nestjs/config";
2
+ import { Queue } from "bullmq";
3
+ import { ClsService } from "nestjs-cls";
4
+ import { AiStatus } from "../../../common/enums/ai.status";
5
+ import { BaseConfigInterface } from "../../../config/interfaces/base.config.interface";
6
+ import { JsonApiService } from "../../../core/jsonapi/services/jsonapi.service";
7
+ import { AbstractService } from "../../../core/neo4j/abstracts/abstract.service";
8
+ import { ChunkService } from "../../chunk/services/chunk.service";
9
+ import { ChunkerService } from "../../chunker/services/chunker.service";
10
+ import { HandbookPage, HandbookPageDescriptor } from "../entities/handbook-page";
11
+ import { HandbookPageRepository } from "../repositories/handbook-page.repository";
12
+ export declare class HandbookPageService extends AbstractService<HandbookPage, typeof HandbookPageDescriptor.relationships> {
13
+ private readonly handbookPageRepository;
14
+ private readonly chunkService;
15
+ private readonly chunkerService;
16
+ private readonly chunkQueue;
17
+ protected readonly descriptor: import("../../..").EntityDescriptor<HandbookPage, {}>;
18
+ private readonly jobNames;
19
+ constructor(jsonApiService: JsonApiService, handbookPageRepository: HandbookPageRepository, clsService: ClsService, chunkService: ChunkService, chunkerService: ChunkerService, chunkQueue: Queue, configService: ConfigService<BaseConfigInterface>);
20
+ /**
21
+ * Delete a page and the chunks hanging off it.
22
+ *
23
+ * Overridden for two reasons, both of which break the inherited version:
24
+ *
25
+ * 1. `AbstractService.delete` gates on `(companyId ?? "") !== entity.company?.id`
26
+ * (abstract.service.ts:272). HandbookPage is `isCompanyScoped: false`, so
27
+ * `entity.company` is always undefined, and an administrator has no
28
+ * company either — `"" !== undefined` is true and EVERY delete 403s. Same
29
+ * reason `HowToService` (app fork) and `CompanyService` override it.
30
+ * 2. The repository's `DETACH DELETE` drops the HAS_CHUNK edges but leaves
31
+ * the Chunk nodes behind. `ChunkService.deleteChunks` is what also resizes
32
+ * key-concept relationship weights and clears disconnected atomic facts,
33
+ * so it has to run first or the graph keeps orphans that still answer
34
+ * retrieval.
35
+ *
36
+ * The ingest's own deletion pass calls THIS method rather than the
37
+ * repository, so both routes into deleting a page behave identically.
38
+ */
39
+ delete(params: {
40
+ id: string;
41
+ }): Promise<void>;
42
+ updateAiStatus(params: {
43
+ id: string;
44
+ aiStatus: AiStatus;
45
+ }): Promise<void>;
46
+ /**
47
+ * Mark in-progress, drop prior chunks, chunk the markdown, enqueue one job per
48
+ * chunk. Identical to HowToService._chunkAndQueue except the markdown arrives
49
+ * from a file rather than from a BlockNote document.
50
+ */
51
+ chunkAndQueue(params: {
52
+ handbookPageId: string;
53
+ markdown: string;
54
+ title: string;
55
+ }): Promise<void>;
56
+ }
57
+ //# sourceMappingURL=handbook-page.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handbook-page.service.d.ts","sourceRoot":"","sources":["../../../../src/foundations/handbook/services/handbook-page.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAC/B,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAE3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,kDAAkD,CAAC;AAEvF,OAAO,EAAE,cAAc,EAAE,MAAM,gDAAgD,CAAC;AAChF,OAAO,EAAE,eAAe,EAAE,MAAM,gDAAgD,CAAC;AAEjF,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAEjF,OAAO,EAAE,sBAAsB,EAAE,MAAM,0CAA0C,CAAC;AAElF,qBACa,mBAAoB,SAAQ,eAAe,CAAC,YAAY,EAAE,OAAO,sBAAsB,CAAC,aAAa,CAAC;IAM/G,OAAO,CAAC,QAAQ,CAAC,sBAAsB;IAEvC,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,cAAc;IACH,OAAO,CAAC,QAAQ,CAAC,UAAU;IATzD,SAAS,CAAC,QAAQ,CAAC,UAAU,wDAA0B;IACvD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA0B;gBAGjD,cAAc,EAAE,cAAc,EACb,sBAAsB,EAAE,sBAAsB,EAC/D,UAAU,EAAE,UAAU,EACL,YAAY,EAAE,YAAY,EAC1B,cAAc,EAAE,cAAc,EACF,UAAU,EAAE,KAAK,EAC9D,aAAa,EAAE,aAAa,CAAC,mBAAmB,CAAC;IAMnD;;;;;;;;;;;;;;;;;;OAkBG;IACG,MAAM,CAAC,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAY7C,cAAc,CAAC,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,QAAQ,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAI/E;;;;OAIG;IACG,aAAa,CAAC,MAAM,EAAE;QAAE,cAAc,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CA+BxG"}
@@ -0,0 +1,116 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.HandbookPageService = void 0;
16
+ const bullmq_1 = require("@nestjs/bullmq");
17
+ const common_1 = require("@nestjs/common");
18
+ const config_1 = require("@nestjs/config");
19
+ const bullmq_2 = require("bullmq");
20
+ const nestjs_cls_1 = require("nestjs-cls");
21
+ const ai_status_1 = require("../../../common/enums/ai.status");
22
+ const queue_id_1 = require("../../../config/enums/queue.id");
23
+ const jsonapi_service_1 = require("../../../core/jsonapi/services/jsonapi.service");
24
+ const abstract_service_1 = require("../../../core/neo4j/abstracts/abstract.service");
25
+ const chunk_service_1 = require("../../chunk/services/chunk.service");
26
+ const chunker_service_1 = require("../../chunker/services/chunker.service");
27
+ const handbook_page_1 = require("../entities/handbook-page");
28
+ const handbook_page_meta_1 = require("../entities/handbook-page.meta");
29
+ const handbook_page_repository_1 = require("../repositories/handbook-page.repository");
30
+ let HandbookPageService = class HandbookPageService extends abstract_service_1.AbstractService {
31
+ constructor(jsonApiService, handbookPageRepository, clsService, chunkService, chunkerService, chunkQueue, configService) {
32
+ super(jsonApiService, handbookPageRepository, clsService, handbook_page_1.HandbookPageDescriptor.model);
33
+ this.handbookPageRepository = handbookPageRepository;
34
+ this.chunkService = chunkService;
35
+ this.chunkerService = chunkerService;
36
+ this.chunkQueue = chunkQueue;
37
+ this.descriptor = handbook_page_1.HandbookPageDescriptor;
38
+ this.jobNames = configService.get("jobNames", { infer: true }) ?? { process: {}, notifications: {} };
39
+ }
40
+ /**
41
+ * Delete a page and the chunks hanging off it.
42
+ *
43
+ * Overridden for two reasons, both of which break the inherited version:
44
+ *
45
+ * 1. `AbstractService.delete` gates on `(companyId ?? "") !== entity.company?.id`
46
+ * (abstract.service.ts:272). HandbookPage is `isCompanyScoped: false`, so
47
+ * `entity.company` is always undefined, and an administrator has no
48
+ * company either — `"" !== undefined` is true and EVERY delete 403s. Same
49
+ * reason `HowToService` (app fork) and `CompanyService` override it.
50
+ * 2. The repository's `DETACH DELETE` drops the HAS_CHUNK edges but leaves
51
+ * the Chunk nodes behind. `ChunkService.deleteChunks` is what also resizes
52
+ * key-concept relationship weights and clears disconnected atomic facts,
53
+ * so it has to run first or the graph keeps orphans that still answer
54
+ * retrieval.
55
+ *
56
+ * The ingest's own deletion pass calls THIS method rather than the
57
+ * repository, so both routes into deleting a page behave identically.
58
+ */
59
+ async delete(params) {
60
+ const page = await this.handbookPageRepository.findById({ id: params.id });
61
+ if (!page)
62
+ throw new common_1.NotFoundException();
63
+ await this.chunkService.deleteChunks({
64
+ id: params.id,
65
+ nodeType: handbook_page_meta_1.handbookPageMeta.labelName,
66
+ });
67
+ await this.handbookPageRepository.deletePage({ id: params.id });
68
+ }
69
+ async updateAiStatus(params) {
70
+ await this.handbookPageRepository.updateStatus({ id: params.id, aiStatus: params.aiStatus });
71
+ }
72
+ /**
73
+ * Mark in-progress, drop prior chunks, chunk the markdown, enqueue one job per
74
+ * chunk. Identical to HowToService._chunkAndQueue except the markdown arrives
75
+ * from a file rather than from a BlockNote document.
76
+ */
77
+ async chunkAndQueue(params) {
78
+ await this.updateAiStatus({ id: params.handbookPageId, aiStatus: ai_status_1.AiStatus.InProgress });
79
+ await this.chunkService.deleteChunks({
80
+ id: params.handbookPageId,
81
+ nodeType: handbook_page_meta_1.handbookPageMeta.labelName,
82
+ });
83
+ const data = await this.chunkerService.generateContentStructureFromMarkdown({
84
+ content: params.markdown,
85
+ title: params.title,
86
+ });
87
+ const chunks = await this.chunkService.createChunks({
88
+ id: params.handbookPageId,
89
+ nodeType: handbook_page_meta_1.handbookPageMeta.labelName,
90
+ data: data,
91
+ });
92
+ const chunkJobName = this.jobNames.process?.chunk ?? "process_chunk";
93
+ for (const chunk of chunks) {
94
+ await this.chunkQueue.add(chunkJobName, {
95
+ companyId: this.clsService.get("companyId") || undefined,
96
+ userId: this.clsService.get("userId"),
97
+ chunkId: chunk.id,
98
+ contentId: params.handbookPageId,
99
+ contentType: handbook_page_meta_1.handbookPageMeta.labelName,
100
+ });
101
+ }
102
+ }
103
+ };
104
+ exports.HandbookPageService = HandbookPageService;
105
+ exports.HandbookPageService = HandbookPageService = __decorate([
106
+ (0, common_1.Injectable)(),
107
+ __param(5, (0, bullmq_1.InjectQueue)(queue_id_1.QueueId.CHUNK)),
108
+ __metadata("design:paramtypes", [jsonapi_service_1.JsonApiService,
109
+ handbook_page_repository_1.HandbookPageRepository,
110
+ nestjs_cls_1.ClsService,
111
+ chunk_service_1.ChunkService,
112
+ chunker_service_1.ChunkerService,
113
+ bullmq_2.Queue,
114
+ config_1.ConfigService])
115
+ ], HandbookPageService);
116
+ //# sourceMappingURL=handbook-page.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handbook-page.service.js","sourceRoot":"","sources":["../../../../src/foundations/handbook/services/handbook-page.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import { ClsService } from "nestjs-cls";
2
+ import { JsonApiService } from "../../../core/jsonapi/services/jsonapi.service";
3
+ import { AbstractService } from "../../../core/neo4j/abstracts/abstract.service";
4
+ import { HandbookSection, HandbookSectionDescriptor } from "../entities/handbook-section";
5
+ import { HandbookSectionRepository } from "../repositories/handbook-section.repository";
6
+ /**
7
+ * Read-only from the API's point of view: sections are written only by the
8
+ * ingest, through the repository. Nothing is overridden — the inherited
9
+ * `find` is the whole surface.
10
+ */
11
+ export declare class HandbookSectionService extends AbstractService<HandbookSection, typeof HandbookSectionDescriptor.relationships> {
12
+ protected readonly descriptor: import("../../..").EntityDescriptor<HandbookSection, {}>;
13
+ constructor(jsonApiService: JsonApiService, handbookSectionRepository: HandbookSectionRepository, clsService: ClsService);
14
+ }
15
+ //# sourceMappingURL=handbook-section.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handbook-section.service.d.ts","sourceRoot":"","sources":["../../../../src/foundations/handbook/services/handbook-section.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,gDAAgD,CAAC;AAChF,OAAO,EAAE,eAAe,EAAE,MAAM,gDAAgD,CAAC;AACjF,OAAO,EAAE,eAAe,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AAC1F,OAAO,EAAE,yBAAyB,EAAE,MAAM,6CAA6C,CAAC;AAExF;;;;GAIG;AACH,qBACa,sBAAuB,SAAQ,eAAe,CACzD,eAAe,EACf,OAAO,yBAAyB,CAAC,aAAa,CAC/C;IACC,SAAS,CAAC,QAAQ,CAAC,UAAU,2DAA6B;gBAGxD,cAAc,EAAE,cAAc,EAC9B,yBAAyB,EAAE,yBAAyB,EACpD,UAAU,EAAE,UAAU;CAIzB"}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.HandbookSectionService = void 0;
13
+ const common_1 = require("@nestjs/common");
14
+ const nestjs_cls_1 = require("nestjs-cls");
15
+ const jsonapi_service_1 = require("../../../core/jsonapi/services/jsonapi.service");
16
+ const abstract_service_1 = require("../../../core/neo4j/abstracts/abstract.service");
17
+ const handbook_section_1 = require("../entities/handbook-section");
18
+ const handbook_section_repository_1 = require("../repositories/handbook-section.repository");
19
+ /**
20
+ * Read-only from the API's point of view: sections are written only by the
21
+ * ingest, through the repository. Nothing is overridden — the inherited
22
+ * `find` is the whole surface.
23
+ */
24
+ let HandbookSectionService = class HandbookSectionService extends abstract_service_1.AbstractService {
25
+ constructor(jsonApiService, handbookSectionRepository, clsService) {
26
+ super(jsonApiService, handbookSectionRepository, clsService, handbook_section_1.HandbookSectionDescriptor.model);
27
+ this.descriptor = handbook_section_1.HandbookSectionDescriptor;
28
+ }
29
+ };
30
+ exports.HandbookSectionService = HandbookSectionService;
31
+ exports.HandbookSectionService = HandbookSectionService = __decorate([
32
+ (0, common_1.Injectable)(),
33
+ __metadata("design:paramtypes", [jsonapi_service_1.JsonApiService,
34
+ handbook_section_repository_1.HandbookSectionRepository,
35
+ nestjs_cls_1.ClsService])
36
+ ], HandbookSectionService);
37
+ //# sourceMappingURL=handbook-section.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handbook-section.service.js","sourceRoot":"","sources":["../../../../src/foundations/handbook/services/handbook-section.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,2CAAwC;AACxC,oFAAgF;AAChF,qFAAiF;AACjF,mEAA0F;AAC1F,6FAAwF;AAExF;;;;GAIG;AAEI,IAAM,sBAAsB,GAA5B,MAAM,sBAAuB,SAAQ,kCAG3C;IAGC,YACE,cAA8B,EAC9B,yBAAoD,EACpD,UAAsB;QAEtB,KAAK,CAAC,cAAc,EAAE,yBAAyB,EAAE,UAAU,EAAE,4CAAyB,CAAC,KAAK,CAAC,CAAC;QAP7E,eAAU,GAAG,4CAAyB,CAAC;IAQ1D,CAAC;CACF,CAAA;AAbY,wDAAsB;iCAAtB,sBAAsB;IADlC,IAAA,mBAAU,GAAE;qCAQO,gCAAc;QACH,uDAAyB;QACxC,uBAAU;GATb,sBAAsB,CAalC"}
@@ -0,0 +1,27 @@
1
+ import { ClsService } from "nestjs-cls";
2
+ import { JsonApiService } from "../../../core/jsonapi/services/jsonapi.service";
3
+ import { AbstractService } from "../../../core/neo4j/abstracts/abstract.service";
4
+ import { HandbookThreadMessage, HandbookThreadMessageDescriptor } from "../entities/handbook-thread-message";
5
+ import { HandbookThreadMessageRepository } from "../repositories/handbook-thread-message.repository";
6
+ /**
7
+ * Messages are written only by `HandbookThreadService` as part of a turn, and
8
+ * read only through their thread — so this service adds nothing to the
9
+ * framework's CRUD. It exists because the thread service needs `createFromDTO`
10
+ * (descriptor-driven mapping of attributes and the `HAS_MESSAGE` edge) rather
11
+ * than hand-rolled Cypher, and because the serialiser is resolved through DI.
12
+ */
13
+ export declare class HandbookThreadMessageService extends AbstractService<HandbookThreadMessage, typeof HandbookThreadMessageDescriptor.relationships> {
14
+ protected readonly descriptor: import("../../..").EntityDescriptor<HandbookThreadMessage, {
15
+ thread: {
16
+ model: import("../../..").DataMeta;
17
+ direction: "in";
18
+ relationship: string;
19
+ cardinality: "one";
20
+ required: true;
21
+ dtoKey: string;
22
+ immutable: true;
23
+ };
24
+ }>;
25
+ constructor(jsonApiService: JsonApiService, handbookThreadMessageRepository: HandbookThreadMessageRepository, clsService: ClsService);
26
+ }
27
+ //# sourceMappingURL=handbook-thread-message.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handbook-thread-message.service.d.ts","sourceRoot":"","sources":["../../../../src/foundations/handbook/services/handbook-thread-message.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,gDAAgD,CAAC;AAChF,OAAO,EAAE,eAAe,EAAE,MAAM,gDAAgD,CAAC;AACjF,OAAO,EAAE,qBAAqB,EAAE,+BAA+B,EAAE,MAAM,qCAAqC,CAAC;AAC7G,OAAO,EAAE,+BAA+B,EAAE,MAAM,oDAAoD,CAAC;AAErG;;;;;;GAMG;AACH,qBACa,4BAA6B,SAAQ,eAAe,CAC/D,qBAAqB,EACrB,OAAO,+BAA+B,CAAC,aAAa,CACrD;IACC,SAAS,CAAC,QAAQ,CAAC,UAAU;;;;;;;;;;OAAmC;gBAG9D,cAAc,EAAE,cAAc,EAC9B,+BAA+B,EAAE,+BAA+B,EAChE,UAAU,EAAE,UAAU;CAIzB"}
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.HandbookThreadMessageService = void 0;
13
+ const common_1 = require("@nestjs/common");
14
+ const nestjs_cls_1 = require("nestjs-cls");
15
+ const jsonapi_service_1 = require("../../../core/jsonapi/services/jsonapi.service");
16
+ const abstract_service_1 = require("../../../core/neo4j/abstracts/abstract.service");
17
+ const handbook_thread_message_1 = require("../entities/handbook-thread-message");
18
+ const handbook_thread_message_repository_1 = require("../repositories/handbook-thread-message.repository");
19
+ /**
20
+ * Messages are written only by `HandbookThreadService` as part of a turn, and
21
+ * read only through their thread — so this service adds nothing to the
22
+ * framework's CRUD. It exists because the thread service needs `createFromDTO`
23
+ * (descriptor-driven mapping of attributes and the `HAS_MESSAGE` edge) rather
24
+ * than hand-rolled Cypher, and because the serialiser is resolved through DI.
25
+ */
26
+ let HandbookThreadMessageService = class HandbookThreadMessageService extends abstract_service_1.AbstractService {
27
+ constructor(jsonApiService, handbookThreadMessageRepository, clsService) {
28
+ super(jsonApiService, handbookThreadMessageRepository, clsService, handbook_thread_message_1.HandbookThreadMessageDescriptor.model);
29
+ this.descriptor = handbook_thread_message_1.HandbookThreadMessageDescriptor;
30
+ }
31
+ };
32
+ exports.HandbookThreadMessageService = HandbookThreadMessageService;
33
+ exports.HandbookThreadMessageService = HandbookThreadMessageService = __decorate([
34
+ (0, common_1.Injectable)(),
35
+ __metadata("design:paramtypes", [jsonapi_service_1.JsonApiService,
36
+ handbook_thread_message_repository_1.HandbookThreadMessageRepository,
37
+ nestjs_cls_1.ClsService])
38
+ ], HandbookThreadMessageService);
39
+ //# sourceMappingURL=handbook-thread-message.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handbook-thread-message.service.js","sourceRoot":"","sources":["../../../../src/foundations/handbook/services/handbook-thread-message.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,2CAAwC;AACxC,oFAAgF;AAChF,qFAAiF;AACjF,iFAA6G;AAC7G,2GAAqG;AAErG;;;;;;GAMG;AAEI,IAAM,4BAA4B,GAAlC,MAAM,4BAA6B,SAAQ,kCAGjD;IAGC,YACE,cAA8B,EAC9B,+BAAgE,EAChE,UAAsB;QAEtB,KAAK,CAAC,cAAc,EAAE,+BAA+B,EAAE,UAAU,EAAE,yDAA+B,CAAC,KAAK,CAAC,CAAC;QAPzF,eAAU,GAAG,yDAA+B,CAAC;IAQhE,CAAC;CACF,CAAA;AAbY,oEAA4B;uCAA5B,4BAA4B;IADxC,IAAA,mBAAU,GAAE;qCAQO,gCAAc;QACG,oEAA+B;QACpD,uBAAU;GATb,4BAA4B,CAaxC"}
@@ -0,0 +1,164 @@
1
+ import { ClsService } from "nestjs-cls";
2
+ import { ResponderService } from "../../../agents/responder/services/responder.service";
3
+ import { JsonApiDataInterface } from "../../../core/jsonapi/interfaces/jsonapi.data.interface";
4
+ import { JsonApiService } from "../../../core/jsonapi/services/jsonapi.service";
5
+ import { AbstractService } from "../../../core/neo4j/abstracts/abstract.service";
6
+ import { HandbookThread, HandbookThreadDescriptor } from "../entities/handbook-thread";
7
+ import { HandbookPageRepository } from "../repositories/handbook-page.repository";
8
+ import { HandbookThreadMessageRepository } from "../repositories/handbook-thread-message.repository";
9
+ import { HandbookThreadRepository } from "../repositories/handbook-thread.repository";
10
+ import { HandbookThreadMessageService } from "./handbook-thread-message.service";
11
+ /** How many prior turns are replayed to the responder as history. */
12
+ export declare const HANDBOOK_MAX_MESSAGES_TO_LLM = 20;
13
+ /** Longest auto-generated title, when the responder supplies none. */
14
+ export declare const HANDBOOK_TITLE_MAX_LENGTH = 60;
15
+ /**
16
+ * Persisted handbook conversations.
17
+ *
18
+ * The handbook chat deliberately does NOT go through the package `Assistant`.
19
+ * `Assistant` is `isCompanyScoped: true`, and a platform administrator — the
20
+ * only user this feature is for — has no Company, so a company-scoped thread
21
+ * would 404 for exactly that user. Company scoping stays strict; the thread
22
+ * lives here instead, global and owner-scoped.
23
+ *
24
+ * That is why `companyId` is read off CLS and passed through EXACTLY as found,
25
+ * `undefined` included. It is not defaulted, substituted or looked up.
26
+ * `ResponderService.run` types it `string | undefined`; token accounting
27
+ * already tolerates a company-less turn (TokenUsageRepository makes the
28
+ * `BELONGS_TO` edge conditional); and handbook retrieval never consults a
29
+ * company — the handbook branch of the source-query provider matches
30
+ * `(:HandbookPage)` and ignores tenancy altogether.
31
+ */
32
+ export declare class HandbookThreadService extends AbstractService<HandbookThread, typeof HandbookThreadDescriptor.relationships> {
33
+ private readonly threads;
34
+ private readonly responder;
35
+ private readonly messages;
36
+ private readonly messageRepository;
37
+ private readonly pages;
38
+ protected readonly descriptor: import("../../..").EntityDescriptor<HandbookThread, {
39
+ owner: {
40
+ model: import("../../..").DataMeta;
41
+ direction: "out";
42
+ relationship: string;
43
+ cardinality: "one";
44
+ required: false;
45
+ dtoKey: string;
46
+ contextKey: string;
47
+ immutable: true;
48
+ };
49
+ messages: {
50
+ model: import("../../..").DataMeta;
51
+ direction: "out";
52
+ relationship: string;
53
+ cardinality: "many";
54
+ required: false;
55
+ dtoKey: string;
56
+ };
57
+ }>;
58
+ private readonly threadLogger;
59
+ constructor(jsonApiService: JsonApiService, threads: HandbookThreadRepository, clsService: ClsService, responder: ResponderService, messages: HandbookThreadMessageService, messageRepository: HandbookThreadMessageRepository, pages: HandbookPageRepository);
60
+ /**
61
+ * Start a thread from its first question: create the thread, run the turn,
62
+ * persist both messages, and title the thread from the answer.
63
+ *
64
+ * The thread node is created FIRST — before the responder runs — so the two
65
+ * messages have a parent to hang from, exactly as
66
+ * `AssistantService.createWithFirstMessage` does. It is created with the
67
+ * fallback title and retitled once the answer exists, because the responder's
68
+ * title is only known after the turn.
69
+ */
70
+ createWithFirstMessage(params: {
71
+ question: string;
72
+ /** Optional: scopes retrieval to one page. See `runTurn`. */
73
+ handbookPageId?: string;
74
+ }): Promise<JsonApiDataInterface>;
75
+ /**
76
+ * Append a question to an existing thread and answer it with the thread's
77
+ * prior messages as history.
78
+ *
79
+ * Returns the two NEW messages as a JSON:API list — the shape
80
+ * `AssistantController.append` returns — so the client appends rather than
81
+ * re-renders. The full thread is one `GET /handbookthreads/:id` away.
82
+ */
83
+ appendMessage(params: {
84
+ threadId: string;
85
+ question: string;
86
+ /** Optional: scopes retrieval to one page. See `runTurn`. */
87
+ handbookPageId?: string;
88
+ }): Promise<JsonApiDataInterface>;
89
+ /**
90
+ * One thread with every message it holds, in position order.
91
+ *
92
+ * The messages ride in `included` through the descriptor's `messages`
93
+ * relationship — the same traversal that lets `AssistantController` return an
94
+ * assistant with its messages — so a client renders a selected thread in one
95
+ * call. They are sorted here because a Cypher `OPTIONAL MATCH` collects
96
+ * related nodes in no particular order.
97
+ */
98
+ findThreadWithMessages(params: {
99
+ threadId: string;
100
+ }): Promise<JsonApiDataInterface>;
101
+ /**
102
+ * Rename. Overridden ONLY to close an ordering hole in the inherited
103
+ * implementation: `AbstractService.patch` writes first and reads back
104
+ * afterwards, and `AbstractRepository.patch` matches on `id` alone — it never
105
+ * applies `buildUserHasAccess`. Without the read below, one administrator
106
+ * could rename another's thread and merely be refused the response.
107
+ */
108
+ patch(params: {
109
+ id: string;
110
+ [key: string]: any;
111
+ }): Promise<JsonApiDataInterface>;
112
+ /**
113
+ * Delete the thread and, through the repository override, its messages.
114
+ *
115
+ * Overridden because the inherited `AbstractService.delete` guards ownership
116
+ * with a COMPANY comparison — `(companyId ?? "") !== entity.company?.id`. A
117
+ * `HandbookThread` is `isCompanyScoped: false`, so `entity.company` is always
118
+ * undefined, and an administrator has no `companyId`: the comparison reduces
119
+ * to `"" !== undefined`, which is true, and EVERY delete would 403. The owner
120
+ * edge is the boundary here, and `readOwnedThread` is what enforces it.
121
+ */
122
+ delete(params: {
123
+ id: string;
124
+ }): Promise<void>;
125
+ /**
126
+ * Read a thread through the owner-scoped `findById`. A thread belonging to
127
+ * another user raises 403 from `_validateForbidden`; an id that matches
128
+ * nothing comes back null and becomes a 404 here.
129
+ */
130
+ private readOwnedThread;
131
+ /**
132
+ * Run one handbook turn on the responder and resolve its citations to page
133
+ * paths.
134
+ *
135
+ * `userModuleIds: []` is not a stub: the documentation branch never runs the
136
+ * graph or the planner, and those two are the only readers of that list.
137
+ *
138
+ * `handbookPageId` is forwarded as `limitToHandbookPageId`, which the
139
+ * handbook source-query provider already honours by adding
140
+ * `WHERE data.id = $limitToHandbookPageId` to the `(:HandbookPage)` match.
141
+ * Passed through EXACTLY as received, `undefined` included: an absent value
142
+ * means retrieval spans the whole manual, which is the default a question
143
+ * asked while reading one page usually wants.
144
+ */
145
+ private runTurn;
146
+ /** Persist one message under a thread. Returns the new message's id. */
147
+ private writeMessage;
148
+ /** Every message of a thread, oldest first. */
149
+ private loadMessages;
150
+ /**
151
+ * Sort by `position` ascending. Applied even to results that were queried
152
+ * with an ORDER BY: the ordering clause sits ahead of the relationship
153
+ * traversal `buildReturnStatement()` appends, so it is not guaranteed to
154
+ * survive into the rows. Position is the only ordering the client can rely
155
+ * on, so it is asserted where the list is produced.
156
+ */
157
+ private byPosition;
158
+ /**
159
+ * Title for a thread whose answer produced none: the question, trimmed to
160
+ * 60 characters on a word boundary. Mirrors `AssistantService.autoTitle`.
161
+ */
162
+ private fallbackTitle;
163
+ }
164
+ //# sourceMappingURL=handbook-thread.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handbook-thread.service.d.ts","sourceRoot":"","sources":["../../../../src/foundations/handbook/services/handbook-thread.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,sDAAsD,CAAC;AAGxF,OAAO,EAAE,oBAAoB,EAAE,MAAM,yDAAyD,CAAC;AAC/F,OAAO,EAAE,cAAc,EAAE,MAAM,gDAAgD,CAAC;AAChF,OAAO,EAAE,eAAe,EAAE,MAAM,gDAAgD,CAAC;AACjF,OAAO,EAAE,cAAc,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AAQvF,OAAO,EAAE,sBAAsB,EAAE,MAAM,0CAA0C,CAAC;AAClF,OAAO,EAAE,+BAA+B,EAAE,MAAM,oDAAoD,CAAC;AACrG,OAAO,EAAE,wBAAwB,EAAE,MAAM,4CAA4C,CAAC;AACtF,OAAO,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAC;AAEjF,qEAAqE;AACrE,eAAO,MAAM,4BAA4B,KAAK,CAAC;AAE/C,sEAAsE;AACtE,eAAO,MAAM,yBAAyB,KAAK,CAAC;AAE5C;;;;;;;;;;;;;;;;GAgBG;AACH,qBACa,qBAAsB,SAAQ,eAAe,CACxD,cAAc,EACd,OAAO,wBAAwB,CAAC,aAAa,CAC9C;IAMG,OAAO,CAAC,QAAQ,CAAC,OAAO;IAExB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,KAAK;IAVxB,SAAS,CAAC,QAAQ,CAAC,UAAU;;;;;;;;;;;;;;;;;;;OAA4B;IACzD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA0C;gBAGrE,cAAc,EAAE,cAAc,EACb,OAAO,EAAE,wBAAwB,EAClD,UAAU,EAAE,UAAU,EACL,SAAS,EAAE,gBAAgB,EAC3B,QAAQ,EAAE,4BAA4B,EACtC,iBAAiB,EAAE,+BAA+B,EAClD,KAAK,EAAE,sBAAsB;IAKhD;;;;;;;;;OASG;IACG,sBAAsB,CAAC,MAAM,EAAE;QACnC,QAAQ,EAAE,MAAM,CAAC;QACjB,6DAA6D;QAC7D,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAuCjC;;;;;;;OAOG;IACG,aAAa,CAAC,MAAM,EAAE;QAC1B,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,6DAA6D;QAC7D,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IA8CjC;;;;;;;;OAQG;IACG,sBAAsB,CAAC,MAAM,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAMzF;;;;;;OAMG;IACG,KAAK,CAAC,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAKtF;;;;;;;;;OASG;IACG,MAAM,CAAC,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAMnD;;;;OAIG;YACW,eAAe;IAM7B;;;;;;;;;;;;;OAaG;YACW,OAAO;IAmCrB,wEAAwE;YAC1D,YAAY;IA4B1B,+CAA+C;YACjC,YAAY;IAW1B;;;;;;OAMG;IACH,OAAO,CAAC,UAAU;IAIlB;;;OAGG;IACH,OAAO,CAAC,aAAa;CAQtB"}