aui-agent-builder 0.3.20 → 0.3.21

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.
Files changed (68) hide show
  1. package/dist/api-client/index.d.ts +137 -1
  2. package/dist/api-client/index.d.ts.map +1 -1
  3. package/dist/api-client/index.js +282 -4
  4. package/dist/api-client/index.js.map +1 -1
  5. package/dist/commands/agents.d.ts +25 -6
  6. package/dist/commands/agents.d.ts.map +1 -1
  7. package/dist/commands/agents.js +408 -38
  8. package/dist/commands/agents.js.map +1 -1
  9. package/dist/commands/import-agent.d.ts +1 -0
  10. package/dist/commands/import-agent.d.ts.map +1 -1
  11. package/dist/commands/import-agent.js +214 -27
  12. package/dist/commands/import-agent.js.map +1 -1
  13. package/dist/commands/list-agents.d.ts +1 -1
  14. package/dist/commands/list-agents.d.ts.map +1 -1
  15. package/dist/commands/list-agents.js +5 -3
  16. package/dist/commands/list-agents.js.map +1 -1
  17. package/dist/commands/login.d.ts.map +1 -1
  18. package/dist/commands/login.js +53 -5
  19. package/dist/commands/login.js.map +1 -1
  20. package/dist/commands/pull-agent.js +23 -2
  21. package/dist/commands/pull-agent.js.map +1 -1
  22. package/dist/commands/push.d.ts.map +1 -1
  23. package/dist/commands/push.js +90 -1
  24. package/dist/commands/push.js.map +1 -1
  25. package/dist/commands/serve.d.ts.map +1 -1
  26. package/dist/commands/serve.js +85 -0
  27. package/dist/commands/serve.js.map +1 -1
  28. package/dist/commands/version.d.ts +42 -0
  29. package/dist/commands/version.d.ts.map +1 -0
  30. package/dist/commands/version.js +625 -0
  31. package/dist/commands/version.js.map +1 -0
  32. package/dist/config/index.d.ts +9 -0
  33. package/dist/config/index.d.ts.map +1 -1
  34. package/dist/config/index.js +6 -0
  35. package/dist/config/index.js.map +1 -1
  36. package/dist/index.js +119 -3
  37. package/dist/index.js.map +1 -1
  38. package/dist/services/agents.service.d.ts +13 -4
  39. package/dist/services/agents.service.d.ts.map +1 -1
  40. package/dist/services/agents.service.js +84 -8
  41. package/dist/services/agents.service.js.map +1 -1
  42. package/dist/services/auth.service.d.ts +8 -3
  43. package/dist/services/auth.service.d.ts.map +1 -1
  44. package/dist/services/auth.service.js +85 -4
  45. package/dist/services/auth.service.js.map +1 -1
  46. package/dist/services/list-agents.service.d.ts +2 -2
  47. package/dist/services/list-agents.service.d.ts.map +1 -1
  48. package/dist/services/list-agents.service.js +10 -2
  49. package/dist/services/list-agents.service.js.map +1 -1
  50. package/dist/ui/views/AgentsView.d.ts +9 -3
  51. package/dist/ui/views/AgentsView.d.ts.map +1 -1
  52. package/dist/ui/views/AgentsView.js +27 -9
  53. package/dist/ui/views/AgentsView.js.map +1 -1
  54. package/dist/ui/views/ImportAgentView.d.ts +1 -0
  55. package/dist/ui/views/ImportAgentView.d.ts.map +1 -1
  56. package/dist/ui/views/ImportAgentView.js +1 -0
  57. package/dist/ui/views/ImportAgentView.js.map +1 -1
  58. package/dist/ui/views/ListAgentsView.d.ts.map +1 -1
  59. package/dist/ui/views/ListAgentsView.js +7 -2
  60. package/dist/ui/views/ListAgentsView.js.map +1 -1
  61. package/dist/ui/views/LoginView.d.ts.map +1 -1
  62. package/dist/ui/views/LoginView.js +2 -0
  63. package/dist/ui/views/LoginView.js.map +1 -1
  64. package/dist/web/assets/index-CJEqyVPz.js +9 -0
  65. package/dist/web/assets/{index-ClNGfyF3.css → index-CYj6wTpk.css} +1 -1
  66. package/dist/web/index.html +2 -2
  67. package/package.json +1 -1
  68. package/dist/web/assets/index-D9KHGyk2.js +0 -9
@@ -0,0 +1,625 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { render } from "ink";
3
+ import { Box, Text } from "ink";
4
+ import inquirer from "inquirer";
5
+ import chalk from "chalk";
6
+ import { getConfig, loadSession, } from "../config/index.js";
7
+ import { AUIClient } from "../api-client/index.js";
8
+ import { AuthenticationError } from "../errors/index.js";
9
+ import { Header, StatusLine, Spinner, ErrorDisplay, Divider, KeyValueGroup, } from "../ui/components/index.js";
10
+ import { colors, icons } from "../ui/theme.js";
11
+ import { loadAgentSettingsApiKey } from "../config/index.js";
12
+ // ─── Ink Rendering Helpers ───
13
+ function log(node) {
14
+ const { unmount } = render(node);
15
+ unmount();
16
+ }
17
+ function startSpinner(label) {
18
+ const inst = render(_jsx(Spinner, { label: label }));
19
+ return {
20
+ succeed(msg) {
21
+ inst.unmount();
22
+ log(_jsx(StatusLine, { kind: "success", label: msg }));
23
+ },
24
+ warn(msg) {
25
+ inst.unmount();
26
+ log(_jsx(StatusLine, { kind: "warning", label: msg }));
27
+ },
28
+ fail(msg) {
29
+ inst.unmount();
30
+ log(_jsx(StatusLine, { kind: "error", label: msg }));
31
+ },
32
+ stop() {
33
+ inst.unmount();
34
+ },
35
+ };
36
+ }
37
+ // ─── Helpers ───
38
+ function vLabel(v) {
39
+ return `v${v.version_number}.${v.version_revision_number}`;
40
+ }
41
+ function statusColor(status) {
42
+ if (status === "published")
43
+ return colors.success;
44
+ if (status === "draft")
45
+ return colors.warning;
46
+ return colors.muted;
47
+ }
48
+ function statsLabel(stats) {
49
+ return `total:${stats.total ?? "?"} W:${stats.workflows} P:${stats.policies} I:${stats.integrations ?? 0} Pr:${stats.parameters ?? 0}`;
50
+ }
51
+ function getAuthenticatedClient() {
52
+ const config = getConfig();
53
+ if (!config.isAuthenticated) {
54
+ throw new AuthenticationError("Not logged in.");
55
+ }
56
+ const session = loadSession();
57
+ const client = new AUIClient({
58
+ baseUrl: config.apiUrl,
59
+ authToken: config.authToken,
60
+ accountId: config.accountId,
61
+ organizationId: config.organizationId,
62
+ environment: config.environment,
63
+ });
64
+ const key = loadAgentSettingsApiKey();
65
+ if (key)
66
+ client.setAgentSettingsApiKey(key);
67
+ return { client, userId: session.user_id };
68
+ }
69
+ async function resolveAgentId(client, agentIdArg) {
70
+ if (agentIdArg) {
71
+ return client.agentManagement.getAgent(agentIdArg);
72
+ }
73
+ const session = loadSession();
74
+ // Try direct lookup by agent_management_id from session
75
+ if (session.agent_management_id) {
76
+ try {
77
+ return await client.agentManagement.getAgent(session.agent_management_id);
78
+ }
79
+ catch {
80
+ // ID might be stale, fall through to listing
81
+ }
82
+ }
83
+ const allAgents = [];
84
+ let page = 1;
85
+ let hasMore = true;
86
+ try {
87
+ while (hasMore) {
88
+ const resp = await client.agentManagement.listAgents(client.getOrganizationId(), page, 50);
89
+ allAgents.push(...resp.items);
90
+ hasMore = page < resp.pages;
91
+ page++;
92
+ }
93
+ }
94
+ catch {
95
+ // agent-management not available, fall back to networks
96
+ }
97
+ // Fall back to old networks endpoint and create a synthetic AgentInfo
98
+ if (allAgents.length === 0) {
99
+ try {
100
+ const resp = await client.networks.list();
101
+ const networks = resp.data;
102
+ if (networks.length === 0) {
103
+ throw new Error("No agents found. Create one first with: aui agents --create");
104
+ }
105
+ for (const n of networks) {
106
+ allAgents.push({
107
+ id: n._id || n.id,
108
+ name: n.name,
109
+ scope: {
110
+ network_id: n._id || n.id,
111
+ account_id: n.account || null,
112
+ organization_id: n.organization || null,
113
+ network_category_id: typeof n.category === "string" ? n.category : n.category?._id || null,
114
+ type: "NETWORK",
115
+ },
116
+ active_version_id: null,
117
+ created_at: n.createdAt,
118
+ created_by: n.createdBy,
119
+ updated_at: n.updatedAt,
120
+ scope_id: n._id || n.id,
121
+ });
122
+ }
123
+ }
124
+ catch (err) {
125
+ if (err.message?.includes("No agents found"))
126
+ throw err;
127
+ throw new Error("No agents found. Create one first with: aui agents --create");
128
+ }
129
+ }
130
+ if (session.network_id) {
131
+ const match = allAgents.find((a) => a.scope.network_id === session.network_id ||
132
+ a.id === session.network_id);
133
+ if (match)
134
+ return match;
135
+ }
136
+ if (allAgents.length === 1) {
137
+ return allAgents[0];
138
+ }
139
+ const { selected } = await inquirer.prompt([
140
+ {
141
+ type: "list",
142
+ name: "selected",
143
+ message: "Select agent:",
144
+ choices: allAgents.map((a) => ({
145
+ name: `${a.name} — ${a.id}`,
146
+ value: a,
147
+ })),
148
+ pageSize: 15,
149
+ },
150
+ ]);
151
+ return selected;
152
+ }
153
+ async function fetchAllVersions(client, agentId) {
154
+ const all = [];
155
+ let page = 1;
156
+ let hasMore = true;
157
+ while (hasMore) {
158
+ const resp = await client.agentManagement.listVersions(agentId, page, 50);
159
+ all.push(...resp.items);
160
+ hasMore = page < resp.pages;
161
+ page++;
162
+ }
163
+ return all;
164
+ }
165
+ // ─── Interactive Menu ───
166
+ export async function versionMenu() {
167
+ const { client } = getAuthenticatedClient();
168
+ const session = loadSession();
169
+ log(_jsx(Header, { title: "Version Management" }));
170
+ log(_jsx(StatusLine, { kind: "info", label: `Agent: ${session.network_name || session.network_id || "none"}` }));
171
+ const { action } = await inquirer.prompt([
172
+ {
173
+ type: "list",
174
+ name: "action",
175
+ message: "What would you like to do?",
176
+ choices: [
177
+ { name: "List versions", value: "list" },
178
+ { name: "Create a new draft", value: "create" },
179
+ { name: "View version details", value: "get" },
180
+ new inquirer.Separator(),
181
+ { name: "Publish a draft", value: "publish" },
182
+ { name: "Activate a version", value: "activate" },
183
+ { name: "Archive a version", value: "archive" },
184
+ new inquirer.Separator(),
185
+ { name: "Back", value: "back" },
186
+ ],
187
+ },
188
+ ]);
189
+ if (action === "back")
190
+ return;
191
+ switch (action) {
192
+ case "list":
193
+ await versionList();
194
+ break;
195
+ case "create":
196
+ await versionCreate({});
197
+ break;
198
+ case "get":
199
+ await versionGet();
200
+ break;
201
+ case "publish":
202
+ await versionPublish();
203
+ break;
204
+ case "activate":
205
+ await versionActivate();
206
+ break;
207
+ case "archive":
208
+ await versionArchive();
209
+ break;
210
+ }
211
+ }
212
+ // ─── List Versions ───
213
+ export async function versionList(agentIdArg) {
214
+ const { client } = getAuthenticatedClient();
215
+ const spinner = startSpinner("Fetching agent and versions...");
216
+ try {
217
+ const agent = await resolveAgentId(client, agentIdArg);
218
+ const versions = await fetchAllVersions(client, agent.id);
219
+ spinner.succeed(`Found ${versions.length} version(s) for "${agent.name}"`);
220
+ if (versions.length === 0) {
221
+ log(_jsx(StatusLine, { kind: "muted", label: "No versions found. Create one with: aui version create" }));
222
+ return;
223
+ }
224
+ log(_jsxs(Box, { flexDirection: "column", paddingX: 1, children: [_jsx(Box, { marginBottom: 1, children: _jsxs(Text, { color: colors.muted, children: ["Active version: ", agent.active_version_id || "none"] }) }), _jsxs(Box, { children: [_jsx(Box, { width: 10, children: _jsx(Text, { bold: true, children: "Version" }) }), _jsx(Box, { width: 12, children: _jsx(Text, { bold: true, children: "Status" }) }), _jsx(Box, { width: 26, children: _jsx(Text, { bold: true, children: "ID" }) }), _jsx(Box, { width: 20, children: _jsx(Text, { bold: true, children: "Stats" }) }), _jsx(Box, { width: 16, children: _jsx(Text, { bold: true, children: "Label" }) }), _jsx(Box, { children: _jsx(Text, { bold: true, children: "Created" }) })] }), _jsx(Divider, { width: 100 }), versions.map((v) => {
225
+ const isActive = v.id === agent.active_version_id;
226
+ return (_jsxs(Box, { children: [_jsx(Box, { width: 10, children: _jsxs(Text, { color: isActive ? colors.brand : colors.text, bold: isActive, children: [isActive ? `${icons.info} ` : " ", vLabel(v)] }) }), _jsx(Box, { width: 12, children: _jsx(Text, { color: statusColor(v.status), children: v.status }) }), _jsx(Box, { width: 26, children: _jsx(Text, { color: colors.muted, children: v.id }) }), _jsx(Box, { width: 20, children: _jsx(Text, { color: colors.muted, children: statsLabel(v.stats) }) }), _jsx(Box, { width: 16, children: _jsx(Text, { color: colors.muted, children: v.label || "-" }) }), _jsx(Box, { children: _jsx(Text, { color: colors.muted, children: new Date(v.created_at).toLocaleDateString() }) })] }, v.id));
227
+ }), _jsx(Box, { marginTop: 1, children: _jsxs(Text, { color: colors.muted, children: [icons.info, " = active version"] }) })] }));
228
+ }
229
+ catch (error) {
230
+ spinner.fail("Failed to fetch versions");
231
+ log(_jsx(ErrorDisplay, { error: error }));
232
+ }
233
+ }
234
+ export async function versionCreate(options) {
235
+ const { client, userId } = getAuthenticatedClient();
236
+ const agentSpinner = startSpinner("Resolving agent...");
237
+ let agent;
238
+ try {
239
+ agent = await resolveAgentId(client, options.agentId);
240
+ agentSpinner.succeed(`Agent: ${agent.name}`);
241
+ }
242
+ catch (error) {
243
+ agentSpinner.fail("Failed to resolve agent");
244
+ log(_jsx(ErrorDisplay, { error: error }));
245
+ return null;
246
+ }
247
+ let source = options.source;
248
+ let fromVersion = options.from;
249
+ let bumpMode = options.bump;
250
+ let label = options.label;
251
+ let tags = options.tags?.split(",").map((t) => t.trim()).filter(Boolean);
252
+ let notes = options.notes;
253
+ if (!source) {
254
+ const versions = await fetchAllVersions(client, agent.id);
255
+ const { sourceChoice } = await inquirer.prompt([
256
+ {
257
+ type: "list",
258
+ name: "sourceChoice",
259
+ message: "How to create the new version?",
260
+ choices: [
261
+ { name: "Snapshot from current scope", value: "agent-scope" },
262
+ ...(versions.length > 0
263
+ ? [{ name: "Clone from existing version", value: "version" }]
264
+ : []),
265
+ ],
266
+ },
267
+ ]);
268
+ source = sourceChoice;
269
+ if (source === "version") {
270
+ const { selectedVersion } = await inquirer.prompt([
271
+ {
272
+ type: "list",
273
+ name: "selectedVersion",
274
+ message: "Clone from which version?",
275
+ choices: versions.map((v) => ({
276
+ name: `${vLabel(v)} [${v.status}] ${v.label || ""} — ${statsLabel(v.stats)}`,
277
+ value: v.id,
278
+ })),
279
+ pageSize: 15,
280
+ },
281
+ ]);
282
+ fromVersion = selectedVersion;
283
+ }
284
+ if (fromVersion) {
285
+ const { bump } = await inquirer.prompt([
286
+ {
287
+ type: "list",
288
+ name: "bump",
289
+ message: "Create as:",
290
+ choices: [
291
+ { name: "New version number (e.g. v3.0 → v4.0)", value: "version_number" },
292
+ { name: "Revision of source (e.g. v3.0 → v3.1)", value: "version_revision_number" },
293
+ ],
294
+ },
295
+ ]);
296
+ bumpMode = bump;
297
+ }
298
+ const meta = await inquirer.prompt([
299
+ { type: "input", name: "label", message: "Label (optional):", default: "" },
300
+ { type: "input", name: "tags", message: "Tags (comma-separated, optional):", default: "" },
301
+ { type: "input", name: "notes", message: "Notes (optional):", default: "" },
302
+ ]);
303
+ if (meta.label)
304
+ label = meta.label;
305
+ if (meta.tags)
306
+ tags = meta.tags.split(",").map((t) => t.trim()).filter(Boolean);
307
+ if (meta.notes)
308
+ notes = meta.notes;
309
+ }
310
+ const spinner = startSpinner("Creating draft version...");
311
+ try {
312
+ const draft = await client.agentManagement.createDraft(agent.id, {
313
+ source: source || "agent-scope",
314
+ ...(fromVersion ? { from_version: fromVersion } : {}),
315
+ bump_mode: bumpMode || "version_number",
316
+ created_by: userId,
317
+ ...(label ? { label } : {}),
318
+ ...(tags && tags.length > 0 ? { tags } : {}),
319
+ ...(notes ? { notes } : {}),
320
+ });
321
+ spinner.succeed(`Draft created: ${vLabel(draft)} [${draft.status}]`);
322
+ log(_jsx(Box, { flexDirection: "column", paddingX: 1, children: _jsx(KeyValueGroup, { items: [
323
+ { label: "Version ID:", value: draft.id },
324
+ { label: "Version:", value: vLabel(draft) },
325
+ { label: "Status:", value: draft.status },
326
+ ...(draft.label ? [{ label: "Label:", value: draft.label }] : []),
327
+ { label: "Entities:", value: String(draft.stats?.total ?? 0) },
328
+ ] }) }));
329
+ return draft;
330
+ }
331
+ catch (error) {
332
+ spinner.fail("Failed to create draft");
333
+ log(_jsx(ErrorDisplay, { error: error }));
334
+ return null;
335
+ }
336
+ }
337
+ // ─── Get Version Details ───
338
+ export async function versionGet(versionIdArg, agentIdArg) {
339
+ const { client } = getAuthenticatedClient();
340
+ const agentSpinner = startSpinner("Resolving agent...");
341
+ let agent;
342
+ try {
343
+ agent = await resolveAgentId(client, agentIdArg);
344
+ agentSpinner.succeed(`Agent: ${agent.name}`);
345
+ }
346
+ catch (error) {
347
+ agentSpinner.fail("Failed to resolve agent");
348
+ log(_jsx(ErrorDisplay, { error: error }));
349
+ return;
350
+ }
351
+ let versionId = versionIdArg;
352
+ if (!versionId) {
353
+ const versions = await fetchAllVersions(client, agent.id);
354
+ if (versions.length === 0) {
355
+ log(_jsx(StatusLine, { kind: "warning", label: "No versions found." }));
356
+ return;
357
+ }
358
+ const { selected } = await inquirer.prompt([
359
+ {
360
+ type: "list",
361
+ name: "selected",
362
+ message: "Select version to view:",
363
+ choices: versions.map((v) => ({
364
+ name: `${vLabel(v)} [${v.status}] ${v.label || ""}`,
365
+ value: v.id,
366
+ })),
367
+ pageSize: 15,
368
+ },
369
+ ]);
370
+ versionId = selected;
371
+ }
372
+ const spinner = startSpinner("Fetching version details...");
373
+ try {
374
+ const version = await client.agentManagement.getVersion(agent.id, versionId);
375
+ spinner.succeed(`Version: ${vLabel(version)} [${version.status}]`);
376
+ const isActive = version.id === agent.active_version_id;
377
+ log(_jsxs(Box, { flexDirection: "column", paddingX: 1, paddingY: 1, children: [_jsx(Header, { title: `Version ${vLabel(version)}` }), _jsx(KeyValueGroup, { items: [
378
+ { label: "ID:", value: version.id },
379
+ { label: "Status:", value: `${version.status}${isActive ? " (active)" : ""}` },
380
+ ...(version.label ? [{ label: "Label:", value: version.label }] : []),
381
+ ...(version.tags.length > 0 ? [{ label: "Tags:", value: version.tags.join(", ") }] : []),
382
+ ...(version.notes ? [{ label: "Notes:", value: version.notes }] : []),
383
+ { label: "Stats:", value: statsLabel(version.stats) },
384
+ ...(version.parent_version_id ? [{ label: "Parent:", value: version.parent_version_id }] : []),
385
+ ...(version.bundle_hash ? [{ label: "Bundle hash:", value: version.bundle_hash }] : []),
386
+ { label: "Created:", value: `${new Date(version.created_at).toLocaleString()} by ${version.created_by}` },
387
+ ...(version.published_at ? [{ label: "Published:", value: `${new Date(version.published_at).toLocaleString()} by ${version.published_by}` }] : []),
388
+ ] })] }));
389
+ }
390
+ catch (error) {
391
+ spinner.fail("Failed to fetch version");
392
+ log(_jsx(ErrorDisplay, { error: error }));
393
+ }
394
+ }
395
+ // ─── Publish Version ───
396
+ export async function versionPublish(versionIdArg, agentIdArg) {
397
+ const { client, userId } = getAuthenticatedClient();
398
+ const agent = await resolveWithSpinner(client, agentIdArg);
399
+ if (!agent)
400
+ return;
401
+ let versionId = versionIdArg;
402
+ if (!versionId) {
403
+ const versions = await fetchAllVersions(client, agent.id);
404
+ const drafts = versions.filter((v) => v.status === "draft");
405
+ if (drafts.length === 0) {
406
+ log(_jsx(StatusLine, { kind: "warning", label: "No draft versions to publish." }));
407
+ return;
408
+ }
409
+ const { selected } = await inquirer.prompt([
410
+ {
411
+ type: "list",
412
+ name: "selected",
413
+ message: "Select draft to publish:",
414
+ choices: drafts.map((v) => ({
415
+ name: `${vLabel(v)} — ${statsLabel(v.stats)} ${v.label || ""}`,
416
+ value: v.id,
417
+ })),
418
+ pageSize: 15,
419
+ },
420
+ ]);
421
+ versionId = selected;
422
+ }
423
+ const { confirm } = await inquirer.prompt([
424
+ {
425
+ type: "confirm",
426
+ name: "confirm",
427
+ message: "Publishing locks this version permanently. Continue?",
428
+ default: false,
429
+ },
430
+ ]);
431
+ if (!confirm) {
432
+ log(_jsx(StatusLine, { kind: "muted", label: "Cancelled." }));
433
+ return;
434
+ }
435
+ const spinner = startSpinner("Publishing version...");
436
+ try {
437
+ const published = await client.agentManagement.publishVersion(agent.id, versionId, userId);
438
+ spinner.succeed(`Published: ${vLabel(published)} [${published.status}]`);
439
+ }
440
+ catch (error) {
441
+ spinner.fail("Failed to publish version");
442
+ log(_jsx(ErrorDisplay, { error: error }));
443
+ }
444
+ }
445
+ // ─── Activate Version ───
446
+ export async function versionActivate(versionIdArg, agentIdArg) {
447
+ const { client } = getAuthenticatedClient();
448
+ const agent = await resolveWithSpinner(client, agentIdArg);
449
+ if (!agent)
450
+ return;
451
+ let versionId = versionIdArg;
452
+ if (!versionId) {
453
+ const versions = await fetchAllVersions(client, agent.id);
454
+ const published = versions.filter((v) => v.status === "published");
455
+ if (published.length === 0) {
456
+ log(_jsx(StatusLine, { kind: "warning", label: "No published versions to activate." }));
457
+ return;
458
+ }
459
+ const { selected } = await inquirer.prompt([
460
+ {
461
+ type: "list",
462
+ name: "selected",
463
+ message: "Select version to activate:",
464
+ choices: published.map((v) => {
465
+ const isActive = v.id === agent.active_version_id;
466
+ return {
467
+ name: `${vLabel(v)} ${isActive ? chalk.green("← active") : ""} — ${statsLabel(v.stats)}`,
468
+ value: v.id,
469
+ };
470
+ }),
471
+ pageSize: 15,
472
+ },
473
+ ]);
474
+ versionId = selected;
475
+ }
476
+ const { confirm } = await inquirer.prompt([
477
+ {
478
+ type: "confirm",
479
+ name: "confirm",
480
+ message: `Activate this version as the live configuration?`,
481
+ default: true,
482
+ },
483
+ ]);
484
+ if (!confirm) {
485
+ log(_jsx(StatusLine, { kind: "muted", label: "Cancelled." }));
486
+ return;
487
+ }
488
+ const spinner = startSpinner("Activating version...");
489
+ try {
490
+ await client.agentManagement.activateVersion(agent.id, versionId);
491
+ spinner.succeed(`Version activated successfully`);
492
+ }
493
+ catch (error) {
494
+ spinner.fail("Failed to activate version");
495
+ log(_jsx(ErrorDisplay, { error: error }));
496
+ }
497
+ }
498
+ // ─── Archive Version ───
499
+ export async function versionArchive(versionIdArg, agentIdArg) {
500
+ const { client } = getAuthenticatedClient();
501
+ const agent = await resolveWithSpinner(client, agentIdArg);
502
+ if (!agent)
503
+ return;
504
+ let versionId = versionIdArg;
505
+ if (!versionId) {
506
+ const versions = await fetchAllVersions(client, agent.id);
507
+ const archivable = versions.filter((v) => v.status === "published" && v.id !== agent.active_version_id);
508
+ if (archivable.length === 0) {
509
+ log(_jsx(StatusLine, { kind: "warning", label: "No versions available to archive (must be published and not active)." }));
510
+ return;
511
+ }
512
+ const { selected } = await inquirer.prompt([
513
+ {
514
+ type: "list",
515
+ name: "selected",
516
+ message: "Select version to archive:",
517
+ choices: archivable.map((v) => ({
518
+ name: `${vLabel(v)} — ${statsLabel(v.stats)} ${v.label || ""}`,
519
+ value: v.id,
520
+ })),
521
+ pageSize: 15,
522
+ },
523
+ ]);
524
+ versionId = selected;
525
+ }
526
+ const { confirm } = await inquirer.prompt([
527
+ {
528
+ type: "confirm",
529
+ name: "confirm",
530
+ message: "Archived versions cannot be activated. They can still be viewed and cloned. Continue?",
531
+ default: false,
532
+ },
533
+ ]);
534
+ if (!confirm) {
535
+ log(_jsx(StatusLine, { kind: "muted", label: "Cancelled." }));
536
+ return;
537
+ }
538
+ const spinner = startSpinner("Archiving version...");
539
+ try {
540
+ const archived = await client.agentManagement.archiveVersion(agent.id, versionId);
541
+ spinner.succeed(`Archived: ${vLabel(archived)} [${archived.status}]`);
542
+ }
543
+ catch (error) {
544
+ spinner.fail("Failed to archive version");
545
+ log(_jsx(ErrorDisplay, { error: error }));
546
+ }
547
+ }
548
+ export async function versionUpdate(versionIdArg, options = {}) {
549
+ const { client } = getAuthenticatedClient();
550
+ const agent = await resolveWithSpinner(client, options.agentId);
551
+ if (!agent)
552
+ return;
553
+ let versionId = versionIdArg;
554
+ if (!versionId) {
555
+ const versions = await fetchAllVersions(client, agent.id);
556
+ if (versions.length === 0) {
557
+ log(_jsx(StatusLine, { kind: "warning", label: "No versions found." }));
558
+ return;
559
+ }
560
+ const { selected } = await inquirer.prompt([
561
+ {
562
+ type: "list",
563
+ name: "selected",
564
+ message: "Select version to update:",
565
+ choices: versions.map((v) => ({
566
+ name: `${vLabel(v)} [${v.status}] ${v.label || ""}`,
567
+ value: v.id,
568
+ })),
569
+ pageSize: 15,
570
+ },
571
+ ]);
572
+ versionId = selected;
573
+ }
574
+ let { label, tags: tagsStr, notes } = options;
575
+ if (!label && !tagsStr && !notes) {
576
+ const answers = await inquirer.prompt([
577
+ { type: "input", name: "label", message: "Label (leave empty to skip):", default: "" },
578
+ { type: "input", name: "tags", message: "Tags (comma-separated, leave empty to skip):", default: "" },
579
+ { type: "input", name: "notes", message: "Notes (leave empty to skip):", default: "" },
580
+ ]);
581
+ label = answers.label || undefined;
582
+ tagsStr = answers.tags || undefined;
583
+ notes = answers.notes || undefined;
584
+ }
585
+ const updateData = {};
586
+ if (label)
587
+ updateData.label = label;
588
+ if (tagsStr)
589
+ updateData.tags = tagsStr.split(",").map((t) => t.trim()).filter(Boolean);
590
+ if (notes)
591
+ updateData.notes = notes;
592
+ if (Object.keys(updateData).length === 0) {
593
+ log(_jsx(StatusLine, { kind: "muted", label: "Nothing to update." }));
594
+ return;
595
+ }
596
+ const spinner = startSpinner("Updating version...");
597
+ try {
598
+ const updated = await client.agentManagement.updateVersion(agent.id, versionId, updateData);
599
+ spinner.succeed(`Updated: ${vLabel(updated)}`);
600
+ log(_jsx(Box, { paddingX: 1, children: _jsx(KeyValueGroup, { items: [
601
+ ...(updated.label ? [{ label: "Label:", value: updated.label }] : []),
602
+ ...(updated.tags.length > 0 ? [{ label: "Tags:", value: updated.tags.join(", ") }] : []),
603
+ ...(updated.notes ? [{ label: "Notes:", value: updated.notes }] : []),
604
+ ] }) }));
605
+ }
606
+ catch (error) {
607
+ spinner.fail("Failed to update version");
608
+ log(_jsx(ErrorDisplay, { error: error }));
609
+ }
610
+ }
611
+ // ─── Helper: resolve agent with spinner ───
612
+ async function resolveWithSpinner(client, agentIdArg) {
613
+ const spinner = startSpinner("Resolving agent...");
614
+ try {
615
+ const agent = await resolveAgentId(client, agentIdArg);
616
+ spinner.succeed(`Agent: ${agent.name}`);
617
+ return agent;
618
+ }
619
+ catch (error) {
620
+ spinner.fail("Failed to resolve agent");
621
+ log(_jsx(ErrorDisplay, { error: error }));
622
+ return null;
623
+ }
624
+ }
625
+ //# sourceMappingURL=version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/commands/version.tsx"],"names":[],"mappings":"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"}