@ace-sdk/cli 2.0.0

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 (150) hide show
  1. package/README.md +61 -0
  2. package/dist/cli.d.ts +14 -0
  3. package/dist/cli.d.ts.map +1 -0
  4. package/dist/cli.js +427 -0
  5. package/dist/cli.js.map +1 -0
  6. package/dist/commands/bootstrap.d.ts +19 -0
  7. package/dist/commands/bootstrap.d.ts.map +1 -0
  8. package/dist/commands/bootstrap.js +157 -0
  9. package/dist/commands/bootstrap.js.map +1 -0
  10. package/dist/commands/cache.d.ts +19 -0
  11. package/dist/commands/cache.d.ts.map +1 -0
  12. package/dist/commands/cache.js +101 -0
  13. package/dist/commands/cache.js.map +1 -0
  14. package/dist/commands/clear.d.ts +12 -0
  15. package/dist/commands/clear.d.ts.map +1 -0
  16. package/dist/commands/clear.js +50 -0
  17. package/dist/commands/clear.js.map +1 -0
  18. package/dist/commands/config.d.ts +34 -0
  19. package/dist/commands/config.d.ts.map +1 -0
  20. package/dist/commands/config.js +423 -0
  21. package/dist/commands/config.js.map +1 -0
  22. package/dist/commands/delta.d.ts +14 -0
  23. package/dist/commands/delta.d.ts.map +1 -0
  24. package/dist/commands/delta.js +140 -0
  25. package/dist/commands/delta.js.map +1 -0
  26. package/dist/commands/doctor.d.ts +8 -0
  27. package/dist/commands/doctor.d.ts.map +1 -0
  28. package/dist/commands/doctor.js +187 -0
  29. package/dist/commands/doctor.js.map +1 -0
  30. package/dist/commands/export.d.ts +12 -0
  31. package/dist/commands/export.d.ts.map +1 -0
  32. package/dist/commands/export.js +45 -0
  33. package/dist/commands/export.js.map +1 -0
  34. package/dist/commands/import.d.ts +13 -0
  35. package/dist/commands/import.d.ts.map +1 -0
  36. package/dist/commands/import.js +87 -0
  37. package/dist/commands/import.js.map +1 -0
  38. package/dist/commands/learn.d.ts +17 -0
  39. package/dist/commands/learn.d.ts.map +1 -0
  40. package/dist/commands/learn.js +193 -0
  41. package/dist/commands/learn.js.map +1 -0
  42. package/dist/commands/patterns.d.ts +13 -0
  43. package/dist/commands/patterns.d.ts.map +1 -0
  44. package/dist/commands/patterns.js +76 -0
  45. package/dist/commands/patterns.js.map +1 -0
  46. package/dist/commands/plugin.d.ts +26 -0
  47. package/dist/commands/plugin.d.ts.map +1 -0
  48. package/dist/commands/plugin.js +267 -0
  49. package/dist/commands/plugin.js.map +1 -0
  50. package/dist/commands/projects.d.ts +15 -0
  51. package/dist/commands/projects.d.ts.map +1 -0
  52. package/dist/commands/projects.js +122 -0
  53. package/dist/commands/projects.js.map +1 -0
  54. package/dist/commands/record.d.ts +32 -0
  55. package/dist/commands/record.d.ts.map +1 -0
  56. package/dist/commands/record.js +307 -0
  57. package/dist/commands/record.js.map +1 -0
  58. package/dist/commands/search.d.ts +16 -0
  59. package/dist/commands/search.d.ts.map +1 -0
  60. package/dist/commands/search.js +125 -0
  61. package/dist/commands/search.js.map +1 -0
  62. package/dist/commands/status.d.ts +8 -0
  63. package/dist/commands/status.d.ts.map +1 -0
  64. package/dist/commands/status.js +63 -0
  65. package/dist/commands/status.js.map +1 -0
  66. package/dist/commands/summarize.d.ts +17 -0
  67. package/dist/commands/summarize.d.ts.map +1 -0
  68. package/dist/commands/summarize.js +167 -0
  69. package/dist/commands/summarize.js.map +1 -0
  70. package/dist/commands/top.d.ts +14 -0
  71. package/dist/commands/top.d.ts.map +1 -0
  72. package/dist/commands/top.js +58 -0
  73. package/dist/commands/top.js.map +1 -0
  74. package/dist/commands/tune.d.ts +36 -0
  75. package/dist/commands/tune.d.ts.map +1 -0
  76. package/dist/commands/tune.js +354 -0
  77. package/dist/commands/tune.js.map +1 -0
  78. package/dist/formatters/playbook-formatter.d.ts +19 -0
  79. package/dist/formatters/playbook-formatter.d.ts.map +1 -0
  80. package/dist/formatters/playbook-formatter.js +56 -0
  81. package/dist/formatters/playbook-formatter.js.map +1 -0
  82. package/dist/formatters/search-formatter.d.ts +28 -0
  83. package/dist/formatters/search-formatter.d.ts.map +1 -0
  84. package/dist/formatters/search-formatter.js +48 -0
  85. package/dist/formatters/search-formatter.js.map +1 -0
  86. package/dist/formatters/status-formatter.d.ts +25 -0
  87. package/dist/formatters/status-formatter.d.ts.map +1 -0
  88. package/dist/formatters/status-formatter.js +46 -0
  89. package/dist/formatters/status-formatter.js.map +1 -0
  90. package/dist/services/config-loader.d.ts +8 -0
  91. package/dist/services/config-loader.d.ts.map +1 -0
  92. package/dist/services/config-loader.js +7 -0
  93. package/dist/services/config-loader.js.map +1 -0
  94. package/dist/services/initialization.d.ts +128 -0
  95. package/dist/services/initialization.d.ts.map +1 -0
  96. package/dist/services/initialization.js +874 -0
  97. package/dist/services/initialization.js.map +1 -0
  98. package/dist/services/language-detector.d.ts +63 -0
  99. package/dist/services/language-detector.d.ts.map +1 -0
  100. package/dist/services/language-detector.js +123 -0
  101. package/dist/services/language-detector.js.map +1 -0
  102. package/dist/services/logger.d.ts +97 -0
  103. package/dist/services/logger.d.ts.map +1 -0
  104. package/dist/services/logger.js +229 -0
  105. package/dist/services/logger.js.map +1 -0
  106. package/dist/services/plugin-loader.d.ts +84 -0
  107. package/dist/services/plugin-loader.d.ts.map +1 -0
  108. package/dist/services/plugin-loader.js +282 -0
  109. package/dist/services/plugin-loader.js.map +1 -0
  110. package/dist/services/recorder.d.ts +80 -0
  111. package/dist/services/recorder.d.ts.map +1 -0
  112. package/dist/services/recorder.js +267 -0
  113. package/dist/services/recorder.js.map +1 -0
  114. package/dist/services/server-client.d.ts +32 -0
  115. package/dist/services/server-client.d.ts.map +1 -0
  116. package/dist/services/server-client.js +68 -0
  117. package/dist/services/server-client.js.map +1 -0
  118. package/dist/services/session-storage.d.ts +20 -0
  119. package/dist/services/session-storage.d.ts.map +1 -0
  120. package/dist/services/session-storage.js +29 -0
  121. package/dist/services/session-storage.js.map +1 -0
  122. package/dist/types/config.d.ts +33 -0
  123. package/dist/types/config.d.ts.map +1 -0
  124. package/dist/types/config.js +63 -0
  125. package/dist/types/config.js.map +1 -0
  126. package/dist/types/pattern.d.ts +8 -0
  127. package/dist/types/pattern.d.ts.map +1 -0
  128. package/dist/types/pattern.js +7 -0
  129. package/dist/types/pattern.js.map +1 -0
  130. package/dist/types/plugin.d.ts +87 -0
  131. package/dist/types/plugin.d.ts.map +1 -0
  132. package/dist/types/plugin.js +5 -0
  133. package/dist/types/plugin.js.map +1 -0
  134. package/dist/types/recorder.d.ts +44 -0
  135. package/dist/types/recorder.d.ts.map +1 -0
  136. package/dist/types/recorder.js +5 -0
  137. package/dist/types/recorder.js.map +1 -0
  138. package/dist/utils/code-extractor.d.ts +8 -0
  139. package/dist/utils/code-extractor.d.ts.map +1 -0
  140. package/dist/utils/code-extractor.js +7 -0
  141. package/dist/utils/code-extractor.js.map +1 -0
  142. package/dist/utils/semver.d.ts +13 -0
  143. package/dist/utils/semver.d.ts.map +1 -0
  144. package/dist/utils/semver.js +14 -0
  145. package/dist/utils/semver.js.map +1 -0
  146. package/dist/utils/version-checker.d.ts +27 -0
  147. package/dist/utils/version-checker.d.ts.map +1 -0
  148. package/dist/utils/version-checker.js +141 -0
  149. package/dist/utils/version-checker.js.map +1 -0
  150. package/package.json +64 -0
@@ -0,0 +1,157 @@
1
+ /**
2
+ * Bootstrap playbook from codebase
3
+ */
4
+ import { globalOptions } from '../cli.js';
5
+ import { createContext } from '../types/config.js';
6
+ import { ACEServerClient } from '../services/server-client.js';
7
+ import { InitializationService } from '../services/initialization.js';
8
+ import { THOROUGHNESS_PRESETS } from '../types/pattern.js';
9
+ import { Logger } from '../services/logger.js';
10
+ import chalk from 'chalk';
11
+ /**
12
+ * Initialize playbook from codebase
13
+ */
14
+ export async function bootstrapCommand(options) {
15
+ const logger = new Logger(globalOptions);
16
+ // Fetch server config to get defaults
17
+ let serverDefaults = {
18
+ mode: 'hybrid',
19
+ thoroughness: 'medium'
20
+ };
21
+ try {
22
+ const context = await createContext({ org: globalOptions.org, project: globalOptions.project });
23
+ const tempClient = new ACEServerClient(context, logger);
24
+ const serverConfig = await tempClient.getConfig();
25
+ if (serverConfig?.runtime_settings) {
26
+ const configMode = serverConfig.runtime_settings.bootstrapDefaultMode;
27
+ if (configMode === 'hybrid' || configMode === 'local-files' || configMode === 'git-history' || configMode === 'docs-only') {
28
+ serverDefaults.mode = configMode;
29
+ }
30
+ const configThoroughness = serverConfig.runtime_settings.bootstrapDefaultThoroughness;
31
+ if (configThoroughness === 'light' || configThoroughness === 'medium' || configThoroughness === 'deep') {
32
+ serverDefaults.thoroughness = configThoroughness;
33
+ }
34
+ logger.debug(`Using server config: mode=${serverDefaults.mode}, thoroughness=${serverDefaults.thoroughness}`);
35
+ }
36
+ }
37
+ catch (error) {
38
+ logger.debug('Failed to fetch server config, using hardcoded defaults');
39
+ }
40
+ // Apply thoroughness preset (CLI option > server default > hardcoded)
41
+ const thoroughnessLevel = options.thoroughness || serverDefaults.thoroughness;
42
+ const preset = THOROUGHNESS_PRESETS[thoroughnessLevel];
43
+ const effectiveMaxFiles = options.maxFiles ?? preset.max_files;
44
+ const effectiveCommitLimit = options.commitLimit ?? preset.commit_limit;
45
+ const effectiveDaysBack = options.daysBack ?? preset.days_back;
46
+ const analysisMode = options.mode || serverDefaults.mode;
47
+ const projectPath = options.repoPath || process.cwd();
48
+ if (!logger.isJson()) {
49
+ logger.info(chalk.bold(`\n🚀 Bootstrapping Playbook\n`));
50
+ logger.info(` ${chalk.cyan('Mode:')} ${analysisMode}`);
51
+ logger.info(` ${chalk.cyan('Thoroughness:')} ${thoroughnessLevel}`);
52
+ logger.info(` ${chalk.cyan('Max Files:')} ${effectiveMaxFiles === -1 ? 'unlimited' : effectiveMaxFiles}`);
53
+ logger.info(` ${chalk.cyan('Commits:')} ${effectiveCommitLimit}`);
54
+ logger.info(` ${chalk.cyan('Days Back:')} ${effectiveDaysBack}`);
55
+ logger.info(` ${chalk.cyan('Repository:')} ${projectPath}\n`);
56
+ }
57
+ let spinner = logger.spinner('Analyzing codebase...');
58
+ try {
59
+ const context = await createContext({ org: globalOptions.org, project: globalOptions.project });
60
+ const client = new ACEServerClient(context, logger);
61
+ const initService = new InitializationService();
62
+ // Run local codebase analysis
63
+ spinner = logger.spinner('Running local codebase analysis...');
64
+ const playbook = await initService.initializeFromCodebase(projectPath, {
65
+ mode: analysisMode,
66
+ commitLimit: effectiveCommitLimit,
67
+ daysBack: effectiveDaysBack,
68
+ maxFiles: effectiveMaxFiles
69
+ });
70
+ // Count total patterns discovered
71
+ const allBullets = [
72
+ ...playbook.strategies_and_hard_rules,
73
+ ...playbook.useful_code_snippets,
74
+ ...playbook.troubleshooting_and_pitfalls,
75
+ ...playbook.apis_to_use
76
+ ];
77
+ spinner = logger.spinner(`Discovered ${allBullets.length} patterns locally`);
78
+ if (allBullets.length === 0) {
79
+ spinner?.warn('No patterns found in codebase');
80
+ if (logger.isJson()) {
81
+ logger.output({
82
+ success: true,
83
+ patternsExtracted: 0,
84
+ message: 'No patterns found in codebase'
85
+ });
86
+ }
87
+ else {
88
+ logger.info(chalk.yellow('\n⚠️ No patterns found in codebase'));
89
+ logger.info(chalk.dim('Try working on real tasks to build the playbook through online learning\n'));
90
+ }
91
+ return;
92
+ }
93
+ // Send to server for processing
94
+ spinner = logger.spinner('Sending patterns to ACE server for processing...');
95
+ // Build code blocks array for bootstrap endpoint
96
+ const codeBlocks = [];
97
+ for (const snippet of playbook.useful_code_snippets) {
98
+ if (snippet.evidence && snippet.evidence.length > 0) {
99
+ codeBlocks.push(`File: ${snippet.evidence[0]}\n\n${snippet.content}`);
100
+ }
101
+ else {
102
+ codeBlocks.push(snippet.content);
103
+ }
104
+ }
105
+ // Also include strategies, troubleshooting, and API patterns
106
+ for (const strategy of playbook.strategies_and_hard_rules) {
107
+ codeBlocks.push(`[STRATEGY] ${strategy.content}`);
108
+ }
109
+ for (const trouble of playbook.troubleshooting_and_pitfalls) {
110
+ codeBlocks.push(`[TROUBLESHOOTING] ${trouble.content}`);
111
+ }
112
+ for (const api of playbook.apis_to_use) {
113
+ codeBlocks.push(`[API] ${api.content}`);
114
+ }
115
+ // Call server bootstrap endpoint
116
+ const result = await client.bootstrap({
117
+ mode: analysisMode,
118
+ code_blocks: codeBlocks,
119
+ metadata: {
120
+ blocks_extracted: codeBlocks.length,
121
+ thoroughness: thoroughnessLevel
122
+ }
123
+ });
124
+ // Invalidate cache
125
+ client.invalidateCache();
126
+ spinner?.succeed('Bootstrap complete');
127
+ if (logger.isJson()) {
128
+ logger.output({
129
+ success: true,
130
+ patternsExtracted: allBullets.length,
131
+ patternsAfterDedup: result.patterns_after_dedup || allBullets.length,
132
+ compressionRatio: result.compression_ratio,
133
+ message: 'Playbook initialized successfully'
134
+ });
135
+ }
136
+ else {
137
+ logger.info(chalk.green('\n✅ Playbook initialized successfully\n'));
138
+ logger.info(` ${chalk.cyan('Patterns Extracted:')} ${allBullets.length}`);
139
+ logger.info(` ${chalk.cyan('After Deduplication:')} ${result.patterns_after_dedup || allBullets.length}`);
140
+ if (result.compression_ratio) {
141
+ logger.info(` ${chalk.cyan('Compression Ratio:')} ${result.compression_ratio}`);
142
+ }
143
+ logger.info('');
144
+ }
145
+ }
146
+ catch (error) {
147
+ spinner?.fail('Bootstrap failed');
148
+ if (logger.isJson()) {
149
+ logger.error(JSON.stringify({ error: error instanceof Error ? error.message : String(error) }));
150
+ }
151
+ else {
152
+ logger.error(chalk.red(`\n❌ Error: ${error instanceof Error ? error.message : String(error)}\n`));
153
+ }
154
+ process.exit(1);
155
+ }
156
+ }
157
+ //# sourceMappingURL=bootstrap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../src/commands/bootstrap.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Cache management command
3
+ */
4
+ interface CacheOptions {
5
+ type?: 'ram' | 'sqlite' | 'all';
6
+ }
7
+ interface CacheRecallOptions {
8
+ session: string;
9
+ }
10
+ /**
11
+ * Clear local cache
12
+ */
13
+ export declare function cacheCommand(options: CacheOptions): Promise<void>;
14
+ /**
15
+ * Recall patterns from a pinned session
16
+ */
17
+ export declare function cacheRecallCommand(options: CacheRecallOptions): Promise<void>;
18
+ export {};
19
+ //# sourceMappingURL=cache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../src/commands/cache.ts"],"names":[],"mappings":"AAAA;;GAEG;AASH,UAAU,YAAY;IACpB,IAAI,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,KAAK,CAAC;CACjC;AAED,UAAU,kBAAkB;IAC1B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE,YAAY,iBA+BvD;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,kBAAkB,iBA2DnE"}
@@ -0,0 +1,101 @@
1
+ /**
2
+ * Cache management command
3
+ */
4
+ import { globalOptions } from '../cli.js';
5
+ import { createContext } from '../types/config.js';
6
+ import { ACEServerClient } from '../services/server-client.js';
7
+ import { SessionStorage } from '../services/session-storage.js';
8
+ import { Logger } from '../services/logger.js';
9
+ import chalk from 'chalk';
10
+ /**
11
+ * Clear local cache
12
+ */
13
+ export async function cacheCommand(options) {
14
+ const logger = new Logger(globalOptions);
15
+ const spinner = logger.spinner('Clearing cache...');
16
+ try {
17
+ const context = await createContext({ org: globalOptions.org, project: globalOptions.project });
18
+ const client = new ACEServerClient(context, logger);
19
+ // The client only has invalidateCache() which clears all caches
20
+ client.invalidateCache();
21
+ spinner?.succeed('Cache cleared');
22
+ if (logger.isJson()) {
23
+ logger.output({
24
+ success: true,
25
+ message: `Cache cleared (type: ${options.type || 'all'})`
26
+ });
27
+ }
28
+ else {
29
+ logger.info(chalk.green(`\n✅ ${options.type || 'all'} cache cleared successfully\n`));
30
+ }
31
+ }
32
+ catch (error) {
33
+ spinner?.fail('Failed to clear cache');
34
+ if (logger.isJson()) {
35
+ logger.output({ error: error instanceof Error ? error.message : String(error) });
36
+ }
37
+ else {
38
+ logger.error(`Error: ${error instanceof Error ? error.message : String(error)}`);
39
+ }
40
+ process.exit(1);
41
+ }
42
+ }
43
+ /**
44
+ * Recall patterns from a pinned session
45
+ */
46
+ export async function cacheRecallCommand(options) {
47
+ const logger = new Logger(globalOptions);
48
+ if (!options.session) {
49
+ if (logger.isJson()) {
50
+ logger.output({ error: 'Session ID is required' });
51
+ }
52
+ else {
53
+ logger.error(chalk.red('Error: Session ID is required (--session <sessionId>)'));
54
+ }
55
+ process.exit(1);
56
+ }
57
+ const spinner = logger.spinner('Recalling session...');
58
+ try {
59
+ const sessionStorage = new SessionStorage(logger);
60
+ await sessionStorage.initialize();
61
+ const result = await sessionStorage.recallSession(options.session);
62
+ if (!result) {
63
+ spinner?.fail('Session not found or expired');
64
+ if (logger.isJson()) {
65
+ logger.output({
66
+ error: 'Session not found or expired',
67
+ session_id: options.session
68
+ });
69
+ }
70
+ else {
71
+ logger.error(chalk.red(`\nError: Session "${options.session}" not found or expired\n`));
72
+ logger.info(chalk.dim('Sessions expire after 24 hours\n'));
73
+ }
74
+ process.exit(1);
75
+ }
76
+ sessionStorage.close();
77
+ spinner?.succeed(`Recalled ${result.count} patterns from session`);
78
+ if (logger.isJson()) {
79
+ logger.output(result);
80
+ }
81
+ else {
82
+ logger.info(chalk.green(`\n✅ Recalled ${result.count} patterns from session: ${options.session}\n`));
83
+ logger.info(chalk.dim(`Query: ${result.similar_patterns[0]?.content.substring(0, 60)}...\n`));
84
+ logger.info(chalk.dim(`Threshold: ${result.threshold}`));
85
+ logger.info(chalk.dim(`Top-K: ${result.top_k}`));
86
+ logger.info(chalk.dim(`Pinned: ${new Date(result.pinned_at).toLocaleString()}`));
87
+ logger.info(chalk.dim(`Expires: ${new Date(result.expires_at).toLocaleString()}\n`));
88
+ }
89
+ }
90
+ catch (error) {
91
+ spinner?.fail('Failed to recall session');
92
+ if (logger.isJson()) {
93
+ logger.output({ error: error instanceof Error ? error.message : String(error) });
94
+ }
95
+ else {
96
+ logger.error(chalk.red(`\nError: ${error instanceof Error ? error.message : String(error)}\n`));
97
+ }
98
+ process.exit(1);
99
+ }
100
+ }
101
+ //# sourceMappingURL=cache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.js","sourceRoot":"","sources":["../../src/commands/cache.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,KAAK,MAAM,OAAO,CAAC;AAU1B;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,OAAqB;IACtD,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,aAAa,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAEpD,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,EAAE,GAAG,EAAE,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE,aAAa,CAAC,OAAO,EAAE,CAAC,CAAC;QAChG,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAEpD,gEAAgE;QAChE,MAAM,CAAC,eAAe,EAAE,CAAC;QAEzB,OAAO,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;QAElC,IAAI,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;YACpB,MAAM,CAAC,MAAM,CAAC;gBACZ,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,wBAAwB,OAAO,CAAC,IAAI,IAAI,KAAK,GAAG;aAC1D,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,IAAI,IAAI,KAAK,+BAA+B,CAAC,CAAC,CAAC;QACxF,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,EAAE,IAAI,CAAC,uBAAuB,CAAC,CAAC;QAEvC,IAAI,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;YACpB,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACnF,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,KAAK,CAAC,UAAU,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACnF,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,OAA2B;IAClE,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,aAAa,CAAC,CAAC;IAEzC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QACrB,IAAI,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;YACpB,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,wBAAwB,EAAE,CAAC,CAAC;QACrD,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC,CAAC;QACnF,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAEvD,IAAI,CAAC;QACH,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC;QAClD,MAAM,cAAc,CAAC,UAAU,EAAE,CAAC;QAElC,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAEnE,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,EAAE,IAAI,CAAC,8BAA8B,CAAC,CAAC;YAE9C,IAAI,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;gBACpB,MAAM,CAAC,MAAM,CAAC;oBACZ,KAAK,EAAE,8BAA8B;oBACrC,UAAU,EAAE,OAAO,CAAC,OAAO;iBAC5B,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,qBAAqB,OAAO,CAAC,OAAO,0BAA0B,CAAC,CAAC,CAAC;gBACxF,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC,CAAC;YAC7D,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,cAAc,CAAC,KAAK,EAAE,CAAC;QAEvB,OAAO,EAAE,OAAO,CAAC,YAAY,MAAM,CAAC,KAAK,wBAAwB,CAAC,CAAC;QAEnE,IAAI,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;YACpB,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACxB,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,gBAAgB,MAAM,CAAC,KAAK,2BAA2B,OAAO,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;YACrG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;YAC9F,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;YACzD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YACjD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,CAAC;YACjF,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC,CAAC;QACvF,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,EAAE,IAAI,CAAC,0BAA0B,CAAC,CAAC;QAE1C,IAAI,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;YACpB,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACnF,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QAClG,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Clear playbook command
3
+ */
4
+ interface ClearOptions {
5
+ yes?: boolean;
6
+ }
7
+ /**
8
+ * Clear the playbook
9
+ */
10
+ export declare function clearCommand(options: ClearOptions): Promise<void>;
11
+ export {};
12
+ //# sourceMappingURL=clear.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clear.d.ts","sourceRoot":"","sources":["../../src/commands/clear.ts"],"names":[],"mappings":"AAAA;;GAEG;AAUH,UAAU,YAAY;IACpB,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE,YAAY,iBAwCvD"}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Clear playbook command
3
+ */
4
+ import * as readline from 'readline/promises';
5
+ import { stdin, stdout } from 'process';
6
+ import { globalOptions } from '../cli.js';
7
+ import { createContext } from '../types/config.js';
8
+ import { ACEServerClient } from '../services/server-client.js';
9
+ import { Logger } from '../services/logger.js';
10
+ import chalk from 'chalk';
11
+ /**
12
+ * Clear the playbook
13
+ */
14
+ export async function clearCommand(options) {
15
+ const logger = new Logger(globalOptions);
16
+ // Confirm if --yes not provided
17
+ if (!options.yes && !logger.isJson()) {
18
+ const rl = readline.createInterface({ input: stdin, output: stdout });
19
+ const answer = await rl.question(chalk.yellow('⚠️ Are you sure you want to clear the entire playbook? This cannot be undone! (y/N): '));
20
+ rl.close();
21
+ if (answer.toLowerCase() !== 'y' && answer.toLowerCase() !== 'yes') {
22
+ logger.info(chalk.dim('Cancelled'));
23
+ return;
24
+ }
25
+ }
26
+ let spinner = logger.spinner('Clearing playbook...');
27
+ try {
28
+ const context = await createContext({ org: globalOptions.org, project: globalOptions.project });
29
+ const client = new ACEServerClient(context, logger);
30
+ await client.clearPlaybook();
31
+ spinner?.succeed('Playbook cleared');
32
+ if (logger.isJson()) {
33
+ logger.output({ success: true, message: 'Playbook cleared' });
34
+ }
35
+ else {
36
+ logger.info(chalk.green('\n✅ Playbook cleared successfully\n'));
37
+ }
38
+ }
39
+ catch (error) {
40
+ spinner?.fail('Failed to clear playbook');
41
+ if (logger.isJson()) {
42
+ logger.error(JSON.stringify({ error: error instanceof Error ? error.message : String(error) }));
43
+ }
44
+ else {
45
+ logger.error(chalk.red(`\n❌ Error: ${error instanceof Error ? error.message : String(error)}\n`));
46
+ }
47
+ process.exit(1);
48
+ }
49
+ }
50
+ //# sourceMappingURL=clear.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clear.js","sourceRoot":"","sources":["../../src/commands/clear.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,QAAQ,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,OAAqB;IACtD,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,aAAa,CAAC,CAAC;IAEzC,gCAAgC;IAChC,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;QACrC,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QACtE,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,wFAAwF,CAAC,CAAC,CAAC;QACzI,EAAE,CAAC,KAAK,EAAE,CAAC;QAEX,IAAI,MAAM,CAAC,WAAW,EAAE,KAAK,GAAG,IAAI,MAAM,CAAC,WAAW,EAAE,KAAK,KAAK,EAAE,CAAC;YACnE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC;YACpC,OAAO;QACT,CAAC;IACH,CAAC;IAED,IAAI,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAErD,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,EAAE,GAAG,EAAE,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE,aAAa,CAAC,OAAO,EAAE,CAAC,CAAC;QAChG,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAEpD,MAAM,MAAM,CAAC,aAAa,EAAE,CAAC;QAE7B,OAAO,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC;QAErC,IAAI,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;YACpB,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,kBAAkB,EAAE,CAAC,CAAC;QAChE,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC,CAAC;QAClE,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,EAAE,IAAI,CAAC,0BAA0B,CAAC,CAAC;QAE1C,IAAI,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;YACpB,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;QAClG,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QACpG,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Configuration commands
3
+ */
4
+ /**
5
+ * Configuration wizard - Interactive or non-interactive
6
+ */
7
+ export declare function configCommand(options?: {
8
+ serverUrl?: string;
9
+ apiToken?: string;
10
+ orgId?: string;
11
+ projectId?: string;
12
+ }): Promise<void>;
13
+ /**
14
+ * Display current configuration
15
+ */
16
+ export declare function configShowCommand(): Promise<void>;
17
+ /**
18
+ * Set a configuration value
19
+ */
20
+ export declare function configSetCommand(key: string, value: string): Promise<void>;
21
+ /**
22
+ * Reset configuration to defaults
23
+ */
24
+ export declare function configResetCommand(options: {
25
+ yes?: boolean;
26
+ }): Promise<void>;
27
+ /**
28
+ * Validate token and return organization/project info (non-destructive)
29
+ */
30
+ export declare function configValidateCommand(options: {
31
+ serverUrl?: string;
32
+ apiToken?: string;
33
+ }): Promise<void>;
34
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AA4IH;;GAEG;AACH,wBAAsB,aAAa,CAAC,OAAO,CAAC,EAAE;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,iBAgJA;AAED;;GAEG;AACH,wBAAsB,iBAAiB,kBAgCtC;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,iBAuChE;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,OAAO,EAAE;IAAE,GAAG,CAAC,EAAE,OAAO,CAAA;CAAE,iBA0ClE;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,OAAO,EAAE;IACnD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,iBAwDA"}