@carlonicora/nestjs-neo4jsonapi 2.4.1 → 2.5.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 (59) hide show
  1. package/dist/agents/community.summariser/community.summariser.module.d.ts.map +1 -1
  2. package/dist/agents/community.summariser/community.summariser.module.js +2 -0
  3. package/dist/agents/community.summariser/community.summariser.module.js.map +1 -1
  4. package/dist/agents/community.summariser/processors/community.summariser.processor.d.ts +7 -1
  5. package/dist/agents/community.summariser/processors/community.summariser.processor.d.ts.map +1 -1
  6. package/dist/agents/community.summariser/processors/community.summariser.processor.js +23 -2
  7. package/dist/agents/community.summariser/processors/community.summariser.processor.js.map +1 -1
  8. package/dist/common/enums/ai.status.d.ts +29 -1
  9. package/dist/common/enums/ai.status.d.ts.map +1 -1
  10. package/dist/common/enums/ai.status.js +28 -1
  11. package/dist/common/enums/ai.status.js.map +1 -1
  12. package/dist/common/tokens.d.ts +20 -0
  13. package/dist/common/tokens.d.ts.map +1 -1
  14. package/dist/common/tokens.js +13 -1
  15. package/dist/common/tokens.js.map +1 -1
  16. package/dist/foundations/assistant/controllers/assistant.controller.d.ts +3 -1
  17. package/dist/foundations/assistant/controllers/assistant.controller.d.ts.map +1 -1
  18. package/dist/foundations/assistant/controllers/assistant.controller.js +10 -2
  19. package/dist/foundations/assistant/controllers/assistant.controller.js.map +1 -1
  20. package/dist/foundations/chunk/chunk.module.d.ts.map +1 -1
  21. package/dist/foundations/chunk/chunk.module.js +2 -0
  22. package/dist/foundations/chunk/chunk.module.js.map +1 -1
  23. package/dist/foundations/chunk/processors/chunk.embedding.processor.d.ts +3 -1
  24. package/dist/foundations/chunk/processors/chunk.embedding.processor.d.ts.map +1 -1
  25. package/dist/foundations/chunk/processors/chunk.embedding.processor.js +7 -1
  26. package/dist/foundations/chunk/processors/chunk.embedding.processor.js.map +1 -1
  27. package/dist/foundations/chunk/processors/chunk.processor.d.ts +17 -1
  28. package/dist/foundations/chunk/processors/chunk.processor.d.ts.map +1 -1
  29. package/dist/foundations/chunk/processors/chunk.processor.js +44 -1
  30. package/dist/foundations/chunk/processors/chunk.processor.js.map +1 -1
  31. package/dist/foundations/community/entities/community.entity.d.ts +2 -0
  32. package/dist/foundations/community/entities/community.entity.d.ts.map +1 -1
  33. package/dist/foundations/community/entities/community.map.d.ts.map +1 -1
  34. package/dist/foundations/community/entities/community.map.js +1 -0
  35. package/dist/foundations/community/entities/community.map.js.map +1 -1
  36. package/dist/foundations/community/index.d.ts +7 -0
  37. package/dist/foundations/community/index.d.ts.map +1 -0
  38. package/dist/foundations/community/index.js +14 -0
  39. package/dist/foundations/community/index.js.map +1 -0
  40. package/dist/foundations/community/repositories/community.repository.d.ts +15 -0
  41. package/dist/foundations/community/repositories/community.repository.d.ts.map +1 -1
  42. package/dist/foundations/community/repositories/community.repository.js +58 -0
  43. package/dist/foundations/community/repositories/community.repository.js.map +1 -1
  44. package/dist/foundations/company/services/company.service.d.ts +6 -1
  45. package/dist/foundations/company/services/company.service.d.ts.map +1 -1
  46. package/dist/foundations/company/services/company.service.js +18 -6
  47. package/dist/foundations/company/services/company.service.js.map +1 -1
  48. package/dist/foundations/index.d.ts +1 -0
  49. package/dist/foundations/index.d.ts.map +1 -1
  50. package/dist/foundations/index.js +1 -0
  51. package/dist/foundations/index.js.map +1 -1
  52. package/dist/foundations/stripe/__tests__/mocks/stripe.mock.d.ts +6 -0
  53. package/dist/foundations/stripe/__tests__/mocks/stripe.mock.d.ts.map +1 -1
  54. package/dist/foundations/stripe/__tests__/mocks/stripe.mock.js +7 -0
  55. package/dist/foundations/stripe/__tests__/mocks/stripe.mock.js.map +1 -1
  56. package/dist/foundations/stripe-promotion-code/services/stripe-promotion-code-api.service.d.ts.map +1 -1
  57. package/dist/foundations/stripe-promotion-code/services/stripe-promotion-code-api.service.js +8 -6
  58. package/dist/foundations/stripe-promotion-code/services/stripe-promotion-code-api.service.js.map +1 -1
  59. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"community.summariser.module.d.ts","sourceRoot":"","sources":["../../../src/agents/community.summariser/community.summariser.module.ts"],"names":[],"mappings":"AAWA,qBAUa,yBAAyB;CAAG"}
1
+ {"version":3,"file":"community.summariser.module.d.ts","sourceRoot":"","sources":["../../../src/agents/community.summariser/community.summariser.module.ts"],"names":[],"mappings":"AAYA,qBAWa,yBAAyB;CAAG"}
@@ -12,6 +12,7 @@ const common_1 = require("@nestjs/common");
12
12
  const config_1 = require("../../config");
13
13
  const llm_module_1 = require("../../core/llm/llm.module");
14
14
  const logging_module_1 = require("../../core/logging/logging.module");
15
+ const company_module_1 = require("../../foundations/company/company.module");
15
16
  const community_module_1 = require("../../foundations/community/community.module");
16
17
  const conditional_service_decorator_1 = require("../../common/decorators/conditional-service.decorator");
17
18
  const community_summariser_processor_1 = require("./processors/community.summariser.processor");
@@ -26,6 +27,7 @@ exports.CommunitySummariserModule = CommunitySummariserModule = __decorate([
26
27
  llm_module_1.LLMModule,
27
28
  logging_module_1.LoggingModule,
28
29
  community_module_1.CommunityModule,
30
+ company_module_1.CompanyModule,
29
31
  bullmq_1.BullModule.registerQueue({ name: config_1.QueueId.COMMUNITY_SUMMARISER }),
30
32
  ],
31
33
  providers: [community_summariser_service_1.CommunitySummariserService, community_summariser_processor_1.CommunitySummariserProcessor, (0, conditional_service_decorator_1.createWorkerProvider)(community_summariser_cron_1.CommunitySummariserCron)],
@@ -1 +1 @@
1
- {"version":3,"file":"community.summariser.module.js","sourceRoot":"","sources":["../../../src/agents/community.summariser/community.summariser.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAA4C;AAC5C,2CAAwC;AACxC,yCAAuC;AACvC,0DAAsD;AACtD,sEAAkE;AAClE,mFAA+E;AAC/E,yGAA6F;AAC7F,gGAA2F;AAC3F,0FAAqF;AACrF,gFAA2E;AAYpE,IAAM,yBAAyB,GAA/B,MAAM,yBAAyB;CAAG,CAAA;AAA5B,8DAAyB;oCAAzB,yBAAyB;IAVrC,IAAA,eAAM,EAAC;QACN,OAAO,EAAE;YACP,sBAAS;YACT,8BAAa;YACb,kCAAe;YACf,mBAAU,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,gBAAO,CAAC,oBAAoB,EAAE,CAAC;SACjE;QACD,SAAS,EAAE,CAAC,yDAA0B,EAAE,6DAA4B,EAAE,IAAA,oDAAoB,EAAC,mDAAuB,CAAC,CAAC;QACpH,OAAO,EAAE,CAAC,yDAA0B,CAAC;KACtC,CAAC;GACW,yBAAyB,CAAG"}
1
+ {"version":3,"file":"community.summariser.module.js","sourceRoot":"","sources":["../../../src/agents/community.summariser/community.summariser.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAA4C;AAC5C,2CAAwC;AACxC,yCAAuC;AACvC,0DAAsD;AACtD,sEAAkE;AAClE,6EAAyE;AACzE,mFAA+E;AAC/E,yGAA6F;AAC7F,gGAA2F;AAC3F,0FAAqF;AACrF,gFAA2E;AAapE,IAAM,yBAAyB,GAA/B,MAAM,yBAAyB;CAAG,CAAA;AAA5B,8DAAyB;oCAAzB,yBAAyB;IAXrC,IAAA,eAAM,EAAC;QACN,OAAO,EAAE;YACP,sBAAS;YACT,8BAAa;YACb,kCAAe;YACf,8BAAa;YACb,mBAAU,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,gBAAO,CAAC,oBAAoB,EAAE,CAAC;SACjE;QACD,SAAS,EAAE,CAAC,yDAA0B,EAAE,6DAA4B,EAAE,IAAA,oDAAoB,EAAC,mDAAuB,CAAC,CAAC;QACpH,OAAO,EAAE,CAAC,yDAA0B,CAAC;KACtC,CAAC;GACW,yBAAyB,CAAG"}
@@ -2,6 +2,9 @@ import { WorkerHost } from "@nestjs/bullmq";
2
2
  import { Job } from "bullmq";
3
3
  import { ClsService } from "nestjs-cls";
4
4
  import { AppLoggingService } from "../../../core/logging/services/logging.service";
5
+ import { WebSocketService } from "../../../core/websocket/services/websocket.service";
6
+ import { CompanyService } from "../../../foundations/company/services/company.service";
7
+ import { CommunityRepository } from "../../../foundations/community/repositories/community.repository";
5
8
  import { CommunitySummariserService } from "../services/community.summariser.service";
6
9
  interface CommunitySummariserJobData {
7
10
  communityId: string;
@@ -11,7 +14,10 @@ export declare class CommunitySummariserProcessor extends WorkerHost {
11
14
  private readonly summariserService;
12
15
  private readonly cls;
13
16
  private readonly logger;
14
- constructor(summariserService: CommunitySummariserService, cls: ClsService, logger: AppLoggingService);
17
+ private readonly companyService;
18
+ private readonly communityRepository;
19
+ private readonly webSocketService;
20
+ constructor(summariserService: CommunitySummariserService, cls: ClsService, logger: AppLoggingService, companyService: CompanyService, communityRepository: CommunityRepository, webSocketService: WebSocketService);
15
21
  onActive(job: Job): void;
16
22
  onError(job: Job): void;
17
23
  onCompleted(job: Job): void;
@@ -1 +1 @@
1
- {"version":3,"file":"community.summariser.processor.d.ts","sourceRoot":"","sources":["../../../../src/agents/community.summariser/processors/community.summariser.processor.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACtE,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,OAAO,EAAE,iBAAiB,EAAE,MAAM,gDAAgD,CAAC;AACnF,OAAO,EAAE,0BAA0B,EAAE,MAAM,0CAA0C,CAAC;AAEtF,UAAU,0BAA0B;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,qBACa,4BAA6B,SAAQ,UAAU;IAExD,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAFN,iBAAiB,EAAE,0BAA0B,EAC7C,GAAG,EAAE,UAAU,EACf,MAAM,EAAE,iBAAiB;IAM5C,QAAQ,CAAC,GAAG,EAAE,GAAG;IAKjB,OAAO,CAAC,GAAG,EAAE,GAAG;IAOhB,WAAW,CAAC,GAAG,EAAE,GAAG;IAId,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,0BAA0B,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;CAgBnE"}
1
+ {"version":3,"file":"community.summariser.processor.d.ts","sourceRoot":"","sources":["../../../../src/agents/community.summariser/processors/community.summariser.processor.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACtE,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,OAAO,EAAE,iBAAiB,EAAE,MAAM,gDAAgD,CAAC;AACnF,OAAO,EAAE,gBAAgB,EAAE,MAAM,oDAAoD,CAAC;AACtF,OAAO,EAAE,cAAc,EAAE,MAAM,uDAAuD,CAAC;AACvF,OAAO,EAAE,mBAAmB,EAAE,MAAM,kEAAkE,CAAC;AACvG,OAAO,EAAE,0BAA0B,EAAE,MAAM,0CAA0C,CAAC;AAEtF,UAAU,0BAA0B;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,qBACa,4BAA6B,SAAQ,UAAU;IAExD,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,mBAAmB;IACpC,OAAO,CAAC,QAAQ,CAAC,gBAAgB;gBALhB,iBAAiB,EAAE,0BAA0B,EAC7C,GAAG,EAAE,UAAU,EACf,MAAM,EAAE,iBAAiB,EACzB,cAAc,EAAE,cAAc,EAC9B,mBAAmB,EAAE,mBAAmB,EACxC,gBAAgB,EAAE,gBAAgB;IAMrD,QAAQ,CAAC,GAAG,EAAE,GAAG;IAKjB,OAAO,CAAC,GAAG,EAAE,GAAG;IAOhB,WAAW,CAAC,GAAG,EAAE,GAAG;IAId,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,0BAA0B,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;CAkCnE"}
@@ -15,13 +15,19 @@ const bullmq_2 = require("bullmq");
15
15
  const nestjs_cls_1 = require("nestjs-cls");
16
16
  const config_1 = require("../../../config");
17
17
  const logging_service_1 = require("../../../core/logging/services/logging.service");
18
+ const websocket_service_1 = require("../../../core/websocket/services/websocket.service");
19
+ const company_service_1 = require("../../../foundations/company/services/company.service");
20
+ const community_repository_1 = require("../../../foundations/community/repositories/community.repository");
18
21
  const community_summariser_service_1 = require("../services/community.summariser.service");
19
22
  let CommunitySummariserProcessor = class CommunitySummariserProcessor extends bullmq_1.WorkerHost {
20
- constructor(summariserService, cls, logger) {
23
+ constructor(summariserService, cls, logger, companyService, communityRepository, webSocketService) {
21
24
  super();
22
25
  this.summariserService = summariserService;
23
26
  this.cls = cls;
24
27
  this.logger = logger;
28
+ this.companyService = companyService;
29
+ this.communityRepository = communityRepository;
30
+ this.webSocketService = webSocketService;
25
31
  }
26
32
  onActive(job) {
27
33
  this.logger.debug(`Processing community summariser job ${job.name} (ID: ${job.id})`);
@@ -36,6 +42,18 @@ let CommunitySummariserProcessor = class CommunitySummariserProcessor extends bu
36
42
  const { communityId, companyId } = job.data;
37
43
  await this.cls.run(async () => {
38
44
  this.cls.set("companyId", companyId);
45
+ if (!(await this.companyService.hasAvailableCredits({ companyId }))) {
46
+ // Leave isStale set; flag pendingCredits so the 10-minute cron stops
47
+ // re-enqueueing it (spec §2: a fresh top-up must not be silently eaten).
48
+ await this.communityRepository.markPendingCredits(communityId);
49
+ // Deferrals happen without spend, so the frontend needs this push (spec §4.5).
50
+ await this.webSocketService.sendMessageToCompany(companyId, "company:ai_backlog_updated", {
51
+ type: "company:ai_backlog_updated",
52
+ companyId,
53
+ });
54
+ this.logger.log(`Deferred community summarisation for community ${communityId} (company ${companyId}) — no available credits`, "CommunitySummariserProcessor");
55
+ return;
56
+ }
39
57
  this.logger.log(`Starting community summarisation for community ${communityId} (company ${companyId})`, "CommunitySummariserProcessor");
40
58
  await this.summariserService.generateSummaryById(communityId);
41
59
  this.logger.log(`Completed community summarisation for community ${communityId}`, "CommunitySummariserProcessor");
@@ -65,6 +83,9 @@ exports.CommunitySummariserProcessor = CommunitySummariserProcessor = __decorate
65
83
  (0, bullmq_1.Processor)(config_1.QueueId.COMMUNITY_SUMMARISER, { concurrency: 1, lockDuration: 1000 * 60 * 5 }),
66
84
  __metadata("design:paramtypes", [community_summariser_service_1.CommunitySummariserService,
67
85
  nestjs_cls_1.ClsService,
68
- logging_service_1.AppLoggingService])
86
+ logging_service_1.AppLoggingService,
87
+ company_service_1.CompanyService,
88
+ community_repository_1.CommunityRepository,
89
+ websocket_service_1.WebSocketService])
69
90
  ], CommunitySummariserProcessor);
70
91
  //# sourceMappingURL=community.summariser.processor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"community.summariser.processor.js","sourceRoot":"","sources":["../../../../src/agents/community.summariser/processors/community.summariser.processor.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAAsE;AACtE,mCAA6B;AAC7B,2CAAwC;AACxC,4CAA0C;AAC1C,oFAAmF;AACnF,2FAAsF;AAQ/E,IAAM,4BAA4B,GAAlC,MAAM,4BAA6B,SAAQ,mBAAU;IAC1D,YACmB,iBAA6C,EAC7C,GAAe,EACf,MAAyB;QAE1C,KAAK,EAAE,CAAC;QAJS,sBAAiB,GAAjB,iBAAiB,CAA4B;QAC7C,QAAG,GAAH,GAAG,CAAY;QACf,WAAM,GAAN,MAAM,CAAmB;IAG5C,CAAC;IAGD,QAAQ,CAAC,GAAQ;QACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,uCAAuC,GAAG,CAAC,IAAI,SAAS,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;IACvF,CAAC;IAGD,OAAO,CAAC,GAAQ;QACd,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,6CAA6C,GAAG,CAAC,IAAI,SAAS,GAAG,CAAC,EAAE,cAAc,GAAG,CAAC,YAAY,EAAE,CACrG,CAAC;IACJ,CAAC;IAGD,WAAW,CAAC,GAAQ;QAClB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,sCAAsC,GAAG,CAAC,IAAI,SAAS,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;IACtF,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,GAAoC;QAChD,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC;QAE5C,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE;YAC5B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;YAErC,IAAI,CAAC,MAAM,CAAC,GAAG,CACb,kDAAkD,WAAW,aAAa,SAAS,GAAG,EACtF,8BAA8B,CAC/B,CAAC;YAEF,MAAM,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;YAE9D,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,mDAAmD,WAAW,EAAE,EAAE,8BAA8B,CAAC,CAAC;QACpH,CAAC,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AA1CY,oEAA4B;AAUvC;IADC,IAAA,sBAAa,EAAC,QAAQ,CAAC;;qCACV,YAAG;;4DAEhB;AAGD;IADC,IAAA,sBAAa,EAAC,QAAQ,CAAC;;qCACX,YAAG;;2DAIf;AAGD;IADC,IAAA,sBAAa,EAAC,WAAW,CAAC;;qCACV,YAAG;;+DAEnB;uCAxBU,4BAA4B;IADxC,IAAA,kBAAS,EAAC,gBAAO,CAAC,oBAAoB,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,IAAI,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;qCAGjD,yDAA0B;QACxC,uBAAU;QACP,mCAAiB;GAJjC,4BAA4B,CA0CxC"}
1
+ {"version":3,"file":"community.summariser.processor.js","sourceRoot":"","sources":["../../../../src/agents/community.summariser/processors/community.summariser.processor.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAAsE;AACtE,mCAA6B;AAC7B,2CAAwC;AACxC,4CAA0C;AAC1C,oFAAmF;AACnF,0FAAsF;AACtF,2FAAuF;AACvF,2GAAuG;AACvG,2FAAsF;AAQ/E,IAAM,4BAA4B,GAAlC,MAAM,4BAA6B,SAAQ,mBAAU;IAC1D,YACmB,iBAA6C,EAC7C,GAAe,EACf,MAAyB,EACzB,cAA8B,EAC9B,mBAAwC,EACxC,gBAAkC;QAEnD,KAAK,EAAE,CAAC;QAPS,sBAAiB,GAAjB,iBAAiB,CAA4B;QAC7C,QAAG,GAAH,GAAG,CAAY;QACf,WAAM,GAAN,MAAM,CAAmB;QACzB,mBAAc,GAAd,cAAc,CAAgB;QAC9B,wBAAmB,GAAnB,mBAAmB,CAAqB;QACxC,qBAAgB,GAAhB,gBAAgB,CAAkB;IAGrD,CAAC;IAGD,QAAQ,CAAC,GAAQ;QACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,uCAAuC,GAAG,CAAC,IAAI,SAAS,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;IACvF,CAAC;IAGD,OAAO,CAAC,GAAQ;QACd,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,6CAA6C,GAAG,CAAC,IAAI,SAAS,GAAG,CAAC,EAAE,cAAc,GAAG,CAAC,YAAY,EAAE,CACrG,CAAC;IACJ,CAAC;IAGD,WAAW,CAAC,GAAQ;QAClB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,sCAAsC,GAAG,CAAC,IAAI,SAAS,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;IACtF,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,GAAoC;QAChD,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC;QAE5C,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE;YAC5B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;YAErC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC;gBACpE,qEAAqE;gBACrE,yEAAyE;gBACzE,MAAM,IAAI,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC;gBAE/D,+EAA+E;gBAC/E,MAAM,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,SAAS,EAAE,4BAA4B,EAAE;oBACxF,IAAI,EAAE,4BAA4B;oBAClC,SAAS;iBACV,CAAC,CAAC;gBAEH,IAAI,CAAC,MAAM,CAAC,GAAG,CACb,kDAAkD,WAAW,aAAa,SAAS,0BAA0B,EAC7G,8BAA8B,CAC/B,CAAC;gBACF,OAAO;YACT,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,GAAG,CACb,kDAAkD,WAAW,aAAa,SAAS,GAAG,EACtF,8BAA8B,CAC/B,CAAC;YAEF,MAAM,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;YAE9D,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,mDAAmD,WAAW,EAAE,EAAE,8BAA8B,CAAC,CAAC;QACpH,CAAC,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AA/DY,oEAA4B;AAavC;IADC,IAAA,sBAAa,EAAC,QAAQ,CAAC;;qCACV,YAAG;;4DAEhB;AAGD;IADC,IAAA,sBAAa,EAAC,QAAQ,CAAC;;qCACX,YAAG;;2DAIf;AAGD;IADC,IAAA,sBAAa,EAAC,WAAW,CAAC;;qCACV,YAAG;;+DAEnB;uCA3BU,4BAA4B;IADxC,IAAA,kBAAS,EAAC,gBAAO,CAAC,oBAAoB,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,IAAI,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;qCAGjD,yDAA0B;QACxC,uBAAU;QACP,mCAAiB;QACT,gCAAc;QACT,0CAAmB;QACtB,oCAAgB;GAP1C,4BAA4B,CA+DxC"}
@@ -1,8 +1,36 @@
1
+ /**
2
+ * Two AI-status vocabularies coexist in this codebase — DO NOT unify them:
3
+ *
4
+ * - `AiStatus` (this enum) is the CHUNK-level vocabulary (lowercase snake_case
5
+ * values) used by content-chunking / transcription pipelines.
6
+ * - `EntityAiStatus` (below) is the ENTITY-level vocabulary (PascalCase values)
7
+ * already persisted on narr8's 13 KG entities (Campaign, Clue, Consequence,
8
+ * Decision, Event, Faction, Goal, Item, Location, Npc, Pc, Secret, Threat).
9
+ *
10
+ * Stored values in both are PERMANENT — once written to Neo4j they may never be
11
+ * renamed, only appended to. This mirrors the precedent set by
12
+ * `Narr8TokenUsageType`.
13
+ */
1
14
  export declare enum AiStatus {
2
15
  Pending = "pending",
3
16
  InProgress = "in_progress",
4
17
  Completed = "completed",
5
18
  Failed = "failed",
6
- Summarising = "summarising"
19
+ Summarising = "summarising",
20
+ PendingCredits = "pending_credits",
21
+ Discarded = "discarded"
7
22
  }
23
+ /**
24
+ * Entity-level AI status vocabulary (PascalCase values are what narr8's 13 KG
25
+ * entities already store). VALUES ARE PERMANENT — see the vocabulary note above.
26
+ */
27
+ export declare const EntityAiStatus: {
28
+ readonly Pending: "Pending";
29
+ readonly Summarising: "Summarising";
30
+ readonly Completed: "Completed";
31
+ readonly Failed: "Failed";
32
+ readonly PendingCredits: "PendingCredits";
33
+ readonly Discarded: "Discarded";
34
+ };
35
+ export type EntityAiStatus = (typeof EntityAiStatus)[keyof typeof EntityAiStatus];
8
36
  //# sourceMappingURL=ai.status.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ai.status.d.ts","sourceRoot":"","sources":["../../../src/common/enums/ai.status.ts"],"names":[],"mappings":"AAAA,oBAAY,QAAQ;IAClB,OAAO,YAAY;IACnB,UAAU,gBAAgB;IAC1B,SAAS,cAAc;IACvB,MAAM,WAAW;IACjB,WAAW,gBAAgB;CAC5B"}
1
+ {"version":3,"file":"ai.status.d.ts","sourceRoot":"","sources":["../../../src/common/enums/ai.status.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,oBAAY,QAAQ;IAClB,OAAO,YAAY;IACnB,UAAU,gBAAgB;IAC1B,SAAS,cAAc;IACvB,MAAM,WAAW;IACjB,WAAW,gBAAgB;IAC3B,cAAc,oBAAoB;IAClC,SAAS,cAAc;CACxB;AAED;;;GAGG;AACH,eAAO,MAAM,cAAc;;;;;;;CAOjB,CAAC;AAEX,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,OAAO,cAAc,CAAC,CAAC"}
@@ -1,6 +1,19 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AiStatus = void 0;
3
+ exports.EntityAiStatus = exports.AiStatus = void 0;
4
+ /**
5
+ * Two AI-status vocabularies coexist in this codebase — DO NOT unify them:
6
+ *
7
+ * - `AiStatus` (this enum) is the CHUNK-level vocabulary (lowercase snake_case
8
+ * values) used by content-chunking / transcription pipelines.
9
+ * - `EntityAiStatus` (below) is the ENTITY-level vocabulary (PascalCase values)
10
+ * already persisted on narr8's 13 KG entities (Campaign, Clue, Consequence,
11
+ * Decision, Event, Faction, Goal, Item, Location, Npc, Pc, Secret, Threat).
12
+ *
13
+ * Stored values in both are PERMANENT — once written to Neo4j they may never be
14
+ * renamed, only appended to. This mirrors the precedent set by
15
+ * `Narr8TokenUsageType`.
16
+ */
4
17
  var AiStatus;
5
18
  (function (AiStatus) {
6
19
  AiStatus["Pending"] = "pending";
@@ -8,5 +21,19 @@ var AiStatus;
8
21
  AiStatus["Completed"] = "completed";
9
22
  AiStatus["Failed"] = "failed";
10
23
  AiStatus["Summarising"] = "summarising";
24
+ AiStatus["PendingCredits"] = "pending_credits";
25
+ AiStatus["Discarded"] = "discarded";
11
26
  })(AiStatus || (exports.AiStatus = AiStatus = {}));
27
+ /**
28
+ * Entity-level AI status vocabulary (PascalCase values are what narr8's 13 KG
29
+ * entities already store). VALUES ARE PERMANENT — see the vocabulary note above.
30
+ */
31
+ exports.EntityAiStatus = {
32
+ Pending: "Pending",
33
+ Summarising: "Summarising",
34
+ Completed: "Completed",
35
+ Failed: "Failed",
36
+ PendingCredits: "PendingCredits",
37
+ Discarded: "Discarded",
38
+ };
12
39
  //# sourceMappingURL=ai.status.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ai.status.js","sourceRoot":"","sources":["../../../src/common/enums/ai.status.ts"],"names":[],"mappings":";;;AAAA,IAAY,QAMX;AAND,WAAY,QAAQ;IAClB,+BAAmB,CAAA;IACnB,sCAA0B,CAAA;IAC1B,mCAAuB,CAAA;IACvB,6BAAiB,CAAA;IACjB,uCAA2B,CAAA;AAC7B,CAAC,EANW,QAAQ,wBAAR,QAAQ,QAMnB"}
1
+ {"version":3,"file":"ai.status.js","sourceRoot":"","sources":["../../../src/common/enums/ai.status.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;GAYG;AACH,IAAY,QAQX;AARD,WAAY,QAAQ;IAClB,+BAAmB,CAAA;IACnB,sCAA0B,CAAA;IAC1B,mCAAuB,CAAA;IACvB,6BAAiB,CAAA;IACjB,uCAA2B,CAAA;IAC3B,8CAAkC,CAAA;IAClC,mCAAuB,CAAA;AACzB,CAAC,EARW,QAAQ,wBAAR,QAAQ,QAQnB;AAED;;;GAGG;AACU,QAAA,cAAc,GAAG;IAC5B,OAAO,EAAE,SAAS;IAClB,WAAW,EAAE,aAAa;IAC1B,SAAS,EAAE,WAAW;IACtB,MAAM,EAAE,QAAQ;IAChB,cAAc,EAAE,gBAAgB;IAChC,SAAS,EAAE,WAAW;CACd,CAAC"}
@@ -80,4 +80,24 @@ export interface TokenUsageRecorderInterface {
80
80
  costOverride?: number;
81
81
  }): Promise<void>;
82
82
  }
83
+ /**
84
+ * Application-provided seam for gating AI operations on available company
85
+ * credits. Mirrors `TOKEN_USAGE_RECORDER` above: package code that needs to
86
+ * enforce the credit gate resolves this OPTIONAL token rather than injecting
87
+ * `CompanyService` directly, so consumers that never register a provider see
88
+ * unchanged (ungated) behaviour.
89
+ *
90
+ * `validateCredits` MUST throw `HttpException("NO_CREDITS", HttpStatus.PAYMENT_REQUIRED)`
91
+ * when the company has no available credits, and MUST be a no-op (never throw)
92
+ * when credits are disabled (`creditCost <= 0`).
93
+ */
94
+ export declare const CREDIT_VALIDATOR: unique symbol;
95
+ /**
96
+ * Contract implemented by an application-provided credit validator.
97
+ */
98
+ export interface CreditValidatorInterface {
99
+ validateCredits(params: {
100
+ companyId: string;
101
+ }): Promise<void>;
102
+ }
83
103
  //# sourceMappingURL=tokens.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../../src/common/tokens.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAE9E;;;;GAIG;AAGH,eAAO,MAAM,YAAY,eAAyB,CAAC;AAEnD;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,aAAa,EAAE,MAAM,CAAC;IACtB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;CACvB;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,iBAAiB,eAA8B,CAAC;AAE7D;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,eAAe,CAAC,MAAM,EAAE;QAAE,OAAO,EAAE,GAAG,CAAC;QAAC,OAAO,EAAE,gBAAgB,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CAC5F;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,oBAAoB,eAAiC,CAAC;AAEnE;;;;;;GAMG;AACH,MAAM,WAAW,2BAA2B;IAC1C,gBAAgB,CAAC,MAAM,EAAE;QACvB,MAAM,EAAE,mBAAmB,CAAC;QAC5B,IAAI,EAAE,MAAM,CAAC;QACb,cAAc,EAAE,MAAM,CAAC;QACvB,gBAAgB,EAAE,MAAM,CAAC;QACzB,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,WAAW,CAAC,EAAE,WAAW,CAAC;QAC1B,sJAAsJ;QACtJ,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,6HAA6H;QAC7H,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACnB"}
1
+ {"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../../src/common/tokens.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAE9E;;;;GAIG;AAGH,eAAO,MAAM,YAAY,eAAyB,CAAC;AAEnD;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,aAAa,EAAE,MAAM,CAAC;IACtB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;CACvB;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,iBAAiB,eAA8B,CAAC;AAE7D;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,eAAe,CAAC,MAAM,EAAE;QAAE,OAAO,EAAE,GAAG,CAAC;QAAC,OAAO,EAAE,gBAAgB,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CAC5F;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,oBAAoB,eAAiC,CAAC;AAEnE;;;;;;GAMG;AACH,MAAM,WAAW,2BAA2B;IAC1C,gBAAgB,CAAC,MAAM,EAAE;QACvB,MAAM,EAAE,mBAAmB,CAAC;QAC5B,IAAI,EAAE,MAAM,CAAC;QACb,cAAc,EAAE,MAAM,CAAC;QACvB,gBAAgB,EAAE,MAAM,CAAC;QACzB,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,WAAW,CAAC,EAAE,WAAW,CAAC;QAC1B,sJAAsJ;QACtJ,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,6HAA6H;QAC7H,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACnB;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,gBAAgB,eAA6B,CAAC;AAE3D;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,eAAe,CAAC,MAAM,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/D"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TOKEN_USAGE_RECORDER = exports.AUTH_CONTEXT_HOOK = exports.SYSTEM_ROLES = void 0;
3
+ exports.CREDIT_VALIDATOR = exports.TOKEN_USAGE_RECORDER = exports.AUTH_CONTEXT_HOOK = exports.SYSTEM_ROLES = void 0;
4
4
  /**
5
5
  * Injection tokens for common module dependencies
6
6
  *
@@ -44,4 +44,16 @@ exports.AUTH_CONTEXT_HOOK = Symbol("AUTH_CONTEXT_HOOK");
44
44
  * `AudioLLMService`.
45
45
  */
46
46
  exports.TOKEN_USAGE_RECORDER = Symbol("TOKEN_USAGE_RECORDER");
47
+ /**
48
+ * Application-provided seam for gating AI operations on available company
49
+ * credits. Mirrors `TOKEN_USAGE_RECORDER` above: package code that needs to
50
+ * enforce the credit gate resolves this OPTIONAL token rather than injecting
51
+ * `CompanyService` directly, so consumers that never register a provider see
52
+ * unchanged (ungated) behaviour.
53
+ *
54
+ * `validateCredits` MUST throw `HttpException("NO_CREDITS", HttpStatus.PAYMENT_REQUIRED)`
55
+ * when the company has no available credits, and MUST be a no-op (never throw)
56
+ * when credits are disabled (`creditCost <= 0`).
57
+ */
58
+ exports.CREDIT_VALIDATOR = Symbol("CREDIT_VALIDATOR");
47
59
  //# sourceMappingURL=tokens.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tokens.js","sourceRoot":"","sources":["../../src/common/tokens.ts"],"names":[],"mappings":";;;AAIA;;;;GAIG;AAEH,8BAA8B;AACjB,QAAA,YAAY,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;AAUnD;;;;;;;;;GASG;AACU,QAAA,iBAAiB,GAAG,MAAM,CAAC,mBAAmB,CAAC,CAAC;AAS7D;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACU,QAAA,oBAAoB,GAAG,MAAM,CAAC,sBAAsB,CAAC,CAAC"}
1
+ {"version":3,"file":"tokens.js","sourceRoot":"","sources":["../../src/common/tokens.ts"],"names":[],"mappings":";;;AAIA;;;;GAIG;AAEH,8BAA8B;AACjB,QAAA,YAAY,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;AAUnD;;;;;;;;;GASG;AACU,QAAA,iBAAiB,GAAG,MAAM,CAAC,mBAAmB,CAAC,CAAC;AAS7D;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACU,QAAA,oBAAoB,GAAG,MAAM,CAAC,sBAAsB,CAAC,CAAC;AAwBnE;;;;;;;;;;GAUG;AACU,QAAA,gBAAgB,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { FastifyReply } from "fastify";
2
2
  import { AuthenticatedRequest } from "../../../common/interfaces/authenticated.request.interface";
3
+ import { CreditValidatorInterface } from "../../../common/tokens";
3
4
  import { JsonApiService } from "../../../core/jsonapi/services/jsonapi.service";
4
5
  import { AssistantAppendDto } from "../dtos/assistant-append.dto";
5
6
  import { AssistantPatchDto } from "../dtos/assistant-patch.dto";
@@ -27,9 +28,10 @@ export declare function mergeIncluded(base: unknown[] | undefined, additions: un
27
28
  export declare class AssistantController {
28
29
  private readonly assistants;
29
30
  private readonly jsonApi;
31
+ private readonly creditValidator?;
30
32
  private readonly logger;
31
33
  private readonly crud;
32
- constructor(assistants: AssistantService, jsonApi: JsonApiService);
34
+ constructor(assistants: AssistantService, jsonApi: JsonApiService, creditValidator?: CreditValidatorInterface);
33
35
  /**
34
36
  * POST /assistants — create a new assistant thread with a first user message.
35
37
  *
@@ -1 +1 @@
1
- {"version":3,"file":"assistant.controller.d.ts","sourceRoot":"","sources":["../../../../src/foundations/assistant/controllers/assistant.controller.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAGvC,OAAO,EAAE,oBAAoB,EAAE,MAAM,4DAA4D,CAAC;AAElG,OAAO,EAAE,cAAc,EAAE,MAAM,gDAAgD,CAAC;AAChF,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAK9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAEjE;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,OAAO,EAAE,GAAG,SAAS,EAC3B,SAAS,EAAE,OAAO,EAAE,GAAG,SAAS,EAChC,eAAe,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,GACnD,GAAG,EAAE,CA0BP;AAED,qBAEa,mBAAmB;IAK5B,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,OAAO;IAL1B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwC;IAC/D,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA6C;gBAG/C,UAAU,EAAE,gBAAgB,EAC5B,OAAO,EAAE,cAAc;IAG1C;;;;;;;OAOG;IAEG,MAAM,CAAS,IAAI,EAAE,gBAAgB,EAAS,GAAG,EAAE,oBAAoB,GAAG,OAAO,CAAC,GAAG,CAAC;IAuC5F;;;;;OAKG;IAEG,MAAM,CACY,WAAW,EAAE,MAAM,EACjC,IAAI,EAAE,kBAAkB,EACzB,GAAG,EAAE,oBAAoB,GAC/B,OAAO,CAAC,GAAG,CAAC;IAoBf;;;;;;;;OAQG;IAEG,OAAO,CACJ,KAAK,EAAE,YAAY,EACjB,KAAK,EAAE,GAAG,EACF,MAAM,CAAC,EAAE,MAAM,EACb,QAAQ,CAAC,EAAE,OAAO,EACnB,OAAO,CAAC,EAAE,MAAM,EACd,SAAS,CAAC,EAAE,MAAM,EACpB,OAAO,CAAC,EAAE,MAAM;IAapC;;;;;OAKG;IACH,OAAO,CAAC,mBAAmB;IAS3B;;OAEG;IAEG,QAAQ,CAAQ,KAAK,EAAE,YAAY,EAAwB,WAAW,EAAE,MAAM;IAIpF;;OAEG;IAEG,KAAK,CAAQ,KAAK,EAAE,YAAY,EAAU,IAAI,EAAE,iBAAiB;IAIvE;;OAEG;IAGG,MAAM,CAAQ,KAAK,EAAE,YAAY,EAAwB,WAAW,EAAE,MAAM;CAGnF"}
1
+ {"version":3,"file":"assistant.controller.d.ts","sourceRoot":"","sources":["../../../../src/foundations/assistant/controllers/assistant.controller.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAGvC,OAAO,EAAE,oBAAoB,EAAE,MAAM,4DAA4D,CAAC;AAElG,OAAO,EAAoB,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AACpF,OAAO,EAAE,cAAc,EAAE,MAAM,gDAAgD,CAAC;AAChF,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAK9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAEjE;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,OAAO,EAAE,GAAG,SAAS,EAC3B,SAAS,EAAE,OAAO,EAAE,GAAG,SAAS,EAChC,eAAe,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,GACnD,GAAG,EAAE,CA0BP;AAED,qBAEa,mBAAmB;IAK5B,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,OAAO;IACc,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC;IANzE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwC;IAC/D,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA6C;gBAG/C,UAAU,EAAE,gBAAgB,EAC5B,OAAO,EAAE,cAAc,EACe,eAAe,CAAC,EAAE,wBAAwB;IAGnG;;;;;;;OAOG;IAEG,MAAM,CAAS,IAAI,EAAE,gBAAgB,EAAS,GAAG,EAAE,oBAAoB,GAAG,OAAO,CAAC,GAAG,CAAC;IA0C5F;;;;;OAKG;IAEG,MAAM,CACY,WAAW,EAAE,MAAM,EACjC,IAAI,EAAE,kBAAkB,EACzB,GAAG,EAAE,oBAAoB,GAC/B,OAAO,CAAC,GAAG,CAAC;IAuBf;;;;;;;;OAQG;IAEG,OAAO,CACJ,KAAK,EAAE,YAAY,EACjB,KAAK,EAAE,GAAG,EACF,MAAM,CAAC,EAAE,MAAM,EACb,QAAQ,CAAC,EAAE,OAAO,EACnB,OAAO,CAAC,EAAE,MAAM,EACd,SAAS,CAAC,EAAE,MAAM,EACpB,OAAO,CAAC,EAAE,MAAM;IAapC;;;;;OAKG;IACH,OAAO,CAAC,mBAAmB;IAS3B;;OAEG;IAEG,QAAQ,CAAQ,KAAK,EAAE,YAAY,EAAwB,WAAW,EAAE,MAAM;IAIpF;;OAEG;IAEG,KAAK,CAAQ,KAAK,EAAE,YAAY,EAAU,IAAI,EAAE,iBAAiB;IAIvE;;OAEG;IAGG,MAAM,CAAQ,KAAK,EAAE,YAAY,EAAwB,WAAW,EAAE,MAAM;CAGnF"}
@@ -19,6 +19,7 @@ const common_1 = require("@nestjs/common");
19
19
  const jwt_auth_guard_1 = require("../../../common/guards/jwt.auth.guard");
20
20
  const crud_handlers_1 = require("../../../common/handlers/crud.handlers");
21
21
  const registry_1 = require("../../../common/registries/registry");
22
+ const tokens_1 = require("../../../common/tokens");
22
23
  const jsonapi_service_1 = require("../../../core/jsonapi/services/jsonapi.service");
23
24
  const assistant_append_dto_1 = require("../dtos/assistant-append.dto");
24
25
  const assistant_patch_dto_1 = require("../dtos/assistant-patch.dto");
@@ -72,9 +73,10 @@ function mergeIncluded(base, additions, stripBackrefsTo) {
72
73
  return Array.from(byKey.values());
73
74
  }
74
75
  let AssistantController = AssistantController_1 = class AssistantController {
75
- constructor(assistants, jsonApi) {
76
+ constructor(assistants, jsonApi, creditValidator) {
76
77
  this.assistants = assistants;
77
78
  this.jsonApi = jsonApi;
79
+ this.creditValidator = creditValidator;
78
80
  this.logger = new common_1.Logger(AssistantController_1.name);
79
81
  this.crud = (0, crud_handlers_1.createCrudHandlers)(() => this.assistants);
80
82
  }
@@ -87,6 +89,8 @@ let AssistantController = AssistantController_1 = class AssistantController {
87
89
  * a round-trip to render the initial thread).
88
90
  */
89
91
  async create(body, req) {
92
+ if (this.creditValidator && req.user?.companyId)
93
+ await this.creditValidator.validateCredits({ companyId: req.user.companyId });
90
94
  const { content, title, howToMode, limitToHowToId } = body.data.attributes;
91
95
  const boundContent = this.resolveBoundContent(body.data.relationships?.content?.data);
92
96
  this.logger.log(`create: userId=${req.user.userId} companyId=${req.user.companyId} firstMessageLen=${content.length}` +
@@ -129,6 +133,8 @@ let AssistantController = AssistantController_1 = class AssistantController {
129
133
  * in the document's `meta`.
130
134
  */
131
135
  async append(assistantId, body, req) {
136
+ if (this.creditValidator && req.user?.companyId)
137
+ await this.creditValidator.validateCredits({ companyId: req.user.companyId });
132
138
  const { content, howToMode, limitToHowToId } = body.data.attributes;
133
139
  this.logger.log(`append: assistantId=${assistantId} userId=${req.user.userId} messageLen=${content.length}`);
134
140
  const { userMessage, assistantMessage, toolCalls } = await this.assistants.appendMessage({
@@ -259,7 +265,9 @@ __decorate([
259
265
  exports.AssistantController = AssistantController = AssistantController_1 = __decorate([
260
266
  (0, common_1.UseGuards)(jwt_auth_guard_1.JwtAuthGuard),
261
267
  (0, common_1.Controller)(),
268
+ __param(2, (0, common_1.Optional)()),
269
+ __param(2, (0, common_1.Inject)(tokens_1.CREDIT_VALIDATOR)),
262
270
  __metadata("design:paramtypes", [assistant_service_1.AssistantService,
263
- jsonapi_service_1.JsonApiService])
271
+ jsonapi_service_1.JsonApiService, Object])
264
272
  ], AssistantController);
265
273
  //# sourceMappingURL=assistant.controller.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"assistant.controller.js","sourceRoot":"","sources":["../../../../src/foundations/assistant/controllers/assistant.controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"assistant.controller.js","sourceRoot":"","sources":["../../../../src/foundations/assistant/controllers/assistant.controller.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"chunk.module.d.ts","sourceRoot":"","sources":["../../../src/foundations/chunk/chunk.module.ts"],"names":[],"mappings":"AACA,OAAO,EAAU,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAgBtD;;;;;;;;;GASG;AACH,qBAqBa,WAAY,YAAW,YAAY;IAC9C,YAAY;CAGb"}
1
+ {"version":3,"file":"chunk.module.d.ts","sourceRoot":"","sources":["../../../src/foundations/chunk/chunk.module.ts"],"names":[],"mappings":"AACA,OAAO,EAAU,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAiBtD;;;;;;;;;GASG;AACH,qBAsBa,WAAY,YAAW,YAAY;IAC9C,YAAY;CAGb"}
@@ -14,6 +14,7 @@ const conditional_service_decorator_1 = require("../../common/decorators/conditi
14
14
  const registry_1 = require("../../common/registries/registry");
15
15
  const llm_module_1 = require("../../core/llm/llm.module");
16
16
  const atomicfact_module_1 = require("../atomicfact/atomicfact.module");
17
+ const company_module_1 = require("../company/company.module");
17
18
  const keyconcept_module_1 = require("../keyconcept/keyconcept.module");
18
19
  const s3_module_1 = require("../s3/s3.module");
19
20
  const tokenusage_module_1 = require("../tokenusage/tokenusage.module");
@@ -52,6 +53,7 @@ exports.ChunkModule = ChunkModule = __decorate([
52
53
  exports: [chunk_service_1.ChunkService, chunk_repository_1.ChunkRepository],
53
54
  imports: [
54
55
  atomicfact_module_1.AtomicFactModule,
56
+ company_module_1.CompanyModule,
55
57
  graph_creator_module_1.GraphCreatorModule,
56
58
  keyconcept_module_1.KeyConceptModule,
57
59
  s3_module_1.S3Module,
@@ -1 +1 @@
1
- {"version":3,"file":"chunk.module.js","sourceRoot":"","sources":["../../../src/foundations/chunk/chunk.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAA4C;AAC5C,2CAAsD;AACtD,0FAAqF;AACrF,yGAA6F;AAC7F,+DAAiE;AACjE,0DAAsD;AACtD,uEAAmE;AACnE,uEAAmE;AACnE,+CAA2C;AAC3C,uEAAmE;AACnE,qEAAiE;AACjE,0DAA0D;AAC1D,sFAAiF;AACjF,kEAA8D;AAC9D,sEAAkE;AAClE,4DAAwD;AAExD;;;;;;;;;GASG;AAsBI,IAAM,WAAW,GAAjB,MAAM,WAAW;IACtB,YAAY;QACV,wBAAa,CAAC,QAAQ,CAAC,8BAAe,CAAC,KAAK,CAAC,CAAC;IAChD,CAAC;CACF,CAAA;AAJY,kCAAW;sBAAX,WAAW;IArBvB,IAAA,eAAM,EAAC;QACN,WAAW,EAAE,CAAC,kCAAe,CAAC;QAC9B,SAAS,EAAE;YACT,8BAAe,CAAC,KAAK,CAAC,UAAU;YAChC,4BAAY;YACZ,kCAAe;YACf,IAAA,oDAAoB,EAAC,gCAAc,CAAC;YACpC,IAAA,oDAAoB,EAAC,mDAAuB,CAAC;SAC9C;QACD,OAAO,EAAE,CAAC,4BAAY,EAAE,kCAAe,CAAC;QACxC,OAAO,EAAE;YACP,oCAAgB;YAChB,yCAAkB;YAClB,oCAAgB;YAChB,oBAAQ;YACR,sBAAS;YACT,oCAAgB;YAChB,mBAAU,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC;YACtD,mBAAU,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE,CAAC;SAC5D;KACF,CAAC;GACW,WAAW,CAIvB"}
1
+ {"version":3,"file":"chunk.module.js","sourceRoot":"","sources":["../../../src/foundations/chunk/chunk.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAA4C;AAC5C,2CAAsD;AACtD,0FAAqF;AACrF,yGAA6F;AAC7F,+DAAiE;AACjE,0DAAsD;AACtD,uEAAmE;AACnE,8DAA0D;AAC1D,uEAAmE;AACnE,+CAA2C;AAC3C,uEAAmE;AACnE,qEAAiE;AACjE,0DAA0D;AAC1D,sFAAiF;AACjF,kEAA8D;AAC9D,sEAAkE;AAClE,4DAAwD;AAExD;;;;;;;;;GASG;AAuBI,IAAM,WAAW,GAAjB,MAAM,WAAW;IACtB,YAAY;QACV,wBAAa,CAAC,QAAQ,CAAC,8BAAe,CAAC,KAAK,CAAC,CAAC;IAChD,CAAC;CACF,CAAA;AAJY,kCAAW;sBAAX,WAAW;IAtBvB,IAAA,eAAM,EAAC;QACN,WAAW,EAAE,CAAC,kCAAe,CAAC;QAC9B,SAAS,EAAE;YACT,8BAAe,CAAC,KAAK,CAAC,UAAU;YAChC,4BAAY;YACZ,kCAAe;YACf,IAAA,oDAAoB,EAAC,gCAAc,CAAC;YACpC,IAAA,oDAAoB,EAAC,mDAAuB,CAAC;SAC9C;QACD,OAAO,EAAE,CAAC,4BAAY,EAAE,kCAAe,CAAC;QACxC,OAAO,EAAE;YACP,oCAAgB;YAChB,8BAAa;YACb,yCAAkB;YAClB,oCAAgB;YAChB,oBAAQ;YACR,sBAAS;YACT,oCAAgB;YAChB,mBAAU,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC;YACtD,mBAAU,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE,CAAC;SAC5D;KACF,CAAC;GACW,WAAW,CAIvB"}
@@ -4,13 +4,15 @@ import { Job } from "bullmq";
4
4
  import { ClsService } from "nestjs-cls";
5
5
  import { BaseConfigInterface } from "../../../config/interfaces/base.config.interface";
6
6
  import { EmbedderService } from "../../../core";
7
+ import { CompanyService } from "../../company/services/company.service";
7
8
  import { ChunkRepository } from "../repositories/chunk.repository";
8
9
  export declare class ChunkEmbeddingProcessor extends WorkerHost {
9
10
  private readonly clsService;
10
11
  private readonly chunkRepository;
11
12
  private readonly embedderService;
13
+ private readonly companyService;
12
14
  private readonly rebuildChunksJobName;
13
- constructor(clsService: ClsService, chunkRepository: ChunkRepository, embedderService: EmbedderService, configService: ConfigService<BaseConfigInterface>);
15
+ constructor(clsService: ClsService, chunkRepository: ChunkRepository, embedderService: EmbedderService, companyService: CompanyService, configService: ConfigService<BaseConfigInterface>);
14
16
  onActive(job: Job): void;
15
17
  onError(job: Job): void;
16
18
  onCompleted(job: Job): void;
@@ -1 +1 @@
1
- {"version":3,"file":"chunk.embedding.processor.d.ts","sourceRoot":"","sources":["../../../../src/foundations/chunk/processors/chunk.embedding.processor.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,kDAAkD,CAAC;AACvF,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAInE,qBACa,uBAAwB,SAAQ,UAAU;IAInD,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,eAAe;IALlC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAS;gBAG3B,UAAU,EAAE,UAAU,EACtB,eAAe,EAAE,eAAe,EAChC,eAAe,EAAE,eAAe,EACjD,aAAa,EAAE,aAAa,CAAC,mBAAmB,CAAC;IAQnD,QAAQ,CAAC,GAAG,EAAE,GAAG;IAKjB,OAAO,CAAC,GAAG,EAAE,GAAG;IAKhB,WAAW,CAAC,GAAG,EAAE,GAAG;IAId,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;CA0CxD"}
1
+ {"version":3,"file":"chunk.embedding.processor.d.ts","sourceRoot":"","sources":["../../../../src/foundations/chunk/processors/chunk.embedding.processor.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,kDAAkD,CAAC;AACvF,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAInE,qBACa,uBAAwB,SAAQ,UAAU;IAInD,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,cAAc;IANjC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAS;gBAG3B,UAAU,EAAE,UAAU,EACtB,eAAe,EAAE,eAAe,EAChC,eAAe,EAAE,eAAe,EAChC,cAAc,EAAE,cAAc,EAC/C,aAAa,EAAE,aAAa,CAAC,mBAAmB,CAAC;IAQnD,QAAQ,CAAC,GAAG,EAAE,GAAG;IAKjB,OAAO,CAAC,GAAG,EAAE,GAAG;IAKhB,WAAW,CAAC,GAAG,EAAE,GAAG;IAId,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;CA8CxD"}
@@ -15,14 +15,16 @@ const config_1 = require("@nestjs/config");
15
15
  const bullmq_2 = require("bullmq");
16
16
  const nestjs_cls_1 = require("nestjs-cls");
17
17
  const core_1 = require("../../../core");
18
+ const company_service_1 = require("../../company/services/company.service");
18
19
  const chunk_repository_1 = require("../repositories/chunk.repository");
19
20
  const EMBEDDING_CHUNKS_QUEUE = "embedding-chunks";
20
21
  let ChunkEmbeddingProcessor = class ChunkEmbeddingProcessor extends bullmq_1.WorkerHost {
21
- constructor(clsService, chunkRepository, embedderService, configService) {
22
+ constructor(clsService, chunkRepository, embedderService, companyService, configService) {
22
23
  super();
23
24
  this.clsService = clsService;
24
25
  this.chunkRepository = chunkRepository;
25
26
  this.embedderService = embedderService;
27
+ this.companyService = companyService;
26
28
  this.rebuildChunksJobName =
27
29
  configService.get("jobNames", { infer: true })?.process?.rebuild_chunks ?? "embedding:rebuild_chunks";
28
30
  }
@@ -43,6 +45,9 @@ let ChunkEmbeddingProcessor = class ChunkEmbeddingProcessor extends bullmq_1.Wor
43
45
  this.clsService.set("companyId", job.data.companyId);
44
46
  this.clsService.set("userId", job.data.userId);
45
47
  this.clsService.set("isAutomatedJob", true);
48
+ if (!(await this.companyService.hasAvailableCredits({ companyId: job.data.companyId }))) {
49
+ return { processed: 0 }; // admin re-embed is maintenance; skip cleanly, no marker
50
+ }
46
51
  // 1. Recreate vector index with new dimensions
47
52
  await this.chunkRepository.recreateVectorIndex();
48
53
  // 2. Get all chunks
@@ -93,6 +98,7 @@ exports.ChunkEmbeddingProcessor = ChunkEmbeddingProcessor = __decorate([
93
98
  __metadata("design:paramtypes", [nestjs_cls_1.ClsService,
94
99
  chunk_repository_1.ChunkRepository,
95
100
  core_1.EmbedderService,
101
+ company_service_1.CompanyService,
96
102
  config_1.ConfigService])
97
103
  ], ChunkEmbeddingProcessor);
98
104
  //# sourceMappingURL=chunk.embedding.processor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chunk.embedding.processor.js","sourceRoot":"","sources":["../../../../src/foundations/chunk/processors/chunk.embedding.processor.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAAsE;AACtE,2CAA+C;AAC/C,mCAA6B;AAC7B,2CAAwC;AAExC,wCAAgD;AAChD,uEAAmE;AAEnE,MAAM,sBAAsB,GAAG,kBAAkB,CAAC;AAG3C,IAAM,uBAAuB,GAA7B,MAAM,uBAAwB,SAAQ,mBAAU;IAGrD,YACmB,UAAsB,EACtB,eAAgC,EAChC,eAAgC,EACjD,aAAiD;QAEjD,KAAK,EAAE,CAAC;QALS,eAAU,GAAV,UAAU,CAAY;QACtB,oBAAe,GAAf,eAAe,CAAiB;QAChC,oBAAe,GAAf,eAAe,CAAiB;QAIjD,IAAI,CAAC,oBAAoB;YACvB,aAAa,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,cAAc,IAAI,0BAA0B,CAAC;IAC1G,CAAC;IAGD,QAAQ,CAAC,GAAQ;QACf,OAAO,CAAC,GAAG,CAAC,cAAc,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC;IAC5C,CAAC;IAGD,OAAO,CAAC,GAAQ;QACd,OAAO,CAAC,KAAK,CAAC,oBAAoB,GAAG,CAAC,IAAI,aAAa,GAAG,CAAC,EAAE,cAAc,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC;IACjG,CAAC;IAGD,WAAW,CAAC,GAAQ;QAClB,OAAO,CAAC,GAAG,CAAC,aAAa,GAAG,CAAC,IAAI,aAAa,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;IAC3D,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,GAAQ;QACpB,IAAI,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC3C,MAAM,IAAI,KAAK,CAAC,OAAO,GAAG,CAAC,IAAI,yCAAyC,CAAC,CAAC;QAC5E,CAAC;QAED,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE;YAC1C,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACrD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC/C,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;YAE5C,+CAA+C;YAC/C,MAAM,IAAI,CAAC,eAAe,CAAC,mBAAmB,EAAE,CAAC;YAEjD,oBAAoB;YACpB,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE,CAAC;YAC7D,MAAM,iBAAiB,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YAE7D,wBAAwB;YACxB,MAAM,SAAS,GAAG,GAAG,CAAC;YACtB,IAAI,SAAS,GAAG,CAAC,CAAC;YAElB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,iBAAiB,CAAC,MAAM,EAAE,CAAC,IAAI,SAAS,EAAE,CAAC;gBAC7D,MAAM,KAAK,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC;gBAExD,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;gBAC1C,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;gBAExE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBACtC,MAAM,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC;wBACzC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;wBACpB,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC;qBACzB,CAAC,CAAC;oBACH,SAAS,EAAE,CAAC;gBACd,CAAC;gBAED,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,GAAG,iBAAiB,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC;gBAC1E,MAAM,GAAG,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;YACrC,CAAC;YAED,OAAO,EAAE,SAAS,EAAE,CAAC;QACvB,CAAC,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AAvEY,0DAAuB;AAelC;IADC,IAAA,sBAAa,EAAC,QAAQ,CAAC;;qCACV,YAAG;;uDAEhB;AAGD;IADC,IAAA,sBAAa,EAAC,QAAQ,CAAC;;qCACX,YAAG;;sDAEf;AAGD;IADC,IAAA,sBAAa,EAAC,WAAW,CAAC;;qCACV,YAAG;;0DAEnB;kCA3BU,uBAAuB;IADnC,IAAA,kBAAS,EAAC,sBAAsB,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC;qCAKnD,uBAAU;QACL,kCAAe;QACf,sBAAe;QAClC,sBAAa;GAPnB,uBAAuB,CAuEnC"}
1
+ {"version":3,"file":"chunk.embedding.processor.js","sourceRoot":"","sources":["../../../../src/foundations/chunk/processors/chunk.embedding.processor.ts"],"names":[],"mappings":"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"}
@@ -4,18 +4,34 @@ import { Job } from "bullmq";
4
4
  import { ClsService } from "nestjs-cls";
5
5
  import { BaseConfigInterface } from "../../../config/interfaces/base.config.interface";
6
6
  import { AppLoggingService } from "../../../core/logging/services/logging.service";
7
+ import { Neo4jService } from "../../../core/neo4j/services/neo4j.service";
7
8
  import { TracingService } from "../../../core/tracing/services/tracing.service";
9
+ import { CompanyService } from "../../company/services/company.service";
8
10
  import { ChunkService } from "../../chunk/services/chunk.service";
11
+ import { ChunkRepository } from "../repositories/chunk.repository";
9
12
  export declare class ChunkProcessor extends WorkerHost {
10
13
  private readonly logger;
11
14
  private readonly tracer;
12
15
  private readonly clsService;
13
16
  private readonly chunkService;
17
+ private readonly companyService;
18
+ private readonly chunkRepository;
19
+ private readonly neo4j;
14
20
  private readonly chunkJobName;
15
- constructor(logger: AppLoggingService, tracer: TracingService, clsService: ClsService, chunkService: ChunkService, configService: ConfigService<BaseConfigInterface>);
21
+ constructor(logger: AppLoggingService, tracer: TracingService, clsService: ClsService, chunkService: ChunkService, companyService: CompanyService, chunkRepository: ChunkRepository, neo4j: Neo4jService, configService: ConfigService<BaseConfigInterface>);
16
22
  onActive(job: Job): void;
17
23
  onError(job: Job): void;
18
24
  onCompleted(job: Job): void;
19
25
  process(job: Job): Promise<void>;
26
+ /**
27
+ * Rolls a chunk-level credit deferral up to the owning entity (spec §3.2) so
28
+ * the backlog reflects it even when the debounce gate passed upstream but
29
+ * credits ran out mid-fan-out across a document's chunks. `contentType` is
30
+ * the Neo4j label (per the `HowToService._chunkAndQueue` enqueue convention:
31
+ * `contentType: howToMeta.labelName`), resolved via `modelRegistry` the same
32
+ * way `buildEmbedderAttribution` does. Document flows without a registered
33
+ * entity model keep the chunk-level marker only (already set by the caller).
34
+ */
35
+ private markOwnerPendingCredits;
20
36
  }
21
37
  //# sourceMappingURL=chunk.processor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"chunk.processor.d.ts","sourceRoot":"","sources":["../../../../src/foundations/chunk/processors/chunk.processor.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAGxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,kDAAkD,CAAC;AACvF,OAAO,EAAE,iBAAiB,EAAE,MAAM,gDAAgD,CAAC;AACnF,OAAO,EAAE,cAAc,EAAE,MAAM,gDAAgD,CAAC;AAChF,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAOlE,qBACa,cAAe,SAAQ,UAAU;IAI1C,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAN/B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;gBAGnB,MAAM,EAAE,iBAAiB,EACzB,MAAM,EAAE,cAAc,EACtB,UAAU,EAAE,UAAU,EACtB,YAAY,EAAE,YAAY,EAC3C,aAAa,EAAE,aAAa,CAAC,mBAAmB,CAAC;IAOnD,QAAQ,CAAC,GAAG,EAAE,GAAG;IAKjB,OAAO,CAAC,GAAG,EAAE,GAAG;IAKhB,WAAW,CAAC,GAAG,EAAE,GAAG;IAId,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;CAkBvC"}
1
+ {"version":3,"file":"chunk.processor.d.ts","sourceRoot":"","sources":["../../../../src/foundations/chunk/processors/chunk.processor.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAKxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,kDAAkD,CAAC;AACvF,OAAO,EAAE,iBAAiB,EAAE,MAAM,gDAAgD,CAAC;AACnF,OAAO,EAAE,YAAY,EAAE,MAAM,4CAA4C,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,gDAAgD,CAAC;AAChF,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAOnE,qBACa,cAAe,SAAQ,UAAU;IAI1C,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,KAAK;IATxB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;gBAGnB,MAAM,EAAE,iBAAiB,EACzB,MAAM,EAAE,cAAc,EACtB,UAAU,EAAE,UAAU,EACtB,YAAY,EAAE,YAAY,EAC1B,cAAc,EAAE,cAAc,EAC9B,eAAe,EAAE,eAAe,EAChC,KAAK,EAAE,YAAY,EACpC,aAAa,EAAE,aAAa,CAAC,mBAAmB,CAAC;IAOnD,QAAQ,CAAC,GAAG,EAAE,GAAG;IAKjB,OAAO,CAAC,GAAG,EAAE,GAAG;IAKhB,WAAW,CAAC,GAAG,EAAE,GAAG;IAId,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IA6BtC;;;;;;;;OAQG;YACW,uBAAuB;CAiBtC"}