@kaitranntt/ccs 8.8.1-dev.2 → 8.8.1-dev.21
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 +5 -3
- package/dist/api/services/profile-lifecycle-validation.d.ts.map +1 -1
- package/dist/api/services/profile-lifecycle-validation.js +3 -8
- package/dist/api/services/profile-lifecycle-validation.js.map +1 -1
- package/dist/auth/resume-lane-diagnostics.d.ts +9 -0
- package/dist/auth/resume-lane-diagnostics.d.ts.map +1 -1
- package/dist/auth/resume-lane-diagnostics.js +105 -1
- package/dist/auth/resume-lane-diagnostics.js.map +1 -1
- package/dist/auth/resume-lane-warning.d.ts +9 -1
- package/dist/auth/resume-lane-warning.d.ts.map +1 -1
- package/dist/auth/resume-lane-warning.js +72 -5
- package/dist/auth/resume-lane-warning.js.map +1 -1
- package/dist/ccs.d.ts +1 -1
- package/dist/ccs.d.ts.map +1 -1
- package/dist/ccs.js +5 -1
- package/dist/ccs.js.map +1 -1
- package/dist/cliproxy/accounts/registry.d.ts.map +1 -1
- package/dist/cliproxy/accounts/registry.js +14 -16
- package/dist/cliproxy/accounts/registry.js.map +1 -1
- package/dist/cliproxy/ai-providers/model-id-normalizer.d.ts +1 -1
- package/dist/cliproxy/ai-providers/model-id-normalizer.d.ts.map +1 -1
- package/dist/cliproxy/auth/oauth-cli-args.d.ts +11 -0
- package/dist/cliproxy/auth/oauth-cli-args.d.ts.map +1 -0
- package/dist/cliproxy/auth/oauth-cli-args.js +53 -0
- package/dist/cliproxy/auth/oauth-cli-args.js.map +1 -0
- package/dist/cliproxy/auth/oauth-cli-capabilities.d.ts +11 -0
- package/dist/cliproxy/auth/oauth-cli-capabilities.d.ts.map +1 -0
- package/dist/cliproxy/auth/oauth-cli-capabilities.js +101 -0
- package/dist/cliproxy/auth/oauth-cli-capabilities.js.map +1 -0
- package/dist/cliproxy/auth/oauth-handler.d.ts +0 -6
- package/dist/cliproxy/auth/oauth-handler.d.ts.map +1 -1
- package/dist/cliproxy/auth/oauth-handler.js +70 -43
- package/dist/cliproxy/auth/oauth-handler.js.map +1 -1
- package/dist/cliproxy/auth/test-fixtures/gemini-backend-guidance-child.scenario.d.ts +2 -0
- package/dist/cliproxy/auth/test-fixtures/gemini-backend-guidance-child.scenario.d.ts.map +1 -0
- package/dist/cliproxy/auth/test-fixtures/gemini-backend-guidance-child.scenario.js +207 -0
- package/dist/cliproxy/auth/test-fixtures/gemini-backend-guidance-child.scenario.js.map +1 -0
- package/dist/cliproxy/binary-manager.d.ts +1 -0
- package/dist/cliproxy/binary-manager.d.ts.map +1 -1
- package/dist/cliproxy/binary-manager.js +1 -1
- package/dist/cliproxy/binary-manager.js.map +1 -1
- package/dist/cliproxy/config/env-builder.d.ts +5 -0
- package/dist/cliproxy/config/env-builder.d.ts.map +1 -1
- package/dist/cliproxy/config/env-builder.js +24 -1
- 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 +81 -11
- package/dist/cliproxy/config/generator.js.map +1 -1
- package/dist/cliproxy/config/oauth-model-alias-config.d.ts +6 -0
- package/dist/cliproxy/config/oauth-model-alias-config.d.ts.map +1 -0
- package/dist/cliproxy/config/oauth-model-alias-config.js +136 -0
- package/dist/cliproxy/config/oauth-model-alias-config.js.map +1 -0
- package/dist/cliproxy/config/payload-rule-config.d.ts +6 -0
- package/dist/cliproxy/config/payload-rule-config.d.ts.map +1 -0
- package/dist/cliproxy/config/payload-rule-config.js +137 -0
- package/dist/cliproxy/config/payload-rule-config.js.map +1 -0
- package/dist/cliproxy/executor/claude-launcher.d.ts +3 -0
- package/dist/cliproxy/executor/claude-launcher.d.ts.map +1 -1
- package/dist/cliproxy/executor/claude-launcher.js +7 -3
- package/dist/cliproxy/executor/claude-launcher.js.map +1 -1
- package/dist/cliproxy/executor/env-resolver.d.ts +2 -0
- package/dist/cliproxy/executor/env-resolver.d.ts.map +1 -1
- package/dist/cliproxy/executor/env-resolver.js +6 -4
- package/dist/cliproxy/executor/env-resolver.js.map +1 -1
- package/dist/cliproxy/executor/index.d.ts.map +1 -1
- package/dist/cliproxy/executor/index.js +7 -5
- package/dist/cliproxy/executor/index.js.map +1 -1
- package/dist/cliproxy/model-catalog.d.ts +2 -0
- package/dist/cliproxy/model-catalog.d.ts.map +1 -1
- package/dist/cliproxy/model-catalog.js +67 -0
- package/dist/cliproxy/model-catalog.js.map +1 -1
- package/dist/cliproxy/quota/quota-fetcher-claude.d.ts.map +1 -1
- package/dist/cliproxy/quota/quota-fetcher-claude.js +11 -1
- package/dist/cliproxy/quota/quota-fetcher-claude.js.map +1 -1
- package/dist/cliproxy/routing/retry-settings.d.ts +18 -0
- package/dist/cliproxy/routing/retry-settings.d.ts.map +1 -0
- package/dist/cliproxy/routing/retry-settings.js +185 -0
- package/dist/cliproxy/routing/retry-settings.js.map +1 -0
- package/dist/cliproxy/routing/routing-strategy-http.d.ts +3 -0
- package/dist/cliproxy/routing/routing-strategy-http.d.ts.map +1 -1
- package/dist/cliproxy/routing/routing-strategy-http.js +13 -3
- package/dist/cliproxy/routing/routing-strategy-http.js.map +1 -1
- package/dist/cliproxy/services/catalog-cache.d.ts.map +1 -1
- package/dist/cliproxy/services/catalog-cache.js +6 -0
- package/dist/cliproxy/services/catalog-cache.js.map +1 -1
- package/dist/cliproxy/session-tracker.d.ts.map +1 -1
- package/dist/cliproxy/session-tracker.js +4 -18
- package/dist/cliproxy/session-tracker.js.map +1 -1
- package/dist/cliproxy/types/config-types.d.ts +3 -0
- package/dist/cliproxy/types/config-types.d.ts.map +1 -1
- package/dist/codex-auth/shell-detect.d.ts +2 -0
- package/dist/codex-auth/shell-detect.d.ts.map +1 -1
- package/dist/codex-auth/shell-detect.js +15 -1
- package/dist/codex-auth/shell-detect.js.map +1 -1
- package/dist/commands/bar/bar-process-control.d.ts +43 -0
- package/dist/commands/bar/bar-process-control.d.ts.map +1 -0
- package/dist/commands/bar/bar-process-control.js +255 -0
- package/dist/commands/bar/bar-process-control.js.map +1 -0
- package/dist/commands/bar/bar-server-probe.d.ts +5 -2
- package/dist/commands/bar/bar-server-probe.d.ts.map +1 -1
- package/dist/commands/bar/bar-server-probe.js +38 -12
- package/dist/commands/bar/bar-server-probe.js.map +1 -1
- package/dist/commands/bar/help-subcommand.d.ts.map +1 -1
- package/dist/commands/bar/help-subcommand.js +2 -0
- package/dist/commands/bar/help-subcommand.js.map +1 -1
- package/dist/commands/bar/index.d.ts.map +1 -1
- package/dist/commands/bar/index.js +13 -3
- package/dist/commands/bar/index.js.map +1 -1
- package/dist/commands/bar/launch-descriptor.d.ts +2 -0
- package/dist/commands/bar/launch-descriptor.d.ts.map +1 -1
- package/dist/commands/bar/launch-descriptor.js +6 -1
- package/dist/commands/bar/launch-descriptor.js.map +1 -1
- package/dist/commands/bar/launch-subcommand.d.ts +18 -1
- package/dist/commands/bar/launch-subcommand.d.ts.map +1 -1
- package/dist/commands/bar/launch-subcommand.js +149 -45
- package/dist/commands/bar/launch-subcommand.js.map +1 -1
- package/dist/commands/bar/port-arg.d.ts +16 -0
- package/dist/commands/bar/port-arg.d.ts.map +1 -0
- package/dist/commands/bar/port-arg.js +41 -0
- package/dist/commands/bar/port-arg.js.map +1 -0
- package/dist/commands/bar/serve-subcommand.d.ts +5 -0
- package/dist/commands/bar/serve-subcommand.d.ts.map +1 -1
- package/dist/commands/bar/serve-subcommand.js +47 -29
- package/dist/commands/bar/serve-subcommand.js.map +1 -1
- package/dist/commands/bar/status-subcommand.d.ts.map +1 -1
- package/dist/commands/bar/status-subcommand.js +11 -2
- package/dist/commands/bar/status-subcommand.js.map +1 -1
- package/dist/commands/bar/stop-subcommand.d.ts +5 -0
- package/dist/commands/bar/stop-subcommand.d.ts.map +1 -1
- package/dist/commands/bar/stop-subcommand.js +71 -27
- package/dist/commands/bar/stop-subcommand.js.map +1 -1
- package/dist/commands/cliproxy/catalog-subcommand.d.ts.map +1 -1
- package/dist/commands/cliproxy/catalog-subcommand.js +2 -0
- package/dist/commands/cliproxy/catalog-subcommand.js.map +1 -1
- package/dist/commands/cliproxy/quota-subcommand/sections/claude.d.ts.map +1 -1
- package/dist/commands/cliproxy/quota-subcommand/sections/claude.js +2 -1
- package/dist/commands/cliproxy/quota-subcommand/sections/claude.js.map +1 -1
- package/dist/config/schemas/cliproxy.d.ts +66 -0
- package/dist/config/schemas/cliproxy.d.ts.map +1 -1
- package/dist/config/schemas/cliproxy.js +13 -1
- package/dist/config/schemas/cliproxy.js.map +1 -1
- package/dist/config/schemas/index.d.ts +1 -1
- package/dist/config/schemas/index.d.ts.map +1 -1
- package/dist/config/schemas/index.js.map +1 -1
- package/dist/config/schemas/version.d.ts +2 -1
- package/dist/config/schemas/version.d.ts.map +1 -1
- package/dist/config/schemas/version.js +2 -1
- package/dist/config/schemas/version.js.map +1 -1
- package/dist/copilot/copilot-executor.d.ts +3 -1
- package/dist/copilot/copilot-executor.d.ts.map +1 -1
- package/dist/copilot/copilot-executor.js +11 -7
- package/dist/copilot/copilot-executor.js.map +1 -1
- package/dist/cursor/cursor-profile-executor.d.ts +3 -1
- package/dist/cursor/cursor-profile-executor.d.ts.map +1 -1
- package/dist/cursor/cursor-profile-executor.js +8 -4
- package/dist/cursor/cursor-profile-executor.js.map +1 -1
- package/dist/delegation/headless-executor.d.ts.map +1 -1
- package/dist/delegation/headless-executor.js +4 -3
- package/dist/delegation/headless-executor.js.map +1 -1
- package/dist/dispatcher/flows/copilot-flow.d.ts.map +1 -1
- package/dist/dispatcher/flows/copilot-flow.js +3 -2
- package/dist/dispatcher/flows/copilot-flow.js.map +1 -1
- package/dist/dispatcher/flows/cursor-flow.d.ts.map +1 -1
- package/dist/dispatcher/flows/cursor-flow.js +3 -2
- package/dist/dispatcher/flows/cursor-flow.js.map +1 -1
- package/dist/dispatcher/flows/settings-flow.d.ts.map +1 -1
- package/dist/dispatcher/flows/settings-flow.js +12 -10
- package/dist/dispatcher/flows/settings-flow.js.map +1 -1
- package/dist/management/shared-manager/diverged-file-adopter.d.ts +5 -0
- package/dist/management/shared-manager/diverged-file-adopter.d.ts.map +1 -0
- package/dist/management/shared-manager/diverged-file-adopter.js +361 -0
- package/dist/management/shared-manager/diverged-file-adopter.js.map +1 -0
- package/dist/management/shared-manager/fs-helpers.d.ts +9 -0
- package/dist/management/shared-manager/fs-helpers.d.ts.map +1 -1
- package/dist/management/shared-manager/fs-helpers.js +9 -0
- package/dist/management/shared-manager/fs-helpers.js.map +1 -1
- package/dist/management/shared-manager/plugin-layout-internals.d.ts.map +1 -1
- package/dist/management/shared-manager/plugin-layout-internals.js +33 -3
- package/dist/management/shared-manager/plugin-layout-internals.js.map +1 -1
- package/dist/management/shared-manager/shared-dir-linker.d.ts.map +1 -1
- package/dist/management/shared-manager/shared-dir-linker.js +44 -5
- package/dist/management/shared-manager/shared-dir-linker.js.map +1 -1
- package/dist/proxy/proxy-daemon-entry.js +10 -2
- package/dist/proxy/proxy-daemon-entry.js.map +1 -1
- package/dist/proxy/server/messages-route.d.ts +2 -2
- package/dist/proxy/server/messages-route.d.ts.map +1 -1
- package/dist/proxy/server/messages-route.js +33 -24
- package/dist/proxy/server/messages-route.js.map +1 -1
- package/dist/proxy/server/proxy-server.d.ts +1 -0
- package/dist/proxy/server/proxy-server.d.ts.map +1 -1
- package/dist/proxy/server/proxy-server.js +57 -5
- package/dist/proxy/server/proxy-server.js.map +1 -1
- package/dist/proxy/server/upstream-transport.d.ts +14 -0
- package/dist/proxy/server/upstream-transport.d.ts.map +1 -0
- package/dist/proxy/server/upstream-transport.js +72 -0
- package/dist/proxy/server/upstream-transport.js.map +1 -0
- package/dist/proxy/transformers/request-transformer.d.ts.map +1 -1
- package/dist/proxy/transformers/request-transformer.js +43 -1
- package/dist/proxy/transformers/request-transformer.js.map +1 -1
- package/dist/services/logging/log-redaction.d.ts.map +1 -1
- package/dist/services/logging/log-redaction.js +4 -1
- package/dist/services/logging/log-redaction.js.map +1 -1
- package/dist/services/logging/log-types.d.ts +1 -0
- package/dist/services/logging/log-types.d.ts.map +1 -1
- package/dist/services/logging/log-types.js.map +1 -1
- package/dist/shared/extended-context-utils.d.ts +1 -1
- package/dist/shared/extended-context-utils.d.ts.map +1 -1
- package/dist/shared/extended-context-utils.js +1 -0
- package/dist/shared/extended-context-utils.js.map +1 -1
- package/dist/ui/assets/{Trans-DikqwpyV.js → Trans-dQ5QXCeL.js} +1 -1
- package/dist/ui/assets/{accounts-CyxhHZCf.js → accounts-DMMNI7g4.js} +1 -1
- package/dist/ui/assets/{alert-dialog-BK0GUnuD.js → alert-dialog-BIWuuEiP.js} +1 -1
- package/dist/ui/assets/{api-Drl6gU6G.js → api-BKTghVxS.js} +1 -1
- package/dist/ui/assets/{auth-section-BFye5Fvc.js → auth-section-BKDcPs0P.js} +1 -1
- package/dist/ui/assets/{backups-section-C7CHLX_s.js → backups-section-DB1N4X1P.js} +1 -1
- package/dist/ui/assets/{channels-BA2KK53N.js → channels-dhk_rRcA.js} +1 -1
- package/dist/ui/assets/{checkbox-DLtUhzvo.js → checkbox-h1pwW_6m.js} +1 -1
- package/dist/ui/assets/{claude-extension-CA2ZhSXe.js → claude-extension-WLOGl6eK.js} +1 -1
- package/dist/ui/assets/cliproxy-CE_mZIGU.js +4 -0
- package/dist/ui/assets/{cliproxy-ai-providers-DEVLuNRr.js → cliproxy-ai-providers-DVkAmHVF.js} +5 -5
- package/dist/ui/assets/{cliproxy-control-panel-DaKavcwL.js → cliproxy-control-panel-D25OT5u5.js} +1 -1
- package/dist/ui/assets/{codex-0YcVMxMn.js → codex-Bqc25al7.js} +1 -1
- package/dist/ui/assets/{confirm-dialog-BwPR9XXP.js → confirm-dialog-BnAIV9ZB.js} +1 -1
- package/dist/ui/assets/{copilot-6THRMSL4.js → copilot-BdjZjuRs.js} +2 -2
- package/dist/ui/assets/{cursor-ZtSOucIl.js → cursor-DTbIQ-d7.js} +1 -1
- package/dist/ui/assets/{droid-BG47JDeh.js → droid-DAjrpAjP.js} +1 -1
- package/dist/ui/assets/{globalenv-section-D0BWEyrv.js → globalenv-section-BzirfKtN.js} +1 -1
- package/dist/ui/assets/{health-B8Qaa0qy.js → health-CDCop1Et.js} +1 -1
- package/dist/ui/assets/index-B4yjQknk.js +56 -0
- package/dist/ui/assets/{index-C65cM80c.js → index-BF4hYrQf.js} +1 -1
- package/dist/ui/assets/{index-DcEHhFv0.js → index-BhGdNER3.js} +1 -1
- package/dist/ui/assets/{index-CS_fnSTf.js → index-DMGiMF5C.js} +1 -1
- package/dist/ui/assets/{index-CWlp8l--.js → index-Dkee4NQG.js} +1 -1
- package/dist/ui/assets/{index-BTxrAL0k.js → index-bC8F80OC.js} +1 -1
- package/dist/ui/assets/{index-B1iFOK1I.js → index-vdkPayvk.js} +1 -1
- package/dist/ui/assets/{logs-ztBN-pY4.js → logs-Bb1BaiFq.js} +1 -1
- package/dist/ui/assets/{masked-input-b2gPi_ia.js → masked-input-DxWhb6sQ.js} +1 -1
- package/dist/ui/assets/proxy-status-widget-Dj_46CdP.js +1 -0
- package/dist/ui/assets/{raw-json-settings-editor-panel-75NIX76T.js → raw-json-settings-editor-panel-BeZJbsnO.js} +1 -1
- package/dist/ui/assets/{searchable-select-DeH1m4S9.js → searchable-select-CcXdAHJm.js} +1 -1
- package/dist/ui/assets/{separator-BZsY9-Ng.js → separator-O1g2RdCE.js} +1 -1
- package/dist/ui/assets/{shared-DJw2MGMK.js → shared-Ct6UqE0N.js} +1 -1
- package/dist/ui/assets/{table-tGhm7uxn.js → table-D4ZJKsoh.js} +1 -1
- package/dist/ui/assets/{updates-Dgx9dXJc.js → updates-jnNBispr.js} +1 -1
- package/dist/ui/assets/{use-accounts-syuH2gXE.js → use-accounts-DXwh5f2t.js} +1 -1
- package/dist/ui/index.html +1 -1
- 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/utils/shell-executor.d.ts +1 -1
- package/dist/utils/shell-executor.d.ts.map +1 -1
- package/dist/utils/shell-executor.js +5 -8
- package/dist/utils/shell-executor.js.map +1 -1
- package/dist/utils/sync-lock-retry.d.ts +9 -0
- package/dist/utils/sync-lock-retry.d.ts.map +1 -0
- package/dist/utils/sync-lock-retry.js +107 -0
- package/dist/utils/sync-lock-retry.js.map +1 -0
- package/dist/utils/websearch/claude-tool-args.d.ts +1 -1
- package/dist/utils/websearch/claude-tool-args.d.ts.map +1 -1
- package/dist/utils/websearch/claude-tool-args.js +3 -2
- package/dist/utils/websearch/claude-tool-args.js.map +1 -1
- package/dist/utils/websearch/hook-config.d.ts +2 -1
- package/dist/utils/websearch/hook-config.d.ts.map +1 -1
- package/dist/utils/websearch/hook-config.js +1 -2
- package/dist/utils/websearch/hook-config.js.map +1 -1
- package/dist/utils/websearch/hook-env.d.ts +2 -1
- package/dist/utils/websearch/hook-env.d.ts.map +1 -1
- package/dist/utils/websearch/hook-env.js +1 -2
- package/dist/utils/websearch/hook-env.js.map +1 -1
- package/dist/utils/websearch/hook-installer.d.ts +2 -1
- package/dist/utils/websearch/hook-installer.d.ts.map +1 -1
- package/dist/utils/websearch/hook-installer.js +1 -2
- package/dist/utils/websearch/hook-installer.js.map +1 -1
- package/dist/utils/websearch/index.d.ts +2 -0
- package/dist/utils/websearch/index.d.ts.map +1 -1
- package/dist/utils/websearch/index.js +3 -1
- package/dist/utils/websearch/index.js.map +1 -1
- package/dist/utils/websearch/launch-state.d.ts +9 -0
- package/dist/utils/websearch/launch-state.d.ts.map +1 -0
- package/dist/utils/websearch/launch-state.js +15 -0
- package/dist/utils/websearch/launch-state.js.map +1 -0
- package/dist/utils/websearch/mcp-installer.d.ts +6 -5
- package/dist/utils/websearch/mcp-installer.d.ts.map +1 -1
- package/dist/utils/websearch/mcp-installer.js +10 -15
- package/dist/utils/websearch/mcp-installer.js.map +1 -1
- package/dist/utils/websearch/status.d.ts +4 -3
- package/dist/utils/websearch/status.d.ts.map +1 -1
- package/dist/utils/websearch/status.js +7 -10
- package/dist/utils/websearch/status.js.map +1 -1
- package/dist/utils/websearch-manager.d.ts +2 -0
- package/dist/utils/websearch-manager.d.ts.map +1 -1
- package/dist/utils/websearch-manager.js +3 -1
- package/dist/utils/websearch-manager.js.map +1 -1
- package/dist/web-server/model-pricing.d.ts.map +1 -1
- package/dist/web-server/model-pricing.js +22 -0
- package/dist/web-server/model-pricing.js.map +1 -1
- package/dist/web-server/routes/bar-routes.d.ts.map +1 -1
- package/dist/web-server/routes/bar-routes.js +15 -10
- package/dist/web-server/routes/bar-routes.js.map +1 -1
- package/dist/web-server/routes/cliproxy-routing-routes.d.ts.map +1 -1
- package/dist/web-server/routes/cliproxy-routing-routes.js +28 -0
- package/dist/web-server/routes/cliproxy-routing-routes.js.map +1 -1
- package/dist/web-server/routes/settings-routes.d.ts.map +1 -1
- package/dist/web-server/routes/settings-routes.js +1 -0
- package/dist/web-server/routes/settings-routes.js.map +1 -1
- package/dist/web-server/usage/claude-native-credentials.d.ts +23 -2
- package/dist/web-server/usage/claude-native-credentials.d.ts.map +1 -1
- package/dist/web-server/usage/claude-native-credentials.js +78 -14
- package/dist/web-server/usage/claude-native-credentials.js.map +1 -1
- package/dist/web-server/usage/native-quota-collector.d.ts +10 -9
- package/dist/web-server/usage/native-quota-collector.d.ts.map +1 -1
- package/dist/web-server/usage/native-quota-collector.js +113 -42
- package/dist/web-server/usage/native-quota-collector.js.map +1 -1
- package/package.json +2 -1
- package/scripts/ci-parity-gate.sh +4 -30
- package/scripts/hardening-inventory.js +37 -4
- package/scripts/maintainability-metrics.js +2 -8
- package/scripts/run-test-bucket.js +1 -0
- package/scripts/runtime-source-classifier.js +12 -0
- package/dist/ui/assets/cliproxy-Chx5_Ekw.js +0 -4
- package/dist/ui/assets/index-D8lIJFv2.js +0 -56
- package/dist/ui/assets/proxy-status-widget-BrX3HZwn.js +0 -1
|
@@ -8,7 +8,11 @@
|
|
|
8
8
|
* Detached model (replaces the old in-process model):
|
|
9
9
|
* 1. Probe candidate ports (bar.json port first, then 3000/3001/3002/8000/8080).
|
|
10
10
|
* 2. If a live server is found → reuse it, write bar.json, open app, return.
|
|
11
|
-
*
|
|
11
|
+
* With an explicit --port that differs from the running server's port,
|
|
12
|
+
* stop that server first and fall through to a fresh start instead.
|
|
13
|
+
* 3. Else → pick a port (--port exactly when given; otherwise bar.json's
|
|
14
|
+
* recorded port first, then the default candidates), refresh launch.json
|
|
15
|
+
* (including --port so the Swift app self-starts on the same port), spawn
|
|
12
16
|
* `ccs bar serve --port N` detached with stdio → serve.log, poll
|
|
13
17
|
* /api/bar/summary until 200 (timeout ~10 s), write bar.json, open app,
|
|
14
18
|
* return. The CLI process exits; the server continues as a detached child.
|
|
@@ -48,9 +52,11 @@ const config_loader_facade_1 = require("../../config/config-loader-facade");
|
|
|
48
52
|
const bar_auth_token_1 = require("../../utils/bar-auth-token");
|
|
49
53
|
const bar_paths_1 = require("./bar-paths");
|
|
50
54
|
const launch_descriptor_1 = require("./launch-descriptor");
|
|
55
|
+
const port_arg_1 = require("./port-arg");
|
|
51
56
|
const bar_server_probe_1 = require("./bar-server-probe");
|
|
52
57
|
Object.defineProperty(exports, "defaultFindRunningServer", { enumerable: true, get: function () { return bar_server_probe_1.defaultFindRunningServer; } });
|
|
53
58
|
Object.defineProperty(exports, "resolveBarPort", { enumerable: true, get: function () { return bar_server_probe_1.resolveBarPort; } });
|
|
59
|
+
const bar_process_control_1 = require("./bar-process-control");
|
|
54
60
|
const BAR_PROBE_TIMEOUT_MS = 1500;
|
|
55
61
|
const MAX_BAR_PROBE_RESPONSE_BYTES = 8192;
|
|
56
62
|
// ---------------------------------------------------------------------------
|
|
@@ -122,13 +128,9 @@ async function defaultWaitForServerLive(baseUrl) {
|
|
|
122
128
|
settled = true;
|
|
123
129
|
clearTimeout(absoluteDeadline);
|
|
124
130
|
socket.destroy();
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
resolve({ statusCode, tokenMatched: (0, bar_auth_token_1.isMatchingBarAuthProof)(token, nonce, proof) });
|
|
129
|
-
return;
|
|
130
|
-
}
|
|
131
|
-
resolve({ statusCode, tokenMatched: false });
|
|
131
|
+
const echoMatch = headerSection.match(new RegExp(`${bar_auth_token_1.BAR_AUTH_TOKEN_HEADER}:\\s*([^\\r\\n]+)`, 'i'));
|
|
132
|
+
const proof = echoMatch ? echoMatch[1].trim() : '';
|
|
133
|
+
resolve({ statusCode, tokenMatched: (0, bar_auth_token_1.isMatchingBarAuthProof)(token, nonce, proof) });
|
|
132
134
|
};
|
|
133
135
|
const socket = net.connect({ host: url.hostname.replace(/^\[|\]$/g, ''), port: Number(url.port) }, () => {
|
|
134
136
|
// Do NOT include the token in the request; only send a fresh nonce so
|
|
@@ -145,7 +147,7 @@ async function defaultWaitForServerLive(baseUrl) {
|
|
|
145
147
|
const statusMatch = rawResponse.match(/^HTTP\/\d(?:\.\d)?\s+(\d{3})/);
|
|
146
148
|
if (statusMatch) {
|
|
147
149
|
const code = Number(statusMatch[1]);
|
|
148
|
-
if (code !== 200) {
|
|
150
|
+
if (code !== 200 && code !== 401 && code !== 403) {
|
|
149
151
|
finish(code, rawResponse);
|
|
150
152
|
return;
|
|
151
153
|
}
|
|
@@ -168,7 +170,7 @@ async function defaultWaitForServerLive(baseUrl) {
|
|
|
168
170
|
const { statusCode, tokenMatched } = await probe();
|
|
169
171
|
if (statusCode === 200 && tokenMatched)
|
|
170
172
|
return;
|
|
171
|
-
if (statusCode !== null && isAuthRequiredStatus(statusCode)) {
|
|
173
|
+
if (statusCode !== null && isAuthRequiredStatus(statusCode) && tokenMatched) {
|
|
172
174
|
throw new BarServerAuthRequiredError(baseUrl, statusCode);
|
|
173
175
|
}
|
|
174
176
|
await new Promise((resolve) => setTimeout(resolve, INTERVAL_MS));
|
|
@@ -195,17 +197,34 @@ const DEFAULT_APP_INSTALL_PATH = path.join(os.homedir(), 'Applications', 'CCS Ba
|
|
|
195
197
|
// Implementation
|
|
196
198
|
// ---------------------------------------------------------------------------
|
|
197
199
|
async function handleBarLaunch(_args, deps = {}) {
|
|
200
|
+
const argError = (0, port_arg_1.validatePortArgs)(_args);
|
|
201
|
+
if (argError !== null) {
|
|
202
|
+
console.error(`[X] ${argError}`);
|
|
203
|
+
process.exitCode = 1;
|
|
204
|
+
return;
|
|
205
|
+
}
|
|
198
206
|
const ccsDir = (deps.getCcsDir ?? defaultGetCcsDir)();
|
|
199
207
|
const openApp = deps.openApp ?? defaultOpenApp;
|
|
200
208
|
const appInstallPath = deps.appInstallPath ?? DEFAULT_APP_INSTALL_PATH;
|
|
201
209
|
const getPortFn = deps.getPort ?? defaultGetPort;
|
|
202
210
|
const spawnDetachedServer = deps.spawnDetachedServer ?? defaultSpawnDetachedServer;
|
|
203
211
|
const waitForServerLive = deps.waitForServerLive ?? defaultWaitForServerLive;
|
|
212
|
+
const createLaunchDescriptor = deps.createLaunchDescriptor ?? launch_descriptor_1.createBarLaunchDescriptor;
|
|
204
213
|
const writeLaunchDescriptor = deps.writeLaunchDescriptor ?? defaultWriteLaunchDescriptor;
|
|
214
|
+
const stopDetachedServer = deps.stopDetachedServer ?? bar_process_control_1.stopDetachedBarServer;
|
|
205
215
|
// Wire findRunningServer after ccsDir is resolved.
|
|
206
216
|
const findRunningServer = deps.findRunningServer ?? (() => (0, bar_server_probe_1.defaultFindRunningServer)(ccsDir));
|
|
207
217
|
const barJsonPath = (0, bar_paths_1.getBarJsonPath)(ccsDir);
|
|
208
218
|
const launchJsonPath = (0, bar_paths_1.getLaunchJsonPath)(ccsDir);
|
|
219
|
+
// 0. Parse --port. A present-but-invalid value is a hard error (silently
|
|
220
|
+
// launching on a different port than the user asked for is worse).
|
|
221
|
+
const portFlag = (0, port_arg_1.parsePortFlag)(_args);
|
|
222
|
+
if (portFlag.present && portFlag.port === null) {
|
|
223
|
+
console.error('[X] Invalid --port value. Use a number between 1 and 65535.');
|
|
224
|
+
process.exitCode = 1;
|
|
225
|
+
return;
|
|
226
|
+
}
|
|
227
|
+
const requestedPort = portFlag.port;
|
|
209
228
|
// 1. Probe for an already-running server.
|
|
210
229
|
let running = null;
|
|
211
230
|
try {
|
|
@@ -214,65 +233,137 @@ async function handleBarLaunch(_args, deps = {}) {
|
|
|
214
233
|
catch {
|
|
215
234
|
/* any probe error counts as null */
|
|
216
235
|
}
|
|
236
|
+
let movingFrom = null;
|
|
237
|
+
let port = null;
|
|
217
238
|
if (running !== null) {
|
|
218
239
|
if (running.authRequired) {
|
|
219
240
|
console.error(`[X] CCS Bar cannot launch while dashboard authentication protects ${running.baseUrl}.`);
|
|
220
241
|
console.error('[i] Disable dashboard authentication for CCS Bar or start the dashboard manually.');
|
|
221
242
|
return;
|
|
222
243
|
}
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
244
|
+
if (requestedPort === null || running.port === requestedPort) {
|
|
245
|
+
// Reuse the live server — write bar.json and open the app.
|
|
246
|
+
const barJson = {
|
|
247
|
+
baseUrl: running.baseUrl,
|
|
248
|
+
port: running.port,
|
|
249
|
+
authMode: 'loopback',
|
|
250
|
+
};
|
|
251
|
+
try {
|
|
252
|
+
fs.mkdirSync(ccsDir, { recursive: true });
|
|
253
|
+
fs.writeFileSync(barJsonPath, JSON.stringify(barJson, null, 2));
|
|
254
|
+
}
|
|
255
|
+
catch (err) {
|
|
256
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
257
|
+
console.error(`[X] Failed to write bar.json: ${msg}`);
|
|
258
|
+
return;
|
|
259
|
+
}
|
|
260
|
+
console.log(`[OK] Reusing running CCS web-server at ${running.baseUrl}`);
|
|
261
|
+
console.log(`[i] Discovery file written: ${barJsonPath}`);
|
|
262
|
+
await _openAppWithFallback(appInstallPath, openApp);
|
|
263
|
+
return;
|
|
264
|
+
}
|
|
265
|
+
// Explicit --port that differs from the running server: preflight the
|
|
266
|
+
// destination before disrupting the healthy current service.
|
|
267
|
+
console.log(`[i] CCS Bar server is running on port ${running.port}; moving to port ${requestedPort}...`);
|
|
268
|
+
if (requestedPort === null)
|
|
269
|
+
return;
|
|
229
270
|
try {
|
|
230
|
-
|
|
231
|
-
|
|
271
|
+
const availablePort = await getPortFn({ port: [requestedPort], host: '127.0.0.1' });
|
|
272
|
+
if (availablePort !== requestedPort) {
|
|
273
|
+
console.error(`[X] Port ${requestedPort} is already in use by another process.`);
|
|
274
|
+
console.error('[i] The existing CCS Bar server was left running.');
|
|
275
|
+
process.exitCode = 1;
|
|
276
|
+
return;
|
|
277
|
+
}
|
|
278
|
+
port = requestedPort;
|
|
232
279
|
}
|
|
233
280
|
catch (err) {
|
|
234
281
|
const msg = err instanceof Error ? err.message : String(err);
|
|
235
|
-
console.error(`[X]
|
|
282
|
+
console.error(`[X] Could not preflight port ${requestedPort}: ${msg}`);
|
|
283
|
+
console.error('[i] The existing CCS Bar server was left running.');
|
|
284
|
+
process.exitCode = 1;
|
|
236
285
|
return;
|
|
237
286
|
}
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
287
|
+
try {
|
|
288
|
+
await stopDetachedServer(ccsDir);
|
|
289
|
+
}
|
|
290
|
+
catch (err) {
|
|
291
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
292
|
+
console.error(`[X] Could not safely stop the running server: ${msg}`);
|
|
293
|
+
console.error('[i] Recovery state was preserved; resolve the stop error, then retry.');
|
|
294
|
+
process.exitCode = 1;
|
|
295
|
+
return;
|
|
296
|
+
}
|
|
297
|
+
movingFrom = running;
|
|
298
|
+
// Fall through to the fresh-start path below.
|
|
242
299
|
}
|
|
243
|
-
// 2. No live server — pick a port, write/refresh
|
|
244
|
-
//
|
|
245
|
-
|
|
300
|
+
// 2. No live server (or moving ports) — pick a port, write/refresh
|
|
301
|
+
// launch.json, spawn detached.
|
|
302
|
+
// 2a. Pick a free port. An explicit --port must be honored exactly; without
|
|
303
|
+
// it, the port recorded in bar.json is preferred so the server keeps
|
|
304
|
+
// coming back on the port the user last chose (sticky port).
|
|
246
305
|
try {
|
|
247
|
-
|
|
306
|
+
if (port !== null) {
|
|
307
|
+
// Destination was already preflighted before stopping the prior server.
|
|
308
|
+
}
|
|
309
|
+
else if (requestedPort !== null) {
|
|
310
|
+
const got = await getPortFn({ port: [requestedPort], host: '127.0.0.1' });
|
|
311
|
+
if (got !== requestedPort) {
|
|
312
|
+
console.error(`[X] Port ${requestedPort} is already in use by another process.`);
|
|
313
|
+
console.error('[i] Choose a different port or free it, then retry.');
|
|
314
|
+
process.exitCode = 1;
|
|
315
|
+
return;
|
|
316
|
+
}
|
|
317
|
+
port = requestedPort;
|
|
318
|
+
}
|
|
319
|
+
else {
|
|
320
|
+
const stickyPort = (0, bar_server_probe_1.resolveBarPort)(ccsDir);
|
|
321
|
+
const base = [3000, 3001, 3002, 8000, 8080];
|
|
322
|
+
const candidates = stickyPort !== null ? [stickyPort, ...base.filter((p) => p !== stickyPort)] : base;
|
|
323
|
+
port = await getPortFn({ port: candidates, host: '127.0.0.1' });
|
|
324
|
+
}
|
|
248
325
|
}
|
|
249
326
|
catch (err) {
|
|
250
327
|
const msg = err instanceof Error ? err.message : String(err);
|
|
251
328
|
console.error(`[X] Could not find a free port: ${msg}`);
|
|
252
329
|
return;
|
|
253
330
|
}
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
}
|
|
259
|
-
catch (err) {
|
|
260
|
-
// Non-fatal — the Swift app falls back to resolving `ccs` via PATH.
|
|
261
|
-
const msg = err instanceof Error ? err.message : String(err);
|
|
262
|
-
console.error(`[!] Could not write launch.json: ${msg}`);
|
|
331
|
+
if (port === null) {
|
|
332
|
+
console.error('[X] Could not resolve a valid CCS Bar port.');
|
|
333
|
+
process.exitCode = 1;
|
|
334
|
+
return;
|
|
263
335
|
}
|
|
264
|
-
|
|
336
|
+
const selectedPort = port;
|
|
337
|
+
const rollbackPriorServer = async () => {
|
|
338
|
+
if (movingFrom === null)
|
|
339
|
+
return;
|
|
340
|
+
try {
|
|
341
|
+
spawnDetachedServer(movingFrom.port, serveLogPath);
|
|
342
|
+
await waitForServerLive(movingFrom.baseUrl);
|
|
343
|
+
console.log(`[OK] Restored CCS Bar server at ${movingFrom.baseUrl}.`);
|
|
344
|
+
}
|
|
345
|
+
catch (rollbackErr) {
|
|
346
|
+
const message = rollbackErr instanceof Error ? rollbackErr.message : String(rollbackErr);
|
|
347
|
+
console.error(`[X] Failed to restore CCS Bar at ${movingFrom.baseUrl}: ${message}`);
|
|
348
|
+
console.error('[i] Existing discovery and launch state was preserved for manual recovery.');
|
|
349
|
+
}
|
|
350
|
+
};
|
|
351
|
+
// 2b. Spawn the detached server. launch.json is not replaced until the new
|
|
352
|
+
// server is proven live, preserving the prior recovery path during a move.
|
|
265
353
|
const serveLogPath = (0, bar_paths_1.getServeLogPath)(ccsDir);
|
|
266
|
-
const baseUrl = `http://127.0.0.1:${
|
|
354
|
+
const baseUrl = `http://127.0.0.1:${selectedPort}`;
|
|
267
355
|
let spawnedChild;
|
|
268
356
|
try {
|
|
269
357
|
fs.mkdirSync((0, bar_paths_1.getBarDir)(ccsDir), { recursive: true });
|
|
270
|
-
spawnedChild = spawnDetachedServer(
|
|
358
|
+
spawnedChild = spawnDetachedServer(selectedPort, serveLogPath);
|
|
271
359
|
}
|
|
272
360
|
catch (err) {
|
|
273
361
|
const msg = err instanceof Error ? err.message : String(err);
|
|
274
362
|
console.error(`[X] Could not start CCS web-server: ${msg}`);
|
|
275
|
-
|
|
363
|
+
await rollbackPriorServer();
|
|
364
|
+
if (movingFrom === null)
|
|
365
|
+
console.error('[i] Run `ccs config` to start the dashboard manually.');
|
|
366
|
+
process.exitCode = 1;
|
|
276
367
|
return;
|
|
277
368
|
}
|
|
278
369
|
console.log('[i] Starting CCS Bar server...');
|
|
@@ -285,17 +376,30 @@ async function handleBarLaunch(_args, deps = {}) {
|
|
|
285
376
|
spawnedChild?.kill();
|
|
286
377
|
console.error(`[X] CCS Bar cannot launch while dashboard authentication protects ${baseUrl}.`);
|
|
287
378
|
console.error('[i] Disable dashboard authentication for CCS Bar or start the dashboard manually.');
|
|
288
|
-
return;
|
|
289
379
|
}
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
380
|
+
else {
|
|
381
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
382
|
+
console.error(`[X] Could not connect to CCS web-server: ${msg}`);
|
|
383
|
+
console.error(`[i] Check logs at ${serveLogPath}`);
|
|
384
|
+
}
|
|
385
|
+
spawnedChild?.kill();
|
|
386
|
+
await rollbackPriorServer();
|
|
387
|
+
process.exitCode = 1;
|
|
293
388
|
return;
|
|
294
389
|
}
|
|
390
|
+
// 2d. Persist the proven-good recovery descriptor.
|
|
391
|
+
try {
|
|
392
|
+
const launchDescriptor = createLaunchDescriptor({ port: selectedPort });
|
|
393
|
+
writeLaunchDescriptor(launchJsonPath, launchDescriptor);
|
|
394
|
+
}
|
|
395
|
+
catch (err) {
|
|
396
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
397
|
+
console.error(`[!] Could not write launch.json: ${msg}`);
|
|
398
|
+
}
|
|
295
399
|
// 2e. Write bar.json.
|
|
296
400
|
const barJson = {
|
|
297
401
|
baseUrl,
|
|
298
|
-
port,
|
|
402
|
+
port: selectedPort,
|
|
299
403
|
authMode: 'loopback',
|
|
300
404
|
};
|
|
301
405
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"launch-subcommand.js","sourceRoot":"","sources":["../../../src/commands/bar/launch-subcommand.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"launch-subcommand.js","sourceRoot":"","sources":["../../../src/commands/bar/launch-subcommand.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared `--port N` flag parsing for the `ccs bar` command family.
|
|
3
|
+
*
|
|
4
|
+
* `present` distinguishes "flag not given" from "flag given with a bad value"
|
|
5
|
+
* so launch can reject typos loudly instead of silently falling back to the
|
|
6
|
+
* default port list.
|
|
7
|
+
*/
|
|
8
|
+
export interface PortFlag {
|
|
9
|
+
/** True when `--port` appears in args at all. */
|
|
10
|
+
present: boolean;
|
|
11
|
+
/** The parsed port (1-65535), or null when absent or invalid. */
|
|
12
|
+
port: number | null;
|
|
13
|
+
}
|
|
14
|
+
export declare function validatePortArgs(args: string[]): string | null;
|
|
15
|
+
export declare function parsePortFlag(args: string[]): PortFlag;
|
|
16
|
+
//# sourceMappingURL=port-arg.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"port-arg.d.ts","sourceRoot":"","sources":["../../../src/commands/bar/port-arg.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,WAAW,QAAQ;IACvB,iDAAiD;IACjD,OAAO,EAAE,OAAO,CAAC;IACjB,iEAAiE;IACjE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,IAAI,CAY9D;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,QAAQ,CAUtD"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Shared `--port N` flag parsing for the `ccs bar` command family.
|
|
4
|
+
*
|
|
5
|
+
* `present` distinguishes "flag not given" from "flag given with a bad value"
|
|
6
|
+
* so launch can reject typos loudly instead of silently falling back to the
|
|
7
|
+
* default port list.
|
|
8
|
+
*/
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.parsePortFlag = exports.validatePortArgs = void 0;
|
|
11
|
+
function validatePortArgs(args) {
|
|
12
|
+
let foundPort = false;
|
|
13
|
+
for (let index = 0; index < args.length; index += 1) {
|
|
14
|
+
const arg = args[index];
|
|
15
|
+
if (arg !== '--port')
|
|
16
|
+
return `Unknown option: ${arg}`;
|
|
17
|
+
if (foundPort)
|
|
18
|
+
return 'Duplicate option: --port';
|
|
19
|
+
foundPort = true;
|
|
20
|
+
const raw = args[index + 1];
|
|
21
|
+
if (raw === undefined)
|
|
22
|
+
return 'Missing value for --port';
|
|
23
|
+
index += 1;
|
|
24
|
+
}
|
|
25
|
+
return null;
|
|
26
|
+
}
|
|
27
|
+
exports.validatePortArgs = validatePortArgs;
|
|
28
|
+
function parsePortFlag(args) {
|
|
29
|
+
const idx = args.indexOf('--port');
|
|
30
|
+
if (idx === -1)
|
|
31
|
+
return { present: false, port: null };
|
|
32
|
+
const raw = args[idx + 1];
|
|
33
|
+
if (raw === undefined || !/^[1-9]\d{0,4}$/.test(raw)) {
|
|
34
|
+
return { present: true, port: null };
|
|
35
|
+
}
|
|
36
|
+
const n = Number(raw);
|
|
37
|
+
const valid = Number.isSafeInteger(n) && n <= 65535;
|
|
38
|
+
return { present: true, port: valid ? n : null };
|
|
39
|
+
}
|
|
40
|
+
exports.parsePortFlag = parsePortFlag;
|
|
41
|
+
//# sourceMappingURL=port-arg.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"port-arg.js","sourceRoot":"","sources":["../../../src/commands/bar/port-arg.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AASH,SAAgB,gBAAgB,CAAC,IAAc;IAC7C,IAAI,SAAS,GAAG,KAAK,CAAC;IACtB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACpD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QACxB,IAAI,GAAG,KAAK,QAAQ;YAAE,OAAO,mBAAmB,GAAG,EAAE,CAAC;QACtD,IAAI,SAAS;YAAE,OAAO,0BAA0B,CAAC;QACjD,SAAS,GAAG,IAAI,CAAC;QACjB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QAC5B,IAAI,GAAG,KAAK,SAAS;YAAE,OAAO,0BAA0B,CAAC;QACzD,KAAK,IAAI,CAAC,CAAC;IACb,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAZD,4CAYC;AAED,SAAgB,aAAa,CAAC,IAAc;IAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACnC,IAAI,GAAG,KAAK,CAAC,CAAC;QAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACtD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;IAC1B,IAAI,GAAG,KAAK,SAAS,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACrD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACvC,CAAC;IACD,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IACtB,MAAM,KAAK,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC;IACpD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AACnD,CAAC;AAVD,sCAUC"}
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
* Accepts: --port N (honours a port the launcher pre-selected via getPort).
|
|
13
13
|
*/
|
|
14
14
|
import type { DashboardInfo } from './bar-server-probe';
|
|
15
|
+
import type { BarServerProcessRecord } from './bar-process-control';
|
|
15
16
|
export interface ServeDeps {
|
|
16
17
|
/** Probe candidate ports for a running CCS server. Never throws. */
|
|
17
18
|
findRunningServer: () => Promise<DashboardInfo | null>;
|
|
@@ -38,10 +39,14 @@ export interface ServeDeps {
|
|
|
38
39
|
writeFile: (filePath: string, content: string) => void;
|
|
39
40
|
/** Remove a file if it exists (for cleanup on exit). */
|
|
40
41
|
removeFile: (filePath: string) => void;
|
|
42
|
+
/** Remove server.pid only if it still identifies this process. */
|
|
43
|
+
removeProcessRecordIfOwned: (filePath: string, record: BarServerProcessRecord) => void;
|
|
41
44
|
/** Register process signal handlers. */
|
|
42
45
|
onSignal: (signal: 'SIGINT' | 'SIGTERM', handler: () => void) => void;
|
|
43
46
|
/** Exit the process. */
|
|
44
47
|
exit: (code: number) => never;
|
|
48
|
+
/** Read a stable OS birth marker so later stop commands cannot signal a reused PID. */
|
|
49
|
+
getProcessBirthIdentity: (pid: number) => string | null;
|
|
45
50
|
}
|
|
46
51
|
export declare function handleBarServe(args: string[], deps?: Partial<ServeDeps>): Promise<void>;
|
|
47
52
|
//# sourceMappingURL=serve-subcommand.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serve-subcommand.d.ts","sourceRoot":"","sources":["../../../src/commands/bar/serve-subcommand.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;
|
|
1
|
+
{"version":3,"file":"serve-subcommand.d.ts","sourceRoot":"","sources":["../../../src/commands/bar/serve-subcommand.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAQH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAOxD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAMpE,MAAM,WAAW,SAAS;IACxB,oEAAoE;IACpE,iBAAiB,EAAE,MAAM,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC;IACvD;;;;OAIG;IACH,WAAW,EAAE,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC;IAC9E;;;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,8CAA8C;IAC9C,SAAS,EAAE,MAAM,MAAM,CAAC;IACxB,oDAAoD;IACpD,SAAS,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACvD,wDAAwD;IACxD,UAAU,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,kEAAkE;IAClE,0BAA0B,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,sBAAsB,KAAK,IAAI,CAAC;IACvF,wCAAwC;IACxC,QAAQ,EAAE,CAAC,MAAM,EAAE,QAAQ,GAAG,SAAS,EAAE,OAAO,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;IACtE,wBAAwB;IACxB,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,KAAK,CAAC;IAC9B,uFAAuF;IACvF,uBAAuB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;CACzD;AAyCD,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,GAAE,OAAO,CAAC,SAAS,CAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA0IjG"}
|
|
@@ -42,6 +42,8 @@ const path = __importStar(require("path"));
|
|
|
42
42
|
const config_loader_facade_1 = require("../../config/config-loader-facade");
|
|
43
43
|
const bar_paths_1 = require("./bar-paths");
|
|
44
44
|
const bar_server_probe_1 = require("./bar-server-probe");
|
|
45
|
+
const port_arg_1 = require("./port-arg");
|
|
46
|
+
const bar_process_control_1 = require("./bar-process-control");
|
|
45
47
|
// ---------------------------------------------------------------------------
|
|
46
48
|
// Default implementations
|
|
47
49
|
// ---------------------------------------------------------------------------
|
|
@@ -61,14 +63,6 @@ function defaultWriteFile(filePath, content) {
|
|
|
61
63
|
fs.mkdirSync(path.dirname(filePath), { recursive: true });
|
|
62
64
|
fs.writeFileSync(filePath, content);
|
|
63
65
|
}
|
|
64
|
-
function defaultRemoveFile(filePath) {
|
|
65
|
-
try {
|
|
66
|
-
fs.unlinkSync(filePath);
|
|
67
|
-
}
|
|
68
|
-
catch {
|
|
69
|
-
/* ignore — file may already be gone */
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
66
|
function defaultOnSignal(signal, handler) {
|
|
73
67
|
process.on(signal, handler);
|
|
74
68
|
}
|
|
@@ -79,28 +73,24 @@ function defaultGetCcsDir() {
|
|
|
79
73
|
return (0, config_loader_facade_1.getCcsDir)();
|
|
80
74
|
}
|
|
81
75
|
// ---------------------------------------------------------------------------
|
|
82
|
-
// Argument parsing helpers
|
|
83
|
-
// ---------------------------------------------------------------------------
|
|
84
|
-
function parsePortArg(args) {
|
|
85
|
-
const idx = args.indexOf('--port');
|
|
86
|
-
if (idx !== -1 && idx + 1 < args.length) {
|
|
87
|
-
const n = parseInt(args[idx + 1], 10);
|
|
88
|
-
return Number.isFinite(n) && n > 0 && n < 65536 ? n : null;
|
|
89
|
-
}
|
|
90
|
-
return null;
|
|
91
|
-
}
|
|
92
|
-
// ---------------------------------------------------------------------------
|
|
93
76
|
// Implementation
|
|
94
77
|
// ---------------------------------------------------------------------------
|
|
95
78
|
async function handleBarServe(args, deps = {}) {
|
|
79
|
+
const argError = (0, port_arg_1.validatePortArgs)(args);
|
|
80
|
+
if (argError !== null) {
|
|
81
|
+
console.error(`[X] ${argError}`);
|
|
82
|
+
(deps.exit ?? defaultExit)(1);
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
96
85
|
const ccsDir = (deps.getCcsDir ?? defaultGetCcsDir)();
|
|
97
86
|
const findRunningServer = deps.findRunningServer ?? (() => (0, bar_server_probe_1.defaultFindRunningServer)(ccsDir));
|
|
98
87
|
const startServerFn = deps.startServer ?? defaultStartServer;
|
|
99
88
|
const getPortFn = deps.getPort ?? defaultGetPort;
|
|
100
89
|
const writeFile = deps.writeFile ?? defaultWriteFile;
|
|
101
|
-
const
|
|
90
|
+
const removeProcessRecordIfOwned = deps.removeProcessRecordIfOwned ?? bar_process_control_1.removeBarServerProcessRecordIfOwned;
|
|
102
91
|
const onSignal = deps.onSignal ?? defaultOnSignal;
|
|
103
92
|
const exit = deps.exit ?? defaultExit;
|
|
93
|
+
const readProcessBirthIdentity = deps.getProcessBirthIdentity ?? bar_process_control_1.getProcessBirthIdentity;
|
|
104
94
|
const barJsonPath = (0, bar_paths_1.getBarJsonPath)(ccsDir);
|
|
105
95
|
const serverPidPath = (0, bar_paths_1.getServerPidPath)(ccsDir);
|
|
106
96
|
// 1. Reuse-or-start: probe candidate ports first.
|
|
@@ -131,13 +121,24 @@ async function handleBarServe(args, deps = {}) {
|
|
|
131
121
|
}
|
|
132
122
|
// 2. No live server found — start one.
|
|
133
123
|
// Honor --port N from the launcher (it pre-selected via getPort to avoid races).
|
|
134
|
-
|
|
124
|
+
// Without it, prefer the port recorded in bar.json so the server keeps coming
|
|
125
|
+
// back on the port the user last chose (sticky port).
|
|
126
|
+
const portFlag = (0, port_arg_1.parsePortFlag)(args);
|
|
127
|
+
if (portFlag.present && portFlag.port === null) {
|
|
128
|
+
console.error('[X] Invalid --port value. Use an integer between 1 and 65535.');
|
|
129
|
+
exit(1);
|
|
130
|
+
return;
|
|
131
|
+
}
|
|
132
|
+
const requestedPort = portFlag.port;
|
|
135
133
|
let port;
|
|
136
134
|
if (requestedPort !== null) {
|
|
137
135
|
port = requestedPort;
|
|
138
136
|
}
|
|
139
137
|
else {
|
|
140
|
-
|
|
138
|
+
const stickyPort = (0, bar_server_probe_1.resolveBarPort)(ccsDir);
|
|
139
|
+
const base = [3000, 3001, 3002, 8000, 8080];
|
|
140
|
+
const candidates = stickyPort !== null ? [stickyPort, ...base.filter((p) => p !== stickyPort)] : base;
|
|
141
|
+
port = await getPortFn({ port: candidates, host: '127.0.0.1' });
|
|
141
142
|
}
|
|
142
143
|
// TypeScript cannot infer that exit(1) is `never` when it is injected as a dep,
|
|
143
144
|
// so we use a definite-assignment assertion on dashboardInfo.
|
|
@@ -150,33 +151,50 @@ async function handleBarServe(args, deps = {}) {
|
|
|
150
151
|
console.error(`[X] Failed to start CCS server: ${msg}`);
|
|
151
152
|
exit(1);
|
|
152
153
|
}
|
|
153
|
-
// 3.
|
|
154
|
+
// 3. Publish the owned process record before discovery. Stop cleanup uses
|
|
155
|
+
// server.pid as the ownership barrier, so discovery must never appear first.
|
|
154
156
|
const barJson = {
|
|
155
157
|
baseUrl: dashboardInfo.baseUrl,
|
|
156
158
|
port: dashboardInfo.port,
|
|
157
159
|
authMode: 'loopback',
|
|
158
160
|
};
|
|
161
|
+
const birthIdentity = readProcessBirthIdentity(process.pid);
|
|
162
|
+
if (birthIdentity === null) {
|
|
163
|
+
console.error('[X] Failed to record CCS Bar process identity; stopping unmanaged server.');
|
|
164
|
+
exit(1);
|
|
165
|
+
return;
|
|
166
|
+
}
|
|
167
|
+
const processRecord = { pid: process.pid, birthIdentity };
|
|
159
168
|
try {
|
|
160
|
-
writeFile(
|
|
169
|
+
writeFile(serverPidPath, (0, bar_process_control_1.serializeBarServerProcessRecord)(processRecord));
|
|
161
170
|
}
|
|
162
171
|
catch (err) {
|
|
163
172
|
const msg = err instanceof Error ? err.message : String(err);
|
|
164
|
-
console.error(`[X] Failed to write
|
|
173
|
+
console.error(`[X] Failed to write server.pid: ${msg}`);
|
|
165
174
|
exit(1);
|
|
175
|
+
return;
|
|
166
176
|
}
|
|
167
177
|
try {
|
|
168
|
-
writeFile(
|
|
178
|
+
writeFile(barJsonPath, JSON.stringify(barJson, null, 2));
|
|
169
179
|
}
|
|
170
180
|
catch (err) {
|
|
171
|
-
|
|
181
|
+
try {
|
|
182
|
+
removeProcessRecordIfOwned(serverPidPath, processRecord);
|
|
183
|
+
}
|
|
184
|
+
catch (cleanupErr) {
|
|
185
|
+
const cleanupMessage = cleanupErr instanceof Error ? cleanupErr.message : String(cleanupErr);
|
|
186
|
+
console.error(`[!] Failed to roll back server.pid: ${cleanupMessage}`);
|
|
187
|
+
}
|
|
172
188
|
const msg = err instanceof Error ? err.message : String(err);
|
|
173
|
-
console.error(`[
|
|
189
|
+
console.error(`[X] Failed to write bar.json: ${msg}`);
|
|
190
|
+
exit(1);
|
|
191
|
+
return;
|
|
174
192
|
}
|
|
175
193
|
console.log(`[OK] CCS Bar server started at ${dashboardInfo.baseUrl}`);
|
|
176
194
|
console.log(`[i] PID ${process.pid} — stop with \`ccs bar stop\``);
|
|
177
195
|
// 4. Clean shutdown on SIGINT / SIGTERM.
|
|
178
196
|
const shutdown = () => {
|
|
179
|
-
|
|
197
|
+
removeProcessRecordIfOwned(serverPidPath, processRecord);
|
|
180
198
|
// bar.json is intentionally left in place on clean shutdown so
|
|
181
199
|
// the Swift app self-heal poll can detect the server is gone via
|
|
182
200
|
// the liveness check, not a stale discovery file.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serve-subcommand.js","sourceRoot":"","sources":["../../../src/commands/bar/serve-subcommand.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,uCAAyB;AACzB,2CAA6B;AAC7B,4EAA8D;AAC9D,2CAA+D;AAC/D,
|
|
1
|
+
{"version":3,"file":"serve-subcommand.js","sourceRoot":"","sources":["../../../src/commands/bar/serve-subcommand.ts"],"names":[],"mappings":"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"}
|