diff --git a/VERSION b/VERSION index 4485360..cbb57fa 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -2.10.9.1 +2.10.9.2 diff --git a/src/providers/openai/codex-core.js b/src/providers/openai/codex-core.js index 7d873f3..8997622 100644 --- a/src/providers/openai/codex-core.js +++ b/src/providers/openai/codex-core.js @@ -172,7 +172,7 @@ export class CodexApiService { } const url = `${this.baseUrl}/responses`; - const body = this.prepareRequestBody(selectedModel, requestBody, true); + const body = await this.prepareRequestBody(selectedModel, requestBody, true); const headers = this.buildHeaders(body.prompt_cache_key, true); try { @@ -253,7 +253,7 @@ export class CodexApiService { } const url = `${this.baseUrl}/responses`; - const body = this.prepareRequestBody(selectedModel, requestBody, true); + const body = await this.prepareRequestBody(selectedModel, requestBody, true); const headers = this.buildHeaders(body.prompt_cache_key, true); try { @@ -334,7 +334,7 @@ export class CodexApiService { /** * 准备请求体 */ - prepareRequestBody(model, requestBody, stream) { + async prepareRequestBody(model, requestBody, stream) { // 提取 metadata 并从请求体中移除,避免透传到上游 const metadata = requestBody.metadata || {}; @@ -393,6 +393,23 @@ export class CodexApiService { delete result.service_tier; } + // 监控钩子:内部请求转换 + if (this.config?._monitorRequestId) { + try { + const { getPluginManager } = await import('../../core/plugin-manager.js'); + const pluginManager = getPluginManager(); + if (pluginManager) { + await pluginManager.executeHook('onInternalRequestConverted', { + requestId: this.config._monitorRequestId, + internalRequest: result, + converterName: 'prepareRequestBody' + }); + } + } catch (e) { + logger.error('[Codex] Error calling onInternalRequestConverted hook:', e.message); + } + } + return result; }