@wayai/cli 0.3.40 → 0.3.41
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 +16893 -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,292 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* wayai conversations — list conversations or show conversation detail
|
|
3
|
-
*
|
|
4
|
-
* Usage:
|
|
5
|
-
* wayai conversations # list conversations
|
|
6
|
-
* wayai conversations <conversation_id> # show detail + messages
|
|
7
|
-
* wayai conversations <conversation_id> observability # list per-message LLM traces
|
|
8
|
-
* wayai conversations <conversation_id> observability --message-id <id>
|
|
9
|
-
* wayai conversations --status ended # filter by status
|
|
10
|
-
* wayai conversations --period 7d # analytics-powered list
|
|
11
|
-
* wayai conversations --from 2026-01-01 --to 2026-01-31
|
|
12
|
-
* wayai conversations --json # raw JSON output
|
|
13
|
-
*/
|
|
14
|
-
import { requireAuth } from '../lib/auth.js';
|
|
15
|
-
import { requireRepoConfig } from '../lib/repo-config.js';
|
|
16
|
-
import { resolveActiveHubId } from '../lib/workspace.js';
|
|
17
|
-
import { ApiClient, ApiError } from '../lib/api-client.js';
|
|
18
|
-
import { parsePeriod, parseDateArg } from '../lib/utils.js';
|
|
19
|
-
import { runConversationObservability } from './observability.js';
|
|
20
|
-
export async function conversationsCommand(args) {
|
|
21
|
-
const hubId = resolveActiveHubId(args);
|
|
22
|
-
const { config, accessToken } = await requireAuth();
|
|
23
|
-
requireRepoConfig();
|
|
24
|
-
// Parse args
|
|
25
|
-
let status;
|
|
26
|
-
let conversationId;
|
|
27
|
-
let subcommand;
|
|
28
|
-
let messageId;
|
|
29
|
-
let limit;
|
|
30
|
-
let offset;
|
|
31
|
-
let period;
|
|
32
|
-
let from;
|
|
33
|
-
let to;
|
|
34
|
-
let jsonOutput = false;
|
|
35
|
-
for (let i = 0; i < args.length; i++) {
|
|
36
|
-
const arg = args[i];
|
|
37
|
-
if (arg === '--status') {
|
|
38
|
-
const val = args[++i];
|
|
39
|
-
if (val === 'agent' || val === 'team' || val === 'ended') {
|
|
40
|
-
status = val;
|
|
41
|
-
}
|
|
42
|
-
else {
|
|
43
|
-
console.error(`Invalid status: ${val}. Must be 'agent', 'team', or 'ended'.`);
|
|
44
|
-
process.exit(1);
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
else if (arg === '--limit') {
|
|
48
|
-
limit = parseInt(args[++i], 10);
|
|
49
|
-
}
|
|
50
|
-
else if (arg === '--offset') {
|
|
51
|
-
offset = parseInt(args[++i], 10);
|
|
52
|
-
}
|
|
53
|
-
else if (arg === '--message-id') {
|
|
54
|
-
if (i + 1 >= args.length) {
|
|
55
|
-
console.error('--message-id requires a value');
|
|
56
|
-
process.exit(1);
|
|
57
|
-
}
|
|
58
|
-
messageId = args[++i];
|
|
59
|
-
}
|
|
60
|
-
else if (arg === '--period') {
|
|
61
|
-
if (i + 1 >= args.length) {
|
|
62
|
-
console.error('--period requires a value');
|
|
63
|
-
process.exit(1);
|
|
64
|
-
}
|
|
65
|
-
period = args[++i];
|
|
66
|
-
}
|
|
67
|
-
else if (arg === '--from') {
|
|
68
|
-
if (i + 1 >= args.length) {
|
|
69
|
-
console.error('--from requires a value');
|
|
70
|
-
process.exit(1);
|
|
71
|
-
}
|
|
72
|
-
from = args[++i];
|
|
73
|
-
}
|
|
74
|
-
else if (arg === '--to') {
|
|
75
|
-
if (i + 1 >= args.length) {
|
|
76
|
-
console.error('--to requires a value');
|
|
77
|
-
process.exit(1);
|
|
78
|
-
}
|
|
79
|
-
to = args[++i];
|
|
80
|
-
}
|
|
81
|
-
else if (arg === '--json') {
|
|
82
|
-
jsonOutput = true;
|
|
83
|
-
}
|
|
84
|
-
else if (!arg.startsWith('-')) {
|
|
85
|
-
// Position 1: conversation_id. Position 2: subcommand (e.g. `observability`).
|
|
86
|
-
// If the user puts the subcommand first ("wayai conversations observability"),
|
|
87
|
-
// promote it to subcommand directly — that yields a clearer "missing
|
|
88
|
-
// conversation_id" error instead of pretending `observability` is a UUID.
|
|
89
|
-
if (conversationId === undefined && arg === 'observability') {
|
|
90
|
-
subcommand = arg;
|
|
91
|
-
}
|
|
92
|
-
else if (conversationId === undefined) {
|
|
93
|
-
conversationId = arg;
|
|
94
|
-
}
|
|
95
|
-
else if (subcommand === undefined) {
|
|
96
|
-
subcommand = arg;
|
|
97
|
-
}
|
|
98
|
-
else {
|
|
99
|
-
console.error(`Unexpected positional argument: ${arg}`);
|
|
100
|
-
process.exit(1);
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
const client = new ApiClient({ apiUrl: config.api_url, accessToken });
|
|
105
|
-
const hasAnalyticsFlags = !!(period || from || to);
|
|
106
|
-
if (subcommand === 'observability') {
|
|
107
|
-
if (!conversationId) {
|
|
108
|
-
console.error('Usage: wayai conversations <conversation_id> observability [--message-id X] [--json]');
|
|
109
|
-
process.exit(1);
|
|
110
|
-
}
|
|
111
|
-
try {
|
|
112
|
-
await runConversationObservability(client, hubId, conversationId, { messageId, jsonOutput });
|
|
113
|
-
}
|
|
114
|
-
catch (err) {
|
|
115
|
-
// Raw ApiError text isn't user-friendly at the CLI surface.
|
|
116
|
-
if (err instanceof ApiError && err.status === 404) {
|
|
117
|
-
console.error('Observability data not found. Either the conversation has no LLM turns yet, or R2 entries were purged.');
|
|
118
|
-
process.exit(1);
|
|
119
|
-
}
|
|
120
|
-
throw err;
|
|
121
|
-
}
|
|
122
|
-
return;
|
|
123
|
-
}
|
|
124
|
-
if (subcommand) {
|
|
125
|
-
console.error(`Unknown conversations subcommand: ${subcommand}`);
|
|
126
|
-
process.exit(1);
|
|
127
|
-
}
|
|
128
|
-
// `--message-id` is only meaningful with the `observability` subcommand.
|
|
129
|
-
// Reject it elsewhere so a user typo (e.g. `wayai conversations <id> --message-id X`,
|
|
130
|
-
// forgetting the subcommand) doesn't silently drop the flag.
|
|
131
|
-
if (messageId !== undefined) {
|
|
132
|
-
console.error('--message-id is only valid with the `observability` subcommand. Did you mean: wayai conversations <id> observability --message-id ' + messageId + '?');
|
|
133
|
-
process.exit(1);
|
|
134
|
-
}
|
|
135
|
-
if (conversationId) {
|
|
136
|
-
const [result, schedules] = await Promise.all([
|
|
137
|
-
client.getConversation(hubId, conversationId, { limit, offset }),
|
|
138
|
-
client.getPendingSchedules(hubId, conversationId).catch(() => ({ entries: [], total: 0 })),
|
|
139
|
-
]);
|
|
140
|
-
if (jsonOutput) {
|
|
141
|
-
console.log(JSON.stringify({ ...result, pending_schedules: schedules }, null, 2));
|
|
142
|
-
return;
|
|
143
|
-
}
|
|
144
|
-
console.log(`Conversation: ${result.conversation.conversation_id}`);
|
|
145
|
-
console.log(`Status: ${result.conversation.conversation_status}`);
|
|
146
|
-
if (result.conversation.kanban_status) {
|
|
147
|
-
console.log(`Kanban: ${result.conversation.kanban_status}`);
|
|
148
|
-
}
|
|
149
|
-
const user = result.conversation.user_name || result.conversation.user_email;
|
|
150
|
-
if (user) {
|
|
151
|
-
console.log(`User: ${user}`);
|
|
152
|
-
}
|
|
153
|
-
console.log(`Messages: ${result.total_messages}`);
|
|
154
|
-
console.log('');
|
|
155
|
-
for (const msg of result.messages) {
|
|
156
|
-
const time = new Date(msg.created_at).toLocaleString();
|
|
157
|
-
const meta = (msg.metadata ?? {});
|
|
158
|
-
const toolName = typeof meta.tool_name === 'string' ? meta.tool_name : undefined;
|
|
159
|
-
const isToolCall = msg.sender_type === 'agent' && msg.receiver_type === 'tool' && toolName;
|
|
160
|
-
const isToolResult = msg.sender_type === 'tool' && msg.receiver_type === 'agent' && toolName;
|
|
161
|
-
if (isToolCall) {
|
|
162
|
-
console.log(`[tool_call: ${toolName}] (${time})`);
|
|
163
|
-
if (meta.arguments !== undefined) {
|
|
164
|
-
console.log(JSON.stringify(meta.arguments, null, 2));
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
else if (isToolResult) {
|
|
168
|
-
const label = meta.is_error === true ? 'tool_error' : 'tool_result';
|
|
169
|
-
console.log(`[${label}: ${toolName}] (${time})`);
|
|
170
|
-
if (meta.result !== undefined) {
|
|
171
|
-
console.log(typeof meta.result === 'string' ? meta.result : JSON.stringify(meta.result, null, 2));
|
|
172
|
-
}
|
|
173
|
-
else if (msg.message_text) {
|
|
174
|
-
console.log(msg.message_text);
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
else if (msg.sender_type === 'system') {
|
|
178
|
-
console.log(`[system → ${msg.receiver_type ?? '-'}] (${time})`);
|
|
179
|
-
console.log(msg.message_text || '(no text)');
|
|
180
|
-
}
|
|
181
|
-
else {
|
|
182
|
-
const from = msg.sender_description || msg.sender_type;
|
|
183
|
-
const to = msg.receiver_description || msg.receiver_type;
|
|
184
|
-
const routing = to ? `${from} → ${to}` : from;
|
|
185
|
-
console.log(`[${routing}] (${time})`);
|
|
186
|
-
console.log(msg.message_text || '(no text)');
|
|
187
|
-
}
|
|
188
|
-
console.log('');
|
|
189
|
-
}
|
|
190
|
-
// Show pending scheduled actions
|
|
191
|
-
if (schedules.entries.length > 0) {
|
|
192
|
-
console.log(`Pending Scheduled Actions (${schedules.entries.length}):`);
|
|
193
|
-
for (const entry of schedules.entries) {
|
|
194
|
-
const type = entry.schedule_type;
|
|
195
|
-
const time = new Date(entry.run_at).toLocaleString();
|
|
196
|
-
const order = entry.followup_order ? `#${entry.followup_order}` : '';
|
|
197
|
-
const preview = entry.message_text.length > 50
|
|
198
|
-
? entry.message_text.slice(0, 47) + '...'
|
|
199
|
-
: entry.message_text;
|
|
200
|
-
console.log(` ${type} ${order} — ${time}`);
|
|
201
|
-
console.log(` "${preview}"`);
|
|
202
|
-
}
|
|
203
|
-
console.log('');
|
|
204
|
-
}
|
|
205
|
-
}
|
|
206
|
-
else if (hasAnalyticsFlags) {
|
|
207
|
-
// Analytics-powered list
|
|
208
|
-
if (status) {
|
|
209
|
-
console.error('The --status flag is not supported with --period/--from/--to. Without these flags, --status works as before.');
|
|
210
|
-
process.exit(1);
|
|
211
|
-
}
|
|
212
|
-
if ((from && !to) || (!from && to)) {
|
|
213
|
-
console.error('--from and --to must both be provided together.');
|
|
214
|
-
process.exit(1);
|
|
215
|
-
}
|
|
216
|
-
let start;
|
|
217
|
-
let end;
|
|
218
|
-
try {
|
|
219
|
-
if (from && to) {
|
|
220
|
-
start = parseDateArg(from, 'from');
|
|
221
|
-
end = parseDateArg(to, 'to');
|
|
222
|
-
if (new Date(start).getTime() >= new Date(end).getTime()) {
|
|
223
|
-
console.error('--from must be before --to.');
|
|
224
|
-
process.exit(1);
|
|
225
|
-
}
|
|
226
|
-
}
|
|
227
|
-
else {
|
|
228
|
-
const parsed = parsePeriod(period || '7d');
|
|
229
|
-
start = parsed.start;
|
|
230
|
-
end = parsed.end;
|
|
231
|
-
}
|
|
232
|
-
}
|
|
233
|
-
catch (err) {
|
|
234
|
-
console.error(err instanceof Error ? err.message : String(err));
|
|
235
|
-
process.exit(1);
|
|
236
|
-
}
|
|
237
|
-
const result = await client.getAnalyticsConversations({
|
|
238
|
-
hub_id: hubId,
|
|
239
|
-
time_interval: { start, end },
|
|
240
|
-
limit: limit ?? 50,
|
|
241
|
-
offset: offset ?? 0,
|
|
242
|
-
});
|
|
243
|
-
if (jsonOutput) {
|
|
244
|
-
// Emit the full payload (the `cold` flag is part of it) so machine
|
|
245
|
-
// consumers can inspect it, then exit non-zero on cold so batch/automation
|
|
246
|
-
// pipelines treat a degraded listing as retryable rather than as a
|
|
247
|
-
// complete "no conversations" result (gh #2452).
|
|
248
|
-
console.log(JSON.stringify(result, null, 2));
|
|
249
|
-
if (result.cold)
|
|
250
|
-
process.exit(1);
|
|
251
|
-
return;
|
|
252
|
-
}
|
|
253
|
-
// A cold result is a transient ClickHouse cold-start, NOT an empty hub.
|
|
254
|
-
// Surface it distinctly — silently printing "No conversations found." here
|
|
255
|
-
// is what made dozens of real ended conversations look undiscoverable in
|
|
256
|
-
// gh #2452.
|
|
257
|
-
if (result.cold) {
|
|
258
|
-
console.error('ClickHouse is warming up (cold start); the ended-conversation list is temporarily unavailable. Retry in a few seconds.');
|
|
259
|
-
process.exit(1);
|
|
260
|
-
}
|
|
261
|
-
if (result.conversations.length === 0) {
|
|
262
|
-
console.log('No conversations found.');
|
|
263
|
-
return;
|
|
264
|
-
}
|
|
265
|
-
console.log(`Conversations (${result.conversations.length} of ${result.total}):\n`);
|
|
266
|
-
for (const conv of result.conversations) {
|
|
267
|
-
const participant = conv.participant_name || conv.participant_phone || 'unknown';
|
|
268
|
-
const updated = conv.updated_at ? new Date(conv.updated_at).toLocaleString() : '-';
|
|
269
|
-
const msgs = conv.message_count != null ? `${conv.message_count} msgs` : '';
|
|
270
|
-
console.log(` ${conv.conversation_id} ${participant.padEnd(20)} ${msgs.padEnd(10)} ${updated}`);
|
|
271
|
-
}
|
|
272
|
-
}
|
|
273
|
-
else {
|
|
274
|
-
// Original list path (backward compat)
|
|
275
|
-
const result = await client.getConversations(hubId, { status, limit, offset });
|
|
276
|
-
if (jsonOutput) {
|
|
277
|
-
console.log(JSON.stringify(result, null, 2));
|
|
278
|
-
return;
|
|
279
|
-
}
|
|
280
|
-
if (result.conversations.length === 0) {
|
|
281
|
-
console.log('No conversations found.');
|
|
282
|
-
return;
|
|
283
|
-
}
|
|
284
|
-
console.log(`Conversations (${result.conversations.length} of ${result.total}):\n`);
|
|
285
|
-
for (const conv of result.conversations) {
|
|
286
|
-
const user = conv.user_name || conv.user_email || 'unknown';
|
|
287
|
-
const updated = conv.updated_at ? new Date(conv.updated_at).toLocaleString() : '-';
|
|
288
|
-
console.log(` ${conv.conversation_id} ${conv.conversation_status.padEnd(7)} ${user.padEnd(20)} ${updated}`);
|
|
289
|
-
}
|
|
290
|
-
}
|
|
291
|
-
}
|
|
292
|
-
//# sourceMappingURL=conversations.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"conversations.js","sourceRoot":"","sources":["../../src/commands/conversations.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* wayai create-credential — create an organization credential (API key, token, or basic auth)
|
|
3
|
-
*
|
|
4
|
-
* Usage:
|
|
5
|
-
* wayai create-credential --name "openai-key" --type "Bearer Token"
|
|
6
|
-
* wayai create-credential --name "my-api" --type "Basic Auth" --org <uuid>
|
|
7
|
-
* echo "$SECRET" | wayai create-credential --name "openai-key" --type "Bearer Token" --stdin
|
|
8
|
-
*/
|
|
9
|
-
interface ParsedArgs {
|
|
10
|
-
name: string | undefined;
|
|
11
|
-
type: string | undefined;
|
|
12
|
-
orgId: string | undefined;
|
|
13
|
-
description: string | undefined;
|
|
14
|
-
tags: string[];
|
|
15
|
-
environment: string | undefined;
|
|
16
|
-
stdin: boolean;
|
|
17
|
-
}
|
|
18
|
-
export declare function parseArgs(args: string[]): ParsedArgs;
|
|
19
|
-
export declare function createCredentialCommand(args: string[]): Promise<void>;
|
|
20
|
-
export {};
|
|
@@ -1,146 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* wayai create-credential — create an organization credential (API key, token, or basic auth)
|
|
3
|
-
*
|
|
4
|
-
* Usage:
|
|
5
|
-
* wayai create-credential --name "openai-key" --type "Bearer Token"
|
|
6
|
-
* wayai create-credential --name "my-api" --type "Basic Auth" --org <uuid>
|
|
7
|
-
* echo "$SECRET" | wayai create-credential --name "openai-key" --type "Bearer Token" --stdin
|
|
8
|
-
*/
|
|
9
|
-
import { requireAuth } from '../lib/auth.js';
|
|
10
|
-
import { ApiClient, ApiError } from '../lib/api-client.js';
|
|
11
|
-
import { prompt, promptSecret, readStdin, resolveOrganizationId } from '../lib/utils.js';
|
|
12
|
-
import { VALID_AUTH_TYPES, VALID_ENVIRONMENTS, normalizeCliAuthType, normalizeCliEnvironment, mapSecretToCredentialFields, resolveTagIds, splitTagRefs, } from '../lib/credential-utils.js';
|
|
13
|
-
export function parseArgs(args) {
|
|
14
|
-
let name;
|
|
15
|
-
let type;
|
|
16
|
-
let orgId;
|
|
17
|
-
let description;
|
|
18
|
-
const tags = [];
|
|
19
|
-
let environment;
|
|
20
|
-
let stdin = false;
|
|
21
|
-
for (let i = 0; i < args.length; i++) {
|
|
22
|
-
if (args[i] === '--name' && args[i + 1]) {
|
|
23
|
-
name = args[++i];
|
|
24
|
-
}
|
|
25
|
-
else if (args[i] === '--type' && args[i + 1]) {
|
|
26
|
-
type = args[++i];
|
|
27
|
-
}
|
|
28
|
-
else if (args[i] === '--org' && args[i + 1]) {
|
|
29
|
-
orgId = args[++i];
|
|
30
|
-
}
|
|
31
|
-
else if (args[i] === '--description' && args[i + 1]) {
|
|
32
|
-
description = args[++i];
|
|
33
|
-
}
|
|
34
|
-
else if (args[i] === '--tag' && args[i + 1]) {
|
|
35
|
-
tags.push(args[++i]);
|
|
36
|
-
}
|
|
37
|
-
else if (args[i] === '--environment' && args[i + 1]) {
|
|
38
|
-
environment = args[++i];
|
|
39
|
-
}
|
|
40
|
-
else if (args[i] === '--stdin') {
|
|
41
|
-
stdin = true;
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
return { name, type, orgId, description, tags: splitTagRefs(tags), environment, stdin };
|
|
45
|
-
}
|
|
46
|
-
export async function createCredentialCommand(args) {
|
|
47
|
-
const parsed = parseArgs(args);
|
|
48
|
-
if (!parsed.name) {
|
|
49
|
-
console.error('Missing required flag: --name <credential-name>');
|
|
50
|
-
console.error('Usage: wayai create-credential --name "openai-key" --type "Bearer Token"');
|
|
51
|
-
process.exit(1);
|
|
52
|
-
}
|
|
53
|
-
if (!parsed.type) {
|
|
54
|
-
console.error('Missing required flag: --type <auth-type>');
|
|
55
|
-
console.error(`Supported types: ${VALID_AUTH_TYPES.join(', ')}`);
|
|
56
|
-
process.exit(1);
|
|
57
|
-
}
|
|
58
|
-
// Normalize legacy display names (e.g. "Bearer Token" → "bearer") for backward compat
|
|
59
|
-
const authType = normalizeCliAuthType(parsed.type);
|
|
60
|
-
if (!authType) {
|
|
61
|
-
console.error(`Invalid authentication type: "${parsed.type}"`);
|
|
62
|
-
console.error(`Supported types: ${VALID_AUTH_TYPES.join(', ')}`);
|
|
63
|
-
process.exit(1);
|
|
64
|
-
}
|
|
65
|
-
if (parsed.environment && !normalizeCliEnvironment(parsed.environment)) {
|
|
66
|
-
console.error(`Invalid environment: "${parsed.environment}"`);
|
|
67
|
-
console.error(`Supported environments: ${VALID_ENVIRONMENTS.join(', ')}`);
|
|
68
|
-
process.exit(1);
|
|
69
|
-
}
|
|
70
|
-
const { config, accessToken } = await requireAuth();
|
|
71
|
-
const client = new ApiClient({ apiUrl: config.api_url, accessToken });
|
|
72
|
-
const { organizationId } = await resolveOrganizationId(client, parsed.orgId);
|
|
73
|
-
// Resolve tag names → tag UUIDs (the backend stores credential tags as UUIDs).
|
|
74
|
-
let tagIds;
|
|
75
|
-
if (parsed.tags.length > 0) {
|
|
76
|
-
const orgTags = await client.listOrgTags(organizationId);
|
|
77
|
-
tagIds = resolveTagIds(parsed.tags, orgTags.data || []);
|
|
78
|
-
}
|
|
79
|
-
// Collect secret(s) based on auth type
|
|
80
|
-
const secrets = {};
|
|
81
|
-
if (parsed.stdin) {
|
|
82
|
-
if (process.stdin.isTTY) {
|
|
83
|
-
console.error('--stdin requires piped input. Example: echo "$SECRET" | wayai create-credential --name "key" --type "Bearer Token" --stdin');
|
|
84
|
-
process.exit(1);
|
|
85
|
-
}
|
|
86
|
-
const input = await readStdin();
|
|
87
|
-
if (!input) {
|
|
88
|
-
console.error('No input received from stdin.');
|
|
89
|
-
process.exit(1);
|
|
90
|
-
}
|
|
91
|
-
try {
|
|
92
|
-
Object.assign(secrets, mapSecretToCredentialFields(authType, input));
|
|
93
|
-
}
|
|
94
|
-
catch (err) {
|
|
95
|
-
console.error(err instanceof Error ? err.message : String(err));
|
|
96
|
-
process.exit(1);
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
else {
|
|
100
|
-
// Interactive prompt with masked input
|
|
101
|
-
switch (authType) {
|
|
102
|
-
case 'bearer':
|
|
103
|
-
secrets.access_token = await promptSecret('Enter access token: ');
|
|
104
|
-
break;
|
|
105
|
-
case 'api_key':
|
|
106
|
-
secrets.api_key = await promptSecret('Enter API key: ');
|
|
107
|
-
break;
|
|
108
|
-
case 'basic_auth':
|
|
109
|
-
secrets.username = await prompt('Enter username: ');
|
|
110
|
-
secrets.password = await promptSecret('Enter password: ');
|
|
111
|
-
break;
|
|
112
|
-
}
|
|
113
|
-
// Validate secrets are not empty
|
|
114
|
-
for (const [key, value] of Object.entries(secrets)) {
|
|
115
|
-
if (!value) {
|
|
116
|
-
console.error(`${key} cannot be empty.`);
|
|
117
|
-
process.exit(1);
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
console.log(`Creating credential "${parsed.name}" (${authType})...`);
|
|
122
|
-
let result;
|
|
123
|
-
try {
|
|
124
|
-
result = await client.createOrgCredential({
|
|
125
|
-
organization_id: organizationId,
|
|
126
|
-
credential_display_name: parsed.name,
|
|
127
|
-
authentication_type: authType,
|
|
128
|
-
...(parsed.description && { credential_description: parsed.description }),
|
|
129
|
-
...(tagIds && tagIds.length > 0 && { tags: tagIds }),
|
|
130
|
-
...(parsed.environment && { environment: parsed.environment }),
|
|
131
|
-
...secrets,
|
|
132
|
-
});
|
|
133
|
-
}
|
|
134
|
-
catch (err) {
|
|
135
|
-
if (err instanceof ApiError && err.status === 409) {
|
|
136
|
-
console.error(`\nA credential named "${parsed.name}" already exists in this organization.`);
|
|
137
|
-
console.error(`To rotate its secret or change its tags, use:\n wayai update-credential --name "${parsed.name}" --stdin`);
|
|
138
|
-
process.exit(1);
|
|
139
|
-
}
|
|
140
|
-
throw err;
|
|
141
|
-
}
|
|
142
|
-
console.log(`\nCredential created: ${result.data.credential_display_name}`);
|
|
143
|
-
console.log(` ID: ${result.data.organization_credential_id}`);
|
|
144
|
-
console.log(` Type: ${result.data.authentication_type}`);
|
|
145
|
-
}
|
|
146
|
-
//# sourceMappingURL=create-credential.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"create-credential.js","sourceRoot":"","sources":["../../src/commands/create-credential.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACzF,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAElB,oBAAoB,EACpB,uBAAuB,EACvB,2BAA2B,EAC3B,aAAa,EACb,YAAY,GACb,MAAM,4BAA4B,CAAC;AAYpC,MAAM,UAAU,SAAS,CAAC,IAAc;IACtC,IAAI,IAAwB,CAAC;IAC7B,IAAI,IAAwB,CAAC;IAC7B,IAAI,KAAyB,CAAC;IAC9B,IAAI,WAA+B,CAAC;IACpC,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,IAAI,WAA+B,CAAC;IACpC,IAAI,KAAK,GAAG,KAAK,CAAC;IAElB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YACxC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QACnB,CAAC;aAAM,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YAC/C,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QACnB,CAAC;aAAM,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,OAAO,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YAC9C,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QACpB,CAAC;aAAM,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,eAAe,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YACtD,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QAC1B,CAAC;aAAM,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,OAAO,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YAC9C,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACvB,CAAC;aAAM,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,eAAe,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YACtD,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QAC1B,CAAC;aAAM,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;YACjC,KAAK,GAAG,IAAI,CAAC;QACf,CAAC;IACH,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;AAC1F,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,IAAc;IAC1D,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAE/B,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACjB,OAAO,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;QACjE,OAAO,CAAC,KAAK,CAAC,0EAA0E,CAAC,CAAC;QAC1F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACjB,OAAO,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;QAC3D,OAAO,CAAC,KAAK,CAAC,oBAAoB,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,sFAAsF;IACtF,MAAM,QAAQ,GAAG,oBAAoB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACnD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,CAAC,KAAK,CAAC,iCAAiC,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC;QAC/D,OAAO,CAAC,KAAK,CAAC,oBAAoB,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,MAAM,CAAC,WAAW,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC;QACvE,OAAO,CAAC,KAAK,CAAC,yBAAyB,MAAM,CAAC,WAAW,GAAG,CAAC,CAAC;QAC9D,OAAO,CAAC,KAAK,CAAC,2BAA2B,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC1E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,WAAW,EAAE,CAAC;IACpD,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;IAEtE,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,qBAAqB,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IAE7E,+EAA+E;IAC/E,IAAI,MAA4B,CAAC;IACjC,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;QACzD,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,uCAAuC;IACvC,MAAM,OAAO,GAA2B,EAAE,CAAC;IAE3C,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACxB,OAAO,CAAC,KAAK,CAAC,4HAA4H,CAAC,CAAC;YAC5I,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,SAAS,EAAE,CAAC;QAChC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;YAC/C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,IAAI,CAAC;YACH,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,2BAA2B,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;QACvE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YAChE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;SAAM,CAAC;QACN,uCAAuC;QACvC,QAAQ,QAAQ,EAAE,CAAC;YACjB,KAAK,QAAQ;gBACX,OAAO,CAAC,YAAY,GAAG,MAAM,YAAY,CAAC,sBAAsB,CAAC,CAAC;gBAClE,MAAM;YACR,KAAK,SAAS;gBACZ,OAAO,CAAC,OAAO,GAAG,MAAM,YAAY,CAAC,iBAAiB,CAAC,CAAC;gBACxD,MAAM;YACR,KAAK,YAAY;gBACf,OAAO,CAAC,QAAQ,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;gBACpD,OAAO,CAAC,QAAQ,GAAG,MAAM,YAAY,CAAC,kBAAkB,CAAC,CAAC;gBAC1D,MAAM;QACV,CAAC;QAED,iCAAiC;QACjC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YACnD,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,OAAO,CAAC,KAAK,CAAC,GAAG,GAAG,mBAAmB,CAAC,CAAC;gBACzC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,wBAAwB,MAAM,CAAC,IAAI,MAAM,QAAQ,MAAM,CAAC,CAAC;IAErE,IAAI,MAAM,CAAC;IACX,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC;YACxC,eAAe,EAAE,cAAc;YAC/B,uBAAuB,EAAE,MAAM,CAAC,IAAI;YACpC,mBAAmB,EAAE,QAAQ;YAC7B,GAAG,CAAC,MAAM,CAAC,WAAW,IAAI,EAAE,sBAAsB,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC;YACzE,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;YACpD,GAAG,CAAC,MAAM,CAAC,WAAW,IAAI,EAAE,WAAW,EAAE,MAAM,CAAC,WAA0B,EAAE,CAAC;YAC7E,GAAG,OAAO;SACX,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,QAAQ,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAClD,OAAO,CAAC,KAAK,CAAC,yBAAyB,MAAM,CAAC,IAAI,wCAAwC,CAAC,CAAC;YAC5F,OAAO,CAAC,KAAK,CAAC,oFAAoF,MAAM,CAAC,IAAI,WAAW,CAAC,CAAC;YAC1H,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,yBAAyB,MAAM,CAAC,IAAI,CAAC,uBAAuB,EAAE,CAAC,CAAC;IAC5E,OAAO,CAAC,GAAG,CAAC,SAAS,MAAM,CAAC,IAAI,CAAC,0BAA0B,EAAE,CAAC,CAAC;IAC/D,OAAO,CAAC,GAAG,CAAC,WAAW,MAAM,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC;AAC5D,CAAC"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* wayai delete-history — delete conversation history on a hub
|
|
3
|
-
*
|
|
4
|
-
* Destructive and irreversible — use to reset test data during development.
|
|
5
|
-
* Preview hubs allow deleting any user (defaults to the caller). Production
|
|
6
|
-
* hubs only allow deleting your own end-user profile; pass --user-id with
|
|
7
|
-
* your own platform user_id in that case.
|
|
8
|
-
*
|
|
9
|
-
* Usage:
|
|
10
|
-
* wayai delete-history # caller's full history on this hub
|
|
11
|
-
* wayai delete-history -y # skip confirmation
|
|
12
|
-
* wayai delete-history --user-id <id> # target a specific user
|
|
13
|
-
* wayai delete-history --conversation-id <id> # delete just one conversation
|
|
14
|
-
*/
|
|
15
|
-
export declare function deleteHistoryCommand(args: string[]): Promise<void>;
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* wayai delete-history — delete conversation history on a hub
|
|
3
|
-
*
|
|
4
|
-
* Destructive and irreversible — use to reset test data during development.
|
|
5
|
-
* Preview hubs allow deleting any user (defaults to the caller). Production
|
|
6
|
-
* hubs only allow deleting your own end-user profile; pass --user-id with
|
|
7
|
-
* your own platform user_id in that case.
|
|
8
|
-
*
|
|
9
|
-
* Usage:
|
|
10
|
-
* wayai delete-history # caller's full history on this hub
|
|
11
|
-
* wayai delete-history -y # skip confirmation
|
|
12
|
-
* wayai delete-history --user-id <id> # target a specific user
|
|
13
|
-
* wayai delete-history --conversation-id <id> # delete just one conversation
|
|
14
|
-
*/
|
|
15
|
-
import { requireAuth } from '../lib/auth.js';
|
|
16
|
-
import { requireRepoConfig } from '../lib/repo-config.js';
|
|
17
|
-
import { resolveActiveHubId } from '../lib/workspace.js';
|
|
18
|
-
import { ApiClient } from '../lib/api-client.js';
|
|
19
|
-
import { confirm } from '../lib/utils.js';
|
|
20
|
-
function parseStringFlag(args, flag) {
|
|
21
|
-
const idx = args.findIndex((a) => a === flag);
|
|
22
|
-
if (idx !== -1) {
|
|
23
|
-
const next = args[idx + 1];
|
|
24
|
-
if (next && !next.startsWith('-'))
|
|
25
|
-
return next;
|
|
26
|
-
}
|
|
27
|
-
const prefix = `${flag}=`;
|
|
28
|
-
const inline = args.find((a) => a.startsWith(prefix));
|
|
29
|
-
if (inline)
|
|
30
|
-
return inline.slice(prefix.length);
|
|
31
|
-
return undefined;
|
|
32
|
-
}
|
|
33
|
-
export async function deleteHistoryCommand(args) {
|
|
34
|
-
const hubId = resolveActiveHubId(args);
|
|
35
|
-
const { config, accessToken } = await requireAuth();
|
|
36
|
-
requireRepoConfig();
|
|
37
|
-
const skipConfirm = args.includes('-y') || args.includes('--yes');
|
|
38
|
-
const userIdFlag = parseStringFlag(args, '--user-id');
|
|
39
|
-
const conversationId = parseStringFlag(args, '--conversation-id');
|
|
40
|
-
// Resolve target user_id before prompting — if me() fails (401/5xx), surface
|
|
41
|
-
// it before the user commits to a destructive confirmation.
|
|
42
|
-
const client = new ApiClient({ apiUrl: config.api_url, accessToken });
|
|
43
|
-
const userId = userIdFlag ?? (await client.me()).user_id;
|
|
44
|
-
if (!skipConfirm) {
|
|
45
|
-
const confirmed = await confirm('This will permanently delete conversation history on this hub. Continue?');
|
|
46
|
-
if (!confirmed) {
|
|
47
|
-
console.log('Aborted.');
|
|
48
|
-
return;
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
const result = await (conversationId
|
|
52
|
-
? client.deleteHistory(hubId, { userId, mode: 'current', conversationId })
|
|
53
|
-
: client.deleteHistory(hubId, { userId, mode: 'all' }));
|
|
54
|
-
console.log(`Deleted ${result.deleted_count} conversation(s).`);
|
|
55
|
-
}
|
|
56
|
-
//# sourceMappingURL=delete-history.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"delete-history.js","sourceRoot":"","sources":["../../src/commands/delete-history.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;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;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE1C,SAAS,eAAe,CAAC,IAAc,EAAE,IAAY;IACnD,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;IAC9C,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;QACf,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;QAC3B,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;IACjD,CAAC;IACD,MAAM,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC;IAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;IACtD,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC/C,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,IAAc;IACvD,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,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAClE,MAAM,UAAU,GAAG,eAAe,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IACtD,MAAM,cAAc,GAAG,eAAe,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC;IAElE,6EAA6E;IAC7E,4DAA4D;IAC5D,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;IACtE,MAAM,MAAM,GAAG,UAAU,IAAI,CAAC,MAAM,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC;IAEzD,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,SAAS,GAAG,MAAM,OAAO,CAC7B,0EAA0E,CAC3E,CAAC;QACF,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YACxB,OAAO;QACT,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,cAAc;QAClC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC;QAC1E,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;IAE1D,OAAO,CAAC,GAAG,CAAC,WAAW,MAAM,CAAC,aAAa,mBAAmB,CAAC,CAAC;AAClE,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function evalCaptureCommand(args: string[]): Promise<void>;
|