@wayai/cli 0.2.37 → 0.2.39
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/commands/eval-results.d.ts +10 -0
- package/dist/commands/eval-results.js +158 -0
- package/dist/commands/eval-results.js.map +1 -0
- package/dist/commands/evals.d.ts +9 -0
- package/dist/commands/evals.js +40 -0
- package/dist/commands/evals.js.map +1 -0
- package/dist/commands/push.d.ts +5 -4
- package/dist/commands/push.js +85 -48
- package/dist/commands/push.js.map +1 -1
- package/dist/commands/run-eval.d.ts +11 -0
- package/dist/commands/run-eval.js +85 -0
- package/dist/commands/run-eval.js.map +1 -0
- package/dist/index.js +25 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/api-client.d.ts +127 -0
- package/dist/lib/api-client.js +35 -0
- package/dist/lib/api-client.js.map +1 -1
- package/dist/lib/eval-format.d.ts +27 -0
- package/dist/lib/eval-format.js +32 -0
- package/dist/lib/eval-format.js.map +1 -0
- package/dist/lib/parser.d.ts +5 -3
- package/dist/lib/parser.js +42 -8
- package/dist/lib/parser.js.map +1 -1
- package/dist/lib/utils.d.ts +7 -2
- package/dist/lib/utils.js +23 -12
- package/dist/lib/utils.js.map +1 -1
- package/dist/lib/workspace.d.ts +4 -4
- package/dist/lib/workspace.js +18 -12
- package/dist/lib/workspace.js.map +1 -1
- package/dist/lib/yaml-writer.d.ts +6 -4
- package/dist/lib/yaml-writer.js +61 -39
- package/dist/lib/yaml-writer.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* wayai eval-results — view results from a completed eval session
|
|
3
|
+
*
|
|
4
|
+
* Usage:
|
|
5
|
+
* wayai eval-results --session <id> # show aggregate results
|
|
6
|
+
* wayai eval-results --session <id> --runs # show individual run details
|
|
7
|
+
* wayai eval-results --session <id> --json # raw JSON output
|
|
8
|
+
* wayai eval-results --eval "Test Greeting" # latest session results for an eval
|
|
9
|
+
*/
|
|
10
|
+
export declare function evalResultsCommand(args: string[]): Promise<void>;
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* wayai eval-results — view results from a completed eval session
|
|
3
|
+
*
|
|
4
|
+
* Usage:
|
|
5
|
+
* wayai eval-results --session <id> # show aggregate results
|
|
6
|
+
* wayai eval-results --session <id> --runs # show individual run details
|
|
7
|
+
* wayai eval-results --session <id> --json # raw JSON output
|
|
8
|
+
* wayai eval-results --eval "Test Greeting" # latest session results for an eval
|
|
9
|
+
*/
|
|
10
|
+
import { requireAuth } from '../lib/auth.js';
|
|
11
|
+
import { requireRepoConfig } from '../lib/repo-config.js';
|
|
12
|
+
import { ApiClient } from '../lib/api-client.js';
|
|
13
|
+
import { printResultsTable } from '../lib/eval-format.js';
|
|
14
|
+
export async function evalResultsCommand(args) {
|
|
15
|
+
const { config, accessToken } = await requireAuth();
|
|
16
|
+
const repoConfig = requireRepoConfig();
|
|
17
|
+
// Parse args
|
|
18
|
+
let sessionId;
|
|
19
|
+
let evalName;
|
|
20
|
+
let showRuns = false;
|
|
21
|
+
let jsonOutput = false;
|
|
22
|
+
for (let i = 0; i < args.length; i++) {
|
|
23
|
+
const arg = args[i];
|
|
24
|
+
if (arg === '--session') {
|
|
25
|
+
if (i + 1 >= args.length) {
|
|
26
|
+
console.error('--session requires a value');
|
|
27
|
+
process.exit(1);
|
|
28
|
+
}
|
|
29
|
+
sessionId = args[++i];
|
|
30
|
+
}
|
|
31
|
+
else if (arg === '--eval') {
|
|
32
|
+
if (i + 1 >= args.length) {
|
|
33
|
+
console.error('--eval requires a value');
|
|
34
|
+
process.exit(1);
|
|
35
|
+
}
|
|
36
|
+
evalName = args[++i];
|
|
37
|
+
}
|
|
38
|
+
else if (arg === '--runs') {
|
|
39
|
+
showRuns = true;
|
|
40
|
+
}
|
|
41
|
+
else if (arg === '--json') {
|
|
42
|
+
jsonOutput = true;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
if (!sessionId && !evalName) {
|
|
46
|
+
console.error('Usage: wayai eval-results --session <id> [--runs] [--json]');
|
|
47
|
+
console.error(' wayai eval-results --eval <name> [--runs] [--json]');
|
|
48
|
+
process.exit(1);
|
|
49
|
+
}
|
|
50
|
+
const client = new ApiClient({ apiUrl: config.api_url, accessToken });
|
|
51
|
+
// If --eval, find the latest completed session containing that eval
|
|
52
|
+
if (evalName && !sessionId) {
|
|
53
|
+
sessionId = await findLatestSessionForEval(client, repoConfig.hub_id, evalName);
|
|
54
|
+
}
|
|
55
|
+
if (!sessionId) {
|
|
56
|
+
// findLatestSessionForEval already printed the error
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
if (showRuns) {
|
|
60
|
+
await showRunDetails(client, sessionId, evalName, jsonOutput);
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
await showAggregateResults(client, sessionId, jsonOutput);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
async function findLatestSessionForEval(client, hubId, evalName) {
|
|
67
|
+
// Fetch evals and completed sessions in parallel
|
|
68
|
+
const [evalsResult, sessionsResult] = await Promise.all([
|
|
69
|
+
client.getEvals(hubId),
|
|
70
|
+
client.getEvalSessions(hubId, { status: 'completed' }),
|
|
71
|
+
]);
|
|
72
|
+
const matchingEval = evalsResult.data.evals.find((e) => e.eval_name.toLowerCase() === evalName.toLowerCase());
|
|
73
|
+
if (!matchingEval) {
|
|
74
|
+
console.error(`Eval "${evalName}" not found in this hub.`);
|
|
75
|
+
process.exit(1);
|
|
76
|
+
}
|
|
77
|
+
const completedSessions = sessionsResult.data.sessions;
|
|
78
|
+
if (completedSessions.length === 0) {
|
|
79
|
+
console.error('No completed sessions found for this hub.');
|
|
80
|
+
process.exit(1);
|
|
81
|
+
}
|
|
82
|
+
// Sessions are ordered by created_at desc, so first match is the latest
|
|
83
|
+
for (const session of completedSessions) {
|
|
84
|
+
const details = await client.getEvalSessionDetails(session.eval_session_id);
|
|
85
|
+
const hasEval = details.data.results.some((r) => r.eval_fk === matchingEval.eval_id);
|
|
86
|
+
if (hasEval) {
|
|
87
|
+
return session.eval_session_id;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
console.error(`No completed session found containing eval "${evalName}".`);
|
|
91
|
+
process.exit(1);
|
|
92
|
+
}
|
|
93
|
+
async function showAggregateResults(client, sessionId, jsonOutput) {
|
|
94
|
+
const details = await client.getEvalSessionDetails(sessionId);
|
|
95
|
+
if (jsonOutput) {
|
|
96
|
+
console.log(JSON.stringify(details.data, null, 2));
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
const session = details.data.session;
|
|
100
|
+
const results = details.data.results;
|
|
101
|
+
console.log(`Session: ${session.session_name} (${session.session_status})`);
|
|
102
|
+
if (session.started_at) {
|
|
103
|
+
console.log(`Started: ${new Date(session.started_at).toLocaleString()}`);
|
|
104
|
+
}
|
|
105
|
+
if (session.completed_at && session.started_at) {
|
|
106
|
+
const durationMs = new Date(session.completed_at).getTime() - new Date(session.started_at).getTime();
|
|
107
|
+
console.log(`Duration: ${(durationMs / 1000).toFixed(0)}s`);
|
|
108
|
+
}
|
|
109
|
+
console.log('');
|
|
110
|
+
printResultsTable(results, 'detailed');
|
|
111
|
+
}
|
|
112
|
+
async function showRunDetails(client, sessionId, evalNameFilter, jsonOutput) {
|
|
113
|
+
// Fetch session details (for header + eval name resolution) once
|
|
114
|
+
const details = await client.getEvalSessionDetails(sessionId);
|
|
115
|
+
// If filtering by eval name, resolve eval_id from the already-fetched details
|
|
116
|
+
let evalId;
|
|
117
|
+
if (evalNameFilter) {
|
|
118
|
+
const matchingResult = details.data.results.find((r) => r.eval?.eval_name?.toLowerCase() === evalNameFilter.toLowerCase());
|
|
119
|
+
if (matchingResult) {
|
|
120
|
+
evalId = matchingResult.eval_fk;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
const runsResult = await client.getEvalSessionRuns(sessionId, { evalId });
|
|
124
|
+
if (jsonOutput) {
|
|
125
|
+
console.log(JSON.stringify(runsResult.data, null, 2));
|
|
126
|
+
return;
|
|
127
|
+
}
|
|
128
|
+
console.log(`Session: ${details.data.session.session_name} (${details.data.session.session_status})\n`);
|
|
129
|
+
if (runsResult.data.runs.length === 0) {
|
|
130
|
+
console.log('No runs found.');
|
|
131
|
+
return;
|
|
132
|
+
}
|
|
133
|
+
for (const run of runsResult.data.runs) {
|
|
134
|
+
const evalName = run.eval?.eval_name || run.eval_fk.slice(0, 8);
|
|
135
|
+
const status = run.response_match === true ? 'PASS' : run.response_match === false ? 'FAIL' : 'PENDING';
|
|
136
|
+
const time = run.execution_time_ms != null ? `(${(run.execution_time_ms / 1000).toFixed(1)}s)` : '';
|
|
137
|
+
console.log(`${evalName} — Run #${run.run_number} [${status}] ${time}`);
|
|
138
|
+
if (run.eval_response?.content) {
|
|
139
|
+
console.log(` Response: "${truncate(run.eval_response.content, 80)}"`);
|
|
140
|
+
}
|
|
141
|
+
if (run.response_comment) {
|
|
142
|
+
console.log(` Comment: ${run.response_comment}`);
|
|
143
|
+
}
|
|
144
|
+
if (run.scores && Object.keys(run.scores).length > 0) {
|
|
145
|
+
const scoresStr = Object.entries(run.scores)
|
|
146
|
+
.map(([key, val]) => `${key}: ${Math.round(val * 100)}%`)
|
|
147
|
+
.join(', ');
|
|
148
|
+
console.log(` Scores: ${scoresStr}`);
|
|
149
|
+
}
|
|
150
|
+
console.log('');
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
function truncate(str, maxLen) {
|
|
154
|
+
if (str.length <= maxLen)
|
|
155
|
+
return str;
|
|
156
|
+
return str.slice(0, maxLen - 3) + '...';
|
|
157
|
+
}
|
|
158
|
+
//# sourceMappingURL=eval-results.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eval-results.js","sourceRoot":"","sources":["../../src/commands/eval-results.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* wayai evals — list evaluation scenarios for the current hub
|
|
3
|
+
*
|
|
4
|
+
* Usage:
|
|
5
|
+
* wayai evals # list all evals
|
|
6
|
+
* wayai evals --enabled # show only enabled evals
|
|
7
|
+
* wayai evals --disabled # show only disabled evals
|
|
8
|
+
*/
|
|
9
|
+
export declare function evalsCommand(args: string[]): Promise<void>;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* wayai evals — list evaluation scenarios for the current hub
|
|
3
|
+
*
|
|
4
|
+
* Usage:
|
|
5
|
+
* wayai evals # list all evals
|
|
6
|
+
* wayai evals --enabled # show only enabled evals
|
|
7
|
+
* wayai evals --disabled # show only disabled evals
|
|
8
|
+
*/
|
|
9
|
+
import { requireAuth } from '../lib/auth.js';
|
|
10
|
+
import { requireRepoConfig } from '../lib/repo-config.js';
|
|
11
|
+
import { ApiClient } from '../lib/api-client.js';
|
|
12
|
+
export async function evalsCommand(args) {
|
|
13
|
+
const { config, accessToken } = await requireAuth();
|
|
14
|
+
const repoConfig = requireRepoConfig();
|
|
15
|
+
// Parse args
|
|
16
|
+
let enabledFilter;
|
|
17
|
+
for (let i = 0; i < args.length; i++) {
|
|
18
|
+
const arg = args[i];
|
|
19
|
+
if (arg === '--enabled') {
|
|
20
|
+
enabledFilter = 'true';
|
|
21
|
+
}
|
|
22
|
+
else if (arg === '--disabled') {
|
|
23
|
+
enabledFilter = 'false';
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
const client = new ApiClient({ apiUrl: config.api_url, accessToken });
|
|
27
|
+
const result = await client.getEvals(repoConfig.hub_id, { enabled: enabledFilter });
|
|
28
|
+
if (result.data.evals.length === 0) {
|
|
29
|
+
console.log('No evals found.');
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
console.log(`Evals (${result.data.evals.length}):\n`);
|
|
33
|
+
for (const eval_ of result.data.evals) {
|
|
34
|
+
const status = eval_.enabled ? 'enabled' : 'disabled';
|
|
35
|
+
const runs = `${eval_.number_of_runs} run${eval_.number_of_runs === 1 ? '' : 's'}`;
|
|
36
|
+
const agentName = eval_.agent?.agent_name || 'unknown';
|
|
37
|
+
console.log(` ${eval_.eval_name.padEnd(20)} ${eval_.eval_id.slice(0, 8)} ${status.padEnd(9)} ${runs.padEnd(7)} Agent: ${agentName}`);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=evals.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"evals.js","sourceRoot":"","sources":["../../src/commands/evals.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,IAAc;IAC/C,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,WAAW,EAAE,CAAC;IACpD,MAAM,UAAU,GAAG,iBAAiB,EAAE,CAAC;IAEvC,aAAa;IACb,IAAI,aAAiC,CAAC;IAEtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,IAAI,GAAG,KAAK,WAAW,EAAE,CAAC;YACxB,aAAa,GAAG,MAAM,CAAC;QACzB,CAAC;aAAM,IAAI,GAAG,KAAK,YAAY,EAAE,CAAC;YAChC,aAAa,GAAG,OAAO,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;IACtE,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,CAAC;IAEpF,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QAC/B,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,UAAU,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,MAAM,CAAC,CAAC;IAEtD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QACtC,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC;QACtD,MAAM,IAAI,GAAG,GAAG,KAAK,CAAC,cAAc,OAAO,KAAK,CAAC,cAAc,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;QACnF,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,EAAE,UAAU,IAAI,SAAS,CAAC;QACvD,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,SAAS,EAAE,CAAC,CAAC;IAC5I,CAAC;AACH,CAAC"}
|
package/dist/commands/push.d.ts
CHANGED
|
@@ -5,10 +5,11 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { ApiClient } from '../lib/api-client.js';
|
|
7
7
|
/**
|
|
8
|
-
* Auto-rename agent .md files when agents have been renamed (matched by ID).
|
|
9
|
-
* Compares local
|
|
10
|
-
* then renames old-slug.
|
|
11
|
-
*
|
|
8
|
+
* Auto-rename agent .yaml and .md files when agents have been renamed (matched by ID).
|
|
9
|
+
* Compares local agent names against remote agent names via pull,
|
|
10
|
+
* then renames old-slug.yaml → new-slug.yaml and old-slug.md → new-slug.md.
|
|
11
|
+
* Handles slug swaps via temp files.
|
|
12
|
+
* Also updates explicit `instructions` paths in the hub YAML to match.
|
|
12
13
|
*/
|
|
13
14
|
export declare function autoRenameAgentFiles(client: ApiClient, hubId: string, hubFolder: string, organizationId?: string): Promise<void>;
|
|
14
15
|
export declare function pushCommand(args: string[]): Promise<void>;
|
package/dist/commands/push.js
CHANGED
|
@@ -12,7 +12,7 @@ import { parseHubFolder } from '../lib/parser.js';
|
|
|
12
12
|
import { writeHubFolder } from '../lib/yaml-writer.js';
|
|
13
13
|
import { downloadBinaryResourceFiles } from './pull.js';
|
|
14
14
|
import { printDiff } from '../lib/diff-display.js';
|
|
15
|
-
import { confirm, slugify } from '../lib/utils.js';
|
|
15
|
+
import { confirm, slugify, resolveHubYamlPath } from '../lib/utils.js';
|
|
16
16
|
import { autoRenameHubFolder, scanWorkspaceHubs, detectWorkspace, findGitRoot } from '../lib/workspace.js';
|
|
17
17
|
import { requireRepoConfig } from '../lib/repo-config.js';
|
|
18
18
|
function parseArgs(args) {
|
|
@@ -103,19 +103,41 @@ function printSyncResult(result) {
|
|
|
103
103
|
}
|
|
104
104
|
}
|
|
105
105
|
/**
|
|
106
|
-
* Auto-rename agent .md files when agents have been renamed (matched by ID).
|
|
107
|
-
* Compares local
|
|
108
|
-
* then renames old-slug.
|
|
109
|
-
*
|
|
106
|
+
* Auto-rename agent .yaml and .md files when agents have been renamed (matched by ID).
|
|
107
|
+
* Compares local agent names against remote agent names via pull,
|
|
108
|
+
* then renames old-slug.yaml → new-slug.yaml and old-slug.md → new-slug.md.
|
|
109
|
+
* Handles slug swaps via temp files.
|
|
110
|
+
* Also updates explicit `instructions` paths in the hub YAML to match.
|
|
110
111
|
*/
|
|
111
112
|
export async function autoRenameAgentFiles(client, hubId, hubFolder, organizationId) {
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
113
|
+
// Collect agents with IDs from per-agent YAML files or main YAML
|
|
114
|
+
const agentsDir = path.join(hubFolder, 'agents');
|
|
115
|
+
let agentsWithIds = [];
|
|
116
|
+
// Try per-agent YAML files first
|
|
117
|
+
if (fs.existsSync(agentsDir)) {
|
|
118
|
+
const yamlFiles = fs.readdirSync(agentsDir).filter((f) => f.endsWith('.yaml'));
|
|
119
|
+
for (const file of yamlFiles) {
|
|
120
|
+
try {
|
|
121
|
+
const content = fs.readFileSync(path.join(agentsDir, file), 'utf-8');
|
|
122
|
+
const agent = yaml.load(content);
|
|
123
|
+
if (agent?.id && agent.name) {
|
|
124
|
+
agentsWithIds.push({ id: agent.id, name: agent.name });
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
catch {
|
|
128
|
+
console.warn(` Warning: could not parse agents/${file}, skipping`);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
// Fall back to inline agents from main YAML
|
|
133
|
+
if (agentsWithIds.length === 0) {
|
|
134
|
+
const yamlPath = resolveHubYamlPath(hubFolder);
|
|
135
|
+
if (!yamlPath)
|
|
136
|
+
return;
|
|
137
|
+
const yamlContent = fs.readFileSync(yamlPath, 'utf-8');
|
|
138
|
+
const config = yaml.load(yamlContent);
|
|
139
|
+
agentsWithIds = (config.agents || []).filter((a) => !!a.id && !!a.name);
|
|
140
|
+
}
|
|
119
141
|
if (agentsWithIds.length === 0)
|
|
120
142
|
return;
|
|
121
143
|
// Fetch remote state to detect renames (extra round-trip, only when agents have IDs)
|
|
@@ -149,22 +171,31 @@ export async function autoRenameAgentFiles(client, hubId, hubFolder, organizatio
|
|
|
149
171
|
}
|
|
150
172
|
if (renames.length === 0)
|
|
151
173
|
return;
|
|
152
|
-
const agentsDir = path.join(hubFolder, 'agents');
|
|
153
174
|
if (!fs.existsSync(agentsDir))
|
|
154
175
|
return;
|
|
155
176
|
// Clean up orphaned temp files from a previous interrupted rename
|
|
156
177
|
for (const file of fs.readdirSync(agentsDir)) {
|
|
157
|
-
if (file.startsWith('__rename_temp_') && file.endsWith('.md')) {
|
|
178
|
+
if (file.startsWith('__rename_temp_') && (file.endsWith('.md') || file.endsWith('.yaml'))) {
|
|
158
179
|
console.warn(` Warning: removing orphaned temp file agents/${file}`);
|
|
159
180
|
fs.unlinkSync(path.join(agentsDir, file));
|
|
160
181
|
}
|
|
161
182
|
}
|
|
183
|
+
// Helper to rename a file if it exists (for both .yaml and .md extensions)
|
|
184
|
+
const renameFileIfExists = (dir, oldName, newName) => {
|
|
185
|
+
const oldPath = path.join(dir, oldName);
|
|
186
|
+
const newPath = path.join(dir, newName);
|
|
187
|
+
if (!fs.existsSync(oldPath))
|
|
188
|
+
return false;
|
|
189
|
+
fs.renameSync(oldPath, newPath);
|
|
190
|
+
return true;
|
|
191
|
+
};
|
|
162
192
|
// Detect slug swaps: if newSlug matches another rename's oldSlug
|
|
163
193
|
const oldSlugs = new Set(renames.map((r) => r.oldSlug));
|
|
164
194
|
const newSlugs = new Set(renames.map((r) => r.newSlug));
|
|
165
195
|
const hasConflicts = renames.some((r) => oldSlugs.has(r.newSlug)) || newSlugs.size !== renames.length;
|
|
166
196
|
// Track which renames actually completed (file existed and was moved)
|
|
167
197
|
const completedRenames = [];
|
|
198
|
+
const extensions = ['.yaml', '.md'];
|
|
168
199
|
if (hasConflicts) {
|
|
169
200
|
// Rename through temp files to avoid collisions
|
|
170
201
|
const tempRenames = [];
|
|
@@ -172,57 +203,63 @@ export async function autoRenameAgentFiles(client, hubId, hubFolder, organizatio
|
|
|
172
203
|
const tempName = `__rename_temp_${oldSlug}_${Date.now()}`;
|
|
173
204
|
tempRenames.push({ oldSlug, tempName, newSlug });
|
|
174
205
|
}
|
|
175
|
-
// Step 1: old → temp
|
|
206
|
+
// Step 1: old → temp (both extensions)
|
|
176
207
|
for (const { oldSlug, tempName } of tempRenames) {
|
|
177
|
-
const
|
|
178
|
-
|
|
179
|
-
if (fs.existsSync(oldPath)) {
|
|
180
|
-
fs.renameSync(oldPath, tempPath);
|
|
208
|
+
for (const ext of extensions) {
|
|
209
|
+
renameFileIfExists(agentsDir, `${oldSlug}${ext}`, `${tempName}${ext}`);
|
|
181
210
|
}
|
|
182
211
|
}
|
|
183
|
-
// Step 2: temp → new
|
|
184
|
-
for (const { tempName, newSlug } of tempRenames) {
|
|
185
|
-
|
|
186
|
-
const
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
212
|
+
// Step 2: temp → new (both extensions)
|
|
213
|
+
for (const { oldSlug, tempName, newSlug } of tempRenames) {
|
|
214
|
+
let anyRenamed = false;
|
|
215
|
+
for (const ext of extensions) {
|
|
216
|
+
if (renameFileIfExists(agentsDir, `${tempName}${ext}`, `${newSlug}${ext}`)) {
|
|
217
|
+
anyRenamed = true;
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
if (anyRenamed) {
|
|
221
|
+
completedRenames.push({ oldSlug, newSlug });
|
|
222
|
+
console.log(` Renamed agents/${oldSlug}.* → agents/${newSlug}.*`);
|
|
192
223
|
}
|
|
193
224
|
}
|
|
194
225
|
}
|
|
195
226
|
else {
|
|
196
227
|
// No conflicts — direct renames
|
|
197
228
|
for (const { oldSlug, newSlug } of renames) {
|
|
198
|
-
|
|
199
|
-
const
|
|
200
|
-
if (!
|
|
229
|
+
// Check if any file with old slug exists
|
|
230
|
+
const hasOldFile = extensions.some((ext) => fs.existsSync(path.join(agentsDir, `${oldSlug}${ext}`)));
|
|
231
|
+
if (!hasOldFile)
|
|
201
232
|
continue;
|
|
202
|
-
|
|
203
|
-
|
|
233
|
+
// Check for target conflicts
|
|
234
|
+
const hasNewFile = extensions.some((ext) => fs.existsSync(path.join(agentsDir, `${newSlug}${ext}`)));
|
|
235
|
+
if (hasNewFile) {
|
|
236
|
+
console.warn(` Warning: skipping rename agents/${oldSlug}.* → agents/${newSlug}.* (target already exists)`);
|
|
204
237
|
continue;
|
|
205
238
|
}
|
|
206
|
-
|
|
239
|
+
for (const ext of extensions) {
|
|
240
|
+
renameFileIfExists(agentsDir, `${oldSlug}${ext}`, `${newSlug}${ext}`);
|
|
241
|
+
}
|
|
207
242
|
completedRenames.push({ oldSlug, newSlug });
|
|
208
|
-
console.log(` Renamed agents/${oldSlug}
|
|
243
|
+
console.log(` Renamed agents/${oldSlug}.* → agents/${newSlug}.*`);
|
|
209
244
|
}
|
|
210
245
|
}
|
|
211
246
|
if (completedRenames.length === 0)
|
|
212
247
|
return;
|
|
213
|
-
// Update explicit instructions paths in YAML for completed renames only.
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
248
|
+
// Update explicit instructions paths in hub YAML for completed renames only.
|
|
249
|
+
const mainYamlPath = resolveHubYamlPath(hubFolder);
|
|
250
|
+
if (mainYamlPath) {
|
|
251
|
+
const mainYamlContent = fs.readFileSync(mainYamlPath, 'utf-8');
|
|
252
|
+
const substitutionMap = new Map();
|
|
253
|
+
for (const { oldSlug, newSlug } of completedRenames) {
|
|
254
|
+
substitutionMap.set(`agents/${oldSlug}.md`, `agents/${newSlug}.md`);
|
|
255
|
+
}
|
|
256
|
+
const escapedKeys = Array.from(substitutionMap.keys())
|
|
257
|
+
.map((k) => k.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'));
|
|
258
|
+
const updatedYaml = mainYamlContent.replace(new RegExp(`(instructions:\\s+)(${escapedKeys.join('|')})`, 'g'), (_match, prefix, pathMatch) => `${prefix}${substitutionMap.get(pathMatch) ?? pathMatch}`);
|
|
259
|
+
if (updatedYaml !== mainYamlContent) {
|
|
260
|
+
fs.writeFileSync(mainYamlPath, updatedYaml, 'utf-8');
|
|
261
|
+
console.log(` Updated instructions paths in ${path.basename(mainYamlPath)}`);
|
|
262
|
+
}
|
|
226
263
|
}
|
|
227
264
|
}
|
|
228
265
|
async function pushSingleHub(client, hubId, hubFolder, autoConfirm, organizationId) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"push.js","sourceRoot":"","sources":["../../src/commands/push.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"push.js","sourceRoot":"","sources":["../../src/commands/push.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* wayai run-eval — run all enabled evals and show results
|
|
3
|
+
*
|
|
4
|
+
* Creates a session, runs it (all enabled evals), polls until completion, prints summary.
|
|
5
|
+
*
|
|
6
|
+
* Usage:
|
|
7
|
+
* wayai run-eval # run all enabled evals and wait for results
|
|
8
|
+
* wayai run-eval --no-wait # start session and exit (prints session ID)
|
|
9
|
+
* wayai run-eval --timeout 120 # wait max 2 minutes
|
|
10
|
+
*/
|
|
11
|
+
export declare function runEvalCommand(args: string[]): Promise<void>;
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* wayai run-eval — run all enabled evals and show results
|
|
3
|
+
*
|
|
4
|
+
* Creates a session, runs it (all enabled evals), polls until completion, prints summary.
|
|
5
|
+
*
|
|
6
|
+
* Usage:
|
|
7
|
+
* wayai run-eval # run all enabled evals and wait for results
|
|
8
|
+
* wayai run-eval --no-wait # start session and exit (prints session ID)
|
|
9
|
+
* wayai run-eval --timeout 120 # wait max 2 minutes
|
|
10
|
+
*/
|
|
11
|
+
import { requireAuth } from '../lib/auth.js';
|
|
12
|
+
import { requireRepoConfig } from '../lib/repo-config.js';
|
|
13
|
+
import { ApiClient } from '../lib/api-client.js';
|
|
14
|
+
import { printResultsTable } from '../lib/eval-format.js';
|
|
15
|
+
const TERMINAL_STATUSES = new Set(['completed', 'failed', 'cancelled', 'awaiting_review']);
|
|
16
|
+
const POLL_INTERVAL_MS = 3000;
|
|
17
|
+
const DEFAULT_TIMEOUT_S = 600;
|
|
18
|
+
export async function runEvalCommand(args) {
|
|
19
|
+
const { config, accessToken } = await requireAuth();
|
|
20
|
+
const repoConfig = requireRepoConfig();
|
|
21
|
+
// Parse args
|
|
22
|
+
let noWait = false;
|
|
23
|
+
let timeoutSeconds = DEFAULT_TIMEOUT_S;
|
|
24
|
+
for (let i = 0; i < args.length; i++) {
|
|
25
|
+
const arg = args[i];
|
|
26
|
+
if (arg === '--no-wait') {
|
|
27
|
+
noWait = true;
|
|
28
|
+
}
|
|
29
|
+
else if (arg === '--timeout') {
|
|
30
|
+
timeoutSeconds = parseInt(args[++i], 10);
|
|
31
|
+
if (isNaN(timeoutSeconds) || timeoutSeconds <= 0) {
|
|
32
|
+
console.error('--timeout must be a positive number (seconds)');
|
|
33
|
+
process.exit(1);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
const client = new ApiClient({ apiUrl: config.api_url, accessToken });
|
|
38
|
+
// 1. Verify hub has enabled evals
|
|
39
|
+
const evalsResult = await client.getEvals(repoConfig.hub_id, { enabled: 'true' });
|
|
40
|
+
const enabledCount = evalsResult.data.evals.length;
|
|
41
|
+
if (enabledCount === 0) {
|
|
42
|
+
console.error('No enabled evals found for this hub. Enable evals in the platform UI first.');
|
|
43
|
+
process.exit(1);
|
|
44
|
+
}
|
|
45
|
+
console.log(`Found ${enabledCount} enabled eval${enabledCount === 1 ? '' : 's'}`);
|
|
46
|
+
// 2. Create session
|
|
47
|
+
const now = new Date();
|
|
48
|
+
const sessionName = `CLI run ${now.toISOString().slice(0, 16).replace('T', ' ')}`;
|
|
49
|
+
const createResult = await client.createEvalSession(repoConfig.hub_id, sessionName);
|
|
50
|
+
const sessionId = createResult.data.session.eval_session_id;
|
|
51
|
+
console.log(`Created session: ${sessionName} (${sessionId})`);
|
|
52
|
+
// 3. Run session
|
|
53
|
+
await client.runEvalSession(sessionId);
|
|
54
|
+
console.log('Session started');
|
|
55
|
+
// 4. If --no-wait, print session ID and exit
|
|
56
|
+
if (noWait) {
|
|
57
|
+
console.log(`\nSession ID: ${sessionId}`);
|
|
58
|
+
console.log('Use `wayai eval-results --session ' + sessionId + '` to check results.');
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
// 5. Poll until terminal status
|
|
62
|
+
const deadline = Date.now() + timeoutSeconds * 1000;
|
|
63
|
+
while (Date.now() < deadline) {
|
|
64
|
+
await sleep(POLL_INTERVAL_MS);
|
|
65
|
+
const details = await client.getEvalSessionDetails(sessionId);
|
|
66
|
+
const session = details.data.session;
|
|
67
|
+
const results = details.data.results;
|
|
68
|
+
// Calculate progress
|
|
69
|
+
const totalRuns = results.reduce((sum, r) => sum + r.total_runs, 0);
|
|
70
|
+
const completedRuns = results.reduce((sum, r) => sum + r.successful_runs + r.failed_runs, 0);
|
|
71
|
+
if (TERMINAL_STATUSES.has(session.session_status)) {
|
|
72
|
+
console.log('');
|
|
73
|
+
console.log(`Session ${session.session_status}: ${session.session_name} (${session.eval_session_id})\n`);
|
|
74
|
+
printResultsTable(results, 'compact');
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
process.stdout.write(`\rRunning... ${completedRuns}/${totalRuns} completed`);
|
|
78
|
+
}
|
|
79
|
+
console.log(`\n\nTimeout after ${timeoutSeconds}s. Session is still running.`);
|
|
80
|
+
console.log(`Check results: wayai eval-results --session ${sessionId}`);
|
|
81
|
+
}
|
|
82
|
+
function sleep(ms) {
|
|
83
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=run-eval.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-eval.js","sourceRoot":"","sources":["../../src/commands/run-eval.ts"],"names":[],"mappings":"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"}
|