@kaitranntt/ccs 8.3.0 → 8.4.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/dist/cliproxy/binary/platform-detector.d.ts.map +1 -1
- package/dist/cliproxy/binary/platform-detector.js +34 -1
- package/dist/cliproxy/binary/platform-detector.js.map +1 -1
- package/dist/cliproxy/binary/types.d.ts +3 -0
- package/dist/cliproxy/binary/types.d.ts.map +1 -1
- package/dist/cliproxy/binary/types.js +7 -2
- package/dist/cliproxy/binary/types.js.map +1 -1
- package/dist/cliproxy/binary/version-cache.d.ts.map +1 -1
- package/dist/cliproxy/binary/version-cache.js +4 -0
- package/dist/cliproxy/binary/version-cache.js.map +1 -1
- package/dist/commands/bar/bar-paths.d.ts +32 -0
- package/dist/commands/bar/bar-paths.d.ts.map +1 -0
- package/dist/commands/bar/bar-paths.js +62 -0
- package/dist/commands/bar/bar-paths.js.map +1 -0
- package/dist/commands/bar/bar-server-probe.d.ts +27 -0
- package/dist/commands/bar/bar-server-probe.d.ts.map +1 -0
- package/dist/commands/bar/bar-server-probe.js +94 -0
- package/dist/commands/bar/bar-server-probe.js.map +1 -0
- package/dist/commands/bar/help-subcommand.d.ts.map +1 -1
- package/dist/commands/bar/help-subcommand.js +8 -2
- package/dist/commands/bar/help-subcommand.js.map +1 -1
- package/dist/commands/bar/index.d.ts +5 -1
- package/dist/commands/bar/index.d.ts.map +1 -1
- package/dist/commands/bar/index.js +18 -3
- package/dist/commands/bar/index.js.map +1 -1
- package/dist/commands/bar/install-subcommand.d.ts +8 -0
- package/dist/commands/bar/install-subcommand.d.ts.map +1 -1
- package/dist/commands/bar/install-subcommand.js +24 -0
- package/dist/commands/bar/install-subcommand.js.map +1 -1
- package/dist/commands/bar/launch-subcommand.d.ts +36 -34
- package/dist/commands/bar/launch-subcommand.d.ts.map +1 -1
- package/dist/commands/bar/launch-subcommand.js +142 -121
- package/dist/commands/bar/launch-subcommand.js.map +1 -1
- package/dist/commands/bar/serve-subcommand.d.ts +47 -0
- package/dist/commands/bar/serve-subcommand.d.ts.map +1 -0
- package/dist/commands/bar/serve-subcommand.js +192 -0
- package/dist/commands/bar/serve-subcommand.js.map +1 -0
- package/dist/commands/bar/status-subcommand.d.ts +32 -0
- package/dist/commands/bar/status-subcommand.d.ts.map +1 -0
- package/dist/commands/bar/status-subcommand.js +128 -0
- package/dist/commands/bar/status-subcommand.js.map +1 -0
- package/dist/commands/bar/stop-subcommand.d.ts +24 -0
- package/dist/commands/bar/stop-subcommand.d.ts.map +1 -0
- package/dist/commands/bar/stop-subcommand.js +107 -0
- package/dist/commands/bar/stop-subcommand.js.map +1 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platform-detector.d.ts","sourceRoot":"","sources":["../../../src/cliproxy/binary/platform-detector.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,YAAY,EAEZ,aAAa,EAEb,eAAe,EAChB,MAAM,UAAU,CAAC;AAElB,4BAA4B;AAC5B,eAAO,MAAM,cAAc;;;;;;;;;;;;;CAajB,CAAC;AAEX;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,EAAE,eAA4B,CAAC;AAE3D;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB,UAAkD,CAAC;AAEzF;;;;;GAKG;AACH,eAAO,MAAM,2BAA2B,cAAc,CAAC;AAEvD;;;;GAIG;AACH,eAAO,MAAM,qBAAqB;;;CAAuC,CAAC;AAE1E,wDAAwD;AACxD,eAAO,MAAM,gBAAgB,UAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"platform-detector.d.ts","sourceRoot":"","sources":["../../../src/cliproxy/binary/platform-detector.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,YAAY,EAEZ,aAAa,EAEb,eAAe,EAChB,MAAM,UAAU,CAAC;AAElB,4BAA4B;AAC5B,eAAO,MAAM,cAAc;;;;;;;;;;;;;CAajB,CAAC;AAEX;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,EAAE,eAA4B,CAAC;AAE3D;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB,UAAkD,CAAC;AAEzF;;;;;GAKG;AACH,eAAO,MAAM,2BAA2B,cAAc,CAAC;AAEvD;;;;GAIG;AACH,eAAO,MAAM,qBAAqB;;;CAAuC,CAAC;AAE1E,wDAAwD;AACxD,eAAO,MAAM,gBAAgB,UAA4B,CAAC;AAwB1D,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAGpF;AA2CD;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,OAAO,CAAC,EAAE,MAAM,EAChB,OAAO,GAAE,eAAiC,GACzC,YAAY,CAkCd;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,GAAE,eAAiC,GAAG,MAAM,CAIpF;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,GAAE,eAAiC,GAAG,MAAM,CAEvF;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,OAAO,CAAC,EAAE,MAAM,EAChB,OAAO,GAAE,eAAiC,GACzC,MAAM,CAKR;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,OAAO,CAAC,EAAE,MAAM,EAChB,OAAO,GAAE,eAAiC,GACzC,MAAM,CAIR;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,GAAE,eAAiC,GAAG,MAAM,CAErF;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,CAO7C;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,CAW/C"}
|
|
@@ -68,11 +68,42 @@ const RELEASE_ARCH_MAP = {
|
|
|
68
68
|
arm64: 'aarch64',
|
|
69
69
|
aarch64: 'aarch64',
|
|
70
70
|
};
|
|
71
|
+
const PLUS_NO_PLUGIN_ASSET_MIN_VERSION = '7.1.68-0';
|
|
72
|
+
const PLUS_AARCH64_ASSET_MIN_VERSION = '7.1.45-1';
|
|
71
73
|
function mapNodeArchToReleaseArch(nodeArch) {
|
|
72
74
|
const arch = ARCH_MAP[nodeArch];
|
|
73
75
|
return arch ? RELEASE_ARCH_MAP[arch] : undefined;
|
|
74
76
|
}
|
|
75
77
|
exports.mapNodeArchToReleaseArch = mapNodeArchToReleaseArch;
|
|
78
|
+
function parseVersionParts(version) {
|
|
79
|
+
const [coreVersion, forkRelease = '0'] = version.replace(/^v/, '').split('-', 2);
|
|
80
|
+
const [major = 0, minor = 0, patch = 0] = coreVersion
|
|
81
|
+
.split('.')
|
|
82
|
+
.map((part) => parseInt(part, 10) || 0);
|
|
83
|
+
return [major, minor, patch, parseInt(forkRelease, 10) || 0];
|
|
84
|
+
}
|
|
85
|
+
function isAtLeastVersion(version, minimum) {
|
|
86
|
+
const left = parseVersionParts(version);
|
|
87
|
+
const right = parseVersionParts(minimum);
|
|
88
|
+
for (let index = 0; index < left.length; index += 1) {
|
|
89
|
+
if (left[index] > right[index])
|
|
90
|
+
return true;
|
|
91
|
+
if (left[index] < right[index])
|
|
92
|
+
return false;
|
|
93
|
+
}
|
|
94
|
+
return true;
|
|
95
|
+
}
|
|
96
|
+
function usesPlusNoPluginAsset(version, os) {
|
|
97
|
+
return os !== 'windows' && isAtLeastVersion(version, PLUS_NO_PLUGIN_ASSET_MIN_VERSION);
|
|
98
|
+
}
|
|
99
|
+
function getReleaseArchForBackend(backend, version, publicArch, releaseArch) {
|
|
100
|
+
if (backend === 'plus' &&
|
|
101
|
+
publicArch === 'arm64' &&
|
|
102
|
+
!isAtLeastVersion(version, PLUS_AARCH64_ASSET_MIN_VERSION)) {
|
|
103
|
+
return 'arm64';
|
|
104
|
+
}
|
|
105
|
+
return releaseArch;
|
|
106
|
+
}
|
|
76
107
|
/**
|
|
77
108
|
* Detect current platform and return binary info
|
|
78
109
|
* @param version Optional version for binaryName (defaults to backend fallback)
|
|
@@ -95,7 +126,9 @@ function detectPlatform(version, backend = exports.DEFAULT_BACKEND) {
|
|
|
95
126
|
const config = exports.BACKEND_CONFIG[backend];
|
|
96
127
|
const ver = version || config.fallbackVersion;
|
|
97
128
|
const extension = os === 'windows' ? 'zip' : 'tar.gz';
|
|
98
|
-
const
|
|
129
|
+
const assetArch = getReleaseArchForBackend(backend, ver, arch, releaseArch);
|
|
130
|
+
const assetVariant = backend === 'plus' && usesPlusNoPluginAsset(ver, os) ? '_no-plugin' : '';
|
|
131
|
+
const binaryName = `${config.binaryPrefix}_${ver}_${os}_${assetArch}${assetVariant}.${extension}`;
|
|
99
132
|
return {
|
|
100
133
|
os,
|
|
101
134
|
arch,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platform-detector.js","sourceRoot":"","sources":["../../../src/cliproxy/binary/platform-detector.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAUH,4BAA4B;AACf,QAAA,cAAc,GAAG;IAC5B,QAAQ,EAAE;QACR,IAAI,EAAE,2BAA2B;QACjC,YAAY,EAAE,aAAa;QAC3B,UAAU,EAAE,eAAe;QAC3B,eAAe,EAAE,QAAQ;KAC1B;IACD,IAAI,EAAE;QACJ,IAAI,EAAE,4BAA4B;QAClC,YAAY,EAAE,iBAAiB;QAC/B,UAAU,EAAE,oBAAoB;QAChC,eAAe,EAAE,UAAU;KAC5B;CACO,CAAC;AAEX;;;;;;GAMG;AACU,QAAA,eAAe,GAAoB,UAAU,CAAC;AAE3D;;;;;GAKG;AACU,QAAA,yBAAyB,GAAG,sBAAc,CAAC,uBAAe,CAAC,CAAC,eAAe,CAAC;AAEzF;;;;;GAKG;AACU,QAAA,2BAA2B,GAAG,WAAW,CAAC;AAEvD;;;;GAIG;AACU,QAAA,qBAAqB,GAAG,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC;AAE1E,wDAAwD;AAC3C,QAAA,gBAAgB,GAAG,iCAAyB,CAAC;AAE1D,8EAA8E;AAC9E,MAAM,MAAM,GAA4C;IACtD,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,SAAS;CACjB,CAAC;AAEF,MAAM,QAAQ,GAA8C;IAC1D,GAAG,EAAE,OAAO;IACZ,KAAK,EAAE,OAAO;CACf,CAAC;AAEF,uEAAuE;AACvE,MAAM,gBAAgB,GAAyC;IAC7D,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,SAAS;IAChB,OAAO,EAAE,SAAS;CACnB,CAAC;AAEF,SAAgB,wBAAwB,CAAC,QAAgB;IACvD,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAChC,OAAO,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACnD,CAAC;AAHD,4DAGC;AAED;;;;;GAKG;AACH,SAAgB,cAAc,CAC5B,OAAgB,EAChB,UAA2B,uBAAe;IAE1C,MAAM,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC;IACtC,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAE9B,MAAM,EAAE,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;IAChC,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAChC,MAAM,WAAW,GAAG,wBAAwB,CAAC,QAAQ,CAAC,CAAC;IAEvD,IAAI,CAAC,EAAE,EAAE,CAAC;QACR,MAAM,IAAI,KAAK,CACb,iCAAiC,YAAY,IAAI;YAC/C,2CAA2C,CAC9C,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CACb,iCAAiC,QAAQ,IAAI,GAAG,yCAAyC,CAC1F,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,sBAAc,CAAC,OAAO,CAAC,CAAC;IACvC,MAAM,GAAG,GAAG,OAAO,IAAI,MAAM,CAAC,eAAe,CAAC;IAC9C,MAAM,SAAS,GAAqB,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC;IACxE,MAAM,UAAU,GAAG,GAAG,MAAM,CAAC,YAAY,IAAI,GAAG,IAAI,EAAE,IAAI,
|
|
1
|
+
{"version":3,"file":"platform-detector.js","sourceRoot":"","sources":["../../../src/cliproxy/binary/platform-detector.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
export interface VersionCache {
|
|
7
7
|
latestVersion: string;
|
|
8
8
|
checkedAt: number;
|
|
9
|
+
repo: string;
|
|
9
10
|
}
|
|
10
11
|
/** Update check result */
|
|
11
12
|
export interface UpdateCheckResult {
|
|
@@ -30,6 +31,8 @@ export declare const GITHUB_REPOS: {
|
|
|
30
31
|
readonly original: "router-for-me/CLIProxyAPI";
|
|
31
32
|
readonly plus: "kaitranntt/CLIProxyAPIPlus";
|
|
32
33
|
};
|
|
34
|
+
/** Get GitHub repository for specific backend */
|
|
35
|
+
export declare function getGitHubRepo(backend: 'original' | 'plus'): string;
|
|
33
36
|
/** Get GitHub API URLs for specific backend */
|
|
34
37
|
export declare function getGitHubApiUrls(backend: 'original' | 'plus'): {
|
|
35
38
|
latestRelease: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/cliproxy/binary/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,mCAAmC;AACnC,MAAM,WAAW,YAAY;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/cliproxy/binary/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,mCAAmC;AACnC,MAAM,WAAW,YAAY;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,0BAA0B;AAC1B,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,OAAO,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,gEAAgE;AAChE,eAAO,MAAM,yBAAyB,QAAiB,CAAC;AAExD,oEAAoE;AACpE,eAAO,MAAM,gBAAgB,iBAAiB,CAAC;AAE/C;;;GAGG;AACH,eAAO,MAAM,yBAAyB,4EACqC,CAAC;AAC5E,eAAO,MAAM,uBAAuB,qEACgC,CAAC;AAErE,+BAA+B;AAC/B,eAAO,MAAM,YAAY;;;CAGf,CAAC;AAEX,iDAAiD;AACjD,wBAAgB,aAAa,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM,GAAG,MAAM,CAElE;AAED,+CAA+C;AAC/C,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM;;;EAM5D;AAED,mCAAmC;AACnC,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,mCAAmC;AACnC,MAAM,WAAW,iBAAkB,SAAQ,gBAAgB;IACzD,SAAS,EAAE,OAAO,CAAC;CACpB"}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Types specific to binary management operations.
|
|
5
5
|
*/
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
exports.getGitHubApiUrls = exports.GITHUB_REPOS = exports.GITHUB_API_ALL_RELEASES = exports.GITHUB_API_LATEST_RELEASE = exports.VERSION_PIN_FILE = exports.VERSION_CACHE_DURATION_MS = void 0;
|
|
7
|
+
exports.getGitHubApiUrls = exports.getGitHubRepo = exports.GITHUB_REPOS = exports.GITHUB_API_ALL_RELEASES = exports.GITHUB_API_LATEST_RELEASE = exports.VERSION_PIN_FILE = exports.VERSION_CACHE_DURATION_MS = void 0;
|
|
8
8
|
/** Cache duration for version check (1 hour in milliseconds) */
|
|
9
9
|
exports.VERSION_CACHE_DURATION_MS = 60 * 60 * 1000;
|
|
10
10
|
/** Version pin file name - stores user's explicit version choice */
|
|
@@ -20,9 +20,14 @@ exports.GITHUB_REPOS = {
|
|
|
20
20
|
original: 'router-for-me/CLIProxyAPI',
|
|
21
21
|
plus: 'kaitranntt/CLIProxyAPIPlus',
|
|
22
22
|
};
|
|
23
|
+
/** Get GitHub repository for specific backend */
|
|
24
|
+
function getGitHubRepo(backend) {
|
|
25
|
+
return exports.GITHUB_REPOS[backend];
|
|
26
|
+
}
|
|
27
|
+
exports.getGitHubRepo = getGitHubRepo;
|
|
23
28
|
/** Get GitHub API URLs for specific backend */
|
|
24
29
|
function getGitHubApiUrls(backend) {
|
|
25
|
-
const repo =
|
|
30
|
+
const repo = getGitHubRepo(backend);
|
|
26
31
|
return {
|
|
27
32
|
latestRelease: `https://api.github.com/repos/${repo}/releases/latest`,
|
|
28
33
|
allReleases: `https://api.github.com/repos/${repo}/releases`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/cliproxy/binary/types.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/cliproxy/binary/types.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAkBH,gEAAgE;AACnD,QAAA,yBAAyB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAExD,oEAAoE;AACvD,QAAA,gBAAgB,GAAG,cAAc,CAAC;AAE/C;;;GAGG;AACU,QAAA,yBAAyB,GACpC,yEAAyE,CAAC;AAC/D,QAAA,uBAAuB,GAClC,kEAAkE,CAAC;AAErE,+BAA+B;AAClB,QAAA,YAAY,GAAG;IAC1B,QAAQ,EAAE,2BAA2B;IACrC,IAAI,EAAE,4BAA4B;CAC1B,CAAC;AAEX,iDAAiD;AACjD,SAAgB,aAAa,CAAC,OAA4B;IACxD,OAAO,oBAAY,CAAC,OAAO,CAAC,CAAC;AAC/B,CAAC;AAFD,sCAEC;AAED,+CAA+C;AAC/C,SAAgB,gBAAgB,CAAC,OAA4B;IAC3D,MAAM,IAAI,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IACpC,OAAO;QACL,aAAa,EAAE,gCAAgC,IAAI,kBAAkB;QACrE,WAAW,EAAE,gCAAgC,IAAI,WAAW;KAC7D,CAAC;AACJ,CAAC;AAND,4CAMC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version-cache.d.ts","sourceRoot":"","sources":["../../../src/cliproxy/binary/version-cache.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,EACL,YAAY,EAGZ,gBAAgB,
|
|
1
|
+
{"version":3,"file":"version-cache.d.ts","sourceRoot":"","sources":["../../../src/cliproxy/binary/version-cache.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,EACL,YAAY,EAGZ,gBAAgB,EAEjB,MAAM,SAAS,CAAC;AAEjB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAEhD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,GAAE,eAAiC,GAAG,MAAM,CAEtF;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,GAAE,eAAiC,GAAG,MAAM,CAEpF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,GAAE,eAAiC,GAAG,YAAY,GAAG,IAAI,CAEhG;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,GAAE,eAAiC,GACzC,YAAY,GAAG,IAAI,CAErB;AA+BD;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,eAAiC,GACzC,IAAI,CAcN;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,MAAM,CAUrF;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAO5E;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,GAAE,eAAiC,GAAG,MAAM,GAAG,IAAI,CAU1F;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,eAAiC,GACzC,IAAI,CAQN;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,GAAE,eAAiC,GAAG,IAAI,CASnF;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,GAAE,eAAiC,GAAG,OAAO,CAEnF;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI,CAgBhE;AAMD;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,GAAE,eAAiC,GAAG,MAAM,CAE1F;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,GAAE,eAAiC,GACzC,gBAAgB,GAAG,IAAI,CAEzB;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,GAAE,eAAiC,GACzC,gBAAgB,GAAG,IAAI,CAEzB;AA0BD;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,gBAAgB,EACvB,OAAO,GAAE,eAAiC,GACzC,IAAI,CASN"}
|
|
@@ -70,6 +70,9 @@ function readVersionCacheInternal(backend, allowExpired) {
|
|
|
70
70
|
try {
|
|
71
71
|
const content = fs.readFileSync(cachePath, 'utf8');
|
|
72
72
|
const cache = JSON.parse(content);
|
|
73
|
+
if (cache.repo !== (0, types_1.getGitHubRepo)(backend)) {
|
|
74
|
+
return null;
|
|
75
|
+
}
|
|
73
76
|
// Check if cache is still valid, unless caller explicitly allows stale fallback.
|
|
74
77
|
if (allowExpired || Date.now() - cache.checkedAt < types_1.VERSION_CACHE_DURATION_MS) {
|
|
75
78
|
return cache;
|
|
@@ -89,6 +92,7 @@ function writeVersionCache(version, backend = platform_detector_1.DEFAULT_BACKEN
|
|
|
89
92
|
const cache = {
|
|
90
93
|
latestVersion: version,
|
|
91
94
|
checkedAt: Date.now(),
|
|
95
|
+
repo: (0, types_1.getGitHubRepo)(backend),
|
|
92
96
|
};
|
|
93
97
|
try {
|
|
94
98
|
fs.mkdirSync(path.dirname(cachePath), { recursive: true });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version-cache.js","sourceRoot":"","sources":["../../../src/cliproxy/binary/version-cache.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,uCAAyB;AACzB,2CAA6B;AAC7B,iEAAuD;AACvD,
|
|
1
|
+
{"version":3,"file":"version-cache.js","sourceRoot":"","sources":["../../../src/cliproxy/binary/version-cache.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared path helpers for the `ccs bar` command family.
|
|
3
|
+
*
|
|
4
|
+
* Centralises the paths under ~/.ccs/bar/ so every subcommand stays DRY.
|
|
5
|
+
* All paths derive from ccsDir (i.e. getCcsDir()) so CCS_HOME isolation
|
|
6
|
+
* works correctly in tests.
|
|
7
|
+
*/
|
|
8
|
+
/** launch.json — consumed by the Swift app to spawn the server without a shell PATH. */
|
|
9
|
+
export declare function getLaunchJsonPath(ccsDir: string): string;
|
|
10
|
+
/** server.pid — PID of the live detached server process. */
|
|
11
|
+
export declare function getServerPidPath(ccsDir: string): string;
|
|
12
|
+
/** serve.log — stdout/stderr of the detached server process. */
|
|
13
|
+
export declare function getServeLogPath(ccsDir: string): string;
|
|
14
|
+
/** bar.json — live discovery file consumed by the Swift app. */
|
|
15
|
+
export declare function getBarJsonPath(ccsDir: string): string;
|
|
16
|
+
/** bar/ subdirectory (parent of all bar artefacts). */
|
|
17
|
+
export declare function getBarDir(ccsDir: string): string;
|
|
18
|
+
/** Schema version constant for launch.json. */
|
|
19
|
+
export declare const LAUNCH_JSON_SCHEMA = 1;
|
|
20
|
+
/** Shape of launch.json written by install and refreshed by launch. */
|
|
21
|
+
export interface LaunchJson {
|
|
22
|
+
schema: typeof LAUNCH_JSON_SCHEMA;
|
|
23
|
+
/** Absolute path to the node/bun binary (process.execPath). */
|
|
24
|
+
runtime: string;
|
|
25
|
+
/** Absolute CCS entry point + subcommand args: [process.argv[1], 'bar', 'serve']. */
|
|
26
|
+
args: string[];
|
|
27
|
+
/** os.homedir() — cwd for the spawned server. */
|
|
28
|
+
home: string;
|
|
29
|
+
/** CCS_HOME env value when set; omitted otherwise. */
|
|
30
|
+
ccsHome?: string;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=bar-paths.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bar-paths.d.ts","sourceRoot":"","sources":["../../../src/commands/bar/bar-paths.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,wFAAwF;AACxF,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAExD;AAED,4DAA4D;AAC5D,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED,gEAAgE;AAChE,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED,gEAAgE;AAChE,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAErD;AAED,uDAAuD;AACvD,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED,+CAA+C;AAC/C,eAAO,MAAM,kBAAkB,IAAI,CAAC;AAEpC,uEAAuE;AACvE,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,OAAO,kBAAkB,CAAC;IAClC,+DAA+D;IAC/D,OAAO,EAAE,MAAM,CAAC;IAChB,qFAAqF;IACrF,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,iDAAiD;IACjD,IAAI,EAAE,MAAM,CAAC;IACb,sDAAsD;IACtD,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Shared path helpers for the `ccs bar` command family.
|
|
4
|
+
*
|
|
5
|
+
* Centralises the paths under ~/.ccs/bar/ so every subcommand stays DRY.
|
|
6
|
+
* All paths derive from ccsDir (i.e. getCcsDir()) so CCS_HOME isolation
|
|
7
|
+
* works correctly in tests.
|
|
8
|
+
*/
|
|
9
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
12
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
13
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
14
|
+
}
|
|
15
|
+
Object.defineProperty(o, k2, desc);
|
|
16
|
+
}) : (function(o, m, k, k2) {
|
|
17
|
+
if (k2 === undefined) k2 = k;
|
|
18
|
+
o[k2] = m[k];
|
|
19
|
+
}));
|
|
20
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
21
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
22
|
+
}) : function(o, v) {
|
|
23
|
+
o["default"] = v;
|
|
24
|
+
});
|
|
25
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
26
|
+
if (mod && mod.__esModule) return mod;
|
|
27
|
+
var result = {};
|
|
28
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
29
|
+
__setModuleDefault(result, mod);
|
|
30
|
+
return result;
|
|
31
|
+
};
|
|
32
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
33
|
+
exports.LAUNCH_JSON_SCHEMA = exports.getBarDir = exports.getBarJsonPath = exports.getServeLogPath = exports.getServerPidPath = exports.getLaunchJsonPath = void 0;
|
|
34
|
+
const path = __importStar(require("path"));
|
|
35
|
+
/** launch.json — consumed by the Swift app to spawn the server without a shell PATH. */
|
|
36
|
+
function getLaunchJsonPath(ccsDir) {
|
|
37
|
+
return path.join(ccsDir, 'bar', 'launch.json');
|
|
38
|
+
}
|
|
39
|
+
exports.getLaunchJsonPath = getLaunchJsonPath;
|
|
40
|
+
/** server.pid — PID of the live detached server process. */
|
|
41
|
+
function getServerPidPath(ccsDir) {
|
|
42
|
+
return path.join(ccsDir, 'bar', 'server.pid');
|
|
43
|
+
}
|
|
44
|
+
exports.getServerPidPath = getServerPidPath;
|
|
45
|
+
/** serve.log — stdout/stderr of the detached server process. */
|
|
46
|
+
function getServeLogPath(ccsDir) {
|
|
47
|
+
return path.join(ccsDir, 'bar', 'serve.log');
|
|
48
|
+
}
|
|
49
|
+
exports.getServeLogPath = getServeLogPath;
|
|
50
|
+
/** bar.json — live discovery file consumed by the Swift app. */
|
|
51
|
+
function getBarJsonPath(ccsDir) {
|
|
52
|
+
return path.join(ccsDir, 'bar.json');
|
|
53
|
+
}
|
|
54
|
+
exports.getBarJsonPath = getBarJsonPath;
|
|
55
|
+
/** bar/ subdirectory (parent of all bar artefacts). */
|
|
56
|
+
function getBarDir(ccsDir) {
|
|
57
|
+
return path.join(ccsDir, 'bar');
|
|
58
|
+
}
|
|
59
|
+
exports.getBarDir = getBarDir;
|
|
60
|
+
/** Schema version constant for launch.json. */
|
|
61
|
+
exports.LAUNCH_JSON_SCHEMA = 1;
|
|
62
|
+
//# sourceMappingURL=bar-paths.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bar-paths.js","sourceRoot":"","sources":["../../../src/commands/bar/bar-paths.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,2CAA6B;AAE7B,wFAAwF;AACxF,SAAgB,iBAAiB,CAAC,MAAc;IAC9C,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC;AACjD,CAAC;AAFD,8CAEC;AAED,4DAA4D;AAC5D,SAAgB,gBAAgB,CAAC,MAAc;IAC7C,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;AAChD,CAAC;AAFD,4CAEC;AAED,gEAAgE;AAChE,SAAgB,eAAe,CAAC,MAAc;IAC5C,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;AAC/C,CAAC;AAFD,0CAEC;AAED,gEAAgE;AAChE,SAAgB,cAAc,CAAC,MAAc;IAC3C,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;AACvC,CAAC;AAFD,wCAEC;AAED,uDAAuD;AACvD,SAAgB,SAAS,CAAC,MAAc;IACtC,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAClC,CAAC;AAFD,8BAEC;AAED,+CAA+C;AAClC,QAAA,kBAAkB,GAAG,CAAC,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CCS Bar — server liveness probe utilities.
|
|
3
|
+
*
|
|
4
|
+
* Shared by launch-subcommand.ts and serve-subcommand.ts so neither imports
|
|
5
|
+
* from the other (which would create a cross-module dependency that breaks
|
|
6
|
+
* Bun's test module isolation when cache-busting URLs are used).
|
|
7
|
+
*/
|
|
8
|
+
export interface DashboardInfo {
|
|
9
|
+
port: number;
|
|
10
|
+
baseUrl: string;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Read the port recorded in an existing bar.json.
|
|
14
|
+
* Returns null when the file is absent or malformed.
|
|
15
|
+
*/
|
|
16
|
+
export declare function resolveBarPort(ccsDir: string): number | null;
|
|
17
|
+
/**
|
|
18
|
+
* Probe candidate ports for a running CCS server.
|
|
19
|
+
*
|
|
20
|
+
* Both IPv4 (127.0.0.1) and IPv6 (::1) loopback addresses are probed for each
|
|
21
|
+
* port. All probes are fired concurrently so worst-case latency is ~1.5 s
|
|
22
|
+
* (one timeout) rather than N × 1.5 s sequentially. Priority selection is
|
|
23
|
+
* applied after all results are in: the bar.json port is preferred over the
|
|
24
|
+
* defaults, and within a port 127.0.0.1 is preferred over [::1].
|
|
25
|
+
*/
|
|
26
|
+
export declare function defaultFindRunningServer(ccsDir: string): Promise<DashboardInfo | null>;
|
|
27
|
+
//# sourceMappingURL=bar-server-probe.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bar-server-probe.d.ts","sourceRoot":"","sources":["../../../src/commands/bar/bar-server-probe.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAS5D;AAED;;;;;;;;GAQG;AACH,wBAAsB,wBAAwB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAoC5F"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* CCS Bar — server liveness probe utilities.
|
|
4
|
+
*
|
|
5
|
+
* Shared by launch-subcommand.ts and serve-subcommand.ts so neither imports
|
|
6
|
+
* from the other (which would create a cross-module dependency that breaks
|
|
7
|
+
* Bun's test module isolation when cache-busting URLs are used).
|
|
8
|
+
*/
|
|
9
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
12
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
13
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
14
|
+
}
|
|
15
|
+
Object.defineProperty(o, k2, desc);
|
|
16
|
+
}) : (function(o, m, k, k2) {
|
|
17
|
+
if (k2 === undefined) k2 = k;
|
|
18
|
+
o[k2] = m[k];
|
|
19
|
+
}));
|
|
20
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
21
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
22
|
+
}) : function(o, v) {
|
|
23
|
+
o["default"] = v;
|
|
24
|
+
});
|
|
25
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
26
|
+
if (mod && mod.__esModule) return mod;
|
|
27
|
+
var result = {};
|
|
28
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
29
|
+
__setModuleDefault(result, mod);
|
|
30
|
+
return result;
|
|
31
|
+
};
|
|
32
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
33
|
+
exports.defaultFindRunningServer = exports.resolveBarPort = void 0;
|
|
34
|
+
const fs = __importStar(require("fs"));
|
|
35
|
+
const path = __importStar(require("path"));
|
|
36
|
+
/**
|
|
37
|
+
* Read the port recorded in an existing bar.json.
|
|
38
|
+
* Returns null when the file is absent or malformed.
|
|
39
|
+
*/
|
|
40
|
+
function resolveBarPort(ccsDir) {
|
|
41
|
+
const barJsonPath = path.join(ccsDir, 'bar.json');
|
|
42
|
+
try {
|
|
43
|
+
const raw = fs.readFileSync(barJsonPath, 'utf8');
|
|
44
|
+
const parsed = JSON.parse(raw);
|
|
45
|
+
return typeof parsed.port === 'number' ? parsed.port : null;
|
|
46
|
+
}
|
|
47
|
+
catch {
|
|
48
|
+
return null;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
exports.resolveBarPort = resolveBarPort;
|
|
52
|
+
/**
|
|
53
|
+
* Probe candidate ports for a running CCS server.
|
|
54
|
+
*
|
|
55
|
+
* Both IPv4 (127.0.0.1) and IPv6 (::1) loopback addresses are probed for each
|
|
56
|
+
* port. All probes are fired concurrently so worst-case latency is ~1.5 s
|
|
57
|
+
* (one timeout) rather than N × 1.5 s sequentially. Priority selection is
|
|
58
|
+
* applied after all results are in: the bar.json port is preferred over the
|
|
59
|
+
* defaults, and within a port 127.0.0.1 is preferred over [::1].
|
|
60
|
+
*/
|
|
61
|
+
async function defaultFindRunningServer(ccsDir) {
|
|
62
|
+
const { request } = await Promise.resolve().then(() => __importStar(require('undici')));
|
|
63
|
+
async function probe(url) {
|
|
64
|
+
try {
|
|
65
|
+
const { statusCode, body } = await request(url, {
|
|
66
|
+
method: 'GET',
|
|
67
|
+
headersTimeout: 1500,
|
|
68
|
+
bodyTimeout: 1500,
|
|
69
|
+
});
|
|
70
|
+
await body.text();
|
|
71
|
+
return { ok: statusCode === 200 };
|
|
72
|
+
}
|
|
73
|
+
catch {
|
|
74
|
+
return { ok: false };
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
const barJsonPort = resolveBarPort(ccsDir);
|
|
78
|
+
const base = [3000, 3001, 3002, 8000, 8080];
|
|
79
|
+
const candidates = barJsonPort !== null ? [barJsonPort, ...base.filter((p) => p !== barJsonPort)] : base;
|
|
80
|
+
const probeTargets = candidates.flatMap((port) => [
|
|
81
|
+
{ port, baseUrl: `http://127.0.0.1:${port}`, url: `http://127.0.0.1:${port}/api/bar/summary` },
|
|
82
|
+
{ port, baseUrl: `http://[::1]:${port}`, url: `http://[::1]:${port}/api/bar/summary` },
|
|
83
|
+
]);
|
|
84
|
+
const results = await Promise.all(probeTargets.map((t) => probe(t.url)));
|
|
85
|
+
for (let i = 0; i < probeTargets.length; i++) {
|
|
86
|
+
if (results[i].ok) {
|
|
87
|
+
const { port, baseUrl } = probeTargets[i];
|
|
88
|
+
return { port, baseUrl };
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
return null;
|
|
92
|
+
}
|
|
93
|
+
exports.defaultFindRunningServer = defaultFindRunningServer;
|
|
94
|
+
//# sourceMappingURL=bar-server-probe.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bar-server-probe.js","sourceRoot":"","sources":["../../../src/commands/bar/bar-server-probe.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,uCAAyB;AACzB,2CAA6B;AAO7B;;;GAGG;AACH,SAAgB,cAAc,CAAC,MAAc;IAC3C,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAClD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QACjD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAA8B,CAAC;QAC5D,OAAO,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IAC9D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AATD,wCASC;AAED;;;;;;;;GAQG;AACI,KAAK,UAAU,wBAAwB,CAAC,MAAc;IAC3D,MAAM,EAAE,OAAO,EAAE,GAAG,wDAAa,QAAQ,GAAC,CAAC;IAE3C,KAAK,UAAU,KAAK,CAAC,GAAW;QAC9B,IAAI,CAAC;YACH,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE;gBAC9C,MAAM,EAAE,KAAK;gBACb,cAAc,EAAE,IAAI;gBACpB,WAAW,EAAE,IAAI;aAClB,CAAC,CAAC;YACH,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;YAClB,OAAO,EAAE,EAAE,EAAE,UAAU,KAAK,GAAG,EAAE,CAAC;QACpC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC;QACvB,CAAC;IACH,CAAC;IAED,MAAM,WAAW,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IAC3C,MAAM,IAAI,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC5C,MAAM,UAAU,GACd,WAAW,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAExF,MAAM,YAAY,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;QAChD,EAAE,IAAI,EAAE,OAAO,EAAE,oBAAoB,IAAI,EAAE,EAAE,GAAG,EAAE,oBAAoB,IAAI,kBAAkB,EAAE;QAC9F,EAAE,IAAI,EAAE,OAAO,EAAE,gBAAgB,IAAI,EAAE,EAAE,GAAG,EAAE,gBAAgB,IAAI,kBAAkB,EAAE;KACvF,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAEzE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7C,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;YAClB,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;YAC1C,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;QAC3B,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AApCD,4DAoCC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"help-subcommand.d.ts","sourceRoot":"","sources":["../../../src/commands/bar/help-subcommand.ts"],"names":[],"mappings":"AAEA,wBAAsB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"help-subcommand.d.ts","sourceRoot":"","sources":["../../../src/commands/bar/help-subcommand.ts"],"names":[],"mappings":"AAEA,wBAAsB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAuE9C"}
|
|
@@ -14,7 +14,9 @@ async function showHelp() {
|
|
|
14
14
|
[
|
|
15
15
|
'Commands:',
|
|
16
16
|
[
|
|
17
|
-
['launch', '
|
|
17
|
+
['launch', 'Spawn the server detached, write ~/.ccs/bar.json, open the app (default)'],
|
|
18
|
+
['stop', 'Stop the detached CCS Bar server'],
|
|
19
|
+
['status', 'Show whether the CCS Bar server is running'],
|
|
18
20
|
['install', 'Download CCS Bar from the ccs-bar-latest GitHub release into ~/Applications'],
|
|
19
21
|
['uninstall', 'Remove the app and version pin'],
|
|
20
22
|
['version', 'Show CLI and installed app versions'],
|
|
@@ -37,7 +39,9 @@ async function showHelp() {
|
|
|
37
39
|
[
|
|
38
40
|
'Examples:',
|
|
39
41
|
[
|
|
40
|
-
['ccs bar', 'Start the
|
|
42
|
+
['ccs bar', 'Start the server detached and open CCS Bar'],
|
|
43
|
+
['ccs bar stop', 'Stop the detached CCS Bar server'],
|
|
44
|
+
['ccs bar status', 'Show server running state and PID'],
|
|
41
45
|
['ccs bar install', 'Download and install CCS Bar, then prompt to launch'],
|
|
42
46
|
['ccs bar install --launch', 'Install and launch immediately (no prompt)'],
|
|
43
47
|
['ccs bar install --no-launch', 'Install without launching'],
|
|
@@ -55,6 +59,8 @@ async function showHelp() {
|
|
|
55
59
|
console.log('');
|
|
56
60
|
}
|
|
57
61
|
console.log((0, ui_1.dim)(' macOS only. The app communicates with the CCS web-server on localhost only.'));
|
|
62
|
+
console.log((0, ui_1.dim)(' `ccs bar launch` spawns the server detached — the terminal is freed immediately.'));
|
|
63
|
+
console.log((0, ui_1.dim)(' The server persists until stopped with `ccs bar stop` or system reboot.'));
|
|
58
64
|
console.log((0, ui_1.dim)(' Gatekeeper quarantine is cleared automatically after install. If the app is still blocked,'));
|
|
59
65
|
console.log((0, ui_1.dim)(' right-click > Open or run `xattr -dr com.apple.quarantine` manually.'));
|
|
60
66
|
console.log('');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"help-subcommand.js","sourceRoot":"","sources":["../../../src/commands/bar/help-subcommand.ts"],"names":[],"mappings":";;;AAAA,uCAAuE;AAEhE,KAAK,UAAU,QAAQ;IAC5B,MAAM,IAAA,WAAM,GAAE,CAAC;IACf,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,IAAA,WAAM,EAAC,8BAA8B,CAAC,CAAC,CAAC;IACpD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,IAAA,cAAS,EAAC,QAAQ,CAAC,CAAC,CAAC;IACjC,OAAO,CAAC,GAAG,CAAC,KAAK,IAAA,UAAK,EAAC,SAAS,EAAE,SAAS,CAAC,sBAAsB,CAAC,CAAC;IACpE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEhB,MAAM,QAAQ,GAAmC;QAC/C;YACE,WAAW;YACX;gBACE,CAAC,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"help-subcommand.js","sourceRoot":"","sources":["../../../src/commands/bar/help-subcommand.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,11 @@
|
|
|
2
2
|
* `ccs bar` command dispatcher
|
|
3
3
|
*
|
|
4
4
|
* Mirrors the pattern in src/commands/docker/index.ts.
|
|
5
|
-
* Subcommands: launch (default),
|
|
5
|
+
* Subcommands: launch (default), serve, stop, status, install, uninstall,
|
|
6
|
+
* version / --version, help / --help / -h.
|
|
7
|
+
*
|
|
8
|
+
* `serve` is the long-lived server host (spawned detached by `launch` and by
|
|
9
|
+
* the Swift app). `stop` and `status` manage the detached server lifecycle.
|
|
6
10
|
*/
|
|
7
11
|
export declare function handleBarCommand(args: string[]): Promise<void>;
|
|
8
12
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/bar/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/bar/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA2DpE"}
|
|
@@ -3,7 +3,11 @@
|
|
|
3
3
|
* `ccs bar` command dispatcher
|
|
4
4
|
*
|
|
5
5
|
* Mirrors the pattern in src/commands/docker/index.ts.
|
|
6
|
-
* Subcommands: launch (default),
|
|
6
|
+
* Subcommands: launch (default), serve, stop, status, install, uninstall,
|
|
7
|
+
* version / --version, help / --help / -h.
|
|
8
|
+
*
|
|
9
|
+
* `serve` is the long-lived server host (spawned detached by `launch` and by
|
|
10
|
+
* the Swift app). `stop` and `status` manage the detached server lifecycle.
|
|
7
11
|
*/
|
|
8
12
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
9
13
|
if (k2 === undefined) k2 = k;
|
|
@@ -34,7 +38,6 @@ const arg_extractor_1 = require("../arg-extractor");
|
|
|
34
38
|
async function handleBarCommand(args) {
|
|
35
39
|
const subcommand = args[0];
|
|
36
40
|
// --help / -h anywhere in args (e.g. `ccs bar install --help`) → show help.
|
|
37
|
-
// Mirrors docker/index.ts: hasAnyFlag(normalizedArgs, ['--help', '-h']).
|
|
38
41
|
// Also dispatch bare `help` subcommand for symmetry.
|
|
39
42
|
if ((0, arg_extractor_1.hasAnyFlag)(args, ['--help', '-h']) || subcommand === 'help') {
|
|
40
43
|
const { showHelp } = await Promise.resolve().then(() => __importStar(require('./help-subcommand')));
|
|
@@ -52,6 +55,18 @@ async function handleBarCommand(args) {
|
|
|
52
55
|
const { handleBarLaunch } = await Promise.resolve().then(() => __importStar(require('./launch-subcommand')));
|
|
53
56
|
await handleBarLaunch(subArgs);
|
|
54
57
|
},
|
|
58
|
+
serve: async (subArgs) => {
|
|
59
|
+
const { handleBarServe } = await Promise.resolve().then(() => __importStar(require('./serve-subcommand')));
|
|
60
|
+
await handleBarServe(subArgs);
|
|
61
|
+
},
|
|
62
|
+
stop: async (subArgs) => {
|
|
63
|
+
const { handleBarStop } = await Promise.resolve().then(() => __importStar(require('./stop-subcommand')));
|
|
64
|
+
await handleBarStop(subArgs);
|
|
65
|
+
},
|
|
66
|
+
status: async (subArgs) => {
|
|
67
|
+
const { handleBarStatus } = await Promise.resolve().then(() => __importStar(require('./status-subcommand')));
|
|
68
|
+
await handleBarStatus(subArgs);
|
|
69
|
+
},
|
|
55
70
|
install: async (subArgs) => {
|
|
56
71
|
const { handleBarInstall } = await Promise.resolve().then(() => __importStar(require('./install-subcommand')));
|
|
57
72
|
await handleBarInstall(subArgs);
|
|
@@ -69,7 +84,7 @@ async function handleBarCommand(args) {
|
|
|
69
84
|
const handler = commandHandlers[subcommand];
|
|
70
85
|
if (!handler) {
|
|
71
86
|
console.error(`[X] Unknown bar subcommand: ${subcommand}`);
|
|
72
|
-
console.error('[i] Usage: ccs bar [launch|install|uninstall|version|--help]');
|
|
87
|
+
console.error('[i] Usage: ccs bar [launch|serve|stop|status|install|uninstall|version|--help]');
|
|
73
88
|
return;
|
|
74
89
|
}
|
|
75
90
|
await handler(args.slice(1));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/bar/index.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/bar/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,oDAA8C;AAEvC,KAAK,UAAU,gBAAgB,CAAC,IAAc;IACnD,MAAM,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAE3B,4EAA4E;IAC5E,qDAAqD;IACrD,IAAI,IAAA,0BAAU,EAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,IAAI,UAAU,KAAK,MAAM,EAAE,CAAC;QAChE,MAAM,EAAE,QAAQ,EAAE,GAAG,wDAAa,mBAAmB,GAAC,CAAC;QACvD,MAAM,QAAQ,EAAE,CAAC;QACjB,OAAO;IACT,CAAC;IAED,6DAA6D;IAC7D,IAAI,UAAU,KAAK,WAAW,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC3D,MAAM,EAAE,gBAAgB,EAAE,GAAG,wDAAa,sBAAsB,GAAC,CAAC;QAClE,MAAM,gBAAgB,EAAE,CAAC;QACzB,OAAO;IACT,CAAC;IAED,MAAM,eAAe,GAAyD;QAC5E,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;YACxB,MAAM,EAAE,eAAe,EAAE,GAAG,wDAAa,qBAAqB,GAAC,CAAC;YAChE,MAAM,eAAe,CAAC,OAAO,CAAC,CAAC;QACjC,CAAC;QACD,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;YACvB,MAAM,EAAE,cAAc,EAAE,GAAG,wDAAa,oBAAoB,GAAC,CAAC;YAC9D,MAAM,cAAc,CAAC,OAAO,CAAC,CAAC;QAChC,CAAC;QACD,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;YACtB,MAAM,EAAE,aAAa,EAAE,GAAG,wDAAa,mBAAmB,GAAC,CAAC;YAC5D,MAAM,aAAa,CAAC,OAAO,CAAC,CAAC;QAC/B,CAAC;QACD,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;YACxB,MAAM,EAAE,eAAe,EAAE,GAAG,wDAAa,qBAAqB,GAAC,CAAC;YAChE,MAAM,eAAe,CAAC,OAAO,CAAC,CAAC;QACjC,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;YACzB,MAAM,EAAE,gBAAgB,EAAE,GAAG,wDAAa,sBAAsB,GAAC,CAAC;YAClE,MAAM,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAClC,CAAC;QACD,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;YAC3B,MAAM,EAAE,kBAAkB,EAAE,GAAG,wDAAa,wBAAwB,GAAC,CAAC;YACtE,MAAM,kBAAkB,CAAC,OAAO,CAAC,CAAC;QACpC,CAAC;KACF,CAAC;IAEF,0BAA0B;IAC1B,IAAI,CAAC,UAAU,IAAI,UAAU,KAAK,QAAQ,EAAE,CAAC;QAC3C,MAAM,eAAe,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC9D,OAAO;IACT,CAAC;IAED,MAAM,OAAO,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;IAC5C,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,+BAA+B,UAAU,EAAE,CAAC,CAAC;QAC3D,OAAO,CAAC,KAAK,CAAC,gFAAgF,CAAC,CAAC;QAChG,OAAO;IACT,CAAC;IAED,MAAM,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/B,CAAC;AA3DD,4CA2DC"}
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
*
|
|
15
15
|
* Mirrors the download/version-pin pattern in src/cliproxy/binary-manager.ts.
|
|
16
16
|
*/
|
|
17
|
+
import type { LaunchJson } from './bar-paths';
|
|
17
18
|
export interface ReleaseAssetResult {
|
|
18
19
|
downloadUrl: string;
|
|
19
20
|
}
|
|
@@ -81,6 +82,13 @@ export interface InstallDeps {
|
|
|
81
82
|
* Throws on failure; caller catches and aborts install.
|
|
82
83
|
*/
|
|
83
84
|
removeExistingApp: (appPath: string) => void;
|
|
85
|
+
/**
|
|
86
|
+
* Write launch.json so the Swift app can spawn the server without a shell PATH.
|
|
87
|
+
* Called after successful install so the descriptor is always fresh.
|
|
88
|
+
* Injectable for tests — asserts the file is written without real fs side-effects.
|
|
89
|
+
* Non-fatal when it throws (install already succeeded).
|
|
90
|
+
*/
|
|
91
|
+
writeLaunchDescriptor: (jsonPath: string, descriptor: LaunchJson) => void;
|
|
84
92
|
}
|
|
85
93
|
/**
|
|
86
94
|
* Validate that a download URL is https and its hostname is in the allowlist
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install-subcommand.d.ts","sourceRoot":"","sources":["../../../src/commands/bar/install-subcommand.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;
|
|
1
|
+
{"version":3,"file":"install-subcommand.d.ts","sourceRoot":"","sources":["../../../src/commands/bar/install-subcommand.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAQH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AA8B9C,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,OAAO,CAAC;IACpB,MAAM,EAAE,IAAI,GAAG,YAAY,GAAG,aAAa,CAAC;CAC7C;AAED,MAAM,WAAW,WAAW;IAC1B;;;;OAIG;IACH,iBAAiB,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC/E;;;OAGG;IACH,kBAAkB,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACjE;;;;OAIG;IACH,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;IACzD;;;OAGG;IACH,oBAAoB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;IACzD,kDAAkD;IAClD,SAAS,EAAE,MAAM,MAAM,CAAC;IACxB,6EAA6E;IAC7E,UAAU,EAAE,MAAM,MAAM,CAAC;IACzB;;;;;OAKG;IACH,eAAe,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACvD;;;OAGG;IACH,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7C;;;;OAIG;IACH,YAAY,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IACrC;;;;;OAKG;IACH,YAAY,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IACrC;;;;;;OAMG;IACH,iBAAiB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C;;;;;OAKG;IACH,qBAAqB,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,KAAK,IAAI,CAAC;CAC3E;AAMD;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAuBrD;AA+TD,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,MAAM,EAAE,EACd,IAAI,GAAE,OAAO,CAAC,WAAW,CAAM,GAC9B,OAAO,CAAC,IAAI,CAAC,CAuPf"}
|