@theia/ai-claude-code 1.65.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (128) hide show
  1. package/README.md +30 -0
  2. package/lib/browser/claude-code-chat-agent.d.ts +82 -0
  3. package/lib/browser/claude-code-chat-agent.d.ts.map +1 -0
  4. package/lib/browser/claude-code-chat-agent.js +518 -0
  5. package/lib/browser/claude-code-chat-agent.js.map +1 -0
  6. package/lib/browser/claude-code-command-contribution.d.ts +16 -0
  7. package/lib/browser/claude-code-command-contribution.d.ts.map +1 -0
  8. package/lib/browser/claude-code-command-contribution.js +86 -0
  9. package/lib/browser/claude-code-command-contribution.js.map +1 -0
  10. package/lib/browser/claude-code-edit-tool-service.d.ts +61 -0
  11. package/lib/browser/claude-code-edit-tool-service.d.ts.map +1 -0
  12. package/lib/browser/claude-code-edit-tool-service.js +219 -0
  13. package/lib/browser/claude-code-edit-tool-service.js.map +1 -0
  14. package/lib/browser/claude-code-file-edit-backup-service.d.ts +57 -0
  15. package/lib/browser/claude-code-file-edit-backup-service.d.ts.map +1 -0
  16. package/lib/browser/claude-code-file-edit-backup-service.js +92 -0
  17. package/lib/browser/claude-code-file-edit-backup-service.js.map +1 -0
  18. package/lib/browser/claude-code-frontend-module.d.ts +5 -0
  19. package/lib/browser/claude-code-frontend-module.d.ts.map +1 -0
  20. package/lib/browser/claude-code-frontend-module.js +83 -0
  21. package/lib/browser/claude-code-frontend-module.js.map +1 -0
  22. package/lib/browser/claude-code-frontend-service.d.ts +40 -0
  23. package/lib/browser/claude-code-frontend-service.d.ts.map +1 -0
  24. package/lib/browser/claude-code-frontend-service.js +190 -0
  25. package/lib/browser/claude-code-frontend-service.js.map +1 -0
  26. package/lib/browser/claude-code-slash-commands-contribution.d.ts +17 -0
  27. package/lib/browser/claude-code-slash-commands-contribution.d.ts.map +1 -0
  28. package/lib/browser/claude-code-slash-commands-contribution.js +154 -0
  29. package/lib/browser/claude-code-slash-commands-contribution.js.map +1 -0
  30. package/lib/browser/claude-code-tool-call-content.d.ts +8 -0
  31. package/lib/browser/claude-code-tool-call-content.d.ts.map +1 -0
  32. package/lib/browser/claude-code-tool-call-content.js +30 -0
  33. package/lib/browser/claude-code-tool-call-content.js.map +1 -0
  34. package/lib/browser/renderers/bash-tool-renderer.d.ts +10 -0
  35. package/lib/browser/renderers/bash-tool-renderer.d.ts.map +1 -0
  36. package/lib/browser/renderers/bash-tool-renderer.js +71 -0
  37. package/lib/browser/renderers/bash-tool-renderer.js.map +1 -0
  38. package/lib/browser/renderers/collapsible-tool-renderer.d.ts +13 -0
  39. package/lib/browser/renderers/collapsible-tool-renderer.d.ts.map +1 -0
  40. package/lib/browser/renderers/collapsible-tool-renderer.js +48 -0
  41. package/lib/browser/renderers/collapsible-tool-renderer.js.map +1 -0
  42. package/lib/browser/renderers/edit-tool-renderer.d.ts +16 -0
  43. package/lib/browser/renderers/edit-tool-renderer.d.ts.map +1 -0
  44. package/lib/browser/renderers/edit-tool-renderer.js +134 -0
  45. package/lib/browser/renderers/edit-tool-renderer.js.map +1 -0
  46. package/lib/browser/renderers/glob-tool-renderer.d.ts +14 -0
  47. package/lib/browser/renderers/glob-tool-renderer.d.ts.map +1 -0
  48. package/lib/browser/renderers/glob-tool-renderer.js +107 -0
  49. package/lib/browser/renderers/glob-tool-renderer.js.map +1 -0
  50. package/lib/browser/renderers/grep-tool-renderer.d.ts +14 -0
  51. package/lib/browser/renderers/grep-tool-renderer.d.ts.map +1 -0
  52. package/lib/browser/renderers/grep-tool-renderer.js +157 -0
  53. package/lib/browser/renderers/grep-tool-renderer.js.map +1 -0
  54. package/lib/browser/renderers/ls-tool-renderer.d.ts +16 -0
  55. package/lib/browser/renderers/ls-tool-renderer.d.ts.map +1 -0
  56. package/lib/browser/renderers/ls-tool-renderer.js +116 -0
  57. package/lib/browser/renderers/ls-tool-renderer.js.map +1 -0
  58. package/lib/browser/renderers/multiedit-tool-renderer.d.ts +16 -0
  59. package/lib/browser/renderers/multiedit-tool-renderer.d.ts.map +1 -0
  60. package/lib/browser/renderers/multiedit-tool-renderer.js +152 -0
  61. package/lib/browser/renderers/multiedit-tool-renderer.js.map +1 -0
  62. package/lib/browser/renderers/read-tool-renderer.d.ts +16 -0
  63. package/lib/browser/renderers/read-tool-renderer.d.ts.map +1 -0
  64. package/lib/browser/renderers/read-tool-renderer.js +121 -0
  65. package/lib/browser/renderers/read-tool-renderer.js.map +1 -0
  66. package/lib/browser/renderers/todo-write-renderer.d.ts +10 -0
  67. package/lib/browser/renderers/todo-write-renderer.d.ts.map +1 -0
  68. package/lib/browser/renderers/todo-write-renderer.js +132 -0
  69. package/lib/browser/renderers/todo-write-renderer.js.map +1 -0
  70. package/lib/browser/renderers/web-fetch-tool-renderer.d.ts +10 -0
  71. package/lib/browser/renderers/web-fetch-tool-renderer.d.ts.map +1 -0
  72. package/lib/browser/renderers/web-fetch-tool-renderer.js +82 -0
  73. package/lib/browser/renderers/web-fetch-tool-renderer.js.map +1 -0
  74. package/lib/browser/renderers/write-tool-renderer.d.ts +16 -0
  75. package/lib/browser/renderers/write-tool-renderer.d.ts.map +1 -0
  76. package/lib/browser/renderers/write-tool-renderer.js +113 -0
  77. package/lib/browser/renderers/write-tool-renderer.js.map +1 -0
  78. package/lib/common/claude-code-preferences.d.ts +4 -0
  79. package/lib/common/claude-code-preferences.d.ts.map +1 -0
  80. package/lib/common/claude-code-preferences.js +33 -0
  81. package/lib/common/claude-code-preferences.js.map +1 -0
  82. package/lib/common/claude-code-service.d.ts +231 -0
  83. package/lib/common/claude-code-service.d.ts.map +1 -0
  84. package/lib/common/claude-code-service.js +82 -0
  85. package/lib/common/claude-code-service.js.map +1 -0
  86. package/lib/common/index.d.ts +2 -0
  87. package/lib/common/index.d.ts.map +1 -0
  88. package/lib/common/index.js +20 -0
  89. package/lib/common/index.js.map +1 -0
  90. package/lib/node/claude-code-backend-module.d.ts +4 -0
  91. package/lib/node/claude-code-backend-module.d.ts.map +1 -0
  92. package/lib/node/claude-code-backend-module.js +35 -0
  93. package/lib/node/claude-code-backend-module.js.map +1 -0
  94. package/lib/node/claude-code-service-impl.d.ts +32 -0
  95. package/lib/node/claude-code-service-impl.d.ts.map +1 -0
  96. package/lib/node/claude-code-service-impl.js +426 -0
  97. package/lib/node/claude-code-service-impl.js.map +1 -0
  98. package/lib/package.spec.d.ts +1 -0
  99. package/lib/package.spec.d.ts.map +1 -0
  100. package/lib/package.spec.js +26 -0
  101. package/lib/package.spec.js.map +1 -0
  102. package/package.json +57 -0
  103. package/src/browser/claude-code-chat-agent.ts +591 -0
  104. package/src/browser/claude-code-command-contribution.ts +80 -0
  105. package/src/browser/claude-code-edit-tool-service.ts +313 -0
  106. package/src/browser/claude-code-file-edit-backup-service.ts +141 -0
  107. package/src/browser/claude-code-frontend-module.ts +100 -0
  108. package/src/browser/claude-code-frontend-service.ts +215 -0
  109. package/src/browser/claude-code-slash-commands-contribution.ts +175 -0
  110. package/src/browser/claude-code-tool-call-content.ts +30 -0
  111. package/src/browser/renderers/bash-tool-renderer.tsx +97 -0
  112. package/src/browser/renderers/collapsible-tool-renderer.tsx +78 -0
  113. package/src/browser/renderers/edit-tool-renderer.tsx +180 -0
  114. package/src/browser/renderers/glob-tool-renderer.tsx +136 -0
  115. package/src/browser/renderers/grep-tool-renderer.tsx +190 -0
  116. package/src/browser/renderers/ls-tool-renderer.tsx +160 -0
  117. package/src/browser/renderers/multiedit-tool-renderer.tsx +204 -0
  118. package/src/browser/renderers/read-tool-renderer.tsx +170 -0
  119. package/src/browser/renderers/todo-write-renderer.tsx +178 -0
  120. package/src/browser/renderers/web-fetch-tool-renderer.tsx +108 -0
  121. package/src/browser/renderers/write-tool-renderer.tsx +155 -0
  122. package/src/browser/style/claude-code-tool-renderers.css +487 -0
  123. package/src/common/claude-code-preferences.ts +33 -0
  124. package/src/common/claude-code-service.ts +303 -0
  125. package/src/common/index.ts +17 -0
  126. package/src/node/claude-code-backend-module.ts +42 -0
  127. package/src/node/claude-code-service-impl.ts +462 -0
  128. package/src/package.spec.ts +27 -0
@@ -0,0 +1,132 @@
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
+ // Session-scoped registry to track TodoWrite renderer instances per session
26
+ class TodoWriteRegistry {
27
+ static register(sessionId, hideFn) {
28
+ // Get or create instances set for this session
29
+ let sessionSet = this.sessionInstances.get(sessionId);
30
+ if (!sessionSet) {
31
+ sessionSet = new Set();
32
+ this.sessionInstances.set(sessionId, sessionSet);
33
+ }
34
+ // Hide all previous instances in this session
35
+ sessionSet.forEach(fn => fn());
36
+ // Clear the session registry
37
+ sessionSet.clear();
38
+ // Add the new instance
39
+ sessionSet.add(hideFn);
40
+ }
41
+ static unregister(sessionId, hideFn) {
42
+ const sessionSet = this.sessionInstances.get(sessionId);
43
+ if (sessionSet) {
44
+ sessionSet.delete(hideFn);
45
+ // Clean up empty session entries
46
+ if (sessionSet.size === 0) {
47
+ this.sessionInstances.delete(sessionId);
48
+ }
49
+ }
50
+ }
51
+ }
52
+ TodoWriteRegistry.sessionInstances = new Map();
53
+ let TodoWriteRenderer = class TodoWriteRenderer {
54
+ canHandle(response) {
55
+ if (claude_code_tool_call_content_1.ClaudeCodeToolCallChatResponseContent.is(response) && response.name === 'TodoWrite') {
56
+ return 15; // Higher than default ToolCallPartRenderer (10)
57
+ }
58
+ return -1;
59
+ }
60
+ render(response, parentNode) {
61
+ try {
62
+ const input = JSON.parse(response.arguments || '{}');
63
+ return React.createElement(TodoListComponent, { todos: input.todos || [], sessionId: parentNode.sessionId });
64
+ }
65
+ catch (error) {
66
+ console.warn('Failed to parse TodoWrite input:', error);
67
+ return React.createElement("div", { className: "claude-code-tool todo-list-error" }, "Failed to parse todo list data");
68
+ }
69
+ }
70
+ };
71
+ exports.TodoWriteRenderer = TodoWriteRenderer;
72
+ exports.TodoWriteRenderer = TodoWriteRenderer = tslib_1.__decorate([
73
+ (0, inversify_1.injectable)()
74
+ ], TodoWriteRenderer);
75
+ const TodoListComponent = ({ todos, sessionId }) => {
76
+ const [isHidden, setIsHidden] = React.useState(false);
77
+ React.useEffect(() => {
78
+ const hideFn = () => setIsHidden(true);
79
+ TodoWriteRegistry.register(sessionId, hideFn);
80
+ return () => {
81
+ TodoWriteRegistry.unregister(sessionId, hideFn);
82
+ };
83
+ }, [sessionId]);
84
+ if (isHidden) {
85
+ // eslint-disable-next-line no-null/no-null
86
+ return null;
87
+ }
88
+ const getStatusIcon = (status) => {
89
+ switch (status) {
90
+ case 'completed':
91
+ return React.createElement("span", { className: `${(0, browser_1.codicon)('check')} claude-code-tool todo-status-icon completed` });
92
+ case 'in_progress':
93
+ return React.createElement("span", { className: `${(0, browser_1.codicon)('loading')} claude-code-tool todo-status-icon in-progress theia-animation-spin` });
94
+ case 'pending':
95
+ default:
96
+ return React.createElement("span", { className: `${(0, browser_1.codicon)('circle-outline')} claude-code-tool todo-status-icon pending` });
97
+ }
98
+ };
99
+ const getPriorityBadge = (priority) => (React.createElement("span", { className: `claude-code-tool todo-priority priority-${priority}` }, priority));
100
+ if (!todos || todos.length === 0) {
101
+ return (React.createElement("div", { className: "claude-code-tool todo-list-container" },
102
+ React.createElement("div", { className: "claude-code-tool todo-list-header" },
103
+ React.createElement("span", { className: `${(0, browser_1.codicon)('checklist')} claude-code-tool todo-list-icon` }),
104
+ React.createElement("span", { className: "claude-code-tool todo-list-title" }, "Todo List")),
105
+ React.createElement("div", { className: "claude-code-tool todo-list-empty" }, "No todos available")));
106
+ }
107
+ const completedCount = todos.filter(todo => todo.status === 'completed').length;
108
+ const totalCount = todos.length;
109
+ const compactHeader = (React.createElement(React.Fragment, null,
110
+ React.createElement("div", { className: "claude-code-tool header-left" },
111
+ React.createElement("span", { className: "claude-code-tool title" }, "Todo List"),
112
+ React.createElement("span", { className: `${(0, browser_1.codicon)('checklist')} claude-code-tool icon` }),
113
+ React.createElement("span", { className: "claude-code-tool progress-text" },
114
+ completedCount,
115
+ "/",
116
+ totalCount,
117
+ " completed")),
118
+ React.createElement("div", { className: "claude-code-tool header-right" },
119
+ React.createElement("span", { className: "claude-code-tool badge" },
120
+ totalCount,
121
+ " item",
122
+ totalCount !== 1 ? 's' : ''))));
123
+ const expandedContent = (React.createElement("div", { className: "claude-code-tool details" },
124
+ 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}` },
125
+ React.createElement("div", { className: "claude-code-tool todo-item-main" },
126
+ React.createElement("div", { className: "claude-code-tool todo-item-status" }, getStatusIcon(todo.status)),
127
+ React.createElement("div", { className: "claude-code-tool todo-item-content" },
128
+ React.createElement("span", { className: "claude-code-tool todo-item-text" }, todo.content),
129
+ getPriorityBadge(todo.priority)))))))));
130
+ return (React.createElement(collapsible_tool_renderer_1.CollapsibleToolRenderer, { compactHeader: compactHeader, expandedContent: expandedContent, defaultExpanded: true }));
131
+ };
132
+ //# sourceMappingURL=todo-write-renderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"todo-write-renderer.js","sourceRoot":"","sources":["../../../src/browser/renderers/todo-write-renderer.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
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
@@ -0,0 +1 @@
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;AASrD,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"}
@@ -0,0 +1,82 @@
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
+ let WebFetchToolRenderer = class WebFetchToolRenderer {
26
+ canHandle(response) {
27
+ if (claude_code_tool_call_content_1.ClaudeCodeToolCallChatResponseContent.is(response) && response.name === 'WebFetch') {
28
+ return 15; // Higher than default ToolCallPartRenderer (10)
29
+ }
30
+ return -1;
31
+ }
32
+ render(response, parentNode) {
33
+ try {
34
+ const input = JSON.parse(response.arguments || '{}');
35
+ return React.createElement(WebFetchToolComponent, { input: input });
36
+ }
37
+ catch (error) {
38
+ console.warn('Failed to parse WebFetch tool input:', error);
39
+ return React.createElement("div", { className: "claude-code-tool error" }, "Failed to parse WebFetch tool data");
40
+ }
41
+ }
42
+ };
43
+ exports.WebFetchToolRenderer = WebFetchToolRenderer;
44
+ exports.WebFetchToolRenderer = WebFetchToolRenderer = tslib_1.__decorate([
45
+ (0, inversify_1.injectable)()
46
+ ], WebFetchToolRenderer);
47
+ const WebFetchToolComponent = ({ input }) => {
48
+ const getDomain = (url) => {
49
+ try {
50
+ return new URL(url).hostname;
51
+ }
52
+ catch {
53
+ return url;
54
+ }
55
+ };
56
+ const truncatePrompt = (prompt, maxLength = 100) => {
57
+ if (prompt.length <= maxLength) {
58
+ return prompt;
59
+ }
60
+ return prompt.substring(0, maxLength) + '...';
61
+ };
62
+ const compactHeader = (React.createElement(React.Fragment, null,
63
+ React.createElement("div", { className: "claude-code-tool header-left" },
64
+ React.createElement("span", { className: "claude-code-tool title" }, "Fetching"),
65
+ React.createElement("span", { className: `${(0, browser_1.codicon)('globe')} claude-code-tool icon` }),
66
+ React.createElement("span", { className: "claude-code-tool command" }, getDomain(input.url)),
67
+ React.createElement("span", { className: "claude-code-tool description", title: input.prompt }, truncatePrompt(input.prompt))),
68
+ React.createElement("div", { className: "claude-code-tool header-right" },
69
+ React.createElement("span", { className: "claude-code-tool badge" }, "Web Fetch"))));
70
+ const expandedContent = (React.createElement("div", { className: "claude-code-tool details" },
71
+ React.createElement("div", { className: "claude-code-tool detail-row" },
72
+ React.createElement("span", { className: "claude-code-tool detail-label" }, "URL"),
73
+ React.createElement("code", { className: "claude-code-tool detail-value" }, input.url)),
74
+ React.createElement("div", { className: "claude-code-tool detail-row" },
75
+ React.createElement("span", { className: "claude-code-tool detail-label" }, "Domain"),
76
+ React.createElement("span", { className: "claude-code-tool detail-value" }, getDomain(input.url))),
77
+ React.createElement("div", { className: "claude-code-tool detail-row" },
78
+ React.createElement("span", { className: "claude-code-tool detail-label" }, "Prompt"),
79
+ React.createElement("span", { className: "claude-code-tool detail-value" }, input.prompt))));
80
+ return (React.createElement(collapsible_tool_renderer_1.CollapsibleToolRenderer, { compactHeader: compactHeader, expandedContent: expandedContent }));
81
+ };
82
+ //# sourceMappingURL=web-fetch-tool-renderer.js.map
@@ -0,0 +1 @@
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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"}
@@ -0,0 +1,16 @@
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
@@ -0,0 +1 @@
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;AAShE,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"}
@@ -0,0 +1,113 @@
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
+ let WriteToolRenderer = class WriteToolRenderer {
29
+ canHandle(response) {
30
+ if (claude_code_tool_call_content_1.ClaudeCodeToolCallChatResponseContent.is(response) && response.name === 'Write') {
31
+ return 15; // Higher than default ToolCallPartRenderer (10)
32
+ }
33
+ return -1;
34
+ }
35
+ render(response, parentNode) {
36
+ try {
37
+ const input = JSON.parse(response.arguments || '{}');
38
+ return React.createElement(WriteToolComponent, { input: input, workspaceService: this.workspaceService, labelProvider: this.labelProvider, editorManager: this.editorManager });
39
+ }
40
+ catch (error) {
41
+ console.warn('Failed to parse Write tool input:', error);
42
+ return React.createElement("div", { className: "claude-code-tool error" }, "Failed to parse Write tool data");
43
+ }
44
+ }
45
+ };
46
+ exports.WriteToolRenderer = WriteToolRenderer;
47
+ tslib_1.__decorate([
48
+ (0, inversify_1.inject)(browser_3.WorkspaceService),
49
+ tslib_1.__metadata("design:type", browser_3.WorkspaceService)
50
+ ], WriteToolRenderer.prototype, "workspaceService", void 0);
51
+ tslib_1.__decorate([
52
+ (0, inversify_1.inject)(browser_1.LabelProvider),
53
+ tslib_1.__metadata("design:type", browser_1.LabelProvider)
54
+ ], WriteToolRenderer.prototype, "labelProvider", void 0);
55
+ tslib_1.__decorate([
56
+ (0, inversify_1.inject)(browser_2.EditorManager),
57
+ tslib_1.__metadata("design:type", browser_2.EditorManager)
58
+ ], WriteToolRenderer.prototype, "editorManager", void 0);
59
+ exports.WriteToolRenderer = WriteToolRenderer = tslib_1.__decorate([
60
+ (0, inversify_1.injectable)()
61
+ ], WriteToolRenderer);
62
+ const WriteToolComponent = ({ input, workspaceService, labelProvider, editorManager }) => {
63
+ const getFileName = (filePath) => filePath.split('/').pop() || filePath;
64
+ const getWorkspaceRelativePath = async (filePath) => {
65
+ try {
66
+ const absoluteUri = new uri_1.URI(filePath);
67
+ const workspaceRelativePath = await workspaceService.getWorkspaceRelativePath(absoluteUri);
68
+ return workspaceRelativePath || '';
69
+ }
70
+ catch {
71
+ return '';
72
+ }
73
+ };
74
+ const handleOpenFile = async () => {
75
+ try {
76
+ const uri = new uri_1.URI(input.file_path);
77
+ await editorManager.open(uri);
78
+ }
79
+ catch (error) {
80
+ console.error('Failed to open file:', error);
81
+ }
82
+ };
83
+ const [relativePath, setRelativePath] = React.useState('');
84
+ React.useEffect(() => {
85
+ getWorkspaceRelativePath(input.file_path).then(setRelativePath);
86
+ }, [input.file_path]);
87
+ const getContentSizeInfo = () => {
88
+ const lines = input.content.split('\n').length;
89
+ return `+${lines}`;
90
+ };
91
+ const compactHeader = (React.createElement(React.Fragment, null,
92
+ React.createElement("div", { className: "claude-code-tool header-left" },
93
+ React.createElement("span", { className: "claude-code-tool title" }, "Writing"),
94
+ React.createElement("span", { className: `${(0, browser_1.codicon)('edit')} claude-code-tool icon` }),
95
+ React.createElement("span", { className: "claude-code-tool file-name clickable-element", onClick: handleOpenFile, title: "Click to open file in editor" }, getFileName(input.file_path)),
96
+ relativePath && React.createElement("span", { className: "claude-code-tool relative-path" }, relativePath)),
97
+ React.createElement("div", { className: "claude-code-tool header-right" },
98
+ React.createElement("span", { className: "claude-code-tool badge added" }, getContentSizeInfo()))));
99
+ const expandedContent = (React.createElement("div", { className: "claude-code-tool details" },
100
+ React.createElement("div", { className: "claude-code-tool detail-row" },
101
+ React.createElement("span", { className: "claude-code-tool detail-label" }, "File Path"),
102
+ React.createElement("code", { className: "claude-code-tool detail-value" }, input.file_path)),
103
+ React.createElement("div", { className: "claude-code-tool detail-row" },
104
+ React.createElement("span", { className: "claude-code-tool detail-label" }, "Preview"),
105
+ React.createElement("pre", { className: "claude-code-tool detail-value code-preview" }, input.content.length > 500
106
+ ? input.content.substring(0, 500) + '...'
107
+ : input.content)),
108
+ React.createElement("div", { className: "claude-code-tool detail-row" },
109
+ React.createElement("span", { className: "claude-code-tool detail-label" }, "Lines"),
110
+ React.createElement("span", { className: "claude-code-tool detail-value" }, input.content.split('\n').length))));
111
+ return (React.createElement(collapsible_tool_renderer_1.CollapsibleToolRenderer, { compactHeader: compactHeader, expandedContent: expandedContent }));
112
+ };
113
+ //# sourceMappingURL=write-tool-renderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"write-tool-renderer.js","sourceRoot":"","sources":["../../../src/browser/renderers/write-tool-renderer.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { PreferenceSchema } from '@theia/core';
2
+ export declare const CLAUDE_CODE_EXECUTABLE_PATH_PREF = "ai-features.claudeCode.executablePath";
3
+ export declare const ClaudeCodePreferencesSchema: PreferenceSchema;
4
+ //# sourceMappingURL=claude-code-preferences.d.ts.map
@@ -0,0 +1 @@
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;AAExF,eAAO,MAAM,2BAA2B,EAAE,gBAWzC,CAAC"}
@@ -0,0 +1,33 @@
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_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.ClaudeCodePreferencesSchema = {
23
+ properties: {
24
+ [exports.CLAUDE_CODE_EXECUTABLE_PATH_PREF]: {
25
+ type: 'string',
26
+ markdownDescription: core_1.nls.localize('theia/ai/claude-code/executablePath/description', 'Path to the Claude Code executable (cli.js). Usually copying the result of `which claude` ' +
27
+ 'here will work. If not specified, the system will attempt to resolve the path automatically ' +
28
+ 'from the global npm installation.'),
29
+ title: ai_core_preferences_1.AI_CORE_PREFERENCES_TITLE,
30
+ },
31
+ }
32
+ };
33
+ //# sourceMappingURL=claude-code-preferences.js.map
@@ -0,0 +1 @@
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;AAE3E,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,4FAA4F;gBAC5F,8FAA8F;gBAC9F,mCAAmC,CAAC;YACxC,KAAK,EAAE,+CAAyB;SACnC;KACJ;CACJ,CAAC"}