@jsonstudio/rcc 0.89.2202 → 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.
- package/README.md +27 -0
- package/dist/build-info.js +2 -2
- package/dist/build-info.js.map +1 -1
- package/dist/cli/commands/claude.js +1 -0
- package/dist/cli/commands/claude.js.map +1 -1
- package/dist/cli/commands/codex.js +1 -0
- package/dist/cli/commands/codex.js.map +1 -1
- package/dist/cli/commands/guardian-daemon.d.ts +2 -0
- package/dist/cli/commands/guardian-daemon.js +299 -0
- package/dist/cli/commands/guardian-daemon.js.map +1 -0
- package/dist/cli/commands/init/camoufox.js +1 -1
- package/dist/cli/commands/init/camoufox.js.map +1 -1
- package/dist/cli/commands/init.js +15 -1
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/launcher/types.d.ts +6 -0
- package/dist/cli/commands/launcher-kernel.js +456 -109
- package/dist/cli/commands/launcher-kernel.js.map +1 -1
- package/dist/cli/commands/port.js +28 -8
- package/dist/cli/commands/port.js.map +1 -1
- package/dist/cli/commands/restart.d.ts +4 -0
- package/dist/cli/commands/restart.js +91 -42
- package/dist/cli/commands/restart.js.map +1 -1
- package/dist/cli/commands/start-types.d.ts +4 -0
- package/dist/cli/commands/start.js +112 -68
- package/dist/cli/commands/start.js.map +1 -1
- package/dist/cli/commands/stop.d.ts +3 -0
- package/dist/cli/commands/stop.js +30 -63
- package/dist/cli/commands/stop.js.map +1 -1
- package/dist/cli/config/init-config.js +15 -1
- package/dist/cli/config/init-config.js.map +1 -1
- package/dist/cli/config/init-provider-catalog.js +13 -5
- package/dist/cli/config/init-provider-catalog.js.map +1 -1
- package/dist/cli/guardian/client.d.ts +38 -0
- package/dist/cli/guardian/client.js +237 -0
- package/dist/cli/guardian/client.js.map +1 -0
- package/dist/cli/guardian/paths.d.ts +7 -0
- package/dist/cli/guardian/paths.js +13 -0
- package/dist/cli/guardian/paths.js.map +1 -0
- package/dist/cli/guardian/types.d.ts +30 -0
- package/dist/cli/guardian/types.js +2 -0
- package/dist/cli/guardian/types.js.map +1 -0
- package/dist/cli/register/guardian-daemon-command.d.ts +2 -0
- package/dist/cli/register/guardian-daemon-command.js +5 -0
- package/dist/cli/register/guardian-daemon-command.js.map +1 -0
- package/dist/cli/server/port-utils.js +57 -1
- package/dist/cli/server/port-utils.js.map +1 -1
- package/dist/cli.js +48 -0
- package/dist/cli.js.map +1 -1
- package/dist/commands/oauth.js +6 -6
- package/dist/commands/oauth.js.map +1 -1
- package/dist/commands/provider-update.js +12 -0
- package/dist/commands/provider-update.js.map +1 -1
- package/dist/config/routecodex-config-loader.js +66 -1
- package/dist/config/routecodex-config-loader.js.map +1 -1
- package/dist/config/virtual-router-builder.js +18 -0
- package/dist/config/virtual-router-builder.js.map +1 -1
- package/dist/config/virtual-router-types.js +20 -5
- package/dist/config/virtual-router-types.js.map +1 -1
- package/dist/daemon-admin-ui/assets/index-C8vP_c5E.js +15 -0
- package/dist/daemon-admin-ui/assets/index-DjIoHmNv.css +1 -0
- package/dist/daemon-admin-ui/index.html +13 -0
- package/dist/docs/daemon-admin-ui.html +328 -57
- package/dist/index.d.ts +9 -0
- package/dist/index.js +268 -10
- package/dist/index.js.map +1 -1
- package/dist/manager/modules/quota/provider-quota-daemon.error-helpers.d.ts +1 -0
- package/dist/manager/modules/quota/provider-quota-daemon.error-helpers.js +36 -0
- package/dist/manager/modules/quota/provider-quota-daemon.error-helpers.js.map +1 -1
- package/dist/manager/modules/quota/provider-quota-daemon.events.js +50 -1
- package/dist/manager/modules/quota/provider-quota-daemon.events.js.map +1 -1
- package/dist/providers/auth/antigravity-user-agent.js +78 -31
- package/dist/providers/auth/antigravity-user-agent.js.map +1 -1
- package/dist/providers/auth/gemini-cli-userinfo-helper.js +94 -63
- package/dist/providers/auth/gemini-cli-userinfo-helper.js.map +1 -1
- package/dist/providers/auth/iflow-userinfo-helper.js +1 -1
- package/dist/providers/auth/iflow-userinfo-helper.js.map +1 -1
- package/dist/providers/auth/oauth-error-message.d.ts +1 -0
- package/dist/providers/auth/oauth-error-message.js +44 -0
- package/dist/providers/auth/oauth-error-message.js.map +1 -0
- package/dist/providers/auth/oauth-lifecycle/error-detection.js +42 -8
- package/dist/providers/auth/oauth-lifecycle/error-detection.js.map +1 -1
- package/dist/providers/auth/oauth-lifecycle/token-io.d.ts +1 -0
- package/dist/providers/auth/oauth-lifecycle/token-io.js +12 -0
- package/dist/providers/auth/oauth-lifecycle/token-io.js.map +1 -1
- package/dist/providers/auth/oauth-lifecycle.js +502 -87
- package/dist/providers/auth/oauth-lifecycle.js.map +1 -1
- package/dist/providers/auth/oauth-repair-cooldown.js +2 -7
- package/dist/providers/auth/oauth-repair-cooldown.js.map +1 -1
- package/dist/providers/auth/oauth-repair-env.js +3 -5
- package/dist/providers/auth/oauth-repair-env.js.map +1 -1
- package/dist/providers/auth/oauth-utils/error-extraction.js +42 -8
- package/dist/providers/auth/oauth-utils/error-extraction.js.map +1 -1
- package/dist/providers/auth/qwen-userinfo-helper.js +18 -3
- package/dist/providers/auth/qwen-userinfo-helper.js.map +1 -1
- package/dist/providers/auth/tokenfile-auth.d.ts +1 -0
- package/dist/providers/auth/tokenfile-auth.js +15 -9
- package/dist/providers/auth/tokenfile-auth.js.map +1 -1
- package/dist/providers/core/config/camoufox-actions.d.ts +31 -0
- package/dist/providers/core/config/camoufox-actions.js +461 -0
- package/dist/providers/core/config/camoufox-actions.js.map +1 -0
- package/dist/providers/core/config/camoufox-launcher.d.ts +3 -0
- package/dist/providers/core/config/camoufox-launcher.js +518 -160
- package/dist/providers/core/config/camoufox-launcher.js.map +1 -1
- package/dist/providers/core/config/oauth-flows.js +6 -44
- package/dist/providers/core/config/oauth-flows.js.map +1 -1
- package/dist/providers/core/config/provider-oauth-configs.js +51 -7
- package/dist/providers/core/config/provider-oauth-configs.js.map +1 -1
- package/dist/providers/core/config/service-profiles.js +13 -4
- package/dist/providers/core/config/service-profiles.js.map +1 -1
- package/dist/providers/core/runtime/http-transport-provider.d.ts +1 -0
- package/dist/providers/core/runtime/http-transport-provider.js +60 -1
- package/dist/providers/core/runtime/http-transport-provider.js.map +1 -1
- package/dist/providers/core/runtime/provider-error-classifier.js +32 -15
- package/dist/providers/core/runtime/provider-error-classifier.js.map +1 -1
- package/dist/providers/core/runtime/provider-family-profile-utils.js +1 -1
- package/dist/providers/core/runtime/provider-family-profile-utils.js.map +1 -1
- package/dist/providers/core/runtime/provider-response-postprocessor.js +61 -14
- package/dist/providers/core/runtime/provider-response-postprocessor.js.map +1 -1
- package/dist/providers/core/strategies/oauth-auth-code-flow.d.ts +1 -0
- package/dist/providers/core/strategies/oauth-auth-code-flow.js +124 -19
- package/dist/providers/core/strategies/oauth-auth-code-flow.js.map +1 -1
- package/dist/providers/core/strategies/oauth-device-flow.js +6 -3
- package/dist/providers/core/strategies/oauth-device-flow.js.map +1 -1
- package/dist/providers/profile/families/iflow-profile.js +83 -10
- package/dist/providers/profile/families/iflow-profile.js.map +1 -1
- package/dist/providers/profile/families/qwen-profile.js +203 -0
- package/dist/providers/profile/families/qwen-profile.js.map +1 -1
- package/dist/scripts/camoufox/launch-auth.mjs +112 -5
- package/dist/server/handlers/config-admin-handler.js +9 -2
- package/dist/server/handlers/config-admin-handler.js.map +1 -1
- package/dist/server/handlers/handler-utils.js +3 -14
- package/dist/server/handlers/handler-utils.js.map +1 -1
- package/dist/server/handlers/logging.js +3 -4
- package/dist/server/handlers/logging.js.map +1 -1
- package/dist/server/runtime/http-server/clock-client-reaper.d.ts +1 -0
- package/dist/server/runtime/http-server/clock-client-reaper.js +21 -15
- package/dist/server/runtime/http-server/clock-client-reaper.js.map +1 -1
- package/dist/server/runtime/http-server/clock-client-registry-utils.d.ts +4 -0
- package/dist/server/runtime/http-server/clock-client-registry-utils.js +74 -16
- package/dist/server/runtime/http-server/clock-client-registry-utils.js.map +1 -1
- package/dist/server/runtime/http-server/clock-client-registry.d.ts +15 -0
- package/dist/server/runtime/http-server/clock-client-registry.js +300 -6
- package/dist/server/runtime/http-server/clock-client-registry.js.map +1 -1
- package/dist/server/runtime/http-server/clock-client-routes.js +49 -19
- package/dist/server/runtime/http-server/clock-client-routes.js.map +1 -1
- package/dist/server/runtime/http-server/clock-daemon-log-throttle.d.ts +16 -0
- package/dist/server/runtime/http-server/clock-daemon-log-throttle.js +49 -0
- package/dist/server/runtime/http-server/clock-daemon-log-throttle.js.map +1 -1
- package/dist/server/runtime/http-server/clock-scope-resolution.d.ts +14 -0
- package/dist/server/runtime/http-server/clock-scope-resolution.js +212 -0
- package/dist/server/runtime/http-server/clock-scope-resolution.js.map +1 -0
- package/dist/server/runtime/http-server/daemon-admin/auth-handler.js +5 -3
- package/dist/server/runtime/http-server/daemon-admin/auth-handler.js.map +1 -1
- package/dist/server/runtime/http-server/daemon-admin/control-handler.js +104 -15
- package/dist/server/runtime/http-server/daemon-admin/control-handler.js.map +1 -1
- package/dist/server/runtime/http-server/daemon-admin/credentials-handler.js +2 -2
- package/dist/server/runtime/http-server/daemon-admin/credentials-handler.js.map +1 -1
- package/dist/server/runtime/http-server/daemon-admin/providers-handler-routing-utils.d.ts +24 -0
- package/dist/server/runtime/http-server/daemon-admin/providers-handler-routing-utils.js +316 -70
- package/dist/server/runtime/http-server/daemon-admin/providers-handler-routing-utils.js.map +1 -1
- package/dist/server/runtime/http-server/daemon-admin/providers-handler.js +190 -1
- package/dist/server/runtime/http-server/daemon-admin/providers-handler.js.map +1 -1
- package/dist/server/runtime/http-server/daemon-admin/routing-policy.js +18 -29
- package/dist/server/runtime/http-server/daemon-admin/routing-policy.js.map +1 -1
- package/dist/server/runtime/http-server/daemon-admin/stats-handler.js +2 -0
- package/dist/server/runtime/http-server/daemon-admin/stats-handler.js.map +1 -1
- package/dist/server/runtime/http-server/daemon-admin-routes.d.ts +8 -1
- package/dist/server/runtime/http-server/daemon-admin-routes.js +30 -0
- package/dist/server/runtime/http-server/daemon-admin-routes.js.map +1 -1
- package/dist/server/runtime/http-server/executor/client-injection-flow.d.ts +14 -0
- package/dist/server/runtime/http-server/executor/client-injection-flow.js +287 -0
- package/dist/server/runtime/http-server/executor/client-injection-flow.js.map +1 -0
- package/dist/server/runtime/http-server/executor/index.d.ts +1 -1
- package/dist/server/runtime/http-server/executor/index.js +1 -1
- package/dist/server/runtime/http-server/executor/index.js.map +1 -1
- package/dist/server/runtime/http-server/executor/provider-response-converter.js +236 -62
- package/dist/server/runtime/http-server/executor/provider-response-converter.js.map +1 -1
- package/dist/server/runtime/http-server/executor/provider-response-utils.js +5 -0
- package/dist/server/runtime/http-server/executor/provider-response-utils.js.map +1 -1
- package/dist/server/runtime/http-server/executor/request-executor-core-utils.d.ts +2 -0
- package/dist/server/runtime/http-server/executor/request-executor-core-utils.js +60 -0
- package/dist/server/runtime/http-server/executor/request-executor-core-utils.js.map +1 -1
- package/dist/server/runtime/http-server/executor/request-retry-helpers.js +20 -8
- package/dist/server/runtime/http-server/executor/request-retry-helpers.js.map +1 -1
- package/dist/server/runtime/http-server/executor/sse-error-handler.d.ts +1 -0
- package/dist/server/runtime/http-server/executor/sse-error-handler.js +13 -2
- package/dist/server/runtime/http-server/executor/sse-error-handler.js.map +1 -1
- package/dist/server/runtime/http-server/executor/usage-aggregator.d.ts +0 -12
- package/dist/server/runtime/http-server/executor/usage-aggregator.js +84 -88
- package/dist/server/runtime/http-server/executor/usage-aggregator.js.map +1 -1
- package/dist/server/runtime/http-server/executor-metadata.js +328 -7
- package/dist/server/runtime/http-server/executor-metadata.js.map +1 -1
- package/dist/server/runtime/http-server/executor-response.d.ts +1 -0
- package/dist/server/runtime/http-server/executor-response.js +52 -50
- package/dist/server/runtime/http-server/executor-response.js.map +1 -1
- package/dist/server/runtime/http-server/http-server-bootstrap.js +55 -6
- package/dist/server/runtime/http-server/http-server-bootstrap.js.map +1 -1
- package/dist/server/runtime/http-server/http-server-clock-daemon.d.ts +1 -0
- package/dist/server/runtime/http-server/http-server-clock-daemon.js +199 -44
- package/dist/server/runtime/http-server/http-server-clock-daemon.js.map +1 -1
- package/dist/server/runtime/http-server/http-server-lifecycle.js +4 -4
- package/dist/server/runtime/http-server/http-server-lifecycle.js.map +1 -1
- package/dist/server/runtime/http-server/hub-shadow-compare.js +1 -1
- package/dist/server/runtime/http-server/hub-shadow-compare.js.map +1 -1
- package/dist/server/runtime/http-server/index.d.ts +1 -0
- package/dist/server/runtime/http-server/index.js +1 -0
- package/dist/server/runtime/http-server/index.js.map +1 -1
- package/dist/server/runtime/http-server/middleware.js +82 -4
- package/dist/server/runtime/http-server/middleware.js.map +1 -1
- package/dist/server/runtime/http-server/request-executor.js +26 -7
- package/dist/server/runtime/http-server/request-executor.js.map +1 -1
- package/dist/server/runtime/http-server/routes.d.ts +2 -1
- package/dist/server/runtime/http-server/routes.js +4 -2
- package/dist/server/runtime/http-server/routes.js.map +1 -1
- package/dist/server/runtime/http-server/session-dir.js +12 -1
- package/dist/server/runtime/http-server/session-dir.js.map +1 -1
- package/dist/server/runtime/http-server/stats-manager.d.ts +35 -0
- package/dist/server/runtime/http-server/stats-manager.js +269 -21
- package/dist/server/runtime/http-server/stats-manager.js.map +1 -1
- package/dist/server/runtime/http-server/stopmessage-scope-rebind.d.ts +13 -0
- package/dist/server/runtime/http-server/stopmessage-scope-rebind.js +168 -0
- package/dist/server/runtime/http-server/stopmessage-scope-rebind.js.map +1 -0
- package/dist/server/runtime/http-server/tmux-session-probe.d.ts +10 -0
- package/dist/server/runtime/http-server/tmux-session-probe.js +97 -0
- package/dist/server/runtime/http-server/tmux-session-probe.js.map +1 -1
- package/dist/server-lifecycle/port-utils.d.ts +2 -1
- package/dist/server-lifecycle/port-utils.js +84 -4
- package/dist/server-lifecycle/port-utils.js.map +1 -1
- package/dist/token-daemon/index.d.ts +1 -0
- package/dist/token-daemon/index.js +17 -12
- package/dist/token-daemon/index.js.map +1 -1
- package/dist/utils/clock-client-token.d.ts +2 -1
- package/dist/utils/clock-client-token.js +52 -8
- package/dist/utils/clock-client-token.js.map +1 -1
- package/dist/utils/clock-scope-trace.d.ts +11 -0
- package/dist/utils/clock-scope-trace.js +41 -0
- package/dist/utils/clock-scope-trace.js.map +1 -0
- package/dist/utils/llms-engine-shadow.js +1 -1
- package/dist/utils/llms-engine-shadow.js.map +1 -1
- package/docs/DAEMON_CONTROL_PLANE.md +1 -0
- package/docs/ROUTING_POLICY_SCHEMA.md +4 -2
- package/docs/daemon-admin-ui.html +328 -57
- package/docs/design/servertool-stopmessage-lifecycle.md +109 -0
- package/docs/exec-command-guard-policy.example.v1.json +7 -1
- package/docs/providers/antigravity-gemini-provider-compat.md +2 -2
- package/package.json +23 -6
- package/scripts/build-core.mjs +12 -0
- package/scripts/camoufox/launch-auth.mjs +112 -5
- package/scripts/ci/repo-sanity.mjs +1 -0
- package/scripts/cleanup-stale-server-pids.mjs +142 -0
- package/scripts/install-global.sh +8 -0
- package/scripts/install-verify.mjs +33 -16
- package/scripts/run-bg.sh +226 -43
- package/scripts/run-fg-gtimeout.sh +158 -14
- package/scripts/tests/blackbox-rcc-vs-routecodex-antigravity.mjs +3 -3
- package/scripts/tests/ci-jest.mjs +9 -1
- package/scripts/triage-errorsamples.mjs +216 -0
- package/scripts/verify-codex-error-samples.mjs +92 -15
- package/scripts/verify-e2e-toolcall.mjs +12 -1
- package/scripts/verify-install-e2e.mjs +69 -28
|
@@ -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.
|
|
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 (
|
|
43
|
-
return
|
|
56
|
+
if (fromLegacyMeta) {
|
|
57
|
+
return fromLegacyMeta;
|
|
44
58
|
}
|
|
45
|
-
const fromExplicitHeader = extractHeaderValue(headers, 'x-routecodex-
|
|
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
|
-
|
|
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
|
|
162
|
-
|
|
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 {
|
|
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,38 +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 bindClockConversationSession(metadata) {
|
|
35
|
-
const conversationSessionId = normalizeSessionToken(metadata.sessionId);
|
|
36
|
-
if (!conversationSessionId) {
|
|
37
|
-
return;
|
|
38
|
-
}
|
|
39
|
-
const tmuxSessionId = normalizeSessionToken(metadata.tmuxSessionId);
|
|
40
|
-
const daemonId = normalizeSessionToken(metadata.clockDaemonId)
|
|
41
|
-
?? normalizeSessionToken(metadata.clockClientDaemonId);
|
|
42
|
-
const workdir = normalizeSessionToken(metadata.workdir)
|
|
43
|
-
?? normalizeSessionToken(metadata.cwd)
|
|
44
|
-
?? normalizeSessionToken(metadata.workingDirectory);
|
|
45
|
-
try {
|
|
46
|
-
getClockClientRegistry().bindConversationSession({
|
|
47
|
-
conversationSessionId,
|
|
48
|
-
...(tmuxSessionId ? { tmuxSessionId } : {}),
|
|
49
|
-
...(daemonId ? { daemonId } : {}),
|
|
50
|
-
...(workdir ? { workdir } : {})
|
|
51
|
-
});
|
|
52
|
-
}
|
|
53
|
-
catch {
|
|
54
|
-
// best-effort only
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
27
|
export async function convertProviderResponseIfNeeded(options, deps) {
|
|
58
|
-
if (options.processMode === 'passthrough' && !options.wantsStream) {
|
|
28
|
+
if (options.processMode === 'passthrough' && !options.wantsStream && options.serverToolsEnabled === false) {
|
|
59
29
|
return options.response;
|
|
60
30
|
}
|
|
61
31
|
const entry = (options.entryEndpoint || '').toLowerCase();
|
|
@@ -100,6 +70,21 @@ export async function convertProviderResponseIfNeeded(options, deps) {
|
|
|
100
70
|
}
|
|
101
71
|
applyClientConnectionStateToContext(metadataBag, baseContext);
|
|
102
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
|
+
}
|
|
103
88
|
const hasTargetMetadata = metadataBag &&
|
|
104
89
|
typeof metadataBag === 'object' &&
|
|
105
90
|
metadataBag.target &&
|
|
@@ -161,7 +146,6 @@ export async function convertProviderResponseIfNeeded(options, deps) {
|
|
|
161
146
|
direction: 'request',
|
|
162
147
|
stage: 'inbound'
|
|
163
148
|
};
|
|
164
|
-
bindClockConversationSession(nestedMetadata);
|
|
165
149
|
const nestedInput = {
|
|
166
150
|
entryEndpoint: nestedEntry,
|
|
167
151
|
method: 'POST',
|
|
@@ -172,25 +156,20 @@ export async function convertProviderResponseIfNeeded(options, deps) {
|
|
|
172
156
|
metadata: nestedMetadata
|
|
173
157
|
};
|
|
174
158
|
try {
|
|
175
|
-
const requestBody = reenterOpts.body
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
workdir: typeof nestedMetadata.workdir === 'string' ? nestedMetadata.workdir : undefined,
|
|
186
|
-
text,
|
|
187
|
-
requestId: reenterOpts.requestId,
|
|
188
|
-
source: 'servertool.reenter'
|
|
189
|
-
});
|
|
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' } };
|
|
190
169
|
}
|
|
191
170
|
}
|
|
192
|
-
catch {
|
|
193
|
-
|
|
171
|
+
catch (error) {
|
|
172
|
+
throw error;
|
|
194
173
|
}
|
|
195
174
|
const nestedResult = await deps.executeNested(nestedInput);
|
|
196
175
|
const nestedBody = nestedResult.body && typeof nestedResult.body === 'object'
|
|
@@ -223,8 +202,31 @@ export async function convertProviderResponseIfNeeded(options, deps) {
|
|
|
223
202
|
const err = error;
|
|
224
203
|
const message = err instanceof Error ? err.message : String(err ?? 'Unknown error');
|
|
225
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;
|
|
226
215
|
const isSseConvertFailure = typeof message === 'string' &&
|
|
227
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
|
+
}
|
|
228
230
|
if (providerProtocol === 'gemini-chat' && isSseConvertFailure) {
|
|
229
231
|
console.error('[RequestExecutor] Fatal SSE decode error for Gemini provider, bubbling as HTTP error', error);
|
|
230
232
|
throw error;
|