@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.
- package/dist/agents/community.summariser/community.summariser.module.d.ts.map +1 -1
- package/dist/agents/community.summariser/community.summariser.module.js +2 -0
- package/dist/agents/community.summariser/community.summariser.module.js.map +1 -1
- package/dist/agents/community.summariser/processors/community.summariser.processor.d.ts +7 -1
- package/dist/agents/community.summariser/processors/community.summariser.processor.d.ts.map +1 -1
- package/dist/agents/community.summariser/processors/community.summariser.processor.js +23 -2
- package/dist/agents/community.summariser/processors/community.summariser.processor.js.map +1 -1
- package/dist/common/enums/ai.status.d.ts +29 -1
- package/dist/common/enums/ai.status.d.ts.map +1 -1
- package/dist/common/enums/ai.status.js +28 -1
- package/dist/common/enums/ai.status.js.map +1 -1
- package/dist/common/tokens.d.ts +20 -0
- package/dist/common/tokens.d.ts.map +1 -1
- package/dist/common/tokens.js +13 -1
- package/dist/common/tokens.js.map +1 -1
- package/dist/foundations/assistant/controllers/assistant.controller.d.ts +3 -1
- package/dist/foundations/assistant/controllers/assistant.controller.d.ts.map +1 -1
- package/dist/foundations/assistant/controllers/assistant.controller.js +10 -2
- package/dist/foundations/assistant/controllers/assistant.controller.js.map +1 -1
- package/dist/foundations/chunk/chunk.module.d.ts.map +1 -1
- package/dist/foundations/chunk/chunk.module.js +2 -0
- package/dist/foundations/chunk/chunk.module.js.map +1 -1
- package/dist/foundations/chunk/processors/chunk.embedding.processor.d.ts +3 -1
- package/dist/foundations/chunk/processors/chunk.embedding.processor.d.ts.map +1 -1
- package/dist/foundations/chunk/processors/chunk.embedding.processor.js +7 -1
- package/dist/foundations/chunk/processors/chunk.embedding.processor.js.map +1 -1
- package/dist/foundations/chunk/processors/chunk.processor.d.ts +17 -1
- package/dist/foundations/chunk/processors/chunk.processor.d.ts.map +1 -1
- package/dist/foundations/chunk/processors/chunk.processor.js +44 -1
- package/dist/foundations/chunk/processors/chunk.processor.js.map +1 -1
- package/dist/foundations/community/entities/community.entity.d.ts +2 -0
- package/dist/foundations/community/entities/community.entity.d.ts.map +1 -1
- package/dist/foundations/community/entities/community.map.d.ts.map +1 -1
- package/dist/foundations/community/entities/community.map.js +1 -0
- package/dist/foundations/community/entities/community.map.js.map +1 -1
- package/dist/foundations/community/index.d.ts +7 -0
- package/dist/foundations/community/index.d.ts.map +1 -0
- package/dist/foundations/community/index.js +14 -0
- package/dist/foundations/community/index.js.map +1 -0
- package/dist/foundations/community/repositories/community.repository.d.ts +15 -0
- package/dist/foundations/community/repositories/community.repository.d.ts.map +1 -1
- package/dist/foundations/community/repositories/community.repository.js +58 -0
- package/dist/foundations/community/repositories/community.repository.js.map +1 -1
- package/dist/foundations/company/services/company.service.d.ts +6 -1
- package/dist/foundations/company/services/company.service.d.ts.map +1 -1
- package/dist/foundations/company/services/company.service.js +18 -6
- package/dist/foundations/company/services/company.service.js.map +1 -1
- package/dist/foundations/index.d.ts +1 -0
- package/dist/foundations/index.d.ts.map +1 -1
- package/dist/foundations/index.js +1 -0
- package/dist/foundations/index.js.map +1 -1
- package/dist/foundations/stripe/__tests__/mocks/stripe.mock.d.ts +6 -0
- package/dist/foundations/stripe/__tests__/mocks/stripe.mock.d.ts.map +1 -1
- package/dist/foundations/stripe/__tests__/mocks/stripe.mock.js +7 -0
- package/dist/foundations/stripe/__tests__/mocks/stripe.mock.js.map +1 -1
- package/dist/foundations/stripe-promotion-code/services/stripe-promotion-code-api.service.d.ts.map +1 -1
- package/dist/foundations/stripe-promotion-code/services/stripe-promotion-code-api.service.js +8 -6
- package/dist/foundations/stripe-promotion-code/services/stripe-promotion-code-api.service.js.map +1 -1
- 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":"
|
|
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;
|
|
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
|
-
|
|
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;
|
|
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;
|
|
1
|
+
{"version":3,"file":"community.summariser.processor.js","sourceRoot":"","sources":["../../../../src/agents/community.summariser/processors/community.summariser.processor.ts"],"names":[],"mappings":"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"}
|
|
@@ -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;
|
|
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,
|
|
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"}
|
package/dist/common/tokens.d.ts
CHANGED
|
@@ -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"}
|
package/dist/common/tokens.js
CHANGED
|
@@ -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":"
|
|
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":";;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"assistant.controller.js","sourceRoot":"","sources":["../../../../src/foundations/assistant/controllers/assistant.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAkDA,sCA8BC;AAhFD,2CAkBwB;AAExB,0EAAqE;AACrE,0EAA4E;AAE5E,kEAAoE;AACpE,mDAAoF;AACpF,oFAAgF;AAChF,uEAAkE;AAClE,qEAAgE;AAChE,mEAA8D;AAC9D,qDAA4D;AAC5D,+DAA2D;AAC3D,0FAAgG;AAChG,oGAA+F;AAC/F,qEAAiE;AAEjE;;;;;;;;;;;;;;GAcG;AACH,SAAgB,aAAa,CAC3B,IAA2B,EAC3B,SAAgC,EAChC,eAAoD;IAEpD,MAAM,KAAK,GAAG,IAAI,GAAG,EAAe,CAAC;IACrC,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC;QACrC,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,IAAI,EAAE,CAAU,EAAE,CAAC;YACzC,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IACD,IAAI,eAAe,EAAE,CAAC;QACpB,2EAA2E;QAC3E,0EAA0E;QAC1E,mEAAmE;QACnE,KAAK,CAAC,MAAM,CAAC,GAAG,eAAe,CAAC,IAAI,IAAI,eAAe,CAAC,EAAE,EAAE,CAAC,CAAC;QAC9D,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;YAClC,IAAI,CAAC,IAAI,CAAC,aAAa;gBAAE,SAAS;YAClC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;gBAC9D,MAAM,CAAC,GAAG,KAAY,CAAC;gBACvB,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,KAAK,eAAe,CAAC,IAAI,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,eAAe,CAAC,EAAE,EAAE,CAAC;oBACjF,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;gBACjC,CAAC;YACH,CAAC;YACD,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACjD,OAAO,IAAI,CAAC,aAAa,CAAC;YAC5B,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;AACpC,CAAC;AAIM,IAAM,mBAAmB,2BAAzB,MAAM,mBAAmB;IAI9B,YACmB,UAA4B,EAC5B,OAAuB,EACF,eAA2D;QAFhF,eAAU,GAAV,UAAU,CAAkB;QAC5B,YAAO,GAAP,OAAO,CAAgB;QACe,oBAAe,GAAf,eAAe,CAA2B;QANlF,WAAM,GAAG,IAAI,eAAM,CAAC,qBAAmB,CAAC,IAAI,CAAC,CAAC;QAC9C,SAAI,GAAG,IAAA,kCAAkB,EAAC,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAM/D,CAAC;IAEJ;;;;;;;OAOG;IAEG,AAAN,KAAK,CAAC,MAAM,CAAS,IAAsB,EAAS,GAAyB;QAC3E,IAAI,IAAI,CAAC,eAAe,IAAI,GAAG,CAAC,IAAI,EAAE,SAAS;YAC7C,MAAM,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;QAEhF,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;QAC3E,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;QACtF,IAAI,CAAC,MAAM,CAAC,GAAG,CACb,kBAAkB,GAAG,CAAC,IAAI,CAAC,MAAM,cAAc,GAAG,CAAC,IAAI,CAAC,SAAS,oBAAoB,OAAO,CAAC,MAAM,EAAE;YACnG,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,YAAY,CAAC,IAAI,IAAI,YAAY,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAC3E,CAAC;QACF,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,gBAAgB,EAAE,SAAS,EAAE,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC;YAC3G,SAAS,EAAE,GAAG,CAAC,IAAI,CAAC,SAAS;YAC7B,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM;YACvB,YAAY,EAAE,OAAO;YACrB,KAAK;YACL,SAAS;YACT,cAAc;YACd,YAAY;SACb,CAAC,CAAC;QACH,MAAM,QAAQ,GAAG,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,+BAAmB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAwB,CAAC;QAC/G,MAAM,WAAW,GAAG,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,8CAA0B,CAAC,KAAK,EAAE;YAClF,WAAW;YACX,gBAAgB;SACjB,CAAC,CAAwB,CAAC;QAC3B,0EAA0E;QAC1E,qDAAqD;QACrD,4EAA4E;QAC5E,uEAAuE;QACvE,uEAAuE;QACvE,4DAA4D;QAC5D,MAAM,SAAS,GAAc;YAC3B,GAAG,CAAG,WAAmB,CAAC,IAA8B,IAAI,EAAE,CAAC;YAC/D,GAAG,CAAG,WAAmB,CAAC,QAAkC,IAAI,EAAE,CAAC;SACpE,CAAC;QACF,QAAQ,CAAC,QAAQ,GAAG,aAAa,CAAC,QAAQ,CAAC,QAAiC,EAAE,SAAS,EAAE;YACvF,IAAI,EAAE,8BAAa,CAAC,IAAI;YACxB,EAAE,EAAE,SAAS,CAAC,EAAE;SACjB,CAAC,CAAC;QACH,QAAQ,CAAC,IAAI,GAAG,EAAE,GAAG,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC;QACxD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;;;OAKG;IAEG,AAAN,KAAK,CAAC,MAAM,CACY,WAAmB,EACjC,IAAwB,EACzB,GAAyB;QAEhC,IAAI,IAAI,CAAC,eAAe,IAAI,GAAG,CAAC,IAAI,EAAE,SAAS;YAC7C,MAAM,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;QAEhF,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;QACpE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,uBAAuB,WAAW,WAAW,GAAG,CAAC,IAAI,CAAC,MAAM,eAAe,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QAC7G,MAAM,EAAE,WAAW,EAAE,gBAAgB,EAAE,SAAS,EAAE,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;YACvF,WAAW;YACX,SAAS,EAAE,GAAG,CAAC,IAAI,CAAC,SAAS;YAC7B,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM;YACvB,UAAU,EAAE,OAAO;YACnB,SAAS;YACT,cAAc;SACf,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,8CAA0B,CAAC,KAAK,EAAE;YAC/E,WAAW;YACX,gBAAgB;SACjB,CAAC,CAAwB,CAAC;QAC3B,QAAQ,CAAC,IAAI,GAAG,EAAE,GAAG,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC;QACxD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;;;;;;OAQG;IAEG,AAAN,KAAK,CAAC,OAAO,CACJ,KAAmB,EACjB,KAAU,EACF,MAAe,EACb,QAAkB,EACnB,OAAgB,EACd,SAAkB,EACpB,OAAgB;QAElC,IAAI,SAAS,IAAI,OAAO,EAAE,CAAC;YACzB,IAAI,CAAC,wBAAa,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC;gBACxC,MAAM,IAAI,4BAAmB,CAAC,0BAA0B,SAAS,kBAAkB,CAAC,CAAC;YACvF,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;YACzF,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACrB,OAAO;QACT,CAAC;QACD,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;IACxE,CAAC;IAED;;;;;OAKG;IACK,mBAAmB,CAAC,SAAwC;QAClE,IAAI,CAAC,SAAS;YAAE,OAAO,SAAS,CAAC;QACjC,MAAM,KAAK,GAAG,wBAAa,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACtD,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,4BAAmB,CAAC,0BAA0B,SAAS,CAAC,IAAI,sCAAsC,CAAC,CAAC;QAChH,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC;IAChD,CAAC;IAED;;OAEG;IAEG,AAAN,KAAK,CAAC,QAAQ,CAAQ,KAAmB,EAAwB,WAAmB;QAClF,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IAChD,CAAC;IAED;;OAEG;IAEG,AAAN,KAAK,CAAC,KAAK,CAAQ,KAAmB,EAAU,IAAuB;QACrE,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACtC,CAAC;IAED;;OAEG;IAGG,AAAN,KAAK,CAAC,MAAM,CAAQ,KAAmB,EAAwB,WAAmB;QAChF,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IAC9C,CAAC;CACF,CAAA;AApKY,kDAAmB;AAmBxB;IADL,IAAA,aAAI,EAAC,8BAAa,CAAC,QAAQ,CAAC;IACf,WAAA,IAAA,aAAI,GAAE,CAAA;IAA0B,WAAA,IAAA,YAAG,GAAE,CAAA;;qCAAxB,qCAAgB;;iDAwC1C;AASK;IADL,IAAA,aAAI,EAAC,GAAG,8BAAa,CAAC,QAAQ,iBAAiB,6CAAoB,CAAC,QAAQ,EAAE,CAAC;IAE7E,WAAA,IAAA,cAAK,EAAC,aAAa,CAAC,CAAA;IACpB,WAAA,IAAA,aAAI,GAAE,CAAA;IACN,WAAA,IAAA,YAAG,GAAE,CAAA;;6CADQ,yCAAkB;;iDAuBjC;AAYK;IADL,IAAA,YAAG,EAAC,8BAAa,CAAC,QAAQ,CAAC;IAEzB,WAAA,IAAA,YAAG,GAAE,CAAA;IACL,WAAA,IAAA,cAAK,GAAE,CAAA;IACP,WAAA,IAAA,cAAK,EAAC,QAAQ,CAAC,CAAA;IACf,WAAA,IAAA,cAAK,EAAC,UAAU,CAAC,CAAA;IACjB,WAAA,IAAA,cAAK,EAAC,SAAS,CAAC,CAAA;IAChB,WAAA,IAAA,cAAK,EAAC,WAAW,CAAC,CAAA;IAClB,WAAA,IAAA,cAAK,EAAC,SAAS,CAAC,CAAA;;;;kDAWlB;AAqBK;IADL,IAAA,YAAG,EAAC,GAAG,8BAAa,CAAC,QAAQ,eAAe,CAAC;IAC9B,WAAA,IAAA,YAAG,GAAE,CAAA;IAAuB,WAAA,IAAA,cAAK,EAAC,aAAa,CAAC,CAAA;;;;mDAE/D;AAMK;IADL,IAAA,cAAK,EAAC,GAAG,8BAAa,CAAC,QAAQ,eAAe,CAAC;IACnC,WAAA,IAAA,YAAG,GAAE,CAAA;IAAuB,WAAA,IAAA,aAAI,GAAE,CAAA;;6CAAO,uCAAiB;;gDAEtE;AAOK;IAFL,IAAA,eAAM,EAAC,GAAG,8BAAa,CAAC,QAAQ,eAAe,CAAC;IAChD,IAAA,iBAAQ,EAAC,mBAAU,CAAC,UAAU,CAAC;IAClB,WAAA,IAAA,YAAG,GAAE,CAAA;IAAuB,WAAA,IAAA,cAAK,EAAC,aAAa,CAAC,CAAA;;;;iDAE7D;8BAnKU,mBAAmB;IAF/B,IAAA,kBAAS,EAAC,6BAAY,CAAC;IACvB,IAAA,mBAAU,GAAE;IAQR,WAAA,IAAA,iBAAQ,GAAE,CAAA;IAAE,WAAA,IAAA,eAAM,EAAC,yBAAgB,CAAC,CAAA;qCAFR,oCAAgB;QACnB,gCAAc;GAN/B,mBAAmB,CAoK/B"}
|
|
@@ -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;
|
|
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;
|
|
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;
|
|
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,
|
|
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;
|
|
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"}
|