@taico/taico 0.4.1 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/ai-providers/ai-model-selection.entity.d.ts +11 -0
- package/dist/ai-providers/ai-model-selection.entity.js +58 -0
- package/dist/ai-providers/ai-model-selection.entity.js.map +1 -0
- package/dist/ai-providers/ai-model-selections.controller.d.ts +12 -0
- package/dist/ai-providers/ai-model-selections.controller.js +102 -0
- package/dist/ai-providers/ai-model-selections.controller.js.map +1 -0
- package/dist/ai-providers/ai-model-selections.service.d.ts +19 -0
- package/dist/ai-providers/ai-model-selections.service.js +113 -0
- package/dist/ai-providers/ai-model-selections.service.js.map +1 -0
- package/dist/ai-providers/ai-provider-models.service.d.ts +14 -0
- package/dist/ai-providers/ai-provider-models.service.js +196 -0
- package/dist/ai-providers/ai-provider-models.service.js.map +1 -0
- package/dist/{chat-providers/chat-provider.entity.d.ts → ai-providers/ai-provider.entity.d.ts} +6 -4
- package/dist/{chat-providers/chat-provider.entity.js → ai-providers/ai-provider.entity.js} +31 -21
- package/dist/ai-providers/ai-provider.entity.js.map +1 -0
- package/dist/ai-providers/ai-providers.controller.d.ts +20 -0
- package/dist/ai-providers/ai-providers.controller.js +177 -0
- package/dist/ai-providers/ai-providers.controller.js.map +1 -0
- package/dist/ai-providers/ai-providers.module.d.ts +2 -0
- package/dist/ai-providers/ai-providers.module.js +36 -0
- package/dist/ai-providers/ai-providers.module.js.map +1 -0
- package/dist/ai-providers/ai-providers.scopes.d.ts +20 -0
- package/dist/ai-providers/ai-providers.scopes.js +23 -0
- package/dist/ai-providers/ai-providers.scopes.js.map +1 -0
- package/dist/ai-providers/ai-providers.service.d.ts +20 -0
- package/dist/ai-providers/ai-providers.service.js +200 -0
- package/dist/ai-providers/ai-providers.service.js.map +1 -0
- package/dist/ai-providers/dto/http/ai-model-selection-params.dto.d.ts +4 -0
- package/dist/{chat-providers/dto/http/set-active-chat-provider.dto.js → ai-providers/dto/http/ai-model-selection-params.dto.js} +11 -10
- package/dist/ai-providers/dto/http/ai-model-selection-params.dto.js.map +1 -0
- package/dist/ai-providers/dto/http/ai-model-selection-response.dto.d.ts +10 -0
- package/dist/ai-providers/dto/http/ai-model-selection-response.dto.js +83 -0
- package/dist/ai-providers/dto/http/ai-model-selection-response.dto.js.map +1 -0
- package/dist/ai-providers/dto/http/ai-provider-model-response.dto.d.ts +6 -0
- package/dist/ai-providers/dto/http/ai-provider-model-response.dto.js +45 -0
- package/dist/ai-providers/dto/http/ai-provider-model-response.dto.js.map +1 -0
- package/dist/ai-providers/dto/http/ai-provider-params.dto.d.ts +3 -0
- package/dist/{chat-providers/dto/http/chat-provider-params.dto.js → ai-providers/dto/http/ai-provider-params.dto.js} +6 -6
- package/dist/ai-providers/dto/http/ai-provider-params.dto.js.map +1 -0
- package/dist/ai-providers/dto/http/ai-provider-response.dto.d.ts +14 -0
- package/dist/{chat-providers/dto/http/chat-provider-response.dto.js → ai-providers/dto/http/ai-provider-response.dto.js} +45 -23
- package/dist/ai-providers/dto/http/ai-provider-response.dto.js.map +1 -0
- package/dist/ai-providers/dto/http/create-ai-provider.dto.d.ts +9 -0
- package/dist/ai-providers/dto/http/create-ai-provider.dto.js +90 -0
- package/dist/ai-providers/dto/http/create-ai-provider.dto.js.map +1 -0
- package/dist/ai-providers/dto/http/set-ai-model-selection.dto.d.ts +4 -0
- package/dist/{chat-providers/dto/http/create-chat-provider.dto.js → ai-providers/dto/http/set-ai-model-selection.dto.js} +15 -28
- package/dist/ai-providers/dto/http/set-ai-model-selection.dto.js.map +1 -0
- package/dist/ai-providers/dto/http/update-ai-provider.dto.d.ts +8 -0
- package/dist/ai-providers/dto/http/update-ai-provider.dto.js +88 -0
- package/dist/ai-providers/dto/http/update-ai-provider.dto.js.map +1 -0
- package/dist/ai-providers/dto/service/ai-providers.service.types.d.ts +62 -0
- package/dist/{threads/backends/chat-backend.interface.js → ai-providers/dto/service/ai-providers.service.types.js} +1 -1
- package/dist/ai-providers/dto/service/ai-providers.service.types.js.map +1 -0
- package/dist/ai-providers/enums/ai-model-job.enum.d.ts +7 -0
- package/dist/ai-providers/enums/ai-model-job.enum.js +15 -0
- package/dist/ai-providers/enums/ai-model-job.enum.js.map +1 -0
- package/dist/ai-providers/enums/ai-model-kind.enum.d.ts +4 -0
- package/dist/ai-providers/enums/ai-model-kind.enum.js +9 -0
- package/dist/ai-providers/enums/ai-model-kind.enum.js.map +1 -0
- package/dist/ai-providers/enums/ai-provider-type.enum.d.ts +8 -0
- package/dist/ai-providers/enums/ai-provider-type.enum.js +13 -0
- package/dist/ai-providers/enums/ai-provider-type.enum.js.map +1 -0
- package/dist/ai-providers/enums/index.d.ts +3 -0
- package/dist/{chat-providers → ai-providers}/enums/index.js +3 -1
- package/dist/ai-providers/enums/index.js.map +1 -0
- package/dist/ai-providers/errors/ai-providers.errors.d.ts +30 -0
- package/dist/ai-providers/errors/ai-providers.errors.js +57 -0
- package/dist/ai-providers/errors/ai-providers.errors.js.map +1 -0
- package/dist/ai-providers/google-environment.d.ts +3 -0
- package/dist/ai-providers/google-environment.js +18 -0
- package/dist/ai-providers/google-environment.js.map +1 -0
- package/dist/app-init/app-init.module.js +2 -2
- package/dist/app-init/app-init.module.js.map +1 -1
- package/dist/app-init/app-init.runner.d.ts +4 -4
- package/dist/app-init/app-init.runner.js +21 -21
- package/dist/app-init/app-init.runner.js.map +1 -1
- package/dist/app.module.js +15 -3
- package/dist/app.module.js.map +1 -1
- package/dist/auth/core/scopes/all-api.scopes.js +2 -2
- package/dist/auth/core/scopes/all-api.scopes.js.map +1 -1
- package/dist/common/postgres-io.adapter.d.ts +12 -0
- package/dist/common/postgres-io.adapter.js +62 -0
- package/dist/common/postgres-io.adapter.js.map +1 -0
- package/dist/config/env.config.d.ts +1 -0
- package/dist/config/env.config.js +9 -0
- package/dist/config/env.config.js.map +1 -1
- package/dist/errors/http/error-catalog.js +20 -14
- package/dist/errors/http/error-catalog.js.map +1 -1
- package/dist/main.js +4 -0
- package/dist/main.js.map +1 -1
- package/dist/migrations/1760200000000-ThreadAgentMessages.d.ts +6 -0
- package/dist/migrations/1760200000000-ThreadAgentMessages.js +28 -0
- package/dist/migrations/1760200000000-ThreadAgentMessages.js.map +1 -0
- package/dist/migrations/1760300000000-ChatProviderModelConfig.d.ts +6 -0
- package/dist/migrations/1760300000000-ChatProviderModelConfig.js +14 -0
- package/dist/migrations/1760300000000-ChatProviderModelConfig.js.map +1 -0
- package/dist/migrations/1760400000000-ReplaceAdkChatProvider.d.ts +6 -0
- package/dist/migrations/1760400000000-ReplaceAdkChatProvider.js +16 -0
- package/dist/migrations/1760400000000-ReplaceAdkChatProvider.js.map +1 -0
- package/dist/migrations/1760500000000-AiProviderModelSelections.d.ts +6 -0
- package/dist/migrations/1760500000000-AiProviderModelSelections.js +56 -0
- package/dist/migrations/1760500000000-AiProviderModelSelections.js.map +1 -0
- package/dist/migrations/1760600000000-DropAdkSessionTables.d.ts +6 -0
- package/dist/migrations/1760600000000-DropAdkSessionTables.js +51 -0
- package/dist/migrations/1760600000000-DropAdkSessionTables.js.map +1 -0
- package/dist/public/assets/index-BUmnqjpv.js +117 -0
- package/dist/public/assets/index-DOm5BmlC.css +1 -0
- package/dist/public/beta/assets/{index-BRla0F5r.js → index-n0qUSWPJ.js} +30 -30
- package/dist/public/beta/index.html +1 -1
- package/dist/public/index.html +2 -2
- package/dist/scripts/migrate-sqlite-to-postgres.js +0 -22
- package/dist/scripts/migrate-sqlite-to-postgres.js.map +1 -1
- package/dist/threads/agent/agent-context.utils.d.ts +14 -0
- package/dist/threads/agent/agent-context.utils.js +42 -0
- package/dist/threads/agent/agent-context.utils.js.map +1 -0
- package/dist/threads/agent/agent-context.utils.spec.d.ts +1 -0
- package/dist/threads/agent/agent-context.utils.spec.js +60 -0
- package/dist/threads/agent/agent-context.utils.spec.js.map +1 -0
- package/dist/threads/agent/chat-model.factory.d.ts +25 -0
- package/dist/threads/agent/chat-model.factory.js +106 -0
- package/dist/threads/agent/chat-model.factory.js.map +1 -0
- package/dist/threads/agent/chat-model.factory.spec.d.ts +1 -0
- package/dist/threads/agent/chat-model.factory.spec.js +83 -0
- package/dist/threads/agent/chat-model.factory.spec.js.map +1 -0
- package/dist/threads/agent/hooks/compaction.hook.d.ts +11 -0
- package/dist/threads/agent/hooks/compaction.hook.js +109 -0
- package/dist/threads/agent/hooks/compaction.hook.js.map +1 -0
- package/dist/threads/agent/hooks/easter-egg.hook.d.ts +5 -0
- package/dist/threads/agent/hooks/easter-egg.hook.js +30 -0
- package/dist/threads/agent/hooks/easter-egg.hook.js.map +1 -0
- package/dist/threads/agent/hooks/hooks.spec.d.ts +1 -0
- package/dist/threads/agent/hooks/hooks.spec.js +87 -0
- package/dist/threads/agent/hooks/hooks.spec.js.map +1 -0
- package/dist/threads/agent/hooks/thread-agent-hook.interface.d.ts +20 -0
- package/dist/threads/agent/hooks/thread-agent-hook.interface.js +5 -0
- package/dist/threads/agent/hooks/thread-agent-hook.interface.js.map +1 -0
- package/dist/threads/agent/hooks/thread-agent-hooks.runner.d.ts +11 -0
- package/dist/threads/agent/hooks/thread-agent-hooks.runner.js +98 -0
- package/dist/threads/agent/hooks/thread-agent-hooks.runner.js.map +1 -0
- package/dist/threads/agent/taico-mcp-tools.factory.d.ts +22 -0
- package/dist/threads/agent/taico-mcp-tools.factory.js +79 -0
- package/dist/threads/agent/taico-mcp-tools.factory.js.map +1 -0
- package/dist/threads/agent/thread-agent-log.service.d.ts +41 -0
- package/dist/threads/agent/thread-agent-log.service.js +157 -0
- package/dist/threads/agent/thread-agent-log.service.js.map +1 -0
- package/dist/threads/agent/thread-agent-message.entity.d.ts +19 -0
- package/dist/threads/agent/thread-agent-message.entity.js +109 -0
- package/dist/threads/agent/thread-agent-message.entity.js.map +1 -0
- package/dist/threads/agent/thread-agent.enums.d.ts +17 -0
- package/dist/threads/agent/thread-agent.enums.js +24 -0
- package/dist/threads/agent/thread-agent.enums.js.map +1 -0
- package/dist/threads/agent/thread-agent.prompts.d.ts +5 -0
- package/dist/threads/{backends/chat-backend.utils.js → agent/thread-agent.prompts.js} +5 -4
- package/dist/threads/agent/thread-agent.prompts.js.map +1 -0
- package/dist/threads/agent/thread-agent.service.d.ts +33 -0
- package/dist/threads/agent/thread-agent.service.js +286 -0
- package/dist/threads/agent/thread-agent.service.js.map +1 -0
- package/dist/threads/agent/thread-agent.service.spec.d.ts +1 -0
- package/dist/threads/agent/thread-agent.service.spec.js +184 -0
- package/dist/threads/agent/thread-agent.service.spec.js.map +1 -0
- package/dist/threads/agent/thread-turn.entity.d.ts +12 -0
- package/dist/threads/agent/thread-turn.entity.js +71 -0
- package/dist/threads/agent/thread-turn.entity.js.map +1 -0
- package/dist/threads/agent/thread-turns.service.d.ts +13 -0
- package/dist/threads/agent/thread-turns.service.js +52 -0
- package/dist/threads/agent/thread-turns.service.js.map +1 -0
- package/dist/threads/chat.service.d.ts +5 -30
- package/dist/threads/chat.service.js +44 -119
- package/dist/threads/chat.service.js.map +1 -1
- package/dist/threads/dto/service/threads.service.types.d.ts +0 -2
- package/dist/threads/dto/thread-list-item-response.dto.d.ts +0 -1
- package/dist/threads/dto/thread-list-item-response.dto.js +0 -10
- package/dist/threads/dto/thread-list-item-response.dto.js.map +1 -1
- package/dist/threads/dto/thread-response.dto.d.ts +0 -1
- package/dist/threads/dto/thread-response.dto.js +0 -11
- package/dist/threads/dto/thread-response.dto.js.map +1 -1
- package/dist/threads/thread-message.entity.d.ts +3 -0
- package/dist/threads/thread-message.entity.js +12 -0
- package/dist/threads/thread-message.entity.js.map +1 -1
- package/dist/threads/thread.entity.d.ts +3 -1
- package/dist/threads/thread.entity.js +23 -3
- package/dist/threads/thread.entity.js.map +1 -1
- package/dist/threads/threads-state.service.spec.js +3 -1
- package/dist/threads/threads-state.service.spec.js.map +1 -1
- package/dist/threads/threads.module.js +31 -8
- package/dist/threads/threads.module.js.map +1 -1
- package/dist/threads/threads.service.d.ts +3 -8
- package/dist/threads/threads.service.js +6 -143
- package/dist/threads/threads.service.js.map +1 -1
- package/dist/threads/threads.service.spec.js +3 -2
- package/dist/threads/threads.service.spec.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/walkthrough/dto/walkthrough-status-response.dto.d.ts +1 -0
- package/dist/walkthrough/dto/walkthrough-status-response.dto.js +8 -0
- package/dist/walkthrough/dto/walkthrough-status-response.dto.js.map +1 -1
- package/dist/walkthrough/walkthrough.controller.js +1 -0
- package/dist/walkthrough/walkthrough.controller.js.map +1 -1
- package/dist/walkthrough/walkthrough.module.js +2 -0
- package/dist/walkthrough/walkthrough.module.js.map +1 -1
- package/dist/walkthrough/walkthrough.service.d.ts +4 -1
- package/dist/walkthrough/walkthrough.service.js +14 -7
- package/dist/walkthrough/walkthrough.service.js.map +1 -1
- package/package.json +17 -9
- package/dist/chat-providers/chat-provider.entity.js.map +0 -1
- package/dist/chat-providers/chat-providers.controller.d.ts +0 -19
- package/dist/chat-providers/chat-providers.controller.js +0 -179
- package/dist/chat-providers/chat-providers.controller.js.map +0 -1
- package/dist/chat-providers/chat-providers.module.d.ts +0 -2
- package/dist/chat-providers/chat-providers.module.js +0 -32
- package/dist/chat-providers/chat-providers.module.js.map +0 -1
- package/dist/chat-providers/chat-providers.scopes.d.ts +0 -20
- package/dist/chat-providers/chat-providers.scopes.js +0 -23
- package/dist/chat-providers/chat-providers.scopes.js.map +0 -1
- package/dist/chat-providers/chat-providers.service.d.ts +0 -20
- package/dist/chat-providers/chat-providers.service.js +0 -193
- package/dist/chat-providers/chat-providers.service.js.map +0 -1
- package/dist/chat-providers/dto/http/chat-provider-params.dto.d.ts +0 -3
- package/dist/chat-providers/dto/http/chat-provider-params.dto.js.map +0 -1
- package/dist/chat-providers/dto/http/chat-provider-response.dto.d.ts +0 -12
- package/dist/chat-providers/dto/http/chat-provider-response.dto.js.map +0 -1
- package/dist/chat-providers/dto/http/create-chat-provider.dto.d.ts +0 -6
- package/dist/chat-providers/dto/http/create-chat-provider.dto.js.map +0 -1
- package/dist/chat-providers/dto/http/set-active-chat-provider.dto.d.ts +0 -3
- package/dist/chat-providers/dto/http/set-active-chat-provider.dto.js.map +0 -1
- package/dist/chat-providers/dto/http/update-chat-provider.dto.d.ts +0 -5
- package/dist/chat-providers/dto/http/update-chat-provider.dto.js +0 -49
- package/dist/chat-providers/dto/http/update-chat-provider.dto.js.map +0 -1
- package/dist/chat-providers/dto/service/chat-providers.service.types.d.ts +0 -30
- package/dist/chat-providers/dto/service/chat-providers.service.types.js +0 -3
- package/dist/chat-providers/dto/service/chat-providers.service.types.js.map +0 -1
- package/dist/chat-providers/enums/chat-provider-type.enum.d.ts +0 -4
- package/dist/chat-providers/enums/chat-provider-type.enum.js +0 -9
- package/dist/chat-providers/enums/chat-provider-type.enum.js.map +0 -1
- package/dist/chat-providers/enums/index.d.ts +0 -1
- package/dist/chat-providers/enums/index.js.map +0 -1
- package/dist/chat-providers/errors/chat-providers.errors.d.ts +0 -25
- package/dist/chat-providers/errors/chat-providers.errors.js +0 -48
- package/dist/chat-providers/errors/chat-providers.errors.js.map +0 -1
- package/dist/llm/llm.module.d.ts +0 -2
- package/dist/llm/llm.module.js +0 -23
- package/dist/llm/llm.module.js.map +0 -1
- package/dist/llm/openai-responses.service.d.ts +0 -12
- package/dist/llm/openai-responses.service.js +0 -69
- package/dist/llm/openai-responses.service.js.map +0 -1
- package/dist/public/assets/index-CPjOd3Sq.css +0 -1
- package/dist/public/assets/index-DVNE_5Yh.js +0 -73
- package/dist/threads/backends/adk.backend.d.ts +0 -18
- package/dist/threads/backends/adk.backend.js +0 -264
- package/dist/threads/backends/adk.backend.js.map +0 -1
- package/dist/threads/backends/chat-backend.interface.d.ts +0 -39
- package/dist/threads/backends/chat-backend.interface.js.map +0 -1
- package/dist/threads/backends/chat-backend.utils.d.ts +0 -5
- package/dist/threads/backends/chat-backend.utils.js.map +0 -1
- package/dist/threads/backends/openai.backend.d.ts +0 -19
- package/dist/threads/backends/openai.backend.js +0 -155
- package/dist/threads/backends/openai.backend.js.map +0 -1
- package/dist/threads/openai-mcp-server-factory.service.d.ts +0 -8
- package/dist/threads/openai-mcp-server-factory.service.js +0 -114
- package/dist/threads/openai-mcp-server-factory.service.js.map +0 -1
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Backend
|
|
2
2
|
|
|
3
|
-
[](https://badge.socket.dev/npm/package/@taico/taico/0.5.0)
|
|
4
4
|
|
|
5
5
|
NestJS backend for Taico.
|
|
6
6
|
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { AiProviderEntity } from './ai-provider.entity';
|
|
2
|
+
import { AiModelJob } from './enums';
|
|
3
|
+
export declare class AiModelSelectionEntity {
|
|
4
|
+
job: AiModelJob;
|
|
5
|
+
aiProviderId: string;
|
|
6
|
+
aiProvider?: AiProviderEntity;
|
|
7
|
+
modelId: string;
|
|
8
|
+
rowVersion: number;
|
|
9
|
+
createdAt: Date;
|
|
10
|
+
updatedAt: Date;
|
|
11
|
+
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.AiModelSelectionEntity = void 0;
|
|
13
|
+
const typeorm_1 = require("typeorm");
|
|
14
|
+
const ai_provider_entity_1 = require("./ai-provider.entity");
|
|
15
|
+
const enums_1 = require("./enums");
|
|
16
|
+
let AiModelSelectionEntity = class AiModelSelectionEntity {
|
|
17
|
+
job;
|
|
18
|
+
aiProviderId;
|
|
19
|
+
aiProvider;
|
|
20
|
+
modelId;
|
|
21
|
+
rowVersion;
|
|
22
|
+
createdAt;
|
|
23
|
+
updatedAt;
|
|
24
|
+
};
|
|
25
|
+
exports.AiModelSelectionEntity = AiModelSelectionEntity;
|
|
26
|
+
__decorate([
|
|
27
|
+
(0, typeorm_1.PrimaryColumn)({ type: 'text', enum: enums_1.AiModelJob }),
|
|
28
|
+
__metadata("design:type", String)
|
|
29
|
+
], AiModelSelectionEntity.prototype, "job", void 0);
|
|
30
|
+
__decorate([
|
|
31
|
+
(0, typeorm_1.Column)({ type: 'uuid', name: 'ai_provider_id' }),
|
|
32
|
+
__metadata("design:type", String)
|
|
33
|
+
], AiModelSelectionEntity.prototype, "aiProviderId", void 0);
|
|
34
|
+
__decorate([
|
|
35
|
+
(0, typeorm_1.ManyToOne)(() => ai_provider_entity_1.AiProviderEntity),
|
|
36
|
+
(0, typeorm_1.JoinColumn)({ name: 'ai_provider_id' }),
|
|
37
|
+
__metadata("design:type", ai_provider_entity_1.AiProviderEntity)
|
|
38
|
+
], AiModelSelectionEntity.prototype, "aiProvider", void 0);
|
|
39
|
+
__decorate([
|
|
40
|
+
(0, typeorm_1.Column)({ type: 'text', name: 'model_id' }),
|
|
41
|
+
__metadata("design:type", String)
|
|
42
|
+
], AiModelSelectionEntity.prototype, "modelId", void 0);
|
|
43
|
+
__decorate([
|
|
44
|
+
(0, typeorm_1.VersionColumn)({ name: 'row_version' }),
|
|
45
|
+
__metadata("design:type", Number)
|
|
46
|
+
], AiModelSelectionEntity.prototype, "rowVersion", void 0);
|
|
47
|
+
__decorate([
|
|
48
|
+
(0, typeorm_1.CreateDateColumn)({ type: 'timestamptz', name: 'created_at' }),
|
|
49
|
+
__metadata("design:type", Date)
|
|
50
|
+
], AiModelSelectionEntity.prototype, "createdAt", void 0);
|
|
51
|
+
__decorate([
|
|
52
|
+
(0, typeorm_1.UpdateDateColumn)({ type: 'timestamptz', name: 'updated_at' }),
|
|
53
|
+
__metadata("design:type", Date)
|
|
54
|
+
], AiModelSelectionEntity.prototype, "updatedAt", void 0);
|
|
55
|
+
exports.AiModelSelectionEntity = AiModelSelectionEntity = __decorate([
|
|
56
|
+
(0, typeorm_1.Entity)({ name: 'ai_model_selections' })
|
|
57
|
+
], AiModelSelectionEntity);
|
|
58
|
+
//# sourceMappingURL=ai-model-selection.entity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ai-model-selection.entity.js","sourceRoot":"","sources":["../../src/ai-providers/ai-model-selection.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qCASiB;AACjB,6DAAwD;AACxD,mCAAqC;AAI9B,IAAM,sBAAsB,GAA5B,MAAM,sBAAsB;IAEjC,GAAG,CAAc;IAGjB,YAAY,CAAU;IAItB,UAAU,CAAoB;IAI9B,OAAO,CAAU;IAGjB,UAAU,CAAU;IAGpB,SAAS,CAAQ;IAGjB,SAAS,CAAQ;CAClB,CAAA;AAvBY,wDAAsB;AAEjC;IADC,IAAA,uBAAa,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,kBAAU,EAAE,CAAC;;mDACjC;AAGjB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC;;4DAC3B;AAItB;IAFC,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,qCAAgB,CAAC;IACjC,IAAA,oBAAU,EAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC;8BAC1B,qCAAgB;0DAAC;AAI9B;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;;uDAC1B;AAGjB;IADC,IAAA,uBAAa,EAAC,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;;0DACnB;AAGpB;IADC,IAAA,0BAAgB,EAAC,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;8BAClD,IAAI;yDAAC;AAGjB;IADC,IAAA,0BAAgB,EAAC,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;8BAClD,IAAI;yDAAC;iCAtBN,sBAAsB;IADlC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,CAAC;GAC3B,sBAAsB,CAuBlC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { AiModelSelectionsService } from './ai-model-selections.service';
|
|
2
|
+
import { AiModelSelectionParamsDto } from './dto/http/ai-model-selection-params.dto';
|
|
3
|
+
import { AiModelSelectionResponseDto } from './dto/http/ai-model-selection-response.dto';
|
|
4
|
+
import { SetAiModelSelectionDto } from './dto/http/set-ai-model-selection.dto';
|
|
5
|
+
export declare class AiModelSelectionsController {
|
|
6
|
+
private readonly aiModelSelectionsService;
|
|
7
|
+
constructor(aiModelSelectionsService: AiModelSelectionsService);
|
|
8
|
+
listAiModelSelections(): Promise<AiModelSelectionResponseDto[]>;
|
|
9
|
+
setAiModelSelection(params: AiModelSelectionParamsDto, dto: SetAiModelSelectionDto): Promise<AiModelSelectionResponseDto>;
|
|
10
|
+
clearAiModelSelection(params: AiModelSelectionParamsDto): Promise<void>;
|
|
11
|
+
private mapToResponse;
|
|
12
|
+
}
|
|
@@ -0,0 +1,102 @@
|
|
|
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.AiModelSelectionsController = void 0;
|
|
16
|
+
const common_1 = require("@nestjs/common");
|
|
17
|
+
const swagger_1 = require("@nestjs/swagger");
|
|
18
|
+
const access_token_guard_1 = require("../auth/guards/guards/access-token.guard");
|
|
19
|
+
const scopes_guard_1 = require("../auth/guards/guards/scopes.guard");
|
|
20
|
+
const require_scopes_decorator_1 = require("../auth/guards/decorators/require-scopes.decorator");
|
|
21
|
+
const ai_model_selections_service_1 = require("./ai-model-selections.service");
|
|
22
|
+
const ai_providers_scopes_1 = require("./ai-providers.scopes");
|
|
23
|
+
const ai_model_selection_params_dto_1 = require("./dto/http/ai-model-selection-params.dto");
|
|
24
|
+
const ai_model_selection_response_dto_1 = require("./dto/http/ai-model-selection-response.dto");
|
|
25
|
+
const set_ai_model_selection_dto_1 = require("./dto/http/set-ai-model-selection.dto");
|
|
26
|
+
let AiModelSelectionsController = class AiModelSelectionsController {
|
|
27
|
+
aiModelSelectionsService;
|
|
28
|
+
constructor(aiModelSelectionsService) {
|
|
29
|
+
this.aiModelSelectionsService = aiModelSelectionsService;
|
|
30
|
+
}
|
|
31
|
+
async listAiModelSelections() {
|
|
32
|
+
const results = await this.aiModelSelectionsService.listSelections();
|
|
33
|
+
return results.map((result) => this.mapToResponse(result));
|
|
34
|
+
}
|
|
35
|
+
async setAiModelSelection(params, dto) {
|
|
36
|
+
const result = await this.aiModelSelectionsService.setSelection({
|
|
37
|
+
job: params.job,
|
|
38
|
+
aiProviderId: dto.aiProviderId,
|
|
39
|
+
modelId: dto.modelId,
|
|
40
|
+
});
|
|
41
|
+
return this.mapToResponse(result);
|
|
42
|
+
}
|
|
43
|
+
async clearAiModelSelection(params) {
|
|
44
|
+
await this.aiModelSelectionsService.clearSelection(params.job);
|
|
45
|
+
}
|
|
46
|
+
mapToResponse(result) {
|
|
47
|
+
return {
|
|
48
|
+
job: result.job,
|
|
49
|
+
aiProviderId: result.aiProviderId,
|
|
50
|
+
modelId: result.modelId,
|
|
51
|
+
followsConversation: result.followsConversation,
|
|
52
|
+
effectiveAiProviderId: result.effectiveAiProviderId,
|
|
53
|
+
effectiveModelId: result.effectiveModelId,
|
|
54
|
+
isReady: result.isReady,
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
exports.AiModelSelectionsController = AiModelSelectionsController;
|
|
59
|
+
__decorate([
|
|
60
|
+
(0, common_1.Get)(),
|
|
61
|
+
(0, require_scopes_decorator_1.RequireScopes)(ai_providers_scopes_1.AiProvidersScopes.READ.id),
|
|
62
|
+
(0, swagger_1.ApiOperation)({ summary: 'List which model each job uses' }),
|
|
63
|
+
(0, swagger_1.ApiOkResponse)({
|
|
64
|
+
type: [ai_model_selection_response_dto_1.AiModelSelectionResponseDto],
|
|
65
|
+
description: 'One entry per job, selected or not',
|
|
66
|
+
}),
|
|
67
|
+
__metadata("design:type", Function),
|
|
68
|
+
__metadata("design:paramtypes", []),
|
|
69
|
+
__metadata("design:returntype", Promise)
|
|
70
|
+
], AiModelSelectionsController.prototype, "listAiModelSelections", null);
|
|
71
|
+
__decorate([
|
|
72
|
+
(0, common_1.Put)(':job'),
|
|
73
|
+
(0, require_scopes_decorator_1.RequireScopes)(ai_providers_scopes_1.AiProvidersScopes.CONFIGURE.id),
|
|
74
|
+
(0, swagger_1.ApiOperation)({ summary: 'Select the provider and model a job uses' }),
|
|
75
|
+
(0, swagger_1.ApiOkResponse)({ type: ai_model_selection_response_dto_1.AiModelSelectionResponseDto, description: 'Selection saved' }),
|
|
76
|
+
(0, swagger_1.ApiNotFoundResponse)({ description: 'AI provider not found' }),
|
|
77
|
+
__param(0, (0, common_1.Param)()),
|
|
78
|
+
__param(1, (0, common_1.Body)()),
|
|
79
|
+
__metadata("design:type", Function),
|
|
80
|
+
__metadata("design:paramtypes", [ai_model_selection_params_dto_1.AiModelSelectionParamsDto,
|
|
81
|
+
set_ai_model_selection_dto_1.SetAiModelSelectionDto]),
|
|
82
|
+
__metadata("design:returntype", Promise)
|
|
83
|
+
], AiModelSelectionsController.prototype, "setAiModelSelection", null);
|
|
84
|
+
__decorate([
|
|
85
|
+
(0, common_1.Delete)(':job'),
|
|
86
|
+
(0, common_1.HttpCode)(204),
|
|
87
|
+
(0, require_scopes_decorator_1.RequireScopes)(ai_providers_scopes_1.AiProvidersScopes.CONFIGURE.id),
|
|
88
|
+
(0, swagger_1.ApiOperation)({ summary: "Clear a job's selection" }),
|
|
89
|
+
(0, swagger_1.ApiNoContentResponse)({ description: 'Selection cleared' }),
|
|
90
|
+
__param(0, (0, common_1.Param)()),
|
|
91
|
+
__metadata("design:type", Function),
|
|
92
|
+
__metadata("design:paramtypes", [ai_model_selection_params_dto_1.AiModelSelectionParamsDto]),
|
|
93
|
+
__metadata("design:returntype", Promise)
|
|
94
|
+
], AiModelSelectionsController.prototype, "clearAiModelSelection", null);
|
|
95
|
+
exports.AiModelSelectionsController = AiModelSelectionsController = __decorate([
|
|
96
|
+
(0, swagger_1.ApiTags)('AI Model Selections'),
|
|
97
|
+
(0, swagger_1.ApiCookieAuth)('JWT-Cookie'),
|
|
98
|
+
(0, common_1.Controller)('ai-model-selections'),
|
|
99
|
+
(0, common_1.UseGuards)(access_token_guard_1.AccessTokenGuard, scopes_guard_1.ScopesGuard),
|
|
100
|
+
__metadata("design:paramtypes", [ai_model_selections_service_1.AiModelSelectionsService])
|
|
101
|
+
], AiModelSelectionsController);
|
|
102
|
+
//# sourceMappingURL=ai-model-selections.controller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ai-model-selections.controller.js","sourceRoot":"","sources":["../../src/ai-providers/ai-model-selections.controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { DataSource, Repository } from 'typeorm';
|
|
2
|
+
import { AiModelSelectionEntity } from './ai-model-selection.entity';
|
|
3
|
+
import { AiProviderEntity } from './ai-provider.entity';
|
|
4
|
+
import { AiProvidersService } from './ai-providers.service';
|
|
5
|
+
import { AiModelSelectionResult, ResolvedAiModelSelection, SetAiModelSelectionInput } from './dto/service/ai-providers.service.types';
|
|
6
|
+
import { AiModelJob } from './enums';
|
|
7
|
+
export declare class AiModelSelectionsService {
|
|
8
|
+
private readonly selectionRepository;
|
|
9
|
+
private readonly aiProviderRepository;
|
|
10
|
+
private readonly aiProvidersService;
|
|
11
|
+
private readonly dataSource;
|
|
12
|
+
private readonly logger;
|
|
13
|
+
constructor(selectionRepository: Repository<AiModelSelectionEntity>, aiProviderRepository: Repository<AiProviderEntity>, aiProvidersService: AiProvidersService, dataSource: DataSource);
|
|
14
|
+
listSelections(): Promise<AiModelSelectionResult[]>;
|
|
15
|
+
setSelection(input: SetAiModelSelectionInput): Promise<AiModelSelectionResult>;
|
|
16
|
+
clearSelection(job: AiModelJob): Promise<void>;
|
|
17
|
+
resolve(job: AiModelJob): Promise<ResolvedAiModelSelection>;
|
|
18
|
+
private getSelection;
|
|
19
|
+
}
|
|
@@ -0,0 +1,113 @@
|
|
|
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
|
+
var AiModelSelectionsService_1;
|
|
15
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
+
exports.AiModelSelectionsService = void 0;
|
|
17
|
+
const common_1 = require("@nestjs/common");
|
|
18
|
+
const typeorm_1 = require("@nestjs/typeorm");
|
|
19
|
+
const typeorm_2 = require("typeorm");
|
|
20
|
+
const ai_model_selection_entity_1 = require("./ai-model-selection.entity");
|
|
21
|
+
const ai_provider_entity_1 = require("./ai-provider.entity");
|
|
22
|
+
const ai_providers_service_1 = require("./ai-providers.service");
|
|
23
|
+
const enums_1 = require("./enums");
|
|
24
|
+
const ai_providers_errors_1 = require("./errors/ai-providers.errors");
|
|
25
|
+
let AiModelSelectionsService = AiModelSelectionsService_1 = class AiModelSelectionsService {
|
|
26
|
+
selectionRepository;
|
|
27
|
+
aiProviderRepository;
|
|
28
|
+
aiProvidersService;
|
|
29
|
+
dataSource;
|
|
30
|
+
logger = new common_1.Logger(AiModelSelectionsService_1.name);
|
|
31
|
+
constructor(selectionRepository, aiProviderRepository, aiProvidersService, dataSource) {
|
|
32
|
+
this.selectionRepository = selectionRepository;
|
|
33
|
+
this.aiProviderRepository = aiProviderRepository;
|
|
34
|
+
this.aiProvidersService = aiProvidersService;
|
|
35
|
+
this.dataSource = dataSource;
|
|
36
|
+
}
|
|
37
|
+
async listSelections() {
|
|
38
|
+
const [selections, providers] = await Promise.all([
|
|
39
|
+
this.selectionRepository.find(),
|
|
40
|
+
this.aiProviderRepository.find(),
|
|
41
|
+
]);
|
|
42
|
+
const byJob = new Map(selections.map((selection) => [selection.job, selection]));
|
|
43
|
+
const providersById = new Map(providers.map((provider) => [provider.id, provider]));
|
|
44
|
+
return Object.values(enums_1.AiModelJob).map((job) => {
|
|
45
|
+
const own = byJob.get(job) ?? null;
|
|
46
|
+
const followsConversation = !own && enums_1.JOBS_FOLLOWING_CONVERSATION.includes(job);
|
|
47
|
+
const effective = followsConversation ? byJob.get(enums_1.AiModelJob.CONVERSATION) ?? null : own;
|
|
48
|
+
const provider = effective ? providersById.get(effective.aiProviderId) : undefined;
|
|
49
|
+
return {
|
|
50
|
+
job,
|
|
51
|
+
aiProviderId: own?.aiProviderId ?? null,
|
|
52
|
+
modelId: own?.modelId ?? null,
|
|
53
|
+
followsConversation,
|
|
54
|
+
effectiveAiProviderId: effective?.aiProviderId ?? null,
|
|
55
|
+
effectiveModelId: effective?.modelId ?? null,
|
|
56
|
+
isReady: !!provider && (0, ai_providers_service_1.isAiProviderConfigured)(provider),
|
|
57
|
+
};
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
async setSelection(input) {
|
|
61
|
+
this.logger.log({
|
|
62
|
+
message: 'Setting AI model selection',
|
|
63
|
+
job: input.job,
|
|
64
|
+
aiProviderId: input.aiProviderId,
|
|
65
|
+
modelId: input.modelId,
|
|
66
|
+
});
|
|
67
|
+
await this.dataSource.transaction(async (manager) => {
|
|
68
|
+
const provider = await manager.getRepository(ai_provider_entity_1.AiProviderEntity).findOne({
|
|
69
|
+
where: { id: input.aiProviderId },
|
|
70
|
+
lock: { mode: 'pessimistic_read' },
|
|
71
|
+
});
|
|
72
|
+
if (!provider) {
|
|
73
|
+
throw new ai_providers_errors_1.AiProviderNotFoundError(input.aiProviderId);
|
|
74
|
+
}
|
|
75
|
+
await manager
|
|
76
|
+
.getRepository(ai_model_selection_entity_1.AiModelSelectionEntity)
|
|
77
|
+
.upsert({ job: input.job, aiProviderId: input.aiProviderId, modelId: input.modelId.trim() }, ['job']);
|
|
78
|
+
});
|
|
79
|
+
return this.getSelection(input.job);
|
|
80
|
+
}
|
|
81
|
+
async clearSelection(job) {
|
|
82
|
+
this.logger.log({ message: 'Clearing AI model selection', job });
|
|
83
|
+
await this.selectionRepository.delete({ job });
|
|
84
|
+
}
|
|
85
|
+
async resolve(job) {
|
|
86
|
+
let selection = await this.selectionRepository.findOne({ where: { job } });
|
|
87
|
+
if (!selection && enums_1.JOBS_FOLLOWING_CONVERSATION.includes(job)) {
|
|
88
|
+
selection = await this.selectionRepository.findOne({
|
|
89
|
+
where: { job: enums_1.AiModelJob.CONVERSATION },
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
if (!selection) {
|
|
93
|
+
throw new ai_providers_errors_1.AiModelNotSelectedError(job);
|
|
94
|
+
}
|
|
95
|
+
const provider = await this.aiProvidersService.getAiProviderConfigById(selection.aiProviderId);
|
|
96
|
+
return { provider, modelId: selection.modelId };
|
|
97
|
+
}
|
|
98
|
+
async getSelection(job) {
|
|
99
|
+
const selections = await this.listSelections();
|
|
100
|
+
return selections.find((selection) => selection.job === job);
|
|
101
|
+
}
|
|
102
|
+
};
|
|
103
|
+
exports.AiModelSelectionsService = AiModelSelectionsService;
|
|
104
|
+
exports.AiModelSelectionsService = AiModelSelectionsService = AiModelSelectionsService_1 = __decorate([
|
|
105
|
+
(0, common_1.Injectable)(),
|
|
106
|
+
__param(0, (0, typeorm_1.InjectRepository)(ai_model_selection_entity_1.AiModelSelectionEntity)),
|
|
107
|
+
__param(1, (0, typeorm_1.InjectRepository)(ai_provider_entity_1.AiProviderEntity)),
|
|
108
|
+
__metadata("design:paramtypes", [typeorm_2.Repository,
|
|
109
|
+
typeorm_2.Repository,
|
|
110
|
+
ai_providers_service_1.AiProvidersService,
|
|
111
|
+
typeorm_2.DataSource])
|
|
112
|
+
], AiModelSelectionsService);
|
|
113
|
+
//# sourceMappingURL=ai-model-selections.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ai-model-selections.service.js","sourceRoot":"","sources":["../../src/ai-providers/ai-model-selections.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { AiProvidersService } from './ai-providers.service';
|
|
2
|
+
import { AiProviderModelResult } from './dto/service/ai-providers.service.types';
|
|
3
|
+
export declare class AiProviderModelsService {
|
|
4
|
+
private readonly aiProvidersService;
|
|
5
|
+
private readonly logger;
|
|
6
|
+
constructor(aiProvidersService: AiProvidersService);
|
|
7
|
+
listModels(providerId: string): Promise<AiProviderModelResult[]>;
|
|
8
|
+
private fetchModels;
|
|
9
|
+
private listOpenAi;
|
|
10
|
+
private listAnthropic;
|
|
11
|
+
private listGoogle;
|
|
12
|
+
private listVertex;
|
|
13
|
+
private getJson;
|
|
14
|
+
}
|
|
@@ -0,0 +1,196 @@
|
|
|
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 AiProviderModelsService_1;
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.AiProviderModelsService = void 0;
|
|
14
|
+
const common_1 = require("@nestjs/common");
|
|
15
|
+
const google_auth_library_1 = require("google-auth-library");
|
|
16
|
+
const ai_providers_service_1 = require("./ai-providers.service");
|
|
17
|
+
const enums_1 = require("./enums");
|
|
18
|
+
const ai_providers_errors_1 = require("./errors/ai-providers.errors");
|
|
19
|
+
const google_environment_1 = require("./google-environment");
|
|
20
|
+
const REQUEST_TIMEOUT_MS = 10_000;
|
|
21
|
+
const MAX_PAGES = 10;
|
|
22
|
+
const OPENAI_BASE_URL = 'https://api.openai.com/v1';
|
|
23
|
+
const ANTHROPIC_BASE_URL = 'https://api.anthropic.com/v1';
|
|
24
|
+
const XAI_BASE_URL = 'https://api.x.ai/v1';
|
|
25
|
+
const GOOGLE_BASE_URL = 'https://generativelanguage.googleapis.com/v1beta';
|
|
26
|
+
const VERTEX_MODELS_URL = 'https://aiplatform.googleapis.com/v1beta1/publishers/google/models';
|
|
27
|
+
function kindFromId(id) {
|
|
28
|
+
return /embed/i.test(id) ? enums_1.AiModelKind.EMBEDDING : enums_1.AiModelKind.LANGUAGE;
|
|
29
|
+
}
|
|
30
|
+
function trimSlash(url) {
|
|
31
|
+
return url.replace(/\/+$/, '');
|
|
32
|
+
}
|
|
33
|
+
let AiProviderModelsService = AiProviderModelsService_1 = class AiProviderModelsService {
|
|
34
|
+
aiProvidersService;
|
|
35
|
+
logger = new common_1.Logger(AiProviderModelsService_1.name);
|
|
36
|
+
constructor(aiProvidersService) {
|
|
37
|
+
this.aiProvidersService = aiProvidersService;
|
|
38
|
+
}
|
|
39
|
+
async listModels(providerId) {
|
|
40
|
+
const config = await this.aiProvidersService.getAiProviderConfigById(providerId);
|
|
41
|
+
let models;
|
|
42
|
+
try {
|
|
43
|
+
models = await this.fetchModels(config);
|
|
44
|
+
}
|
|
45
|
+
catch (error) {
|
|
46
|
+
if (error instanceof ai_providers_errors_1.AiProviderNotConfiguredError) {
|
|
47
|
+
throw error;
|
|
48
|
+
}
|
|
49
|
+
const reason = error instanceof Error ? error.message : String(error);
|
|
50
|
+
this.logger.warn({ message: 'Listing provider models failed', providerId, reason });
|
|
51
|
+
throw new ai_providers_errors_1.AiProviderModelListingFailedError(providerId, reason);
|
|
52
|
+
}
|
|
53
|
+
const unique = new Map(models.map((model) => [model.id, model]));
|
|
54
|
+
return [...unique.values()].sort((a, b) => a.id.localeCompare(b.id));
|
|
55
|
+
}
|
|
56
|
+
fetchModels(config) {
|
|
57
|
+
switch (config.type) {
|
|
58
|
+
case enums_1.AiProviderType.OPENAI:
|
|
59
|
+
return this.listOpenAi(config.baseUrl ?? OPENAI_BASE_URL, config.apiKey);
|
|
60
|
+
case enums_1.AiProviderType.XAI:
|
|
61
|
+
return this.listOpenAi(config.baseUrl ?? XAI_BASE_URL, config.apiKey);
|
|
62
|
+
case enums_1.AiProviderType.OPENAI_COMPATIBLE:
|
|
63
|
+
if (!config.baseUrl) {
|
|
64
|
+
throw new ai_providers_errors_1.AiProviderNotConfiguredError(config.id);
|
|
65
|
+
}
|
|
66
|
+
return this.listOpenAi(config.baseUrl, config.apiKey);
|
|
67
|
+
case enums_1.AiProviderType.ANTHROPIC:
|
|
68
|
+
return this.listAnthropic(config);
|
|
69
|
+
case enums_1.AiProviderType.GOOGLE:
|
|
70
|
+
return this.listGoogle(config);
|
|
71
|
+
case enums_1.AiProviderType.GOOGLE_VERTEX:
|
|
72
|
+
return this.listVertex(config);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
async listOpenAi(baseUrl, apiKey) {
|
|
76
|
+
const body = await this.getJson(`${trimSlash(baseUrl)}/models`, apiKey ? { Authorization: `Bearer ${apiKey}` } : {});
|
|
77
|
+
return (body.data ?? [])
|
|
78
|
+
.filter((model) => !!model.id)
|
|
79
|
+
.map((model) => ({ id: model.id, displayName: null, kind: kindFromId(model.id) }));
|
|
80
|
+
}
|
|
81
|
+
async listAnthropic(config) {
|
|
82
|
+
const baseUrl = trimSlash(config.baseUrl ?? ANTHROPIC_BASE_URL);
|
|
83
|
+
const headers = { 'x-api-key': config.apiKey ?? '', 'anthropic-version': '2023-06-01' };
|
|
84
|
+
const models = [];
|
|
85
|
+
let afterId;
|
|
86
|
+
for (let page = 0; page < MAX_PAGES; page++) {
|
|
87
|
+
const query = new URLSearchParams({ limit: '1000' });
|
|
88
|
+
if (afterId) {
|
|
89
|
+
query.set('after_id', afterId);
|
|
90
|
+
}
|
|
91
|
+
const body = await this.getJson(`${baseUrl}/models?${query}`, headers);
|
|
92
|
+
for (const model of body.data ?? []) {
|
|
93
|
+
if (model.id) {
|
|
94
|
+
models.push({
|
|
95
|
+
id: model.id,
|
|
96
|
+
displayName: model.display_name ?? null,
|
|
97
|
+
kind: kindFromId(model.id),
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
if (!body.has_more || !body.last_id) {
|
|
102
|
+
break;
|
|
103
|
+
}
|
|
104
|
+
afterId = body.last_id;
|
|
105
|
+
}
|
|
106
|
+
return models;
|
|
107
|
+
}
|
|
108
|
+
async listGoogle(config) {
|
|
109
|
+
const baseUrl = trimSlash(config.baseUrl ?? GOOGLE_BASE_URL);
|
|
110
|
+
const headers = { 'x-goog-api-key': config.apiKey ?? (0, google_environment_1.googleApiKeyFromEnv)() ?? '' };
|
|
111
|
+
const models = [];
|
|
112
|
+
let pageToken;
|
|
113
|
+
for (let page = 0; page < MAX_PAGES; page++) {
|
|
114
|
+
const query = new URLSearchParams({ pageSize: '1000' });
|
|
115
|
+
if (pageToken) {
|
|
116
|
+
query.set('pageToken', pageToken);
|
|
117
|
+
}
|
|
118
|
+
const body = await this.getJson(`${baseUrl}/models?${query}`, headers);
|
|
119
|
+
for (const model of body.models ?? []) {
|
|
120
|
+
const id = model.name?.replace(/^models\//, '');
|
|
121
|
+
const methods = model.supportedGenerationMethods ?? [];
|
|
122
|
+
const kind = methods.includes('generateContent')
|
|
123
|
+
? enums_1.AiModelKind.LANGUAGE
|
|
124
|
+
: methods.includes('embedContent')
|
|
125
|
+
? enums_1.AiModelKind.EMBEDDING
|
|
126
|
+
: null;
|
|
127
|
+
if (id && kind) {
|
|
128
|
+
models.push({ id, displayName: model.displayName ?? null, kind });
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
if (!body.nextPageToken) {
|
|
132
|
+
break;
|
|
133
|
+
}
|
|
134
|
+
pageToken = body.nextPageToken;
|
|
135
|
+
}
|
|
136
|
+
return models;
|
|
137
|
+
}
|
|
138
|
+
async listVertex(config) {
|
|
139
|
+
let credentials;
|
|
140
|
+
if (config.apiKey) {
|
|
141
|
+
try {
|
|
142
|
+
credentials = JSON.parse(config.apiKey);
|
|
143
|
+
}
|
|
144
|
+
catch {
|
|
145
|
+
throw new ai_providers_errors_1.AiProviderNotConfiguredError(config.id);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
const auth = new google_auth_library_1.GoogleAuth({
|
|
149
|
+
credentials,
|
|
150
|
+
scopes: ['https://www.googleapis.com/auth/cloud-platform'],
|
|
151
|
+
});
|
|
152
|
+
const token = await auth.getAccessToken();
|
|
153
|
+
const project = config.project ?? (0, google_environment_1.vertexProjectFromEnv)();
|
|
154
|
+
const headers = { Authorization: `Bearer ${token}` };
|
|
155
|
+
if (project) {
|
|
156
|
+
headers['x-goog-user-project'] = project;
|
|
157
|
+
}
|
|
158
|
+
const models = [];
|
|
159
|
+
let pageToken;
|
|
160
|
+
for (let page = 0; page < MAX_PAGES; page++) {
|
|
161
|
+
const query = new URLSearchParams({ pageSize: '300' });
|
|
162
|
+
if (pageToken) {
|
|
163
|
+
query.set('pageToken', pageToken);
|
|
164
|
+
}
|
|
165
|
+
const body = await this.getJson(`${VERTEX_MODELS_URL}?${query}`, headers);
|
|
166
|
+
for (const model of body.publisherModels ?? []) {
|
|
167
|
+
const id = model.name?.split('/').pop();
|
|
168
|
+
if (id) {
|
|
169
|
+
models.push({ id, displayName: null, kind: kindFromId(id) });
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
if (!body.nextPageToken) {
|
|
173
|
+
break;
|
|
174
|
+
}
|
|
175
|
+
pageToken = body.nextPageToken;
|
|
176
|
+
}
|
|
177
|
+
return models;
|
|
178
|
+
}
|
|
179
|
+
async getJson(url, headers) {
|
|
180
|
+
const response = await fetch(url, {
|
|
181
|
+
headers,
|
|
182
|
+
signal: AbortSignal.timeout(REQUEST_TIMEOUT_MS),
|
|
183
|
+
});
|
|
184
|
+
if (!response.ok) {
|
|
185
|
+
const detail = (await response.text().catch(() => '')).slice(0, 300);
|
|
186
|
+
throw new Error(`the provider answered ${response.status}${detail ? `: ${detail}` : ''}`);
|
|
187
|
+
}
|
|
188
|
+
return (await response.json());
|
|
189
|
+
}
|
|
190
|
+
};
|
|
191
|
+
exports.AiProviderModelsService = AiProviderModelsService;
|
|
192
|
+
exports.AiProviderModelsService = AiProviderModelsService = AiProviderModelsService_1 = __decorate([
|
|
193
|
+
(0, common_1.Injectable)(),
|
|
194
|
+
__metadata("design:paramtypes", [ai_providers_service_1.AiProvidersService])
|
|
195
|
+
], AiProviderModelsService);
|
|
196
|
+
//# sourceMappingURL=ai-provider-models.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ai-provider-models.service.js","sourceRoot":"","sources":["../../src/ai-providers/ai-provider-models.service.ts"],"names":[],"mappings":"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"}
|
package/dist/{chat-providers/chat-provider.entity.d.ts → ai-providers/ai-provider.entity.d.ts}
RENAMED
|
@@ -1,12 +1,14 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { AiProviderType } from './enums';
|
|
2
2
|
import { SecretEntity } from '../secrets/secret.entity';
|
|
3
|
-
export declare class
|
|
3
|
+
export declare class AiProviderEntity {
|
|
4
4
|
id: string;
|
|
5
5
|
name: string;
|
|
6
|
-
type:
|
|
6
|
+
type: AiProviderType;
|
|
7
7
|
secretId: string | null;
|
|
8
8
|
secret?: SecretEntity;
|
|
9
|
-
|
|
9
|
+
baseUrl: string | null;
|
|
10
|
+
project: string | null;
|
|
11
|
+
location: string | null;
|
|
10
12
|
rowVersion: number;
|
|
11
13
|
createdAt: Date;
|
|
12
14
|
updatedAt: Date;
|