@theia/ai-claude-code 1.67.0-next.59 → 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.
- package/lib/browser/claude-code-chat-agent.d.ts +7 -3
- package/lib/browser/claude-code-chat-agent.d.ts.map +1 -1
- package/lib/browser/claude-code-chat-agent.js +16 -8
- package/lib/browser/claude-code-chat-agent.js.map +1 -1
- package/lib/browser/claude-code-edit-tool-service.d.ts +2 -0
- package/lib/browser/claude-code-edit-tool-service.d.ts.map +1 -1
- package/lib/browser/claude-code-edit-tool-service.js +10 -5
- package/lib/browser/claude-code-edit-tool-service.js.map +1 -1
- package/lib/browser/claude-code-file-edit-backup-service.d.ts +2 -0
- package/lib/browser/claude-code-file-edit-backup-service.d.ts.map +1 -1
- package/lib/browser/claude-code-file-edit-backup-service.js +7 -1
- package/lib/browser/claude-code-file-edit-backup-service.js.map +1 -1
- package/lib/browser/claude-code-slash-commands-contribution.d.ts +24 -7
- package/lib/browser/claude-code-slash-commands-contribution.d.ts.map +1 -1
- package/lib/browser/claude-code-slash-commands-contribution.js +121 -57
- package/lib/browser/claude-code-slash-commands-contribution.js.map +1 -1
- package/package.json +10 -10
- package/src/browser/claude-code-chat-agent.ts +17 -10
- package/src/browser/claude-code-edit-tool-service.ts +10 -7
- package/src/browser/claude-code-file-edit-backup-service.ts +6 -2
- package/src/browser/claude-code-slash-commands-contribution.ts +152 -73
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ChatAgent, ChatAgentLocation, ChatAgentService, MutableChatRequestModel, QuestionResponseContentImpl } from '@theia/ai-chat';
|
|
2
2
|
import { BasePromptFragment, PromptService, ResolvedPromptFragment, TokenUsageService } from '@theia/ai-core';
|
|
3
|
-
import { CommandService, SelectionService } from '@theia/core';
|
|
3
|
+
import { CommandService, ILogger, SelectionService } from '@theia/core';
|
|
4
4
|
import { EditorManager } from '@theia/editor/lib/browser';
|
|
5
5
|
import { FileService } from '@theia/filesystem/lib/browser/file-service';
|
|
6
6
|
import { WorkspaceService } from '@theia/workspace/lib/browser';
|
|
@@ -9,7 +9,6 @@ import { ClaudeCodeEditToolService, ToolUseBlock } from './claude-code-edit-tool
|
|
|
9
9
|
import { FileEditBackupService } from './claude-code-file-edit-backup-service';
|
|
10
10
|
import { ClaudeCodeFrontendService } from './claude-code-frontend-service';
|
|
11
11
|
export declare const CLAUDE_SESSION_ID_KEY = "claudeSessionId";
|
|
12
|
-
export declare const CLAUDE_PERMISSION_MODE_KEY = "claudePermissionMode";
|
|
13
12
|
export declare const CLAUDE_EDIT_TOOL_USES_KEY = "claudeEditToolUses";
|
|
14
13
|
export declare const CLAUDE_INPUT_TOKENS_KEY = "claudeInputTokens";
|
|
15
14
|
export declare const CLAUDE_OUTPUT_TOKENS_KEY = "claudeOutputTokens";
|
|
@@ -26,6 +25,10 @@ export declare class ClaudeCodeChatAgent implements ChatAgent {
|
|
|
26
25
|
iconClass: string;
|
|
27
26
|
locations: ChatAgentLocation[];
|
|
28
27
|
tags: string[];
|
|
28
|
+
modes: {
|
|
29
|
+
id: string;
|
|
30
|
+
name: string;
|
|
31
|
+
}[];
|
|
29
32
|
variables: never[];
|
|
30
33
|
prompts: {
|
|
31
34
|
id: string;
|
|
@@ -44,6 +47,7 @@ export declare class ClaudeCodeChatAgent implements ChatAgent {
|
|
|
44
47
|
protected readonly editToolService: ClaudeCodeEditToolService;
|
|
45
48
|
protected readonly backupService: FileEditBackupService;
|
|
46
49
|
protected readonly tokenUsageService: TokenUsageService;
|
|
50
|
+
protected readonly logger: ILogger;
|
|
47
51
|
invoke(request: MutableChatRequestModel, chatAgentService?: ChatAgentService): Promise<void>;
|
|
48
52
|
protected warnIfDifferentAgentRequests(request: MutableChatRequestModel): void;
|
|
49
53
|
protected createSystemPromptAppendix(request: MutableChatRequestModel): Promise<ResolvedPromptFragment | undefined>;
|
|
@@ -59,8 +63,8 @@ export declare class ClaudeCodeChatAgent implements ChatAgent {
|
|
|
59
63
|
protected getPreviousClaudeSessionId(request: MutableChatRequestModel): string | undefined;
|
|
60
64
|
protected getClaudeSessionId(request: MutableChatRequestModel): string | undefined;
|
|
61
65
|
protected setClaudeSessionId(request: MutableChatRequestModel, sessionId: string): void;
|
|
66
|
+
protected readonly ALLOWED_MODES: PermissionMode[];
|
|
62
67
|
protected getClaudePermissionMode(request: MutableChatRequestModel): PermissionMode;
|
|
63
|
-
protected setClaudePermissionMode(request: MutableChatRequestModel, permissionMode: PermissionMode): void;
|
|
64
68
|
protected getClaudeModelName(request: MutableChatRequestModel): string | undefined;
|
|
65
69
|
protected setClaudeModelName(request: MutableChatRequestModel, modelName: string): void;
|
|
66
70
|
protected getCurrentInputTokens(request: MutableChatRequestModel): number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-code-chat-agent.d.ts","sourceRoot":"","sources":["../../src/browser/claude-code-chat-agent.ts"],"names":[],"mappings":"AAgBA,OAAO,EACH,SAAS,EACT,iBAAiB,EACjB,gBAAgB,EAGhB,uBAAuB,EACvB,2BAA2B,EAE9B,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAA+B,kBAAkB,EAAE,aAAa,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAC3I,OAAO,EAAE,cAAc,EAAO,gBAAgB,EAAE,MAAM,aAAa,CAAC;
|
|
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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"}
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
16
16
|
// *****************************************************************************
|
|
17
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.
|
|
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
19
|
const tslib_1 = require("tslib");
|
|
20
20
|
const ai_chat_1 = require("@theia/ai-chat");
|
|
21
21
|
const chat_view_commands_1 = require("@theia/ai-chat-ui/lib/browser/chat-view-commands");
|
|
@@ -33,7 +33,6 @@ const claude_code_frontend_service_1 = require("./claude-code-frontend-service")
|
|
|
33
33
|
const claude_code_tool_call_content_1 = require("./claude-code-tool-call-content");
|
|
34
34
|
const claude_code_command_contribution_1 = require("./claude-code-command-contribution");
|
|
35
35
|
exports.CLAUDE_SESSION_ID_KEY = 'claudeSessionId';
|
|
36
|
-
exports.CLAUDE_PERMISSION_MODE_KEY = 'claudePermissionMode';
|
|
37
36
|
exports.CLAUDE_EDIT_TOOL_USES_KEY = 'claudeEditToolUses';
|
|
38
37
|
exports.CLAUDE_INPUT_TOKENS_KEY = 'claudeInputTokens';
|
|
39
38
|
exports.CLAUDE_OUTPUT_TOKENS_KEY = 'claudeOutputTokens';
|
|
@@ -128,11 +127,17 @@ let ClaudeCodeChatAgent = class ClaudeCodeChatAgent {
|
|
|
128
127
|
this.iconClass = 'codicon codicon-copilot';
|
|
129
128
|
this.locations = ai_chat_1.ChatAgentLocation.ALL;
|
|
130
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
|
+
];
|
|
131
135
|
this.variables = [];
|
|
132
136
|
this.prompts = [{ id: exports.systemPromptAppendixTemplate.id, defaultVariant: exports.systemPromptAppendixTemplate }];
|
|
133
137
|
this.languageModelRequirements = [];
|
|
134
138
|
this.agentSpecificVariables = [];
|
|
135
139
|
this.functions = [];
|
|
140
|
+
this.ALLOWED_MODES = ['default', 'acceptEdits', 'plan', 'bypassPermissions'];
|
|
136
141
|
}
|
|
137
142
|
async invoke(request, chatAgentService) {
|
|
138
143
|
this.warnIfDifferentAgentRequests(request);
|
|
@@ -191,7 +196,7 @@ let ClaudeCodeChatAgent = class ClaudeCodeChatAgent {
|
|
|
191
196
|
return request.response.complete();
|
|
192
197
|
}
|
|
193
198
|
catch (error) {
|
|
194
|
-
|
|
199
|
+
this.logger.error('Error handling chat interaction:', error);
|
|
195
200
|
request.response.response.addContent(new ai_chat_1.ErrorChatResponseContentImpl(error));
|
|
196
201
|
request.response.error(error);
|
|
197
202
|
}
|
|
@@ -293,10 +298,8 @@ let ClaudeCodeChatAgent = class ClaudeCodeChatAgent {
|
|
|
293
298
|
}
|
|
294
299
|
getClaudePermissionMode(request) {
|
|
295
300
|
var _a;
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
setClaudePermissionMode(request, permissionMode) {
|
|
299
|
-
request.addData(exports.CLAUDE_PERMISSION_MODE_KEY, permissionMode);
|
|
301
|
+
const modeId = (_a = request.request.modeId) !== null && _a !== void 0 ? _a : 'default';
|
|
302
|
+
return this.ALLOWED_MODES.includes(modeId) ? modeId : 'default';
|
|
300
303
|
}
|
|
301
304
|
getClaudeModelName(request) {
|
|
302
305
|
return request.getDataByKey(exports.CLAUDE_MODEL_NAME_KEY);
|
|
@@ -363,7 +366,7 @@ let ClaudeCodeChatAgent = class ClaudeCodeChatAgent {
|
|
|
363
366
|
});
|
|
364
367
|
}
|
|
365
368
|
catch (error) {
|
|
366
|
-
|
|
369
|
+
this.logger.error('Failed to report token usage:', error);
|
|
367
370
|
}
|
|
368
371
|
}
|
|
369
372
|
async addResponseContent(message, request) {
|
|
@@ -511,6 +514,11 @@ tslib_1.__decorate([
|
|
|
511
514
|
(0, inversify_1.inject)(ai_core_1.TokenUsageService),
|
|
512
515
|
tslib_1.__metadata("design:type", Object)
|
|
513
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);
|
|
514
522
|
exports.ClaudeCodeChatAgent = ClaudeCodeChatAgent = tslib_1.__decorate([
|
|
515
523
|
(0, inversify_1.injectable)()
|
|
516
524
|
], ClaudeCodeChatAgent);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-code-chat-agent.js","sourceRoot":"","sources":["../../src/browser/claude-code-chat-agent.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;;AAEhF,4CASwB;AACxB,yFAA+H;AAC/H,uEAAmE;AACnE,4CAA2I;AAC3I,sCAAoE;AACpE,4DAAkE;AAClE,uDAA0D;AAC1D,6EAAyE;AACzE,0DAAgE;AAChE,uEAWuC;AACvC,mFAA0F;AAC1F,iGAA+E;AAC/E,iFAA2E;AAC3E,mFAAwF;AACxF,yFAAsG;AAEzF,QAAA,qBAAqB,GAAG,iBAAiB,CAAC;AAC1C,QAAA,0BAA0B,GAAG,sBAAsB,CAAC;AACpD,QAAA,yBAAyB,GAAG,oBAAoB,CAAC;AACjD,QAAA,uBAAuB,GAAG,mBAAmB,CAAC;AAC9C,QAAA,wBAAwB,GAAG,oBAAoB,CAAC;AAChD,QAAA,4BAA4B,GAAG,wBAAwB,CAAC;AACxD,QAAA,+BAA+B,GAAG,0BAA0B,CAAC;AAC7D,QAAA,qBAAqB,GAAG,iBAAiB,CAAC;AAC1C,QAAA,eAAe,GAAG,YAAY,CAAC;AAE5C,MAAM,gBAAgB,GAAG;IACrB,EAAE,IAAI,EAAE,UAAG,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE;IACxD,EAAE,IAAI,EAAE,UAAG,CAAC,QAAQ,CAAC,2BAA2B,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE;CAC7E,CAAC;AAEW,QAAA,4BAA4B,GAAuB;IAC5D,EAAE,EAAE,wBAAwB;IAC5B,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgEb;CACA,CAAC;AAEW,QAAA,oBAAoB,GAAG,YAAY,CAAC;AAEjD,MAAM,aAAa,GAAG;IAClB,OAAO,EAAE,oDAA+B;IACxC,QAAQ,EAAE,0DAAuB;IACjC,QAAQ,EAAE,0DAAuB;IACjC,QAAQ,EAAE,+CAA0B;CACvC,CAAC;AAGK,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB;IAAzB;QACH,OAAE,GAAG,4BAAoB,CAAC;QAC1B,SAAI,GAAG,4BAAoB,CAAC;QAC5B,gBAAW,GAAG,UAAG,CAAC,QAAQ,CAAC,uCAAuC,EAAE,2BAA2B,CAAC,CAAC;QACjG,cAAS,GAAW,yBAAyB,CAAC;QAC9C,cAAS,GAAwB,2BAAiB,CAAC,GAAG,CAAC;QACvD,SAAI,GAAG,CAAC,UAAG,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC;QAEvC,cAAS,GAAG,EAAE,CAAC;QACf,YAAO,GAAG,CAAC,EAAE,EAAE,EAAE,oCAA4B,CAAC,EAAE,EAAE,cAAc,EAAE,oCAA4B,EAAE,CAAC,CAAC;QAClG,8BAAyB,GAAG,EAAE,CAAC;QAC/B,2BAAsB,GAAG,EAAE,CAAC;QAC5B,cAAS,GAAG,EAAE,CAAC;IAibnB,CAAC;IAjZG,KAAK,CAAC,MAAM,CAAC,OAAgC,EAAE,gBAAmC;QAC9E,IAAI,CAAC,4BAA4B,CAAC,OAAO,CAAC,CAAC;QAE3C,qDAAqD;QACrD,MAAM,YAAY,GAAG,UAAU,CAAC;QAChC,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;QACxE,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC1B,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACzB,IAAI,OAAO,IAAI,aAAa,EAAE,CAAC;gBAC3B,MAAM,WAAW,GAAG,aAAa,CAAC,OAAqC,CAAC,CAAC;gBACzE,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;gBACnD,MAAM,OAAO,GAAG,UAAG,CAAC,QAAQ,CAAC,sCAAsC,EAAE,eAAe,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;gBACzG,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,yCAA+B,CAAC,OAAO,CAAC,CAAC,CAAC;gBACnF,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;gBAC5B,OAAO;YACX,CAAC;QACL,CAAC;QAED,IAAI,CAAC;YACD,MAAM,oBAAoB,GAAG,MAAM,IAAI,CAAC,0BAA0B,CAAC,OAAO,CAAC,CAAC;YAC5E,MAAM,eAAe,GAAG,IAAI,CAAC,0BAA0B,CAAC,OAAO,CAAC,CAAC;YACjE,MAAM,YAAY,GAAG,GAAG,wBAAU,CAAC,UAAU,GAAG,4BAAoB,EAAE,CAAC;YACvE,IAAI,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACzC,IAAI,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;gBAClC,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YACrD,CAAC;YAED,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;gBAC5C,MAAM;gBACN,OAAO,EAAE;oBACL,YAAY,EAAE;wBACV,IAAI,EAAE,QAAQ;wBACd,MAAM,EAAE,aAAa;wBACrB,MAAM,EAAE,oBAAoB,aAApB,oBAAoB,uBAApB,oBAAoB,CAAE,IAAI;qBACrC;oBACD,cAAc,EAAE,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC;oBACrD,MAAM,EAAE,eAAe;iBAC1B;aACJ,EAAE,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;YAEvC,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;YAEtC,IAAI,mBAAmB,GAAG,KAAK,CAAC;YAChC,IAAI,KAAK,EAAE,MAAM,OAAO,IAAI,YAAY,EAAE,CAAC;gBACvC,IAAI,gDAA0B,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;oBACzC,IAAI,CAAC,yBAAyB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gBACrD,CAAC;qBAAM,CAAC;oBACJ,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;wBAC/B,mBAAmB,GAAG,IAAI,CAAC;oBAC/B,CAAC;oBACD,yDAAyD;oBACzD,wEAAwE;oBACxE,IAAI,mBAAmB,EAAE,CAAC;wBACtB,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;oBACzD,CAAC;oBACD,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gBAC9C,CAAC;YACL,CAAC;YAED,OAAO,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;QACvC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,kCAAkC,EAAE,KAAK,CAAC,CAAC;YACzD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,sCAA4B,CAAC,KAAK,CAAC,CAAC,CAAC;YAC9E,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAClC,CAAC;gBAAS,CAAC;YACP,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC9C,CAAC;IACL,CAAC;IAES,4BAA4B,CAAC,OAAgC;QACnE,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;QAC/C,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,eAAe,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACtD,IAAI,eAAe,CAAC,OAAO,KAAK,IAAI,CAAC,EAAE,EAAE,CAAC;gBACtC,MAAM,cAAc,GAAG,KAAK,GAAG,UAAG,CAAC,QAAQ,CAAC,mDAAmD,EAC3F,4GAA4G,CAAC,GAAG,MAAM,CAAC;gBAC3H,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,yCAA+B,CAAC,cAAc,CAAC,CAAC,CAAC;YAC9F,CAAC;QACL,CAAC;IACL,CAAC;IAES,KAAK,CAAC,0BAA0B,CAAC,OAAgC;;QACvE,MAAM,gBAAgB,GAAG,MAAA,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,qCAA2B,CAAC,YAAY,CAAC,mCAAI,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;QAC3I,MAAM,YAAY,GAAG,gBAAgB;aAChC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;aACvE,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,QAAQ,CAAC,GAAG,EAAE,CAAC;aACpC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEhB,MAAM,YAAY,GAAG,MAAA,MAAA,IAAI,CAAC,aAAa,CAAC,aAAa,0CAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,mCAAI,MAAM,CAAC;QACrF,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEvG,OAAO,IAAI,CAAC,aAAa,CAAC,yBAAyB,CAC/C,oCAA4B,CAAC,EAAE,EAC/B,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,EAC3C,EAAE,KAAK,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,CACtC,CAAC;IACN,CAAC;IAES,uBAAuB,CAAC,OAAgC;QAC9D,OAAO,CAAC,OAAO,CAAC,iCAAyB,EAAE,IAAI,GAAG,EAAwB,CAAC,CAAC;IAChF,CAAC;IAES,mBAAmB,CAAC,OAAgC;QAC1D,IAAI,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,oCAA4B,CAAyD,CAAC;QAC3H,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,SAAS,GAAG,IAAI,GAAG,EAAuC,CAAC;YAC3D,OAAO,CAAC,OAAO,CAAC,oCAA4B,EAAE,SAAS,CAAC,CAAC;QAC7D,CAAC;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;IAES,qBAAqB,CAAC,OAAgC;QAC5D,IAAI,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC,uCAA+B,CAAqC,CAAC;QAC3G,IAAI,CAAC,UAAU,EAAE,CAAC;YACd,UAAU,GAAG,IAAI,GAAG,EAAmB,CAAC;YACxC,OAAO,CAAC,OAAO,CAAC,uCAA+B,EAAE,UAAU,CAAC,CAAC;QACjE,CAAC;QACD,OAAO,UAAU,CAAC;IACtB,CAAC;IAES,yBAAyB,CAC/B,eAA2C,EAC3C,OAAgC;QAEhC,MAAM,QAAQ,GAAG,UAAG,CAAC,QAAQ,CAAC,0CAA0C,EAAE,qEAAqE,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAC;QAE3K,MAAM,eAAe,GAAG,IAAI,qCAA2B,CACnD,QAAQ,EACR,gBAAgB,EAChB,OAAO,EACP,cAAc,CAAC,EAAE,CAAC,IAAI,CAAC,sBAAsB,CAAC,cAAc,EAAE,eAAe,CAAC,SAAS,EAAE,OAAO,CAAC,CACpG,CAAC;QAEF,sDAAsD;QACtD,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;QAClF,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,SAAS,EAAE,eAAe,CAAC,SAAS,CAAC,CAAC;QAE9F,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;QACtD,OAAO,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;IACpC,CAAC;IAES,sBAAsB,CAC5B,cAAgD,EAChD,SAAiB,EACjB,OAAgC;QAEhC,MAAM,gBAAgB,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAC3D,MAAM,UAAU,GAAG,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;QAEvD,+BAA+B;QAC/B,MAAM,eAAe,GAAG,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACxD,MAAM,iBAAiB,GAAG,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAEpD,IAAI,eAAe,EAAE,CAAC;YAClB,eAAe,CAAC,cAAc,GAAG,cAAc,CAAC;QACpD,CAAC;QAED,gBAAgB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACnC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAE7B,MAAM,QAAQ,GAAG,cAAc,CAAC,KAAK,KAAK,OAAO,CAAC;QAClD,MAAM,QAAQ,GAAgC;YAC1C,IAAI,EAAE,wBAAwB;YAC9B,SAAS;YACT,QAAQ;YACR,GAAG,CAAC,QAAQ;gBACR,CAAC,CAAC,EAAE,YAAY,EAAE,iBAAiB,EAAE;gBACrC,CAAC,CAAC,EAAE,OAAO,EAAE,wBAAwB,EAAE,CAC1C;SACJ,CAAC;QAEF,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;QAE/C,qEAAqE;QACrE,IAAI,gBAAgB,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YAC9B,OAAO,CAAC,QAAQ,CAAC,mBAAmB,EAAE,CAAC;QAC3C,CAAC;IACL,CAAC;IAES,eAAe,CAAC,OAAgC;QACtD,OAAO,OAAO,CAAC,YAAY,CAAC,iCAAyB,CAAC,CAAC;IAC3D,CAAC;IAES,0BAA0B,CAAC,OAAgC;QACjE,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;QAC/C,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,eAAe,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACtD,OAAO,eAAe,CAAC,YAAY,CAAC,6BAAqB,CAAC,CAAC;QAC/D,CAAC;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;IAES,kBAAkB,CAAC,OAAgC;QACzD,OAAO,OAAO,CAAC,YAAY,CAAC,6BAAqB,CAAC,CAAC;IACvD,CAAC;IAES,kBAAkB,CAAC,OAAgC,EAAE,SAAiB;QAC5E,OAAO,CAAC,OAAO,CAAC,6BAAqB,EAAE,SAAS,CAAC,CAAC;IACtD,CAAC;IAES,uBAAuB,CAAC,OAAgC;;QAC9D,OAAO,MAAA,OAAO,CAAC,YAAY,CAAC,kCAA0B,CAAC,mCAAI,aAAa,CAAC;IAC7E,CAAC;IAES,uBAAuB,CAAC,OAAgC,EAAE,cAA8B;QAC9F,OAAO,CAAC,OAAO,CAAC,kCAA0B,EAAE,cAAc,CAAC,CAAC;IAChE,CAAC;IAES,kBAAkB,CAAC,OAAgC;QACzD,OAAO,OAAO,CAAC,YAAY,CAAC,6BAAqB,CAAC,CAAC;IACvD,CAAC;IAES,kBAAkB,CAAC,OAAgC,EAAE,SAAiB;QAC5E,OAAO,CAAC,OAAO,CAAC,6BAAqB,EAAE,SAAS,CAAC,CAAC;IACtD,CAAC;IAES,qBAAqB,CAAC,OAAgC;;QAC5D,OAAO,MAAA,OAAO,CAAC,YAAY,CAAC,+BAAuB,CAAW,mCAAI,CAAC,CAAC;IACxE,CAAC;IAES,sBAAsB,CAAC,OAAgC;;QAC7D,OAAO,MAAA,OAAO,CAAC,YAAY,CAAC,gCAAwB,CAAW,mCAAI,CAAC,CAAC;IACzE,CAAC;IAES,YAAY,CAAC,OAAgC,EAAE,WAAmB,EAAE,YAAoB;QAC9F,OAAO,CAAC,OAAO,CAAC,+BAAuB,EAAE,WAAW,CAAC,CAAC;QACtD,OAAO,CAAC,OAAO,CAAC,gCAAwB,EAAE,YAAY,CAAC,CAAC;QACxD,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC;IAES,qBAAqB,CAAC,OAAgC;;QAC5D,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;QAC/C,IAAI,gBAAgB,GAAG,CAAC,CAAC;QACzB,IAAI,iBAAiB,GAAG,CAAC,CAAC;QAE1B,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;YACzB,MAAM,WAAW,GAAG,MAAA,GAAG,CAAC,YAAY,CAAC,+BAAuB,CAAW,mCAAI,CAAC,CAAC;YAC7E,MAAM,YAAY,GAAG,MAAA,GAAG,CAAC,YAAY,CAAC,gCAAwB,CAAW,mCAAI,CAAC,CAAC;YAC/E,gBAAgB,IAAI,WAAW,CAAC;YAChC,iBAAiB,IAAI,YAAY,CAAC;QACtC,CAAC;QAED,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,YAAY,EAAE,iBAAiB,EAAE,CAAC;IAC9E,CAAC;IAES,uBAAuB,CAAC,OAAgC;QAC9D,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;QAC1E,MAAM,YAAY,GAAG,CAAC,MAAc,EAAU,EAAE;YAC5C,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;gBACjB,OAAO,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;YAC5C,CAAC;YACD,OAAO,MAAM,CAAC,QAAQ,EAAE,CAAC;QAC7B,CAAC,CAAC;QACF,MAAM,UAAU,GAAG,KAAK,YAAY,CAAC,WAAW,CAAC,QAAQ,YAAY,CAAC,YAAY,CAAC,EAAE,CAAC;QACtF,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;IACjD,CAAC;IAES,UAAU,CAAC,OAAgC;QACjD,MAAM,cAAc,GAAG,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;QAC7D,OAAO,cAAc,KAAK,aAAa,IAAI,cAAc,KAAK,mBAAmB,CAAC;IACtF,CAAC;IAES,KAAK,CAAC,gBAAgB,CAC5B,OAAgC,EAChC,WAAmB,EACnB,YAAoB,EACpB,iBAA0B,EAC1B,qBAA8B;QAE9B,MAAM,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;QACnD,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,OAAO;QACX,CAAC;QAED,MAAM,iBAAiB,GAAG,yBAAyB,SAAS,EAAE,CAAC;QAC/D,MAAM,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;QACnD,MAAM,SAAS,GAAG,SAAS,IAAI,OAAO,CAAC,EAAE,CAAC;QAE1C,IAAI,CAAC;YACD,MAAM,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,iBAAiB,EAAE;gBAC7D,WAAW;gBACX,YAAY;gBACZ,iBAAiB;gBACjB,qBAAqB;gBACrB,SAAS;aACZ,CAAC,CAAC;QACP,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAC;QAC1D,CAAC;IACL,CAAC;IAES,KAAK,CAAC,kBAAkB,CAAC,OAAmB,EAAE,OAAgC;;QACpF,8CAA8C;QAC9C,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,CAAC,OAAO,KAAK,MAAM,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YAC3E,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QACpD,CAAC;QAED,0CAA0C;QAC1C,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACxD,MAAM,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAClE,CAAC;QACD,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YAC7C,OAAO,CAAC,OAAO,CAAC,uBAAe,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;YACzD,MAAM,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC1D,CAAC;QAED,2DAA2D;QAC3D,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC1B,MAAM,gBAAgB,GAAG,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACjF,IAAI,gBAAgB,EAAE,CAAC;gBACnB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,yCAA+B,CAAC,gBAAgB,CAAC,CAAC,CAAC;YAChG,CAAC;QACL,CAAC;QAED,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC1D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC1C,OAAO;YACX,CAAC;YAED,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;gBAC1C,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;oBACjB,KAAK,MAAM;wBACP,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,yCAA+B,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;wBACtF,MAAM;oBACV,KAAK,UAAU,CAAC;oBAChB,KAAK,iBAAiB;wBAClB,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,+BAAS,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;4BACrD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,yCAA+B,CAAC,iBAAiB,KAAK,CAAC,KAAK,CAAC,WAAW,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;wBACnJ,CAAC;wBAED,mBAAmB;wBACnB,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,+BAAS,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;4BACpD,CAAC,KAAK,CAAC,IAAI,KAAK,WAAW,IAAI,oCAAc,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;4BAC9D,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,gCAAU,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;4BACzD,MAAM,OAAO,GAAiB;gCAC1B,IAAI,EAAE,KAAK,CAAC,IAAI;gCAChB,KAAK,EAAE,KAAK,CAAC,KAAK;6BACrB,CAAC;4BACF,MAAA,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,0CAAE,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;wBAC1D,CAAC;wBACD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,qEAAqC,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;wBACnI,MAAM;oBACV,KAAK,aAAa;wBACd,IAAI,MAAA,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,0CAAE,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC;4BACxD,MAAM,OAAO,GAAG,MAAA,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,0CAAE,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;4BACtE,IAAI,OAAO,EAAE,CAAC;gCACV,MAAM,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE;oCACxD,SAAS,EAAE,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC;oCAC3C,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;iCACvC,CAAC,CAAC;4BACP,CAAC;wBACL,CAAC;wBACD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,qEAAqC,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;wBAChJ,MAAM;oBACV,KAAK,UAAU;wBACX,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,yCAA+B,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAA,MAAA,KAAK,CAAC,SAAS,0CAAE,IAAI,EAAE,KAAI,EAAE,CAAC,CAAC,CAAC;wBAChI,MAAM;oBACV,KAAK,mBAAmB;wBACpB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,yCAA+B,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;wBACjG,MAAM;oBACV,KAAK,wBAAwB;wBACzB,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;4BAC/B,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;4BACpF,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,qEAAqC,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;wBAC7H,CAAC;wBACD,MAAM;gBACd,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;IAES,KAAK,CAAC,kBAAkB,CAAC,KAAY,EAAE,OAAgC;;QAC7E,MAAM,cAAc,GAAG,CAAC,MAAA,KAAK,CAAC,YAAY,mCAAI,CAAC,CAAC,GAAG,CAAC,MAAA,KAAK,CAAC,2BAA2B,mCAAI,CAAC,CAAC,CAAC;QAC5F,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,cAAc,EAAE,CAAC,MAAA,KAAK,CAAC,aAAa,mCAAI,CAAC,CAAC,CAAC,CAAC;QACvE,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,cAAc,EAAE,CAAC,MAAA,KAAK,CAAC,aAAa,mCAAI,CAAC,CAAC,EAC3E,CAAC,MAAA,KAAK,CAAC,2BAA2B,mCAAI,CAAC,CAAC,EAAE,CAAC,MAAA,KAAK,CAAC,uBAAuB,mCAAI,CAAC,CAAC,CAAC,CAAC;IACxF,CAAC;IAEO,yBAAyB,CAAC,OAAgC;QAC9D,MAAM,KAAK,GAAG,gEAAgE,CAAC;QAC/E,IAAI,gBAAgB,GAAG,EAAE,CAAC;QAC1B,IAAI,KAAK,CAAC;QAEV,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC9B,2CAA2C;YAC3C,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;gBAC5C,gBAAgB,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;YACjC,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;gBAC1B,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;oBACxB,2CAA2C;oBAC3C,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;wBAC/C,gBAAgB,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;oBACjC,CAAC;gBACL,CAAC;YACL,CAAC;QACL,CAAC;QAED,OAAO,gBAAgB,IAAI,SAAS,CAAC;IACzC,CAAC;CACJ,CAAA;AA7bY,kDAAmB;AAelB;IADT,IAAA,kBAAM,EAAC,uBAAa,CAAC;;0DACiB;AAG7B;IADT,IAAA,kBAAM,EAAC,wDAAyB,CAAC;sCACZ,wDAAyB;uDAAC;AAG7B;IADlB,IAAA,kBAAM,EAAC,0BAAW,CAAC;sCACY,0BAAW;wDAAC;AAGzB;IADlB,IAAA,kBAAM,EAAC,qBAAc,CAAC;;2DAC2B;AAG/B;IADlB,IAAA,kBAAM,EAAC,0BAAgB,CAAC;sCACY,0BAAgB;6DAAC;AAGnC;IADlB,IAAA,kBAAM,EAAC,uBAAa,CAAC;sCACY,uBAAa;0DAAC;AAG7B;IADlB,IAAA,kBAAM,EAAC,uBAAgB,CAAC;sCACY,uBAAgB;6DAAC;AAGnC;IADlB,IAAA,kBAAM,EAAC,yDAAyB,CAAC;;4DAC4B;AAG3C;IADlB,IAAA,kBAAM,EAAC,4DAAqB,CAAC;;0DAC0B;AAGrC;IADlB,IAAA,kBAAM,EAAC,2BAAiB,CAAC;;8DAC8B;8BA1C/C,mBAAmB;IAD/B,IAAA,sBAAU,GAAE;GACA,mBAAmB,CA6b/B"}
|
|
1
|
+
{"version":3,"file":"claude-code-chat-agent.js","sourceRoot":"","sources":["../../src/browser/claude-code-chat-agent.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,7 @@ import { URI } from '@theia/core/lib/common/uri';
|
|
|
6
6
|
import { FileService } from '@theia/filesystem/lib/browser/file-service';
|
|
7
7
|
import { WorkspaceService } from '@theia/workspace/lib/browser';
|
|
8
8
|
import { FileEditBackupService } from './claude-code-file-edit-backup-service';
|
|
9
|
+
import { ILogger } from '@theia/core';
|
|
9
10
|
export interface EditToolInput {
|
|
10
11
|
file_path: string;
|
|
11
12
|
old_string: string;
|
|
@@ -49,6 +50,7 @@ export declare class ClaudeCodeEditToolServiceImpl implements ClaudeCodeEditTool
|
|
|
49
50
|
protected readonly fileService: FileService;
|
|
50
51
|
protected readonly workspaceService: WorkspaceService;
|
|
51
52
|
protected readonly backupService: FileEditBackupService;
|
|
53
|
+
protected readonly logger: ILogger;
|
|
52
54
|
private readonly contentReplacer;
|
|
53
55
|
handleEditTool(toolUse: ToolUseBlock, request: MutableChatRequestModel, context: EditToolContext): Promise<void>;
|
|
54
56
|
protected handleEditSingle(input: EditToolInput, request: MutableChatRequestModel, context: EditToolContext): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-code-edit-tool-service.d.ts","sourceRoot":"","sources":["../../src/browser/claude-code-edit-tool-service.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAwB,2BAA2B,EAAE,MAAM,oDAAoD,CAAC;AACvH,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AACxE,OAAO,EAAyB,WAAW,EAAE,MAAM,yCAAyC,CAAC;AAC7F,OAAO,EAAE,GAAG,EAAE,MAAM,4BAA4B,CAAC;AAEjD,OAAO,EAAE,WAAW,EAAE,MAAM,4CAA4C,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;
|
|
1
|
+
{"version":3,"file":"claude-code-edit-tool-service.d.ts","sourceRoot":"","sources":["../../src/browser/claude-code-edit-tool-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -49,7 +49,7 @@ let ClaudeCodeEditToolServiceImpl = class ClaudeCodeEditToolServiceImpl {
|
|
|
49
49
|
}
|
|
50
50
|
}
|
|
51
51
|
catch (error) {
|
|
52
|
-
|
|
52
|
+
this.logger.error('Error handling edit tool:', error);
|
|
53
53
|
}
|
|
54
54
|
}
|
|
55
55
|
async handleEditSingle(input, request, context) {
|
|
@@ -71,7 +71,7 @@ let ClaudeCodeEditToolServiceImpl = class ClaudeCodeEditToolServiceImpl {
|
|
|
71
71
|
request.session.changeSet.setTitle(core_1.nls.localize('theia/ai/claude-code/changeSetTitle', 'Changes by Claude Code'));
|
|
72
72
|
}
|
|
73
73
|
catch (error) {
|
|
74
|
-
|
|
74
|
+
this.logger.error('Error handling Edit tool:', error);
|
|
75
75
|
}
|
|
76
76
|
}
|
|
77
77
|
async handleEditMultiple(input, request, context) {
|
|
@@ -93,7 +93,7 @@ let ClaudeCodeEditToolServiceImpl = class ClaudeCodeEditToolServiceImpl {
|
|
|
93
93
|
request.session.changeSet.setTitle(core_1.nls.localize('theia/ai/claude-code/changeSetTitle', 'Changes by Claude Code'));
|
|
94
94
|
}
|
|
95
95
|
catch (error) {
|
|
96
|
-
|
|
96
|
+
this.logger.error('Error handling MultiEdit tool:', error);
|
|
97
97
|
}
|
|
98
98
|
}
|
|
99
99
|
async handleWriteFile(input, request, context) {
|
|
@@ -149,7 +149,7 @@ let ClaudeCodeEditToolServiceImpl = class ClaudeCodeEditToolServiceImpl {
|
|
|
149
149
|
request.session.changeSet.setTitle(core_1.nls.localize('theia/ai/claude-code/changeSetTitle', 'Changes by Claude Code'));
|
|
150
150
|
}
|
|
151
151
|
catch (error) {
|
|
152
|
-
|
|
152
|
+
this.logger.error('Error handling Write tool:', error);
|
|
153
153
|
}
|
|
154
154
|
}
|
|
155
155
|
async handleEditModeCommon(workspaceUri, currentContentString, replacements, existingChangeSetElement, request, context) {
|
|
@@ -170,7 +170,7 @@ let ClaudeCodeEditToolServiceImpl = class ClaudeCodeEditToolServiceImpl {
|
|
|
170
170
|
async handleNonEditModeCommon(workspaceUri, currentContentString, replacements, existingChangeSetElement, request) {
|
|
171
171
|
const { updatedContent, errors } = this.contentReplacer.applyReplacements(currentContentString, replacements);
|
|
172
172
|
if (errors.length > 0) {
|
|
173
|
-
|
|
173
|
+
this.logger.error('Content replacement errors:', errors);
|
|
174
174
|
return;
|
|
175
175
|
}
|
|
176
176
|
if (updatedContent !== currentContentString) {
|
|
@@ -214,6 +214,11 @@ tslib_1.__decorate([
|
|
|
214
214
|
(0, inversify_1.inject)(claude_code_file_edit_backup_service_1.FileEditBackupService),
|
|
215
215
|
tslib_1.__metadata("design:type", Object)
|
|
216
216
|
], ClaudeCodeEditToolServiceImpl.prototype, "backupService", void 0);
|
|
217
|
+
tslib_1.__decorate([
|
|
218
|
+
(0, inversify_1.inject)(core_1.ILogger),
|
|
219
|
+
(0, inversify_1.named)('claude-code'),
|
|
220
|
+
tslib_1.__metadata("design:type", Object)
|
|
221
|
+
], ClaudeCodeEditToolServiceImpl.prototype, "logger", void 0);
|
|
217
222
|
exports.ClaudeCodeEditToolServiceImpl = ClaudeCodeEditToolServiceImpl = tslib_1.__decorate([
|
|
218
223
|
(0, inversify_1.injectable)()
|
|
219
224
|
], ClaudeCodeEditToolServiceImpl);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-code-edit-tool-service.js","sourceRoot":"","sources":["../../src/browser/claude-code-edit-tool-service.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;;AAGhF,gGAAuH;AAEvH,8EAA6F;AAC7F,oDAAiD;AACjD,
|
|
1
|
+
{"version":3,"file":"claude-code-edit-tool-service.js","sourceRoot":"","sources":["../../src/browser/claude-code-edit-tool-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@ import { MutableChatRequestModel } from '@theia/ai-chat';
|
|
|
2
2
|
import { URI } from '@theia/core/lib/common/uri';
|
|
3
3
|
import { FileService } from '@theia/filesystem/lib/browser/file-service';
|
|
4
4
|
import { WorkspaceService } from '@theia/workspace/lib/browser';
|
|
5
|
+
import { ILogger } from '@theia/core';
|
|
5
6
|
export declare const FileEditBackupService: unique symbol;
|
|
6
7
|
/**
|
|
7
8
|
* Service for managing file backup operations during Claude Code edit sessions.
|
|
@@ -50,6 +51,7 @@ export interface FileEditBackupService {
|
|
|
50
51
|
export declare class FileEditBackupServiceImpl implements FileEditBackupService {
|
|
51
52
|
protected readonly fileService: FileService;
|
|
52
53
|
protected readonly workspaceService: WorkspaceService;
|
|
54
|
+
protected readonly logger: ILogger;
|
|
53
55
|
getLocation(workspaceRoot: URI): URI;
|
|
54
56
|
getOriginal(workspaceUri: URI, sessionId: string | undefined): Promise<string | undefined>;
|
|
55
57
|
cleanUp(request: MutableChatRequestModel): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-code-file-edit-backup-service.d.ts","sourceRoot":"","sources":["../../src/browser/claude-code-file-edit-backup-service.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAEzD,OAAO,EAAE,GAAG,EAAE,MAAM,4BAA4B,CAAC;AAEjD,OAAO,EAAE,WAAW,EAAE,MAAM,4CAA4C,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"claude-code-file-edit-backup-service.d.ts","sourceRoot":"","sources":["../../src/browser/claude-code-file-edit-backup-service.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAEzD,OAAO,EAAE,GAAG,EAAE,MAAM,4BAA4B,CAAC;AAEjD,OAAO,EAAE,WAAW,EAAE,MAAM,4CAA4C,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAEhE,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEtC,eAAO,MAAM,qBAAqB,eAAkC,CAAC;AAErE;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,qBAAqB;IAClC;;;;;;;;;OASG;IACH,WAAW,CAAC,YAAY,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAE3F;;;;;;;OAOG;IACH,OAAO,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzD;;;;;;;;OAQG;IACH,WAAW,CAAC,aAAa,EAAE,GAAG,GAAG,GAAG,CAAC;CACxC;AAED,qBACa,yBAA0B,YAAW,qBAAqB;IAGnE,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAG5C,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAGtD,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAEnC,WAAW,CAAC,aAAa,EAAE,GAAG,GAAG,GAAG;IAO9B,WAAW,CAAC,YAAY,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IA0B1F,OAAO,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC;CAyBjE"}
|
|
@@ -22,6 +22,7 @@ const inversify_1 = require("@theia/core/shared/inversify");
|
|
|
22
22
|
const file_service_1 = require("@theia/filesystem/lib/browser/file-service");
|
|
23
23
|
const browser_1 = require("@theia/workspace/lib/browser");
|
|
24
24
|
const claude_code_chat_agent_1 = require("./claude-code-chat-agent");
|
|
25
|
+
const core_1 = require("@theia/core");
|
|
25
26
|
exports.FileEditBackupService = Symbol('FileEditBackupService');
|
|
26
27
|
let FileEditBackupServiceImpl = class FileEditBackupServiceImpl {
|
|
27
28
|
getLocation(workspaceRoot) {
|
|
@@ -48,7 +49,7 @@ let FileEditBackupServiceImpl = class FileEditBackupServiceImpl {
|
|
|
48
49
|
}
|
|
49
50
|
}
|
|
50
51
|
catch (error) {
|
|
51
|
-
|
|
52
|
+
this.logger.error('Error reading backup file:', error);
|
|
52
53
|
}
|
|
53
54
|
return undefined;
|
|
54
55
|
}
|
|
@@ -86,6 +87,11 @@ tslib_1.__decorate([
|
|
|
86
87
|
(0, inversify_1.inject)(browser_1.WorkspaceService),
|
|
87
88
|
tslib_1.__metadata("design:type", browser_1.WorkspaceService)
|
|
88
89
|
], FileEditBackupServiceImpl.prototype, "workspaceService", void 0);
|
|
90
|
+
tslib_1.__decorate([
|
|
91
|
+
(0, inversify_1.inject)(core_1.ILogger),
|
|
92
|
+
(0, inversify_1.named)('claude-code'),
|
|
93
|
+
tslib_1.__metadata("design:type", Object)
|
|
94
|
+
], FileEditBackupServiceImpl.prototype, "logger", void 0);
|
|
89
95
|
exports.FileEditBackupServiceImpl = FileEditBackupServiceImpl = tslib_1.__decorate([
|
|
90
96
|
(0, inversify_1.injectable)()
|
|
91
97
|
], FileEditBackupServiceImpl);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-code-file-edit-backup-service.js","sourceRoot":"","sources":["../../src/browser/claude-code-file-edit-backup-service.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;;AAGhF,gGAA0F;AAE1F,
|
|
1
|
+
{"version":3,"file":"claude-code-file-edit-backup-service.js","sourceRoot":"","sources":["../../src/browser/claude-code-file-edit-backup-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,17 +1,34 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { PromptService } from '@theia/ai-core/lib/common/prompt-service';
|
|
2
|
+
import { DisposableCollection, ILogger, URI } from '@theia/core';
|
|
2
3
|
import { FrontendApplicationContribution } from '@theia/core/lib/browser';
|
|
3
|
-
import { ContextKeyService } from '@theia/core/lib/browser/context-key-service';
|
|
4
4
|
import { FileService } from '@theia/filesystem/lib/browser/file-service';
|
|
5
|
-
import
|
|
5
|
+
import { FileChangeType } from '@theia/filesystem/lib/common/files';
|
|
6
6
|
import { WorkspaceService } from '@theia/workspace/lib/browser';
|
|
7
7
|
export declare class ClaudeCodeSlashCommandsContribution implements FrontendApplicationContribution {
|
|
8
8
|
private readonly staticCommands;
|
|
9
|
-
protected readonly
|
|
9
|
+
protected readonly logger: ILogger;
|
|
10
|
+
protected readonly promptService: PromptService;
|
|
10
11
|
protected readonly workspaceService: WorkspaceService;
|
|
11
12
|
protected readonly fileService: FileService;
|
|
12
|
-
|
|
13
|
-
protected
|
|
14
|
-
protected
|
|
13
|
+
protected readonly toDispose: DisposableCollection;
|
|
14
|
+
protected currentWorkspaceRoot: URI | undefined;
|
|
15
|
+
protected fileWatcherDisposable: DisposableCollection | undefined;
|
|
16
|
+
onStart(): Promise<void>;
|
|
17
|
+
onStop(): void;
|
|
18
|
+
protected registerStaticCommands(): void;
|
|
19
|
+
protected initializeDynamicCommands(): Promise<void>;
|
|
20
|
+
protected registerDynamicCommandsForWorkspace(workspaceRoot: URI): Promise<void>;
|
|
21
|
+
protected registerDynamicCommand(commandsDir: URI, filename: string): Promise<void>;
|
|
22
|
+
protected setupFileWatcher(workspaceRoot: URI): void;
|
|
23
|
+
protected handleFileChange(resource: URI, changeType: FileChangeType, commandsUri: URI): Promise<void>;
|
|
24
|
+
protected handleWorkspaceChange(): Promise<void>;
|
|
25
|
+
protected clearDynamicCommands(): Promise<void>;
|
|
26
|
+
protected getWorkspaceRoot(): URI | undefined;
|
|
27
|
+
protected getCommandsUri(workspaceRoot: URI): URI;
|
|
28
|
+
protected isCommandFile(resource: URI, commandsUri: URI): boolean;
|
|
29
|
+
protected getCommandNameFromFilename(filename: string): string;
|
|
30
|
+
protected getDynamicCommandId(commandName: string): string;
|
|
31
|
+
protected listMarkdownFiles(uri: URI): Promise<string[]>;
|
|
15
32
|
protected listFilesDirectly(uri: URI): Promise<string[]>;
|
|
16
33
|
}
|
|
17
34
|
//# sourceMappingURL=claude-code-slash-commands-contribution.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-code-slash-commands-contribution.d.ts","sourceRoot":"","sources":["../../src/browser/claude-code-slash-commands-contribution.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"claude-code-slash-commands-contribution.d.ts","sourceRoot":"","sources":["../../src/browser/claude-code-slash-commands-contribution.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,aAAa,EAAE,MAAM,0CAA0C,CAAC;AACzE,OAAO,EAAE,oBAAoB,EAAE,OAAO,EAAO,GAAG,EAAE,MAAM,aAAa,CAAC;AACtE,OAAO,EAAE,+BAA+B,EAAE,MAAM,yBAAyB,CAAC;AAE1E,OAAO,EAAE,WAAW,EAAE,MAAM,4CAA4C,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAYhE,qBACa,mCAAoC,YAAW,+BAA+B;IAEvF,OAAO,CAAC,QAAQ,CAAC,cAAc,CA6B7B;IAGF,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAGnC,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IAGhD,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAGtD,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAE5C,SAAS,CAAC,QAAQ,CAAC,SAAS,uBAA8B;IAC1D,SAAS,CAAC,oBAAoB,EAAE,GAAG,GAAG,SAAS,CAAC;IAChD,SAAS,CAAC,qBAAqB,EAAE,oBAAoB,GAAG,SAAS,CAAC;IAE5D,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAS9B,MAAM,IAAI,IAAI;IAId,SAAS,CAAC,sBAAsB,IAAI,IAAI;cAaxB,yBAAyB,IAAI,OAAO,CAAC,IAAI,CAAC;cAW1C,mCAAmC,CAAC,aAAa,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;cAStE,sBAAsB,CAAC,WAAW,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBzF,SAAS,CAAC,gBAAgB,CAAC,aAAa,EAAE,GAAG,GAAG,IAAI;cAyBpC,gBAAgB,CAAC,QAAQ,EAAE,GAAG,EAAE,UAAU,EAAE,cAAc,EAAE,WAAW,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;cAY5F,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC;cAYtC,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC;IAcrD,SAAS,CAAC,gBAAgB,IAAI,GAAG,GAAG,SAAS;IAK7C,SAAS,CAAC,cAAc,CAAC,aAAa,EAAE,GAAG,GAAG,GAAG;IAIjD,SAAS,CAAC,aAAa,CAAC,QAAQ,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,GAAG,OAAO;IAIjE,SAAS,CAAC,0BAA0B,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAI9D,SAAS,CAAC,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM;cAI1C,iBAAiB,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;cAK9C,iBAAiB,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CAgBjE"}
|
|
@@ -17,15 +17,15 @@
|
|
|
17
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
18
|
exports.ClaudeCodeSlashCommandsContribution = void 0;
|
|
19
19
|
const tslib_1 = require("tslib");
|
|
20
|
-
const
|
|
20
|
+
const prompt_service_1 = require("@theia/ai-core/lib/common/prompt-service");
|
|
21
21
|
const core_1 = require("@theia/core");
|
|
22
|
-
const context_key_service_1 = require("@theia/core/lib/browser/context-key-service");
|
|
23
22
|
const inversify_1 = require("@theia/core/shared/inversify");
|
|
24
23
|
const file_service_1 = require("@theia/filesystem/lib/browser/file-service");
|
|
25
|
-
const monaco = require("@theia/monaco-editor-core");
|
|
26
24
|
const browser_1 = require("@theia/workspace/lib/browser");
|
|
27
25
|
const claude_code_chat_agent_1 = require("./claude-code-chat-agent");
|
|
28
26
|
const CLAUDE_COMMANDS = '.claude/commands';
|
|
27
|
+
const COMMAND_FRAGMENT_PREFIX = 'claude-code-slash-';
|
|
28
|
+
const DYNAMIC_COMMAND_PREFIX = 'claude-code-dynamic-';
|
|
29
29
|
let ClaudeCodeSlashCommandsContribution = class ClaudeCodeSlashCommandsContribution {
|
|
30
30
|
constructor() {
|
|
31
31
|
this.staticCommands = [
|
|
@@ -58,69 +58,128 @@ let ClaudeCodeSlashCommandsContribution = class ClaudeCodeSlashCommandsContribut
|
|
|
58
58
|
description: core_1.nls.localize('theia/ai/claude-code/resumeCommand/description', 'Resume a session'),
|
|
59
59
|
}
|
|
60
60
|
];
|
|
61
|
+
this.toDispose = new core_1.DisposableCollection();
|
|
61
62
|
}
|
|
62
|
-
onStart() {
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
});
|
|
63
|
+
async onStart() {
|
|
64
|
+
this.registerStaticCommands();
|
|
65
|
+
await this.initializeDynamicCommands();
|
|
66
|
+
this.toDispose.push(this.workspaceService.onWorkspaceChanged(() => this.handleWorkspaceChange()));
|
|
67
67
|
}
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
68
|
+
onStop() {
|
|
69
|
+
this.toDispose.dispose();
|
|
70
|
+
}
|
|
71
|
+
registerStaticCommands() {
|
|
72
|
+
for (const command of this.staticCommands) {
|
|
73
|
+
this.promptService.addBuiltInPromptFragment({
|
|
74
|
+
id: `${COMMAND_FRAGMENT_PREFIX}${command.name}`,
|
|
75
|
+
template: `/${command.name}`,
|
|
76
|
+
isCommand: true,
|
|
77
|
+
commandName: command.name,
|
|
78
|
+
commandDescription: command.description,
|
|
79
|
+
commandAgents: [claude_code_chat_agent_1.CLAUDE_CHAT_AGENT_ID]
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
async initializeDynamicCommands() {
|
|
84
|
+
const workspaceRoot = this.getWorkspaceRoot();
|
|
85
|
+
if (!workspaceRoot) {
|
|
86
|
+
return;
|
|
72
87
|
}
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
88
|
+
this.currentWorkspaceRoot = workspaceRoot;
|
|
89
|
+
await this.registerDynamicCommandsForWorkspace(workspaceRoot);
|
|
90
|
+
this.setupFileWatcher(workspaceRoot);
|
|
91
|
+
}
|
|
92
|
+
async registerDynamicCommandsForWorkspace(workspaceRoot) {
|
|
93
|
+
const commandsUri = this.getCommandsUri(workspaceRoot);
|
|
94
|
+
const files = await this.listMarkdownFiles(commandsUri);
|
|
95
|
+
for (const filename of files) {
|
|
96
|
+
await this.registerDynamicCommand(commandsUri, filename);
|
|
76
97
|
}
|
|
98
|
+
}
|
|
99
|
+
async registerDynamicCommand(commandsDir, filename) {
|
|
100
|
+
const commandName = this.getCommandNameFromFilename(filename);
|
|
101
|
+
const fileUri = commandsDir.resolve(filename);
|
|
77
102
|
try {
|
|
78
|
-
const
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
range: completionRange,
|
|
86
|
-
detail: command.description
|
|
87
|
-
});
|
|
103
|
+
const content = await this.fileService.read(fileUri);
|
|
104
|
+
this.promptService.addBuiltInPromptFragment({
|
|
105
|
+
id: this.getDynamicCommandId(commandName),
|
|
106
|
+
template: content.value,
|
|
107
|
+
isCommand: true,
|
|
108
|
+
commandName,
|
|
109
|
+
commandAgents: [claude_code_chat_agent_1.CLAUDE_CHAT_AGENT_ID]
|
|
88
110
|
});
|
|
89
|
-
// Add dynamic commands from .claude/commands directory
|
|
90
|
-
const roots = this.workspaceService.tryGetRoots();
|
|
91
|
-
if (roots.length >= 1) {
|
|
92
|
-
const uri = roots[0].resource;
|
|
93
|
-
const claudeCommandsUri = uri.resolve(CLAUDE_COMMANDS);
|
|
94
|
-
const files = await this.listFilesDirectly(claudeCommandsUri);
|
|
95
|
-
const commands = files
|
|
96
|
-
.filter(file => file.endsWith('.md'))
|
|
97
|
-
.map(file => file.replace(/\.md$/, ''));
|
|
98
|
-
commands.forEach(commandName => {
|
|
99
|
-
suggestions.push({
|
|
100
|
-
insertText: `${commandName} `,
|
|
101
|
-
kind: monaco.languages.CompletionItemKind.Function,
|
|
102
|
-
label: commandName,
|
|
103
|
-
range: completionRange,
|
|
104
|
-
detail: core_1.nls.localize('theia/ai/claude-code/commandDetail', 'Claude command: {0}', commandName)
|
|
105
|
-
});
|
|
106
|
-
});
|
|
107
|
-
}
|
|
108
|
-
return { suggestions };
|
|
109
111
|
}
|
|
110
112
|
catch (error) {
|
|
111
|
-
|
|
112
|
-
|
|
113
|
+
this.logger.error(`Failed to register Claude Code slash command '${commandName}' from ${fileUri}:`, error);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
setupFileWatcher(workspaceRoot) {
|
|
117
|
+
var _a;
|
|
118
|
+
(_a = this.fileWatcherDisposable) === null || _a === void 0 ? void 0 : _a.dispose();
|
|
119
|
+
this.fileWatcherDisposable = new core_1.DisposableCollection();
|
|
120
|
+
const commandsUri = this.getCommandsUri(workspaceRoot);
|
|
121
|
+
this.fileWatcherDisposable.push(this.fileService.onDidFilesChange(async (event) => {
|
|
122
|
+
const relevantChanges = event.changes.filter(change => this.isCommandFile(change.resource, commandsUri));
|
|
123
|
+
if (relevantChanges.length === 0) {
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
for (const change of relevantChanges) {
|
|
127
|
+
await this.handleFileChange(change.resource, change.type, commandsUri);
|
|
128
|
+
}
|
|
129
|
+
}));
|
|
130
|
+
this.toDispose.push(this.fileWatcherDisposable);
|
|
131
|
+
}
|
|
132
|
+
async handleFileChange(resource, changeType, commandsUri) {
|
|
133
|
+
const filename = resource.path.base;
|
|
134
|
+
const commandName = this.getCommandNameFromFilename(filename);
|
|
135
|
+
const fragmentId = this.getDynamicCommandId(commandName);
|
|
136
|
+
if (changeType === 2 /* FileChangeType.DELETED */) {
|
|
137
|
+
this.promptService.removePromptFragment(fragmentId);
|
|
113
138
|
}
|
|
139
|
+
else if (changeType === 1 /* FileChangeType.ADDED */ || changeType === 0 /* FileChangeType.UPDATED */) {
|
|
140
|
+
await this.registerDynamicCommand(commandsUri, filename);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
async handleWorkspaceChange() {
|
|
144
|
+
var _a;
|
|
145
|
+
const newRoot = this.getWorkspaceRoot();
|
|
146
|
+
if (((_a = this.currentWorkspaceRoot) === null || _a === void 0 ? void 0 : _a.toString()) === (newRoot === null || newRoot === void 0 ? void 0 : newRoot.toString())) {
|
|
147
|
+
return;
|
|
148
|
+
}
|
|
149
|
+
await this.clearDynamicCommands();
|
|
150
|
+
this.currentWorkspaceRoot = newRoot;
|
|
151
|
+
await this.initializeDynamicCommands();
|
|
114
152
|
}
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
// one to the left, and -1 for 0-based index
|
|
119
|
-
const characterBeforeCurrentWord = lineContent[wordInfo.startColumn - 1 - 1];
|
|
120
|
-
if (characterBeforeCurrentWord !== triggerCharacter) {
|
|
121
|
-
return undefined;
|
|
153
|
+
async clearDynamicCommands() {
|
|
154
|
+
if (!this.currentWorkspaceRoot) {
|
|
155
|
+
return;
|
|
122
156
|
}
|
|
123
|
-
|
|
157
|
+
const commandsUri = this.getCommandsUri(this.currentWorkspaceRoot);
|
|
158
|
+
const files = await this.listMarkdownFiles(commandsUri);
|
|
159
|
+
for (const filename of files) {
|
|
160
|
+
const commandName = this.getCommandNameFromFilename(filename);
|
|
161
|
+
this.promptService.removePromptFragment(this.getDynamicCommandId(commandName));
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
getWorkspaceRoot() {
|
|
165
|
+
const roots = this.workspaceService.tryGetRoots();
|
|
166
|
+
return roots.length > 0 ? roots[0].resource : undefined;
|
|
167
|
+
}
|
|
168
|
+
getCommandsUri(workspaceRoot) {
|
|
169
|
+
return workspaceRoot.resolve(CLAUDE_COMMANDS);
|
|
170
|
+
}
|
|
171
|
+
isCommandFile(resource, commandsUri) {
|
|
172
|
+
return resource.toString().startsWith(commandsUri.toString()) && resource.path.ext === '.md';
|
|
173
|
+
}
|
|
174
|
+
getCommandNameFromFilename(filename) {
|
|
175
|
+
return filename.replace(/\.md$/, '');
|
|
176
|
+
}
|
|
177
|
+
getDynamicCommandId(commandName) {
|
|
178
|
+
return `${DYNAMIC_COMMAND_PREFIX}${commandName}`;
|
|
179
|
+
}
|
|
180
|
+
async listMarkdownFiles(uri) {
|
|
181
|
+
const allFiles = await this.listFilesDirectly(uri);
|
|
182
|
+
return allFiles.filter(file => file.endsWith('.md'));
|
|
124
183
|
}
|
|
125
184
|
async listFilesDirectly(uri) {
|
|
126
185
|
const result = [];
|
|
@@ -138,9 +197,14 @@ let ClaudeCodeSlashCommandsContribution = class ClaudeCodeSlashCommandsContribut
|
|
|
138
197
|
};
|
|
139
198
|
exports.ClaudeCodeSlashCommandsContribution = ClaudeCodeSlashCommandsContribution;
|
|
140
199
|
tslib_1.__decorate([
|
|
141
|
-
(0, inversify_1.inject)(
|
|
200
|
+
(0, inversify_1.inject)(core_1.ILogger),
|
|
201
|
+
(0, inversify_1.named)('claude-code'),
|
|
202
|
+
tslib_1.__metadata("design:type", Object)
|
|
203
|
+
], ClaudeCodeSlashCommandsContribution.prototype, "logger", void 0);
|
|
204
|
+
tslib_1.__decorate([
|
|
205
|
+
(0, inversify_1.inject)(prompt_service_1.PromptService),
|
|
142
206
|
tslib_1.__metadata("design:type", Object)
|
|
143
|
-
], ClaudeCodeSlashCommandsContribution.prototype, "
|
|
207
|
+
], ClaudeCodeSlashCommandsContribution.prototype, "promptService", void 0);
|
|
144
208
|
tslib_1.__decorate([
|
|
145
209
|
(0, inversify_1.inject)(browser_1.WorkspaceService),
|
|
146
210
|
tslib_1.__metadata("design:type", browser_1.WorkspaceService)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-code-slash-commands-contribution.js","sourceRoot":"","sources":["../../src/browser/claude-code-slash-commands-contribution.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;;AAEhF,
|
|
1
|
+
{"version":3,"file":"claude-code-slash-commands-contribution.js","sourceRoot":"","sources":["../../src/browser/claude-code-slash-commands-contribution.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@theia/ai-claude-code",
|
|
3
|
-
"version": "1.67.0-next.
|
|
3
|
+
"version": "1.67.0-next.86+03f92ff1d",
|
|
4
4
|
"description": "Theia - Claude Code Integration",
|
|
5
5
|
"dependencies": {
|
|
6
|
-
"@theia/ai-chat": "1.67.0-next.
|
|
7
|
-
"@theia/ai-chat-ui": "1.67.0-next.
|
|
8
|
-
"@theia/ai-core": "1.67.0-next.
|
|
9
|
-
"@theia/core": "1.67.0-next.
|
|
10
|
-
"@theia/editor": "1.67.0-next.
|
|
11
|
-
"@theia/filesystem": "1.67.0-next.
|
|
6
|
+
"@theia/ai-chat": "1.67.0-next.86+03f92ff1d",
|
|
7
|
+
"@theia/ai-chat-ui": "1.67.0-next.86+03f92ff1d",
|
|
8
|
+
"@theia/ai-core": "1.67.0-next.86+03f92ff1d",
|
|
9
|
+
"@theia/core": "1.67.0-next.86+03f92ff1d",
|
|
10
|
+
"@theia/editor": "1.67.0-next.86+03f92ff1d",
|
|
11
|
+
"@theia/filesystem": "1.67.0-next.86+03f92ff1d",
|
|
12
12
|
"@theia/monaco-editor-core": "^1.96.302",
|
|
13
|
-
"@theia/output": "1.67.0-next.
|
|
14
|
-
"@theia/workspace": "1.67.0-next.
|
|
13
|
+
"@theia/output": "1.67.0-next.86+03f92ff1d",
|
|
14
|
+
"@theia/workspace": "1.67.0-next.86+03f92ff1d",
|
|
15
15
|
"tslib": "^2.6.2"
|
|
16
16
|
},
|
|
17
17
|
"publishConfig": {
|
|
@@ -53,5 +53,5 @@
|
|
|
53
53
|
"nyc": {
|
|
54
54
|
"extends": "../../configs/nyc.json"
|
|
55
55
|
},
|
|
56
|
-
"gitHead": "
|
|
56
|
+
"gitHead": "03f92ff1d97dcb199de39b48e60a53535de22808"
|
|
57
57
|
}
|
|
@@ -27,8 +27,8 @@ import {
|
|
|
27
27
|
import { AI_CHAT_NEW_CHAT_WINDOW_COMMAND, AI_CHAT_SHOW_CHATS_COMMAND } from '@theia/ai-chat-ui/lib/browser/chat-view-commands';
|
|
28
28
|
import { PromptText } from '@theia/ai-core/lib/common/prompt-text';
|
|
29
29
|
import { AIVariableResolutionRequest, BasePromptFragment, PromptService, ResolvedPromptFragment, TokenUsageService } from '@theia/ai-core';
|
|
30
|
-
import { CommandService, nls, SelectionService } from '@theia/core';
|
|
31
|
-
import { inject, injectable } from '@theia/core/shared/inversify';
|
|
30
|
+
import { CommandService, ILogger, nls, SelectionService } from '@theia/core';
|
|
31
|
+
import { inject, injectable, named } from '@theia/core/shared/inversify';
|
|
32
32
|
import { EditorManager } from '@theia/editor/lib/browser';
|
|
33
33
|
import { FileService } from '@theia/filesystem/lib/browser/file-service';
|
|
34
34
|
import { WorkspaceService } from '@theia/workspace/lib/browser';
|
|
@@ -51,7 +51,6 @@ import { ClaudeCodeToolCallChatResponseContent } from './claude-code-tool-call-c
|
|
|
51
51
|
import { OPEN_CLAUDE_CODE_CONFIG, OPEN_CLAUDE_CODE_MEMORY } from './claude-code-command-contribution';
|
|
52
52
|
|
|
53
53
|
export const CLAUDE_SESSION_ID_KEY = 'claudeSessionId';
|
|
54
|
-
export const CLAUDE_PERMISSION_MODE_KEY = 'claudePermissionMode';
|
|
55
54
|
export const CLAUDE_EDIT_TOOL_USES_KEY = 'claudeEditToolUses';
|
|
56
55
|
export const CLAUDE_INPUT_TOKENS_KEY = 'claudeInputTokens';
|
|
57
56
|
export const CLAUDE_OUTPUT_TOKENS_KEY = 'claudeOutputTokens';
|
|
@@ -152,6 +151,12 @@ export class ClaudeCodeChatAgent implements ChatAgent {
|
|
|
152
151
|
locations: ChatAgentLocation[] = ChatAgentLocation.ALL;
|
|
153
152
|
tags = [nls.localizeByDefault('Chat')];
|
|
154
153
|
|
|
154
|
+
modes = [
|
|
155
|
+
{ id: 'default', name: nls.localize('theia/ai/claude-code/askBeforeEdit', 'Ask before edit') },
|
|
156
|
+
{ id: 'acceptEdits', name: nls.localize('theia/ai/claude-code/editAutomatically', 'Edit automatically') },
|
|
157
|
+
{ id: 'plan', name: nls.localize('theia/ai/claude-code/plan', 'Plan mode') }
|
|
158
|
+
];
|
|
159
|
+
|
|
155
160
|
variables = [];
|
|
156
161
|
prompts = [{ id: systemPromptAppendixTemplate.id, defaultVariant: systemPromptAppendixTemplate }];
|
|
157
162
|
languageModelRequirements = [];
|
|
@@ -188,6 +193,9 @@ export class ClaudeCodeChatAgent implements ChatAgent {
|
|
|
188
193
|
@inject(TokenUsageService)
|
|
189
194
|
protected readonly tokenUsageService: TokenUsageService;
|
|
190
195
|
|
|
196
|
+
@inject(ILogger) @named('claude-code')
|
|
197
|
+
protected readonly logger: ILogger;
|
|
198
|
+
|
|
191
199
|
async invoke(request: MutableChatRequestModel, chatAgentService?: ChatAgentService): Promise<void> {
|
|
192
200
|
this.warnIfDifferentAgentRequests(request);
|
|
193
201
|
|
|
@@ -249,7 +257,7 @@ export class ClaudeCodeChatAgent implements ChatAgent {
|
|
|
249
257
|
|
|
250
258
|
return request.response.complete();
|
|
251
259
|
} catch (error) {
|
|
252
|
-
|
|
260
|
+
this.logger.error('Error handling chat interaction:', error);
|
|
253
261
|
request.response.response.addContent(new ErrorChatResponseContentImpl(error));
|
|
254
262
|
request.response.error(error);
|
|
255
263
|
} finally {
|
|
@@ -388,12 +396,11 @@ export class ClaudeCodeChatAgent implements ChatAgent {
|
|
|
388
396
|
request.addData(CLAUDE_SESSION_ID_KEY, sessionId);
|
|
389
397
|
}
|
|
390
398
|
|
|
391
|
-
protected
|
|
392
|
-
return request.getDataByKey(CLAUDE_PERMISSION_MODE_KEY) ?? 'acceptEdits';
|
|
393
|
-
}
|
|
399
|
+
protected readonly ALLOWED_MODES: PermissionMode[] = ['default', 'acceptEdits', 'plan', 'bypassPermissions'];
|
|
394
400
|
|
|
395
|
-
protected
|
|
396
|
-
request.
|
|
401
|
+
protected getClaudePermissionMode(request: MutableChatRequestModel): PermissionMode {
|
|
402
|
+
const modeId = request.request.modeId ?? 'default';
|
|
403
|
+
return this.ALLOWED_MODES.includes(modeId as PermissionMode) ? modeId as PermissionMode : 'default';
|
|
397
404
|
}
|
|
398
405
|
|
|
399
406
|
protected getClaudeModelName(request: MutableChatRequestModel): string | undefined {
|
|
@@ -475,7 +482,7 @@ export class ClaudeCodeChatAgent implements ChatAgent {
|
|
|
475
482
|
requestId
|
|
476
483
|
});
|
|
477
484
|
} catch (error) {
|
|
478
|
-
|
|
485
|
+
this.logger.error('Failed to report token usage:', error);
|
|
479
486
|
}
|
|
480
487
|
}
|
|
481
488
|
|
|
@@ -19,11 +19,11 @@ import { ChangeSetFileElement, ChangeSetFileElementFactory } from '@theia/ai-cha
|
|
|
19
19
|
import { ChangeSetElement } from '@theia/ai-chat/lib/common/change-set';
|
|
20
20
|
import { ContentReplacerV1Impl, Replacement } from '@theia/core/lib/common/content-replacer';
|
|
21
21
|
import { URI } from '@theia/core/lib/common/uri';
|
|
22
|
-
import { inject, injectable } from '@theia/core/shared/inversify';
|
|
22
|
+
import { inject, injectable, named } from '@theia/core/shared/inversify';
|
|
23
23
|
import { FileService } from '@theia/filesystem/lib/browser/file-service';
|
|
24
24
|
import { WorkspaceService } from '@theia/workspace/lib/browser';
|
|
25
25
|
import { FileEditBackupService } from './claude-code-file-edit-backup-service';
|
|
26
|
-
import { nls } from '@theia/core';
|
|
26
|
+
import { ILogger, nls } from '@theia/core';
|
|
27
27
|
|
|
28
28
|
export interface EditToolInput {
|
|
29
29
|
file_path: string;
|
|
@@ -85,6 +85,9 @@ export class ClaudeCodeEditToolServiceImpl implements ClaudeCodeEditToolService
|
|
|
85
85
|
@inject(FileEditBackupService)
|
|
86
86
|
protected readonly backupService: FileEditBackupService;
|
|
87
87
|
|
|
88
|
+
@inject(ILogger) @named('claude-code')
|
|
89
|
+
protected readonly logger: ILogger;
|
|
90
|
+
|
|
88
91
|
private readonly contentReplacer = new ContentReplacerV1Impl();
|
|
89
92
|
|
|
90
93
|
async handleEditTool(toolUse: ToolUseBlock, request: MutableChatRequestModel, context: EditToolContext): Promise<void> {
|
|
@@ -103,7 +106,7 @@ export class ClaudeCodeEditToolServiceImpl implements ClaudeCodeEditToolService
|
|
|
103
106
|
break;
|
|
104
107
|
}
|
|
105
108
|
} catch (error) {
|
|
106
|
-
|
|
109
|
+
this.logger.error('Error handling edit tool:', error);
|
|
107
110
|
}
|
|
108
111
|
}
|
|
109
112
|
|
|
@@ -140,7 +143,7 @@ export class ClaudeCodeEditToolServiceImpl implements ClaudeCodeEditToolService
|
|
|
140
143
|
|
|
141
144
|
request.session.changeSet.setTitle(nls.localize('theia/ai/claude-code/changeSetTitle', 'Changes by Claude Code'));
|
|
142
145
|
} catch (error) {
|
|
143
|
-
|
|
146
|
+
this.logger.error('Error handling Edit tool:', error);
|
|
144
147
|
}
|
|
145
148
|
}
|
|
146
149
|
|
|
@@ -177,7 +180,7 @@ export class ClaudeCodeEditToolServiceImpl implements ClaudeCodeEditToolService
|
|
|
177
180
|
|
|
178
181
|
request.session.changeSet.setTitle(nls.localize('theia/ai/claude-code/changeSetTitle', 'Changes by Claude Code'));
|
|
179
182
|
} catch (error) {
|
|
180
|
-
|
|
183
|
+
this.logger.error('Error handling MultiEdit tool:', error);
|
|
181
184
|
}
|
|
182
185
|
}
|
|
183
186
|
|
|
@@ -237,7 +240,7 @@ export class ClaudeCodeEditToolServiceImpl implements ClaudeCodeEditToolService
|
|
|
237
240
|
|
|
238
241
|
request.session.changeSet.setTitle(nls.localize('theia/ai/claude-code/changeSetTitle', 'Changes by Claude Code'));
|
|
239
242
|
} catch (error) {
|
|
240
|
-
|
|
243
|
+
this.logger.error('Error handling Write tool:', error);
|
|
241
244
|
}
|
|
242
245
|
}
|
|
243
246
|
|
|
@@ -279,7 +282,7 @@ export class ClaudeCodeEditToolServiceImpl implements ClaudeCodeEditToolService
|
|
|
279
282
|
);
|
|
280
283
|
|
|
281
284
|
if (errors.length > 0) {
|
|
282
|
-
|
|
285
|
+
this.logger.error('Content replacement errors:', errors);
|
|
283
286
|
return;
|
|
284
287
|
}
|
|
285
288
|
|
|
@@ -17,10 +17,11 @@
|
|
|
17
17
|
import { MutableChatRequestModel } from '@theia/ai-chat';
|
|
18
18
|
import { ChangeSetFileElement } from '@theia/ai-chat/lib/browser/change-set-file-element';
|
|
19
19
|
import { URI } from '@theia/core/lib/common/uri';
|
|
20
|
-
import { inject, injectable } from '@theia/core/shared/inversify';
|
|
20
|
+
import { inject, injectable, named } from '@theia/core/shared/inversify';
|
|
21
21
|
import { FileService } from '@theia/filesystem/lib/browser/file-service';
|
|
22
22
|
import { WorkspaceService } from '@theia/workspace/lib/browser';
|
|
23
23
|
import { CLAUDE_SESSION_ID_KEY } from './claude-code-chat-agent';
|
|
24
|
+
import { ILogger } from '@theia/core';
|
|
24
25
|
|
|
25
26
|
export const FileEditBackupService = Symbol('FileEditBackupService');
|
|
26
27
|
|
|
@@ -80,6 +81,9 @@ export class FileEditBackupServiceImpl implements FileEditBackupService {
|
|
|
80
81
|
@inject(WorkspaceService)
|
|
81
82
|
protected readonly workspaceService: WorkspaceService;
|
|
82
83
|
|
|
84
|
+
@inject(ILogger) @named('claude-code')
|
|
85
|
+
protected readonly logger: ILogger;
|
|
86
|
+
|
|
83
87
|
getLocation(workspaceRoot: URI): URI {
|
|
84
88
|
// This path structure must match the backup hooks in claude-code-service-impl.ts
|
|
85
89
|
// See ensureFileBackupHook() method which creates backups at:
|
|
@@ -107,7 +111,7 @@ export class FileEditBackupServiceImpl implements FileEditBackupService {
|
|
|
107
111
|
return backupContent.value.toString();
|
|
108
112
|
}
|
|
109
113
|
} catch (error) {
|
|
110
|
-
|
|
114
|
+
this.logger.error('Error reading backup file:', error);
|
|
111
115
|
}
|
|
112
116
|
|
|
113
117
|
return undefined;
|
|
@@ -14,17 +14,18 @@
|
|
|
14
14
|
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
15
15
|
// *****************************************************************************
|
|
16
16
|
|
|
17
|
-
import {
|
|
18
|
-
import { nls, URI } from '@theia/core';
|
|
17
|
+
import { PromptService } from '@theia/ai-core/lib/common/prompt-service';
|
|
18
|
+
import { DisposableCollection, ILogger, nls, URI } from '@theia/core';
|
|
19
19
|
import { FrontendApplicationContribution } from '@theia/core/lib/browser';
|
|
20
|
-
import {
|
|
21
|
-
import { inject, injectable } from '@theia/core/shared/inversify';
|
|
20
|
+
import { inject, injectable, named } from '@theia/core/shared/inversify';
|
|
22
21
|
import { FileService } from '@theia/filesystem/lib/browser/file-service';
|
|
23
|
-
import
|
|
22
|
+
import { FileChangeType } from '@theia/filesystem/lib/common/files';
|
|
24
23
|
import { WorkspaceService } from '@theia/workspace/lib/browser';
|
|
25
24
|
import { CLAUDE_CHAT_AGENT_ID } from './claude-code-chat-agent';
|
|
26
25
|
|
|
27
26
|
const CLAUDE_COMMANDS = '.claude/commands';
|
|
27
|
+
const COMMAND_FRAGMENT_PREFIX = 'claude-code-slash-';
|
|
28
|
+
const DYNAMIC_COMMAND_PREFIX = 'claude-code-dynamic-';
|
|
28
29
|
|
|
29
30
|
interface StaticSlashCommand {
|
|
30
31
|
name: string;
|
|
@@ -65,8 +66,11 @@ export class ClaudeCodeSlashCommandsContribution implements FrontendApplicationC
|
|
|
65
66
|
}
|
|
66
67
|
];
|
|
67
68
|
|
|
68
|
-
@inject(
|
|
69
|
-
protected readonly
|
|
69
|
+
@inject(ILogger) @named('claude-code')
|
|
70
|
+
protected readonly logger: ILogger;
|
|
71
|
+
|
|
72
|
+
@inject(PromptService)
|
|
73
|
+
protected readonly promptService: PromptService;
|
|
70
74
|
|
|
71
75
|
@inject(WorkspaceService)
|
|
72
76
|
protected readonly workspaceService: WorkspaceService;
|
|
@@ -74,86 +78,161 @@ export class ClaudeCodeSlashCommandsContribution implements FrontendApplicationC
|
|
|
74
78
|
@inject(FileService)
|
|
75
79
|
protected readonly fileService: FileService;
|
|
76
80
|
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
81
|
+
protected readonly toDispose = new DisposableCollection();
|
|
82
|
+
protected currentWorkspaceRoot: URI | undefined;
|
|
83
|
+
protected fileWatcherDisposable: DisposableCollection | undefined;
|
|
84
|
+
|
|
85
|
+
async onStart(): Promise<void> {
|
|
86
|
+
this.registerStaticCommands();
|
|
87
|
+
await this.initializeDynamicCommands();
|
|
88
|
+
|
|
89
|
+
this.toDispose.push(
|
|
90
|
+
this.workspaceService.onWorkspaceChanged(() => this.handleWorkspaceChange())
|
|
91
|
+
);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
onStop(): void {
|
|
95
|
+
this.toDispose.dispose();
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
protected registerStaticCommands(): void {
|
|
99
|
+
for (const command of this.staticCommands) {
|
|
100
|
+
this.promptService.addBuiltInPromptFragment({
|
|
101
|
+
id: `${COMMAND_FRAGMENT_PREFIX}${command.name}`,
|
|
102
|
+
template: `/${command.name}`,
|
|
103
|
+
isCommand: true,
|
|
104
|
+
commandName: command.name,
|
|
105
|
+
commandDescription: command.description,
|
|
106
|
+
commandAgents: [CLAUDE_CHAT_AGENT_ID]
|
|
107
|
+
});
|
|
92
108
|
}
|
|
109
|
+
}
|
|
93
110
|
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
111
|
+
protected async initializeDynamicCommands(): Promise<void> {
|
|
112
|
+
const workspaceRoot = this.getWorkspaceRoot();
|
|
113
|
+
if (!workspaceRoot) {
|
|
114
|
+
return;
|
|
97
115
|
}
|
|
98
116
|
|
|
117
|
+
this.currentWorkspaceRoot = workspaceRoot;
|
|
118
|
+
await this.registerDynamicCommandsForWorkspace(workspaceRoot);
|
|
119
|
+
this.setupFileWatcher(workspaceRoot);
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
protected async registerDynamicCommandsForWorkspace(workspaceRoot: URI): Promise<void> {
|
|
123
|
+
const commandsUri = this.getCommandsUri(workspaceRoot);
|
|
124
|
+
const files = await this.listMarkdownFiles(commandsUri);
|
|
125
|
+
|
|
126
|
+
for (const filename of files) {
|
|
127
|
+
await this.registerDynamicCommand(commandsUri, filename);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
protected async registerDynamicCommand(commandsDir: URI, filename: string): Promise<void> {
|
|
132
|
+
const commandName = this.getCommandNameFromFilename(filename);
|
|
133
|
+
const fileUri = commandsDir.resolve(filename);
|
|
134
|
+
|
|
99
135
|
try {
|
|
100
|
-
const
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
label: command.name,
|
|
108
|
-
range: completionRange,
|
|
109
|
-
detail: command.description
|
|
110
|
-
});
|
|
136
|
+
const content = await this.fileService.read(fileUri);
|
|
137
|
+
this.promptService.addBuiltInPromptFragment({
|
|
138
|
+
id: this.getDynamicCommandId(commandName),
|
|
139
|
+
template: content.value,
|
|
140
|
+
isCommand: true,
|
|
141
|
+
commandName,
|
|
142
|
+
commandAgents: [CLAUDE_CHAT_AGENT_ID]
|
|
111
143
|
});
|
|
144
|
+
} catch (error) {
|
|
145
|
+
this.logger.error(`Failed to register Claude Code slash command '${commandName}' from ${fileUri}:`, error);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
112
148
|
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
const uri = roots[0].resource;
|
|
117
|
-
const claudeCommandsUri = uri.resolve(CLAUDE_COMMANDS);
|
|
118
|
-
const files = await this.listFilesDirectly(claudeCommandsUri);
|
|
119
|
-
const commands = files
|
|
120
|
-
.filter(file => file.endsWith('.md'))
|
|
121
|
-
.map(file => file.replace(/\.md$/, ''));
|
|
122
|
-
|
|
123
|
-
commands.forEach(commandName => {
|
|
124
|
-
suggestions.push({
|
|
125
|
-
insertText: `${commandName} `,
|
|
126
|
-
kind: monaco.languages.CompletionItemKind.Function,
|
|
127
|
-
label: commandName,
|
|
128
|
-
range: completionRange,
|
|
129
|
-
detail: nls.localize('theia/ai/claude-code/commandDetail', 'Claude command: {0}', commandName)
|
|
130
|
-
});
|
|
131
|
-
});
|
|
132
|
-
}
|
|
149
|
+
protected setupFileWatcher(workspaceRoot: URI): void {
|
|
150
|
+
this.fileWatcherDisposable?.dispose();
|
|
151
|
+
this.fileWatcherDisposable = new DisposableCollection();
|
|
133
152
|
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
153
|
+
const commandsUri = this.getCommandsUri(workspaceRoot);
|
|
154
|
+
|
|
155
|
+
this.fileWatcherDisposable.push(
|
|
156
|
+
this.fileService.onDidFilesChange(async event => {
|
|
157
|
+
const relevantChanges = event.changes.filter(change =>
|
|
158
|
+
this.isCommandFile(change.resource, commandsUri)
|
|
159
|
+
);
|
|
160
|
+
|
|
161
|
+
if (relevantChanges.length === 0) {
|
|
162
|
+
return;
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
for (const change of relevantChanges) {
|
|
166
|
+
await this.handleFileChange(change.resource, change.type, commandsUri);
|
|
167
|
+
}
|
|
168
|
+
})
|
|
169
|
+
);
|
|
170
|
+
|
|
171
|
+
this.toDispose.push(this.fileWatcherDisposable);
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
protected async handleFileChange(resource: URI, changeType: FileChangeType, commandsUri: URI): Promise<void> {
|
|
175
|
+
const filename = resource.path.base;
|
|
176
|
+
const commandName = this.getCommandNameFromFilename(filename);
|
|
177
|
+
const fragmentId = this.getDynamicCommandId(commandName);
|
|
178
|
+
|
|
179
|
+
if (changeType === FileChangeType.DELETED) {
|
|
180
|
+
this.promptService.removePromptFragment(fragmentId);
|
|
181
|
+
} else if (changeType === FileChangeType.ADDED || changeType === FileChangeType.UPDATED) {
|
|
182
|
+
await this.registerDynamicCommand(commandsUri, filename);
|
|
138
183
|
}
|
|
139
184
|
}
|
|
140
185
|
|
|
141
|
-
protected
|
|
142
|
-
const
|
|
143
|
-
const lineContent = model.getLineContent(position.lineNumber);
|
|
186
|
+
protected async handleWorkspaceChange(): Promise<void> {
|
|
187
|
+
const newRoot = this.getWorkspaceRoot();
|
|
144
188
|
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
if (characterBeforeCurrentWord !== triggerCharacter) {
|
|
148
|
-
return undefined;
|
|
189
|
+
if (this.currentWorkspaceRoot?.toString() === newRoot?.toString()) {
|
|
190
|
+
return;
|
|
149
191
|
}
|
|
150
192
|
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
193
|
+
await this.clearDynamicCommands();
|
|
194
|
+
this.currentWorkspaceRoot = newRoot;
|
|
195
|
+
await this.initializeDynamicCommands();
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
protected async clearDynamicCommands(): Promise<void> {
|
|
199
|
+
if (!this.currentWorkspaceRoot) {
|
|
200
|
+
return;
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
const commandsUri = this.getCommandsUri(this.currentWorkspaceRoot);
|
|
204
|
+
const files = await this.listMarkdownFiles(commandsUri);
|
|
205
|
+
|
|
206
|
+
for (const filename of files) {
|
|
207
|
+
const commandName = this.getCommandNameFromFilename(filename);
|
|
208
|
+
this.promptService.removePromptFragment(this.getDynamicCommandId(commandName));
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
protected getWorkspaceRoot(): URI | undefined {
|
|
213
|
+
const roots = this.workspaceService.tryGetRoots();
|
|
214
|
+
return roots.length > 0 ? roots[0].resource : undefined;
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
protected getCommandsUri(workspaceRoot: URI): URI {
|
|
218
|
+
return workspaceRoot.resolve(CLAUDE_COMMANDS);
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
protected isCommandFile(resource: URI, commandsUri: URI): boolean {
|
|
222
|
+
return resource.toString().startsWith(commandsUri.toString()) && resource.path.ext === '.md';
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
protected getCommandNameFromFilename(filename: string): string {
|
|
226
|
+
return filename.replace(/\.md$/, '');
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
protected getDynamicCommandId(commandName: string): string {
|
|
230
|
+
return `${DYNAMIC_COMMAND_PREFIX}${commandName}`;
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
protected async listMarkdownFiles(uri: URI): Promise<string[]> {
|
|
234
|
+
const allFiles = await this.listFilesDirectly(uri);
|
|
235
|
+
return allFiles.filter(file => file.endsWith('.md'));
|
|
157
236
|
}
|
|
158
237
|
|
|
159
238
|
protected async listFilesDirectly(uri: URI): Promise<string[]> {
|