@jsonstudio/rcc 0.89.2239 → 0.90.89

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 (338) hide show
  1. package/README.md +27 -0
  2. package/dist/build-info.js +2 -2
  3. package/dist/build-info.js.map +1 -1
  4. package/dist/cli/commands/claude.js +4 -8
  5. package/dist/cli/commands/claude.js.map +1 -1
  6. package/dist/cli/commands/codex.js +6 -3
  7. package/dist/cli/commands/codex.js.map +1 -1
  8. package/dist/cli/commands/guardian-daemon.d.ts +2 -0
  9. package/dist/cli/commands/guardian-daemon.js +299 -0
  10. package/dist/cli/commands/guardian-daemon.js.map +1 -0
  11. package/dist/cli/commands/init/camoufox.js +1 -1
  12. package/dist/cli/commands/init/camoufox.js.map +1 -1
  13. package/dist/cli/commands/launcher/index.d.ts +1 -1
  14. package/dist/cli/commands/launcher/types.d.ts +7 -1
  15. package/dist/cli/commands/launcher/utils.d.ts +4 -1
  16. package/dist/cli/commands/launcher/utils.js +18 -8
  17. package/dist/cli/commands/launcher/utils.js.map +1 -1
  18. package/dist/cli/commands/launcher-kernel.d.ts +1 -1
  19. package/dist/cli/commands/launcher-kernel.js +608 -249
  20. package/dist/cli/commands/launcher-kernel.js.map +1 -1
  21. package/dist/cli/commands/port.js +28 -8
  22. package/dist/cli/commands/port.js.map +1 -1
  23. package/dist/cli/commands/restart.d.ts +4 -0
  24. package/dist/cli/commands/restart.js +91 -42
  25. package/dist/cli/commands/restart.js.map +1 -1
  26. package/dist/cli/commands/{clock-admin.d.ts → session-admin.d.ts} +2 -2
  27. package/dist/cli/commands/{clock-admin.js → session-admin.js} +17 -17
  28. package/dist/cli/commands/session-admin.js.map +1 -0
  29. package/dist/cli/commands/{tmux-inject.d.ts → session-inject.d.ts} +2 -2
  30. package/dist/cli/commands/{tmux-inject.js → session-inject.js} +12 -12
  31. package/dist/cli/commands/session-inject.js.map +1 -0
  32. package/dist/cli/commands/start-types.d.ts +4 -0
  33. package/dist/cli/commands/start-utils.d.ts +1 -0
  34. package/dist/cli/commands/start-utils.js +3 -0
  35. package/dist/cli/commands/start-utils.js.map +1 -1
  36. package/dist/cli/commands/start.js +122 -72
  37. package/dist/cli/commands/start.js.map +1 -1
  38. package/dist/cli/commands/stop.d.ts +3 -0
  39. package/dist/cli/commands/stop.js +30 -63
  40. package/dist/cli/commands/stop.js.map +1 -1
  41. package/dist/cli/config/init-provider-catalog.js +8 -3
  42. package/dist/cli/config/init-provider-catalog.js.map +1 -1
  43. package/dist/cli/guardian/client.d.ts +38 -0
  44. package/dist/cli/guardian/client.js +237 -0
  45. package/dist/cli/guardian/client.js.map +1 -0
  46. package/dist/cli/guardian/paths.d.ts +7 -0
  47. package/dist/cli/guardian/paths.js +13 -0
  48. package/dist/cli/guardian/paths.js.map +1 -0
  49. package/dist/cli/guardian/types.d.ts +30 -0
  50. package/dist/cli/guardian/types.js +2 -0
  51. package/dist/cli/guardian/types.js.map +1 -0
  52. package/dist/cli/register/guardian-daemon-command.d.ts +2 -0
  53. package/dist/cli/register/guardian-daemon-command.js +5 -0
  54. package/dist/cli/register/guardian-daemon-command.js.map +1 -0
  55. package/dist/cli/register/session-admin-command.d.ts +3 -0
  56. package/dist/cli/register/session-admin-command.js +5 -0
  57. package/dist/cli/register/session-admin-command.js.map +1 -0
  58. package/dist/cli/register/session-inject-command.d.ts +3 -0
  59. package/dist/cli/register/session-inject-command.js +5 -0
  60. package/dist/cli/register/session-inject-command.js.map +1 -0
  61. package/dist/cli/server/port-utils.js +57 -1
  62. package/dist/cli/server/port-utils.js.map +1 -1
  63. package/dist/cli.js +52 -4
  64. package/dist/cli.js.map +1 -1
  65. package/dist/commands/oauth.js +6 -6
  66. package/dist/commands/oauth.js.map +1 -1
  67. package/dist/config/provider-v2-loader.js +18 -3
  68. package/dist/config/provider-v2-loader.js.map +1 -1
  69. package/dist/config/routecodex-config-loader.js +184 -9
  70. package/dist/config/routecodex-config-loader.js.map +1 -1
  71. package/dist/config/unified-config-paths.js +22 -0
  72. package/dist/config/unified-config-paths.js.map +1 -1
  73. package/dist/config/virtual-router-builder.js +18 -5
  74. package/dist/config/virtual-router-builder.js.map +1 -1
  75. package/dist/config/virtual-router-types.js +20 -5
  76. package/dist/config/virtual-router-types.js.map +1 -1
  77. package/dist/daemon-admin-ui/assets/index-C8vP_c5E.js +15 -0
  78. package/dist/daemon-admin-ui/assets/index-DjIoHmNv.css +1 -0
  79. package/dist/daemon-admin-ui/index.html +13 -0
  80. package/dist/docs/daemon-admin-ui.html +334 -63
  81. package/dist/index.d.ts +9 -0
  82. package/dist/index.js +268 -10
  83. package/dist/index.js.map +1 -1
  84. package/dist/manager/modules/quota/provider-key-normalization.js +1 -10
  85. package/dist/manager/modules/quota/provider-key-normalization.js.map +1 -1
  86. package/dist/manager/modules/quota/provider-quota-daemon.error-helpers.d.ts +1 -0
  87. package/dist/manager/modules/quota/provider-quota-daemon.error-helpers.js +36 -0
  88. package/dist/manager/modules/quota/provider-quota-daemon.error-helpers.js.map +1 -1
  89. package/dist/manager/modules/quota/provider-quota-daemon.events.js +89 -49
  90. package/dist/manager/modules/quota/provider-quota-daemon.events.js.map +1 -1
  91. package/dist/manager/modules/quota/provider-quota-daemon.model-backoff.js +2 -16
  92. package/dist/manager/modules/quota/provider-quota-daemon.model-backoff.js.map +1 -1
  93. package/dist/manager/modules/token/index.d.ts +1 -0
  94. package/dist/manager/modules/token/index.js +6 -1
  95. package/dist/manager/modules/token/index.js.map +1 -1
  96. package/dist/manager/types.d.ts +1 -0
  97. package/dist/modules/llmswitch/bridge/state-integrations.js +1 -1
  98. package/dist/modules/llmswitch/bridge/state-integrations.js.map +1 -1
  99. package/dist/providers/auth/antigravity-user-agent.js +78 -31
  100. package/dist/providers/auth/antigravity-user-agent.js.map +1 -1
  101. package/dist/providers/auth/gemini-cli-userinfo-helper.js +94 -63
  102. package/dist/providers/auth/gemini-cli-userinfo-helper.js.map +1 -1
  103. package/dist/providers/auth/iflow-userinfo-helper.js +1 -1
  104. package/dist/providers/auth/iflow-userinfo-helper.js.map +1 -1
  105. package/dist/providers/auth/oauth-error-message.d.ts +1 -0
  106. package/dist/providers/auth/oauth-error-message.js +44 -0
  107. package/dist/providers/auth/oauth-error-message.js.map +1 -0
  108. package/dist/providers/auth/oauth-lifecycle/error-detection.js +42 -8
  109. package/dist/providers/auth/oauth-lifecycle/error-detection.js.map +1 -1
  110. package/dist/providers/auth/oauth-lifecycle/token-io.d.ts +1 -0
  111. package/dist/providers/auth/oauth-lifecycle/token-io.js +12 -0
  112. package/dist/providers/auth/oauth-lifecycle/token-io.js.map +1 -1
  113. package/dist/providers/auth/oauth-lifecycle.js +502 -87
  114. package/dist/providers/auth/oauth-lifecycle.js.map +1 -1
  115. package/dist/providers/auth/oauth-repair-env.js +3 -5
  116. package/dist/providers/auth/oauth-repair-env.js.map +1 -1
  117. package/dist/providers/auth/oauth-utils/error-extraction.js +42 -8
  118. package/dist/providers/auth/oauth-utils/error-extraction.js.map +1 -1
  119. package/dist/providers/core/config/camoufox-actions.d.ts +31 -0
  120. package/dist/providers/core/config/camoufox-actions.js +470 -0
  121. package/dist/providers/core/config/camoufox-actions.js.map +1 -0
  122. package/dist/providers/core/config/camoufox-launcher.d.ts +3 -0
  123. package/dist/providers/core/config/camoufox-launcher.js +553 -159
  124. package/dist/providers/core/config/camoufox-launcher.js.map +1 -1
  125. package/dist/providers/core/config/oauth-flows.js +6 -44
  126. package/dist/providers/core/config/oauth-flows.js.map +1 -1
  127. package/dist/providers/core/config/provider-oauth-configs.js +51 -7
  128. package/dist/providers/core/config/provider-oauth-configs.js.map +1 -1
  129. package/dist/providers/core/config/service-profiles.js +2 -2
  130. package/dist/providers/core/config/service-profiles.js.map +1 -1
  131. package/dist/providers/core/runtime/base-provider-runtime-helpers.js +15 -2
  132. package/dist/providers/core/runtime/base-provider-runtime-helpers.js.map +1 -1
  133. package/dist/providers/core/runtime/provider-error-classifier.js +32 -15
  134. package/dist/providers/core/runtime/provider-error-classifier.js.map +1 -1
  135. package/dist/providers/core/runtime/provider-family-profile-utils.js +1 -1
  136. package/dist/providers/core/runtime/provider-family-profile-utils.js.map +1 -1
  137. package/dist/providers/core/runtime/provider-response-postprocessor.js +61 -14
  138. package/dist/providers/core/runtime/provider-response-postprocessor.js.map +1 -1
  139. package/dist/providers/core/strategies/oauth-auth-code-flow.d.ts +1 -0
  140. package/dist/providers/core/strategies/oauth-auth-code-flow.js +124 -19
  141. package/dist/providers/core/strategies/oauth-auth-code-flow.js.map +1 -1
  142. package/dist/providers/core/strategies/oauth-device-flow.js +32 -6
  143. package/dist/providers/core/strategies/oauth-device-flow.js.map +1 -1
  144. package/dist/providers/core/utils/provider-error-reporter.js +51 -0
  145. package/dist/providers/core/utils/provider-error-reporter.js.map +1 -1
  146. package/dist/providers/profile/families/iflow-profile.js +83 -10
  147. package/dist/providers/profile/families/iflow-profile.js.map +1 -1
  148. package/dist/scripts/camoufox/launch-auth.mjs +112 -5
  149. package/dist/server/handlers/config-admin-handler.js +9 -2
  150. package/dist/server/handlers/config-admin-handler.js.map +1 -1
  151. package/dist/server/handlers/handler-response-utils.js +3 -6
  152. package/dist/server/handlers/handler-response-utils.js.map +1 -1
  153. package/dist/server/handlers/handler-utils.js +14 -17
  154. package/dist/server/handlers/handler-utils.js.map +1 -1
  155. package/dist/server/handlers/logging.js +3 -4
  156. package/dist/server/handlers/logging.js.map +1 -1
  157. package/dist/server/handlers/responses-handler.js +5 -3
  158. package/dist/server/handlers/responses-handler.js.map +1 -1
  159. package/dist/server/runtime/http-server/daemon-admin/auth-handler.js +5 -3
  160. package/dist/server/runtime/http-server/daemon-admin/auth-handler.js.map +1 -1
  161. package/dist/server/runtime/http-server/daemon-admin/control-handler.js +104 -15
  162. package/dist/server/runtime/http-server/daemon-admin/control-handler.js.map +1 -1
  163. package/dist/server/runtime/http-server/daemon-admin/credentials-handler.js +2 -2
  164. package/dist/server/runtime/http-server/daemon-admin/credentials-handler.js.map +1 -1
  165. package/dist/server/runtime/http-server/daemon-admin/providers-handler-routing-utils.d.ts +24 -0
  166. package/dist/server/runtime/http-server/daemon-admin/providers-handler-routing-utils.js +316 -70
  167. package/dist/server/runtime/http-server/daemon-admin/providers-handler-routing-utils.js.map +1 -1
  168. package/dist/server/runtime/http-server/daemon-admin/providers-handler.js +190 -1
  169. package/dist/server/runtime/http-server/daemon-admin/providers-handler.js.map +1 -1
  170. package/dist/server/runtime/http-server/daemon-admin/routing-policy.d.ts +1 -1
  171. package/dist/server/runtime/http-server/daemon-admin/routing-policy.js +21 -32
  172. package/dist/server/runtime/http-server/daemon-admin/routing-policy.js.map +1 -1
  173. package/dist/server/runtime/http-server/daemon-admin/stats-handler.js +2 -0
  174. package/dist/server/runtime/http-server/daemon-admin/stats-handler.js.map +1 -1
  175. package/dist/server/runtime/http-server/daemon-admin-routes.d.ts +8 -1
  176. package/dist/server/runtime/http-server/daemon-admin-routes.js +30 -0
  177. package/dist/server/runtime/http-server/daemon-admin-routes.js.map +1 -1
  178. package/dist/server/runtime/http-server/executor/client-injection-flow.d.ts +14 -0
  179. package/dist/server/runtime/http-server/executor/client-injection-flow.js +297 -0
  180. package/dist/server/runtime/http-server/executor/client-injection-flow.js.map +1 -0
  181. package/dist/server/runtime/http-server/executor/index.d.ts +1 -1
  182. package/dist/server/runtime/http-server/executor/index.js +1 -1
  183. package/dist/server/runtime/http-server/executor/index.js.map +1 -1
  184. package/dist/server/runtime/http-server/executor/provider-response-converter.js +281 -70
  185. package/dist/server/runtime/http-server/executor/provider-response-converter.js.map +1 -1
  186. package/dist/server/runtime/http-server/executor/provider-runtime-resolver.js +8 -6
  187. package/dist/server/runtime/http-server/executor/provider-runtime-resolver.js.map +1 -1
  188. package/dist/server/runtime/http-server/executor/request-executor-core-utils.d.ts +1 -0
  189. package/dist/server/runtime/http-server/executor/request-executor-core-utils.js +12 -0
  190. package/dist/server/runtime/http-server/executor/request-executor-core-utils.js.map +1 -1
  191. package/dist/server/runtime/http-server/executor/request-retry-helpers.d.ts +1 -1
  192. package/dist/server/runtime/http-server/executor/request-retry-helpers.js +23 -19
  193. package/dist/server/runtime/http-server/executor/request-retry-helpers.js.map +1 -1
  194. package/dist/server/runtime/http-server/executor/retry-engine.d.ts +2 -2
  195. package/dist/server/runtime/http-server/executor/retry-engine.js +2 -2
  196. package/dist/server/runtime/http-server/executor/retry-engine.js.map +1 -1
  197. package/dist/server/runtime/http-server/executor/sse-error-handler.d.ts +1 -0
  198. package/dist/server/runtime/http-server/executor/sse-error-handler.js +13 -2
  199. package/dist/server/runtime/http-server/executor/sse-error-handler.js.map +1 -1
  200. package/dist/server/runtime/http-server/executor/usage-aggregator.d.ts +0 -12
  201. package/dist/server/runtime/http-server/executor/usage-aggregator.js +89 -90
  202. package/dist/server/runtime/http-server/executor/usage-aggregator.js.map +1 -1
  203. package/dist/server/runtime/http-server/executor-metadata.js +318 -17
  204. package/dist/server/runtime/http-server/executor-metadata.js.map +1 -1
  205. package/dist/server/runtime/http-server/executor-provider.d.ts +1 -0
  206. package/dist/server/runtime/http-server/executor-provider.js +5 -1
  207. package/dist/server/runtime/http-server/executor-provider.js.map +1 -1
  208. package/dist/server/runtime/http-server/executor-response.d.ts +1 -0
  209. package/dist/server/runtime/http-server/executor-response.js +52 -58
  210. package/dist/server/runtime/http-server/executor-response.js.map +1 -1
  211. package/dist/server/runtime/http-server/http-server-bootstrap.js +50 -6
  212. package/dist/server/runtime/http-server/http-server-bootstrap.js.map +1 -1
  213. package/dist/server/runtime/http-server/http-server-lifecycle.js +6 -5
  214. package/dist/server/runtime/http-server/http-server-lifecycle.js.map +1 -1
  215. package/dist/server/runtime/http-server/http-server-runtime-setup.js +1 -1
  216. package/dist/server/runtime/http-server/http-server-runtime-setup.js.map +1 -1
  217. package/dist/server/runtime/http-server/http-server-session-daemon.d.ts +6 -0
  218. package/dist/server/runtime/http-server/http-server-session-daemon.js +404 -0
  219. package/dist/server/runtime/http-server/http-server-session-daemon.js.map +1 -0
  220. package/dist/server/runtime/http-server/hub-shadow-compare.js +1 -1
  221. package/dist/server/runtime/http-server/hub-shadow-compare.js.map +1 -1
  222. package/dist/server/runtime/http-server/index.d.ts +11 -10
  223. package/dist/server/runtime/http-server/index.js +21 -20
  224. package/dist/server/runtime/http-server/index.js.map +1 -1
  225. package/dist/server/runtime/http-server/managed-process-probe.js +1 -1
  226. package/dist/server/runtime/http-server/managed-process-probe.js.map +1 -1
  227. package/dist/server/runtime/http-server/middleware.js +91 -5
  228. package/dist/server/runtime/http-server/middleware.js.map +1 -1
  229. package/dist/server/runtime/http-server/request-executor.js +19 -9
  230. package/dist/server/runtime/http-server/request-executor.js.map +1 -1
  231. package/dist/server/runtime/http-server/routes.d.ts +2 -1
  232. package/dist/server/runtime/http-server/routes.js +7 -5
  233. package/dist/server/runtime/http-server/routes.js.map +1 -1
  234. package/dist/server/runtime/http-server/{clock-client-reaper.d.ts → session-client-reaper.d.ts} +6 -6
  235. package/dist/server/runtime/http-server/{clock-client-reaper.js → session-client-reaper.js} +26 -49
  236. package/dist/server/runtime/http-server/session-client-reaper.js.map +1 -0
  237. package/dist/server/runtime/http-server/{clock-client-registry-utils.d.ts → session-client-registry-utils.d.ts} +14 -10
  238. package/dist/server/runtime/http-server/{clock-client-registry-utils.js → session-client-registry-utils.js} +77 -19
  239. package/dist/server/runtime/http-server/session-client-registry-utils.js.map +1 -0
  240. package/dist/server/runtime/http-server/{clock-client-registry.d.ts → session-client-registry.d.ts} +26 -11
  241. package/dist/server/runtime/http-server/{clock-client-registry.js → session-client-registry.js} +305 -11
  242. package/dist/server/runtime/http-server/session-client-registry.js.map +1 -0
  243. package/dist/server/runtime/http-server/{clock-client-route-utils.d.ts → session-client-route-utils.d.ts} +1 -1
  244. package/dist/server/runtime/http-server/{clock-client-route-utils.js → session-client-route-utils.js} +4 -4
  245. package/dist/server/runtime/http-server/session-client-route-utils.js.map +1 -0
  246. package/dist/server/runtime/http-server/session-client-routes.d.ts +2 -0
  247. package/dist/server/runtime/http-server/{clock-client-routes.js → session-client-routes.js} +107 -59
  248. package/dist/server/runtime/http-server/session-client-routes.js.map +1 -0
  249. package/dist/server/runtime/http-server/session-daemon-inject-config.d.ts +1 -0
  250. package/dist/server/runtime/http-server/{clock-daemon-inject-config.js → session-daemon-inject-config.js} +2 -2
  251. package/dist/server/runtime/http-server/session-daemon-inject-config.js.map +1 -0
  252. package/dist/server/runtime/http-server/session-daemon-log-throttle.d.ts +28 -0
  253. package/dist/server/runtime/http-server/session-daemon-log-throttle.js +105 -0
  254. package/dist/server/runtime/http-server/session-daemon-log-throttle.js.map +1 -0
  255. package/dist/server/runtime/http-server/session-dir.js +12 -1
  256. package/dist/server/runtime/http-server/session-dir.js.map +1 -1
  257. package/dist/server/runtime/http-server/session-scope-resolution.d.ts +14 -0
  258. package/dist/server/runtime/http-server/session-scope-resolution.js +208 -0
  259. package/dist/server/runtime/http-server/session-scope-resolution.js.map +1 -0
  260. package/dist/server/runtime/http-server/stats-manager.d.ts +35 -0
  261. package/dist/server/runtime/http-server/stats-manager.js +269 -21
  262. package/dist/server/runtime/http-server/stats-manager.js.map +1 -1
  263. package/dist/server/runtime/http-server/stopmessage-scope-rebind.d.ts +21 -0
  264. package/dist/server/runtime/http-server/stopmessage-scope-rebind.js +197 -0
  265. package/dist/server/runtime/http-server/stopmessage-scope-rebind.js.map +1 -0
  266. package/dist/server/runtime/http-server/tmux-session-probe.d.ts +10 -0
  267. package/dist/server/runtime/http-server/tmux-session-probe.js +98 -1
  268. package/dist/server/runtime/http-server/tmux-session-probe.js.map +1 -1
  269. package/dist/server-lifecycle/port-utils.d.ts +2 -1
  270. package/dist/server-lifecycle/port-utils.js +84 -4
  271. package/dist/server-lifecycle/port-utils.js.map +1 -1
  272. package/dist/token-daemon/index.d.ts +1 -0
  273. package/dist/token-daemon/index.js +17 -12
  274. package/dist/token-daemon/index.js.map +1 -1
  275. package/dist/token-daemon/token-daemon.d.ts +2 -0
  276. package/dist/token-daemon/token-daemon.js +18 -10
  277. package/dist/token-daemon/token-daemon.js.map +1 -1
  278. package/dist/utils/llms-engine-shadow.js +1 -1
  279. package/dist/utils/llms-engine-shadow.js.map +1 -1
  280. package/dist/utils/log-helpers.js +46 -0
  281. package/dist/utils/log-helpers.js.map +1 -1
  282. package/dist/utils/session-client-token.d.ts +4 -0
  283. package/dist/utils/session-client-token.js +93 -0
  284. package/dist/utils/session-client-token.js.map +1 -0
  285. package/dist/utils/session-scope-trace.d.ts +11 -0
  286. package/dist/utils/session-scope-trace.js +41 -0
  287. package/dist/utils/session-scope-trace.js.map +1 -0
  288. package/docs/CLOCK.md +0 -1
  289. package/docs/DAEMON_CONTROL_PLANE.md +1 -0
  290. package/docs/PORTS.md +2 -2
  291. package/docs/ROUTING_POLICY_SCHEMA.md +5 -3
  292. package/docs/antigravity-routing-contract.md +2 -2
  293. package/docs/daemon-admin-ui.html +334 -63
  294. package/docs/design/servertool-stopmessage-lifecycle.md +109 -0
  295. package/docs/exec-command-guard-policy.example.v1.json +7 -1
  296. package/docs/providers/antigravity-gemini-provider-compat.md +2 -2
  297. package/docs/{clock-client-daemon-design.md → session-client-daemon-design.md} +34 -34
  298. package/package.json +23 -7
  299. package/scripts/build-core.mjs +12 -0
  300. package/scripts/camoufox/launch-auth.mjs +112 -5
  301. package/scripts/ci/repo-sanity.mjs +1 -0
  302. package/scripts/compare-responses-sse.mjs +267 -0
  303. package/scripts/install-global.sh +6 -0
  304. package/scripts/install-verify.mjs +33 -16
  305. package/scripts/replay-codex-sample.mjs +52 -6
  306. package/scripts/run-bg.sh +226 -43
  307. package/scripts/run-fg-gtimeout.sh +158 -14
  308. package/scripts/tests/blackbox-rcc-vs-routecodex-antigravity.mjs +3 -3
  309. package/scripts/tests/ci-jest.mjs +9 -1
  310. package/scripts/triage-errorsamples.mjs +216 -0
  311. package/scripts/verify-codex-error-samples.mjs +92 -15
  312. package/scripts/verify-install-e2e.mjs +57 -27
  313. package/scripts/virtual-router-dryrun.mjs +7 -1
  314. package/dist/cli/commands/clock-admin.js.map +0 -1
  315. package/dist/cli/commands/tmux-inject.js.map +0 -1
  316. package/dist/cli/register/clock-admin-command.d.ts +0 -3
  317. package/dist/cli/register/clock-admin-command.js +0 -5
  318. package/dist/cli/register/clock-admin-command.js.map +0 -1
  319. package/dist/cli/register/tmux-inject-command.d.ts +0 -3
  320. package/dist/cli/register/tmux-inject-command.js +0 -5
  321. package/dist/cli/register/tmux-inject-command.js.map +0 -1
  322. package/dist/server/runtime/http-server/clock-client-reaper.js.map +0 -1
  323. package/dist/server/runtime/http-server/clock-client-registry-utils.js.map +0 -1
  324. package/dist/server/runtime/http-server/clock-client-registry.js.map +0 -1
  325. package/dist/server/runtime/http-server/clock-client-route-utils.js.map +0 -1
  326. package/dist/server/runtime/http-server/clock-client-routes.d.ts +0 -2
  327. package/dist/server/runtime/http-server/clock-client-routes.js.map +0 -1
  328. package/dist/server/runtime/http-server/clock-daemon-inject-config.d.ts +0 -1
  329. package/dist/server/runtime/http-server/clock-daemon-inject-config.js.map +0 -1
  330. package/dist/server/runtime/http-server/clock-daemon-log-throttle.d.ts +0 -12
  331. package/dist/server/runtime/http-server/clock-daemon-log-throttle.js +0 -56
  332. package/dist/server/runtime/http-server/clock-daemon-log-throttle.js.map +0 -1
  333. package/dist/server/runtime/http-server/http-server-clock-daemon.d.ts +0 -5
  334. package/dist/server/runtime/http-server/http-server-clock-daemon.js +0 -255
  335. package/dist/server/runtime/http-server/http-server-clock-daemon.js.map +0 -1
  336. package/dist/utils/clock-client-token.d.ts +0 -3
  337. package/dist/utils/clock-client-token.js +0 -54
  338. package/dist/utils/clock-client-token.js.map +0 -1
@@ -88,29 +88,29 @@ async function callJson(ctx, url, method, body) {
88
88
  }
89
89
  return { ok: response.ok, status: response.status, data };
90
90
  }
91
- export function createClockAdminCommand(program, ctx) {
91
+ export function createSessionAdminCommand(program, ctx) {
92
92
  program
93
- .command('clock-admin')
94
- .description('Manage clock schedules and tmux/session bindings (list + CRUD + cleanup)')
93
+ .command('session-admin')
94
+ .description('Manage session schedules and tmux/session bindings (list + CRUD + cleanup)')
95
95
  .option('--port <port>', 'RouteCodex server port')
96
96
  .option('--host <host>', 'RouteCodex server host')
97
97
  .option('--url <url>', 'RouteCodex base URL')
98
98
  .option('-c, --config <config>', 'RouteCodex configuration file path')
99
- .option('--session-id <sessionId>', 'Conversation/session id for clock task CRUD')
99
+ .option('--session-id <sessionId>', 'Conversation/session id for session task CRUD')
100
100
  .option('--task-id <taskId>', 'Task id for update/delete')
101
101
  .option('--due-at <dueAt>', 'ISO8601 due time for create/update')
102
102
  .option('--task <task>', 'Task text for create/update')
103
103
  .option('--recurrence <kind>', 'Recurrence kind: daily|weekly|interval')
104
104
  .option('--every-minutes <minutes>', 'everyMinutes for interval recurrence')
105
105
  .option('--max-runs <count>', 'maxRuns for recurrence')
106
- .option('--list', 'List clock sessions/tasks', false)
107
- .option('--create', 'Create clock task', false)
108
- .option('--update', 'Update clock task', false)
109
- .option('--delete', 'Delete one clock task', false)
106
+ .option('--list', 'List session schedules/tasks', false)
107
+ .option('--create', 'Create session task', false)
108
+ .option('--update', 'Update session task', false)
109
+ .option('--delete', 'Delete one session task', false)
110
110
  .option('--clear', 'Clear all tasks in a session', false)
111
111
  .option('--cleanup-dead-tmux', 'Cleanup daemons whose tmux session is gone', false)
112
112
  .option('--unbind-session <conversationSessionId>', 'Unbind conversation session mapping manually')
113
- .option('--clear-tasks', 'With --unbind-session, clear its clock tasks too', false)
113
+ .option('--clear-tasks', 'With --unbind-session, clear its session tasks too', false)
114
114
  .option('--json', 'Print JSON output', false)
115
115
  .action(async (options) => {
116
116
  try {
@@ -125,7 +125,7 @@ export function createClockAdminCommand(program, ctx) {
125
125
  }
126
126
  };
127
127
  if (options.cleanupDeadTmux) {
128
- const result = await callJson(ctx, `${baseUrl}/daemon/clock/cleanup`, 'POST', { mode: 'dead_tmux' });
128
+ const result = await callJson(ctx, `${baseUrl}/daemon/session/cleanup`, 'POST', { mode: 'dead_tmux' });
129
129
  if (!result.ok) {
130
130
  throw new Error(`cleanup-dead-tmux failed (${result.status})`);
131
131
  }
@@ -133,7 +133,7 @@ export function createClockAdminCommand(program, ctx) {
133
133
  return;
134
134
  }
135
135
  if (typeof options.unbindSession === 'string' && options.unbindSession.trim()) {
136
- const result = await callJson(ctx, `${baseUrl}/daemon/clock/cleanup`, 'POST', {
136
+ const result = await callJson(ctx, `${baseUrl}/daemon/session/cleanup`, 'POST', {
137
137
  mode: 'unbind',
138
138
  conversationSessionId: options.unbindSession.trim(),
139
139
  clearTasks: Boolean(options.clearTasks)
@@ -160,7 +160,7 @@ export function createClockAdminCommand(program, ctx) {
160
160
  ...(parseInteger(options.everyMinutes) ? { everyMinutes: parseInteger(options.everyMinutes) } : {})
161
161
  };
162
162
  }
163
- const result = await callJson(ctx, `${baseUrl}/daemon/clock/tasks`, 'POST', payload);
163
+ const result = await callJson(ctx, `${baseUrl}/daemon/session/tasks`, 'POST', payload);
164
164
  if (!result.ok) {
165
165
  throw new Error(`create failed (${result.status})`);
166
166
  }
@@ -188,7 +188,7 @@ export function createClockAdminCommand(program, ctx) {
188
188
  ...(parseInteger(options.everyMinutes) ? { everyMinutes: parseInteger(options.everyMinutes) } : {})
189
189
  };
190
190
  }
191
- const result = await callJson(ctx, `${baseUrl}/daemon/clock/tasks`, 'PATCH', { sessionId, taskId, patch });
191
+ const result = await callJson(ctx, `${baseUrl}/daemon/session/tasks`, 'PATCH', { sessionId, taskId, patch });
192
192
  if (!result.ok) {
193
193
  throw new Error(`update failed (${result.status})`);
194
194
  }
@@ -204,7 +204,7 @@ export function createClockAdminCommand(program, ctx) {
204
204
  if (options.delete && !taskId) {
205
205
  throw new Error('--delete requires --task-id (or use --clear)');
206
206
  }
207
- const result = await callJson(ctx, `${baseUrl}/daemon/clock/tasks`, 'DELETE', {
207
+ const result = await callJson(ctx, `${baseUrl}/daemon/session/tasks`, 'DELETE', {
208
208
  sessionId,
209
209
  ...(taskId ? { taskId } : {})
210
210
  });
@@ -216,8 +216,8 @@ export function createClockAdminCommand(program, ctx) {
216
216
  }
217
217
  const sessionId = typeof options.sessionId === 'string' && options.sessionId.trim() ? options.sessionId.trim() : undefined;
218
218
  const listUrl = sessionId
219
- ? `${baseUrl}/daemon/clock/tasks?sessionId=${encodeURIComponent(sessionId)}`
220
- : `${baseUrl}/daemon/clock/tasks`;
219
+ ? `${baseUrl}/daemon/session/tasks?sessionId=${encodeURIComponent(sessionId)}`
220
+ : `${baseUrl}/daemon/session/tasks`;
221
221
  const response = await ctx.fetch(listUrl);
222
222
  const data = await response.json().catch(() => ({}));
223
223
  if (!response.ok) {
@@ -231,4 +231,4 @@ export function createClockAdminCommand(program, ctx) {
231
231
  }
232
232
  });
233
233
  }
234
- //# sourceMappingURL=clock-admin.js.map
234
+ //# sourceMappingURL=session-admin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-admin.js","sourceRoot":"","sources":["../../../src/cli/commands/session-admin.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAEvD,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AA2C5E,SAAS,gBAAgB,CAAC,GAAW;IACnC,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACzC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;IACpC,CAAC;IACD,IAAI,MAAW,CAAC;IAChB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;IAC5B,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,GAAG,IAAI,GAAG,CAAC,UAAU,OAAO,EAAE,CAAC,CAAC;IACxC,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC;IACnE,MAAM,QAAQ,GAAG,CAAC,GAAG,EAAE;QACrB,MAAM,CAAC,GAAG,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;QACrE,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;YACpB,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,OAAO,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC/B,CAAC,CAAC,EAAE,CAAC;IACL,OAAO,GAAG,QAAQ,KAAK,MAAM,CAAC,IAAI,GAAG,QAAQ,EAAE,CAAC;AAClD,CAAC;AAED,SAAS,sBAAsB,CAAC,MAAqC;IACnE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,UAAU,IAAI,EAAE,CAAwB,CAAC;IAC9D,MAAM,IAAI,GACR,OAAO,GAAG,EAAE,UAAU,EAAE,IAAI,KAAK,QAAQ;QACvC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI;QACrB,CAAC,CAAC,OAAO,GAAG,EAAE,MAAM,EAAE,IAAI,KAAK,QAAQ;YACrC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI;YACjB,CAAC,CAAC,OAAO,GAAG,EAAE,IAAI,KAAK,QAAQ;gBAC7B,CAAC,CAAC,GAAG,CAAC,IAAI;gBACV,CAAC,CAAC,SAAS,CAAC;IACpB,MAAM,IAAI,GAAG,aAAa,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,IAAI,IAAI,GAAG,EAAE,IAAI,CAAC,CAAC;IACpF,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACxB,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,GAA+B,EAAE,OAAmC;IAChG,IAAI,OAAO,OAAO,CAAC,GAAG,KAAK,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC;QAC1D,OAAO,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACvC,CAAC;IAED,IAAI,MAAM,GAAkC,IAAI,CAAC;IACjD,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,GAAG,CAAC,UAAU,CAAC,OAAO,OAAO,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACjG,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,GAAG,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,UAAU,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAClD,MAAM,IAAI,GAAG,oBAAoB,CAAC,OAAO,CAAC,IAAI,IAAI,UAAU,CAAC,IAAI,IAAI,WAAW,CAAC,SAAS,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;IAE9G,IAAI,IAAI,GAAG,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC;QACxC,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;IACzB,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC;QACxC,IAAI,GAAG,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,eAAe,IAAI,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACpE,CAAC;IACD,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,YAAY,EAAE,CAAC;QAC9D,IAAI,GAAG,GAAG,CAAC,cAAc,CAAC;IAC5B,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;IACnF,CAAC;IAED,OAAO,UAAU,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;AAC9C,CAAC;AAED,SAAS,YAAY,CAAC,KAAc;IAClC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;QAC1D,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC7B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC7B,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AAC5B,CAAC;AAED,KAAK,UAAU,QAAQ,CAAC,GAA+B,EAAE,GAAW,EAAE,MAAc,EAAE,IAA8B;IAClH,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE;QACpC,MAAM;QACN,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;QAC/C,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAChD,CAAC,CAAC;IACH,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;IACnD,IAAI,IAAI,GAAQ,IAAI,CAAC;IACrB,IAAI,CAAC;QACH,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACxC,CAAC;IAAC,MAAM,CAAC;QACP,IAAI,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;IACvB,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,OAAgB,EAAE,GAA+B;IACzF,OAAO;SACJ,OAAO,CAAC,eAAe,CAAC;SACxB,WAAW,CAAC,4EAA4E,CAAC;SACzF,MAAM,CAAC,eAAe,EAAE,wBAAwB,CAAC;SACjD,MAAM,CAAC,eAAe,EAAE,wBAAwB,CAAC;SACjD,MAAM,CAAC,aAAa,EAAE,qBAAqB,CAAC;SAC5C,MAAM,CAAC,uBAAuB,EAAE,oCAAoC,CAAC;SACrE,MAAM,CAAC,0BAA0B,EAAE,+CAA+C,CAAC;SACnF,MAAM,CAAC,oBAAoB,EAAE,2BAA2B,CAAC;SACzD,MAAM,CAAC,kBAAkB,EAAE,oCAAoC,CAAC;SAChE,MAAM,CAAC,eAAe,EAAE,6BAA6B,CAAC;SACtD,MAAM,CAAC,qBAAqB,EAAE,wCAAwC,CAAC;SACvE,MAAM,CAAC,2BAA2B,EAAE,sCAAsC,CAAC;SAC3E,MAAM,CAAC,oBAAoB,EAAE,wBAAwB,CAAC;SACtD,MAAM,CAAC,QAAQ,EAAE,8BAA8B,EAAE,KAAK,CAAC;SACvD,MAAM,CAAC,UAAU,EAAE,qBAAqB,EAAE,KAAK,CAAC;SAChD,MAAM,CAAC,UAAU,EAAE,qBAAqB,EAAE,KAAK,CAAC;SAChD,MAAM,CAAC,UAAU,EAAE,yBAAyB,EAAE,KAAK,CAAC;SACpD,MAAM,CAAC,SAAS,EAAE,8BAA8B,EAAE,KAAK,CAAC;SACxD,MAAM,CAAC,qBAAqB,EAAE,4CAA4C,EAAE,KAAK,CAAC;SAClF,MAAM,CAAC,0CAA0C,EAAE,8CAA8C,CAAC;SAClG,MAAM,CAAC,eAAe,EAAE,oDAAoD,EAAE,KAAK,CAAC;SACpF,MAAM,CAAC,QAAQ,EAAE,mBAAmB,EAAE,KAAK,CAAC;SAC5C,MAAM,CAAC,KAAK,EAAE,OAAmC,EAAE,EAAE;QACpD,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YACnD,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAEzC,MAAM,KAAK,GAAG,CAAC,OAAgB,EAAQ,EAAE;gBACvC,IAAI,UAAU,EAAE,CAAC;oBACf,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;gBAC5C,CAAC;qBAAM,CAAC;oBACN,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;gBAC5C,CAAC;YACH,CAAC,CAAC;YAEF,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;gBAC5B,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,GAAG,EAAE,GAAG,OAAO,yBAAyB,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;gBACvG,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;oBACf,MAAM,IAAI,KAAK,CAAC,6BAA6B,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;gBACjE,CAAC;gBACD,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBACnB,OAAO;YACT,CAAC;YAED,IAAI,OAAO,OAAO,CAAC,aAAa,KAAK,QAAQ,IAAI,OAAO,CAAC,aAAa,CAAC,IAAI,EAAE,EAAE,CAAC;gBAC9E,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,GAAG,EAAE,GAAG,OAAO,yBAAyB,EAAE,MAAM,EAAE;oBAC9E,IAAI,EAAE,QAAQ;oBACd,qBAAqB,EAAE,OAAO,CAAC,aAAa,CAAC,IAAI,EAAE;oBACnD,UAAU,EAAE,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC;iBACxC,CAAC,CAAC;gBACH,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;oBACf,MAAM,IAAI,KAAK,CAAC,0BAA0B,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;gBAC9D,CAAC;gBACD,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBACnB,OAAO;YACT,CAAC;YAED,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBACnB,MAAM,SAAS,GAAG,OAAO,OAAO,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACxF,MAAM,KAAK,GAAG,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC5E,MAAM,IAAI,GAAG,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACzE,IAAI,CAAC,SAAS,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;oBAClC,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;gBACpE,CAAC;gBACD,MAAM,OAAO,GAA4B,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;gBACpE,MAAM,UAAU,GAAG,OAAO,OAAO,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC3F,IAAI,UAAU,EAAE,CAAC;oBACf,OAAO,CAAC,UAAU,GAAG;wBACnB,IAAI,EAAE,UAAU;wBAChB,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBACpF,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,YAAY,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;qBACpG,CAAC;gBACJ,CAAC;gBACD,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,GAAG,EAAE,GAAG,OAAO,uBAAuB,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;gBACvF,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;oBACf,MAAM,IAAI,KAAK,CAAC,kBAAkB,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;gBACtD,CAAC;gBACD,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBACnB,OAAO;YACT,CAAC;YAED,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBACnB,MAAM,SAAS,GAAG,OAAO,OAAO,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACxF,MAAM,MAAM,GAAG,OAAO,OAAO,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/E,IAAI,CAAC,SAAS,IAAI,CAAC,MAAM,EAAE,CAAC;oBAC1B,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;gBAC9D,CAAC;gBACD,MAAM,KAAK,GAA4B,EAAE,CAAC;gBAC1C,IAAI,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;oBAC9D,KAAK,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;gBACrC,CAAC;gBACD,IAAI,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;oBAC5D,KAAK,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACnC,CAAC;gBACD,MAAM,UAAU,GAAG,OAAO,OAAO,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC3F,IAAI,UAAU,EAAE,CAAC;oBACf,KAAK,CAAC,UAAU,GAAG;wBACjB,IAAI,EAAE,UAAU;wBAChB,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBACpF,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,YAAY,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;qBACpG,CAAC;gBACJ,CAAC;gBACD,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,GAAG,EAAE,GAAG,OAAO,uBAAuB,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;gBAC7G,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;oBACf,MAAM,IAAI,KAAK,CAAC,kBAAkB,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;gBACtD,CAAC;gBACD,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBACnB,OAAO;YACT,CAAC;YAED,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;gBACpC,MAAM,SAAS,GAAG,OAAO,OAAO,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACxF,IAAI,CAAC,SAAS,EAAE,CAAC;oBACf,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;gBAC5D,CAAC;gBACD,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,OAAO,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACtG,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;oBAC9B,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;gBAClE,CAAC;gBACD,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,GAAG,EAAE,GAAG,OAAO,uBAAuB,EAAE,QAAQ,EAAE;oBAC9E,SAAS;oBACT,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAC9B,CAAC,CAAC;gBACH,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;oBACf,MAAM,IAAI,KAAK,CAAC,wBAAwB,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;gBAC5D,CAAC;gBACD,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBACnB,OAAO;YACT,CAAC;YAED,MAAM,SAAS,GAAG,OAAO,OAAO,CAAC,SAAS,KAAK,QAAQ,IAAI,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;YAC3H,MAAM,OAAO,GAAG,SAAS;gBACvB,CAAC,CAAC,GAAG,OAAO,mCAAmC,kBAAkB,CAAC,SAAS,CAAC,EAAE;gBAC9E,CAAC,CAAC,GAAG,OAAO,uBAAuB,CAAC;YACtC,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC1C,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACrD,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,gBAAgB,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;YACtD,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YACzE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACd,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -6,7 +6,7 @@ type LoggerLike = {
6
6
  success: (msg: string) => void;
7
7
  error: (msg: string) => void;
8
8
  };
9
- export type TmuxInjectCommandContext = {
9
+ export type SessionInjectCommandContext = {
10
10
  isDevPackage: boolean;
11
11
  defaultDevPort: number;
12
12
  logger: LoggerLike;
@@ -16,5 +16,5 @@ export type TmuxInjectCommandContext = {
16
16
  env: NodeJS.ProcessEnv;
17
17
  exit: (code: number) => never;
18
18
  };
19
- export declare function createTmuxInjectCommand(program: Command, ctx: TmuxInjectCommandContext): void;
19
+ export declare function createSessionInjectCommand(program: Command, ctx: SessionInjectCommandContext): void;
20
20
  export {};
@@ -63,11 +63,11 @@ async function resolveBaseUrl(ctx, options) {
63
63
  return `http://${host}:${Math.floor(port)}`;
64
64
  }
65
65
  async function fetchDaemonList(ctx, baseUrl) {
66
- const url = `${baseUrl}/daemon/clock-client/list`;
66
+ const url = `${baseUrl}/daemon/session-client/list`;
67
67
  const response = await ctx.fetch(url, { method: 'GET' });
68
68
  if (!response.ok) {
69
69
  const text = await response.text().catch(() => String(response.status));
70
- throw new Error(`Failed to list clock daemons (${response.status}): ${text}`);
70
+ throw new Error(`Failed to list session daemons (${response.status}): ${text}`);
71
71
  }
72
72
  const data = (await response.json().catch(() => null));
73
73
  const records = Array.isArray(data?.records) ? data?.records : [];
@@ -104,7 +104,7 @@ function resolveTargetTmuxSessionId(records, options) {
104
104
  return target;
105
105
  }
106
106
  if (!withSession.length) {
107
- throw new Error('No available clock daemon tmux session. Start rcc codex/claude first.');
107
+ throw new Error('No available session daemon tmux session. Start rcc codex/claude first.');
108
108
  }
109
109
  throw new Error('Multiple daemon tmux sessions found; specify --tmux-session-id/--session-id or --daemon-id (use --list).');
110
110
  }
@@ -125,10 +125,10 @@ function printList(ctx, records, asJson) {
125
125
  return;
126
126
  }
127
127
  if (!records.length) {
128
- ctx.logger.info('No clock-client daemons registered.');
128
+ ctx.logger.info('No session-client daemons registered.');
129
129
  return;
130
130
  }
131
- ctx.logger.info(`Found ${records.length} clock-client daemon(s):`);
131
+ ctx.logger.info(`Found ${records.length} session-client daemon(s):`);
132
132
  for (const rec of records) {
133
133
  const daemonId = String(rec.daemonId || '-');
134
134
  const tmuxSessionId = String(rec.tmuxSessionId || rec.sessionId || '-');
@@ -137,10 +137,10 @@ function printList(ctx, records, asJson) {
137
137
  ctx.log(`- daemonId=${daemonId} tmuxSessionId=${tmuxSessionId} tmux=${tmuxTarget} heartbeat=${heartbeat}`);
138
138
  }
139
139
  }
140
- export function createTmuxInjectCommand(program, ctx) {
140
+ export function createSessionInjectCommand(program, ctx) {
141
141
  program
142
- .command('tmux-inject')
143
- .description('Inject text into tmux-backed codex/claude session via RouteCodex clock daemon')
142
+ .command('session-inject')
143
+ .description('Inject text into tmux-backed codex/claude session via RouteCodex session daemon')
144
144
  .option('--port <port>', 'RouteCodex server port')
145
145
  .option('--host <host>', 'RouteCodex server host')
146
146
  .option('--url <url>', 'RouteCodex base URL, e.g. http://127.0.0.1:5520')
@@ -149,7 +149,7 @@ export function createTmuxInjectCommand(program, ctx) {
149
149
  .option('--session-id <sessionId>', 'Alias of --tmux-session-id (deprecated)')
150
150
  .option('--daemon-id <daemonId>', 'Target daemonId (tmux session auto-resolved)')
151
151
  .option('--text <text>', 'Text to inject into target tmux pane and press Enter')
152
- .option('--source <source>', 'Injection source tag', 'cli.tmux-inject')
152
+ .option('--source <source>', 'Injection source tag', 'cli.session-inject')
153
153
  .option('--request-id <requestId>', 'Optional request id for tracing')
154
154
  .option('--list', 'List available daemon targets only')
155
155
  .option('--json', 'Print result/list in JSON')
@@ -171,12 +171,12 @@ export function createTmuxInjectCommand(program, ctx) {
171
171
  text,
172
172
  tmuxSessionId,
173
173
  sessionId: tmuxSessionId,
174
- source: typeof options.source === 'string' && options.source.trim() ? options.source.trim() : 'cli.tmux-inject'
174
+ source: typeof options.source === 'string' && options.source.trim() ? options.source.trim() : 'cli.session-inject'
175
175
  };
176
176
  if (typeof options.requestId === 'string' && options.requestId.trim()) {
177
177
  payload.requestId = options.requestId.trim();
178
178
  }
179
- const injectUrl = `${baseUrl}/daemon/clock-client/inject`;
179
+ const injectUrl = `${baseUrl}/daemon/session-client/inject`;
180
180
  const response = await ctx.fetch(injectUrl, {
181
181
  method: 'POST',
182
182
  headers: { 'content-type': 'application/json' },
@@ -209,4 +209,4 @@ export function createTmuxInjectCommand(program, ctx) {
209
209
  }
210
210
  });
211
211
  }
212
- //# sourceMappingURL=tmux-inject.js.map
212
+ //# sourceMappingURL=session-inject.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-inject.js","sourceRoot":"","sources":["../../../src/cli/commands/session-inject.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import fs from 'node:fs';
2
2
  import path from 'node:path';
3
3
  import type { ChildProcess, SpawnOptions } from 'node:child_process';
4
+ import type { GuardianLifecycleEvent, GuardianRegistration } from '../guardian/types.js';
4
5
  export type Spinner = {
5
6
  start(text?: string): Spinner;
6
7
  succeed(text?: string): void;
@@ -60,6 +61,9 @@ export type StartCommandContext = {
60
61
  resolveServerEntryPath: () => string;
61
62
  spawn: (command: string, args: string[], options: SpawnOptions) => ChildProcess;
62
63
  fetch: typeof fetch;
64
+ ensureGuardianDaemon?: () => Promise<void>;
65
+ registerGuardianProcess?: (registration: GuardianRegistration) => Promise<void>;
66
+ reportGuardianLifecycle?: (event: GuardianLifecycleEvent) => Promise<boolean>;
63
67
  setupKeypress: (onInterrupt: () => void) => () => void;
64
68
  waitForever: () => Promise<void>;
65
69
  onSignal?: (signal: NodeJS.Signals, cb: () => void) => void;
@@ -1,5 +1,6 @@
1
1
  export type RccRunMode = 'router' | 'analysis' | 'server';
2
2
  type StartCommandArgOptions = {
3
+ port?: string;
3
4
  logLevel?: string;
4
5
  ua?: string;
5
6
  quotaRouting?: unknown;
@@ -49,6 +49,9 @@ function appendFlag(args, enabled, flag) {
49
49
  }
50
50
  export function buildStartCommandArgs(options, configPath, runMode) {
51
51
  const args = ['start', '--config', configPath, '--mode', runMode];
52
+ if (typeof options.port === 'string' && options.port.trim()) {
53
+ args.push('--port', options.port.trim());
54
+ }
52
55
  if (typeof options.logLevel === 'string' && options.logLevel.trim()) {
53
56
  args.push('--log-level', options.logLevel.trim());
54
57
  }
@@ -1 +1 @@
1
- {"version":3,"file":"start-utils.js","sourceRoot":"","sources":["../../../src/cli/commands/start-utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"start-utils.js","sourceRoot":"","sources":["../../../src/cli/commands/start-utils.ts"],"names":[],"mappings":"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"}
@@ -11,7 +11,7 @@ export function createStartCommand(program, ctx) {
11
11
  .command('start')
12
12
  .description('Start the RouteCodex server')
13
13
  .option('-c, --config <config>', 'Configuration file path')
14
- .option('-p, --port <port>', 'RouteCodex server port (dev package only; overrides env/config)')
14
+ .option('-p, --port <port>', 'RouteCodex server port (overrides env/config)')
15
15
  .option('--mode <mode>', 'Run mode (router|analysis|server). analysis => router + force snapshots', 'router')
16
16
  .option('--quota-routing <mode>', 'Quota routing admission control (on|off). off => do not remove providers from pool based on quota')
17
17
  .option('--log-level <level>', 'Log level (debug, info, warn, error)', 'info')
@@ -164,14 +164,48 @@ export function createStartCommand(program, ctx) {
164
164
  }
165
165
  }
166
166
  else {
167
- const port = (config?.httpserver?.port ?? config?.server?.port ?? config?.port);
168
- if (!port || typeof port !== 'number' || port <= 0) {
169
- spinner.fail('Invalid or missing port configuration');
170
- ctx.logger.error('Please set a valid port (httpserver.port or top-level port) in your configuration');
171
- ctx.exit(1);
167
+ const flagPort = typeof options.port === 'string' ? Number(options.port) : NaN;
168
+ if (!Number.isNaN(flagPort) && flagPort > 0) {
169
+ ctx.logger.info(`Using port ${flagPort} from --port flag [release package: rcc]`);
170
+ resolvedPort = flagPort;
171
+ }
172
+ else {
173
+ const port = (config?.httpserver?.port ?? config?.server?.port ?? config?.port);
174
+ if (!port || typeof port !== 'number' || port <= 0) {
175
+ spinner.fail('Invalid or missing port configuration');
176
+ ctx.logger.error('Please set a valid port (httpserver.port or top-level port) in your configuration');
177
+ ctx.exit(1);
178
+ }
179
+ resolvedPort = port;
172
180
  }
173
- resolvedPort = port;
174
181
  }
182
+ await ctx.ensureGuardianDaemon?.();
183
+ await ctx.registerGuardianProcess?.({
184
+ source: 'start',
185
+ pid: process.pid,
186
+ ppid: process.ppid,
187
+ port: resolvedPort,
188
+ metadata: {
189
+ mode: runMode,
190
+ configPath
191
+ }
192
+ });
193
+ const applyLifecycleOrThrow = async (args) => {
194
+ const accepted = await ctx.reportGuardianLifecycle?.({
195
+ action: args.action,
196
+ source: 'cli.start',
197
+ actorPid: process.pid,
198
+ targetPid: args.targetPid && args.targetPid > 0 ? args.targetPid : undefined,
199
+ signal: args.signal,
200
+ metadata: {
201
+ port: resolvedPort,
202
+ ...(args.metadata || {})
203
+ }
204
+ });
205
+ if (ctx.reportGuardianLifecycle && accepted !== true) {
206
+ throw new Error(`guardian lifecycle apply rejected (${args.action})`);
207
+ }
208
+ };
175
209
  // Ensure port state aligns with requested behavior.
176
210
  // Default behavior is takeover/restart; pass --no-restart for legacy non-disruptive mode.
177
211
  const shouldRestart = options.restart !== false || options.exclusive === true;
@@ -209,10 +243,15 @@ export function createStartCommand(program, ctx) {
209
243
  if (ctx.isDevPackage) {
210
244
  env.ROUTECODEX_PORT = String(resolvedPort);
211
245
  }
246
+ const bindServerToParent = parseBoolish(ctx.env.ROUTECODEX_SERVER_PARENT_GUARD ?? ctx.env.RCC_SERVER_PARENT_GUARD) ?? false;
212
247
  const childProcessEnv = {
213
248
  ...env,
214
- ROUTECODEX_EXPECT_PARENT_PID: String(process.pid),
215
- RCC_EXPECT_PARENT_PID: String(process.pid)
249
+ ...(bindServerToParent
250
+ ? {
251
+ ROUTECODEX_EXPECT_PARENT_PID: String(process.pid),
252
+ RCC_EXPECT_PARENT_PID: String(process.pid)
253
+ }
254
+ : {})
216
255
  };
217
256
  const args = [serverEntry, modulesConfigPath];
218
257
  const routeCodexHome = pathImpl.join(home(), '.routecodex');
@@ -309,6 +348,9 @@ export function createStartCommand(program, ctx) {
309
348
  resolve({ code: 1, signal: null });
310
349
  });
311
350
  });
351
+ const codeLabel = typeof exitInfo.code === 'number' && Number.isFinite(exitInfo.code) ? String(exitInfo.code) : 'n/a';
352
+ const signalLabel = exitInfo.signal || 'none';
353
+ ctx.logger.info(`[client-exit] RouteCodex exited (code=${codeLabel}, signal=${signalLabel})`);
312
354
  const stopIntent = consumeStopIntent();
313
355
  if (stopIntent.matched) {
314
356
  logProcessLifecycleSync({
@@ -407,77 +449,82 @@ export function createStartCommand(program, ctx) {
407
449
  ctx.logger.info('Press Ctrl+C to stop the server');
408
450
  const shutdown = async (sig) => {
409
451
  try {
410
- await ctx.fetch(`${HTTP_PROTOCOLS.HTTP}${LOCAL_HOSTS.IPV4}:${resolvedPort}${API_PATHS.SHUTDOWN}`, { method: 'POST' }).catch(() => { });
411
- }
412
- catch {
413
- /* ignore */
414
- }
415
- try {
416
- if (childProc.pid && childProc.pid === process.pid) {
417
- logProcessLifecycleSync({
418
- event: 'self_termination',
419
- source: 'cli.start.shutdown',
420
- details: {
421
- reason: 'self_kill_guard',
422
- signal: sig,
423
- childPid: childProc.pid,
424
- parentPid: process.pid,
425
- result: 'blocked'
426
- }
427
- });
428
- }
429
- childProc.kill(sig);
430
- }
431
- catch {
432
- /* ignore */
433
- }
434
- // Avoid process-group signals here; only target the known child pid,
435
- // then rely on managed pid discovery + graceful/force cleanup below.
436
- const deadline = Date.now() + 3500;
437
- while (Date.now() < deadline) {
438
- if (ctx.findListeningPids(resolvedPort).length === 0) {
439
- break;
452
+ await applyLifecycleOrThrow({
453
+ action: 'server_shutdown_requested',
454
+ signal: sig,
455
+ targetPid: childProc.pid ?? null
456
+ });
457
+ try {
458
+ await ctx.fetch(`${HTTP_PROTOCOLS.HTTP}${LOCAL_HOSTS.IPV4}:${resolvedPort}${API_PATHS.SHUTDOWN}`, { method: 'POST' }).catch(() => { });
440
459
  }
441
- await ctx.sleep(120);
442
- }
443
- const remain = ctx.findListeningPids(resolvedPort);
444
- if (remain.length) {
445
- for (const pid of remain) {
446
- ctx.killPidBestEffort(pid, { force: false });
460
+ catch {
461
+ /* ignore */
447
462
  }
448
- const killDeadline = Date.now() + 1500;
449
- while (Date.now() < killDeadline) {
450
- if (ctx.findListeningPids(resolvedPort).length === 0) {
451
- break;
463
+ try {
464
+ if (childProc.pid && childProc.pid === process.pid) {
465
+ logProcessLifecycleSync({
466
+ event: 'self_termination',
467
+ source: 'cli.start.shutdown',
468
+ details: {
469
+ reason: 'self_kill_guard',
470
+ signal: sig,
471
+ childPid: childProc.pid,
472
+ parentPid: process.pid,
473
+ result: 'blocked'
474
+ }
475
+ });
452
476
  }
453
- await ctx.sleep(100);
477
+ childProc.kill(sig);
454
478
  }
455
- }
456
- const still = ctx.findListeningPids(resolvedPort);
457
- if (still.length) {
458
- for (const pid of still) {
459
- ctx.killPidBestEffort(pid, { force: true });
479
+ catch {
480
+ /* ignore */
460
481
  }
461
- }
462
- logProcessLifecycleSync({
463
- event: 'self_termination',
464
- source: 'cli.start.shutdown',
465
- details: {
466
- reason: 'shutdown_sequence_completed',
482
+ const childExited = await new Promise((resolve) => {
483
+ let settled = false;
484
+ const complete = (value) => {
485
+ if (settled) {
486
+ return;
487
+ }
488
+ settled = true;
489
+ resolve(value);
490
+ };
491
+ childProc.once('exit', () => complete(true));
492
+ setTimeout(() => complete(false), 3500);
493
+ });
494
+ logProcessLifecycleSync({
495
+ event: 'self_termination',
496
+ source: 'cli.start.shutdown',
497
+ details: {
498
+ reason: 'shutdown_sequence_completed',
499
+ signal: sig,
500
+ targetPort: resolvedPort,
501
+ childPid: childProc.pid ?? null,
502
+ childExited
503
+ }
504
+ });
505
+ await applyLifecycleOrThrow({
506
+ action: 'server_shutdown_complete',
467
507
  signal: sig,
468
- targetPort: resolvedPort,
469
- remainingPids: still
508
+ targetPid: childProc.pid ?? null,
509
+ metadata: {
510
+ childExited
511
+ }
512
+ });
513
+ if (ctx.isDevPackage) {
514
+ await ctx.stopTokenDaemonIfRunning?.();
515
+ }
516
+ closeServerLogStream();
517
+ try {
518
+ ctx.exit(0);
519
+ }
520
+ catch {
521
+ /* ignore */
470
522
  }
471
- });
472
- if (ctx.isDevPackage) {
473
- await ctx.stopTokenDaemonIfRunning?.();
474
- }
475
- closeServerLogStream();
476
- try {
477
- ctx.exit(0);
478
523
  }
479
- catch {
480
- /* ignore */
524
+ catch (error) {
525
+ closeServerLogStream();
526
+ ctx.logger.error(error instanceof Error ? error.message : String(error));
527
+ ctx.exit(1);
481
528
  }
482
529
  };
483
530
  const onSignal = ctx.onSignal ?? ((sig, cb) => process.on(sig, cb));
@@ -490,6 +537,9 @@ export function createStartCommand(program, ctx) {
490
537
  cleanupKeypress();
491
538
  }
492
539
  catch { /* ignore */ }
540
+ const codeLabel = typeof code === 'number' && Number.isFinite(code) ? String(code) : 'n/a';
541
+ const signalLabel = signal || 'none';
542
+ ctx.logger.info(`[client-exit] RouteCodex exited (code=${codeLabel}, signal=${signalLabel})`);
493
543
  if (signal) {
494
544
  ctx.exit(0);
495
545
  }