@kaitranntt/ccs 8.3.0 → 8.4.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 +1 -1
- package/config/base-claude.settings.json +1 -1
- package/dist/api/services/cliproxy-profile-bridge.d.ts.map +1 -1
- package/dist/api/services/cliproxy-profile-bridge.js +20 -9
- package/dist/api/services/cliproxy-profile-bridge.js.map +1 -1
- 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/cliproxy/config/env-builder.d.ts +19 -2
- package/dist/cliproxy/config/env-builder.d.ts.map +1 -1
- package/dist/cliproxy/config/env-builder.js +58 -9
- package/dist/cliproxy/config/env-builder.js.map +1 -1
- package/dist/cliproxy/executor/browser-launch-setup.d.ts.map +1 -1
- package/dist/cliproxy/executor/browser-launch-setup.js +6 -2
- package/dist/cliproxy/executor/browser-launch-setup.js.map +1 -1
- package/dist/cliproxy/quota/quota-manager.d.ts.map +1 -1
- package/dist/cliproxy/quota/quota-manager.js +7 -3
- package/dist/cliproxy/quota/quota-manager.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 +40 -0
- package/dist/commands/bar/bar-server-probe.d.ts.map +1 -0
- package/dist/commands/bar/bar-server-probe.js +159 -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 +10 -4
- 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 +12 -10
- package/dist/commands/bar/install-subcommand.d.ts.map +1 -1
- package/dist/commands/bar/install-subcommand.js +67 -52
- package/dist/commands/bar/install-subcommand.js.map +1 -1
- package/dist/commands/bar/launch-subcommand.d.ts +44 -32
- package/dist/commands/bar/launch-subcommand.d.ts.map +1 -1
- package/dist/commands/bar/launch-subcommand.js +216 -128
- 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/dist/commands/config-channels-command.d.ts +1 -1
- package/dist/commands/config-channels-command.d.ts.map +1 -1
- package/dist/commands/config-channels-command.js +3 -3
- package/dist/commands/config-channels-command.js.map +1 -1
- package/dist/commands/config-command-options.d.ts.map +1 -1
- package/dist/commands/config-command-options.js +11 -2
- package/dist/commands/config-command-options.js.map +1 -1
- package/dist/config/config-loader-facade.d.ts +1 -1
- package/dist/config/config-loader-facade.d.ts.map +1 -1
- package/dist/config/config-loader-facade.js +3 -1
- package/dist/config/config-loader-facade.js.map +1 -1
- package/dist/config/loader/config-getters.d.ts +16 -0
- package/dist/config/loader/config-getters.d.ts.map +1 -1
- package/dist/config/loader/config-getters.js +33 -1
- package/dist/config/loader/config-getters.js.map +1 -1
- package/dist/config/loader/defaults-merger.d.ts.map +1 -1
- package/dist/config/loader/defaults-merger.js +4 -0
- package/dist/config/loader/defaults-merger.js.map +1 -1
- package/dist/config/loader/yaml-serializer.d.ts.map +1 -1
- package/dist/config/loader/yaml-serializer.js +13 -0
- package/dist/config/loader/yaml-serializer.js.map +1 -1
- package/dist/config/schemas/index.d.ts +2 -0
- package/dist/config/schemas/index.d.ts.map +1 -1
- package/dist/config/schemas/index.js +5 -1
- package/dist/config/schemas/index.js.map +1 -1
- package/dist/config/schemas/runtime.d.ts +57 -0
- package/dist/config/schemas/runtime.d.ts.map +1 -0
- package/dist/config/schemas/runtime.js +51 -0
- package/dist/config/schemas/runtime.js.map +1 -0
- package/dist/config/schemas/unified-config.d.ts +3 -0
- package/dist/config/schemas/unified-config.d.ts.map +1 -1
- package/dist/config/schemas/unified-config.js.map +1 -1
- package/dist/config/unified-config-loader.d.ts +1 -1
- package/dist/config/unified-config-loader.d.ts.map +1 -1
- package/dist/config/unified-config-loader.js +3 -1
- package/dist/config/unified-config-loader.js.map +1 -1
- package/dist/dispatcher/profile-resolver.d.ts +1 -1
- package/dist/dispatcher/profile-resolver.d.ts.map +1 -1
- package/dist/dispatcher/profile-resolver.js +20 -7
- package/dist/dispatcher/profile-resolver.js.map +1 -1
- package/dist/proxy/server/messages-route.d.ts +10 -0
- package/dist/proxy/server/messages-route.d.ts.map +1 -1
- package/dist/proxy/server/messages-route.js +34 -7
- package/dist/proxy/server/messages-route.js.map +1 -1
- package/dist/proxy/server/proxy-server.d.ts.map +1 -1
- package/dist/proxy/server/proxy-server.js +1 -1
- package/dist/proxy/server/proxy-server.js.map +1 -1
- package/dist/shared/provider-preset-catalog.d.ts +1 -1
- package/dist/shared/provider-preset-catalog.d.ts.map +1 -1
- package/dist/shared/provider-preset-catalog.js +14 -0
- package/dist/shared/provider-preset-catalog.js.map +1 -1
- package/dist/targets/claude-adapter.d.ts.map +1 -1
- package/dist/targets/claude-adapter.js +5 -0
- package/dist/targets/claude-adapter.js.map +1 -1
- package/dist/targets/codex-detector.d.ts.map +1 -1
- package/dist/targets/codex-detector.js +14 -0
- package/dist/targets/codex-detector.js.map +1 -1
- package/dist/ui/assets/{Trans-RG_sMDEu.js → Trans-BXjW_Rw3.js} +1 -1
- package/dist/ui/assets/{accounts-yTXURc-q.js → accounts-C7JMc-UL.js} +1 -1
- package/dist/ui/assets/{alert-dialog-DjvPgzFs.js → alert-dialog-BSSHnWG_.js} +1 -1
- package/dist/ui/assets/{api-Ck1dtNEM.js → api-GzEZNvOJ.js} +1 -1
- package/dist/ui/assets/{auth-section-DBnY_LPz.js → auth-section-B6k7LWIq.js} +1 -1
- package/dist/ui/assets/{backups-section-Ci-uL4Of.js → backups-section-Cr3g01YN.js} +1 -1
- package/dist/ui/assets/{channels-BeS9O5q0.js → channels-CMyh1yhN.js} +1 -1
- package/dist/ui/assets/{checkbox-DFeFDZBp.js → checkbox-BkqYXiER.js} +1 -1
- package/dist/ui/assets/{claude-extension-DS5qN19Z.js → claude-extension-BzYl3zcz.js} +1 -1
- package/dist/ui/assets/{cliproxy-D7HJH4mZ.js → cliproxy-DwzKzuZI.js} +1 -1
- package/dist/ui/assets/{cliproxy-ai-providers-oJQZXrtc.js → cliproxy-ai-providers-DL95SYNa.js} +1 -1
- package/dist/ui/assets/{cliproxy-control-panel-2mRPEcRj.js → cliproxy-control-panel-Ba2Rgzdo.js} +1 -1
- package/dist/ui/assets/{codex-D0AUQ6jA.js → codex-ClTEGCnr.js} +1 -1
- package/dist/ui/assets/{confirm-dialog-B37-CVuq.js → confirm-dialog-BPAO4ILr.js} +1 -1
- package/dist/ui/assets/{copilot-KaaW-mko.js → copilot-CymHD4gl.js} +1 -1
- package/dist/ui/assets/{cursor-BKiTgYi5.js → cursor-DAiPXs8h.js} +1 -1
- package/dist/ui/assets/{droid-DHdqGnFw.js → droid-CAhLWDOj.js} +1 -1
- package/dist/ui/assets/{globalenv-section-SfZO97nU.js → globalenv-section-BK5x_uXG.js} +1 -1
- package/dist/ui/assets/{health-CSRS9O0D.js → health-D_ErMvYv.js} +1 -1
- package/dist/ui/assets/{index-Cu_F55_O.js → index-B4cUkPwc.js} +1 -1
- package/dist/ui/assets/{index-DWUuSBUe.js → index-BZMyk4bI.js} +1 -1
- package/dist/ui/assets/{index-CGgavq2X.js → index-BcfwoMDm.js} +3 -3
- package/dist/ui/assets/{index-iQuEEGbH.js → index-BmbKPprT.js} +1 -1
- package/dist/ui/assets/{index-ChTYEBCZ.js → index-CEjVNSjg.js} +1 -1
- package/dist/ui/assets/{index-DJ66NrBH.js → index-CFDjAXOB.js} +1 -1
- package/dist/ui/assets/{index-DycwEe96.js → index-DCC80SZ0.js} +1 -1
- package/dist/ui/assets/{logs-tiZ_51mo.js → logs-DwhXr-9Y.js} +1 -1
- package/dist/ui/assets/{masked-input-D9FVoeMA.js → masked-input-DWJTe7jh.js} +1 -1
- package/dist/ui/assets/{proxy-status-widget-2k26d8pS.js → proxy-status-widget-CJXi8yui.js} +1 -1
- package/dist/ui/assets/{raw-json-settings-editor-panel-CguBh93H.js → raw-json-settings-editor-panel-DWhAi0kI.js} +1 -1
- package/dist/ui/assets/{searchable-select-C4wShshD.js → searchable-select-CYC4Y8pS.js} +1 -1
- package/dist/ui/assets/{separator-mvGlDdEW.js → separator-JhuNwVKE.js} +1 -1
- package/dist/ui/assets/{shared-Ck0yAwbs.js → shared-Hpgs7l5G.js} +1 -1
- package/dist/ui/assets/{table-DrUJOxKL.js → table-DDJTZfyL.js} +1 -1
- package/dist/ui/assets/{updates-BVHBFcq8.js → updates-CtygOHUO.js} +1 -1
- package/dist/ui/assets/{use-accounts-DLtuaniS.js → use-accounts-CaptC8AS.js} +1 -1
- package/dist/ui/index.html +1 -1
- package/dist/utils/bar-auth-token.d.ts +4 -0
- package/dist/utils/bar-auth-token.d.ts.map +1 -0
- package/dist/utils/bar-auth-token.js +60 -0
- package/dist/utils/bar-auth-token.js.map +1 -0
- package/dist/utils/browser/browser-settings.d.ts +3 -1
- package/dist/utils/browser/browser-settings.d.ts.map +1 -1
- package/dist/utils/browser/browser-settings.js +2 -2
- package/dist/utils/browser/browser-settings.js.map +1 -1
- package/dist/utils/browser/browser-setup.d.ts.map +1 -1
- package/dist/utils/browser/browser-setup.js +3 -1
- package/dist/utils/browser/browser-setup.js.map +1 -1
- package/dist/utils/browser/browser-status.d.ts.map +1 -1
- package/dist/utils/browser/browser-status.js +4 -2
- package/dist/utils/browser/browser-status.js.map +1 -1
- package/dist/utils/fetch-proxy-setup.d.ts +3 -2
- package/dist/utils/fetch-proxy-setup.d.ts.map +1 -1
- package/dist/utils/fetch-proxy-setup.js +10 -6
- package/dist/utils/fetch-proxy-setup.js.map +1 -1
- package/dist/web-server/routes/cursor-routes.d.ts.map +1 -1
- package/dist/web-server/routes/cursor-routes.js +3 -1
- package/dist/web-server/routes/cursor-routes.js.map +1 -1
- package/dist/web-server/routes/index.d.ts.map +1 -1
- package/dist/web-server/routes/index.js +6 -0
- package/dist/web-server/routes/index.js.map +1 -1
- package/dist/web-server/routes/route-helpers.d.ts.map +1 -1
- package/dist/web-server/routes/route-helpers.js +8 -0
- package/dist/web-server/routes/route-helpers.js.map +1 -1
- package/dist/web-server/usage/cliproxy-usage-transformer.d.ts.map +1 -1
- package/dist/web-server/usage/cliproxy-usage-transformer.js +9 -4
- package/dist/web-server/usage/cliproxy-usage-transformer.js.map +1 -1
- package/dist/web-server/usage/codex-local-quota-collector.d.ts +2 -2
- package/dist/web-server/usage/codex-local-quota-collector.d.ts.map +1 -1
- package/dist/web-server/usage/codex-local-quota-collector.js +39 -11
- package/dist/web-server/usage/codex-local-quota-collector.js.map +1 -1
- package/package.json +1 -1
- package/scripts/github/stable-release-issue-cleanup-lib.mjs +51 -11
|
@@ -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,8 +14,10 @@
|
|
|
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;
|
|
20
|
+
sha256: string;
|
|
19
21
|
}
|
|
20
22
|
export interface CompatResult {
|
|
21
23
|
compatible: boolean;
|
|
@@ -29,10 +31,10 @@ export interface InstallDeps {
|
|
|
29
31
|
*/
|
|
30
32
|
fetchReleaseAsset: (tag: string, asset: string) => Promise<ReleaseAssetResult>;
|
|
31
33
|
/**
|
|
32
|
-
* Download the zip archive and extract the .app bundle into dest/.
|
|
33
|
-
* Production: uses undici to stream + extract (with redirect + status check).
|
|
34
|
+
* Download the zip archive, verify its SHA-256 digest, and extract the .app bundle into dest/.
|
|
35
|
+
* Production: uses undici to stream + verify + extract (with redirect + status check).
|
|
34
36
|
*/
|
|
35
|
-
downloadAndExtract: (url: string, dest: string) => Promise<void>;
|
|
37
|
+
downloadAndExtract: (url: string, dest: string, expectedSha256: string) => Promise<void>;
|
|
36
38
|
/**
|
|
37
39
|
* GET {baseUrl}/api/bar/summary — capability handshake.
|
|
38
40
|
* 200 → compatible; 404 → no-bar-api; else/unreachable → unreachable.
|
|
@@ -48,13 +50,6 @@ export interface InstallDeps {
|
|
|
48
50
|
getCcsDir: () => string;
|
|
49
51
|
/** Destination directory for the .app bundle (~/Applications by default). */
|
|
50
52
|
getAppsDir: () => string;
|
|
51
|
-
/**
|
|
52
|
-
* Clear the macOS Gatekeeper quarantine attribute from the installed app.
|
|
53
|
-
* Run via `/usr/bin/xattr -dr com.apple.quarantine <appPath>` (execFile, not shell-string).
|
|
54
|
-
* Returns true on success, false if xattr is unavailable or the call fails (non-fatal).
|
|
55
|
-
* Injectable for tests — avoids touching the real system.
|
|
56
|
-
*/
|
|
57
|
-
clearQuarantine: (appPath: string) => Promise<boolean>;
|
|
58
53
|
/**
|
|
59
54
|
* Invoke handleBarLaunch after a successful install when the user consents.
|
|
60
55
|
* Injectable so tests can assert invocation without starting a real server.
|
|
@@ -81,6 +76,13 @@ export interface InstallDeps {
|
|
|
81
76
|
* Throws on failure; caller catches and aborts install.
|
|
82
77
|
*/
|
|
83
78
|
removeExistingApp: (appPath: string) => void;
|
|
79
|
+
/**
|
|
80
|
+
* Write launch.json so the Swift app can spawn the server without a shell PATH.
|
|
81
|
+
* Called after successful install so the descriptor is always fresh.
|
|
82
|
+
* Injectable for tests — asserts the file is written without real fs side-effects.
|
|
83
|
+
* Non-fatal when it throws (install already succeeded).
|
|
84
|
+
*/
|
|
85
|
+
writeLaunchDescriptor: (jsonPath: string, descriptor: LaunchJson) => void;
|
|
84
86
|
}
|
|
85
87
|
/**
|
|
86
88
|
* 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;AA2B9C,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;CAChB;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,EAAE,cAAc,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACzF;;;;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;;;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;AA8UD,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,MAAM,EAAE,EACd,IAAI,GAAE,OAAO,CAAC,WAAW,CAAM,GAC9B,OAAO,CAAC,IAAI,CAAC,CA4Of"}
|
|
@@ -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
|
// ---------------------------------------------------------------------------
|
|
@@ -56,11 +57,8 @@ const BAR_GITHUB_REPO = 'kaitranntt/ccs';
|
|
|
56
57
|
/**
|
|
57
58
|
* Allowlist of hostnames from which we will accept asset downloads.
|
|
58
59
|
* GitHub releases redirect from github.com to objects.githubusercontent.com.
|
|
59
|
-
*
|
|
60
|
-
*
|
|
61
|
-
* wire SHA-256 verification here. The download URL is already validated for
|
|
62
|
-
* host+HTTPS as a v1 minimum guard. The verifier hook below is the intended
|
|
63
|
-
* extension point.
|
|
60
|
+
* Artifact authenticity is enforced separately with the GitHub release asset
|
|
61
|
+
* SHA-256 digest before extraction.
|
|
64
62
|
*/
|
|
65
63
|
const DOWNLOAD_HOST_ALLOWLIST = [
|
|
66
64
|
'github.com',
|
|
@@ -116,7 +114,13 @@ async function defaultFetchReleaseAsset(tag, asset) {
|
|
|
116
114
|
if (!found) {
|
|
117
115
|
throw new Error(`Asset "${asset}" not found in release ${tag}`);
|
|
118
116
|
}
|
|
119
|
-
|
|
117
|
+
const digest = typeof found.digest === 'string' ? found.digest : '';
|
|
118
|
+
const match = /^sha256:([a-fA-F0-9]{64})$/.exec(digest.trim());
|
|
119
|
+
if (!match || !match[1]) {
|
|
120
|
+
throw new Error(`Asset "${asset}" in release ${tag} does not include a valid sha256 digest. ` +
|
|
121
|
+
'Refusing to install an unverifiable CCS Bar archive.');
|
|
122
|
+
}
|
|
123
|
+
return { downloadUrl: found.browser_download_url, sha256: match[1].toLowerCase() };
|
|
120
124
|
}
|
|
121
125
|
/**
|
|
122
126
|
* Download a zip from `url` (following up to 5 GitHub 302 redirects, re-validating
|
|
@@ -128,19 +132,25 @@ async function defaultFetchReleaseAsset(tag, asset) {
|
|
|
128
132
|
* The previous maxRedirections:5 let undici follow redirects to ANY host unchecked.
|
|
129
133
|
* - Fix #14: list zip entries with `unzip -l` before extracting; reject the archive
|
|
130
134
|
* if any entry path contains ".." or starts with "/" (zip-slip guard).
|
|
135
|
+
* - Security: verify the downloaded archive against the release asset SHA-256
|
|
136
|
+
* digest before any extraction or installation.
|
|
131
137
|
* - Finding #11: check `statusCode` and throw a descriptive error before streaming.
|
|
132
138
|
* - Finding #9: validate host+HTTPS before making the first request.
|
|
133
139
|
*/
|
|
134
|
-
async function defaultDownloadAndExtract(url, dest) {
|
|
140
|
+
async function defaultDownloadAndExtract(url, dest, expectedSha256) {
|
|
135
141
|
const { request } = await Promise.resolve().then(() => __importStar(require('undici')));
|
|
136
|
-
const {
|
|
142
|
+
const { createHash } = await Promise.resolve().then(() => __importStar(require('crypto')));
|
|
143
|
+
const { createReadStream, createWriteStream, mkdirSync } = fs;
|
|
137
144
|
const { promisify } = await Promise.resolve().then(() => __importStar(require('util')));
|
|
138
145
|
const { pipeline } = await Promise.resolve().then(() => __importStar(require('stream')));
|
|
139
146
|
const streamPipeline = promisify(pipeline);
|
|
140
147
|
const { execFile } = await Promise.resolve().then(() => __importStar(require('child_process')));
|
|
141
148
|
const execFileAsync = promisify(execFile);
|
|
142
|
-
// Validate initial URL (Finding #9)
|
|
149
|
+
// Validate initial URL (Finding #9) and require an integrity pin.
|
|
143
150
|
validateDownloadUrl(url);
|
|
151
|
+
if (!/^[a-fA-F0-9]{64}$/.test(expectedSha256)) {
|
|
152
|
+
throw new Error('Missing or invalid SHA-256 digest for CCS Bar archive. Refusing to install.');
|
|
153
|
+
}
|
|
144
154
|
mkdirSync(dest, { recursive: true });
|
|
145
155
|
// Fix #6: follow redirects manually so each hop is re-validated.
|
|
146
156
|
const MAX_REDIRECTS = 5;
|
|
@@ -175,9 +185,22 @@ async function defaultDownloadAndExtract(url, dest) {
|
|
|
175
185
|
throw new Error(`Download failed: HTTP ${statusCode} for ${currentUrl}`);
|
|
176
186
|
}
|
|
177
187
|
const tmpZip = path.join(os.tmpdir(), `ccs-bar-${Date.now()}.zip`);
|
|
178
|
-
// Stream body to tmpZip
|
|
188
|
+
// Stream body to tmpZip, then verify the archive before inspecting/extracting it.
|
|
179
189
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
180
190
|
await streamPipeline(body, createWriteStream(tmpZip));
|
|
191
|
+
const hash = createHash('sha256');
|
|
192
|
+
await streamPipeline(createReadStream(tmpZip), hash);
|
|
193
|
+
const actualSha256 = hash.digest('hex');
|
|
194
|
+
if (actualSha256.toLowerCase() !== expectedSha256.toLowerCase()) {
|
|
195
|
+
try {
|
|
196
|
+
fs.unlinkSync(tmpZip);
|
|
197
|
+
}
|
|
198
|
+
catch {
|
|
199
|
+
/* ignore */
|
|
200
|
+
}
|
|
201
|
+
throw new Error('Downloaded CCS Bar archive failed SHA-256 verification. ' +
|
|
202
|
+
`Expected ${expectedSha256.toLowerCase()}, got ${actualSha256.toLowerCase()}.`);
|
|
203
|
+
}
|
|
181
204
|
// Fix #14: zip-slip guard — inspect entries before extraction.
|
|
182
205
|
// `unzip -l` lists entries in a machine-readable format; we scan for ".." or
|
|
183
206
|
// absolute paths that would escape the destination directory.
|
|
@@ -288,28 +311,13 @@ function defaultGetCcsDir() {
|
|
|
288
311
|
function defaultGetAppsDir() {
|
|
289
312
|
return path.join(os.homedir(), 'Applications');
|
|
290
313
|
}
|
|
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
314
|
function defaultRemoveExistingApp(appPath) {
|
|
311
315
|
fs.rmSync(appPath, { recursive: true, force: true });
|
|
312
316
|
}
|
|
317
|
+
function defaultWriteLaunchDescriptor(jsonPath, descriptor) {
|
|
318
|
+
fs.mkdirSync(path.dirname(jsonPath), { recursive: true });
|
|
319
|
+
fs.writeFileSync(jsonPath, JSON.stringify(descriptor, null, 2));
|
|
320
|
+
}
|
|
313
321
|
async function defaultLaunchBar(args) {
|
|
314
322
|
const { handleBarLaunch } = await Promise.resolve().then(() => __importStar(require('./launch-subcommand')));
|
|
315
323
|
await handleBarLaunch(args);
|
|
@@ -380,11 +388,11 @@ async function handleBarInstall(args, deps = {}) {
|
|
|
380
388
|
const downloadAndExtract = deps.downloadAndExtract ?? defaultDownloadAndExtract;
|
|
381
389
|
const verifyCompat = deps.verifyCompat ?? defaultVerifyCompat;
|
|
382
390
|
const readAppBundleVersion = deps.readAppBundleVersion ?? defaultReadAppBundleVersion;
|
|
383
|
-
const clearQuarantine = deps.clearQuarantine ?? defaultClearQuarantine;
|
|
384
391
|
const launchBar = deps.launchBar ?? defaultLaunchBar;
|
|
385
392
|
const promptLaunch = deps.promptLaunch ?? defaultPromptLaunch;
|
|
386
393
|
const isBarRunning = deps.isBarRunning ?? defaultIsBarRunning;
|
|
387
394
|
const removeExistingApp = deps.removeExistingApp ?? defaultRemoveExistingApp;
|
|
395
|
+
const writeLaunchDescriptor = deps.writeLaunchDescriptor ?? defaultWriteLaunchDescriptor;
|
|
388
396
|
const ccsDir = (deps.getCcsDir ?? defaultGetCcsDir)();
|
|
389
397
|
const appsDir = (deps.getAppsDir ?? defaultGetAppsDir)();
|
|
390
398
|
// 0. Already-installed detection: show the current version before proceeding.
|
|
@@ -412,7 +420,7 @@ async function handleBarInstall(args, deps = {}) {
|
|
|
412
420
|
console.error('[i] Check your network connection and try again.');
|
|
413
421
|
return;
|
|
414
422
|
}
|
|
415
|
-
const { downloadUrl } = releaseInfo;
|
|
423
|
+
const { downloadUrl, sha256 } = releaseInfo;
|
|
416
424
|
console.log(`[i] Installing CCS Bar from ${BAR_RELEASE_TAG}...`);
|
|
417
425
|
// 1b. Stage-then-swap: extract into a hidden staging dir on the same filesystem
|
|
418
426
|
// so the rename to appPath is atomic-ish. The old bundle is only removed
|
|
@@ -439,7 +447,7 @@ async function handleBarInstall(args, deps = {}) {
|
|
|
439
447
|
}
|
|
440
448
|
// 2. Download and extract into staging, NOT appsDir.
|
|
441
449
|
try {
|
|
442
|
-
await downloadAndExtract(downloadUrl, stagingDir);
|
|
450
|
+
await downloadAndExtract(downloadUrl, stagingDir, sha256);
|
|
443
451
|
}
|
|
444
452
|
catch (err) {
|
|
445
453
|
const msg = err instanceof Error ? err.message : String(err);
|
|
@@ -517,10 +525,26 @@ async function handleBarInstall(args, deps = {}) {
|
|
|
517
525
|
console.log(`[OK] CCS Bar installed to ${appsDir}/${BAR_APP_NAME}`);
|
|
518
526
|
console.log('[!] Could not read app version from Info.plist.');
|
|
519
527
|
}
|
|
528
|
+
// 4b. Write launch.json so the Swift app can spawn the server without a shell PATH.
|
|
529
|
+
// Non-fatal — install has already succeeded at this point.
|
|
530
|
+
try {
|
|
531
|
+
const launchJsonPath = (0, bar_paths_1.getLaunchJsonPath)(ccsDir);
|
|
532
|
+
const launchDescriptor = {
|
|
533
|
+
schema: bar_paths_1.LAUNCH_JSON_SCHEMA,
|
|
534
|
+
runtime: process.execPath,
|
|
535
|
+
args: [process.argv[1], 'bar', 'serve'],
|
|
536
|
+
home: os.homedir(),
|
|
537
|
+
...(process.env.CCS_HOME ? { ccsHome: process.env.CCS_HOME } : {}),
|
|
538
|
+
};
|
|
539
|
+
writeLaunchDescriptor(launchJsonPath, launchDescriptor);
|
|
540
|
+
}
|
|
541
|
+
catch (err) {
|
|
542
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
543
|
+
console.error(`[!] Could not write launch.json: ${msg}`);
|
|
544
|
+
// Non-fatal — continue to Gatekeeper note + launch handoff.
|
|
545
|
+
}
|
|
520
546
|
// 5. Capability handshake via GET /api/bar/summary.
|
|
521
|
-
//
|
|
522
|
-
// check unrelated to Gatekeeper. A failed quarantine clear must not prevent the
|
|
523
|
-
// compat result from being shown to the user.
|
|
547
|
+
// This server-side check is unrelated to Gatekeeper.
|
|
524
548
|
// Read bar.json for baseUrl if present; otherwise fall back to localhost:3000.
|
|
525
549
|
const barJsonPath = path.join(ccsDir, 'bar.json');
|
|
526
550
|
let baseUrl = 'http://127.0.0.1:3000';
|
|
@@ -552,23 +576,14 @@ async function handleBarInstall(args, deps = {}) {
|
|
|
552
576
|
console.log('[!] Could not verify server compatibility (server may not be running).');
|
|
553
577
|
console.log('[i] Run `ccs bar` to start the server and recheck.');
|
|
554
578
|
}
|
|
555
|
-
// 6.
|
|
556
|
-
//
|
|
557
|
-
//
|
|
558
|
-
//
|
|
559
|
-
//
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
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
|
-
}
|
|
579
|
+
// 6. Gatekeeper handling: keep quarantine in place for downloaded apps.
|
|
580
|
+
// CCS Bar is installed from a floating release asset and is not verified by a
|
|
581
|
+
// pinned checksum/signature here, so do not strip macOS's quarantine marker.
|
|
582
|
+
// If Gatekeeper blocks first launch, the user can make an explicit manual
|
|
583
|
+
// trust decision outside the installer.
|
|
584
|
+
console.log('[i] Gatekeeper note:');
|
|
585
|
+
console.log(' macOS may verify this downloaded app on first launch.');
|
|
586
|
+
console.log(' If macOS blocks it, right-click the app and select Open.');
|
|
572
587
|
// 7. Launch handoff.
|
|
573
588
|
// Already-running check: if CCS Bar is running after a (re)install, skip the
|
|
574
589
|
// prompt entirely and print a restart hint (the user needs to quit and reopen
|
|
@@ -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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"}
|
|
@@ -1,25 +1,33 @@
|
|
|
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
|
+
/// <reference types="node" />
|
|
19
|
+
import type { ChildProcess } from 'child_process';
|
|
20
|
+
import type { LaunchJson } from './bar-paths';
|
|
21
|
+
import { defaultFindRunningServer as _defaultFindRunningServer, resolveBarPort as _resolveBarPort } from './bar-server-probe';
|
|
22
|
+
import type { DashboardInfo as _DashboardInfo } from './bar-server-probe';
|
|
23
|
+
export { _defaultFindRunningServer as defaultFindRunningServer };
|
|
24
|
+
export { _resolveBarPort as resolveBarPort };
|
|
14
25
|
export interface BarDiscoveryJson {
|
|
15
26
|
baseUrl: string;
|
|
16
27
|
port: number;
|
|
17
28
|
authMode: 'loopback';
|
|
18
29
|
}
|
|
19
|
-
export
|
|
20
|
-
port: number;
|
|
21
|
-
baseUrl: string;
|
|
22
|
-
}
|
|
30
|
+
export type DashboardInfo = _DashboardInfo;
|
|
23
31
|
export interface LaunchDeps {
|
|
24
32
|
/**
|
|
25
33
|
* Probe candidate ports for a running CCS server.
|
|
@@ -28,11 +36,27 @@ export interface LaunchDeps {
|
|
|
28
36
|
*/
|
|
29
37
|
findRunningServer: () => Promise<DashboardInfo | null>;
|
|
30
38
|
/**
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
|
|
39
|
+
* Find a free port from the candidate list.
|
|
40
|
+
* Used to pre-select a port before spawning the detached server.
|
|
41
|
+
*/
|
|
42
|
+
getPort: (opts: {
|
|
43
|
+
port: number[];
|
|
44
|
+
host: string;
|
|
45
|
+
}) => Promise<number>;
|
|
46
|
+
/**
|
|
47
|
+
* Spawn the `ccs bar serve --port N` process detached and return immediately.
|
|
48
|
+
* The spawned process must be unref()ed so the launcher can exit.
|
|
49
|
+
*/
|
|
50
|
+
spawnDetachedServer: (port: number, logPath: string) => ChildProcess | void;
|
|
51
|
+
/**
|
|
52
|
+
* Poll GET {baseUrl}/api/bar/summary until HTTP 200 or timeout.
|
|
53
|
+
* Returns the live baseUrl on success, throws on timeout.
|
|
34
54
|
*/
|
|
35
|
-
|
|
55
|
+
waitForServerLive: (baseUrl: string) => Promise<void>;
|
|
56
|
+
/**
|
|
57
|
+
* Write launch.json so the Swift app can spawn the server independently.
|
|
58
|
+
*/
|
|
59
|
+
writeLaunchDescriptor: (jsonPath: string, descriptor: LaunchJson) => void;
|
|
36
60
|
/** Open the installed .app bundle. Throws if the app is not found. */
|
|
37
61
|
openApp: (appPath: string) => Promise<void>;
|
|
38
62
|
/** Returns path to ~/.ccs (respects CCS_HOME for test isolation). */
|
|
@@ -41,24 +65,12 @@ export interface LaunchDeps {
|
|
|
41
65
|
appInstallPath: string;
|
|
42
66
|
}
|
|
43
67
|
/**
|
|
44
|
-
*
|
|
45
|
-
*
|
|
68
|
+
* Poll GET {baseUrl}/api/bar/summary every 250 ms until HTTP 200 or ~10 s.
|
|
69
|
+
* Resolves when the server is live. Rejects on timeout.
|
|
46
70
|
*/
|
|
47
|
-
export declare
|
|
48
|
-
|
|
49
|
-
|
|
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>;
|
|
71
|
+
export declare class BarServerAuthRequiredError extends Error {
|
|
72
|
+
constructor(baseUrl: string, statusCode: number);
|
|
73
|
+
}
|
|
74
|
+
export declare function defaultWaitForServerLive(baseUrl: string): Promise<void>;
|
|
63
75
|
export declare function handleBarLaunch(_args: string[], deps?: Partial<LaunchDeps>): Promise<void>;
|
|
64
76
|
//# 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;;AAKH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAUlD,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,YAAY,GAAG,IAAI,CAAC;IAC5E;;;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;AAkCD;;;GAGG;AACH,qBAAa,0BAA2B,SAAQ,KAAK;gBACvC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;CAIhD;AAMD,wBAAsB,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAwE7E;AAyBD,wBAAsB,eAAe,CACnC,KAAK,EAAE,MAAM,EAAE,EACf,IAAI,GAAE,OAAO,CAAC,UAAU,CAAM,GAC7B,OAAO,CAAC,IAAI,CAAC,CA0If"}
|