Download packages/agent-core-v2/src/session/usage/sessionUsageService.ts from SaylorTwift/kimi-code: direct link, hf CLI and curl.
- Browser
- Download file 1.44 kB
-
https://huggingface.co/SaylorTwift/kimi-code/resolve/main/packages/agent-core-v2/src/session/usage/sessionUsageService.ts
- Command line
-
hf download hf://SaylorTwift/kimi-code/packages/agent-core-v2/src/session/usage/sessionUsageService.ts
-
curl -L -o sessionUsageService.ts https://huggingface.co/SaylorTwift/kimi-code/resolve/main/packages/agent-core-v2/src/session/usage/sessionUsageService.ts
1.44 kB
| import { Service } from '#/_base/di/service'; | |
| import { Emitter, type Event } from '#/_base/event'; | |
| import type { AgentContext } from '#/agent/agentContext/agentContext'; | |
| import { agentSpaceOf } from '#/agent/agentContext/agentSpace'; | |
| import type { AgentLLMRequestSource } from '#/agent/llmRequester/llmRequester'; | |
| import type { UsageRecordedContext, UsageStatus } from '#/agent/usage/usage'; | |
| import { copyUsage } from '#/agent/usage/usageOps'; | |
| import type { TokenUsage } from '#human/llm/usage'; | |
| import { ISessionUsageService } from './sessionUsage'; | |
| import { UsageAgentModelDefinition } from './usageAgentModel'; | |
| export class SessionUsageService extends Service implements ISessionUsageService { | |
| declare readonly _serviceBrand: undefined; | |
| private readonly onDidRecordEmitter = this._register(new Emitter<UsageRecordedContext>()); | |
| readonly onDidRecord: Event<UsageRecordedContext> = this.onDidRecordEmitter.event; | |
| async record( | |
| agent: AgentContext, | |
| model: string, | |
| usage: TokenUsage, | |
| source?: AgentLLMRequestSource, | |
| ): Promise<void> { | |
| const firstRecord = await agentSpaceOf(agent).use(UsageAgentModelDefinition, (m) => | |
| m.record({ model, usage, source }), | |
| ); | |
| this.onDidRecordEmitter.fire({ agent, model, usage: copyUsage(usage), source, firstRecord }); | |
| } | |
| status(agent: AgentContext): UsageStatus { | |
| return agentSpaceOf(agent).use(UsageAgentModelDefinition, (m) => m.status()); | |
| } | |
| } | |