@jsonstudio/rcc 0.90.1 → 0.90.91

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 (193) hide show
  1. package/README.md +1 -1
  2. package/dist/build-info.js +2 -2
  3. package/dist/cli/commands/claude.js +3 -8
  4. package/dist/cli/commands/claude.js.map +1 -1
  5. package/dist/cli/commands/codex.js +5 -3
  6. package/dist/cli/commands/codex.js.map +1 -1
  7. package/dist/cli/commands/launcher/index.d.ts +1 -1
  8. package/dist/cli/commands/launcher/types.d.ts +1 -1
  9. package/dist/cli/commands/launcher/utils.d.ts +4 -1
  10. package/dist/cli/commands/launcher/utils.js +22 -8
  11. package/dist/cli/commands/launcher/utils.js.map +1 -1
  12. package/dist/cli/commands/launcher-kernel.d.ts +1 -1
  13. package/dist/cli/commands/launcher-kernel.js +237 -203
  14. package/dist/cli/commands/launcher-kernel.js.map +1 -1
  15. package/dist/cli/commands/{clock-admin.d.ts → session-admin.d.ts} +2 -2
  16. package/dist/cli/commands/{clock-admin.js → session-admin.js} +17 -17
  17. package/dist/cli/commands/session-admin.js.map +1 -0
  18. package/dist/cli/commands/{tmux-inject.d.ts → session-inject.d.ts} +2 -2
  19. package/dist/cli/commands/{tmux-inject.js → session-inject.js} +12 -12
  20. package/dist/cli/commands/session-inject.js.map +1 -0
  21. package/dist/cli/commands/start-utils.d.ts +1 -0
  22. package/dist/cli/commands/start-utils.js +3 -0
  23. package/dist/cli/commands/start-utils.js.map +1 -1
  24. package/dist/cli/commands/start.js +14 -7
  25. package/dist/cli/commands/start.js.map +1 -1
  26. package/dist/cli/register/session-admin-command.d.ts +3 -0
  27. package/dist/cli/register/session-admin-command.js +5 -0
  28. package/dist/cli/register/session-admin-command.js.map +1 -0
  29. package/dist/cli/register/session-inject-command.d.ts +3 -0
  30. package/dist/cli/register/session-inject-command.js +5 -0
  31. package/dist/cli/register/session-inject-command.js.map +1 -0
  32. package/dist/cli.js +4 -4
  33. package/dist/cli.js.map +1 -1
  34. package/dist/config/provider-v2-loader.js +18 -3
  35. package/dist/config/provider-v2-loader.js.map +1 -1
  36. package/dist/config/routecodex-config-loader.js +136 -26
  37. package/dist/config/routecodex-config-loader.js.map +1 -1
  38. package/dist/config/unified-config-paths.js +22 -0
  39. package/dist/config/unified-config-paths.js.map +1 -1
  40. package/dist/config/virtual-router-builder.js +1 -6
  41. package/dist/config/virtual-router-builder.js.map +1 -1
  42. package/dist/docs/daemon-admin-ui.html +6 -6
  43. package/dist/index.js +1 -1
  44. package/dist/index.js.map +1 -1
  45. package/dist/manager/modules/quota/provider-key-normalization.js +1 -10
  46. package/dist/manager/modules/quota/provider-key-normalization.js.map +1 -1
  47. package/dist/manager/modules/quota/provider-quota-daemon.events.js +40 -49
  48. package/dist/manager/modules/quota/provider-quota-daemon.events.js.map +1 -1
  49. package/dist/manager/modules/quota/provider-quota-daemon.model-backoff.js +2 -16
  50. package/dist/manager/modules/quota/provider-quota-daemon.model-backoff.js.map +1 -1
  51. package/dist/manager/modules/token/index.d.ts +1 -0
  52. package/dist/manager/modules/token/index.js +6 -1
  53. package/dist/manager/modules/token/index.js.map +1 -1
  54. package/dist/manager/types.d.ts +1 -0
  55. package/dist/modules/llmswitch/bridge/state-integrations.js +1 -1
  56. package/dist/modules/llmswitch/bridge/state-integrations.js.map +1 -1
  57. package/dist/providers/auth/oauth-repair-cooldown.js +7 -2
  58. package/dist/providers/auth/oauth-repair-cooldown.js.map +1 -1
  59. package/dist/providers/core/config/camoufox-actions.js +11 -2
  60. package/dist/providers/core/config/camoufox-actions.js.map +1 -1
  61. package/dist/providers/core/config/camoufox-launcher.js +60 -24
  62. package/dist/providers/core/config/camoufox-launcher.js.map +1 -1
  63. package/dist/providers/core/config/service-profiles.js +2 -2
  64. package/dist/providers/core/config/service-profiles.js.map +1 -1
  65. package/dist/providers/core/runtime/base-provider-runtime-helpers.js +15 -2
  66. package/dist/providers/core/runtime/base-provider-runtime-helpers.js.map +1 -1
  67. package/dist/providers/core/strategies/oauth-device-flow.js +26 -3
  68. package/dist/providers/core/strategies/oauth-device-flow.js.map +1 -1
  69. package/dist/providers/core/utils/provider-error-reporter.js +51 -0
  70. package/dist/providers/core/utils/provider-error-reporter.js.map +1 -1
  71. package/dist/server/handlers/handler-response-utils.js +3 -6
  72. package/dist/server/handlers/handler-response-utils.js.map +1 -1
  73. package/dist/server/handlers/handler-utils.js +14 -8
  74. package/dist/server/handlers/handler-utils.js.map +1 -1
  75. package/dist/server/handlers/responses-handler.js +5 -3
  76. package/dist/server/handlers/responses-handler.js.map +1 -1
  77. package/dist/server/runtime/http-server/daemon-admin/providers-handler-routing-utils.d.ts +1 -1
  78. package/dist/server/runtime/http-server/daemon-admin/providers-handler-routing-utils.js +5 -5
  79. package/dist/server/runtime/http-server/daemon-admin/providers-handler-routing-utils.js.map +1 -1
  80. package/dist/server/runtime/http-server/daemon-admin/routing-policy.d.ts +1 -1
  81. package/dist/server/runtime/http-server/daemon-admin/routing-policy.js +4 -4
  82. package/dist/server/runtime/http-server/daemon-admin/routing-policy.js.map +1 -1
  83. package/dist/server/runtime/http-server/executor/client-injection-flow.js +20 -10
  84. package/dist/server/runtime/http-server/executor/client-injection-flow.js.map +1 -1
  85. package/dist/server/runtime/http-server/executor/provider-response-converter.js +54 -17
  86. package/dist/server/runtime/http-server/executor/provider-response-converter.js.map +1 -1
  87. package/dist/server/runtime/http-server/executor/provider-runtime-resolver.js +8 -6
  88. package/dist/server/runtime/http-server/executor/provider-runtime-resolver.js.map +1 -1
  89. package/dist/server/runtime/http-server/executor/request-retry-helpers.d.ts +1 -1
  90. package/dist/server/runtime/http-server/executor/request-retry-helpers.js +8 -8
  91. package/dist/server/runtime/http-server/executor/request-retry-helpers.js.map +1 -1
  92. package/dist/server/runtime/http-server/executor/retry-engine.d.ts +2 -2
  93. package/dist/server/runtime/http-server/executor/retry-engine.js +2 -2
  94. package/dist/server/runtime/http-server/executor/retry-engine.js.map +1 -1
  95. package/dist/server/runtime/http-server/executor/usage-aggregator.js +5 -2
  96. package/dist/server/runtime/http-server/executor/usage-aggregator.js.map +1 -1
  97. package/dist/server/runtime/http-server/executor-metadata.js +57 -77
  98. package/dist/server/runtime/http-server/executor-metadata.js.map +1 -1
  99. package/dist/server/runtime/http-server/executor-provider.d.ts +1 -0
  100. package/dist/server/runtime/http-server/executor-provider.js +5 -1
  101. package/dist/server/runtime/http-server/executor-provider.js.map +1 -1
  102. package/dist/server/runtime/http-server/http-server-lifecycle.js +2 -1
  103. package/dist/server/runtime/http-server/http-server-lifecycle.js.map +1 -1
  104. package/dist/server/runtime/http-server/http-server-runtime-setup.js +1 -1
  105. package/dist/server/runtime/http-server/http-server-runtime-setup.js.map +1 -1
  106. package/dist/server/runtime/http-server/http-server-session-daemon.d.ts +6 -0
  107. package/dist/server/runtime/http-server/{http-server-clock-daemon.js → http-server-session-daemon.js} +80 -73
  108. package/dist/server/runtime/http-server/http-server-session-daemon.js.map +1 -0
  109. package/dist/server/runtime/http-server/index.d.ts +11 -11
  110. package/dist/server/runtime/http-server/index.js +21 -21
  111. package/dist/server/runtime/http-server/index.js.map +1 -1
  112. package/dist/server/runtime/http-server/managed-process-probe.js +1 -1
  113. package/dist/server/runtime/http-server/managed-process-probe.js.map +1 -1
  114. package/dist/server/runtime/http-server/middleware.js +19 -11
  115. package/dist/server/runtime/http-server/middleware.js.map +1 -1
  116. package/dist/server/runtime/http-server/request-executor.js +13 -4
  117. package/dist/server/runtime/http-server/request-executor.js.map +1 -1
  118. package/dist/server/runtime/http-server/routes.js +3 -3
  119. package/dist/server/runtime/http-server/routes.js.map +1 -1
  120. package/dist/server/runtime/http-server/{clock-client-reaper.d.ts → session-client-reaper.d.ts} +6 -6
  121. package/dist/server/runtime/http-server/{clock-client-reaper.js → session-client-reaper.js} +23 -23
  122. package/dist/server/runtime/http-server/session-client-reaper.js.map +1 -0
  123. package/dist/server/runtime/http-server/{clock-client-registry-utils.d.ts → session-client-registry-utils.d.ts} +10 -10
  124. package/dist/server/runtime/http-server/{clock-client-registry-utils.js → session-client-registry-utils.js} +3 -3
  125. package/dist/server/runtime/http-server/session-client-registry-utils.js.map +1 -0
  126. package/dist/server/runtime/http-server/{clock-client-registry.d.ts → session-client-registry.d.ts} +12 -12
  127. package/dist/server/runtime/http-server/{clock-client-registry.js → session-client-registry.js} +9 -9
  128. package/dist/server/runtime/http-server/session-client-registry.js.map +1 -0
  129. package/dist/server/runtime/http-server/{clock-client-route-utils.d.ts → session-client-route-utils.d.ts} +1 -1
  130. package/dist/server/runtime/http-server/{clock-client-route-utils.js → session-client-route-utils.js} +4 -4
  131. package/dist/server/runtime/http-server/session-client-route-utils.js.map +1 -0
  132. package/dist/server/runtime/http-server/session-client-routes.d.ts +2 -0
  133. package/dist/server/runtime/http-server/{clock-client-routes.js → session-client-routes.js} +65 -47
  134. package/dist/server/runtime/http-server/session-client-routes.js.map +1 -0
  135. package/dist/server/runtime/http-server/session-daemon-inject-config.d.ts +1 -0
  136. package/dist/server/runtime/http-server/{clock-daemon-inject-config.js → session-daemon-inject-config.js} +2 -2
  137. package/dist/server/runtime/http-server/session-daemon-inject-config.js.map +1 -0
  138. package/dist/server/runtime/http-server/{clock-daemon-log-throttle.d.ts → session-daemon-log-throttle.d.ts} +7 -7
  139. package/dist/server/runtime/http-server/{clock-daemon-log-throttle.js → session-daemon-log-throttle.js} +5 -5
  140. package/dist/server/runtime/http-server/session-daemon-log-throttle.js.map +1 -0
  141. package/dist/server/runtime/http-server/{clock-scope-resolution.d.ts → session-scope-resolution.d.ts} +2 -2
  142. package/dist/server/runtime/http-server/{clock-scope-resolution.js → session-scope-resolution.js} +14 -18
  143. package/dist/server/runtime/http-server/session-scope-resolution.js.map +1 -0
  144. package/dist/server/runtime/http-server/stopmessage-scope-rebind.d.ts +8 -0
  145. package/dist/server/runtime/http-server/stopmessage-scope-rebind.js +29 -0
  146. package/dist/server/runtime/http-server/stopmessage-scope-rebind.js.map +1 -1
  147. package/dist/server/runtime/http-server/tmux-session-probe.js +1 -1
  148. package/dist/server/runtime/http-server/tmux-session-probe.js.map +1 -1
  149. package/dist/token-daemon/token-daemon.d.ts +2 -0
  150. package/dist/token-daemon/token-daemon.js +18 -10
  151. package/dist/token-daemon/token-daemon.js.map +1 -1
  152. package/dist/utils/log-helpers.js +46 -0
  153. package/dist/utils/log-helpers.js.map +1 -1
  154. package/dist/utils/session-client-token.d.ts +4 -0
  155. package/dist/utils/{clock-client-token.js → session-client-token.js} +19 -24
  156. package/dist/utils/session-client-token.js.map +1 -0
  157. package/dist/utils/session-scope-trace.d.ts +11 -0
  158. package/dist/utils/{clock-scope-trace.js → session-scope-trace.js} +9 -9
  159. package/dist/utils/session-scope-trace.js.map +1 -0
  160. package/docs/CLOCK.md +0 -1
  161. package/docs/PORTS.md +2 -2
  162. package/docs/ROUTING_POLICY_SCHEMA.md +1 -1
  163. package/docs/antigravity-routing-contract.md +2 -2
  164. package/docs/daemon-admin-ui.html +6 -6
  165. package/docs/{clock-client-daemon-design.md → session-client-daemon-design.md} +34 -34
  166. package/package.json +3 -3
  167. package/scripts/compare-responses-sse.mjs +267 -0
  168. package/scripts/replay-codex-sample.mjs +52 -6
  169. package/scripts/virtual-router-dryrun.mjs +7 -1
  170. package/dist/cli/commands/clock-admin.js.map +0 -1
  171. package/dist/cli/commands/tmux-inject.js.map +0 -1
  172. package/dist/cli/register/clock-admin-command.d.ts +0 -3
  173. package/dist/cli/register/clock-admin-command.js +0 -5
  174. package/dist/cli/register/clock-admin-command.js.map +0 -1
  175. package/dist/cli/register/tmux-inject-command.d.ts +0 -3
  176. package/dist/cli/register/tmux-inject-command.js +0 -5
  177. package/dist/cli/register/tmux-inject-command.js.map +0 -1
  178. package/dist/server/runtime/http-server/clock-client-reaper.js.map +0 -1
  179. package/dist/server/runtime/http-server/clock-client-registry-utils.js.map +0 -1
  180. package/dist/server/runtime/http-server/clock-client-registry.js.map +0 -1
  181. package/dist/server/runtime/http-server/clock-client-route-utils.js.map +0 -1
  182. package/dist/server/runtime/http-server/clock-client-routes.d.ts +0 -2
  183. package/dist/server/runtime/http-server/clock-client-routes.js.map +0 -1
  184. package/dist/server/runtime/http-server/clock-daemon-inject-config.d.ts +0 -1
  185. package/dist/server/runtime/http-server/clock-daemon-inject-config.js.map +0 -1
  186. package/dist/server/runtime/http-server/clock-daemon-log-throttle.js.map +0 -1
  187. package/dist/server/runtime/http-server/clock-scope-resolution.js.map +0 -1
  188. package/dist/server/runtime/http-server/http-server-clock-daemon.d.ts +0 -6
  189. package/dist/server/runtime/http-server/http-server-clock-daemon.js.map +0 -1
  190. package/dist/utils/clock-client-token.d.ts +0 -4
  191. package/dist/utils/clock-client-token.js.map +0 -1
  192. package/dist/utils/clock-scope-trace.d.ts +0 -11
  193. package/dist/utils/clock-scope-trace.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"log-helpers.js","sourceRoot":"","sources":["../../src/utils/log-helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"log-helpers.js","sourceRoot":"","sources":["../../src/utils/log-helpers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export declare function encodeSessionClientApiKey(baseApiKey: string, daemonId: string, sessionScopeId?: string): string;
2
+ export declare function extractSessionClientDaemonIdFromApiKey(value: unknown): string | undefined;
3
+ export declare function extractSessionClientScopeIdFromApiKey(value: unknown): string | undefined;
4
+ export declare function matchesExpectedClientApiKey(providedApiKey: string, expectedApiKey: string): boolean;
@@ -1,5 +1,5 @@
1
- const CLOCK_DAEMON_KEY_DELIMITER = '::rcc-clockd:';
2
- const CLOCK_TMUX_KEY_DELIMITER = '::rcc-tmux:';
1
+ const SESSION_DAEMON_KEY_DELIMITER = '::rcc-sessiond:';
2
+ const SESSION_SCOPE_KEY_DELIMITER = '::rcc-session:';
3
3
  function normalizeToken(value) {
4
4
  if (typeof value !== 'string') {
5
5
  return '';
@@ -32,49 +32,49 @@ function extractSuffixValue(apiKey, marker) {
32
32
  return undefined;
33
33
  }
34
34
  const start = markerIndex + marker.length;
35
- const nextDaemon = apiKey.indexOf(CLOCK_DAEMON_KEY_DELIMITER, start);
36
- const nextTmux = apiKey.indexOf(CLOCK_TMUX_KEY_DELIMITER, start);
37
- const candidates = [nextDaemon, nextTmux].filter((entry) => entry >= 0);
35
+ const nextDaemon = apiKey.indexOf(SESSION_DAEMON_KEY_DELIMITER, start);
36
+ const nextScope = apiKey.indexOf(SESSION_SCOPE_KEY_DELIMITER, start);
37
+ const candidates = [nextDaemon, nextScope].filter((entry) => entry >= 0);
38
38
  const end = candidates.length > 0 ? Math.min(...candidates) : apiKey.length;
39
39
  const value = apiKey.slice(start, end);
40
40
  return value || undefined;
41
41
  }
42
- export function encodeClockClientApiKey(baseApiKey, daemonId, tmuxSessionId) {
42
+ export function encodeSessionClientApiKey(baseApiKey, daemonId, sessionScopeId) {
43
43
  const base = normalizeToken(baseApiKey) || 'rcc-proxy-key';
44
44
  const normalizedDaemonId = normalizeDaemonId(daemonId);
45
- const normalizedTmuxSessionId = normalizeTmuxSessionId(tmuxSessionId);
45
+ const normalizedScopeId = normalizeTmuxSessionId(sessionScopeId);
46
46
  let encoded = base;
47
47
  if (normalizedDaemonId) {
48
- encoded = `${encoded}${CLOCK_DAEMON_KEY_DELIMITER}${normalizedDaemonId}`;
48
+ encoded = `${encoded}${SESSION_DAEMON_KEY_DELIMITER}${normalizedDaemonId}`;
49
49
  }
50
- if (normalizedTmuxSessionId) {
51
- encoded = `${encoded}${CLOCK_TMUX_KEY_DELIMITER}${normalizedTmuxSessionId}`;
50
+ if (normalizedScopeId) {
51
+ encoded = `${encoded}${SESSION_SCOPE_KEY_DELIMITER}${normalizedScopeId}`;
52
52
  }
53
53
  return encoded;
54
54
  }
55
- export function extractClockClientDaemonIdFromApiKey(value) {
55
+ export function extractSessionClientDaemonIdFromApiKey(value) {
56
56
  const apiKey = normalizeToken(value);
57
57
  if (!apiKey) {
58
58
  return undefined;
59
59
  }
60
- const suffix = extractSuffixValue(apiKey, CLOCK_DAEMON_KEY_DELIMITER);
60
+ const suffix = extractSuffixValue(apiKey, SESSION_DAEMON_KEY_DELIMITER);
61
61
  if (!suffix) {
62
62
  return undefined;
63
63
  }
64
64
  const daemonId = normalizeDaemonId(suffix);
65
65
  return daemonId || undefined;
66
66
  }
67
- export function extractClockClientTmuxSessionIdFromApiKey(value) {
67
+ export function extractSessionClientScopeIdFromApiKey(value) {
68
68
  const apiKey = normalizeToken(value);
69
69
  if (!apiKey) {
70
70
  return undefined;
71
71
  }
72
- const suffix = extractSuffixValue(apiKey, CLOCK_TMUX_KEY_DELIMITER);
72
+ const suffix = extractSuffixValue(apiKey, SESSION_SCOPE_KEY_DELIMITER);
73
73
  if (!suffix) {
74
74
  return undefined;
75
75
  }
76
- const tmuxSessionId = normalizeTmuxSessionId(suffix);
77
- return tmuxSessionId || undefined;
76
+ const scopeId = normalizeTmuxSessionId(suffix);
77
+ return scopeId || undefined;
78
78
  }
79
79
  export function matchesExpectedClientApiKey(providedApiKey, expectedApiKey) {
80
80
  const provided = normalizeToken(providedApiKey);
@@ -85,14 +85,9 @@ export function matchesExpectedClientApiKey(providedApiKey, expectedApiKey) {
85
85
  if (provided === expected) {
86
86
  return true;
87
87
  }
88
- if (!provided.startsWith(expected)) {
89
- return false;
90
- }
91
- const daemonId = extractClockClientDaemonIdFromApiKey(provided);
92
- if (daemonId) {
88
+ if (provided.startsWith(expected)) {
93
89
  return true;
94
90
  }
95
- const tmuxSessionId = extractClockClientTmuxSessionIdFromApiKey(provided);
96
- return Boolean(tmuxSessionId);
91
+ return false;
97
92
  }
98
- //# sourceMappingURL=clock-client-token.js.map
93
+ //# sourceMappingURL=session-client-token.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-client-token.js","sourceRoot":"","sources":["../../src/utils/session-client-token.ts"],"names":[],"mappings":"AAAA,MAAM,4BAA4B,GAAG,iBAAiB,CAAC;AACvD,MAAM,2BAA2B,GAAG,gBAAgB,CAAC;AAErD,SAAS,cAAc,CAAC,KAAc;IACpC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC;AACtB,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAc;IACvC,MAAM,UAAU,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IACzC,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QAC3C,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,sBAAsB,CAAC,KAAc;IAC5C,MAAM,UAAU,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IACzC,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QAC3C,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,kBAAkB,CAAC,MAAc,EAAE,MAAc;IACxD,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAC/C,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;QACpB,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,KAAK,GAAG,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC;IAC1C,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,4BAA4B,EAAE,KAAK,CAAC,CAAC;IACvE,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAC;IACrE,MAAM,UAAU,GAAG,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;IACzE,MAAM,GAAG,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;IAC5E,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACvC,OAAO,KAAK,IAAI,SAAS,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,UAAkB,EAAE,QAAgB,EAAE,cAAuB;IACrG,MAAM,IAAI,GAAG,cAAc,CAAC,UAAU,CAAC,IAAI,eAAe,CAAC;IAC3D,MAAM,kBAAkB,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IACvD,MAAM,iBAAiB,GAAG,sBAAsB,CAAC,cAAc,CAAC,CAAC;IACjE,IAAI,OAAO,GAAG,IAAI,CAAC;IACnB,IAAI,kBAAkB,EAAE,CAAC;QACvB,OAAO,GAAG,GAAG,OAAO,GAAG,4BAA4B,GAAG,kBAAkB,EAAE,CAAC;IAC7E,CAAC;IACD,IAAI,iBAAiB,EAAE,CAAC;QACtB,OAAO,GAAG,GAAG,OAAO,GAAG,2BAA2B,GAAG,iBAAiB,EAAE,CAAC;IAC3E,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,sCAAsC,CAAC,KAAc;IACnE,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IACrC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,MAAM,GAAG,kBAAkB,CAAC,MAAM,EAAE,4BAA4B,CAAC,CAAC;IACxE,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,QAAQ,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAC3C,OAAO,QAAQ,IAAI,SAAS,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,qCAAqC,CAAC,KAAc;IAClE,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IACrC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,MAAM,GAAG,kBAAkB,CAAC,MAAM,EAAE,2BAA2B,CAAC,CAAC;IACvE,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,OAAO,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAC/C,OAAO,OAAO,IAAI,SAAS,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,cAAsB,EAAE,cAAsB;IACxF,MAAM,QAAQ,GAAG,cAAc,CAAC,cAAc,CAAC,CAAC;IAChD,MAAM,QAAQ,GAAG,cAAc,CAAC,cAAc,CAAC,CAAC;IAChD,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC3B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAClC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -0,0 +1,11 @@
1
+ type SessionScopeTraceMode = 'off' | 'auto' | 'on' | 'verbose';
2
+ export declare function resolveSessionScopeTraceMode(): SessionScopeTraceMode;
3
+ export declare function isSessionScopeTraceEnabled(): boolean;
4
+ export declare function isSessionScopeTraceVerbose(): boolean;
5
+ export declare function shouldTraceSessionScopeByContext(args: {
6
+ endpointOrPath: string;
7
+ userAgent?: string;
8
+ originator?: string;
9
+ hasTurnMetadata?: boolean;
10
+ }): boolean;
11
+ export {};
@@ -1,9 +1,9 @@
1
1
  function readTraceModeRaw() {
2
- return String(process.env.ROUTECODEX_CLOCK_SCOPE_TRACE ?? process.env.RCC_CLOCK_SCOPE_TRACE ?? '')
2
+ return String(process.env.ROUTECODEX_SESSION_SCOPE_TRACE ?? process.env.RCC_SESSION_SCOPE_TRACE ?? '')
3
3
  .trim()
4
4
  .toLowerCase();
5
5
  }
6
- export function resolveClockScopeTraceMode() {
6
+ export function resolveSessionScopeTraceMode() {
7
7
  const raw = readTraceModeRaw();
8
8
  if (!raw || raw === 'auto' || raw === 'default') {
9
9
  return 'auto';
@@ -19,15 +19,15 @@ export function resolveClockScopeTraceMode() {
19
19
  }
20
20
  return 'auto';
21
21
  }
22
- export function isClockScopeTraceEnabled() {
23
- const mode = resolveClockScopeTraceMode();
22
+ export function isSessionScopeTraceEnabled() {
23
+ const mode = resolveSessionScopeTraceMode();
24
24
  return mode === 'on' || mode === 'verbose';
25
25
  }
26
- export function isClockScopeTraceVerbose() {
27
- return resolveClockScopeTraceMode() === 'verbose';
26
+ export function isSessionScopeTraceVerbose() {
27
+ return resolveSessionScopeTraceMode() === 'verbose';
28
28
  }
29
- export function shouldTraceClockScopeByContext(args) {
30
- const mode = resolveClockScopeTraceMode();
29
+ export function shouldTraceSessionScopeByContext(args) {
30
+ const mode = resolveSessionScopeTraceMode();
31
31
  if (mode === 'off') {
32
32
  return false;
33
33
  }
@@ -38,4 +38,4 @@ export function shouldTraceClockScopeByContext(args) {
38
38
  // auto mode defaults to silent to avoid noisy request-path logging in normal runs.
39
39
  return false;
40
40
  }
41
- //# sourceMappingURL=clock-scope-trace.js.map
41
+ //# sourceMappingURL=session-scope-trace.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-scope-trace.js","sourceRoot":"","sources":["../../src/utils/session-scope-trace.ts"],"names":[],"mappings":"AAEA,SAAS,gBAAgB;IACvB,OAAO,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,8BAA8B,IAAI,OAAO,CAAC,GAAG,CAAC,uBAAuB,IAAI,EAAE,CAAC;SACnG,IAAI,EAAE;SACN,WAAW,EAAE,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,4BAA4B;IAC1C,MAAM,GAAG,GAAG,gBAAgB,EAAE,CAAC;IAC/B,IAAI,CAAC,GAAG,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QAChD,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,OAAO,IAAI,GAAG,KAAK,KAAK,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QACpE,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,KAAK,EAAE,CAAC;QACnE,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,OAAO,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;QAC3E,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,0BAA0B;IACxC,MAAM,IAAI,GAAG,4BAA4B,EAAE,CAAC;IAC5C,OAAO,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,0BAA0B;IACxC,OAAO,4BAA4B,EAAE,KAAK,SAAS,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,gCAAgC,CAAC,IAKhD;IACC,MAAM,IAAI,GAAG,4BAA4B,EAAE,CAAC;IAC5C,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;QACnB,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACxC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,KAAK,IAAI,CAAC;IACV,mFAAmF;IACnF,OAAO,KAAK,CAAC;AACf,CAAC"}
package/docs/CLOCK.md CHANGED
@@ -91,4 +91,3 @@ NTP 状态持久化路径(落在运行时 session 根目录下):
91
91
 
92
92
  1. **主动工具调用**:MCP/模型调用 `clock(action="get")` 或 `clock(action="schedule")`
93
93
  2. **被动注入**:每次请求都会看到 `Time Tag`;到点的提醒会被注入为 `role=user` 的提示文本(建议进行工具调用)
94
-
package/docs/PORTS.md CHANGED
@@ -19,13 +19,14 @@
19
19
 
20
20
  - **严格按配置文件端口启动**(`httpserver.port`)
21
21
  - 若端口缺失/非法:`rcc start` 直接失败
22
+ - 也可用 `rcc start --port <port>` 覆盖
22
23
 
23
24
  ### `routecodex`(dev worktree)
24
25
 
25
26
  - 默认端口固定为 `5555`
26
27
  - 可用环境变量覆盖:
27
28
  - `ROUTECODEX_PORT` 或 `RCC_PORT`
28
- - 也可用 `routecodex start --port <port>` 覆盖(dev package only)
29
+ - 也可用 `routecodex start --port <port>` 覆盖
29
30
 
30
31
  ## 常用排查
31
32
 
@@ -33,4 +34,3 @@
33
34
  rcc status
34
35
  curl http://127.0.0.1:5555/ready
35
36
  ```
36
-
@@ -38,7 +38,7 @@ Canonical snapshot shape:
38
38
  "enabled": true,
39
39
  "policyFile": "~/.routecodex/policy/exec-command-guard.v1.json"
40
40
  },
41
- "clock": {}
41
+ "session": {}
42
42
  }
43
43
  }
44
44
  ```
@@ -20,7 +20,7 @@ for the "standard" execution path; any alternative behavior is considered legacy
20
20
  cascade into cross-account verification (403 verify) events. Retrying within the same request should be conservative.
21
21
 
22
22
  3) **Alias rotation happens across requests, not within a single request**
23
- Multi-alias load balancing remains `sticky-queue` for Antigravity, but it is applied **across requests** (via cooldown/health),
23
+ Multi-alias load balancing remains `sticky-queue` for Antigravity, but it is applied **across requests** (via per-providerKey cooldown/health),
24
24
  not by hammering all aliases inside one request's retry loop.
25
25
 
26
26
  ## Where this is implemented
@@ -32,6 +32,6 @@ for the "standard" execution path; any alternative behavior is considered legacy
32
32
  - `sharedmodule/llmswitch-core/src/router/virtual-router/engine-selection/alias-selection.ts`
33
33
  - `sharedmodule/llmswitch-core/src/router/virtual-router/engine-selection/tier-selection.ts`
34
34
  - `sharedmodule/llmswitch-core/src/router/virtual-router/engine-selection/tier-selection-select.ts`
35
- - **Capacity-style 429 cooldown (alias-level for Antigravity / gemini-cli)**:
35
+ - **Capacity-style 429 cooldown (per-providerKey, no alias fan-out)**:
36
36
  - `src/manager/modules/quota/provider-quota-daemon.model-backoff.ts`
37
37
  - `src/manager/modules/quota/provider-quota-daemon.events.ts`
@@ -945,8 +945,8 @@
945
945
  </div>
946
946
 
947
947
  <div class="card" style="box-shadow: none;">
948
- <p class="section-title">Clock daemon bindings</p>
949
- <p class="section-sub">tmux daemon registry and heartbeat state used by clock injection.</p>
948
+ <p class="section-title">Session daemon bindings</p>
949
+ <p class="section-sub">session daemon registry and heartbeat state used by clock injection.</p>
950
950
  <div class="table-wrap">
951
951
  <table class="table">
952
952
  <thead>
@@ -2309,7 +2309,7 @@
2309
2309
  const overviewEl = $("clockOverviewText");
2310
2310
  if (!overviewEl) return;
2311
2311
  try {
2312
- const res = await fetch("/daemon/clock/tasks");
2312
+ const res = await fetch("/daemon/session/tasks");
2313
2313
  if (!res || !res.ok) throw new Error(res ? String(res.status) : "request_failed");
2314
2314
  const data = await res.json().catch(() => ({}));
2315
2315
  const sessions = data && Array.isArray(data.sessions) ? data.sessions : [];
@@ -2722,7 +2722,7 @@
2722
2722
 
2723
2723
  if (daemonBody) {
2724
2724
  if (!records.length) {
2725
- daemonBody.appendChild(createInfoRow(7, "No clock daemon bindings."));
2725
+ daemonBody.appendChild(createInfoRow(7, "No session daemon bindings."));
2726
2726
  } else {
2727
2727
  for (const rec of records) {
2728
2728
  const tr = document.createElement("tr");
@@ -2762,8 +2762,8 @@
2762
2762
  try {
2763
2763
  const filter = textOf($("clockSessionFilterInput") && $("clockSessionFilterInput").value).trim();
2764
2764
  const path = filter
2765
- ? "/daemon/clock/tasks?sessionId=" + encodeURIComponent(filter)
2766
- : "/daemon/clock/tasks";
2765
+ ? "/daemon/session/tasks?sessionId=" + encodeURIComponent(filter)
2766
+ : "/daemon/session/tasks";
2767
2767
  const data = await apiFetch(path);
2768
2768
  UI.clockSnapshot = data && typeof data === "object" ? data : {};
2769
2769
  UI.clockSnapshotUpdatedAt = Date.now();
@@ -1,4 +1,4 @@
1
- # Clock Client Daemon + Private Clock Marker Design (routecodex-119)
1
+ # Session Client Daemon + Private Clock Marker Design (routecodex-119)
2
2
 
3
3
  ## 1. Background
4
4
 
@@ -49,13 +49,13 @@ We need a controlled path where:
49
49
  5. **Daemon auth model**
50
50
  - Localhost-only access guard for daemon control endpoints.
51
51
 
52
- 6. **Clock inject session binding**
52
+ 6. **Session inject session binding**
53
53
  - Daemon routing key is `tmuxSessionId` (tmux session domain), not conversation `sessionId`.
54
54
  - Conversation `sessionId` is bound separately to a tmux session in server registry (mapping domain separation).
55
- - Launcher appends daemon identity suffix to proxied api key (`::rcc-clockd:<daemonId>`).
56
- - HTTP auth middleware extracts daemon suffix and attaches `x-routecodex-clock-daemon-id` request hint.
55
+ - Launcher appends daemon identity suffix to proxied api key (`::rcc-sessiond:<daemonId>`).
56
+ - HTTP auth middleware extracts daemon suffix and attaches `x-routecodex-session-daemon-id` request hint.
57
57
  - Executor metadata binds `conversationSessionId -> daemonId/tmuxSessionId` deterministically before due injection tick.
58
- - `/daemon/clock-client/inject` remains strict and never falls back to unrelated alive daemons.
58
+ - `/daemon/session-client/inject` remains strict and never falls back to unrelated alive daemons.
59
59
 
60
60
  ## 4. Architecture
61
61
 
@@ -64,7 +64,7 @@ We need a controlled path where:
64
64
  - **Launcher (`rcc codex/claude`)**
65
65
  - Detects tmux capability.
66
66
  - Starts/attaches client daemon if available.
67
- - **Clock Client Daemon**
67
+ - **Session Client Daemon**
68
68
  - Maintains registration + heartbeat with server.
69
69
  - Executes `tmux send-keys` for injection + Enter.
70
70
  - Self-terminates when parent/client exits.
@@ -116,19 +116,19 @@ please remind me
116
116
 
117
117
  ## 6. Server Daemon Control Endpoints (localhost only)
118
118
 
119
- - `POST /daemon/clock-client/register`
120
- - `POST /daemon/clock-client/heartbeat`
121
- - `POST /daemon/clock-client/inject`
122
- - `POST /daemon/clock-client/unregister`
119
+ - `POST /daemon/session-client/register`
120
+ - `POST /daemon/session-client/heartbeat`
121
+ - `POST /daemon/session-client/inject`
122
+ - `POST /daemon/session-client/unregister`
123
123
 
124
124
  Payload fields include session/client type/tmux target/request id/injection text as needed.
125
125
 
126
126
  ### 6.1 External injection CLI
127
127
 
128
- - Command: `routecodex tmux-inject` / `rcc tmux-inject`
128
+ - Command: `routecodex session-inject` / `rcc session-inject`
129
129
  - Common usage:
130
- - `rcc tmux-inject --port 5520 --list`
131
- - `rcc tmux-inject --port 5520 --text "hello" --tmux-session-id <tmuxSessionId>`
130
+ - `rcc session-inject --port 5520 --list`
131
+ - `rcc session-inject --port 5520 --text "hello" --tmux-session-id <tmuxSessionId>`
132
132
  - Target resolution rules:
133
133
  - Prefer explicit `--tmux-session-id` (or legacy `--session-id` alias);
134
134
  - else resolve via `--daemon-id`;
@@ -169,7 +169,7 @@ To ensure due tasks are actually delivered to the client input surface (not only
169
169
  - Source of truth: `clock/*.json` under server-scoped `ROUTECODEX_SESSION_DIR`.
170
170
  - Runtime config parsing: delegated to llmswitch-core `resolveClockConfig` bridge API.
171
171
  - Due reservation: delegated to llmswitch-core `reserveDueTasksForRequest` bridge API.
172
- - Delivery path: host `ClockClientRegistry.inject({ sessionId, ... })`, where `sessionId` can be conversation ID and is resolved to mapped `tmuxSessionId`.
172
+ - Delivery path: host `SessionClientRegistry.inject({ sessionId, ... })`, where `sessionId` can be conversation ID and is resolved to mapped `tmuxSessionId`.
173
173
  - Commit rule: call `commitClockReservation` only after successful daemon injection.
174
174
 
175
175
  ### 10.1 Lifecycle
@@ -195,10 +195,10 @@ Fix:
195
195
  - `sharedmodule/llmswitch-core`: `npm run build` ✅
196
196
  - RouteCodex targeted suite (via `npm run jest:run -- --runTestsByPath ...`) ✅
197
197
  - `tests/servertool/servertool-clock.spec.ts` (includes new provider pin regression)
198
- - `tests/server/http-server/clock-client-routes.spec.ts`
198
+ - `tests/server/http-server/session-client-routes.spec.ts`
199
199
  - `tests/server/http-server/hub-policy-injection.spec.ts`
200
200
  - `tests/server/http-server/quota-view-injection.spec.ts`
201
- - `tests/cli/tmux-inject-command.spec.ts`
201
+ - `tests/cli/session-inject-command.spec.ts`
202
202
  - `tests/cli/codex-command.spec.ts`
203
203
  - `tests/cli/claude-command.spec.ts`
204
204
  - `npm run build:dev` ✅
@@ -212,11 +212,11 @@ Using a temporary server on port `5630` + mock callback daemon:
212
212
  2. Schedule one due task for `conv_clock_live` in task-store.
213
213
  3. Observe callback payload auto-arrival from server loop:
214
214
 
215
- - `source: "clock.daemon.inject"`
215
+ - `source: "session.daemon.inject"`
216
216
  - `tmuxSessionId: "rcc_test_tmux"`
217
217
  - text includes `[Clock Reminder]` and scheduled task details.
218
218
 
219
- 4. `/daemon/clock-client/list` shows `lastInjectAtMs` updated.
219
+ 4. `/daemon/session-client/list` shows `lastInjectAtMs` updated.
220
220
 
221
221
  ## 13. Submit-key reliability hardening (routecodex-128)
222
222
 
@@ -234,13 +234,13 @@ Fix applied in launcher daemon path:
234
234
 
235
235
  Validation:
236
236
 
237
- - `npm run jest:run -- --runInBand --runTestsByPath tests/cli/codex-command.spec.ts tests/cli/claude-command.spec.ts tests/cli/tmux-inject-command.spec.ts` ✅
238
- - `npm run jest:run -- --runInBand --runTestsByPath tests/server/http-server/clock-client-routes.spec.ts tests/server/http-server/executor-metadata.spec.ts tests/server/http-server/httpserver-apikey-env-resolution.spec.ts tests/utils/clock-client-token.spec.ts` ✅
237
+ - `npm run jest:run -- --runInBand --runTestsByPath tests/cli/codex-command.spec.ts tests/cli/claude-command.spec.ts tests/cli/session-inject-command.spec.ts` ✅
238
+ - `npm run jest:run -- --runInBand --runTestsByPath tests/server/http-server/session-client-routes.spec.ts tests/server/http-server/executor-metadata.spec.ts tests/server/http-server/httpserver-apikey-env-resolution.spec.ts tests/utils/session-client-token.spec.ts` ✅
239
239
  - `npx tsc --noEmit` ✅
240
240
 
241
241
  ## 14. Precise trigger mode (routecodex-129)
242
242
 
243
- Clock daemon delivery now runs in exact due-time mode by default:
243
+ Session daemon delivery now runs in exact due-time mode by default:
244
244
 
245
245
  - host daemon inject loop rewrites effective clock config to `dueWindowMs=0` before reservation;
246
246
  - this prevents early-fire behavior from legacy wide due windows in request-driven paths;
@@ -305,21 +305,21 @@ Cleanup behavior:
305
305
 
306
306
  Added management endpoints:
307
307
 
308
- - `GET /daemon/clock/tasks` (list)
309
- - `POST /daemon/clock/tasks` (create)
310
- - `PATCH /daemon/clock/tasks` (update)
311
- - `DELETE /daemon/clock/tasks` (delete one / clear session)
312
- - `POST /daemon/clock/cleanup` (`mode=dead_tmux|unbind`)
308
+ - `GET /daemon/session/tasks` (list)
309
+ - `POST /daemon/session/tasks` (create)
310
+ - `PATCH /daemon/session/tasks` (update)
311
+ - `DELETE /daemon/session/tasks` (delete one / clear session)
312
+ - `POST /daemon/session/cleanup` (`mode=dead_tmux|unbind`)
313
313
 
314
314
  CLI management command:
315
315
 
316
- - `rcc clock-admin --list`
317
- - `rcc clock-admin --create --session-id <sid> --due-at <iso> --task <text> --recurrence interval --every-minutes 5 --max-runs 10`
318
- - `rcc clock-admin --update --session-id <sid> --task-id <tid> --due-at <iso> --task "..."`
319
- - `rcc clock-admin --delete --session-id <sid> --task-id <tid>`
320
- - `rcc clock-admin --clear --session-id <sid>`
321
- - `rcc clock-admin --cleanup-dead-tmux`
322
- - `rcc clock-admin --unbind-session <conversationSessionId> [--clear-tasks]`
316
+ - `rcc session-admin --list`
317
+ - `rcc session-admin --create --session-id <sid> --due-at <iso> --task <text> --recurrence interval --every-minutes 5 --max-runs 10`
318
+ - `rcc session-admin --update --session-id <sid> --task-id <tid> --due-at <iso> --task "..."`
319
+ - `rcc session-admin --delete --session-id <sid> --task-id <tid>`
320
+ - `rcc session-admin --clear --session-id <sid>`
321
+ - `rcc session-admin --cleanup-dead-tmux`
322
+ - `rcc session-admin --unbind-session <conversationSessionId> [--clear-tasks]`
323
323
 
324
324
  WebUI management entry:
325
325
 
@@ -332,7 +332,7 @@ Clock tool now supports `action=update` (with `taskId` + `items[0]`) so models c
332
332
 
333
333
  ### 15.6 Trigger precision and reminder guidance
334
334
 
335
- Clock daemon inject loop uses exact due matching (`dueWindowMs=0`) to avoid early delivery.
335
+ Session daemon inject loop uses exact due matching (`dueWindowMs=0`) to avoid early delivery.
336
336
  Reminder payload includes guidance text:
337
337
 
338
338
  - `MANDATORY: if waiting is needed, use the clock tool to schedule wake-up (clock.schedule) now; do not only promise to wait.`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jsonstudio/rcc",
3
- "version": "0.90.001",
3
+ "version": "0.90.091",
4
4
  "description": "Multi-provider OpenAI proxy server with anthropic/responses/chat support (release)",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -50,7 +50,7 @@
50
50
  "verify:repo-sanity": "node scripts/ci/repo-sanity.mjs",
51
51
  "verify:file-line-limit": "node scripts/ci/check-file-line-limit.mjs",
52
52
  "vr:dryrun": "node scripts/virtual-router-dryrun.mjs",
53
- "test:routing-instructions": "npm run jest:run -- --runTestsByPath tests/token-daemon/token-daemon.auto-refresh-noninteractive.spec.ts tests/token-daemon/token-daemon.refresh-ahead.spec.ts tests/commands/oauth-command.qwen-auto.spec.ts tests/token-daemon/interactive-refresh.spec.ts tests/server/runtime/request-executor.single-attempt.spec.ts tests/server/runtime/executor-provider.retryable.spec.ts tests/server/runtime/http-server/executor/usage-aggregator.spec.ts tests/providers/auth/tokenfile-auth.iflow.spec.ts tests/providers/auth/antigravity-user-agent.unit.test.ts tests/providers/auth/antigravity-fingerprint.unit.test.ts tests/providers/auth/antigravity-warmup.unit.test.ts tests/providers/core/runtime/gemini-cli-http-provider.unit.test.ts tests/providers/core/runtime/deepseek-http-provider.unit.test.ts tests/providers/core/runtime/antigravity-quota-client.unit.test.ts tests/manager/quota/provider-quota-center.spec.ts tests/manager/quota/provider-quota-store.spec.ts tests/manager/quota/quota-manager-refresh.spec.ts tests/manager/quota/provider-quota-daemon-module.spec.ts tests/manager/quota/provider-key-normalization.spec.ts tests/server/http-server/daemon-admin.e2e.spec.ts tests/server/http-server/clock-client-routes.spec.ts tests/server/http-server/quota-view-injection.spec.ts tests/server/http-server/quota-refresh-triggers.e2e.spec.ts tests/server/http-server/hub-policy-injection.spec.ts tests/server/http-server/session-header-injection.spec.ts tests/server/http-server/session-dir.spec.ts tests/server/handlers/sse-timeout.spec.ts tests/utils/is-direct-execution.test.ts tests/utils/windows-netstat.test.ts tests/servertool/virtual-router-context-fallback.spec.ts tests/servertool/virtual-router-longcontext-fallback.spec.ts tests/servertool/virtual-router-series-cooldown.spec.ts tests/servertool/recursive-detection-guard.spec.ts tests/servertool/routing-instructions.spec.ts tests/servertool/stop-message-auto.spec.ts tests/servertool/stopmessage-session-scope.spec.ts tests/servertool/stopmessage-anthropic-stop-sequence.spec.ts tests/servertool/stopmessage-compaction-false-positive.spec.ts tests/servertool/servertool-progress-logging.spec.ts tests/servertool/servertool-clock.spec.ts tests/servertool/antigravity-thought-signature-bootstrap.spec.ts tests/compat/tabglm-claude-code-profile.spec.ts tests/compat/antigravity-thought-signature.spec.ts tests/sharedmodule/mcp-tool-descriptions.spec.ts tests/sharedmodule/virtual-router-hit-log.spec.ts tests/sharedmodule/virtual-router-routing-model-validation.spec.ts tests/unified-hub/hub-v1-single-path-imports.spec.ts",
53
+ "test:routing-instructions": "npm run jest:run -- --runTestsByPath tests/token-daemon/token-daemon.auto-refresh-noninteractive.spec.ts tests/token-daemon/token-daemon.refresh-ahead.spec.ts tests/commands/oauth-command.qwen-auto.spec.ts tests/token-daemon/interactive-refresh.spec.ts tests/server/runtime/request-executor.single-attempt.spec.ts tests/server/runtime/executor-provider.retryable.spec.ts tests/server/runtime/http-server/executor/usage-aggregator.spec.ts tests/providers/auth/tokenfile-auth.iflow.spec.ts tests/providers/auth/antigravity-user-agent.unit.test.ts tests/providers/auth/antigravity-fingerprint.unit.test.ts tests/providers/auth/antigravity-warmup.unit.test.ts tests/providers/core/runtime/gemini-cli-http-provider.unit.test.ts tests/providers/core/runtime/deepseek-http-provider.unit.test.ts tests/providers/core/runtime/antigravity-quota-client.unit.test.ts tests/manager/quota/provider-quota-center.spec.ts tests/manager/quota/provider-quota-store.spec.ts tests/manager/quota/quota-manager-refresh.spec.ts tests/manager/quota/provider-quota-daemon-module.spec.ts tests/manager/quota/provider-key-normalization.spec.ts tests/server/http-server/daemon-admin.e2e.spec.ts tests/server/http-server/session-client-routes.spec.ts tests/server/http-server/quota-view-injection.spec.ts tests/server/http-server/quota-refresh-triggers.e2e.spec.ts tests/server/http-server/hub-policy-injection.spec.ts tests/server/http-server/session-header-injection.spec.ts tests/server/http-server/session-dir.spec.ts tests/server/handlers/sse-timeout.spec.ts tests/utils/is-direct-execution.test.ts tests/utils/windows-netstat.test.ts tests/servertool/virtual-router-context-fallback.spec.ts tests/servertool/virtual-router-longcontext-fallback.spec.ts tests/servertool/virtual-router-series-cooldown.spec.ts tests/servertool/recursive-detection-guard.spec.ts tests/servertool/routing-instructions.spec.ts tests/servertool/stop-message-sample-replay.spec.ts tests/servertool/stop-message-auto.spec.ts tests/servertool/stopmessage-session-scope.spec.ts tests/servertool/stopmessage-anthropic-stop-sequence.spec.ts tests/servertool/stopmessage-compaction-false-positive.spec.ts tests/servertool/servertool-progress-logging.spec.ts tests/servertool/servertool-clock.spec.ts tests/servertool/antigravity-thought-signature-bootstrap.spec.ts tests/compat/tabglm-claude-code-profile.spec.ts tests/compat/antigravity-thought-signature.spec.ts tests/sharedmodule/mcp-tool-descriptions.spec.ts tests/sharedmodule/virtual-router-hit-log.spec.ts tests/sharedmodule/virtual-router-routing-model-validation.spec.ts tests/unified-hub/hub-v1-single-path-imports.spec.ts",
54
54
  "test:cli": "npm run jest:run -- --runTestsByPath tests/cli/camoufox-command.spec.ts tests/cli/clean-command.spec.ts tests/cli/code-command.spec.ts tests/cli/config-command.spec.ts tests/cli/env-command.spec.ts tests/cli/env-output.spec.ts tests/cli/examples-command.spec.ts tests/cli/port-command.spec.ts tests/cli/port-utils.spec.ts tests/cli/restart-command.spec.ts tests/cli/smoke.spec.ts tests/cli/start-command.spec.ts tests/cli/status-command.spec.ts tests/cli/stop-command.spec.ts",
55
55
  "test:watch": "npm run jest:run -- --watch",
56
56
  "test:coverage": "npm run jest:run -- --coverage",
@@ -157,7 +157,7 @@
157
157
  },
158
158
  "dependencies": {
159
159
  "@anthropic-ai/sdk": "^0.65.0",
160
- "@jsonstudio/llms": "^0.6.2172",
160
+ "@jsonstudio/llms": "0.6.3214",
161
161
  "@lmstudio/sdk": "^1.5.0",
162
162
  "@radix-ui/react-switch": "^1.2.6",
163
163
  "@types/socket.io": "^3.0.1",