@@ -170,6 +170,21 @@ interface ChatRun {
170170 retryAttemptCount ?: number ;
171171 retryFinalResult ?: string ;
172172 retrySuppressedReason ?: string ;
173+ contextBudget ?: {
174+ action : 'unmeasured' | 'within_budget' | 'blocked' | 'rollover' ;
175+ source : 'model_metadata' | 'known_model_family' | 'unknown' ;
176+ estimatedPromptTokens : number ;
177+ contextWindowTokens ?: number ;
178+ reservedOutputTokens ?: number ;
179+ safetyMarginTokens ?: number ;
180+ inputBudgetTokens ?: number ;
181+ budgetRatio ?: number ;
182+ priorSessionInputTokens ?: number ;
183+ projectedInputTokens ?: number ;
184+ rolloverThresholdTokens ?: number ;
185+ compactedPromptTokens ?: number ;
186+ omittedTranscriptMessageBlocks ?: number ;
187+ } ;
173188 artifactOutcome ?: {
174189 artifactCount : number ;
175190 artifactsCreated ?: number ;
@@ -1273,6 +1288,38 @@ export function registerRunRoutes(app: Express, ctx: RegisterRunRoutesDeps) {
12731288 asked_user_question : runAskedUserQuestion ( run . events ) ,
12741289 retry_attempt_count : run . retryAttemptCount ?? 0 ,
12751290 retry_final_result : run . retryFinalResult ?? 'not_attempted' ,
1291+ context_budget_action : run . contextBudget ?. action ?? 'unmeasured' ,
1292+ context_budget_source : run . contextBudget ?. source ?? 'unknown' ,
1293+ ...( run . contextBudget ?. estimatedPromptTokens !== undefined
1294+ ? { estimated_prompt_tokens : run . contextBudget . estimatedPromptTokens }
1295+ : { } ) ,
1296+ ...( run . contextBudget ?. contextWindowTokens !== undefined
1297+ ? { context_window_tokens : run . contextBudget . contextWindowTokens }
1298+ : { } ) ,
1299+ ...( run . contextBudget ?. reservedOutputTokens !== undefined
1300+ ? { reserved_output_tokens : run . contextBudget . reservedOutputTokens }
1301+ : { } ) ,
1302+ ...( run . contextBudget ?. inputBudgetTokens !== undefined
1303+ ? { input_budget_tokens : run . contextBudget . inputBudgetTokens }
1304+ : { } ) ,
1305+ ...( run . contextBudget ?. budgetRatio !== undefined
1306+ ? { context_budget_ratio : run . contextBudget . budgetRatio }
1307+ : { } ) ,
1308+ ...( run . contextBudget ?. priorSessionInputTokens !== undefined
1309+ ? { prior_session_input_tokens : run . contextBudget . priorSessionInputTokens }
1310+ : { } ) ,
1311+ ...( run . contextBudget ?. projectedInputTokens !== undefined
1312+ ? { projected_session_input_tokens : run . contextBudget . projectedInputTokens }
1313+ : { } ) ,
1314+ ...( run . contextBudget ?. rolloverThresholdTokens !== undefined
1315+ ? { rollover_threshold_tokens : run . contextBudget . rolloverThresholdTokens }
1316+ : { } ) ,
1317+ ...( run . contextBudget ?. compactedPromptTokens !== undefined
1318+ ? { compacted_prompt_tokens : run . contextBudget . compactedPromptTokens }
1319+ : { } ) ,
1320+ ...( run . contextBudget ?. omittedTranscriptMessageBlocks !== undefined
1321+ ? { omitted_transcript_message_blocks : run . contextBudget . omittedTranscriptMessageBlocks }
1322+ : { } ) ,
12761323 ...( run . retrySuppressedReason
12771324 ? { retry_suppressed_reason : run . retrySuppressedReason }
12781325 : { } ) ,
0 commit comments