@agentuity/cli 1.0.40 → 1.0.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.
Files changed (102) hide show
  1. package/dist/cli.d.ts.map +1 -1
  2. package/dist/cli.js +9 -1
  3. package/dist/cli.js.map +1 -1
  4. package/dist/cmd/build/ast.d.ts.map +1 -1
  5. package/dist/cmd/build/ast.js +3 -3
  6. package/dist/cmd/build/ast.js.map +1 -1
  7. package/dist/cmd/build/typecheck.d.ts.map +1 -1
  8. package/dist/cmd/build/typecheck.js +52 -1
  9. package/dist/cmd/build/typecheck.js.map +1 -1
  10. package/dist/cmd/build/vite/static-renderer.d.ts.map +1 -1
  11. package/dist/cmd/build/vite/static-renderer.js +22 -8
  12. package/dist/cmd/build/vite/static-renderer.js.map +1 -1
  13. package/dist/cmd/cloud/index.d.ts.map +1 -1
  14. package/dist/cmd/cloud/index.js +4 -0
  15. package/dist/cmd/cloud/index.js.map +1 -1
  16. package/dist/cmd/cloud/monitor.d.ts +3 -0
  17. package/dist/cmd/cloud/monitor.d.ts.map +1 -0
  18. package/dist/cmd/cloud/monitor.js +300 -0
  19. package/dist/cmd/cloud/monitor.js.map +1 -0
  20. package/dist/cmd/cloud/oidc/activity.d.ts +2 -0
  21. package/dist/cmd/cloud/oidc/activity.d.ts.map +1 -0
  22. package/dist/cmd/cloud/oidc/activity.js +54 -0
  23. package/dist/cmd/cloud/oidc/activity.js.map +1 -0
  24. package/dist/cmd/cloud/oidc/create.d.ts +2 -0
  25. package/dist/cmd/cloud/oidc/create.d.ts.map +1 -0
  26. package/dist/cmd/cloud/oidc/create.js +201 -0
  27. package/dist/cmd/cloud/oidc/create.js.map +1 -0
  28. package/dist/cmd/cloud/oidc/delete.d.ts +2 -0
  29. package/dist/cmd/cloud/oidc/delete.d.ts.map +1 -0
  30. package/dist/cmd/cloud/oidc/delete.js +56 -0
  31. package/dist/cmd/cloud/oidc/delete.js.map +1 -0
  32. package/dist/cmd/cloud/oidc/get.d.ts +2 -0
  33. package/dist/cmd/cloud/oidc/get.d.ts.map +1 -0
  34. package/dist/cmd/cloud/oidc/get.js +59 -0
  35. package/dist/cmd/cloud/oidc/get.js.map +1 -0
  36. package/dist/cmd/cloud/oidc/index.d.ts +3 -0
  37. package/dist/cmd/cloud/oidc/index.d.ts.map +1 -0
  38. package/dist/cmd/cloud/oidc/index.js +32 -0
  39. package/dist/cmd/cloud/oidc/index.js.map +1 -0
  40. package/dist/cmd/cloud/oidc/list.d.ts +2 -0
  41. package/dist/cmd/cloud/oidc/list.d.ts.map +1 -0
  42. package/dist/cmd/cloud/oidc/list.js +45 -0
  43. package/dist/cmd/cloud/oidc/list.js.map +1 -0
  44. package/dist/cmd/cloud/oidc/rotate-secret.d.ts +2 -0
  45. package/dist/cmd/cloud/oidc/rotate-secret.d.ts.map +1 -0
  46. package/dist/cmd/cloud/oidc/rotate-secret.js +63 -0
  47. package/dist/cmd/cloud/oidc/rotate-secret.js.map +1 -0
  48. package/dist/cmd/cloud/oidc/users.d.ts +2 -0
  49. package/dist/cmd/cloud/oidc/users.d.ts.map +1 -0
  50. package/dist/cmd/cloud/oidc/users.js +50 -0
  51. package/dist/cmd/cloud/oidc/users.js.map +1 -0
  52. package/dist/cmd/project/import.d.ts.map +1 -1
  53. package/dist/cmd/project/import.js +11 -1
  54. package/dist/cmd/project/import.js.map +1 -1
  55. package/dist/cmd/project/reconcile.d.ts +8 -0
  56. package/dist/cmd/project/reconcile.d.ts.map +1 -1
  57. package/dist/cmd/project/reconcile.js +150 -61
  58. package/dist/cmd/project/reconcile.js.map +1 -1
  59. package/dist/cmd/project/remote-import.d.ts +2 -0
  60. package/dist/cmd/project/remote-import.d.ts.map +1 -1
  61. package/dist/cmd/project/remote-import.js +2 -2
  62. package/dist/cmd/project/remote-import.js.map +1 -1
  63. package/dist/config.d.ts.map +1 -1
  64. package/dist/config.js +22 -6
  65. package/dist/config.js.map +1 -1
  66. package/dist/schema-parser.d.ts.map +1 -1
  67. package/dist/schema-parser.js +6 -2
  68. package/dist/schema-parser.js.map +1 -1
  69. package/dist/utils/jsonc.d.ts +13 -0
  70. package/dist/utils/jsonc.d.ts.map +1 -0
  71. package/dist/utils/jsonc.js +63 -0
  72. package/dist/utils/jsonc.js.map +1 -0
  73. package/dist/utils/route-migration.d.ts +2 -1
  74. package/dist/utils/route-migration.d.ts.map +1 -1
  75. package/dist/utils/route-migration.js +23 -32
  76. package/dist/utils/route-migration.js.map +1 -1
  77. package/dist/utils/zip.d.ts.map +1 -1
  78. package/dist/utils/zip.js +18 -2
  79. package/dist/utils/zip.js.map +1 -1
  80. package/package.json +6 -7
  81. package/src/cli.ts +9 -1
  82. package/src/cmd/build/ast.ts +6 -3
  83. package/src/cmd/build/typecheck.ts +60 -1
  84. package/src/cmd/build/vite/static-renderer.ts +24 -8
  85. package/src/cmd/cloud/index.ts +4 -0
  86. package/src/cmd/cloud/monitor.ts +375 -0
  87. package/src/cmd/cloud/oidc/activity.ts +61 -0
  88. package/src/cmd/cloud/oidc/create.ts +232 -0
  89. package/src/cmd/cloud/oidc/delete.ts +63 -0
  90. package/src/cmd/cloud/oidc/get.ts +65 -0
  91. package/src/cmd/cloud/oidc/index.ts +35 -0
  92. package/src/cmd/cloud/oidc/list.ts +50 -0
  93. package/src/cmd/cloud/oidc/rotate-secret.ts +77 -0
  94. package/src/cmd/cloud/oidc/users.ts +57 -0
  95. package/src/cmd/project/import.ts +11 -1
  96. package/src/cmd/project/reconcile.ts +147 -61
  97. package/src/cmd/project/remote-import.ts +4 -2
  98. package/src/config.ts +24 -6
  99. package/src/schema-parser.ts +8 -2
  100. package/src/utils/jsonc.ts +67 -0
  101. package/src/utils/route-migration.ts +29 -40
  102. package/src/utils/zip.ts +17 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"monitor.d.ts","sourceRoot":"","sources":["../../../src/cmd/cloud/monitor.ts"],"names":[],"mappings":"AAuBA,eAAO,MAAM,iBAAiB,sCAoH5B,CAAC;AA2OH,eAAe,iBAAiB,CAAC"}
@@ -0,0 +1,300 @@
1
+ import { z } from 'zod';
2
+ import { getMonitorNode, listDistressedNodes, listMonitorNodeContainers, listMonitorNodes, MonitorWebSocketClient, } from '@agentuity/core';
3
+ import { getAPIBaseURL } from '../../api';
4
+ import { getCommand } from '../../command-prefix';
5
+ import { createSubcommand } from '../../types';
6
+ import * as tui from '../../tui';
7
+ const monitorOptionsSchema = z.object({
8
+ machine: z.string().optional().describe('Monitor a specific machine id'),
9
+ deployment: z.string().optional().describe('Monitor machines for a deployment id'),
10
+ distressed: z.boolean().optional().describe('Only include distressed machines'),
11
+ snapshot: z.boolean().optional().describe('One-shot snapshot (no stream watch)'),
12
+ });
13
+ export const monitorSubcommand = createSubcommand({
14
+ name: 'monitor',
15
+ description: 'Monitor infrastructure machines in real time',
16
+ tags: ['read-only', 'slow', 'requires-auth'],
17
+ requires: { auth: true, apiClient: true },
18
+ optional: { org: true },
19
+ idempotent: true,
20
+ examples: [
21
+ { command: getCommand('cloud monitor --snapshot'), description: 'Show a monitor snapshot' },
22
+ {
23
+ command: getCommand('cloud monitor --distressed'),
24
+ description: 'Watch distressed machines',
25
+ },
26
+ { command: getCommand('cloud monitor --machine mach_123'), description: 'Watch one machine' },
27
+ ],
28
+ schema: {
29
+ options: monitorOptionsSchema,
30
+ },
31
+ webUrl: '/infrastructure/monitoring',
32
+ async handler(ctx) {
33
+ const { apiClient, options, opts, auth, config, orgId } = ctx;
34
+ if (opts.machine && opts.distressed) {
35
+ ctx.logger.fatal('--machine and --distressed are mutually exclusive.');
36
+ }
37
+ if (opts.deployment && opts.distressed) {
38
+ ctx.logger.fatal('--deployment and --distressed are mutually exclusive.');
39
+ }
40
+ if (opts.snapshot || options.json) {
41
+ const machines = await getSnapshotMachines({
42
+ apiClient,
43
+ machineId: opts.machine,
44
+ deploymentId: opts.deployment,
45
+ distressed: opts.distressed,
46
+ });
47
+ if (options.json) {
48
+ console.log(JSON.stringify(machines, null, 2));
49
+ return machines;
50
+ }
51
+ renderMachineTable(machines);
52
+ return machines;
53
+ }
54
+ const machineMap = new Map();
55
+ const initialMachines = await getSnapshotMachines({
56
+ apiClient,
57
+ machineId: opts.machine,
58
+ deploymentId: opts.deployment,
59
+ distressed: opts.distressed,
60
+ });
61
+ for (const machine of initialMachines) {
62
+ machineMap.set(machine.machineId, machine);
63
+ }
64
+ renderWatchTable(machineMap, {
65
+ mode: 'snapshot',
66
+ machineId: opts.machine,
67
+ deploymentId: opts.deployment,
68
+ distressed: opts.distressed,
69
+ });
70
+ tui.info('Connecting to monitoring stream...');
71
+ let processingChain = Promise.resolve();
72
+ let resolveWait = null;
73
+ const monitorClient = new MonitorWebSocketClient({
74
+ baseUrl: getAPIBaseURL(config),
75
+ token: auth.apiKey,
76
+ orgId,
77
+ scope: toMonitorScope(opts.machine, opts.deployment),
78
+ onOpen: () => {
79
+ tui.success('Connected to monitoring stream');
80
+ },
81
+ onError: (error) => {
82
+ tui.error(`Monitoring stream error: ${error.message}`);
83
+ },
84
+ onClose: () => {
85
+ tui.info('Monitoring stream disconnected');
86
+ resolveWait?.();
87
+ },
88
+ onMessage: (message) => {
89
+ processingChain = processingChain.then(async () => {
90
+ await applyMonitorMessage(machineMap, message, apiClient, opts.deployment);
91
+ renderWatchTable(machineMap, {
92
+ mode: 'watch',
93
+ machineId: opts.machine,
94
+ deploymentId: opts.deployment,
95
+ distressed: opts.distressed,
96
+ lastMessage: message,
97
+ });
98
+ });
99
+ },
100
+ });
101
+ monitorClient.connect();
102
+ await new Promise((resolve) => {
103
+ resolveWait = resolve;
104
+ const onSigInt = () => {
105
+ monitorClient.close();
106
+ process.off('SIGINT', onSigInt);
107
+ resolve();
108
+ };
109
+ process.on('SIGINT', onSigInt);
110
+ });
111
+ return Array.from(machineMap.values());
112
+ },
113
+ });
114
+ async function getSnapshotMachines(params) {
115
+ const { apiClient, machineId, deploymentId, distressed } = params;
116
+ let machines;
117
+ if (distressed) {
118
+ machines = await listDistressedNodes(apiClient);
119
+ }
120
+ else if (machineId) {
121
+ machines = [await getMonitorNode(apiClient, machineId)];
122
+ }
123
+ else {
124
+ machines = await listMonitorNodes(apiClient);
125
+ }
126
+ if (!deploymentId) {
127
+ return machines;
128
+ }
129
+ const results = await Promise.all(machines.map(async (machine) => {
130
+ const containers = await listMonitorNodeContainers(apiClient, machine.machineId);
131
+ const hasDeployment = containers.some((container) => container.deploymentId === deploymentId);
132
+ return hasDeployment ? machine : null;
133
+ }));
134
+ return results.filter((m) => m !== null);
135
+ }
136
+ function toMonitorScope(machineId, deploymentId) {
137
+ if (machineId) {
138
+ return { scope: 'machine', machineId };
139
+ }
140
+ if (deploymentId) {
141
+ return { scope: 'deployment', deploymentId };
142
+ }
143
+ return { scope: 'org' };
144
+ }
145
+ async function applyMonitorMessage(machineMap, message, apiClient, deploymentId) {
146
+ if (message.type === 'snapshot') {
147
+ machineMap.clear();
148
+ for (const machine of message.machines) {
149
+ machineMap.set(machine.machineId, machine);
150
+ }
151
+ if (deploymentId) {
152
+ await filterMapByDeployment(machineMap, apiClient, deploymentId);
153
+ }
154
+ return;
155
+ }
156
+ if (message.type === 'update') {
157
+ const existing = machineMap.get(message.machineId);
158
+ const next = {
159
+ machineId: message.machineId,
160
+ orgId: existing?.orgId ?? '',
161
+ report: message.report,
162
+ compositeScore: message.report.capacity?.compositeScore ?? existing?.compositeScore ?? 0,
163
+ health: message.health,
164
+ reportedAt: usecToISO(message.report.reportedAtUs) ?? existing?.reportedAt ?? '',
165
+ updatedAt: new Date().toISOString(),
166
+ gravity: existing?.gravity ?? '',
167
+ };
168
+ if (deploymentId) {
169
+ const containers = await listMonitorNodeContainers(apiClient, message.machineId);
170
+ const include = containers.some((container) => container.deploymentId === deploymentId);
171
+ if (!include) {
172
+ machineMap.delete(message.machineId);
173
+ return;
174
+ }
175
+ }
176
+ machineMap.set(message.machineId, next);
177
+ return;
178
+ }
179
+ const existing = machineMap.get(message.machineId);
180
+ if (existing) {
181
+ existing.health = message.health;
182
+ existing.updatedAt = new Date().toISOString();
183
+ machineMap.set(message.machineId, existing);
184
+ }
185
+ }
186
+ async function filterMapByDeployment(machineMap, apiClient, deploymentId) {
187
+ const entries = Array.from(machineMap.keys());
188
+ const results = await Promise.all(entries.map(async (machineId) => {
189
+ const containers = await listMonitorNodeContainers(apiClient, machineId);
190
+ const include = containers.some((container) => container.deploymentId === deploymentId);
191
+ return { machineId, include };
192
+ }));
193
+ for (const { machineId, include } of results) {
194
+ if (!include) {
195
+ machineMap.delete(machineId);
196
+ }
197
+ }
198
+ }
199
+ function renderWatchTable(machineMap, params) {
200
+ console.clear();
201
+ const subtitle = [
202
+ params.mode === 'watch' ? 'Live mode' : 'Snapshot mode',
203
+ params.machineId ? `machine=${params.machineId}` : undefined,
204
+ params.deploymentId ? `deployment=${params.deploymentId}` : undefined,
205
+ params.distressed ? 'distressed=true' : undefined,
206
+ ]
207
+ .filter(Boolean)
208
+ .join(' • ');
209
+ tui.header('Cloud Monitor');
210
+ if (subtitle) {
211
+ tui.info(subtitle);
212
+ }
213
+ if (params.lastMessage && params.lastMessage.type === 'state_change') {
214
+ tui.warning(`${params.lastMessage.machineId}: ${params.lastMessage.previousHealth} -> ${params.lastMessage.health}`);
215
+ }
216
+ renderMachineTable(Array.from(machineMap.values()));
217
+ tui.info('Press Ctrl+C to stop watching.');
218
+ }
219
+ function renderMachineTable(machines) {
220
+ if (machines.length === 0) {
221
+ tui.info('No machines found');
222
+ return;
223
+ }
224
+ const rows = machines
225
+ .slice()
226
+ .sort((a, b) => a.machineId.localeCompare(b.machineId))
227
+ .map((machine) => ({
228
+ Machine: machine.machineId,
229
+ Health: formatHealth(machine.health),
230
+ CPU: formatPercent(machine.report?.host?.cpu?.usagePercent),
231
+ Memory: formatPercent(machine.report?.host?.memory?.usagePercent),
232
+ Disk: formatPercent(maxDiskUsage(machine.report?.host?.disks)),
233
+ Pressure: formatScore(machine.compositeScore),
234
+ Containers: `${machine.report?.capacity?.runningContainers ?? 0}/${machine.report?.capacity?.totalContainers ?? 0}`,
235
+ 'Last Report': formatAge(machine.reportedAt),
236
+ }));
237
+ tui.table(rows, [
238
+ { name: 'Machine' },
239
+ { name: 'Health' },
240
+ { name: 'CPU', alignment: 'right' },
241
+ { name: 'Memory', alignment: 'right' },
242
+ { name: 'Disk', alignment: 'right' },
243
+ { name: 'Pressure', alignment: 'right' },
244
+ { name: 'Containers', alignment: 'right' },
245
+ { name: 'Last Report' },
246
+ ]);
247
+ }
248
+ function formatHealth(health) {
249
+ if (health === 'CONNECTED')
250
+ return '● CONNECTED';
251
+ if (health === 'STALE')
252
+ return '◌ STALE';
253
+ if (health === 'DISCONNECTED')
254
+ return '○ DISCONNECTED';
255
+ return health;
256
+ }
257
+ function formatPercent(value) {
258
+ if (value === undefined || value === null || Number.isNaN(value)) {
259
+ return '-';
260
+ }
261
+ return `${value.toFixed(1)}%`;
262
+ }
263
+ function formatScore(score) {
264
+ if (score === undefined || score === null || Number.isNaN(score)) {
265
+ return '-';
266
+ }
267
+ if (score >= 0.85) {
268
+ return `${score.toFixed(2)} ⚠`;
269
+ }
270
+ return score.toFixed(2);
271
+ }
272
+ function maxDiskUsage(disks) {
273
+ if (!disks || disks.length === 0) {
274
+ return undefined;
275
+ }
276
+ return Math.max(...disks.map((d) => d.usagePercent));
277
+ }
278
+ function formatAge(timestamp) {
279
+ const date = new Date(timestamp);
280
+ const time = date.getTime();
281
+ if (Number.isNaN(time)) {
282
+ return '-';
283
+ }
284
+ const diff = Date.now() - time;
285
+ if (diff < 60_000)
286
+ return `${Math.max(0, Math.floor(diff / 1000))}s ago`;
287
+ if (diff < 3_600_000)
288
+ return `${Math.floor(diff / 60_000)}m ago`;
289
+ if (diff < 86_400_000)
290
+ return `${Math.floor(diff / 3_600_000)}h ago`;
291
+ return `${Math.floor(diff / 86_400_000)}d ago`;
292
+ }
293
+ function usecToISO(us) {
294
+ if (us === undefined || us <= 0 || Number.isNaN(us)) {
295
+ return undefined;
296
+ }
297
+ return new Date(Math.floor(us / 1000)).toISOString();
298
+ }
299
+ export default monitorSubcommand;
300
+ //# sourceMappingURL=monitor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"monitor.js","sourceRoot":"","sources":["../../../src/cmd/cloud/monitor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare const activitySubcommand: import("../../..").SubcommandDefinition;
2
+ //# sourceMappingURL=activity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"activity.d.ts","sourceRoot":"","sources":["../../../../src/cmd/cloud/oidc/activity.ts"],"names":[],"mappings":"AAcA,eAAO,MAAM,kBAAkB,yCA8C7B,CAAC"}
@@ -0,0 +1,54 @@
1
+ import { oauthClientActivity } from '@agentuity/core';
2
+ import { z } from 'zod';
3
+ import { getCommand } from '../../../command-prefix';
4
+ import * as tui from '../../../tui';
5
+ import { createSubcommand } from '../../../types';
6
+ const OAuthClientActivityResponseSchema = z.array(z.object({
7
+ activity_date: z.string(),
8
+ total_access: z.number(),
9
+ unique_users: z.number(),
10
+ }));
11
+ export const activitySubcommand = createSubcommand({
12
+ name: 'activity',
13
+ description: 'Show activity for an OAuth application',
14
+ tags: ['read-only', 'requires-auth'],
15
+ examples: [
16
+ { command: getCommand('cloud oidc activity <id>'), description: 'Show OAuth activity' },
17
+ {
18
+ command: getCommand('cloud oidc activity <id> --days=30'),
19
+ description: 'Show OAuth activity for last 30 days',
20
+ },
21
+ ],
22
+ requires: { auth: true, apiClient: true },
23
+ idempotent: true,
24
+ schema: {
25
+ args: z.object({
26
+ id: z.string().describe('the OAuth client id'),
27
+ }),
28
+ options: z.object({
29
+ days: z.coerce.number().int().min(1).max(365).default(7).describe('Number of days'),
30
+ }),
31
+ response: OAuthClientActivityResponseSchema,
32
+ },
33
+ async handler(ctx) {
34
+ const { args, opts, apiClient, options } = ctx;
35
+ const activity = await tui.spinner('Fetching OAuth activity', () => {
36
+ return oauthClientActivity(apiClient, args.id, opts.days);
37
+ });
38
+ if (!options.json) {
39
+ if (activity.length === 0) {
40
+ tui.info('No OAuth activity found');
41
+ }
42
+ else {
43
+ const rows = activity.map((item) => ({
44
+ activity_date: item.activity_date,
45
+ total_access: item.total_access,
46
+ unique_users: item.unique_users,
47
+ }));
48
+ tui.table(rows);
49
+ }
50
+ }
51
+ return activity;
52
+ },
53
+ });
54
+ //# sourceMappingURL=activity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"activity.js","sourceRoot":"","sources":["../../../../src/cmd/cloud/oidc/activity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAkB,MAAM,iBAAiB,CAAC;AACtE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,KAAK,GAAG,MAAM,cAAc,CAAC;AACpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElD,MAAM,iCAAiC,GAAG,CAAC,CAAC,KAAK,CAChD,CAAC,CAAC,MAAM,CAAC;IACR,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE;IACzB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;IACxB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;CACxB,CAAC,CACF,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,gBAAgB,CAAC;IAClD,IAAI,EAAE,UAAU;IAChB,WAAW,EAAE,wCAAwC;IACrD,IAAI,EAAE,CAAC,WAAW,EAAE,eAAe,CAAC;IACpC,QAAQ,EAAE;QACT,EAAE,OAAO,EAAE,UAAU,CAAC,0BAA0B,CAAC,EAAE,WAAW,EAAE,qBAAqB,EAAE;QACvF;YACC,OAAO,EAAE,UAAU,CAAC,oCAAoC,CAAC;YACzD,WAAW,EAAE,sCAAsC;SACnD;KACD;IACD,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE;IACzC,UAAU,EAAE,IAAI;IAChB,MAAM,EAAE;QACP,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;YACd,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;SAC9C,CAAC;QACF,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC;YACjB,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC;SACnF,CAAC;QACF,QAAQ,EAAE,iCAAiC;KAC3C;IAED,KAAK,CAAC,OAAO,CAAC,GAAG;QAChB,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC;QAE/C,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,yBAAyB,EAAE,GAAG,EAAE;YAClE,OAAO,mBAAmB,CAAC,SAAsB,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACxE,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACnB,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC3B,GAAG,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;YACrC,CAAC;iBAAM,CAAC;gBACP,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;oBACpC,aAAa,EAAE,IAAI,CAAC,aAAa;oBACjC,YAAY,EAAE,IAAI,CAAC,YAAY;oBAC/B,YAAY,EAAE,IAAI,CAAC,YAAY;iBAC/B,CAAC,CAAC,CAAC;gBAEJ,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACjB,CAAC;QACF,CAAC;QAED,OAAO,QAAQ,CAAC;IACjB,CAAC;CACD,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const createSubcommand: import("../../..").SubcommandDefinition;
2
+ //# sourceMappingURL=create.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../../src/cmd/cloud/oidc/create.ts"],"names":[],"mappings":"AAmCA,eAAO,MAAM,gBAAgB,yCAoM3B,CAAC"}
@@ -0,0 +1,201 @@
1
+ import { oauthClientCreate, oauthScopes, } from '@agentuity/core';
2
+ import enquirer from 'enquirer';
3
+ import { z } from 'zod';
4
+ import { getCommand } from '../../../command-prefix';
5
+ import * as tui from '../../../tui';
6
+ import { createSubcommand as createSubcommandHelper } from '../../../types';
7
+ const OAuthClientCreateResponseSchema = z.object({
8
+ client: z.object({
9
+ id: z.string(),
10
+ name: z.string(),
11
+ description: z.string(),
12
+ homepage_url: z.string(),
13
+ client_type: z.enum(['public', 'confidential']),
14
+ redirect_uris: z.array(z.string()),
15
+ scopes: z.array(z.string()),
16
+ created_at: z.string(),
17
+ updated_at: z.string(),
18
+ }),
19
+ client_secret: z.string(),
20
+ });
21
+ function parseCsv(value) {
22
+ if (!value)
23
+ return [];
24
+ return value
25
+ .split(',')
26
+ .map((part) => part.trim())
27
+ .filter(Boolean);
28
+ }
29
+ export const createSubcommand = createSubcommandHelper({
30
+ name: 'create',
31
+ aliases: ['new'],
32
+ description: 'Create a new OAuth application',
33
+ tags: ['creates-resource', 'slow', 'requires-auth'],
34
+ examples: [
35
+ {
36
+ command: getCommand('cloud oidc create --name "My App" --description "OAuth app" --homepage-url "https://example.com" --type confidential --redirect-uris "https://example.com/callback" --scopes "openid,profile,email"'),
37
+ description: 'Create OAuth application non-interactively',
38
+ },
39
+ {
40
+ command: getCommand('cloud oidc create'),
41
+ description: 'Create OAuth application interactively',
42
+ },
43
+ ],
44
+ requires: { auth: true, apiClient: true },
45
+ idempotent: false,
46
+ schema: {
47
+ options: z.object({
48
+ name: z.string().optional().describe('the OAuth application name'),
49
+ description: z.string().optional().describe('the OAuth application description'),
50
+ 'homepage-url': z.string().optional().describe('the homepage URL'),
51
+ type: z
52
+ .enum(['public', 'confidential'])
53
+ .optional()
54
+ .describe('OAuth client type: public or confidential'),
55
+ 'redirect-uris': z
56
+ .string()
57
+ .optional()
58
+ .describe('comma-separated redirect URIs (e.g. https://app/callback,https://app/alt)'),
59
+ scopes: z
60
+ .string()
61
+ .optional()
62
+ .describe('comma-separated OAuth scopes (e.g. openid,profile,email)'),
63
+ }),
64
+ response: OAuthClientCreateResponseSchema,
65
+ },
66
+ async handler(ctx) {
67
+ const { opts, apiClient, options } = ctx;
68
+ const availableScopes = await tui.spinner('Fetching available OAuth scopes', () => {
69
+ return oauthScopes(apiClient);
70
+ });
71
+ const nonInteractive = !process.stdin.isTTY || !process.stdout.isTTY;
72
+ let name = opts?.name?.trim() || '';
73
+ let description = opts?.description?.trim() || '';
74
+ let homepageUrl = opts?.['homepage-url']?.trim() || '';
75
+ let clientType = opts?.type;
76
+ let redirectUris = parseCsv(opts?.['redirect-uris']);
77
+ let scopes = parseCsv(opts?.scopes);
78
+ if (!name) {
79
+ if (nonInteractive) {
80
+ tui.fatal('--name is required in non-interactive mode');
81
+ }
82
+ const answer = await enquirer.prompt({
83
+ type: 'input',
84
+ name: 'name',
85
+ message: 'Application name:',
86
+ });
87
+ name = answer.name?.trim() || '';
88
+ }
89
+ if (!description && !nonInteractive) {
90
+ const answer = await enquirer.prompt({
91
+ type: 'input',
92
+ name: 'description',
93
+ message: 'Description:',
94
+ });
95
+ description = answer.description?.trim() || '';
96
+ }
97
+ if (!homepageUrl) {
98
+ if (nonInteractive) {
99
+ tui.fatal('--homepage-url is required in non-interactive mode');
100
+ }
101
+ const answer = await enquirer.prompt({
102
+ type: 'input',
103
+ name: 'homepageUrl',
104
+ message: 'Homepage URL:',
105
+ });
106
+ homepageUrl = answer.homepageUrl?.trim() || '';
107
+ }
108
+ if (!clientType) {
109
+ if (nonInteractive) {
110
+ tui.fatal('--type is required in non-interactive mode');
111
+ }
112
+ const answer = await enquirer.prompt({
113
+ type: 'select',
114
+ name: 'clientType',
115
+ message: 'Client type:',
116
+ choices: [
117
+ { name: 'public', message: 'public' },
118
+ { name: 'confidential', message: 'confidential' },
119
+ ],
120
+ });
121
+ clientType = answer.clientType;
122
+ }
123
+ if (redirectUris.length === 0) {
124
+ if (nonInteractive) {
125
+ tui.fatal('--redirect-uris is required in non-interactive mode');
126
+ }
127
+ const answer = await enquirer.prompt({
128
+ type: 'input',
129
+ name: 'redirectUris',
130
+ message: 'Redirect URIs (comma-separated):',
131
+ });
132
+ redirectUris = parseCsv(answer.redirectUris);
133
+ }
134
+ if (scopes.length === 0) {
135
+ if (nonInteractive) {
136
+ tui.fatal('--scopes is required in non-interactive mode');
137
+ }
138
+ const choices = availableScopes.scopes.map((scope) => ({
139
+ name: scope.name,
140
+ message: `${scope.name} — ${scope.description}`,
141
+ }));
142
+ const answer = await enquirer.prompt({
143
+ type: 'multiselect',
144
+ name: 'scopes',
145
+ message: 'Select OAuth scopes:',
146
+ choices,
147
+ });
148
+ scopes = answer.scopes;
149
+ }
150
+ if (!name) {
151
+ tui.fatal('Name is required');
152
+ }
153
+ if (!homepageUrl) {
154
+ tui.fatal('Homepage URL is required');
155
+ }
156
+ if (!clientType) {
157
+ tui.fatal('Client type is required');
158
+ }
159
+ if (redirectUris.length === 0) {
160
+ tui.fatal('At least one redirect URI is required');
161
+ }
162
+ if (scopes.length === 0) {
163
+ tui.fatal('At least one scope is required');
164
+ }
165
+ const availableScopeNames = new Set(availableScopes.scopes.map((scope) => scope.name));
166
+ const invalidScopes = scopes.filter((scope) => !availableScopeNames.has(scope));
167
+ if (invalidScopes.length > 0) {
168
+ tui.fatal(`Invalid scopes: ${invalidScopes.join(', ')}`);
169
+ }
170
+ const request = {
171
+ name,
172
+ description,
173
+ homepage_url: homepageUrl,
174
+ client_type: clientType,
175
+ redirect_uris: redirectUris,
176
+ scopes,
177
+ };
178
+ const result = await tui.spinner('Creating OAuth application', () => {
179
+ return oauthClientCreate(apiClient, request);
180
+ });
181
+ if (!options.json) {
182
+ tui.newline();
183
+ tui.success('OAuth application created successfully!');
184
+ tui.newline();
185
+ tui.warning('Copy the client secret now. It will only be shown once.');
186
+ tui.newline();
187
+ tui.table([
188
+ {
189
+ ID: result.client.id,
190
+ Name: result.client.name,
191
+ Type: result.client.client_type,
192
+ 'Client Secret': result.client_secret,
193
+ 'Redirect URIs': result.client.redirect_uris.join(', '),
194
+ Scopes: result.client.scopes.join(', '),
195
+ },
196
+ ], undefined, { layout: 'vertical' });
197
+ }
198
+ return result;
199
+ },
200
+ });
201
+ //# sourceMappingURL=create.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["../../../../src/cmd/cloud/oidc/create.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare const deleteSubcommand: import("../../..").SubcommandDefinition;
2
+ //# sourceMappingURL=delete.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete.d.ts","sourceRoot":"","sources":["../../../../src/cmd/cloud/oidc/delete.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,gBAAgB,yCAkD3B,CAAC"}