expert_eval_cli 1.5.0 → 2.0.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 +40 -21
- package/dist/client.d.ts +13 -23
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +36 -75
- package/dist/client.js.map +1 -1
- package/dist/commands/eval-records.d.ts.map +1 -1
- package/dist/commands/eval-records.js +76 -111
- package/dist/commands/eval-records.js.map +1 -1
- package/dist/commands/eval-tasks.d.ts.map +1 -1
- package/dist/commands/eval-tasks.js +73 -78
- package/dist/commands/eval-tasks.js.map +1 -1
- package/dist/commands/experts.d.ts.map +1 -1
- package/dist/commands/experts.js +110 -102
- package/dist/commands/experts.js.map +1 -1
- package/dist/commands/versions.d.ts.map +1 -1
- package/dist/commands/versions.js +83 -70
- package/dist/commands/versions.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -5
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +93 -182
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +4 -3
- package/skill/SKILL.md +15 -11
- package/skill/references/api-reference.md +61 -55
- package/dist/commands/eval-cases.d.ts +0 -3
- package/dist/commands/eval-cases.d.ts.map +0 -1
- package/dist/commands/eval-cases.js +0 -136
- package/dist/commands/eval-cases.js.map +0 -1
- package/dist/commands/eval-items.d.ts +0 -3
- package/dist/commands/eval-items.d.ts.map +0 -1
- package/dist/commands/eval-items.js +0 -204
- package/dist/commands/eval-items.js.map +0 -1
|
@@ -35,160 +35,125 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
36
|
exports.makeEvalRecordsCommand = makeEvalRecordsCommand;
|
|
37
37
|
const commander_1 = require("commander");
|
|
38
|
+
const node_fs_1 = require("node:fs");
|
|
38
39
|
const client = __importStar(require("../client.js"));
|
|
39
40
|
const output_js_1 = require("../output.js");
|
|
40
41
|
const utils_js_1 = require("../utils.js");
|
|
42
|
+
const EVAL_RECORD_STATUSES = ['untested', 'passed', 'warning', 'failed'];
|
|
43
|
+
function parseEvalRecordStatus(value) {
|
|
44
|
+
if (value === undefined)
|
|
45
|
+
return undefined;
|
|
46
|
+
if (EVAL_RECORD_STATUSES.includes(value))
|
|
47
|
+
return value;
|
|
48
|
+
throw new Error(`Invalid status "${value}". Allowed: ${EVAL_RECORD_STATUSES.join(', ')}`);
|
|
49
|
+
}
|
|
50
|
+
function buildUpdatePayload(options) {
|
|
51
|
+
const payload = {};
|
|
52
|
+
if (options.status !== undefined)
|
|
53
|
+
payload.status = parseEvalRecordStatus(options.status);
|
|
54
|
+
if (options.clearComment)
|
|
55
|
+
payload.comment = null;
|
|
56
|
+
else if (options.comment !== undefined)
|
|
57
|
+
payload.comment = options.comment;
|
|
58
|
+
if (options.clearEvidence)
|
|
59
|
+
payload.evidence = null;
|
|
60
|
+
else if (options.evidence !== undefined)
|
|
61
|
+
payload.evidence = options.evidence;
|
|
62
|
+
return payload;
|
|
63
|
+
}
|
|
64
|
+
function parseBatchPayload(options) {
|
|
65
|
+
if (options.recordsJson !== undefined && options.recordsFile !== undefined) {
|
|
66
|
+
throw new Error('Use only one of --records-json or --records-file');
|
|
67
|
+
}
|
|
68
|
+
const input = options.recordsFile !== undefined
|
|
69
|
+
? (0, node_fs_1.readFileSync)(options.recordsFile, 'utf8')
|
|
70
|
+
: options.recordsJson;
|
|
71
|
+
if (input === undefined) {
|
|
72
|
+
throw new Error('Missing required records payload. Provide --records-json or --records-file.');
|
|
73
|
+
}
|
|
74
|
+
const parsed = JSON.parse(input);
|
|
75
|
+
const payload = Array.isArray(parsed) ? { records: parsed } : parsed;
|
|
76
|
+
if (!payload || typeof payload !== 'object' || Array.isArray(payload) || !Array.isArray(payload.records)) {
|
|
77
|
+
throw new Error('Batch payload must be {"records":[...]} or a JSON array');
|
|
78
|
+
}
|
|
79
|
+
return payload;
|
|
80
|
+
}
|
|
81
|
+
function toRecordRows(records) {
|
|
82
|
+
return records.map((record) => ({
|
|
83
|
+
id: record.id,
|
|
84
|
+
evalTaskId: record.evalTaskId,
|
|
85
|
+
itemCode: record.itemCode,
|
|
86
|
+
itemTitle: record.itemTitle,
|
|
87
|
+
category: record.category || '',
|
|
88
|
+
level: record.level || '',
|
|
89
|
+
automatable: record.automatable ?? '',
|
|
90
|
+
status: record.status,
|
|
91
|
+
comment: record.comment || '',
|
|
92
|
+
evidence: record.evidence || '',
|
|
93
|
+
}));
|
|
94
|
+
}
|
|
41
95
|
function makeEvalRecordsCommand() {
|
|
42
96
|
const evalRecords = new commander_1.Command('eval-records').description('Manage evaluation records');
|
|
43
97
|
evalRecords
|
|
44
98
|
.command('list')
|
|
45
|
-
.description('List evaluation records
|
|
46
|
-
.
|
|
47
|
-
.option('--page-size <n>', 'Items per page', '50')
|
|
48
|
-
.option('--eval-task-id <id>', 'Filter by evaluation task ID')
|
|
49
|
-
.option('--eval-item-id <id>', 'Filter by evaluation item ID')
|
|
99
|
+
.description('List evaluation records by evaluation task ID')
|
|
100
|
+
.requiredOption('--eval-task-id <id>', 'Evaluation task ID')
|
|
50
101
|
.action(async (options) => {
|
|
51
102
|
const globalOpts = evalRecords.optsWithGlobals();
|
|
52
103
|
try {
|
|
53
|
-
const
|
|
54
|
-
page: (0, utils_js_1.parseNumber)(options.page),
|
|
55
|
-
pageSize: (0, utils_js_1.parseNumber)(options.pageSize),
|
|
56
|
-
evalTaskId: options.evalTaskId,
|
|
57
|
-
evalItemId: options.evalItemId,
|
|
58
|
-
};
|
|
59
|
-
const result = await client.listEvalRecords(params);
|
|
104
|
+
const records = await client.listEvalRecords({ evalTaskId: options.evalTaskId });
|
|
60
105
|
if (globalOpts.quiet)
|
|
61
106
|
return;
|
|
62
107
|
const fmt = globalOpts.format === 'json' || !process.stdout.isTTY ? 'json' : 'csv';
|
|
63
108
|
if (fmt === 'json') {
|
|
64
|
-
(0, output_js_1.printJson)(
|
|
109
|
+
(0, output_js_1.printJson)(records, globalOpts);
|
|
110
|
+
return;
|
|
65
111
|
}
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
return;
|
|
70
|
-
}
|
|
71
|
-
(0, output_js_1.printCsv)(result.items.map((er) => ({
|
|
72
|
-
id: er.id,
|
|
73
|
-
evalTaskId: er.evalTaskId,
|
|
74
|
-
evalItemId: er.evalItemId,
|
|
75
|
-
isPassed: er.isPassed,
|
|
76
|
-
result: er.result || '',
|
|
77
|
-
dcg: er.dcg ?? '',
|
|
78
|
-
expertItemTitle: er.expertItemTitle || '',
|
|
79
|
-
})), globalOpts);
|
|
80
|
-
console.log(`\nPage ${result.page}/${Math.ceil(result.total / result.pageSize)} | Total: ${result.total}`);
|
|
112
|
+
if (records.length === 0) {
|
|
113
|
+
console.log('No evaluation records found.');
|
|
114
|
+
return;
|
|
81
115
|
}
|
|
116
|
+
(0, output_js_1.printCsv)(toRecordRows(records), globalOpts);
|
|
82
117
|
}
|
|
83
118
|
catch (err) {
|
|
84
119
|
(0, output_js_1.printError)(err, globalOpts);
|
|
85
120
|
process.exitCode = utils_js_1.EXIT_CODES.GENERAL_ERROR;
|
|
86
|
-
return;
|
|
87
|
-
}
|
|
88
|
-
});
|
|
89
|
-
evalRecords
|
|
90
|
-
.command('get')
|
|
91
|
-
.description('Get evaluation record by ID')
|
|
92
|
-
.argument('<id>', 'Evaluation record ID')
|
|
93
|
-
.action(async (id) => {
|
|
94
|
-
const globalOpts = evalRecords.optsWithGlobals();
|
|
95
|
-
try {
|
|
96
|
-
const item = await client.getEvalRecord(id);
|
|
97
|
-
(0, output_js_1.printItem)(item, globalOpts);
|
|
98
|
-
}
|
|
99
|
-
catch (err) {
|
|
100
|
-
(0, output_js_1.printError)(err, globalOpts);
|
|
101
|
-
process.exitCode = utils_js_1.EXIT_CODES.GENERAL_ERROR;
|
|
102
|
-
return;
|
|
103
|
-
}
|
|
104
|
-
});
|
|
105
|
-
evalRecords
|
|
106
|
-
.command('create')
|
|
107
|
-
.description('Create a new evaluation record')
|
|
108
|
-
.requiredOption('--eval-task-id <id>', 'Associated evaluation task ID')
|
|
109
|
-
.requiredOption('--eval-item-id <id>', 'Associated evaluation item ID')
|
|
110
|
-
.option('--query <text>', 'Evaluation query')
|
|
111
|
-
.option('--result <text>', 'Evaluation result')
|
|
112
|
-
.option('--is-passed', 'Whether the record passed')
|
|
113
|
-
.option('--dcg <score>', 'Product quality score')
|
|
114
|
-
.option('--thinking-process <text>', 'Thinking process')
|
|
115
|
-
.option('--expert-item-title <text>', 'Expert item title')
|
|
116
|
-
.option('--execution-start-time <iso>', 'Execution start time (ISO 8601)')
|
|
117
|
-
.option('--execution-end-time <iso>', 'Execution end time (ISO 8601)')
|
|
118
|
-
.action(async (options) => {
|
|
119
|
-
const globalOpts = evalRecords.optsWithGlobals();
|
|
120
|
-
try {
|
|
121
|
-
const item = await client.createEvalRecord({
|
|
122
|
-
evalTaskId: options.evalTaskId,
|
|
123
|
-
evalItemId: options.evalItemId,
|
|
124
|
-
query: options.query || null,
|
|
125
|
-
result: options.result || null,
|
|
126
|
-
isPassed: !!options.isPassed,
|
|
127
|
-
dcg: options.dcg !== undefined ? (0, utils_js_1.parseNumber)(options.dcg) ?? null : null,
|
|
128
|
-
thinkingProcess: options.thinkingProcess || null,
|
|
129
|
-
expertItemTitle: options.expertItemTitle || null,
|
|
130
|
-
executionStartTime: options.executionStartTime || null,
|
|
131
|
-
executionEndTime: options.executionEndTime || null,
|
|
132
|
-
});
|
|
133
|
-
(0, output_js_1.printItem)(item, globalOpts);
|
|
134
|
-
}
|
|
135
|
-
catch (err) {
|
|
136
|
-
(0, output_js_1.printError)(err, globalOpts);
|
|
137
|
-
process.exitCode = utils_js_1.EXIT_CODES.GENERAL_ERROR;
|
|
138
|
-
return;
|
|
139
121
|
}
|
|
140
122
|
});
|
|
141
123
|
evalRecords
|
|
142
124
|
.command('update')
|
|
143
|
-
.description('Update
|
|
125
|
+
.description('Update a single evaluation record result, comment and evidence')
|
|
144
126
|
.argument('<id>', 'Evaluation record ID')
|
|
145
|
-
.option('--
|
|
146
|
-
.option('--
|
|
147
|
-
.option('--
|
|
148
|
-
.option('--
|
|
149
|
-
.option('--
|
|
150
|
-
.option('--dcg <score>', 'Product quality score')
|
|
151
|
-
.option('--thinking-process <text>', 'Thinking process')
|
|
152
|
-
.option('--expert-item-title <text>', 'Expert item title')
|
|
153
|
-
.option('--execution-start-time <iso>', 'Execution start time (ISO 8601)')
|
|
154
|
-
.option('--execution-end-time <iso>', 'Execution end time (ISO 8601)')
|
|
127
|
+
.option('--status <status>', `Record status: ${EVAL_RECORD_STATUSES.join(', ')}`)
|
|
128
|
+
.option('--comment <text>', 'Comment')
|
|
129
|
+
.option('--clear-comment', 'Set comment to null')
|
|
130
|
+
.option('--evidence <url>', 'Evidence URL')
|
|
131
|
+
.option('--clear-evidence', 'Set evidence to null')
|
|
155
132
|
.action(async (id, options) => {
|
|
156
133
|
const globalOpts = evalRecords.optsWithGlobals();
|
|
157
134
|
try {
|
|
158
|
-
const item = await client.updateEvalRecord(id,
|
|
159
|
-
evalTaskId: options.evalTaskId,
|
|
160
|
-
evalItemId: options.evalItemId,
|
|
161
|
-
query: options.query || null,
|
|
162
|
-
result: options.result || null,
|
|
163
|
-
isPassed: options.isPassed !== undefined ? options.isPassed === 'true' : undefined,
|
|
164
|
-
dcg: options.dcg !== undefined ? (0, utils_js_1.parseNumber)(options.dcg) ?? null : null,
|
|
165
|
-
thinkingProcess: options.thinkingProcess || null,
|
|
166
|
-
expertItemTitle: options.expertItemTitle || null,
|
|
167
|
-
executionStartTime: options.executionStartTime || null,
|
|
168
|
-
executionEndTime: options.executionEndTime || null,
|
|
169
|
-
});
|
|
135
|
+
const item = await client.updateEvalRecord(id, buildUpdatePayload(options));
|
|
170
136
|
(0, output_js_1.printItem)(item, globalOpts);
|
|
171
137
|
}
|
|
172
138
|
catch (err) {
|
|
173
139
|
(0, output_js_1.printError)(err, globalOpts);
|
|
174
140
|
process.exitCode = utils_js_1.EXIT_CODES.GENERAL_ERROR;
|
|
175
|
-
return;
|
|
176
141
|
}
|
|
177
142
|
});
|
|
178
143
|
evalRecords
|
|
179
|
-
.command('
|
|
180
|
-
.description('
|
|
181
|
-
.
|
|
182
|
-
.
|
|
144
|
+
.command('batch')
|
|
145
|
+
.description('Batch update evaluation records')
|
|
146
|
+
.option('--records-json <json>', 'JSON array or {"records":[...]} payload')
|
|
147
|
+
.option('--records-file <path>', 'Read JSON array or {"records":[...]} payload from file')
|
|
148
|
+
.action(async (options) => {
|
|
183
149
|
const globalOpts = evalRecords.optsWithGlobals();
|
|
184
150
|
try {
|
|
185
|
-
const result = await client.
|
|
151
|
+
const result = await client.batchUpdateEvalRecords(parseBatchPayload(options));
|
|
186
152
|
(0, output_js_1.printItem)(result, globalOpts);
|
|
187
153
|
}
|
|
188
154
|
catch (err) {
|
|
189
155
|
(0, output_js_1.printError)(err, globalOpts);
|
|
190
156
|
process.exitCode = utils_js_1.EXIT_CODES.GENERAL_ERROR;
|
|
191
|
-
return;
|
|
192
157
|
}
|
|
193
158
|
});
|
|
194
159
|
return evalRecords;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eval-records.js","sourceRoot":"","sources":["../../src/commands/eval-records.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"eval-records.js","sourceRoot":"","sources":["../../src/commands/eval-records.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eval-tasks.d.ts","sourceRoot":"","sources":["../../src/commands/eval-tasks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"eval-tasks.d.ts","sourceRoot":"","sources":["../../src/commands/eval-tasks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA+BpC,wBAAgB,oBAAoB,IAAI,OAAO,CAkI9C"}
|
|
@@ -38,6 +38,30 @@ const commander_1 = require("commander");
|
|
|
38
38
|
const client = __importStar(require("../client.js"));
|
|
39
39
|
const output_js_1 = require("../output.js");
|
|
40
40
|
const utils_js_1 = require("../utils.js");
|
|
41
|
+
const EVAL_TASK_STATUSES = ['pending', 'in_progress', 'failed', 'changes_requested', 'passed'];
|
|
42
|
+
function parseEvalTaskStatus(value) {
|
|
43
|
+
if (value === undefined)
|
|
44
|
+
return undefined;
|
|
45
|
+
if (EVAL_TASK_STATUSES.includes(value))
|
|
46
|
+
return value;
|
|
47
|
+
throw new Error(`Invalid status "${value}". Allowed: ${EVAL_TASK_STATUSES.join(', ')}`);
|
|
48
|
+
}
|
|
49
|
+
function toEvalTaskRows(items) {
|
|
50
|
+
return items.map((task) => ({
|
|
51
|
+
id: task.id,
|
|
52
|
+
expertId: task.expertId,
|
|
53
|
+
versionId: task.versionId,
|
|
54
|
+
versionNo: task.versionNo,
|
|
55
|
+
name: task.name,
|
|
56
|
+
status: task.status,
|
|
57
|
+
records: `${task.resultSummary.passed}/${task.resultSummary.total}`,
|
|
58
|
+
failed: task.resultSummary.failed,
|
|
59
|
+
warning: task.resultSummary.warning,
|
|
60
|
+
cases: `${task.caseSummary.passed}/${task.caseSummary.total}`,
|
|
61
|
+
startedAt: task.startedAt || '',
|
|
62
|
+
completedAt: task.completedAt || '',
|
|
63
|
+
}));
|
|
64
|
+
}
|
|
41
65
|
function makeEvalTasksCommand() {
|
|
42
66
|
const evalTasks = new commander_1.Command('eval-tasks').description('Manage evaluation tasks');
|
|
43
67
|
evalTasks
|
|
@@ -47,7 +71,7 @@ function makeEvalTasksCommand() {
|
|
|
47
71
|
.option('--page-size <n>', 'Items per page', '50')
|
|
48
72
|
.option('--expert-id <id>', 'Filter by expert business ID')
|
|
49
73
|
.option('--version-id <id>', 'Filter by version ID')
|
|
50
|
-
.option('--
|
|
74
|
+
.option('--status <status>', `Filter by status: ${EVAL_TASK_STATUSES.join(', ')}`)
|
|
51
75
|
.action(async (options) => {
|
|
52
76
|
const globalOpts = evalTasks.optsWithGlobals();
|
|
53
77
|
try {
|
|
@@ -56,6 +80,7 @@ function makeEvalTasksCommand() {
|
|
|
56
80
|
pageSize: (0, utils_js_1.parseNumber)(options.pageSize),
|
|
57
81
|
expertId: options.expertId,
|
|
58
82
|
versionId: options.versionId,
|
|
83
|
+
status: parseEvalTaskStatus(options.status),
|
|
59
84
|
};
|
|
60
85
|
const result = await client.listEvalTasks(params);
|
|
61
86
|
if (globalOpts.quiet)
|
|
@@ -63,21 +88,14 @@ function makeEvalTasksCommand() {
|
|
|
63
88
|
const fmt = globalOpts.format === 'json' || !process.stdout.isTTY ? 'json' : 'csv';
|
|
64
89
|
if (fmt === 'json') {
|
|
65
90
|
(0, output_js_1.printJson)(result, globalOpts);
|
|
91
|
+
return;
|
|
66
92
|
}
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
return;
|
|
71
|
-
}
|
|
72
|
-
const rows = options.showDiff
|
|
73
|
-
? result.items
|
|
74
|
-
: result.items.map((t) => {
|
|
75
|
-
const { diff, ...rest } = t;
|
|
76
|
-
return rest;
|
|
77
|
-
});
|
|
78
|
-
(0, output_js_1.printCsv)(rows, globalOpts);
|
|
79
|
-
console.log(`\nPage ${result.page}/${Math.ceil(result.total / result.pageSize)} | Total: ${result.total}`);
|
|
93
|
+
if (result.items.length === 0) {
|
|
94
|
+
console.log('No evaluation tasks found.');
|
|
95
|
+
return;
|
|
80
96
|
}
|
|
97
|
+
(0, output_js_1.printCsv)(toEvalTaskRows(result.items), globalOpts);
|
|
98
|
+
console.log(`\nPage ${result.page}/${Math.ceil(result.total / result.pageSize)} | Total: ${result.total}`);
|
|
81
99
|
}
|
|
82
100
|
catch (err) {
|
|
83
101
|
(0, output_js_1.printError)(err, globalOpts);
|
|
@@ -86,7 +104,7 @@ function makeEvalTasksCommand() {
|
|
|
86
104
|
});
|
|
87
105
|
evalTasks
|
|
88
106
|
.command('get')
|
|
89
|
-
.description('Get evaluation task
|
|
107
|
+
.description('Get evaluation task detail, including version, records and cases')
|
|
90
108
|
.argument('<id>', 'Evaluation task ID')
|
|
91
109
|
.action(async (id) => {
|
|
92
110
|
const globalOpts = evalTasks.optsWithGlobals();
|
|
@@ -101,38 +119,16 @@ function makeEvalTasksCommand() {
|
|
|
101
119
|
});
|
|
102
120
|
evalTasks
|
|
103
121
|
.command('create')
|
|
104
|
-
.description('Create
|
|
105
|
-
.requiredOption('--expert-id <id>', 'Expert business ID')
|
|
122
|
+
.description('Create an evaluation task for a version')
|
|
106
123
|
.requiredOption('--version-id <id>', 'Version ID')
|
|
107
|
-
.option('--
|
|
108
|
-
.option('--package-bucket-id <id>', 'Package bucket ID')
|
|
109
|
-
.option('--package-file-path <path>', 'Package file path')
|
|
110
|
-
.option('--is-passed', 'Whether task passed evaluation')
|
|
111
|
-
.option('--bac <n>', 'BAC score')
|
|
112
|
-
.option('--dcg <n>', 'DCG score')
|
|
124
|
+
.option('--name <name>', 'Task name; defaults to vN evaluation on server')
|
|
113
125
|
.action(async (options) => {
|
|
114
126
|
const globalOpts = evalTasks.optsWithGlobals();
|
|
115
127
|
try {
|
|
116
|
-
const
|
|
117
|
-
expertId: options.expertId,
|
|
128
|
+
const item = await client.createEvalTask({
|
|
118
129
|
versionId: options.versionId,
|
|
119
|
-
|
|
120
|
-
};
|
|
121
|
-
if (options.diff)
|
|
122
|
-
payload.diff = options.diff;
|
|
123
|
-
if (options.packageBucketId && options.packageFilePath) {
|
|
124
|
-
payload.package = {
|
|
125
|
-
bucketId: options.packageBucketId,
|
|
126
|
-
filePath: options.packageFilePath,
|
|
127
|
-
};
|
|
128
|
-
}
|
|
129
|
-
const bac = options.bac ? parseFloat(options.bac) : undefined;
|
|
130
|
-
const dcg = options.dcg ? parseFloat(options.dcg) : undefined;
|
|
131
|
-
if (bac !== undefined && !Number.isNaN(bac))
|
|
132
|
-
payload.bac = bac;
|
|
133
|
-
if (dcg !== undefined && !Number.isNaN(dcg))
|
|
134
|
-
payload.dcg = dcg;
|
|
135
|
-
const item = await client.createEvalTask(payload);
|
|
130
|
+
name: options.name ?? undefined,
|
|
131
|
+
});
|
|
136
132
|
(0, output_js_1.printItem)(item, globalOpts);
|
|
137
133
|
}
|
|
138
134
|
catch (err) {
|
|
@@ -141,41 +137,40 @@ function makeEvalTasksCommand() {
|
|
|
141
137
|
}
|
|
142
138
|
});
|
|
143
139
|
evalTasks
|
|
144
|
-
.command('
|
|
145
|
-
.description('
|
|
146
|
-
.
|
|
147
|
-
.
|
|
148
|
-
.option('--diff <text>', 'Diff content')
|
|
149
|
-
.option('--package-bucket-id <id>', 'Package bucket ID')
|
|
150
|
-
.option('--package-file-path <path>', 'Package file path')
|
|
151
|
-
.option('--is-passed <bool>', 'Whether task passed (true/false)')
|
|
152
|
-
.option('--bac <n>', 'BAC score')
|
|
153
|
-
.option('--dcg <n>', 'DCG score')
|
|
154
|
-
.action(async (options) => {
|
|
140
|
+
.command('delete')
|
|
141
|
+
.description('Delete an evaluation task')
|
|
142
|
+
.argument('<id>', 'Evaluation task ID')
|
|
143
|
+
.action(async (id) => {
|
|
155
144
|
const globalOpts = evalTasks.optsWithGlobals();
|
|
156
145
|
try {
|
|
157
|
-
const
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
146
|
+
const result = await client.deleteEvalTask(id);
|
|
147
|
+
(0, output_js_1.printItem)(result, globalOpts);
|
|
148
|
+
}
|
|
149
|
+
catch (err) {
|
|
150
|
+
(0, output_js_1.printError)(err, globalOpts);
|
|
151
|
+
process.exitCode = utils_js_1.EXIT_CODES.GENERAL_ERROR;
|
|
152
|
+
}
|
|
153
|
+
});
|
|
154
|
+
evalTasks
|
|
155
|
+
.command('records')
|
|
156
|
+
.description('List all evaluation records for an evaluation task, including original standards')
|
|
157
|
+
.argument('<id>', 'Evaluation task ID')
|
|
158
|
+
.action(async (id) => {
|
|
159
|
+
const globalOpts = evalTasks.optsWithGlobals();
|
|
160
|
+
try {
|
|
161
|
+
const records = await client.listEvalTaskRecords(id);
|
|
162
|
+
if (globalOpts.quiet)
|
|
163
|
+
return;
|
|
164
|
+
const fmt = globalOpts.format === 'json' || !process.stdout.isTTY ? 'json' : 'csv';
|
|
165
|
+
if (fmt === 'json') {
|
|
166
|
+
(0, output_js_1.printJson)(records, globalOpts);
|
|
167
|
+
return;
|
|
168
168
|
}
|
|
169
|
-
if (
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
payload.bac = bac;
|
|
175
|
-
if (dcg !== undefined && !Number.isNaN(dcg))
|
|
176
|
-
payload.dcg = dcg;
|
|
177
|
-
const item = await client.updateEvalTask(payload);
|
|
178
|
-
(0, output_js_1.printItem)(item, globalOpts);
|
|
169
|
+
if (records.length === 0) {
|
|
170
|
+
console.log('No evaluation records found.');
|
|
171
|
+
return;
|
|
172
|
+
}
|
|
173
|
+
(0, output_js_1.printCsv)(records, globalOpts);
|
|
179
174
|
}
|
|
180
175
|
catch (err) {
|
|
181
176
|
(0, output_js_1.printError)(err, globalOpts);
|
|
@@ -183,14 +178,14 @@ function makeEvalTasksCommand() {
|
|
|
183
178
|
}
|
|
184
179
|
});
|
|
185
180
|
evalTasks
|
|
186
|
-
.command('
|
|
187
|
-
.description('
|
|
181
|
+
.command('agent-card')
|
|
182
|
+
.description('Fetch the raw agent card evaluated by this task')
|
|
188
183
|
.argument('<id>', 'Evaluation task ID')
|
|
189
184
|
.action(async (id) => {
|
|
190
185
|
const globalOpts = evalTasks.optsWithGlobals();
|
|
191
186
|
try {
|
|
192
|
-
await client.
|
|
193
|
-
(0, output_js_1.printItem)(
|
|
187
|
+
const card = await client.getEvalTaskAgentCard(id);
|
|
188
|
+
(0, output_js_1.printItem)(card, globalOpts);
|
|
194
189
|
}
|
|
195
190
|
catch (err) {
|
|
196
191
|
(0, output_js_1.printError)(err, globalOpts);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eval-tasks.js","sourceRoot":"","sources":["../../src/commands/eval-tasks.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"eval-tasks.js","sourceRoot":"","sources":["../../src/commands/eval-tasks.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"experts.d.ts","sourceRoot":"","sources":["../../src/commands/experts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"experts.d.ts","sourceRoot":"","sources":["../../src/commands/experts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA6CpC,wBAAgB,kBAAkB,IAAI,OAAO,CA+J5C"}
|