@wayai/cli 0.3.40 → 0.3.42
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/index.js +16920 -310
- package/dist/index.js.map +1 -1
- package/package.json +6 -4
- package/dist/commands/admin.d.ts +0 -1
- package/dist/commands/admin.js +0 -913
- package/dist/commands/admin.js.map +0 -1
- package/dist/commands/analytics.d.ts +0 -34
- package/dist/commands/analytics.js +0 -605
- package/dist/commands/analytics.js.map +0 -1
- package/dist/commands/conversations.d.ts +0 -14
- package/dist/commands/conversations.js +0 -292
- package/dist/commands/conversations.js.map +0 -1
- package/dist/commands/create-credential.d.ts +0 -20
- package/dist/commands/create-credential.js +0 -146
- package/dist/commands/create-credential.js.map +0 -1
- package/dist/commands/delete-history.d.ts +0 -15
- package/dist/commands/delete-history.js +0 -56
- package/dist/commands/delete-history.js.map +0 -1
- package/dist/commands/eval-capture.d.ts +0 -1
- package/dist/commands/eval-capture.js +0 -135
- package/dist/commands/eval-capture.js.map +0 -1
- package/dist/commands/eval-results.d.ts +0 -10
- package/dist/commands/eval-results.js +0 -168
- package/dist/commands/eval-results.js.map +0 -1
- package/dist/commands/eval.d.ts +0 -1
- package/dist/commands/eval.js +0 -49
- package/dist/commands/eval.js.map +0 -1
- package/dist/commands/evals.d.ts +0 -21
- package/dist/commands/evals.js +0 -120
- package/dist/commands/evals.js.map +0 -1
- package/dist/commands/init.d.ts +0 -16
- package/dist/commands/init.js +0 -191
- package/dist/commands/init.js.map +0 -1
- package/dist/commands/list.d.ts +0 -13
- package/dist/commands/list.js +0 -70
- package/dist/commands/list.js.map +0 -1
- package/dist/commands/login.d.ts +0 -8
- package/dist/commands/login.js +0 -145
- package/dist/commands/login.js.map +0 -1
- package/dist/commands/logout.d.ts +0 -1
- package/dist/commands/logout.js +0 -19
- package/dist/commands/logout.js.map +0 -1
- package/dist/commands/migrate.d.ts +0 -12
- package/dist/commands/migrate.js +0 -106
- package/dist/commands/migrate.js.map +0 -1
- package/dist/commands/observability.d.ts +0 -14
- package/dist/commands/observability.js +0 -124
- package/dist/commands/observability.js.map +0 -1
- package/dist/commands/org.d.ts +0 -19
- package/dist/commands/org.js +0 -186
- package/dist/commands/org.js.map +0 -1
- package/dist/commands/pull.d.ts +0 -31
- package/dist/commands/pull.js +0 -210
- package/dist/commands/pull.js.map +0 -1
- package/dist/commands/push.d.ts +0 -25
- package/dist/commands/push.js +0 -472
- package/dist/commands/push.js.map +0 -1
- package/dist/commands/report-create.d.ts +0 -18
- package/dist/commands/report-create.js +0 -143
- package/dist/commands/report-create.js.map +0 -1
- package/dist/commands/report.d.ts +0 -16
- package/dist/commands/report.js +0 -252
- package/dist/commands/report.js.map +0 -1
- package/dist/commands/run-eval.d.ts +0 -15
- package/dist/commands/run-eval.js +0 -187
- package/dist/commands/run-eval.js.map +0 -1
- package/dist/commands/send-message.d.ts +0 -11
- package/dist/commands/send-message.js +0 -63
- package/dist/commands/send-message.js.map +0 -1
- package/dist/commands/status.d.ts +0 -17
- package/dist/commands/status.js +0 -205
- package/dist/commands/status.js.map +0 -1
- package/dist/commands/sync-mcp.d.ts +0 -16
- package/dist/commands/sync-mcp.js +0 -51
- package/dist/commands/sync-mcp.js.map +0 -1
- package/dist/commands/sync-skills.d.ts +0 -10
- package/dist/commands/sync-skills.js +0 -49
- package/dist/commands/sync-skills.js.map +0 -1
- package/dist/commands/unlock.d.ts +0 -1
- package/dist/commands/unlock.js +0 -13
- package/dist/commands/unlock.js.map +0 -1
- package/dist/commands/update-credential.d.ts +0 -29
- package/dist/commands/update-credential.js +0 -156
- package/dist/commands/update-credential.js.map +0 -1
- package/dist/commands/update.d.ts +0 -6
- package/dist/commands/update.js +0 -36
- package/dist/commands/update.js.map +0 -1
- package/dist/commands/use.d.ts +0 -1
- package/dist/commands/use.js +0 -56
- package/dist/commands/use.js.map +0 -1
- package/dist/commands/whoami.d.ts +0 -11
- package/dist/commands/whoami.js +0 -30
- package/dist/commands/whoami.js.map +0 -1
- package/dist/index.d.ts +0 -28
- package/dist/lib/analytics-constants.d.ts +0 -6
- package/dist/lib/analytics-constants.js +0 -14
- package/dist/lib/analytics-constants.js.map +0 -1
- package/dist/lib/api-client.d.ts +0 -568
- package/dist/lib/api-client.js +0 -445
- package/dist/lib/api-client.js.map +0 -1
- package/dist/lib/auth.d.ts +0 -50
- package/dist/lib/auth.js +0 -230
- package/dist/lib/auth.js.map +0 -1
- package/dist/lib/config.d.ts +0 -34
- package/dist/lib/config.js +0 -69
- package/dist/lib/config.js.map +0 -1
- package/dist/lib/credential-utils.d.ts +0 -36
- package/dist/lib/credential-utils.js +0 -88
- package/dist/lib/credential-utils.js.map +0 -1
- package/dist/lib/diff-display.d.ts +0 -8
- package/dist/lib/diff-display.js +0 -37
- package/dist/lib/diff-display.js.map +0 -1
- package/dist/lib/eval-format.d.ts +0 -29
- package/dist/lib/eval-format.js +0 -44
- package/dist/lib/eval-format.js.map +0 -1
- package/dist/lib/hub-lock.d.ts +0 -7
- package/dist/lib/hub-lock.js +0 -116
- package/dist/lib/hub-lock.js.map +0 -1
- package/dist/lib/layout.d.ts +0 -79
- package/dist/lib/layout.js +0 -133
- package/dist/lib/layout.js.map +0 -1
- package/dist/lib/org-workspace.d.ts +0 -22
- package/dist/lib/org-workspace.js +0 -106
- package/dist/lib/org-workspace.js.map +0 -1
- package/dist/lib/parser.d.ts +0 -16
- package/dist/lib/parser.js +0 -306
- package/dist/lib/parser.js.map +0 -1
- package/dist/lib/repo-config.d.ts +0 -23
- package/dist/lib/repo-config.js +0 -91
- package/dist/lib/repo-config.js.map +0 -1
- package/dist/lib/report-edit-args.d.ts +0 -27
- package/dist/lib/report-edit-args.js +0 -56
- package/dist/lib/report-edit-args.js.map +0 -1
- package/dist/lib/report-inbox.d.ts +0 -19
- package/dist/lib/report-inbox.js +0 -73
- package/dist/lib/report-inbox.js.map +0 -1
- package/dist/lib/resource-files.d.ts +0 -29
- package/dist/lib/resource-files.js +0 -156
- package/dist/lib/resource-files.js.map +0 -1
- package/dist/lib/sentry.d.ts +0 -38
- package/dist/lib/sentry.js +0 -168
- package/dist/lib/sentry.js.map +0 -1
- package/dist/lib/skill-version.d.ts +0 -9
- package/dist/lib/skill-version.js +0 -53
- package/dist/lib/skill-version.js.map +0 -1
- package/dist/lib/sql-output.d.ts +0 -17
- package/dist/lib/sql-output.js +0 -48
- package/dist/lib/sql-output.js.map +0 -1
- package/dist/lib/token-store.d.ts +0 -37
- package/dist/lib/token-store.js +0 -354
- package/dist/lib/token-store.js.map +0 -1
- package/dist/lib/types.d.ts +0 -18
- package/dist/lib/types.js +0 -5
- package/dist/lib/types.js.map +0 -1
- package/dist/lib/utils.d.ts +0 -97
- package/dist/lib/utils.js +0 -288
- package/dist/lib/utils.js.map +0 -1
- package/dist/lib/version-cache.d.ts +0 -10
- package/dist/lib/version-cache.js +0 -34
- package/dist/lib/version-cache.js.map +0 -1
- package/dist/lib/workspace.d.ts +0 -112
- package/dist/lib/workspace.js +0 -387
- package/dist/lib/workspace.js.map +0 -1
- package/dist/lib/yaml-writer.d.ts +0 -18
- package/dist/lib/yaml-writer.js +0 -283
- package/dist/lib/yaml-writer.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"report-create.js","sourceRoot":"","sources":["../../src/commands/report-create.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* wayai report — manage your own platform reports.
|
|
3
|
-
*
|
|
4
|
-
* Subcommands:
|
|
5
|
-
* wayai report create <--title|-t> <--description|-d> [--error|-e] [--steps|-s] [--context] ...
|
|
6
|
-
* wayai report edit <id> [--title|-t] [--description|-d] [--error|-e]
|
|
7
|
-
* [--steps|-s] [--context]
|
|
8
|
-
*
|
|
9
|
-
* `create` submits a new report to the triage queue. `edit` amends the mutable
|
|
10
|
-
* content of a report you filed via `wayai report create`
|
|
11
|
-
* (title/description/error/steps/context), provided it is still `pending` (not
|
|
12
|
-
* yet triaged). Editing never changes the dedup fingerprint and never re-emails
|
|
13
|
-
* you. Once a report has been escalated/grouped/resolved, only a platform admin
|
|
14
|
-
* can amend it — see `wayai admin report update`.
|
|
15
|
-
*/
|
|
16
|
-
export declare function reportCommand(args: string[]): Promise<void>;
|
package/dist/commands/report.js
DELETED
|
@@ -1,252 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* wayai report — manage your own platform reports.
|
|
3
|
-
*
|
|
4
|
-
* Subcommands:
|
|
5
|
-
* wayai report create <--title|-t> <--description|-d> [--error|-e] [--steps|-s] [--context] ...
|
|
6
|
-
* wayai report edit <id> [--title|-t] [--description|-d] [--error|-e]
|
|
7
|
-
* [--steps|-s] [--context]
|
|
8
|
-
*
|
|
9
|
-
* `create` submits a new report to the triage queue. `edit` amends the mutable
|
|
10
|
-
* content of a report you filed via `wayai report create`
|
|
11
|
-
* (title/description/error/steps/context), provided it is still `pending` (not
|
|
12
|
-
* yet triaged). Editing never changes the dedup fingerprint and never re-emails
|
|
13
|
-
* you. Once a report has been escalated/grouped/resolved, only a platform admin
|
|
14
|
-
* can amend it — see `wayai admin report update`.
|
|
15
|
-
*/
|
|
16
|
-
import { requireAuth } from '../lib/auth.js';
|
|
17
|
-
import { ApiClient, ApiError } from '../lib/api-client.js';
|
|
18
|
-
import { parseReportEditArgs } from '../lib/report-edit-args.js';
|
|
19
|
-
import { reportCreateCommand } from './report-create.js';
|
|
20
|
-
export async function reportCommand(args) {
|
|
21
|
-
const sub = args[0];
|
|
22
|
-
switch (sub) {
|
|
23
|
-
case 'create':
|
|
24
|
-
await reportCreateCommand(args.slice(1));
|
|
25
|
-
return;
|
|
26
|
-
case 'edit':
|
|
27
|
-
await reportEditCommand(args.slice(1));
|
|
28
|
-
return;
|
|
29
|
-
case 'list':
|
|
30
|
-
await reportListCommand(args.slice(1));
|
|
31
|
-
return;
|
|
32
|
-
case 'get':
|
|
33
|
-
await reportGetCommand(args.slice(1));
|
|
34
|
-
return;
|
|
35
|
-
case 'accept':
|
|
36
|
-
await reportAcceptCommand(args.slice(1));
|
|
37
|
-
return;
|
|
38
|
-
case 'contest':
|
|
39
|
-
await reportContestCommand(args.slice(1));
|
|
40
|
-
return;
|
|
41
|
-
default:
|
|
42
|
-
printReportHelp();
|
|
43
|
-
process.exit(1);
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
function printReportHelp() {
|
|
47
|
-
console.error(`
|
|
48
|
-
wayai report — manage your own platform reports
|
|
49
|
-
|
|
50
|
-
Usage:
|
|
51
|
-
wayai report create <OPTIONS> Submit a new report to the triage queue
|
|
52
|
-
wayai report edit <report_id> <OPTIONS> Amend your own pending report
|
|
53
|
-
wayai report list [--status <s>] [--json] List your reports (newest first)
|
|
54
|
-
wayai report get <report_id> [--json] Show a report's status + message thread
|
|
55
|
-
wayai report accept <report_id> Accept a shipped fix (→ addressed)
|
|
56
|
-
wayai report contest <report_id> --reason <text>
|
|
57
|
-
Contest a shipped fix or a dismissal (→ triage)
|
|
58
|
-
|
|
59
|
-
Create options (--title and --description required):
|
|
60
|
-
-t, --title <text> Bug title
|
|
61
|
-
-d, --description <text> Detailed description
|
|
62
|
-
-e, --error <text> Error message or stack trace
|
|
63
|
-
-s, --steps <text> Steps to reproduce
|
|
64
|
-
--context <text> Additional context
|
|
65
|
-
(run \`wayai report create\` with no args for the full option list)
|
|
66
|
-
|
|
67
|
-
Edit options (at least one required):
|
|
68
|
-
-t, --title <text> New title
|
|
69
|
-
-d, --description <text> New description
|
|
70
|
-
-e, --error <text> New error message / stack trace ("" clears it)
|
|
71
|
-
-s, --steps <text> New steps to reproduce ("" clears them)
|
|
72
|
-
--context <text> New additional context ("" clears it)
|
|
73
|
-
|
|
74
|
-
The verification loop:
|
|
75
|
-
After triage escalates and the fix ships, your report moves to 'shipped'. Poll
|
|
76
|
-
\`wayai report list --status shipped\` to find it, then \`accept\` if the fix works or
|
|
77
|
-
\`contest --reason "..."\` if it doesn't. You can also \`contest\` a 'dismissed' report
|
|
78
|
-
you believe is real — it goes back to triage. Contests are bounded (a cap, and a
|
|
79
|
-
triage 'final' dismissal); past those, contact support.
|
|
80
|
-
|
|
81
|
-
Notes:
|
|
82
|
-
Only your own \`wayai report create\` submissions can be read/acted on. Editing is
|
|
83
|
-
allowed only while 'pending'; the dedup fingerprint stays frozen and no email is
|
|
84
|
-
sent on an edit.
|
|
85
|
-
`.trim());
|
|
86
|
-
}
|
|
87
|
-
async function reportEditCommand(args) {
|
|
88
|
-
const { reportId, patch, error } = parseReportEditArgs(args);
|
|
89
|
-
if (error) {
|
|
90
|
-
console.error(error);
|
|
91
|
-
process.exit(1);
|
|
92
|
-
}
|
|
93
|
-
if (!reportId || Object.keys(patch).length === 0) {
|
|
94
|
-
console.error('Usage: wayai report edit <report_id> [--title|-t] [--description|-d] [--error|-e] [--steps|-s] [--context]');
|
|
95
|
-
console.error('At least one field to change is required. Pass "" to clear error/steps/context.');
|
|
96
|
-
process.exit(1);
|
|
97
|
-
}
|
|
98
|
-
const { config, accessToken } = await requireAuth();
|
|
99
|
-
const client = new ApiClient({ apiUrl: config.api_url, accessToken });
|
|
100
|
-
try {
|
|
101
|
-
const result = await client.editReport(reportId, patch);
|
|
102
|
-
console.log(`Report updated: ${result.report_id} (status: ${result.status})`);
|
|
103
|
-
console.log('The dedup fingerprint is unchanged and no notification was sent.');
|
|
104
|
-
}
|
|
105
|
-
catch (err) {
|
|
106
|
-
if (err instanceof ApiError) {
|
|
107
|
-
if (err.status === 400) {
|
|
108
|
-
console.error(`Invalid edit: ${err.message}`);
|
|
109
|
-
}
|
|
110
|
-
else if (err.status === 404) {
|
|
111
|
-
console.error('Report not found, or it was not filed by you.');
|
|
112
|
-
}
|
|
113
|
-
else if (err.status === 403) {
|
|
114
|
-
console.error('This report is agent-authored and can only be edited by a platform admin.');
|
|
115
|
-
}
|
|
116
|
-
else if (err.status === 409) {
|
|
117
|
-
console.error(`Cannot edit: ${err.message}`);
|
|
118
|
-
}
|
|
119
|
-
else if (err.status === 429) {
|
|
120
|
-
console.error('Rate limit exceeded. Please try again later.');
|
|
121
|
-
}
|
|
122
|
-
else {
|
|
123
|
-
console.error(`Failed to edit report: ${err.message}`);
|
|
124
|
-
}
|
|
125
|
-
process.exit(1);
|
|
126
|
-
}
|
|
127
|
-
throw err;
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
async function reportListCommand(args) {
|
|
131
|
-
const status = flagValue(args, '--status');
|
|
132
|
-
const json = args.includes('--json');
|
|
133
|
-
const { config, accessToken } = await requireAuth();
|
|
134
|
-
const client = new ApiClient({ apiUrl: config.api_url, accessToken });
|
|
135
|
-
try {
|
|
136
|
-
const result = await client.listMyReports(status);
|
|
137
|
-
if (json) {
|
|
138
|
-
console.log(JSON.stringify(result, null, 2));
|
|
139
|
-
return;
|
|
140
|
-
}
|
|
141
|
-
if (result.data.length === 0) {
|
|
142
|
-
console.log('No reports found.');
|
|
143
|
-
return;
|
|
144
|
-
}
|
|
145
|
-
for (const r of result.data) {
|
|
146
|
-
console.log(`${r.report_id} ${r.status.padEnd(10)} ${r.classification}`);
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
catch (err) {
|
|
150
|
-
reportActionError(err);
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
async function reportGetCommand(args) {
|
|
154
|
-
const reportId = args.find((a) => !a.startsWith('--'));
|
|
155
|
-
const json = args.includes('--json');
|
|
156
|
-
if (!reportId) {
|
|
157
|
-
console.error('Usage: wayai report get <report_id> [--json]');
|
|
158
|
-
process.exit(1);
|
|
159
|
-
}
|
|
160
|
-
const { config, accessToken } = await requireAuth();
|
|
161
|
-
const client = new ApiClient({ apiUrl: config.api_url, accessToken });
|
|
162
|
-
try {
|
|
163
|
-
const result = await client.getMyReport(reportId);
|
|
164
|
-
if (json) {
|
|
165
|
-
console.log(JSON.stringify(result, null, 2));
|
|
166
|
-
return;
|
|
167
|
-
}
|
|
168
|
-
const { report, messages } = result;
|
|
169
|
-
console.log(`Report ${report.report_id}`);
|
|
170
|
-
console.log(` status: ${report.status}`);
|
|
171
|
-
console.log(` classification: ${report.classification}`);
|
|
172
|
-
if (report.contest_count > 0)
|
|
173
|
-
console.log(` contests: ${report.contest_count}`);
|
|
174
|
-
if (report.dismissal_final)
|
|
175
|
-
console.log(' dismissal: final (non-contestable)');
|
|
176
|
-
if (messages.length > 0) {
|
|
177
|
-
console.log('\n Thread:');
|
|
178
|
-
for (const m of messages) {
|
|
179
|
-
console.log(` [${m.author_role}] ${m.body}`);
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
if (report.status === 'shipped') {
|
|
183
|
-
console.log(`\n This fix is shipped. Run \`wayai report accept ${report.report_id}\` if it works,`);
|
|
184
|
-
console.log(` or \`wayai report contest ${report.report_id} --reason "..."\` if it does not.`);
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
catch (err) {
|
|
188
|
-
reportActionError(err);
|
|
189
|
-
}
|
|
190
|
-
}
|
|
191
|
-
async function reportAcceptCommand(args) {
|
|
192
|
-
const reportId = args.find((a) => !a.startsWith('--'));
|
|
193
|
-
if (!reportId) {
|
|
194
|
-
console.error('Usage: wayai report accept <report_id>');
|
|
195
|
-
process.exit(1);
|
|
196
|
-
}
|
|
197
|
-
const { config, accessToken } = await requireAuth();
|
|
198
|
-
const client = new ApiClient({ apiUrl: config.api_url, accessToken });
|
|
199
|
-
try {
|
|
200
|
-
const result = await client.acceptReport(reportId);
|
|
201
|
-
console.log(`Accepted. Report ${result.report.report_id} → ${result.report.status}.`);
|
|
202
|
-
}
|
|
203
|
-
catch (err) {
|
|
204
|
-
reportActionError(err);
|
|
205
|
-
}
|
|
206
|
-
}
|
|
207
|
-
async function reportContestCommand(args) {
|
|
208
|
-
const reportId = args.find((a) => !a.startsWith('--'));
|
|
209
|
-
const reason = flagValue(args, '--reason');
|
|
210
|
-
if (!reportId || !reason) {
|
|
211
|
-
console.error('Usage: wayai report contest <report_id> --reason "<why the fix/dismissal is wrong>"');
|
|
212
|
-
process.exit(1);
|
|
213
|
-
}
|
|
214
|
-
const { config, accessToken } = await requireAuth();
|
|
215
|
-
const client = new ApiClient({ apiUrl: config.api_url, accessToken });
|
|
216
|
-
try {
|
|
217
|
-
const result = await client.contestReport(reportId, reason);
|
|
218
|
-
console.log(`Contested. Report ${result.report.report_id} → ${result.report.status} (back to triage).`);
|
|
219
|
-
}
|
|
220
|
-
catch (err) {
|
|
221
|
-
reportActionError(err);
|
|
222
|
-
}
|
|
223
|
-
}
|
|
224
|
-
// Read the value following `flag` in argv (e.g. `--status shipped`).
|
|
225
|
-
function flagValue(args, flag) {
|
|
226
|
-
const i = args.indexOf(flag);
|
|
227
|
-
return i >= 0 && i + 1 < args.length ? args[i + 1] : undefined;
|
|
228
|
-
}
|
|
229
|
-
// Shared ApiError → friendly message + exit for the reporter verbs (get/list/accept/contest).
|
|
230
|
-
function reportActionError(err) {
|
|
231
|
-
if (err instanceof ApiError) {
|
|
232
|
-
if (err.status === 404) {
|
|
233
|
-
console.error('Report not found, or it was not filed by you.');
|
|
234
|
-
}
|
|
235
|
-
else if (err.status === 403) {
|
|
236
|
-
console.error('This report is agent-authored and can only be handled by a platform admin.');
|
|
237
|
-
}
|
|
238
|
-
else if (err.status === 409) {
|
|
239
|
-
// Conflict carries the actionable reason (wrong status, final dismissal, cap reached).
|
|
240
|
-
console.error(err.message);
|
|
241
|
-
}
|
|
242
|
-
else if (err.status === 429) {
|
|
243
|
-
console.error('Rate limit exceeded. Please try again later.');
|
|
244
|
-
}
|
|
245
|
-
else {
|
|
246
|
-
console.error(`Request failed: ${err.message}`);
|
|
247
|
-
}
|
|
248
|
-
process.exit(1);
|
|
249
|
-
}
|
|
250
|
-
throw err;
|
|
251
|
-
}
|
|
252
|
-
//# sourceMappingURL=report.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"report.js","sourceRoot":"","sources":["../../src/commands/report.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* wayai run-eval — run a scenario set's enabled evals and show results
|
|
3
|
-
*
|
|
4
|
-
* Creates a session, runs it, polls until completion, prints summary. A session
|
|
5
|
-
* targets exactly one scenario set. With no flag the run endpoint resolves the
|
|
6
|
-
* hub's sole enabled set; on multi-set hubs, pick one with `--set` / `--eval`.
|
|
7
|
-
*
|
|
8
|
-
* Usage:
|
|
9
|
-
* wayai run-eval # run the hub's enabled set and wait for results
|
|
10
|
-
* wayai run-eval --set <name> # run the named scenario set
|
|
11
|
-
* wayai run-eval --eval <name> # run the set the named eval belongs to
|
|
12
|
-
* wayai run-eval --no-wait # start session and exit (prints session ID)
|
|
13
|
-
* wayai run-eval --timeout 120 # wait max 2 minutes
|
|
14
|
-
*/
|
|
15
|
-
export declare function runEvalCommand(args: string[]): Promise<void>;
|
|
@@ -1,187 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* wayai run-eval — run a scenario set's enabled evals and show results
|
|
3
|
-
*
|
|
4
|
-
* Creates a session, runs it, polls until completion, prints summary. A session
|
|
5
|
-
* targets exactly one scenario set. With no flag the run endpoint resolves the
|
|
6
|
-
* hub's sole enabled set; on multi-set hubs, pick one with `--set` / `--eval`.
|
|
7
|
-
*
|
|
8
|
-
* Usage:
|
|
9
|
-
* wayai run-eval # run the hub's enabled set and wait for results
|
|
10
|
-
* wayai run-eval --set <name> # run the named scenario set
|
|
11
|
-
* wayai run-eval --eval <name> # run the set the named eval belongs to
|
|
12
|
-
* wayai run-eval --no-wait # start session and exit (prints session ID)
|
|
13
|
-
* wayai run-eval --timeout 120 # wait max 2 minutes
|
|
14
|
-
*/
|
|
15
|
-
import { requireAuth, getAccessToken } from '../lib/auth.js';
|
|
16
|
-
import { requireRepoConfig } from '../lib/repo-config.js';
|
|
17
|
-
import { resolveActiveHubId } from '../lib/workspace.js';
|
|
18
|
-
import { ApiClient, ApiError } from '../lib/api-client.js';
|
|
19
|
-
import { printResultsTable } from '../lib/eval-format.js';
|
|
20
|
-
const TERMINAL_STATUSES = new Set(['completed', 'failed', 'cancelled', 'awaiting_review']);
|
|
21
|
-
const POLL_INTERVAL_MS = 3000;
|
|
22
|
-
const DEFAULT_TIMEOUT_S = 600;
|
|
23
|
-
// How many consecutive poll failures to ride out before giving up on the live
|
|
24
|
-
// view. At POLL_INTERVAL_MS this is ~15s of tolerance — enough to absorb a token
|
|
25
|
-
// rotation, KV propagation lag, or a network blip, while still failing fast on a
|
|
26
|
-
// genuinely broken connection rather than spinning silently until the deadline.
|
|
27
|
-
const MAX_CONSECUTIVE_POLL_ERRORS = 5;
|
|
28
|
-
export async function runEvalCommand(args) {
|
|
29
|
-
const hubId = resolveActiveHubId(args);
|
|
30
|
-
const { config, accessToken } = await requireAuth();
|
|
31
|
-
requireRepoConfig();
|
|
32
|
-
// Parse args
|
|
33
|
-
let noWait = false;
|
|
34
|
-
let timeoutSeconds = DEFAULT_TIMEOUT_S;
|
|
35
|
-
let setName;
|
|
36
|
-
let evalName;
|
|
37
|
-
for (let i = 0; i < args.length; i++) {
|
|
38
|
-
const arg = args[i];
|
|
39
|
-
if (arg === '--no-wait') {
|
|
40
|
-
noWait = true;
|
|
41
|
-
}
|
|
42
|
-
else if (arg === '--timeout') {
|
|
43
|
-
timeoutSeconds = parseInt(args[++i], 10);
|
|
44
|
-
if (isNaN(timeoutSeconds) || timeoutSeconds <= 0) {
|
|
45
|
-
console.error('--timeout must be a positive number (seconds)');
|
|
46
|
-
process.exit(1);
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
else if (arg === '--set') {
|
|
50
|
-
setName = args[++i];
|
|
51
|
-
if (!setName) {
|
|
52
|
-
console.error('--set requires a scenario set name');
|
|
53
|
-
process.exit(1);
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
else if (arg === '--eval') {
|
|
57
|
-
evalName = args[++i];
|
|
58
|
-
if (!evalName) {
|
|
59
|
-
console.error('--eval requires an eval name');
|
|
60
|
-
process.exit(1);
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
if (setName && evalName) {
|
|
65
|
-
console.error('Specify only one of --set or --eval.');
|
|
66
|
-
process.exit(1);
|
|
67
|
-
}
|
|
68
|
-
// The poll below can run for minutes — longer than a short-lived OAuth JWT.
|
|
69
|
-
// Re-resolving the token on a 401 (refreshing if needed; way_ tokens pass
|
|
70
|
-
// through unchanged) lets the client self-heal a mid-run expiry rather than
|
|
71
|
-
// aborting the whole command (gh #2605).
|
|
72
|
-
const client = new ApiClient({
|
|
73
|
-
apiUrl: config.api_url,
|
|
74
|
-
accessToken,
|
|
75
|
-
onUnauthorized: () => getAccessToken(config),
|
|
76
|
-
});
|
|
77
|
-
// 1. Verify hub has enabled evals
|
|
78
|
-
const evalsResult = await client.getEvals(hubId, { enabled: 'true' });
|
|
79
|
-
const enabledCount = evalsResult.data.evals.length;
|
|
80
|
-
if (enabledCount === 0) {
|
|
81
|
-
console.error('No enabled evals found for this hub. Enable evals in the platform UI first.');
|
|
82
|
-
process.exit(1);
|
|
83
|
-
}
|
|
84
|
-
console.log(`Found ${enabledCount} enabled eval${enabledCount === 1 ? '' : 's'}`);
|
|
85
|
-
// 2. Resolve the scenario set to bind. A session targets exactly one set; on
|
|
86
|
-
// multi-set hubs `--set`/`--eval` disambiguates. Without a flag we leave it
|
|
87
|
-
// unbound and the run endpoint resolves the hub's sole enabled set.
|
|
88
|
-
let scenarioSetId;
|
|
89
|
-
if (setName) {
|
|
90
|
-
const setsResult = await client.listScenarioSets(hubId);
|
|
91
|
-
const match = setsResult.data.scenario_sets.find((s) => s.set_name === setName);
|
|
92
|
-
if (!match) {
|
|
93
|
-
const available = setsResult.data.scenario_sets.map((s) => s.set_name).join(', ') || '(none)';
|
|
94
|
-
console.error(`Scenario set "${setName}" not found. Available: ${available}`);
|
|
95
|
-
process.exit(1);
|
|
96
|
-
}
|
|
97
|
-
scenarioSetId = match.scenario_set_id;
|
|
98
|
-
}
|
|
99
|
-
else if (evalName) {
|
|
100
|
-
const match = evalsResult.data.evals.find((e) => e.eval_name === evalName);
|
|
101
|
-
if (!match) {
|
|
102
|
-
console.error(`No enabled eval named "${evalName}". Run \`wayai evals\` to list (it may be disabled).`);
|
|
103
|
-
process.exit(1);
|
|
104
|
-
}
|
|
105
|
-
scenarioSetId = match.scenario_set_id;
|
|
106
|
-
}
|
|
107
|
-
// 3. Create session
|
|
108
|
-
const now = new Date();
|
|
109
|
-
const sessionName = `CLI run ${now.toISOString().slice(0, 16).replace('T', ' ')}`;
|
|
110
|
-
const createResult = await client.createEvalSession(hubId, sessionName, scenarioSetId);
|
|
111
|
-
const sessionId = createResult.data.session.eval_session_id;
|
|
112
|
-
console.log(`Created session: ${sessionName} (${sessionId})`);
|
|
113
|
-
// 4. Run session — surface backend resolution errors (e.g. a multi-set hub
|
|
114
|
-
// with no `--set`) instead of leaking a raw ApiError stack.
|
|
115
|
-
try {
|
|
116
|
-
await client.runEvalSession(hubId, sessionId);
|
|
117
|
-
}
|
|
118
|
-
catch (err) {
|
|
119
|
-
console.error(`\nFailed to start session: ${extractApiMessage(err)}`);
|
|
120
|
-
process.exit(1);
|
|
121
|
-
}
|
|
122
|
-
console.log('Session started');
|
|
123
|
-
// 5. If --no-wait, print session ID and exit
|
|
124
|
-
if (noWait) {
|
|
125
|
-
console.log(`\nSession ID: ${sessionId}`);
|
|
126
|
-
console.log('Use `wayai eval-results --session ' + sessionId + '` to check results.');
|
|
127
|
-
return;
|
|
128
|
-
}
|
|
129
|
-
// 6. Poll until terminal status
|
|
130
|
-
const deadline = Date.now() + timeoutSeconds * 1000;
|
|
131
|
-
let consecutivePollErrors = 0;
|
|
132
|
-
while (Date.now() < deadline) {
|
|
133
|
-
await sleep(POLL_INTERVAL_MS);
|
|
134
|
-
// A single poll throwing must not tear down the live view — the session
|
|
135
|
-
// keeps running server-side regardless. Ride out transient failures (token
|
|
136
|
-
// rotation that survives the client refresh, KV propagation, network blip);
|
|
137
|
-
// only give up once they persist past MAX_CONSECUTIVE_POLL_ERRORS (gh #2605).
|
|
138
|
-
let details;
|
|
139
|
-
try {
|
|
140
|
-
details = await client.getEvalSessionDetails(hubId, sessionId);
|
|
141
|
-
consecutivePollErrors = 0;
|
|
142
|
-
}
|
|
143
|
-
catch (err) {
|
|
144
|
-
if (++consecutivePollErrors >= MAX_CONSECUTIVE_POLL_ERRORS) {
|
|
145
|
-
console.error(`\n\nLost connection to the eval session: ${extractApiMessage(err)}`);
|
|
146
|
-
console.error(`The session may still be running. Check results: wayai eval-results --session ${sessionId}`);
|
|
147
|
-
process.exit(1);
|
|
148
|
-
}
|
|
149
|
-
continue;
|
|
150
|
-
}
|
|
151
|
-
const session = details.data.session;
|
|
152
|
-
const results = details.data.results;
|
|
153
|
-
// Calculate progress
|
|
154
|
-
const totalRuns = results.reduce((sum, r) => sum + r.total_runs, 0);
|
|
155
|
-
const completedRuns = results.reduce((sum, r) => sum + r.successful_runs + r.failed_runs, 0);
|
|
156
|
-
if (TERMINAL_STATUSES.has(session.session_status)) {
|
|
157
|
-
console.log('');
|
|
158
|
-
console.log(`Session ${session.session_status}: ${session.session_name} (${session.eval_session_id})\n`);
|
|
159
|
-
printResultsTable(results, 'compact');
|
|
160
|
-
return;
|
|
161
|
-
}
|
|
162
|
-
process.stdout.write(`\rRunning... ${completedRuns}/${totalRuns} completed`);
|
|
163
|
-
}
|
|
164
|
-
console.log(`\n\nTimeout after ${timeoutSeconds}s. Session is still running.`);
|
|
165
|
-
console.log(`Check results: wayai eval-results --session ${sessionId}`);
|
|
166
|
-
}
|
|
167
|
-
function sleep(ms) {
|
|
168
|
-
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
169
|
-
}
|
|
170
|
-
/** Pull the human-facing `message` out of a JSON error body, falling back to the raw text. */
|
|
171
|
-
function extractApiMessage(err) {
|
|
172
|
-
if (err instanceof ApiError) {
|
|
173
|
-
try {
|
|
174
|
-
const parsed = JSON.parse(err.body);
|
|
175
|
-
if (parsed.message)
|
|
176
|
-
return parsed.message;
|
|
177
|
-
if (parsed.error)
|
|
178
|
-
return parsed.error;
|
|
179
|
-
}
|
|
180
|
-
catch {
|
|
181
|
-
// body wasn't JSON — fall through to the raw text
|
|
182
|
-
}
|
|
183
|
-
return err.body || err.message;
|
|
184
|
-
}
|
|
185
|
-
return err instanceof Error ? err.message : String(err);
|
|
186
|
-
}
|
|
187
|
-
//# sourceMappingURL=run-eval.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"run-eval.js","sourceRoot":"","sources":["../../src/commands/run-eval.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* wayai send-message — send a test message to a preview hub and get the agent reply
|
|
3
|
-
*
|
|
4
|
-
* Chat hubs: automatically continues the active conversation (or creates one).
|
|
5
|
-
* Task hubs: creates a new conversation by default. Use -c to continue an existing one.
|
|
6
|
-
*
|
|
7
|
-
* Usage:
|
|
8
|
-
* wayai send-message "Hello, I need help" # send message
|
|
9
|
-
* wayai send-message -c <conversation_id> "Follow up" # continue conversation
|
|
10
|
-
*/
|
|
11
|
-
export declare function sendMessageCommand(args: string[]): Promise<void>;
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* wayai send-message — send a test message to a preview hub and get the agent reply
|
|
3
|
-
*
|
|
4
|
-
* Chat hubs: automatically continues the active conversation (or creates one).
|
|
5
|
-
* Task hubs: creates a new conversation by default. Use -c to continue an existing one.
|
|
6
|
-
*
|
|
7
|
-
* Usage:
|
|
8
|
-
* wayai send-message "Hello, I need help" # send message
|
|
9
|
-
* wayai send-message -c <conversation_id> "Follow up" # continue conversation
|
|
10
|
-
*/
|
|
11
|
-
import { requireAuth } from '../lib/auth.js';
|
|
12
|
-
import { requireRepoConfig } from '../lib/repo-config.js';
|
|
13
|
-
import { resolveActiveHubId } from '../lib/workspace.js';
|
|
14
|
-
import { ApiClient } from '../lib/api-client.js';
|
|
15
|
-
export async function sendMessageCommand(args) {
|
|
16
|
-
const hubId = resolveActiveHubId(args);
|
|
17
|
-
const { config, accessToken } = await requireAuth();
|
|
18
|
-
requireRepoConfig();
|
|
19
|
-
// Parse args
|
|
20
|
-
let conversationId;
|
|
21
|
-
let message;
|
|
22
|
-
for (let i = 0; i < args.length; i++) {
|
|
23
|
-
const arg = args[i];
|
|
24
|
-
if (arg === '-c' || arg === '--conversation') {
|
|
25
|
-
conversationId = args[++i];
|
|
26
|
-
}
|
|
27
|
-
else if (!arg.startsWith('-')) {
|
|
28
|
-
message = arg;
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
if (!message) {
|
|
32
|
-
console.error('Usage: wayai send-message [options] "message text"');
|
|
33
|
-
console.error('');
|
|
34
|
-
console.error('Options:');
|
|
35
|
-
console.error(' -c, --conversation <id> Continue an existing conversation');
|
|
36
|
-
console.error('');
|
|
37
|
-
console.error('The hub type (chat/task) is determined automatically from the hub.');
|
|
38
|
-
console.error('Chat hubs auto-continue the active conversation (or create one).');
|
|
39
|
-
console.error('Task hubs create a new conversation unless -c is provided.');
|
|
40
|
-
process.exit(1);
|
|
41
|
-
}
|
|
42
|
-
const client = new ApiClient({ apiUrl: config.api_url, accessToken });
|
|
43
|
-
const result = await client.sendMessage(hubId, message, {
|
|
44
|
-
conversationId,
|
|
45
|
-
});
|
|
46
|
-
// Print result
|
|
47
|
-
console.log(`Conversation: ${result.conversation_id}`);
|
|
48
|
-
console.log(`Status: ${result.status}`);
|
|
49
|
-
if (result.status_reason) {
|
|
50
|
-
console.log(`Reason: ${result.status_reason}`);
|
|
51
|
-
}
|
|
52
|
-
if (result.agent_reply) {
|
|
53
|
-
console.log('');
|
|
54
|
-
console.log(result.agent_reply.message_text);
|
|
55
|
-
}
|
|
56
|
-
else if (result.status === 'skipped') {
|
|
57
|
-
console.log('(Agent did not respond)');
|
|
58
|
-
}
|
|
59
|
-
else if (result.status === 'error') {
|
|
60
|
-
console.log('(Agent processing failed — user message was stored)');
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
//# sourceMappingURL=send-message.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"send-message.js","sourceRoot":"","sources":["../../src/commands/send-message.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,IAAc;IACrD,MAAM,KAAK,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACvC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,WAAW,EAAE,CAAC;IACpD,iBAAiB,EAAE,CAAC;IAEpB,aAAa;IACb,IAAI,cAAkC,CAAC;IACvC,IAAI,OAA2B,CAAC;IAEhC,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,IAAI,IAAI,GAAG,KAAK,gBAAgB,EAAE,CAAC;YAC7C,cAAc,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QAC7B,CAAC;aAAM,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAChC,OAAO,GAAG,GAAG,CAAC;QAChB,CAAC;IACH,CAAC;IAED,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,oDAAoD,CAAC,CAAC;QACpE,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC1B,OAAO,CAAC,KAAK,CAAC,8DAA8D,CAAC,CAAC;QAC9E,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,oEAAoE,CAAC,CAAC;QACpF,OAAO,CAAC,KAAK,CAAC,kEAAkE,CAAC,CAAC;QAClF,OAAO,CAAC,KAAK,CAAC,4DAA4D,CAAC,CAAC;QAC5E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;IAEtE,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE;QACtD,cAAc;KACf,CAAC,CAAC;IAEH,eAAe;IACf,OAAO,CAAC,GAAG,CAAC,iBAAiB,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC;IACvD,OAAO,CAAC,GAAG,CAAC,WAAW,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IAExC,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,WAAW,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC;IACjD,CAAC;IAED,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;IAC/C,CAAC;SAAM,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QACvC,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;IACzC,CAAC;SAAM,IAAI,MAAM,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;QACrC,OAAO,CAAC,GAAG,CAAC,qDAAqD,CAAC,CAAC;IACrE,CAAC;AACH,CAAC"}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* wayai status — show current auth/config status and repo scope
|
|
3
|
-
*
|
|
4
|
-
* Usage:
|
|
5
|
-
* wayai status # human-readable output
|
|
6
|
-
* wayai status --json # structured output for agents/scripts
|
|
7
|
-
*
|
|
8
|
-
* The --json shape is the canonical state snapshot consumed by the WayAI skill
|
|
9
|
-
* during agentic onboarding. Fields are nullable so the agent can branch
|
|
10
|
-
* cleanly from any starting state (no config / no org / no workspace / etc.).
|
|
11
|
-
*/
|
|
12
|
-
export declare function parseArgs(args: string[]): {
|
|
13
|
-
json: boolean;
|
|
14
|
-
};
|
|
15
|
-
export declare function statusCommand(args: string[], pkg: {
|
|
16
|
-
version: string;
|
|
17
|
-
}): Promise<void>;
|