@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.
- package/lib/browser/agent-delegation-tool.d.ts +25 -0
- package/lib/browser/agent-delegation-tool.d.ts.map +1 -0
- package/lib/browser/agent-delegation-tool.js +171 -0
- package/lib/browser/agent-delegation-tool.js.map +1 -0
- package/lib/browser/ai-chat-frontend-module.d.ts.map +1 -1
- package/lib/browser/ai-chat-frontend-module.js +15 -1
- package/lib/browser/ai-chat-frontend-module.js.map +1 -1
- package/lib/browser/change-set-file-element.d.ts +28 -7
- package/lib/browser/change-set-file-element.d.ts.map +1 -1
- package/lib/browser/change-set-file-element.js +86 -18
- package/lib/browser/change-set-file-element.js.map +1 -1
- package/lib/browser/change-set-variable.js +1 -2
- package/lib/browser/change-set-variable.js.map +1 -1
- package/lib/browser/chat-tool-preferences.d.ts +54 -0
- package/lib/browser/chat-tool-preferences.d.ts.map +1 -0
- package/lib/browser/chat-tool-preferences.js +170 -0
- package/lib/browser/chat-tool-preferences.js.map +1 -0
- package/lib/browser/chat-tool-request-service.d.ts +20 -0
- package/lib/browser/chat-tool-request-service.d.ts.map +1 -0
- package/lib/browser/chat-tool-request-service.js +89 -0
- package/lib/browser/chat-tool-request-service.js.map +1 -0
- package/lib/browser/delegation-response-content.d.ts +20 -0
- package/lib/browser/delegation-response-content.d.ts.map +1 -0
- package/lib/browser/delegation-response-content.js +51 -0
- package/lib/browser/delegation-response-content.js.map +1 -0
- package/lib/browser/file-chat-variable-contribution.d.ts +15 -1
- package/lib/browser/file-chat-variable-contribution.d.ts.map +1 -1
- package/lib/browser/file-chat-variable-contribution.js +111 -5
- package/lib/browser/file-chat-variable-contribution.js.map +1 -1
- package/lib/browser/frontend-chat-service.d.ts.map +1 -1
- package/lib/browser/frontend-chat-service.js +2 -6
- package/lib/browser/frontend-chat-service.js.map +1 -1
- package/lib/browser/image-context-variable-contribution.d.ts +27 -0
- package/lib/browser/image-context-variable-contribution.d.ts.map +1 -0
- package/lib/browser/image-context-variable-contribution.js +149 -0
- package/lib/browser/image-context-variable-contribution.js.map +1 -0
- package/lib/browser/task-context-service.d.ts +9 -3
- package/lib/browser/task-context-service.d.ts.map +1 -1
- package/lib/browser/task-context-service.js +111 -9
- package/lib/browser/task-context-service.js.map +1 -1
- package/lib/browser/task-context-storage-service.d.ts +1 -0
- package/lib/browser/task-context-storage-service.d.ts.map +1 -1
- package/lib/browser/task-context-storage-service.js +4 -1
- package/lib/browser/task-context-storage-service.js.map +1 -1
- package/lib/common/change-set.d.ts +78 -0
- package/lib/common/change-set.d.ts.map +1 -0
- package/lib/common/change-set.js +133 -0
- package/lib/common/change-set.js.map +1 -0
- package/lib/common/chat-agent-service.d.ts +1 -0
- package/lib/common/chat-agent-service.d.ts.map +1 -1
- package/lib/common/chat-agent-service.js +2 -1
- package/lib/common/chat-agent-service.js.map +1 -1
- package/lib/common/chat-agents.d.ts +2 -2
- package/lib/common/chat-agents.d.ts.map +1 -1
- package/lib/common/chat-agents.js +25 -6
- package/lib/common/chat-agents.js.map +1 -1
- package/lib/common/chat-model.d.ts +68 -80
- package/lib/common/chat-model.d.ts.map +1 -1
- package/lib/common/chat-model.js +224 -136
- package/lib/common/chat-model.js.map +1 -1
- package/lib/common/chat-request-parser.d.ts.map +1 -1
- package/lib/common/chat-request-parser.js +3 -0
- package/lib/common/chat-request-parser.js.map +1 -1
- package/lib/common/chat-service.d.ts +6 -5
- package/lib/common/chat-service.d.ts.map +1 -1
- package/lib/common/chat-service.js +9 -11
- package/lib/common/chat-service.js.map +1 -1
- package/lib/common/image-context-variable.d.ts +29 -0
- package/lib/common/image-context-variable.d.ts.map +1 -0
- package/lib/common/image-context-variable.js +99 -0
- package/lib/common/image-context-variable.js.map +1 -0
- package/package.json +10 -9
- package/src/browser/agent-delegation-tool.ts +207 -0
- package/src/browser/ai-chat-frontend-module.ts +28 -3
- package/src/browser/change-set-file-element.ts +97 -25
- package/src/browser/change-set-variable.ts +1 -1
- package/src/browser/chat-tool-preferences.ts +178 -0
- package/src/browser/chat-tool-request-service.ts +93 -0
- package/src/browser/delegation-response-content.ts +55 -0
- package/src/browser/file-chat-variable-contribution.ts +120 -6
- package/src/browser/frontend-chat-service.ts +3 -6
- package/src/browser/image-context-variable-contribution.ts +153 -0
- package/src/browser/task-context-service.ts +115 -9
- package/src/browser/task-context-storage-service.ts +5 -1
- package/src/common/change-set.ts +197 -0
- package/src/common/chat-agent-service.ts +1 -0
- package/src/common/chat-agents.ts +40 -19
- package/src/common/chat-model.ts +258 -208
- package/src/common/chat-request-parser.ts +3 -0
- package/src/common/chat-service.ts +11 -13
- package/src/common/image-context-variable.ts +116 -0
|
@@ -20,11 +20,14 @@ const tslib_1 = require("tslib");
|
|
|
20
20
|
const inversify_1 = require("@theia/core/shared/inversify");
|
|
21
21
|
const core_1 = require("@theia/core");
|
|
22
22
|
const common_1 = require("../common");
|
|
23
|
+
const browser_1 = require("@theia/core/lib/browser");
|
|
23
24
|
const chat_session_summary_agent_1 = require("../common/chat-session-summary-agent");
|
|
24
25
|
const promise_util_1 = require("@theia/core/lib/common/promise-util");
|
|
25
26
|
const ai_core_1 = require("@theia/ai-core");
|
|
26
27
|
const chat_session_summary_agent_prompt_1 = require("../common/chat-session-summary-agent-prompt");
|
|
27
|
-
|
|
28
|
+
const change_set_file_element_1 = require("./change-set-file-element");
|
|
29
|
+
const yaml = require("js-yaml");
|
|
30
|
+
exports.TaskContextStorageService = Symbol('TaskContextStorageService');
|
|
28
31
|
let TaskContextService = class TaskContextService {
|
|
29
32
|
constructor() {
|
|
30
33
|
this.pendingSummaries = new Map();
|
|
@@ -51,13 +54,13 @@ let TaskContextService = class TaskContextService {
|
|
|
51
54
|
throw new Error('Unable to resolve summary request.');
|
|
52
55
|
}
|
|
53
56
|
/** Returns an ID that can be used to refer to the summary in the future. */
|
|
54
|
-
async summarize(session, promptId, agent) {
|
|
57
|
+
async summarize(session, promptId, agent, override = true) {
|
|
55
58
|
const pending = this.pendingSummaries.get(session.id);
|
|
56
59
|
if (pending) {
|
|
57
60
|
return pending.then(({ id }) => id);
|
|
58
61
|
}
|
|
59
62
|
const existing = this.getSummaryForSession(session);
|
|
60
|
-
if (existing) {
|
|
63
|
+
if (existing && !override) {
|
|
61
64
|
return existing.id;
|
|
62
65
|
}
|
|
63
66
|
const summaryId = (0, core_1.generateUuid)();
|
|
@@ -65,8 +68,9 @@ let TaskContextService = class TaskContextService {
|
|
|
65
68
|
const progress = await this.progressService.showProgress({ text: `Summarize: ${session.title || session.id}`, options: { location: 'ai-chat' } });
|
|
66
69
|
this.pendingSummaries.set(session.id, summaryDeferred.promise);
|
|
67
70
|
try {
|
|
71
|
+
const prompt = await this.getSystemPrompt(session, promptId);
|
|
68
72
|
const newSummary = {
|
|
69
|
-
summary: await this.getLlmSummary(session,
|
|
73
|
+
summary: await this.getLlmSummary(session, prompt, agent),
|
|
70
74
|
label: session.title || session.id,
|
|
71
75
|
sessionId: session.id,
|
|
72
76
|
id: summaryId
|
|
@@ -76,6 +80,13 @@ let TaskContextService = class TaskContextService {
|
|
|
76
80
|
}
|
|
77
81
|
catch (err) {
|
|
78
82
|
summaryDeferred.reject(err);
|
|
83
|
+
const errorSummary = {
|
|
84
|
+
summary: `Summary creation failed: ${err instanceof Error ? err.message : typeof err === 'string' ? err : 'Unknown error'}`,
|
|
85
|
+
label: session.title || session.id,
|
|
86
|
+
sessionId: session.id,
|
|
87
|
+
id: summaryId
|
|
88
|
+
};
|
|
89
|
+
await this.storageService.store(errorSummary);
|
|
79
90
|
throw err;
|
|
80
91
|
}
|
|
81
92
|
finally {
|
|
@@ -83,8 +94,91 @@ let TaskContextService = class TaskContextService {
|
|
|
83
94
|
this.pendingSummaries.delete(session.id);
|
|
84
95
|
}
|
|
85
96
|
}
|
|
86
|
-
async
|
|
97
|
+
async update(session, promptId, agent, override = true) {
|
|
98
|
+
// Get the existing summary for the session
|
|
99
|
+
const existingSummary = this.getSummaryForSession(session);
|
|
100
|
+
if (!existingSummary) {
|
|
101
|
+
// If no summary exists, create one instead
|
|
102
|
+
// TODO: Maybe we could also look into the task context folder and ask for the existing ones with an additional menu to create a new one?
|
|
103
|
+
return this.summarize(session, promptId, agent, override);
|
|
104
|
+
}
|
|
105
|
+
const progress = await this.progressService.showProgress({ text: `Updating: ${session.title || session.id}`, options: { location: 'ai-chat' } });
|
|
106
|
+
try {
|
|
107
|
+
const prompt = await this.getSystemPrompt(session, promptId);
|
|
108
|
+
if (!prompt) {
|
|
109
|
+
return '';
|
|
110
|
+
}
|
|
111
|
+
// Get the task context file path
|
|
112
|
+
const taskContextStorageDirectory = this.preferenceService.get(
|
|
113
|
+
// preference key is defined in TASK_CONTEXT_STORAGE_DIRECTORY_PREF in @theia/ai-ide
|
|
114
|
+
'ai-features.promptTemplates.taskContextStorageDirectory', '.prompts/task-contexts');
|
|
115
|
+
const taskContextFileVariable = session.model.context.getVariables().find(variableReq => variableReq.variable.id === 'file-provider' &&
|
|
116
|
+
typeof variableReq.arg === 'string' &&
|
|
117
|
+
(variableReq.arg.startsWith(taskContextStorageDirectory)));
|
|
118
|
+
// Check if we have a document path to update
|
|
119
|
+
if (taskContextFileVariable && typeof taskContextFileVariable.arg === 'string') {
|
|
120
|
+
// Set document path in prompt template
|
|
121
|
+
const documentPath = taskContextFileVariable.arg;
|
|
122
|
+
// Modify prompt to include the document path and content
|
|
123
|
+
prompt.text = prompt.text + '\nThe document to update is: ' + documentPath + '\n\n## Current Document Content\n\n' + existingSummary.summary;
|
|
124
|
+
// Get updated document content from LLM
|
|
125
|
+
const updatedDocumentContent = await this.getLlmSummary(session, prompt, agent);
|
|
126
|
+
if (existingSummary.uri) {
|
|
127
|
+
// updated document metadata shall be updated.
|
|
128
|
+
// otherwise, frontmatter won't be set
|
|
129
|
+
const frontmatter = {
|
|
130
|
+
sessionId: existingSummary.sessionId,
|
|
131
|
+
date: new Date().toISOString(),
|
|
132
|
+
label: existingSummary.label,
|
|
133
|
+
};
|
|
134
|
+
const content = yaml.dump(frontmatter).trim() + `${core_1.EOL}---${core_1.EOL}` + updatedDocumentContent;
|
|
135
|
+
session.model.changeSet.addElements(this.fileChangeFactory({
|
|
136
|
+
uri: existingSummary.uri,
|
|
137
|
+
type: 'modify',
|
|
138
|
+
state: 'pending',
|
|
139
|
+
targetState: content,
|
|
140
|
+
requestId: session.model.id, // not a request id, as no changeRequest made yet.
|
|
141
|
+
chatSessionId: session.id
|
|
142
|
+
}));
|
|
143
|
+
}
|
|
144
|
+
else {
|
|
145
|
+
const updatedSummary = {
|
|
146
|
+
...existingSummary,
|
|
147
|
+
summary: updatedDocumentContent
|
|
148
|
+
};
|
|
149
|
+
// Store the updated summary
|
|
150
|
+
await this.storageService.store(updatedSummary);
|
|
151
|
+
}
|
|
152
|
+
return existingSummary.id;
|
|
153
|
+
}
|
|
154
|
+
else {
|
|
155
|
+
// Fall back to standard update if no document path is found
|
|
156
|
+
const updatedSummaryText = await this.getLlmSummary(session, prompt, agent);
|
|
157
|
+
const updatedSummary = {
|
|
158
|
+
...existingSummary,
|
|
159
|
+
summary: updatedSummaryText
|
|
160
|
+
};
|
|
161
|
+
await this.storageService.store(updatedSummary);
|
|
162
|
+
return updatedSummary.id;
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
catch (err) {
|
|
166
|
+
const errorSummary = {
|
|
167
|
+
...existingSummary,
|
|
168
|
+
summary: `Summary update failed: ${err instanceof Error ? err.message : typeof err === 'string' ? err : 'Unknown error'}`
|
|
169
|
+
};
|
|
170
|
+
await this.storageService.store(errorSummary);
|
|
171
|
+
throw err;
|
|
172
|
+
}
|
|
173
|
+
finally {
|
|
174
|
+
progress.cancel();
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
async getLlmSummary(session, prompt, agent) {
|
|
87
178
|
var _a, _b;
|
|
179
|
+
if (!prompt) {
|
|
180
|
+
return '';
|
|
181
|
+
}
|
|
88
182
|
agent = agent || this.agentService.getAgents().find((candidate) => 'invoke' in candidate
|
|
89
183
|
&& typeof candidate.invoke === 'function'
|
|
90
184
|
&& candidate.id === chat_session_summary_agent_1.ChatSessionSummaryAgent.ID);
|
|
@@ -92,10 +186,6 @@ let TaskContextService = class TaskContextService {
|
|
|
92
186
|
throw new Error('Unable to identify agent for summary.');
|
|
93
187
|
}
|
|
94
188
|
const model = new common_1.MutableChatModel(common_1.ChatAgentLocation.Panel);
|
|
95
|
-
const prompt = await this.promptService.getResolvedPromptFragment(promptId || chat_session_summary_agent_prompt_1.CHAT_SESSION_SUMMARY_PROMPT.id, undefined, { model: session.model });
|
|
96
|
-
if (!prompt) {
|
|
97
|
-
return '';
|
|
98
|
-
}
|
|
99
189
|
const messages = session.model.getRequests().filter((candidate) => candidate instanceof common_1.MutableChatRequestModel);
|
|
100
190
|
messages.forEach(message => model['_hierarchy'].append(message));
|
|
101
191
|
const summaryRequest = model.addRequest({
|
|
@@ -107,6 +197,10 @@ let TaskContextService = class TaskContextService {
|
|
|
107
197
|
await agent.invoke(summaryRequest);
|
|
108
198
|
return summaryRequest.response.response.asDisplayString();
|
|
109
199
|
}
|
|
200
|
+
async getSystemPrompt(session, promptId = chat_session_summary_agent_prompt_1.CHAT_SESSION_SUMMARY_PROMPT.id) {
|
|
201
|
+
const prompt = await this.promptService.getResolvedPromptFragment(promptId || chat_session_summary_agent_prompt_1.CHAT_SESSION_SUMMARY_PROMPT.id, undefined, { model: session.model });
|
|
202
|
+
return prompt;
|
|
203
|
+
}
|
|
110
204
|
hasSummary(chatSession) {
|
|
111
205
|
return !!this.getSummaryForSession(chatSession);
|
|
112
206
|
}
|
|
@@ -142,6 +236,14 @@ tslib_1.__decorate([
|
|
|
142
236
|
(0, inversify_1.inject)(core_1.ProgressService),
|
|
143
237
|
tslib_1.__metadata("design:type", core_1.ProgressService)
|
|
144
238
|
], TaskContextService.prototype, "progressService", void 0);
|
|
239
|
+
tslib_1.__decorate([
|
|
240
|
+
(0, inversify_1.inject)(browser_1.PreferenceService),
|
|
241
|
+
tslib_1.__metadata("design:type", Object)
|
|
242
|
+
], TaskContextService.prototype, "preferenceService", void 0);
|
|
243
|
+
tslib_1.__decorate([
|
|
244
|
+
(0, inversify_1.inject)(change_set_file_element_1.ChangeSetFileElementFactory),
|
|
245
|
+
tslib_1.__metadata("design:type", Function)
|
|
246
|
+
], TaskContextService.prototype, "fileChangeFactory", void 0);
|
|
145
247
|
exports.TaskContextService = TaskContextService = tslib_1.__decorate([
|
|
146
248
|
(0, inversify_1.injectable)()
|
|
147
249
|
], TaskContextService);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task-context-service.js","sourceRoot":"","sources":["../../src/browser/task-context-service.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,oDAAoD;AACpD,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,4DAAkE;AAClE,
|
|
1
|
+
{"version":3,"file":"task-context-service.js","sourceRoot":"","sources":["../../src/browser/task-context-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,7 @@ export declare class InMemoryTaskContextStorage implements TaskContextStorageSer
|
|
|
6
6
|
protected summaries: Map<string, Summary>;
|
|
7
7
|
protected readonly onDidChangeEmitter: Emitter<void>;
|
|
8
8
|
readonly onDidChange: import("@theia/core").Event<void>;
|
|
9
|
+
protected sanitizeLabel(label: string): string;
|
|
9
10
|
protected readonly variableResourceResolver: AIVariableResourceResolver;
|
|
10
11
|
protected readonly openerService: OpenerService;
|
|
11
12
|
store(summary: Summary): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task-context-storage-service.d.ts","sourceRoot":"","sources":["../../src/browser/task-context-storage-service.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,OAAO,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AAC5E,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,0BAA0B,EAAE,MAAM,gBAAgB,CAAC;AAE5D,OAAO,EAAQ,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAE9D,qBACa,0BAA2B,YAAW,yBAAyB;IACxE,SAAS,CAAC,SAAS,uBAA8B;IAEjD,SAAS,CAAC,QAAQ,CAAC,kBAAkB,gBAAuB;IAC5D,QAAQ,CAAC,WAAW,oCAAiC;
|
|
1
|
+
{"version":3,"file":"task-context-storage-service.d.ts","sourceRoot":"","sources":["../../src/browser/task-context-storage-service.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,OAAO,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AAC5E,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,0BAA0B,EAAE,MAAM,gBAAgB,CAAC;AAE5D,OAAO,EAAQ,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAE9D,qBACa,0BAA2B,YAAW,yBAAyB;IACxE,SAAS,CAAC,SAAS,uBAA8B;IAEjD,SAAS,CAAC,QAAQ,CAAC,kBAAkB,gBAAuB;IAC5D,QAAQ,CAAC,WAAW,oCAAiC;IAErD,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAK9C,SAAS,CAAC,QAAQ,CAAC,wBAAwB,EAAE,0BAA0B,CAAC;IAGxE,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IAEhD,KAAK,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAK7B,MAAM,IAAI,OAAO,EAAE;IAInB,GAAG,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;IAI5C,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAQnC,KAAK,IAAI,IAAI;IAOP,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAUhD"}
|
|
@@ -28,8 +28,11 @@ let InMemoryTaskContextStorage = class InMemoryTaskContextStorage {
|
|
|
28
28
|
this.onDidChangeEmitter = new core_1.Emitter();
|
|
29
29
|
this.onDidChange = this.onDidChangeEmitter.event;
|
|
30
30
|
}
|
|
31
|
+
sanitizeLabel(label) {
|
|
32
|
+
return label.replace(/^[^\p{L}\p{N}]+/vg, '');
|
|
33
|
+
}
|
|
31
34
|
store(summary) {
|
|
32
|
-
this.summaries.set(summary.id, summary);
|
|
35
|
+
this.summaries.set(summary.id, { ...summary, label: this.sanitizeLabel(summary.label) });
|
|
33
36
|
this.onDidChangeEmitter.fire();
|
|
34
37
|
}
|
|
35
38
|
getAll() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task-context-storage-service.js","sourceRoot":"","sources":["../../src/browser/task-context-storage-service.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,oDAAoD;AACpD,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,4DAAkE;AAElE,sCAAsC;AACtC,4CAA4D;AAC5D,mEAAgE;AAChE,qDAA8D;AAGvD,IAAM,0BAA0B,GAAhC,MAAM,0BAA0B;IAAhC;QACO,cAAS,GAAG,IAAI,GAAG,EAAmB,CAAC;QAE9B,uBAAkB,GAAG,IAAI,cAAO,EAAQ,CAAC;QACnD,gBAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"task-context-storage-service.js","sourceRoot":"","sources":["../../src/browser/task-context-storage-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { Disposable, Emitter, Event, URI } from '@theia/core';
|
|
2
|
+
export interface ChangeSetElement {
|
|
3
|
+
readonly uri: URI;
|
|
4
|
+
onDidChange?: Event<void>;
|
|
5
|
+
readonly name?: string;
|
|
6
|
+
readonly icon?: string;
|
|
7
|
+
readonly additionalInfo?: string;
|
|
8
|
+
readonly state?: 'pending' | 'applied' | 'stale';
|
|
9
|
+
readonly type?: 'add' | 'modify' | 'delete';
|
|
10
|
+
readonly data?: {
|
|
11
|
+
[key: string]: unknown;
|
|
12
|
+
};
|
|
13
|
+
/** Called when an element is shown in the UI */
|
|
14
|
+
onShow?(): void;
|
|
15
|
+
/** Called when an element is hidden in the UI */
|
|
16
|
+
onHide?(): void;
|
|
17
|
+
open?(): Promise<void>;
|
|
18
|
+
openChange?(): Promise<void>;
|
|
19
|
+
apply?(): Promise<void>;
|
|
20
|
+
revert?(): Promise<void>;
|
|
21
|
+
dispose?(): void;
|
|
22
|
+
}
|
|
23
|
+
export interface ChatUpdateChangeSetEvent {
|
|
24
|
+
kind: 'updateChangeSet';
|
|
25
|
+
elements?: ChangeSetElement[];
|
|
26
|
+
title?: string;
|
|
27
|
+
}
|
|
28
|
+
export interface ChangeSetChangeEvent {
|
|
29
|
+
title?: string;
|
|
30
|
+
added?: URI[];
|
|
31
|
+
removed?: URI[];
|
|
32
|
+
modified?: URI[];
|
|
33
|
+
/** Fired when only the state of a given element changes, not its contents */
|
|
34
|
+
state?: URI[];
|
|
35
|
+
}
|
|
36
|
+
export interface ChangeSet extends Disposable {
|
|
37
|
+
onDidChange: Event<ChatUpdateChangeSetEvent>;
|
|
38
|
+
readonly title: string;
|
|
39
|
+
setTitle(title: string): void;
|
|
40
|
+
getElements(): ChangeSetElement[];
|
|
41
|
+
/**
|
|
42
|
+
* Find an element by URI.
|
|
43
|
+
* @param uri The URI to look for.
|
|
44
|
+
* @returns The element with the given URI, or undefined if not found.
|
|
45
|
+
*/
|
|
46
|
+
getElementByURI(uri: URI): ChangeSetElement | undefined;
|
|
47
|
+
/** @returns true if addition produces a change; false otherwise. */
|
|
48
|
+
addElements(...elements: ChangeSetElement[]): boolean;
|
|
49
|
+
setElements(...elements: ChangeSetElement[]): void;
|
|
50
|
+
/** @returns true if deletion produces a change; false otherwise. */
|
|
51
|
+
removeElements(...uris: URI[]): boolean;
|
|
52
|
+
dispose(): void;
|
|
53
|
+
}
|
|
54
|
+
export declare class ChangeSetImpl implements ChangeSet {
|
|
55
|
+
/** @param changeSets ordered from tip to root. */
|
|
56
|
+
static combine(changeSets: Iterable<ChangeSetImpl>): Map<string, ChangeSetElement | undefined>;
|
|
57
|
+
protected readonly _onDidChangeEmitter: Emitter<ChatUpdateChangeSetEvent>;
|
|
58
|
+
onDidChange: Event<ChatUpdateChangeSetEvent>;
|
|
59
|
+
protected readonly _onDidChangeContentsEmitter: Emitter<ChangeSetChangeEvent>;
|
|
60
|
+
onDidChangeContents: Event<ChangeSetChangeEvent>;
|
|
61
|
+
protected hasBeenSet: boolean;
|
|
62
|
+
protected _elements: Map<string, ChangeSetElement | undefined>;
|
|
63
|
+
protected _title: string;
|
|
64
|
+
get title(): string;
|
|
65
|
+
constructor(elements?: ChangeSetElement[]);
|
|
66
|
+
getElements(): ChangeSetElement[];
|
|
67
|
+
/** Will replace any element that is already present, using URI as identity criterion. */
|
|
68
|
+
addElements(...elements: ChangeSetElement[]): boolean;
|
|
69
|
+
setTitle(title: string): void;
|
|
70
|
+
protected doAdd(element: ChangeSetElement): boolean;
|
|
71
|
+
setElements(...elements: ChangeSetElement[]): void;
|
|
72
|
+
removeElements(...uris: URI[]): boolean;
|
|
73
|
+
getElementByURI(uri: URI): ChangeSetElement | undefined;
|
|
74
|
+
protected doDelete(uri: URI): boolean;
|
|
75
|
+
protected notifyChange(change: ChangeSetChangeEvent): void;
|
|
76
|
+
dispose(): void;
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=change-set.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"change-set.d.ts","sourceRoot":"","sources":["../../src/common/change-set.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// *****************************************************************************
|
|
3
|
+
// Copyright (C) 2025 EclipseSource GmbH and others.
|
|
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.ChangeSetImpl = void 0;
|
|
19
|
+
const core_1 = require("@theia/core");
|
|
20
|
+
class ChangeSetImpl {
|
|
21
|
+
/** @param changeSets ordered from tip to root. */
|
|
22
|
+
static combine(changeSets) {
|
|
23
|
+
const result = new Map();
|
|
24
|
+
for (const next of changeSets) {
|
|
25
|
+
next._elements.forEach((value, key) => !result.has(key) && result.set(key, value));
|
|
26
|
+
// Break at the first element whose values were set, not just changed through addition and deletion.
|
|
27
|
+
if (next.hasBeenSet) {
|
|
28
|
+
break;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
return result;
|
|
32
|
+
}
|
|
33
|
+
get title() {
|
|
34
|
+
return this._title;
|
|
35
|
+
}
|
|
36
|
+
constructor(elements = []) {
|
|
37
|
+
this._onDidChangeEmitter = new core_1.Emitter();
|
|
38
|
+
this.onDidChange = this._onDidChangeEmitter.event;
|
|
39
|
+
this._onDidChangeContentsEmitter = new core_1.Emitter();
|
|
40
|
+
this.onDidChangeContents = this._onDidChangeContentsEmitter.event;
|
|
41
|
+
this.hasBeenSet = false;
|
|
42
|
+
this._elements = new Map();
|
|
43
|
+
this._title = 'Suggested Changes';
|
|
44
|
+
this.addElements(...elements);
|
|
45
|
+
}
|
|
46
|
+
getElements() {
|
|
47
|
+
return core_1.ArrayUtils.coalesce(Array.from(this._elements.values()));
|
|
48
|
+
}
|
|
49
|
+
/** Will replace any element that is already present, using URI as identity criterion. */
|
|
50
|
+
addElements(...elements) {
|
|
51
|
+
const added = [];
|
|
52
|
+
const modified = [];
|
|
53
|
+
elements.forEach(element => {
|
|
54
|
+
if (this.doAdd(element)) {
|
|
55
|
+
modified.push(element.uri);
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
added.push(element.uri);
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
this.notifyChange({ added, modified });
|
|
62
|
+
return !!(added.length || modified.length);
|
|
63
|
+
}
|
|
64
|
+
setTitle(title) {
|
|
65
|
+
this._title = title;
|
|
66
|
+
this.notifyChange({ title });
|
|
67
|
+
}
|
|
68
|
+
doAdd(element) {
|
|
69
|
+
var _a, _b;
|
|
70
|
+
const id = element.uri.toString();
|
|
71
|
+
const existing = this._elements.get(id);
|
|
72
|
+
(_a = existing === null || existing === void 0 ? void 0 : existing.dispose) === null || _a === void 0 ? void 0 : _a.call(existing);
|
|
73
|
+
this._elements.set(id, element);
|
|
74
|
+
(_b = element.onDidChange) === null || _b === void 0 ? void 0 : _b.call(element, () => this.notifyChange({ state: [element.uri] }));
|
|
75
|
+
return !!existing;
|
|
76
|
+
}
|
|
77
|
+
setElements(...elements) {
|
|
78
|
+
this.hasBeenSet = true;
|
|
79
|
+
const added = [];
|
|
80
|
+
const modified = [];
|
|
81
|
+
const removed = [];
|
|
82
|
+
const toHandle = new Set(this._elements.keys());
|
|
83
|
+
for (const element of elements) {
|
|
84
|
+
toHandle.delete(element.uri.toString());
|
|
85
|
+
if (this.doAdd(element)) {
|
|
86
|
+
added.push(element.uri);
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
modified.push(element.uri);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
for (const toDelete of toHandle) {
|
|
93
|
+
const uri = new core_1.URI(toDelete);
|
|
94
|
+
if (this.doDelete(uri)) {
|
|
95
|
+
removed.push(uri);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
this.notifyChange({ added, modified, removed });
|
|
99
|
+
}
|
|
100
|
+
removeElements(...uris) {
|
|
101
|
+
const removed = [];
|
|
102
|
+
for (const uri of uris) {
|
|
103
|
+
if (this.doDelete(uri)) {
|
|
104
|
+
removed.push(uri);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
this.notifyChange({ removed });
|
|
108
|
+
return !!removed.length;
|
|
109
|
+
}
|
|
110
|
+
getElementByURI(uri) {
|
|
111
|
+
return this._elements.get(uri.toString());
|
|
112
|
+
}
|
|
113
|
+
doDelete(uri) {
|
|
114
|
+
var _a;
|
|
115
|
+
const id = uri.toString();
|
|
116
|
+
const delendum = this._elements.get(id);
|
|
117
|
+
if (delendum) {
|
|
118
|
+
(_a = delendum.dispose) === null || _a === void 0 ? void 0 : _a.call(delendum);
|
|
119
|
+
}
|
|
120
|
+
this._elements.set(id, undefined);
|
|
121
|
+
return !!delendum;
|
|
122
|
+
}
|
|
123
|
+
notifyChange(change) {
|
|
124
|
+
this._onDidChangeContentsEmitter.fire(change);
|
|
125
|
+
this._onDidChangeEmitter.fire({ kind: 'updateChangeSet', elements: this.getElements(), title: this.title });
|
|
126
|
+
}
|
|
127
|
+
dispose() {
|
|
128
|
+
this._onDidChangeEmitter.dispose();
|
|
129
|
+
this._elements.forEach(element => { var _a; return (_a = element === null || element === void 0 ? void 0 : element.dispose) === null || _a === void 0 ? void 0 : _a.call(element); });
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
exports.ChangeSetImpl = ChangeSetImpl;
|
|
133
|
+
//# sourceMappingURL=change-set.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"change-set.js","sourceRoot":"","sources":["../../src/common/change-set.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@ import { ContributionProvider, ILogger } from '@theia/core';
|
|
|
2
2
|
import { ChatAgent } from './chat-agents';
|
|
3
3
|
import { AgentService } from '@theia/ai-core';
|
|
4
4
|
export declare const ChatAgentService: unique symbol;
|
|
5
|
+
export declare const ChatAgentServiceFactory: unique symbol;
|
|
5
6
|
/**
|
|
6
7
|
* The ChatAgentService provides access to the available chat agents.
|
|
7
8
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat-agent-service.d.ts","sourceRoot":"","sources":["../../src/common/chat-agent-service.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAE,oBAAoB,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAE5D,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,eAAO,MAAM,gBAAgB,eAA6B,CAAC;AAC3D;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC7B;;OAEG;IACH,SAAS,IAAI,SAAS,EAAE,CAAC;IACzB;;OAEG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAAC;IAC5C;;OAEG;IACH,YAAY,IAAI,SAAS,EAAE,CAAC;IAE5B;;;OAGG;IACH,iBAAiB,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,CAAC;IAE1C;;;OAGG;IACH,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9C;AACD,qBACa,oBAAqB,YAAW,gBAAgB;IAGzD,SAAS,CAAC,QAAQ,CAAC,kBAAkB,EAAE,oBAAoB,CAAC,SAAS,CAAC,CAAC;IAGvE,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC;IAG1B,SAAS,CAAC,YAAY,EAAE,YAAY,CAAC;IAErC,SAAS,CAAC,OAAO,EAAE,SAAS,EAAE,CAAM;IAEpC,SAAS,KAAK,MAAM,IAAI,SAAS,EAAE,CAIlC;IAED,iBAAiB,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAGzC,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAI1C,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAM3C,SAAS,IAAI,SAAS,EAAE;IAGxB,YAAY,IAAI,SAAS,EAAE;IAI3B,OAAO,CAAC,eAAe;CAG1B"}
|
|
1
|
+
{"version":3,"file":"chat-agent-service.d.ts","sourceRoot":"","sources":["../../src/common/chat-agent-service.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAE,oBAAoB,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAE5D,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,eAAO,MAAM,gBAAgB,eAA6B,CAAC;AAC3D,eAAO,MAAM,uBAAuB,eAAoC,CAAC;AACzE;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC7B;;OAEG;IACH,SAAS,IAAI,SAAS,EAAE,CAAC;IACzB;;OAEG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAAC;IAC5C;;OAEG;IACH,YAAY,IAAI,SAAS,EAAE,CAAC;IAE5B;;;OAGG;IACH,iBAAiB,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,CAAC;IAE1C;;;OAGG;IACH,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9C;AACD,qBACa,oBAAqB,YAAW,gBAAgB;IAGzD,SAAS,CAAC,QAAQ,CAAC,kBAAkB,EAAE,oBAAoB,CAAC,SAAS,CAAC,CAAC;IAGvE,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC;IAG1B,SAAS,CAAC,YAAY,EAAE,YAAY,CAAC;IAErC,SAAS,CAAC,OAAO,EAAE,SAAS,EAAE,CAAM;IAEpC,SAAS,KAAK,MAAM,IAAI,SAAS,EAAE,CAIlC;IAED,iBAAiB,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAGzC,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAI1C,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAM3C,SAAS,IAAI,SAAS,EAAE;IAGxB,YAAY,IAAI,SAAS,EAAE;IAI3B,OAAO,CAAC,eAAe;CAG1B"}
|
|
@@ -20,13 +20,14 @@
|
|
|
20
20
|
*--------------------------------------------------------------------------------------------*/
|
|
21
21
|
// Partially copied from https://github.com/microsoft/vscode/blob/a2cab7255c0df424027be05d58e1b7b941f4ea60/src/vs/workbench/contrib/chat/common/chatAgents.ts
|
|
22
22
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
23
|
-
exports.ChatAgentServiceImpl = exports.ChatAgentService = void 0;
|
|
23
|
+
exports.ChatAgentServiceImpl = exports.ChatAgentServiceFactory = exports.ChatAgentService = void 0;
|
|
24
24
|
const tslib_1 = require("tslib");
|
|
25
25
|
const core_1 = require("@theia/core");
|
|
26
26
|
const inversify_1 = require("@theia/core/shared/inversify");
|
|
27
27
|
const chat_agents_1 = require("./chat-agents");
|
|
28
28
|
const ai_core_1 = require("@theia/ai-core");
|
|
29
29
|
exports.ChatAgentService = Symbol('ChatAgentService');
|
|
30
|
+
exports.ChatAgentServiceFactory = Symbol('ChatAgentServiceFactory');
|
|
30
31
|
let ChatAgentServiceImpl = class ChatAgentServiceImpl {
|
|
31
32
|
constructor() {
|
|
32
33
|
this._agents = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat-agent-service.js","sourceRoot":"","sources":["../../src/common/chat-agent-service.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;AAChF;;;gGAGgG;AAChG,6JAA6J;;;;AAE7J,sCAA4D;AAC5D,4DAAyE;AACzE,+CAA0C;AAC1C,4CAA8C;AAEjC,QAAA,gBAAgB,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC;AA+
|
|
1
|
+
{"version":3,"file":"chat-agent-service.js","sourceRoot":"","sources":["../../src/common/chat-agent-service.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;AAChF;;;gGAGgG;AAChG,6JAA6J;;;;AAE7J,sCAA4D;AAC5D,4DAAyE;AACzE,+CAA0C;AAC1C,4CAA8C;AAEjC,QAAA,gBAAgB,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC;AAC9C,QAAA,uBAAuB,GAAG,MAAM,CAAC,yBAAyB,CAAC,CAAC;AA+BlE,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;IAA1B;QAWO,YAAO,GAAgB,EAAE,CAAC;IA+BxC,CAAC;IA7BG,IAAc,MAAM;QAChB,uGAAuG;QACvG,sEAAsE;QACtE,OAAO,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,EAAE,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;IAC5E,CAAC;IAED,iBAAiB,CAAC,KAAgB;QAC9B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;IACD,mBAAmB,CAAC,OAAe;QAC/B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC;IAC9D,CAAC;IAED,QAAQ,CAAC,EAAU;QACf,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,EAAE,CAAC;YAC5B,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IAC3D,CAAC;IACD,SAAS;QACL,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/D,CAAC;IACD,YAAY;QACR,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAEO,eAAe,CAAC,EAAU;QAC9B,OAAO,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IAC3C,CAAC;CACJ,CAAA;AA1CY,oDAAoB;AAGV;IADlB,IAAA,kBAAM,EAAC,2BAAoB,CAAC;IAAE,IAAA,iBAAK,EAAC,uBAAS,CAAC;;gEACwB;AAG7D;IADT,IAAA,kBAAM,EAAC,cAAO,CAAC;;oDACU;AAGhB;IADT,IAAA,kBAAM,EAAC,sBAAY,CAAC;;0DACgB;+BAT5B,oBAAoB;IADhC,IAAA,sBAAU,GAAE;GACA,oBAAoB,CA0ChC"}
|
|
@@ -2,9 +2,9 @@ import { AgentSpecificVariables, AIVariableContext, AIVariableResolutionRequest,
|
|
|
2
2
|
import { Agent, LanguageModelRegistry, LanguageModelStreamResponsePart } from '@theia/ai-core/lib/common';
|
|
3
3
|
import { ContributionProvider, ILogger } from '@theia/core';
|
|
4
4
|
import { ChatAgentService } from './chat-agent-service';
|
|
5
|
-
import { ChatModel,
|
|
6
|
-
import { DefaultResponseContentFactory, ResponseContentMatcher, ResponseContentMatcherProvider } from './response-content-matcher';
|
|
5
|
+
import { ChatModel, ChatRequestModel, ChatResponseContent, MutableChatRequestModel } from './chat-model';
|
|
7
6
|
import { ChatToolRequest, ChatToolRequestService } from './chat-tool-request-service';
|
|
7
|
+
import { DefaultResponseContentFactory, ResponseContentMatcher, ResponseContentMatcherProvider } from './response-content-matcher';
|
|
8
8
|
/**
|
|
9
9
|
* System message content, enriched with function descriptions.
|
|
10
10
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat-agents.d.ts","sourceRoot":"","sources":["../../src/common/chat-agents.ts"],"names":[],"mappings":"AAqBA,OAAO,EACH,sBAAsB,EACtB,iBAAiB,EACjB,2BAA2B,EAO3B,aAAa,EACb,oBAAoB,EACpB,wBAAwB,EACxB,qBAAqB,EACrB,oBAAoB,EACpB,2BAA2B,EAC3B,aAAa,EACb,sBAAsB,EACtB,gBAAgB,EAEhB,QAAQ,EACR,WAAW,EACd,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACH,KAAK,EAGL,qBAAqB,EACrB,+BAA+B,EAClC,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,oBAAoB,EAAE,OAAO,EAAW,MAAM,aAAa,CAAC;AAErE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EACH,SAAS,EACT,
|
|
1
|
+
{"version":3,"file":"chat-agents.d.ts","sourceRoot":"","sources":["../../src/common/chat-agents.ts"],"names":[],"mappings":"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"}
|
|
@@ -27,9 +27,10 @@ const common_1 = require("@theia/ai-core/lib/common");
|
|
|
27
27
|
const core_1 = require("@theia/core");
|
|
28
28
|
const inversify_1 = require("@theia/core/shared/inversify");
|
|
29
29
|
const chat_model_1 = require("./chat-model");
|
|
30
|
+
const chat_tool_request_service_1 = require("./chat-tool-request-service");
|
|
30
31
|
const parse_contents_1 = require("./parse-contents");
|
|
31
32
|
const response_content_matcher_1 = require("./response-content-matcher");
|
|
32
|
-
const
|
|
33
|
+
const image_context_variable_1 = require("./image-context-variable");
|
|
33
34
|
var SystemMessageDescription;
|
|
34
35
|
(function (SystemMessageDescription) {
|
|
35
36
|
function fromResolvedPromptFragment(resolvedPrompt) {
|
|
@@ -136,6 +137,7 @@ let AbstractChatAgent = class AbstractChatAgent {
|
|
|
136
137
|
}
|
|
137
138
|
;
|
|
138
139
|
handleError(request, error) {
|
|
140
|
+
console.error('Error handling chat interaction:', error);
|
|
139
141
|
request.response.response.addContent(new chat_model_1.ErrorChatResponseContentImpl(error));
|
|
140
142
|
request.response.error(error);
|
|
141
143
|
}
|
|
@@ -163,13 +165,30 @@ let AbstractChatAgent = class AbstractChatAgent {
|
|
|
163
165
|
const requestMessages = model.getRequests().flatMap(request => {
|
|
164
166
|
const messages = [];
|
|
165
167
|
const text = request.message.parts.map(part => part.promptText).join('');
|
|
166
|
-
|
|
168
|
+
if (text.length > 0) {
|
|
169
|
+
messages.push({
|
|
170
|
+
actor: 'user',
|
|
171
|
+
type: 'text',
|
|
172
|
+
text: text,
|
|
173
|
+
});
|
|
174
|
+
}
|
|
175
|
+
const imageMessages = request.context.variables
|
|
176
|
+
.filter(variable => image_context_variable_1.ImageContextVariable.isResolvedImageContext(variable))
|
|
177
|
+
.map(variable => image_context_variable_1.ImageContextVariable.parseResolved(variable))
|
|
178
|
+
.filter(content => content !== undefined)
|
|
179
|
+
.map(content => ({
|
|
167
180
|
actor: 'user',
|
|
168
|
-
type: '
|
|
169
|
-
|
|
170
|
-
|
|
181
|
+
type: 'image',
|
|
182
|
+
image: {
|
|
183
|
+
base64data: content.data,
|
|
184
|
+
mimeType: content.mimeType
|
|
185
|
+
}
|
|
186
|
+
}));
|
|
187
|
+
messages.push(...imageMessages);
|
|
171
188
|
if (request.response.isComplete || includeResponseInProgress) {
|
|
172
|
-
const responseMessages = request.response.response.content
|
|
189
|
+
const responseMessages = request.response.response.content
|
|
190
|
+
.filter(c => !chat_model_1.ErrorChatResponseContent.is(c))
|
|
191
|
+
.flatMap(c => {
|
|
173
192
|
var _a, _b, _c, _d;
|
|
174
193
|
if (chat_model_1.ChatResponseContent.hasToLanguageModelMessage(c)) {
|
|
175
194
|
return c.toLanguageModelMessage();
|