File size: 1,055 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 24 25 26 27 28 29 30 31 32 33 34 | import type { AgentContext } from '#/agent/agentContext/agentContext';
import type { AgentLLMRequestSource } from '#/agent/llmRequester/llmRequester';
import type { TokenUsage } from '#human/llm/usage';
import { type ErrorCode } from '#/errors';
import { Error2 } from '#/_base/errors/errors';
import { UsageErrors } from './errors';
export { UsageErrors } from './errors';
export type UsageErrorCode = (typeof UsageErrors.codes)[keyof typeof UsageErrors.codes];
export class UsageError extends Error2 {
constructor(code: UsageErrorCode, message: string, details?: Record<string, unknown>) {
super(code as ErrorCode, message, { details });
this.name = 'UsageError';
}
}
export interface UsageStatus {
readonly byModel?: Record<string, TokenUsage>;
readonly total?: TokenUsage;
readonly currentTurn?: TokenUsage;
}
export interface UsageRecordedContext {
readonly agent: AgentContext;
readonly model: string;
readonly usage: Readonly<TokenUsage>;
readonly source?: AgentLLMRequestSource;
readonly firstRecord: boolean;
}
|