@theia/ai-chat 1.63.0-next.0 → 1.63.0-next.52

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 (91) hide show
  1. package/lib/browser/agent-delegation-tool.d.ts +25 -0
  2. package/lib/browser/agent-delegation-tool.d.ts.map +1 -0
  3. package/lib/browser/agent-delegation-tool.js +171 -0
  4. package/lib/browser/agent-delegation-tool.js.map +1 -0
  5. package/lib/browser/ai-chat-frontend-module.d.ts.map +1 -1
  6. package/lib/browser/ai-chat-frontend-module.js +15 -1
  7. package/lib/browser/ai-chat-frontend-module.js.map +1 -1
  8. package/lib/browser/change-set-file-element.d.ts +28 -7
  9. package/lib/browser/change-set-file-element.d.ts.map +1 -1
  10. package/lib/browser/change-set-file-element.js +86 -18
  11. package/lib/browser/change-set-file-element.js.map +1 -1
  12. package/lib/browser/change-set-variable.js +1 -2
  13. package/lib/browser/change-set-variable.js.map +1 -1
  14. package/lib/browser/chat-tool-preferences.d.ts +54 -0
  15. package/lib/browser/chat-tool-preferences.d.ts.map +1 -0
  16. package/lib/browser/chat-tool-preferences.js +170 -0
  17. package/lib/browser/chat-tool-preferences.js.map +1 -0
  18. package/lib/browser/chat-tool-request-service.d.ts +20 -0
  19. package/lib/browser/chat-tool-request-service.d.ts.map +1 -0
  20. package/lib/browser/chat-tool-request-service.js +89 -0
  21. package/lib/browser/chat-tool-request-service.js.map +1 -0
  22. package/lib/browser/delegation-response-content.d.ts +20 -0
  23. package/lib/browser/delegation-response-content.d.ts.map +1 -0
  24. package/lib/browser/delegation-response-content.js +51 -0
  25. package/lib/browser/delegation-response-content.js.map +1 -0
  26. package/lib/browser/file-chat-variable-contribution.d.ts +15 -1
  27. package/lib/browser/file-chat-variable-contribution.d.ts.map +1 -1
  28. package/lib/browser/file-chat-variable-contribution.js +111 -5
  29. package/lib/browser/file-chat-variable-contribution.js.map +1 -1
  30. package/lib/browser/frontend-chat-service.d.ts.map +1 -1
  31. package/lib/browser/frontend-chat-service.js +2 -6
  32. package/lib/browser/frontend-chat-service.js.map +1 -1
  33. package/lib/browser/image-context-variable-contribution.d.ts +27 -0
  34. package/lib/browser/image-context-variable-contribution.d.ts.map +1 -0
  35. package/lib/browser/image-context-variable-contribution.js +149 -0
  36. package/lib/browser/image-context-variable-contribution.js.map +1 -0
  37. package/lib/browser/task-context-service.d.ts +9 -3
  38. package/lib/browser/task-context-service.d.ts.map +1 -1
  39. package/lib/browser/task-context-service.js +111 -9
  40. package/lib/browser/task-context-service.js.map +1 -1
  41. package/lib/browser/task-context-storage-service.d.ts +1 -0
  42. package/lib/browser/task-context-storage-service.d.ts.map +1 -1
  43. package/lib/browser/task-context-storage-service.js +4 -1
  44. package/lib/browser/task-context-storage-service.js.map +1 -1
  45. package/lib/common/change-set.d.ts +78 -0
  46. package/lib/common/change-set.d.ts.map +1 -0
  47. package/lib/common/change-set.js +133 -0
  48. package/lib/common/change-set.js.map +1 -0
  49. package/lib/common/chat-agent-service.d.ts +1 -0
  50. package/lib/common/chat-agent-service.d.ts.map +1 -1
  51. package/lib/common/chat-agent-service.js +2 -1
  52. package/lib/common/chat-agent-service.js.map +1 -1
  53. package/lib/common/chat-agents.d.ts +2 -2
  54. package/lib/common/chat-agents.d.ts.map +1 -1
  55. package/lib/common/chat-agents.js +25 -6
  56. package/lib/common/chat-agents.js.map +1 -1
  57. package/lib/common/chat-model.d.ts +68 -80
  58. package/lib/common/chat-model.d.ts.map +1 -1
  59. package/lib/common/chat-model.js +224 -136
  60. package/lib/common/chat-model.js.map +1 -1
  61. package/lib/common/chat-request-parser.d.ts.map +1 -1
  62. package/lib/common/chat-request-parser.js +3 -0
  63. package/lib/common/chat-request-parser.js.map +1 -1
  64. package/lib/common/chat-service.d.ts +6 -5
  65. package/lib/common/chat-service.d.ts.map +1 -1
  66. package/lib/common/chat-service.js +9 -11
  67. package/lib/common/chat-service.js.map +1 -1
  68. package/lib/common/image-context-variable.d.ts +29 -0
  69. package/lib/common/image-context-variable.d.ts.map +1 -0
  70. package/lib/common/image-context-variable.js +99 -0
  71. package/lib/common/image-context-variable.js.map +1 -0
  72. package/package.json +10 -9
  73. package/src/browser/agent-delegation-tool.ts +207 -0
  74. package/src/browser/ai-chat-frontend-module.ts +28 -3
  75. package/src/browser/change-set-file-element.ts +97 -25
  76. package/src/browser/change-set-variable.ts +1 -1
  77. package/src/browser/chat-tool-preferences.ts +178 -0
  78. package/src/browser/chat-tool-request-service.ts +93 -0
  79. package/src/browser/delegation-response-content.ts +55 -0
  80. package/src/browser/file-chat-variable-contribution.ts +120 -6
  81. package/src/browser/frontend-chat-service.ts +3 -6
  82. package/src/browser/image-context-variable-contribution.ts +153 -0
  83. package/src/browser/task-context-service.ts +115 -9
  84. package/src/browser/task-context-storage-service.ts +5 -1
  85. package/src/common/change-set.ts +197 -0
  86. package/src/common/chat-agent-service.ts +1 -0
  87. package/src/common/chat-agents.ts +40 -19
  88. package/src/common/chat-model.ts +258 -208
  89. package/src/common/chat-request-parser.ts +3 -0
  90. package/src/common/chat-service.ts +11 -13
  91. package/src/common/image-context-variable.ts +116 -0
@@ -0,0 +1,25 @@
1
+ import { ToolProvider, ToolRequest } from '@theia/ai-core';
2
+ import { ChatAgentService, ChatService } from '../common';
3
+ export declare const AGENT_DELEGATION_FUNCTION_ID = "delegateToAgent";
4
+ export declare class AgentDelegationTool implements ToolProvider {
5
+ static ID: string;
6
+ protected readonly getChatAgentService: () => ChatAgentService;
7
+ protected readonly getChatService: () => ChatService;
8
+ getTool(): ToolRequest;
9
+ private delegateToAgent;
10
+ /**
11
+ * Sets up monitoring of the ChangeSet in the delegated session and bubbles changes to the parent session.
12
+ * @param delegatedSession The session created for the delegated agent
13
+ * @param parentModel The parent session model that should receive the bubbled changes
14
+ * @param agentName The name of the agent for attribution purposes
15
+ */
16
+ private setupChangeSetBubbling;
17
+ /**
18
+ * Bubbles the ChangeSet from the delegated session to the parent session.
19
+ * @param delegatedSession The session from which to bubble changes
20
+ * @param parentModel The parent session model to receive the bubbled changes
21
+ * @param agentName The name of the agent for attribution purposes
22
+ */
23
+ private bubbleChangeSet;
24
+ }
25
+ //# sourceMappingURL=agent-delegation-tool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-delegation-tool.d.ts","sourceRoot":"","sources":["../../src/browser/agent-delegation-tool.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE3D,OAAO,EACH,gBAAgB,EAGhB,WAAW,EAKd,MAAM,WAAW,CAAC;AAGnB,eAAO,MAAM,4BAA4B,oBAAoB,CAAC;AAE9D,qBACa,mBAAoB,YAAW,YAAY;IACpD,MAAM,CAAC,EAAE,SAAgC;IAGzC,SAAS,CAAC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;IAG/D,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,MAAM,WAAW,CAAC;IAErD,OAAO,IAAI,WAAW;YA2BR,eAAe;IAsG7B;;;;;OAKG;IACH,OAAO,CAAC,sBAAsB;IAW9B;;;;;OAKG;IACH,OAAO,CAAC,eAAe;CAY1B"}
@@ -0,0 +1,171 @@
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
+ var AgentDelegationTool_1;
18
+ Object.defineProperty(exports, "__esModule", { value: true });
19
+ exports.AgentDelegationTool = exports.AGENT_DELEGATION_FUNCTION_ID = void 0;
20
+ const tslib_1 = require("tslib");
21
+ const inversify_1 = require("@theia/core/shared/inversify");
22
+ const common_1 = require("../common");
23
+ const delegation_response_content_1 = require("./delegation-response-content");
24
+ exports.AGENT_DELEGATION_FUNCTION_ID = 'delegateToAgent';
25
+ let AgentDelegationTool = AgentDelegationTool_1 = class AgentDelegationTool {
26
+ getTool() {
27
+ return {
28
+ id: AgentDelegationTool_1.ID,
29
+ name: AgentDelegationTool_1.ID,
30
+ description: 'Delegate a task or question to a specific AI agent. This tool allows you to submit requests to specialized agents based on their capabilities.',
31
+ parameters: {
32
+ type: 'object',
33
+ properties: {
34
+ agentId: {
35
+ type: 'string',
36
+ description: 'The ID of the AI agent to delegate the task to.',
37
+ },
38
+ prompt: {
39
+ type: 'string',
40
+ description: 'The task, question, or prompt to pass to the specified agent.',
41
+ },
42
+ },
43
+ required: ['agentId', 'prompt'],
44
+ },
45
+ handler: (arg_string, ctx) => this.delegateToAgent(arg_string, ctx),
46
+ };
47
+ }
48
+ async delegateToAgent(arg_string, ctx) {
49
+ try {
50
+ const args = JSON.parse(arg_string);
51
+ const { agentId, prompt } = args;
52
+ if (!agentId || !prompt) {
53
+ const errorMsg = 'Both agentId and prompt parameters are required.';
54
+ console.error(errorMsg, { agentId, prompt });
55
+ return errorMsg;
56
+ }
57
+ // Check if the specified agent exists
58
+ const agent = this.getChatAgentService().getAgent(agentId);
59
+ if (!agent) {
60
+ const availableAgents = this.getChatAgentService()
61
+ .getAgents()
62
+ .map(a => a.id);
63
+ const errorMsg = `Agent '${agentId}' not found or not enabled. Available agents: ${availableAgents.join(', ')}`;
64
+ console.error(errorMsg);
65
+ return errorMsg;
66
+ }
67
+ let newSession;
68
+ try {
69
+ // FIXME: this creates a new conversation visible in the UI (Panel), which we don't want
70
+ // It is not possible to start a session without specifying a location (default=Panel)
71
+ const chatService = this.getChatService();
72
+ // Store the current active session to restore it after delegation
73
+ const currentActiveSession = chatService.getActiveSession();
74
+ newSession = chatService.createSession(undefined, { focus: false }, agent);
75
+ // Immediately restore the original active session to avoid confusing the user
76
+ if (currentActiveSession) {
77
+ chatService.setActiveSession(currentActiveSession.id, { focus: false });
78
+ }
79
+ // Setup ChangeSet bubbling from delegated session to parent session
80
+ this.setupChangeSetBubbling(newSession, ctx.session, agent.name);
81
+ }
82
+ catch (sessionError) {
83
+ const errorMsg = `Failed to create chat session for agent '${agentId}': ${sessionError instanceof Error ? sessionError.message : sessionError}`;
84
+ console.error(errorMsg, sessionError);
85
+ return errorMsg;
86
+ }
87
+ // Send the request
88
+ const chatRequest = {
89
+ text: prompt,
90
+ };
91
+ let response;
92
+ try {
93
+ const chatService = this.getChatService();
94
+ response = await chatService.sendRequest(newSession.id, chatRequest);
95
+ }
96
+ catch (sendError) {
97
+ const errorMsg = `Failed to send request to agent '${agentId}': ${sendError instanceof Error ? sendError.message : sendError}`;
98
+ console.error(errorMsg, sendError);
99
+ return errorMsg;
100
+ }
101
+ if (response) {
102
+ // Add the response content immediately to enable streaming
103
+ // The renderer will handle the streaming updates
104
+ ctx.response.response.addContent(new delegation_response_content_1.DelegationResponseContent(agent.name, prompt, response));
105
+ try {
106
+ // Wait for completion to return the final result as tool output
107
+ const result = await response.responseCompleted;
108
+ const stringResult = result.response.asString();
109
+ // Return the raw text to the top-level Agent, as a tool result
110
+ return stringResult;
111
+ }
112
+ catch (completionError) {
113
+ const errorMsg = `Failed to complete response from agent '${agentId}': ${completionError instanceof Error ? completionError.message : completionError}`;
114
+ console.error(errorMsg, completionError);
115
+ return errorMsg;
116
+ }
117
+ }
118
+ else {
119
+ const errorMsg = `Delegation to agent '${agentId}' has failed: no response returned.`;
120
+ console.error(errorMsg);
121
+ return errorMsg;
122
+ }
123
+ }
124
+ catch (error) {
125
+ console.error('Failed to delegate to agent', error);
126
+ return JSON.stringify({
127
+ error: `Failed to parse arguments or delegate to agent: ${error instanceof Error ? error.message : 'Unknown error'}`,
128
+ });
129
+ }
130
+ }
131
+ /**
132
+ * Sets up monitoring of the ChangeSet in the delegated session and bubbles changes to the parent session.
133
+ * @param delegatedSession The session created for the delegated agent
134
+ * @param parentModel The parent session model that should receive the bubbled changes
135
+ * @param agentName The name of the agent for attribution purposes
136
+ */
137
+ setupChangeSetBubbling(delegatedSession, parentModel, agentName) {
138
+ // Monitor ChangeSet for bubbling
139
+ delegatedSession.model.changeSet.onDidChange(_event => {
140
+ this.bubbleChangeSet(delegatedSession, parentModel, agentName);
141
+ });
142
+ }
143
+ /**
144
+ * Bubbles the ChangeSet from the delegated session to the parent session.
145
+ * @param delegatedSession The session from which to bubble changes
146
+ * @param parentModel The parent session model to receive the bubbled changes
147
+ * @param agentName The name of the agent for attribution purposes
148
+ */
149
+ bubbleChangeSet(delegatedSession, parentModel, agentName) {
150
+ const delegatedElements = delegatedSession.model.changeSet.getElements();
151
+ if (delegatedElements.length > 0) {
152
+ const bubbledTitle = `Changes from ${agentName}`;
153
+ parentModel.changeSet.setTitle(bubbledTitle);
154
+ parentModel.changeSet.addElements(...delegatedElements);
155
+ }
156
+ }
157
+ };
158
+ exports.AgentDelegationTool = AgentDelegationTool;
159
+ AgentDelegationTool.ID = exports.AGENT_DELEGATION_FUNCTION_ID;
160
+ tslib_1.__decorate([
161
+ (0, inversify_1.inject)(common_1.ChatAgentServiceFactory),
162
+ tslib_1.__metadata("design:type", Function)
163
+ ], AgentDelegationTool.prototype, "getChatAgentService", void 0);
164
+ tslib_1.__decorate([
165
+ (0, inversify_1.inject)(common_1.ChatServiceFactory),
166
+ tslib_1.__metadata("design:type", Function)
167
+ ], AgentDelegationTool.prototype, "getChatService", void 0);
168
+ exports.AgentDelegationTool = AgentDelegationTool = AgentDelegationTool_1 = tslib_1.__decorate([
169
+ (0, inversify_1.injectable)()
170
+ ], AgentDelegationTool);
171
+ //# sourceMappingURL=agent-delegation-tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-delegation-tool.js","sourceRoot":"","sources":["../../src/browser/agent-delegation-tool.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ai-chat-frontend-module.d.ts","sourceRoot":"","sources":["../../src/browser/ai-chat-frontend-module.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;;AAoC/D,wBAiFG"}
1
+ {"version":3,"file":"ai-chat-frontend-module.d.ts","sourceRoot":"","sources":["../../src/browser/ai-chat-frontend-module.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;;AA0C/D,wBAoGG"}
@@ -24,11 +24,13 @@ const chat_agents_variable_contribution_1 = require("../common/chat-agents-varia
24
24
  const custom_chat_agent_1 = require("../common/custom-chat-agent");
25
25
  const response_content_matcher_1 = require("../common/response-content-matcher");
26
26
  const ai_chat_preferences_1 = require("./ai-chat-preferences");
27
+ const chat_tool_preferences_1 = require("./chat-tool-preferences");
27
28
  const change_set_file_element_1 = require("./change-set-file-element");
28
29
  const custom_agent_frontend_application_contribution_1 = require("./custom-agent-frontend-application-contribution");
29
30
  const frontend_chat_service_1 = require("./frontend-chat-service");
30
31
  const custom_agent_factory_1 = require("./custom-agent-factory");
31
32
  const chat_tool_request_service_1 = require("../common/chat-tool-request-service");
33
+ const chat_tool_request_service_2 = require("./chat-tool-request-service");
32
34
  const change_set_file_service_1 = require("./change-set-file-service");
33
35
  const context_variable_label_provider_1 = require("./context-variable-label-provider");
34
36
  const context_file_variable_label_provider_1 = require("./context-file-variable-label-provider");
@@ -44,10 +46,13 @@ const task_context_variable_label_provider_1 = require("./task-context-variable-
44
46
  const task_context_service_1 = require("./task-context-service");
45
47
  const task_context_storage_service_1 = require("./task-context-storage-service");
46
48
  const ai_chat_frontend_contribution_1 = require("./ai-chat-frontend-contribution");
49
+ const image_context_variable_contribution_1 = require("./image-context-variable-contribution");
50
+ const agent_delegation_tool_1 = require("./agent-delegation-tool");
47
51
  exports.default = new inversify_1.ContainerModule(bind => {
48
52
  (0, core_1.bindContributionProvider)(bind, common_1.Agent);
49
53
  (0, core_1.bindContributionProvider)(bind, common_2.ChatAgent);
50
- bind(chat_tool_request_service_1.ChatToolRequestService).toSelf().inSingletonScope();
54
+ bind(chat_tool_request_service_2.FrontendChatToolRequestService).toSelf().inSingletonScope();
55
+ bind(chat_tool_request_service_1.ChatToolRequestService).toService(chat_tool_request_service_2.FrontendChatToolRequestService);
51
56
  bind(common_2.ChatAgentServiceImpl).toSelf().inSingletonScope();
52
57
  bind(common_2.ChatAgentService).toService(common_2.ChatAgentServiceImpl);
53
58
  bind(common_2.PinChatAgent).toConstantValue(true);
@@ -63,7 +68,12 @@ exports.default = new inversify_1.ContainerModule(bind => {
63
68
  bind(common_2.ChatRequestParser).toService(common_2.ChatRequestParserImpl);
64
69
  bind(frontend_chat_service_1.FrontendChatServiceImpl).toSelf().inSingletonScope();
65
70
  bind(common_2.ChatService).toService(frontend_chat_service_1.FrontendChatServiceImpl);
71
+ bind(common_2.ChatServiceFactory).toDynamicValue(ctx => () => ctx.container.get(common_2.ChatService));
72
+ bind(common_2.ChatAgentServiceFactory).toDynamicValue(ctx => () => ctx.container.get(common_2.ChatAgentService));
66
73
  bind(browser_1.PreferenceContribution).toConstantValue({ schema: ai_chat_preferences_1.aiChatPreferences });
74
+ // Tool confirmation preferences
75
+ (0, chat_tool_preferences_1.bindChatToolPreferences)(bind);
76
+ bind(chat_tool_preferences_1.ToolConfirmationManager).toSelf().inSingletonScope();
67
77
  bind(custom_chat_agent_1.CustomChatAgent).toSelf();
68
78
  bind(custom_agent_factory_1.CustomAgentFactory).toFactory(ctx => (id, name, description, prompt, defaultLLM) => {
69
79
  const agent = ctx.container.get(custom_chat_agent_1.CustomChatAgent);
@@ -105,10 +115,14 @@ exports.default = new inversify_1.ContainerModule(bind => {
105
115
  bind(common_1.AIVariableContribution).toService(task_context_variable_contribution_1.TaskContextVariableContribution);
106
116
  bind(task_context_variable_label_provider_1.TaskContextVariableLabelProvider).toSelf().inSingletonScope();
107
117
  bind(browser_1.LabelProviderContribution).toService(task_context_variable_label_provider_1.TaskContextVariableLabelProvider);
118
+ bind(image_context_variable_contribution_1.ImageContextVariableContribution).toSelf().inSingletonScope();
119
+ bind(common_1.AIVariableContribution).toService(image_context_variable_contribution_1.ImageContextVariableContribution);
120
+ bind(browser_1.LabelProviderContribution).toService(image_context_variable_contribution_1.ImageContextVariableContribution);
108
121
  bind(task_context_service_1.TaskContextService).toSelf().inSingletonScope();
109
122
  bind(task_context_storage_service_1.InMemoryTaskContextStorage).toSelf().inSingletonScope();
110
123
  bind(task_context_service_1.TaskContextStorageService).toService(task_context_storage_service_1.InMemoryTaskContextStorage);
111
124
  bind(ai_chat_frontend_contribution_1.AIChatFrontendContribution).toSelf().inSingletonScope();
112
125
  bind(core_1.CommandContribution).toService(ai_chat_frontend_contribution_1.AIChatFrontendContribution);
126
+ (0, common_1.bindToolProvider)(agent_delegation_tool_1.AgentDelegationTool, bind);
113
127
  });
114
128
  //# sourceMappingURL=ai-chat-frontend-module.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ai-chat-frontend-module.js","sourceRoot":"","sources":["../../src/browser/ai-chat-frontend-module.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ai-chat-frontend-module.js","sourceRoot":"","sources":["../../src/browser/ai-chat-frontend-module.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { DisposableCollection, Emitter, URI } from '@theia/core';
2
2
  import { Replacement } from '@theia/core/lib/common/content-replacer';
3
3
  import { ConfigurableInMemoryResources, ConfigurableMutableReferenceResource } from '@theia/ai-core';
4
- import { ChangeSetElement, ChangeSetImpl } from '../common';
4
+ import { ChangeSetElement } from '../common';
5
5
  import { ChangeSetFileService } from './change-set-file-service';
6
6
  import { FileService } from '@theia/filesystem/lib/browser/file-service';
7
7
  import { ChangeSetDecoratorService } from './change-set-decorator-service';
@@ -12,10 +12,10 @@ export declare const ChangeSetElementArgs: unique symbol;
12
12
  export interface ChangeSetElementArgs extends Partial<ChangeSetElement> {
13
13
  /** The URI of the element, expected to be unique within the same change set. */
14
14
  uri: URI;
15
- /** The change set containing this element. */
16
- changeSet: ChangeSetImpl;
17
15
  /** The id of the chat session containing this change set element. */
18
16
  chatSessionId: string;
17
+ /** The id of the request with which this change set element is associated. */
18
+ requestId: string;
19
19
  /**
20
20
  * The state of the file after the changes have been applied.
21
21
  * If `undefined`, there is no change.
@@ -34,20 +34,34 @@ export declare class ChangeSetFileElement implements ChangeSetElement {
34
34
  protected readonly changeSetDecoratorService: ChangeSetDecoratorService;
35
35
  protected readonly fileService: FileService;
36
36
  protected readonly inMemoryResources: ConfigurableInMemoryResources;
37
+ protected readonly factory: ChangeSetFileElementFactory;
37
38
  protected readonly toDispose: DisposableCollection;
38
39
  protected _state: ChangeSetElementState;
39
- protected originalContent: string | undefined;
40
+ private _originalContent;
41
+ protected _initialized: boolean;
42
+ protected _initializationPromise: Promise<void> | undefined;
40
43
  protected readonly onDidChangeEmitter: Emitter<void>;
41
44
  readonly onDidChange: import("@theia/core").Event<void>;
42
- protected readOnlyResource: ConfigurableMutableReferenceResource;
43
- protected changeResource: ConfigurableMutableReferenceResource;
45
+ protected _readOnlyResource: ConfigurableMutableReferenceResource;
46
+ protected _changeResource: ConfigurableMutableReferenceResource;
44
47
  init(): void;
48
+ protected initializeAsync(): Promise<void>;
49
+ /**
50
+ * Ensures that the element is fully initialized before proceeding.
51
+ * This includes loading the original content from the file system.
52
+ */
53
+ ensureInitialized(): Promise<void>;
54
+ /**
55
+ * Returns true if the element has been fully initialized.
56
+ */
57
+ get isInitialized(): boolean;
45
58
  protected obtainOriginalContent(): Promise<void>;
46
- protected getResources(): void;
47
59
  protected getInMemoryUri(uri: URI): ConfigurableMutableReferenceResource;
48
60
  protected listenForOriginalFileChanges(): void;
49
61
  get uri(): URI;
62
+ protected get readOnlyResource(): ConfigurableMutableReferenceResource;
50
63
  get readOnlyUri(): URI;
64
+ protected get changeResource(): ConfigurableMutableReferenceResource;
51
65
  get changedUri(): URI;
52
66
  get name(): string;
53
67
  get icon(): string | undefined;
@@ -59,11 +73,18 @@ export declare class ChangeSetFileElement implements ChangeSetElement {
59
73
  get data(): {
60
74
  [key: string]: unknown;
61
75
  } | undefined;
76
+ get originalContent(): string | undefined;
77
+ /**
78
+ * Gets the original content of the file asynchronously.
79
+ * Ensures initialization is complete before returning the content.
80
+ */
81
+ getOriginalContent(): Promise<string | undefined>;
62
82
  get targetState(): string;
63
83
  open(): Promise<void>;
64
84
  openChange(): Promise<void>;
65
85
  apply(contents?: string): Promise<void>;
66
86
  writeChanges(contents?: string): Promise<void>;
87
+ onShow(): void;
67
88
  revert(): Promise<void>;
68
89
  confirm(verb: string): Promise<boolean>;
69
90
  dispose(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"change-set-file-element.d.ts","sourceRoot":"","sources":["../../src/browser/change-set-file-element.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"change-set-file-element.d.ts","sourceRoot":"","sources":["../../src/browser/change-set-file-element.ts"],"names":[],"mappings":"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"}
@@ -32,6 +32,7 @@ exports.ChangeSetElementArgs = Symbol('ChangeSetElementArgs');
32
32
  let ChangeSetFileElement = ChangeSetFileElement_1 = class ChangeSetFileElement {
33
33
  constructor() {
34
34
  this.toDispose = new core_1.DisposableCollection();
35
+ this._initialized = false;
35
36
  this.onDidChangeEmitter = new core_1.Emitter();
36
37
  this.onDidChange = this.onDidChangeEmitter.event;
37
38
  }
@@ -39,25 +40,34 @@ let ChangeSetFileElement = ChangeSetFileElement_1 = class ChangeSetFileElement {
39
40
  return baseUri.withScheme('change-set-immutable').withAuthority(sessionId);
40
41
  }
41
42
  init() {
42
- this.getResources();
43
- this.obtainOriginalContent();
44
- this.listenForOriginalFileChanges();
43
+ this._initializationPromise = this.initializeAsync();
45
44
  this.toDispose.push(this.onDidChangeEmitter);
46
45
  }
46
+ async initializeAsync() {
47
+ await this.obtainOriginalContent();
48
+ this.listenForOriginalFileChanges();
49
+ this._initialized = true;
50
+ }
51
+ /**
52
+ * Ensures that the element is fully initialized before proceeding.
53
+ * This includes loading the original content from the file system.
54
+ */
55
+ async ensureInitialized() {
56
+ await this._initializationPromise;
57
+ }
58
+ /**
59
+ * Returns true if the element has been fully initialized.
60
+ */
61
+ get isInitialized() {
62
+ return this._initialized;
63
+ }
47
64
  async obtainOriginalContent() {
48
65
  var _a;
49
- this.originalContent = await this.changeSetFileService.read(this.uri);
50
- this.readOnlyResource.update({ contents: (_a = this.originalContent) !== null && _a !== void 0 ? _a : '' });
51
- if (this.state === 'applied') {
66
+ this._originalContent = await this.changeSetFileService.read(this.uri);
67
+ if (this._readOnlyResource) {
68
+ this.readOnlyResource.update({ contents: (_a = this._originalContent) !== null && _a !== void 0 ? _a : '' });
52
69
  }
53
70
  }
54
- getResources() {
55
- this.readOnlyResource = this.getInMemoryUri(this.readOnlyUri);
56
- this.readOnlyResource.update({ autosaveable: false, readOnly: true });
57
- this.changeResource = this.getInMemoryUri(this.changedUri);
58
- this.changeResource.update({ contents: this.targetState, onSave: content => this.writeChanges(content), autosaveable: false });
59
- this.toDispose.pushAll([this.readOnlyResource, this.changeResource]);
60
- }
61
71
  getInMemoryUri(uri) {
62
72
  try {
63
73
  return this.inMemoryResources.resolve(uri);
@@ -71,10 +81,14 @@ let ChangeSetFileElement = ChangeSetFileElement_1 = class ChangeSetFileElement {
71
81
  if (!event.contains(this.uri)) {
72
82
  return;
73
83
  }
84
+ if (!this._initialized && this._initializationPromise) {
85
+ // make sure we are initialized
86
+ await this._initializationPromise;
87
+ }
74
88
  // If we are applied, the tricky thing becomes the question what to revert to; otherwise, what to apply.
75
89
  const newContent = await this.changeSetFileService.read(this.uri).catch(() => '');
76
90
  this.readOnlyResource.update({ contents: newContent });
77
- if (newContent === this.originalContent) {
91
+ if (newContent === this._originalContent) {
78
92
  this.state = 'pending';
79
93
  }
80
94
  else if (newContent === this.targetState) {
@@ -88,11 +102,39 @@ let ChangeSetFileElement = ChangeSetFileElement_1 = class ChangeSetFileElement {
88
102
  get uri() {
89
103
  return this.elementProps.uri;
90
104
  }
105
+ get readOnlyResource() {
106
+ var _a, _b;
107
+ if (!this._readOnlyResource) {
108
+ this._readOnlyResource = this.getInMemoryUri(ChangeSetFileElement_1.toReadOnlyUri(this.uri, this.elementProps.chatSessionId));
109
+ this._readOnlyResource.update({
110
+ autosaveable: false,
111
+ readOnly: true,
112
+ contents: (_a = this._originalContent) !== null && _a !== void 0 ? _a : ''
113
+ });
114
+ this.toDispose.push(this._readOnlyResource);
115
+ // If not yet initialized, update the resource once initialization completes
116
+ if (!this._initialized) {
117
+ (_b = this._initializationPromise) === null || _b === void 0 ? void 0 : _b.then(() => {
118
+ var _a, _b;
119
+ (_a = this._readOnlyResource) === null || _a === void 0 ? void 0 : _a.update({ contents: (_b = this._originalContent) !== null && _b !== void 0 ? _b : '' });
120
+ });
121
+ }
122
+ }
123
+ return this._readOnlyResource;
124
+ }
91
125
  get readOnlyUri() {
92
- return ChangeSetFileElement_1.toReadOnlyUri(this.uri, this.elementProps.chatSessionId);
126
+ return this.readOnlyResource.uri;
127
+ }
128
+ get changeResource() {
129
+ if (!this._changeResource) {
130
+ this._changeResource = this.getInMemoryUri((0, change_set_file_resource_1.createChangeSetFileUri)(this.elementProps.chatSessionId, this.uri));
131
+ this._changeResource.update({ autosaveable: false });
132
+ this.toDispose.push(this._changeResource);
133
+ }
134
+ return this._changeResource;
93
135
  }
94
136
  get changedUri() {
95
- return (0, change_set_file_resource_1.createChangeSetFileUri)(this.elementProps.chatSessionId, this.uri);
137
+ return this.changeResource.uri;
96
138
  }
97
139
  get name() {
98
140
  var _a;
@@ -125,17 +167,34 @@ let ChangeSetFileElement = ChangeSetFileElement_1 = class ChangeSetFileElement {
125
167
  return this.elementProps.data;
126
168
  }
127
169
  ;
170
+ get originalContent() {
171
+ if (!this._initialized && this._initializationPromise) {
172
+ console.warn('Accessing originalContent before initialization is complete. Consider using async methods.');
173
+ }
174
+ return this._originalContent;
175
+ }
176
+ /**
177
+ * Gets the original content of the file asynchronously.
178
+ * Ensures initialization is complete before returning the content.
179
+ */
180
+ async getOriginalContent() {
181
+ await this.ensureInitialized();
182
+ return this._originalContent;
183
+ }
128
184
  get targetState() {
129
185
  var _a;
130
186
  return (_a = this.elementProps.targetState) !== null && _a !== void 0 ? _a : '';
131
187
  }
132
188
  async open() {
189
+ await this.ensureInitialized();
133
190
  this.changeSetFileService.open(this);
134
191
  }
135
192
  async openChange() {
193
+ await this.ensureInitialized();
136
194
  this.changeSetFileService.openDiff(this.readOnlyUri, this.changedUri);
137
195
  }
138
196
  async apply(contents) {
197
+ await this.ensureInitialized();
139
198
  if (!await this.confirm('Apply')) {
140
199
  return;
141
200
  }
@@ -154,7 +213,12 @@ let ChangeSetFileElement = ChangeSetFileElement_1 = class ChangeSetFileElement {
154
213
  await this.changeSetFileService.writeFrom(this.changedUri, this.uri, contents !== null && contents !== void 0 ? contents : this.targetState);
155
214
  this.state = 'applied';
156
215
  }
216
+ onShow() {
217
+ // Ensure we have the latest state when showing
218
+ this.changeResource.update({ contents: this.targetState, onSave: content => this.writeChanges(content) });
219
+ }
157
220
  async revert() {
221
+ await this.ensureInitialized();
158
222
  if (!await this.confirm('Revert')) {
159
223
  return;
160
224
  }
@@ -162,8 +226,8 @@ let ChangeSetFileElement = ChangeSetFileElement_1 = class ChangeSetFileElement {
162
226
  if (this.type === 'add') {
163
227
  await this.changeSetFileService.delete(this.uri);
164
228
  }
165
- else if (this.originalContent) {
166
- await this.changeSetFileService.write(this.uri, this.originalContent);
229
+ else if (this._originalContent) {
230
+ await this.changeSetFileService.write(this.uri, this._originalContent);
167
231
  }
168
232
  }
169
233
  async confirm(verb) {
@@ -202,6 +266,10 @@ tslib_1.__decorate([
202
266
  (0, inversify_1.inject)(ai_core_1.ConfigurableInMemoryResources),
203
267
  tslib_1.__metadata("design:type", ai_core_1.ConfigurableInMemoryResources)
204
268
  ], ChangeSetFileElement.prototype, "inMemoryResources", void 0);
269
+ tslib_1.__decorate([
270
+ (0, inversify_1.inject)(exports.ChangeSetFileElementFactory),
271
+ tslib_1.__metadata("design:type", Function)
272
+ ], ChangeSetFileElement.prototype, "factory", void 0);
205
273
  tslib_1.__decorate([
206
274
  (0, inversify_1.postConstruct)(),
207
275
  tslib_1.__metadata("design:type", Function),
@@ -1 +1 @@
1
- {"version":3,"file":"change-set-file-element.js","sourceRoot":"","sources":["../../src/browser/change-set-file-element.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"change-set-file-element.js","sourceRoot":"","sources":["../../src/browser/change-set-file-element.ts"],"names":[],"mappings":"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"}
@@ -34,11 +34,10 @@ let ChangeSetVariableContribution = class ChangeSetVariableContribution {
34
34
  return request.variable.name === exports.CHANGE_SET_SUMMARY_VARIABLE.name ? 50 : 0;
35
35
  }
36
36
  async resolve(request, context) {
37
- var _a;
38
37
  if (!common_1.ChatSessionContext.is(context) || request.variable.name !== exports.CHANGE_SET_SUMMARY_VARIABLE.name) {
39
38
  return undefined;
40
39
  }
41
- if (!((_a = context.model.changeSet) === null || _a === void 0 ? void 0 : _a.getElements().length)) {
40
+ if (!context.model.changeSet.getElements().length) {
42
41
  return {
43
42
  variable: exports.CHANGE_SET_SUMMARY_VARIABLE,
44
43
  value: ''