@carlonicora/nestjs-neo4jsonapi 2.5.0 → 2.5.2
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 +7 -0
- package/dist/agents/community.summariser/community.summariser.module.d.ts.map +1 -1
- package/dist/agents/community.summariser/community.summariser.module.js +7 -2
- package/dist/agents/community.summariser/community.summariser.module.js.map +1 -1
- package/dist/agents/community.summariser/processors/community.summariser.processor.d.ts +6 -3
- package/dist/agents/community.summariser/processors/community.summariser.processor.d.ts.map +1 -1
- package/dist/agents/community.summariser/processors/community.summariser.processor.js +12 -6
- package/dist/agents/community.summariser/processors/community.summariser.processor.js.map +1 -1
- package/dist/common/decorators/conditional-service.decorator.d.ts.map +1 -1
- package/dist/common/decorators/conditional-service.decorator.js +11 -1
- package/dist/common/decorators/conditional-service.decorator.js.map +1 -1
- package/dist/common/helpers/credit-gate.d.ts +30 -0
- package/dist/common/helpers/credit-gate.d.ts.map +1 -0
- package/dist/common/helpers/credit-gate.js +43 -0
- package/dist/common/helpers/credit-gate.js.map +1 -0
- package/dist/common/helpers/index.d.ts +1 -0
- package/dist/common/helpers/index.d.ts.map +1 -1
- package/dist/common/helpers/index.js +1 -0
- package/dist/common/helpers/index.js.map +1 -1
- package/dist/common/tokens.d.ts +31 -0
- package/dist/common/tokens.d.ts.map +1 -1
- package/dist/common/tokens.js +31 -0
- package/dist/common/tokens.js.map +1 -1
- package/dist/core/llm/index.d.ts +1 -0
- package/dist/core/llm/index.d.ts.map +1 -1
- package/dist/core/llm/index.js +1 -0
- package/dist/core/llm/index.js.map +1 -1
- package/dist/core/llm/services/model.service.d.ts.map +1 -1
- package/dist/core/llm/services/model.service.js +7 -0
- package/dist/core/llm/services/model.service.js.map +1 -1
- package/dist/core/llm/utils/vertex.utils.d.ts +58 -0
- package/dist/core/llm/utils/vertex.utils.d.ts.map +1 -0
- package/dist/core/llm/utils/vertex.utils.js +69 -0
- package/dist/core/llm/utils/vertex.utils.js.map +1 -0
- package/dist/foundations/chunk/chunk.module.d.ts +8 -0
- package/dist/foundations/chunk/chunk.module.d.ts.map +1 -1
- package/dist/foundations/chunk/chunk.module.js +8 -2
- package/dist/foundations/chunk/chunk.module.js.map +1 -1
- package/dist/foundations/chunk/processors/chunk.embedding.processor.d.ts +6 -3
- package/dist/foundations/chunk/processors/chunk.embedding.processor.d.ts.map +1 -1
- package/dist/foundations/chunk/processors/chunk.embedding.processor.js +12 -6
- package/dist/foundations/chunk/processors/chunk.embedding.processor.js.map +1 -1
- package/dist/foundations/chunk/processors/chunk.processor.d.ts +20 -3
- package/dist/foundations/chunk/processors/chunk.processor.d.ts.map +1 -1
- package/dist/foundations/chunk/processors/chunk.processor.js +12 -6
- package/dist/foundations/chunk/processors/chunk.processor.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `CompanyModule` is deliberately NOT imported (same rule as
|
|
3
|
+
* `agents/drift/drift.module.ts`): it declares `CompanyController`, so importing
|
|
4
|
+
* it mounts `companies/*` into every consumer and crashes any app that replaces
|
|
5
|
+
* the company foundation with its own controller. The processor's credit gate
|
|
6
|
+
* uses the optional `CREDIT_VALIDATOR` seam — see `common/helpers/credit-gate.ts`.
|
|
7
|
+
*/
|
|
1
8
|
export declare class CommunitySummariserModule {
|
|
2
9
|
}
|
|
3
10
|
//# sourceMappingURL=community.summariser.module.d.ts.map
|
|
@@ -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":"AAWA;;;;;;GAMG;AACH,qBAUa,yBAAyB;CAAG"}
|
|
@@ -12,12 +12,18 @@ 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");
|
|
16
15
|
const community_module_1 = require("../../foundations/community/community.module");
|
|
17
16
|
const conditional_service_decorator_1 = require("../../common/decorators/conditional-service.decorator");
|
|
18
17
|
const community_summariser_processor_1 = require("./processors/community.summariser.processor");
|
|
19
18
|
const community_summariser_service_1 = require("./services/community.summariser.service");
|
|
20
19
|
const community_summariser_cron_1 = require("./cron/community.summariser.cron");
|
|
20
|
+
/**
|
|
21
|
+
* `CompanyModule` is deliberately NOT imported (same rule as
|
|
22
|
+
* `agents/drift/drift.module.ts`): it declares `CompanyController`, so importing
|
|
23
|
+
* it mounts `companies/*` into every consumer and crashes any app that replaces
|
|
24
|
+
* the company foundation with its own controller. The processor's credit gate
|
|
25
|
+
* uses the optional `CREDIT_VALIDATOR` seam — see `common/helpers/credit-gate.ts`.
|
|
26
|
+
*/
|
|
21
27
|
let CommunitySummariserModule = class CommunitySummariserModule {
|
|
22
28
|
};
|
|
23
29
|
exports.CommunitySummariserModule = CommunitySummariserModule;
|
|
@@ -27,7 +33,6 @@ exports.CommunitySummariserModule = CommunitySummariserModule = __decorate([
|
|
|
27
33
|
llm_module_1.LLMModule,
|
|
28
34
|
logging_module_1.LoggingModule,
|
|
29
35
|
community_module_1.CommunityModule,
|
|
30
|
-
company_module_1.CompanyModule,
|
|
31
36
|
bullmq_1.BullModule.registerQueue({ name: config_1.QueueId.COMMUNITY_SUMMARISER }),
|
|
32
37
|
],
|
|
33
38
|
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,
|
|
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;AAE3E;;;;;;GAMG;AAWI,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,9 +1,9 @@
|
|
|
1
1
|
import { WorkerHost } from "@nestjs/bullmq";
|
|
2
2
|
import { Job } from "bullmq";
|
|
3
3
|
import { ClsService } from "nestjs-cls";
|
|
4
|
+
import { CreditValidatorInterface } from "../../../common/tokens";
|
|
4
5
|
import { AppLoggingService } from "../../../core/logging/services/logging.service";
|
|
5
6
|
import { WebSocketService } from "../../../core/websocket/services/websocket.service";
|
|
6
|
-
import { CompanyService } from "../../../foundations/company/services/company.service";
|
|
7
7
|
import { CommunityRepository } from "../../../foundations/community/repositories/community.repository";
|
|
8
8
|
import { CommunitySummariserService } from "../services/community.summariser.service";
|
|
9
9
|
interface CommunitySummariserJobData {
|
|
@@ -14,10 +14,13 @@ export declare class CommunitySummariserProcessor extends WorkerHost {
|
|
|
14
14
|
private readonly summariserService;
|
|
15
15
|
private readonly cls;
|
|
16
16
|
private readonly logger;
|
|
17
|
-
private readonly companyService;
|
|
18
17
|
private readonly communityRepository;
|
|
19
18
|
private readonly webSocketService;
|
|
20
|
-
|
|
19
|
+
/** See ChunkProcessor: seam, not CompanyService — CompanyModule would mount `companies/*` here. */
|
|
20
|
+
private readonly creditValidator?;
|
|
21
|
+
constructor(summariserService: CommunitySummariserService, cls: ClsService, logger: AppLoggingService, communityRepository: CommunityRepository, webSocketService: WebSocketService,
|
|
22
|
+
/** See ChunkProcessor: seam, not CompanyService — CompanyModule would mount `companies/*` here. */
|
|
23
|
+
creditValidator?: CreditValidatorInterface);
|
|
21
24
|
onActive(job: Job): void;
|
|
22
25
|
onError(job: Job): void;
|
|
23
26
|
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;
|
|
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;AAEtE,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,OAAO,EAAoB,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAEpF,OAAO,EAAE,iBAAiB,EAAE,MAAM,gDAAgD,CAAC;AACnF,OAAO,EAAE,gBAAgB,EAAE,MAAM,oDAAoD,CAAC;AACtF,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,mBAAmB;IACpC,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,mGAAmG;IAGnG,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC;gBARhB,iBAAiB,EAAE,0BAA0B,EAC7C,GAAG,EAAE,UAAU,EACf,MAAM,EAAE,iBAAiB,EACzB,mBAAmB,EAAE,mBAAmB,EACxC,gBAAgB,EAAE,gBAAgB;IACnD,mGAAmG;IAGlF,eAAe,CAAC,EAAE,wBAAwB;IAM7D,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"}
|
|
@@ -8,26 +8,31 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
8
8
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
9
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
10
|
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
11
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
15
|
exports.CommunitySummariserProcessor = void 0;
|
|
13
16
|
const bullmq_1 = require("@nestjs/bullmq");
|
|
17
|
+
const common_1 = require("@nestjs/common");
|
|
14
18
|
const bullmq_2 = require("bullmq");
|
|
15
19
|
const nestjs_cls_1 = require("nestjs-cls");
|
|
20
|
+
const credit_gate_1 = require("../../../common/helpers/credit-gate");
|
|
21
|
+
const tokens_1 = require("../../../common/tokens");
|
|
16
22
|
const config_1 = require("../../../config");
|
|
17
23
|
const logging_service_1 = require("../../../core/logging/services/logging.service");
|
|
18
24
|
const websocket_service_1 = require("../../../core/websocket/services/websocket.service");
|
|
19
|
-
const company_service_1 = require("../../../foundations/company/services/company.service");
|
|
20
25
|
const community_repository_1 = require("../../../foundations/community/repositories/community.repository");
|
|
21
26
|
const community_summariser_service_1 = require("../services/community.summariser.service");
|
|
22
27
|
let CommunitySummariserProcessor = class CommunitySummariserProcessor extends bullmq_1.WorkerHost {
|
|
23
|
-
constructor(summariserService, cls, logger,
|
|
28
|
+
constructor(summariserService, cls, logger, communityRepository, webSocketService, creditValidator) {
|
|
24
29
|
super();
|
|
25
30
|
this.summariserService = summariserService;
|
|
26
31
|
this.cls = cls;
|
|
27
32
|
this.logger = logger;
|
|
28
|
-
this.companyService = companyService;
|
|
29
33
|
this.communityRepository = communityRepository;
|
|
30
34
|
this.webSocketService = webSocketService;
|
|
35
|
+
this.creditValidator = creditValidator;
|
|
31
36
|
}
|
|
32
37
|
onActive(job) {
|
|
33
38
|
this.logger.debug(`Processing community summariser job ${job.name} (ID: ${job.id})`);
|
|
@@ -42,7 +47,7 @@ let CommunitySummariserProcessor = class CommunitySummariserProcessor extends bu
|
|
|
42
47
|
const { communityId, companyId } = job.data;
|
|
43
48
|
await this.cls.run(async () => {
|
|
44
49
|
this.cls.set("companyId", companyId);
|
|
45
|
-
if (!(await this.
|
|
50
|
+
if (!(await (0, credit_gate_1.hasAvailableCreditsVia)(this.creditValidator, { companyId }))) {
|
|
46
51
|
// Leave isStale set; flag pendingCredits so the 10-minute cron stops
|
|
47
52
|
// re-enqueueing it (spec §2: a fresh top-up must not be silently eaten).
|
|
48
53
|
await this.communityRepository.markPendingCredits(communityId);
|
|
@@ -81,11 +86,12 @@ __decorate([
|
|
|
81
86
|
], CommunitySummariserProcessor.prototype, "onCompleted", null);
|
|
82
87
|
exports.CommunitySummariserProcessor = CommunitySummariserProcessor = __decorate([
|
|
83
88
|
(0, bullmq_1.Processor)(config_1.QueueId.COMMUNITY_SUMMARISER, { concurrency: 1, lockDuration: 1000 * 60 * 5 }),
|
|
89
|
+
__param(5, (0, common_1.Optional)()),
|
|
90
|
+
__param(5, (0, common_1.Inject)(tokens_1.CREDIT_VALIDATOR)),
|
|
84
91
|
__metadata("design:paramtypes", [community_summariser_service_1.CommunitySummariserService,
|
|
85
92
|
nestjs_cls_1.ClsService,
|
|
86
93
|
logging_service_1.AppLoggingService,
|
|
87
|
-
company_service_1.CompanyService,
|
|
88
94
|
community_repository_1.CommunityRepository,
|
|
89
|
-
websocket_service_1.WebSocketService])
|
|
95
|
+
websocket_service_1.WebSocketService, Object])
|
|
90
96
|
], CommunitySummariserProcessor);
|
|
91
97
|
//# 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":"
|
|
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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conditional-service.decorator.d.ts","sourceRoot":"","sources":["../../../src/common/decorators/conditional-service.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"conditional-service.decorator.d.ts","sourceRoot":"","sources":["../../../src/common/decorators/conditional-service.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6C,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACrF,OAAO,kBAAkB,CAAC;AAE1B;;GAEG;AACH,oBAAY,OAAO;IACjB,GAAG,QAAQ;IACX,MAAM,WAAW;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,OAAO,CAAC;IACd,iBAAiB,EAAE,OAAO,CAAC;IAC3B,aAAa,EAAE,OAAO,CAAC;IACvB,cAAc,EAAE,OAAO,CAAC;CACzB;AAED;;GAEG;AACH,eAAO,MAAM,cAAc,eAA2B,CAAC;AA6BvD;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,CAAC,EAAE,YAAY,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,QAAQ,CAYhH;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,YAAY,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,QAAQ,CAEzF;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,YAAY,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,QAAQ,CAEtF;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,YAAY,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,QAAQ,CAc5F;AAED;;GAEG;AACH,8BAAsB,gBAAgB;IACpC,SAAS,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC;IAElC,UAAU,CAAC,OAAO,EAAE,aAAa;IAIjC,SAAS,CAAC,SAAS,IAAI,OAAO;IAI9B,SAAS,CAAC,YAAY,IAAI,OAAO;IAIjC,SAAS,CAAC,iBAAiB,IAAI,OAAO;IAItC,SAAS,CAAC,iBAAiB,IAAI,OAAO;CAGvC"}
|
|
@@ -21,15 +21,25 @@ exports.APP_MODE_TOKEN = Symbol("APP_MODE_TOKEN");
|
|
|
21
21
|
/**
|
|
22
22
|
* Resolves constructor injection tokens, accounting for @Inject() decorator overrides.
|
|
23
23
|
* NestJS stores custom tokens (from @Inject, @InjectQueue, etc.) in 'self:paramtypes' metadata.
|
|
24
|
+
*
|
|
25
|
+
* `@Optional()` is honoured too. Nest records the optional parameter INDEXES in
|
|
26
|
+
* 'optional:paramtypes' (OPTIONAL_DEPS_METADATA); a factory provider expresses
|
|
27
|
+
* optionality as `{ token, optional: true }` in its `inject` array, so a bare
|
|
28
|
+
* token is ALWAYS required. Without this, a class wrapped by
|
|
29
|
+
* `createWorkerProvider`/`createApiProvider` loses its `@Optional()` markers and
|
|
30
|
+
* the app crashes at boot with `UnknownDependenciesException` whenever an
|
|
31
|
+
* optional seam (e.g. CREDIT_VALIDATOR, TOKEN_USAGE_RECORDER) is unbound — a
|
|
32
|
+
* failure only reproducible in a consumer that does NOT bind that seam.
|
|
24
33
|
*/
|
|
25
34
|
function resolveInjectionTokens(ServiceClass) {
|
|
26
35
|
const paramTypes = Reflect.getMetadata("design:paramtypes", ServiceClass) || [];
|
|
27
36
|
const customTokens = Reflect.getMetadata("self:paramtypes", ServiceClass) || [];
|
|
37
|
+
const optionalIndexes = Reflect.getMetadata("optional:paramtypes", ServiceClass) || [];
|
|
28
38
|
const tokens = [...paramTypes];
|
|
29
39
|
for (const { index, param } of customTokens) {
|
|
30
40
|
tokens[index] = param;
|
|
31
41
|
}
|
|
32
|
-
return tokens;
|
|
42
|
+
return tokens.map((token, index) => (optionalIndexes.includes(index) ? { token, optional: true } : token));
|
|
33
43
|
}
|
|
34
44
|
/**
|
|
35
45
|
* Helper function to create conditional providers based on app mode
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conditional-service.decorator.js","sourceRoot":"","sources":["../../../src/common/decorators/conditional-service.decorator.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"conditional-service.decorator.js","sourceRoot":"","sources":["../../../src/common/decorators/conditional-service.decorator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { CreditValidatorInterface } from "../tokens";
|
|
2
|
+
/**
|
|
3
|
+
* Non-throwing credit probe for background work.
|
|
4
|
+
*
|
|
5
|
+
* Job processors must DEFER rather than fail when a company is out of credits,
|
|
6
|
+
* so they need a boolean answer. The `CREDIT_VALIDATOR` seam
|
|
7
|
+
* (`common/tokens.ts`) deliberately exposes only the throwing
|
|
8
|
+
* `validateCredits`, because its other consumers (HTTP controllers) want the
|
|
9
|
+
* 402 to propagate. This adapts one to the other.
|
|
10
|
+
*
|
|
11
|
+
* Why the seam rather than injecting `CompanyService` directly: `CompanyModule`
|
|
12
|
+
* declares `CompanyController`, so importing it into a processor's module
|
|
13
|
+
* mounts `companies/*` into every consumer and crashes any app that replaces
|
|
14
|
+
* the company foundation with its own controller (the same reasoning already
|
|
15
|
+
* documented in `agents/drift/drift.module.ts`).
|
|
16
|
+
*
|
|
17
|
+
* Semantics:
|
|
18
|
+
* - No validator bound (app never registered one) → `true`, i.e. ungated,
|
|
19
|
+
* matching the "unchanged behaviour for consumers that opt out" contract.
|
|
20
|
+
* - Validator throws 402 `NO_CREDITS` → `false`, caller defers.
|
|
21
|
+
* - Validator throws anything else (company lookup failed, Neo4j down, …) →
|
|
22
|
+
* RETHROWN. Those are real errors and must not be silently mistaken for an
|
|
23
|
+
* empty balance, which would defer the job forever instead of retrying it.
|
|
24
|
+
* - Credits disabled (`creditCost <= 0`) → the validator is a documented no-op,
|
|
25
|
+
* so this returns `true`.
|
|
26
|
+
*/
|
|
27
|
+
export declare function hasAvailableCreditsVia(validator: CreditValidatorInterface | undefined, params: {
|
|
28
|
+
companyId: string;
|
|
29
|
+
}): Promise<boolean>;
|
|
30
|
+
//# sourceMappingURL=credit-gate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"credit-gate.d.ts","sourceRoot":"","sources":["../../../src/common/helpers/credit-gate.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AAErD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAsB,sBAAsB,CAC1C,SAAS,EAAE,wBAAwB,GAAG,SAAS,EAC/C,MAAM,EAAE;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,GAC5B,OAAO,CAAC,OAAO,CAAC,CAUlB"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.hasAvailableCreditsVia = hasAvailableCreditsVia;
|
|
4
|
+
const common_1 = require("@nestjs/common");
|
|
5
|
+
/**
|
|
6
|
+
* Non-throwing credit probe for background work.
|
|
7
|
+
*
|
|
8
|
+
* Job processors must DEFER rather than fail when a company is out of credits,
|
|
9
|
+
* so they need a boolean answer. The `CREDIT_VALIDATOR` seam
|
|
10
|
+
* (`common/tokens.ts`) deliberately exposes only the throwing
|
|
11
|
+
* `validateCredits`, because its other consumers (HTTP controllers) want the
|
|
12
|
+
* 402 to propagate. This adapts one to the other.
|
|
13
|
+
*
|
|
14
|
+
* Why the seam rather than injecting `CompanyService` directly: `CompanyModule`
|
|
15
|
+
* declares `CompanyController`, so importing it into a processor's module
|
|
16
|
+
* mounts `companies/*` into every consumer and crashes any app that replaces
|
|
17
|
+
* the company foundation with its own controller (the same reasoning already
|
|
18
|
+
* documented in `agents/drift/drift.module.ts`).
|
|
19
|
+
*
|
|
20
|
+
* Semantics:
|
|
21
|
+
* - No validator bound (app never registered one) → `true`, i.e. ungated,
|
|
22
|
+
* matching the "unchanged behaviour for consumers that opt out" contract.
|
|
23
|
+
* - Validator throws 402 `NO_CREDITS` → `false`, caller defers.
|
|
24
|
+
* - Validator throws anything else (company lookup failed, Neo4j down, …) →
|
|
25
|
+
* RETHROWN. Those are real errors and must not be silently mistaken for an
|
|
26
|
+
* empty balance, which would defer the job forever instead of retrying it.
|
|
27
|
+
* - Credits disabled (`creditCost <= 0`) → the validator is a documented no-op,
|
|
28
|
+
* so this returns `true`.
|
|
29
|
+
*/
|
|
30
|
+
async function hasAvailableCreditsVia(validator, params) {
|
|
31
|
+
if (!validator)
|
|
32
|
+
return true;
|
|
33
|
+
try {
|
|
34
|
+
await validator.validateCredits({ companyId: params.companyId });
|
|
35
|
+
return true;
|
|
36
|
+
}
|
|
37
|
+
catch (error) {
|
|
38
|
+
if (error instanceof common_1.HttpException && error.getStatus() === common_1.HttpStatus.PAYMENT_REQUIRED)
|
|
39
|
+
return false;
|
|
40
|
+
throw error;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=credit-gate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"credit-gate.js","sourceRoot":"","sources":["../../../src/common/helpers/credit-gate.ts"],"names":[],"mappings":";;AA4BA,wDAaC;AAzCD,2CAA2D;AAG3D;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACI,KAAK,UAAU,sBAAsB,CAC1C,SAA+C,EAC/C,MAA6B;IAE7B,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IAE5B,IAAI,CAAC;QACH,MAAM,SAAS,CAAC,eAAe,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;QACjE,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,sBAAa,IAAI,KAAK,CAAC,SAAS,EAAE,KAAK,mBAAU,CAAC,gBAAgB;YAAE,OAAO,KAAK,CAAC;QACtG,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/common/helpers/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,cAAc,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/common/helpers/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,cAAc,CAAC"}
|
|
@@ -14,6 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./credit-gate"), exports);
|
|
17
18
|
__exportStar(require("./define-entity"), exports);
|
|
18
19
|
__exportStar(require("./map-with-concurrency"), exports);
|
|
19
20
|
__exportStar(require("./neo4j-date"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/common/helpers/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAAgC;AAChC,yDAAuC;AACvC,+CAA6B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/common/helpers/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA8B;AAC9B,kDAAgC;AAChC,yDAAuC;AACvC,+CAA6B"}
|
package/dist/common/tokens.d.ts
CHANGED
|
@@ -90,6 +90,37 @@ export interface TokenUsageRecorderInterface {
|
|
|
90
90
|
* `validateCredits` MUST throw `HttpException("NO_CREDITS", HttpStatus.PAYMENT_REQUIRED)`
|
|
91
91
|
* when the company has no available credits, and MUST be a no-op (never throw)
|
|
92
92
|
* when credits are disabled (`creditCost <= 0`).
|
|
93
|
+
*
|
|
94
|
+
* ## THE GATE FAILS OPEN — read this before relying on it
|
|
95
|
+
*
|
|
96
|
+
* Background job processors (`ChunkProcessor`, `ChunkEmbeddingProcessor`,
|
|
97
|
+
* `CommunitySummariserProcessor`) consult this seam through
|
|
98
|
+
* `hasAvailableCreditsVia` (`common/helpers/credit-gate.ts`), which turns the
|
|
99
|
+
* throwing contract above into the non-throwing boolean a processor needs in
|
|
100
|
+
* order to DEFER rather than fail. Its semantics:
|
|
101
|
+
*
|
|
102
|
+
* | Situation | Result |
|
|
103
|
+
* |---------------------------------------------|-----------------------------------------------|
|
|
104
|
+
* | No provider bound for `CREDIT_VALIDATOR` | `true` — work proceeds UNGATED |
|
|
105
|
+
* | Validator throws 402 `NO_CREDITS` | `false` — job defers (marked `PendingCredits`) |
|
|
106
|
+
* | Validator throws anything else | rethrown — never read as an empty balance |
|
|
107
|
+
* | Credits disabled (`creditCost <= 0`) | `true` — validator is a documented no-op |
|
|
108
|
+
*
|
|
109
|
+
* The first row is the dangerous one: **an application that intends to enforce
|
|
110
|
+
* credits but forgets to bind this token runs entirely ungated, silently.**
|
|
111
|
+
* Failing open is deliberate — it preserves behaviour for consumers that never
|
|
112
|
+
* opted in — but it means the binding, not the package, is what enforces
|
|
113
|
+
* billing. Any consumer enforcing credits MUST register a provider, e.g. from a
|
|
114
|
+
* `@Global()` module so package-internal code can resolve it from its own
|
|
115
|
+
* injector:
|
|
116
|
+
*
|
|
117
|
+
* ```ts
|
|
118
|
+
* { provide: CREDIT_VALIDATOR, useExisting: CreditValidatorService }
|
|
119
|
+
* ```
|
|
120
|
+
*
|
|
121
|
+
* A global registration is required rather than merely convenient: a library
|
|
122
|
+
* module can never import an application feature module, so the binding has to
|
|
123
|
+
* be visible application-wide.
|
|
93
124
|
*/
|
|
94
125
|
export declare const CREDIT_VALIDATOR: unique symbol;
|
|
95
126
|
/**
|
|
@@ -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;AAED
|
|
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;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
|
@@ -54,6 +54,37 @@ exports.TOKEN_USAGE_RECORDER = Symbol("TOKEN_USAGE_RECORDER");
|
|
|
54
54
|
* `validateCredits` MUST throw `HttpException("NO_CREDITS", HttpStatus.PAYMENT_REQUIRED)`
|
|
55
55
|
* when the company has no available credits, and MUST be a no-op (never throw)
|
|
56
56
|
* when credits are disabled (`creditCost <= 0`).
|
|
57
|
+
*
|
|
58
|
+
* ## THE GATE FAILS OPEN — read this before relying on it
|
|
59
|
+
*
|
|
60
|
+
* Background job processors (`ChunkProcessor`, `ChunkEmbeddingProcessor`,
|
|
61
|
+
* `CommunitySummariserProcessor`) consult this seam through
|
|
62
|
+
* `hasAvailableCreditsVia` (`common/helpers/credit-gate.ts`), which turns the
|
|
63
|
+
* throwing contract above into the non-throwing boolean a processor needs in
|
|
64
|
+
* order to DEFER rather than fail. Its semantics:
|
|
65
|
+
*
|
|
66
|
+
* | Situation | Result |
|
|
67
|
+
* |---------------------------------------------|-----------------------------------------------|
|
|
68
|
+
* | No provider bound for `CREDIT_VALIDATOR` | `true` — work proceeds UNGATED |
|
|
69
|
+
* | Validator throws 402 `NO_CREDITS` | `false` — job defers (marked `PendingCredits`) |
|
|
70
|
+
* | Validator throws anything else | rethrown — never read as an empty balance |
|
|
71
|
+
* | Credits disabled (`creditCost <= 0`) | `true` — validator is a documented no-op |
|
|
72
|
+
*
|
|
73
|
+
* The first row is the dangerous one: **an application that intends to enforce
|
|
74
|
+
* credits but forgets to bind this token runs entirely ungated, silently.**
|
|
75
|
+
* Failing open is deliberate — it preserves behaviour for consumers that never
|
|
76
|
+
* opted in — but it means the binding, not the package, is what enforces
|
|
77
|
+
* billing. Any consumer enforcing credits MUST register a provider, e.g. from a
|
|
78
|
+
* `@Global()` module so package-internal code can resolve it from its own
|
|
79
|
+
* injector:
|
|
80
|
+
*
|
|
81
|
+
* ```ts
|
|
82
|
+
* { provide: CREDIT_VALIDATOR, useExisting: CreditValidatorService }
|
|
83
|
+
* ```
|
|
84
|
+
*
|
|
85
|
+
* A global registration is required rather than merely convenient: a library
|
|
86
|
+
* module can never import an application feature module, so the binding has to
|
|
87
|
+
* be visible application-wide.
|
|
57
88
|
*/
|
|
58
89
|
exports.CREDIT_VALIDATOR = Symbol("CREDIT_VALIDATOR");
|
|
59
90
|
//# 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;AAwBnE
|
|
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACU,QAAA,gBAAgB,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC"}
|
package/dist/core/llm/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/llm/index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,cAAc,CAAC;AAC7B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,0CAA0C,CAAC;AACzD,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,kCAAkC,CAAC;AACjD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/llm/index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,cAAc,CAAC;AAC7B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,0CAA0C,CAAC;AACzD,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,kCAAkC,CAAC;AACjD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC"}
|
package/dist/core/llm/index.js
CHANGED
|
@@ -28,4 +28,5 @@ __exportStar(require("./services/rate-limited-embedder"), exports);
|
|
|
28
28
|
__exportStar(require("./services/vision.llm.service"), exports);
|
|
29
29
|
__exportStar(require("./utils/mock-from-zod"), exports);
|
|
30
30
|
__exportStar(require("./utils/tools.utils"), exports);
|
|
31
|
+
__exportStar(require("./utils/vertex.utils"), exports);
|
|
31
32
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/llm/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6DAA2C;AAC3C,uDAAqC;AACrC,2DAAyC;AACzC,+CAA6B;AAC7B,+DAA6C;AAC7C,iEAA+C;AAC/C,8DAA4C;AAC5C,2EAAyD;AACzD,yDAAuC;AACvC,2DAAyC;AACzC,mEAAiD;AACjD,gEAA8C;AAC9C,wDAAsC;AACtC,sDAAoC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/llm/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6DAA2C;AAC3C,uDAAqC;AACrC,2DAAyC;AACzC,+CAA6B;AAC7B,+DAA6C;AAC7C,iEAA+C;AAC/C,8DAA4C;AAC5C,2EAAyD;AACzD,yDAAuC;AACvC,2DAAyC;AACzC,mEAAiD;AACjD,gEAA8C;AAC9C,wDAAsC;AACtC,sDAAoC;AACpC,uDAAqC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model.service.d.ts","sourceRoot":"","sources":["../../../../src/core/llm/services/model.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAE,MAAM,6CAA6C,CAAC;AAI5E,OAAO,EAAc,YAAY,EAAY,MAAM,gBAAgB,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAK/C,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,MAAM,EAAE,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAC7C,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACpF,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"model.service.d.ts","sourceRoot":"","sources":["../../../../src/core/llm/services/model.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -63,6 +63,7 @@ const nestjs_cls_1 = require("nestjs-cls");
|
|
|
63
63
|
const openai_2 = __importStar(require("openai"));
|
|
64
64
|
const logging_service_1 = require("../../logging/services/logging.service");
|
|
65
65
|
const model_weight_1 = require("../enums/model.weight");
|
|
66
|
+
const vertex_utils_1 = require("../utils/vertex.utils");
|
|
66
67
|
const embedder_token_bucket_service_1 = require("./embedder-token-bucket.service");
|
|
67
68
|
const openrouter_fetch_1 = require("./openrouter-fetch");
|
|
68
69
|
const rate_limited_embedder_1 = require("./rate-limited-embedder");
|
|
@@ -487,6 +488,10 @@ let ModelService = ModelService_1 = class ModelService {
|
|
|
487
488
|
model: cfg.model,
|
|
488
489
|
temperature,
|
|
489
490
|
location: cfg.region,
|
|
491
|
+
// `region` accepts a region ("europe-west4"), a jurisdictional
|
|
492
|
+
// multi-region ("eu"/"us"), or "global". LangChain only builds the
|
|
493
|
+
// first and third correctly — see vertexLocationParams.
|
|
494
|
+
...(0, vertex_utils_1.vertexLocationParams)(cfg.region),
|
|
490
495
|
...(maxOutputTokens ? { maxOutputTokens } : {}),
|
|
491
496
|
});
|
|
492
497
|
}
|
|
@@ -626,6 +631,8 @@ let ModelService = ModelService_1 = class ModelService {
|
|
|
626
631
|
response = new google_vertexai_1.VertexAIEmbeddings({
|
|
627
632
|
model: embedderConfig.model,
|
|
628
633
|
location: embedderConfig.region,
|
|
634
|
+
// EMBEDDER_REGION accepts a region or a multi-region, same as AI_REGION.
|
|
635
|
+
...(0, vertex_utils_1.vertexLocationParams)(embedderConfig.region),
|
|
629
636
|
dimensions: embedderConfig.dimensions,
|
|
630
637
|
});
|
|
631
638
|
break;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model.service.js","sourceRoot":"","sources":["../../../../src/core/llm/services/model.service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"model.service.js","sourceRoot":"","sources":["../../../../src/core/llm/services/model.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Vertex AI location handling.
|
|
3
|
+
*
|
|
4
|
+
* Google exposes three kinds of Vertex endpoint, and the hostname pattern is
|
|
5
|
+
* DIFFERENT for each — you cannot derive all three from the location string by
|
|
6
|
+
* prefixing it:
|
|
7
|
+
*
|
|
8
|
+
* | Kind | Location | Hostname |
|
|
9
|
+
* | ------------ | ------------------- | ----------------------------------------- |
|
|
10
|
+
* | Regional | `europe-west4` | `europe-west4-aiplatform.googleapis.com` |
|
|
11
|
+
* | Multi-region | `eu` / `us` | `aiplatform.eu.rep.googleapis.com` |
|
|
12
|
+
* | Global | `global` | `aiplatform.googleapis.com` |
|
|
13
|
+
*
|
|
14
|
+
* `@langchain/google-common` only knows two of them: it special-cases `global`
|
|
15
|
+
* and otherwise builds `${location}-aiplatform.googleapis.com`. So a
|
|
16
|
+
* multi-region location silently produces `eu-aiplatform.googleapis.com`, which
|
|
17
|
+
* is not a Vertex endpoint at all — the request 404s.
|
|
18
|
+
*
|
|
19
|
+
* This resolves the hostname the LangChain `endpoint` option needs so callers
|
|
20
|
+
* can put EITHER a region or a multi-region in their configuration.
|
|
21
|
+
*
|
|
22
|
+
* Why anyone picks a multi-region: it pools capacity across every region in the
|
|
23
|
+
* jurisdiction (fewer 429s, one Provisioned Throughput commitment) while
|
|
24
|
+
* keeping ML processing inside that jurisdiction. It is NOT a stronger data
|
|
25
|
+
* residency guarantee than a pinned regional location — a regional endpoint
|
|
26
|
+
* already keeps processing in its own country/jurisdiction, and `eu` is in fact
|
|
27
|
+
* BROADER (any EU member state; the UK and Switzerland are excluded).
|
|
28
|
+
*
|
|
29
|
+
* @see https://docs.cloud.google.com/vertex-ai/generative-ai/docs/learn/locations
|
|
30
|
+
* @see https://docs.cloud.google.com/vertex-ai/generative-ai/docs/learn/data-residency
|
|
31
|
+
*/
|
|
32
|
+
/** Vertex multi-region locations, which route through the `.rep.` hostnames. */
|
|
33
|
+
export declare const VERTEX_MULTI_REGIONS: readonly ["us", "eu"];
|
|
34
|
+
export type VertexMultiRegion = (typeof VERTEX_MULTI_REGIONS)[number];
|
|
35
|
+
/** True when `location` is a jurisdictional multi-region rather than a region. */
|
|
36
|
+
export declare function isVertexMultiRegion(location?: string): location is VertexMultiRegion;
|
|
37
|
+
/**
|
|
38
|
+
* The Vertex hostname for a location, or `undefined` when LangChain's own
|
|
39
|
+
* computation is already correct (regional locations, `global`, and unset).
|
|
40
|
+
*
|
|
41
|
+
* Returning `undefined` rather than the regional hostname is deliberate: it
|
|
42
|
+
* leaves the default path untouched, so this only ever ADDS multi-region
|
|
43
|
+
* support instead of taking over endpoint construction for every caller.
|
|
44
|
+
*/
|
|
45
|
+
export declare function vertexEndpointFor(location?: string): string | undefined;
|
|
46
|
+
/**
|
|
47
|
+
* Spreadable LangChain client params for a location that may be a region, a
|
|
48
|
+
* multi-region, or `global`. Yields `{}` for everything but a multi-region, so
|
|
49
|
+
* the `endpoint` key is absent (not `undefined`) on the default path.
|
|
50
|
+
*
|
|
51
|
+
* ```ts
|
|
52
|
+
* new ChatVertexAI({ model, location: cfg.region, ...vertexLocationParams(cfg.region) });
|
|
53
|
+
* ```
|
|
54
|
+
*/
|
|
55
|
+
export declare function vertexLocationParams(location?: string): {
|
|
56
|
+
endpoint?: string;
|
|
57
|
+
};
|
|
58
|
+
//# sourceMappingURL=vertex.utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vertex.utils.d.ts","sourceRoot":"","sources":["../../../../src/core/llm/utils/vertex.utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,gFAAgF;AAChF,eAAO,MAAM,oBAAoB,uBAAwB,CAAC;AAE1D,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEtE,kFAAkF;AAClF,wBAAgB,mBAAmB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,QAAQ,IAAI,iBAAiB,CAEpF;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAGvE;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,CAG7E"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Vertex AI location handling.
|
|
4
|
+
*
|
|
5
|
+
* Google exposes three kinds of Vertex endpoint, and the hostname pattern is
|
|
6
|
+
* DIFFERENT for each — you cannot derive all three from the location string by
|
|
7
|
+
* prefixing it:
|
|
8
|
+
*
|
|
9
|
+
* | Kind | Location | Hostname |
|
|
10
|
+
* | ------------ | ------------------- | ----------------------------------------- |
|
|
11
|
+
* | Regional | `europe-west4` | `europe-west4-aiplatform.googleapis.com` |
|
|
12
|
+
* | Multi-region | `eu` / `us` | `aiplatform.eu.rep.googleapis.com` |
|
|
13
|
+
* | Global | `global` | `aiplatform.googleapis.com` |
|
|
14
|
+
*
|
|
15
|
+
* `@langchain/google-common` only knows two of them: it special-cases `global`
|
|
16
|
+
* and otherwise builds `${location}-aiplatform.googleapis.com`. So a
|
|
17
|
+
* multi-region location silently produces `eu-aiplatform.googleapis.com`, which
|
|
18
|
+
* is not a Vertex endpoint at all — the request 404s.
|
|
19
|
+
*
|
|
20
|
+
* This resolves the hostname the LangChain `endpoint` option needs so callers
|
|
21
|
+
* can put EITHER a region or a multi-region in their configuration.
|
|
22
|
+
*
|
|
23
|
+
* Why anyone picks a multi-region: it pools capacity across every region in the
|
|
24
|
+
* jurisdiction (fewer 429s, one Provisioned Throughput commitment) while
|
|
25
|
+
* keeping ML processing inside that jurisdiction. It is NOT a stronger data
|
|
26
|
+
* residency guarantee than a pinned regional location — a regional endpoint
|
|
27
|
+
* already keeps processing in its own country/jurisdiction, and `eu` is in fact
|
|
28
|
+
* BROADER (any EU member state; the UK and Switzerland are excluded).
|
|
29
|
+
*
|
|
30
|
+
* @see https://docs.cloud.google.com/vertex-ai/generative-ai/docs/learn/locations
|
|
31
|
+
* @see https://docs.cloud.google.com/vertex-ai/generative-ai/docs/learn/data-residency
|
|
32
|
+
*/
|
|
33
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
34
|
+
exports.VERTEX_MULTI_REGIONS = void 0;
|
|
35
|
+
exports.isVertexMultiRegion = isVertexMultiRegion;
|
|
36
|
+
exports.vertexEndpointFor = vertexEndpointFor;
|
|
37
|
+
exports.vertexLocationParams = vertexLocationParams;
|
|
38
|
+
/** Vertex multi-region locations, which route through the `.rep.` hostnames. */
|
|
39
|
+
exports.VERTEX_MULTI_REGIONS = ["us", "eu"];
|
|
40
|
+
/** True when `location` is a jurisdictional multi-region rather than a region. */
|
|
41
|
+
function isVertexMultiRegion(location) {
|
|
42
|
+
return exports.VERTEX_MULTI_REGIONS.includes(location?.trim().toLowerCase());
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* The Vertex hostname for a location, or `undefined` when LangChain's own
|
|
46
|
+
* computation is already correct (regional locations, `global`, and unset).
|
|
47
|
+
*
|
|
48
|
+
* Returning `undefined` rather than the regional hostname is deliberate: it
|
|
49
|
+
* leaves the default path untouched, so this only ever ADDS multi-region
|
|
50
|
+
* support instead of taking over endpoint construction for every caller.
|
|
51
|
+
*/
|
|
52
|
+
function vertexEndpointFor(location) {
|
|
53
|
+
const normalised = location?.trim().toLowerCase();
|
|
54
|
+
return isVertexMultiRegion(normalised) ? `aiplatform.${normalised}.rep.googleapis.com` : undefined;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Spreadable LangChain client params for a location that may be a region, a
|
|
58
|
+
* multi-region, or `global`. Yields `{}` for everything but a multi-region, so
|
|
59
|
+
* the `endpoint` key is absent (not `undefined`) on the default path.
|
|
60
|
+
*
|
|
61
|
+
* ```ts
|
|
62
|
+
* new ChatVertexAI({ model, location: cfg.region, ...vertexLocationParams(cfg.region) });
|
|
63
|
+
* ```
|
|
64
|
+
*/
|
|
65
|
+
function vertexLocationParams(location) {
|
|
66
|
+
const endpoint = vertexEndpointFor(location);
|
|
67
|
+
return endpoint ? { endpoint } : {};
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=vertex.utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vertex.utils.js","sourceRoot":"","sources":["../../../../src/core/llm/utils/vertex.utils.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;;;AAQH,kDAEC;AAUD,8CAGC;AAWD,oDAGC;AAnCD,gFAAgF;AACnE,QAAA,oBAAoB,GAAG,CAAC,IAAI,EAAE,IAAI,CAAU,CAAC;AAI1D,kFAAkF;AAClF,SAAgB,mBAAmB,CAAC,QAAiB;IACnD,OAAO,4BAAoB,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,WAAW,EAAuB,CAAC,CAAC;AAC5F,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,iBAAiB,CAAC,QAAiB;IACjD,MAAM,UAAU,GAAG,QAAQ,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAClD,OAAO,mBAAmB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,cAAc,UAAU,qBAAqB,CAAC,CAAC,CAAC,SAAS,CAAC;AACrG,CAAC;AAED;;;;;;;;GAQG;AACH,SAAgB,oBAAoB,CAAC,QAAiB;IACpD,MAAM,QAAQ,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAC7C,OAAO,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AACtC,CAAC"}
|
|
@@ -8,6 +8,14 @@ import { OnModuleInit } from "@nestjs/common";
|
|
|
8
8
|
* self-contained — every consuming app (api/corpus/neural-erp/phlow) loads
|
|
9
9
|
* ChunkModule without having to register these queues in its own config, and
|
|
10
10
|
* without declaring the rebuild routes itself (which previously duplicated).
|
|
11
|
+
*
|
|
12
|
+
* `CompanyModule` is deliberately NOT imported (same rule as
|
|
13
|
+
* `agents/drift/drift.module.ts`): it declares `CompanyController`, so
|
|
14
|
+
* importing it here mounts `companies/*` into every consumer of ChunkModule and
|
|
15
|
+
* crashes any app that replaces the company foundation with its own controller
|
|
16
|
+
* — `FastifyError: Method 'GET' already declared for route '/companies'`. The
|
|
17
|
+
* processors' credit gate therefore goes through the optional
|
|
18
|
+
* `CREDIT_VALIDATOR` seam instead; see `common/helpers/credit-gate.ts`.
|
|
11
19
|
*/
|
|
12
20
|
export declare class ChunkModule implements OnModuleInit {
|
|
13
21
|
onModuleInit(): void;
|
|
@@ -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;AAgBtD;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAqBa,WAAY,YAAW,YAAY;IAC9C,YAAY;CAGb"}
|
|
@@ -14,7 +14,6 @@ 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");
|
|
18
17
|
const keyconcept_module_1 = require("../keyconcept/keyconcept.module");
|
|
19
18
|
const s3_module_1 = require("../s3/s3.module");
|
|
20
19
|
const tokenusage_module_1 = require("../tokenusage/tokenusage.module");
|
|
@@ -33,6 +32,14 @@ const chunk_service_1 = require("./services/chunk.service");
|
|
|
33
32
|
* self-contained — every consuming app (api/corpus/neural-erp/phlow) loads
|
|
34
33
|
* ChunkModule without having to register these queues in its own config, and
|
|
35
34
|
* without declaring the rebuild routes itself (which previously duplicated).
|
|
35
|
+
*
|
|
36
|
+
* `CompanyModule` is deliberately NOT imported (same rule as
|
|
37
|
+
* `agents/drift/drift.module.ts`): it declares `CompanyController`, so
|
|
38
|
+
* importing it here mounts `companies/*` into every consumer of ChunkModule and
|
|
39
|
+
* crashes any app that replaces the company foundation with its own controller
|
|
40
|
+
* — `FastifyError: Method 'GET' already declared for route '/companies'`. The
|
|
41
|
+
* processors' credit gate therefore goes through the optional
|
|
42
|
+
* `CREDIT_VALIDATOR` seam instead; see `common/helpers/credit-gate.ts`.
|
|
36
43
|
*/
|
|
37
44
|
let ChunkModule = class ChunkModule {
|
|
38
45
|
onModuleInit() {
|
|
@@ -53,7 +60,6 @@ exports.ChunkModule = ChunkModule = __decorate([
|
|
|
53
60
|
exports: [chunk_service_1.ChunkService, chunk_repository_1.ChunkRepository],
|
|
54
61
|
imports: [
|
|
55
62
|
atomicfact_module_1.AtomicFactModule,
|
|
56
|
-
company_module_1.CompanyModule,
|
|
57
63
|
graph_creator_module_1.GraphCreatorModule,
|
|
58
64
|
keyconcept_module_1.KeyConceptModule,
|
|
59
65
|
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,
|
|
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;;;;;;;;;;;;;;;;;GAiBG;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"}
|
|
@@ -2,17 +2,20 @@ import { WorkerHost } from "@nestjs/bullmq";
|
|
|
2
2
|
import { ConfigService } from "@nestjs/config";
|
|
3
3
|
import { Job } from "bullmq";
|
|
4
4
|
import { ClsService } from "nestjs-cls";
|
|
5
|
+
import { CreditValidatorInterface } from "../../../common/tokens";
|
|
5
6
|
import { BaseConfigInterface } from "../../../config/interfaces/base.config.interface";
|
|
6
7
|
import { EmbedderService } from "../../../core";
|
|
7
|
-
import { CompanyService } from "../../company/services/company.service";
|
|
8
8
|
import { ChunkRepository } from "../repositories/chunk.repository";
|
|
9
9
|
export declare class ChunkEmbeddingProcessor extends WorkerHost {
|
|
10
10
|
private readonly clsService;
|
|
11
11
|
private readonly chunkRepository;
|
|
12
12
|
private readonly embedderService;
|
|
13
|
-
|
|
13
|
+
/** See ChunkProcessor: seam, not CompanyService — CompanyModule would mount `companies/*` here. */
|
|
14
|
+
private readonly creditValidator?;
|
|
14
15
|
private readonly rebuildChunksJobName;
|
|
15
|
-
constructor(clsService: ClsService, chunkRepository: ChunkRepository, embedderService: EmbedderService,
|
|
16
|
+
constructor(clsService: ClsService, chunkRepository: ChunkRepository, embedderService: EmbedderService, configService: ConfigService<BaseConfigInterface>,
|
|
17
|
+
/** See ChunkProcessor: seam, not CompanyService — CompanyModule would mount `companies/*` here. */
|
|
18
|
+
creditValidator?: CreditValidatorInterface);
|
|
16
19
|
onActive(job: Job): void;
|
|
17
20
|
onError(job: Job): void;
|
|
18
21
|
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;
|
|
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;AAEtE,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,OAAO,EAAoB,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AACpF,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;IAEhC,mGAAmG;IAGnG,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC;IAVnC,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;IACjD,mGAAmG;IAGlF,eAAe,CAAC,EAAE,wBAAwB;IAQ7D,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"}
|
|
@@ -8,23 +8,28 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
8
8
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
9
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
10
|
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
11
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
15
|
exports.ChunkEmbeddingProcessor = void 0;
|
|
13
16
|
const bullmq_1 = require("@nestjs/bullmq");
|
|
17
|
+
const common_1 = require("@nestjs/common");
|
|
14
18
|
const config_1 = require("@nestjs/config");
|
|
15
19
|
const bullmq_2 = require("bullmq");
|
|
16
20
|
const nestjs_cls_1 = require("nestjs-cls");
|
|
21
|
+
const credit_gate_1 = require("../../../common/helpers/credit-gate");
|
|
22
|
+
const tokens_1 = require("../../../common/tokens");
|
|
17
23
|
const core_1 = require("../../../core");
|
|
18
|
-
const company_service_1 = require("../../company/services/company.service");
|
|
19
24
|
const chunk_repository_1 = require("../repositories/chunk.repository");
|
|
20
25
|
const EMBEDDING_CHUNKS_QUEUE = "embedding-chunks";
|
|
21
26
|
let ChunkEmbeddingProcessor = class ChunkEmbeddingProcessor extends bullmq_1.WorkerHost {
|
|
22
|
-
constructor(clsService, chunkRepository, embedderService,
|
|
27
|
+
constructor(clsService, chunkRepository, embedderService, configService, creditValidator) {
|
|
23
28
|
super();
|
|
24
29
|
this.clsService = clsService;
|
|
25
30
|
this.chunkRepository = chunkRepository;
|
|
26
31
|
this.embedderService = embedderService;
|
|
27
|
-
this.
|
|
32
|
+
this.creditValidator = creditValidator;
|
|
28
33
|
this.rebuildChunksJobName =
|
|
29
34
|
configService.get("jobNames", { infer: true })?.process?.rebuild_chunks ?? "embedding:rebuild_chunks";
|
|
30
35
|
}
|
|
@@ -45,7 +50,7 @@ let ChunkEmbeddingProcessor = class ChunkEmbeddingProcessor extends bullmq_1.Wor
|
|
|
45
50
|
this.clsService.set("companyId", job.data.companyId);
|
|
46
51
|
this.clsService.set("userId", job.data.userId);
|
|
47
52
|
this.clsService.set("isAutomatedJob", true);
|
|
48
|
-
if (!(await this.
|
|
53
|
+
if (!(await (0, credit_gate_1.hasAvailableCreditsVia)(this.creditValidator, { companyId: job.data.companyId }))) {
|
|
49
54
|
return { processed: 0 }; // admin re-embed is maintenance; skip cleanly, no marker
|
|
50
55
|
}
|
|
51
56
|
// 1. Recreate vector index with new dimensions
|
|
@@ -95,10 +100,11 @@ __decorate([
|
|
|
95
100
|
], ChunkEmbeddingProcessor.prototype, "onCompleted", null);
|
|
96
101
|
exports.ChunkEmbeddingProcessor = ChunkEmbeddingProcessor = __decorate([
|
|
97
102
|
(0, bullmq_1.Processor)(EMBEDDING_CHUNKS_QUEUE, { concurrency: 1, lockDuration: 1000 * 60 * 30 }),
|
|
103
|
+
__param(4, (0, common_1.Optional)()),
|
|
104
|
+
__param(4, (0, common_1.Inject)(tokens_1.CREDIT_VALIDATOR)),
|
|
98
105
|
__metadata("design:paramtypes", [nestjs_cls_1.ClsService,
|
|
99
106
|
chunk_repository_1.ChunkRepository,
|
|
100
107
|
core_1.EmbedderService,
|
|
101
|
-
|
|
102
|
-
config_1.ConfigService])
|
|
108
|
+
config_1.ConfigService, Object])
|
|
103
109
|
], ChunkEmbeddingProcessor);
|
|
104
110
|
//# 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":"
|
|
1
|
+
{"version":3,"file":"chunk.embedding.processor.js","sourceRoot":"","sources":["../../../../src/foundations/chunk/processors/chunk.embedding.processor.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,11 +2,11 @@ import { WorkerHost } from "@nestjs/bullmq";
|
|
|
2
2
|
import { ConfigService } from "@nestjs/config";
|
|
3
3
|
import { Job } from "bullmq";
|
|
4
4
|
import { ClsService } from "nestjs-cls";
|
|
5
|
+
import { CreditValidatorInterface } from "../../../common/tokens";
|
|
5
6
|
import { BaseConfigInterface } from "../../../config/interfaces/base.config.interface";
|
|
6
7
|
import { AppLoggingService } from "../../../core/logging/services/logging.service";
|
|
7
8
|
import { Neo4jService } from "../../../core/neo4j/services/neo4j.service";
|
|
8
9
|
import { TracingService } from "../../../core/tracing/services/tracing.service";
|
|
9
|
-
import { CompanyService } from "../../company/services/company.service";
|
|
10
10
|
import { ChunkService } from "../../chunk/services/chunk.service";
|
|
11
11
|
import { ChunkRepository } from "../repositories/chunk.repository";
|
|
12
12
|
export declare class ChunkProcessor extends WorkerHost {
|
|
@@ -14,11 +14,28 @@ export declare class ChunkProcessor extends WorkerHost {
|
|
|
14
14
|
private readonly tracer;
|
|
15
15
|
private readonly clsService;
|
|
16
16
|
private readonly chunkService;
|
|
17
|
-
private readonly companyService;
|
|
18
17
|
private readonly chunkRepository;
|
|
19
18
|
private readonly neo4j;
|
|
19
|
+
/**
|
|
20
|
+
* Credit gating goes through the app-provided `CREDIT_VALIDATOR` seam
|
|
21
|
+
* rather than injecting `CompanyService`: `CompanyModule` declares
|
|
22
|
+
* `CompanyController`, so importing it here mounts `companies/*` into every
|
|
23
|
+
* consumer of `ChunkModule` and crashes any app that replaces the company
|
|
24
|
+
* foundation with its own controller. Unbound → ungated (see
|
|
25
|
+
* `hasAvailableCreditsVia`).
|
|
26
|
+
*/
|
|
27
|
+
private readonly creditValidator?;
|
|
20
28
|
private readonly chunkJobName;
|
|
21
|
-
constructor(logger: AppLoggingService, tracer: TracingService, clsService: ClsService, chunkService: ChunkService,
|
|
29
|
+
constructor(logger: AppLoggingService, tracer: TracingService, clsService: ClsService, chunkService: ChunkService, chunkRepository: ChunkRepository, neo4j: Neo4jService, configService: ConfigService<BaseConfigInterface>,
|
|
30
|
+
/**
|
|
31
|
+
* Credit gating goes through the app-provided `CREDIT_VALIDATOR` seam
|
|
32
|
+
* rather than injecting `CompanyService`: `CompanyModule` declares
|
|
33
|
+
* `CompanyController`, so importing it here mounts `companies/*` into every
|
|
34
|
+
* consumer of `ChunkModule` and crashes any app that replaces the company
|
|
35
|
+
* foundation with its own controller. Unbound → ungated (see
|
|
36
|
+
* `hasAvailableCreditsVia`).
|
|
37
|
+
*/
|
|
38
|
+
creditValidator?: CreditValidatorInterface);
|
|
22
39
|
onActive(job: Job): void;
|
|
23
40
|
onError(job: Job): void;
|
|
24
41
|
onCompleted(job: Job): void;
|
|
@@ -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;
|
|
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;AAEtE,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAIxC,OAAO,EAAoB,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAGpF,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,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,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,KAAK;IAEtB;;;;;;;OAOG;IAGH,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC;IApBnC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;gBAGnB,MAAM,EAAE,iBAAiB,EACzB,MAAM,EAAE,cAAc,EACtB,UAAU,EAAE,UAAU,EACtB,YAAY,EAAE,YAAY,EAC1B,eAAe,EAAE,eAAe,EAChC,KAAK,EAAE,YAAY,EACpC,aAAa,EAAE,aAAa,CAAC,mBAAmB,CAAC;IACjD;;;;;;;OAOG;IAGc,eAAe,CAAC,EAAE,wBAAwB;IAO7D,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"}
|
|
@@ -8,20 +8,25 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
8
8
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
9
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
10
|
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
11
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
15
|
exports.ChunkProcessor = void 0;
|
|
13
16
|
const bullmq_1 = require("@nestjs/bullmq");
|
|
17
|
+
const common_1 = require("@nestjs/common");
|
|
14
18
|
const config_1 = require("@nestjs/config");
|
|
15
19
|
const bullmq_2 = require("bullmq");
|
|
16
20
|
const nestjs_cls_1 = require("nestjs-cls");
|
|
17
21
|
const ai_status_1 = require("../../../common/enums/ai.status");
|
|
22
|
+
const credit_gate_1 = require("../../../common/helpers/credit-gate");
|
|
18
23
|
const registry_1 = require("../../../common/registries/registry");
|
|
24
|
+
const tokens_1 = require("../../../common/tokens");
|
|
19
25
|
const base_config_1 = require("../../../config/base.config");
|
|
20
26
|
const queue_id_1 = require("../../../config/enums/queue.id");
|
|
21
27
|
const logging_service_1 = require("../../../core/logging/services/logging.service");
|
|
22
28
|
const neo4j_service_1 = require("../../../core/neo4j/services/neo4j.service");
|
|
23
29
|
const tracing_service_1 = require("../../../core/tracing/services/tracing.service");
|
|
24
|
-
const company_service_1 = require("../../company/services/company.service");
|
|
25
30
|
const chunk_service_1 = require("../../chunk/services/chunk.service");
|
|
26
31
|
const chunk_repository_1 = require("../repositories/chunk.repository");
|
|
27
32
|
// Concurrency comes from `CHUNK_QUEUE_CONCURRENCY` (default 50 — unchanged from
|
|
@@ -30,15 +35,15 @@ const chunk_repository_1 = require("../repositories/chunk.repository");
|
|
|
30
35
|
// constant, and that constant resolves the env var inside `base.config.ts`,
|
|
31
36
|
// the one file allowed to read `process.env`.
|
|
32
37
|
let ChunkProcessor = class ChunkProcessor extends bullmq_1.WorkerHost {
|
|
33
|
-
constructor(logger, tracer, clsService, chunkService,
|
|
38
|
+
constructor(logger, tracer, clsService, chunkService, chunkRepository, neo4j, configService, creditValidator) {
|
|
34
39
|
super();
|
|
35
40
|
this.logger = logger;
|
|
36
41
|
this.tracer = tracer;
|
|
37
42
|
this.clsService = clsService;
|
|
38
43
|
this.chunkService = chunkService;
|
|
39
|
-
this.companyService = companyService;
|
|
40
44
|
this.chunkRepository = chunkRepository;
|
|
41
45
|
this.neo4j = neo4j;
|
|
46
|
+
this.creditValidator = creditValidator;
|
|
42
47
|
this.chunkJobName = configService.get("jobNames", { infer: true })?.process?.chunk ?? "process_chunk";
|
|
43
48
|
}
|
|
44
49
|
onActive(job) {
|
|
@@ -59,7 +64,7 @@ let ChunkProcessor = class ChunkProcessor extends bullmq_1.WorkerHost {
|
|
|
59
64
|
this.clsService.set("userId", job.data.userId);
|
|
60
65
|
// Pre-flight credit gate (spec §2): defer, don't fail — the chunk stays
|
|
61
66
|
// marked and approval re-processes it via its owning entity. Not a job failure.
|
|
62
|
-
if (!(await this.
|
|
67
|
+
if (!(await (0, credit_gate_1.hasAvailableCreditsVia)(this.creditValidator, { companyId: job.data.companyId }))) {
|
|
63
68
|
await this.chunkRepository.updateStatus({ id: job.data.chunkId, aiStatus: ai_status_1.AiStatus.PendingCredits });
|
|
64
69
|
// Roll the deferral up under the owning entity (spec §3.2) so the backlog
|
|
65
70
|
// lists it even when the debounce gate passed but credits ran out mid-fan-out.
|
|
@@ -120,13 +125,14 @@ __decorate([
|
|
|
120
125
|
], ChunkProcessor.prototype, "onCompleted", null);
|
|
121
126
|
exports.ChunkProcessor = ChunkProcessor = __decorate([
|
|
122
127
|
(0, bullmq_1.Processor)(queue_id_1.QueueId.CHUNK, { concurrency: base_config_1.CHUNK_QUEUE_CONCURRENCY, lockDuration: 1000 * 60 }),
|
|
128
|
+
__param(7, (0, common_1.Optional)()),
|
|
129
|
+
__param(7, (0, common_1.Inject)(tokens_1.CREDIT_VALIDATOR)),
|
|
123
130
|
__metadata("design:paramtypes", [logging_service_1.AppLoggingService,
|
|
124
131
|
tracing_service_1.TracingService,
|
|
125
132
|
nestjs_cls_1.ClsService,
|
|
126
133
|
chunk_service_1.ChunkService,
|
|
127
|
-
company_service_1.CompanyService,
|
|
128
134
|
chunk_repository_1.ChunkRepository,
|
|
129
135
|
neo4j_service_1.Neo4jService,
|
|
130
|
-
config_1.ConfigService])
|
|
136
|
+
config_1.ConfigService, Object])
|
|
131
137
|
], ChunkProcessor);
|
|
132
138
|
//# sourceMappingURL=chunk.processor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chunk.processor.js","sourceRoot":"","sources":["../../../../src/foundations/chunk/processors/chunk.processor.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"chunk.processor.js","sourceRoot":"","sources":["../../../../src/foundations/chunk/processors/chunk.processor.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED