@theia/ai-chat 1.63.0-next.24 → 1.63.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 (94) 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 +8 -0
  7. package/lib/browser/ai-chat-frontend-module.js.map +1 -1
  8. package/lib/browser/change-set-file-element.d.ts +47 -8
  9. package/lib/browser/change-set-file-element.d.ts.map +1 -1
  10. package/lib/browser/change-set-file-element.js +207 -31
  11. package/lib/browser/change-set-file-element.js.map +1 -1
  12. package/lib/browser/chat-tool-preferences.d.ts +1 -1
  13. package/lib/browser/chat-tool-preferences.d.ts.map +1 -1
  14. package/lib/browser/chat-tool-preferences.js +4 -4
  15. package/lib/browser/chat-tool-preferences.js.map +1 -1
  16. package/lib/browser/chat-tool-request-service.js +1 -1
  17. package/lib/browser/chat-tool-request-service.js.map +1 -1
  18. package/lib/browser/delegation-response-content.d.ts +20 -0
  19. package/lib/browser/delegation-response-content.d.ts.map +1 -0
  20. package/lib/browser/delegation-response-content.js +51 -0
  21. package/lib/browser/delegation-response-content.js.map +1 -0
  22. package/lib/browser/file-chat-variable-contribution.d.ts +15 -1
  23. package/lib/browser/file-chat-variable-contribution.d.ts.map +1 -1
  24. package/lib/browser/file-chat-variable-contribution.js +111 -5
  25. package/lib/browser/file-chat-variable-contribution.js.map +1 -1
  26. package/lib/browser/frontend-chat-service.d.ts +1 -1
  27. package/lib/browser/frontend-chat-service.d.ts.map +1 -1
  28. package/lib/browser/frontend-chat-service.js +2 -13
  29. package/lib/browser/frontend-chat-service.js.map +1 -1
  30. package/lib/browser/image-context-variable-contribution.d.ts +27 -0
  31. package/lib/browser/image-context-variable-contribution.d.ts.map +1 -0
  32. package/lib/browser/image-context-variable-contribution.js +149 -0
  33. package/lib/browser/image-context-variable-contribution.js.map +1 -0
  34. package/lib/browser/task-context-service.d.ts +9 -3
  35. package/lib/browser/task-context-service.d.ts.map +1 -1
  36. package/lib/browser/task-context-service.js +111 -9
  37. package/lib/browser/task-context-service.js.map +1 -1
  38. package/lib/browser/task-context-storage-service.d.ts +1 -0
  39. package/lib/browser/task-context-storage-service.d.ts.map +1 -1
  40. package/lib/browser/task-context-storage-service.js +4 -1
  41. package/lib/browser/task-context-storage-service.js.map +1 -1
  42. package/lib/common/change-set.js +1 -1
  43. package/lib/common/change-set.js.map +1 -1
  44. package/lib/common/chat-agent-service.d.ts +1 -0
  45. package/lib/common/chat-agent-service.d.ts.map +1 -1
  46. package/lib/common/chat-agent-service.js +2 -1
  47. package/lib/common/chat-agent-service.js.map +1 -1
  48. package/lib/common/chat-agents.d.ts +2 -2
  49. package/lib/common/chat-agents.d.ts.map +1 -1
  50. package/lib/common/chat-agents.js +21 -5
  51. package/lib/common/chat-agents.js.map +1 -1
  52. package/lib/common/chat-model.d.ts +7 -7
  53. package/lib/common/chat-model.d.ts.map +1 -1
  54. package/lib/common/chat-model.js +1 -1
  55. package/lib/common/chat-model.js.map +1 -1
  56. package/lib/common/chat-request-parser.d.ts.map +1 -1
  57. package/lib/common/chat-request-parser.js +3 -6
  58. package/lib/common/chat-request-parser.js.map +1 -1
  59. package/lib/common/chat-service.d.ts +14 -2
  60. package/lib/common/chat-service.d.ts.map +1 -1
  61. package/lib/common/chat-service.js +36 -10
  62. package/lib/common/chat-service.js.map +1 -1
  63. package/lib/common/chat-session-naming-service.js +2 -2
  64. package/lib/common/chat-session-naming-service.js.map +1 -1
  65. package/lib/common/chat-session-summary-agent-prompt.js +3 -3
  66. package/lib/common/chat-session-summary-agent-prompt.js.map +1 -1
  67. package/lib/common/chat-tool-request-service.d.ts +2 -2
  68. package/lib/common/chat-tool-request-service.d.ts.map +1 -1
  69. package/lib/common/image-context-variable.d.ts +29 -0
  70. package/lib/common/image-context-variable.d.ts.map +1 -0
  71. package/lib/common/image-context-variable.js +99 -0
  72. package/lib/common/image-context-variable.js.map +1 -0
  73. package/package.json +11 -10
  74. package/src/browser/agent-delegation-tool.ts +207 -0
  75. package/src/browser/ai-chat-frontend-module.ts +20 -2
  76. package/src/browser/change-set-file-element.ts +236 -32
  77. package/src/browser/chat-tool-preferences.ts +4 -4
  78. package/src/browser/chat-tool-request-service.ts +1 -1
  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 +2 -11
  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 +1 -1
  86. package/src/common/chat-agent-service.ts +1 -0
  87. package/src/common/chat-agents.ts +26 -9
  88. package/src/common/chat-model.ts +16 -7
  89. package/src/common/chat-request-parser.ts +3 -12
  90. package/src/common/chat-service.ts +40 -10
  91. package/src/common/chat-session-naming-service.ts +2 -2
  92. package/src/common/chat-session-summary-agent-prompt.ts +3 -3
  93. package/src/common/chat-tool-request-service.ts +2 -2
  94. 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;;AAsC/D,wBAsFG"}
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"}
@@ -46,6 +46,8 @@ const task_context_variable_label_provider_1 = require("./task-context-variable-
46
46
  const task_context_service_1 = require("./task-context-service");
47
47
  const task_context_storage_service_1 = require("./task-context-storage-service");
48
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");
49
51
  exports.default = new inversify_1.ContainerModule(bind => {
50
52
  (0, core_1.bindContributionProvider)(bind, common_1.Agent);
51
53
  (0, core_1.bindContributionProvider)(bind, common_2.ChatAgent);
@@ -66,6 +68,8 @@ exports.default = new inversify_1.ContainerModule(bind => {
66
68
  bind(common_2.ChatRequestParser).toService(common_2.ChatRequestParserImpl);
67
69
  bind(frontend_chat_service_1.FrontendChatServiceImpl).toSelf().inSingletonScope();
68
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));
69
73
  bind(browser_1.PreferenceContribution).toConstantValue({ schema: ai_chat_preferences_1.aiChatPreferences });
70
74
  // Tool confirmation preferences
71
75
  (0, chat_tool_preferences_1.bindChatToolPreferences)(bind);
@@ -111,10 +115,14 @@ exports.default = new inversify_1.ContainerModule(bind => {
111
115
  bind(common_1.AIVariableContribution).toService(task_context_variable_contribution_1.TaskContextVariableContribution);
112
116
  bind(task_context_variable_label_provider_1.TaskContextVariableLabelProvider).toSelf().inSingletonScope();
113
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);
114
121
  bind(task_context_service_1.TaskContextService).toSelf().inSingletonScope();
115
122
  bind(task_context_storage_service_1.InMemoryTaskContextStorage).toSelf().inSingletonScope();
116
123
  bind(task_context_service_1.TaskContextStorageService).toService(task_context_storage_service_1.InMemoryTaskContextStorage);
117
124
  bind(ai_chat_frontend_contribution_1.AIChatFrontendContribution).toSelf().inSingletonScope();
118
125
  bind(core_1.CommandContribution).toService(ai_chat_frontend_contribution_1.AIChatFrontendContribution);
126
+ (0, common_1.bindToolProvider)(agent_delegation_tool_1.AgentDelegationTool, bind);
119
127
  });
120
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,10 +1,15 @@
1
+ import { ConfigurableInMemoryResources, ConfigurableMutableReferenceResource } from '@theia/ai-core';
1
2
  import { DisposableCollection, Emitter, URI } from '@theia/core';
2
3
  import { Replacement } from '@theia/core/lib/common/content-replacer';
3
- import { ConfigurableInMemoryResources, ConfigurableMutableReferenceResource } from '@theia/ai-core';
4
+ import { EditorPreferences } from '@theia/editor/lib/browser';
5
+ import { FileSystemPreferences } from '@theia/filesystem/lib/browser';
6
+ import { FileService } from '@theia/filesystem/lib/browser/file-service';
7
+ import { MonacoTextModelService } from '@theia/monaco/lib/browser/monaco-text-model-service';
8
+ import { MonacoEditorModel } from '@theia/monaco/lib/browser/monaco-editor-model';
4
9
  import { ChangeSetElement } from '../common';
5
10
  import { ChangeSetFileService } from './change-set-file-service';
6
- import { FileService } from '@theia/filesystem/lib/browser/file-service';
7
- import { ChangeSetDecoratorService } from './change-set-decorator-service';
11
+ import { Deferred } from '@theia/core/lib/common/promise-util';
12
+ import { MonacoCodeActionService } from '@theia/monaco/lib/browser';
8
13
  export declare const ChangeSetFileElementFactory: unique symbol;
9
14
  export type ChangeSetFileElementFactory = (elementProps: ChangeSetElementArgs) => ChangeSetFileElement;
10
15
  type ChangeSetElementState = ChangeSetElement['state'];
@@ -31,18 +36,34 @@ export declare class ChangeSetFileElement implements ChangeSetElement {
31
36
  static toReadOnlyUri(baseUri: URI, sessionId: string): URI;
32
37
  protected readonly elementProps: ChangeSetElementArgs;
33
38
  protected readonly changeSetFileService: ChangeSetFileService;
34
- protected readonly changeSetDecoratorService: ChangeSetDecoratorService;
35
39
  protected readonly fileService: FileService;
36
40
  protected readonly inMemoryResources: ConfigurableInMemoryResources;
37
- protected readonly factory: ChangeSetFileElementFactory;
41
+ protected readonly monacoTextModelService: MonacoTextModelService;
42
+ protected readonly editorPreferences: EditorPreferences;
43
+ protected readonly fileSystemPreferences: FileSystemPreferences;
44
+ protected readonly codeActionService: MonacoCodeActionService;
38
45
  protected readonly toDispose: DisposableCollection;
39
46
  protected _state: ChangeSetElementState;
40
- protected originalContent: string | undefined;
47
+ private _originalContent;
48
+ protected _initialized: boolean;
49
+ protected _initializationPromise: Promise<void> | undefined;
50
+ protected _targetStateWithCodeActions: string | undefined;
51
+ protected codeActionDeferred?: Deferred<string>;
41
52
  protected readonly onDidChangeEmitter: Emitter<void>;
42
53
  readonly onDidChange: import("@theia/core").Event<void>;
43
- protected _readOnlyResource: ConfigurableMutableReferenceResource;
44
- protected _changeResource: ConfigurableMutableReferenceResource;
54
+ protected _readOnlyResource?: ConfigurableMutableReferenceResource;
55
+ protected _changeResource?: ConfigurableMutableReferenceResource;
45
56
  init(): void;
57
+ protected initializeAsync(): Promise<void>;
58
+ /**
59
+ * Ensures that the element is fully initialized before proceeding.
60
+ * This includes loading the original content from the file system.
61
+ */
62
+ ensureInitialized(): Promise<void>;
63
+ /**
64
+ * Returns true if the element has been fully initialized.
65
+ */
66
+ get isInitialized(): boolean;
46
67
  protected obtainOriginalContent(): Promise<void>;
47
68
  protected getInMemoryUri(uri: URI): ConfigurableMutableReferenceResource;
48
69
  protected listenForOriginalFileChanges(): void;
@@ -61,11 +82,29 @@ export declare class ChangeSetFileElement implements ChangeSetElement {
61
82
  get data(): {
62
83
  [key: string]: unknown;
63
84
  } | undefined;
85
+ get originalContent(): string | undefined;
86
+ /**
87
+ * Gets the original content of the file asynchronously.
88
+ * Ensures initialization is complete before returning the content.
89
+ */
90
+ getOriginalContent(): Promise<string | undefined>;
64
91
  get targetState(): string;
92
+ get originalTargetState(): string;
65
93
  open(): Promise<void>;
66
94
  openChange(): Promise<void>;
67
95
  apply(contents?: string): Promise<void>;
68
96
  writeChanges(contents?: string): Promise<void>;
97
+ /**
98
+ * Applies changes using Monaco utilities, including loading the model for the base file URI,
99
+ * setting the value to the intended state, and running code actions on save.
100
+ */
101
+ protected applyChangesWithMonaco(contents?: string): Promise<void>;
102
+ protected applyCodeActionsToTargetState(): Promise<string>;
103
+ protected doApplyCodeActionsToTargetState(): Promise<string>;
104
+ /**
105
+ * Applies formatting preferences like format on save, trim trailing whitespace, and insert final newline.
106
+ */
107
+ protected applyFormatting(model: MonacoEditorModel, languageId: string, uriStr: string): Promise<void>;
69
108
  onShow(): void;
70
109
  revert(): Promise<void>;
71
110
  confirm(verb: string): Promise<boolean>;
@@ -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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"}