@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.
- package/README.md +61 -0
- package/dist/cli.d.ts +14 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +427 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/bootstrap.d.ts +19 -0
- package/dist/commands/bootstrap.d.ts.map +1 -0
- package/dist/commands/bootstrap.js +157 -0
- package/dist/commands/bootstrap.js.map +1 -0
- package/dist/commands/cache.d.ts +19 -0
- package/dist/commands/cache.d.ts.map +1 -0
- package/dist/commands/cache.js +101 -0
- package/dist/commands/cache.js.map +1 -0
- package/dist/commands/clear.d.ts +12 -0
- package/dist/commands/clear.d.ts.map +1 -0
- package/dist/commands/clear.js +50 -0
- package/dist/commands/clear.js.map +1 -0
- package/dist/commands/config.d.ts +34 -0
- package/dist/commands/config.d.ts.map +1 -0
- package/dist/commands/config.js +423 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/delta.d.ts +14 -0
- package/dist/commands/delta.d.ts.map +1 -0
- package/dist/commands/delta.js +140 -0
- package/dist/commands/delta.js.map +1 -0
- package/dist/commands/doctor.d.ts +8 -0
- package/dist/commands/doctor.d.ts.map +1 -0
- package/dist/commands/doctor.js +187 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/commands/export.d.ts +12 -0
- package/dist/commands/export.d.ts.map +1 -0
- package/dist/commands/export.js +45 -0
- package/dist/commands/export.js.map +1 -0
- package/dist/commands/import.d.ts +13 -0
- package/dist/commands/import.d.ts.map +1 -0
- package/dist/commands/import.js +87 -0
- package/dist/commands/import.js.map +1 -0
- package/dist/commands/learn.d.ts +17 -0
- package/dist/commands/learn.d.ts.map +1 -0
- package/dist/commands/learn.js +193 -0
- package/dist/commands/learn.js.map +1 -0
- package/dist/commands/patterns.d.ts +13 -0
- package/dist/commands/patterns.d.ts.map +1 -0
- package/dist/commands/patterns.js +76 -0
- package/dist/commands/patterns.js.map +1 -0
- package/dist/commands/plugin.d.ts +26 -0
- package/dist/commands/plugin.d.ts.map +1 -0
- package/dist/commands/plugin.js +267 -0
- package/dist/commands/plugin.js.map +1 -0
- package/dist/commands/projects.d.ts +15 -0
- package/dist/commands/projects.d.ts.map +1 -0
- package/dist/commands/projects.js +122 -0
- package/dist/commands/projects.js.map +1 -0
- package/dist/commands/record.d.ts +32 -0
- package/dist/commands/record.d.ts.map +1 -0
- package/dist/commands/record.js +307 -0
- package/dist/commands/record.js.map +1 -0
- package/dist/commands/search.d.ts +16 -0
- package/dist/commands/search.d.ts.map +1 -0
- package/dist/commands/search.js +125 -0
- package/dist/commands/search.js.map +1 -0
- package/dist/commands/status.d.ts +8 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +63 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/summarize.d.ts +17 -0
- package/dist/commands/summarize.d.ts.map +1 -0
- package/dist/commands/summarize.js +167 -0
- package/dist/commands/summarize.js.map +1 -0
- package/dist/commands/top.d.ts +14 -0
- package/dist/commands/top.d.ts.map +1 -0
- package/dist/commands/top.js +58 -0
- package/dist/commands/top.js.map +1 -0
- package/dist/commands/tune.d.ts +36 -0
- package/dist/commands/tune.d.ts.map +1 -0
- package/dist/commands/tune.js +354 -0
- package/dist/commands/tune.js.map +1 -0
- package/dist/formatters/playbook-formatter.d.ts +19 -0
- package/dist/formatters/playbook-formatter.d.ts.map +1 -0
- package/dist/formatters/playbook-formatter.js +56 -0
- package/dist/formatters/playbook-formatter.js.map +1 -0
- package/dist/formatters/search-formatter.d.ts +28 -0
- package/dist/formatters/search-formatter.d.ts.map +1 -0
- package/dist/formatters/search-formatter.js +48 -0
- package/dist/formatters/search-formatter.js.map +1 -0
- package/dist/formatters/status-formatter.d.ts +25 -0
- package/dist/formatters/status-formatter.d.ts.map +1 -0
- package/dist/formatters/status-formatter.js +46 -0
- package/dist/formatters/status-formatter.js.map +1 -0
- package/dist/services/config-loader.d.ts +8 -0
- package/dist/services/config-loader.d.ts.map +1 -0
- package/dist/services/config-loader.js +7 -0
- package/dist/services/config-loader.js.map +1 -0
- package/dist/services/initialization.d.ts +128 -0
- package/dist/services/initialization.d.ts.map +1 -0
- package/dist/services/initialization.js +874 -0
- package/dist/services/initialization.js.map +1 -0
- package/dist/services/language-detector.d.ts +63 -0
- package/dist/services/language-detector.d.ts.map +1 -0
- package/dist/services/language-detector.js +123 -0
- package/dist/services/language-detector.js.map +1 -0
- package/dist/services/logger.d.ts +97 -0
- package/dist/services/logger.d.ts.map +1 -0
- package/dist/services/logger.js +229 -0
- package/dist/services/logger.js.map +1 -0
- package/dist/services/plugin-loader.d.ts +84 -0
- package/dist/services/plugin-loader.d.ts.map +1 -0
- package/dist/services/plugin-loader.js +282 -0
- package/dist/services/plugin-loader.js.map +1 -0
- package/dist/services/recorder.d.ts +80 -0
- package/dist/services/recorder.d.ts.map +1 -0
- package/dist/services/recorder.js +267 -0
- package/dist/services/recorder.js.map +1 -0
- package/dist/services/server-client.d.ts +32 -0
- package/dist/services/server-client.d.ts.map +1 -0
- package/dist/services/server-client.js +68 -0
- package/dist/services/server-client.js.map +1 -0
- package/dist/services/session-storage.d.ts +20 -0
- package/dist/services/session-storage.d.ts.map +1 -0
- package/dist/services/session-storage.js +29 -0
- package/dist/services/session-storage.js.map +1 -0
- package/dist/types/config.d.ts +33 -0
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types/config.js +63 -0
- package/dist/types/config.js.map +1 -0
- package/dist/types/pattern.d.ts +8 -0
- package/dist/types/pattern.d.ts.map +1 -0
- package/dist/types/pattern.js +7 -0
- package/dist/types/pattern.js.map +1 -0
- package/dist/types/plugin.d.ts +87 -0
- package/dist/types/plugin.d.ts.map +1 -0
- package/dist/types/plugin.js +5 -0
- package/dist/types/plugin.js.map +1 -0
- package/dist/types/recorder.d.ts +44 -0
- package/dist/types/recorder.d.ts.map +1 -0
- package/dist/types/recorder.js +5 -0
- package/dist/types/recorder.js.map +1 -0
- package/dist/utils/code-extractor.d.ts +8 -0
- package/dist/utils/code-extractor.d.ts.map +1 -0
- package/dist/utils/code-extractor.js +7 -0
- package/dist/utils/code-extractor.js.map +1 -0
- package/dist/utils/semver.d.ts +13 -0
- package/dist/utils/semver.d.ts.map +1 -0
- package/dist/utils/semver.js +14 -0
- package/dist/utils/semver.js.map +1 -0
- package/dist/utils/version-checker.d.ts +27 -0
- package/dist/utils/version-checker.d.ts.map +1 -0
- package/dist/utils/version-checker.js +141 -0
- package/dist/utils/version-checker.js.map +1 -0
- 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":"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"}
|
|
@@ -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"}
|