@lov3kaizen/agentsea-cli 0.4.0 → 0.5.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.js +815 -39
- package/dist/cli.js.map +1 -1
- package/dist/commands/agent.js.map +1 -1
- package/dist/commands/costs.d.ts +19 -0
- package/dist/commands/costs.d.ts.map +1 -0
- package/dist/commands/costs.js +290 -0
- package/dist/commands/costs.js.map +1 -0
- package/dist/commands/crews.d.ts +16 -0
- package/dist/commands/crews.d.ts.map +1 -0
- package/dist/commands/crews.js +266 -0
- package/dist/commands/crews.js.map +1 -0
- package/dist/commands/embeddings.d.ts +19 -0
- package/dist/commands/embeddings.d.ts.map +1 -0
- package/dist/commands/embeddings.js +332 -0
- package/dist/commands/embeddings.js.map +1 -0
- package/dist/commands/evaluate.d.ts +18 -0
- package/dist/commands/evaluate.d.ts.map +1 -0
- package/dist/commands/evaluate.js +284 -0
- package/dist/commands/evaluate.js.map +1 -0
- package/dist/commands/gateway.d.ts +27 -0
- package/dist/commands/gateway.d.ts.map +1 -0
- package/dist/commands/gateway.js +256 -0
- package/dist/commands/gateway.js.map +1 -0
- package/dist/commands/guardrails.d.ts +17 -0
- package/dist/commands/guardrails.d.ts.map +1 -0
- package/dist/commands/guardrails.js +280 -0
- package/dist/commands/guardrails.js.map +1 -0
- package/dist/commands/ingest.d.ts +22 -0
- package/dist/commands/ingest.d.ts.map +1 -0
- package/dist/commands/ingest.js +317 -0
- package/dist/commands/ingest.js.map +1 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/memory.d.ts +16 -0
- package/dist/commands/memory.d.ts.map +1 -0
- package/dist/commands/memory.js +280 -0
- package/dist/commands/memory.js.map +1 -0
- package/dist/commands/prompts.d.ts +22 -0
- package/dist/commands/prompts.d.ts.map +1 -0
- package/dist/commands/prompts.js +274 -0
- package/dist/commands/prompts.js.map +1 -0
- package/dist/commands/provider.js.map +1 -1
- package/dist/commands/surf.d.ts +16 -0
- package/dist/commands/surf.d.ts.map +1 -0
- package/dist/commands/surf.js +259 -0
- package/dist/commands/surf.js.map +1 -0
- package/dist/config/manager.d.ts +11 -0
- package/dist/config/manager.d.ts.map +1 -1
- package/dist/config/manager.js +13 -0
- package/dist/config/manager.js.map +1 -1
- package/dist/utils/logger.d.ts +1 -1
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js.map +1 -1
- package/package.json +3 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"evaluate.d.ts","sourceRoot":"","sources":["../../src/commands/evaluate.ts"],"names":[],"mappings":"AAkFA,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAKD,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,IAAI,CAAC,CA+F7D;AAKD,wBAAgB,gBAAgB,IAAI,IAAI,CAwBvC;AAKD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAmCjD;AAKD,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAyBnE;AAKD,wBAAgB,kBAAkB,IAAI,IAAI,CAoBzC;AAKD,wBAAgB,iBAAiB,IAAI,IAAI,CAUxC;AAKD,wBAAgB,wBAAwB,IAAI,IAAI,CAU/C"}
|
|
@@ -0,0 +1,284 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.createEvalConfigCommand = createEvalConfigCommand;
|
|
7
|
+
exports.listEvalsCommand = listEvalsCommand;
|
|
8
|
+
exports.getEvalCommand = getEvalCommand;
|
|
9
|
+
exports.deleteEvalCommand = deleteEvalCommand;
|
|
10
|
+
exports.showMetricsCommand = showMetricsCommand;
|
|
11
|
+
exports.showJudgesCommand = showJudgesCommand;
|
|
12
|
+
exports.showFeedbackTypesCommand = showFeedbackTypesCommand;
|
|
13
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
14
|
+
const inquirer_1 = __importDefault(require("inquirer"));
|
|
15
|
+
const table_1 = require("table");
|
|
16
|
+
const manager_1 = require("../config/manager");
|
|
17
|
+
const logger_1 = require("../utils/logger");
|
|
18
|
+
const METRICS = {
|
|
19
|
+
accuracy: {
|
|
20
|
+
name: 'Accuracy',
|
|
21
|
+
category: 'correctness',
|
|
22
|
+
description: 'Measure response correctness',
|
|
23
|
+
},
|
|
24
|
+
relevance: {
|
|
25
|
+
name: 'Relevance',
|
|
26
|
+
category: 'quality',
|
|
27
|
+
description: 'Measure response relevance to query',
|
|
28
|
+
},
|
|
29
|
+
coherence: {
|
|
30
|
+
name: 'Coherence',
|
|
31
|
+
category: 'quality',
|
|
32
|
+
description: 'Measure logical consistency',
|
|
33
|
+
},
|
|
34
|
+
faithfulness: {
|
|
35
|
+
name: 'Faithfulness',
|
|
36
|
+
category: 'rag',
|
|
37
|
+
description: 'Check grounding in source documents',
|
|
38
|
+
},
|
|
39
|
+
'context-relevance': {
|
|
40
|
+
name: 'Context Relevance',
|
|
41
|
+
category: 'rag',
|
|
42
|
+
description: 'Measure context usefulness for query',
|
|
43
|
+
},
|
|
44
|
+
toxicity: {
|
|
45
|
+
name: 'Toxicity',
|
|
46
|
+
category: 'safety',
|
|
47
|
+
description: 'Detect harmful content',
|
|
48
|
+
},
|
|
49
|
+
};
|
|
50
|
+
const JUDGES = {
|
|
51
|
+
'llm-judge': {
|
|
52
|
+
name: 'LLM Judge',
|
|
53
|
+
description: 'Use an LLM to evaluate responses',
|
|
54
|
+
},
|
|
55
|
+
'rubric-judge': {
|
|
56
|
+
name: 'Rubric Judge',
|
|
57
|
+
description: 'Score against a defined rubric',
|
|
58
|
+
},
|
|
59
|
+
'comparative-judge': {
|
|
60
|
+
name: 'Comparative Judge',
|
|
61
|
+
description: 'Compare multiple responses',
|
|
62
|
+
},
|
|
63
|
+
'consensus-judge': {
|
|
64
|
+
name: 'Consensus Judge',
|
|
65
|
+
description: 'Multiple judges reach consensus',
|
|
66
|
+
},
|
|
67
|
+
};
|
|
68
|
+
const FEEDBACK_TYPES = [
|
|
69
|
+
{ name: 'Thumbs', value: 'thumbs', description: 'Simple thumbs up/down' },
|
|
70
|
+
{ name: 'Rating', value: 'rating', description: 'Star rating (1-5)' },
|
|
71
|
+
{
|
|
72
|
+
name: 'Multi-Criteria',
|
|
73
|
+
value: 'multi-criteria',
|
|
74
|
+
description: 'Rate multiple aspects',
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
name: 'Preference',
|
|
78
|
+
value: 'preference',
|
|
79
|
+
description: 'Compare response pairs',
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
name: 'Correction',
|
|
83
|
+
value: 'correction',
|
|
84
|
+
description: 'Provide corrections',
|
|
85
|
+
},
|
|
86
|
+
];
|
|
87
|
+
async function createEvalConfigCommand() {
|
|
88
|
+
logger_1.logger.heading('Create Evaluation Configuration');
|
|
89
|
+
const answers = await inquirer_1.default.prompt([
|
|
90
|
+
{
|
|
91
|
+
type: 'input',
|
|
92
|
+
name: 'name',
|
|
93
|
+
message: 'Evaluation name:',
|
|
94
|
+
validate: (input) => {
|
|
95
|
+
if (!input.trim())
|
|
96
|
+
return 'Name is required';
|
|
97
|
+
const config = manager_1.configManager.getConfig();
|
|
98
|
+
if (config.evaluations?.[input])
|
|
99
|
+
return 'Evaluation with this name already exists';
|
|
100
|
+
return true;
|
|
101
|
+
},
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
type: 'input',
|
|
105
|
+
name: 'description',
|
|
106
|
+
message: 'Description:',
|
|
107
|
+
default: 'An evaluation pipeline',
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
type: 'checkbox',
|
|
111
|
+
name: 'metrics',
|
|
112
|
+
message: 'Select metrics to evaluate:',
|
|
113
|
+
choices: Object.entries(METRICS).map(([key, metric]) => ({
|
|
114
|
+
name: `${metric.name} (${metric.category}) - ${metric.description}`,
|
|
115
|
+
value: key,
|
|
116
|
+
})),
|
|
117
|
+
validate: (input) => input.length >= 1 || 'Select at least one metric',
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
type: 'list',
|
|
121
|
+
name: 'judgeType',
|
|
122
|
+
message: 'Judge type:',
|
|
123
|
+
choices: Object.entries(JUDGES).map(([key, judge]) => ({
|
|
124
|
+
name: `${judge.name} - ${judge.description}`,
|
|
125
|
+
value: key,
|
|
126
|
+
})),
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
type: 'input',
|
|
130
|
+
name: 'judgeModel',
|
|
131
|
+
message: 'Judge model (for LLM judge):',
|
|
132
|
+
default: 'claude-sonnet-4-20250514',
|
|
133
|
+
when: (answers) => answers.judgeType === 'llm-judge',
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
type: 'list',
|
|
137
|
+
name: 'feedbackType',
|
|
138
|
+
message: 'Feedback collection type:',
|
|
139
|
+
choices: [
|
|
140
|
+
{ name: 'None', value: undefined },
|
|
141
|
+
...FEEDBACK_TYPES.map((f) => ({
|
|
142
|
+
name: `${f.name} - ${f.description}`,
|
|
143
|
+
value: f.value,
|
|
144
|
+
})),
|
|
145
|
+
],
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
type: 'input',
|
|
149
|
+
name: 'datasetPath',
|
|
150
|
+
message: 'Evaluation dataset path (optional):',
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
type: 'number',
|
|
154
|
+
name: 'threshold',
|
|
155
|
+
message: 'Pass threshold (0-1):',
|
|
156
|
+
default: 0.8,
|
|
157
|
+
},
|
|
158
|
+
]);
|
|
159
|
+
const evalConfig = {
|
|
160
|
+
name: answers.name,
|
|
161
|
+
description: answers.description,
|
|
162
|
+
metrics: answers.metrics,
|
|
163
|
+
judgeType: answers.judgeType,
|
|
164
|
+
judgeModel: answers.judgeModel,
|
|
165
|
+
feedbackType: answers.feedbackType,
|
|
166
|
+
datasetPath: answers.datasetPath || undefined,
|
|
167
|
+
threshold: answers.threshold,
|
|
168
|
+
};
|
|
169
|
+
const config = manager_1.configManager.getConfig();
|
|
170
|
+
if (!config.evaluations) {
|
|
171
|
+
config.evaluations = {};
|
|
172
|
+
}
|
|
173
|
+
config.evaluations[answers.name] = evalConfig;
|
|
174
|
+
manager_1.configManager.setConfig(config);
|
|
175
|
+
logger_1.logger.success(`Evaluation "${answers.name}" configured with ${answers.metrics.length} metrics`);
|
|
176
|
+
}
|
|
177
|
+
function listEvalsCommand() {
|
|
178
|
+
const config = manager_1.configManager.getConfig();
|
|
179
|
+
const evals = config.evaluations || {};
|
|
180
|
+
if (Object.keys(evals).length === 0) {
|
|
181
|
+
logger_1.logger.warn('No evaluations configured');
|
|
182
|
+
logger_1.logger.info('Run `sea evaluate create` to create an evaluation');
|
|
183
|
+
return;
|
|
184
|
+
}
|
|
185
|
+
logger_1.logger.heading('Configured Evaluations');
|
|
186
|
+
const data = [
|
|
187
|
+
['Name', 'Metrics', 'Judge', 'Threshold', 'Description'],
|
|
188
|
+
...Object.values(evals).map((eval_) => [
|
|
189
|
+
eval_.name,
|
|
190
|
+
eval_.metrics.length.toString(),
|
|
191
|
+
eval_.judgeType,
|
|
192
|
+
eval_.threshold?.toString() || '-',
|
|
193
|
+
eval_.description || '-',
|
|
194
|
+
]),
|
|
195
|
+
];
|
|
196
|
+
console.log((0, table_1.table)(data));
|
|
197
|
+
}
|
|
198
|
+
function getEvalCommand(name) {
|
|
199
|
+
const config = manager_1.configManager.getConfig();
|
|
200
|
+
const eval_ = config.evaluations?.[name];
|
|
201
|
+
if (!eval_) {
|
|
202
|
+
logger_1.logger.error(`Evaluation "${name}" not found`);
|
|
203
|
+
return;
|
|
204
|
+
}
|
|
205
|
+
const judge = JUDGES[eval_.judgeType];
|
|
206
|
+
logger_1.logger.heading(`Evaluation: ${eval_.name}`);
|
|
207
|
+
logger_1.logger.keyValue('Description', eval_.description || '-');
|
|
208
|
+
logger_1.logger.keyValue('Judge Type', judge?.name || eval_.judgeType);
|
|
209
|
+
logger_1.logger.keyValue('Judge Model', eval_.judgeModel || '-');
|
|
210
|
+
logger_1.logger.keyValue('Feedback Type', eval_.feedbackType || 'None');
|
|
211
|
+
logger_1.logger.keyValue('Dataset Path', eval_.datasetPath || 'None');
|
|
212
|
+
logger_1.logger.keyValue('Pass Threshold', eval_.threshold?.toString() || '-');
|
|
213
|
+
logger_1.logger.blank();
|
|
214
|
+
logger_1.logger.subheading('Metrics');
|
|
215
|
+
const data = [
|
|
216
|
+
['Metric', 'Category', 'Description'],
|
|
217
|
+
...eval_.metrics.map((metricId) => {
|
|
218
|
+
const metric = METRICS[metricId];
|
|
219
|
+
return [
|
|
220
|
+
metric?.name || metricId,
|
|
221
|
+
metric?.category || '-',
|
|
222
|
+
metric?.description || '-',
|
|
223
|
+
];
|
|
224
|
+
}),
|
|
225
|
+
];
|
|
226
|
+
console.log((0, table_1.table)(data));
|
|
227
|
+
}
|
|
228
|
+
async function deleteEvalCommand(name) {
|
|
229
|
+
const config = manager_1.configManager.getConfig();
|
|
230
|
+
if (!config.evaluations?.[name]) {
|
|
231
|
+
logger_1.logger.error(`Evaluation "${name}" not found`);
|
|
232
|
+
return;
|
|
233
|
+
}
|
|
234
|
+
const { confirm } = await inquirer_1.default.prompt([
|
|
235
|
+
{
|
|
236
|
+
type: 'confirm',
|
|
237
|
+
name: 'confirm',
|
|
238
|
+
message: `Are you sure you want to delete evaluation "${name}"?`,
|
|
239
|
+
default: false,
|
|
240
|
+
},
|
|
241
|
+
]);
|
|
242
|
+
if (!confirm) {
|
|
243
|
+
logger_1.logger.info('Cancelled');
|
|
244
|
+
return;
|
|
245
|
+
}
|
|
246
|
+
delete config.evaluations[name];
|
|
247
|
+
manager_1.configManager.setConfig(config);
|
|
248
|
+
logger_1.logger.success(`Evaluation "${name}" deleted`);
|
|
249
|
+
}
|
|
250
|
+
function showMetricsCommand() {
|
|
251
|
+
logger_1.logger.heading('Available Metrics');
|
|
252
|
+
const categories = ['correctness', 'quality', 'rag', 'safety'];
|
|
253
|
+
categories.forEach((category) => {
|
|
254
|
+
logger_1.logger.blank();
|
|
255
|
+
logger_1.logger.subheading(category.charAt(0).toUpperCase() + category.slice(1));
|
|
256
|
+
const metrics = Object.entries(METRICS).filter(([_, metric]) => metric.category === category);
|
|
257
|
+
const data = [
|
|
258
|
+
['ID', 'Name', 'Description'],
|
|
259
|
+
...metrics.map(([id, metric]) => [id, metric.name, metric.description]),
|
|
260
|
+
];
|
|
261
|
+
console.log((0, table_1.table)(data));
|
|
262
|
+
});
|
|
263
|
+
}
|
|
264
|
+
function showJudgesCommand() {
|
|
265
|
+
logger_1.logger.heading('Judge Types');
|
|
266
|
+
logger_1.logger.blank();
|
|
267
|
+
Object.entries(JUDGES).forEach(([key, judge]) => {
|
|
268
|
+
console.log(chalk_1.default.bold.cyan(` ${judge.name}`));
|
|
269
|
+
console.log(chalk_1.default.gray(` ID: ${key}`));
|
|
270
|
+
console.log(chalk_1.default.white(` ${judge.description}`));
|
|
271
|
+
logger_1.logger.blank();
|
|
272
|
+
});
|
|
273
|
+
}
|
|
274
|
+
function showFeedbackTypesCommand() {
|
|
275
|
+
logger_1.logger.heading('Feedback Collection Types');
|
|
276
|
+
logger_1.logger.blank();
|
|
277
|
+
FEEDBACK_TYPES.forEach((feedback) => {
|
|
278
|
+
console.log(chalk_1.default.bold.cyan(` ${feedback.name}`));
|
|
279
|
+
console.log(chalk_1.default.gray(` ID: ${feedback.value}`));
|
|
280
|
+
console.log(chalk_1.default.white(` ${feedback.description}`));
|
|
281
|
+
logger_1.logger.blank();
|
|
282
|
+
});
|
|
283
|
+
}
|
|
284
|
+
//# sourceMappingURL=evaluate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"evaluate.js","sourceRoot":"","sources":["../../src/commands/evaluate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export interface GatewayConfig {
|
|
2
|
+
name: string;
|
|
3
|
+
description?: string;
|
|
4
|
+
port: number;
|
|
5
|
+
strategy: string;
|
|
6
|
+
providers: Array<{
|
|
7
|
+
name: string;
|
|
8
|
+
apiKey?: string;
|
|
9
|
+
priority: number;
|
|
10
|
+
weight?: number;
|
|
11
|
+
rateLimit?: number;
|
|
12
|
+
}>;
|
|
13
|
+
caching?: {
|
|
14
|
+
enabled: boolean;
|
|
15
|
+
ttl: number;
|
|
16
|
+
};
|
|
17
|
+
logging?: {
|
|
18
|
+
enabled: boolean;
|
|
19
|
+
level: string;
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
export declare function createGatewayConfigCommand(): Promise<void>;
|
|
23
|
+
export declare function listGatewaysCommand(): void;
|
|
24
|
+
export declare function getGatewayCommand(name: string): void;
|
|
25
|
+
export declare function deleteGatewayCommand(name: string): Promise<void>;
|
|
26
|
+
export declare function showStrategiesCommand(): void;
|
|
27
|
+
//# sourceMappingURL=gateway.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gateway.d.ts","sourceRoot":"","sources":["../../src/commands/gateway.ts"],"names":[],"mappings":"AAsCA,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,KAAK,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC,CAAC;IACH,OAAO,CAAC,EAAE;QACR,OAAO,EAAE,OAAO,CAAC;QACjB,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;IACF,OAAO,CAAC,EAAE;QACR,OAAO,EAAE,OAAO,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;CACH;AAKD,wBAAsB,0BAA0B,IAAI,OAAO,CAAC,IAAI,CAAC,CAiJhE;AAKD,wBAAgB,mBAAmB,IAAI,IAAI,CAyB1C;AAKD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAwCpD;AAKD,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAyBtE;AAKD,wBAAgB,qBAAqB,IAAI,IAAI,CAU5C"}
|
|
@@ -0,0 +1,256 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.createGatewayConfigCommand = createGatewayConfigCommand;
|
|
7
|
+
exports.listGatewaysCommand = listGatewaysCommand;
|
|
8
|
+
exports.getGatewayCommand = getGatewayCommand;
|
|
9
|
+
exports.deleteGatewayCommand = deleteGatewayCommand;
|
|
10
|
+
exports.showStrategiesCommand = showStrategiesCommand;
|
|
11
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
12
|
+
const inquirer_1 = __importDefault(require("inquirer"));
|
|
13
|
+
const table_1 = require("table");
|
|
14
|
+
const manager_1 = require("../config/manager");
|
|
15
|
+
const logger_1 = require("../utils/logger");
|
|
16
|
+
const ROUTING_STRATEGIES = {
|
|
17
|
+
'round-robin': {
|
|
18
|
+
name: 'Round Robin',
|
|
19
|
+
description: 'Distribute requests evenly across providers',
|
|
20
|
+
},
|
|
21
|
+
failover: {
|
|
22
|
+
name: 'Failover',
|
|
23
|
+
description: 'Use backup providers when primary fails',
|
|
24
|
+
},
|
|
25
|
+
'cost-optimized': {
|
|
26
|
+
name: 'Cost Optimized',
|
|
27
|
+
description: 'Route to cheapest available provider',
|
|
28
|
+
},
|
|
29
|
+
'latency-optimized': {
|
|
30
|
+
name: 'Latency Optimized',
|
|
31
|
+
description: 'Route to fastest available provider',
|
|
32
|
+
},
|
|
33
|
+
};
|
|
34
|
+
const GATEWAY_PROVIDERS = [
|
|
35
|
+
'openai',
|
|
36
|
+
'anthropic',
|
|
37
|
+
'google',
|
|
38
|
+
'azure',
|
|
39
|
+
'ollama',
|
|
40
|
+
'groq',
|
|
41
|
+
'together',
|
|
42
|
+
];
|
|
43
|
+
async function createGatewayConfigCommand() {
|
|
44
|
+
logger_1.logger.heading('Create Gateway Configuration');
|
|
45
|
+
const answers = await inquirer_1.default.prompt([
|
|
46
|
+
{
|
|
47
|
+
type: 'input',
|
|
48
|
+
name: 'name',
|
|
49
|
+
message: 'Gateway name:',
|
|
50
|
+
validate: (input) => {
|
|
51
|
+
if (!input.trim())
|
|
52
|
+
return 'Name is required';
|
|
53
|
+
const config = manager_1.configManager.getConfig();
|
|
54
|
+
if (config.gateways?.[input])
|
|
55
|
+
return 'Gateway with this name already exists';
|
|
56
|
+
return true;
|
|
57
|
+
},
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
type: 'input',
|
|
61
|
+
name: 'description',
|
|
62
|
+
message: 'Description:',
|
|
63
|
+
default: 'An API gateway',
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
type: 'number',
|
|
67
|
+
name: 'port',
|
|
68
|
+
message: 'Gateway port:',
|
|
69
|
+
default: 8080,
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
type: 'list',
|
|
73
|
+
name: 'strategy',
|
|
74
|
+
message: 'Routing strategy:',
|
|
75
|
+
choices: Object.entries(ROUTING_STRATEGIES).map(([key, strategy]) => ({
|
|
76
|
+
name: `${strategy.name} - ${strategy.description}`,
|
|
77
|
+
value: key,
|
|
78
|
+
})),
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
type: 'checkbox',
|
|
82
|
+
name: 'providers',
|
|
83
|
+
message: 'Select providers to include:',
|
|
84
|
+
choices: GATEWAY_PROVIDERS,
|
|
85
|
+
validate: (input) => input.length >= 1 || 'Select at least one provider',
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
type: 'confirm',
|
|
89
|
+
name: 'enableCaching',
|
|
90
|
+
message: 'Enable response caching?',
|
|
91
|
+
default: true,
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
type: 'number',
|
|
95
|
+
name: 'cacheTtl',
|
|
96
|
+
message: 'Cache TTL (seconds):',
|
|
97
|
+
default: 3600,
|
|
98
|
+
when: (answers) => answers.enableCaching,
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
type: 'confirm',
|
|
102
|
+
name: 'enableLogging',
|
|
103
|
+
message: 'Enable request logging?',
|
|
104
|
+
default: true,
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
type: 'list',
|
|
108
|
+
name: 'logLevel',
|
|
109
|
+
message: 'Log level:',
|
|
110
|
+
choices: ['debug', 'info', 'warn', 'error'],
|
|
111
|
+
default: 'info',
|
|
112
|
+
when: (answers) => answers.enableLogging,
|
|
113
|
+
},
|
|
114
|
+
]);
|
|
115
|
+
const providers = [];
|
|
116
|
+
for (const providerName of answers.providers) {
|
|
117
|
+
logger_1.logger.blank();
|
|
118
|
+
logger_1.logger.subheading(`Configure ${providerName}`);
|
|
119
|
+
const providerAnswers = await inquirer_1.default.prompt([
|
|
120
|
+
{
|
|
121
|
+
type: 'password',
|
|
122
|
+
name: 'apiKey',
|
|
123
|
+
message: `${providerName} API key (leave empty if using env var):`,
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
type: 'number',
|
|
127
|
+
name: 'priority',
|
|
128
|
+
message: 'Priority (lower = higher priority):',
|
|
129
|
+
default: providers.length + 1,
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
type: 'number',
|
|
133
|
+
name: 'weight',
|
|
134
|
+
message: 'Weight for round-robin:',
|
|
135
|
+
default: 1,
|
|
136
|
+
when: () => answers.strategy === 'round-robin',
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
type: 'number',
|
|
140
|
+
name: 'rateLimit',
|
|
141
|
+
message: 'Rate limit (requests/min, 0 = unlimited):',
|
|
142
|
+
default: 0,
|
|
143
|
+
},
|
|
144
|
+
]);
|
|
145
|
+
providers.push({
|
|
146
|
+
name: providerName,
|
|
147
|
+
apiKey: providerAnswers.apiKey || undefined,
|
|
148
|
+
priority: providerAnswers.priority,
|
|
149
|
+
weight: providerAnswers.weight,
|
|
150
|
+
rateLimit: providerAnswers.rateLimit || undefined,
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
const gatewayConfig = {
|
|
154
|
+
name: answers.name,
|
|
155
|
+
description: answers.description,
|
|
156
|
+
port: answers.port,
|
|
157
|
+
strategy: answers.strategy,
|
|
158
|
+
providers,
|
|
159
|
+
caching: answers.enableCaching
|
|
160
|
+
? { enabled: true, ttl: answers.cacheTtl }
|
|
161
|
+
: { enabled: false, ttl: 0 },
|
|
162
|
+
logging: answers.enableLogging
|
|
163
|
+
? { enabled: true, level: answers.logLevel }
|
|
164
|
+
: { enabled: false, level: 'info' },
|
|
165
|
+
};
|
|
166
|
+
const config = manager_1.configManager.getConfig();
|
|
167
|
+
if (!config.gateways) {
|
|
168
|
+
config.gateways = {};
|
|
169
|
+
}
|
|
170
|
+
config.gateways[answers.name] = gatewayConfig;
|
|
171
|
+
manager_1.configManager.setConfig(config);
|
|
172
|
+
logger_1.logger.success(`Gateway "${answers.name}" configured with ${providers.length} providers`);
|
|
173
|
+
}
|
|
174
|
+
function listGatewaysCommand() {
|
|
175
|
+
const config = manager_1.configManager.getConfig();
|
|
176
|
+
const gateways = config.gateways || {};
|
|
177
|
+
if (Object.keys(gateways).length === 0) {
|
|
178
|
+
logger_1.logger.warn('No gateways configured');
|
|
179
|
+
logger_1.logger.info('Run `sea gateway create` to create a gateway');
|
|
180
|
+
return;
|
|
181
|
+
}
|
|
182
|
+
logger_1.logger.heading('Configured Gateways');
|
|
183
|
+
const data = [
|
|
184
|
+
['Name', 'Port', 'Strategy', 'Providers', 'Caching', 'Description'],
|
|
185
|
+
...Object.values(gateways).map((gw) => [
|
|
186
|
+
gw.name,
|
|
187
|
+
gw.port.toString(),
|
|
188
|
+
gw.strategy,
|
|
189
|
+
gw.providers.length.toString(),
|
|
190
|
+
gw.caching?.enabled ? 'Yes' : 'No',
|
|
191
|
+
gw.description || '-',
|
|
192
|
+
]),
|
|
193
|
+
];
|
|
194
|
+
console.log((0, table_1.table)(data));
|
|
195
|
+
}
|
|
196
|
+
function getGatewayCommand(name) {
|
|
197
|
+
const config = manager_1.configManager.getConfig();
|
|
198
|
+
const gateway = config.gateways?.[name];
|
|
199
|
+
if (!gateway) {
|
|
200
|
+
logger_1.logger.error(`Gateway "${name}" not found`);
|
|
201
|
+
return;
|
|
202
|
+
}
|
|
203
|
+
const strategy = ROUTING_STRATEGIES[gateway.strategy];
|
|
204
|
+
logger_1.logger.heading(`Gateway: ${gateway.name}`);
|
|
205
|
+
logger_1.logger.keyValue('Description', gateway.description || '-');
|
|
206
|
+
logger_1.logger.keyValue('Port', gateway.port.toString());
|
|
207
|
+
logger_1.logger.keyValue('Strategy', strategy?.name || gateway.strategy);
|
|
208
|
+
logger_1.logger.keyValue('Caching', gateway.caching?.enabled ? `Yes (TTL: ${gateway.caching.ttl}s)` : 'No');
|
|
209
|
+
logger_1.logger.keyValue('Logging', gateway.logging?.enabled ? `Yes (${gateway.logging.level})` : 'No');
|
|
210
|
+
logger_1.logger.blank();
|
|
211
|
+
logger_1.logger.subheading('Providers');
|
|
212
|
+
const data = [
|
|
213
|
+
['Provider', 'Priority', 'Weight', 'Rate Limit', 'API Key'],
|
|
214
|
+
...gateway.providers.map((p) => [
|
|
215
|
+
p.name,
|
|
216
|
+
p.priority.toString(),
|
|
217
|
+
p.weight?.toString() || '-',
|
|
218
|
+
p.rateLimit ? `${p.rateLimit}/min` : 'Unlimited',
|
|
219
|
+
p.apiKey ? '****' : 'Env var',
|
|
220
|
+
]),
|
|
221
|
+
];
|
|
222
|
+
console.log((0, table_1.table)(data));
|
|
223
|
+
}
|
|
224
|
+
async function deleteGatewayCommand(name) {
|
|
225
|
+
const config = manager_1.configManager.getConfig();
|
|
226
|
+
if (!config.gateways?.[name]) {
|
|
227
|
+
logger_1.logger.error(`Gateway "${name}" not found`);
|
|
228
|
+
return;
|
|
229
|
+
}
|
|
230
|
+
const { confirm } = await inquirer_1.default.prompt([
|
|
231
|
+
{
|
|
232
|
+
type: 'confirm',
|
|
233
|
+
name: 'confirm',
|
|
234
|
+
message: `Are you sure you want to delete gateway "${name}"?`,
|
|
235
|
+
default: false,
|
|
236
|
+
},
|
|
237
|
+
]);
|
|
238
|
+
if (!confirm) {
|
|
239
|
+
logger_1.logger.info('Cancelled');
|
|
240
|
+
return;
|
|
241
|
+
}
|
|
242
|
+
delete config.gateways[name];
|
|
243
|
+
manager_1.configManager.setConfig(config);
|
|
244
|
+
logger_1.logger.success(`Gateway "${name}" deleted`);
|
|
245
|
+
}
|
|
246
|
+
function showStrategiesCommand() {
|
|
247
|
+
logger_1.logger.heading('Routing Strategies');
|
|
248
|
+
logger_1.logger.blank();
|
|
249
|
+
Object.entries(ROUTING_STRATEGIES).forEach(([key, strategy]) => {
|
|
250
|
+
console.log(chalk_1.default.bold.cyan(` ${strategy.name}`));
|
|
251
|
+
console.log(chalk_1.default.gray(` ID: ${key}`));
|
|
252
|
+
console.log(chalk_1.default.white(` ${strategy.description}`));
|
|
253
|
+
logger_1.logger.blank();
|
|
254
|
+
});
|
|
255
|
+
}
|
|
256
|
+
//# sourceMappingURL=gateway.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gateway.js","sourceRoot":"","sources":["../../src/commands/gateway.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export interface GuardrailConfig {
|
|
2
|
+
name: string;
|
|
3
|
+
description?: string;
|
|
4
|
+
guards: Array<{
|
|
5
|
+
type: string;
|
|
6
|
+
enabled: boolean;
|
|
7
|
+
config: Record<string, unknown>;
|
|
8
|
+
}>;
|
|
9
|
+
failAction: 'block' | 'warn' | 'redact';
|
|
10
|
+
}
|
|
11
|
+
export declare function listGuardsCommand(): void;
|
|
12
|
+
export declare function createGuardrailCommand(): Promise<void>;
|
|
13
|
+
export declare function listGuardrailsCommand(): void;
|
|
14
|
+
export declare function getGuardrailCommand(name: string): void;
|
|
15
|
+
export declare function deleteGuardrailCommand(name: string): Promise<void>;
|
|
16
|
+
export declare function testGuardrailCommand(pipelineName?: string): Promise<void>;
|
|
17
|
+
//# sourceMappingURL=guardrails.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"guardrails.d.ts","sourceRoot":"","sources":["../../src/commands/guardrails.ts"],"names":[],"mappings":"AA6FA,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,KAAK,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,OAAO,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACjC,CAAC,CAAC;IACH,UAAU,EAAE,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC;CACzC;AAKD,wBAAgB,iBAAiB,IAAI,IAAI,CAsBxC;AAKD,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC,CAkE5D;AAKD,wBAAgB,qBAAqB,IAAI,IAAI,CAuB5C;AAKD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CA8BtD;AAKD,wBAAsB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAyBxE;AAKD,wBAAsB,oBAAoB,CACxC,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,IAAI,CAAC,CAiDf"}
|