@carlonicora/nestjs-neo4jsonapi 2.7.2 → 2.9.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/graph.creator/services/graph.creator.service.d.ts +82 -0
- package/dist/agents/graph.creator/services/graph.creator.service.d.ts.map +1 -1
- package/dist/agents/graph.creator/services/graph.creator.service.js +43 -10
- package/dist/agents/graph.creator/services/graph.creator.service.js.map +1 -1
- package/dist/agents/index.d.ts +1 -1
- package/dist/agents/index.d.ts.map +1 -1
- package/dist/agents/index.js +7 -1
- package/dist/agents/index.js.map +1 -1
- package/dist/config/base.config.d.ts.map +1 -1
- package/dist/config/base.config.js +4 -0
- package/dist/config/base.config.js.map +1 -1
- package/dist/config/interfaces/config.ai.interface.d.ts +5 -0
- package/dist/config/interfaces/config.ai.interface.d.ts.map +1 -1
- package/dist/config/interfaces/config.prompts.interface.d.ts +15 -0
- package/dist/config/interfaces/config.prompts.interface.d.ts.map +1 -1
- package/dist/core/llm/index.d.ts +2 -0
- package/dist/core/llm/index.d.ts.map +1 -1
- package/dist/core/llm/index.js +2 -0
- package/dist/core/llm/index.js.map +1 -1
- package/dist/core/llm/interfaces/ai-candidate.interface.d.ts +32 -0
- package/dist/core/llm/interfaces/ai-candidate.interface.d.ts.map +1 -0
- package/dist/core/llm/interfaces/ai-candidate.interface.js +15 -0
- package/dist/core/llm/interfaces/ai-candidate.interface.js.map +1 -0
- package/dist/core/llm/llm.module.d.ts.map +1 -1
- package/dist/core/llm/llm.module.js +6 -1
- package/dist/core/llm/llm.module.js.map +1 -1
- package/dist/core/llm/services/ai-connection-resolver.service.d.ts +107 -0
- package/dist/core/llm/services/ai-connection-resolver.service.d.ts.map +1 -0
- package/dist/core/llm/services/ai-connection-resolver.service.js +329 -0
- package/dist/core/llm/services/ai-connection-resolver.service.js.map +1 -0
- package/dist/core/llm/services/embedder.service.d.ts +21 -0
- package/dist/core/llm/services/embedder.service.d.ts.map +1 -1
- package/dist/core/llm/services/embedder.service.js +52 -3
- package/dist/core/llm/services/embedder.service.js.map +1 -1
- package/dist/core/llm/services/llm.service.d.ts +65 -18
- package/dist/core/llm/services/llm.service.d.ts.map +1 -1
- package/dist/core/llm/services/llm.service.js +214 -70
- package/dist/core/llm/services/llm.service.js.map +1 -1
- package/dist/core/llm/services/model.service.d.ts +79 -2
- package/dist/core/llm/services/model.service.d.ts.map +1 -1
- package/dist/core/llm/services/model.service.js +289 -31
- package/dist/core/llm/services/model.service.js.map +1 -1
- package/dist/core/llm/services/vision.llm.service.d.ts +25 -1
- package/dist/core/llm/services/vision.llm.service.d.ts.map +1 -1
- package/dist/core/llm/services/vision.llm.service.js +74 -33
- package/dist/core/llm/services/vision.llm.service.js.map +1 -1
- package/dist/foundations/ai-connection/ai-connection.module.d.ts +5 -0
- package/dist/foundations/ai-connection/ai-connection.module.d.ts.map +1 -0
- package/dist/foundations/ai-connection/ai-connection.module.js +37 -0
- package/dist/foundations/ai-connection/ai-connection.module.js.map +1 -0
- package/dist/foundations/ai-connection/controllers/ai-connection.controller.d.ts +32 -0
- package/dist/foundations/ai-connection/controllers/ai-connection.controller.d.ts.map +1 -0
- package/dist/foundations/ai-connection/controllers/ai-connection.controller.js +162 -0
- package/dist/foundations/ai-connection/controllers/ai-connection.controller.js.map +1 -0
- package/dist/foundations/ai-connection/dtos/ai-connection.post.dto.d.ts +41 -0
- package/dist/foundations/ai-connection/dtos/ai-connection.post.dto.d.ts.map +1 -0
- package/dist/foundations/ai-connection/dtos/ai-connection.post.dto.js +189 -0
- package/dist/foundations/ai-connection/dtos/ai-connection.post.dto.js.map +1 -0
- package/dist/foundations/ai-connection/dtos/ai-connection.put.dto.d.ts +42 -0
- package/dist/foundations/ai-connection/dtos/ai-connection.put.dto.d.ts.map +1 -0
- package/dist/foundations/ai-connection/dtos/ai-connection.put.dto.js +179 -0
- package/dist/foundations/ai-connection/dtos/ai-connection.put.dto.js.map +1 -0
- package/dist/foundations/ai-connection/dtos/ai-connection.reorder.dto.d.ts +8 -0
- package/dist/foundations/ai-connection/dtos/ai-connection.reorder.dto.d.ts.map +1 -0
- package/dist/foundations/ai-connection/dtos/ai-connection.reorder.dto.js +38 -0
- package/dist/foundations/ai-connection/dtos/ai-connection.reorder.dto.js.map +1 -0
- package/dist/foundations/ai-connection/entities/ai-connection.d.ts +57 -0
- package/dist/foundations/ai-connection/entities/ai-connection.d.ts.map +1 -0
- package/dist/foundations/ai-connection/entities/ai-connection.js +73 -0
- package/dist/foundations/ai-connection/entities/ai-connection.js.map +1 -0
- package/dist/foundations/ai-connection/entities/ai-connection.meta.d.ts +3 -0
- package/dist/foundations/ai-connection/entities/ai-connection.meta.d.ts.map +1 -0
- package/dist/foundations/ai-connection/entities/ai-connection.meta.js +10 -0
- package/dist/foundations/ai-connection/entities/ai-connection.meta.js.map +1 -0
- package/dist/foundations/ai-connection/index.d.ts +12 -0
- package/dist/foundations/ai-connection/index.d.ts.map +1 -0
- package/dist/foundations/ai-connection/index.js +35 -0
- package/dist/foundations/ai-connection/index.js.map +1 -0
- package/dist/foundations/ai-connection/registry/ai-provider.registry.d.ts +54 -0
- package/dist/foundations/ai-connection/registry/ai-provider.registry.d.ts.map +1 -0
- package/dist/foundations/ai-connection/registry/ai-provider.registry.js +255 -0
- package/dist/foundations/ai-connection/registry/ai-provider.registry.js.map +1 -0
- package/dist/foundations/ai-connection/repositories/ai-connection.repository.d.ts +52 -0
- package/dist/foundations/ai-connection/repositories/ai-connection.repository.d.ts.map +1 -0
- package/dist/foundations/ai-connection/repositories/ai-connection.repository.js +85 -0
- package/dist/foundations/ai-connection/repositories/ai-connection.repository.js.map +1 -0
- package/dist/foundations/ai-connection/services/ai-connection-encryption.service.d.ts +52 -0
- package/dist/foundations/ai-connection/services/ai-connection-encryption.service.d.ts.map +1 -0
- package/dist/foundations/ai-connection/services/ai-connection-encryption.service.js +148 -0
- package/dist/foundations/ai-connection/services/ai-connection-encryption.service.js.map +1 -0
- package/dist/foundations/ai-connection/services/ai-connection.service.d.ts +79 -0
- package/dist/foundations/ai-connection/services/ai-connection.service.d.ts.map +1 -0
- package/dist/foundations/ai-connection/services/ai-connection.service.js +184 -0
- package/dist/foundations/ai-connection/services/ai-connection.service.js.map +1 -0
- package/dist/foundations/foundations.modules.d.ts.map +1 -1
- package/dist/foundations/foundations.modules.js +2 -0
- package/dist/foundations/foundations.modules.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/tokenusage/services/tokenusage.service.d.ts +29 -0
- package/dist/foundations/tokenusage/services/tokenusage.service.d.ts.map +1 -1
- package/dist/foundations/tokenusage/services/tokenusage.service.js +15 -3
- package/dist/foundations/tokenusage/services/tokenusage.service.js.map +1 -1
- package/package.json +1 -1
|
@@ -64,16 +64,48 @@ let VisionLLMService = class VisionLLMService {
|
|
|
64
64
|
]);
|
|
65
65
|
}
|
|
66
66
|
/**
|
|
67
|
-
*
|
|
67
|
+
* Puts the vision candidate that just rate-limited into its cooldown window,
|
|
68
|
+
* so the next resolution reaches for the next link of the chain instead.
|
|
69
|
+
*
|
|
70
|
+
* Best-effort in every direction — no candidate-aware `ModelService`, an empty
|
|
71
|
+
* chain, or a throwing registry all leave the retry exactly as it was.
|
|
72
|
+
* Failover bookkeeping must never turn a retryable 429 into a hard failure.
|
|
73
|
+
*/
|
|
74
|
+
markCandidateFailure(attempt) {
|
|
75
|
+
const resolver = this.modelService;
|
|
76
|
+
if (typeof resolver.getCandidatesForType !== "function" || typeof resolver.notifyCandidateFailure !== "function")
|
|
77
|
+
return;
|
|
78
|
+
try {
|
|
79
|
+
const candidates = resolver.getCandidatesForType("vision") ?? [];
|
|
80
|
+
if (candidates.length === 0)
|
|
81
|
+
return;
|
|
82
|
+
resolver.notifyCandidateFailure(candidates[Math.min(attempt, candidates.length - 1)]);
|
|
83
|
+
}
|
|
84
|
+
catch {
|
|
85
|
+
/* the chain is an optimisation; a failure to record health never fails the call */
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Execute a function with exponential backoff retry on rate limit errors.
|
|
90
|
+
*
|
|
91
|
+
* `fn` receives the ATTEMPT INDEX so it can rebuild its model against the
|
|
92
|
+
* n-th connection of the vision chain — that is what makes a 429 move to a
|
|
93
|
+
* different provider rather than knocking on the same closed door. With no
|
|
94
|
+
* DB-backed connections every index resolves the same `.env` connection, i.e.
|
|
95
|
+
* today's behaviour.
|
|
68
96
|
*/
|
|
69
97
|
async withRetry(fn) {
|
|
70
98
|
let lastError;
|
|
71
99
|
for (let attempt = 0; attempt < this.MAX_RETRIES; attempt++) {
|
|
72
100
|
try {
|
|
73
|
-
return await fn();
|
|
101
|
+
return await fn(attempt);
|
|
74
102
|
}
|
|
75
103
|
catch (error) {
|
|
76
104
|
lastError = error instanceof Error ? error : new Error(String(error));
|
|
105
|
+
// Marked even on the final attempt: the cooldown outlives this call, so
|
|
106
|
+
// the caller's next job retry starts on a healthier connection.
|
|
107
|
+
if (this.isRateLimitError(error))
|
|
108
|
+
this.markCandidateFailure(attempt);
|
|
77
109
|
if (!this.isRateLimitError(error) || attempt === this.MAX_RETRIES - 1) {
|
|
78
110
|
throw lastError;
|
|
79
111
|
}
|
|
@@ -136,11 +168,14 @@ let VisionLLMService = class VisionLLMService {
|
|
|
136
168
|
* @param message - The HumanMessage to send
|
|
137
169
|
* @returns Promise with parsed response and raw content
|
|
138
170
|
*/
|
|
139
|
-
async callWithoutStructuredOutput(params, message
|
|
171
|
+
async callWithoutStructuredOutput(params, message,
|
|
172
|
+
/** Which link of the vision chain to build from; 0 (the default) is the first healthy one. */
|
|
173
|
+
candidateIndex = 0) {
|
|
140
174
|
const isGPT5 = this.isGPT5VisionModel();
|
|
141
175
|
const effectiveTemperature = isGPT5 ? 1 : (params.temperature ?? 0.1);
|
|
142
176
|
const baseModel = this.modelService.getVisionLLM({
|
|
143
177
|
temperature: effectiveTemperature,
|
|
178
|
+
candidateIndex,
|
|
144
179
|
});
|
|
145
180
|
try {
|
|
146
181
|
// Call without structured output - the model will return raw text
|
|
@@ -169,6 +204,36 @@ let VisionLLMService = class VisionLLMService {
|
|
|
169
204
|
throw error;
|
|
170
205
|
}
|
|
171
206
|
}
|
|
207
|
+
/**
|
|
208
|
+
* Builds the structured-output vision model for ONE attempt, from the
|
|
209
|
+
* `candidateIndex`-th link of the vision fallback chain.
|
|
210
|
+
*
|
|
211
|
+
* Extracted from {@link call} so each retry can rebuild against a different
|
|
212
|
+
* connection; the provider-shaped schema handling (Gemini sanitization,
|
|
213
|
+
* pre-converted JSON Schema for Azure/GPT-5, raw Zod elsewhere) is unchanged.
|
|
214
|
+
*/
|
|
215
|
+
buildStructuredVisionModel(params, candidateIndex) {
|
|
216
|
+
const isGPT5 = this.isGPT5VisionModel();
|
|
217
|
+
const effectiveTemperature = isGPT5 ? 1 : (params.temperature ?? 0.1);
|
|
218
|
+
const baseModel = this.modelService.getVisionLLM({
|
|
219
|
+
temperature: effectiveTemperature,
|
|
220
|
+
candidateIndex,
|
|
221
|
+
});
|
|
222
|
+
// Check if provider needs schema conversion/sanitization
|
|
223
|
+
const needsGeminiSanitization = this.isGeminiVisionModel();
|
|
224
|
+
const isAzure = this.isAzureVisionModel();
|
|
225
|
+
if (needsGeminiSanitization) {
|
|
226
|
+
const jsonSchema = (0, schema_utils_1.convertZodToJsonSchema)(params.outputSchema);
|
|
227
|
+
const sanitizedSchema = (0, schema_utils_1.sanitizeSchemaForGemini)(jsonSchema);
|
|
228
|
+
return baseModel.withStructuredOutput(sanitizedSchema, { includeRaw: true });
|
|
229
|
+
}
|
|
230
|
+
if (isAzure || isGPT5) {
|
|
231
|
+
// Azure/GPT-5: use pre-converted JSON Schema to avoid Zod-to-OpenAI conversion issues
|
|
232
|
+
const jsonSchema = (0, schema_utils_1.convertZodToJsonSchema)(params.outputSchema);
|
|
233
|
+
return baseModel.withStructuredOutput(jsonSchema, { includeRaw: true });
|
|
234
|
+
}
|
|
235
|
+
return baseModel.withStructuredOutput(params.outputSchema, { includeRaw: true });
|
|
236
|
+
}
|
|
172
237
|
/**
|
|
173
238
|
* Calls the LLM with an image for vision analysis using structured output.
|
|
174
239
|
*
|
|
@@ -207,35 +272,11 @@ let VisionLLMService = class VisionLLMService {
|
|
|
207
272
|
],
|
|
208
273
|
});
|
|
209
274
|
try {
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
// Check if provider needs schema conversion/sanitization
|
|
216
|
-
const needsGeminiSanitization = this.isGeminiVisionModel();
|
|
217
|
-
const isAzure = this.isAzureVisionModel();
|
|
218
|
-
let structuredLlm;
|
|
219
|
-
if (needsGeminiSanitization) {
|
|
220
|
-
const jsonSchema = (0, schema_utils_1.convertZodToJsonSchema)(params.outputSchema);
|
|
221
|
-
const sanitizedSchema = (0, schema_utils_1.sanitizeSchemaForGemini)(jsonSchema);
|
|
222
|
-
structuredLlm = baseModel.withStructuredOutput(sanitizedSchema, {
|
|
223
|
-
includeRaw: true,
|
|
224
|
-
});
|
|
225
|
-
}
|
|
226
|
-
else if (isAzure || isGPT5) {
|
|
227
|
-
// Azure/GPT-5: use pre-converted JSON Schema to avoid Zod-to-OpenAI conversion issues
|
|
228
|
-
const jsonSchema = (0, schema_utils_1.convertZodToJsonSchema)(params.outputSchema);
|
|
229
|
-
structuredLlm = baseModel.withStructuredOutput(jsonSchema, {
|
|
230
|
-
includeRaw: true,
|
|
231
|
-
});
|
|
232
|
-
}
|
|
233
|
-
else {
|
|
234
|
-
structuredLlm = baseModel.withStructuredOutput(params.outputSchema, {
|
|
235
|
-
includeRaw: true,
|
|
236
|
-
});
|
|
237
|
-
}
|
|
238
|
-
const response = await this.withRetry(async () => {
|
|
275
|
+
// Built INSIDE the retry so a rate-limited attempt can be re-issued
|
|
276
|
+
// against the next connection in the chain: the model bakes in the
|
|
277
|
+
// provider, so reusing one instance would retry the same dead endpoint.
|
|
278
|
+
const response = await this.withRetry(async (attempt) => {
|
|
279
|
+
const structuredLlm = this.buildStructuredVisionModel(params, attempt);
|
|
239
280
|
return (await this.withTimeout(structuredLlm.invoke([message]), this.CALL_TIMEOUT_MS, "Vision LLM call"));
|
|
240
281
|
});
|
|
241
282
|
// Handle null parsed response with fallback JSON parsing
|
|
@@ -276,7 +317,7 @@ let VisionLLMService = class VisionLLMService {
|
|
|
276
317
|
const isParsingError = errorMessage.includes("Cannot read properties of undefined") || errorMessage.includes("map");
|
|
277
318
|
if (isParsingError) {
|
|
278
319
|
try {
|
|
279
|
-
const { parsed } = await this.withRetry(() => this.callWithoutStructuredOutput(params, message));
|
|
320
|
+
const { parsed } = await this.withRetry((attempt) => this.callWithoutStructuredOutput(params, message, attempt));
|
|
280
321
|
return {
|
|
281
322
|
...parsed,
|
|
282
323
|
tokenUsage: { input: 0, output: 0 }, // Token usage not available in fallback
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vision.llm.service.js","sourceRoot":"","sources":["../../../../src/core/llm/services/vision.llm.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,uDAAwD;AACxD,2CAA4C;AAC5C,2CAA+C;AAG/C,oEAAgE;
|
|
1
|
+
{"version":3,"file":"vision.llm.service.js","sourceRoot":"","sources":["../../../../src/core/llm/services/vision.llm.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ai-connection.module.d.ts","sourceRoot":"","sources":["../../../src/foundations/ai-connection/ai-connection.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAStD,qBAWa,kBAAmB,YAAW,YAAY;IACrD,YAAY;CAGb"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.AiConnectionModule = void 0;
|
|
10
|
+
const common_1 = require("@nestjs/common");
|
|
11
|
+
const registry_1 = require("../../common/registries/registry");
|
|
12
|
+
const audit_module_1 = require("../audit/audit.module");
|
|
13
|
+
const ai_connection_controller_1 = require("./controllers/ai-connection.controller");
|
|
14
|
+
const ai_connection_1 = require("./entities/ai-connection");
|
|
15
|
+
const ai_connection_repository_1 = require("./repositories/ai-connection.repository");
|
|
16
|
+
const ai_connection_encryption_service_1 = require("./services/ai-connection-encryption.service");
|
|
17
|
+
const ai_connection_service_1 = require("./services/ai-connection.service");
|
|
18
|
+
let AiConnectionModule = class AiConnectionModule {
|
|
19
|
+
onModuleInit() {
|
|
20
|
+
registry_1.modelRegistry.register(ai_connection_1.AiConnectionDescriptor.model);
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
exports.AiConnectionModule = AiConnectionModule;
|
|
24
|
+
exports.AiConnectionModule = AiConnectionModule = __decorate([
|
|
25
|
+
(0, common_1.Module)({
|
|
26
|
+
controllers: [ai_connection_controller_1.AiConnectionController],
|
|
27
|
+
providers: [
|
|
28
|
+
ai_connection_1.AiConnectionDescriptor.model.serialiser,
|
|
29
|
+
ai_connection_repository_1.AiConnectionRepository,
|
|
30
|
+
ai_connection_service_1.AiConnectionService,
|
|
31
|
+
ai_connection_encryption_service_1.AiConnectionEncryptionService,
|
|
32
|
+
],
|
|
33
|
+
exports: [ai_connection_repository_1.AiConnectionRepository, ai_connection_service_1.AiConnectionService, ai_connection_encryption_service_1.AiConnectionEncryptionService],
|
|
34
|
+
imports: [audit_module_1.AuditModule],
|
|
35
|
+
})
|
|
36
|
+
], AiConnectionModule);
|
|
37
|
+
//# sourceMappingURL=ai-connection.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ai-connection.module.js","sourceRoot":"","sources":["../../../src/foundations/ai-connection/ai-connection.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAsD;AACtD,+DAAiE;AACjE,wDAAoD;AACpD,qFAAgF;AAChF,4DAAkE;AAClE,sFAAiF;AACjF,kGAA4F;AAC5F,4EAAuE;AAahE,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;IAC7B,YAAY;QACV,wBAAa,CAAC,QAAQ,CAAC,sCAAsB,CAAC,KAAK,CAAC,CAAC;IACvD,CAAC;CACF,CAAA;AAJY,gDAAkB;6BAAlB,kBAAkB;IAX9B,IAAA,eAAM,EAAC;QACN,WAAW,EAAE,CAAC,iDAAsB,CAAC;QACrC,SAAS,EAAE;YACT,sCAAsB,CAAC,KAAK,CAAC,UAAU;YACvC,iDAAsB;YACtB,2CAAmB;YACnB,gEAA6B;SAC9B;QACD,OAAO,EAAE,CAAC,iDAAsB,EAAE,2CAAmB,EAAE,gEAA6B,CAAC;QACrF,OAAO,EAAE,CAAC,0BAAW,CAAC;KACvB,CAAC;GACW,kBAAkB,CAI9B"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { FastifyReply } from "fastify";
|
|
2
|
+
import { CacheService } from "../../../core/cache/services/cache.service";
|
|
3
|
+
import { AuditService } from "../../audit/services/audit.service";
|
|
4
|
+
import { AiConnectionPostDTO } from "../dtos/ai-connection.post.dto";
|
|
5
|
+
import { AiConnectionPutDTO } from "../dtos/ai-connection.put.dto";
|
|
6
|
+
import { AiConnectionReorderDTO } from "../dtos/ai-connection.reorder.dto";
|
|
7
|
+
import { AiConnectionService } from "../services/ai-connection.service";
|
|
8
|
+
/**
|
|
9
|
+
* AiConnectionController
|
|
10
|
+
*
|
|
11
|
+
* Administrative REST API for the AI connection fallback chains. Mirrors the
|
|
12
|
+
* in-package admin-controller canonical (`stripe-product.controller.ts`):
|
|
13
|
+
* reads are `JwtAuthGuard` + `@Roles`, mutations are `AdminJwtAuthGuard` +
|
|
14
|
+
* `@Roles(RoleId.Administrator)`.
|
|
15
|
+
*
|
|
16
|
+
* Create/update deliberately call the service rather than
|
|
17
|
+
* `createCrudHandlers()`: both need service-level registry validation and
|
|
18
|
+
* secret encryption before the generic DTO path runs.
|
|
19
|
+
*/
|
|
20
|
+
export declare class AiConnectionController {
|
|
21
|
+
private readonly aiConnectionService;
|
|
22
|
+
private readonly cacheService;
|
|
23
|
+
private readonly auditService;
|
|
24
|
+
constructor(aiConnectionService: AiConnectionService, cacheService: CacheService, auditService: AuditService);
|
|
25
|
+
findAll(reply: FastifyReply, query: any): Promise<void>;
|
|
26
|
+
findById(reply: FastifyReply, id: string): Promise<void>;
|
|
27
|
+
reorder(reply: FastifyReply, body: AiConnectionReorderDTO): Promise<void>;
|
|
28
|
+
create(reply: FastifyReply, body: AiConnectionPostDTO): Promise<void>;
|
|
29
|
+
update(reply: FastifyReply, id: string, body: AiConnectionPutDTO): Promise<void>;
|
|
30
|
+
delete(reply: FastifyReply, id: string): Promise<void>;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=ai-connection.controller.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ai-connection.controller.d.ts","sourceRoot":"","sources":["../../../../src/foundations/ai-connection/controllers/ai-connection.controller.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAMvC,OAAO,EAAE,YAAY,EAAE,MAAM,4CAA4C,CAAC;AAC1E,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAE3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAExE;;;;;;;;;;;GAWG;AACH,qBACa,sBAAsB;IAE/B,OAAO,CAAC,QAAQ,CAAC,mBAAmB;IAGpC,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,YAAY;gBAJZ,mBAAmB,EAAE,mBAAmB,EAGxC,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,YAAY;IAMvC,OAAO,CAAQ,KAAK,EAAE,YAAY,EAAW,KAAK,EAAE,GAAG;IASvD,QAAQ,CAAQ,KAAK,EAAE,YAAY,EAAe,EAAE,EAAE,MAAM;IAe5D,OAAO,CAAQ,KAAK,EAAE,YAAY,EAAU,IAAI,EAAE,sBAAsB;IAUxE,MAAM,CAAQ,KAAK,EAAE,YAAY,EAAU,IAAI,EAAE,mBAAmB;IASpE,MAAM,CAAQ,KAAK,EAAE,YAAY,EAAe,EAAE,EAAE,MAAM,EAAU,IAAI,EAAE,kBAAkB;IAgB5F,MAAM,CAAQ,KAAK,EAAE,YAAY,EAAe,EAAE,EAAE,MAAM;CAKjE"}
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.AiConnectionController = void 0;
|
|
16
|
+
const common_1 = require("@nestjs/common");
|
|
17
|
+
const system_roles_1 = require("../../../common/constants/system.roles");
|
|
18
|
+
const decorators_1 = require("../../../common/decorators");
|
|
19
|
+
const audit_decorator_1 = require("../../../common/decorators/audit.decorator");
|
|
20
|
+
const cache_invalidate_decorator_1 = require("../../../common/decorators/cache-invalidate.decorator");
|
|
21
|
+
const guards_1 = require("../../../common/guards");
|
|
22
|
+
const cache_service_1 = require("../../../core/cache/services/cache.service");
|
|
23
|
+
const audit_service_1 = require("../../audit/services/audit.service");
|
|
24
|
+
const ai_connection_post_dto_1 = require("../dtos/ai-connection.post.dto");
|
|
25
|
+
const ai_connection_put_dto_1 = require("../dtos/ai-connection.put.dto");
|
|
26
|
+
const ai_connection_reorder_dto_1 = require("../dtos/ai-connection.reorder.dto");
|
|
27
|
+
const ai_connection_meta_1 = require("../entities/ai-connection.meta");
|
|
28
|
+
const ai_connection_service_1 = require("../services/ai-connection.service");
|
|
29
|
+
/**
|
|
30
|
+
* AiConnectionController
|
|
31
|
+
*
|
|
32
|
+
* Administrative REST API for the AI connection fallback chains. Mirrors the
|
|
33
|
+
* in-package admin-controller canonical (`stripe-product.controller.ts`):
|
|
34
|
+
* reads are `JwtAuthGuard` + `@Roles`, mutations are `AdminJwtAuthGuard` +
|
|
35
|
+
* `@Roles(RoleId.Administrator)`.
|
|
36
|
+
*
|
|
37
|
+
* Create/update deliberately call the service rather than
|
|
38
|
+
* `createCrudHandlers()`: both need service-level registry validation and
|
|
39
|
+
* secret encryption before the generic DTO path runs.
|
|
40
|
+
*/
|
|
41
|
+
let AiConnectionController = class AiConnectionController {
|
|
42
|
+
constructor(aiConnectionService,
|
|
43
|
+
// Read by the @CacheInvalidate / @Audit decorators via `this` — without
|
|
44
|
+
// these injections both decorators silently no-op.
|
|
45
|
+
cacheService, auditService) {
|
|
46
|
+
this.aiConnectionService = aiConnectionService;
|
|
47
|
+
this.cacheService = cacheService;
|
|
48
|
+
this.auditService = auditService;
|
|
49
|
+
}
|
|
50
|
+
async findAll(reply, query) {
|
|
51
|
+
const response = await this.aiConnectionService.findAllWithMeta({ query });
|
|
52
|
+
reply.send(response);
|
|
53
|
+
}
|
|
54
|
+
async findById(reply, id) {
|
|
55
|
+
const response = await this.aiConnectionService.findById({ id });
|
|
56
|
+
reply.send(response);
|
|
57
|
+
}
|
|
58
|
+
// Type-wide @CacheInvalidate on every mutation (not the per-id form): the
|
|
59
|
+
// per-id variant extracts req.params from the method's arguments, and these
|
|
60
|
+
// signatures — (reply, id, body) — carry no object with a `params` property,
|
|
61
|
+
// so it would silently invalidate nothing. invalidateByType clears every
|
|
62
|
+
// cache key registered to any element of the type, list responses included.
|
|
63
|
+
async reorder(reply, body) {
|
|
64
|
+
await this.aiConnectionService.reorder({ ids: body.data.ids });
|
|
65
|
+
// @HttpCode is inert with an injected @Res — set the status explicitly.
|
|
66
|
+
reply.status(common_1.HttpStatus.NO_CONTENT).send();
|
|
67
|
+
}
|
|
68
|
+
async create(reply, body) {
|
|
69
|
+
const response = await this.aiConnectionService.create(body);
|
|
70
|
+
reply.status(common_1.HttpStatus.CREATED).send(response);
|
|
71
|
+
}
|
|
72
|
+
async update(reply, id, body) {
|
|
73
|
+
// JSONAPI validation: URL ID must match body ID
|
|
74
|
+
if (id !== body.data.id) {
|
|
75
|
+
reply.status(common_1.HttpStatus.PRECONDITION_FAILED).send({ error: "AiConnection id does not match the {json:api} id" });
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
const response = await this.aiConnectionService.update(body);
|
|
79
|
+
reply.send(response);
|
|
80
|
+
}
|
|
81
|
+
async delete(reply, id) {
|
|
82
|
+
await this.aiConnectionService.deleteConnection({ id });
|
|
83
|
+
// @HttpCode is inert with an injected @Res — set the status explicitly.
|
|
84
|
+
reply.status(common_1.HttpStatus.NO_CONTENT).send();
|
|
85
|
+
}
|
|
86
|
+
};
|
|
87
|
+
exports.AiConnectionController = AiConnectionController;
|
|
88
|
+
__decorate([
|
|
89
|
+
(0, common_1.Get)(ai_connection_meta_1.aiConnectionMeta.endpoint),
|
|
90
|
+
(0, common_1.UseGuards)(guards_1.JwtAuthGuard),
|
|
91
|
+
(0, decorators_1.Roles)(system_roles_1.RoleId.Administrator),
|
|
92
|
+
__param(0, (0, common_1.Res)()),
|
|
93
|
+
__param(1, (0, common_1.Query)()),
|
|
94
|
+
__metadata("design:type", Function),
|
|
95
|
+
__metadata("design:paramtypes", [Object, Object]),
|
|
96
|
+
__metadata("design:returntype", Promise)
|
|
97
|
+
], AiConnectionController.prototype, "findAll", null);
|
|
98
|
+
__decorate([
|
|
99
|
+
(0, common_1.Get)(`${ai_connection_meta_1.aiConnectionMeta.endpoint}/:id`),
|
|
100
|
+
(0, common_1.UseGuards)(guards_1.JwtAuthGuard),
|
|
101
|
+
(0, decorators_1.Roles)(system_roles_1.RoleId.Administrator),
|
|
102
|
+
(0, audit_decorator_1.Audit)(ai_connection_meta_1.aiConnectionMeta, "id"),
|
|
103
|
+
__param(0, (0, common_1.Res)()),
|
|
104
|
+
__param(1, (0, common_1.Param)("id")),
|
|
105
|
+
__metadata("design:type", Function),
|
|
106
|
+
__metadata("design:paramtypes", [Object, String]),
|
|
107
|
+
__metadata("design:returntype", Promise)
|
|
108
|
+
], AiConnectionController.prototype, "findById", null);
|
|
109
|
+
__decorate([
|
|
110
|
+
(0, common_1.Post)(`${ai_connection_meta_1.aiConnectionMeta.endpoint}/reorder`),
|
|
111
|
+
(0, common_1.UseGuards)(guards_1.AdminJwtAuthGuard),
|
|
112
|
+
(0, decorators_1.Roles)(system_roles_1.RoleId.Administrator),
|
|
113
|
+
(0, cache_invalidate_decorator_1.CacheInvalidate)(ai_connection_meta_1.aiConnectionMeta),
|
|
114
|
+
(0, common_1.HttpCode)(common_1.HttpStatus.NO_CONTENT),
|
|
115
|
+
__param(0, (0, common_1.Res)()),
|
|
116
|
+
__param(1, (0, common_1.Body)()),
|
|
117
|
+
__metadata("design:type", Function),
|
|
118
|
+
__metadata("design:paramtypes", [Object, ai_connection_reorder_dto_1.AiConnectionReorderDTO]),
|
|
119
|
+
__metadata("design:returntype", Promise)
|
|
120
|
+
], AiConnectionController.prototype, "reorder", null);
|
|
121
|
+
__decorate([
|
|
122
|
+
(0, common_1.Post)(ai_connection_meta_1.aiConnectionMeta.endpoint),
|
|
123
|
+
(0, common_1.UseGuards)(guards_1.AdminJwtAuthGuard),
|
|
124
|
+
(0, decorators_1.Roles)(system_roles_1.RoleId.Administrator),
|
|
125
|
+
(0, cache_invalidate_decorator_1.CacheInvalidate)(ai_connection_meta_1.aiConnectionMeta),
|
|
126
|
+
__param(0, (0, common_1.Res)()),
|
|
127
|
+
__param(1, (0, common_1.Body)()),
|
|
128
|
+
__metadata("design:type", Function),
|
|
129
|
+
__metadata("design:paramtypes", [Object, ai_connection_post_dto_1.AiConnectionPostDTO]),
|
|
130
|
+
__metadata("design:returntype", Promise)
|
|
131
|
+
], AiConnectionController.prototype, "create", null);
|
|
132
|
+
__decorate([
|
|
133
|
+
(0, common_1.Put)(`${ai_connection_meta_1.aiConnectionMeta.endpoint}/:id`),
|
|
134
|
+
(0, common_1.UseGuards)(guards_1.AdminJwtAuthGuard),
|
|
135
|
+
(0, decorators_1.Roles)(system_roles_1.RoleId.Administrator),
|
|
136
|
+
(0, cache_invalidate_decorator_1.CacheInvalidate)(ai_connection_meta_1.aiConnectionMeta),
|
|
137
|
+
__param(0, (0, common_1.Res)()),
|
|
138
|
+
__param(1, (0, common_1.Param)("id")),
|
|
139
|
+
__param(2, (0, common_1.Body)()),
|
|
140
|
+
__metadata("design:type", Function),
|
|
141
|
+
__metadata("design:paramtypes", [Object, String, ai_connection_put_dto_1.AiConnectionPutDTO]),
|
|
142
|
+
__metadata("design:returntype", Promise)
|
|
143
|
+
], AiConnectionController.prototype, "update", null);
|
|
144
|
+
__decorate([
|
|
145
|
+
(0, common_1.Delete)(`${ai_connection_meta_1.aiConnectionMeta.endpoint}/:id`),
|
|
146
|
+
(0, common_1.UseGuards)(guards_1.AdminJwtAuthGuard),
|
|
147
|
+
(0, decorators_1.Roles)(system_roles_1.RoleId.Administrator),
|
|
148
|
+
(0, cache_invalidate_decorator_1.CacheInvalidate)(ai_connection_meta_1.aiConnectionMeta),
|
|
149
|
+
(0, common_1.HttpCode)(common_1.HttpStatus.NO_CONTENT),
|
|
150
|
+
__param(0, (0, common_1.Res)()),
|
|
151
|
+
__param(1, (0, common_1.Param)("id")),
|
|
152
|
+
__metadata("design:type", Function),
|
|
153
|
+
__metadata("design:paramtypes", [Object, String]),
|
|
154
|
+
__metadata("design:returntype", Promise)
|
|
155
|
+
], AiConnectionController.prototype, "delete", null);
|
|
156
|
+
exports.AiConnectionController = AiConnectionController = __decorate([
|
|
157
|
+
(0, common_1.Controller)(),
|
|
158
|
+
__metadata("design:paramtypes", [ai_connection_service_1.AiConnectionService,
|
|
159
|
+
cache_service_1.CacheService,
|
|
160
|
+
audit_service_1.AuditService])
|
|
161
|
+
], AiConnectionController);
|
|
162
|
+
//# sourceMappingURL=ai-connection.controller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ai-connection.controller.js","sourceRoot":"","sources":["../../../../src/foundations/ai-connection/controllers/ai-connection.controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { CompanyDataDTO } from "../../company/dtos/company.dto";
|
|
2
|
+
export declare class AiConnectionPostAttributesDTO {
|
|
3
|
+
name: string;
|
|
4
|
+
connectionType: string;
|
|
5
|
+
provider: string;
|
|
6
|
+
position: number;
|
|
7
|
+
enabled: boolean;
|
|
8
|
+
model?: string;
|
|
9
|
+
url?: string;
|
|
10
|
+
apiKey?: string;
|
|
11
|
+
region?: string;
|
|
12
|
+
instance?: string;
|
|
13
|
+
apiVersion?: string;
|
|
14
|
+
googleCredentialsBase64?: string;
|
|
15
|
+
allowFallbacks?: boolean;
|
|
16
|
+
reasoningEffort?: string;
|
|
17
|
+
maxOutputTokens?: number;
|
|
18
|
+
dimensions?: number;
|
|
19
|
+
inputCostPer1MTokens?: number;
|
|
20
|
+
outputCostPer1MTokens?: number;
|
|
21
|
+
cachedInputCostPer1MTokens?: number;
|
|
22
|
+
costPerMinute?: number;
|
|
23
|
+
costPerPage?: number;
|
|
24
|
+
directUrl?: string;
|
|
25
|
+
language?: string;
|
|
26
|
+
directFormat?: string;
|
|
27
|
+
directProvider?: string;
|
|
28
|
+
}
|
|
29
|
+
export declare class AiConnectionPostRelationshipsDTO {
|
|
30
|
+
company?: CompanyDataDTO;
|
|
31
|
+
}
|
|
32
|
+
export declare class AiConnectionPostDataDTO {
|
|
33
|
+
type: string;
|
|
34
|
+
id: string;
|
|
35
|
+
attributes: AiConnectionPostAttributesDTO;
|
|
36
|
+
relationships?: AiConnectionPostRelationshipsDTO;
|
|
37
|
+
}
|
|
38
|
+
export declare class AiConnectionPostDTO {
|
|
39
|
+
data: AiConnectionPostDataDTO;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=ai-connection.post.dto.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ai-connection.post.dto.d.ts","sourceRoot":"","sources":["../../../../src/foundations/ai-connection/dtos/ai-connection.post.dto.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAGhE,qBAAa,6BAA6B;IAIxC,IAAI,EAAE,MAAM,CAAC;IAIb,cAAc,EAAE,MAAM,CAAC;IAKvB,QAAQ,EAAE,MAAM,CAAC;IAIjB,QAAQ,EAAE,MAAM,CAAC;IAIjB,OAAO,EAAE,OAAO,CAAC;IAES,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uBAAuB,CAAC,EAAE,MAAM,CAAC;IAChC,cAAc,CAAC,EAAE,OAAO,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;CACnD;AAED,qBAAa,gCAAgC;IAI3C,OAAO,CAAC,EAAE,cAAc,CAAC;CAC1B;AAED,qBAAa,uBAAuB;IAElC,IAAI,EAAE,MAAM,CAAC;IAGb,EAAE,EAAE,MAAM,CAAC;IAKX,UAAU,EAAE,6BAA6B,CAAC;IAK1C,aAAa,CAAC,EAAE,gCAAgC,CAAC;CAClD;AAED,qBAAa,mBAAmB;IAI9B,IAAI,EAAE,uBAAuB,CAAC;CAC/B"}
|