@jsonstudio/rcc 0.89.1562 → 0.89.1800

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 (220) hide show
  1. package/README.md +97 -13
  2. package/configsamples/config.json +8 -8
  3. package/configsamples/config.reference.json +1 -1
  4. package/configsamples/provider/crs/config.v1.json +1 -1
  5. package/configsamples/provider/glm/config.v1.json +1 -1
  6. package/configsamples/provider/glm-anthropic/config.v1.json +1 -1
  7. package/configsamples/provider/kimi/config.v1.json +1 -1
  8. package/configsamples/provider/lmstudio/config.v1.json +2 -1
  9. package/configsamples/provider/mimo/config.v1.json +1 -1
  10. package/configsamples/provider/modelscope/config.v1.json +1 -1
  11. package/configsamples/provider/qwen/config.v1.json +1 -1
  12. package/configsamples/provider/tab/config.v1.json +2 -1
  13. package/configsamples/provider/tabglm/config.v1.json +1 -1
  14. package/dist/build-info.js +3 -3
  15. package/dist/build-info.js.map +1 -1
  16. package/dist/cli/commands/config.js +8 -9
  17. package/dist/cli/commands/config.js.map +1 -1
  18. package/dist/cli/commands/restart.d.ts +4 -12
  19. package/dist/cli/commands/restart.js +226 -120
  20. package/dist/cli/commands/restart.js.map +1 -1
  21. package/dist/cli/commands/start.d.ts +1 -0
  22. package/dist/cli/commands/start.js +28 -1
  23. package/dist/cli/commands/start.js.map +1 -1
  24. package/dist/cli/commands/status.js +12 -6
  25. package/dist/cli/commands/status.js.map +1 -1
  26. package/dist/cli/config/init-provider-catalog.js +12 -11
  27. package/dist/cli/config/init-provider-catalog.js.map +1 -1
  28. package/dist/cli.js +3 -14
  29. package/dist/cli.js.map +1 -1
  30. package/dist/client/anthropic/anthropic-protocol-client.d.ts +1 -0
  31. package/dist/client/anthropic/anthropic-protocol-client.js +25 -0
  32. package/dist/client/anthropic/anthropic-protocol-client.js.map +1 -1
  33. package/dist/commands/oauth.js +185 -9
  34. package/dist/commands/oauth.js.map +1 -1
  35. package/dist/commands/token-daemon.js +12 -2
  36. package/dist/commands/token-daemon.js.map +1 -1
  37. package/dist/docs/daemon-admin-ui.html +1242 -234
  38. package/dist/index.js +119 -0
  39. package/dist/index.js.map +1 -1
  40. package/dist/manager/index.d.ts +2 -0
  41. package/dist/manager/index.js +39 -2
  42. package/dist/manager/index.js.map +1 -1
  43. package/dist/manager/modules/quota/antigravity-quota-manager.d.ts +29 -5
  44. package/dist/manager/modules/quota/antigravity-quota-manager.js +369 -113
  45. package/dist/manager/modules/quota/antigravity-quota-manager.js.map +1 -1
  46. package/dist/manager/modules/quota/provider-quota-daemon.cooldown.d.ts +7 -0
  47. package/dist/manager/modules/quota/provider-quota-daemon.cooldown.js +61 -0
  48. package/dist/manager/modules/quota/provider-quota-daemon.cooldown.js.map +1 -1
  49. package/dist/manager/modules/quota/provider-quota-daemon.d.ts +1 -0
  50. package/dist/manager/modules/quota/provider-quota-daemon.events.js +134 -5
  51. package/dist/manager/modules/quota/provider-quota-daemon.events.js.map +1 -1
  52. package/dist/manager/modules/quota/provider-quota-daemon.js +19 -13
  53. package/dist/manager/modules/quota/provider-quota-daemon.js.map +1 -1
  54. package/dist/manager/modules/quota/provider-quota-daemon.model-backoff.d.ts +1 -0
  55. package/dist/manager/modules/quota/provider-quota-daemon.model-backoff.js +8 -3
  56. package/dist/manager/modules/quota/provider-quota-daemon.model-backoff.js.map +1 -1
  57. package/dist/manager/modules/token/index.js +2 -2
  58. package/dist/manager/modules/token/index.js.map +1 -1
  59. package/dist/manager/quota/provider-quota-center.d.ts +9 -0
  60. package/dist/manager/quota/provider-quota-center.js +19 -2
  61. package/dist/manager/quota/provider-quota-center.js.map +1 -1
  62. package/dist/modules/llmswitch/bridge.d.ts +33 -1
  63. package/dist/modules/llmswitch/bridge.js +170 -2
  64. package/dist/modules/llmswitch/bridge.js.map +1 -1
  65. package/dist/modules/llmswitch/core-loader.js +64 -11
  66. package/dist/modules/llmswitch/core-loader.js.map +1 -1
  67. package/dist/modules/pipeline/utils/debug-logger.d.ts +1 -0
  68. package/dist/modules/pipeline/utils/debug-logger.js +50 -3
  69. package/dist/modules/pipeline/utils/debug-logger.js.map +1 -1
  70. package/dist/providers/auth/apikey-auth.js +15 -3
  71. package/dist/providers/auth/apikey-auth.js.map +1 -1
  72. package/dist/providers/auth/oauth-lifecycle.d.ts +13 -1
  73. package/dist/providers/auth/oauth-lifecycle.js +346 -45
  74. package/dist/providers/auth/oauth-lifecycle.js.map +1 -1
  75. package/dist/providers/auth/oauth-repair-cooldown.d.ts +21 -0
  76. package/dist/providers/auth/oauth-repair-cooldown.js +100 -0
  77. package/dist/providers/auth/oauth-repair-cooldown.js.map +1 -0
  78. package/dist/providers/auth/oauth-repair-env.d.ts +1 -0
  79. package/dist/providers/auth/oauth-repair-env.js +79 -0
  80. package/dist/providers/auth/oauth-repair-env.js.map +1 -0
  81. package/dist/providers/auth/qwen-userinfo-helper.d.ts +2 -0
  82. package/dist/providers/auth/qwen-userinfo-helper.js +72 -40
  83. package/dist/providers/auth/qwen-userinfo-helper.js.map +1 -1
  84. package/dist/providers/auth/tokenfile-auth.js +148 -17
  85. package/dist/providers/auth/tokenfile-auth.js.map +1 -1
  86. package/dist/providers/core/api/provider-types.d.ts +10 -0
  87. package/dist/providers/core/config/camoufox-launcher.d.ts +3 -0
  88. package/dist/providers/core/config/camoufox-launcher.js +190 -3
  89. package/dist/providers/core/config/camoufox-launcher.js.map +1 -1
  90. package/dist/providers/core/config/oauth-flows.js +50 -19
  91. package/dist/providers/core/config/oauth-flows.js.map +1 -1
  92. package/dist/providers/core/config/provider-oauth-configs.js +1 -1
  93. package/dist/providers/core/config/provider-oauth-configs.js.map +1 -1
  94. package/dist/providers/core/runtime/gemini-cli-http-provider.d.ts +5 -0
  95. package/dist/providers/core/runtime/gemini-cli-http-provider.js +172 -15
  96. package/dist/providers/core/runtime/gemini-cli-http-provider.js.map +1 -1
  97. package/dist/providers/core/runtime/gemini-http-provider.d.ts +11 -0
  98. package/dist/providers/core/runtime/gemini-http-provider.js +281 -3
  99. package/dist/providers/core/runtime/gemini-http-provider.js.map +1 -1
  100. package/dist/providers/core/runtime/http-request-executor.js +55 -0
  101. package/dist/providers/core/runtime/http-request-executor.js.map +1 -1
  102. package/dist/providers/core/runtime/http-transport-provider.js +10 -14
  103. package/dist/providers/core/runtime/http-transport-provider.js.map +1 -1
  104. package/dist/providers/core/runtime/provider-factory.d.ts +1 -0
  105. package/dist/providers/core/runtime/provider-factory.js +40 -2
  106. package/dist/providers/core/runtime/provider-factory.js.map +1 -1
  107. package/dist/providers/core/strategies/oauth-auth-code-flow.js +45 -2
  108. package/dist/providers/core/strategies/oauth-auth-code-flow.js.map +1 -1
  109. package/dist/providers/core/strategies/oauth-device-flow.js +13 -2
  110. package/dist/providers/core/strategies/oauth-device-flow.js.map +1 -1
  111. package/dist/providers/core/strategies/oauth-refresh-errors.d.ts +1 -0
  112. package/dist/providers/core/strategies/oauth-refresh-errors.js +26 -0
  113. package/dist/providers/core/strategies/oauth-refresh-errors.js.map +1 -0
  114. package/dist/providers/core/utils/snapshot-writer.d.ts +4 -2
  115. package/dist/providers/core/utils/snapshot-writer.js +86 -23
  116. package/dist/providers/core/utils/snapshot-writer.js.map +1 -1
  117. package/dist/scripts/camoufox/launch-auth.mjs +545 -49
  118. package/dist/server/handlers/chat-handler.js +1 -1
  119. package/dist/server/handlers/chat-handler.js.map +1 -1
  120. package/dist/server/handlers/handler-utils.d.ts +1 -0
  121. package/dist/server/handlers/handler-utils.js +231 -3
  122. package/dist/server/handlers/handler-utils.js.map +1 -1
  123. package/dist/server/handlers/messages-handler.js +1 -1
  124. package/dist/server/handlers/messages-handler.js.map +1 -1
  125. package/dist/server/handlers/responses-handler.js +17 -5
  126. package/dist/server/handlers/responses-handler.js.map +1 -1
  127. package/dist/server/handlers/sse-dispatcher.js +10 -1
  128. package/dist/server/handlers/sse-dispatcher.js.map +1 -1
  129. package/dist/server/runtime/http-server/daemon-admin/control-handler.d.ts +3 -0
  130. package/dist/server/runtime/http-server/daemon-admin/control-handler.js +389 -0
  131. package/dist/server/runtime/http-server/daemon-admin/control-handler.js.map +1 -0
  132. package/dist/server/runtime/http-server/daemon-admin/credentials-handler.js +190 -5
  133. package/dist/server/runtime/http-server/daemon-admin/credentials-handler.js.map +1 -1
  134. package/dist/server/runtime/http-server/daemon-admin/providers-handler.js +2 -1
  135. package/dist/server/runtime/http-server/daemon-admin/providers-handler.js.map +1 -1
  136. package/dist/server/runtime/http-server/daemon-admin/quota-handler.js +116 -14
  137. package/dist/server/runtime/http-server/daemon-admin/quota-handler.js.map +1 -1
  138. package/dist/server/runtime/http-server/daemon-admin/routing-policy.d.ts +30 -0
  139. package/dist/server/runtime/http-server/daemon-admin/routing-policy.js +133 -0
  140. package/dist/server/runtime/http-server/daemon-admin/routing-policy.js.map +1 -0
  141. package/dist/server/runtime/http-server/daemon-admin/status-handler.js +40 -1
  142. package/dist/server/runtime/http-server/daemon-admin/status-handler.js.map +1 -1
  143. package/dist/server/runtime/http-server/daemon-admin-routes.d.ts +5 -0
  144. package/dist/server/runtime/http-server/daemon-admin-routes.js +3 -0
  145. package/dist/server/runtime/http-server/daemon-admin-routes.js.map +1 -1
  146. package/dist/server/runtime/http-server/executor-pipeline.d.ts +10 -0
  147. package/dist/server/runtime/http-server/executor-pipeline.js +6 -0
  148. package/dist/server/runtime/http-server/executor-pipeline.js.map +1 -1
  149. package/dist/server/runtime/http-server/executor-response.js +26 -0
  150. package/dist/server/runtime/http-server/executor-response.js.map +1 -1
  151. package/dist/server/runtime/http-server/hub-shadow-compare.js +41 -3
  152. package/dist/server/runtime/http-server/hub-shadow-compare.js.map +1 -1
  153. package/dist/server/runtime/http-server/index.d.ts +9 -0
  154. package/dist/server/runtime/http-server/index.js +337 -91
  155. package/dist/server/runtime/http-server/index.js.map +1 -1
  156. package/dist/server/runtime/http-server/middleware.js +27 -1
  157. package/dist/server/runtime/http-server/middleware.js.map +1 -1
  158. package/dist/server/runtime/http-server/request-executor.js +159 -24
  159. package/dist/server/runtime/http-server/request-executor.js.map +1 -1
  160. package/dist/server/runtime/http-server/routes.d.ts +1 -0
  161. package/dist/server/runtime/http-server/routes.js +36 -3
  162. package/dist/server/runtime/http-server/routes.js.map +1 -1
  163. package/dist/server/runtime/http-server/server-id.d.ts +1 -0
  164. package/dist/server/runtime/http-server/server-id.js +18 -0
  165. package/dist/server/runtime/http-server/server-id.js.map +1 -0
  166. package/dist/server/runtime/http-server/stats-manager.d.ts +2 -0
  167. package/dist/server/runtime/http-server/stats-manager.js +63 -7
  168. package/dist/server/runtime/http-server/stats-manager.js.map +1 -1
  169. package/dist/server/runtime/http-server/types.d.ts +2 -0
  170. package/dist/server/utils/stage-logger.js +54 -9
  171. package/dist/server/utils/stage-logger.js.map +1 -1
  172. package/dist/token-daemon/history-store.d.ts +8 -3
  173. package/dist/token-daemon/history-store.js +41 -20
  174. package/dist/token-daemon/history-store.js.map +1 -1
  175. package/dist/token-daemon/index.d.ts +5 -1
  176. package/dist/token-daemon/index.js +191 -11
  177. package/dist/token-daemon/index.js.map +1 -1
  178. package/dist/token-daemon/quota-auth-issue.d.ts +7 -0
  179. package/dist/token-daemon/quota-auth-issue.js +231 -0
  180. package/dist/token-daemon/quota-auth-issue.js.map +1 -0
  181. package/dist/token-daemon/token-daemon.d.ts +2 -0
  182. package/dist/token-daemon/token-daemon.js +177 -14
  183. package/dist/token-daemon/token-daemon.js.map +1 -1
  184. package/dist/token-portal/local-token-portal.js +6 -0
  185. package/dist/token-portal/local-token-portal.js.map +1 -1
  186. package/docs/ANTIGRAVITY_IDE_FORWARD_PROXY.md +61 -0
  187. package/docs/ANTIGRAVITY_THOUGHT_SIGNATURE_BOOTSTRAP_429.md +80 -0
  188. package/docs/CLOCK.md +94 -0
  189. package/docs/DAEMON_CONTROL_PLANE.md +34 -0
  190. package/docs/OAUTH.md +172 -0
  191. package/docs/PROVIDERS_BUILTIN.md +5 -3
  192. package/docs/PROVIDER_TYPES.md +6 -4
  193. package/docs/QUOTA_MANAGER_V3.md +54 -0
  194. package/docs/ROUTING_POLICY_SCHEMA.md +47 -0
  195. package/docs/ROUTING_POLICY_UI.md +11 -0
  196. package/docs/SERVERTOOL_CLOCK_DESIGN.md +56 -25
  197. package/docs/antigravity-routing-contract.md +17 -11
  198. package/docs/config-secrets.md +49 -0
  199. package/docs/daemon-admin-ui.html +1242 -234
  200. package/docs/oauth-authentication-guide.md +4 -0
  201. package/docs/oauth-iflow-implementation.md +4 -0
  202. package/docs/provider-quota-design.md +11 -0
  203. package/docs/providers/antigravity-gemini-provider-compat.md +1 -0
  204. package/docs/providers/antigravity-thought-signature.md +127 -0
  205. package/docs/providers/tabglm-claude-code-compat.md +11 -3
  206. package/docs/refactoring/host-sharedmodule-safe-migration-plan.md +164 -0
  207. package/docs/token-daemon-preview.html +2 -2
  208. package/docs/token-refresh-daemon-plan.md +6 -6
  209. package/package.json +4 -3
  210. package/scripts/antigravity-ide-forward-proxy.mjs +362 -0
  211. package/scripts/backfill-apply-patch-exec-errorsamples.mjs +19 -0
  212. package/scripts/camoufox/launch-auth.mjs +545 -49
  213. package/scripts/ci/repo-sanity.mjs +2 -0
  214. package/scripts/install-global.sh +46 -0
  215. package/scripts/migrate-antigravity-session-signatures-alias.mjs +193 -0
  216. package/scripts/migrate-antigravity-session-signatures.mjs +165 -0
  217. package/scripts/tests/blackbox-rcc-vs-routecodex-antigravity.mjs +44 -9
  218. package/scripts/tests/ci-jest.mjs +3 -0
  219. package/scripts/verify-client-headers.mjs +33 -5
  220. package/scripts/virtual-router-dryrun.mjs +333 -0
@@ -7,28 +7,36 @@ function parseConfigPortHost(config) {
7
7
  const host = (config?.httpserver?.host ?? config?.server?.host ?? config?.host ?? LOCAL_HOSTS.LOCALHOST);
8
8
  return { port, host };
9
9
  }
10
- function resolvePortHost(ctx, options, spinner) {
11
- if (ctx.isDevPackage) {
12
- const envPort = Number(ctx.env?.ROUTECODEX_PORT || ctx.env?.RCC_PORT || NaN);
13
- if (!Number.isNaN(envPort) && envPort > 0) {
14
- ctx.logger.info(`Using port ${envPort} from environment (ROUTECODEX_PORT/RCC_PORT) [dev package: routecodex]`);
15
- return { port: envPort, host: LOCAL_HOSTS.LOCALHOST };
16
- }
17
- const resolvedPort = ctx.defaultDevPort;
18
- ctx.logger.info(`Using dev default port ${resolvedPort} (routecodex dev package)`);
19
- return { port: resolvedPort, host: LOCAL_HOSTS.LOCALHOST };
10
+ function parsePortOption(ctx, spinner, value) {
11
+ if (value === undefined || value === null) {
12
+ return null;
13
+ }
14
+ const raw = String(value).trim();
15
+ if (!raw) {
16
+ return null;
17
+ }
18
+ const port = Number(raw);
19
+ if (!Number.isFinite(port) || port <= 0) {
20
+ spinner.fail(`Invalid --port value: ${raw}`);
21
+ ctx.exit(1);
20
22
  }
23
+ return port;
24
+ }
25
+ function resolveConfigPortHostMaybe(ctx, options, spinner, opts) {
21
26
  const fsImpl = ctx.fsImpl ?? fs;
22
27
  const pathImpl = ctx.pathImpl ?? path;
23
28
  const home = ctx.getHomeDir ?? (() => homedir());
24
29
  const configPath = options.config || pathImpl.join(home(), '.routecodex', 'config.json');
25
30
  if (!fsImpl.existsSync(configPath)) {
26
- spinner.fail(`Configuration file not found: ${configPath}`);
27
- ctx.logger.error('Cannot determine server port without configuration file');
28
- ctx.logger.info('Please create a configuration file first:');
29
- ctx.logger.info(' rcc init');
30
- ctx.logger.info(' rcc config init');
31
- ctx.exit(1);
31
+ if (opts?.strict) {
32
+ spinner.fail(`Configuration file not found: ${configPath}`);
33
+ ctx.logger.error('Cannot determine server port without configuration file');
34
+ ctx.logger.info('Please create a configuration file first:');
35
+ ctx.logger.info(' rcc init');
36
+ ctx.logger.info(' rcc config init');
37
+ ctx.exit(1);
38
+ }
39
+ return null;
32
40
  }
33
41
  let config;
34
42
  try {
@@ -36,139 +44,237 @@ function resolvePortHost(ctx, options, spinner) {
36
44
  config = JSON.parse(configContent);
37
45
  }
38
46
  catch {
39
- spinner.fail('Failed to parse configuration file');
40
- ctx.logger.error(`Invalid JSON in configuration file: ${configPath}`);
41
- ctx.exit(1);
47
+ if (opts?.strict) {
48
+ spinner.fail('Failed to parse configuration file');
49
+ ctx.logger.error(`Invalid JSON in configuration file: ${configPath}`);
50
+ ctx.exit(1);
51
+ }
52
+ return null;
42
53
  }
43
54
  const { port, host } = parseConfigPortHost(config);
44
55
  if (!port || typeof port !== 'number' || port <= 0) {
45
- spinner.fail('Invalid or missing port configuration');
46
- ctx.logger.error('Configuration file must specify a valid port number');
47
- ctx.exit(1);
56
+ if (opts?.strict) {
57
+ spinner.fail('Invalid or missing port configuration');
58
+ ctx.logger.error('Configuration file must specify a valid port number');
59
+ ctx.exit(1);
60
+ }
61
+ return null;
48
62
  }
49
63
  return { port, host: String(host || LOCAL_HOSTS.LOCALHOST) };
50
64
  }
51
- async function stopExisting(ctx, port) {
52
- const pids = ctx.findListeningPids(port);
53
- if (!pids.length) {
54
- return;
65
+ function getSessionCandidatePorts(ctx) {
66
+ const fsImpl = ctx.fsImpl && typeof ctx.fsImpl.readdirSync === 'function' && typeof ctx.fsImpl.statSync === 'function'
67
+ ? ctx.fsImpl
68
+ : fs;
69
+ const pathImpl = ctx.pathImpl ?? path;
70
+ const home = ctx.getHomeDir ?? (() => homedir());
71
+ const base = pathImpl.join(home(), '.routecodex', 'sessions');
72
+ try {
73
+ if (!fsImpl.existsSync(base)) {
74
+ return [];
75
+ }
76
+ const entries = fsImpl.readdirSync?.(base, { withFileTypes: true }) ?? fsImpl.readdirSync(base);
77
+ const ports = [];
78
+ for (const entry of entries) {
79
+ const name = typeof entry === 'string' ? entry : String(entry?.name ?? '');
80
+ if (!name) {
81
+ continue;
82
+ }
83
+ const isDir = typeof entry !== 'string'
84
+ ? Boolean(entry.isDirectory?.())
85
+ : (() => {
86
+ try {
87
+ return fsImpl.statSync(pathImpl.join(base, name)).isDirectory();
88
+ }
89
+ catch {
90
+ return false;
91
+ }
92
+ })();
93
+ if (!isDir) {
94
+ continue;
95
+ }
96
+ const m = name.match(/_(\d+)$/);
97
+ if (!m) {
98
+ continue;
99
+ }
100
+ const port = Number(m[1]);
101
+ if (Number.isFinite(port) && port > 0) {
102
+ ports.push(port);
103
+ }
104
+ }
105
+ return ports;
55
106
  }
56
- for (const pid of pids) {
57
- ctx.killPidBestEffort(pid, { force: false });
107
+ catch {
108
+ return [];
58
109
  }
59
- const deadline = Date.now() + 3500;
60
- while (Date.now() < deadline) {
61
- if (ctx.findListeningPids(port).length === 0) {
62
- break;
110
+ }
111
+ async function isRouteCodexServer(ctx, host, port) {
112
+ try {
113
+ const controller = new AbortController();
114
+ const timeout = setTimeout(() => {
115
+ try {
116
+ controller.abort();
117
+ }
118
+ catch { /* ignore */ }
119
+ }, 900);
120
+ const res = await ctx.fetch(`${HTTP_PROTOCOLS.HTTP}${host}:${port}${API_PATHS.HEALTH}`, { signal: controller.signal }).catch(() => null);
121
+ clearTimeout(timeout);
122
+ if (!res || !res.ok) {
123
+ return false;
63
124
  }
64
- await ctx.sleep(120);
125
+ const data = await res.json?.().catch(() => null);
126
+ return Boolean(data && typeof data === 'object' && data.server === 'routecodex');
65
127
  }
66
- const remain = ctx.findListeningPids(port);
67
- for (const pid of remain) {
68
- ctx.killPidBestEffort(pid, { force: true });
128
+ catch {
129
+ return false;
69
130
  }
70
131
  }
132
+ async function resolveRestartTargets(ctx, options, spinner) {
133
+ const explicitPort = parsePortOption(ctx, spinner, options.port);
134
+ const explicitHost = typeof options.host === 'string' && options.host.trim() ? options.host.trim() : null;
135
+ if (explicitPort) {
136
+ const host = explicitHost || LOCAL_HOSTS.LOCALHOST;
137
+ const pids = ctx.findListeningPids(explicitPort);
138
+ if (!pids.length) {
139
+ spinner.fail(`No RouteCodex server found on ${host}:${explicitPort}`);
140
+ ctx.exit(1);
141
+ }
142
+ const ok = await isRouteCodexServer(ctx, host === LOCAL_HOSTS.LOCALHOST ? LOCAL_HOSTS.IPV4 : host, explicitPort)
143
+ || await isRouteCodexServer(ctx, host, explicitPort);
144
+ if (!ok) {
145
+ spinner.fail(`No RouteCodex server found on ${host}:${explicitPort}`);
146
+ ctx.exit(1);
147
+ }
148
+ return [{ host, port: explicitPort, oldPids: pids }];
149
+ }
150
+ const candidatePorts = new Set();
151
+ for (const p of getSessionCandidatePorts(ctx)) {
152
+ candidatePorts.add(p);
153
+ }
154
+ if (ctx.isDevPackage) {
155
+ const envPort = Number(ctx.env?.ROUTECODEX_PORT || ctx.env?.RCC_PORT || NaN);
156
+ if (!Number.isNaN(envPort) && envPort > 0) {
157
+ candidatePorts.add(envPort);
158
+ }
159
+ candidatePorts.add(ctx.defaultDevPort);
160
+ }
161
+ const configMaybe = resolveConfigPortHostMaybe(ctx, options, spinner, { strict: Boolean(options.config) });
162
+ if (configMaybe?.port) {
163
+ candidatePorts.add(configMaybe.port);
164
+ }
165
+ const ports = Array.from(candidatePorts.values()).filter((p) => Number.isFinite(p) && p > 0);
166
+ if (!ports.length) {
167
+ spinner.fail('No known server ports to restart');
168
+ ctx.logger.error('Start a server first or specify a port: routecodex restart --port <port>');
169
+ ctx.exit(1);
170
+ }
171
+ const targets = [];
172
+ const healthHosts = [explicitHost, LOCAL_HOSTS.IPV4, LOCAL_HOSTS.LOCALHOST].filter(Boolean);
173
+ for (const port of ports) {
174
+ const pids = ctx.findListeningPids(port);
175
+ if (!pids.length) {
176
+ continue;
177
+ }
178
+ let ok = false;
179
+ let hostUsed = LOCAL_HOSTS.LOCALHOST;
180
+ for (const h of healthHosts) {
181
+ if (await isRouteCodexServer(ctx, h, port)) {
182
+ ok = true;
183
+ hostUsed = h;
184
+ break;
185
+ }
186
+ }
187
+ if (!ok) {
188
+ continue;
189
+ }
190
+ targets.push({ host: hostUsed, port, oldPids: pids });
191
+ }
192
+ if (!targets.length) {
193
+ spinner.fail('No RouteCodex servers found to restart');
194
+ ctx.logger.error(`Checked ports: ${ports.join(', ')}`);
195
+ ctx.logger.info('Tip: specify the port explicitly: routecodex restart --port <port>');
196
+ ctx.exit(1);
197
+ }
198
+ // Deterministic ordering for logs/tests.
199
+ targets.sort((a, b) => a.port - b.port);
200
+ return targets;
201
+ }
202
+ async function waitForRestart(ctx, host, port, oldPids) {
203
+ const deadline = Date.now() + 15000;
204
+ const old = new Set(oldPids);
205
+ let sawNewPid = false;
206
+ while (Date.now() < deadline) {
207
+ const current = ctx.findListeningPids(port);
208
+ if (current.some((pid) => !old.has(pid))) {
209
+ sawNewPid = true;
210
+ try {
211
+ const controller = new AbortController();
212
+ const timeout = setTimeout(() => {
213
+ try {
214
+ controller.abort();
215
+ }
216
+ catch { /* ignore */ }
217
+ }, 750);
218
+ const res = await ctx.fetch(`${HTTP_PROTOCOLS.HTTP}${host}:${port}${API_PATHS.HEALTH}`, { signal: controller.signal }).catch(() => null);
219
+ clearTimeout(timeout);
220
+ if (res && res.ok) {
221
+ return;
222
+ }
223
+ }
224
+ catch {
225
+ // ignore health failures during restart window
226
+ }
227
+ }
228
+ await ctx.sleep(sawNewPid ? 250 : 150);
229
+ }
230
+ throw new Error('Timeout waiting for server to restart');
231
+ }
71
232
  export function createRestartCommand(program, ctx) {
72
233
  program
73
234
  .command('restart')
74
- .description('Restart the RouteCodex server')
235
+ .description('Restart RouteCodex server(s) (default: broadcast to all running servers)')
75
236
  .option('-c, --config <config>', 'Configuration file path')
237
+ .option('-p, --port <port>', 'Restart a specific RouteCodex server port')
238
+ .option('--host <host>', 'Host for health probing (default: localhost)')
76
239
  .option('--log-level <level>', 'Log level (debug, info, warn, error)', 'info')
77
240
  .option('--codex', 'Use Codex system prompt (tools unchanged)')
78
241
  .option('--claude', 'Use Claude system prompt (tools unchanged)')
79
242
  .action(async (options) => {
80
- const spinner = await ctx.createSpinner('Restarting RouteCodex server...');
243
+ const spinner = await ctx.createSpinner('Restarting RouteCodex server(s)...');
81
244
  try {
82
- const { port: resolvedPort, host: resolvedHost } = resolvePortHost(ctx, options, spinner);
83
- await stopExisting(ctx, resolvedPort);
84
- spinner.text = 'Starting RouteCodex server...';
85
- // Prompt source flags
86
- if (options.codex && options.claude) {
87
- spinner.fail('Flags --codex and --claude are mutually exclusive');
245
+ // Prompt flags cannot be applied via a signal-based restart (server reloads from its own config/env).
246
+ if (options.codex || options.claude) {
247
+ spinner.fail('Flags --codex/--claude are not supported for restart; edit config/env and restart again.');
88
248
  ctx.exit(1);
89
249
  }
90
- const promptFlag = options.codex ? 'codex' : (options.claude ? 'claude' : null);
91
- if (promptFlag) {
92
- // Preserve existing behavior: mutate env for child.
93
- ctx.env = ctx.env || process.env;
94
- ctx.env.ROUTECODEX_SYSTEM_PROMPT_SOURCE = promptFlag;
95
- ctx.env.ROUTECODEX_SYSTEM_PROMPT_ENABLE = '1';
96
- }
97
- const modulesConfigPath = ctx.getModulesConfigPath();
98
- const serverEntry = ctx.resolveServerEntryPath();
99
- const env = { ...(ctx.env || process.env) };
100
- const args = [serverEntry, modulesConfigPath];
101
- const child = ctx.spawn(ctx.nodeBin, args, { stdio: 'inherit', env });
102
- const fsImpl = ctx.fsImpl ?? fs;
103
- const pathImpl = ctx.pathImpl ?? path;
104
- const home = ctx.getHomeDir ?? (() => homedir());
105
- try {
106
- fsImpl.writeFileSync(pathImpl.join(home(), '.routecodex', 'server.cli.pid'), String(child.pid ?? ''), 'utf8');
107
- }
108
- catch {
109
- /* ignore */
250
+ if (ctx.isWindows) {
251
+ spinner.fail('Signal-based restart is not supported on Windows');
252
+ ctx.exit(1);
110
253
  }
111
- spinner.succeed(`RouteCodex server restarting on ${resolvedHost}:${resolvedPort}`);
112
- ctx.logger.info(`Server will run on port: ${resolvedPort}`);
113
- ctx.logger.info('Press Ctrl+C to stop the server');
114
- const shutdown = async (sig) => {
115
- try {
116
- await ctx.fetch(`${HTTP_PROTOCOLS.HTTP}${LOCAL_HOSTS.IPV4}:${resolvedPort}${API_PATHS.SHUTDOWN}`, { method: 'POST' }).catch(() => { });
117
- }
118
- catch {
119
- /* ignore */
120
- }
121
- try {
122
- child.kill(sig);
123
- }
124
- catch {
125
- /* ignore */
126
- }
127
- if (!ctx.isWindows) {
254
+ const targets = await resolveRestartTargets(ctx, options, spinner);
255
+ const pidSeen = new Set();
256
+ const totalPids = targets.reduce((acc, t) => acc + t.oldPids.length, 0);
257
+ spinner.text = `Sending restart signal to ${targets.length} server(s) (${totalPids} process(es))...`;
258
+ for (const t of targets) {
259
+ for (const pid of t.oldPids) {
260
+ if (pidSeen.has(pid)) {
261
+ continue;
262
+ }
263
+ pidSeen.add(pid);
128
264
  try {
129
- if (child.pid) {
130
- process.kill(-child.pid, sig);
131
- }
265
+ ctx.sendSignal(pid, 'SIGUSR2');
132
266
  }
133
267
  catch {
134
- /* ignore */
135
- }
136
- }
137
- const deadline = Date.now() + 3500;
138
- while (Date.now() < deadline) {
139
- if (ctx.findListeningPids(resolvedPort).length === 0) {
140
- break;
268
+ // best-effort: continue broadcasting
141
269
  }
142
- await ctx.sleep(100);
143
- }
144
- const still = ctx.findListeningPids(resolvedPort);
145
- for (const pid of still) {
146
- ctx.killPidBestEffort(pid, { force: true });
147
- }
148
- try {
149
- ctx.exit(0);
150
270
  }
151
- catch {
152
- /* ignore */
153
- }
154
- };
155
- const onSignal = ctx.onSignal ?? ((sig, cb) => {
156
- process.on(sig, cb);
157
- });
158
- onSignal('SIGINT', () => { void shutdown('SIGINT'); });
159
- onSignal('SIGTERM', () => { void shutdown('SIGTERM'); });
160
- const cleanupKeypress2 = ctx.setupKeypress(() => { void shutdown('SIGINT'); });
161
- child.on('exit', (code, signal) => {
162
- try {
163
- cleanupKeypress2();
164
- }
165
- catch { /* ignore */ }
166
- if (signal) {
167
- ctx.exit(0);
168
- }
169
- ctx.exit(code ?? 0);
170
- });
171
- await ctx.waitForever();
271
+ }
272
+ spinner.text = 'Waiting for server(s) to restart...';
273
+ for (const t of targets) {
274
+ await waitForRestart(ctx, t.host || LOCAL_HOSTS.LOCALHOST, t.port, t.oldPids);
275
+ }
276
+ const ports = targets.map((t) => `${t.host}:${t.port}`).join(', ');
277
+ spinner.succeed(`RouteCodex server(s) restarted: ${ports}`);
172
278
  }
173
279
  catch (e) {
174
280
  spinner.fail(`Failed to restart: ${e.message}`);
@@ -1 +1 @@
1
- {"version":3,"file":"restart.js","sourceRoot":"","sources":["../../../src/cli/commands/restart.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"restart.js","sourceRoot":"","sources":["../../../src/cli/commands/restart.ts"],"names":[],"mappings":"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"}
@@ -20,6 +20,7 @@ type LoggerLike = {
20
20
  export type StartCommandOptions = {
21
21
  config?: string;
22
22
  port?: string;
23
+ mode?: string;
23
24
  quotaRouting?: unknown;
24
25
  logLevel?: string;
25
26
  codex?: boolean;
@@ -18,12 +18,26 @@ function parseBoolish(value) {
18
18
  }
19
19
  return undefined;
20
20
  }
21
+ function normalizeRunMode(value) {
22
+ if (typeof value !== 'string') {
23
+ return null;
24
+ }
25
+ const normalized = value.trim().toLowerCase();
26
+ if (!normalized) {
27
+ return null;
28
+ }
29
+ if (normalized === 'router' || normalized === 'analysis' || normalized === 'server') {
30
+ return normalized;
31
+ }
32
+ return null;
33
+ }
21
34
  export function createStartCommand(program, ctx) {
22
35
  program
23
36
  .command('start')
24
37
  .description('Start the RouteCodex server')
25
38
  .option('-c, --config <config>', 'Configuration file path')
26
39
  .option('-p, --port <port>', 'RouteCodex server port (dev package only; overrides env/config)')
40
+ .option('--mode <mode>', 'Run mode (router|analysis|server). analysis => router + force snapshots', 'router')
27
41
  .option('--quota-routing <mode>', 'Quota routing admission control (on|off). off => do not remove providers from pool based on quota')
28
42
  .option('--log-level <level>', 'Log level (debug, info, warn, error)', 'info')
29
43
  .option('--codex', 'Use Codex system prompt (tools unchanged)')
@@ -42,6 +56,13 @@ export function createStartCommand(program, ctx) {
42
56
  const home = ctx.homedir ?? (() => homedir());
43
57
  const tmp = ctx.tmpdir ?? (() => tmpdir());
44
58
  try {
59
+ const runMode = normalizeRunMode(options.mode) ?? 'router';
60
+ ctx.env.RCC_MODE = runMode;
61
+ ctx.env.ROUTECODEX_MODE = runMode;
62
+ if (options.snapOff && runMode === 'analysis') {
63
+ spinner.fail('Flags --snap-off and --mode analysis are mutually exclusive');
64
+ ctx.exit(1);
65
+ }
45
66
  // Validate system prompt replacement flags
46
67
  if (options.codex && options.claude) {
47
68
  spinner.fail('Flags --codex and --claude are mutually exclusive');
@@ -57,11 +78,17 @@ export function createStartCommand(program, ctx) {
57
78
  spinner.fail('Flags --snap and --snap-off are mutually exclusive');
58
79
  ctx.exit(1);
59
80
  }
60
- if (options.snap) {
81
+ const forceSnapshots = runMode === 'analysis' || options.snap === true;
82
+ if (forceSnapshots) {
61
83
  ctx.env.ROUTECODEX_SNAPSHOT = '1';
84
+ ctx.env.ROUTECODEX_HUB_SNAPSHOTS = ctx.env.ROUTECODEX_HUB_SNAPSHOTS || '1';
85
+ // Analysis mode should be able to capture streaming payloads even in release builds.
86
+ // Keep this opt-in via --mode analysis (or explicit env override).
87
+ ctx.env.ROUTECODEX_CAPTURE_STREAM_SNAPSHOTS = ctx.env.ROUTECODEX_CAPTURE_STREAM_SNAPSHOTS || '1';
62
88
  }
63
89
  else if (options.snapOff) {
64
90
  ctx.env.ROUTECODEX_SNAPSHOT = '0';
91
+ ctx.env.ROUTECODEX_HUB_SNAPSHOTS = ctx.env.ROUTECODEX_HUB_SNAPSHOTS || '0';
65
92
  }
66
93
  if (options.verboseErrors && options.quietErrors) {
67
94
  spinner.fail('Flags --verbose-errors and --quiet-errors are mutually exclusive');
@@ -1 +1 @@
1
- {"version":3,"file":"start.js","sourceRoot":"","sources":["../../../src/cli/commands/start.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"start.js","sourceRoot":"","sources":["../../../src/cli/commands/start.ts"],"names":[],"mappings":"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"}
@@ -28,7 +28,9 @@ async function checkServer(ctx, port, host) {
28
28
  }
29
29
  const data = await res.json().catch(() => null);
30
30
  const status = data?.status ? String(data.status) : 'unknown';
31
- return { status, port, host, responseTime };
31
+ const version = data?.version ? String(data.version) : undefined;
32
+ const ready = typeof data?.ready === 'boolean' ? Boolean(data.ready) : undefined;
33
+ return { status, port, host, responseTime, ...(version ? { version } : {}), ...(ready !== undefined ? { ready } : {}) };
32
34
  }
33
35
  catch (error) {
34
36
  const responseTime = Date.now() - startedAt;
@@ -44,7 +46,7 @@ function printHuman(ctx, status) {
44
46
  const normalized = status.status === 'healthy' || status.status === 'ready' ? 'running' : status.status;
45
47
  switch (normalized) {
46
48
  case 'running':
47
- ctx.logger.success(`Server is running on ${status.host}:${status.port}`);
49
+ ctx.logger.success(`Server is running on ${status.host}:${status.port}` + (status.version ? ` (version=${status.version})` : ''));
48
50
  break;
49
51
  case 'stopped':
50
52
  ctx.logger.error('Server is not running');
@@ -60,6 +62,8 @@ export function createStatusCommand(program, ctx) {
60
62
  program
61
63
  .command('status')
62
64
  .description('Show server status')
65
+ .option('-p, --port <port>', 'RouteCodex server port (overrides config)')
66
+ .option('--host <host>', 'RouteCodex server host (overrides config)')
63
67
  .option('-j, --json', 'Output in JSON format')
64
68
  .action(async (options) => {
65
69
  try {
@@ -80,13 +84,15 @@ export function createStatusCommand(program, ctx) {
80
84
  }
81
85
  return;
82
86
  }
83
- const { port, host } = pickPortHost(loaded.userConfig);
87
+ const fallback = pickPortHost(loaded.userConfig);
88
+ const explicitPort = typeof options.port === 'string' && options.port.trim() ? Number(options.port.trim()) : null;
89
+ const port = explicitPort && Number.isFinite(explicitPort) && explicitPort > 0 ? explicitPort : fallback.port;
90
+ const host = typeof options.host === 'string' && options.host.trim() ? options.host.trim() : fallback.host;
84
91
  if (!port || port <= 0) {
85
- const errorMsg = 'Invalid or missing port configuration in configuration file';
92
+ const errorMsg = 'Missing port. Set via --port or config file.';
86
93
  ctx.logger.error(errorMsg);
87
- if (options.json) {
94
+ if (options.json)
88
95
  ctx.log(JSON.stringify({ error: errorMsg }, null, 2));
89
- }
90
96
  return;
91
97
  }
92
98
  const status = await checkServer(ctx, port, host);