@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.
Files changed (196) hide show
  1. package/dist/bin/codex-runtime-router.d.ts.map +1 -1
  2. package/dist/bin/codex-runtime-router.js +38 -12
  3. package/dist/bin/codex-runtime-router.js.map +1 -1
  4. package/dist/ccs.js +2 -1
  5. package/dist/ccs.js.map +1 -1
  6. package/dist/cliproxy/ai-providers/codex-plan-compatibility.js +2 -2
  7. package/dist/cliproxy/ai-providers/codex-plan-compatibility.js.map +1 -1
  8. package/dist/cliproxy/ai-providers/codex-reasoning-proxy.d.ts +2 -2
  9. package/dist/cliproxy/ai-providers/codex-reasoning-proxy.d.ts.map +1 -1
  10. package/dist/cliproxy/ai-providers/codex-reasoning-proxy.js +16 -8
  11. package/dist/cliproxy/ai-providers/codex-reasoning-proxy.js.map +1 -1
  12. package/dist/cliproxy/ai-providers/model-id-normalizer.d.ts +1 -1
  13. package/dist/cliproxy/ai-providers/model-id-normalizer.d.ts.map +1 -1
  14. package/dist/cliproxy/ai-providers/model-id-normalizer.js +1 -1
  15. package/dist/cliproxy/ai-providers/model-id-normalizer.js.map +1 -1
  16. package/dist/cliproxy/auth/oauth-handler.d.ts +13 -1
  17. package/dist/cliproxy/auth/oauth-handler.d.ts.map +1 -1
  18. package/dist/cliproxy/auth/oauth-handler.js +111 -34
  19. package/dist/cliproxy/auth/oauth-handler.js.map +1 -1
  20. package/dist/cliproxy/auth/oauth-trace/redactor.d.ts.map +1 -1
  21. package/dist/cliproxy/auth/oauth-trace/redactor.js +9 -1
  22. package/dist/cliproxy/auth/oauth-trace/redactor.js.map +1 -1
  23. package/dist/cliproxy/config/generator.d.ts.map +1 -1
  24. package/dist/cliproxy/config/generator.js +5 -2
  25. package/dist/cliproxy/config/generator.js.map +1 -1
  26. package/dist/cliproxy/config/thinking-config.js +6 -6
  27. package/dist/cliproxy/config/thinking-config.js.map +1 -1
  28. package/dist/cliproxy/executor/env-resolver.js +1 -1
  29. package/dist/cliproxy/executor/env-resolver.js.map +1 -1
  30. package/dist/cliproxy/executor/session-bridge.d.ts.map +1 -1
  31. package/dist/cliproxy/executor/session-bridge.js +11 -8
  32. package/dist/cliproxy/executor/session-bridge.js.map +1 -1
  33. package/dist/cliproxy/quota/quota-fetcher-claude.d.ts.map +1 -1
  34. package/dist/cliproxy/quota/quota-fetcher-claude.js +35 -4
  35. package/dist/cliproxy/quota/quota-fetcher-claude.js.map +1 -1
  36. package/dist/cliproxy/quota/quota-manager.d.ts +1 -0
  37. package/dist/cliproxy/quota/quota-manager.d.ts.map +1 -1
  38. package/dist/cliproxy/quota/quota-manager.js +53 -2
  39. package/dist/cliproxy/quota/quota-manager.js.map +1 -1
  40. package/dist/cliproxy/services/oauth-usage-log-transformer.d.ts.map +1 -1
  41. package/dist/cliproxy/services/oauth-usage-log-transformer.js +5 -0
  42. package/dist/cliproxy/services/oauth-usage-log-transformer.js.map +1 -1
  43. package/dist/codex-auth/codex-profile-resources.d.ts +6 -0
  44. package/dist/codex-auth/codex-profile-resources.d.ts.map +1 -0
  45. package/dist/codex-auth/codex-profile-resources.js +119 -0
  46. package/dist/codex-auth/codex-profile-resources.js.map +1 -0
  47. package/dist/codex-auth/commands/create-command.d.ts.map +1 -1
  48. package/dist/codex-auth/commands/create-command.js +20 -6
  49. package/dist/codex-auth/commands/create-command.js.map +1 -1
  50. package/dist/codex-auth/index.d.ts +1 -0
  51. package/dist/codex-auth/index.d.ts.map +1 -1
  52. package/dist/codex-auth/index.js +4 -1
  53. package/dist/codex-auth/index.js.map +1 -1
  54. package/dist/commands/cliproxy/variant-subcommand.js +1 -1
  55. package/dist/commands/cliproxy/variant-subcommand.js.map +1 -1
  56. package/dist/commands/command-catalog.d.ts +1 -1
  57. package/dist/commands/command-catalog.d.ts.map +1 -1
  58. package/dist/commands/command-catalog.js +10 -1
  59. package/dist/commands/command-catalog.js.map +1 -1
  60. package/dist/commands/completion-backend.d.ts.map +1 -1
  61. package/dist/commands/completion-backend.js +2 -0
  62. package/dist/commands/completion-backend.js.map +1 -1
  63. package/dist/commands/config-command.d.ts +2 -0
  64. package/dist/commands/config-command.d.ts.map +1 -1
  65. package/dist/commands/config-command.js +31 -20
  66. package/dist/commands/config-command.js.map +1 -1
  67. package/dist/commands/docker/finalize-key-rotation-subcommand.d.ts +2 -0
  68. package/dist/commands/docker/finalize-key-rotation-subcommand.d.ts.map +1 -0
  69. package/dist/commands/docker/finalize-key-rotation-subcommand.js +79 -0
  70. package/dist/commands/docker/finalize-key-rotation-subcommand.js.map +1 -0
  71. package/dist/commands/docker/help-subcommand.d.ts.map +1 -1
  72. package/dist/commands/docker/help-subcommand.js +6 -0
  73. package/dist/commands/docker/help-subcommand.js.map +1 -1
  74. package/dist/commands/docker/index.d.ts.map +1 -1
  75. package/dist/commands/docker/index.js +4 -0
  76. package/dist/commands/docker/index.js.map +1 -1
  77. package/dist/commands/docker/show-key-subcommand.d.ts +2 -0
  78. package/dist/commands/docker/show-key-subcommand.d.ts.map +1 -0
  79. package/dist/commands/docker/show-key-subcommand.js +96 -0
  80. package/dist/commands/docker/show-key-subcommand.js.map +1 -0
  81. package/dist/commands/docker/up-subcommand.d.ts.map +1 -1
  82. package/dist/commands/docker/up-subcommand.js +4 -0
  83. package/dist/commands/docker/up-subcommand.js.map +1 -1
  84. package/dist/commands/persist-command.d.ts.map +1 -1
  85. package/dist/commands/persist-command.js +77 -5
  86. package/dist/commands/persist-command.js.map +1 -1
  87. package/dist/docker/docker-bootstrap.d.ts +1 -1
  88. package/dist/docker/docker-bootstrap.d.ts.map +1 -1
  89. package/dist/docker/docker-bootstrap.js +99 -3
  90. package/dist/docker/docker-bootstrap.js.map +1 -1
  91. package/dist/docker/docker-executor.d.ts +3 -0
  92. package/dist/docker/docker-executor.d.ts.map +1 -1
  93. package/dist/docker/docker-executor.js +53 -0
  94. package/dist/docker/docker-executor.js.map +1 -1
  95. package/dist/docker/docker-key-rotation.d.ts +48 -0
  96. package/dist/docker/docker-key-rotation.d.ts.map +1 -0
  97. package/dist/docker/docker-key-rotation.js +179 -0
  98. package/dist/docker/docker-key-rotation.js.map +1 -0
  99. package/dist/management/checks/config-check.d.ts.map +1 -1
  100. package/dist/management/checks/config-check.js +10 -1
  101. package/dist/management/checks/config-check.js.map +1 -1
  102. package/dist/management/doctor.d.ts +1 -0
  103. package/dist/management/doctor.d.ts.map +1 -1
  104. package/dist/management/doctor.js +23 -0
  105. package/dist/management/doctor.js.map +1 -1
  106. package/dist/proxy/proxy-daemon.d.ts.map +1 -1
  107. package/dist/proxy/proxy-daemon.js +15 -3
  108. package/dist/proxy/proxy-daemon.js.map +1 -1
  109. package/dist/proxy/server/messages-route.d.ts.map +1 -1
  110. package/dist/proxy/server/messages-route.js +27 -1
  111. package/dist/proxy/server/messages-route.js.map +1 -1
  112. package/dist/shared/claude-extension-setup.d.ts.map +1 -1
  113. package/dist/shared/claude-extension-setup.js +21 -1
  114. package/dist/shared/claude-extension-setup.js.map +1 -1
  115. package/dist/shared/stale-codex-translator-settings.d.ts +4 -0
  116. package/dist/shared/stale-codex-translator-settings.d.ts.map +1 -0
  117. package/dist/shared/stale-codex-translator-settings.js +35 -0
  118. package/dist/shared/stale-codex-translator-settings.js.map +1 -0
  119. package/dist/targets/codex-adapter.d.ts.map +1 -1
  120. package/dist/targets/codex-adapter.js +64 -5
  121. package/dist/targets/codex-adapter.js.map +1 -1
  122. package/dist/ui/assets/{Trans-J6qQqjkU.js → Trans-dEd8UC39.js} +1 -1
  123. package/dist/ui/assets/{accounts-B9Y9uOFl.js → accounts-B2THsSu_.js} +1 -1
  124. package/dist/ui/assets/{alert-dialog-B7gsksZn.js → alert-dialog-Vurq1xzV.js} +1 -1
  125. package/dist/ui/assets/{api-Cz8U6P7R.js → api-CjLfG9mL.js} +1 -1
  126. package/dist/ui/assets/{auth-section-C8dzvYje.js → auth-section-iGkrMaT4.js} +1 -1
  127. package/dist/ui/assets/{backups-section-D0dn59k8.js → backups-section-DUGG_4KP.js} +1 -1
  128. package/dist/ui/assets/{channels-BEmwDrRW.js → channels-CimlCc2d.js} +1 -1
  129. package/dist/ui/assets/{checkbox-DD0s2D_O.js → checkbox-HiMHasEB.js} +1 -1
  130. package/dist/ui/assets/claude-extension-B2v9bsN9.js +1 -0
  131. package/dist/ui/assets/{cliproxy-ai-providers-B440rPlH.js → cliproxy-ai-providers-2lI5jSHb.js} +6 -6
  132. package/dist/ui/assets/{cliproxy-control-panel-Bo-Y41B_.js → cliproxy-control-panel-63gDI-e5.js} +1 -1
  133. package/dist/ui/assets/cliproxy-fai69Vyd.js +4 -0
  134. package/dist/ui/assets/{codex-DPe04ol4.js → codex-i_hfI4Tv.js} +1 -1
  135. package/dist/ui/assets/{confirm-dialog-MQNmqmha.js → confirm-dialog-B_6SrSxL.js} +1 -1
  136. package/dist/ui/assets/{copilot-COZj29YU.js → copilot-BgG5x_X6.js} +2 -2
  137. package/dist/ui/assets/{cursor-D0occhsH.js → cursor-DF63lFcy.js} +1 -1
  138. package/dist/ui/assets/droid-CqlQmFtN.js +2 -0
  139. package/dist/ui/assets/{globalenv-section-BwuNrdbO.js → globalenv-section-CYNmD12i.js} +1 -1
  140. package/dist/ui/assets/{health-DjNOO9K-.js → health-7ZO5PEm9.js} +1 -1
  141. package/dist/ui/assets/{index-Bnzie_zG.js → index-BC5ssPfF.js} +1 -1
  142. package/dist/ui/assets/index-BMoGhs28.css +1 -0
  143. package/dist/ui/assets/{index-i2MPNni3.js → index-Bgcd4FYK.js} +1 -1
  144. package/dist/ui/assets/{index-CmOBelFi.js → index-CFu0saCM.js} +1 -1
  145. package/dist/ui/assets/index-CqsmdQoA.js +1 -0
  146. package/dist/ui/assets/{index-CjM3Ehb8.js → index-D3kxCuJ7.js} +1 -1
  147. package/dist/ui/assets/{index-CSlgRg0s.js → index-DmV9wJET.js} +3 -3
  148. package/dist/ui/assets/{index-Bm_0r3qk.js → index-hHb9o079.js} +1 -1
  149. package/dist/ui/assets/{logs-7bWvuc1l.js → logs-Dy-yZhIK.js} +1 -1
  150. package/dist/ui/assets/{masked-input-D_amxi96.js → masked-input-BSLeznEs.js} +1 -1
  151. package/dist/ui/assets/{proxy-status-widget-BkC-wCtI.js → proxy-status-widget-hRH1agF9.js} +1 -1
  152. package/dist/ui/assets/{raw-json-settings-editor-panel-CVP5Bjfm.js → raw-json-settings-editor-panel-Bs83yILR.js} +1 -1
  153. package/dist/ui/assets/{searchable-select-e5sY7o6g.js → searchable-select-pXUC_0Ih.js} +1 -1
  154. package/dist/ui/assets/{separator-BR5bmtI7.js → separator-FZR_61I9.js} +1 -1
  155. package/dist/ui/assets/{shared-CsqW2cFN.js → shared-BiIwM7--.js} +1 -1
  156. package/dist/ui/assets/{table-DPheAd4c.js → table-_9IusQ8G.js} +1 -1
  157. package/dist/ui/assets/{updates-D07RjKLJ.js → updates-ButNfJqt.js} +1 -1
  158. package/dist/ui/assets/{use-accounts-CWVR2NXQ.js → use-accounts-BdtI0lBv.js} +1 -1
  159. package/dist/ui/index.html +2 -2
  160. package/dist/utils/claude-subcommand-detector.d.ts +12 -3
  161. package/dist/utils/claude-subcommand-detector.d.ts.map +1 -1
  162. package/dist/utils/claude-subcommand-detector.js +59 -12
  163. package/dist/utils/claude-subcommand-detector.js.map +1 -1
  164. package/dist/web-server/routes/cliproxy-stats-routes.d.ts +8 -0
  165. package/dist/web-server/routes/cliproxy-stats-routes.d.ts.map +1 -1
  166. package/dist/web-server/routes/cliproxy-stats-routes.js +13 -26
  167. package/dist/web-server/routes/cliproxy-stats-routes.js.map +1 -1
  168. package/dist/web-server/services/cliproxy-dashboard-restart-service.d.ts +21 -0
  169. package/dist/web-server/services/cliproxy-dashboard-restart-service.d.ts.map +1 -0
  170. package/dist/web-server/services/cliproxy-dashboard-restart-service.js +49 -0
  171. package/dist/web-server/services/cliproxy-dashboard-restart-service.js.map +1 -0
  172. package/dist/web-server/services/codex-dashboard-service.d.ts.map +1 -1
  173. package/dist/web-server/services/codex-dashboard-service.js +30 -3
  174. package/dist/web-server/services/codex-dashboard-service.js.map +1 -1
  175. package/dist/web-server/usage/aggregator.d.ts +13 -7
  176. package/dist/web-server/usage/aggregator.d.ts.map +1 -1
  177. package/dist/web-server/usage/aggregator.js +37 -22
  178. package/dist/web-server/usage/aggregator.js.map +1 -1
  179. package/dist/web-server/usage/handlers.d.ts +1 -0
  180. package/dist/web-server/usage/handlers.d.ts.map +1 -1
  181. package/dist/web-server/usage/handlers.js +16 -8
  182. package/dist/web-server/usage/handlers.js.map +1 -1
  183. package/dist/web-server/usage/profile-filter.d.ts +13 -0
  184. package/dist/web-server/usage/profile-filter.d.ts.map +1 -0
  185. package/dist/web-server/usage/profile-filter.js +30 -0
  186. package/dist/web-server/usage/profile-filter.js.map +1 -0
  187. package/dist/web-server/usage/types.d.ts +8 -0
  188. package/dist/web-server/usage/types.d.ts.map +1 -1
  189. package/lib/mcp/ccs-browser-server.cjs +217 -12
  190. package/package.json +1 -1
  191. package/scripts/docker-dashboard-sunset-guard.js +171 -0
  192. package/dist/ui/assets/claude-extension-DHVBsw6b.js +0 -1
  193. package/dist/ui/assets/cliproxy-BMlbpAIO.js +0 -4
  194. package/dist/ui/assets/droid-CSaYFApd.js +0 -2
  195. package/dist/ui/assets/index-D9HfyuQr.js +0 -1
  196. 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
- // Ensure CLIProxy service is running for dashboard features
132
- console.log(deps.info('Starting CLIProxy service...'));
133
- const cliproxyResult = await deps.ensureCliproxyService((0, port_manager_1.resolveLifecyclePort)(), verbose);
134
- logger.info('cliproxy.ensure_result', 'Config command checked CLIProxy availability', {
135
- started: cliproxyResult.started,
136
- alreadyRunning: cliproxyResult.alreadyRunning,
137
- configRegenerated: cliproxyResult.configRegenerated,
138
- port: cliproxyResult.port || null,
139
- error: cliproxyResult.error || null,
140
- });
141
- if (cliproxyResult.started) {
142
- if (cliproxyResult.alreadyRunning) {
143
- console.log(deps.ok(`CLIProxy already running on port ${cliproxyResult.port}`));
144
- if (cliproxyResult.configRegenerated) {
145
- console.log(deps.warn('Config updated - restart CLIProxy to apply changes'));
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.ok(`CLIProxy started on port ${cliproxyResult.port}`));
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":"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"}
1
+ {"version":3,"file":"config-command.js","sourceRoot":"","sources":["../../src/commands/config-command.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function handleFinalizeKeyRotation(args: string[]): Promise<void>;
2
+ //# sourceMappingURL=finalize-key-rotation-subcommand.d.ts.map
@@ -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,CA+D9C"}
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;aAC/D;SACF;QACD;YACE,iBAAiB;YACjB;gBACE,CAAC,iBAAiB,EAAE,oEAAoE,CAAC;gBACzF,CAAC,YAAY,EAAE,wBAAwB,CAAC;aACzC;SACF;QACD;YACE,sBAAsB;YACtB;gBACE,CAAC,kBAAkB,EAAE,yCAAyC,CAAC;gBAC/D,CAAC,wBAAwB,EAAE,wCAAwC,CAAC;gBACpE,CAAC,eAAe,EAAE,0BAA0B,CAAC;gBAC7C,CAAC,uBAAuB,EAAE,gCAAgC,CAAC;aAC5D;SACF;QACD;YACE,WAAW;YACX;gBACE,CAAC,eAAe,EAAE,gDAAgD,CAAC;gBACnE,CAAC,6CAA6C,EAAE,iCAAiC,CAAC;gBAClF,CAAC,iCAAiC,EAAE,2CAA2C,CAAC;gBAChF,CAAC,6BAA6B,EAAE,mDAAmD,CAAC;gBACpF,CAAC,wCAAwC,EAAE,0BAA0B,CAAC;gBACtE,CAAC,iCAAiC,EAAE,0CAA0C,CAAC;aAChF;SACF;KACF,CAAC;IAEF,KAAK,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,QAAQ,EAAE,CAAC;QACrC,OAAO,CAAC,GAAG,CAAC,IAAA,cAAS,EAAC,KAAK,CAAC,CAAC,CAAC;QAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;QACnE,KAAK,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC,IAAI,IAAI,EAAE,CAAC;YAC1C,OAAO,CAAC,GAAG,CAAC,KAAK,IAAA,UAAK,EAAC,OAAO,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,IAAI,WAAW,EAAE,CAAC,CAAC;QACjF,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;IAED,OAAO,CAAC,GAAG,CACT,IAAA,QAAG,EAAC,qFAAqF,CAAC,CAC3F,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC;AA/DD,4BA+DC"}
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":"AA8BA,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAgCvE"}
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;AAhCD,kDAgCC"}
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,2 @@
1
+ export declare function handleShowKey(args: string[]): Promise<void>;
2
+ //# sourceMappingURL=show-key-subcommand.d.ts.map
@@ -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":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAAyB;AACzB,yCAA8C;AAC9C,0EAG0C;AAC1C,uCAAiE;AACjE,uCAA2E;AAE3E,MAAM,WAAW,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,mBAAmB,EAAE,eAAe,CAAU,CAAC;AAExF,SAAS,yBAAyB,CAAC,IAAc;IAC/C,OAAO,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAC5E,CAAC;AAEM,KAAK,UAAU,aAAa,CAAC,IAAc;IAChD,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;IAClD,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAA,WAAM,GAAE,CAAC;IACjB,CAAC;IAED,MAAM,MAAM,GAAG,IAAA,2BAAiB,EAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IACpD,MAAM,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC,MAAM,CAC/C,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,mBAAmB,IAAI,GAAG,KAAK,eAAe,CACpF,CAAC;IACF,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,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACrC,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,EAAE,CAAC;QACrC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,uBAAc,EAAE,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC;YACzE,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,gDAA0B,GAAE,CAAC;IAC5C,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,MAAM,GAAG,IAAA,mDAA6B,EAAC,MAAM,CAAC,CAAC;QACrD,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACtB,CAAC;QACD,OAAO;IACT,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;IAC9D,OAAO,CAAC,GAAG,CAAC,IAAA,WAAM,EAAC,yBAAyB,CAAC,CAAC,CAAC;IAC/C,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,IAAA,SAAI,EAAC,YAAY,UAAU,IAAI,kBAAkB,EAAE,CAAC,CAAC,CAAC;IAClE,IAAI,MAAM,CAAC,iBAAiB,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;QACnD,OAAO,CAAC,GAAG,CAAC,IAAA,SAAI,EAAC,eAAe,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;QACjE,OAAO,CAAC,GAAG,CAAC,IAAA,SAAI,EAAC,uBAAuB,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;IAC3E,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,IAAA,SAAI,EAAC,4BAA4B,CAAC,CAAC,CAAC;IAClD,CAAC;IACD,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,IAAA,SAAI,EAAC,sDAAsD,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;IAC9F,CAAC;AACH,CAAC;AAjED,sCAiEC"}
@@ -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,CA6C5D"}
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;AA7CD,4BA6CC"}
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;AAstBH,mCAAmC;AACnC,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAqNxE"}
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, codex, agy, qwen, kiro, ghcp`);
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 codex --dangerously-skip-permissions', 'command')}`);
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('');