@kaitranntt/ccs 7.79.1-dev.9 → 8.0.0-dev.1
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/bin/codex-runtime-router.d.ts.map +1 -1
- package/dist/bin/codex-runtime-router.js +38 -12
- package/dist/bin/codex-runtime-router.js.map +1 -1
- package/dist/ccs.js +2 -1
- package/dist/ccs.js.map +1 -1
- package/dist/cliproxy/ai-providers/codex-plan-compatibility.js +2 -2
- package/dist/cliproxy/ai-providers/codex-plan-compatibility.js.map +1 -1
- package/dist/cliproxy/ai-providers/codex-reasoning-proxy.d.ts +2 -2
- package/dist/cliproxy/ai-providers/codex-reasoning-proxy.d.ts.map +1 -1
- package/dist/cliproxy/ai-providers/codex-reasoning-proxy.js +16 -8
- package/dist/cliproxy/ai-providers/codex-reasoning-proxy.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/ai-providers/model-id-normalizer.js +1 -1
- package/dist/cliproxy/ai-providers/model-id-normalizer.js.map +1 -1
- package/dist/cliproxy/auth/oauth-handler.d.ts +13 -1
- package/dist/cliproxy/auth/oauth-handler.d.ts.map +1 -1
- package/dist/cliproxy/auth/oauth-handler.js +111 -34
- package/dist/cliproxy/auth/oauth-handler.js.map +1 -1
- package/dist/cliproxy/auth/oauth-trace/redactor.d.ts.map +1 -1
- package/dist/cliproxy/auth/oauth-trace/redactor.js +9 -1
- package/dist/cliproxy/auth/oauth-trace/redactor.js.map +1 -1
- package/dist/cliproxy/config/generator.d.ts.map +1 -1
- package/dist/cliproxy/config/generator.js +5 -2
- package/dist/cliproxy/config/generator.js.map +1 -1
- package/dist/cliproxy/config/thinking-config.js +6 -6
- package/dist/cliproxy/config/thinking-config.js.map +1 -1
- package/dist/cliproxy/executor/env-resolver.js +1 -1
- package/dist/cliproxy/executor/env-resolver.js.map +1 -1
- package/dist/cliproxy/executor/session-bridge.d.ts.map +1 -1
- package/dist/cliproxy/executor/session-bridge.js +11 -8
- package/dist/cliproxy/executor/session-bridge.js.map +1 -1
- package/dist/cliproxy/quota/quota-fetcher-claude.d.ts.map +1 -1
- package/dist/cliproxy/quota/quota-fetcher-claude.js +35 -4
- package/dist/cliproxy/quota/quota-fetcher-claude.js.map +1 -1
- package/dist/cliproxy/quota/quota-manager.d.ts +1 -0
- package/dist/cliproxy/quota/quota-manager.d.ts.map +1 -1
- package/dist/cliproxy/quota/quota-manager.js +53 -2
- package/dist/cliproxy/quota/quota-manager.js.map +1 -1
- package/dist/cliproxy/services/oauth-usage-log-transformer.d.ts.map +1 -1
- package/dist/cliproxy/services/oauth-usage-log-transformer.js +5 -0
- package/dist/cliproxy/services/oauth-usage-log-transformer.js.map +1 -1
- package/dist/codex-auth/codex-profile-resources.d.ts +6 -0
- package/dist/codex-auth/codex-profile-resources.d.ts.map +1 -0
- package/dist/codex-auth/codex-profile-resources.js +119 -0
- package/dist/codex-auth/codex-profile-resources.js.map +1 -0
- package/dist/codex-auth/commands/create-command.d.ts.map +1 -1
- package/dist/codex-auth/commands/create-command.js +20 -6
- package/dist/codex-auth/commands/create-command.js.map +1 -1
- package/dist/codex-auth/index.d.ts +1 -0
- package/dist/codex-auth/index.d.ts.map +1 -1
- package/dist/codex-auth/index.js +4 -1
- package/dist/codex-auth/index.js.map +1 -1
- package/dist/commands/cliproxy/variant-subcommand.js +1 -1
- package/dist/commands/cliproxy/variant-subcommand.js.map +1 -1
- package/dist/commands/command-catalog.d.ts +1 -1
- package/dist/commands/command-catalog.d.ts.map +1 -1
- package/dist/commands/command-catalog.js +10 -1
- package/dist/commands/command-catalog.js.map +1 -1
- package/dist/commands/completion-backend.d.ts.map +1 -1
- package/dist/commands/completion-backend.js +2 -0
- package/dist/commands/completion-backend.js.map +1 -1
- package/dist/commands/config-command.d.ts +2 -0
- package/dist/commands/config-command.d.ts.map +1 -1
- package/dist/commands/config-command.js +31 -20
- package/dist/commands/config-command.js.map +1 -1
- package/dist/commands/docker/finalize-key-rotation-subcommand.d.ts +2 -0
- package/dist/commands/docker/finalize-key-rotation-subcommand.d.ts.map +1 -0
- package/dist/commands/docker/finalize-key-rotation-subcommand.js +79 -0
- package/dist/commands/docker/finalize-key-rotation-subcommand.js.map +1 -0
- package/dist/commands/docker/help-subcommand.d.ts.map +1 -1
- package/dist/commands/docker/help-subcommand.js +6 -0
- package/dist/commands/docker/help-subcommand.js.map +1 -1
- package/dist/commands/docker/index.d.ts.map +1 -1
- package/dist/commands/docker/index.js +4 -0
- package/dist/commands/docker/index.js.map +1 -1
- package/dist/commands/docker/show-key-subcommand.d.ts +2 -0
- package/dist/commands/docker/show-key-subcommand.d.ts.map +1 -0
- package/dist/commands/docker/show-key-subcommand.js +96 -0
- package/dist/commands/docker/show-key-subcommand.js.map +1 -0
- package/dist/commands/docker/up-subcommand.d.ts.map +1 -1
- package/dist/commands/docker/up-subcommand.js +4 -0
- package/dist/commands/docker/up-subcommand.js.map +1 -1
- package/dist/commands/persist-command.d.ts.map +1 -1
- package/dist/commands/persist-command.js +77 -5
- package/dist/commands/persist-command.js.map +1 -1
- package/dist/docker/docker-bootstrap.d.ts +1 -1
- package/dist/docker/docker-bootstrap.d.ts.map +1 -1
- package/dist/docker/docker-bootstrap.js +99 -3
- package/dist/docker/docker-bootstrap.js.map +1 -1
- package/dist/docker/docker-executor.d.ts +3 -0
- package/dist/docker/docker-executor.d.ts.map +1 -1
- package/dist/docker/docker-executor.js +53 -0
- package/dist/docker/docker-executor.js.map +1 -1
- package/dist/docker/docker-key-rotation.d.ts +48 -0
- package/dist/docker/docker-key-rotation.d.ts.map +1 -0
- package/dist/docker/docker-key-rotation.js +179 -0
- package/dist/docker/docker-key-rotation.js.map +1 -0
- package/dist/management/checks/config-check.d.ts.map +1 -1
- package/dist/management/checks/config-check.js +10 -1
- package/dist/management/checks/config-check.js.map +1 -1
- package/dist/management/doctor.d.ts +1 -0
- package/dist/management/doctor.d.ts.map +1 -1
- package/dist/management/doctor.js +23 -0
- package/dist/management/doctor.js.map +1 -1
- package/dist/proxy/proxy-daemon.d.ts.map +1 -1
- package/dist/proxy/proxy-daemon.js +15 -3
- package/dist/proxy/proxy-daemon.js.map +1 -1
- package/dist/proxy/server/messages-route.d.ts.map +1 -1
- package/dist/proxy/server/messages-route.js +27 -1
- package/dist/proxy/server/messages-route.js.map +1 -1
- package/dist/shared/claude-extension-setup.d.ts.map +1 -1
- package/dist/shared/claude-extension-setup.js +21 -1
- package/dist/shared/claude-extension-setup.js.map +1 -1
- package/dist/shared/stale-codex-translator-settings.d.ts +4 -0
- package/dist/shared/stale-codex-translator-settings.d.ts.map +1 -0
- package/dist/shared/stale-codex-translator-settings.js +35 -0
- package/dist/shared/stale-codex-translator-settings.js.map +1 -0
- package/dist/targets/codex-adapter.d.ts.map +1 -1
- package/dist/targets/codex-adapter.js +64 -5
- package/dist/targets/codex-adapter.js.map +1 -1
- package/dist/ui/assets/{Trans-J6qQqjkU.js → Trans-dEd8UC39.js} +1 -1
- package/dist/ui/assets/{accounts-B9Y9uOFl.js → accounts-B2THsSu_.js} +1 -1
- package/dist/ui/assets/{alert-dialog-B7gsksZn.js → alert-dialog-Vurq1xzV.js} +1 -1
- package/dist/ui/assets/{api-Cz8U6P7R.js → api-CjLfG9mL.js} +1 -1
- package/dist/ui/assets/{auth-section-C8dzvYje.js → auth-section-iGkrMaT4.js} +1 -1
- package/dist/ui/assets/{backups-section-D0dn59k8.js → backups-section-DUGG_4KP.js} +1 -1
- package/dist/ui/assets/{channels-BEmwDrRW.js → channels-CimlCc2d.js} +1 -1
- package/dist/ui/assets/{checkbox-DD0s2D_O.js → checkbox-HiMHasEB.js} +1 -1
- package/dist/ui/assets/claude-extension-B2v9bsN9.js +1 -0
- package/dist/ui/assets/{cliproxy-ai-providers-B440rPlH.js → cliproxy-ai-providers-2lI5jSHb.js} +6 -6
- package/dist/ui/assets/{cliproxy-control-panel-Bo-Y41B_.js → cliproxy-control-panel-63gDI-e5.js} +1 -1
- package/dist/ui/assets/cliproxy-fai69Vyd.js +4 -0
- package/dist/ui/assets/{codex-DPe04ol4.js → codex-i_hfI4Tv.js} +1 -1
- package/dist/ui/assets/{confirm-dialog-MQNmqmha.js → confirm-dialog-B_6SrSxL.js} +1 -1
- package/dist/ui/assets/{copilot-COZj29YU.js → copilot-BgG5x_X6.js} +2 -2
- package/dist/ui/assets/{cursor-D0occhsH.js → cursor-DF63lFcy.js} +1 -1
- package/dist/ui/assets/droid-CqlQmFtN.js +2 -0
- package/dist/ui/assets/{globalenv-section-BwuNrdbO.js → globalenv-section-CYNmD12i.js} +1 -1
- package/dist/ui/assets/{health-DjNOO9K-.js → health-7ZO5PEm9.js} +1 -1
- package/dist/ui/assets/{index-Bnzie_zG.js → index-BC5ssPfF.js} +1 -1
- package/dist/ui/assets/index-BMoGhs28.css +1 -0
- package/dist/ui/assets/{index-i2MPNni3.js → index-Bgcd4FYK.js} +1 -1
- package/dist/ui/assets/{index-CmOBelFi.js → index-CFu0saCM.js} +1 -1
- package/dist/ui/assets/index-CqsmdQoA.js +1 -0
- package/dist/ui/assets/{index-CjM3Ehb8.js → index-D3kxCuJ7.js} +1 -1
- package/dist/ui/assets/{index-CSlgRg0s.js → index-DmV9wJET.js} +3 -3
- package/dist/ui/assets/{index-Bm_0r3qk.js → index-hHb9o079.js} +1 -1
- package/dist/ui/assets/{logs-7bWvuc1l.js → logs-Dy-yZhIK.js} +1 -1
- package/dist/ui/assets/{masked-input-D_amxi96.js → masked-input-BSLeznEs.js} +1 -1
- package/dist/ui/assets/{proxy-status-widget-BkC-wCtI.js → proxy-status-widget-hRH1agF9.js} +1 -1
- package/dist/ui/assets/{raw-json-settings-editor-panel-CVP5Bjfm.js → raw-json-settings-editor-panel-Bs83yILR.js} +1 -1
- package/dist/ui/assets/{searchable-select-e5sY7o6g.js → searchable-select-pXUC_0Ih.js} +1 -1
- package/dist/ui/assets/{separator-BR5bmtI7.js → separator-FZR_61I9.js} +1 -1
- package/dist/ui/assets/{shared-CsqW2cFN.js → shared-BiIwM7--.js} +1 -1
- package/dist/ui/assets/{table-DPheAd4c.js → table-_9IusQ8G.js} +1 -1
- package/dist/ui/assets/{updates-D07RjKLJ.js → updates-ButNfJqt.js} +1 -1
- package/dist/ui/assets/{use-accounts-CWVR2NXQ.js → use-accounts-BdtI0lBv.js} +1 -1
- package/dist/ui/index.html +2 -2
- package/dist/utils/claude-subcommand-detector.d.ts +12 -3
- package/dist/utils/claude-subcommand-detector.d.ts.map +1 -1
- package/dist/utils/claude-subcommand-detector.js +59 -12
- package/dist/utils/claude-subcommand-detector.js.map +1 -1
- package/dist/web-server/routes/cliproxy-stats-routes.d.ts +8 -0
- package/dist/web-server/routes/cliproxy-stats-routes.d.ts.map +1 -1
- package/dist/web-server/routes/cliproxy-stats-routes.js +13 -26
- package/dist/web-server/routes/cliproxy-stats-routes.js.map +1 -1
- package/dist/web-server/services/cliproxy-dashboard-restart-service.d.ts +21 -0
- package/dist/web-server/services/cliproxy-dashboard-restart-service.d.ts.map +1 -0
- package/dist/web-server/services/cliproxy-dashboard-restart-service.js +49 -0
- package/dist/web-server/services/cliproxy-dashboard-restart-service.js.map +1 -0
- package/dist/web-server/services/codex-dashboard-service.d.ts.map +1 -1
- package/dist/web-server/services/codex-dashboard-service.js +30 -3
- package/dist/web-server/services/codex-dashboard-service.js.map +1 -1
- package/dist/web-server/usage/aggregator.d.ts +13 -7
- package/dist/web-server/usage/aggregator.d.ts.map +1 -1
- package/dist/web-server/usage/aggregator.js +37 -22
- package/dist/web-server/usage/aggregator.js.map +1 -1
- package/dist/web-server/usage/handlers.d.ts +1 -0
- package/dist/web-server/usage/handlers.d.ts.map +1 -1
- package/dist/web-server/usage/handlers.js +16 -8
- package/dist/web-server/usage/handlers.js.map +1 -1
- package/dist/web-server/usage/profile-filter.d.ts +13 -0
- package/dist/web-server/usage/profile-filter.d.ts.map +1 -0
- package/dist/web-server/usage/profile-filter.js +30 -0
- package/dist/web-server/usage/profile-filter.js.map +1 -0
- package/dist/web-server/usage/types.d.ts +8 -0
- package/dist/web-server/usage/types.d.ts.map +1 -1
- package/lib/mcp/ccs-browser-server.cjs +217 -12
- package/package.json +1 -1
- package/scripts/docker-dashboard-sunset-guard.js +171 -0
- package/dist/ui/assets/claude-extension-DHVBsw6b.js +0 -1
- package/dist/ui/assets/cliproxy-BMlbpAIO.js +0 -4
- package/dist/ui/assets/droid-CSaYFApd.js +0 -2
- package/dist/ui/assets/index-D9HfyuQr.js +0 -1
- package/dist/ui/assets/index-G3mgTfgR.css +0 -1
|
@@ -40,6 +40,7 @@ const web_server_1 = require("../web-server");
|
|
|
40
40
|
const shutdown_1 = require("../web-server/shutdown");
|
|
41
41
|
const service_manager_1 = require("../cliproxy/service-manager");
|
|
42
42
|
const port_manager_1 = require("../cliproxy/config/port-manager");
|
|
43
|
+
const supervisord_lifecycle_1 = require("../docker/supervisord-lifecycle");
|
|
43
44
|
const ui_1 = require("../utils/ui");
|
|
44
45
|
const named_command_router_1 = require("./named-command-router");
|
|
45
46
|
const config_dashboard_host_1 = require("./config-dashboard-host");
|
|
@@ -83,6 +84,7 @@ const defaultConfigCommandDependencies = {
|
|
|
83
84
|
startServer: web_server_1.startServer,
|
|
84
85
|
setupGracefulShutdown: shutdown_1.setupGracefulShutdown,
|
|
85
86
|
ensureCliproxyService: service_manager_1.ensureCliproxyService,
|
|
87
|
+
isRunningUnderSupervisord: supervisord_lifecycle_1.isRunningUnderSupervisord,
|
|
86
88
|
getDashboardAuthConfig: config_loader_facade_1.getDashboardAuthConfig,
|
|
87
89
|
initUI: ui_1.initUI,
|
|
88
90
|
header: ui_1.header,
|
|
@@ -128,31 +130,40 @@ async function handleConfigCommand(args, deps = defaultConfigCommandDependencies
|
|
|
128
130
|
});
|
|
129
131
|
console.log(deps.header('CCS Config Dashboard'));
|
|
130
132
|
console.log('');
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
133
|
+
const lifecyclePort = (0, port_manager_1.resolveLifecyclePort)();
|
|
134
|
+
if (deps.isRunningUnderSupervisord?.() ?? false) {
|
|
135
|
+
logger.info('cliproxy.supervisord_managed', 'Skipping direct CLIProxy startup in Docker', {
|
|
136
|
+
port: lifecyclePort,
|
|
137
|
+
});
|
|
138
|
+
console.log(deps.info(`CLIProxy is managed by supervisord on port ${lifecyclePort}`));
|
|
139
|
+
}
|
|
140
|
+
else {
|
|
141
|
+
// Ensure CLIProxy service is running for dashboard features
|
|
142
|
+
console.log(deps.info('Starting CLIProxy service...'));
|
|
143
|
+
const cliproxyResult = await deps.ensureCliproxyService(lifecyclePort, verbose);
|
|
144
|
+
logger.info('cliproxy.ensure_result', 'Config command checked CLIProxy availability', {
|
|
145
|
+
started: cliproxyResult.started,
|
|
146
|
+
alreadyRunning: cliproxyResult.alreadyRunning,
|
|
147
|
+
configRegenerated: cliproxyResult.configRegenerated,
|
|
148
|
+
port: cliproxyResult.port || null,
|
|
149
|
+
error: cliproxyResult.error || null,
|
|
150
|
+
});
|
|
151
|
+
if (cliproxyResult.started) {
|
|
152
|
+
if (cliproxyResult.alreadyRunning) {
|
|
153
|
+
console.log(deps.ok(`CLIProxy already running on port ${cliproxyResult.port}`));
|
|
154
|
+
if (cliproxyResult.configRegenerated) {
|
|
155
|
+
console.log(deps.warn('Config updated - restart CLIProxy to apply changes'));
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
else {
|
|
159
|
+
console.log(deps.ok(`CLIProxy started on port ${cliproxyResult.port}`));
|
|
146
160
|
}
|
|
147
161
|
}
|
|
148
162
|
else {
|
|
149
|
-
console.log(deps.
|
|
163
|
+
console.log(deps.warn(`CLIProxy not available: ${cliproxyResult.error}`));
|
|
164
|
+
console.log(deps.info('Dashboard will work but Control Panel/Stats may be limited'));
|
|
150
165
|
}
|
|
151
166
|
}
|
|
152
|
-
else {
|
|
153
|
-
console.log(deps.warn(`CLIProxy not available: ${cliproxyResult.error}`));
|
|
154
|
-
console.log(deps.info('Dashboard will work but Control Panel/Stats may be limited'));
|
|
155
|
-
}
|
|
156
167
|
console.log('');
|
|
157
168
|
console.log(deps.info('Starting dashboard server...'));
|
|
158
169
|
// Find available port
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-command.js","sourceRoot":"","sources":["../../src/commands/config-command.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,wDAA+B;AAC/B,gDAAwB;AACxB,8CAA4C;AAC5C,qDAA+D;AAC/D,iEAAoE;AACpE,kEAAuE;AACvE,oCAAmE;AACnE,iEAAqF;AACrF,mEAKiC;AACjC,qEAAyF;AACzF,iDAAmD;AACnD,yEAAwE;AAExE,MAAM,MAAM,GAAG,IAAA,sBAAY,EAAC,gBAAgB,CAAC,CAAC;AAE9C,MAAM,wBAAwB,GAAiC;IAC7D;QACE,IAAI,EAAE,UAAU;QAChB,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;YACrB,MAAM,EAAE,2BAA2B,EAAE,GAAG,wDAAa,2BAA2B,GAAC,CAAC;YAClF,MAAM,2BAA2B,CAAC,IAAI,CAAC,CAAC;QAC1C,CAAC;KACF;IACD;QACE,IAAI,EAAE,MAAM;QACZ,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;YACrB,MAAM,EAAE,uBAAuB,EAAE,GAAG,wDAAa,eAAe,GAAC,CAAC;YAClE,MAAM,uBAAuB,CAAC,IAAI,CAAC,CAAC;QACtC,CAAC;KACF;IACD;QACE,IAAI,EAAE,gBAAgB;QACtB,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;YACrB,MAAM,EAAE,gCAAgC,EAAE,GAAG,wDAAa,iCAAiC,GAAC,CAAC;YAC7F,MAAM,gCAAgC,CAAC,IAAI,CAAC,CAAC;QAC/C,CAAC;KACF;IACD;QACE,IAAI,EAAE,UAAU;QAChB,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;YACrB,MAAM,EAAE,2BAA2B,EAAE,GAAG,wDAAa,2BAA2B,GAAC,CAAC;YAClF,MAAM,2BAA2B,CAAC,IAAI,CAAC,CAAC;QAC1C,CAAC;KACF;CACF,CAAC;
|
|
1
|
+
{"version":3,"file":"config-command.js","sourceRoot":"","sources":["../../src/commands/config-command.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"finalize-key-rotation-subcommand.d.ts","sourceRoot":"","sources":["../../../src/commands/docker/finalize-key-rotation-subcommand.ts"],"names":[],"mappings":"AAcA,wBAAsB,yBAAyB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA6C7E"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.handleFinalizeKeyRotation = void 0;
|
|
27
|
+
const fs = __importStar(require("fs"));
|
|
28
|
+
const docker_1 = require("../../docker");
|
|
29
|
+
const config_generator_1 = require("../../cliproxy/config/config-generator");
|
|
30
|
+
const port_manager_1 = require("../../cliproxy/config/port-manager");
|
|
31
|
+
const docker_key_rotation_1 = require("../../docker/docker-key-rotation");
|
|
32
|
+
const ui_1 = require("../../utils/ui");
|
|
33
|
+
const options_1 = require("./options");
|
|
34
|
+
const KNOWN_FLAGS = ['--host', '--container-scope'];
|
|
35
|
+
function shouldWriteContainerVolume(args) {
|
|
36
|
+
return args.includes('--container-scope') || fs.existsSync('/.dockerenv');
|
|
37
|
+
}
|
|
38
|
+
async function handleFinalizeKeyRotation(args) {
|
|
39
|
+
await (0, ui_1.initUI)();
|
|
40
|
+
const parsed = (0, options_1.parseDockerTarget)(args, KNOWN_FLAGS);
|
|
41
|
+
const remainingArgs = parsed.remainingArgs.filter((arg) => arg !== '--container-scope');
|
|
42
|
+
const errors = [
|
|
43
|
+
...parsed.errors,
|
|
44
|
+
...(0, options_1.collectUnexpectedDockerArgs)(remainingArgs, {
|
|
45
|
+
knownFlags: [],
|
|
46
|
+
maxPositionals: 0,
|
|
47
|
+
}),
|
|
48
|
+
];
|
|
49
|
+
if (errors.length > 0) {
|
|
50
|
+
console.error((0, ui_1.box)((0, ui_1.fail)(errors.join('\n')), { title: 'Docker', padding: 1 }));
|
|
51
|
+
process.exitCode = 1;
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
if (!shouldWriteContainerVolume(args)) {
|
|
55
|
+
try {
|
|
56
|
+
const output = new docker_1.DockerExecutor().finalizeKeyRotation({ host: parsed.host });
|
|
57
|
+
if (output.trim()) {
|
|
58
|
+
console.log(output.trim());
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
catch (error) {
|
|
62
|
+
console.error((0, ui_1.box)((0, ui_1.fail)(error instanceof Error ? error.message : String(error)), {
|
|
63
|
+
title: 'Docker',
|
|
64
|
+
padding: 1,
|
|
65
|
+
}));
|
|
66
|
+
process.exitCode = 1;
|
|
67
|
+
}
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
const status = (0, docker_key_rotation_1.finalizeDockerKeyRotation)();
|
|
71
|
+
if ((0, config_generator_1.configExists)(port_manager_1.CLIPROXY_DEFAULT_PORT)) {
|
|
72
|
+
(0, config_generator_1.regenerateConfig)(port_manager_1.CLIPROXY_DEFAULT_PORT);
|
|
73
|
+
}
|
|
74
|
+
console.log((0, ui_1.ok)('Docker CLIProxy legacy API key grace period finalized.'));
|
|
75
|
+
console.log((0, ui_1.info)(`Current API key: ${status.maskedApiKey ?? '(not configured)'}`));
|
|
76
|
+
console.log((0, ui_1.info)('Restart CLIProxy if it is already running to reload the regenerated config.'));
|
|
77
|
+
}
|
|
78
|
+
exports.handleFinalizeKeyRotation = handleFinalizeKeyRotation;
|
|
79
|
+
//# sourceMappingURL=finalize-key-rotation-subcommand.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"finalize-key-rotation-subcommand.js","sourceRoot":"","sources":["../../../src/commands/docker/finalize-key-rotation-subcommand.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAAyB;AACzB,yCAA8C;AAC9C,6EAAwF;AACxF,qEAA2E;AAC3E,0EAA6E;AAC7E,uCAA6D;AAC7D,uCAA2E;AAE3E,MAAM,WAAW,GAAG,CAAC,QAAQ,EAAE,mBAAmB,CAAU,CAAC;AAE7D,SAAS,0BAA0B,CAAC,IAAc;IAChD,OAAO,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAC5E,CAAC;AAEM,KAAK,UAAU,yBAAyB,CAAC,IAAc;IAC5D,MAAM,IAAA,WAAM,GAAE,CAAC;IAEf,MAAM,MAAM,GAAG,IAAA,2BAAiB,EAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IACpD,MAAM,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,mBAAmB,CAAC,CAAC;IACxF,MAAM,MAAM,GAAG;QACb,GAAG,MAAM,CAAC,MAAM;QAChB,GAAG,IAAA,qCAA2B,EAAC,aAAa,EAAE;YAC5C,UAAU,EAAE,EAAE;YACd,cAAc,EAAE,CAAC;SAClB,CAAC;KACH,CAAC;IAEF,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,OAAO,CAAC,KAAK,CAAC,IAAA,QAAG,EAAC,IAAA,SAAI,EAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC7E,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IAED,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,EAAE,CAAC;QACtC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,uBAAc,EAAE,CAAC,mBAAmB,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;YAC/E,IAAI,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;gBAClB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CACX,IAAA,QAAG,EAAC,IAAA,SAAI,EAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE;gBAChE,KAAK,EAAE,QAAQ;gBACf,OAAO,EAAE,CAAC;aACX,CAAC,CACH,CAAC;YACF,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACvB,CAAC;QACD,OAAO;IACT,CAAC;IAED,MAAM,MAAM,GAAG,IAAA,+CAAyB,GAAE,CAAC;IAC3C,IAAI,IAAA,+BAAY,EAAC,oCAAqB,CAAC,EAAE,CAAC;QACxC,IAAA,mCAAgB,EAAC,oCAAqB,CAAC,CAAC;IAC1C,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,IAAA,OAAE,EAAC,wDAAwD,CAAC,CAAC,CAAC;IAC1E,OAAO,CAAC,GAAG,CAAC,IAAA,SAAI,EAAC,oBAAoB,MAAM,CAAC,YAAY,IAAI,kBAAkB,EAAE,CAAC,CAAC,CAAC;IACnF,OAAO,CAAC,GAAG,CAAC,IAAA,SAAI,EAAC,6EAA6E,CAAC,CAAC,CAAC;AACnG,CAAC;AA7CD,8DA6CC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"help-subcommand.d.ts","sourceRoot":"","sources":["../../../src/commands/docker/help-subcommand.ts"],"names":[],"mappings":"AAEA,wBAAsB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"help-subcommand.d.ts","sourceRoot":"","sources":["../../../src/commands/docker/help-subcommand.ts"],"names":[],"mappings":"AAEA,wBAAsB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAqE9C"}
|
|
@@ -20,6 +20,8 @@ async function showHelp() {
|
|
|
20
20
|
['update', 'Update CCS and CLIProxy inside the running container'],
|
|
21
21
|
['logs', 'Show or follow container log output'],
|
|
22
22
|
['config', 'Show bundled asset paths and deployment defaults'],
|
|
23
|
+
['show-key', 'Show the Docker CLIProxy API key masked by default'],
|
|
24
|
+
['finalize-key-rotation', 'End the legacy Docker API key grace period'],
|
|
23
25
|
],
|
|
24
26
|
],
|
|
25
27
|
[
|
|
@@ -36,6 +38,7 @@ async function showHelp() {
|
|
|
36
38
|
['up --proxy-port <port>', 'Publish CLIProxy on a custom host port'],
|
|
37
39
|
['logs --follow', 'Stream logs continuously'],
|
|
38
40
|
['logs --service <name>', 'Filter logs to ccs or cliproxy'],
|
|
41
|
+
['show-key --full', 'Reveal the full Docker CLIProxy API key'],
|
|
39
42
|
],
|
|
40
43
|
],
|
|
41
44
|
[
|
|
@@ -46,6 +49,9 @@ async function showHelp() {
|
|
|
46
49
|
['ccs docker --host my-box status', 'Use the documented common-option ordering'],
|
|
47
50
|
['ccs docker up --host my-box', 'Stage assets to ~/.ccs/docker and deploy remotely'],
|
|
48
51
|
['ccs docker logs --follow --service ccs', 'Tail dashboard logs only'],
|
|
52
|
+
['ccs docker show-key', 'Print the masked CLIProxy API key from the container'],
|
|
53
|
+
['ccs docker show-key --full', 'Reveal the full CLIProxy API key'],
|
|
54
|
+
['ccs docker finalize-key-rotation', 'Remove the legacy key immediately'],
|
|
49
55
|
['ccs docker update --host my-box', 'Update the running remote stack in place'],
|
|
50
56
|
],
|
|
51
57
|
],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"help-subcommand.js","sourceRoot":"","sources":["../../../src/commands/docker/help-subcommand.ts"],"names":[],"mappings":";;;AAAA,uCAAuE;AAEhE,KAAK,UAAU,QAAQ;IAC5B,MAAM,IAAA,WAAM,GAAE,CAAC;IACf,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,IAAA,WAAM,EAAC,mBAAmB,CAAC,CAAC,CAAC;IACzC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,IAAA,cAAS,EAAC,QAAQ,CAAC,CAAC,CAAC;IACjC,OAAO,CAAC,GAAG,CAAC,KAAK,IAAA,UAAK,EAAC,YAAY,EAAE,SAAS,CAAC,sBAAsB,CAAC,CAAC;IACvE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEhB,MAAM,QAAQ,GAAmC;QAC/C;YACE,WAAW;YACX;gBACE,CAAC,IAAI,EAAE,qDAAqD,CAAC;gBAC7D,CAAC,MAAM,EAAE,sCAAsC,CAAC;gBAChD,CAAC,QAAQ,EAAE,2CAA2C,CAAC;gBACvD,CAAC,QAAQ,EAAE,sDAAsD,CAAC;gBAClE,CAAC,MAAM,EAAE,qCAAqC,CAAC;gBAC/C,CAAC,QAAQ,EAAE,kDAAkD,CAAC;
|
|
1
|
+
{"version":3,"file":"help-subcommand.js","sourceRoot":"","sources":["../../../src/commands/docker/help-subcommand.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/docker/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/docker/index.ts"],"names":[],"mappings":"AAgCA,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAkCvE"}
|
|
@@ -4,8 +4,10 @@ exports.handleDockerCommand = void 0;
|
|
|
4
4
|
const arg_extractor_1 = require("../arg-extractor");
|
|
5
5
|
const config_subcommand_1 = require("./config-subcommand");
|
|
6
6
|
const down_subcommand_1 = require("./down-subcommand");
|
|
7
|
+
const finalize_key_rotation_subcommand_1 = require("./finalize-key-rotation-subcommand");
|
|
7
8
|
const help_subcommand_1 = require("./help-subcommand");
|
|
8
9
|
const logs_subcommand_1 = require("./logs-subcommand");
|
|
10
|
+
const show_key_subcommand_1 = require("./show-key-subcommand");
|
|
9
11
|
const status_subcommand_1 = require("./status-subcommand");
|
|
10
12
|
const up_subcommand_1 = require("./up-subcommand");
|
|
11
13
|
const update_subcommand_1 = require("./update-subcommand");
|
|
@@ -40,6 +42,8 @@ async function handleDockerCommand(args) {
|
|
|
40
42
|
update: update_subcommand_1.handleUpdate,
|
|
41
43
|
logs: logs_subcommand_1.handleLogs,
|
|
42
44
|
config: config_subcommand_1.handleConfig,
|
|
45
|
+
'show-key': show_key_subcommand_1.handleShowKey,
|
|
46
|
+
'finalize-key-rotation': finalize_key_rotation_subcommand_1.handleFinalizeKeyRotation,
|
|
43
47
|
help: async () => (0, help_subcommand_1.showHelp)(),
|
|
44
48
|
};
|
|
45
49
|
if (!command) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/docker/index.ts"],"names":[],"mappings":";;;AAAA,oDAA6D;AAC7D,2DAAmD;AACnD,uDAA+C;AAC/C,uDAA6C;AAC7C,uDAA+C;AAC/C,2DAAmD;AACnD,mDAA2C;AAC3C,2DAAmD;AAEnD,SAAS,uBAAuB,CAAC,IAAc;IAC7C,MAAM,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAC3B,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU,KAAK,QAAQ,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;QAClF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,SAAS,GAAG,IAAA,6BAAa,EAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,EAAE;QAChD,UAAU,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC;KACvC,CAAC,CAAC;IACH,IAAI,SAAS,CAAC,YAAY,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC;QACvD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,OAAO,GAAG,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IAC3C,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACxC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,GAAG,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1F,CAAC;AAEM,KAAK,UAAU,mBAAmB,CAAC,IAAc;IACtD,MAAM,cAAc,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAC;IAErD,IAAI,IAAA,0BAAU,EAAC,cAAc,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC;QACjD,MAAM,IAAA,0BAAQ,GAAE,CAAC;QACjB,OAAO;IACT,CAAC;IAED,MAAM,OAAO,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;IAClC,MAAM,eAAe,GAAyD;QAC5E,EAAE,EAAE,wBAAQ;QACZ,IAAI,EAAE,4BAAU;QAChB,MAAM,EAAE,gCAAY;QACpB,MAAM,EAAE,gCAAY;QACpB,IAAI,EAAE,4BAAU;QAChB,MAAM,EAAE,gCAAY;QACpB,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,IAAA,0BAAQ,GAAE;KAC7B,CAAC;IAEF,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAA,0BAAQ,GAAE,CAAC;QACjB,OAAO;IACT,CAAC;IAED,MAAM,OAAO,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IACzC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAA,0BAAQ,GAAE,CAAC;QACjB,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IAED,MAAM,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACzC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/docker/index.ts"],"names":[],"mappings":";;;AAAA,oDAA6D;AAC7D,2DAAmD;AACnD,uDAA+C;AAC/C,yFAA+E;AAC/E,uDAA6C;AAC7C,uDAA+C;AAC/C,+DAAsD;AACtD,2DAAmD;AACnD,mDAA2C;AAC3C,2DAAmD;AAEnD,SAAS,uBAAuB,CAAC,IAAc;IAC7C,MAAM,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAC3B,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU,KAAK,QAAQ,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;QAClF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,SAAS,GAAG,IAAA,6BAAa,EAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,EAAE;QAChD,UAAU,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC;KACvC,CAAC,CAAC;IACH,IAAI,SAAS,CAAC,YAAY,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC;QACvD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,OAAO,GAAG,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IAC3C,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACxC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,GAAG,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1F,CAAC;AAEM,KAAK,UAAU,mBAAmB,CAAC,IAAc;IACtD,MAAM,cAAc,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAC;IAErD,IAAI,IAAA,0BAAU,EAAC,cAAc,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC;QACjD,MAAM,IAAA,0BAAQ,GAAE,CAAC;QACjB,OAAO;IACT,CAAC;IAED,MAAM,OAAO,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;IAClC,MAAM,eAAe,GAAyD;QAC5E,EAAE,EAAE,wBAAQ;QACZ,IAAI,EAAE,4BAAU;QAChB,MAAM,EAAE,gCAAY;QACpB,MAAM,EAAE,gCAAY;QACpB,IAAI,EAAE,4BAAU;QAChB,MAAM,EAAE,gCAAY;QACpB,UAAU,EAAE,mCAAa;QACzB,uBAAuB,EAAE,4DAAyB;QAClD,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,IAAA,0BAAQ,GAAE;KAC7B,CAAC;IAEF,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAA,0BAAQ,GAAE,CAAC;QACjB,OAAO;IACT,CAAC;IAED,MAAM,OAAO,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IACzC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAA,0BAAQ,GAAE,CAAC;QACjB,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IAED,MAAM,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACzC,CAAC;AAlCD,kDAkCC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"show-key-subcommand.d.ts","sourceRoot":"","sources":["../../../src/commands/docker/show-key-subcommand.ts"],"names":[],"mappings":"AAeA,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAiEjE"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.handleShowKey = void 0;
|
|
27
|
+
const fs = __importStar(require("fs"));
|
|
28
|
+
const docker_1 = require("../../docker");
|
|
29
|
+
const docker_key_rotation_1 = require("../../docker/docker-key-rotation");
|
|
30
|
+
const ui_1 = require("../../utils/ui");
|
|
31
|
+
const options_1 = require("./options");
|
|
32
|
+
const KNOWN_FLAGS = ['--host', '--full', '--container-scope', '--banner-only'];
|
|
33
|
+
function shouldReadContainerVolume(args) {
|
|
34
|
+
return args.includes('--container-scope') || fs.existsSync('/.dockerenv');
|
|
35
|
+
}
|
|
36
|
+
async function handleShowKey(args) {
|
|
37
|
+
const bannerOnly = args.includes('--banner-only');
|
|
38
|
+
if (!bannerOnly) {
|
|
39
|
+
await (0, ui_1.initUI)();
|
|
40
|
+
}
|
|
41
|
+
const parsed = (0, options_1.parseDockerTarget)(args, KNOWN_FLAGS);
|
|
42
|
+
const remainingArgs = parsed.remainingArgs.filter((arg) => arg !== '--full' && arg !== '--container-scope' && arg !== '--banner-only');
|
|
43
|
+
const errors = [
|
|
44
|
+
...parsed.errors,
|
|
45
|
+
...(0, options_1.collectUnexpectedDockerArgs)(remainingArgs, {
|
|
46
|
+
knownFlags: [],
|
|
47
|
+
maxPositionals: 0,
|
|
48
|
+
}),
|
|
49
|
+
];
|
|
50
|
+
if (errors.length > 0) {
|
|
51
|
+
console.error((0, ui_1.box)((0, ui_1.fail)(errors.join('\n')), { title: 'Docker', padding: 1 }));
|
|
52
|
+
process.exitCode = 1;
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
const full = args.includes('--full');
|
|
56
|
+
if (!shouldReadContainerVolume(args)) {
|
|
57
|
+
try {
|
|
58
|
+
const output = new docker_1.DockerExecutor().showKey({ host: parsed.host }, full);
|
|
59
|
+
if (output.trim()) {
|
|
60
|
+
console.log(output.trim());
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
catch (error) {
|
|
64
|
+
console.error((0, ui_1.box)((0, ui_1.fail)(error instanceof Error ? error.message : String(error)), {
|
|
65
|
+
title: 'Docker',
|
|
66
|
+
padding: 1,
|
|
67
|
+
}));
|
|
68
|
+
process.exitCode = 1;
|
|
69
|
+
}
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
const status = (0, docker_key_rotation_1.getDockerKeyRotationStatus)();
|
|
73
|
+
if (bannerOnly) {
|
|
74
|
+
const banner = (0, docker_key_rotation_1.renderDockerKeyRotationBanner)(status);
|
|
75
|
+
if (banner) {
|
|
76
|
+
console.log(banner);
|
|
77
|
+
}
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
const displayKey = full ? status.apiKey : status.maskedApiKey;
|
|
81
|
+
console.log((0, ui_1.header)('Docker CLIProxy API Key'));
|
|
82
|
+
console.log('');
|
|
83
|
+
console.log((0, ui_1.info)(`API key: ${displayKey ?? '(not configured)'}`));
|
|
84
|
+
if (status.legacyGraceActive && status.legacyGrace) {
|
|
85
|
+
console.log((0, ui_1.info)(`Legacy key: ${status.legacyGrace.legacyKey}`));
|
|
86
|
+
console.log((0, ui_1.info)(`Legacy key expires: ${status.legacyGrace.expiresAt}`));
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
console.log((0, ui_1.info)('Legacy key grace: inactive'));
|
|
90
|
+
}
|
|
91
|
+
if (status.stateCorrupted) {
|
|
92
|
+
console.log((0, ui_1.info)(`State marker was unreadable and will be recreated: ${status.statePath}`));
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
exports.handleShowKey = handleShowKey;
|
|
96
|
+
//# sourceMappingURL=show-key-subcommand.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"show-key-subcommand.js","sourceRoot":"","sources":["../../../src/commands/docker/show-key-subcommand.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"up-subcommand.d.ts","sourceRoot":"","sources":["../../../src/commands/docker/up-subcommand.ts"],"names":[],"mappings":"AAUA,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"up-subcommand.d.ts","sourceRoot":"","sources":["../../../src/commands/docker/up-subcommand.ts"],"names":[],"mappings":"AAUA,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAiD5D"}
|
|
@@ -26,6 +26,10 @@ async function handleUp(args) {
|
|
|
26
26
|
console.log((0, ui_1.info)(`Starting integrated Docker stack${parsed.host ? ` on ${parsed.host}` : ''}...`));
|
|
27
27
|
try {
|
|
28
28
|
await executor.up({ host: parsed.host, port, proxyPort });
|
|
29
|
+
const rotationBanner = executor.getKeyRotationBanner({ host: parsed.host });
|
|
30
|
+
if (rotationBanner) {
|
|
31
|
+
console.error(rotationBanner);
|
|
32
|
+
}
|
|
29
33
|
console.log((0, ui_1.ok)(`Docker stack is running${parsed.host ? ` on ${parsed.host}` : ' locally'}.`));
|
|
30
34
|
console.log((0, ui_1.info)(`Dashboard port: ${port}`));
|
|
31
35
|
console.log((0, ui_1.info)(`CLIProxy port: ${proxyPort}`));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"up-subcommand.js","sourceRoot":"","sources":["../../../src/commands/docker/up-subcommand.ts"],"names":[],"mappings":";;;AAAA,yCAIsB;AACtB,uCAA6D;AAC7D,uCAA8E;AAE9E,MAAM,WAAW,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,cAAc,CAAU,CAAC;AAE3D,KAAK,UAAU,QAAQ,CAAC,IAAc;IAC3C,MAAM,IAAA,WAAM,GAAE,CAAC;IACf,MAAM,MAAM,GAAG,IAAA,8BAAoB,EAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IACvD,MAAM,MAAM,GAAG;QACb,GAAG,MAAM,CAAC,MAAM;QAChB,GAAG,IAAA,qCAA2B,EAAC,MAAM,CAAC,aAAa,EAAE;YACnD,UAAU,EAAE,EAAE;YACd,cAAc,EAAE,CAAC;SAClB,CAAC;KACH,CAAC;IAEF,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,OAAO,CAAC,KAAK,CAAC,IAAA,QAAG,EAAC,IAAA,SAAI,EAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC7E,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,uBAAc,EAAE,CAAC;IACtC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,sCAA6B,CAAC;IAC1D,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,kCAAyB,CAAC;IAEhE,OAAO,CAAC,GAAG,CACT,IAAA,SAAI,EAAC,mCAAmC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CACtF,CAAC;IACF,IAAI,CAAC;QACH,MAAM,QAAQ,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;QAC1D,OAAO,CAAC,GAAG,CAAC,IAAA,OAAE,EAAC,0BAA0B,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;QAC9F,OAAO,CAAC,GAAG,CAAC,IAAA,SAAI,EAAC,mBAAmB,IAAI,EAAE,CAAC,CAAC,CAAC;QAC7C,OAAO,CAAC,GAAG,CAAC,IAAA,SAAI,EAAC,kBAAkB,SAAS,EAAE,CAAC,CAAC,CAAC;QACjD,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;YAChB,OAAO,CAAC,GAAG,CACT,IAAA,SAAI,EACF,6KAA6K,CAC9K,CACF,CAAC;QACJ,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CACX,IAAA,QAAG,EAAC,IAAA,SAAI,EAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE;YAChE,KAAK,EAAE,QAAQ;YACf,OAAO,EAAE,CAAC;SACX,CAAC,CACH,CAAC;QACF,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC;AACH,CAAC;
|
|
1
|
+
{"version":3,"file":"up-subcommand.js","sourceRoot":"","sources":["../../../src/commands/docker/up-subcommand.ts"],"names":[],"mappings":";;;AAAA,yCAIsB;AACtB,uCAA6D;AAC7D,uCAA8E;AAE9E,MAAM,WAAW,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,cAAc,CAAU,CAAC;AAE3D,KAAK,UAAU,QAAQ,CAAC,IAAc;IAC3C,MAAM,IAAA,WAAM,GAAE,CAAC;IACf,MAAM,MAAM,GAAG,IAAA,8BAAoB,EAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IACvD,MAAM,MAAM,GAAG;QACb,GAAG,MAAM,CAAC,MAAM;QAChB,GAAG,IAAA,qCAA2B,EAAC,MAAM,CAAC,aAAa,EAAE;YACnD,UAAU,EAAE,EAAE;YACd,cAAc,EAAE,CAAC;SAClB,CAAC;KACH,CAAC;IAEF,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,OAAO,CAAC,KAAK,CAAC,IAAA,QAAG,EAAC,IAAA,SAAI,EAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC7E,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,uBAAc,EAAE,CAAC;IACtC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,sCAA6B,CAAC;IAC1D,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,kCAAyB,CAAC;IAEhE,OAAO,CAAC,GAAG,CACT,IAAA,SAAI,EAAC,mCAAmC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CACtF,CAAC;IACF,IAAI,CAAC;QACH,MAAM,QAAQ,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;QAC1D,MAAM,cAAc,GAAG,QAAQ,CAAC,oBAAoB,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QAC5E,IAAI,cAAc,EAAE,CAAC;YACnB,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QAChC,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,IAAA,OAAE,EAAC,0BAA0B,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;QAC9F,OAAO,CAAC,GAAG,CAAC,IAAA,SAAI,EAAC,mBAAmB,IAAI,EAAE,CAAC,CAAC,CAAC;QAC7C,OAAO,CAAC,GAAG,CAAC,IAAA,SAAI,EAAC,kBAAkB,SAAS,EAAE,CAAC,CAAC,CAAC;QACjD,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;YAChB,OAAO,CAAC,GAAG,CACT,IAAA,SAAI,EACF,6KAA6K,CAC9K,CACF,CAAC;QACJ,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CACX,IAAA,QAAG,EAAC,IAAA,SAAI,EAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE;YAChE,KAAK,EAAE,QAAQ;YACf,OAAO,EAAE,CAAC;SACX,CAAC,CACH,CAAC;QACF,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC;AACH,CAAC;AAjDD,4BAiDC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"persist-command.d.ts","sourceRoot":"","sources":["../../src/commands/persist-command.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;
|
|
1
|
+
{"version":3,"file":"persist-command.d.ts","sourceRoot":"","sources":["../../src/commands/persist-command.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAm0BH,mCAAmC;AACnC,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAkOxE"}
|
|
@@ -46,6 +46,7 @@ const profile_detector_1 = __importDefault(require("../auth/profile-detector"));
|
|
|
46
46
|
const claude_config_path_1 = require("../utils/claude-config-path");
|
|
47
47
|
const arg_extractor_1 = require("./arg-extractor");
|
|
48
48
|
const claude_extension_setup_1 = require("../shared/claude-extension-setup");
|
|
49
|
+
const stale_codex_translator_settings_1 = require("../shared/stale-codex-translator-settings");
|
|
49
50
|
const PERSIST_KNOWN_FLAGS = [
|
|
50
51
|
'--yes',
|
|
51
52
|
'-y',
|
|
@@ -62,6 +63,7 @@ const PERSIST_LOCK_STALE_MS = 10000;
|
|
|
62
63
|
const PERSIST_LOCK_RETRIES = 5;
|
|
63
64
|
const PERSIST_LOCK_RETRY_MIN_MS = 100;
|
|
64
65
|
const PERSIST_LOCK_RETRY_MAX_MS = 500;
|
|
66
|
+
const NATIVE_CODEX_TARGETS = ['ccsxp', 'ccs codex --target codex'];
|
|
65
67
|
function isPermissionMode(value) {
|
|
66
68
|
return VALID_PERMISSION_MODES.includes(value);
|
|
67
69
|
}
|
|
@@ -456,6 +458,71 @@ function isSensitiveEnvKey(key) {
|
|
|
456
458
|
compact.includes('PASSWORD') ||
|
|
457
459
|
compact.includes('CREDENTIAL'));
|
|
458
460
|
}
|
|
461
|
+
function buildPersistReceipt(existingEnv, existingSettings, mergedSettings, resolved, resolvedPermissionMode) {
|
|
462
|
+
const mergedEnv = typeof mergedSettings.env === 'object' &&
|
|
463
|
+
mergedSettings.env !== null &&
|
|
464
|
+
!Array.isArray(mergedSettings.env)
|
|
465
|
+
? mergedSettings.env
|
|
466
|
+
: {};
|
|
467
|
+
const clearedKeys = resolved.clearEnvKeys.filter((key) => Object.prototype.hasOwnProperty.call(existingEnv, key) && mergedEnv[key] === undefined);
|
|
468
|
+
const clearedCodexTranslatorUrlKeys = clearedKeys.filter((key) => (0, stale_codex_translator_settings_1.findCodexTranslatorUrlPaths)(existingEnv[key]).length > 0);
|
|
469
|
+
const writtenKeys = Object.entries(resolved.env)
|
|
470
|
+
.filter(([key, value]) => existingEnv[key] !== value)
|
|
471
|
+
.map(([key]) => key)
|
|
472
|
+
.sort((left, right) => left.localeCompare(right));
|
|
473
|
+
const unchangedWrittenKeys = Object.entries(resolved.env)
|
|
474
|
+
.filter(([key, value]) => existingEnv[key] === value)
|
|
475
|
+
.map(([key]) => key)
|
|
476
|
+
.sort((left, right) => left.localeCompare(right));
|
|
477
|
+
const existingPermissions = typeof existingSettings.permissions === 'object' &&
|
|
478
|
+
existingSettings.permissions !== null &&
|
|
479
|
+
!Array.isArray(existingSettings.permissions)
|
|
480
|
+
? existingSettings.permissions
|
|
481
|
+
: {};
|
|
482
|
+
const writtenSettings = resolvedPermissionMode && existingPermissions.defaultMode !== resolvedPermissionMode
|
|
483
|
+
? ['permissions.defaultMode']
|
|
484
|
+
: [];
|
|
485
|
+
const unchangedSettings = resolvedPermissionMode && existingPermissions.defaultMode === resolvedPermissionMode
|
|
486
|
+
? ['permissions.defaultMode']
|
|
487
|
+
: [];
|
|
488
|
+
return {
|
|
489
|
+
clearedKeys,
|
|
490
|
+
clearedCodexTranslatorUrlKeys,
|
|
491
|
+
writtenKeys,
|
|
492
|
+
unchangedWrittenKeys,
|
|
493
|
+
writtenSettings,
|
|
494
|
+
unchangedSettings,
|
|
495
|
+
codexTranslatorUrlPaths: (0, stale_codex_translator_settings_1.findCodexTranslatorUrlPaths)(mergedSettings),
|
|
496
|
+
};
|
|
497
|
+
}
|
|
498
|
+
function formatKeyList(keys) {
|
|
499
|
+
return keys.length > 0 ? keys.join(', ') : 'none';
|
|
500
|
+
}
|
|
501
|
+
function printPersistReceipt(receipt) {
|
|
502
|
+
console.log((0, ui_1.subheader)('Config Receipt'));
|
|
503
|
+
console.log(` Settings: ${getClaudeSettingsDisplayPath()}`);
|
|
504
|
+
console.log(` Cleared managed keys: ${formatKeyList(receipt.clearedKeys)}`);
|
|
505
|
+
console.log(` Written/rewritten managed keys: ${formatKeyList(receipt.writtenKeys)}`);
|
|
506
|
+
if (receipt.unchangedWrittenKeys.length > 0) {
|
|
507
|
+
console.log(` Already current keys: ${formatKeyList(receipt.unchangedWrittenKeys)}`);
|
|
508
|
+
}
|
|
509
|
+
if (receipt.writtenSettings.length > 0 || receipt.unchangedSettings.length > 0) {
|
|
510
|
+
console.log(` Written/rewritten managed settings: ${formatKeyList(receipt.writtenSettings)}`);
|
|
511
|
+
if (receipt.unchangedSettings.length > 0) {
|
|
512
|
+
console.log(` Already current settings: ${formatKeyList(receipt.unchangedSettings)}`);
|
|
513
|
+
}
|
|
514
|
+
}
|
|
515
|
+
const hadCodexTranslatorCleanup = receipt.clearedCodexTranslatorUrlKeys.length > 0;
|
|
516
|
+
if (receipt.codexTranslatorUrlPaths.length > 0) {
|
|
517
|
+
console.log((0, ui_1.warn)(` Codex translator URL: still found at ${(0, stale_codex_translator_settings_1.formatSettingsPathList)(receipt.codexTranslatorUrlPaths)} (${stale_codex_translator_settings_1.CODEX_TRANSLATOR_URL_MARKER})`));
|
|
518
|
+
}
|
|
519
|
+
else {
|
|
520
|
+
console.log((0, ui_1.ok)(' Codex translator URL: not found'));
|
|
521
|
+
}
|
|
522
|
+
if (hadCodexTranslatorCleanup || receipt.codexTranslatorUrlPaths.length > 0) {
|
|
523
|
+
console.log(` Native Codex target: ${NATIVE_CODEX_TARGETS.join(' or ')}`);
|
|
524
|
+
}
|
|
525
|
+
}
|
|
459
526
|
/** Resolve shared Claude settings payload for a profile */
|
|
460
527
|
async function resolveProfileEnvVars(profileName) {
|
|
461
528
|
const setup = await (0, claude_extension_setup_1.resolveClaudeExtensionSetup)(profileName);
|
|
@@ -615,7 +682,7 @@ async function showHelp() {
|
|
|
615
682
|
console.log('');
|
|
616
683
|
console.log((0, ui_1.subheader)('Supported Profile Types'));
|
|
617
684
|
console.log(` ${(0, ui_1.color)('API profiles', 'command')} glm, km, custom API profiles`);
|
|
618
|
-
console.log(` ${(0, ui_1.color)('CLIProxy', 'command')} gemini,
|
|
685
|
+
console.log(` ${(0, ui_1.color)('CLIProxy', 'command')} gemini, agy, qwen, kiro, ghcp`);
|
|
619
686
|
console.log(` ${(0, ui_1.color)('Copilot', 'command')} copilot (requires copilot-api daemon)`);
|
|
620
687
|
console.log(` ${(0, ui_1.color)('Account profiles', 'command')} work, personal, client (persists CLAUDE_CONFIG_DIR)`);
|
|
621
688
|
console.log(` ${(0, ui_1.color)('default', 'command')} Clears CCS-managed overrides or inherits mapped continuity`);
|
|
@@ -631,7 +698,7 @@ async function showHelp() {
|
|
|
631
698
|
console.log(` ${(0, ui_1.color)('ccs persist glm --permission-mode acceptEdits', 'command')}`);
|
|
632
699
|
console.log('');
|
|
633
700
|
console.log(` ${(0, ui_1.dim)('# Persist with auto-approve enabled')}`);
|
|
634
|
-
console.log(` ${(0, ui_1.color)('ccs persist
|
|
701
|
+
console.log(` ${(0, ui_1.color)('ccs persist glm --dangerously-skip-permissions', 'command')}`);
|
|
635
702
|
console.log('');
|
|
636
703
|
console.log(` ${(0, ui_1.dim)('# Persist an account profile for IDE/native Claude use')}`);
|
|
637
704
|
console.log(` ${(0, ui_1.color)('ccs persist work --yes', 'command')}`);
|
|
@@ -650,6 +717,7 @@ async function showHelp() {
|
|
|
650
717
|
console.log('');
|
|
651
718
|
console.log((0, ui_1.subheader)('Notes'));
|
|
652
719
|
console.log(' [i] CLIProxy profiles require the proxy to be running.');
|
|
720
|
+
console.log(' [i] Codex CLIProxy profiles are native Codex-only: use ccsxp or ccs codex --target codex.');
|
|
653
721
|
console.log(' [i] Copilot profiles require copilot-api daemon.');
|
|
654
722
|
console.log(' [i] Account/default flows remove stale ANTHROPIC_* overrides before applying new setup.');
|
|
655
723
|
console.log(' [i] For IDE-local settings.json snippets, use: ccs env <profile> --format claude-extension');
|
|
@@ -845,6 +913,13 @@ async function handlePersistCommand(args) {
|
|
|
845
913
|
};
|
|
846
914
|
}
|
|
847
915
|
await writeClaudeSettings(mergedSettings);
|
|
916
|
+
const persistedSettings = await readClaudeSettings();
|
|
917
|
+
const receipt = buildPersistReceipt(existingEnv, existingSettings, persistedSettings, resolved, resolvedPermissionMode);
|
|
918
|
+
console.log('');
|
|
919
|
+
console.log((0, ui_1.ok)(`Profile '${parsedArgs.profile}' written to ${getClaudeSettingsDisplayPath()}`));
|
|
920
|
+
console.log('');
|
|
921
|
+
printPersistReceipt(receipt);
|
|
922
|
+
console.log('');
|
|
848
923
|
});
|
|
849
924
|
}
|
|
850
925
|
catch (error) {
|
|
@@ -863,9 +938,6 @@ async function handlePersistCommand(args) {
|
|
|
863
938
|
}
|
|
864
939
|
process.exit(1);
|
|
865
940
|
}
|
|
866
|
-
console.log('');
|
|
867
|
-
console.log((0, ui_1.ok)(`Profile '${parsedArgs.profile}' written to ${getClaudeSettingsDisplayPath()}`));
|
|
868
|
-
console.log('');
|
|
869
941
|
console.log((0, ui_1.info)('Claude Code will now use this profile by default.'));
|
|
870
942
|
console.log((0, ui_1.dim)(' To revert, restore the backup or edit settings.json manually.'));
|
|
871
943
|
console.log('');
|