manifest 5.31.0 → 5.32.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 +0 -3
- package/dist/backend/app.module.js +0 -2
- package/dist/backend/common/constants/api-key.constants.js +2 -1
- package/dist/backend/common/utils/provider-inference.js +4 -27
- package/dist/backend/database/database-seeder.service.js +2 -111
- package/dist/backend/database/database.module.js +2 -3
- package/dist/backend/database/migrations/1773600000000-AddProviderRegion.js +13 -0
- package/dist/backend/database/migrations/1773700000000-DropSecurityEventTable.js +24 -0
- package/dist/backend/database/pricing-sync.service.js +0 -17
- package/dist/backend/entities/user-provider.entity.js +5 -0
- package/dist/backend/model-prices/model-name-normalizer.js +7 -13
- package/dist/backend/model-prices/model-prices.controller.js +0 -9
- package/dist/backend/model-prices/model-prices.service.js +1 -6
- package/dist/backend/model-prices/model-pricing-cache.service.js +9 -17
- package/dist/backend/notifications/notifications.module.js +1 -6
- package/dist/backend/routing/dto/resolve-request.dto.js +2 -2
- package/dist/backend/routing/dto/routing.dto.js +11 -6
- package/dist/backend/routing/model-discovery/model-discovery.module.js +2 -1
- package/dist/backend/routing/model-discovery/model-discovery.service.js +26 -4
- package/dist/backend/routing/model-discovery/model-fallback.js +5 -5
- package/dist/backend/routing/model-discovery/provider-model-fetcher.service.js +46 -1
- package/dist/backend/routing/proxy/provider-endpoints.js +7 -0
- package/dist/backend/routing/proxy/proxy.service.js +11 -5
- package/dist/backend/routing/qwen-region.js +51 -0
- package/dist/backend/routing/routing.controller.js +14 -10
- package/dist/backend/routing/routing.service.js +67 -16
- package/dist/backend/routing/scorer/types.js +2 -1
- package/dist/backend/routing/subscription-support.js +2 -2
- package/dist/backend/telemetry/dto/create-telemetry.dto.js +1 -29
- package/dist/backend/telemetry/telemetry.module.js +1 -2
- package/dist/backend/telemetry/telemetry.service.js +5 -29
- package/dist/index.js +15 -15
- package/dist/index.js.map +4 -4
- package/dist/local-mode.js +10 -10
- package/dist/node_modules/manifest-shared/dist/cjs/api-key.d.ts +2 -0
- package/dist/node_modules/manifest-shared/dist/cjs/api-key.d.ts.map +1 -0
- package/dist/node_modules/manifest-shared/dist/cjs/api-key.js +5 -0
- package/dist/node_modules/manifest-shared/dist/cjs/api-key.js.map +1 -0
- package/dist/node_modules/manifest-shared/dist/cjs/auth-types.d.ts +3 -0
- package/dist/node_modules/manifest-shared/dist/cjs/auth-types.d.ts.map +1 -0
- package/dist/node_modules/manifest-shared/dist/cjs/auth-types.js +5 -0
- package/dist/node_modules/manifest-shared/dist/cjs/auth-types.js.map +1 -0
- package/dist/node_modules/manifest-shared/dist/cjs/index.d.ts +10 -0
- package/dist/node_modules/manifest-shared/dist/cjs/index.d.ts.map +1 -0
- package/dist/node_modules/manifest-shared/dist/cjs/index.js +22 -0
- package/dist/node_modules/manifest-shared/dist/cjs/index.js.map +1 -0
- package/dist/node_modules/manifest-shared/dist/cjs/provider-inference.d.ts +8 -0
- package/dist/node_modules/manifest-shared/dist/cjs/provider-inference.d.ts.map +1 -0
- package/dist/node_modules/manifest-shared/dist/cjs/provider-inference.js +37 -0
- package/dist/node_modules/manifest-shared/dist/cjs/provider-inference.js.map +1 -0
- package/dist/node_modules/manifest-shared/dist/cjs/resolve-response.d.ts +12 -0
- package/dist/node_modules/manifest-shared/dist/cjs/resolve-response.d.ts.map +1 -0
- package/dist/node_modules/manifest-shared/dist/cjs/resolve-response.js +3 -0
- package/dist/node_modules/manifest-shared/dist/cjs/resolve-response.js.map +1 -0
- package/dist/node_modules/manifest-shared/dist/cjs/subscription/configs.d.ts +4 -0
- package/dist/node_modules/manifest-shared/dist/cjs/subscription/configs.d.ts.map +1 -0
- package/dist/node_modules/manifest-shared/dist/cjs/subscription/configs.js +81 -0
- package/dist/node_modules/manifest-shared/dist/cjs/subscription/configs.js.map +1 -0
- package/dist/node_modules/manifest-shared/dist/cjs/subscription/helpers.d.ts +6 -0
- package/dist/node_modules/manifest-shared/dist/cjs/subscription/helpers.d.ts.map +1 -0
- package/dist/node_modules/manifest-shared/dist/cjs/subscription/helpers.js +25 -0
- package/dist/node_modules/manifest-shared/dist/cjs/subscription/helpers.js.map +1 -0
- package/dist/node_modules/manifest-shared/dist/cjs/subscription/index.d.ts +4 -0
- package/dist/node_modules/manifest-shared/dist/cjs/subscription/index.d.ts.map +1 -0
- package/dist/node_modules/manifest-shared/dist/cjs/subscription/index.js +12 -0
- package/dist/node_modules/manifest-shared/dist/cjs/subscription/index.js.map +1 -0
- package/dist/node_modules/manifest-shared/dist/cjs/subscription/types.d.ts +17 -0
- package/dist/node_modules/manifest-shared/dist/cjs/subscription/types.d.ts.map +1 -0
- package/dist/node_modules/manifest-shared/dist/cjs/subscription/types.js +3 -0
- package/dist/node_modules/manifest-shared/dist/cjs/subscription/types.js.map +1 -0
- package/dist/node_modules/manifest-shared/dist/cjs/tiers.d.ts +5 -0
- package/dist/node_modules/manifest-shared/dist/cjs/tiers.d.ts.map +1 -0
- package/dist/node_modules/manifest-shared/dist/cjs/tiers.js +17 -0
- package/dist/node_modules/manifest-shared/dist/cjs/tiers.js.map +1 -0
- package/dist/node_modules/manifest-shared/dist/esm/api-key.d.ts +2 -0
- package/dist/node_modules/manifest-shared/dist/esm/api-key.d.ts.map +1 -0
- package/dist/node_modules/manifest-shared/dist/esm/api-key.js +2 -0
- package/dist/node_modules/manifest-shared/dist/esm/api-key.js.map +1 -0
- package/dist/node_modules/manifest-shared/dist/esm/auth-types.d.ts +3 -0
- package/dist/node_modules/manifest-shared/dist/esm/auth-types.d.ts.map +1 -0
- package/dist/node_modules/manifest-shared/dist/esm/auth-types.js +2 -0
- package/dist/node_modules/manifest-shared/dist/esm/auth-types.js.map +1 -0
- package/dist/node_modules/manifest-shared/dist/esm/index.d.ts +10 -0
- package/dist/node_modules/manifest-shared/dist/esm/index.d.ts.map +1 -0
- package/dist/node_modules/manifest-shared/dist/esm/index.js +6 -0
- package/dist/node_modules/manifest-shared/dist/esm/index.js.map +1 -0
- package/dist/node_modules/manifest-shared/dist/esm/provider-inference.d.ts +8 -0
- package/dist/node_modules/manifest-shared/dist/esm/provider-inference.d.ts.map +1 -0
- package/dist/node_modules/manifest-shared/dist/esm/provider-inference.js +33 -0
- package/dist/node_modules/manifest-shared/dist/esm/provider-inference.js.map +1 -0
- package/dist/node_modules/manifest-shared/dist/esm/resolve-response.d.ts +12 -0
- package/dist/node_modules/manifest-shared/dist/esm/resolve-response.d.ts.map +1 -0
- package/dist/node_modules/manifest-shared/dist/esm/resolve-response.js +2 -0
- package/dist/node_modules/manifest-shared/dist/esm/resolve-response.js.map +1 -0
- package/dist/node_modules/manifest-shared/dist/esm/subscription/configs.d.ts +4 -0
- package/dist/node_modules/manifest-shared/dist/esm/subscription/configs.d.ts.map +1 -0
- package/dist/node_modules/manifest-shared/dist/esm/subscription/configs.js +78 -0
- package/dist/node_modules/manifest-shared/dist/esm/subscription/configs.js.map +1 -0
- package/dist/node_modules/manifest-shared/dist/esm/subscription/helpers.d.ts +6 -0
- package/dist/node_modules/manifest-shared/dist/esm/subscription/helpers.d.ts.map +1 -0
- package/dist/node_modules/manifest-shared/dist/esm/subscription/helpers.js +19 -0
- package/dist/node_modules/manifest-shared/dist/esm/subscription/helpers.js.map +1 -0
- package/dist/node_modules/manifest-shared/dist/esm/subscription/index.d.ts +4 -0
- package/dist/node_modules/manifest-shared/dist/esm/subscription/index.d.ts.map +1 -0
- package/dist/node_modules/manifest-shared/dist/esm/subscription/index.js +3 -0
- package/dist/node_modules/manifest-shared/dist/esm/subscription/index.js.map +1 -0
- package/dist/node_modules/manifest-shared/dist/esm/subscription/types.d.ts +17 -0
- package/dist/node_modules/manifest-shared/dist/esm/subscription/types.d.ts.map +1 -0
- package/dist/node_modules/manifest-shared/dist/esm/subscription/types.js +2 -0
- package/dist/node_modules/manifest-shared/dist/esm/subscription/types.js.map +1 -0
- package/dist/node_modules/manifest-shared/dist/esm/tiers.d.ts +5 -0
- package/dist/node_modules/manifest-shared/dist/esm/tiers.d.ts.map +1 -0
- package/dist/node_modules/manifest-shared/dist/esm/tiers.js +14 -0
- package/dist/node_modules/manifest-shared/dist/esm/tiers.js.map +1 -0
- package/dist/node_modules/manifest-shared/package.json +26 -0
- package/dist/openclaw.plugin.json +1 -1
- package/dist/package.json +1 -0
- package/dist/subscription.js +1 -1
- package/openclaw.plugin.json +1 -1
- package/package.json +3 -2
- package/public/assets/{Account-B0i3h71p.js → Account-DAuDXzZL.js} +1 -1
- package/public/assets/{Limits-u9h6g9gi.js → Limits-Do11RNu3.js} +1 -1
- package/public/assets/{Login-D-NJbYPb.js → Login-CspKakT4.js} +1 -1
- package/public/assets/{MessageLog-D30Gn1xo.js → MessageLog-DjaiR720.js} +1 -1
- package/public/assets/{ModelPrices-CdFlZKsb.js → ModelPrices-D5TKbvU4.js} +1 -1
- package/public/assets/{Overview-pRZKf4hK.js → Overview-ZRP_-v3U.js} +1 -1
- package/public/assets/ProviderIcon-C4tMFIjH.js +1 -0
- package/public/assets/{Register-DeOZoOJM.js → Register-D7KJjUkO.js} +1 -1
- package/public/assets/{ResetPassword-BnjSMJdz.js → ResetPassword-D2dm6bNn.js} +1 -1
- package/public/assets/{Routing-CwK1UzCb.js → Routing-CqViGh6v.js} +1 -1
- package/public/assets/{Settings-ChtpFp0T.js → Settings-BAFYf_4D.js} +1 -1
- package/public/assets/{SocialButtons-BT47nXuh.js → SocialButtons-D-eCHUAq.js} +1 -1
- package/public/assets/{index-jCSzE4wA.js → index-DaGKqcbR.js} +2 -2
- package/public/assets/{model-display-DHDp2BJs.js → model-display-q35tNU84.js} +1 -1
- package/public/assets/{overview-Bs-FjGKK.js → overview-7SUic0us.js} +1 -1
- package/public/index.html +1 -1
- package/dist/backend/entities/security-event.entity.js +0 -57
- package/dist/backend/notifications/dto/email-config.dto.js +0 -69
- package/dist/backend/notifications/dto/notification-email.dto.js +0 -22
- package/dist/backend/notifications/email-config.controller.js +0 -95
- package/dist/backend/notifications/services/email-config.service.js +0 -92
- package/dist/backend/notifications/services/notification-email-address.service.js +0 -32
- package/dist/backend/security/security.controller.js +0 -48
- package/dist/backend/security/security.module.js +0 -25
- package/dist/backend/security/security.service.js +0 -94
- package/public/assets/ProviderIcon-C2rOmoQI.js +0 -1
- package/subscription-capabilities/index.d.ts +0 -37
- package/subscription-capabilities/index.js +0 -111
package/README.md
CHANGED
|
@@ -1,7 +1,4 @@
|
|
|
1
1
|
|
|
2
|
-
<a href="https://luma.com/clawcondfw">
|
|
3
|
-
<img width="1543" height="256" alt="Capture d’écran 2026-03-18 à 16 13 34" src="https://github.com/user-attachments/assets/11294f94-76c4-47bb-9c75-5ccc6b28fbdb" />
|
|
4
|
-
</a>
|
|
5
2
|
<p align="center">
|
|
6
3
|
<picture>
|
|
7
4
|
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/mnfst/manifest/HEAD/.github/assets/logo-white.svg" />
|
|
@@ -26,7 +26,6 @@ const auth_module_1 = require("./auth/auth.module");
|
|
|
26
26
|
const health_module_1 = require("./health/health.module");
|
|
27
27
|
const telemetry_module_1 = require("./telemetry/telemetry.module");
|
|
28
28
|
const analytics_module_1 = require("./analytics/analytics.module");
|
|
29
|
-
const security_module_1 = require("./security/security.module");
|
|
30
29
|
const otlp_module_1 = require("./otlp/otlp.module");
|
|
31
30
|
const model_prices_module_1 = require("./model-prices/model-prices.module");
|
|
32
31
|
const notifications_module_1 = require("./notifications/notifications.module");
|
|
@@ -78,7 +77,6 @@ exports.AppModule = AppModule = __decorate([
|
|
|
78
77
|
health_module_1.HealthModule,
|
|
79
78
|
telemetry_module_1.TelemetryModule,
|
|
80
79
|
analytics_module_1.AnalyticsModule,
|
|
81
|
-
security_module_1.SecurityModule,
|
|
82
80
|
otlp_module_1.OtlpModule,
|
|
83
81
|
model_prices_module_1.ModelPricesModule,
|
|
84
82
|
notifications_module_1.NotificationsModule,
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.API_KEY_PREFIX = void 0;
|
|
4
|
-
|
|
4
|
+
var manifest_shared_1 = require("manifest-shared");
|
|
5
|
+
Object.defineProperty(exports, "API_KEY_PREFIX", { enumerable: true, get: function () { return manifest_shared_1.API_KEY_PREFIX; } });
|
|
5
6
|
//# sourceMappingURL=api-key.constants.js.map
|
|
@@ -1,30 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.inferProviderFromModel =
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
[/^gpt-|^o[134]-|^o[134] |^chatgpt-/, 'openai'],
|
|
8
|
-
[/^gemini-/, 'gemini'],
|
|
9
|
-
[/^deepseek-/, 'deepseek'],
|
|
10
|
-
[/^grok-/, 'xai'],
|
|
11
|
-
[/^mistral-|^codestral|^pixtral|^open-mistral/, 'mistral'],
|
|
12
|
-
[/^kimi-|^moonshot-/, 'moonshot'],
|
|
13
|
-
[/^minimax-/i, 'minimax'],
|
|
14
|
-
[/^glm-/, 'zai'],
|
|
15
|
-
[/^qwen[23]|^qwq-/, 'qwen'],
|
|
16
|
-
[/^[a-z][\w-]*\//, 'openrouter'],
|
|
17
|
-
];
|
|
18
|
-
function inferProviderFromModel(model) {
|
|
19
|
-
if (model.startsWith('custom:'))
|
|
20
|
-
return 'custom';
|
|
21
|
-
if (/:/.test(model) && !model.endsWith(':free'))
|
|
22
|
-
return 'ollama';
|
|
23
|
-
const lower = model.toLowerCase();
|
|
24
|
-
for (const [re, id] of MODEL_PREFIX_MAP) {
|
|
25
|
-
if (re.test(lower))
|
|
26
|
-
return id;
|
|
27
|
-
}
|
|
28
|
-
return undefined;
|
|
29
|
-
}
|
|
3
|
+
exports.inferProviderFromModel = exports.MODEL_PREFIX_MAP = void 0;
|
|
4
|
+
var manifest_shared_1 = require("manifest-shared");
|
|
5
|
+
Object.defineProperty(exports, "MODEL_PREFIX_MAP", { enumerable: true, get: function () { return manifest_shared_1.MODEL_PREFIX_MAP; } });
|
|
6
|
+
Object.defineProperty(exports, "inferProviderFromModel", { enumerable: true, get: function () { return manifest_shared_1.inferProviderFromModel; } });
|
|
30
7
|
//# sourceMappingURL=provider-inference.js.map
|
|
@@ -23,7 +23,6 @@ const tenant_entity_1 = require("../entities/tenant.entity");
|
|
|
23
23
|
const agent_entity_1 = require("../entities/agent.entity");
|
|
24
24
|
const agent_api_key_entity_1 = require("../entities/agent-api-key.entity");
|
|
25
25
|
const api_key_entity_1 = require("../entities/api-key.entity");
|
|
26
|
-
const security_event_entity_1 = require("../entities/security-event.entity");
|
|
27
26
|
const agent_message_entity_1 = require("../entities/agent-message.entity");
|
|
28
27
|
const hash_util_1 = require("../common/utils/hash.util");
|
|
29
28
|
const seed_messages_1 = require("./seed-messages");
|
|
@@ -38,17 +37,15 @@ let DatabaseSeederService = DatabaseSeederService_1 = class DatabaseSeederServic
|
|
|
38
37
|
agentRepo;
|
|
39
38
|
agentKeyRepo;
|
|
40
39
|
apiKeyRepo;
|
|
41
|
-
securityRepo;
|
|
42
40
|
messageRepo;
|
|
43
41
|
logger = new common_1.Logger(DatabaseSeederService_1.name);
|
|
44
|
-
constructor(dataSource, configService, tenantRepo, agentRepo, agentKeyRepo, apiKeyRepo,
|
|
42
|
+
constructor(dataSource, configService, tenantRepo, agentRepo, agentKeyRepo, apiKeyRepo, messageRepo) {
|
|
45
43
|
this.dataSource = dataSource;
|
|
46
44
|
this.configService = configService;
|
|
47
45
|
this.tenantRepo = tenantRepo;
|
|
48
46
|
this.agentRepo = agentRepo;
|
|
49
47
|
this.agentKeyRepo = agentKeyRepo;
|
|
50
48
|
this.apiKeyRepo = apiKeyRepo;
|
|
51
|
-
this.securityRepo = securityRepo;
|
|
52
49
|
this.messageRepo = messageRepo;
|
|
53
50
|
}
|
|
54
51
|
async onModuleInit() {
|
|
@@ -61,7 +58,6 @@ let DatabaseSeederService = DatabaseSeederService_1 = class DatabaseSeederServic
|
|
|
61
58
|
await this.seedAdminUser();
|
|
62
59
|
await this.seedApiKey();
|
|
63
60
|
await this.seedTenantAndAgent();
|
|
64
|
-
await this.seedSecurityEvents();
|
|
65
61
|
await this.seedAgentMessages();
|
|
66
62
|
this.logger.log('Seeded demo data (dev/test only, SEED_DATA=true)');
|
|
67
63
|
}
|
|
@@ -156,109 +152,6 @@ let DatabaseSeederService = DatabaseSeederService_1 = class DatabaseSeederServic
|
|
|
156
152
|
});
|
|
157
153
|
this.logger.log(`Seeded tenant/agent with OTLP key: ${SEED_OTLP_KEY.substring(0, 8)}***`);
|
|
158
154
|
}
|
|
159
|
-
async seedSecurityEvents() {
|
|
160
|
-
const count = await this.securityRepo.count();
|
|
161
|
-
if (count > 0)
|
|
162
|
-
return;
|
|
163
|
-
const userId = await this.getAdminUserId();
|
|
164
|
-
const now = Date.now();
|
|
165
|
-
const events = [
|
|
166
|
-
[
|
|
167
|
-
'sec-001',
|
|
168
|
-
'sess-001',
|
|
169
|
-
-2,
|
|
170
|
-
'critical',
|
|
171
|
-
'unauthorized_access',
|
|
172
|
-
'Unauthorized API key attempt from unknown IP',
|
|
173
|
-
],
|
|
174
|
-
[
|
|
175
|
-
'sec-002',
|
|
176
|
-
'sess-002',
|
|
177
|
-
-3,
|
|
178
|
-
'warning',
|
|
179
|
-
'rate_limit',
|
|
180
|
-
'Rate limit exceeded for agent — 150 req/min threshold',
|
|
181
|
-
],
|
|
182
|
-
[
|
|
183
|
-
'sec-003',
|
|
184
|
-
'sess-003',
|
|
185
|
-
-5,
|
|
186
|
-
'info',
|
|
187
|
-
'config_change',
|
|
188
|
-
'Alert rule "High cost threshold" updated by admin',
|
|
189
|
-
],
|
|
190
|
-
[
|
|
191
|
-
'sec-004',
|
|
192
|
-
'sess-004',
|
|
193
|
-
-6,
|
|
194
|
-
'warning',
|
|
195
|
-
'sandbox_escape',
|
|
196
|
-
'Sandbox escape attempt detected in agent session',
|
|
197
|
-
],
|
|
198
|
-
[
|
|
199
|
-
'sec-005',
|
|
200
|
-
'sess-005',
|
|
201
|
-
-8,
|
|
202
|
-
'critical',
|
|
203
|
-
'data_exfiltration',
|
|
204
|
-
'Suspicious outbound data transfer detected',
|
|
205
|
-
],
|
|
206
|
-
['sec-006', 'sess-006', -10, 'info', 'login', 'New login from device'],
|
|
207
|
-
[
|
|
208
|
-
'sec-007',
|
|
209
|
-
'sess-007',
|
|
210
|
-
-12,
|
|
211
|
-
'warning',
|
|
212
|
-
'permission_escalation',
|
|
213
|
-
'Agent requested elevated permissions outside scope',
|
|
214
|
-
],
|
|
215
|
-
[
|
|
216
|
-
'sec-008',
|
|
217
|
-
'sess-008',
|
|
218
|
-
-14,
|
|
219
|
-
'info',
|
|
220
|
-
'api_key_rotation',
|
|
221
|
-
'API key rotated for production environment',
|
|
222
|
-
],
|
|
223
|
-
[
|
|
224
|
-
'sec-009',
|
|
225
|
-
'sess-009',
|
|
226
|
-
-18,
|
|
227
|
-
'critical',
|
|
228
|
-
'injection_attempt',
|
|
229
|
-
'Prompt injection attempt detected in agent input',
|
|
230
|
-
],
|
|
231
|
-
[
|
|
232
|
-
'sec-010',
|
|
233
|
-
'sess-010',
|
|
234
|
-
-22,
|
|
235
|
-
'warning',
|
|
236
|
-
'token_anomaly',
|
|
237
|
-
'Unusual token consumption spike: 340% above baseline',
|
|
238
|
-
],
|
|
239
|
-
[
|
|
240
|
-
'sec-011',
|
|
241
|
-
'sess-011',
|
|
242
|
-
-24,
|
|
243
|
-
'info',
|
|
244
|
-
'audit',
|
|
245
|
-
'Weekly security audit completed — 3 findings resolved',
|
|
246
|
-
],
|
|
247
|
-
['sec-012', 'sess-012', -48, 'warning', 'certificate', 'TLS certificate expiring in 14 days'],
|
|
248
|
-
];
|
|
249
|
-
for (const [id, sessionKey, hoursAgo, severity, category, description] of events) {
|
|
250
|
-
const ts = new Date(now + hoursAgo * 3600000).toISOString();
|
|
251
|
-
await this.securityRepo.insert({
|
|
252
|
-
id,
|
|
253
|
-
session_key: sessionKey,
|
|
254
|
-
timestamp: ts,
|
|
255
|
-
severity,
|
|
256
|
-
category,
|
|
257
|
-
description,
|
|
258
|
-
user_id: userId,
|
|
259
|
-
});
|
|
260
|
-
}
|
|
261
|
-
}
|
|
262
155
|
async seedAgentMessages() {
|
|
263
156
|
const userId = await this.getAdminUserId();
|
|
264
157
|
if (!userId)
|
|
@@ -273,15 +166,13 @@ exports.DatabaseSeederService = DatabaseSeederService = DatabaseSeederService_1
|
|
|
273
166
|
__param(3, (0, typeorm_1.InjectRepository)(agent_entity_1.Agent)),
|
|
274
167
|
__param(4, (0, typeorm_1.InjectRepository)(agent_api_key_entity_1.AgentApiKey)),
|
|
275
168
|
__param(5, (0, typeorm_1.InjectRepository)(api_key_entity_1.ApiKey)),
|
|
276
|
-
__param(6, (0, typeorm_1.InjectRepository)(
|
|
277
|
-
__param(7, (0, typeorm_1.InjectRepository)(agent_message_entity_1.AgentMessage)),
|
|
169
|
+
__param(6, (0, typeorm_1.InjectRepository)(agent_message_entity_1.AgentMessage)),
|
|
278
170
|
__metadata("design:paramtypes", [typeorm_2.DataSource,
|
|
279
171
|
config_1.ConfigService,
|
|
280
172
|
typeorm_2.Repository,
|
|
281
173
|
typeorm_2.Repository,
|
|
282
174
|
typeorm_2.Repository,
|
|
283
175
|
typeorm_2.Repository,
|
|
284
|
-
typeorm_2.Repository,
|
|
285
176
|
typeorm_2.Repository])
|
|
286
177
|
], DatabaseSeederService);
|
|
287
178
|
//# sourceMappingURL=database-seeder.service.js.map
|
|
@@ -14,7 +14,6 @@ const config_1 = require("@nestjs/config");
|
|
|
14
14
|
const agent_message_entity_1 = require("../entities/agent-message.entity");
|
|
15
15
|
const llm_call_entity_1 = require("../entities/llm-call.entity");
|
|
16
16
|
const tool_execution_entity_1 = require("../entities/tool-execution.entity");
|
|
17
|
-
const security_event_entity_1 = require("../entities/security-event.entity");
|
|
18
17
|
const token_usage_snapshot_entity_1 = require("../entities/token-usage-snapshot.entity");
|
|
19
18
|
const cost_snapshot_entity_1 = require("../entities/cost-snapshot.entity");
|
|
20
19
|
const agent_log_entity_1 = require("../entities/agent-log.entity");
|
|
@@ -66,11 +65,11 @@ const _1773300000000_AddEmailProviderKeyPrefix_1 = require("./migrations/1773300
|
|
|
66
65
|
const _1773400000000_AddProviderModelCache_1 = require("./migrations/1773400000000-AddProviderModelCache");
|
|
67
66
|
const _1773500000000_DropModelPricingTables_1 = require("./migrations/1773500000000-DropModelPricingTables");
|
|
68
67
|
const _1773600000000_AddOverrideProvider_1 = require("./migrations/1773600000000-AddOverrideProvider");
|
|
68
|
+
const _1773700000000_DropSecurityEventTable_1 = require("./migrations/1773700000000-DropSecurityEventTable");
|
|
69
69
|
const entities = [
|
|
70
70
|
agent_message_entity_1.AgentMessage,
|
|
71
71
|
llm_call_entity_1.LlmCall,
|
|
72
72
|
tool_execution_entity_1.ToolExecution,
|
|
73
|
-
security_event_entity_1.SecurityEvent,
|
|
74
73
|
token_usage_snapshot_entity_1.TokenUsageSnapshot,
|
|
75
74
|
cost_snapshot_entity_1.CostSnapshot,
|
|
76
75
|
agent_log_entity_1.AgentLog,
|
|
@@ -121,6 +120,7 @@ const migrations = [
|
|
|
121
120
|
_1773400000000_AddProviderModelCache_1.AddProviderModelCache1773400000000,
|
|
122
121
|
_1773500000000_DropModelPricingTables_1.DropModelPricingTables1773500000000,
|
|
123
122
|
_1773600000000_AddOverrideProvider_1.AddOverrideProvider1773600000000,
|
|
123
|
+
_1773700000000_DropSecurityEventTable_1.DropSecurityEventTable1773700000000,
|
|
124
124
|
];
|
|
125
125
|
const isLocalMode = process.env['MANIFEST_MODE'] === 'local';
|
|
126
126
|
function buildModeServices() {
|
|
@@ -171,7 +171,6 @@ exports.DatabaseModule = DatabaseModule = __decorate([
|
|
|
171
171
|
agent_api_key_entity_1.AgentApiKey,
|
|
172
172
|
agent_message_entity_1.AgentMessage,
|
|
173
173
|
api_key_entity_1.ApiKey,
|
|
174
|
-
security_event_entity_1.SecurityEvent,
|
|
175
174
|
user_provider_entity_1.UserProvider,
|
|
176
175
|
tier_assignment_entity_1.TierAssignment,
|
|
177
176
|
custom_provider_entity_1.CustomProvider,
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AddProviderRegion1773600000000 = void 0;
|
|
4
|
+
class AddProviderRegion1773600000000 {
|
|
5
|
+
async up(queryRunner) {
|
|
6
|
+
await queryRunner.query(`ALTER TABLE "user_providers" ADD COLUMN IF NOT EXISTS "region" varchar DEFAULT NULL`);
|
|
7
|
+
}
|
|
8
|
+
async down(queryRunner) {
|
|
9
|
+
await queryRunner.query(`ALTER TABLE "user_providers" DROP COLUMN IF EXISTS "region"`);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
exports.AddProviderRegion1773600000000 = AddProviderRegion1773600000000;
|
|
13
|
+
//# sourceMappingURL=1773600000000-AddProviderRegion.js.map
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DropSecurityEventTable1773700000000 = void 0;
|
|
4
|
+
class DropSecurityEventTable1773700000000 {
|
|
5
|
+
async up(queryRunner) {
|
|
6
|
+
await queryRunner.query(`DROP TABLE IF EXISTS "security_event"`);
|
|
7
|
+
}
|
|
8
|
+
async down(queryRunner) {
|
|
9
|
+
await queryRunner.query(`
|
|
10
|
+
CREATE TABLE "security_event" (
|
|
11
|
+
"id" varchar PRIMARY KEY NOT NULL,
|
|
12
|
+
"session_key" varchar,
|
|
13
|
+
"timestamp" timestamp NOT NULL,
|
|
14
|
+
"severity" varchar NOT NULL,
|
|
15
|
+
"category" varchar NOT NULL,
|
|
16
|
+
"description" varchar NOT NULL,
|
|
17
|
+
"user_id" varchar
|
|
18
|
+
)
|
|
19
|
+
`);
|
|
20
|
+
await queryRunner.query(`CREATE INDEX "IDX_security_event_user_id_timestamp" ON "security_event" ("user_id", "timestamp")`);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
exports.DropSecurityEventTable1773700000000 = DropSecurityEventTable1773700000000;
|
|
24
|
+
//# sourceMappingURL=1773700000000-DropSecurityEventTable.js.map
|
|
@@ -13,7 +13,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
13
13
|
exports.PricingSyncService = void 0;
|
|
14
14
|
const common_1 = require("@nestjs/common");
|
|
15
15
|
const schedule_1 = require("@nestjs/schedule");
|
|
16
|
-
const providers_1 = require("../common/constants/providers");
|
|
17
16
|
const OPENROUTER_API = 'https://openrouter.ai/api/v1/models';
|
|
18
17
|
let PricingSyncService = PricingSyncService_1 = class PricingSyncService {
|
|
19
18
|
logger = new common_1.Logger(PricingSyncService_1.name);
|
|
@@ -92,22 +91,6 @@ let PricingSyncService = PricingSyncService_1 = class PricingSyncService {
|
|
|
92
91
|
return model.name.substring(colonIdx + 2);
|
|
93
92
|
return model.name;
|
|
94
93
|
}
|
|
95
|
-
deriveNames(openRouterId) {
|
|
96
|
-
if (openRouterId.startsWith('openrouter/')) {
|
|
97
|
-
return { canonical: openRouterId, provider: 'OpenRouter' };
|
|
98
|
-
}
|
|
99
|
-
const slashIndex = openRouterId.indexOf('/');
|
|
100
|
-
if (slashIndex === -1) {
|
|
101
|
-
return { canonical: openRouterId, provider: 'Unknown' };
|
|
102
|
-
}
|
|
103
|
-
const prefix = openRouterId.substring(0, slashIndex);
|
|
104
|
-
const canonical = openRouterId.substring(slashIndex + 1);
|
|
105
|
-
const provider = providers_1.OPENROUTER_PREFIX_TO_PROVIDER.get(prefix) ?? this.titleCase(prefix);
|
|
106
|
-
return { canonical, provider };
|
|
107
|
-
}
|
|
108
|
-
titleCase(str) {
|
|
109
|
-
return str.charAt(0).toUpperCase() + str.slice(1);
|
|
110
|
-
}
|
|
111
94
|
isChatCompatible(model) {
|
|
112
95
|
const inputModalities = model.architecture?.input_modalities?.map((m) => m.toLowerCase());
|
|
113
96
|
if (inputModalities && inputModalities.length > 0 && !inputModalities.includes('text')) {
|
|
@@ -20,6 +20,7 @@ let UserProvider = class UserProvider {
|
|
|
20
20
|
api_key_encrypted;
|
|
21
21
|
key_prefix;
|
|
22
22
|
auth_type;
|
|
23
|
+
region;
|
|
23
24
|
is_active;
|
|
24
25
|
connected_at;
|
|
25
26
|
updated_at;
|
|
@@ -55,6 +56,10 @@ __decorate([
|
|
|
55
56
|
(0, typeorm_1.Column)('varchar', { default: 'api_key' }),
|
|
56
57
|
__metadata("design:type", String)
|
|
57
58
|
], UserProvider.prototype, "auth_type", void 0);
|
|
59
|
+
__decorate([
|
|
60
|
+
(0, typeorm_1.Column)('varchar', { nullable: true, default: null }),
|
|
61
|
+
__metadata("design:type", Object)
|
|
62
|
+
], UserProvider.prototype, "region", void 0);
|
|
58
63
|
__decorate([
|
|
59
64
|
(0, typeorm_1.Column)('boolean', { default: true }),
|
|
60
65
|
__metadata("design:type", Boolean)
|
|
@@ -6,6 +6,7 @@ exports.buildAliasMap = buildAliasMap;
|
|
|
6
6
|
exports.normalizeDots = normalizeDots;
|
|
7
7
|
exports.resolveModelName = resolveModelName;
|
|
8
8
|
const anthropic_model_id_1 = require("../common/utils/anthropic-model-id");
|
|
9
|
+
const providers_1 = require("../common/constants/providers");
|
|
9
10
|
const KNOWN_ALIASES = [
|
|
10
11
|
['claude-opus-4', 'claude-opus-4-6'],
|
|
11
12
|
['claude-sonnet-4.5', 'claude-sonnet-4-5-20250929'],
|
|
@@ -29,23 +30,16 @@ const KNOWN_ALIASES = [
|
|
|
29
30
|
['mistral-large', 'mistral-large-latest'],
|
|
30
31
|
['codestral', 'codestral-latest'],
|
|
31
32
|
];
|
|
32
|
-
const
|
|
33
|
-
'anthropic/',
|
|
34
|
-
'openai/',
|
|
35
|
-
'google/',
|
|
36
|
-
'deepseek/',
|
|
37
|
-
'mistralai/',
|
|
38
|
-
'moonshotai/',
|
|
39
|
-
'qwen/',
|
|
40
|
-
'zhipuai/',
|
|
41
|
-
'amazon/',
|
|
42
|
-
'xai/',
|
|
43
|
-
'minimax/',
|
|
44
|
-
'z-ai/',
|
|
33
|
+
const EXTRA_TELEMETRY_PREFIXES = [
|
|
45
34
|
'accounts/fireworks/models/',
|
|
35
|
+
'amazon/',
|
|
46
36
|
'fireworks/',
|
|
47
37
|
'together/',
|
|
48
38
|
];
|
|
39
|
+
const PROVIDER_PREFIXES = [
|
|
40
|
+
...EXTRA_TELEMETRY_PREFIXES,
|
|
41
|
+
...[...providers_1.OPENROUTER_PREFIX_TO_PROVIDER.keys()].map((p) => `${p}/`),
|
|
42
|
+
];
|
|
49
43
|
const DATE_SUFFIX_RE = /-\d{4}-?\d{2}-?\d{2}$/;
|
|
50
44
|
function stripProviderPrefix(name) {
|
|
51
45
|
for (const prefix of PROVIDER_PREFIXES) {
|
|
@@ -22,9 +22,6 @@ let ModelPricesController = class ModelPricesController {
|
|
|
22
22
|
async getModelPrices() {
|
|
23
23
|
return this.modelPricesService.getAll();
|
|
24
24
|
}
|
|
25
|
-
async triggerSync() {
|
|
26
|
-
return this.modelPricesService.triggerSync();
|
|
27
|
-
}
|
|
28
25
|
};
|
|
29
26
|
exports.ModelPricesController = ModelPricesController;
|
|
30
27
|
__decorate([
|
|
@@ -35,12 +32,6 @@ __decorate([
|
|
|
35
32
|
__metadata("design:paramtypes", []),
|
|
36
33
|
__metadata("design:returntype", Promise)
|
|
37
34
|
], ModelPricesController.prototype, "getModelPrices", null);
|
|
38
|
-
__decorate([
|
|
39
|
-
(0, common_1.Post)('model-prices/sync'),
|
|
40
|
-
__metadata("design:type", Function),
|
|
41
|
-
__metadata("design:paramtypes", []),
|
|
42
|
-
__metadata("design:returntype", Promise)
|
|
43
|
-
], ModelPricesController.prototype, "triggerSync", null);
|
|
44
35
|
exports.ModelPricesController = ModelPricesController = __decorate([
|
|
45
36
|
(0, common_1.Controller)('api/v1'),
|
|
46
37
|
__metadata("design:paramtypes", [model_prices_service_1.ModelPricesService])
|
|
@@ -20,7 +20,7 @@ let ModelPricesService = class ModelPricesService {
|
|
|
20
20
|
this.pricingCache = pricingCache;
|
|
21
21
|
this.pricingSync = pricingSync;
|
|
22
22
|
}
|
|
23
|
-
|
|
23
|
+
getAll() {
|
|
24
24
|
const entries = this.pricingCache.getAll();
|
|
25
25
|
const lastSyncedAt = this.pricingSync.getLastFetchedAt()?.toISOString() ?? null;
|
|
26
26
|
return {
|
|
@@ -35,11 +35,6 @@ let ModelPricesService = class ModelPricesService {
|
|
|
35
35
|
lastSyncedAt,
|
|
36
36
|
};
|
|
37
37
|
}
|
|
38
|
-
async triggerSync() {
|
|
39
|
-
const updated = await this.pricingSync.refreshCache();
|
|
40
|
-
await this.pricingCache.reload();
|
|
41
|
-
return { updated };
|
|
42
|
-
}
|
|
43
38
|
};
|
|
44
39
|
exports.ModelPricesService = ModelPricesService;
|
|
45
40
|
exports.ModelPricesService = ModelPricesService = __decorate([
|
|
@@ -37,25 +37,17 @@ let ModelPricingCacheService = ModelPricingCacheService_1 = class ModelPricingCa
|
|
|
37
37
|
const orCache = this.pricingSync.getAll();
|
|
38
38
|
for (const [fullId, entry] of orCache) {
|
|
39
39
|
const { provider, canonical, providerId } = this.resolveProviderAndName(fullId);
|
|
40
|
-
const
|
|
41
|
-
const validated = this.resolveValidated(providerId, canonical);
|
|
42
|
-
this.cache.set(fullId, {
|
|
40
|
+
const pricingEntry = {
|
|
43
41
|
model_name: fullId,
|
|
44
42
|
provider,
|
|
45
43
|
input_price_per_token: entry.input,
|
|
46
44
|
output_price_per_token: entry.output,
|
|
47
|
-
display_name: displayName,
|
|
48
|
-
validated,
|
|
49
|
-
}
|
|
45
|
+
display_name: entry.displayName ?? null,
|
|
46
|
+
validated: this.resolveValidated(providerId, canonical),
|
|
47
|
+
};
|
|
48
|
+
this.cache.set(fullId, pricingEntry);
|
|
50
49
|
if (canonical !== fullId && !this.cache.has(canonical)) {
|
|
51
|
-
this.cache.set(canonical,
|
|
52
|
-
model_name: fullId,
|
|
53
|
-
provider,
|
|
54
|
-
input_price_per_token: entry.input,
|
|
55
|
-
output_price_per_token: entry.output,
|
|
56
|
-
display_name: displayName,
|
|
57
|
-
validated,
|
|
58
|
-
});
|
|
50
|
+
this.cache.set(canonical, pricingEntry);
|
|
59
51
|
}
|
|
60
52
|
}
|
|
61
53
|
this.aliasMap = (0, model_name_normalizer_1.buildAliasMap)([...this.cache.keys()]);
|
|
@@ -90,10 +82,10 @@ let ModelPricingCacheService = ModelPricingCacheService_1 = class ModelPricingCa
|
|
|
90
82
|
return { provider: 'OpenRouter', canonical: openRouterId, providerId: null };
|
|
91
83
|
}
|
|
92
84
|
const prefix = openRouterId.substring(0, slashIdx);
|
|
93
|
-
const
|
|
94
|
-
if (
|
|
85
|
+
const providerDisplayName = providers_1.OPENROUTER_PREFIX_TO_PROVIDER.get(prefix);
|
|
86
|
+
if (providerDisplayName) {
|
|
95
87
|
return {
|
|
96
|
-
provider:
|
|
88
|
+
provider: providerDisplayName,
|
|
97
89
|
canonical: openRouterId.substring(slashIdx + 1),
|
|
98
90
|
providerId: prefix,
|
|
99
91
|
};
|
|
@@ -9,12 +9,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
9
9
|
exports.NotificationsModule = void 0;
|
|
10
10
|
const common_1 = require("@nestjs/common");
|
|
11
11
|
const notifications_controller_1 = require("./notifications.controller");
|
|
12
|
-
const email_config_controller_1 = require("./email-config.controller");
|
|
13
12
|
const notification_rules_service_1 = require("./services/notification-rules.service");
|
|
14
13
|
const notification_cron_service_1 = require("./services/notification-cron.service");
|
|
15
14
|
const notification_email_service_1 = require("./services/notification-email.service");
|
|
16
|
-
const email_config_service_1 = require("./services/email-config.service");
|
|
17
|
-
const notification_email_address_service_1 = require("./services/notification-email-address.service");
|
|
18
15
|
const email_provider_config_service_1 = require("./services/email-provider-config.service");
|
|
19
16
|
const limit_check_service_1 = require("./services/limit-check.service");
|
|
20
17
|
let NotificationsModule = class NotificationsModule {
|
|
@@ -22,13 +19,11 @@ let NotificationsModule = class NotificationsModule {
|
|
|
22
19
|
exports.NotificationsModule = NotificationsModule;
|
|
23
20
|
exports.NotificationsModule = NotificationsModule = __decorate([
|
|
24
21
|
(0, common_1.Module)({
|
|
25
|
-
controllers: [notifications_controller_1.NotificationsController
|
|
22
|
+
controllers: [notifications_controller_1.NotificationsController],
|
|
26
23
|
providers: [
|
|
27
24
|
notification_rules_service_1.NotificationRulesService,
|
|
28
25
|
notification_cron_service_1.NotificationCronService,
|
|
29
26
|
notification_email_service_1.NotificationEmailService,
|
|
30
|
-
email_config_service_1.EmailConfigService,
|
|
31
|
-
notification_email_address_service_1.NotificationEmailAddressService,
|
|
32
27
|
email_provider_config_service_1.EmailProviderConfigService,
|
|
33
28
|
limit_check_service_1.LimitCheckService,
|
|
34
29
|
],
|
|
@@ -12,7 +12,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
12
12
|
exports.ResolveRequestDto = void 0;
|
|
13
13
|
const class_validator_1 = require("class-validator");
|
|
14
14
|
const class_transformer_1 = require("class-transformer");
|
|
15
|
-
const
|
|
15
|
+
const manifest_shared_1 = require("manifest-shared");
|
|
16
16
|
class MessageDto {
|
|
17
17
|
role;
|
|
18
18
|
content;
|
|
@@ -57,7 +57,7 @@ __decorate([
|
|
|
57
57
|
__decorate([
|
|
58
58
|
(0, class_validator_1.IsOptional)(),
|
|
59
59
|
(0, class_validator_1.IsArray)(),
|
|
60
|
-
(0, class_validator_1.IsIn)(
|
|
60
|
+
(0, class_validator_1.IsIn)(manifest_shared_1.TIERS, { each: true }),
|
|
61
61
|
__metadata("design:type", Array)
|
|
62
62
|
], ResolveRequestDto.prototype, "recentTiers", void 0);
|
|
63
63
|
//# sourceMappingURL=resolve-request.dto.js.map
|
|
@@ -11,8 +11,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.SetFallbacksDto = exports.CopilotPollDto = exports.SetOverrideDto = exports.RemoveProviderQueryDto = exports.AgentProviderParamDto = exports.ConnectProviderDto = exports.ProviderParamDto = exports.TierParamDto = exports.AgentNameParamDto = void 0;
|
|
13
13
|
const class_validator_1 = require("class-validator");
|
|
14
|
-
const
|
|
15
|
-
const VALID_AUTH_TYPES = ['api_key', 'subscription'];
|
|
14
|
+
const manifest_shared_1 = require("manifest-shared");
|
|
16
15
|
class AgentNameParamDto {
|
|
17
16
|
agentName;
|
|
18
17
|
}
|
|
@@ -28,7 +27,7 @@ class TierParamDto {
|
|
|
28
27
|
}
|
|
29
28
|
exports.TierParamDto = TierParamDto;
|
|
30
29
|
__decorate([
|
|
31
|
-
(0, class_validator_1.IsIn)(
|
|
30
|
+
(0, class_validator_1.IsIn)(manifest_shared_1.TIERS),
|
|
32
31
|
__metadata("design:type", String)
|
|
33
32
|
], TierParamDto.prototype, "tier", void 0);
|
|
34
33
|
class ProviderParamDto {
|
|
@@ -44,6 +43,7 @@ class ConnectProviderDto {
|
|
|
44
43
|
provider;
|
|
45
44
|
apiKey;
|
|
46
45
|
authType;
|
|
46
|
+
region;
|
|
47
47
|
}
|
|
48
48
|
exports.ConnectProviderDto = ConnectProviderDto;
|
|
49
49
|
__decorate([
|
|
@@ -58,9 +58,14 @@ __decorate([
|
|
|
58
58
|
], ConnectProviderDto.prototype, "apiKey", void 0);
|
|
59
59
|
__decorate([
|
|
60
60
|
(0, class_validator_1.IsOptional)(),
|
|
61
|
-
(0, class_validator_1.IsIn)(
|
|
61
|
+
(0, class_validator_1.IsIn)(manifest_shared_1.AUTH_TYPES),
|
|
62
62
|
__metadata("design:type", String)
|
|
63
63
|
], ConnectProviderDto.prototype, "authType", void 0);
|
|
64
|
+
__decorate([
|
|
65
|
+
(0, class_validator_1.IsOptional)(),
|
|
66
|
+
(0, class_validator_1.IsString)(),
|
|
67
|
+
__metadata("design:type", String)
|
|
68
|
+
], ConnectProviderDto.prototype, "region", void 0);
|
|
64
69
|
class AgentProviderParamDto {
|
|
65
70
|
agentName;
|
|
66
71
|
provider;
|
|
@@ -83,7 +88,7 @@ class RemoveProviderQueryDto {
|
|
|
83
88
|
exports.RemoveProviderQueryDto = RemoveProviderQueryDto;
|
|
84
89
|
__decorate([
|
|
85
90
|
(0, class_validator_1.IsOptional)(),
|
|
86
|
-
(0, class_validator_1.IsIn)(
|
|
91
|
+
(0, class_validator_1.IsIn)(manifest_shared_1.AUTH_TYPES),
|
|
87
92
|
__metadata("design:type", String)
|
|
88
93
|
], RemoveProviderQueryDto.prototype, "authType", void 0);
|
|
89
94
|
class SetOverrideDto {
|
|
@@ -105,7 +110,7 @@ __decorate([
|
|
|
105
110
|
], SetOverrideDto.prototype, "provider", void 0);
|
|
106
111
|
__decorate([
|
|
107
112
|
(0, class_validator_1.IsOptional)(),
|
|
108
|
-
(0, class_validator_1.IsIn)(
|
|
113
|
+
(0, class_validator_1.IsIn)(manifest_shared_1.AUTH_TYPES),
|
|
109
114
|
__metadata("design:type", String)
|
|
110
115
|
], SetOverrideDto.prototype, "authType", void 0);
|
|
111
116
|
class CopilotPollDto {
|
|
@@ -14,13 +14,14 @@ const custom_provider_entity_1 = require("../../entities/custom-provider.entity"
|
|
|
14
14
|
const model_prices_module_1 = require("../../model-prices/model-prices.module");
|
|
15
15
|
const provider_model_fetcher_service_1 = require("./provider-model-fetcher.service");
|
|
16
16
|
const model_discovery_service_1 = require("./model-discovery.service");
|
|
17
|
+
const copilot_token_service_1 = require("../proxy/copilot-token.service");
|
|
17
18
|
let ModelDiscoveryModule = class ModelDiscoveryModule {
|
|
18
19
|
};
|
|
19
20
|
exports.ModelDiscoveryModule = ModelDiscoveryModule;
|
|
20
21
|
exports.ModelDiscoveryModule = ModelDiscoveryModule = __decorate([
|
|
21
22
|
(0, common_1.Module)({
|
|
22
23
|
imports: [typeorm_1.TypeOrmModule.forFeature([user_provider_entity_1.UserProvider, custom_provider_entity_1.CustomProvider]), model_prices_module_1.ModelPricesModule],
|
|
23
|
-
providers: [provider_model_fetcher_service_1.ProviderModelFetcherService, model_discovery_service_1.ModelDiscoveryService],
|
|
24
|
+
providers: [provider_model_fetcher_service_1.ProviderModelFetcherService, model_discovery_service_1.ModelDiscoveryService, copilot_token_service_1.CopilotTokenService],
|
|
24
25
|
exports: [model_discovery_service_1.ModelDiscoveryService, provider_model_fetcher_service_1.ProviderModelFetcherService],
|
|
25
26
|
})
|
|
26
27
|
], ModelDiscoveryModule);
|