@jsonstudio/rcc 0.89.2239 → 0.90.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (237) 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 +1 -0
  5. package/dist/cli/commands/claude.js.map +1 -1
  6. package/dist/cli/commands/codex.js +1 -0
  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/types.d.ts +6 -0
  14. package/dist/cli/commands/launcher-kernel.js +456 -109
  15. package/dist/cli/commands/launcher-kernel.js.map +1 -1
  16. package/dist/cli/commands/port.js +28 -8
  17. package/dist/cli/commands/port.js.map +1 -1
  18. package/dist/cli/commands/restart.d.ts +4 -0
  19. package/dist/cli/commands/restart.js +91 -42
  20. package/dist/cli/commands/restart.js.map +1 -1
  21. package/dist/cli/commands/start-types.d.ts +4 -0
  22. package/dist/cli/commands/start.js +108 -65
  23. package/dist/cli/commands/start.js.map +1 -1
  24. package/dist/cli/commands/stop.d.ts +3 -0
  25. package/dist/cli/commands/stop.js +30 -63
  26. package/dist/cli/commands/stop.js.map +1 -1
  27. package/dist/cli/config/init-provider-catalog.js +8 -3
  28. package/dist/cli/config/init-provider-catalog.js.map +1 -1
  29. package/dist/cli/guardian/client.d.ts +38 -0
  30. package/dist/cli/guardian/client.js +237 -0
  31. package/dist/cli/guardian/client.js.map +1 -0
  32. package/dist/cli/guardian/paths.d.ts +7 -0
  33. package/dist/cli/guardian/paths.js +13 -0
  34. package/dist/cli/guardian/paths.js.map +1 -0
  35. package/dist/cli/guardian/types.d.ts +30 -0
  36. package/dist/cli/guardian/types.js +2 -0
  37. package/dist/cli/guardian/types.js.map +1 -0
  38. package/dist/cli/register/guardian-daemon-command.d.ts +2 -0
  39. package/dist/cli/register/guardian-daemon-command.js +5 -0
  40. package/dist/cli/register/guardian-daemon-command.js.map +1 -0
  41. package/dist/cli/server/port-utils.js +57 -1
  42. package/dist/cli/server/port-utils.js.map +1 -1
  43. package/dist/cli.js +48 -0
  44. package/dist/cli.js.map +1 -1
  45. package/dist/commands/oauth.js +6 -6
  46. package/dist/commands/oauth.js.map +1 -1
  47. package/dist/config/routecodex-config-loader.js +66 -1
  48. package/dist/config/routecodex-config-loader.js.map +1 -1
  49. package/dist/config/virtual-router-builder.js +18 -0
  50. package/dist/config/virtual-router-builder.js.map +1 -1
  51. package/dist/config/virtual-router-types.js +20 -5
  52. package/dist/config/virtual-router-types.js.map +1 -1
  53. package/dist/daemon-admin-ui/assets/index-C8vP_c5E.js +15 -0
  54. package/dist/daemon-admin-ui/assets/index-DjIoHmNv.css +1 -0
  55. package/dist/daemon-admin-ui/index.html +13 -0
  56. package/dist/docs/daemon-admin-ui.html +328 -57
  57. package/dist/index.d.ts +9 -0
  58. package/dist/index.js +268 -10
  59. package/dist/index.js.map +1 -1
  60. package/dist/manager/modules/quota/provider-quota-daemon.error-helpers.d.ts +1 -0
  61. package/dist/manager/modules/quota/provider-quota-daemon.error-helpers.js +36 -0
  62. package/dist/manager/modules/quota/provider-quota-daemon.error-helpers.js.map +1 -1
  63. package/dist/manager/modules/quota/provider-quota-daemon.events.js +50 -1
  64. package/dist/manager/modules/quota/provider-quota-daemon.events.js.map +1 -1
  65. package/dist/providers/auth/antigravity-user-agent.js +78 -31
  66. package/dist/providers/auth/antigravity-user-agent.js.map +1 -1
  67. package/dist/providers/auth/gemini-cli-userinfo-helper.js +94 -63
  68. package/dist/providers/auth/gemini-cli-userinfo-helper.js.map +1 -1
  69. package/dist/providers/auth/iflow-userinfo-helper.js +1 -1
  70. package/dist/providers/auth/iflow-userinfo-helper.js.map +1 -1
  71. package/dist/providers/auth/oauth-error-message.d.ts +1 -0
  72. package/dist/providers/auth/oauth-error-message.js +44 -0
  73. package/dist/providers/auth/oauth-error-message.js.map +1 -0
  74. package/dist/providers/auth/oauth-lifecycle/error-detection.js +42 -8
  75. package/dist/providers/auth/oauth-lifecycle/error-detection.js.map +1 -1
  76. package/dist/providers/auth/oauth-lifecycle/token-io.d.ts +1 -0
  77. package/dist/providers/auth/oauth-lifecycle/token-io.js +12 -0
  78. package/dist/providers/auth/oauth-lifecycle/token-io.js.map +1 -1
  79. package/dist/providers/auth/oauth-lifecycle.js +502 -87
  80. package/dist/providers/auth/oauth-lifecycle.js.map +1 -1
  81. package/dist/providers/auth/oauth-repair-cooldown.js +2 -7
  82. package/dist/providers/auth/oauth-repair-cooldown.js.map +1 -1
  83. package/dist/providers/auth/oauth-repair-env.js +3 -5
  84. package/dist/providers/auth/oauth-repair-env.js.map +1 -1
  85. package/dist/providers/auth/oauth-utils/error-extraction.js +42 -8
  86. package/dist/providers/auth/oauth-utils/error-extraction.js.map +1 -1
  87. package/dist/providers/core/config/camoufox-actions.d.ts +31 -0
  88. package/dist/providers/core/config/camoufox-actions.js +461 -0
  89. package/dist/providers/core/config/camoufox-actions.js.map +1 -0
  90. package/dist/providers/core/config/camoufox-launcher.d.ts +3 -0
  91. package/dist/providers/core/config/camoufox-launcher.js +518 -160
  92. package/dist/providers/core/config/camoufox-launcher.js.map +1 -1
  93. package/dist/providers/core/config/oauth-flows.js +6 -44
  94. package/dist/providers/core/config/oauth-flows.js.map +1 -1
  95. package/dist/providers/core/config/provider-oauth-configs.js +51 -7
  96. package/dist/providers/core/config/provider-oauth-configs.js.map +1 -1
  97. package/dist/providers/core/runtime/provider-error-classifier.js +32 -15
  98. package/dist/providers/core/runtime/provider-error-classifier.js.map +1 -1
  99. package/dist/providers/core/runtime/provider-family-profile-utils.js +1 -1
  100. package/dist/providers/core/runtime/provider-family-profile-utils.js.map +1 -1
  101. package/dist/providers/core/runtime/provider-response-postprocessor.js +61 -14
  102. package/dist/providers/core/runtime/provider-response-postprocessor.js.map +1 -1
  103. package/dist/providers/core/strategies/oauth-auth-code-flow.d.ts +1 -0
  104. package/dist/providers/core/strategies/oauth-auth-code-flow.js +124 -19
  105. package/dist/providers/core/strategies/oauth-auth-code-flow.js.map +1 -1
  106. package/dist/providers/core/strategies/oauth-device-flow.js +6 -3
  107. package/dist/providers/core/strategies/oauth-device-flow.js.map +1 -1
  108. package/dist/providers/profile/families/iflow-profile.js +83 -10
  109. package/dist/providers/profile/families/iflow-profile.js.map +1 -1
  110. package/dist/scripts/camoufox/launch-auth.mjs +112 -5
  111. package/dist/server/handlers/config-admin-handler.js +9 -2
  112. package/dist/server/handlers/config-admin-handler.js.map +1 -1
  113. package/dist/server/handlers/handler-utils.js +3 -12
  114. package/dist/server/handlers/handler-utils.js.map +1 -1
  115. package/dist/server/handlers/logging.js +3 -4
  116. package/dist/server/handlers/logging.js.map +1 -1
  117. package/dist/server/runtime/http-server/clock-client-reaper.js +3 -26
  118. package/dist/server/runtime/http-server/clock-client-reaper.js.map +1 -1
  119. package/dist/server/runtime/http-server/clock-client-registry-utils.d.ts +4 -0
  120. package/dist/server/runtime/http-server/clock-client-registry-utils.js +74 -16
  121. package/dist/server/runtime/http-server/clock-client-registry-utils.js.map +1 -1
  122. package/dist/server/runtime/http-server/clock-client-registry.d.ts +15 -0
  123. package/dist/server/runtime/http-server/clock-client-registry.js +300 -6
  124. package/dist/server/runtime/http-server/clock-client-registry.js.map +1 -1
  125. package/dist/server/runtime/http-server/clock-client-routes.js +49 -19
  126. package/dist/server/runtime/http-server/clock-client-routes.js.map +1 -1
  127. package/dist/server/runtime/http-server/clock-daemon-log-throttle.d.ts +16 -0
  128. package/dist/server/runtime/http-server/clock-daemon-log-throttle.js +49 -0
  129. package/dist/server/runtime/http-server/clock-daemon-log-throttle.js.map +1 -1
  130. package/dist/server/runtime/http-server/clock-scope-resolution.d.ts +14 -0
  131. package/dist/server/runtime/http-server/clock-scope-resolution.js +212 -0
  132. package/dist/server/runtime/http-server/clock-scope-resolution.js.map +1 -0
  133. package/dist/server/runtime/http-server/daemon-admin/auth-handler.js +5 -3
  134. package/dist/server/runtime/http-server/daemon-admin/auth-handler.js.map +1 -1
  135. package/dist/server/runtime/http-server/daemon-admin/control-handler.js +104 -15
  136. package/dist/server/runtime/http-server/daemon-admin/control-handler.js.map +1 -1
  137. package/dist/server/runtime/http-server/daemon-admin/credentials-handler.js +2 -2
  138. package/dist/server/runtime/http-server/daemon-admin/credentials-handler.js.map +1 -1
  139. package/dist/server/runtime/http-server/daemon-admin/providers-handler-routing-utils.d.ts +24 -0
  140. package/dist/server/runtime/http-server/daemon-admin/providers-handler-routing-utils.js +316 -70
  141. package/dist/server/runtime/http-server/daemon-admin/providers-handler-routing-utils.js.map +1 -1
  142. package/dist/server/runtime/http-server/daemon-admin/providers-handler.js +190 -1
  143. package/dist/server/runtime/http-server/daemon-admin/providers-handler.js.map +1 -1
  144. package/dist/server/runtime/http-server/daemon-admin/routing-policy.js +18 -29
  145. package/dist/server/runtime/http-server/daemon-admin/routing-policy.js.map +1 -1
  146. package/dist/server/runtime/http-server/daemon-admin/stats-handler.js +2 -0
  147. package/dist/server/runtime/http-server/daemon-admin/stats-handler.js.map +1 -1
  148. package/dist/server/runtime/http-server/daemon-admin-routes.d.ts +8 -1
  149. package/dist/server/runtime/http-server/daemon-admin-routes.js +30 -0
  150. package/dist/server/runtime/http-server/daemon-admin-routes.js.map +1 -1
  151. package/dist/server/runtime/http-server/executor/client-injection-flow.d.ts +14 -0
  152. package/dist/server/runtime/http-server/executor/client-injection-flow.js +287 -0
  153. package/dist/server/runtime/http-server/executor/client-injection-flow.js.map +1 -0
  154. package/dist/server/runtime/http-server/executor/index.d.ts +1 -1
  155. package/dist/server/runtime/http-server/executor/index.js +1 -1
  156. package/dist/server/runtime/http-server/executor/index.js.map +1 -1
  157. package/dist/server/runtime/http-server/executor/provider-response-converter.js +236 -62
  158. package/dist/server/runtime/http-server/executor/provider-response-converter.js.map +1 -1
  159. package/dist/server/runtime/http-server/executor/request-executor-core-utils.d.ts +1 -0
  160. package/dist/server/runtime/http-server/executor/request-executor-core-utils.js +12 -0
  161. package/dist/server/runtime/http-server/executor/request-executor-core-utils.js.map +1 -1
  162. package/dist/server/runtime/http-server/executor/request-retry-helpers.js +16 -12
  163. package/dist/server/runtime/http-server/executor/request-retry-helpers.js.map +1 -1
  164. package/dist/server/runtime/http-server/executor/sse-error-handler.d.ts +1 -0
  165. package/dist/server/runtime/http-server/executor/sse-error-handler.js +13 -2
  166. package/dist/server/runtime/http-server/executor/sse-error-handler.js.map +1 -1
  167. package/dist/server/runtime/http-server/executor/usage-aggregator.d.ts +0 -12
  168. package/dist/server/runtime/http-server/executor/usage-aggregator.js +84 -88
  169. package/dist/server/runtime/http-server/executor/usage-aggregator.js.map +1 -1
  170. package/dist/server/runtime/http-server/executor-metadata.js +328 -7
  171. package/dist/server/runtime/http-server/executor-metadata.js.map +1 -1
  172. package/dist/server/runtime/http-server/executor-response.d.ts +1 -0
  173. package/dist/server/runtime/http-server/executor-response.js +52 -58
  174. package/dist/server/runtime/http-server/executor-response.js.map +1 -1
  175. package/dist/server/runtime/http-server/http-server-bootstrap.js +50 -6
  176. package/dist/server/runtime/http-server/http-server-bootstrap.js.map +1 -1
  177. package/dist/server/runtime/http-server/http-server-clock-daemon.d.ts +1 -0
  178. package/dist/server/runtime/http-server/http-server-clock-daemon.js +186 -44
  179. package/dist/server/runtime/http-server/http-server-clock-daemon.js.map +1 -1
  180. package/dist/server/runtime/http-server/http-server-lifecycle.js +4 -4
  181. package/dist/server/runtime/http-server/http-server-lifecycle.js.map +1 -1
  182. package/dist/server/runtime/http-server/hub-shadow-compare.js +1 -1
  183. package/dist/server/runtime/http-server/hub-shadow-compare.js.map +1 -1
  184. package/dist/server/runtime/http-server/index.d.ts +1 -0
  185. package/dist/server/runtime/http-server/index.js +1 -0
  186. package/dist/server/runtime/http-server/index.js.map +1 -1
  187. package/dist/server/runtime/http-server/middleware.js +82 -4
  188. package/dist/server/runtime/http-server/middleware.js.map +1 -1
  189. package/dist/server/runtime/http-server/request-executor.js +6 -5
  190. package/dist/server/runtime/http-server/request-executor.js.map +1 -1
  191. package/dist/server/runtime/http-server/routes.d.ts +2 -1
  192. package/dist/server/runtime/http-server/routes.js +4 -2
  193. package/dist/server/runtime/http-server/routes.js.map +1 -1
  194. package/dist/server/runtime/http-server/session-dir.js +12 -1
  195. package/dist/server/runtime/http-server/session-dir.js.map +1 -1
  196. package/dist/server/runtime/http-server/stats-manager.d.ts +35 -0
  197. package/dist/server/runtime/http-server/stats-manager.js +269 -21
  198. package/dist/server/runtime/http-server/stats-manager.js.map +1 -1
  199. package/dist/server/runtime/http-server/stopmessage-scope-rebind.d.ts +13 -0
  200. package/dist/server/runtime/http-server/stopmessage-scope-rebind.js +168 -0
  201. package/dist/server/runtime/http-server/stopmessage-scope-rebind.js.map +1 -0
  202. package/dist/server/runtime/http-server/tmux-session-probe.d.ts +10 -0
  203. package/dist/server/runtime/http-server/tmux-session-probe.js +97 -0
  204. package/dist/server/runtime/http-server/tmux-session-probe.js.map +1 -1
  205. package/dist/server-lifecycle/port-utils.d.ts +2 -1
  206. package/dist/server-lifecycle/port-utils.js +84 -4
  207. package/dist/server-lifecycle/port-utils.js.map +1 -1
  208. package/dist/token-daemon/index.d.ts +1 -0
  209. package/dist/token-daemon/index.js +17 -12
  210. package/dist/token-daemon/index.js.map +1 -1
  211. package/dist/utils/clock-client-token.d.ts +2 -1
  212. package/dist/utils/clock-client-token.js +52 -8
  213. package/dist/utils/clock-client-token.js.map +1 -1
  214. package/dist/utils/clock-scope-trace.d.ts +11 -0
  215. package/dist/utils/clock-scope-trace.js +41 -0
  216. package/dist/utils/clock-scope-trace.js.map +1 -0
  217. package/dist/utils/llms-engine-shadow.js +1 -1
  218. package/dist/utils/llms-engine-shadow.js.map +1 -1
  219. package/docs/DAEMON_CONTROL_PLANE.md +1 -0
  220. package/docs/ROUTING_POLICY_SCHEMA.md +4 -2
  221. package/docs/daemon-admin-ui.html +328 -57
  222. package/docs/design/servertool-stopmessage-lifecycle.md +109 -0
  223. package/docs/exec-command-guard-policy.example.v1.json +7 -1
  224. package/docs/providers/antigravity-gemini-provider-compat.md +2 -2
  225. package/package.json +21 -5
  226. package/scripts/build-core.mjs +12 -0
  227. package/scripts/camoufox/launch-auth.mjs +112 -5
  228. package/scripts/ci/repo-sanity.mjs +1 -0
  229. package/scripts/install-global.sh +6 -0
  230. package/scripts/install-verify.mjs +33 -16
  231. package/scripts/run-bg.sh +226 -43
  232. package/scripts/run-fg-gtimeout.sh +158 -14
  233. package/scripts/tests/blackbox-rcc-vs-routecodex-antigravity.mjs +3 -3
  234. package/scripts/tests/ci-jest.mjs +9 -1
  235. package/scripts/triage-errorsamples.mjs +216 -0
  236. package/scripts/verify-codex-error-samples.mjs +92 -15
  237. package/scripts/verify-install-e2e.mjs +57 -27
@@ -1,7 +1,9 @@
1
1
  import { asRecord } from './provider-utils.js';
2
2
  import { extractSessionIdentifiersFromMetadata } from '../../../modules/llmswitch/bridge.js';
3
3
  import { extractClockClientDaemonIdFromApiKey } from '../../../utils/clock-client-token.js';
4
+ import { shouldTraceClockScopeByContext } from '../../../utils/clock-scope-trace.js';
4
5
  import { getClockClientRegistry } from './clock-client-registry.js';
6
+ import { resolveTmuxSessionIdAndSource } from './clock-scope-resolution.js';
5
7
  export function cloneClientHeaders(source) {
6
8
  if (!source || typeof source !== 'object') {
7
9
  return undefined;
@@ -34,15 +36,29 @@ export function resolveClientRequestId(metadata, fallback) {
34
36
  return clientRequestId || fallback;
35
37
  }
36
38
  function extractClockDaemonId(userMeta, headers) {
37
- const fromMeta = (typeof userMeta.clockDaemonId === 'string' && userMeta.clockDaemonId.trim())
39
+ const fromMeta = (typeof userMeta.clientDaemonId === 'string' && userMeta.clientDaemonId.trim())
40
+ ? userMeta.clientDaemonId.trim()
41
+ : ((typeof userMeta.client_daemon_id === 'string' && userMeta.client_daemon_id.trim())
42
+ ? userMeta.client_daemon_id.trim()
43
+ : ((typeof userMeta.clockDaemonId === 'string' && userMeta.clockDaemonId.trim())
44
+ ? userMeta.clockDaemonId.trim()
45
+ : ((typeof userMeta.clockClientDaemonId === 'string' && userMeta.clockClientDaemonId.trim())
46
+ ? userMeta.clockClientDaemonId.trim()
47
+ : undefined)));
48
+ if (fromMeta) {
49
+ return fromMeta;
50
+ }
51
+ const fromLegacyMeta = (typeof userMeta.clockDaemonId === 'string' && userMeta.clockDaemonId.trim())
38
52
  ? userMeta.clockDaemonId.trim()
39
53
  : ((typeof userMeta.clockClientDaemonId === 'string' && userMeta.clockClientDaemonId.trim())
40
54
  ? userMeta.clockClientDaemonId.trim()
41
55
  : undefined);
42
- if (fromMeta) {
43
- return fromMeta;
56
+ if (fromLegacyMeta) {
57
+ return fromLegacyMeta;
44
58
  }
45
- const fromExplicitHeader = extractHeaderValue(headers, 'x-routecodex-clock-daemon-id')
59
+ const fromExplicitHeader = extractHeaderValue(headers, 'x-routecodex-client-daemon-id')
60
+ || extractHeaderValue(headers, 'x-routecodex-clientd-id')
61
+ || extractHeaderValue(headers, 'x-routecodex-clock-daemon-id')
46
62
  || extractHeaderValue(headers, 'x-routecodex-daemon-id');
47
63
  if (fromExplicitHeader) {
48
64
  return fromExplicitHeader;
@@ -88,6 +104,40 @@ function extractSessionTokenFromBodyMeta(meta) {
88
104
  ...(conversationId ? { conversationId } : {})
89
105
  };
90
106
  }
107
+ function extractSessionTokenFromHeaderSources(headers, clientHeaders) {
108
+ const sources = [
109
+ headers,
110
+ clientHeaders
111
+ ];
112
+ let sessionId;
113
+ let conversationId;
114
+ for (const source of sources) {
115
+ if (!source) {
116
+ continue;
117
+ }
118
+ if (!sessionId) {
119
+ sessionId =
120
+ extractHeaderValue(source, 'session_id')
121
+ || extractHeaderValue(source, 'session-id')
122
+ || extractHeaderValue(source, 'x-session-id')
123
+ || extractHeaderValue(source, 'anthropic-session-id')
124
+ || undefined;
125
+ }
126
+ if (!conversationId) {
127
+ conversationId =
128
+ extractHeaderValue(source, 'conversation_id')
129
+ || extractHeaderValue(source, 'conversation-id')
130
+ || extractHeaderValue(source, 'x-conversation-id')
131
+ || extractHeaderValue(source, 'anthropic-conversation-id')
132
+ || extractHeaderValue(source, 'openai-conversation-id')
133
+ || undefined;
134
+ }
135
+ }
136
+ return {
137
+ ...(sessionId ? { sessionId } : {}),
138
+ ...(conversationId ? { conversationId } : {})
139
+ };
140
+ }
91
141
  function extractWorkdir(userMeta, bodyMeta, headers, clientHeaders) {
92
142
  const directCandidates = [
93
143
  userMeta.workdir,
@@ -113,6 +163,115 @@ function extractWorkdir(userMeta, bodyMeta, headers, clientHeaders) {
113
163
  if (fromHeader) {
114
164
  return fromHeader;
115
165
  }
166
+ const fromTurnMetadata = extractWorkdirFromTurnMetadata(extractHeaderValue(source, 'x-codex-turn-metadata'));
167
+ if (fromTurnMetadata) {
168
+ return fromTurnMetadata;
169
+ }
170
+ }
171
+ return undefined;
172
+ }
173
+ function extractWorkdirFromTurnMetadata(rawTurnMetadata) {
174
+ if (!rawTurnMetadata) {
175
+ return undefined;
176
+ }
177
+ const candidates = [rawTurnMetadata];
178
+ try {
179
+ candidates.push(decodeURIComponent(rawTurnMetadata));
180
+ }
181
+ catch {
182
+ // ignore URI decode failures
183
+ }
184
+ for (const candidate of [...candidates]) {
185
+ const normalized = candidate.trim();
186
+ if (!normalized) {
187
+ continue;
188
+ }
189
+ if (!/^[A-Za-z0-9+/=_-]+$/.test(normalized) || normalized.length < 12) {
190
+ continue;
191
+ }
192
+ try {
193
+ const padded = normalized.padEnd(Math.ceil(normalized.length / 4) * 4, '=');
194
+ const decoded = Buffer.from(padded, 'base64').toString('utf8').trim();
195
+ if (decoded) {
196
+ candidates.push(decoded);
197
+ }
198
+ }
199
+ catch {
200
+ // ignore base64 decoding errors
201
+ }
202
+ }
203
+ for (const candidate of candidates) {
204
+ try {
205
+ const parsed = JSON.parse(candidate);
206
+ const fromJson = extractWorkdirFromTurnMetadataObject(parsed);
207
+ if (fromJson) {
208
+ return fromJson;
209
+ }
210
+ }
211
+ catch {
212
+ // continue to querystring parsing
213
+ }
214
+ try {
215
+ const params = new URLSearchParams(candidate);
216
+ const fromParams = (params.get('workdir') || '').trim()
217
+ || (params.get('cwd') || '').trim()
218
+ || (params.get('workingDirectory') || '').trim()
219
+ || (params.get('working_directory') || '').trim();
220
+ if (fromParams) {
221
+ return fromParams;
222
+ }
223
+ }
224
+ catch {
225
+ // ignore non-URLSearchParams text
226
+ }
227
+ }
228
+ return undefined;
229
+ }
230
+ function extractWorkdirFromTurnMetadataObject(parsed) {
231
+ const direct = (typeof parsed.workdir === 'string' && parsed.workdir.trim())
232
+ || (typeof parsed.cwd === 'string' && parsed.cwd.trim())
233
+ || (typeof parsed.workingDirectory === 'string' && parsed.workingDirectory.trim())
234
+ || (typeof parsed.working_directory === 'string' && parsed.working_directory.trim())
235
+ || undefined;
236
+ if (direct) {
237
+ return direct;
238
+ }
239
+ const workspaces = parsed.workspaces;
240
+ if (!workspaces || typeof workspaces !== 'object' || Array.isArray(workspaces)) {
241
+ return undefined;
242
+ }
243
+ const workspaceKeys = Object.keys(workspaces)
244
+ .map((entry) => entry.trim())
245
+ .filter((entry) => entry.startsWith('/'));
246
+ if (workspaceKeys.length === 1) {
247
+ return workspaceKeys[0];
248
+ }
249
+ if (workspaceKeys.length > 1) {
250
+ // Prefer the most specific path when multiple workspaces are present.
251
+ return workspaceKeys.sort((a, b) => b.length - a.length)[0];
252
+ }
253
+ return undefined;
254
+ }
255
+ function normalizeToken(value) {
256
+ if (typeof value !== 'string') {
257
+ return undefined;
258
+ }
259
+ const trimmed = value.trim();
260
+ return trimmed || undefined;
261
+ }
262
+ function inferClockClientType(metadata) {
263
+ const direct = normalizeToken(metadata.clockClientType)
264
+ || normalizeToken(metadata.clientType);
265
+ if (direct) {
266
+ return direct;
267
+ }
268
+ const userAgent = normalizeToken(metadata.userAgent)?.toLowerCase() || '';
269
+ const originator = normalizeToken(metadata.clientOriginator)?.toLowerCase() || '';
270
+ if (originator.includes('codex') || userAgent.includes('codex')) {
271
+ return 'codex';
272
+ }
273
+ if (originator.includes('claude') || userAgent.includes('claude')) {
274
+ return 'claude';
116
275
  }
117
276
  return undefined;
118
277
  }
@@ -129,6 +288,53 @@ function resolveWorkdirFromClockDaemon(daemonId) {
129
288
  return undefined;
130
289
  }
131
290
  }
291
+ function resolveTmuxSessionIdFromClockDaemon(daemonId) {
292
+ if (!daemonId) {
293
+ return undefined;
294
+ }
295
+ try {
296
+ const record = getClockClientRegistry().findByDaemonId(daemonId);
297
+ const tmuxSessionId = typeof record?.tmuxSessionId === 'string' ? record.tmuxSessionId.trim() : '';
298
+ if (tmuxSessionId) {
299
+ return tmuxSessionId;
300
+ }
301
+ const sessionId = typeof record?.sessionId === 'string' ? record.sessionId.trim() : '';
302
+ return sessionId || undefined;
303
+ }
304
+ catch {
305
+ return undefined;
306
+ }
307
+ }
308
+ function resolveTmuxTargetFromClockDaemon(daemonId) {
309
+ if (!daemonId) {
310
+ return undefined;
311
+ }
312
+ try {
313
+ const record = getClockClientRegistry().findByDaemonId(daemonId);
314
+ const tmuxTarget = typeof record?.tmuxTarget === 'string' ? record.tmuxTarget.trim() : '';
315
+ return tmuxTarget || undefined;
316
+ }
317
+ catch {
318
+ return undefined;
319
+ }
320
+ }
321
+ function shouldTraceClockScopeMetadata(args) {
322
+ const hasTurnMeta = typeof args.clientHeaders?.['x-codex-turn-metadata'] === 'string'
323
+ && args.clientHeaders['x-codex-turn-metadata'].trim().length > 0;
324
+ return shouldTraceClockScopeByContext({
325
+ endpointOrPath: args.entryEndpoint || '',
326
+ userAgent: args.userAgent,
327
+ originator: args.originator,
328
+ hasTurnMetadata: hasTurnMeta
329
+ });
330
+ }
331
+ function logClockScopeMetadata(args) {
332
+ console.log(`[clock-scope][metadata] requestId=${args.requestId || 'n/a'} endpoint=${args.entryEndpoint || 'n/a'} ` +
333
+ `daemon=${args.resolvedClockDaemonId || 'none'} tmux=${args.resolvedTmuxSessionId || 'none'} ` +
334
+ `ready=${args.clientInjectReady ? 'yes' : 'no'} workdir=${args.resolvedWorkdir || 'none'} ` +
335
+ `originator=${args.originator || 'n/a'} ua=${args.userAgent || 'n/a'} ` +
336
+ `tmuxSource=${args.tmuxSource || 'none'}`);
337
+ }
132
338
  export function buildRequestMetadata(input) {
133
339
  const userMeta = asRecord(input.metadata);
134
340
  const bodyMeta = asRecord(asRecord(input.body).metadata);
@@ -145,9 +351,30 @@ export function buildRequestMetadata(input) {
145
351
  : inboundOriginator;
146
352
  const routeHint = extractRouteHint(input) ?? userMeta.routeHint;
147
353
  const processMode = userMeta.processMode || 'chat';
148
- const resolvedClockDaemonId = extractClockDaemonId(userMeta, headers);
354
+ let resolvedClockDaemonId = extractClockDaemonId(userMeta, headers);
355
+ const inferredClientType = inferClockClientType(userMeta);
356
+ const resolvedTmuxTarget = normalizeToken(userMeta.clientTmuxTarget)
357
+ || normalizeToken(userMeta.client_tmux_target)
358
+ || normalizeToken(userMeta.tmuxTarget)
359
+ || normalizeToken(bodyMeta.clientTmuxTarget)
360
+ || normalizeToken(bodyMeta.client_tmux_target)
361
+ || normalizeToken(bodyMeta.tmuxTarget)
362
+ || resolveTmuxTargetFromClockDaemon(resolvedClockDaemonId);
149
363
  const resolvedWorkdir = extractWorkdir(userMeta, bodyMeta, headers, normalizedClientHeaders)
150
364
  || resolveWorkdirFromClockDaemon(resolvedClockDaemonId);
365
+ const tmuxResolution = resolveTmuxSessionIdAndSource({
366
+ userMeta,
367
+ bodyMeta,
368
+ headers: headers ?? undefined,
369
+ clientHeaders: normalizedClientHeaders,
370
+ daemonId: resolvedClockDaemonId,
371
+ resolveTmuxSessionIdFromDaemon: resolveTmuxSessionIdFromClockDaemon
372
+ });
373
+ let resolvedTmuxSessionId = tmuxResolution.tmuxSessionId;
374
+ let tmuxSource = tmuxResolution.source;
375
+ let clientInjectReady = Boolean(resolvedTmuxSessionId);
376
+ let clientInjectReason = clientInjectReady ? 'tmux_session_ready' : 'tmux_session_missing';
377
+ let stopMessageClientInjectSessionScope = resolvedTmuxSessionId ? `tmux:${resolvedTmuxSessionId}` : undefined;
151
378
  const metadata = {
152
379
  ...userMeta,
153
380
  entryEndpoint: input.entryEndpoint,
@@ -158,8 +385,42 @@ export function buildRequestMetadata(input) {
158
385
  stream: userMeta.stream === true,
159
386
  ...(resolvedUserAgent ? { userAgent: resolvedUserAgent } : {}),
160
387
  ...(resolvedOriginator ? { clientOriginator: resolvedOriginator } : {}),
161
- ...(resolvedClockDaemonId ? { clockDaemonId: resolvedClockDaemonId } : {}),
162
- ...(resolvedWorkdir ? { workdir: resolvedWorkdir } : {})
388
+ ...(resolvedClockDaemonId
389
+ ? {
390
+ clientDaemonId: resolvedClockDaemonId,
391
+ clockDaemonId: resolvedClockDaemonId,
392
+ clockClientDaemonId: resolvedClockDaemonId
393
+ }
394
+ : {}),
395
+ ...(resolvedWorkdir
396
+ ? {
397
+ clientWorkdir: resolvedWorkdir,
398
+ workdir: resolvedWorkdir
399
+ }
400
+ : {}),
401
+ ...(resolvedTmuxSessionId
402
+ ? {
403
+ clientTmuxSessionId: resolvedTmuxSessionId,
404
+ tmuxSessionId: resolvedTmuxSessionId
405
+ }
406
+ : {}),
407
+ ...(resolvedTmuxTarget
408
+ ? {
409
+ clientTmuxTarget: resolvedTmuxTarget,
410
+ tmuxTarget: resolvedTmuxTarget
411
+ }
412
+ : {}),
413
+ ...(inferredClientType
414
+ ? {
415
+ clockClientType: inferredClientType,
416
+ clientType: inferredClientType
417
+ }
418
+ : {}),
419
+ ...(stopMessageClientInjectSessionScope
420
+ ? { stopMessageClientInjectSessionScope }
421
+ : {}),
422
+ clientInjectReady,
423
+ clientInjectReason
163
424
  };
164
425
  if (normalizedClientHeaders) {
165
426
  metadata.clientHeaders = normalizedClientHeaders;
@@ -184,6 +445,66 @@ export function buildRequestMetadata(input) {
184
445
  metadata.conversationId = fallback.conversationId;
185
446
  }
186
447
  }
448
+ if (!metadata.sessionId || !metadata.conversationId) {
449
+ const fromHeaders = extractSessionTokenFromHeaderSources(headers, normalizedClientHeaders);
450
+ if (!metadata.sessionId && fromHeaders.sessionId) {
451
+ metadata.sessionId = fromHeaders.sessionId;
452
+ }
453
+ if (!metadata.conversationId && fromHeaders.conversationId) {
454
+ metadata.conversationId = fromHeaders.conversationId;
455
+ }
456
+ if (!metadata.conversationId && metadata.sessionId) {
457
+ metadata.conversationId = String(metadata.sessionId);
458
+ }
459
+ }
460
+ if (!resolvedTmuxSessionId) {
461
+ const conversationSessionId = normalizeToken(metadata.sessionId)
462
+ || normalizeToken(metadata.conversationId);
463
+ if (conversationSessionId && resolvedWorkdir) {
464
+ const bindResult = getClockClientRegistry().bindConversationSession({
465
+ conversationSessionId,
466
+ ...(resolvedClockDaemonId ? { daemonId: resolvedClockDaemonId } : {}),
467
+ workdir: resolvedWorkdir,
468
+ ...(inferredClientType ? { clientType: inferredClientType } : {})
469
+ });
470
+ if (bindResult.ok && bindResult.tmuxSessionId) {
471
+ resolvedTmuxSessionId = bindResult.tmuxSessionId;
472
+ tmuxSource = 'registry_by_binding';
473
+ clientInjectReady = true;
474
+ clientInjectReason = 'tmux_session_ready';
475
+ stopMessageClientInjectSessionScope = `tmux:${resolvedTmuxSessionId}`;
476
+ metadata.clientTmuxSessionId = resolvedTmuxSessionId;
477
+ metadata.tmuxSessionId = resolvedTmuxSessionId;
478
+ metadata.stopMessageClientInjectSessionScope = stopMessageClientInjectSessionScope;
479
+ metadata.clientInjectReady = true;
480
+ metadata.clientInjectReason = 'tmux_session_ready';
481
+ if (!resolvedClockDaemonId && bindResult.daemonId) {
482
+ resolvedClockDaemonId = bindResult.daemonId;
483
+ metadata.clientDaemonId = bindResult.daemonId;
484
+ metadata.clockDaemonId = bindResult.daemonId;
485
+ metadata.clockClientDaemonId = bindResult.daemonId;
486
+ }
487
+ }
488
+ }
489
+ }
490
+ if (shouldTraceClockScopeMetadata({
491
+ entryEndpoint: input.entryEndpoint,
492
+ userAgent: resolvedUserAgent,
493
+ originator: resolvedOriginator,
494
+ clientHeaders: normalizedClientHeaders
495
+ })) {
496
+ logClockScopeMetadata({
497
+ requestId: input.requestId,
498
+ entryEndpoint: input.entryEndpoint,
499
+ userAgent: resolvedUserAgent,
500
+ originator: resolvedOriginator,
501
+ resolvedClockDaemonId,
502
+ resolvedTmuxSessionId,
503
+ resolvedWorkdir,
504
+ clientInjectReady,
505
+ tmuxSource
506
+ });
507
+ }
187
508
  return metadata;
188
509
  }
189
510
  export function decorateMetadataForAttempt(base, attempt, excludedProviderKeys) {
@@ -1 +1 @@
1
- {"version":3,"file":"executor-metadata.js","sourceRoot":"","sources":["../../../../src/server/runtime/http-server/executor-metadata.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"executor-metadata.js","sourceRoot":"","sources":["../../../../src/server/runtime/http-server/executor-metadata.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@ export interface ConvertProviderResponseOptions {
6
6
  wantsStream: boolean;
7
7
  originalRequest?: Record<string, unknown> | undefined;
8
8
  processMode?: string;
9
+ serverToolsEnabled?: boolean;
9
10
  response: PipelineExecutionResult;
10
11
  pipelineMetadata?: Record<string, unknown>;
11
12
  }
@@ -2,7 +2,7 @@ import { mapProviderProtocol, asRecord } from './provider-utils.js';
2
2
  import { extractAnthropicToolAliasMap } from './anthropic-tool-alias.js';
3
3
  import { convertProviderResponse as bridgeConvertProviderResponse, createSnapshotRecorder as bridgeCreateSnapshotRecorder } from '../../../modules/llmswitch/bridge.js';
4
4
  import { applyClientConnectionStateToContext } from '../../utils/client-connection-state.js';
5
- import { getClockClientRegistry, injectClockClientPrompt } from './clock-client-registry.js';
5
+ import { resolveStopMessageClientInjectReadiness, runClientInjectionFlowBeforeReenter } from './executor/client-injection-flow.js';
6
6
  function extractClientModelId(metadata, originalRequest) {
7
7
  const candidates = [
8
8
  metadata.clientModelId,
@@ -24,46 +24,8 @@ function extractClientModelId(metadata, originalRequest) {
24
24
  }
25
25
  return undefined;
26
26
  }
27
- function normalizeSessionToken(value) {
28
- if (typeof value !== 'string') {
29
- return undefined;
30
- }
31
- const trimmed = value.trim();
32
- return trimmed || undefined;
33
- }
34
- function resolveClockConversationSessionId(metadata) {
35
- const daemonId = normalizeSessionToken(metadata.clockDaemonId)
36
- ?? normalizeSessionToken(metadata.clockClientDaemonId);
37
- if (daemonId) {
38
- return `clockd.${daemonId}`;
39
- }
40
- return normalizeSessionToken(metadata.sessionId);
41
- }
42
- function bindClockConversationSession(metadata) {
43
- const conversationSessionId = resolveClockConversationSessionId(metadata);
44
- if (!conversationSessionId) {
45
- return;
46
- }
47
- const tmuxSessionId = normalizeSessionToken(metadata.tmuxSessionId);
48
- const daemonId = normalizeSessionToken(metadata.clockDaemonId)
49
- ?? normalizeSessionToken(metadata.clockClientDaemonId);
50
- const workdir = normalizeSessionToken(metadata.workdir)
51
- ?? normalizeSessionToken(metadata.cwd)
52
- ?? normalizeSessionToken(metadata.workingDirectory);
53
- try {
54
- getClockClientRegistry().bindConversationSession({
55
- conversationSessionId,
56
- ...(tmuxSessionId ? { tmuxSessionId } : {}),
57
- ...(daemonId ? { daemonId } : {}),
58
- ...(workdir ? { workdir } : {})
59
- });
60
- }
61
- catch {
62
- // best-effort only
63
- }
64
- }
65
27
  export async function convertProviderResponseIfNeeded(options, deps) {
66
- if (options.processMode === 'passthrough' && !options.wantsStream) {
28
+ if (options.processMode === 'passthrough' && !options.wantsStream && options.serverToolsEnabled === false) {
67
29
  return options.response;
68
30
  }
69
31
  const entry = (options.entryEndpoint || '').toLowerCase();
@@ -108,6 +70,21 @@ export async function convertProviderResponseIfNeeded(options, deps) {
108
70
  }
109
71
  applyClientConnectionStateToContext(metadataBag, baseContext);
110
72
  const adapterContext = baseContext;
73
+ const stopMessageInjectReadiness = resolveStopMessageClientInjectReadiness(baseContext);
74
+ {
75
+ const rt = asRecord(adapterContext.__rt) ?? {};
76
+ adapterContext.__rt = {
77
+ ...rt,
78
+ stopMessageClientInjectReady: stopMessageInjectReadiness.ready,
79
+ stopMessageClientInjectReason: stopMessageInjectReadiness.reason,
80
+ ...(stopMessageInjectReadiness.sessionScope
81
+ ? { stopMessageClientInjectSessionScope: stopMessageInjectReadiness.sessionScope }
82
+ : {}),
83
+ ...(stopMessageInjectReadiness.tmuxSessionId
84
+ ? { stopMessageClientInjectTmuxSessionId: stopMessageInjectReadiness.tmuxSessionId }
85
+ : {})
86
+ };
87
+ }
111
88
  const hasTargetMetadata = metadataBag &&
112
89
  typeof metadataBag === 'object' &&
113
90
  metadataBag.target &&
@@ -169,7 +146,6 @@ export async function convertProviderResponseIfNeeded(options, deps) {
169
146
  direction: 'request',
170
147
  stage: 'inbound'
171
148
  };
172
- bindClockConversationSession(nestedMetadata);
173
149
  const nestedInput = {
174
150
  entryEndpoint: nestedEntry,
175
151
  method: 'POST',
@@ -180,25 +156,20 @@ export async function convertProviderResponseIfNeeded(options, deps) {
180
156
  metadata: nestedMetadata
181
157
  };
182
158
  try {
183
- const requestBody = reenterOpts.body;
184
- const messages = Array.isArray(requestBody.messages) ? requestBody.messages : [];
185
- const lastUser = [...messages]
186
- .reverse()
187
- .find((entry) => entry && typeof entry === 'object' && entry.role === 'user');
188
- const text = typeof lastUser?.content === 'string' ? String(lastUser.content) : '';
189
- if (text.includes('<**clock:{') && text.includes('}**>')) {
190
- await injectClockClientPrompt({
191
- tmuxSessionId: typeof nestedMetadata.tmuxSessionId === 'string' ? nestedMetadata.tmuxSessionId : undefined,
192
- sessionId: typeof nestedMetadata.sessionId === 'string' ? nestedMetadata.sessionId : undefined,
193
- workdir: typeof nestedMetadata.workdir === 'string' ? nestedMetadata.workdir : undefined,
194
- text,
195
- requestId: reenterOpts.requestId,
196
- source: 'servertool.reenter'
197
- });
159
+ const requestBody = reenterOpts.body && typeof reenterOpts.body === 'object' && !Array.isArray(reenterOpts.body)
160
+ ? reenterOpts.body
161
+ : {};
162
+ const injectResult = await runClientInjectionFlowBeforeReenter({
163
+ nestedMetadata,
164
+ requestBody,
165
+ requestId: reenterOpts.requestId
166
+ });
167
+ if (injectResult.clientInjectOnlyHandled) {
168
+ return { body: { ok: true, mode: 'client_inject_only' } };
198
169
  }
199
170
  }
200
- catch {
201
- // best-effort only
171
+ catch (error) {
172
+ throw error;
202
173
  }
203
174
  const nestedResult = await deps.executeNested(nestedInput);
204
175
  const nestedBody = nestedResult.body && typeof nestedResult.body === 'object'
@@ -231,8 +202,31 @@ export async function convertProviderResponseIfNeeded(options, deps) {
231
202
  const err = error;
232
203
  const message = err instanceof Error ? err.message : String(err ?? 'Unknown error');
233
204
  const providerProtocol = mapProviderProtocol(options.providerType);
205
+ const errRecord = err;
206
+ const errCode = typeof errRecord.code === 'string' ? errRecord.code : undefined;
207
+ const upstreamCode = typeof errRecord.upstreamCode === 'string' ? errRecord.upstreamCode : undefined;
208
+ const detailRecord = asRecord(errRecord.details);
209
+ const detailReason = typeof detailRecord?.reason === 'string'
210
+ ? String(detailRecord.reason)
211
+ : undefined;
212
+ const detailUpstreamCode = typeof detailRecord?.upstreamCode === 'string'
213
+ ? String(detailRecord.upstreamCode)
214
+ : undefined;
234
215
  const isSseConvertFailure = typeof message === 'string' &&
235
216
  message.toLowerCase().includes('failed to convert sse payload');
217
+ const isServerToolFollowupError = errCode === 'SERVERTOOL_FOLLOWUP_FAILED' ||
218
+ errCode === 'SERVERTOOL_EMPTY_FOLLOWUP' ||
219
+ (typeof errCode === 'string' && errCode.startsWith('SERVERTOOL_'));
220
+ if (isServerToolFollowupError) {
221
+ console.error('[RequestExecutor] ServerTool followup failed', {
222
+ requestId: options.requestId,
223
+ code: errCode,
224
+ upstreamCode: upstreamCode || detailUpstreamCode,
225
+ reason: detailReason,
226
+ message
227
+ });
228
+ throw error;
229
+ }
236
230
  if (providerProtocol === 'gemini-chat' && isSseConvertFailure) {
237
231
  console.error('[RequestExecutor] Fatal SSE decode error for Gemini provider, bubbling as HTTP error', error);
238
232
  throw error;