@agentuity/cli 0.0.6
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/AGENTS.md +139 -0
- package/README.md +239 -0
- package/bin/cli.ts +71 -0
- package/dist/api.d.ts +25 -0
- package/dist/api.d.ts.map +1 -0
- package/dist/auth.d.ts +7 -0
- package/dist/auth.d.ts.map +1 -0
- package/dist/banner.d.ts +2 -0
- package/dist/banner.d.ts.map +1 -0
- package/dist/cli.d.ts +5 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cmd/auth/api.d.ts +9 -0
- package/dist/cmd/auth/api.d.ts.map +1 -0
- package/dist/cmd/auth/index.d.ts +2 -0
- package/dist/cmd/auth/index.d.ts.map +1 -0
- package/dist/cmd/auth/login.d.ts +3 -0
- package/dist/cmd/auth/login.d.ts.map +1 -0
- package/dist/cmd/auth/logout.d.ts +3 -0
- package/dist/cmd/auth/logout.d.ts.map +1 -0
- package/dist/cmd/bundle/ast.d.ts +2 -0
- package/dist/cmd/bundle/ast.d.ts.map +1 -0
- package/dist/cmd/bundle/bundler.d.ts +6 -0
- package/dist/cmd/bundle/bundler.d.ts.map +1 -0
- package/dist/cmd/bundle/file.d.ts +2 -0
- package/dist/cmd/bundle/file.d.ts.map +1 -0
- package/dist/cmd/bundle/index.d.ts +2 -0
- package/dist/cmd/bundle/index.d.ts.map +1 -0
- package/dist/cmd/bundle/plugin.d.ts +4 -0
- package/dist/cmd/bundle/plugin.d.ts.map +1 -0
- package/dist/cmd/dev/index.d.ts +2 -0
- package/dist/cmd/dev/index.d.ts.map +1 -0
- package/dist/cmd/example/create-user.d.ts +2 -0
- package/dist/cmd/example/create-user.d.ts.map +1 -0
- package/dist/cmd/example/create.d.ts +2 -0
- package/dist/cmd/example/create.d.ts.map +1 -0
- package/dist/cmd/example/deploy.d.ts +2 -0
- package/dist/cmd/example/deploy.d.ts.map +1 -0
- package/dist/cmd/example/index.d.ts +2 -0
- package/dist/cmd/example/index.d.ts.map +1 -0
- package/dist/cmd/example/list.d.ts +2 -0
- package/dist/cmd/example/list.d.ts.map +1 -0
- package/dist/cmd/example/run-command.d.ts +2 -0
- package/dist/cmd/example/run-command.d.ts.map +1 -0
- package/dist/cmd/example/sound.d.ts +3 -0
- package/dist/cmd/example/sound.d.ts.map +1 -0
- package/dist/cmd/example/spinner.d.ts +2 -0
- package/dist/cmd/example/spinner.d.ts.map +1 -0
- package/dist/cmd/example/steps.d.ts +2 -0
- package/dist/cmd/example/steps.d.ts.map +1 -0
- package/dist/cmd/example/version.d.ts +2 -0
- package/dist/cmd/example/version.d.ts.map +1 -0
- package/dist/cmd/index.d.ts +3 -0
- package/dist/cmd/index.d.ts.map +1 -0
- package/dist/cmd/profile/create.d.ts +2 -0
- package/dist/cmd/profile/create.d.ts.map +1 -0
- package/dist/cmd/profile/delete.d.ts +2 -0
- package/dist/cmd/profile/delete.d.ts.map +1 -0
- package/dist/cmd/profile/index.d.ts +2 -0
- package/dist/cmd/profile/index.d.ts.map +1 -0
- package/dist/cmd/profile/list.d.ts +3 -0
- package/dist/cmd/profile/list.d.ts.map +1 -0
- package/dist/cmd/profile/show.d.ts +2 -0
- package/dist/cmd/profile/show.d.ts.map +1 -0
- package/dist/cmd/profile/use.d.ts +2 -0
- package/dist/cmd/profile/use.d.ts.map +1 -0
- package/dist/cmd/project/create.d.ts +2 -0
- package/dist/cmd/project/create.d.ts.map +1 -0
- package/dist/cmd/project/delete.d.ts +2 -0
- package/dist/cmd/project/delete.d.ts.map +1 -0
- package/dist/cmd/project/index.d.ts +2 -0
- package/dist/cmd/project/index.d.ts.map +1 -0
- package/dist/cmd/project/list.d.ts +2 -0
- package/dist/cmd/project/list.d.ts.map +1 -0
- package/dist/cmd/project/show.d.ts +2 -0
- package/dist/cmd/project/show.d.ts.map +1 -0
- package/dist/cmd/version/index.d.ts +2 -0
- package/dist/cmd/version/index.d.ts.map +1 -0
- package/dist/command-prefix.d.ts +11 -0
- package/dist/command-prefix.d.ts.map +1 -0
- package/dist/config.d.ts +16 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/index.d.ts +18 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/legacy-check.d.ts +6 -0
- package/dist/legacy-check.d.ts.map +1 -0
- package/dist/logger.d.ts +24 -0
- package/dist/logger.d.ts.map +1 -0
- package/dist/runtime.d.ts +3 -0
- package/dist/runtime.d.ts.map +1 -0
- package/dist/schema-parser.d.ts +24 -0
- package/dist/schema-parser.d.ts.map +1 -0
- package/dist/sound.d.ts +2 -0
- package/dist/sound.d.ts.map +1 -0
- package/dist/steps.d.ts +59 -0
- package/dist/steps.d.ts.map +1 -0
- package/dist/terminal.d.ts +3 -0
- package/dist/terminal.d.ts.map +1 -0
- package/dist/tui.d.ts +156 -0
- package/dist/tui.d.ts.map +1 -0
- package/dist/types.d.ts +164 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/version.d.ts +10 -0
- package/dist/version.d.ts.map +1 -0
- package/package.json +46 -0
- package/src/api-errors.md +115 -0
- package/src/api.ts +186 -0
- package/src/auth.ts +91 -0
- package/src/banner.ts +23 -0
- package/src/cli.ts +198 -0
- package/src/cmd/auth/README.md +95 -0
- package/src/cmd/auth/api.ts +71 -0
- package/src/cmd/auth/index.ts +9 -0
- package/src/cmd/auth/login.ts +76 -0
- package/src/cmd/auth/logout.ts +14 -0
- package/src/cmd/bundle/ast.ts +228 -0
- package/src/cmd/bundle/bundler.ts +88 -0
- package/src/cmd/bundle/file.ts +16 -0
- package/src/cmd/bundle/index.ts +38 -0
- package/src/cmd/bundle/plugin.ts +259 -0
- package/src/cmd/dev/index.ts +83 -0
- package/src/cmd/example/create-user.ts +38 -0
- package/src/cmd/example/create.ts +31 -0
- package/src/cmd/example/deploy.ts +36 -0
- package/src/cmd/example/index.ts +27 -0
- package/src/cmd/example/list.ts +32 -0
- package/src/cmd/example/run-command.ts +45 -0
- package/src/cmd/example/sound.ts +14 -0
- package/src/cmd/example/spinner.ts +44 -0
- package/src/cmd/example/steps.ts +66 -0
- package/src/cmd/example/version.ts +13 -0
- package/src/cmd/index.ts +46 -0
- package/src/cmd/profile/README.md +80 -0
- package/src/cmd/profile/create.ts +57 -0
- package/src/cmd/profile/delete.ts +52 -0
- package/src/cmd/profile/index.ts +12 -0
- package/src/cmd/profile/list.ts +27 -0
- package/src/cmd/profile/show.ts +54 -0
- package/src/cmd/profile/use.ts +30 -0
- package/src/cmd/project/create.ts +247 -0
- package/src/cmd/project/delete.ts +13 -0
- package/src/cmd/project/index.ts +11 -0
- package/src/cmd/project/list.ts +13 -0
- package/src/cmd/project/show.ts +12 -0
- package/src/cmd/version/index.ts +16 -0
- package/src/command-prefix.ts +43 -0
- package/src/config.ts +304 -0
- package/src/index.ts +40 -0
- package/src/legacy-check.ts +127 -0
- package/src/logger.ts +235 -0
- package/src/runtime.ts +22 -0
- package/src/schema-parser.ts +213 -0
- package/src/sound.ts +25 -0
- package/src/steps.ts +245 -0
- package/src/terminal.ts +151 -0
- package/src/tui.md +254 -0
- package/src/tui.ts +838 -0
- package/src/types.ts +243 -0
- package/src/version.ts +29 -0
package/src/types.ts
ADDED
|
@@ -0,0 +1,243 @@
|
|
|
1
|
+
import type { Logger } from './logger';
|
|
2
|
+
import type * as z from 'zod';
|
|
3
|
+
import { z as zod } from 'zod';
|
|
4
|
+
|
|
5
|
+
export const ConfigSchema = zod.object({
|
|
6
|
+
name: zod.string().describe('Profile name'),
|
|
7
|
+
auth: zod
|
|
8
|
+
.object({
|
|
9
|
+
api_key: zod.string().optional().describe('API authentication key'),
|
|
10
|
+
user_id: zod.string().optional().describe('User ID'),
|
|
11
|
+
expires: zod.number().optional().describe('Authentication expiration timestamp'),
|
|
12
|
+
})
|
|
13
|
+
.optional()
|
|
14
|
+
.describe('Authentication credentials (managed by login/logout commands)'),
|
|
15
|
+
devmode: zod
|
|
16
|
+
.object({
|
|
17
|
+
hostname: zod.string().optional().describe('Development mode hostname'),
|
|
18
|
+
})
|
|
19
|
+
.optional()
|
|
20
|
+
.describe('Development mode configuration'),
|
|
21
|
+
overrides: zod
|
|
22
|
+
.object({
|
|
23
|
+
api_url: zod
|
|
24
|
+
.string()
|
|
25
|
+
.url()
|
|
26
|
+
.optional()
|
|
27
|
+
.describe('Override API base URL (default: https://api.agentuity.com)'),
|
|
28
|
+
app_url: zod
|
|
29
|
+
.string()
|
|
30
|
+
.url()
|
|
31
|
+
.optional()
|
|
32
|
+
.describe('Override app base URL (default: https://app.agentuity.com)'),
|
|
33
|
+
transport_url: zod
|
|
34
|
+
.string()
|
|
35
|
+
.url()
|
|
36
|
+
.optional()
|
|
37
|
+
.describe('Override transport URL (default: https://agentuity.ai)'),
|
|
38
|
+
websocket_url: zod
|
|
39
|
+
.string()
|
|
40
|
+
.url()
|
|
41
|
+
.optional()
|
|
42
|
+
.describe('Override WebSocket URL (default: wss://api.agentuity.com)'),
|
|
43
|
+
skip_version_check: zod.boolean().optional().describe('Skip CLI version check on startup'),
|
|
44
|
+
})
|
|
45
|
+
.optional()
|
|
46
|
+
.describe('URL and behavior overrides'),
|
|
47
|
+
preferences: zod
|
|
48
|
+
.object({
|
|
49
|
+
last_update_check: zod.number().optional().describe('Last update check timestamp'),
|
|
50
|
+
last_legacy_warning: zod.number().optional().describe('Last legacy CLI warning timestamp'),
|
|
51
|
+
orgId: zod.string().optional().describe('Default organization ID'),
|
|
52
|
+
project_dir: zod.string().optional().describe('Last used project directory'),
|
|
53
|
+
})
|
|
54
|
+
.optional()
|
|
55
|
+
.describe('User preferences'),
|
|
56
|
+
});
|
|
57
|
+
|
|
58
|
+
export type Config = zod.infer<typeof ConfigSchema>;
|
|
59
|
+
|
|
60
|
+
export type LogLevel = 'debug' | 'trace' | 'info' | 'warn' | 'error';
|
|
61
|
+
|
|
62
|
+
export interface Profile {
|
|
63
|
+
name: string;
|
|
64
|
+
filename: string;
|
|
65
|
+
selected: boolean;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
export interface AuthData {
|
|
69
|
+
apiKey: string;
|
|
70
|
+
userId: string;
|
|
71
|
+
expires: Date;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
export interface GlobalOptions {
|
|
75
|
+
config?: string;
|
|
76
|
+
logLevel: LogLevel;
|
|
77
|
+
logTimestamp?: boolean;
|
|
78
|
+
logPrefix?: boolean;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
export interface CommandSchemas {
|
|
82
|
+
args?: z.ZodType;
|
|
83
|
+
options?: z.ZodType;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
export type CommandContext<
|
|
87
|
+
RequiresAuth extends boolean = false,
|
|
88
|
+
ArgsSchema extends z.ZodType | undefined = undefined,
|
|
89
|
+
OptionsSchema extends z.ZodType | undefined = undefined,
|
|
90
|
+
> = RequiresAuth extends true
|
|
91
|
+
? ArgsSchema extends z.ZodType
|
|
92
|
+
? OptionsSchema extends z.ZodType
|
|
93
|
+
? {
|
|
94
|
+
config: Config | null;
|
|
95
|
+
logger: Logger;
|
|
96
|
+
options: GlobalOptions;
|
|
97
|
+
auth: AuthData;
|
|
98
|
+
args: z.infer<ArgsSchema>;
|
|
99
|
+
opts: z.infer<OptionsSchema>;
|
|
100
|
+
}
|
|
101
|
+
: {
|
|
102
|
+
config: Config | null;
|
|
103
|
+
logger: Logger;
|
|
104
|
+
options: GlobalOptions;
|
|
105
|
+
auth: AuthData;
|
|
106
|
+
args: z.infer<ArgsSchema>;
|
|
107
|
+
}
|
|
108
|
+
: OptionsSchema extends z.ZodType
|
|
109
|
+
? {
|
|
110
|
+
config: Config | null;
|
|
111
|
+
logger: Logger;
|
|
112
|
+
options: GlobalOptions;
|
|
113
|
+
auth: AuthData;
|
|
114
|
+
opts: z.infer<OptionsSchema>;
|
|
115
|
+
}
|
|
116
|
+
: {
|
|
117
|
+
config: Config | null;
|
|
118
|
+
logger: Logger;
|
|
119
|
+
options: GlobalOptions;
|
|
120
|
+
auth: AuthData;
|
|
121
|
+
}
|
|
122
|
+
: ArgsSchema extends z.ZodType
|
|
123
|
+
? OptionsSchema extends z.ZodType
|
|
124
|
+
? {
|
|
125
|
+
config: Config | null;
|
|
126
|
+
logger: Logger;
|
|
127
|
+
options: GlobalOptions;
|
|
128
|
+
args: z.infer<ArgsSchema>;
|
|
129
|
+
opts: z.infer<OptionsSchema>;
|
|
130
|
+
}
|
|
131
|
+
: {
|
|
132
|
+
config: Config | null;
|
|
133
|
+
logger: Logger;
|
|
134
|
+
options: GlobalOptions;
|
|
135
|
+
args: z.infer<ArgsSchema>;
|
|
136
|
+
}
|
|
137
|
+
: OptionsSchema extends z.ZodType
|
|
138
|
+
? {
|
|
139
|
+
config: Config | null;
|
|
140
|
+
logger: Logger;
|
|
141
|
+
options: GlobalOptions;
|
|
142
|
+
opts: z.infer<OptionsSchema>;
|
|
143
|
+
}
|
|
144
|
+
: {
|
|
145
|
+
config: Config | null;
|
|
146
|
+
logger: Logger;
|
|
147
|
+
options: GlobalOptions;
|
|
148
|
+
};
|
|
149
|
+
|
|
150
|
+
// Helper to create subcommands with proper type inference
|
|
151
|
+
export function createSubcommand<
|
|
152
|
+
TRequiresAuth extends boolean,
|
|
153
|
+
TArgsSchema extends z.ZodType | undefined,
|
|
154
|
+
TOptionsSchema extends z.ZodType | undefined,
|
|
155
|
+
>(definition: {
|
|
156
|
+
name: string;
|
|
157
|
+
description: string;
|
|
158
|
+
aliases?: string[];
|
|
159
|
+
toplevel?: boolean;
|
|
160
|
+
requiresAuth?: TRequiresAuth;
|
|
161
|
+
schema?: TArgsSchema extends z.ZodType
|
|
162
|
+
? TOptionsSchema extends z.ZodType
|
|
163
|
+
? { args: TArgsSchema; options: TOptionsSchema }
|
|
164
|
+
: { args: TArgsSchema }
|
|
165
|
+
: TOptionsSchema extends z.ZodType
|
|
166
|
+
? { options: TOptionsSchema }
|
|
167
|
+
: never;
|
|
168
|
+
handler(
|
|
169
|
+
ctx: CommandContext<TRequiresAuth extends true ? true : false, TArgsSchema, TOptionsSchema>
|
|
170
|
+
): void | Promise<void>;
|
|
171
|
+
}): SubcommandDefinition {
|
|
172
|
+
return definition as unknown as SubcommandDefinition;
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
// Helper to create commands with proper type inference
|
|
176
|
+
export function createCommand<
|
|
177
|
+
TRequiresAuth extends boolean,
|
|
178
|
+
TArgsSchema extends z.ZodType | undefined,
|
|
179
|
+
TOptionsSchema extends z.ZodType | undefined,
|
|
180
|
+
>(definition: {
|
|
181
|
+
name: string;
|
|
182
|
+
description: string;
|
|
183
|
+
aliases?: string[];
|
|
184
|
+
hidden?: boolean;
|
|
185
|
+
requiresAuth?: TRequiresAuth;
|
|
186
|
+
schema?: TArgsSchema extends z.ZodType
|
|
187
|
+
? TOptionsSchema extends z.ZodType
|
|
188
|
+
? { args: TArgsSchema; options: TOptionsSchema }
|
|
189
|
+
: { args: TArgsSchema }
|
|
190
|
+
: TOptionsSchema extends z.ZodType
|
|
191
|
+
? { options: TOptionsSchema }
|
|
192
|
+
: never;
|
|
193
|
+
handler?(
|
|
194
|
+
ctx: CommandContext<TRequiresAuth extends true ? true : false, TArgsSchema, TOptionsSchema>
|
|
195
|
+
): void | Promise<void>;
|
|
196
|
+
subcommands?: SubcommandDefinition[];
|
|
197
|
+
}): CommandDefinition {
|
|
198
|
+
return definition as unknown as CommandDefinition;
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
// Discriminated union for SubcommandDefinition
|
|
202
|
+
export type SubcommandDefinition =
|
|
203
|
+
| {
|
|
204
|
+
name: string;
|
|
205
|
+
description: string;
|
|
206
|
+
aliases?: string[];
|
|
207
|
+
toplevel?: boolean;
|
|
208
|
+
requiresAuth: true;
|
|
209
|
+
schema?: CommandSchemas;
|
|
210
|
+
handler(ctx: CommandContext): void | Promise<void>;
|
|
211
|
+
}
|
|
212
|
+
| {
|
|
213
|
+
name: string;
|
|
214
|
+
description: string;
|
|
215
|
+
aliases?: string[];
|
|
216
|
+
toplevel?: boolean;
|
|
217
|
+
requiresAuth?: false;
|
|
218
|
+
schema?: CommandSchemas;
|
|
219
|
+
handler(ctx: CommandContext): void | Promise<void>;
|
|
220
|
+
};
|
|
221
|
+
|
|
222
|
+
// Discriminated union for CommandDefinition
|
|
223
|
+
export type CommandDefinition =
|
|
224
|
+
| {
|
|
225
|
+
name: string;
|
|
226
|
+
description: string;
|
|
227
|
+
aliases?: string[];
|
|
228
|
+
hidden?: boolean;
|
|
229
|
+
requiresAuth: true;
|
|
230
|
+
schema?: CommandSchemas;
|
|
231
|
+
handler?(ctx: CommandContext): void | Promise<void>;
|
|
232
|
+
subcommands?: SubcommandDefinition[];
|
|
233
|
+
}
|
|
234
|
+
| {
|
|
235
|
+
name: string;
|
|
236
|
+
description: string;
|
|
237
|
+
aliases?: string[];
|
|
238
|
+
hidden?: boolean;
|
|
239
|
+
requiresAuth?: false;
|
|
240
|
+
schema?: CommandSchemas;
|
|
241
|
+
handler?(ctx: CommandContext): void | Promise<void>;
|
|
242
|
+
subcommands?: SubcommandDefinition[];
|
|
243
|
+
};
|
package/src/version.ts
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Centralized version and package information
|
|
3
|
+
* Loads package.json once and caches it
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
import pkg from '../package.json' with { type: 'json' };
|
|
7
|
+
|
|
8
|
+
// Cache the package data
|
|
9
|
+
let cachedPackage: typeof pkg | null = null;
|
|
10
|
+
|
|
11
|
+
export function getPackage(): typeof pkg {
|
|
12
|
+
if (!cachedPackage) {
|
|
13
|
+
cachedPackage = pkg;
|
|
14
|
+
}
|
|
15
|
+
return cachedPackage;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export function getVersion(): string {
|
|
19
|
+
return getPackage().version || 'dev';
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export function getPackageName(): string {
|
|
23
|
+
return getPackage().name || '@agentuity/cli';
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export function getRevision(): string {
|
|
27
|
+
// Bun provides git SHA via Bun.revision
|
|
28
|
+
return typeof Bun !== 'undefined' && Bun.revision ? Bun.revision.substring(0, 8) : 'unknown';
|
|
29
|
+
}
|