@hestia-earth/api 0.27.5 → 0.27.6
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.
|
@@ -21,6 +21,10 @@ export var LlmApiKey;
|
|
|
21
21
|
LlmApiKey["OPENAI_API_KEY"] = "OPENAI_API_KEY";
|
|
22
22
|
})(LlmApiKey || (LlmApiKey = {}));
|
|
23
23
|
export const llmApiKeys = Object.values(LlmApiKey);
|
|
24
|
+
export const stripPresetSecrets = (presets = []) => presets.map(({ config, ...preset }) => {
|
|
25
|
+
const { apiKeys, ...rest } = config || {};
|
|
26
|
+
return { ...preset, config: rest };
|
|
27
|
+
});
|
|
24
28
|
const engines = Object.values(LlmEngine);
|
|
25
29
|
const isEngine = (value) => engines.includes(value);
|
|
26
30
|
const isReviewer = (value) => typeof value === 'string' && value.length > 0 && isEngine(value.split(':')[0]);
|
|
@@ -28,6 +32,7 @@ const isStringRecord = (value) => !!value && typeof value === 'object' && !Array
|
|
|
28
32
|
const invalid = (reason) => throwError('invalid-llm-presets', { reason });
|
|
29
33
|
const validateEngine = (field, value) => (value === undefined || isEngine(value)) || invalid(`invalid ${field} "${value}"`);
|
|
30
34
|
const validateOptionalString = (field, value) => (value === undefined || typeof value === 'string') || invalid(`${field} must be a string`);
|
|
35
|
+
const validateOptionalBoolean = (field, value) => (value === undefined || typeof value === 'boolean') || invalid(`${field} must be a boolean`);
|
|
31
36
|
const validateReviewers = (reviewers) => (reviewers === undefined || (Array.isArray(reviewers) && reviewers.every(isReviewer))) ||
|
|
32
37
|
invalid('reviewers must be a list of "engine" or "engine:model"');
|
|
33
38
|
const validateApiKeys = (apiKeys) => (apiKeys === undefined ||
|
|
@@ -46,6 +51,7 @@ const validatePreset = (preset) => {
|
|
|
46
51
|
(isStringRecord(preset) && typeof preset.name === 'string' && preset.name.length > 0) ||
|
|
47
52
|
invalid('each preset requires a non-empty name');
|
|
48
53
|
validateOptionalString('description', preset.description);
|
|
54
|
+
validateOptionalBoolean('default', preset.default);
|
|
49
55
|
validateConfig(preset.config);
|
|
50
56
|
};
|
|
51
57
|
export const validateLlmPresets = (value) => {
|
|
@@ -30,6 +30,8 @@ export interface LlmPresetConfig {
|
|
|
30
30
|
export interface LlmPreset {
|
|
31
31
|
name: string;
|
|
32
32
|
description?: string;
|
|
33
|
+
default?: boolean;
|
|
33
34
|
config: LlmPresetConfig;
|
|
34
35
|
}
|
|
36
|
+
export declare const stripPresetSecrets: (presets?: LlmPreset[]) => LlmPreset[];
|
|
35
37
|
export declare const validateLlmPresets: (value: any) => LlmPreset[];
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.validateLlmPresets = exports.llmApiKeys = exports.LlmApiKey = exports.LlmEngine = void 0;
|
|
3
|
+
exports.validateLlmPresets = exports.stripPresetSecrets = exports.llmApiKeys = exports.LlmApiKey = exports.LlmEngine = void 0;
|
|
4
4
|
const errors_1 = require("../../errors");
|
|
5
5
|
var LlmEngine;
|
|
6
6
|
(function (LlmEngine) {
|
|
@@ -24,6 +24,11 @@ var LlmApiKey;
|
|
|
24
24
|
LlmApiKey["OPENAI_API_KEY"] = "OPENAI_API_KEY";
|
|
25
25
|
})(LlmApiKey || (exports.LlmApiKey = LlmApiKey = {}));
|
|
26
26
|
exports.llmApiKeys = Object.values(LlmApiKey);
|
|
27
|
+
const stripPresetSecrets = (presets = []) => presets.map(({ config, ...preset }) => {
|
|
28
|
+
const { apiKeys, ...rest } = config || {};
|
|
29
|
+
return { ...preset, config: rest };
|
|
30
|
+
});
|
|
31
|
+
exports.stripPresetSecrets = stripPresetSecrets;
|
|
27
32
|
const engines = Object.values(LlmEngine);
|
|
28
33
|
const isEngine = (value) => engines.includes(value);
|
|
29
34
|
const isReviewer = (value) => typeof value === 'string' && value.length > 0 && isEngine(value.split(':')[0]);
|
|
@@ -31,6 +36,7 @@ const isStringRecord = (value) => !!value && typeof value === 'object' && !Array
|
|
|
31
36
|
const invalid = (reason) => (0, errors_1.throwError)('invalid-llm-presets', { reason });
|
|
32
37
|
const validateEngine = (field, value) => (value === undefined || isEngine(value)) || invalid(`invalid ${field} "${value}"`);
|
|
33
38
|
const validateOptionalString = (field, value) => (value === undefined || typeof value === 'string') || invalid(`${field} must be a string`);
|
|
39
|
+
const validateOptionalBoolean = (field, value) => (value === undefined || typeof value === 'boolean') || invalid(`${field} must be a boolean`);
|
|
34
40
|
const validateReviewers = (reviewers) => (reviewers === undefined || (Array.isArray(reviewers) && reviewers.every(isReviewer))) ||
|
|
35
41
|
invalid('reviewers must be a list of "engine" or "engine:model"');
|
|
36
42
|
const validateApiKeys = (apiKeys) => (apiKeys === undefined ||
|
|
@@ -49,6 +55,7 @@ const validatePreset = (preset) => {
|
|
|
49
55
|
(isStringRecord(preset) && typeof preset.name === 'string' && preset.name.length > 0) ||
|
|
50
56
|
invalid('each preset requires a non-empty name');
|
|
51
57
|
validateOptionalString('description', preset.description);
|
|
58
|
+
validateOptionalBoolean('default', preset.default);
|
|
52
59
|
validateConfig(preset.config);
|
|
53
60
|
};
|
|
54
61
|
const validateLlmPresets = (value) => {
|