@theia/ai-claude-code 1.67.0-next.56 → 1.67.0-next.86

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (105) hide show
  1. package/lib/browser/claude-code-chat-agent.d.ts +84 -0
  2. package/lib/browser/claude-code-chat-agent.d.ts.map +1 -0
  3. package/lib/browser/claude-code-chat-agent.js +525 -0
  4. package/lib/browser/claude-code-chat-agent.js.map +1 -0
  5. package/lib/browser/claude-code-command-contribution.d.ts +16 -0
  6. package/lib/browser/claude-code-command-contribution.d.ts.map +1 -0
  7. package/lib/browser/claude-code-command-contribution.js +86 -0
  8. package/lib/browser/claude-code-command-contribution.js.map +1 -0
  9. package/lib/browser/claude-code-edit-tool-service.d.ts +63 -0
  10. package/lib/browser/claude-code-edit-tool-service.d.ts.map +1 -0
  11. package/lib/browser/claude-code-edit-tool-service.js +225 -0
  12. package/lib/browser/claude-code-edit-tool-service.js.map +1 -0
  13. package/lib/browser/claude-code-file-edit-backup-service.d.ts +59 -0
  14. package/lib/browser/claude-code-file-edit-backup-service.d.ts.map +1 -0
  15. package/lib/browser/claude-code-file-edit-backup-service.js +98 -0
  16. package/lib/browser/claude-code-file-edit-backup-service.js.map +1 -0
  17. package/lib/browser/claude-code-frontend-module.d.ts +5 -0
  18. package/lib/browser/claude-code-frontend-module.d.ts.map +1 -0
  19. package/lib/browser/claude-code-frontend-module.js +83 -0
  20. package/lib/browser/claude-code-frontend-module.js.map +1 -0
  21. package/lib/browser/claude-code-frontend-service.d.ts +39 -0
  22. package/lib/browser/claude-code-frontend-service.d.ts.map +1 -0
  23. package/lib/browser/claude-code-frontend-service.js +189 -0
  24. package/lib/browser/claude-code-frontend-service.js.map +1 -0
  25. package/lib/browser/claude-code-slash-commands-contribution.d.ts +34 -0
  26. package/lib/browser/claude-code-slash-commands-contribution.d.ts.map +1 -0
  27. package/lib/browser/claude-code-slash-commands-contribution.js +219 -0
  28. package/lib/browser/claude-code-slash-commands-contribution.js.map +1 -0
  29. package/lib/browser/claude-code-tool-call-content.d.ts +8 -0
  30. package/lib/browser/claude-code-tool-call-content.d.ts.map +1 -0
  31. package/lib/browser/claude-code-tool-call-content.js +30 -0
  32. package/lib/browser/claude-code-tool-call-content.js.map +1 -0
  33. package/lib/browser/renderers/bash-tool-renderer.d.ts +10 -0
  34. package/lib/browser/renderers/bash-tool-renderer.d.ts.map +1 -0
  35. package/lib/browser/renderers/bash-tool-renderer.js +67 -0
  36. package/lib/browser/renderers/bash-tool-renderer.js.map +1 -0
  37. package/lib/browser/renderers/collapsible-tool-renderer.d.ts +13 -0
  38. package/lib/browser/renderers/collapsible-tool-renderer.d.ts.map +1 -0
  39. package/lib/browser/renderers/collapsible-tool-renderer.js +48 -0
  40. package/lib/browser/renderers/collapsible-tool-renderer.js.map +1 -0
  41. package/lib/browser/renderers/edit-tool-renderer.d.ts +16 -0
  42. package/lib/browser/renderers/edit-tool-renderer.d.ts.map +1 -0
  43. package/lib/browser/renderers/edit-tool-renderer.js +135 -0
  44. package/lib/browser/renderers/edit-tool-renderer.js.map +1 -0
  45. package/lib/browser/renderers/glob-tool-renderer.d.ts +14 -0
  46. package/lib/browser/renderers/glob-tool-renderer.d.ts.map +1 -0
  47. package/lib/browser/renderers/glob-tool-renderer.js +104 -0
  48. package/lib/browser/renderers/glob-tool-renderer.js.map +1 -0
  49. package/lib/browser/renderers/grep-tool-renderer.d.ts +14 -0
  50. package/lib/browser/renderers/grep-tool-renderer.d.ts.map +1 -0
  51. package/lib/browser/renderers/grep-tool-renderer.js +160 -0
  52. package/lib/browser/renderers/grep-tool-renderer.js.map +1 -0
  53. package/lib/browser/renderers/ls-tool-renderer.d.ts +16 -0
  54. package/lib/browser/renderers/ls-tool-renderer.d.ts.map +1 -0
  55. package/lib/browser/renderers/ls-tool-renderer.js +116 -0
  56. package/lib/browser/renderers/ls-tool-renderer.js.map +1 -0
  57. package/lib/browser/renderers/multiedit-tool-renderer.d.ts +16 -0
  58. package/lib/browser/renderers/multiedit-tool-renderer.d.ts.map +1 -0
  59. package/lib/browser/renderers/multiedit-tool-renderer.js +148 -0
  60. package/lib/browser/renderers/multiedit-tool-renderer.js.map +1 -0
  61. package/lib/browser/renderers/read-tool-renderer.d.ts +16 -0
  62. package/lib/browser/renderers/read-tool-renderer.d.ts.map +1 -0
  63. package/lib/browser/renderers/read-tool-renderer.js +124 -0
  64. package/lib/browser/renderers/read-tool-renderer.js.map +1 -0
  65. package/lib/browser/renderers/todo-write-renderer.d.ts +10 -0
  66. package/lib/browser/renderers/todo-write-renderer.d.ts.map +1 -0
  67. package/lib/browser/renderers/todo-write-renderer.js +133 -0
  68. package/lib/browser/renderers/todo-write-renderer.js.map +1 -0
  69. package/lib/browser/renderers/web-fetch-tool-renderer.d.ts +10 -0
  70. package/lib/browser/renderers/web-fetch-tool-renderer.d.ts.map +1 -0
  71. package/lib/browser/renderers/web-fetch-tool-renderer.js +83 -0
  72. package/lib/browser/renderers/web-fetch-tool-renderer.js.map +1 -0
  73. package/lib/browser/renderers/write-tool-renderer.d.ts +16 -0
  74. package/lib/browser/renderers/write-tool-renderer.d.ts.map +1 -0
  75. package/lib/browser/renderers/write-tool-renderer.js +114 -0
  76. package/lib/browser/renderers/write-tool-renderer.js.map +1 -0
  77. package/lib/common/claude-code-preferences.d.ts +5 -0
  78. package/lib/common/claude-code-preferences.d.ts.map +1 -0
  79. package/lib/common/claude-code-preferences.js +40 -0
  80. package/lib/common/claude-code-preferences.js.map +1 -0
  81. package/lib/common/claude-code-service.d.ts +235 -0
  82. package/lib/common/claude-code-service.d.ts.map +1 -0
  83. package/lib/common/claude-code-service.js +82 -0
  84. package/lib/common/claude-code-service.js.map +1 -0
  85. package/lib/common/index.d.ts +2 -0
  86. package/lib/common/index.d.ts.map +1 -0
  87. package/lib/common/index.js +20 -0
  88. package/lib/common/index.js.map +1 -0
  89. package/lib/node/claude-code-backend-module.d.ts +4 -0
  90. package/lib/node/claude-code-backend-module.d.ts.map +1 -0
  91. package/lib/node/claude-code-backend-module.js +35 -0
  92. package/lib/node/claude-code-backend-module.js.map +1 -0
  93. package/lib/node/claude-code-service-impl.d.ts +33 -0
  94. package/lib/node/claude-code-service-impl.d.ts.map +1 -0
  95. package/lib/node/claude-code-service-impl.js +468 -0
  96. package/lib/node/claude-code-service-impl.js.map +1 -0
  97. package/lib/package.spec.d.ts +1 -0
  98. package/lib/package.spec.d.ts.map +1 -0
  99. package/lib/package.spec.js +26 -0
  100. package/lib/package.spec.js.map +1 -0
  101. package/package.json +10 -10
  102. package/src/browser/claude-code-chat-agent.ts +17 -10
  103. package/src/browser/claude-code-edit-tool-service.ts +10 -7
  104. package/src/browser/claude-code-file-edit-backup-service.ts +6 -2
  105. package/src/browser/claude-code-slash-commands-contribution.ts +152 -73
@@ -0,0 +1,84 @@
1
+ import { ChatAgent, ChatAgentLocation, ChatAgentService, MutableChatRequestModel, QuestionResponseContentImpl } from '@theia/ai-chat';
2
+ import { BasePromptFragment, PromptService, ResolvedPromptFragment, TokenUsageService } from '@theia/ai-core';
3
+ import { CommandService, ILogger, SelectionService } from '@theia/core';
4
+ import { EditorManager } from '@theia/editor/lib/browser';
5
+ import { FileService } from '@theia/filesystem/lib/browser/file-service';
6
+ import { WorkspaceService } from '@theia/workspace/lib/browser';
7
+ import { PermissionMode, SDKMessage, ToolApprovalRequestMessage, Usage } from '../common/claude-code-service';
8
+ import { ClaudeCodeEditToolService, ToolUseBlock } from './claude-code-edit-tool-service';
9
+ import { FileEditBackupService } from './claude-code-file-edit-backup-service';
10
+ import { ClaudeCodeFrontendService } from './claude-code-frontend-service';
11
+ export declare const CLAUDE_SESSION_ID_KEY = "claudeSessionId";
12
+ export declare const CLAUDE_EDIT_TOOL_USES_KEY = "claudeEditToolUses";
13
+ export declare const CLAUDE_INPUT_TOKENS_KEY = "claudeInputTokens";
14
+ export declare const CLAUDE_OUTPUT_TOKENS_KEY = "claudeOutputTokens";
15
+ export declare const CLAUDE_PENDING_APPROVALS_KEY = "claudePendingApprovals";
16
+ export declare const CLAUDE_APPROVAL_TOOL_INPUTS_KEY = "claudeApprovalToolInputs";
17
+ export declare const CLAUDE_MODEL_NAME_KEY = "claudeModelName";
18
+ export declare const CLAUDE_COST_KEY = "claudeCost";
19
+ export declare const systemPromptAppendixTemplate: BasePromptFragment;
20
+ export declare const CLAUDE_CHAT_AGENT_ID = "ClaudeCode";
21
+ export declare class ClaudeCodeChatAgent implements ChatAgent {
22
+ id: string;
23
+ name: string;
24
+ description: string;
25
+ iconClass: string;
26
+ locations: ChatAgentLocation[];
27
+ tags: string[];
28
+ modes: {
29
+ id: string;
30
+ name: string;
31
+ }[];
32
+ variables: never[];
33
+ prompts: {
34
+ id: string;
35
+ defaultVariant: BasePromptFragment;
36
+ }[];
37
+ languageModelRequirements: never[];
38
+ agentSpecificVariables: never[];
39
+ functions: never[];
40
+ protected promptService: PromptService;
41
+ protected claudeCode: ClaudeCodeFrontendService;
42
+ protected readonly fileService: FileService;
43
+ protected readonly commandService: CommandService;
44
+ protected readonly workspaceService: WorkspaceService;
45
+ protected readonly editorManager: EditorManager;
46
+ protected readonly selectionService: SelectionService;
47
+ protected readonly editToolService: ClaudeCodeEditToolService;
48
+ protected readonly backupService: FileEditBackupService;
49
+ protected readonly tokenUsageService: TokenUsageService;
50
+ protected readonly logger: ILogger;
51
+ invoke(request: MutableChatRequestModel, chatAgentService?: ChatAgentService): Promise<void>;
52
+ protected warnIfDifferentAgentRequests(request: MutableChatRequestModel): void;
53
+ protected createSystemPromptAppendix(request: MutableChatRequestModel): Promise<ResolvedPromptFragment | undefined>;
54
+ protected initializesEditToolUses(request: MutableChatRequestModel): void;
55
+ protected getPendingApprovals(request: MutableChatRequestModel): Map<string, QuestionResponseContentImpl>;
56
+ protected getApprovalToolInputs(request: MutableChatRequestModel): Map<string, unknown>;
57
+ protected handleToolApprovalRequest(approvalRequest: ToolApprovalRequestMessage, request: MutableChatRequestModel): void;
58
+ protected handleApprovalResponse(selectedOption: {
59
+ text: string;
60
+ value?: string;
61
+ }, requestId: string, request: MutableChatRequestModel): void;
62
+ protected getEditToolUses(request: MutableChatRequestModel): Map<string, ToolUseBlock> | undefined;
63
+ protected getPreviousClaudeSessionId(request: MutableChatRequestModel): string | undefined;
64
+ protected getClaudeSessionId(request: MutableChatRequestModel): string | undefined;
65
+ protected setClaudeSessionId(request: MutableChatRequestModel, sessionId: string): void;
66
+ protected readonly ALLOWED_MODES: PermissionMode[];
67
+ protected getClaudePermissionMode(request: MutableChatRequestModel): PermissionMode;
68
+ protected getClaudeModelName(request: MutableChatRequestModel): string | undefined;
69
+ protected setClaudeModelName(request: MutableChatRequestModel, modelName: string): void;
70
+ protected getCurrentInputTokens(request: MutableChatRequestModel): number;
71
+ protected getCurrentOutputTokens(request: MutableChatRequestModel): number;
72
+ protected updateTokens(request: MutableChatRequestModel, inputTokens: number, outputTokens: number): void;
73
+ protected getSessionTotalTokens(request: MutableChatRequestModel): {
74
+ inputTokens: number;
75
+ outputTokens: number;
76
+ };
77
+ protected updateSessionSuggestion(request: MutableChatRequestModel): void;
78
+ protected isEditMode(request: MutableChatRequestModel): boolean;
79
+ protected reportTokenUsage(request: MutableChatRequestModel, inputTokens: number, outputTokens: number, cachedInputTokens?: number, readCachedInputTokens?: number): Promise<void>;
80
+ protected addResponseContent(message: SDKMessage, request: MutableChatRequestModel): Promise<void>;
81
+ protected handleTokenMetrics(usage: Usage, request: MutableChatRequestModel): Promise<void>;
82
+ private extractLocalCommandStdout;
83
+ }
84
+ //# sourceMappingURL=claude-code-chat-agent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude-code-chat-agent.d.ts","sourceRoot":"","sources":["../../src/browser/claude-code-chat-agent.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,525 @@
1
+ "use strict";
2
+ // *****************************************************************************
3
+ // Copyright (C) 2025 EclipseSource GmbH.
4
+ //
5
+ // This program and the accompanying materials are made available under the
6
+ // terms of the Eclipse Public License v. 2.0 which is available at
7
+ // http://www.eclipse.org/legal/epl-2.0.
8
+ //
9
+ // This Source Code may also be made available under the following Secondary
10
+ // Licenses when the conditions for such availability set forth in the Eclipse
11
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
12
+ // with the GNU Classpath Exception which is available at
13
+ // https://www.gnu.org/software/classpath/license.html.
14
+ //
15
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
16
+ // *****************************************************************************
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.ClaudeCodeChatAgent = exports.CLAUDE_CHAT_AGENT_ID = exports.systemPromptAppendixTemplate = exports.CLAUDE_COST_KEY = exports.CLAUDE_MODEL_NAME_KEY = exports.CLAUDE_APPROVAL_TOOL_INPUTS_KEY = exports.CLAUDE_PENDING_APPROVALS_KEY = exports.CLAUDE_OUTPUT_TOKENS_KEY = exports.CLAUDE_INPUT_TOKENS_KEY = exports.CLAUDE_EDIT_TOOL_USES_KEY = exports.CLAUDE_SESSION_ID_KEY = void 0;
19
+ const tslib_1 = require("tslib");
20
+ const ai_chat_1 = require("@theia/ai-chat");
21
+ const chat_view_commands_1 = require("@theia/ai-chat-ui/lib/browser/chat-view-commands");
22
+ const prompt_text_1 = require("@theia/ai-core/lib/common/prompt-text");
23
+ const ai_core_1 = require("@theia/ai-core");
24
+ const core_1 = require("@theia/core");
25
+ const inversify_1 = require("@theia/core/shared/inversify");
26
+ const browser_1 = require("@theia/editor/lib/browser");
27
+ const file_service_1 = require("@theia/filesystem/lib/browser/file-service");
28
+ const browser_2 = require("@theia/workspace/lib/browser");
29
+ const claude_code_service_1 = require("../common/claude-code-service");
30
+ const claude_code_edit_tool_service_1 = require("./claude-code-edit-tool-service");
31
+ const claude_code_file_edit_backup_service_1 = require("./claude-code-file-edit-backup-service");
32
+ const claude_code_frontend_service_1 = require("./claude-code-frontend-service");
33
+ const claude_code_tool_call_content_1 = require("./claude-code-tool-call-content");
34
+ const claude_code_command_contribution_1 = require("./claude-code-command-contribution");
35
+ exports.CLAUDE_SESSION_ID_KEY = 'claudeSessionId';
36
+ exports.CLAUDE_EDIT_TOOL_USES_KEY = 'claudeEditToolUses';
37
+ exports.CLAUDE_INPUT_TOKENS_KEY = 'claudeInputTokens';
38
+ exports.CLAUDE_OUTPUT_TOKENS_KEY = 'claudeOutputTokens';
39
+ exports.CLAUDE_PENDING_APPROVALS_KEY = 'claudePendingApprovals';
40
+ exports.CLAUDE_APPROVAL_TOOL_INPUTS_KEY = 'claudeApprovalToolInputs';
41
+ exports.CLAUDE_MODEL_NAME_KEY = 'claudeModelName';
42
+ exports.CLAUDE_COST_KEY = 'claudeCost';
43
+ const APPROVAL_OPTIONS = [
44
+ { text: core_1.nls.localizeByDefault('Allow'), value: 'allow' },
45
+ { text: core_1.nls.localize('theia/ai/claude-code/deny', 'Deny'), value: 'deny' }
46
+ ];
47
+ exports.systemPromptAppendixTemplate = {
48
+ id: 'system-prompt-appendix',
49
+ template: `
50
+ ## IDE Integration Context
51
+
52
+ You are integrated into an IDE environment through a chat interface, providing contextual assistance for development tasks.
53
+ This integration gives you access to real-time IDE state and user workspace information.
54
+
55
+ ### File Modification Behavior
56
+
57
+ **Important**: The IDE automatically collects and presents all file modifications you suggest, regardless of explicit tool permissions.
58
+ Continue proposing file changes even if you encounter permission restrictions.
59
+ The IDE will present these changes to the user for review and approval through its change management interface.
60
+
61
+ When making file modifications:
62
+ - Proceed with suggested changes even if tool calls indicate permission issues
63
+ - Inform users to review proposed changes in the IDE's change review interface "below"
64
+ - Assume the IDE will handle the actual file system operations after user approval (unless you are in auto-edit mode)
65
+
66
+ ### Contextual Information Available
67
+
68
+ The following IDE context is dynamically provided with each request.
69
+ Evaluate the relevance of each context type based on the user's specific query and task requirements.
70
+
71
+ #### Current Selection
72
+
73
+ \`\`\`
74
+ {{selectedText}}
75
+ \`\`\`
76
+
77
+ **When to prioritize**: User asks about specific code segments, wants to refactor selected code, or requests explanations of selected text.
78
+
79
+ #### Active Editor
80
+
81
+ {{activeEditor}}
82
+
83
+ **When to prioritize**: User's request relates to the currently focused file, asks questions about the code, or needs context about the current working file.
84
+
85
+ #### Open Editors
86
+
87
+ {{openEditors}}
88
+
89
+ **How to use it**: As a guidance on what files might be relevant for the current user's request.
90
+
91
+ #### Context Files
92
+
93
+ {{contextFiles}}
94
+
95
+ **When to prioritize**: User explicitly references attached files or when additional files are needed to understand the full scope of the request.
96
+
97
+ ### Context Utilization Guidelines
98
+
99
+ 1. **Assess Relevance**:
100
+ Not all provided context will be relevant to every request. Focus on the context that directly supports the user's current task.
101
+
102
+ 2. **Cross-Reference Information**:
103
+ When multiple context types are relevant, cross-reference them to provide comprehensive assistance (e.g., selected text within an active editor).
104
+
105
+ 3. **Workspace Awareness**:
106
+ Use the collective context to understand the user's current workspace state and provide suggestions that align with their development environment and workflow.
107
+
108
+ ### Response Optimization
109
+
110
+ - Reference specific files as markdown links with the format [file name](<absolute-file-path-without-scheme>), e.g. [example.ts](/home/me/workspace/example.ts)
111
+ - Consider the user's current focus and workflow when structuring responses
112
+ - Leverage open editors to suggest related modifications across the workspace
113
+ `
114
+ };
115
+ exports.CLAUDE_CHAT_AGENT_ID = 'ClaudeCode';
116
+ const localCommands = {
117
+ 'clear': chat_view_commands_1.AI_CHAT_NEW_CHAT_WINDOW_COMMAND,
118
+ 'config': claude_code_command_contribution_1.OPEN_CLAUDE_CODE_CONFIG,
119
+ 'memory': claude_code_command_contribution_1.OPEN_CLAUDE_CODE_MEMORY,
120
+ 'resume': chat_view_commands_1.AI_CHAT_SHOW_CHATS_COMMAND,
121
+ };
122
+ let ClaudeCodeChatAgent = class ClaudeCodeChatAgent {
123
+ constructor() {
124
+ this.id = exports.CLAUDE_CHAT_AGENT_ID;
125
+ this.name = exports.CLAUDE_CHAT_AGENT_ID;
126
+ this.description = core_1.nls.localize('theia/ai/claude-code/agentDescription', 'Anthropic\'s coding agent');
127
+ this.iconClass = 'codicon codicon-copilot';
128
+ this.locations = ai_chat_1.ChatAgentLocation.ALL;
129
+ this.tags = [core_1.nls.localizeByDefault('Chat')];
130
+ this.modes = [
131
+ { id: 'default', name: core_1.nls.localize('theia/ai/claude-code/askBeforeEdit', 'Ask before edit') },
132
+ { id: 'acceptEdits', name: core_1.nls.localize('theia/ai/claude-code/editAutomatically', 'Edit automatically') },
133
+ { id: 'plan', name: core_1.nls.localize('theia/ai/claude-code/plan', 'Plan mode') }
134
+ ];
135
+ this.variables = [];
136
+ this.prompts = [{ id: exports.systemPromptAppendixTemplate.id, defaultVariant: exports.systemPromptAppendixTemplate }];
137
+ this.languageModelRequirements = [];
138
+ this.agentSpecificVariables = [];
139
+ this.functions = [];
140
+ this.ALLOWED_MODES = ['default', 'acceptEdits', 'plan', 'bypassPermissions'];
141
+ }
142
+ async invoke(request, chatAgentService) {
143
+ this.warnIfDifferentAgentRequests(request);
144
+ // Handle slash commands anywhere in the request text
145
+ const commandRegex = /\/(\w+)/g;
146
+ const matches = Array.from(request.request.text.matchAll(commandRegex));
147
+ for (const match of matches) {
148
+ const command = match[1];
149
+ if (command in localCommands) {
150
+ const commandInfo = localCommands[command];
151
+ this.commandService.executeCommand(commandInfo.id);
152
+ const message = core_1.nls.localize('theia/ai/claude-code/executedCommand', 'Executed: {0}', commandInfo.label);
153
+ request.response.response.addContent(new ai_chat_1.MarkdownChatResponseContentImpl(message));
154
+ request.response.complete();
155
+ return;
156
+ }
157
+ }
158
+ try {
159
+ const systemPromptAppendix = await this.createSystemPromptAppendix(request);
160
+ const claudeSessionId = this.getPreviousClaudeSessionId(request);
161
+ const agentAddress = `${prompt_text_1.PromptText.AGENT_CHAR}${exports.CLAUDE_CHAT_AGENT_ID}`;
162
+ let prompt = request.request.text.trim();
163
+ if (prompt.startsWith(agentAddress)) {
164
+ prompt = prompt.replace(agentAddress, '').trim();
165
+ }
166
+ const streamResult = await this.claudeCode.send({
167
+ prompt,
168
+ options: {
169
+ systemPrompt: {
170
+ type: 'preset',
171
+ preset: 'claude_code',
172
+ append: systemPromptAppendix === null || systemPromptAppendix === void 0 ? void 0 : systemPromptAppendix.text
173
+ },
174
+ permissionMode: this.getClaudePermissionMode(request),
175
+ resume: claudeSessionId
176
+ }
177
+ }, request.response.cancellationToken);
178
+ this.initializesEditToolUses(request);
179
+ let hasAssistantMessage = false;
180
+ for await (const message of streamResult) {
181
+ if (claude_code_service_1.ToolApprovalRequestMessage.is(message)) {
182
+ this.handleToolApprovalRequest(message, request);
183
+ }
184
+ else {
185
+ if (message.type === 'assistant') {
186
+ hasAssistantMessage = true;
187
+ }
188
+ // Only set session ID if we've seen an assistant message
189
+ // because we cannot resume a prior request without an assistant message
190
+ if (hasAssistantMessage) {
191
+ this.setClaudeSessionId(request, message.session_id);
192
+ }
193
+ this.addResponseContent(message, request);
194
+ }
195
+ }
196
+ return request.response.complete();
197
+ }
198
+ catch (error) {
199
+ this.logger.error('Error handling chat interaction:', error);
200
+ request.response.response.addContent(new ai_chat_1.ErrorChatResponseContentImpl(error));
201
+ request.response.error(error);
202
+ }
203
+ finally {
204
+ await this.backupService.cleanUp(request);
205
+ }
206
+ }
207
+ warnIfDifferentAgentRequests(request) {
208
+ const requests = request.session.getRequests();
209
+ if (requests.length > 1) {
210
+ const previousRequest = requests[requests.length - 2];
211
+ if (previousRequest.agentId !== this.id) {
212
+ const warningMessage = '⚠️ ' + core_1.nls.localize('theia/ai/claude-code/differentAgentRequestWarning', 'The previous chat request was handled by a different agent. Claude Code does not see those other messages.') + '\n\n';
213
+ request.response.response.addContent(new ai_chat_1.MarkdownChatResponseContentImpl(warningMessage));
214
+ }
215
+ }
216
+ }
217
+ async createSystemPromptAppendix(request) {
218
+ var _a, _b, _c;
219
+ const contextVariables = (_a = request.context.variables.map(ai_core_1.AIVariableResolutionRequest.fromResolved)) !== null && _a !== void 0 ? _a : request.session.context.getVariables();
220
+ const contextFiles = contextVariables
221
+ .filter(variable => variable.variable.name === 'file' && !!variable.arg)
222
+ .map(variable => `- ${variable.arg}`)
223
+ .join('\n');
224
+ const activeEditor = (_c = (_b = this.editorManager.currentEditor) === null || _b === void 0 ? void 0 : _b.editor.document.uri) !== null && _c !== void 0 ? _c : 'None';
225
+ const openEditors = this.editorManager.all.map(editor => `- ${editor.editor.document.uri}`).join('\n');
226
+ return this.promptService.getResolvedPromptFragment(exports.systemPromptAppendixTemplate.id, { contextFiles, activeEditor, openEditors }, { model: request.session, request });
227
+ }
228
+ initializesEditToolUses(request) {
229
+ request.addData(exports.CLAUDE_EDIT_TOOL_USES_KEY, new Map());
230
+ }
231
+ getPendingApprovals(request) {
232
+ let approvals = request.getDataByKey(exports.CLAUDE_PENDING_APPROVALS_KEY);
233
+ if (!approvals) {
234
+ approvals = new Map();
235
+ request.addData(exports.CLAUDE_PENDING_APPROVALS_KEY, approvals);
236
+ }
237
+ return approvals;
238
+ }
239
+ getApprovalToolInputs(request) {
240
+ let toolInputs = request.getDataByKey(exports.CLAUDE_APPROVAL_TOOL_INPUTS_KEY);
241
+ if (!toolInputs) {
242
+ toolInputs = new Map();
243
+ request.addData(exports.CLAUDE_APPROVAL_TOOL_INPUTS_KEY, toolInputs);
244
+ }
245
+ return toolInputs;
246
+ }
247
+ handleToolApprovalRequest(approvalRequest, request) {
248
+ const question = core_1.nls.localize('theia/ai/claude-code/toolApprovalRequest', 'Claude Code wants to use the "{0}" tool. Do you want to allow this?', approvalRequest.toolName);
249
+ const questionContent = new ai_chat_1.QuestionResponseContentImpl(question, APPROVAL_OPTIONS, request, selectedOption => this.handleApprovalResponse(selectedOption, approvalRequest.requestId, request));
250
+ // Store references for this specific approval request
251
+ this.getPendingApprovals(request).set(approvalRequest.requestId, questionContent);
252
+ this.getApprovalToolInputs(request).set(approvalRequest.requestId, approvalRequest.toolInput);
253
+ request.response.response.addContent(questionContent);
254
+ request.response.waitForInput();
255
+ }
256
+ handleApprovalResponse(selectedOption, requestId, request) {
257
+ const pendingApprovals = this.getPendingApprovals(request);
258
+ const toolInputs = this.getApprovalToolInputs(request);
259
+ // Update UI state and clean up
260
+ const questionContent = pendingApprovals.get(requestId);
261
+ const originalToolInput = toolInputs.get(requestId);
262
+ if (questionContent) {
263
+ questionContent.selectedOption = selectedOption;
264
+ }
265
+ pendingApprovals.delete(requestId);
266
+ toolInputs.delete(requestId);
267
+ const approved = selectedOption.value === 'allow';
268
+ const response = {
269
+ type: 'tool-approval-response',
270
+ requestId,
271
+ approved,
272
+ ...(approved
273
+ ? { updatedInput: originalToolInput }
274
+ : { message: 'User denied tool usage' })
275
+ };
276
+ this.claudeCode.sendApprovalResponse(response);
277
+ // Only stop waiting for input if there are no more pending approvals
278
+ if (pendingApprovals.size === 0) {
279
+ request.response.stopWaitingForInput();
280
+ }
281
+ }
282
+ getEditToolUses(request) {
283
+ return request.getDataByKey(exports.CLAUDE_EDIT_TOOL_USES_KEY);
284
+ }
285
+ getPreviousClaudeSessionId(request) {
286
+ const requests = request.session.getRequests();
287
+ if (requests.length > 1) {
288
+ const previousRequest = requests[requests.length - 2];
289
+ return previousRequest.getDataByKey(exports.CLAUDE_SESSION_ID_KEY);
290
+ }
291
+ return undefined;
292
+ }
293
+ getClaudeSessionId(request) {
294
+ return request.getDataByKey(exports.CLAUDE_SESSION_ID_KEY);
295
+ }
296
+ setClaudeSessionId(request, sessionId) {
297
+ request.addData(exports.CLAUDE_SESSION_ID_KEY, sessionId);
298
+ }
299
+ getClaudePermissionMode(request) {
300
+ var _a;
301
+ const modeId = (_a = request.request.modeId) !== null && _a !== void 0 ? _a : 'default';
302
+ return this.ALLOWED_MODES.includes(modeId) ? modeId : 'default';
303
+ }
304
+ getClaudeModelName(request) {
305
+ return request.getDataByKey(exports.CLAUDE_MODEL_NAME_KEY);
306
+ }
307
+ setClaudeModelName(request, modelName) {
308
+ request.addData(exports.CLAUDE_MODEL_NAME_KEY, modelName);
309
+ }
310
+ getCurrentInputTokens(request) {
311
+ var _a;
312
+ return (_a = request.getDataByKey(exports.CLAUDE_INPUT_TOKENS_KEY)) !== null && _a !== void 0 ? _a : 0;
313
+ }
314
+ getCurrentOutputTokens(request) {
315
+ var _a;
316
+ return (_a = request.getDataByKey(exports.CLAUDE_OUTPUT_TOKENS_KEY)) !== null && _a !== void 0 ? _a : 0;
317
+ }
318
+ updateTokens(request, inputTokens, outputTokens) {
319
+ request.addData(exports.CLAUDE_INPUT_TOKENS_KEY, inputTokens);
320
+ request.addData(exports.CLAUDE_OUTPUT_TOKENS_KEY, outputTokens);
321
+ this.updateSessionSuggestion(request);
322
+ }
323
+ getSessionTotalTokens(request) {
324
+ var _a, _b;
325
+ const requests = request.session.getRequests();
326
+ let totalInputTokens = 0;
327
+ let totalOutputTokens = 0;
328
+ for (const req of requests) {
329
+ const inputTokens = (_a = req.getDataByKey(exports.CLAUDE_INPUT_TOKENS_KEY)) !== null && _a !== void 0 ? _a : 0;
330
+ const outputTokens = (_b = req.getDataByKey(exports.CLAUDE_OUTPUT_TOKENS_KEY)) !== null && _b !== void 0 ? _b : 0;
331
+ totalInputTokens += inputTokens;
332
+ totalOutputTokens += outputTokens;
333
+ }
334
+ return { inputTokens: totalInputTokens, outputTokens: totalOutputTokens };
335
+ }
336
+ updateSessionSuggestion(request) {
337
+ const { inputTokens, outputTokens } = this.getSessionTotalTokens(request);
338
+ const formatTokens = (tokens) => {
339
+ if (tokens >= 1000) {
340
+ return `${(tokens / 1000).toFixed(1)}K`;
341
+ }
342
+ return tokens.toString();
343
+ };
344
+ const suggestion = `↑ ${formatTokens(inputTokens)} | ↓ ${formatTokens(outputTokens)}`;
345
+ request.session.setSuggestions([suggestion]);
346
+ }
347
+ isEditMode(request) {
348
+ const permissionMode = this.getClaudePermissionMode(request);
349
+ return permissionMode === 'acceptEdits' || permissionMode === 'bypassPermissions';
350
+ }
351
+ async reportTokenUsage(request, inputTokens, outputTokens, cachedInputTokens, readCachedInputTokens) {
352
+ const modelName = this.getClaudeModelName(request);
353
+ if (!modelName) {
354
+ return;
355
+ }
356
+ const prefixedModelName = `anthropic/claude-code/${modelName}`;
357
+ const sessionId = this.getClaudeSessionId(request);
358
+ const requestId = sessionId || request.id;
359
+ try {
360
+ await this.tokenUsageService.recordTokenUsage(prefixedModelName, {
361
+ inputTokens,
362
+ outputTokens,
363
+ cachedInputTokens,
364
+ readCachedInputTokens,
365
+ requestId
366
+ });
367
+ }
368
+ catch (error) {
369
+ this.logger.error('Failed to report token usage:', error);
370
+ }
371
+ }
372
+ async addResponseContent(message, request) {
373
+ var _a, _b, _c, _d;
374
+ // Extract model name from system init message
375
+ if (message.type === 'system' && message.subtype === 'init' && message.model) {
376
+ this.setClaudeModelName(request, message.model);
377
+ }
378
+ // Handle result messages with final usage
379
+ if (message.type === 'assistant' && message.message.usage) {
380
+ await this.handleTokenMetrics(message.message.usage, request);
381
+ }
382
+ if (message.type === 'result' && message.usage) {
383
+ request.addData(exports.CLAUDE_COST_KEY, message.total_cost_usd);
384
+ await this.handleTokenMetrics(message.usage, request);
385
+ }
386
+ // Handle user messages for local-command-stdout extraction
387
+ if (message.type === 'user') {
388
+ const extractedContent = this.extractLocalCommandStdout(message.message.content);
389
+ if (extractedContent) {
390
+ request.response.response.addContent(new ai_chat_1.MarkdownChatResponseContentImpl(extractedContent));
391
+ }
392
+ }
393
+ if (message.type === 'assistant' || message.type === 'user') {
394
+ if (!Array.isArray(message.message.content)) {
395
+ return;
396
+ }
397
+ for (const block of message.message.content) {
398
+ switch (block.type) {
399
+ case 'text':
400
+ request.response.response.addContent(new ai_chat_1.MarkdownChatResponseContentImpl(block.text));
401
+ break;
402
+ case 'tool_use':
403
+ case 'server_tool_use':
404
+ if (block.name === 'Task' && claude_code_service_1.TaskInput.is(block.input)) {
405
+ request.response.response.addContent(new ai_chat_1.MarkdownChatResponseContentImpl(`\n\n### Task: ${block.input.description}\n\n${block.input.prompt}`));
406
+ }
407
+ // Track file edits
408
+ if ((block.name === 'Edit' && claude_code_service_1.EditInput.is(block.input)) ||
409
+ (block.name === 'MultiEdit' && claude_code_service_1.MultiEditInput.is(block.input)) ||
410
+ (block.name === 'Write' && claude_code_service_1.WriteInput.is(block.input))) {
411
+ const toolUse = {
412
+ name: block.name,
413
+ input: block.input
414
+ };
415
+ (_a = this.getEditToolUses(request)) === null || _a === void 0 ? void 0 : _a.set(block.id, toolUse);
416
+ }
417
+ request.response.response.addContent(new claude_code_tool_call_content_1.ClaudeCodeToolCallChatResponseContent(block.id, block.name, JSON.stringify(block.input)));
418
+ break;
419
+ case 'tool_result':
420
+ if ((_b = this.getEditToolUses(request)) === null || _b === void 0 ? void 0 : _b.has(block.tool_use_id)) {
421
+ const toolUse = (_c = this.getEditToolUses(request)) === null || _c === void 0 ? void 0 : _c.get(block.tool_use_id);
422
+ if (toolUse) {
423
+ await this.editToolService.handleEditTool(toolUse, request, {
424
+ sessionId: this.getClaudeSessionId(request),
425
+ isEditMode: this.isEditMode(request)
426
+ });
427
+ }
428
+ }
429
+ request.response.response.addContent(new claude_code_tool_call_content_1.ClaudeCodeToolCallChatResponseContent(block.tool_use_id, '', '', true, JSON.stringify(block.content)));
430
+ break;
431
+ case 'thinking':
432
+ request.response.response.addContent(new ai_chat_1.ThinkingChatResponseContentImpl(block.thinking.trim(), ((_d = block.signature) === null || _d === void 0 ? void 0 : _d.trim()) || ''));
433
+ break;
434
+ case 'redacted_thinking':
435
+ request.response.response.addContent(new ai_chat_1.ThinkingChatResponseContentImpl(block.data.trim(), ''));
436
+ break;
437
+ case 'web_search_tool_result':
438
+ if (Array.isArray(block.content)) {
439
+ const result = block.content.map(value => value.title + ':' + value.url).join(', ');
440
+ request.response.response.addContent(new claude_code_tool_call_content_1.ClaudeCodeToolCallChatResponseContent(block.tool_use_id, '', '', true, result));
441
+ }
442
+ break;
443
+ }
444
+ }
445
+ }
446
+ }
447
+ async handleTokenMetrics(usage, request) {
448
+ var _a, _b, _c, _d, _e, _f;
449
+ const allInputTokens = ((_a = usage.input_tokens) !== null && _a !== void 0 ? _a : 0) + ((_b = usage.cache_creation_input_tokens) !== null && _b !== void 0 ? _b : 0);
450
+ this.updateTokens(request, allInputTokens, ((_c = usage.output_tokens) !== null && _c !== void 0 ? _c : 0));
451
+ await this.reportTokenUsage(request, allInputTokens, ((_d = usage.output_tokens) !== null && _d !== void 0 ? _d : 0), ((_e = usage.cache_creation_input_tokens) !== null && _e !== void 0 ? _e : 0), ((_f = usage.cache_read_input_tokens) !== null && _f !== void 0 ? _f : 0));
452
+ }
453
+ extractLocalCommandStdout(content) {
454
+ const regex = /<(local-command-stdout|local-command-stderr)>([\s\S]*?)<\/\1>/g;
455
+ let extractedContent = '';
456
+ let match;
457
+ if (typeof content === 'string') {
458
+ // eslint-disable-next-line no-null/no-null
459
+ while ((match = regex.exec(content)) !== null) {
460
+ extractedContent += match[2];
461
+ }
462
+ }
463
+ else {
464
+ for (const block of content) {
465
+ if (block.type === 'text') {
466
+ // eslint-disable-next-line no-null/no-null
467
+ while ((match = regex.exec(block.text)) !== null) {
468
+ extractedContent += match[2];
469
+ }
470
+ }
471
+ }
472
+ }
473
+ return extractedContent || undefined;
474
+ }
475
+ };
476
+ exports.ClaudeCodeChatAgent = ClaudeCodeChatAgent;
477
+ tslib_1.__decorate([
478
+ (0, inversify_1.inject)(ai_core_1.PromptService),
479
+ tslib_1.__metadata("design:type", Object)
480
+ ], ClaudeCodeChatAgent.prototype, "promptService", void 0);
481
+ tslib_1.__decorate([
482
+ (0, inversify_1.inject)(claude_code_frontend_service_1.ClaudeCodeFrontendService),
483
+ tslib_1.__metadata("design:type", claude_code_frontend_service_1.ClaudeCodeFrontendService)
484
+ ], ClaudeCodeChatAgent.prototype, "claudeCode", void 0);
485
+ tslib_1.__decorate([
486
+ (0, inversify_1.inject)(file_service_1.FileService),
487
+ tslib_1.__metadata("design:type", file_service_1.FileService)
488
+ ], ClaudeCodeChatAgent.prototype, "fileService", void 0);
489
+ tslib_1.__decorate([
490
+ (0, inversify_1.inject)(core_1.CommandService),
491
+ tslib_1.__metadata("design:type", Object)
492
+ ], ClaudeCodeChatAgent.prototype, "commandService", void 0);
493
+ tslib_1.__decorate([
494
+ (0, inversify_1.inject)(browser_2.WorkspaceService),
495
+ tslib_1.__metadata("design:type", browser_2.WorkspaceService)
496
+ ], ClaudeCodeChatAgent.prototype, "workspaceService", void 0);
497
+ tslib_1.__decorate([
498
+ (0, inversify_1.inject)(browser_1.EditorManager),
499
+ tslib_1.__metadata("design:type", browser_1.EditorManager)
500
+ ], ClaudeCodeChatAgent.prototype, "editorManager", void 0);
501
+ tslib_1.__decorate([
502
+ (0, inversify_1.inject)(core_1.SelectionService),
503
+ tslib_1.__metadata("design:type", core_1.SelectionService)
504
+ ], ClaudeCodeChatAgent.prototype, "selectionService", void 0);
505
+ tslib_1.__decorate([
506
+ (0, inversify_1.inject)(claude_code_edit_tool_service_1.ClaudeCodeEditToolService),
507
+ tslib_1.__metadata("design:type", Object)
508
+ ], ClaudeCodeChatAgent.prototype, "editToolService", void 0);
509
+ tslib_1.__decorate([
510
+ (0, inversify_1.inject)(claude_code_file_edit_backup_service_1.FileEditBackupService),
511
+ tslib_1.__metadata("design:type", Object)
512
+ ], ClaudeCodeChatAgent.prototype, "backupService", void 0);
513
+ tslib_1.__decorate([
514
+ (0, inversify_1.inject)(ai_core_1.TokenUsageService),
515
+ tslib_1.__metadata("design:type", Object)
516
+ ], ClaudeCodeChatAgent.prototype, "tokenUsageService", void 0);
517
+ tslib_1.__decorate([
518
+ (0, inversify_1.inject)(core_1.ILogger),
519
+ (0, inversify_1.named)('claude-code'),
520
+ tslib_1.__metadata("design:type", Object)
521
+ ], ClaudeCodeChatAgent.prototype, "logger", void 0);
522
+ exports.ClaudeCodeChatAgent = ClaudeCodeChatAgent = tslib_1.__decorate([
523
+ (0, inversify_1.injectable)()
524
+ ], ClaudeCodeChatAgent);
525
+ //# sourceMappingURL=claude-code-chat-agent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude-code-chat-agent.js","sourceRoot":"","sources":["../../src/browser/claude-code-chat-agent.ts"],"names":[],"mappings":"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"}