@agentuity/cli 0.0.11 → 0.0.13

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 (51) hide show
  1. package/bin/cli.ts +43 -2
  2. package/dist/api.d.ts +5 -0
  3. package/dist/api.d.ts.map +1 -1
  4. package/dist/auth.d.ts +2 -0
  5. package/dist/auth.d.ts.map +1 -1
  6. package/dist/cli.d.ts.map +1 -1
  7. package/dist/cmd/auth/api.d.ts +7 -0
  8. package/dist/cmd/auth/api.d.ts.map +1 -1
  9. package/dist/cmd/auth/index.d.ts.map +1 -1
  10. package/dist/cmd/auth/login.d.ts.map +1 -1
  11. package/dist/cmd/auth/signup.d.ts +3 -0
  12. package/dist/cmd/auth/signup.d.ts.map +1 -0
  13. package/dist/cmd/dev/index.d.ts.map +1 -1
  14. package/dist/cmd/example/index.d.ts.map +1 -1
  15. package/dist/cmd/example/optional-auth.d.ts +3 -0
  16. package/dist/cmd/example/optional-auth.d.ts.map +1 -0
  17. package/dist/cmd/project/create.d.ts.map +1 -1
  18. package/dist/cmd/project/download.d.ts.map +1 -1
  19. package/dist/cmd/project/template-flow.d.ts +1 -0
  20. package/dist/cmd/project/template-flow.d.ts.map +1 -1
  21. package/dist/config.d.ts.map +1 -1
  22. package/dist/index.d.ts +1 -0
  23. package/dist/index.d.ts.map +1 -1
  24. package/dist/sound.d.ts +1 -1
  25. package/dist/sound.d.ts.map +1 -1
  26. package/dist/tui.d.ts +23 -1
  27. package/dist/tui.d.ts.map +1 -1
  28. package/dist/types.d.ts +29 -4
  29. package/dist/types.d.ts.map +1 -1
  30. package/package.json +1 -1
  31. package/src/api.ts +16 -2
  32. package/src/auth.ts +79 -4
  33. package/src/cli.ts +51 -1
  34. package/src/cmd/auth/README.md +37 -3
  35. package/src/cmd/auth/api.ts +66 -2
  36. package/src/cmd/auth/index.ts +2 -1
  37. package/src/cmd/auth/login.ts +11 -3
  38. package/src/cmd/auth/signup.ts +51 -0
  39. package/src/cmd/dev/index.ts +135 -50
  40. package/src/cmd/example/index.ts +2 -0
  41. package/src/cmd/example/optional-auth.ts +38 -0
  42. package/src/cmd/example/sound.ts +2 -2
  43. package/src/cmd/project/create.ts +1 -0
  44. package/src/cmd/project/download.ts +37 -52
  45. package/src/cmd/project/template-flow.ts +26 -11
  46. package/src/config.ts +8 -1
  47. package/src/download.ts +2 -2
  48. package/src/index.ts +1 -0
  49. package/src/sound.ts +27 -13
  50. package/src/tui.ts +126 -9
  51. package/src/types.ts +47 -2
package/bin/cli.ts CHANGED
@@ -8,7 +8,27 @@ import { detectColorScheme } from '../src/terminal';
8
8
  import { setColorScheme } from '../src/tui';
9
9
  import { getVersion } from '../src/version';
10
10
  import { checkLegacyCLI } from '../src/legacy-check';
11
- import type { LogLevel } from '../src/types';
11
+ import type { CommandContext, LogLevel } from '../src/types';
12
+
13
+ // Cleanup TTY state before exit
14
+ function cleanupAndExit() {
15
+ if (process.stdin.isTTY) {
16
+ process.stdin.setRawMode(false);
17
+ process.stdout.write('\x1B[?25h'); // Restore cursor
18
+ }
19
+ process.exitCode = 0;
20
+ process.exit(0);
21
+ }
22
+
23
+ // Handle Ctrl+C gracefully
24
+ process.once('SIGINT', () => {
25
+ console.log('\n');
26
+ cleanupAndExit();
27
+ });
28
+
29
+ process.once('SIGTERM', () => {
30
+ cleanupAndExit();
31
+ });
12
32
 
13
33
  validateRuntime();
14
34
 
@@ -61,11 +81,32 @@ const ctx = {
61
81
  };
62
82
 
63
83
  const commands = await discoverCommands();
64
- await registerCommands(program, commands, ctx);
84
+ await registerCommands(program, commands, ctx as unknown as CommandContext);
65
85
 
66
86
  try {
67
87
  await program.parseAsync(process.argv);
68
88
  } catch (error) {
89
+ // Don't log error if it's from Ctrl+C, user cancellation, or signal termination
90
+ if (error instanceof Error) {
91
+ const msg = error.message.toLowerCase();
92
+ if (
93
+ msg.includes('sigint') ||
94
+ msg.includes('sigterm') ||
95
+ msg.includes('user force closed') ||
96
+ msg.includes('cancelled') || // UK
97
+ msg.includes('canceled') || // US
98
+ msg === ''
99
+ ) {
100
+ process.exit(0);
101
+ }
102
+ if ('name' in error && error.name === 'AbortError') {
103
+ process.exit(0);
104
+ }
105
+ }
106
+ // Also exit cleanly if error is empty/undefined (user cancellation)
107
+ if (!error) {
108
+ process.exit(0);
109
+ }
69
110
  logger.error('CLI error:', error);
70
111
  process.exit(1);
71
112
  }
package/dist/api.d.ts CHANGED
@@ -13,6 +13,11 @@ import type { Config } from './types';
13
13
  export declare class UpgradeRequiredError extends Error {
14
14
  constructor(message: string);
15
15
  }
16
+ export declare class APIError extends Error {
17
+ status: number;
18
+ code?: string | undefined;
19
+ constructor(message: string, status: number, code?: string | undefined);
20
+ }
16
21
  export declare class APIClient {
17
22
  private baseUrl;
18
23
  private apiKey?;
package/dist/api.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAmDtC,qBAAa,oBAAqB,SAAQ,KAAK;gBAClC,OAAO,EAAE,MAAM;CAI3B;AAED,qBAAa,SAAS;IAEpB,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,MAAM,CAAC;IACf,OAAO,CAAC,MAAM,CAAC;gBAFP,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,MAAM,YAAA,EACf,MAAM,CAAC,GAAE,MAAM,GAAG,IAAI,aAAA;IAGzB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC;CAkF9E;AAED,wBAAgB,aAAa,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAW5D;AAED,wBAAgB,aAAa,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAW5D"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAmDtC,qBAAa,oBAAqB,SAAQ,KAAK;gBAClC,OAAO,EAAE,MAAM;CAI3B;AAED,qBAAa,QAAS,SAAQ,KAAK;IAG1B,MAAM,EAAE,MAAM;IACd,IAAI,CAAC,EAAE,MAAM;gBAFpB,OAAO,EAAE,MAAM,EACR,MAAM,EAAE,MAAM,EACd,IAAI,CAAC,EAAE,MAAM,YAAA;CAKrB;AAED,qBAAa,SAAS;IAEpB,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,MAAM,CAAC;IACf,OAAO,CAAC,MAAM,CAAC;gBAFP,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,MAAM,YAAA,EACf,MAAM,CAAC,GAAE,MAAM,GAAG,IAAI,aAAA;IAGzB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC;CAqF9E;AAED,wBAAgB,aAAa,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAW5D;AAED,wBAAgB,aAAa,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAW5D"}
package/dist/auth.d.ts CHANGED
@@ -3,5 +3,7 @@ export declare function isTTY(): boolean;
3
3
  export declare function hasLoggedInBefore(): boolean;
4
4
  export declare function isAuthenticated(): Promise<boolean>;
5
5
  export declare function requireAuth(ctx: CommandContext<false>): Promise<AuthData>;
6
+ export declare function optionalAuth(ctx: CommandContext<false>, continueText?: string): Promise<AuthData | null>;
6
7
  export declare function withAuth<TArgs extends unknown[]>(ctx: CommandContext<false>, handler: (ctx: CommandContext<true>, ...args: TArgs) => Promise<void> | void): (...args: TArgs) => Promise<void>;
8
+ export declare function withOptionalAuth<TArgs extends unknown[]>(ctx: CommandContext<false>, handler: (ctx: CommandContext<false>, auth: AuthData | null, ...args: TArgs) => Promise<void> | void, continueText?: string): (...args: TArgs) => Promise<void>;
7
9
  //# sourceMappingURL=auth.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAGxD,wBAAgB,KAAK,IAAI,OAAO,CAE/B;AAED,wBAAgB,iBAAiB,IAAI,OAAO,CAG3C;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC,CAMxD;AAED,wBAAsB,WAAW,CAAC,GAAG,EAAE,cAAc,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,CAqD/E;AAED,wBAAgB,QAAQ,CAAC,KAAK,SAAS,OAAO,EAAE,EAC/C,GAAG,EAAE,cAAc,CAAC,KAAK,CAAC,EAC1B,OAAO,EAAE,CAAC,GAAG,EAAE,cAAc,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,EAAE,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,GAC1E,CAAC,GAAG,IAAI,EAAE,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC,CASnC"}
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAIxD,wBAAgB,KAAK,IAAI,OAAO,CAE/B;AAED,wBAAgB,iBAAiB,IAAI,OAAO,CAG3C;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC,CAMxD;AAED,wBAAsB,WAAW,CAAC,GAAG,EAAE,cAAc,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,CAyD/E;AAED,wBAAsB,YAAY,CACjC,GAAG,EAAE,cAAc,CAAC,KAAK,CAAC,EAC1B,YAAY,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAkD1B;AAED,wBAAgB,QAAQ,CAAC,KAAK,SAAS,OAAO,EAAE,EAC/C,GAAG,EAAE,cAAc,CAAC,KAAK,CAAC,EAC1B,OAAO,EAAE,CAAC,GAAG,EAAE,cAAc,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,EAAE,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,GAC1E,CAAC,GAAG,IAAI,EAAE,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC,CASnC;AAED,wBAAgB,gBAAgB,CAAC,KAAK,SAAS,OAAO,EAAE,EACvD,GAAG,EAAE,cAAc,CAAC,KAAK,CAAC,EAC1B,OAAO,EAAE,CACR,GAAG,EAAE,cAAc,CAAC,KAAK,CAAC,EAC1B,IAAI,EAAE,QAAQ,GAAG,IAAI,EACrB,GAAG,IAAI,EAAE,KAAK,KACV,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,EACzB,YAAY,CAAC,EAAE,MAAM,GACnB,CAAC,GAAG,IAAI,EAAE,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC,CAKnC"}
package/dist/cli.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,EAAE,iBAAiB,EAAwB,cAAc,EAAE,MAAM,SAAS,CAAC;AAKvF,wBAAsB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CA6BjE;AAyHD,wBAAsB,gBAAgB,CACrC,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,iBAAiB,EAAE,EAC7B,OAAO,EAAE,cAAc,GACrB,OAAO,CAAC,IAAI,CAAC,CAqCf"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,EAAE,iBAAiB,EAAwB,cAAc,EAAE,MAAM,SAAS,CAAC;AAKvF,wBAAsB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CA6BjE;AAiKD,wBAAsB,gBAAgB,CACrC,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,iBAAiB,EAAE,EAC7B,OAAO,EAAE,cAAc,GACrB,OAAO,CAAC,IAAI,CAAC,CA+Cf"}
@@ -4,6 +4,13 @@ export interface LoginResult {
4
4
  userId: string;
5
5
  expires: Date;
6
6
  }
7
+ export interface SignupResult {
8
+ apiKey: string;
9
+ userId: string;
10
+ expires: Date;
11
+ }
7
12
  export declare function generateLoginOTP(apiUrl: string, config?: Config | null): Promise<string>;
8
13
  export declare function pollForLoginCompletion(apiUrl: string, otp: string, config?: Config | null, timeoutMs?: number): Promise<LoginResult>;
14
+ export declare function generateSignupOTP(): string;
15
+ export declare function pollForSignupCompletion(apiUrl: string, otp: string, config?: Config | null, timeoutMs?: number): Promise<SignupResult>;
9
16
  //# sourceMappingURL=api.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/cmd/auth/api.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAkBtC,MAAM,WAAW,WAAW;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,IAAI,CAAC;CACd;AAED,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAa9F;AAED,wBAAsB,sBAAsB,CAC3C,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,EACtB,SAAS,SAAQ,GACf,OAAO,CAAC,WAAW,CAAC,CAyBtB"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/cmd/auth/api.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAkBtC,MAAM,WAAW,WAAW;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,IAAI,CAAC;CACd;AAQD,MAAM,WAAW,YAAY;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,IAAI,CAAC;CACd;AAED,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAa9F;AAED,wBAAsB,sBAAsB,CAC3C,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,EACtB,SAAS,SAAQ,GACf,OAAO,CAAC,WAAW,CAAC,CAyBtB;AAED,wBAAgB,iBAAiB,IAAI,MAAM,CAS1C;AAED,wBAAsB,uBAAuB,CAC5C,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,EACtB,SAAS,SAAS,GAChB,OAAO,CAAC,YAAY,CAAC,CAkCvB"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cmd/auth/index.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,OAAO,qCAIlB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cmd/auth/index.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,OAAO,qCAIlB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../../src/cmd/auth/login.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAMpD,eAAO,MAAM,YAAY,EAAE,oBAqE1B,CAAC"}
1
+ {"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../../src/cmd/auth/login.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAMpD,eAAO,MAAM,YAAY,EAAE,oBA6E1B,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { SubcommandDefinition } from '@/types';
2
+ export declare const signupCommand: SubcommandDefinition;
3
+ //# sourceMappingURL=signup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signup.d.ts","sourceRoot":"","sources":["../../../src/cmd/auth/signup.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAMpD,eAAO,MAAM,aAAa,EAAE,oBA4C3B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cmd/dev/index.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,OAAO,qCA2ElB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cmd/dev/index.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,OAAO,qCAgKlB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cmd/example/index.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,OAAO,qCAelB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cmd/example/index.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,OAAO,qCAgBlB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { SubcommandDefinition } from '@/types';
2
+ export declare const optionalAuthSubcommand: SubcommandDefinition;
3
+ //# sourceMappingURL=optional-auth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"optional-auth.d.ts","sourceRoot":"","sources":["../../../src/cmd/example/optional-auth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAA4B,MAAM,SAAS,CAAC;AAG9E,eAAO,MAAM,sBAAsB,EAAE,oBAkCpC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../src/cmd/project/create.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,uBAAuB,wCA8ClC,CAAC"}
1
+ {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../src/cmd/project/create.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,uBAAuB,wCA+ClC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"download.d.ts","sourceRoot":"","sources":["../../../src/cmd/project/download.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAGvC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAKhD,UAAU,eAAe;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,YAAY,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,UAAU,YAAY;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CACf;AAED,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CA6E9E;AAED,wBAAsB,YAAY,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CA8CvE"}
1
+ {"version":3,"file":"download.d.ts","sourceRoot":"","sources":["../../../src/cmd/project/download.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAGvC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAKhD,UAAU,eAAe;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,YAAY,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,UAAU,YAAY;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CACf;AAsBD,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAuD9E;AAED,wBAAsB,YAAY,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAgCvE"}
@@ -1,6 +1,7 @@
1
1
  import type { Logger } from '@/logger';
2
2
  interface CreateFlowOptions {
3
3
  projectName?: string;
4
+ dir?: string;
4
5
  template?: string;
5
6
  templateDir?: string;
6
7
  templateBranch?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"template-flow.d.ts","sourceRoot":"","sources":["../../../src/cmd/project/template-flow.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAKvC,UAAU,iBAAiB;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,OAAO,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;CACf;AAED,wBAAsB,aAAa,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CA+I7E"}
1
+ {"version":3,"file":"template-flow.d.ts","sourceRoot":"","sources":["../../../src/cmd/project/template-flow.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAMvC,UAAU,iBAAiB;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,OAAO,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;CACf;AAED,wBAAsB,aAAa,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CA0J7E"}
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAKzD,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C;AAED,wBAAgB,oBAAoB,IAAI,MAAM,CAE7C;AAED,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAOrD;AAED,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAG7D;AAED,wBAAsB,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,CAmBlD;AAED,wBAAsB,aAAa,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,CAkCxD;AAED,wBAAsB,UAAU,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA+B5E;AA4CD,wBAAsB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAQnF;AAED,wBAAsB,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAU5D;AAED,wBAAsB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAU/C;AAED,wBAAsB,OAAO,IAAI,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAcxD;AA4BD,iBAAS,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CA0DlD;AAED,OAAO,EAAE,oBAAoB,EAAE,CAAC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAKzD,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C;AAED,wBAAgB,oBAAoB,IAAI,MAAM,CAE7C;AAED,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAOrD;AAED,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAG7D;AAED,wBAAsB,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,CAmBlD;AAED,wBAAsB,aAAa,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,CAkCxD;AAED,wBAAsB,UAAU,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAsC5E;AA4CD,wBAAsB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAQnF;AAED,wBAAsB,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAU5D;AAED,wBAAsB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAU/C;AAED,wBAAsB,OAAO,IAAI,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAcxD;AA4BD,iBAAS,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CA0DlD;AAED,OAAO,EAAE,oBAAoB,EAAE,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  export { createCLI, registerCommands } from './cli';
2
2
  export { validateRuntime, isBun } from './runtime';
3
3
  export { getVersion, getRevision, getPackageName, getPackage } from './version';
4
+ export { requireAuth, optionalAuth, withAuth, withOptionalAuth } from './auth';
4
5
  export { loadConfig, saveConfig, getDefaultConfigPath, getDefaultConfigDir, getProfilePath, ensureConfigDir, saveProfile, getProfile, fetchProfiles, saveAuth, clearAuth, getAuth, } from './config';
5
6
  export { APIClient, getAPIBaseURL, getAppBaseURL, UpgradeRequiredError } from './api';
6
7
  export { Logger, logger } from './logger';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,OAAO,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAChF,OAAO,EACN,UAAU,EACV,UAAU,EACV,oBAAoB,EACpB,mBAAmB,EACnB,cAAc,EACd,eAAe,EACf,WAAW,EACX,UAAU,EACV,aAAa,EACb,QAAQ,EACR,SAAS,EACT,OAAO,GACP,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,OAAO,CAAC;AACtF,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,OAAO,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,KAAK,GAAG,MAAM,OAAO,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,mBAAmB,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAC7F,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EACN,oBAAoB,EACpB,mBAAmB,EACnB,qBAAqB,EACrB,KAAK,eAAe,IAAI,mBAAmB,EAC3C,KAAK,qBAAqB,GAC1B,MAAM,YAAY,CAAC;AACpB,YAAY,EACX,MAAM,EACN,QAAQ,EACR,aAAa,EACb,cAAc,EACd,oBAAoB,EACpB,iBAAiB,EACjB,OAAO,EACP,QAAQ,EACR,cAAc,GACd,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC1D,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,OAAO,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAChF,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAC;AAC/E,OAAO,EACN,UAAU,EACV,UAAU,EACV,oBAAoB,EACpB,mBAAmB,EACnB,cAAc,EACd,eAAe,EACf,WAAW,EACX,UAAU,EACV,aAAa,EACb,QAAQ,EACR,SAAS,EACT,OAAO,GACP,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,OAAO,CAAC;AACtF,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,OAAO,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,KAAK,GAAG,MAAM,OAAO,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,mBAAmB,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAC7F,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EACN,oBAAoB,EACpB,mBAAmB,EACnB,qBAAqB,EACrB,KAAK,eAAe,IAAI,mBAAmB,EAC3C,KAAK,qBAAqB,GAC1B,MAAM,YAAY,CAAC;AACpB,YAAY,EACX,MAAM,EACN,QAAQ,EACR,aAAa,EACb,cAAc,EACd,oBAAoB,EACpB,iBAAiB,EACjB,OAAO,EACP,QAAQ,EACR,cAAc,GACd,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC1D,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC"}
package/dist/sound.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export declare function playSound(): Promise<void>;
1
+ export declare function playSound(): void;
2
2
  //# sourceMappingURL=sound.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sound.d.ts","sourceRoot":"","sources":["../src/sound.ts"],"names":[],"mappings":"AAEA,wBAAsB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAsB/C"}
1
+ {"version":3,"file":"sound.d.ts","sourceRoot":"","sources":["../src/sound.ts"],"names":[],"mappings":"AAEA,wBAAgB,SAAS,IAAI,IAAI,CAoChC"}
package/dist/tui.d.ts CHANGED
@@ -14,10 +14,14 @@ export declare function success(message: string): void;
14
14
  * Print an error message with a red X
15
15
  */
16
16
  export declare function error(message: string): void;
17
+ /**
18
+ * Print an error message with a red X and then exit
19
+ */
20
+ export declare function fatal(message: string): never;
17
21
  /**
18
22
  * Print a warning message with a yellow warning icon
19
23
  */
20
- export declare function warning(message: string): void;
24
+ export declare function warning(message: string, asError?: boolean): void;
21
25
  /**
22
26
  * Print an info message with a cyan info icon
23
27
  */
@@ -59,6 +63,7 @@ export declare function padLeft(str: string, length: number, pad?: string): stri
59
63
  * Creates a bordered box around the content
60
64
  *
61
65
  * Uses Bun.stringWidth() for accurate width calculation with ANSI codes and unicode
66
+ * Responsive to terminal width - adapts to narrow terminals
62
67
  */
63
68
  export declare function banner(title: string, body: string): void;
64
69
  /**
@@ -73,6 +78,11 @@ export declare function waitForAnyKey(message?: string): Promise<void>;
73
78
  * Exits with code 1 if CTRL+C is pressed
74
79
  */
75
80
  export declare function confirm(message: string, defaultValue?: boolean): Promise<boolean>;
81
+ /**
82
+ * Display a signup benefits box with cyan border
83
+ * Shows the value proposition for creating an Agentuity account
84
+ */
85
+ export declare function showSignupBenefits(): void;
76
86
  /**
77
87
  * Copy text to clipboard
78
88
  * Returns true if successful, false otherwise
@@ -146,6 +156,18 @@ export interface CommandRunnerOptions {
146
156
  * Defaults to false
147
157
  */
148
158
  clearOnSuccess?: boolean;
159
+ /**
160
+ * If true or undefined, will truncate each line of output
161
+ */
162
+ truncate?: boolean;
163
+ /**
164
+ * If undefined, will show up to 3 last lines of output while running. Customize the number with this property.
165
+ */
166
+ maxLinesOutput?: number;
167
+ /**
168
+ * If undefined, will show up to 10 last lines on failure. Customize the number with this property.
169
+ */
170
+ maxLinesOnFailure?: number;
149
171
  }
150
172
  /**
151
173
  * Run an external command and stream its output with a live UI
package/dist/tui.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"tui.d.ts","sourceRoot":"","sources":["../src/tui.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tui.d.ts","sourceRoot":"","sources":["../src/tui.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AA+C9C,wBAAgB,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,CAExD;AAUD;;GAEG;AACH,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAI7C;AAED;;GAEG;AACH,wBAAgB,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAI3C;AAED;;GAEG;AACH,wBAAgB,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,CAK5C;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,UAAQ,GAAG,IAAI,CAI9D;AAED;;GAEG;AACH,wBAAgB,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAI1C;AAED;;GAEG;AACH,wBAAgB,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAI1C;AAED;;GAEG;AACH,wBAAgB,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAIzC;AAED;;GAEG;AACH,wBAAgB,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAUxC;AAuBD;;GAEG;AACH,wBAAgB,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE5C;AAED;;GAEG;AACH,wBAAgB,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE3C;AAED;;GAEG;AACH,wBAAgB,OAAO,IAAI,IAAI,CAE9B;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,SAAM,GAAG,MAAM,CAKvE;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,SAAM,GAAG,MAAM,CAKtE;AAED;;;;;;GAMG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAgFxD;AAED;;;;GAIG;AACH,wBAAsB,aAAa,CAAC,OAAO,SAA+B,GAAG,OAAO,CAAC,IAAI,CAAC,CAiCzF;AAED;;;;GAIG;AACH,wBAAsB,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,UAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAkDpF;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,IAAI,CAqBzC;AAED;;;GAGG;AACH,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CA8CpE;AAiHD;;GAEG;AACH,MAAM,MAAM,uBAAuB,GAAG,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;AAEjE;;GAEG;AACH,MAAM,WAAW,oBAAoB,CAAC,CAAC;IACtC,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;CAC1C;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB,CAAC,CAAC;IACxC,IAAI,EAAE,UAAU,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,CAAC,QAAQ,EAAE,uBAAuB,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;CAC5D;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI,oBAAoB,CAAC,CAAC,CAAC,GAAG,sBAAsB,CAAC,CAAC,CAAC,CAAC;AAEpF;;;;;;;;GAQG;AACH,wBAAsB,OAAO,CAAC,CAAC,EAC9B,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GACvC,OAAO,CAAC,CAAC,CAAC,CAAC;AAEd;;;;;;;GAOG;AACH,wBAAsB,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AA8FzE;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACpC;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,GAAG,EAAE,MAAM,EAAE,CAAC;IACd;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;;;;;;;;GASG;AACH,wBAAsB,UAAU,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,MAAM,CAAC,CAkM/E"}
package/dist/types.d.ts CHANGED
@@ -92,12 +92,13 @@ export type CommandContext<RequiresAuth extends boolean = false, ArgsSchema exte
92
92
  logger: Logger;
93
93
  options: GlobalOptions;
94
94
  };
95
- export declare function createSubcommand<TRequiresAuth extends boolean, TArgsSchema extends z.ZodType | undefined, TOptionsSchema extends z.ZodType | undefined>(definition: {
95
+ export declare function createSubcommand<TRequiresAuth extends boolean, TOptionalAuth extends boolean | string, TArgsSchema extends z.ZodType | undefined, TOptionsSchema extends z.ZodType | undefined>(definition: {
96
96
  name: string;
97
97
  description: string;
98
98
  aliases?: string[];
99
99
  toplevel?: boolean;
100
100
  requiresAuth?: TRequiresAuth;
101
+ optionalAuth?: TOptionalAuth;
101
102
  schema?: TArgsSchema extends z.ZodType ? TOptionsSchema extends z.ZodType ? {
102
103
  args: TArgsSchema;
103
104
  options: TOptionsSchema;
@@ -106,14 +107,15 @@ export declare function createSubcommand<TRequiresAuth extends boolean, TArgsSch
106
107
  } : TOptionsSchema extends z.ZodType ? {
107
108
  options: TOptionsSchema;
108
109
  } : never;
109
- handler(ctx: CommandContext<TRequiresAuth extends true ? true : false, TArgsSchema, TOptionsSchema>): void | Promise<void>;
110
+ handler(ctx: CommandContext<TRequiresAuth extends true ? true : TOptionalAuth extends true | string ? true | false : false, TArgsSchema, TOptionsSchema>): void | Promise<void>;
110
111
  }): SubcommandDefinition;
111
- export declare function createCommand<TRequiresAuth extends boolean, TArgsSchema extends z.ZodType | undefined, TOptionsSchema extends z.ZodType | undefined>(definition: {
112
+ export declare function createCommand<TRequiresAuth extends boolean, TOptionalAuth extends boolean | string, TArgsSchema extends z.ZodType | undefined, TOptionsSchema extends z.ZodType | undefined>(definition: {
112
113
  name: string;
113
114
  description: string;
114
115
  aliases?: string[];
115
116
  hidden?: boolean;
116
117
  requiresAuth?: TRequiresAuth;
118
+ optionalAuth?: TOptionalAuth;
117
119
  schema?: TArgsSchema extends z.ZodType ? TOptionsSchema extends z.ZodType ? {
118
120
  args: TArgsSchema;
119
121
  options: TOptionsSchema;
@@ -122,7 +124,7 @@ export declare function createCommand<TRequiresAuth extends boolean, TArgsSchema
122
124
  } : TOptionsSchema extends z.ZodType ? {
123
125
  options: TOptionsSchema;
124
126
  } : never;
125
- handler?(ctx: CommandContext<TRequiresAuth extends true ? true : false, TArgsSchema, TOptionsSchema>): void | Promise<void>;
127
+ handler?(ctx: CommandContext<TRequiresAuth extends true ? true : TOptionalAuth extends true | string ? true | false : false, TArgsSchema, TOptionsSchema>): void | Promise<void>;
126
128
  subcommands?: SubcommandDefinition[];
127
129
  }): CommandDefinition;
128
130
  export type SubcommandDefinition = {
@@ -131,6 +133,7 @@ export type SubcommandDefinition = {
131
133
  aliases?: string[];
132
134
  toplevel?: boolean;
133
135
  requiresAuth: true;
136
+ optionalAuth?: false | string;
134
137
  schema?: CommandSchemas;
135
138
  handler(ctx: CommandContext): void | Promise<void>;
136
139
  } | {
@@ -139,6 +142,16 @@ export type SubcommandDefinition = {
139
142
  aliases?: string[];
140
143
  toplevel?: boolean;
141
144
  requiresAuth?: false;
145
+ optionalAuth: true | string;
146
+ schema?: CommandSchemas;
147
+ handler(ctx: CommandContext): void | Promise<void>;
148
+ } | {
149
+ name: string;
150
+ description: string;
151
+ aliases?: string[];
152
+ toplevel?: boolean;
153
+ requiresAuth?: false;
154
+ optionalAuth?: false;
142
155
  schema?: CommandSchemas;
143
156
  handler(ctx: CommandContext): void | Promise<void>;
144
157
  };
@@ -148,6 +161,17 @@ export type CommandDefinition = {
148
161
  aliases?: string[];
149
162
  hidden?: boolean;
150
163
  requiresAuth: true;
164
+ optionalAuth?: false | string;
165
+ schema?: CommandSchemas;
166
+ handler?(ctx: CommandContext): void | Promise<void>;
167
+ subcommands?: SubcommandDefinition[];
168
+ } | {
169
+ name: string;
170
+ description: string;
171
+ aliases?: string[];
172
+ hidden?: boolean;
173
+ requiresAuth?: false;
174
+ optionalAuth: true | string;
151
175
  schema?: CommandSchemas;
152
176
  handler?(ctx: CommandContext): void | Promise<void>;
153
177
  subcommands?: SubcommandDefinition[];
@@ -157,6 +181,7 @@ export type CommandDefinition = {
157
181
  aliases?: string[];
158
182
  hidden?: boolean;
159
183
  requiresAuth?: false;
184
+ optionalAuth?: false;
160
185
  schema?: CommandSchemas;
161
186
  handler?(ctx: CommandContext): void | Promise<void>;
162
187
  subcommands?: SubcommandDefinition[];
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agentuity/cli",
3
- "version": "0.0.11",
3
+ "version": "0.0.13",
4
4
  "type": "module",
5
5
  "main": "./src/index.ts",
6
6
  "types": "./dist/index.d.ts",
package/src/api.ts CHANGED
@@ -68,6 +68,17 @@ export class UpgradeRequiredError extends Error {
68
68
  }
69
69
  }
70
70
 
71
+ export class APIError extends Error {
72
+ constructor(
73
+ message: string,
74
+ public status: number,
75
+ public code?: string
76
+ ) {
77
+ super(message);
78
+ this.name = 'APIError';
79
+ }
80
+ }
81
+
71
82
  export class APIClient {
72
83
  constructor(
73
84
  private baseUrl: string,
@@ -141,10 +152,13 @@ export class APIClient {
141
152
 
142
153
  // Throw with message from API if available
143
154
  if (errorData?.message) {
144
- throw new Error(errorData.message);
155
+ throw new APIError(errorData.message, response.status, errorData.code);
145
156
  }
146
157
 
147
- throw new Error(`API error: ${response.status} ${response.statusText}`);
158
+ throw new APIError(
159
+ `API error: ${response.status} ${response.statusText}`,
160
+ response.status
161
+ );
148
162
  }
149
163
 
150
164
  // Successful response; handle empty bodies (e.g., 204 No Content)
package/src/auth.ts CHANGED
@@ -3,6 +3,7 @@ import { getDefaultConfigDir, getAuth } from './config';
3
3
  import { getCommand } from './command-prefix';
4
4
  import type { CommandContext, AuthData } from './types';
5
5
  import * as tui from './tui';
6
+ import enquirer from 'enquirer';
6
7
 
7
8
  export function isTTY(): boolean {
8
9
  return process.stdin.isTTY === true && process.stdout.isTTY === true;
@@ -45,8 +46,10 @@ export async function requireAuth(ctx: CommandContext<false>): Promise<AuthData>
45
46
  }
46
47
  }
47
48
 
48
- // Interactive mode - prompt user to login
49
- tui.newline();
49
+ // Show signup benefits box
50
+ tui.showSignupBenefits();
51
+
52
+ // Interactive mode - show warning and confirm
50
53
  tui.warning(
51
54
  hasConfig
52
55
  ? 'You are not currently logged in or your session has expired.'
@@ -60,9 +63,65 @@ export async function requireAuth(ctx: CommandContext<false>): Promise<AuthData>
60
63
  );
61
64
 
62
65
  if (!shouldLogin) {
63
- logger.fatal(`Authentication required. Run "${loginCmd}" when you're ready to continue.`);
66
+ return tui.fatal(`Authentication required. Run "${loginCmd}" when you're ready to continue.`);
67
+ }
68
+ tui.newline();
69
+
70
+ // Import and run login flow
71
+ const { loginCommand } = await import('./cmd/auth/login');
72
+ await loginCommand.handler(ctx);
73
+
74
+ // After login completes, verify we have auth
75
+ const newAuth = await getAuth();
76
+ if (!newAuth || newAuth.expires <= new Date()) {
77
+ return tui.fatal('Login was not completed successfully.');
78
+ }
79
+ tui.newline();
80
+
81
+ return newAuth;
82
+ }
83
+
84
+ export async function optionalAuth(
85
+ ctx: CommandContext<false>,
86
+ continueText?: string
87
+ ): Promise<AuthData | null> {
88
+ const auth = await getAuth();
89
+
90
+ if (auth && auth.expires > new Date()) {
91
+ return auth;
92
+ }
93
+
94
+ if (!isTTY()) {
95
+ // In non-TTY mode, just return null
96
+ return null;
64
97
  }
65
98
 
99
+ // Show signup benefits box
100
+ tui.showSignupBenefits();
101
+
102
+ // Show select menu with custom or default text
103
+ const defaultContinueText = 'Start without an account (run locally)';
104
+ const response = await enquirer.prompt<{ action: string }>({
105
+ type: 'select',
106
+ name: 'action',
107
+ message: 'How would you like to continue?',
108
+ choices: [
109
+ {
110
+ name: 'login',
111
+ message: 'Create an account or login',
112
+ },
113
+ {
114
+ name: 'local',
115
+ message: continueText || defaultContinueText,
116
+ },
117
+ ],
118
+ });
119
+
120
+ if (response.action === 'local') {
121
+ return null;
122
+ }
123
+ tui.newline();
124
+
66
125
  // Import and run login flow
67
126
  const { loginCommand } = await import('./cmd/auth/login');
68
127
  await loginCommand.handler(ctx);
@@ -70,8 +129,9 @@ export async function requireAuth(ctx: CommandContext<false>): Promise<AuthData>
70
129
  // After login completes, verify we have auth
71
130
  const newAuth = await getAuth();
72
131
  if (!newAuth || newAuth.expires <= new Date()) {
73
- return logger.fatal('Login was not completed successfully.');
132
+ return null;
74
133
  }
134
+ tui.newline();
75
135
 
76
136
  return newAuth;
77
137
  }
@@ -89,3 +149,18 @@ export function withAuth<TArgs extends unknown[]>(
89
149
  return handler(authenticatedCtx, ...args);
90
150
  };
91
151
  }
152
+
153
+ export function withOptionalAuth<TArgs extends unknown[]>(
154
+ ctx: CommandContext<false>,
155
+ handler: (
156
+ ctx: CommandContext<false>,
157
+ auth: AuthData | null,
158
+ ...args: TArgs
159
+ ) => Promise<void> | void,
160
+ continueText?: string
161
+ ): (...args: TArgs) => Promise<void> {
162
+ return async (...args: TArgs) => {
163
+ const auth = await optionalAuth(ctx, continueText);
164
+ return handler(ctx, auth, ...args);
165
+ };
166
+ }