@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 @@
|
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../src/types/plugin.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,cAAe,SAAQ,cAAc;IACpD,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,aAAa,EAAE,CAAC;IAC3B,WAAW,CAAC,EAAE,iBAAiB,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,GAAG,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;IACvC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,MAAM;IACrB,QAAQ,EAAE,cAAc,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,GAAG,CAAC;IACZ,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,GAAG,CAAC;IACZ,MAAM,EAAE,GAAG,CAAC;IACZ,MAAM,EAAE,GAAG,CAAC;CACb"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../src/types/plugin.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Session recording types
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Session event types
|
|
6
|
+
*/
|
|
7
|
+
export type SessionEventType = 'command' | 'request' | 'response' | 'error' | 'log' | 'metadata';
|
|
8
|
+
/**
|
|
9
|
+
* Single session event
|
|
10
|
+
*/
|
|
11
|
+
export interface SessionEvent {
|
|
12
|
+
timestamp: string;
|
|
13
|
+
type: SessionEventType;
|
|
14
|
+
data: any;
|
|
15
|
+
duration?: number;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Session metadata
|
|
19
|
+
*/
|
|
20
|
+
export interface SessionMetadata {
|
|
21
|
+
id: string;
|
|
22
|
+
startTime: string;
|
|
23
|
+
endTime?: string;
|
|
24
|
+
command: string;
|
|
25
|
+
projectId?: string;
|
|
26
|
+
events: number;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Complete session recording
|
|
30
|
+
*/
|
|
31
|
+
export interface SessionRecording {
|
|
32
|
+
metadata: SessionMetadata;
|
|
33
|
+
events: SessionEvent[];
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Recorder state
|
|
37
|
+
*/
|
|
38
|
+
export interface RecorderState {
|
|
39
|
+
active: boolean;
|
|
40
|
+
sessionId: string | null;
|
|
41
|
+
startTime: Date | null;
|
|
42
|
+
eventCount: number;
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=recorder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recorder.d.ts","sourceRoot":"","sources":["../../src/types/recorder.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,MAAM,gBAAgB,GACxB,SAAS,GACT,SAAS,GACT,UAAU,GACV,OAAO,GACP,KAAK,GACL,UAAU,CAAC;AAEf;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,gBAAgB,CAAC;IACvB,IAAI,EAAE,GAAG,CAAC;IACV,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,eAAe,CAAC;IAC1B,MAAM,EAAE,YAAY,EAAE,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;CACpB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recorder.js","sourceRoot":"","sources":["../../src/types/recorder.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Code Extractor - Re-export from @ace-sdk/core
|
|
3
|
+
*
|
|
4
|
+
* @package @ace-sdk/cli
|
|
5
|
+
*/
|
|
6
|
+
export type { CodeBlock } from '@ace-sdk/core';
|
|
7
|
+
export { extractFunctionBodies, isInteresting, extractCodeBlocksFromMarkdown, extractAddedLinesFromDiff } from '@ace-sdk/core';
|
|
8
|
+
//# sourceMappingURL=code-extractor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"code-extractor.d.ts","sourceRoot":"","sources":["../../src/utils/code-extractor.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,YAAY,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EACL,qBAAqB,EACrB,aAAa,EACb,6BAA6B,EAC7B,yBAAyB,EAC1B,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"code-extractor.js","sourceRoot":"","sources":["../../src/utils/code-extractor.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EACL,qBAAqB,EACrB,aAAa,EACb,6BAA6B,EAC7B,yBAAyB,EAC1B,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Semver - Re-export from @ace-sdk/core
|
|
3
|
+
*
|
|
4
|
+
* @package @ace-sdk/cli
|
|
5
|
+
*/
|
|
6
|
+
export type { SemanticVersion } from '@ace-sdk/core';
|
|
7
|
+
export { parseVersion, compareVersions, satisfiesVersion } from '@ace-sdk/core';
|
|
8
|
+
/**
|
|
9
|
+
* Get client version from package.json
|
|
10
|
+
* CLI-specific function
|
|
11
|
+
*/
|
|
12
|
+
export declare function getClientVersion(): string;
|
|
13
|
+
//# sourceMappingURL=semver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"semver.d.ts","sourceRoot":"","sources":["../../src/utils/semver.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,YAAY,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EACL,YAAY,EACZ,eAAe,EACf,gBAAgB,EACjB,MAAM,eAAe,CAAC;AAEvB;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Semver - Re-export from @ace-sdk/core
|
|
3
|
+
*
|
|
4
|
+
* @package @ace-sdk/cli
|
|
5
|
+
*/
|
|
6
|
+
export { parseVersion, compareVersions, satisfiesVersion } from '@ace-sdk/core';
|
|
7
|
+
/**
|
|
8
|
+
* Get client version from package.json
|
|
9
|
+
* CLI-specific function
|
|
10
|
+
*/
|
|
11
|
+
export function getClientVersion() {
|
|
12
|
+
return '2.0.0'; // Will be updated by release script
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=semver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"semver.js","sourceRoot":"","sources":["../../src/utils/semver.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EACL,YAAY,EACZ,eAAe,EACf,gBAAgB,EACjB,MAAM,eAAe,CAAC;AAEvB;;;GAGG;AACH,MAAM,UAAU,gBAAgB;IAC9B,OAAO,OAAO,CAAC,CAAE,oCAAoC;AACvD,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Version Checking System for @ace-sdk/cli
|
|
3
|
+
* Checks CLI version against npm registry
|
|
4
|
+
*/
|
|
5
|
+
export interface VersionStatus {
|
|
6
|
+
clientVersion: string;
|
|
7
|
+
latestNpmVersion: string | null;
|
|
8
|
+
isCliUpdateAvailable: boolean;
|
|
9
|
+
warnings: string[];
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Perform complete version check
|
|
13
|
+
* Returns version status with update availability
|
|
14
|
+
*/
|
|
15
|
+
export declare function performVersionCheck(): Promise<VersionStatus>;
|
|
16
|
+
/**
|
|
17
|
+
* Check version and log warnings (non-blocking)
|
|
18
|
+
* Called during CLI initialization
|
|
19
|
+
*/
|
|
20
|
+
export declare function checkVersionCompatibility(): Promise<VersionStatus>;
|
|
21
|
+
/**
|
|
22
|
+
* Lightweight CLI update checker with caching
|
|
23
|
+
* Only checks npm registry
|
|
24
|
+
* Caches result for 24 hours to avoid spamming npm registry
|
|
25
|
+
*/
|
|
26
|
+
export declare function checkCliUpdate(): Promise<void>;
|
|
27
|
+
//# sourceMappingURL=version-checker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version-checker.d.ts","sourceRoot":"","sources":["../../src/utils/version-checker.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,MAAM,WAAW,aAAa;IAC5B,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,oBAAoB,EAAE,OAAO,CAAC;IAC9B,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAqCD;;;GAGG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,aAAa,CAAC,CA6BlE;AAED;;;GAGG;AACH,wBAAsB,yBAAyB,IAAI,OAAO,CAAC,aAAa,CAAC,CAcxE;AAED;;;;GAIG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAyDpD"}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Version Checking System for @ace-sdk/cli
|
|
3
|
+
* Checks CLI version against npm registry
|
|
4
|
+
*/
|
|
5
|
+
import { compareVersions, getClientVersion } from './semver.js';
|
|
6
|
+
import { readFileSync, writeFileSync, existsSync, mkdirSync } from 'fs';
|
|
7
|
+
import { join } from 'path';
|
|
8
|
+
/**
|
|
9
|
+
* Check latest CLI version from npm registry
|
|
10
|
+
* Package: @ace-sdk/cli
|
|
11
|
+
*
|
|
12
|
+
* Returns latest published version (e.g., "1.0.0")
|
|
13
|
+
*/
|
|
14
|
+
async function checkLatestNpmVersion() {
|
|
15
|
+
try {
|
|
16
|
+
const response = await fetch('https://registry.npmjs.org/@ace-sdk/cli/latest', {
|
|
17
|
+
headers: {
|
|
18
|
+
'Accept': 'application/json',
|
|
19
|
+
'User-Agent': 'ce-ace-cli'
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
if (!response.ok) {
|
|
23
|
+
// Package might not be published yet (404 is expected for unpublished packages)
|
|
24
|
+
if (response.status === 404) {
|
|
25
|
+
return null; // Not published yet
|
|
26
|
+
}
|
|
27
|
+
console.error(`⚠️ npm registry error: ${response.status}`);
|
|
28
|
+
return null;
|
|
29
|
+
}
|
|
30
|
+
const data = await response.json();
|
|
31
|
+
return data.version || null;
|
|
32
|
+
}
|
|
33
|
+
catch (error) {
|
|
34
|
+
// Silently fail - network errors are common
|
|
35
|
+
return null;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Perform complete version check
|
|
40
|
+
* Returns version status with update availability
|
|
41
|
+
*/
|
|
42
|
+
export async function performVersionCheck() {
|
|
43
|
+
const clientVersion = getClientVersion();
|
|
44
|
+
const warnings = [];
|
|
45
|
+
console.error(`ℹ️ Checking version (current: ${clientVersion})...`);
|
|
46
|
+
// Check npm package version for CLI updates
|
|
47
|
+
const latestNpmVersion = await checkLatestNpmVersion();
|
|
48
|
+
let isCliUpdateAvailable = false;
|
|
49
|
+
if (latestNpmVersion) {
|
|
50
|
+
console.error(`ℹ️ Latest npm version: ${latestNpmVersion}`);
|
|
51
|
+
if (compareVersions(latestNpmVersion, clientVersion) > 0) {
|
|
52
|
+
isCliUpdateAvailable = true;
|
|
53
|
+
warnings.push(`🎉 New version available: v${latestNpmVersion} (current: v${clientVersion}). ` +
|
|
54
|
+
`Update with: npm install -g @ace-sdk/cli@latest`);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
// Silently ignore if npm check fails (package not published yet or network error)
|
|
58
|
+
return {
|
|
59
|
+
clientVersion,
|
|
60
|
+
latestNpmVersion,
|
|
61
|
+
isCliUpdateAvailable,
|
|
62
|
+
warnings
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Check version and log warnings (non-blocking)
|
|
67
|
+
* Called during CLI initialization
|
|
68
|
+
*/
|
|
69
|
+
export async function checkVersionCompatibility() {
|
|
70
|
+
const status = await performVersionCheck();
|
|
71
|
+
// Log warnings (non-blocking)
|
|
72
|
+
if (status.warnings.length > 0) {
|
|
73
|
+
console.error('');
|
|
74
|
+
console.error('⚠️ Version Warnings:');
|
|
75
|
+
status.warnings.forEach((warning, index) => {
|
|
76
|
+
console.error(` ${index + 1}. ${warning}`);
|
|
77
|
+
});
|
|
78
|
+
console.error('');
|
|
79
|
+
}
|
|
80
|
+
return status;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Lightweight CLI update checker with caching
|
|
84
|
+
* Only checks npm registry
|
|
85
|
+
* Caches result for 24 hours to avoid spamming npm registry
|
|
86
|
+
*/
|
|
87
|
+
export async function checkCliUpdate() {
|
|
88
|
+
try {
|
|
89
|
+
const cacheDir = join(process.env.HOME || process.env.USERPROFILE || '/tmp', '.ace-cache');
|
|
90
|
+
const cacheFile = join(cacheDir, 'cli-version-check.json');
|
|
91
|
+
const now = Date.now();
|
|
92
|
+
const cacheTtl = 24 * 60 * 60 * 1000; // 24 hours
|
|
93
|
+
// Check cache
|
|
94
|
+
if (existsSync(cacheFile)) {
|
|
95
|
+
const cached = JSON.parse(readFileSync(cacheFile, 'utf8'));
|
|
96
|
+
if (now - cached.timestamp < cacheTtl) {
|
|
97
|
+
// Cache is fresh
|
|
98
|
+
if (cached.updateAvailable) {
|
|
99
|
+
console.error(`\n💡 Update available: v${cached.latestVersion} → Run: npm install -g @ace-sdk/cli@latest\n`);
|
|
100
|
+
}
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
// Cache miss or expired - check npm
|
|
105
|
+
const currentVersion = getClientVersion();
|
|
106
|
+
const latestVersion = await checkLatestNpmVersion();
|
|
107
|
+
if (latestVersion && compareVersions(latestVersion, currentVersion) > 0) {
|
|
108
|
+
// Update available
|
|
109
|
+
const cacheData = {
|
|
110
|
+
timestamp: now,
|
|
111
|
+
updateAvailable: true,
|
|
112
|
+
currentVersion,
|
|
113
|
+
latestVersion
|
|
114
|
+
};
|
|
115
|
+
// Save to cache
|
|
116
|
+
if (!existsSync(cacheDir)) {
|
|
117
|
+
mkdirSync(cacheDir, { recursive: true });
|
|
118
|
+
}
|
|
119
|
+
writeFileSync(cacheFile, JSON.stringify(cacheData));
|
|
120
|
+
console.error(`\n💡 Update available: v${latestVersion} (current: v${currentVersion})`);
|
|
121
|
+
console.error(` Run: npm install -g @ace-sdk/cli@latest\n`);
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
// No update or check failed
|
|
125
|
+
const cacheData = {
|
|
126
|
+
timestamp: now,
|
|
127
|
+
updateAvailable: false,
|
|
128
|
+
currentVersion,
|
|
129
|
+
latestVersion: latestVersion || currentVersion
|
|
130
|
+
};
|
|
131
|
+
if (!existsSync(cacheDir)) {
|
|
132
|
+
mkdirSync(cacheDir, { recursive: true });
|
|
133
|
+
}
|
|
134
|
+
writeFileSync(cacheFile, JSON.stringify(cacheData));
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
catch (error) {
|
|
138
|
+
// Silently fail - update checks shouldn't break the CLI
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
//# sourceMappingURL=version-checker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version-checker.js","sourceRoot":"","sources":["../../src/utils/version-checker.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@ace-sdk/cli",
|
|
3
|
+
"version": "2.0.0",
|
|
4
|
+
"description": "ACE CLI - Command-line tool for intelligent pattern learning and playbook management",
|
|
5
|
+
"main": "dist/cli.js",
|
|
6
|
+
"types": "dist/cli.d.ts",
|
|
7
|
+
"type": "module",
|
|
8
|
+
"bin": {
|
|
9
|
+
"ace-cli": "dist/cli.js",
|
|
10
|
+
"ce-ace": "dist/cli.js"
|
|
11
|
+
},
|
|
12
|
+
"scripts": {
|
|
13
|
+
"build": "tsc",
|
|
14
|
+
"watch": "tsc --watch",
|
|
15
|
+
"clean": "rm -rf dist",
|
|
16
|
+
"dev": "tsx src/cli.ts",
|
|
17
|
+
"test": "tsx tests/cli-test.ts",
|
|
18
|
+
"prepublishOnly": "npm run build"
|
|
19
|
+
},
|
|
20
|
+
"keywords": [
|
|
21
|
+
"cli",
|
|
22
|
+
"ace",
|
|
23
|
+
"pattern-learning",
|
|
24
|
+
"playbook",
|
|
25
|
+
"code-analysis",
|
|
26
|
+
"agentic",
|
|
27
|
+
"context-engineering",
|
|
28
|
+
"code-engine",
|
|
29
|
+
"developer-tools"
|
|
30
|
+
],
|
|
31
|
+
"author": {
|
|
32
|
+
"name": "CE.NET Team",
|
|
33
|
+
"email": "ace@code-engine.net"
|
|
34
|
+
},
|
|
35
|
+
"license": "MIT",
|
|
36
|
+
"repository": {
|
|
37
|
+
"type": "git",
|
|
38
|
+
"url": "https://github.com/ce-dot-net/ace-sdk.git",
|
|
39
|
+
"directory": "packages/cli"
|
|
40
|
+
},
|
|
41
|
+
"dependencies": {
|
|
42
|
+
"@ace-sdk/core": "^1.0.0",
|
|
43
|
+
"chalk": "^5.6.2",
|
|
44
|
+
"commander": "^14.0.2",
|
|
45
|
+
"ora": "^9.0.0",
|
|
46
|
+
"tabtab": "^3.0.2"
|
|
47
|
+
},
|
|
48
|
+
"devDependencies": {
|
|
49
|
+
"@types/node": "^24.10.1",
|
|
50
|
+
"@types/tabtab": "^3.0.4",
|
|
51
|
+
"tsx": "^4.19.2",
|
|
52
|
+
"typescript": "^5.9.3"
|
|
53
|
+
},
|
|
54
|
+
"engines": {
|
|
55
|
+
"node": ">=20.0.0"
|
|
56
|
+
},
|
|
57
|
+
"files": [
|
|
58
|
+
"dist/**/*",
|
|
59
|
+
"README.md"
|
|
60
|
+
],
|
|
61
|
+
"publishConfig": {
|
|
62
|
+
"access": "public"
|
|
63
|
+
}
|
|
64
|
+
}
|