@kaitranntt/ccs 8.2.0-dev.1 → 8.2.0-dev.10
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 +12 -0
- package/config/base-claude.settings.json +1 -5
- package/dist/api/services/cliproxy-profile-bridge.d.ts.map +1 -1
- package/dist/api/services/cliproxy-profile-bridge.js +6 -0
- package/dist/api/services/cliproxy-profile-bridge.js.map +1 -1
- package/dist/api/services/profile-writer.d.ts.map +1 -1
- package/dist/api/services/profile-writer.js +18 -8
- package/dist/api/services/profile-writer.js.map +1 -1
- package/dist/auth/commands/create-command.d.ts.map +1 -1
- package/dist/auth/commands/create-command.js +11 -0
- package/dist/auth/commands/create-command.js.map +1 -1
- package/dist/cliproxy/accounts/account-safety-cross-lane.d.ts +41 -0
- package/dist/cliproxy/accounts/account-safety-cross-lane.d.ts.map +1 -0
- package/dist/cliproxy/accounts/account-safety-cross-lane.js +177 -0
- package/dist/cliproxy/accounts/account-safety-cross-lane.js.map +1 -0
- package/dist/cliproxy/accounts/account-safety.d.ts +29 -1
- package/dist/cliproxy/accounts/account-safety.d.ts.map +1 -1
- package/dist/cliproxy/accounts/account-safety.js +41 -7
- package/dist/cliproxy/accounts/account-safety.js.map +1 -1
- package/dist/cliproxy/accounts/drain-order.d.ts +277 -0
- package/dist/cliproxy/accounts/drain-order.d.ts.map +1 -0
- package/dist/cliproxy/accounts/drain-order.js +575 -0
- package/dist/cliproxy/accounts/drain-order.js.map +1 -0
- package/dist/cliproxy/accounts/pool-state.d.ts +132 -0
- package/dist/cliproxy/accounts/pool-state.d.ts.map +1 -0
- package/dist/cliproxy/accounts/pool-state.js +201 -0
- package/dist/cliproxy/accounts/pool-state.js.map +1 -0
- package/dist/cliproxy/accounts/registry.d.ts +17 -1
- package/dist/cliproxy/accounts/registry.d.ts.map +1 -1
- package/dist/cliproxy/accounts/registry.js +47 -1
- package/dist/cliproxy/accounts/registry.js.map +1 -1
- package/dist/cliproxy/accounts/types.d.ts +20 -0
- package/dist/cliproxy/accounts/types.d.ts.map +1 -1
- package/dist/cliproxy/auth/oauth-handler.d.ts.map +1 -1
- package/dist/cliproxy/auth/oauth-handler.js +29 -0
- package/dist/cliproxy/auth/oauth-handler.js.map +1 -1
- package/dist/cliproxy/claude-shadow-warning.d.ts +39 -0
- package/dist/cliproxy/claude-shadow-warning.d.ts.map +1 -0
- package/dist/cliproxy/claude-shadow-warning.js +187 -0
- package/dist/cliproxy/claude-shadow-warning.js.map +1 -0
- package/dist/cliproxy/config/base-config-loader.d.ts +6 -5
- package/dist/cliproxy/config/base-config-loader.d.ts.map +1 -1
- package/dist/cliproxy/config/base-config-loader.js +19 -12
- package/dist/cliproxy/config/base-config-loader.js.map +1 -1
- package/dist/cliproxy/config/env-builder.d.ts +3 -0
- package/dist/cliproxy/config/env-builder.d.ts.map +1 -1
- package/dist/cliproxy/config/env-builder.js +158 -20
- package/dist/cliproxy/config/env-builder.js.map +1 -1
- package/dist/cliproxy/config/generator.d.ts +2 -1
- package/dist/cliproxy/config/generator.d.ts.map +1 -1
- package/dist/cliproxy/config/generator.js +66 -9
- package/dist/cliproxy/config/generator.js.map +1 -1
- package/dist/cliproxy/config/thinking-config.d.ts.map +1 -1
- package/dist/cliproxy/config/thinking-config.js +2 -0
- package/dist/cliproxy/config/thinking-config.js.map +1 -1
- package/dist/cliproxy/executor/auth-coordinator.d.ts +4 -0
- package/dist/cliproxy/executor/auth-coordinator.d.ts.map +1 -1
- package/dist/cliproxy/executor/auth-coordinator.js +5 -1
- package/dist/cliproxy/executor/auth-coordinator.js.map +1 -1
- package/dist/cliproxy/executor/index.d.ts.map +1 -1
- package/dist/cliproxy/executor/index.js +20 -0
- package/dist/cliproxy/executor/index.js.map +1 -1
- package/dist/cliproxy/model-catalog.d.ts.map +1 -1
- package/dist/cliproxy/model-catalog.js +15 -0
- package/dist/cliproxy/model-catalog.js.map +1 -1
- package/dist/cliproxy/proxy/upstream-response-timeout.d.ts.map +1 -1
- package/dist/cliproxy/proxy/upstream-response-timeout.js +8 -1
- package/dist/cliproxy/proxy/upstream-response-timeout.js.map +1 -1
- package/dist/cliproxy/quota/quota-manager.d.ts +7 -0
- package/dist/cliproxy/quota/quota-manager.d.ts.map +1 -1
- package/dist/cliproxy/quota/quota-manager.js +19 -1
- package/dist/cliproxy/quota/quota-manager.js.map +1 -1
- package/dist/cliproxy/routing/pool-onboarding-hint.d.ts +95 -0
- package/dist/cliproxy/routing/pool-onboarding-hint.d.ts.map +1 -0
- package/dist/cliproxy/routing/pool-onboarding-hint.js +172 -0
- package/dist/cliproxy/routing/pool-onboarding-hint.js.map +1 -0
- package/dist/cliproxy/routing/pool-opt-in-prompt.d.ts +50 -0
- package/dist/cliproxy/routing/pool-opt-in-prompt.d.ts.map +1 -0
- package/dist/cliproxy/routing/pool-opt-in-prompt.js +232 -0
- package/dist/cliproxy/routing/pool-opt-in-prompt.js.map +1 -0
- package/dist/cliproxy/routing/routing-strategy.d.ts +132 -0
- package/dist/cliproxy/routing/routing-strategy.d.ts.map +1 -1
- package/dist/cliproxy/routing/routing-strategy.js +342 -5
- package/dist/cliproxy/routing/routing-strategy.js.map +1 -1
- package/dist/commands/bar/help-subcommand.d.ts +2 -0
- package/dist/commands/bar/help-subcommand.d.ts.map +1 -0
- package/dist/commands/bar/help-subcommand.js +63 -0
- package/dist/commands/bar/help-subcommand.js.map +1 -0
- package/dist/commands/bar/index.d.ts +1 -1
- package/dist/commands/bar/index.d.ts.map +1 -1
- package/dist/commands/bar/index.js +11 -2
- package/dist/commands/bar/index.js.map +1 -1
- package/dist/commands/bar/install-subcommand.d.ts +54 -12
- package/dist/commands/bar/install-subcommand.d.ts.map +1 -1
- package/dist/commands/bar/install-subcommand.js +291 -69
- package/dist/commands/bar/install-subcommand.js.map +1 -1
- package/dist/commands/bar/launch-subcommand.d.ts +26 -0
- package/dist/commands/bar/launch-subcommand.d.ts.map +1 -1
- package/dist/commands/bar/launch-subcommand.js +107 -12
- package/dist/commands/bar/launch-subcommand.js.map +1 -1
- package/dist/commands/cliproxy/help-subcommand.d.ts.map +1 -1
- package/dist/commands/cliproxy/help-subcommand.js +20 -1
- package/dist/commands/cliproxy/help-subcommand.js.map +1 -1
- package/dist/commands/cliproxy/index.d.ts.map +1 -1
- package/dist/commands/cliproxy/index.js +20 -0
- package/dist/commands/cliproxy/index.js.map +1 -1
- package/dist/commands/cliproxy/order-subcommand.d.ts +16 -0
- package/dist/commands/cliproxy/order-subcommand.d.ts.map +1 -0
- package/dist/commands/cliproxy/order-subcommand.js +520 -0
- package/dist/commands/cliproxy/order-subcommand.js.map +1 -0
- package/dist/commands/cliproxy/pool-state-renderer.d.ts +40 -0
- package/dist/commands/cliproxy/pool-state-renderer.d.ts.map +1 -0
- package/dist/commands/cliproxy/pool-state-renderer.js +220 -0
- package/dist/commands/cliproxy/pool-state-renderer.js.map +1 -0
- package/dist/commands/cliproxy/pool-subcommand.d.ts +10 -0
- package/dist/commands/cliproxy/pool-subcommand.d.ts.map +1 -0
- package/dist/commands/cliproxy/pool-subcommand.js +112 -0
- package/dist/commands/cliproxy/pool-subcommand.js.map +1 -0
- package/dist/commands/cliproxy/quota-subcommand.d.ts.map +1 -1
- package/dist/commands/cliproxy/quota-subcommand.js +7 -0
- package/dist/commands/cliproxy/quota-subcommand.js.map +1 -1
- package/dist/commands/cliproxy/routing-subcommand.d.ts.map +1 -1
- package/dist/commands/cliproxy/routing-subcommand.js +19 -0
- package/dist/commands/cliproxy/routing-subcommand.js.map +1 -1
- package/dist/commands/command-catalog.d.ts.map +1 -1
- package/dist/commands/command-catalog.js +1 -0
- package/dist/commands/command-catalog.js.map +1 -1
- package/dist/commands/help-command.d.ts.map +1 -1
- package/dist/commands/help-command.js +6 -1
- package/dist/commands/help-command.js.map +1 -1
- package/dist/config/schemas/cliproxy.d.ts +37 -0
- package/dist/config/schemas/cliproxy.d.ts.map +1 -1
- package/dist/config/unified-config-loader.d.ts.map +1 -1
- package/dist/config/unified-config-loader.js +3 -0
- package/dist/config/unified-config-loader.js.map +1 -1
- package/dist/dispatcher/flows/account-flow.d.ts.map +1 -1
- package/dist/dispatcher/flows/account-flow.js +9 -0
- package/dist/dispatcher/flows/account-flow.js.map +1 -1
- package/dist/management/doctor.d.ts.map +1 -1
- package/dist/management/doctor.js +10 -0
- package/dist/management/doctor.js.map +1 -1
- package/dist/proxy/profile-router.d.ts +14 -0
- package/dist/proxy/profile-router.d.ts.map +1 -1
- package/dist/proxy/profile-router.js +1 -0
- package/dist/proxy/profile-router.js.map +1 -1
- package/dist/proxy/server/http-helpers.d.ts +5 -0
- package/dist/proxy/server/http-helpers.d.ts.map +1 -1
- package/dist/proxy/server/http-helpers.js +40 -1
- package/dist/proxy/server/http-helpers.js.map +1 -1
- package/dist/proxy/server/messages-route.d.ts.map +1 -1
- package/dist/proxy/server/messages-route.js +173 -10
- package/dist/proxy/server/messages-route.js.map +1 -1
- package/dist/proxy/upstream-url.d.ts +42 -2
- package/dist/proxy/upstream-url.d.ts.map +1 -1
- package/dist/proxy/upstream-url.js +83 -4
- package/dist/proxy/upstream-url.js.map +1 -1
- package/dist/ui/assets/{Trans-BkttMZOY.js → Trans-RG_sMDEu.js} +1 -1
- package/dist/ui/assets/accounts-yTXURc-q.js +1 -0
- package/dist/ui/assets/{alert-dialog-Dgbg5gJ1.js → alert-dialog-DjvPgzFs.js} +1 -1
- package/dist/ui/assets/api-Ck1dtNEM.js +4 -0
- package/dist/ui/assets/{auth-section-DV1ImDLn.js → auth-section-DBnY_LPz.js} +1 -1
- package/dist/ui/assets/{backups-section-D7r-Huo_.js → backups-section-Ci-uL4Of.js} +1 -1
- package/dist/ui/assets/{channels-CKUk3W1L.js → channels-BeS9O5q0.js} +1 -1
- package/dist/ui/assets/{checkbox-B6j6PA4N.js → checkbox-DFeFDZBp.js} +1 -1
- package/dist/ui/assets/{claude-extension-B9phgEGW.js → claude-extension-DS5qN19Z.js} +1 -1
- package/dist/ui/assets/{cliproxy-CjZiufaQ.js → cliproxy-D7HJH4mZ.js} +1 -1
- package/dist/ui/assets/{cliproxy-ai-providers-J_8Tg44E.js → cliproxy-ai-providers-oJQZXrtc.js} +1 -1
- package/dist/ui/assets/{cliproxy-control-panel-DOxGnabX.js → cliproxy-control-panel-2mRPEcRj.js} +1 -1
- package/dist/ui/assets/codex-D0AUQ6jA.js +30 -0
- package/dist/ui/assets/{confirm-dialog-CjwyQ3AU.js → confirm-dialog-B37-CVuq.js} +1 -1
- package/dist/ui/assets/{copilot-Nhs4PdOq.js → copilot-KaaW-mko.js} +2 -2
- package/dist/ui/assets/{cursor-DqFROSqy.js → cursor-BKiTgYi5.js} +1 -1
- package/dist/ui/assets/{droid-CBwAiZcv.js → droid-DHdqGnFw.js} +2 -2
- package/dist/ui/assets/{globalenv-section-D9WhcK3S.js → globalenv-section-SfZO97nU.js} +1 -1
- package/dist/ui/assets/health-CSRS9O0D.js +1 -0
- package/dist/ui/assets/{icons-gI6odJjU.js → icons-DSLG1YsC.js} +1 -1
- package/dist/ui/assets/{index-DFYK4jw3.js → index-CGgavq2X.js} +37 -37
- package/dist/ui/assets/{index-D--xE6Kq.js → index-ChTYEBCZ.js} +1 -1
- package/dist/ui/assets/index-Cu_F55_O.js +1 -0
- package/dist/ui/assets/{index-bJvDY0e2.js → index-DJ66NrBH.js} +1 -1
- package/dist/ui/assets/index-DWUuSBUe.js +1 -0
- package/dist/ui/assets/{index-vK0cF4_0.js → index-DycwEe96.js} +1 -1
- package/dist/ui/assets/index-DzFlVVV3.css +1 -0
- package/dist/ui/assets/{index-Bssd99Pa.js → index-iQuEEGbH.js} +1 -1
- package/dist/ui/assets/{logs-BUA9GCN2.js → logs-tiZ_51mo.js} +1 -1
- package/dist/ui/assets/{masked-input-BZdCgWmH.js → masked-input-D9FVoeMA.js} +1 -1
- package/dist/ui/assets/proxy-status-widget-2k26d8pS.js +1 -0
- package/dist/ui/assets/{raw-json-settings-editor-panel-DuL_4ncA.js → raw-json-settings-editor-panel-CguBh93H.js} +1 -1
- package/dist/ui/assets/{searchable-select-BleLprBy.js → searchable-select-C4wShshD.js} +1 -1
- package/dist/ui/assets/{separator-De5-VTtx.js → separator-mvGlDdEW.js} +1 -1
- package/dist/ui/assets/{shared-Bu81YVUK.js → shared-Ck0yAwbs.js} +1 -1
- package/dist/ui/assets/{table-DsXaM2jg.js → table-DrUJOxKL.js} +1 -1
- package/dist/ui/assets/updates-BVHBFcq8.js +1 -0
- package/dist/ui/assets/{use-accounts-C2OmaTJU.js → use-accounts-DLtuaniS.js} +1 -1
- package/dist/ui/index.html +3 -3
- package/dist/utils/browser/mcp-installer.d.ts.map +1 -1
- package/dist/utils/browser/mcp-installer.js +5 -34
- package/dist/utils/browser/mcp-installer.js.map +1 -1
- package/dist/utils/claude-user-config-lock.d.ts +9 -0
- package/dist/utils/claude-user-config-lock.d.ts.map +1 -0
- package/dist/utils/claude-user-config-lock.js +96 -0
- package/dist/utils/claude-user-config-lock.js.map +1 -0
- package/dist/utils/image-analysis/mcp-installer.d.ts.map +1 -1
- package/dist/utils/image-analysis/mcp-installer.js +5 -34
- package/dist/utils/image-analysis/mcp-installer.js.map +1 -1
- package/dist/utils/websearch/mcp-installer.d.ts.map +1 -1
- package/dist/utils/websearch/mcp-installer.js +112 -78
- package/dist/utils/websearch/mcp-installer.js.map +1 -1
- package/dist/web-server/model-pricing.d.ts.map +1 -1
- package/dist/web-server/model-pricing.js +7 -0
- package/dist/web-server/model-pricing.js.map +1 -1
- package/dist/web-server/usage/codex-local-quota-collector.d.ts.map +1 -1
- package/dist/web-server/usage/codex-local-quota-collector.js +11 -9
- package/dist/web-server/usage/codex-local-quota-collector.js.map +1 -1
- package/package.json +1 -1
- package/dist/ui/assets/accounts-CMnafyvZ.js +0 -1
- package/dist/ui/assets/api-VhuWZte1.js +0 -4
- package/dist/ui/assets/codex-BJuDLXfe.js +0 -30
- package/dist/ui/assets/health-CE3lFqFV.js +0 -1
- package/dist/ui/assets/index-C6D81JHk.js +0 -1
- package/dist/ui/assets/index-DGsfFqiO.js +0 -1
- package/dist/ui/assets/index-UEdhhar4.css +0 -1
- package/dist/ui/assets/proxy-status-widget-I35xB9u9.js +0 -1
- package/dist/ui/assets/updates-C2bOO3Fo.js +0 -1
|
@@ -4,9 +4,14 @@
|
|
|
4
4
|
* `ccs-bar-latest` GitHub release tag and install to ~/Applications.
|
|
5
5
|
*
|
|
6
6
|
* Intentionally uses a FLOATING tag (not the exact CLI version) so the
|
|
7
|
-
* Swift app can be rebuilt and published independently. After
|
|
8
|
-
*
|
|
9
|
-
* (
|
|
7
|
+
* Swift app can be rebuilt and published independently. After extraction,
|
|
8
|
+
* the real app version is read from the bundle's Contents/Info.plist
|
|
9
|
+
* (CFBundleShortVersionString) and pinned to ~/.ccs/bar/.version.
|
|
10
|
+
*
|
|
11
|
+
* Post-install compat check: single GET {baseUrl}/api/bar/summary.
|
|
12
|
+
* 200 = server serves the bar API (compatible).
|
|
13
|
+
* 404 = server too old (actionable warning).
|
|
14
|
+
* Other / unreachable = soft-warn, never hard-fail install.
|
|
10
15
|
*
|
|
11
16
|
* Mirrors the download/version-pin pattern in src/cliproxy/binary-manager.ts.
|
|
12
17
|
*/
|
|
@@ -39,6 +44,7 @@ const fs = __importStar(require("fs"));
|
|
|
39
44
|
const os = __importStar(require("os"));
|
|
40
45
|
const path = __importStar(require("path"));
|
|
41
46
|
const config_loader_facade_1 = require("../../config/config-loader-facade");
|
|
47
|
+
const arg_extractor_1 = require("../arg-extractor");
|
|
42
48
|
// ---------------------------------------------------------------------------
|
|
43
49
|
// Constants
|
|
44
50
|
// ---------------------------------------------------------------------------
|
|
@@ -105,15 +111,12 @@ async function defaultFetchReleaseAsset(tag, asset) {
|
|
|
105
111
|
}
|
|
106
112
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
107
113
|
const release = (await body.json());
|
|
108
|
-
const tagName = release.tag_name ?? tag;
|
|
109
|
-
// Strip leading 'v' for the version pin file.
|
|
110
|
-
const version = tagName.replace(/^v/, '');
|
|
111
114
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
112
115
|
const found = release.assets.find((a) => a.name === asset);
|
|
113
116
|
if (!found) {
|
|
114
117
|
throw new Error(`Asset "${asset}" not found in release ${tag}`);
|
|
115
118
|
}
|
|
116
|
-
return { downloadUrl: found.browser_download_url
|
|
119
|
+
return { downloadUrl: found.browser_download_url };
|
|
117
120
|
}
|
|
118
121
|
/**
|
|
119
122
|
* Download a zip from `url` (following up to 5 GitHub 302 redirects, re-validating
|
|
@@ -225,46 +228,58 @@ async function defaultDownloadAndExtract(url, dest) {
|
|
|
225
228
|
}
|
|
226
229
|
}
|
|
227
230
|
/**
|
|
228
|
-
*
|
|
229
|
-
*
|
|
230
|
-
*
|
|
231
|
+
* Single-request capability handshake: GET {baseUrl}/api/bar/summary.
|
|
232
|
+
* 200 → server serves the bar API (compatible).
|
|
233
|
+
* 404 → server is too old and does not serve the bar API.
|
|
234
|
+
* Any other status or network error → soft-warn (unreachable).
|
|
231
235
|
*
|
|
232
|
-
*
|
|
233
|
-
*
|
|
236
|
+
* The route is loopback-gated server-side; install-time baseUrl is always
|
|
237
|
+
* loopback (bar.json baseUrl or http://127.0.0.1:3000), so the gate passes.
|
|
234
238
|
*/
|
|
235
|
-
async function defaultVerifyCompat(baseUrl
|
|
239
|
+
async function defaultVerifyCompat(baseUrl) {
|
|
236
240
|
try {
|
|
237
241
|
const { request } = await Promise.resolve().then(() => __importStar(require('undici')));
|
|
238
|
-
const { statusCode, body } = await request(`${baseUrl}/api/
|
|
242
|
+
const { statusCode, body } = await request(`${baseUrl}/api/bar/summary`, {
|
|
239
243
|
headers: { 'User-Agent': 'ccs-cli' },
|
|
240
244
|
});
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
245
|
+
// Drain the body regardless of status to free the socket.
|
|
246
|
+
try {
|
|
247
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
248
|
+
await body.dump?.();
|
|
244
249
|
}
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
if (
|
|
249
|
-
|
|
250
|
-
return { version: serverVersion, compatible: false };
|
|
250
|
+
catch {
|
|
251
|
+
/* ignore drain errors */
|
|
252
|
+
}
|
|
253
|
+
if (statusCode === 200) {
|
|
254
|
+
return { compatible: true, reason: 'ok' };
|
|
251
255
|
}
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
const serverMajorRaw = serverVersion.split('.')[0];
|
|
255
|
-
const installedMajor = parseInt(installedMajorRaw ?? '', 10);
|
|
256
|
-
const serverMajor = parseInt(serverMajorRaw ?? '', 10);
|
|
257
|
-
if (isNaN(installedMajor) || isNaN(serverMajor)) {
|
|
258
|
-
console.log(`[!] Version compatibility: cannot parse major versions ` +
|
|
259
|
-
`(installed="${installedVersion}", server="${serverVersion}").`);
|
|
260
|
-
return { version: serverVersion, compatible: false };
|
|
256
|
+
if (statusCode === 404) {
|
|
257
|
+
return { compatible: false, reason: 'no-bar-api' };
|
|
261
258
|
}
|
|
262
|
-
|
|
263
|
-
return { version: serverVersion, compatible };
|
|
259
|
+
return { compatible: false, reason: 'unreachable' };
|
|
264
260
|
}
|
|
265
261
|
catch {
|
|
266
|
-
//
|
|
267
|
-
return {
|
|
262
|
+
// Network error or server not running.
|
|
263
|
+
return { compatible: false, reason: 'unreachable' };
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
/**
|
|
267
|
+
* Read CFBundleShortVersionString from {appPath}/Contents/Info.plist.
|
|
268
|
+
* The plist is XML text post-codesign (verified on the installed app).
|
|
269
|
+
* Returns null on any error (missing file, binary plist, parse failure).
|
|
270
|
+
*/
|
|
271
|
+
function defaultReadAppBundleVersion(appPath) {
|
|
272
|
+
try {
|
|
273
|
+
const plistPath = path.join(appPath, 'Contents', 'Info.plist');
|
|
274
|
+
const contents = fs.readFileSync(plistPath, 'utf8');
|
|
275
|
+
const match = /<key>CFBundleShortVersionString<\/key>\s*<string>([^<]+)<\/string>/.exec(contents);
|
|
276
|
+
if (!match || !match[1])
|
|
277
|
+
return null;
|
|
278
|
+
const v = match[1].trim();
|
|
279
|
+
return v || null;
|
|
280
|
+
}
|
|
281
|
+
catch {
|
|
282
|
+
return null;
|
|
268
283
|
}
|
|
269
284
|
}
|
|
270
285
|
function defaultGetCcsDir() {
|
|
@@ -273,6 +288,76 @@ function defaultGetCcsDir() {
|
|
|
273
288
|
function defaultGetAppsDir() {
|
|
274
289
|
return path.join(os.homedir(), 'Applications');
|
|
275
290
|
}
|
|
291
|
+
/**
|
|
292
|
+
* Clear the macOS Gatekeeper quarantine attribute from the installed app.
|
|
293
|
+
* Uses absolute path `/usr/bin/xattr` to avoid PATH hijacking.
|
|
294
|
+
* Runs `/usr/bin/xattr -dr com.apple.quarantine <appPath>` via execFile (not shell-string)
|
|
295
|
+
* so the path is passed as an argument, not interpolated into a shell command.
|
|
296
|
+
* Returns true on success, false on any error (non-fatal — install already succeeded).
|
|
297
|
+
*/
|
|
298
|
+
async function defaultClearQuarantine(appPath) {
|
|
299
|
+
try {
|
|
300
|
+
const { execFile } = await Promise.resolve().then(() => __importStar(require('child_process')));
|
|
301
|
+
const { promisify } = await Promise.resolve().then(() => __importStar(require('util')));
|
|
302
|
+
const execFileAsync = promisify(execFile);
|
|
303
|
+
await execFileAsync('/usr/bin/xattr', ['-dr', 'com.apple.quarantine', appPath]);
|
|
304
|
+
return true;
|
|
305
|
+
}
|
|
306
|
+
catch {
|
|
307
|
+
return false;
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
function defaultRemoveExistingApp(appPath) {
|
|
311
|
+
fs.rmSync(appPath, { recursive: true, force: true });
|
|
312
|
+
}
|
|
313
|
+
async function defaultLaunchBar(args) {
|
|
314
|
+
const { handleBarLaunch } = await Promise.resolve().then(() => __importStar(require('./launch-subcommand')));
|
|
315
|
+
await handleBarLaunch(args);
|
|
316
|
+
}
|
|
317
|
+
/**
|
|
318
|
+
* Detect whether CCS Bar is already running using `/usr/bin/pgrep -x CCSBar`.
|
|
319
|
+
* pgrep exits 0 when a match is found (running), 1 when no match (not running).
|
|
320
|
+
* execFile surfaces exit code 1 as an error, so we catch and return false.
|
|
321
|
+
* Any other error (pgrep unavailable, permission denied) is also treated as not running.
|
|
322
|
+
*/
|
|
323
|
+
async function defaultIsBarRunning() {
|
|
324
|
+
try {
|
|
325
|
+
const { execFile } = await Promise.resolve().then(() => __importStar(require('child_process')));
|
|
326
|
+
const { promisify } = await Promise.resolve().then(() => __importStar(require('util')));
|
|
327
|
+
const execFileAsync = promisify(execFile);
|
|
328
|
+
await execFileAsync('/usr/bin/pgrep', ['-x', 'CCSBar']);
|
|
329
|
+
return true;
|
|
330
|
+
}
|
|
331
|
+
catch {
|
|
332
|
+
// pgrep exits 1 when no match found; execFile throws for non-zero exit codes.
|
|
333
|
+
return false;
|
|
334
|
+
}
|
|
335
|
+
}
|
|
336
|
+
/**
|
|
337
|
+
* Ask the user whether to launch CCS Bar now.
|
|
338
|
+
* Only prompts when stdin is a TTY — stdin is what the prompt actually reads.
|
|
339
|
+
* Non-TTY stdin: return false (caller prints guidance).
|
|
340
|
+
* Default answer is yes (Enter = launch).
|
|
341
|
+
*/
|
|
342
|
+
async function defaultPromptLaunch() {
|
|
343
|
+
if (!process.stdin.isTTY) {
|
|
344
|
+
return false;
|
|
345
|
+
}
|
|
346
|
+
const readline = await Promise.resolve().then(() => __importStar(require('readline')));
|
|
347
|
+
const rl = readline.createInterface({
|
|
348
|
+
input: process.stdin,
|
|
349
|
+
output: process.stdout,
|
|
350
|
+
terminal: true,
|
|
351
|
+
});
|
|
352
|
+
return new Promise((resolve) => {
|
|
353
|
+
rl.question('Launch CCS Bar now? [Y/n] ', (answer) => {
|
|
354
|
+
rl.close();
|
|
355
|
+
const normalized = answer.trim().toLowerCase();
|
|
356
|
+
// Empty (Enter) or 'y'/'yes' → launch
|
|
357
|
+
resolve(normalized === '' || normalized === 'y' || normalized === 'yes');
|
|
358
|
+
});
|
|
359
|
+
});
|
|
360
|
+
}
|
|
276
361
|
// ---------------------------------------------------------------------------
|
|
277
362
|
// Version pin helpers
|
|
278
363
|
// ---------------------------------------------------------------------------
|
|
@@ -287,14 +372,36 @@ function pinBarVersion(ccsDir, version) {
|
|
|
287
372
|
// ---------------------------------------------------------------------------
|
|
288
373
|
// Implementation
|
|
289
374
|
// ---------------------------------------------------------------------------
|
|
290
|
-
async function handleBarInstall(
|
|
375
|
+
async function handleBarInstall(args, deps = {}) {
|
|
376
|
+
// Parse --launch / --no-launch flags before delegating to deps.
|
|
377
|
+
const forceLaunch = (0, arg_extractor_1.hasAnyFlag)(args, ['--launch']);
|
|
378
|
+
const noLaunch = (0, arg_extractor_1.hasAnyFlag)(args, ['--no-launch']);
|
|
291
379
|
const fetchReleaseAsset = deps.fetchReleaseAsset ?? defaultFetchReleaseAsset;
|
|
292
380
|
const downloadAndExtract = deps.downloadAndExtract ?? defaultDownloadAndExtract;
|
|
293
381
|
const verifyCompat = deps.verifyCompat ?? defaultVerifyCompat;
|
|
382
|
+
const readAppBundleVersion = deps.readAppBundleVersion ?? defaultReadAppBundleVersion;
|
|
383
|
+
const clearQuarantine = deps.clearQuarantine ?? defaultClearQuarantine;
|
|
384
|
+
const launchBar = deps.launchBar ?? defaultLaunchBar;
|
|
385
|
+
const promptLaunch = deps.promptLaunch ?? defaultPromptLaunch;
|
|
386
|
+
const isBarRunning = deps.isBarRunning ?? defaultIsBarRunning;
|
|
387
|
+
const removeExistingApp = deps.removeExistingApp ?? defaultRemoveExistingApp;
|
|
294
388
|
const ccsDir = (deps.getCcsDir ?? defaultGetCcsDir)();
|
|
295
389
|
const appsDir = (deps.getAppsDir ?? defaultGetAppsDir)();
|
|
296
|
-
|
|
297
|
-
|
|
390
|
+
// 0. Already-installed detection: show the current version before proceeding.
|
|
391
|
+
const appPath = path.join(appsDir, BAR_APP_NAME);
|
|
392
|
+
if (fs.existsSync(appPath)) {
|
|
393
|
+
const existingVersion = readAppBundleVersion(appPath);
|
|
394
|
+
if (existingVersion !== null) {
|
|
395
|
+
console.log(`[i] CCS Bar v${existingVersion} is already installed. Reinstalling...`);
|
|
396
|
+
}
|
|
397
|
+
else {
|
|
398
|
+
console.log('[i] CCS Bar is already installed. Reinstalling...');
|
|
399
|
+
}
|
|
400
|
+
}
|
|
401
|
+
else {
|
|
402
|
+
console.log('[i] Fetching CCS Bar release info...');
|
|
403
|
+
}
|
|
404
|
+
// 1. Resolve the floating tag → download URL.
|
|
298
405
|
let releaseInfo;
|
|
299
406
|
try {
|
|
300
407
|
releaseInfo = await fetchReleaseAsset(BAR_RELEASE_TAG, BAR_ASSET_NAME);
|
|
@@ -305,45 +412,115 @@ async function handleBarInstall(_args, deps = {}) {
|
|
|
305
412
|
console.error('[i] Check your network connection and try again.');
|
|
306
413
|
return;
|
|
307
414
|
}
|
|
308
|
-
const { downloadUrl
|
|
309
|
-
console.log(`[i] Installing CCS Bar
|
|
310
|
-
//
|
|
415
|
+
const { downloadUrl } = releaseInfo;
|
|
416
|
+
console.log(`[i] Installing CCS Bar from ${BAR_RELEASE_TAG}...`);
|
|
417
|
+
// 1b. Stage-then-swap: extract into a hidden staging dir on the same filesystem
|
|
418
|
+
// so the rename to appPath is atomic-ish. The old bundle is only removed
|
|
419
|
+
// AFTER the new one is verified in staging — a transient download/extraction
|
|
420
|
+
// failure during reinstall therefore leaves the previous working install intact.
|
|
421
|
+
fs.mkdirSync(appsDir, { recursive: true });
|
|
422
|
+
let stagingDir;
|
|
311
423
|
try {
|
|
312
|
-
|
|
424
|
+
stagingDir = fs.mkdtempSync(path.join(appsDir, '.ccs-bar-staging-'));
|
|
425
|
+
}
|
|
426
|
+
catch (err) {
|
|
427
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
428
|
+
console.error(`[X] Could not create staging directory in ${appsDir}: ${msg}`);
|
|
429
|
+
return;
|
|
430
|
+
}
|
|
431
|
+
// Helper: remove staging dir, ignoring errors (best-effort cleanup).
|
|
432
|
+
function cleanupStaging() {
|
|
433
|
+
try {
|
|
434
|
+
fs.rmSync(stagingDir, { recursive: true, force: true });
|
|
435
|
+
}
|
|
436
|
+
catch {
|
|
437
|
+
/* ignore */
|
|
438
|
+
}
|
|
439
|
+
}
|
|
440
|
+
// 2. Download and extract into staging, NOT appsDir.
|
|
441
|
+
try {
|
|
442
|
+
await downloadAndExtract(downloadUrl, stagingDir);
|
|
313
443
|
}
|
|
314
444
|
catch (err) {
|
|
315
445
|
const msg = err instanceof Error ? err.message : String(err);
|
|
316
446
|
console.error(`[X] Download or extraction failed: ${msg}`);
|
|
447
|
+
cleanupStaging();
|
|
317
448
|
return;
|
|
318
449
|
}
|
|
319
450
|
// 3. Finding #12: assert that the expected .app bundle was actually extracted
|
|
320
|
-
// before
|
|
321
|
-
const
|
|
322
|
-
if (!fs.existsSync(
|
|
451
|
+
// into the staging dir before touching the old install.
|
|
452
|
+
const stagedApp = path.join(stagingDir, BAR_APP_NAME);
|
|
453
|
+
if (!fs.existsSync(stagedApp)) {
|
|
323
454
|
// Report what was actually extracted to help diagnose archive issues.
|
|
324
455
|
let extracted = [];
|
|
325
456
|
try {
|
|
326
|
-
extracted = fs.readdirSync(
|
|
457
|
+
extracted = fs.readdirSync(stagingDir);
|
|
327
458
|
}
|
|
328
459
|
catch {
|
|
329
460
|
/* ignore */
|
|
330
461
|
}
|
|
331
462
|
const found = extracted.length > 0 ? extracted.join(', ') : '(none)';
|
|
332
|
-
console.error(`[X] Extraction succeeded but "${BAR_APP_NAME}" was not found in
|
|
333
|
-
console.error(`[i] Files found in
|
|
463
|
+
console.error(`[X] Extraction succeeded but "${BAR_APP_NAME}" was not found in staging.`);
|
|
464
|
+
console.error(`[i] Files found in staging: ${found}`);
|
|
465
|
+
cleanupStaging();
|
|
334
466
|
return;
|
|
335
467
|
}
|
|
336
|
-
//
|
|
468
|
+
// 3b. New bundle verified in staging — now safe to remove the old install.
|
|
469
|
+
if (fs.existsSync(appPath)) {
|
|
470
|
+
try {
|
|
471
|
+
removeExistingApp(appPath);
|
|
472
|
+
}
|
|
473
|
+
catch (err) {
|
|
474
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
475
|
+
console.error(`[X] Could not remove the existing CCS Bar.app: ${msg}`);
|
|
476
|
+
console.error('[i] Close any running instance and try again.');
|
|
477
|
+
cleanupStaging();
|
|
478
|
+
return;
|
|
479
|
+
}
|
|
480
|
+
}
|
|
481
|
+
// 3c. Atomic-ish rename: move staged bundle into the final location.
|
|
337
482
|
try {
|
|
338
|
-
|
|
483
|
+
fs.renameSync(stagedApp, appPath);
|
|
339
484
|
}
|
|
340
485
|
catch (err) {
|
|
341
486
|
const msg = err instanceof Error ? err.message : String(err);
|
|
342
|
-
console.error(`[
|
|
343
|
-
|
|
487
|
+
console.error(`[X] Could not move staged app into place: ${msg}`);
|
|
488
|
+
cleanupStaging();
|
|
489
|
+
return;
|
|
344
490
|
}
|
|
345
|
-
|
|
346
|
-
|
|
491
|
+
// Staging dir is now empty (bundle was moved out); remove it.
|
|
492
|
+
cleanupStaging();
|
|
493
|
+
// 4. Read the real version from the extracted bundle's Info.plist.
|
|
494
|
+
const installedVersion = readAppBundleVersion(appPath);
|
|
495
|
+
if (installedVersion !== null) {
|
|
496
|
+
// Pin the real version string.
|
|
497
|
+
try {
|
|
498
|
+
pinBarVersion(ccsDir, installedVersion);
|
|
499
|
+
}
|
|
500
|
+
catch (err) {
|
|
501
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
502
|
+
console.error(`[!] Could not write version pin: ${msg}`);
|
|
503
|
+
// Non-fatal — continue.
|
|
504
|
+
}
|
|
505
|
+
console.log(`[OK] CCS Bar v${installedVersion} installed to ${appsDir}/${BAR_APP_NAME}`);
|
|
506
|
+
}
|
|
507
|
+
else {
|
|
508
|
+
// Info.plist unreadable — best-effort remove any stale version pin from a previous install,
|
|
509
|
+
// so `ccs bar version` does not show an outdated version string.
|
|
510
|
+
try {
|
|
511
|
+
fs.rmSync(path.join(ccsDir, 'bar', '.version'), { force: true });
|
|
512
|
+
}
|
|
513
|
+
catch {
|
|
514
|
+
/* non-fatal — ignore */
|
|
515
|
+
}
|
|
516
|
+
// No pin written; ASCII notice; no crash.
|
|
517
|
+
console.log(`[OK] CCS Bar installed to ${appsDir}/${BAR_APP_NAME}`);
|
|
518
|
+
console.log('[!] Could not read app version from Info.plist.');
|
|
519
|
+
}
|
|
520
|
+
// 5. Capability handshake via GET /api/bar/summary.
|
|
521
|
+
// Runs BEFORE the quarantine-clear + launch handoff because it is a server-side
|
|
522
|
+
// check unrelated to Gatekeeper. A failed quarantine clear must not prevent the
|
|
523
|
+
// compat result from being shown to the user.
|
|
347
524
|
// Read bar.json for baseUrl if present; otherwise fall back to localhost:3000.
|
|
348
525
|
const barJsonPath = path.join(ccsDir, 'bar.json');
|
|
349
526
|
let baseUrl = 'http://127.0.0.1:3000';
|
|
@@ -357,27 +534,72 @@ async function handleBarInstall(_args, deps = {}) {
|
|
|
357
534
|
/* bar.json absent — use fallback */
|
|
358
535
|
}
|
|
359
536
|
try {
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
537
|
+
const compat = await verifyCompat(baseUrl);
|
|
538
|
+
if (compat.reason === 'ok') {
|
|
539
|
+
console.log('[OK] Server bar API reachable.');
|
|
540
|
+
}
|
|
541
|
+
else if (compat.reason === 'no-bar-api') {
|
|
542
|
+
console.log('[!] CCS server does not serve the bar API (/api/bar/summary returned 404).' +
|
|
543
|
+
' Update CCS, then restart `ccs bar`.');
|
|
366
544
|
}
|
|
367
545
|
else {
|
|
368
|
-
|
|
546
|
+
// unreachable — soft-warn
|
|
547
|
+
console.log('[!] Could not verify server compatibility (server may not be running).');
|
|
548
|
+
console.log('[i] Run `ccs bar` to start the server and recheck.');
|
|
369
549
|
}
|
|
370
550
|
}
|
|
371
551
|
catch {
|
|
372
|
-
console.log('[!] Could not verify
|
|
552
|
+
console.log('[!] Could not verify server compatibility (server may not be running).');
|
|
373
553
|
console.log('[i] Run `ccs bar` to start the server and recheck.');
|
|
374
554
|
}
|
|
375
|
-
// 6.
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
555
|
+
// 6. Quarantine handling: run `xattr -dr com.apple.quarantine` automatically.
|
|
556
|
+
// This clears the Gatekeeper quarantine flag that ad-hoc builds receive on download.
|
|
557
|
+
// On success: print [OK] confirmation. On failure: fall back to printed guidance and
|
|
558
|
+
// SKIP the launch handoff entirely — launching a still-quarantined app hits the
|
|
559
|
+
// Gatekeeper block, so the user must clear quarantine manually first.
|
|
560
|
+
const quarantineCleared = await clearQuarantine(appPath);
|
|
561
|
+
if (quarantineCleared) {
|
|
562
|
+
console.log('[OK] Cleared Gatekeeper quarantine.');
|
|
563
|
+
}
|
|
564
|
+
else {
|
|
565
|
+
console.log('[i] Gatekeeper note (ad-hoc build):');
|
|
566
|
+
console.log(' If macOS says the app is "damaged" or "unverified", run:');
|
|
567
|
+
console.log(` xattr -dr com.apple.quarantine "${appPath}"`);
|
|
568
|
+
console.log(' Or right-click the app and select Open.');
|
|
569
|
+
console.log('[i] After clearing quarantine, run `ccs bar` to launch.');
|
|
570
|
+
return;
|
|
571
|
+
}
|
|
572
|
+
// 7. Launch handoff.
|
|
573
|
+
// Already-running check: if CCS Bar is running after a (re)install, skip the
|
|
574
|
+
// prompt entirely and print a restart hint (the user needs to quit and reopen
|
|
575
|
+
// to pick up the new version). --launch with the app already running still
|
|
576
|
+
// proceeds — the launch flow opens/activates the app, which is harmless.
|
|
577
|
+
//
|
|
578
|
+
// --launch: skip prompt and launch immediately.
|
|
579
|
+
// --no-launch: skip prompt, print guidance.
|
|
580
|
+
// stdin-TTY: ask interactively (default yes).
|
|
581
|
+
// Non-TTY stdin: print guidance, no prompt.
|
|
582
|
+
const barIsRunning = await isBarRunning();
|
|
583
|
+
if (barIsRunning && !forceLaunch) {
|
|
584
|
+
console.log('[!] CCS Bar is currently running an older build. Quit it from the menu bar, then run `ccs bar` to relaunch the updated app.');
|
|
585
|
+
}
|
|
586
|
+
else if (forceLaunch) {
|
|
587
|
+
await launchBar([]);
|
|
588
|
+
}
|
|
589
|
+
else if (noLaunch) {
|
|
590
|
+
console.log('[i] Run `ccs bar` to launch.');
|
|
591
|
+
}
|
|
592
|
+
else {
|
|
593
|
+
const shouldLaunch = await promptLaunch();
|
|
594
|
+
if (shouldLaunch) {
|
|
595
|
+
await launchBar([]);
|
|
596
|
+
}
|
|
597
|
+
else {
|
|
598
|
+
// User declined or non-TTY stdin — always print guidance so the user
|
|
599
|
+
// knows how to start the app after install.
|
|
600
|
+
console.log('[i] Run `ccs bar` to launch later.');
|
|
601
|
+
}
|
|
602
|
+
}
|
|
381
603
|
}
|
|
382
604
|
exports.handleBarInstall = handleBarInstall;
|
|
383
605
|
//# sourceMappingURL=install-subcommand.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install-subcommand.js","sourceRoot":"","sources":["../../../src/commands/bar/install-subcommand.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"install-subcommand.js","sourceRoot":"","sources":["../../../src/commands/bar/install-subcommand.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,11 @@
|
|
|
5
5
|
* { baseUrl: string, port: number, authMode: "loopback" }
|
|
6
6
|
*
|
|
7
7
|
* authMode is always "loopback" for v1 (auth-enabled unsupported until v1.1).
|
|
8
|
+
*
|
|
9
|
+
* Reuse-first behavior: before starting a new server, launch probes the candidate
|
|
10
|
+
* ports (bar.json port first, then 3000, 3001, 3002, 8000, 8080) for a live CCS
|
|
11
|
+
* server at GET /api/bar/summary. A 200 response means the server is already
|
|
12
|
+
* running; launch reuses it without attempting to bind a new one.
|
|
8
13
|
*/
|
|
9
14
|
export interface BarDiscoveryJson {
|
|
10
15
|
baseUrl: string;
|
|
@@ -16,6 +21,12 @@ export interface DashboardInfo {
|
|
|
16
21
|
baseUrl: string;
|
|
17
22
|
}
|
|
18
23
|
export interface LaunchDeps {
|
|
24
|
+
/**
|
|
25
|
+
* Probe candidate ports for a running CCS server.
|
|
26
|
+
* Returns { port, baseUrl } of the first live server found, or null if none.
|
|
27
|
+
* Never throws — any error is treated as "not found".
|
|
28
|
+
*/
|
|
29
|
+
findRunningServer: () => Promise<DashboardInfo | null>;
|
|
19
30
|
/**
|
|
20
31
|
* Ensure the CCS web-server / dashboard is running.
|
|
21
32
|
* Returns { port, baseUrl } of the running server.
|
|
@@ -34,5 +45,20 @@ export interface LaunchDeps {
|
|
|
34
45
|
* Returns null when the file is absent or malformed.
|
|
35
46
|
*/
|
|
36
47
|
export declare function resolveBarPort(ccsDir: string): number | null;
|
|
48
|
+
/**
|
|
49
|
+
* Probe candidate ports for a running CCS server.
|
|
50
|
+
*
|
|
51
|
+
* Both IPv4 (127.0.0.1) and IPv6 (::1) loopback addresses are probed for
|
|
52
|
+
* each port. This is necessary because `ccs config` starts the server with
|
|
53
|
+
* host 'localhost', which macOS resolves to ::1 — an IPv4-only probe would
|
|
54
|
+
* miss that server and start a redundant second instance.
|
|
55
|
+
*
|
|
56
|
+
* All probes are fired concurrently (cheap loopback requests) so worst-case
|
|
57
|
+
* latency is ~1.5 s (one timeout) rather than N × 1.5 s sequentially.
|
|
58
|
+
* Priority selection is still applied after all results are in: the bar.json
|
|
59
|
+
* port is preferred over the defaults (3000, 3001, 3002, 8000, 8080), and
|
|
60
|
+
* within a port 127.0.0.1 is preferred over [::1].
|
|
61
|
+
*/
|
|
62
|
+
export declare function defaultFindRunningServer(ccsDir: string): Promise<DashboardInfo | null>;
|
|
37
63
|
export declare function handleBarLaunch(_args: string[], deps?: Partial<LaunchDeps>): Promise<void>;
|
|
38
64
|
//# sourceMappingURL=launch-subcommand.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"launch-subcommand.d.ts","sourceRoot":"","sources":["../../../src/commands/bar/launch-subcommand.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"launch-subcommand.d.ts","sourceRoot":"","sources":["../../../src/commands/bar/launch-subcommand.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAWH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,UAAU,CAAC;CACtB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IACzB;;;;OAIG;IACH,iBAAiB,EAAE,MAAM,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC;IACvD;;;;OAIG;IACH,eAAe,EAAE,MAAM,OAAO,CAAC,aAAa,CAAC,CAAC;IAC9C,sEAAsE;IACtE,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,qEAAqE;IACrE,SAAS,EAAE,MAAM,MAAM,CAAC;IACxB,oFAAoF;IACpF,cAAc,EAAE,MAAM,CAAC;CACxB;AAMD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAS5D;AAMD;;;;;;;;;;;;;GAaG;AACH,wBAAsB,wBAAwB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAiD5F;AA4CD,wBAAsB,eAAe,CACnC,KAAK,EAAE,MAAM,EAAE,EACf,IAAI,GAAE,OAAO,CAAC,UAAU,CAAM,GAC7B,OAAO,CAAC,IAAI,CAAC,CAyEf"}
|