File size: 796 Bytes
68d7816
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import { createDecorator } from '#/_base/di/instantiation';
import type { Event } from '#/_base/event';
import type { AgentContext } from '#/agent/agentContext/agentContext';
import type { AgentLLMRequestSource } from '#/agent/llmRequester/llmRequester';
import type { UsageRecordedContext, UsageStatus } from '#/agent/usage/usage';
import type { TokenUsage } from '#human/llm/usage';

export interface ISessionUsageService {
  readonly _serviceBrand: undefined;

  record(
    agent: AgentContext,
    model: string,
    usage: TokenUsage,
    source?: AgentLLMRequestSource,
  ): Promise<void>;
  status(agent: AgentContext): UsageStatus;

  readonly onDidRecord: Event<UsageRecordedContext>;
}

export const ISessionUsageService = createDecorator<ISessionUsageService>('sessionUsageService');