@@ -24,6 +24,7 @@ import type {RateLimitsMap} from "./RateLimitsMap";
2424import { ModelId } from "./ModelId" ;
2525import { AgentMode } from "./AgentMode" ;
2626import type { TokenCount } from "./TokenCount" ;
27+ import { toPromptUsage } from "./TokenCount" ;
2728import { CodexCommands } from "./CodexCommands" ;
2829import type { QuotaMeta } from "./QuotaMeta" ;
2930import { logger } from "./Logger" ;
@@ -714,6 +715,7 @@ export class CodexAcpServer implements acp.Agent {
714715 logger . log ( "Prompt handled by a command" ) ;
715716 return {
716717 stopReason : "end_turn" ,
718+ usage : this . buildPromptUsage ( sessionState . lastTokenUsage ) ,
717719 _meta : this . buildQuotaMeta ( sessionState ) ,
718720 } ;
719721 }
@@ -751,6 +753,7 @@ export class CodexAcpServer implements acp.Agent {
751753 } ) ;
752754 return {
753755 stopReason : "cancelled" ,
756+ usage : this . buildPromptUsage ( sessionState . lastTokenUsage ) ,
754757 _meta : this . buildQuotaMeta ( sessionState ) ,
755758 } ;
756759 }
@@ -763,6 +766,7 @@ export class CodexAcpServer implements acp.Agent {
763766
764767 return {
765768 stopReason : "end_turn" ,
769+ usage : this . buildPromptUsage ( sessionState . lastTokenUsage ) ,
766770 _meta : this . buildQuotaMeta ( sessionState ) ,
767771 } ;
768772 } catch ( err ) {
@@ -793,6 +797,13 @@ export class CodexAcpServer implements acp.Agent {
793797 } ;
794798 }
795799
800+ private buildPromptUsage ( lastTokenUsage : TokenCount | null ) : acp . Usage | null {
801+ if ( lastTokenUsage == null ) {
802+ return null ;
803+ }
804+ return toPromptUsage ( lastTokenUsage ) ;
805+ }
806+
796807 private async runWithProcessCheck < T > ( operation : ( ) => Promise < T > ) : Promise < T > {
797808 try {
798809 return await operation ( ) ;
0 commit comments