@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
|
@@ -45,6 +45,7 @@ const os = __importStar(require("os"));
|
|
|
45
45
|
const path = __importStar(require("path"));
|
|
46
46
|
const config_loader_facade_1 = require("../../config/config-loader-facade");
|
|
47
47
|
const arg_extractor_1 = require("../arg-extractor");
|
|
48
|
+
const bar_paths_1 = require("./bar-paths");
|
|
48
49
|
// ---------------------------------------------------------------------------
|
|
49
50
|
// Constants
|
|
50
51
|
// ---------------------------------------------------------------------------
|
|
@@ -310,6 +311,10 @@ async function defaultClearQuarantine(appPath) {
|
|
|
310
311
|
function defaultRemoveExistingApp(appPath) {
|
|
311
312
|
fs.rmSync(appPath, { recursive: true, force: true });
|
|
312
313
|
}
|
|
314
|
+
function defaultWriteLaunchDescriptor(jsonPath, descriptor) {
|
|
315
|
+
fs.mkdirSync(path.dirname(jsonPath), { recursive: true });
|
|
316
|
+
fs.writeFileSync(jsonPath, JSON.stringify(descriptor, null, 2));
|
|
317
|
+
}
|
|
313
318
|
async function defaultLaunchBar(args) {
|
|
314
319
|
const { handleBarLaunch } = await Promise.resolve().then(() => __importStar(require('./launch-subcommand')));
|
|
315
320
|
await handleBarLaunch(args);
|
|
@@ -385,6 +390,7 @@ async function handleBarInstall(args, deps = {}) {
|
|
|
385
390
|
const promptLaunch = deps.promptLaunch ?? defaultPromptLaunch;
|
|
386
391
|
const isBarRunning = deps.isBarRunning ?? defaultIsBarRunning;
|
|
387
392
|
const removeExistingApp = deps.removeExistingApp ?? defaultRemoveExistingApp;
|
|
393
|
+
const writeLaunchDescriptor = deps.writeLaunchDescriptor ?? defaultWriteLaunchDescriptor;
|
|
388
394
|
const ccsDir = (deps.getCcsDir ?? defaultGetCcsDir)();
|
|
389
395
|
const appsDir = (deps.getAppsDir ?? defaultGetAppsDir)();
|
|
390
396
|
// 0. Already-installed detection: show the current version before proceeding.
|
|
@@ -517,6 +523,24 @@ async function handleBarInstall(args, deps = {}) {
|
|
|
517
523
|
console.log(`[OK] CCS Bar installed to ${appsDir}/${BAR_APP_NAME}`);
|
|
518
524
|
console.log('[!] Could not read app version from Info.plist.');
|
|
519
525
|
}
|
|
526
|
+
// 4b. Write launch.json so the Swift app can spawn the server without a shell PATH.
|
|
527
|
+
// Non-fatal — install has already succeeded at this point.
|
|
528
|
+
try {
|
|
529
|
+
const launchJsonPath = (0, bar_paths_1.getLaunchJsonPath)(ccsDir);
|
|
530
|
+
const launchDescriptor = {
|
|
531
|
+
schema: bar_paths_1.LAUNCH_JSON_SCHEMA,
|
|
532
|
+
runtime: process.execPath,
|
|
533
|
+
args: [process.argv[1], 'bar', 'serve'],
|
|
534
|
+
home: os.homedir(),
|
|
535
|
+
...(process.env.CCS_HOME ? { ccsHome: process.env.CCS_HOME } : {}),
|
|
536
|
+
};
|
|
537
|
+
writeLaunchDescriptor(launchJsonPath, launchDescriptor);
|
|
538
|
+
}
|
|
539
|
+
catch (err) {
|
|
540
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
541
|
+
console.error(`[!] Could not write launch.json: ${msg}`);
|
|
542
|
+
// Non-fatal — continue to quarantine clear + launch handoff.
|
|
543
|
+
}
|
|
520
544
|
// 5. Capability handshake via GET /api/bar/summary.
|
|
521
545
|
// Runs BEFORE the quarantine-clear + launch handoff because it is a server-side
|
|
522
546
|
// check unrelated to Gatekeeper. A failed quarantine clear must not prevent the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install-subcommand.js","sourceRoot":"","sources":["../../../src/commands/bar/install-subcommand.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,uCAAyB;AACzB,uCAAyB;AACzB,2CAA6B;AAC7B,4EAA8D;AAC9D,oDAA8C;AAE9C,8EAA8E;AAC9E,YAAY;AACZ,8EAA8E;AAE9E,4DAA4D;AAC5D,MAAM,eAAe,GAAG,gBAAgB,CAAC;AACzC,MAAM,YAAY,GAAG,aAAa,CAAC;AACnC,MAAM,cAAc,GAAG,iBAAiB,CAAC;AACzC,MAAM,eAAe,GAAG,gBAAgB,CAAC;AAEzC;;;;;;;;GAQG;AACH,MAAM,uBAAuB,GAA0B;IACrD,YAAY;IACZ,+BAA+B;CAChC,CAAC;AA6EF,8EAA8E;AAC9E,yCAAyC;AACzC,8EAA8E;AAE9E;;;;GAIG;AACH,SAAgB,mBAAmB,CAAC,GAAW;IAC7C,IAAI,MAAW,CAAC;IAChB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;IACxB,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,oCAAoC,GAAG,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,qCAAqC,MAAM,CAAC,QAAQ,QAAQ,GAAG,EAAE,CAAC,CAAC;IACrF,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;IAC3C,MAAM,OAAO,GACV,uBAAoC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC;IAElG,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CACb,0BAA0B,IAAI,oCAAoC;YAChE,IAAI,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,8BAA8B;YACpE,2CAA2C,CAC9C,CAAC;IACJ,CAAC;AACH,CAAC;AAvBD,kDAuBC;AAED,8EAA8E;AAC9E,oCAAoC;AACpC,8EAA8E;AAE9E,KAAK,UAAU,wBAAwB,CAAC,GAAW,EAAE,KAAa;IAChE,MAAM,EAAE,OAAO,EAAE,GAAG,wDAAa,QAAQ,GAAC,CAAC;IAC3C,MAAM,MAAM,GAAG,gCAAgC,eAAe,kBAAkB,GAAG,EAAE,CAAC;IACtF,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,MAAM,OAAO,CAAC,MAAM,EAAE;QACjD,OAAO,EAAE;YACP,YAAY,EAAE,SAAS;YACvB,MAAM,EAAE,6BAA6B;SACtC;KACF,CAAC,CAAC;IAEH,IAAI,UAAU,KAAK,GAAG,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,uBAAuB,UAAU,YAAY,GAAG,EAAE,CAAC,CAAC;IACtE,CAAC;IAED,8DAA8D;IAC9D,MAAM,OAAO,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAQ,CAAC;IAE3C,8DAA8D;IAC9D,MAAM,KAAK,GAAI,OAAO,CAAC,MAAgB,CAAC,IAAI,CAAC,CAAC,CAAmB,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC;IACxF,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,UAAU,KAAK,0BAA0B,GAAG,EAAE,CAAC,CAAC;IAClE,CAAC;IAED,OAAO,EAAE,WAAW,EAAE,KAAK,CAAC,oBAA8B,EAAE,CAAC;AAC/D,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,KAAK,UAAU,yBAAyB,CAAC,GAAW,EAAE,IAAY;IAChE,MAAM,EAAE,OAAO,EAAE,GAAG,wDAAa,QAAQ,GAAC,CAAC;IAC3C,MAAM,EAAE,iBAAiB,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC;IAC5C,MAAM,EAAE,SAAS,EAAE,GAAG,wDAAa,MAAM,GAAC,CAAC;IAC3C,MAAM,EAAE,QAAQ,EAAE,GAAG,wDAAa,QAAQ,GAAC,CAAC;IAC5C,MAAM,cAAc,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC3C,MAAM,EAAE,QAAQ,EAAE,GAAG,wDAAa,eAAe,GAAC,CAAC;IACnD,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;IAE1C,oCAAoC;IACpC,mBAAmB,CAAC,GAAG,CAAC,CAAC;IAEzB,SAAS,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAErC,iEAAiE;IACjE,MAAM,aAAa,GAAG,CAAC,CAAC;IACxB,IAAI,UAAU,GAAG,GAAG,CAAC;IACrB,IAAI,iBAAiB,GAAG,CAAC,CAAC;IAE1B,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,MAAM,OAAO,CAAC,UAAU,EAAE;YAC9D,eAAe,EAAE,CAAC,EAAE,mDAAmD;SACxE,CAAC,CAAC;QAEH,IAAI,UAAU,IAAI,GAAG,IAAI,UAAU,GAAG,GAAG,EAAE,CAAC;YAC1C,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;gBACjD,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;gBACxB,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAExB,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,MAAM,IAAI,KAAK,CAAC,kBAAkB,UAAU,UAAU,UAAU,yBAAyB,CAAC,CAAC;YAC7F,CAAC;YAED,qDAAqD;YACrD,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAC;YAE1D,+DAA+D;YAC/D,mBAAmB,CAAC,QAAQ,CAAC,CAAC;YAE9B,IAAI,iBAAiB,IAAI,aAAa,EAAE,CAAC;gBACvC,MAAM,IAAI,KAAK,CAAC,wBAAwB,aAAa,uBAAuB,GAAG,EAAE,CAAC,CAAC;YACrF,CAAC;YAED,kEAAkE;YAClE,8DAA8D;YAC9D,MAAO,IAAY,CAAC,IAAI,EAAE,EAAE,CAAC;YAC7B,UAAU,GAAG,QAAQ,CAAC;YACtB,iBAAiB,EAAE,CAAC;YACpB,SAAS;QACX,CAAC;QAED,IAAI,UAAU,KAAK,GAAG,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,yBAAyB,UAAU,QAAQ,UAAU,EAAE,CAAC,CAAC;QAC3E,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,WAAW,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAEnE,wBAAwB;QACxB,8DAA8D;QAC9D,MAAM,cAAc,CAAC,IAAW,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC;QAE7D,+DAA+D;QAC/D,6EAA6E;QAC7E,8DAA8D;QAC9D,IAAI,CAAC;YACH,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,aAAa,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;YACzE,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAClC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,2DAA2D;gBAC3D,gEAAgE;gBAChE,MAAM,KAAK,GAAG,mCAAmC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC7D,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;oBAAE,SAAS;gBAClC,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBAClC,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC;oBAAE,SAAS,CAAC,yBAAyB;gBAE9E,4DAA4D;gBAC5D,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC3D,IAAI,CAAC;wBACH,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;oBACxB,CAAC;oBAAC,MAAM,CAAC;wBACP,YAAY;oBACd,CAAC;oBACD,MAAM,IAAI,KAAK,CACb,qCAAqC,SAAS,8BAA8B;wBAC1E,iCAAiC,CACpC,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,2EAA2E;YAC3E,2EAA2E;YAC3E,0BAA0B;YAC1B,IAAK,GAAa,CAAC,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC;gBAAE,MAAM,GAAG,CAAC;YAC5D,2EAA2E;YAC3E,OAAO,CAAC,KAAK,CACX,wDAAyD,GAAa,CAAC,OAAO,EAAE,CACjF,CAAC;QACJ,CAAC;QAED,4BAA4B;QAC5B,MAAM,aAAa,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;QAEzD,4BAA4B;QAC5B,IAAI,CAAC;YACH,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACxB,CAAC;QAAC,MAAM,CAAC;YACP,YAAY;QACd,CAAC;QAED,MAAM;IACR,CAAC;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,KAAK,UAAU,mBAAmB,CAAC,OAAe;IAChD,IAAI,CAAC;QACH,MAAM,EAAE,OAAO,EAAE,GAAG,wDAAa,QAAQ,GAAC,CAAC;QAC3C,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,MAAM,OAAO,CAAC,GAAG,OAAO,kBAAkB,EAAE;YACvE,OAAO,EAAE,EAAE,YAAY,EAAE,SAAS,EAAE;SACrC,CAAC,CAAC;QAEH,0DAA0D;QAC1D,IAAI,CAAC;YACH,8DAA8D;YAC9D,MAAO,IAAY,CAAC,IAAI,EAAE,EAAE,CAAC;QAC/B,CAAC;QAAC,MAAM,CAAC;YACP,yBAAyB;QAC3B,CAAC;QAED,IAAI,UAAU,KAAK,GAAG,EAAE,CAAC;YACvB,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QAC5C,CAAC;QACD,IAAI,UAAU,KAAK,GAAG,EAAE,CAAC;YACvB,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC;QACrD,CAAC;QACD,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC;IACtD,CAAC;IAAC,MAAM,CAAC;QACP,uCAAuC;QACvC,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC;IACtD,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,2BAA2B,CAAC,OAAe;IAClD,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;QAC/D,MAAM,QAAQ,GAAG,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QACpD,MAAM,KAAK,GAAG,oEAAoE,CAAC,IAAI,CACrF,QAAQ,CACT,CAAC;QACF,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC;QACrC,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC1B,OAAO,CAAC,IAAI,IAAI,CAAC;IACnB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB;IACvB,OAAO,IAAA,gCAAS,GAAE,CAAC;AACrB,CAAC;AAED,SAAS,iBAAiB;IACxB,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,cAAc,CAAC,CAAC;AACjD,CAAC;AAED;;;;;;GAMG;AACH,KAAK,UAAU,sBAAsB,CAAC,OAAe;IACnD,IAAI,CAAC;QACH,MAAM,EAAE,QAAQ,EAAE,GAAG,wDAAa,eAAe,GAAC,CAAC;QACnD,MAAM,EAAE,SAAS,EAAE,GAAG,wDAAa,MAAM,GAAC,CAAC;QAC3C,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;QAC1C,MAAM,aAAa,CAAC,gBAAgB,EAAE,CAAC,KAAK,EAAE,sBAAsB,EAAE,OAAO,CAAC,CAAC,CAAC;QAChF,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,SAAS,wBAAwB,CAAC,OAAe;IAC/C,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AACvD,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,IAAc;IAC5C,MAAM,EAAE,eAAe,EAAE,GAAG,wDAAa,qBAAqB,GAAC,CAAC;IAChE,MAAM,eAAe,CAAC,IAAI,CAAC,CAAC;AAC9B,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,mBAAmB;IAChC,IAAI,CAAC;QACH,MAAM,EAAE,QAAQ,EAAE,GAAG,wDAAa,eAAe,GAAC,CAAC;QACnD,MAAM,EAAE,SAAS,EAAE,GAAG,wDAAa,MAAM,GAAC,CAAC;QAC3C,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;QAC1C,MAAM,aAAa,CAAC,gBAAgB,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;QACxD,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,8EAA8E;QAC9E,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,mBAAmB;IAChC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,QAAQ,GAAG,wDAAa,UAAU,GAAC,CAAC;IAC1C,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC;QAClC,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,QAAQ,EAAE,IAAI;KACf,CAAC,CAAC;IACH,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,EAAE,CAAC,QAAQ,CAAC,4BAA4B,EAAE,CAAC,MAAc,EAAE,EAAE;YAC3D,EAAE,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YAC/C,sCAAsC;YACtC,OAAO,CAAC,UAAU,KAAK,EAAE,IAAI,UAAU,KAAK,GAAG,IAAI,UAAU,KAAK,KAAK,CAAC,CAAC;QAC3E,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,8EAA8E;AAC9E,sBAAsB;AACtB,8EAA8E;AAE9E,SAAS,qBAAqB,CAAC,MAAc;IAC3C,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;AAC9C,CAAC;AAED,SAAS,aAAa,CAAC,MAAc,EAAE,OAAe;IACpD,MAAM,WAAW,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAClD,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7D,EAAE,CAAC,aAAa,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;AACzC,CAAC;AAED,8EAA8E;AAC9E,iBAAiB;AACjB,8EAA8E;AAEvE,KAAK,UAAU,gBAAgB,CACpC,IAAc,EACd,OAA6B,EAAE;IAE/B,gEAAgE;IAChE,MAAM,WAAW,GAAG,IAAA,0BAAU,EAAC,IAAI,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IACnD,MAAM,QAAQ,GAAG,IAAA,0BAAU,EAAC,IAAI,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;IAEnD,MAAM,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,IAAI,wBAAwB,CAAC;IAC7E,MAAM,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,IAAI,yBAAyB,CAAC;IAChF,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,mBAAmB,CAAC;IAC9D,MAAM,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,IAAI,2BAA2B,CAAC;IACtF,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,IAAI,sBAAsB,CAAC;IACvE,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,gBAAgB,CAAC;IACrD,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,mBAAmB,CAAC;IAC9D,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,mBAAmB,CAAC;IAC9D,MAAM,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,IAAI,wBAAwB,CAAC;IAC7E,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,SAAS,IAAI,gBAAgB,CAAC,EAAE,CAAC;IACtD,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,UAAU,IAAI,iBAAiB,CAAC,EAAE,CAAC;IAEzD,8EAA8E;IAC9E,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IACjD,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,MAAM,eAAe,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;QACtD,IAAI,eAAe,KAAK,IAAI,EAAE,CAAC;YAC7B,OAAO,CAAC,GAAG,CAAC,gBAAgB,eAAe,wCAAwC,CAAC,CAAC;QACvF,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;IACtD,CAAC;IAED,8CAA8C;IAC9C,IAAI,WAA+B,CAAC;IACpC,IAAI,CAAC;QACH,WAAW,GAAG,MAAM,iBAAiB,CAAC,eAAe,EAAE,cAAc,CAAC,CAAC;IACzE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,OAAO,CAAC,KAAK,CAAC,sCAAsC,GAAG,EAAE,CAAC,CAAC;QAC3D,OAAO,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAC;QAClE,OAAO;IACT,CAAC;IAED,MAAM,EAAE,WAAW,EAAE,GAAG,WAAW,CAAC;IACpC,OAAO,CAAC,GAAG,CAAC,+BAA+B,eAAe,KAAK,CAAC,CAAC;IAEjE,gFAAgF;IAChF,6EAA6E;IAC7E,iFAAiF;IACjF,qFAAqF;IACrF,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3C,IAAI,UAAkB,CAAC;IACvB,IAAI,CAAC;QACH,UAAU,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC,CAAC;IACvE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,OAAO,CAAC,KAAK,CAAC,6CAA6C,OAAO,KAAK,GAAG,EAAE,CAAC,CAAC;QAC9E,OAAO;IACT,CAAC;IAED,qEAAqE;IACrE,SAAS,cAAc;QACrB,IAAI,CAAC;YACH,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1D,CAAC;QAAC,MAAM,CAAC;YACP,YAAY;QACd,CAAC;IACH,CAAC;IAED,qDAAqD;IACrD,IAAI,CAAC;QACH,MAAM,kBAAkB,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IACpD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,OAAO,CAAC,KAAK,CAAC,sCAAsC,GAAG,EAAE,CAAC,CAAC;QAC3D,cAAc,EAAE,CAAC;QACjB,OAAO;IACT,CAAC;IAED,8EAA8E;IAC9E,2DAA2D;IAC3D,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;IACtD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9B,sEAAsE;QACtE,IAAI,SAAS,GAAa,EAAE,CAAC;QAC7B,IAAI,CAAC;YACH,SAAS,GAAG,EAAE,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QACzC,CAAC;QAAC,MAAM,CAAC;YACP,YAAY;QACd,CAAC;QACD,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;QACrE,OAAO,CAAC,KAAK,CAAC,iCAAiC,YAAY,6BAA6B,CAAC,CAAC;QAC1F,OAAO,CAAC,KAAK,CAAC,+BAA+B,KAAK,EAAE,CAAC,CAAC;QACtD,cAAc,EAAE,CAAC;QACjB,OAAO;IACT,CAAC;IAED,2EAA2E;IAC3E,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,IAAI,CAAC;YACH,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAC7B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC7D,OAAO,CAAC,KAAK,CAAC,kDAAkD,GAAG,EAAE,CAAC,CAAC;YACvE,OAAO,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC;YAC/D,cAAc,EAAE,CAAC;YACjB,OAAO;QACT,CAAC;IACH,CAAC;IAED,qEAAqE;IACrE,IAAI,CAAC;QACH,EAAE,CAAC,UAAU,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACpC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,OAAO,CAAC,KAAK,CAAC,6CAA6C,GAAG,EAAE,CAAC,CAAC;QAClE,cAAc,EAAE,CAAC;QACjB,OAAO;IACT,CAAC;IAED,8DAA8D;IAC9D,cAAc,EAAE,CAAC;IAEjB,mEAAmE;IACnE,MAAM,gBAAgB,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAEvD,IAAI,gBAAgB,KAAK,IAAI,EAAE,CAAC;QAC9B,+BAA+B;QAC/B,IAAI,CAAC;YACH,aAAa,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;QAC1C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC7D,OAAO,CAAC,KAAK,CAAC,oCAAoC,GAAG,EAAE,CAAC,CAAC;YACzD,wBAAwB;QAC1B,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,iBAAiB,gBAAgB,iBAAiB,OAAO,IAAI,YAAY,EAAE,CAAC,CAAC;IAC3F,CAAC;SAAM,CAAC;QACN,4FAA4F;QAC5F,iEAAiE;QACjE,IAAI,CAAC;YACH,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,UAAU,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACnE,CAAC;QAAC,MAAM,CAAC;YACP,wBAAwB;QAC1B,CAAC;QACD,0CAA0C;QAC1C,OAAO,CAAC,GAAG,CAAC,6BAA6B,OAAO,IAAI,YAAY,EAAE,CAAC,CAAC;QACpE,OAAO,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAC;IACjE,CAAC;IAED,oDAAoD;IACpD,mFAAmF;IACnF,mFAAmF;IACnF,iDAAiD;IACjD,kFAAkF;IAClF,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAClD,IAAI,OAAO,GAAG,uBAAuB,CAAC;IACtC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QACjD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAyB,CAAC;QACvD,IAAI,MAAM,CAAC,OAAO;YAAE,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IAC/C,CAAC;IAAC,MAAM,CAAC;QACP,oCAAoC;IACtC,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,CAAC;QAC3C,IAAI,MAAM,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;YAC3B,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;QAChD,CAAC;aAAM,IAAI,MAAM,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;YAC1C,OAAO,CAAC,GAAG,CACT,4EAA4E;gBAC1E,sCAAsC,CACzC,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,0BAA0B;YAC1B,OAAO,CAAC,GAAG,CAAC,wEAAwE,CAAC,CAAC;YACtF,OAAO,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,GAAG,CAAC,wEAAwE,CAAC,CAAC;QACtF,OAAO,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC;IACpE,CAAC;IAED,8EAA8E;IAC9E,wFAAwF;IACxF,wFAAwF;IACxF,mFAAmF;IACnF,yEAAyE;IACzE,MAAM,iBAAiB,GAAG,MAAM,eAAe,CAAC,OAAO,CAAC,CAAC;IACzD,IAAI,iBAAiB,EAAE,CAAC;QACtB,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;IACrD,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;QACnD,OAAO,CAAC,GAAG,CAAC,8DAA8D,CAAC,CAAC;QAC5E,OAAO,CAAC,GAAG,CAAC,yCAAyC,OAAO,GAAG,CAAC,CAAC;QACjE,OAAO,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC;QAC3D,OAAO,CAAC,GAAG,CAAC,yDAAyD,CAAC,CAAC;QACvE,OAAO;IACT,CAAC;IAED,qBAAqB;IACrB,gFAAgF;IAChF,iFAAiF;IACjF,8EAA8E;IAC9E,4EAA4E;IAC5E,EAAE;IACF,mDAAmD;IACnD,+CAA+C;IAC/C,iDAAiD;IACjD,+CAA+C;IAC/C,MAAM,YAAY,GAAG,MAAM,YAAY,EAAE,CAAC;IAE1C,IAAI,YAAY,IAAI,CAAC,WAAW,EAAE,CAAC;QACjC,OAAO,CAAC,GAAG,CACT,6HAA6H,CAC9H,CAAC;IACJ,CAAC;SAAM,IAAI,WAAW,EAAE,CAAC;QACvB,MAAM,SAAS,CAAC,EAAE,CAAC,CAAC;IACtB,CAAC;SAAM,IAAI,QAAQ,EAAE,CAAC;QACpB,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;IAC9C,CAAC;SAAM,CAAC;QACN,MAAM,YAAY,GAAG,MAAM,YAAY,EAAE,CAAC;QAC1C,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,SAAS,CAAC,EAAE,CAAC,CAAC;QACtB,CAAC;aAAM,CAAC;YACN,qEAAqE;YACrE,4CAA4C;YAC5C,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;AACH,CAAC;AAvOD,4CAuOC"}
|
|
1
|
+
{"version":3,"file":"install-subcommand.js","sourceRoot":"","sources":["../../../src/commands/bar/install-subcommand.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,25 +1,31 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* `ccs bar launch` —
|
|
2
|
+
* `ccs bar launch` — start the CCS Bar server detached, write bar.json, open the app.
|
|
3
3
|
*
|
|
4
4
|
* bar.json shape (v1):
|
|
5
5
|
* { baseUrl: string, port: number, authMode: "loopback" }
|
|
6
6
|
*
|
|
7
|
-
*
|
|
7
|
+
* Detached model (replaces the old in-process model):
|
|
8
|
+
* 1. Probe candidate ports (bar.json port first, then 3000/3001/3002/8000/8080).
|
|
9
|
+
* 2. If a live server is found → reuse it, write bar.json, open app, return.
|
|
10
|
+
* 3. Else → refresh launch.json, getPort to pick a free port, spawn
|
|
11
|
+
* `ccs bar serve --port N` detached with stdio → serve.log, poll
|
|
12
|
+
* /api/bar/summary until 200 (timeout ~10 s), write bar.json, open app,
|
|
13
|
+
* return. The CLI process exits; the server continues as a detached child.
|
|
8
14
|
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
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.
|
|
15
|
+
* All side-effectful deps are injectable so tests can run without real
|
|
16
|
+
* servers, ports, or file-system writes.
|
|
13
17
|
*/
|
|
18
|
+
import type { LaunchJson } from './bar-paths';
|
|
19
|
+
import { defaultFindRunningServer as _defaultFindRunningServer, resolveBarPort as _resolveBarPort } from './bar-server-probe';
|
|
20
|
+
import type { DashboardInfo as _DashboardInfo } from './bar-server-probe';
|
|
21
|
+
export { _defaultFindRunningServer as defaultFindRunningServer };
|
|
22
|
+
export { _resolveBarPort as resolveBarPort };
|
|
14
23
|
export interface BarDiscoveryJson {
|
|
15
24
|
baseUrl: string;
|
|
16
25
|
port: number;
|
|
17
26
|
authMode: 'loopback';
|
|
18
27
|
}
|
|
19
|
-
export
|
|
20
|
-
port: number;
|
|
21
|
-
baseUrl: string;
|
|
22
|
-
}
|
|
28
|
+
export type DashboardInfo = _DashboardInfo;
|
|
23
29
|
export interface LaunchDeps {
|
|
24
30
|
/**
|
|
25
31
|
* Probe candidate ports for a running CCS server.
|
|
@@ -28,11 +34,27 @@ export interface LaunchDeps {
|
|
|
28
34
|
*/
|
|
29
35
|
findRunningServer: () => Promise<DashboardInfo | null>;
|
|
30
36
|
/**
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
|
|
37
|
+
* Find a free port from the candidate list.
|
|
38
|
+
* Used to pre-select a port before spawning the detached server.
|
|
39
|
+
*/
|
|
40
|
+
getPort: (opts: {
|
|
41
|
+
port: number[];
|
|
42
|
+
host: string;
|
|
43
|
+
}) => Promise<number>;
|
|
44
|
+
/**
|
|
45
|
+
* Spawn the `ccs bar serve --port N` process detached and return immediately.
|
|
46
|
+
* The spawned process must be unref()ed so the launcher can exit.
|
|
47
|
+
*/
|
|
48
|
+
spawnDetachedServer: (port: number, logPath: string) => void;
|
|
49
|
+
/**
|
|
50
|
+
* Poll GET {baseUrl}/api/bar/summary until HTTP 200 or timeout.
|
|
51
|
+
* Returns the live baseUrl on success, throws on timeout.
|
|
34
52
|
*/
|
|
35
|
-
|
|
53
|
+
waitForServerLive: (baseUrl: string) => Promise<void>;
|
|
54
|
+
/**
|
|
55
|
+
* Write launch.json so the Swift app can spawn the server independently.
|
|
56
|
+
*/
|
|
57
|
+
writeLaunchDescriptor: (jsonPath: string, descriptor: LaunchJson) => void;
|
|
36
58
|
/** Open the installed .app bundle. Throws if the app is not found. */
|
|
37
59
|
openApp: (appPath: string) => Promise<void>;
|
|
38
60
|
/** Returns path to ~/.ccs (respects CCS_HOME for test isolation). */
|
|
@@ -40,25 +62,5 @@ export interface LaunchDeps {
|
|
|
40
62
|
/** Full path where the .app should be installed, e.g. ~/Applications/CCS Bar.app */
|
|
41
63
|
appInstallPath: string;
|
|
42
64
|
}
|
|
43
|
-
/**
|
|
44
|
-
* Read the port recorded in an existing bar.json.
|
|
45
|
-
* Returns null when the file is absent or malformed.
|
|
46
|
-
*/
|
|
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>;
|
|
63
65
|
export declare function handleBarLaunch(_args: string[], deps?: Partial<LaunchDeps>): Promise<void>;
|
|
64
66
|
//# 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;;;;;;;;;;;;;;;;GAgBG;AAaH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EACL,wBAAwB,IAAI,yBAAyB,EACrD,cAAc,IAAI,eAAe,EAClC,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,aAAa,IAAI,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAQ1E,OAAO,EAAE,yBAAyB,IAAI,wBAAwB,EAAE,CAAC;AACjE,OAAO,EAAE,eAAe,IAAI,cAAc,EAAE,CAAC;AAM7C,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,UAAU,CAAC;CACtB;AAED,MAAM,MAAM,aAAa,GAAG,cAAc,CAAC;AAE3C,MAAM,WAAW,UAAU;IACzB;;;;OAIG;IACH,iBAAiB,EAAE,MAAM,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC;IACvD;;;OAGG;IACH,OAAO,EAAE,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACrE;;;OAGG;IACH,mBAAmB,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7D;;;OAGG;IACH,iBAAiB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACtD;;OAEG;IACH,qBAAqB,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,KAAK,IAAI,CAAC;IAC1E,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;AAoFD,wBAAsB,eAAe,CACnC,KAAK,EAAE,MAAM,EAAE,EACf,IAAI,GAAE,OAAO,CAAC,UAAU,CAAM,GAC7B,OAAO,CAAC,IAAI,CAAC,CAqHf"}
|
|
@@ -1,16 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/**
|
|
3
|
-
* `ccs bar launch` —
|
|
3
|
+
* `ccs bar launch` — start the CCS Bar server detached, write bar.json, open the app.
|
|
4
4
|
*
|
|
5
5
|
* bar.json shape (v1):
|
|
6
6
|
* { baseUrl: string, port: number, authMode: "loopback" }
|
|
7
7
|
*
|
|
8
|
-
*
|
|
8
|
+
* Detached model (replaces the old in-process model):
|
|
9
|
+
* 1. Probe candidate ports (bar.json port first, then 3000/3001/3002/8000/8080).
|
|
10
|
+
* 2. If a live server is found → reuse it, write bar.json, open app, return.
|
|
11
|
+
* 3. Else → refresh launch.json, getPort to pick a free port, spawn
|
|
12
|
+
* `ccs bar serve --port N` detached with stdio → serve.log, poll
|
|
13
|
+
* /api/bar/summary until 200 (timeout ~10 s), write bar.json, open app,
|
|
14
|
+
* return. The CLI process exits; the server continues as a detached child.
|
|
9
15
|
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
* server at GET /api/bar/summary. A 200 response means the server is already
|
|
13
|
-
* running; launch reuses it without attempting to bind a new one.
|
|
16
|
+
* All side-effectful deps are injectable so tests can run without real
|
|
17
|
+
* servers, ports, or file-system writes.
|
|
14
18
|
*/
|
|
15
19
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
16
20
|
if (k2 === undefined) k2 = k;
|
|
@@ -36,111 +40,72 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
36
40
|
return result;
|
|
37
41
|
};
|
|
38
42
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
exports.handleBarLaunch = exports.
|
|
43
|
+
exports.handleBarLaunch = exports.resolveBarPort = exports.defaultFindRunningServer = void 0;
|
|
40
44
|
const fs = __importStar(require("fs"));
|
|
41
45
|
const os = __importStar(require("os"));
|
|
42
46
|
const path = __importStar(require("path"));
|
|
43
47
|
const config_loader_facade_1 = require("../../config/config-loader-facade");
|
|
48
|
+
const bar_paths_1 = require("./bar-paths");
|
|
49
|
+
const bar_server_probe_1 = require("./bar-server-probe");
|
|
50
|
+
Object.defineProperty(exports, "defaultFindRunningServer", { enumerable: true, get: function () { return bar_server_probe_1.defaultFindRunningServer; } });
|
|
51
|
+
Object.defineProperty(exports, "resolveBarPort", { enumerable: true, get: function () { return bar_server_probe_1.resolveBarPort; } });
|
|
44
52
|
// ---------------------------------------------------------------------------
|
|
45
|
-
//
|
|
53
|
+
// Default production dependencies
|
|
46
54
|
// ---------------------------------------------------------------------------
|
|
55
|
+
async function defaultGetPort(opts) {
|
|
56
|
+
const getPort = (await Promise.resolve().then(() => __importStar(require('get-port')))).default;
|
|
57
|
+
return getPort(opts);
|
|
58
|
+
}
|
|
47
59
|
/**
|
|
48
|
-
*
|
|
49
|
-
*
|
|
60
|
+
* Spawn `ccs bar serve --port N` detached so it outlives this CLI process.
|
|
61
|
+
*
|
|
62
|
+
* stdio is redirected to serve.log so server output is preserved for
|
|
63
|
+
* debugging without a terminal. unref() lets the launcher exit immediately.
|
|
50
64
|
*/
|
|
51
|
-
function
|
|
52
|
-
const
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
}
|
|
65
|
+
function defaultSpawnDetachedServer(port, logPath) {
|
|
66
|
+
const { spawn } = require('child_process');
|
|
67
|
+
// Open (or create) the log file for appending.
|
|
68
|
+
const logFd = fs.openSync(logPath, 'a');
|
|
69
|
+
const child = spawn(process.execPath, [process.argv[1], 'bar', 'serve', '--port', String(port)], {
|
|
70
|
+
detached: true,
|
|
71
|
+
stdio: ['ignore', logFd, logFd],
|
|
72
|
+
cwd: os.homedir(),
|
|
73
|
+
env: process.env,
|
|
74
|
+
});
|
|
75
|
+
child.unref();
|
|
76
|
+
// Close our copy of the fd — the child has its own reference.
|
|
77
|
+
fs.closeSync(logFd);
|
|
61
78
|
}
|
|
62
|
-
exports.resolveBarPort = resolveBarPort;
|
|
63
|
-
// ---------------------------------------------------------------------------
|
|
64
|
-
// Default production dependencies
|
|
65
|
-
// ---------------------------------------------------------------------------
|
|
66
79
|
/**
|
|
67
|
-
*
|
|
68
|
-
*
|
|
69
|
-
* Both IPv4 (127.0.0.1) and IPv6 (::1) loopback addresses are probed for
|
|
70
|
-
* each port. This is necessary because `ccs config` starts the server with
|
|
71
|
-
* host 'localhost', which macOS resolves to ::1 — an IPv4-only probe would
|
|
72
|
-
* miss that server and start a redundant second instance.
|
|
73
|
-
*
|
|
74
|
-
* All probes are fired concurrently (cheap loopback requests) so worst-case
|
|
75
|
-
* latency is ~1.5 s (one timeout) rather than N × 1.5 s sequentially.
|
|
76
|
-
* Priority selection is still applied after all results are in: the bar.json
|
|
77
|
-
* port is preferred over the defaults (3000, 3001, 3002, 8000, 8080), and
|
|
78
|
-
* within a port 127.0.0.1 is preferred over [::1].
|
|
80
|
+
* Poll GET {baseUrl}/api/bar/summary every 250 ms until HTTP 200 or ~10 s.
|
|
81
|
+
* Resolves when the server is live. Rejects on timeout.
|
|
79
82
|
*/
|
|
80
|
-
async function
|
|
83
|
+
async function defaultWaitForServerLive(baseUrl) {
|
|
81
84
|
const { request } = await Promise.resolve().then(() => __importStar(require('undici')));
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
*/
|
|
87
|
-
async function probe(url) {
|
|
85
|
+
const INTERVAL_MS = 250;
|
|
86
|
+
const TIMEOUT_MS = 10000;
|
|
87
|
+
const deadline = Date.now() + TIMEOUT_MS;
|
|
88
|
+
while (Date.now() < deadline) {
|
|
88
89
|
try {
|
|
89
|
-
const { statusCode, body } = await request(
|
|
90
|
+
const { statusCode, body } = await request(`${baseUrl}/api/bar/summary`, {
|
|
90
91
|
method: 'GET',
|
|
91
92
|
headersTimeout: 1500,
|
|
92
93
|
bodyTimeout: 1500,
|
|
93
94
|
});
|
|
94
|
-
// Drain the body to avoid hanging sockets regardless of status.
|
|
95
|
-
// body.dump() is not available in Bun's undici shim; body.text() works
|
|
96
|
-
// cross-runtime and fully consumes the response stream.
|
|
97
95
|
await body.text();
|
|
98
|
-
|
|
96
|
+
if (statusCode === 200)
|
|
97
|
+
return;
|
|
99
98
|
}
|
|
100
99
|
catch {
|
|
101
|
-
|
|
100
|
+
/* not yet live — keep polling */
|
|
102
101
|
}
|
|
102
|
+
await new Promise((resolve) => setTimeout(resolve, INTERVAL_MS));
|
|
103
103
|
}
|
|
104
|
-
|
|
105
|
-
const base = [3000, 3001, 3002, 8000, 8080];
|
|
106
|
-
const candidates = barJsonPort !== null ? [barJsonPort, ...base.filter((p) => p !== barJsonPort)] : base;
|
|
107
|
-
// Build the ordered list of (port, host, baseUrl) tuples. Within each port,
|
|
108
|
-
// IPv4 comes before IPv6 to preserve the existing priority semantics.
|
|
109
|
-
const probeTargets = candidates.flatMap((port) => [
|
|
110
|
-
{ port, baseUrl: `http://127.0.0.1:${port}`, url: `http://127.0.0.1:${port}/api/bar/summary` },
|
|
111
|
-
{ port, baseUrl: `http://[::1]:${port}`, url: `http://[::1]:${port}/api/bar/summary` },
|
|
112
|
-
]);
|
|
113
|
-
// Fire all probes concurrently. Each probe resolves (never rejects), so
|
|
114
|
-
// Promise.all collects all results without short-circuiting on failure.
|
|
115
|
-
const results = await Promise.all(probeTargets.map((t) => probe(t.url)));
|
|
116
|
-
// Walk the results in priority order and return the first successful hit.
|
|
117
|
-
for (let i = 0; i < probeTargets.length; i++) {
|
|
118
|
-
if (results[i].ok) {
|
|
119
|
-
const { port, baseUrl } = probeTargets[i];
|
|
120
|
-
return { port, baseUrl };
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
return null;
|
|
104
|
+
throw new Error(`CCS Bar server did not become live at ${baseUrl} within ${TIMEOUT_MS / 1000}s`);
|
|
124
105
|
}
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
// find a free port then start the web-server via startServer().
|
|
129
|
-
const getPort = (await Promise.resolve().then(() => __importStar(require('get-port')))).default;
|
|
130
|
-
const { startServer } = await Promise.resolve().then(() => __importStar(require('../../web-server')));
|
|
131
|
-
// Pass host: '127.0.0.1' so getPort probes the same address that startServer
|
|
132
|
-
// will bind. On macOS, a wildcard bind and a specific 127.0.0.1 bind are
|
|
133
|
-
// independent: getPort without a host can return 3000 "free" while a live
|
|
134
|
-
// CCS server already holds 127.0.0.1:3000, causing EADDRINUSE on startServer.
|
|
135
|
-
const port = await getPort({ port: [3000, 3001, 3002, 8000, 8080], host: '127.0.0.1' });
|
|
136
|
-
// Bind IPv4 loopback explicitly. Without a host, startServer defaults to
|
|
137
|
-
// 'localhost', which on macOS resolves to ::1 (IPv6) — but bar.json's baseUrl
|
|
138
|
-
// (and the Swift app) use 127.0.0.1, so the app could not reach its own server.
|
|
139
|
-
const { server } = await startServer({ port, host: '127.0.0.1' });
|
|
140
|
-
const addr = server.address();
|
|
141
|
-
const resolvedPort = addr && typeof addr === 'object' ? addr.port : port;
|
|
142
|
-
const baseUrl = `http://127.0.0.1:${resolvedPort}`;
|
|
143
|
-
return { port: resolvedPort, baseUrl };
|
|
106
|
+
function defaultWriteLaunchDescriptor(jsonPath, descriptor) {
|
|
107
|
+
fs.mkdirSync(path.dirname(jsonPath), { recursive: true });
|
|
108
|
+
fs.writeFileSync(jsonPath, JSON.stringify(descriptor, null, 2));
|
|
144
109
|
}
|
|
145
110
|
async function defaultOpenApp(appPath) {
|
|
146
111
|
const { execFile } = await Promise.resolve().then(() => __importStar(require('child_process')));
|
|
@@ -152,75 +117,132 @@ function defaultGetCcsDir() {
|
|
|
152
117
|
return (0, config_loader_facade_1.getCcsDir)();
|
|
153
118
|
}
|
|
154
119
|
// Fix #5: use os.homedir() to match install-subcommand.ts and uninstall-subcommand.ts.
|
|
155
|
-
// process.env.HOME may be unset in restricted environments, and CCS_HOME is the CCS
|
|
156
|
-
// data directory (~/.ccs), not the user's home — neither is a safe fallback here.
|
|
157
120
|
const DEFAULT_APP_INSTALL_PATH = path.join(os.homedir(), 'Applications', 'CCS Bar.app');
|
|
158
121
|
// ---------------------------------------------------------------------------
|
|
159
122
|
// Implementation
|
|
160
123
|
// ---------------------------------------------------------------------------
|
|
161
124
|
async function handleBarLaunch(_args, deps = {}) {
|
|
162
|
-
const ensureDashboard = deps.ensureDashboard ?? defaultEnsureDashboard;
|
|
163
|
-
const openApp = deps.openApp ?? defaultOpenApp;
|
|
164
125
|
const ccsDir = (deps.getCcsDir ?? defaultGetCcsDir)();
|
|
126
|
+
const openApp = deps.openApp ?? defaultOpenApp;
|
|
165
127
|
const appInstallPath = deps.appInstallPath ?? DEFAULT_APP_INSTALL_PATH;
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
const
|
|
169
|
-
|
|
170
|
-
//
|
|
128
|
+
const getPortFn = deps.getPort ?? defaultGetPort;
|
|
129
|
+
const spawnDetachedServer = deps.spawnDetachedServer ?? defaultSpawnDetachedServer;
|
|
130
|
+
const waitForServerLive = deps.waitForServerLive ?? defaultWaitForServerLive;
|
|
131
|
+
const writeLaunchDescriptor = deps.writeLaunchDescriptor ?? defaultWriteLaunchDescriptor;
|
|
132
|
+
// Wire findRunningServer after ccsDir is resolved.
|
|
133
|
+
const findRunningServer = deps.findRunningServer ?? (() => (0, bar_server_probe_1.defaultFindRunningServer)(ccsDir));
|
|
134
|
+
const barJsonPath = (0, bar_paths_1.getBarJsonPath)(ccsDir);
|
|
135
|
+
const launchJsonPath = (0, bar_paths_1.getLaunchJsonPath)(ccsDir);
|
|
136
|
+
// 1. Probe for an already-running server.
|
|
171
137
|
let running = null;
|
|
172
138
|
try {
|
|
173
139
|
running = await findRunningServer();
|
|
174
140
|
}
|
|
175
141
|
catch {
|
|
176
|
-
|
|
142
|
+
/* any probe error counts as null */
|
|
177
143
|
}
|
|
178
|
-
let dashboardInfo;
|
|
179
|
-
let reused = false;
|
|
180
144
|
if (running !== null) {
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
145
|
+
// Reuse the live server — write bar.json and open the app.
|
|
146
|
+
const barJson = {
|
|
147
|
+
baseUrl: running.baseUrl,
|
|
148
|
+
port: running.port,
|
|
149
|
+
authMode: 'loopback',
|
|
150
|
+
};
|
|
185
151
|
try {
|
|
186
|
-
|
|
152
|
+
fs.mkdirSync(ccsDir, { recursive: true });
|
|
153
|
+
fs.writeFileSync(barJsonPath, JSON.stringify(barJson, null, 2));
|
|
187
154
|
}
|
|
188
155
|
catch (err) {
|
|
189
156
|
const msg = err instanceof Error ? err.message : String(err);
|
|
190
|
-
console.error(`[X]
|
|
191
|
-
console.error('[i] Run `ccs config` to start the dashboard manually.');
|
|
157
|
+
console.error(`[X] Failed to write bar.json: ${msg}`);
|
|
192
158
|
return;
|
|
193
159
|
}
|
|
160
|
+
console.log(`[OK] Reusing running CCS web-server at ${running.baseUrl}`);
|
|
161
|
+
console.log(`[i] Discovery file written: ${barJsonPath}`);
|
|
162
|
+
await _openAppWithFallback(appInstallPath, openApp);
|
|
163
|
+
return;
|
|
164
|
+
}
|
|
165
|
+
// 2. No live server — pick a port, write/refresh launch.json, spawn detached.
|
|
166
|
+
// 2a. Pick a free port.
|
|
167
|
+
let port;
|
|
168
|
+
try {
|
|
169
|
+
port = await getPortFn({ port: [3000, 3001, 3002, 8000, 8080], host: '127.0.0.1' });
|
|
170
|
+
}
|
|
171
|
+
catch (err) {
|
|
172
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
173
|
+
console.error(`[X] Could not find a free port: ${msg}`);
|
|
174
|
+
return;
|
|
194
175
|
}
|
|
195
|
-
//
|
|
176
|
+
// 2b. Write/refresh launch.json so the Swift app can self-start next time.
|
|
177
|
+
const launchDescriptor = {
|
|
178
|
+
schema: bar_paths_1.LAUNCH_JSON_SCHEMA,
|
|
179
|
+
runtime: process.execPath,
|
|
180
|
+
args: [process.argv[1], 'bar', 'serve'],
|
|
181
|
+
home: os.homedir(),
|
|
182
|
+
...(process.env.CCS_HOME ? { ccsHome: process.env.CCS_HOME } : {}),
|
|
183
|
+
};
|
|
184
|
+
try {
|
|
185
|
+
writeLaunchDescriptor(launchJsonPath, launchDescriptor);
|
|
186
|
+
}
|
|
187
|
+
catch (err) {
|
|
188
|
+
// Non-fatal — the Swift app falls back to resolving `ccs` via PATH.
|
|
189
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
190
|
+
console.error(`[!] Could not write launch.json: ${msg}`);
|
|
191
|
+
}
|
|
192
|
+
// 2c. Spawn the detached server.
|
|
193
|
+
const serveLogPath = (0, bar_paths_1.getServeLogPath)(ccsDir);
|
|
194
|
+
const baseUrl = `http://127.0.0.1:${port}`;
|
|
195
|
+
try {
|
|
196
|
+
fs.mkdirSync((0, bar_paths_1.getBarDir)(ccsDir), { recursive: true });
|
|
197
|
+
spawnDetachedServer(port, serveLogPath);
|
|
198
|
+
}
|
|
199
|
+
catch (err) {
|
|
200
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
201
|
+
console.error(`[X] Could not start CCS web-server: ${msg}`);
|
|
202
|
+
console.error('[i] Run `ccs config` to start the dashboard manually.');
|
|
203
|
+
return;
|
|
204
|
+
}
|
|
205
|
+
console.log('[i] Starting CCS Bar server...');
|
|
206
|
+
// 2d. Poll until live or timeout.
|
|
207
|
+
try {
|
|
208
|
+
await waitForServerLive(baseUrl);
|
|
209
|
+
}
|
|
210
|
+
catch (err) {
|
|
211
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
212
|
+
console.error(`[X] Could not connect to CCS web-server: ${msg}`);
|
|
213
|
+
console.error(`[i] Check logs at ${serveLogPath}`);
|
|
214
|
+
return;
|
|
215
|
+
}
|
|
216
|
+
// 2e. Write bar.json.
|
|
196
217
|
const barJson = {
|
|
197
|
-
baseUrl
|
|
198
|
-
port
|
|
218
|
+
baseUrl,
|
|
219
|
+
port,
|
|
199
220
|
authMode: 'loopback',
|
|
200
221
|
};
|
|
201
222
|
try {
|
|
202
223
|
fs.mkdirSync(ccsDir, { recursive: true });
|
|
203
|
-
fs.writeFileSync(
|
|
224
|
+
fs.writeFileSync(barJsonPath, JSON.stringify(barJson, null, 2));
|
|
204
225
|
}
|
|
205
226
|
catch (err) {
|
|
206
227
|
const msg = err instanceof Error ? err.message : String(err);
|
|
207
228
|
console.error(`[X] Failed to write bar.json: ${msg}`);
|
|
208
229
|
return;
|
|
209
230
|
}
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
231
|
+
console.log(`[OK] CCS web-server running at ${baseUrl}`);
|
|
232
|
+
console.log(`[i] Discovery file written: ${barJsonPath}`);
|
|
233
|
+
// 3. Open the app — then return (process exits; server continues detached).
|
|
234
|
+
await _openAppWithFallback(appInstallPath, openApp);
|
|
235
|
+
}
|
|
236
|
+
exports.handleBarLaunch = handleBarLaunch;
|
|
237
|
+
// ---------------------------------------------------------------------------
|
|
238
|
+
// Internal helper — open app with graceful degraded path
|
|
239
|
+
// ---------------------------------------------------------------------------
|
|
240
|
+
async function _openAppWithFallback(appInstallPath, openApp) {
|
|
218
241
|
try {
|
|
219
242
|
await openApp(appInstallPath);
|
|
220
243
|
console.log('[OK] CCS Bar launched.');
|
|
221
244
|
}
|
|
222
245
|
catch {
|
|
223
|
-
// Degraded path: app not installed or open failed.
|
|
224
246
|
if (!fs.existsSync(appInstallPath)) {
|
|
225
247
|
console.log('[!] CCS Bar app is not installed.');
|
|
226
248
|
console.log('[i] Run `ccs bar install` to install it.');
|
|
@@ -232,5 +254,4 @@ async function handleBarLaunch(_args, deps = {}) {
|
|
|
232
254
|
}
|
|
233
255
|
}
|
|
234
256
|
}
|
|
235
|
-
exports.handleBarLaunch = handleBarLaunch;
|
|
236
257
|
//# sourceMappingURL=launch-subcommand.js.map
|