@@ -50,10 +50,12 @@ import { markAuthProfileBlockedUntil, resolveAgentDir } from "openclaw/plugin-sd
5050import {
5151 createDiagnosticTraceContextFromActiveScope ,
5252 emitTrustedDiagnosticEvent ,
53+ emitTrustedDiagnosticEventWithPrivateData ,
5354 freezeDiagnosticTraceContext ,
5455 hasPendingInternalDiagnosticEvent ,
5556 onInternalDiagnosticEvent ,
5657 resolveDiagnosticModelContentCapturePolicy ,
58+ type DiagnosticModelCallContent ,
5759 type DiagnosticEventPayload ,
5860} from "openclaw/plugin-sdk/diagnostic-runtime" ;
5961import { isToolAllowed } from "openclaw/plugin-sdk/sandbox" ;
@@ -2720,40 +2722,59 @@ export async function runCodexAppServerAttempt(
27202722 const codexDiagnosticToolDefinitions = codexModelContentCapture . toolDefinitions
27212723 ? buildCodexDiagnosticToolDefinitions ( tools )
27222724 : undefined ;
2723- const buildCodexModelCallDiagnosticFields = ( ) => ( {
2724- ...codexModelCallBaseFields ,
2725- ...( codexModelContentCapture . inputMessages
2726- ? { inputMessages : buildTurnStartFailureMessages ( ) }
2727- : { } ) ,
2728- ...( codexModelContentCapture . systemPrompt
2729- ? { systemPrompt : buildRenderedCodexDeveloperInstructions ( ) }
2730- : { } ) ,
2731- ...( codexDiagnosticToolDefinitions ? { toolDefinitions : codexDiagnosticToolDefinitions } : { } ) ,
2732- } ) ;
2725+ const codexModelContentPrivateData = (
2726+ modelContent : DiagnosticModelCallContent | undefined ,
2727+ ) => ( modelContent && Object . keys ( modelContent ) . length > 0 ? { modelContent } : undefined ) ;
2728+ const buildCodexModelCallDiagnosticContent = ( ) : DiagnosticModelCallContent | undefined => {
2729+ const modelContent = {
2730+ ...( codexModelContentCapture . inputMessages
2731+ ? { inputMessages : buildTurnStartFailureMessages ( ) }
2732+ : { } ) ,
2733+ ...( codexModelContentCapture . systemPrompt
2734+ ? { systemPrompt : buildRenderedCodexDeveloperInstructions ( ) }
2735+ : { } ) ,
2736+ ...( codexDiagnosticToolDefinitions
2737+ ? { toolDefinitions : codexDiagnosticToolDefinitions }
2738+ : { } ) ,
2739+ } ;
2740+ return Object . keys ( modelContent ) . length > 0 ? modelContent : undefined ;
2741+ } ;
27332742 const emitCodexModelCallStarted = ( ) => {
27342743 codexModelCallStartedAt = Date . now ( ) ;
27352744 codexModelCallStarted = true ;
2736- emitTrustedDiagnosticEvent ( {
2737- type : "model.call.started" ,
2738- ...buildCodexModelCallDiagnosticFields ( ) ,
2739- } ) ;
2745+ emitTrustedDiagnosticEventWithPrivateData (
2746+ {
2747+ type : "model.call.started" ,
2748+ ...codexModelCallBaseFields ,
2749+ } ,
2750+ codexModelContentPrivateData ( buildCodexModelCallDiagnosticContent ( ) ) ,
2751+ ) ;
27402752 } ;
27412753 const emitCodexModelCallCompleted = ( result : EmbeddedRunAttemptResult ) => {
27422754 if ( ! codexModelCallStarted || codexModelCallTerminalEmitted ) {
27432755 return ;
27442756 }
27452757 codexModelCallTerminalEmitted = true ;
2746- emitTrustedDiagnosticEvent ( {
2747- type : "model.call.completed" ,
2748- ...buildCodexModelCallDiagnosticFields ( ) ,
2749- durationMs : Math . max ( 0 , Date . now ( ) - codexModelCallStartedAt ) ,
2750- ...( codexModelCallRequestPayloadBytes !== undefined
2751- ? { requestPayloadBytes : codexModelCallRequestPayloadBytes }
2752- : { } ) ,
2753- ...( codexModelContentCapture . outputMessages
2754- ? { outputMessages : result . lastAssistant ? [ result . lastAssistant ] : result . assistantTexts }
2755- : { } ) ,
2756- } ) ;
2758+ emitTrustedDiagnosticEventWithPrivateData (
2759+ {
2760+ type : "model.call.completed" ,
2761+ ...codexModelCallBaseFields ,
2762+ durationMs : Math . max ( 0 , Date . now ( ) - codexModelCallStartedAt ) ,
2763+ ...( codexModelCallRequestPayloadBytes !== undefined
2764+ ? { requestPayloadBytes : codexModelCallRequestPayloadBytes }
2765+ : { } ) ,
2766+ } ,
2767+ codexModelContentPrivateData ( {
2768+ ...buildCodexModelCallDiagnosticContent ( ) ,
2769+ ...( codexModelContentCapture . outputMessages
2770+ ? {
2771+ outputMessages : result . lastAssistant
2772+ ? [ result . lastAssistant ]
2773+ : result . assistantTexts ,
2774+ }
2775+ : { } ) ,
2776+ } ) ,
2777+ ) ;
27572778 } ;
27582779 const emitCodexModelCallError = (
27592780 error : unknown ,
@@ -2763,17 +2784,22 @@ export async function runCodexAppServerAttempt(
27632784 return ;
27642785 }
27652786 codexModelCallTerminalEmitted = true ;
2766- emitTrustedDiagnosticEvent ( {
2767- type : "model.call.error" ,
2768- ...buildCodexModelCallDiagnosticFields ( ) ,
2769- durationMs : Math . max ( 0 , Date . now ( ) - codexModelCallStartedAt ) ,
2770- errorCategory : fields . failureKind ?? "error" ,
2771- ...( fields . failureKind ? { failureKind : fields . failureKind } : { } ) ,
2772- ...( codexModelCallRequestPayloadBytes !== undefined
2773- ? { requestPayloadBytes : codexModelCallRequestPayloadBytes }
2774- : { } ) ,
2775- ...( codexModelContentCapture . outputMessages ? { outputMessages : [ ] } : { } ) ,
2776- } ) ;
2787+ emitTrustedDiagnosticEventWithPrivateData (
2788+ {
2789+ type : "model.call.error" ,
2790+ ...codexModelCallBaseFields ,
2791+ durationMs : Math . max ( 0 , Date . now ( ) - codexModelCallStartedAt ) ,
2792+ errorCategory : fields . failureKind ?? "error" ,
2793+ ...( fields . failureKind ? { failureKind : fields . failureKind } : { } ) ,
2794+ ...( codexModelCallRequestPayloadBytes !== undefined
2795+ ? { requestPayloadBytes : codexModelCallRequestPayloadBytes }
2796+ : { } ) ,
2797+ } ,
2798+ codexModelContentPrivateData ( {
2799+ ...buildCodexModelCallDiagnosticContent ( ) ,
2800+ ...( codexModelContentCapture . outputMessages ? { outputMessages : [ ] } : { } ) ,
2801+ } ) ,
2802+ ) ;
27772803 embeddedAgentLog . debug ( "codex app-server model call diagnostic ended with error" , {
27782804 error : formatErrorMessage ( error ) ,
27792805 } ) ;
0 commit comments