import { ChatAgent, ChatAgentLocation, ChatAgentService, MutableChatRequestModel, QuestionResponseContentImpl } from '@theia/ai-chat'; import { BasePromptFragment, PromptService, ResolvedPromptFragment, TokenUsageService } from '@theia/ai-core'; import { CommandService, ILogger, SelectionService } from '@theia/core'; import { EditorManager } from '@theia/editor/lib/browser'; import { FileService } from '@theia/filesystem/lib/browser/file-service'; import { WorkspaceService } from '@theia/workspace/lib/browser'; import { PermissionMode, SDKMessage, ToolApprovalRequestMessage, Usage } from '../common/claude-code-service'; import { ClaudeCodeEditToolService, ToolUseBlock } from './claude-code-edit-tool-service'; import { FileEditBackupService } from './claude-code-file-edit-backup-service'; import { ClaudeCodeFrontendService } from './claude-code-frontend-service'; export declare const CLAUDE_SESSION_ID_KEY = "claudeSessionId"; export declare const CLAUDE_EDIT_TOOL_USES_KEY = "claudeEditToolUses"; export declare const CLAUDE_INPUT_TOKENS_KEY = "claudeInputTokens"; export declare const CLAUDE_OUTPUT_TOKENS_KEY = "claudeOutputTokens"; export declare const CLAUDE_PENDING_APPROVALS_KEY = "claudePendingApprovals"; export declare const CLAUDE_APPROVAL_TOOL_INPUTS_KEY = "claudeApprovalToolInputs"; export declare const CLAUDE_MODEL_NAME_KEY = "claudeModelName"; export declare const CLAUDE_COST_KEY = "claudeCost"; export declare const CLAUDE_SESSION_APPROVED_TOOLS_KEY = "claudeSessionApprovedTools"; export declare const CLAUDE_ASK_USER_QUESTION_IDS_KEY = "claudeAskUserQuestionIds"; export declare const CLAUDE_PENDING_ASK_USER_QUESTIONS_KEY = "claudePendingAskUserQuestions"; export declare const systemPromptAppendixTemplate: BasePromptFragment; export declare const CLAUDE_CHAT_AGENT_ID = "ClaudeCode"; export declare class ClaudeCodeChatAgent implements ChatAgent { id: string; name: string; description: string; iconClass: string; locations: ChatAgentLocation[]; tags: string[]; modes: { id: string; name: string; }[]; variables: never[]; prompts: { id: string; defaultVariant: BasePromptFragment; }[]; languageModelRequirements: never[]; agentSpecificVariables: { name: string; description: string; usedInPrompt: boolean; }[]; functions: never[]; protected promptService: PromptService; protected claudeCode: ClaudeCodeFrontendService; protected readonly fileService: FileService; protected readonly commandService: CommandService; protected readonly workspaceService: WorkspaceService; protected readonly editorManager: EditorManager; protected readonly selectionService: SelectionService; protected readonly editToolService: ClaudeCodeEditToolService; protected readonly backupService: FileEditBackupService; protected readonly tokenUsageService: TokenUsageService; protected readonly logger: ILogger; invoke(request: MutableChatRequestModel, chatAgentService?: ChatAgentService): Promise; protected warnIfDifferentAgentRequests(request: MutableChatRequestModel): void; protected createSystemPromptAppendix(request: MutableChatRequestModel): Promise; protected initializesEditToolUses(request: MutableChatRequestModel): void; protected getPendingApprovals(request: MutableChatRequestModel): Map; protected getApprovalToolInputs(request: MutableChatRequestModel): Map; protected getSessionApprovedTools(request: MutableChatRequestModel): Set; protected setSessionApprovedTools(request: MutableChatRequestModel, approvedTools: Set): void; protected isToolApprovedForSession(request: MutableChatRequestModel, toolName: string): boolean; protected approveToolForSession(request: MutableChatRequestModel, toolName: string): void; protected handleToolApprovalRequest(approvalRequest: ToolApprovalRequestMessage, request: MutableChatRequestModel): void; protected handleApprovalResponse(selectedOption: { text: string; value?: string; }, requestId: string, toolName: string, request: MutableChatRequestModel): void; protected handleApprovalSkip(requestId: string, request: MutableChatRequestModel): void; protected handleAskUserQuestion(approvalRequest: ToolApprovalRequestMessage, request: MutableChatRequestModel): void; protected getPendingAskUserQuestions(request: MutableChatRequestModel): Set; protected getAskUserQuestionToolUseIds(request: MutableChatRequestModel): Set; protected getEditToolUses(request: MutableChatRequestModel): Map | undefined; protected getPreviousClaudeSessionId(request: MutableChatRequestModel): string | undefined; protected getClaudeSessionId(request: MutableChatRequestModel): string | undefined; protected isEditRequest(request: MutableChatRequestModel): boolean; protected setClaudeSessionId(request: MutableChatRequestModel, sessionId: string): void; protected readonly ALLOWED_MODES: PermissionMode[]; protected getClaudePermissionMode(request: MutableChatRequestModel): PermissionMode; protected getClaudeModelName(request: MutableChatRequestModel): string | undefined; protected setClaudeModelName(request: MutableChatRequestModel, modelName: string): void; protected getCurrentInputTokens(request: MutableChatRequestModel): number; protected getCurrentOutputTokens(request: MutableChatRequestModel): number; protected updateTokens(request: MutableChatRequestModel, inputTokens: number, outputTokens: number): void; protected getSessionTotalTokens(request: MutableChatRequestModel): { inputTokens: number; outputTokens: number; }; protected updateSessionSuggestion(request: MutableChatRequestModel): void; protected isEditMode(request: MutableChatRequestModel): boolean; protected reportTokenUsage(request: MutableChatRequestModel, inputTokens: number, outputTokens: number, cachedInputTokens?: number, readCachedInputTokens?: number): Promise; protected addResponseContent(message: SDKMessage, request: MutableChatRequestModel): Promise; protected handleTokenMetrics(usage: Usage, request: MutableChatRequestModel): Promise; private extractLocalCommandStdout; } //# sourceMappingURL=claude-code-chat-agent.d.ts.map