@theia/ai-claude-code 1.67.0-next.3 → 1.67.0-next.56
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/README.md +1 -0
- package/package.json +10 -10
- package/lib/browser/claude-code-chat-agent.d.ts +0 -80
- package/lib/browser/claude-code-chat-agent.d.ts.map +0 -1
- package/lib/browser/claude-code-chat-agent.js +0 -517
- package/lib/browser/claude-code-chat-agent.js.map +0 -1
- package/lib/browser/claude-code-command-contribution.d.ts +0 -16
- package/lib/browser/claude-code-command-contribution.d.ts.map +0 -1
- package/lib/browser/claude-code-command-contribution.js +0 -86
- package/lib/browser/claude-code-command-contribution.js.map +0 -1
- package/lib/browser/claude-code-edit-tool-service.d.ts +0 -61
- package/lib/browser/claude-code-edit-tool-service.d.ts.map +0 -1
- package/lib/browser/claude-code-edit-tool-service.js +0 -220
- package/lib/browser/claude-code-edit-tool-service.js.map +0 -1
- package/lib/browser/claude-code-file-edit-backup-service.d.ts +0 -57
- package/lib/browser/claude-code-file-edit-backup-service.d.ts.map +0 -1
- package/lib/browser/claude-code-file-edit-backup-service.js +0 -92
- package/lib/browser/claude-code-file-edit-backup-service.js.map +0 -1
- package/lib/browser/claude-code-frontend-module.d.ts +0 -5
- package/lib/browser/claude-code-frontend-module.d.ts.map +0 -1
- package/lib/browser/claude-code-frontend-module.js +0 -83
- package/lib/browser/claude-code-frontend-module.js.map +0 -1
- package/lib/browser/claude-code-frontend-service.d.ts +0 -39
- package/lib/browser/claude-code-frontend-service.d.ts.map +0 -1
- package/lib/browser/claude-code-frontend-service.js +0 -189
- package/lib/browser/claude-code-frontend-service.js.map +0 -1
- package/lib/browser/claude-code-slash-commands-contribution.d.ts +0 -17
- package/lib/browser/claude-code-slash-commands-contribution.d.ts.map +0 -1
- package/lib/browser/claude-code-slash-commands-contribution.js +0 -155
- package/lib/browser/claude-code-slash-commands-contribution.js.map +0 -1
- package/lib/browser/claude-code-tool-call-content.d.ts +0 -8
- package/lib/browser/claude-code-tool-call-content.d.ts.map +0 -1
- package/lib/browser/claude-code-tool-call-content.js +0 -30
- package/lib/browser/claude-code-tool-call-content.js.map +0 -1
- package/lib/browser/renderers/bash-tool-renderer.d.ts +0 -10
- package/lib/browser/renderers/bash-tool-renderer.d.ts.map +0 -1
- package/lib/browser/renderers/bash-tool-renderer.js +0 -67
- package/lib/browser/renderers/bash-tool-renderer.js.map +0 -1
- package/lib/browser/renderers/collapsible-tool-renderer.d.ts +0 -13
- package/lib/browser/renderers/collapsible-tool-renderer.d.ts.map +0 -1
- package/lib/browser/renderers/collapsible-tool-renderer.js +0 -48
- package/lib/browser/renderers/collapsible-tool-renderer.js.map +0 -1
- package/lib/browser/renderers/edit-tool-renderer.d.ts +0 -16
- package/lib/browser/renderers/edit-tool-renderer.d.ts.map +0 -1
- package/lib/browser/renderers/edit-tool-renderer.js +0 -135
- package/lib/browser/renderers/edit-tool-renderer.js.map +0 -1
- package/lib/browser/renderers/glob-tool-renderer.d.ts +0 -14
- package/lib/browser/renderers/glob-tool-renderer.d.ts.map +0 -1
- package/lib/browser/renderers/glob-tool-renderer.js +0 -104
- package/lib/browser/renderers/glob-tool-renderer.js.map +0 -1
- package/lib/browser/renderers/grep-tool-renderer.d.ts +0 -14
- package/lib/browser/renderers/grep-tool-renderer.d.ts.map +0 -1
- package/lib/browser/renderers/grep-tool-renderer.js +0 -160
- package/lib/browser/renderers/grep-tool-renderer.js.map +0 -1
- package/lib/browser/renderers/ls-tool-renderer.d.ts +0 -16
- package/lib/browser/renderers/ls-tool-renderer.d.ts.map +0 -1
- package/lib/browser/renderers/ls-tool-renderer.js +0 -116
- package/lib/browser/renderers/ls-tool-renderer.js.map +0 -1
- package/lib/browser/renderers/multiedit-tool-renderer.d.ts +0 -16
- package/lib/browser/renderers/multiedit-tool-renderer.d.ts.map +0 -1
- package/lib/browser/renderers/multiedit-tool-renderer.js +0 -148
- package/lib/browser/renderers/multiedit-tool-renderer.js.map +0 -1
- package/lib/browser/renderers/read-tool-renderer.d.ts +0 -16
- package/lib/browser/renderers/read-tool-renderer.d.ts.map +0 -1
- package/lib/browser/renderers/read-tool-renderer.js +0 -124
- package/lib/browser/renderers/read-tool-renderer.js.map +0 -1
- package/lib/browser/renderers/todo-write-renderer.d.ts +0 -10
- package/lib/browser/renderers/todo-write-renderer.d.ts.map +0 -1
- package/lib/browser/renderers/todo-write-renderer.js +0 -133
- package/lib/browser/renderers/todo-write-renderer.js.map +0 -1
- package/lib/browser/renderers/web-fetch-tool-renderer.d.ts +0 -10
- package/lib/browser/renderers/web-fetch-tool-renderer.d.ts.map +0 -1
- package/lib/browser/renderers/web-fetch-tool-renderer.js +0 -83
- package/lib/browser/renderers/web-fetch-tool-renderer.js.map +0 -1
- package/lib/browser/renderers/write-tool-renderer.d.ts +0 -16
- package/lib/browser/renderers/write-tool-renderer.d.ts.map +0 -1
- package/lib/browser/renderers/write-tool-renderer.js +0 -114
- package/lib/browser/renderers/write-tool-renderer.js.map +0 -1
- package/lib/common/claude-code-preferences.d.ts +0 -5
- package/lib/common/claude-code-preferences.d.ts.map +0 -1
- package/lib/common/claude-code-preferences.js +0 -40
- package/lib/common/claude-code-preferences.js.map +0 -1
- package/lib/common/claude-code-service.d.ts +0 -235
- package/lib/common/claude-code-service.d.ts.map +0 -1
- package/lib/common/claude-code-service.js +0 -82
- package/lib/common/claude-code-service.js.map +0 -1
- package/lib/common/index.d.ts +0 -2
- package/lib/common/index.d.ts.map +0 -1
- package/lib/common/index.js +0 -20
- package/lib/common/index.js.map +0 -1
- package/lib/node/claude-code-backend-module.d.ts +0 -4
- package/lib/node/claude-code-backend-module.d.ts.map +0 -1
- package/lib/node/claude-code-backend-module.js +0 -35
- package/lib/node/claude-code-backend-module.js.map +0 -1
- package/lib/node/claude-code-service-impl.d.ts +0 -33
- package/lib/node/claude-code-service-impl.d.ts.map +0 -1
- package/lib/node/claude-code-service-impl.js +0 -468
- package/lib/node/claude-code-service-impl.js.map +0 -1
- package/lib/package.spec.d.ts +0 -1
- package/lib/package.spec.d.ts.map +0 -1
- package/lib/package.spec.js +0 -26
- package/lib/package.spec.js.map +0 -1
|
@@ -1,124 +0,0 @@
|
|
|
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.ReadToolRenderer = void 0;
|
|
19
|
-
const tslib_1 = require("tslib");
|
|
20
|
-
const browser_1 = require("@theia/core/lib/browser");
|
|
21
|
-
const uri_1 = require("@theia/core/lib/common/uri");
|
|
22
|
-
const inversify_1 = require("@theia/core/shared/inversify");
|
|
23
|
-
const React = require("@theia/core/shared/react");
|
|
24
|
-
const browser_2 = require("@theia/editor/lib/browser");
|
|
25
|
-
const browser_3 = require("@theia/workspace/lib/browser");
|
|
26
|
-
const claude_code_tool_call_content_1 = require("../claude-code-tool-call-content");
|
|
27
|
-
const collapsible_tool_renderer_1 = require("./collapsible-tool-renderer");
|
|
28
|
-
const core_1 = require("@theia/core");
|
|
29
|
-
let ReadToolRenderer = class ReadToolRenderer {
|
|
30
|
-
canHandle(response) {
|
|
31
|
-
if (claude_code_tool_call_content_1.ClaudeCodeToolCallChatResponseContent.is(response) && response.name === 'Read') {
|
|
32
|
-
return 15; // Higher than default ToolCallPartRenderer (10)
|
|
33
|
-
}
|
|
34
|
-
return -1;
|
|
35
|
-
}
|
|
36
|
-
render(response, parentNode) {
|
|
37
|
-
try {
|
|
38
|
-
const input = JSON.parse(response.arguments || '{}');
|
|
39
|
-
return React.createElement(ReadToolComponent, { input: input, workspaceService: this.workspaceService, labelProvider: this.labelProvider, editorManager: this.editorManager });
|
|
40
|
-
}
|
|
41
|
-
catch (error) {
|
|
42
|
-
console.warn('Failed to parse Read tool input:', error);
|
|
43
|
-
return React.createElement("div", { className: "claude-code-tool error" }, core_1.nls.localize('theia/ai/claude-code/failedToParseReadToolData', 'Failed to parse Read tool data'));
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
};
|
|
47
|
-
exports.ReadToolRenderer = ReadToolRenderer;
|
|
48
|
-
tslib_1.__decorate([
|
|
49
|
-
(0, inversify_1.inject)(browser_3.WorkspaceService),
|
|
50
|
-
tslib_1.__metadata("design:type", browser_3.WorkspaceService)
|
|
51
|
-
], ReadToolRenderer.prototype, "workspaceService", void 0);
|
|
52
|
-
tslib_1.__decorate([
|
|
53
|
-
(0, inversify_1.inject)(browser_1.LabelProvider),
|
|
54
|
-
tslib_1.__metadata("design:type", browser_1.LabelProvider)
|
|
55
|
-
], ReadToolRenderer.prototype, "labelProvider", void 0);
|
|
56
|
-
tslib_1.__decorate([
|
|
57
|
-
(0, inversify_1.inject)(browser_2.EditorManager),
|
|
58
|
-
tslib_1.__metadata("design:type", browser_2.EditorManager)
|
|
59
|
-
], ReadToolRenderer.prototype, "editorManager", void 0);
|
|
60
|
-
exports.ReadToolRenderer = ReadToolRenderer = tslib_1.__decorate([
|
|
61
|
-
(0, inversify_1.injectable)()
|
|
62
|
-
], ReadToolRenderer);
|
|
63
|
-
const ReadToolComponent = ({ input, workspaceService, labelProvider, editorManager }) => {
|
|
64
|
-
const getFileName = (filePath) => filePath.split('/').pop() || filePath;
|
|
65
|
-
const getWorkspaceRelativePath = async (filePath) => {
|
|
66
|
-
try {
|
|
67
|
-
const absoluteUri = new uri_1.URI(filePath).parent;
|
|
68
|
-
const workspaceRelativePath = await workspaceService.getWorkspaceRelativePath(absoluteUri);
|
|
69
|
-
return workspaceRelativePath || '';
|
|
70
|
-
}
|
|
71
|
-
catch {
|
|
72
|
-
return '';
|
|
73
|
-
}
|
|
74
|
-
};
|
|
75
|
-
const getIcon = (filePath) => {
|
|
76
|
-
try {
|
|
77
|
-
const uri = new uri_1.URI(filePath);
|
|
78
|
-
return labelProvider.getIcon(uri) || 'codicon-file';
|
|
79
|
-
}
|
|
80
|
-
catch {
|
|
81
|
-
return 'codicon-file';
|
|
82
|
-
}
|
|
83
|
-
};
|
|
84
|
-
const handleOpenFile = async () => {
|
|
85
|
-
try {
|
|
86
|
-
const uri = new uri_1.URI(input.file_path);
|
|
87
|
-
await editorManager.open(uri);
|
|
88
|
-
}
|
|
89
|
-
catch (error) {
|
|
90
|
-
console.error('Failed to open file:', error);
|
|
91
|
-
}
|
|
92
|
-
};
|
|
93
|
-
const [relativePath, setRelativePath] = React.useState('');
|
|
94
|
-
React.useEffect(() => {
|
|
95
|
-
getWorkspaceRelativePath(input.file_path).then(setRelativePath);
|
|
96
|
-
}, [input.file_path]);
|
|
97
|
-
const isEntireFile = !input.limit && !input.offset;
|
|
98
|
-
const compactHeader = (React.createElement(React.Fragment, null,
|
|
99
|
-
React.createElement("div", { className: "claude-code-tool header-left" },
|
|
100
|
-
React.createElement("span", { className: "claude-code-tool title" }, core_1.nls.localize('theia/ai/claude-code/reading', 'Reading')),
|
|
101
|
-
React.createElement("span", { className: `${getIcon(input.file_path)} claude-code-tool icon` }),
|
|
102
|
-
React.createElement("span", { className: "claude-code-tool file-name clickable-element", onClick: handleOpenFile, title: core_1.nls.localize('theia/ai/claude-code/openFileTooltip', 'Click to open file in editor') }, getFileName(input.file_path)),
|
|
103
|
-
relativePath && React.createElement("span", { className: "claude-code-tool relative-path" }, relativePath)),
|
|
104
|
-
React.createElement("div", { className: "claude-code-tool header-right" },
|
|
105
|
-
isEntireFile && (React.createElement("span", { className: "claude-code-tool badge" }, core_1.nls.localize('theia/ai/claude-code/entireFile', 'Entire File'))),
|
|
106
|
-
!isEntireFile && (React.createElement("span", { className: "claude-code-tool badge" }, core_1.nls.localize('theia/ai/claude-code/partial', 'Partial'))))));
|
|
107
|
-
const expandedContent = (React.createElement("div", { className: "claude-code-tool details" },
|
|
108
|
-
React.createElement("div", { className: "claude-code-tool detail-row" },
|
|
109
|
-
React.createElement("span", { className: "claude-code-tool detail-label" }, core_1.nls.localize('theia/ai/claude-code/filePath', 'File Path')),
|
|
110
|
-
React.createElement("code", { className: "claude-code-tool detail-value" }, input.file_path)),
|
|
111
|
-
input.offset && (React.createElement("div", { className: "claude-code-tool detail-row" },
|
|
112
|
-
React.createElement("span", { className: "claude-code-tool detail-label" }, core_1.nls.localize('theia/ai/claude-code/startingLine', 'Starting Line')),
|
|
113
|
-
React.createElement("span", { className: "claude-code-tool detail-value" }, input.offset))),
|
|
114
|
-
input.limit && (React.createElement("div", { className: "claude-code-tool detail-row" },
|
|
115
|
-
React.createElement("span", { className: "claude-code-tool detail-label" }, core_1.nls.localize('theia/ai/claude-code/lineLimit', 'Line Limit')),
|
|
116
|
-
React.createElement("span", { className: "claude-code-tool detail-value" }, input.limit))),
|
|
117
|
-
React.createElement("div", { className: "claude-code-tool detail-row" },
|
|
118
|
-
React.createElement("span", { className: "claude-code-tool detail-label" }, core_1.nls.localize('theia/ai/claude-code/readMode', 'Read Mode')),
|
|
119
|
-
React.createElement("span", { className: "claude-code-tool detail-value" }, isEntireFile
|
|
120
|
-
? core_1.nls.localize('theia/ai/claude-code/entireFile', 'Entire File')
|
|
121
|
-
: core_1.nls.localize('theia/ai/claude-code/partial', 'Partial')))));
|
|
122
|
-
return (React.createElement(collapsible_tool_renderer_1.CollapsibleToolRenderer, { compactHeader: compactHeader, expandedContent: expandedContent }));
|
|
123
|
-
};
|
|
124
|
-
//# sourceMappingURL=read-tool-renderer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"read-tool-renderer.js","sourceRoot":"","sources":["../../../src/browser/renderers/read-tool-renderer.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
|
-
import { ChatResponsePartRenderer } from '@theia/ai-chat-ui/lib/browser/chat-response-part-renderer';
|
|
3
|
-
import { ResponseNode } from '@theia/ai-chat-ui/lib/browser/chat-tree-view';
|
|
4
|
-
import { ChatResponseContent, ToolCallChatResponseContent } from '@theia/ai-chat/lib/common';
|
|
5
|
-
import { ReactNode } from '@theia/core/shared/react';
|
|
6
|
-
export declare class TodoWriteRenderer implements ChatResponsePartRenderer<ToolCallChatResponseContent> {
|
|
7
|
-
canHandle(response: ChatResponseContent): number;
|
|
8
|
-
render(response: ToolCallChatResponseContent, parentNode: ResponseNode): ReactNode;
|
|
9
|
-
}
|
|
10
|
-
//# sourceMappingURL=todo-write-renderer.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"todo-write-renderer.d.ts","sourceRoot":"","sources":["../../../src/browser/renderers/todo-write-renderer.tsx"],"names":[],"mappings":";AAgBA,OAAO,EAAE,wBAAwB,EAAE,MAAM,2DAA2D,CAAC;AACrG,OAAO,EAAE,YAAY,EAAE,MAAM,8CAA8C,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAE,2BAA2B,EAAE,MAAM,2BAA2B,CAAC;AAI7F,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAsDrD,qBACa,iBAAkB,YAAW,wBAAwB,CAAC,2BAA2B,CAAC;IAE3F,SAAS,CAAC,QAAQ,EAAE,mBAAmB,GAAG,MAAM;IAOhD,MAAM,CAAC,QAAQ,EAAE,2BAA2B,EAAE,UAAU,EAAE,YAAY,GAAG,SAAS;CASrF"}
|
|
@@ -1,133 +0,0 @@
|
|
|
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.TodoWriteRenderer = void 0;
|
|
19
|
-
const tslib_1 = require("tslib");
|
|
20
|
-
const browser_1 = require("@theia/core/lib/browser");
|
|
21
|
-
const inversify_1 = require("@theia/core/shared/inversify");
|
|
22
|
-
const React = require("@theia/core/shared/react");
|
|
23
|
-
const claude_code_tool_call_content_1 = require("../claude-code-tool-call-content");
|
|
24
|
-
const collapsible_tool_renderer_1 = require("./collapsible-tool-renderer");
|
|
25
|
-
const core_1 = require("@theia/core");
|
|
26
|
-
const TODO_PRIORITIES = {
|
|
27
|
-
'high': core_1.nls.localize('theia/ai/claude-code/todoPriority/high', 'high'),
|
|
28
|
-
'medium': core_1.nls.localize('theia/ai/claude-code/todoPriority/medium', 'medium'),
|
|
29
|
-
'low': core_1.nls.localize('theia/ai/claude-code/todoPriority/low', 'low')
|
|
30
|
-
};
|
|
31
|
-
// Session-scoped registry to track TodoWrite renderer instances per session
|
|
32
|
-
class TodoWriteRegistry {
|
|
33
|
-
static register(sessionId, hideFn) {
|
|
34
|
-
// Get or create instances set for this session
|
|
35
|
-
let sessionSet = this.sessionInstances.get(sessionId);
|
|
36
|
-
if (!sessionSet) {
|
|
37
|
-
sessionSet = new Set();
|
|
38
|
-
this.sessionInstances.set(sessionId, sessionSet);
|
|
39
|
-
}
|
|
40
|
-
// Hide all previous instances in this session
|
|
41
|
-
sessionSet.forEach(fn => fn());
|
|
42
|
-
// Clear the session registry
|
|
43
|
-
sessionSet.clear();
|
|
44
|
-
// Add the new instance
|
|
45
|
-
sessionSet.add(hideFn);
|
|
46
|
-
}
|
|
47
|
-
static unregister(sessionId, hideFn) {
|
|
48
|
-
const sessionSet = this.sessionInstances.get(sessionId);
|
|
49
|
-
if (sessionSet) {
|
|
50
|
-
sessionSet.delete(hideFn);
|
|
51
|
-
// Clean up empty session entries
|
|
52
|
-
if (sessionSet.size === 0) {
|
|
53
|
-
this.sessionInstances.delete(sessionId);
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
TodoWriteRegistry.sessionInstances = new Map();
|
|
59
|
-
let TodoWriteRenderer = class TodoWriteRenderer {
|
|
60
|
-
canHandle(response) {
|
|
61
|
-
if (claude_code_tool_call_content_1.ClaudeCodeToolCallChatResponseContent.is(response) && response.name === 'TodoWrite') {
|
|
62
|
-
return 15; // Higher than default ToolCallPartRenderer (10)
|
|
63
|
-
}
|
|
64
|
-
return -1;
|
|
65
|
-
}
|
|
66
|
-
render(response, parentNode) {
|
|
67
|
-
try {
|
|
68
|
-
const input = JSON.parse(response.arguments || '{}');
|
|
69
|
-
return React.createElement(TodoListComponent, { todos: input.todos || [], sessionId: parentNode.sessionId });
|
|
70
|
-
}
|
|
71
|
-
catch (error) {
|
|
72
|
-
console.warn('Failed to parse TodoWrite input:', error);
|
|
73
|
-
return React.createElement("div", { className: "claude-code-tool todo-list-error" }, core_1.nls.localize('theia/ai/claude-code/failedToParseTodoListData', 'Failed to parse todo list data'));
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
};
|
|
77
|
-
exports.TodoWriteRenderer = TodoWriteRenderer;
|
|
78
|
-
exports.TodoWriteRenderer = TodoWriteRenderer = tslib_1.__decorate([
|
|
79
|
-
(0, inversify_1.injectable)()
|
|
80
|
-
], TodoWriteRenderer);
|
|
81
|
-
const TodoListComponent = ({ todos, sessionId }) => {
|
|
82
|
-
const [isHidden, setIsHidden] = React.useState(false);
|
|
83
|
-
React.useEffect(() => {
|
|
84
|
-
const hideFn = () => setIsHidden(true);
|
|
85
|
-
TodoWriteRegistry.register(sessionId, hideFn);
|
|
86
|
-
return () => {
|
|
87
|
-
TodoWriteRegistry.unregister(sessionId, hideFn);
|
|
88
|
-
};
|
|
89
|
-
}, [sessionId]);
|
|
90
|
-
if (isHidden) {
|
|
91
|
-
// eslint-disable-next-line no-null/no-null
|
|
92
|
-
return null;
|
|
93
|
-
}
|
|
94
|
-
const getStatusIcon = (status) => {
|
|
95
|
-
switch (status) {
|
|
96
|
-
case 'completed':
|
|
97
|
-
return React.createElement("span", { className: `${(0, browser_1.codicon)('check')} claude-code-tool todo-status-icon completed` });
|
|
98
|
-
case 'in_progress':
|
|
99
|
-
return React.createElement("span", { className: `${(0, browser_1.codicon)('loading')} claude-code-tool todo-status-icon in-progress theia-animation-spin` });
|
|
100
|
-
case 'pending':
|
|
101
|
-
default:
|
|
102
|
-
return React.createElement("span", { className: `${(0, browser_1.codicon)('circle-outline')} claude-code-tool todo-status-icon pending` });
|
|
103
|
-
}
|
|
104
|
-
};
|
|
105
|
-
const getPriorityBadge = (priority) => (React.createElement("span", { className: `claude-code-tool todo-priority priority-${priority}` }, TODO_PRIORITIES[priority]));
|
|
106
|
-
if (!todos || todos.length === 0) {
|
|
107
|
-
return (React.createElement("div", { className: "claude-code-tool todo-list-container" },
|
|
108
|
-
React.createElement("div", { className: "claude-code-tool todo-list-header" },
|
|
109
|
-
React.createElement("span", { className: `${(0, browser_1.codicon)('checklist')} claude-code-tool todo-list-icon` }),
|
|
110
|
-
React.createElement("span", { className: "claude-code-tool todo-list-title" }, core_1.nls.localize('theia/ai/claude-code/todoList', 'Todo List'))),
|
|
111
|
-
React.createElement("div", { className: "claude-code-tool todo-list-empty" }, core_1.nls.localize('theia/ai/claude-code/emptyTodoList', 'No todos available'))));
|
|
112
|
-
}
|
|
113
|
-
const completedCount = todos.filter(todo => todo.status === 'completed').length;
|
|
114
|
-
const totalCount = todos.length;
|
|
115
|
-
const compactHeader = (React.createElement(React.Fragment, null,
|
|
116
|
-
React.createElement("div", { className: "claude-code-tool header-left" },
|
|
117
|
-
React.createElement("span", { className: "claude-code-tool title" }, core_1.nls.localize('theia/ai/claude-code/todoList', 'Todo List')),
|
|
118
|
-
React.createElement("span", { className: `${(0, browser_1.codicon)('checklist')} claude-code-tool icon` }),
|
|
119
|
-
React.createElement("span", { className: "claude-code-tool progress-text" }, core_1.nls.localize('theia/ai/claude-code/completedCount', '{0}/{1} completed', completedCount, totalCount))),
|
|
120
|
-
React.createElement("div", { className: "claude-code-tool header-right" },
|
|
121
|
-
React.createElement("span", { className: "claude-code-tool badge" }, totalCount === 1
|
|
122
|
-
? core_1.nls.localize('theia/ai/claude-code/oneItem', '1 item')
|
|
123
|
-
: core_1.nls.localize('theia/ai/claude-code/itemCount', '{0} items', totalCount)))));
|
|
124
|
-
const expandedContent = (React.createElement("div", { className: "claude-code-tool details" },
|
|
125
|
-
React.createElement("div", { className: "claude-code-tool todo-list-items" }, todos.map(todo => (React.createElement("div", { key: todo.id || todo.content, className: `claude-code-tool todo-item status-${todo.status}` },
|
|
126
|
-
React.createElement("div", { className: "claude-code-tool todo-item-main" },
|
|
127
|
-
React.createElement("div", { className: "claude-code-tool todo-item-status" }, getStatusIcon(todo.status)),
|
|
128
|
-
React.createElement("div", { className: "claude-code-tool todo-item-content" },
|
|
129
|
-
React.createElement("span", { className: "claude-code-tool todo-item-text" }, todo.content),
|
|
130
|
-
getPriorityBadge(todo.priority)))))))));
|
|
131
|
-
return (React.createElement(collapsible_tool_renderer_1.CollapsibleToolRenderer, { compactHeader: compactHeader, expandedContent: expandedContent, defaultExpanded: true }));
|
|
132
|
-
};
|
|
133
|
-
//# sourceMappingURL=todo-write-renderer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"todo-write-renderer.js","sourceRoot":"","sources":["../../../src/browser/renderers/todo-write-renderer.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
|
-
import { ChatResponsePartRenderer } from '@theia/ai-chat-ui/lib/browser/chat-response-part-renderer';
|
|
3
|
-
import { ResponseNode } from '@theia/ai-chat-ui/lib/browser/chat-tree-view';
|
|
4
|
-
import { ChatResponseContent, ToolCallChatResponseContent } from '@theia/ai-chat/lib/common';
|
|
5
|
-
import { ReactNode } from '@theia/core/shared/react';
|
|
6
|
-
export declare class WebFetchToolRenderer implements ChatResponsePartRenderer<ToolCallChatResponseContent> {
|
|
7
|
-
canHandle(response: ChatResponseContent): number;
|
|
8
|
-
render(response: ToolCallChatResponseContent, parentNode: ResponseNode): ReactNode;
|
|
9
|
-
}
|
|
10
|
-
//# sourceMappingURL=web-fetch-tool-renderer.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"web-fetch-tool-renderer.d.ts","sourceRoot":"","sources":["../../../src/browser/renderers/web-fetch-tool-renderer.tsx"],"names":[],"mappings":";AAgBA,OAAO,EAAE,wBAAwB,EAAE,MAAM,2DAA2D,CAAC;AACrG,OAAO,EAAE,YAAY,EAAE,MAAM,8CAA8C,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAE,2BAA2B,EAAE,MAAM,2BAA2B,CAAC;AAI7F,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAUrD,qBACa,oBAAqB,YAAW,wBAAwB,CAAC,2BAA2B,CAAC;IAE9F,SAAS,CAAC,QAAQ,EAAE,mBAAmB,GAAG,MAAM;IAOhD,MAAM,CAAC,QAAQ,EAAE,2BAA2B,EAAE,UAAU,EAAE,YAAY,GAAG,SAAS;CASrF"}
|
|
@@ -1,83 +0,0 @@
|
|
|
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.WebFetchToolRenderer = void 0;
|
|
19
|
-
const tslib_1 = require("tslib");
|
|
20
|
-
const browser_1 = require("@theia/core/lib/browser");
|
|
21
|
-
const inversify_1 = require("@theia/core/shared/inversify");
|
|
22
|
-
const React = require("@theia/core/shared/react");
|
|
23
|
-
const claude_code_tool_call_content_1 = require("../claude-code-tool-call-content");
|
|
24
|
-
const collapsible_tool_renderer_1 = require("./collapsible-tool-renderer");
|
|
25
|
-
const core_1 = require("@theia/core");
|
|
26
|
-
let WebFetchToolRenderer = class WebFetchToolRenderer {
|
|
27
|
-
canHandle(response) {
|
|
28
|
-
if (claude_code_tool_call_content_1.ClaudeCodeToolCallChatResponseContent.is(response) && response.name === 'WebFetch') {
|
|
29
|
-
return 15; // Higher than default ToolCallPartRenderer (10)
|
|
30
|
-
}
|
|
31
|
-
return -1;
|
|
32
|
-
}
|
|
33
|
-
render(response, parentNode) {
|
|
34
|
-
try {
|
|
35
|
-
const input = JSON.parse(response.arguments || '{}');
|
|
36
|
-
return React.createElement(WebFetchToolComponent, { input: input });
|
|
37
|
-
}
|
|
38
|
-
catch (error) {
|
|
39
|
-
console.warn('Failed to parse WebFetch tool input:', error);
|
|
40
|
-
return React.createElement("div", { className: "claude-code-tool error" }, core_1.nls.localize('theia/ai/claude-code/failedToParseWebFetchToolData', 'Failed to parse WebFetch tool data'));
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
};
|
|
44
|
-
exports.WebFetchToolRenderer = WebFetchToolRenderer;
|
|
45
|
-
exports.WebFetchToolRenderer = WebFetchToolRenderer = tslib_1.__decorate([
|
|
46
|
-
(0, inversify_1.injectable)()
|
|
47
|
-
], WebFetchToolRenderer);
|
|
48
|
-
const WebFetchToolComponent = ({ input }) => {
|
|
49
|
-
const getDomain = (url) => {
|
|
50
|
-
try {
|
|
51
|
-
return new URL(url).hostname;
|
|
52
|
-
}
|
|
53
|
-
catch {
|
|
54
|
-
return url;
|
|
55
|
-
}
|
|
56
|
-
};
|
|
57
|
-
const truncatePrompt = (prompt, maxLength = 100) => {
|
|
58
|
-
if (prompt.length <= maxLength) {
|
|
59
|
-
return prompt;
|
|
60
|
-
}
|
|
61
|
-
return prompt.substring(0, maxLength) + '...';
|
|
62
|
-
};
|
|
63
|
-
const compactHeader = (React.createElement(React.Fragment, null,
|
|
64
|
-
React.createElement("div", { className: "claude-code-tool header-left" },
|
|
65
|
-
React.createElement("span", { className: "claude-code-tool title" }, core_1.nls.localize('theia/ai/claude-code/fetching', 'Fetching')),
|
|
66
|
-
React.createElement("span", { className: `${(0, browser_1.codicon)('globe')} claude-code-tool icon` }),
|
|
67
|
-
React.createElement("span", { className: "claude-code-tool command" }, getDomain(input.url)),
|
|
68
|
-
React.createElement("span", { className: "claude-code-tool description", title: input.prompt }, truncatePrompt(input.prompt))),
|
|
69
|
-
React.createElement("div", { className: "claude-code-tool header-right" },
|
|
70
|
-
React.createElement("span", { className: "claude-code-tool badge" }, core_1.nls.localize('theia/ai/claude-code/webFetch', 'Web Fetch')))));
|
|
71
|
-
const expandedContent = (React.createElement("div", { className: "claude-code-tool details" },
|
|
72
|
-
React.createElement("div", { className: "claude-code-tool detail-row" },
|
|
73
|
-
React.createElement("span", { className: "claude-code-tool detail-label" }, core_1.nls.localize('theia/ai/claude-code/url', 'URL')),
|
|
74
|
-
React.createElement("code", { className: "claude-code-tool detail-value" }, input.url)),
|
|
75
|
-
React.createElement("div", { className: "claude-code-tool detail-row" },
|
|
76
|
-
React.createElement("span", { className: "claude-code-tool detail-label" }, core_1.nls.localize('theia/ai/claude-code/domain', 'Domain')),
|
|
77
|
-
React.createElement("span", { className: "claude-code-tool detail-value" }, getDomain(input.url))),
|
|
78
|
-
React.createElement("div", { className: "claude-code-tool detail-row" },
|
|
79
|
-
React.createElement("span", { className: "claude-code-tool detail-label" }, core_1.nls.localizeByDefault('Prompt')),
|
|
80
|
-
React.createElement("span", { className: "claude-code-tool detail-value" }, input.prompt))));
|
|
81
|
-
return (React.createElement(collapsible_tool_renderer_1.CollapsibleToolRenderer, { compactHeader: compactHeader, expandedContent: expandedContent }));
|
|
82
|
-
};
|
|
83
|
-
//# sourceMappingURL=web-fetch-tool-renderer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"web-fetch-tool-renderer.js","sourceRoot":"","sources":["../../../src/browser/renderers/web-fetch-tool-renderer.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
|
-
import { ChatResponsePartRenderer } from '@theia/ai-chat-ui/lib/browser/chat-response-part-renderer';
|
|
3
|
-
import { ResponseNode } from '@theia/ai-chat-ui/lib/browser/chat-tree-view';
|
|
4
|
-
import { ChatResponseContent, ToolCallChatResponseContent } from '@theia/ai-chat/lib/common';
|
|
5
|
-
import { LabelProvider } from '@theia/core/lib/browser';
|
|
6
|
-
import { ReactNode } from '@theia/core/shared/react';
|
|
7
|
-
import { EditorManager } from '@theia/editor/lib/browser';
|
|
8
|
-
import { WorkspaceService } from '@theia/workspace/lib/browser';
|
|
9
|
-
export declare class WriteToolRenderer implements ChatResponsePartRenderer<ToolCallChatResponseContent> {
|
|
10
|
-
protected readonly workspaceService: WorkspaceService;
|
|
11
|
-
protected readonly labelProvider: LabelProvider;
|
|
12
|
-
protected readonly editorManager: EditorManager;
|
|
13
|
-
canHandle(response: ChatResponseContent): number;
|
|
14
|
-
render(response: ToolCallChatResponseContent, parentNode: ResponseNode): ReactNode;
|
|
15
|
-
}
|
|
16
|
-
//# sourceMappingURL=write-tool-renderer.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"write-tool-renderer.d.ts","sourceRoot":"","sources":["../../../src/browser/renderers/write-tool-renderer.tsx"],"names":[],"mappings":";AAgBA,OAAO,EAAE,wBAAwB,EAAE,MAAM,2DAA2D,CAAC;AACrG,OAAO,EAAE,YAAY,EAAE,MAAM,8CAA8C,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAE,2BAA2B,EAAE,MAAM,2BAA2B,CAAC;AAC7F,OAAO,EAAW,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAIjE,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAUhE,qBACa,iBAAkB,YAAW,wBAAwB,CAAC,2BAA2B,CAAC;IAG3F,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAGtD,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IAGhD,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IAEhD,SAAS,CAAC,QAAQ,EAAE,mBAAmB,GAAG,MAAM;IAOhD,MAAM,CAAC,QAAQ,EAAE,2BAA2B,EAAE,UAAU,EAAE,YAAY,GAAG,SAAS;CAcrF"}
|
|
@@ -1,114 +0,0 @@
|
|
|
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.WriteToolRenderer = void 0;
|
|
19
|
-
const tslib_1 = require("tslib");
|
|
20
|
-
const browser_1 = require("@theia/core/lib/browser");
|
|
21
|
-
const uri_1 = require("@theia/core/lib/common/uri");
|
|
22
|
-
const inversify_1 = require("@theia/core/shared/inversify");
|
|
23
|
-
const React = require("@theia/core/shared/react");
|
|
24
|
-
const browser_2 = require("@theia/editor/lib/browser");
|
|
25
|
-
const browser_3 = require("@theia/workspace/lib/browser");
|
|
26
|
-
const claude_code_tool_call_content_1 = require("../claude-code-tool-call-content");
|
|
27
|
-
const collapsible_tool_renderer_1 = require("./collapsible-tool-renderer");
|
|
28
|
-
const core_1 = require("@theia/core");
|
|
29
|
-
let WriteToolRenderer = class WriteToolRenderer {
|
|
30
|
-
canHandle(response) {
|
|
31
|
-
if (claude_code_tool_call_content_1.ClaudeCodeToolCallChatResponseContent.is(response) && response.name === 'Write') {
|
|
32
|
-
return 15; // Higher than default ToolCallPartRenderer (10)
|
|
33
|
-
}
|
|
34
|
-
return -1;
|
|
35
|
-
}
|
|
36
|
-
render(response, parentNode) {
|
|
37
|
-
try {
|
|
38
|
-
const input = JSON.parse(response.arguments || '{}');
|
|
39
|
-
return React.createElement(WriteToolComponent, { input: input, workspaceService: this.workspaceService, labelProvider: this.labelProvider, editorManager: this.editorManager });
|
|
40
|
-
}
|
|
41
|
-
catch (error) {
|
|
42
|
-
console.warn('Failed to parse Write tool input:', error);
|
|
43
|
-
return React.createElement("div", { className: "claude-code-tool error" }, core_1.nls.localize('theia/ai/claude-code/failedToParseWriteToolData', 'Failed to parse Write tool data'));
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
};
|
|
47
|
-
exports.WriteToolRenderer = WriteToolRenderer;
|
|
48
|
-
tslib_1.__decorate([
|
|
49
|
-
(0, inversify_1.inject)(browser_3.WorkspaceService),
|
|
50
|
-
tslib_1.__metadata("design:type", browser_3.WorkspaceService)
|
|
51
|
-
], WriteToolRenderer.prototype, "workspaceService", void 0);
|
|
52
|
-
tslib_1.__decorate([
|
|
53
|
-
(0, inversify_1.inject)(browser_1.LabelProvider),
|
|
54
|
-
tslib_1.__metadata("design:type", browser_1.LabelProvider)
|
|
55
|
-
], WriteToolRenderer.prototype, "labelProvider", void 0);
|
|
56
|
-
tslib_1.__decorate([
|
|
57
|
-
(0, inversify_1.inject)(browser_2.EditorManager),
|
|
58
|
-
tslib_1.__metadata("design:type", browser_2.EditorManager)
|
|
59
|
-
], WriteToolRenderer.prototype, "editorManager", void 0);
|
|
60
|
-
exports.WriteToolRenderer = WriteToolRenderer = tslib_1.__decorate([
|
|
61
|
-
(0, inversify_1.injectable)()
|
|
62
|
-
], WriteToolRenderer);
|
|
63
|
-
const WriteToolComponent = ({ input, workspaceService, labelProvider, editorManager }) => {
|
|
64
|
-
const getFileName = (filePath) => filePath.split('/').pop() || filePath;
|
|
65
|
-
const getWorkspaceRelativePath = async (filePath) => {
|
|
66
|
-
try {
|
|
67
|
-
const absoluteUri = new uri_1.URI(filePath);
|
|
68
|
-
const workspaceRelativePath = await workspaceService.getWorkspaceRelativePath(absoluteUri);
|
|
69
|
-
return workspaceRelativePath || '';
|
|
70
|
-
}
|
|
71
|
-
catch {
|
|
72
|
-
return '';
|
|
73
|
-
}
|
|
74
|
-
};
|
|
75
|
-
const handleOpenFile = async () => {
|
|
76
|
-
try {
|
|
77
|
-
const uri = new uri_1.URI(input.file_path);
|
|
78
|
-
await editorManager.open(uri);
|
|
79
|
-
}
|
|
80
|
-
catch (error) {
|
|
81
|
-
console.error('Failed to open file:', error);
|
|
82
|
-
}
|
|
83
|
-
};
|
|
84
|
-
const [relativePath, setRelativePath] = React.useState('');
|
|
85
|
-
React.useEffect(() => {
|
|
86
|
-
getWorkspaceRelativePath(input.file_path).then(setRelativePath);
|
|
87
|
-
}, [input.file_path]);
|
|
88
|
-
const getContentSizeInfo = () => {
|
|
89
|
-
const lines = input.content.split('\n').length;
|
|
90
|
-
return `+${lines}`;
|
|
91
|
-
};
|
|
92
|
-
const compactHeader = (React.createElement(React.Fragment, null,
|
|
93
|
-
React.createElement("div", { className: "claude-code-tool header-left" },
|
|
94
|
-
React.createElement("span", { className: "claude-code-tool title" }, core_1.nls.localize('theia/ai/claude-code/writing', 'Writing')),
|
|
95
|
-
React.createElement("span", { className: `${(0, browser_1.codicon)('edit')} claude-code-tool icon` }),
|
|
96
|
-
React.createElement("span", { className: "claude-code-tool file-name clickable-element", onClick: handleOpenFile, title: core_1.nls.localize('theia/ai/claude-code/openFileTooltip', 'Click to open file in editor') }, getFileName(input.file_path)),
|
|
97
|
-
relativePath && React.createElement("span", { className: "claude-code-tool relative-path" }, relativePath)),
|
|
98
|
-
React.createElement("div", { className: "claude-code-tool header-right" },
|
|
99
|
-
React.createElement("span", { className: "claude-code-tool badge added" }, getContentSizeInfo()))));
|
|
100
|
-
const expandedContent = (React.createElement("div", { className: "claude-code-tool details" },
|
|
101
|
-
React.createElement("div", { className: "claude-code-tool detail-row" },
|
|
102
|
-
React.createElement("span", { className: "claude-code-tool detail-label" }, core_1.nls.localize('theia/ai/claude-code/filePath', 'File Path')),
|
|
103
|
-
React.createElement("code", { className: "claude-code-tool detail-value" }, input.file_path)),
|
|
104
|
-
React.createElement("div", { className: "claude-code-tool detail-row" },
|
|
105
|
-
React.createElement("span", { className: "claude-code-tool detail-label" }, core_1.nls.localizeByDefault('Preview')),
|
|
106
|
-
React.createElement("pre", { className: "claude-code-tool detail-value code-preview" }, input.content.length > 500
|
|
107
|
-
? input.content.substring(0, 500) + '...'
|
|
108
|
-
: input.content)),
|
|
109
|
-
React.createElement("div", { className: "claude-code-tool detail-row" },
|
|
110
|
-
React.createElement("span", { className: "claude-code-tool detail-label" }, core_1.nls.localize('theia/ai/claude-code/lines', 'Lines')),
|
|
111
|
-
React.createElement("span", { className: "claude-code-tool detail-value" }, input.content.split('\n').length))));
|
|
112
|
-
return (React.createElement(collapsible_tool_renderer_1.CollapsibleToolRenderer, { compactHeader: compactHeader, expandedContent: expandedContent }));
|
|
113
|
-
};
|
|
114
|
-
//# sourceMappingURL=write-tool-renderer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"write-tool-renderer.js","sourceRoot":"","sources":["../../../src/browser/renderers/write-tool-renderer.tsx"],"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;;;;AAKhF,qDAAiE;AACjE,oDAAiD;AACjD,4DAAkE;AAClE,kDAAkD;AAElD,uDAA0D;AAC1D,0DAAgE;AAChE,oFAAyF;AACzF,2EAAsE;AACtE,sCAAkC;AAQ3B,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IAW1B,SAAS,CAAC,QAA6B;QACnC,IAAI,qEAAqC,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAClF,OAAO,EAAE,CAAC,CAAC,gDAAgD;QAC/D,CAAC;QACD,OAAO,CAAC,CAAC,CAAC;IACd,CAAC;IAED,MAAM,CAAC,QAAqC,EAAE,UAAwB;QAClE,IAAI,CAAC;YACD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,IAAI,IAAI,CAAmB,CAAC;YACvE,OAAO,oBAAC,kBAAkB,IACtB,KAAK,EAAE,KAAK,EACZ,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EACvC,aAAa,EAAE,IAAI,CAAC,aAAa,EACjC,aAAa,EAAE,IAAI,CAAC,aAAa,GACnC,CAAC;QACP,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,mCAAmC,EAAE,KAAK,CAAC,CAAC;YACzD,OAAO,6BAAK,SAAS,EAAC,wBAAwB,IAAE,UAAG,CAAC,QAAQ,CAAC,iDAAiD,EAAE,iCAAiC,CAAC,CAAO,CAAC;QAC9J,CAAC;IACL,CAAC;CACJ,CAAA;AAhCY,8CAAiB;AAGP;IADlB,IAAA,kBAAM,EAAC,0BAAgB,CAAC;sCACY,0BAAgB;2DAAC;AAGnC;IADlB,IAAA,kBAAM,EAAC,uBAAa,CAAC;sCACY,uBAAa;wDAAC;AAG7B;IADlB,IAAA,kBAAM,EAAC,uBAAa,CAAC;sCACY,uBAAa;wDAAC;4BATvC,iBAAiB;IAD7B,IAAA,sBAAU,GAAE;GACA,iBAAiB,CAgC7B;AAED,MAAM,kBAAkB,GAKnB,CAAC,EAAE,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,aAAa,EAAE,EAAE,EAAE;IAC/D,MAAM,WAAW,GAAG,CAAC,QAAgB,EAAU,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,QAAQ,CAAC;IAExF,MAAM,wBAAwB,GAAG,KAAK,EAAE,QAAgB,EAAmB,EAAE;QACzE,IAAI,CAAC;YACD,MAAM,WAAW,GAAG,IAAI,SAAG,CAAC,QAAQ,CAAC,CAAC;YACtC,MAAM,qBAAqB,GAAG,MAAM,gBAAgB,CAAC,wBAAwB,CAAC,WAAW,CAAC,CAAC;YAC3F,OAAO,qBAAqB,IAAI,EAAE,CAAC;QACvC,CAAC;QAAC,MAAM,CAAC;YACL,OAAO,EAAE,CAAC;QACd,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,cAAc,GAAG,KAAK,IAAI,EAAE;QAC9B,IAAI,CAAC;YACD,MAAM,GAAG,GAAG,IAAI,SAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YACrC,MAAM,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAClC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAC;QACjD,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAS,EAAE,CAAC,CAAC;IAEnE,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACjB,wBAAwB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACpE,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;IAEtB,MAAM,kBAAkB,GAAG,GAAW,EAAE;QACpC,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;QAC/C,OAAO,IAAI,KAAK,EAAE,CAAC;IACvB,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG,CAClB;QACI,6BAAK,SAAS,EAAC,8BAA8B;YACzC,8BAAM,SAAS,EAAC,wBAAwB,IAAE,UAAG,CAAC,QAAQ,CAAC,8BAA8B,EAAE,SAAS,CAAC,CAAQ;YACzG,8BAAM,SAAS,EAAE,GAAG,IAAA,iBAAO,EAAC,MAAM,CAAC,wBAAwB,GAAI;YAC/D,8BACI,SAAS,EAAC,8CAA8C,EACxD,OAAO,EAAE,cAAc,EACvB,KAAK,EAAE,UAAG,CAAC,QAAQ,CAAC,sCAAsC,EAAE,8BAA8B,CAAC,IAE1F,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,CAC1B;YACN,YAAY,IAAI,8BAAM,SAAS,EAAC,gCAAgC,IAAE,YAAY,CAAQ,CACrF;QACN,6BAAK,SAAS,EAAC,+BAA+B;YAC1C,8BAAM,SAAS,EAAC,8BAA8B,IAAE,kBAAkB,EAAE,CAAQ,CAC1E,CACP,CACN,CAAC;IAEF,MAAM,eAAe,GAAG,CACpB,6BAAK,SAAS,EAAC,0BAA0B;QACrC,6BAAK,SAAS,EAAC,6BAA6B;YACxC,8BAAM,SAAS,EAAC,+BAA+B,IAAE,UAAG,CAAC,QAAQ,CAAC,+BAA+B,EAAE,WAAW,CAAC,CAAQ;YACnH,8BAAM,SAAS,EAAC,+BAA+B,IAAE,KAAK,CAAC,SAAS,CAAQ,CACtE;QACN,6BAAK,SAAS,EAAC,6BAA6B;YACxC,8BAAM,SAAS,EAAC,+BAA+B,IAAE,UAAG,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAQ;YACzF,6BAAK,SAAS,EAAC,4CAA4C,IACtD,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,GAAG;gBACvB,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,KAAK;gBACzC,CAAC,CAAC,KAAK,CAAC,OAAO,CACjB,CACJ;QACN,6BAAK,SAAS,EAAC,6BAA6B;YACxC,8BAAM,SAAS,EAAC,+BAA+B,IAAE,UAAG,CAAC,QAAQ,CAAC,4BAA4B,EAAE,OAAO,CAAC,CAAQ;YAC5G,8BAAM,SAAS,EAAC,+BAA+B,IAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAQ,CACvF,CACJ,CACT,CAAC;IAEF,OAAO,CACH,oBAAC,mDAAuB,IACpB,aAAa,EAAE,aAAa,EAC5B,eAAe,EAAE,eAAe,GAClC,CACL,CAAC;AACN,CAAC,CAAC"}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import { PreferenceSchema } from '@theia/core';
|
|
2
|
-
export declare const CLAUDE_CODE_EXECUTABLE_PATH_PREF = "ai-features.claudeCode.executablePath";
|
|
3
|
-
export declare const CLAUDE_CODE_API_KEY_PREF = "ai-features.claudeCode.apiKey";
|
|
4
|
-
export declare const ClaudeCodePreferencesSchema: PreferenceSchema;
|
|
5
|
-
//# sourceMappingURL=claude-code-preferences.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"claude-code-preferences.d.ts","sourceRoot":"","sources":["../../src/common/claude-code-preferences.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAO,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpD,eAAO,MAAM,gCAAgC,0CAA0C,CAAC;AACxF,eAAO,MAAM,wBAAwB,kCAAkC,CAAC;AAExE,eAAO,MAAM,2BAA2B,EAAE,gBAkBzC,CAAC"}
|
|
@@ -1,40 +0,0 @@
|
|
|
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.ClaudeCodePreferencesSchema = exports.CLAUDE_CODE_API_KEY_PREF = exports.CLAUDE_CODE_EXECUTABLE_PATH_PREF = void 0;
|
|
19
|
-
const ai_core_preferences_1 = require("@theia/ai-core/lib/common/ai-core-preferences");
|
|
20
|
-
const core_1 = require("@theia/core");
|
|
21
|
-
exports.CLAUDE_CODE_EXECUTABLE_PATH_PREF = 'ai-features.claudeCode.executablePath';
|
|
22
|
-
exports.CLAUDE_CODE_API_KEY_PREF = 'ai-features.claudeCode.apiKey';
|
|
23
|
-
exports.ClaudeCodePreferencesSchema = {
|
|
24
|
-
properties: {
|
|
25
|
-
[exports.CLAUDE_CODE_EXECUTABLE_PATH_PREF]: {
|
|
26
|
-
type: 'string',
|
|
27
|
-
markdownDescription: core_1.nls.localize('theia/ai/claude-code/executablePath/description', 'Path to the Claude Code executable (cli.js) of the `@anthropic-ai/claude-agent-sdk`.' +
|
|
28
|
-
'If not specified, the system will attempt to resolve the path automatically ' +
|
|
29
|
-
'from the global npm installation.'),
|
|
30
|
-
title: ai_core_preferences_1.AI_CORE_PREFERENCES_TITLE,
|
|
31
|
-
},
|
|
32
|
-
[exports.CLAUDE_CODE_API_KEY_PREF]: {
|
|
33
|
-
type: 'string',
|
|
34
|
-
markdownDescription: core_1.nls.localize('theia/ai/claude-code/apiKey/description', 'Enter an API Key for Claude Code. **Please note:** By using this preference the API key will be stored in clear text ' +
|
|
35
|
-
'on the machine running Theia. Use the environment variable `ANTHROPIC_API_KEY` to set the key securely.'),
|
|
36
|
-
title: ai_core_preferences_1.AI_CORE_PREFERENCES_TITLE,
|
|
37
|
-
},
|
|
38
|
-
}
|
|
39
|
-
};
|
|
40
|
-
//# sourceMappingURL=claude-code-preferences.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"claude-code-preferences.js","sourceRoot":"","sources":["../../src/common/claude-code-preferences.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,uFAA0F;AAC1F,sCAAoD;AAEvC,QAAA,gCAAgC,GAAG,uCAAuC,CAAC;AAC3E,QAAA,wBAAwB,GAAG,+BAA+B,CAAC;AAE3D,QAAA,2BAA2B,GAAqB;IACzD,UAAU,EAAE;QACR,CAAC,wCAAgC,CAAC,EAAE;YAChC,IAAI,EAAE,QAAQ;YACd,mBAAmB,EAAE,UAAG,CAAC,QAAQ,CAAC,iDAAiD,EAC/E,sFAAsF;gBACtF,8EAA8E;gBAC9E,mCAAmC,CAAC;YACxC,KAAK,EAAE,+CAAyB;SACnC;QACD,CAAC,gCAAwB,CAAC,EAAE;YACxB,IAAI,EAAE,QAAQ;YACd,mBAAmB,EAAE,UAAG,CAAC,QAAQ,CAAC,yCAAyC,EACvE,uHAAuH;gBACvH,yGAAyG,CAAC;YAC9G,KAAK,EAAE,+CAAyB;SACnC;KACJ;CACJ,CAAC"}
|