@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.
Files changed (158) hide show
  1. package/AGENTS.md +139 -0
  2. package/README.md +239 -0
  3. package/bin/cli.ts +71 -0
  4. package/dist/api.d.ts +25 -0
  5. package/dist/api.d.ts.map +1 -0
  6. package/dist/auth.d.ts +7 -0
  7. package/dist/auth.d.ts.map +1 -0
  8. package/dist/banner.d.ts +2 -0
  9. package/dist/banner.d.ts.map +1 -0
  10. package/dist/cli.d.ts +5 -0
  11. package/dist/cli.d.ts.map +1 -0
  12. package/dist/cmd/auth/api.d.ts +9 -0
  13. package/dist/cmd/auth/api.d.ts.map +1 -0
  14. package/dist/cmd/auth/index.d.ts +2 -0
  15. package/dist/cmd/auth/index.d.ts.map +1 -0
  16. package/dist/cmd/auth/login.d.ts +3 -0
  17. package/dist/cmd/auth/login.d.ts.map +1 -0
  18. package/dist/cmd/auth/logout.d.ts +3 -0
  19. package/dist/cmd/auth/logout.d.ts.map +1 -0
  20. package/dist/cmd/bundle/ast.d.ts +2 -0
  21. package/dist/cmd/bundle/ast.d.ts.map +1 -0
  22. package/dist/cmd/bundle/bundler.d.ts +6 -0
  23. package/dist/cmd/bundle/bundler.d.ts.map +1 -0
  24. package/dist/cmd/bundle/file.d.ts +2 -0
  25. package/dist/cmd/bundle/file.d.ts.map +1 -0
  26. package/dist/cmd/bundle/index.d.ts +2 -0
  27. package/dist/cmd/bundle/index.d.ts.map +1 -0
  28. package/dist/cmd/bundle/plugin.d.ts +4 -0
  29. package/dist/cmd/bundle/plugin.d.ts.map +1 -0
  30. package/dist/cmd/dev/index.d.ts +2 -0
  31. package/dist/cmd/dev/index.d.ts.map +1 -0
  32. package/dist/cmd/example/create-user.d.ts +2 -0
  33. package/dist/cmd/example/create-user.d.ts.map +1 -0
  34. package/dist/cmd/example/create.d.ts +2 -0
  35. package/dist/cmd/example/create.d.ts.map +1 -0
  36. package/dist/cmd/example/deploy.d.ts +2 -0
  37. package/dist/cmd/example/deploy.d.ts.map +1 -0
  38. package/dist/cmd/example/index.d.ts +2 -0
  39. package/dist/cmd/example/index.d.ts.map +1 -0
  40. package/dist/cmd/example/list.d.ts +2 -0
  41. package/dist/cmd/example/list.d.ts.map +1 -0
  42. package/dist/cmd/example/run-command.d.ts +2 -0
  43. package/dist/cmd/example/run-command.d.ts.map +1 -0
  44. package/dist/cmd/example/sound.d.ts +3 -0
  45. package/dist/cmd/example/sound.d.ts.map +1 -0
  46. package/dist/cmd/example/spinner.d.ts +2 -0
  47. package/dist/cmd/example/spinner.d.ts.map +1 -0
  48. package/dist/cmd/example/steps.d.ts +2 -0
  49. package/dist/cmd/example/steps.d.ts.map +1 -0
  50. package/dist/cmd/example/version.d.ts +2 -0
  51. package/dist/cmd/example/version.d.ts.map +1 -0
  52. package/dist/cmd/index.d.ts +3 -0
  53. package/dist/cmd/index.d.ts.map +1 -0
  54. package/dist/cmd/profile/create.d.ts +2 -0
  55. package/dist/cmd/profile/create.d.ts.map +1 -0
  56. package/dist/cmd/profile/delete.d.ts +2 -0
  57. package/dist/cmd/profile/delete.d.ts.map +1 -0
  58. package/dist/cmd/profile/index.d.ts +2 -0
  59. package/dist/cmd/profile/index.d.ts.map +1 -0
  60. package/dist/cmd/profile/list.d.ts +3 -0
  61. package/dist/cmd/profile/list.d.ts.map +1 -0
  62. package/dist/cmd/profile/show.d.ts +2 -0
  63. package/dist/cmd/profile/show.d.ts.map +1 -0
  64. package/dist/cmd/profile/use.d.ts +2 -0
  65. package/dist/cmd/profile/use.d.ts.map +1 -0
  66. package/dist/cmd/project/create.d.ts +2 -0
  67. package/dist/cmd/project/create.d.ts.map +1 -0
  68. package/dist/cmd/project/delete.d.ts +2 -0
  69. package/dist/cmd/project/delete.d.ts.map +1 -0
  70. package/dist/cmd/project/index.d.ts +2 -0
  71. package/dist/cmd/project/index.d.ts.map +1 -0
  72. package/dist/cmd/project/list.d.ts +2 -0
  73. package/dist/cmd/project/list.d.ts.map +1 -0
  74. package/dist/cmd/project/show.d.ts +2 -0
  75. package/dist/cmd/project/show.d.ts.map +1 -0
  76. package/dist/cmd/version/index.d.ts +2 -0
  77. package/dist/cmd/version/index.d.ts.map +1 -0
  78. package/dist/command-prefix.d.ts +11 -0
  79. package/dist/command-prefix.d.ts.map +1 -0
  80. package/dist/config.d.ts +16 -0
  81. package/dist/config.d.ts.map +1 -0
  82. package/dist/index.d.ts +18 -0
  83. package/dist/index.d.ts.map +1 -0
  84. package/dist/legacy-check.d.ts +6 -0
  85. package/dist/legacy-check.d.ts.map +1 -0
  86. package/dist/logger.d.ts +24 -0
  87. package/dist/logger.d.ts.map +1 -0
  88. package/dist/runtime.d.ts +3 -0
  89. package/dist/runtime.d.ts.map +1 -0
  90. package/dist/schema-parser.d.ts +24 -0
  91. package/dist/schema-parser.d.ts.map +1 -0
  92. package/dist/sound.d.ts +2 -0
  93. package/dist/sound.d.ts.map +1 -0
  94. package/dist/steps.d.ts +59 -0
  95. package/dist/steps.d.ts.map +1 -0
  96. package/dist/terminal.d.ts +3 -0
  97. package/dist/terminal.d.ts.map +1 -0
  98. package/dist/tui.d.ts +156 -0
  99. package/dist/tui.d.ts.map +1 -0
  100. package/dist/types.d.ts +164 -0
  101. package/dist/types.d.ts.map +1 -0
  102. package/dist/version.d.ts +10 -0
  103. package/dist/version.d.ts.map +1 -0
  104. package/package.json +46 -0
  105. package/src/api-errors.md +115 -0
  106. package/src/api.ts +186 -0
  107. package/src/auth.ts +91 -0
  108. package/src/banner.ts +23 -0
  109. package/src/cli.ts +198 -0
  110. package/src/cmd/auth/README.md +95 -0
  111. package/src/cmd/auth/api.ts +71 -0
  112. package/src/cmd/auth/index.ts +9 -0
  113. package/src/cmd/auth/login.ts +76 -0
  114. package/src/cmd/auth/logout.ts +14 -0
  115. package/src/cmd/bundle/ast.ts +228 -0
  116. package/src/cmd/bundle/bundler.ts +88 -0
  117. package/src/cmd/bundle/file.ts +16 -0
  118. package/src/cmd/bundle/index.ts +38 -0
  119. package/src/cmd/bundle/plugin.ts +259 -0
  120. package/src/cmd/dev/index.ts +83 -0
  121. package/src/cmd/example/create-user.ts +38 -0
  122. package/src/cmd/example/create.ts +31 -0
  123. package/src/cmd/example/deploy.ts +36 -0
  124. package/src/cmd/example/index.ts +27 -0
  125. package/src/cmd/example/list.ts +32 -0
  126. package/src/cmd/example/run-command.ts +45 -0
  127. package/src/cmd/example/sound.ts +14 -0
  128. package/src/cmd/example/spinner.ts +44 -0
  129. package/src/cmd/example/steps.ts +66 -0
  130. package/src/cmd/example/version.ts +13 -0
  131. package/src/cmd/index.ts +46 -0
  132. package/src/cmd/profile/README.md +80 -0
  133. package/src/cmd/profile/create.ts +57 -0
  134. package/src/cmd/profile/delete.ts +52 -0
  135. package/src/cmd/profile/index.ts +12 -0
  136. package/src/cmd/profile/list.ts +27 -0
  137. package/src/cmd/profile/show.ts +54 -0
  138. package/src/cmd/profile/use.ts +30 -0
  139. package/src/cmd/project/create.ts +247 -0
  140. package/src/cmd/project/delete.ts +13 -0
  141. package/src/cmd/project/index.ts +11 -0
  142. package/src/cmd/project/list.ts +13 -0
  143. package/src/cmd/project/show.ts +12 -0
  144. package/src/cmd/version/index.ts +16 -0
  145. package/src/command-prefix.ts +43 -0
  146. package/src/config.ts +304 -0
  147. package/src/index.ts +40 -0
  148. package/src/legacy-check.ts +127 -0
  149. package/src/logger.ts +235 -0
  150. package/src/runtime.ts +22 -0
  151. package/src/schema-parser.ts +213 -0
  152. package/src/sound.ts +25 -0
  153. package/src/steps.ts +245 -0
  154. package/src/terminal.ts +151 -0
  155. package/src/tui.md +254 -0
  156. package/src/tui.ts +838 -0
  157. package/src/types.ts +243 -0
  158. 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
+ }