@theia/ai-external-api 1.76.0-next.33
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +83 -0
- package/lib/browser/ai-external-api-frontend-contribution.d.ts +28 -0
- package/lib/browser/ai-external-api-frontend-contribution.d.ts.map +1 -0
- package/lib/browser/ai-external-api-frontend-contribution.js +88 -0
- package/lib/browser/ai-external-api-frontend-contribution.js.map +1 -0
- package/lib/browser/ai-external-api-frontend-contribution.spec.d.ts +2 -0
- package/lib/browser/ai-external-api-frontend-contribution.spec.d.ts.map +1 -0
- package/lib/browser/ai-external-api-frontend-contribution.spec.js +102 -0
- package/lib/browser/ai-external-api-frontend-contribution.spec.js.map +1 -0
- package/lib/browser/ai-external-api-frontend-module.d.ts +4 -0
- package/lib/browser/ai-external-api-frontend-module.d.ts.map +1 -0
- package/lib/browser/ai-external-api-frontend-module.js +47 -0
- package/lib/browser/ai-external-api-frontend-module.js.map +1 -0
- package/lib/browser/frontend-external-chat-session-provider.d.ts +63 -0
- package/lib/browser/frontend-external-chat-session-provider.d.ts.map +1 -0
- package/lib/browser/frontend-external-chat-session-provider.js +271 -0
- package/lib/browser/frontend-external-chat-session-provider.js.map +1 -0
- package/lib/browser/frontend-external-chat-session-provider.spec.d.ts +2 -0
- package/lib/browser/frontend-external-chat-session-provider.spec.d.ts.map +1 -0
- package/lib/browser/frontend-external-chat-session-provider.spec.js +421 -0
- package/lib/browser/frontend-external-chat-session-provider.spec.js.map +1 -0
- package/lib/browser/index.d.ts +3 -0
- package/lib/browser/index.d.ts.map +1 -0
- package/lib/browser/index.js +21 -0
- package/lib/browser/index.js.map +1 -0
- package/lib/common/external-chat-session-provider.d.ts +213 -0
- package/lib/common/external-chat-session-provider.d.ts.map +1 -0
- package/lib/common/external-chat-session-provider.js +147 -0
- package/lib/common/external-chat-session-provider.js.map +1 -0
- package/lib/common/index.d.ts +2 -0
- package/lib/common/index.d.ts.map +1 -0
- package/lib/common/index.js +20 -0
- package/lib/common/index.js.map +1 -0
- package/lib/node/ai-external-api-backend-module.d.ts +4 -0
- package/lib/node/ai-external-api-backend-module.d.ts.map +1 -0
- package/lib/node/ai-external-api-backend-module.js +38 -0
- package/lib/node/ai-external-api-backend-module.js.map +1 -0
- package/lib/node/ai-external-api-endpoint.d.ts +31 -0
- package/lib/node/ai-external-api-endpoint.d.ts.map +1 -0
- package/lib/node/ai-external-api-endpoint.js +189 -0
- package/lib/node/ai-external-api-endpoint.js.map +1 -0
- package/lib/node/ai-external-api-endpoint.spec.d.ts +2 -0
- package/lib/node/ai-external-api-endpoint.spec.d.ts.map +1 -0
- package/lib/node/ai-external-api-endpoint.spec.js +233 -0
- package/lib/node/ai-external-api-endpoint.spec.js.map +1 -0
- package/lib/node/external-chat-session-registry.d.ts +83 -0
- package/lib/node/external-chat-session-registry.d.ts.map +1 -0
- package/lib/node/external-chat-session-registry.js +266 -0
- package/lib/node/external-chat-session-registry.js.map +1 -0
- package/lib/node/external-chat-session-registry.spec.d.ts +2 -0
- package/lib/node/external-chat-session-registry.spec.d.ts.map +1 -0
- package/lib/node/external-chat-session-registry.spec.js +366 -0
- package/lib/node/external-chat-session-registry.spec.js.map +1 -0
- package/lib/node/index.d.ts +3 -0
- package/lib/node/index.d.ts.map +1 -0
- package/lib/node/index.js +21 -0
- package/lib/node/index.js.map +1 -0
- package/package.json +52 -0
- package/src/browser/ai-external-api-frontend-contribution.spec.ts +128 -0
- package/src/browser/ai-external-api-frontend-contribution.ts +90 -0
- package/src/browser/ai-external-api-frontend-module.ts +48 -0
- package/src/browser/frontend-external-chat-session-provider.spec.ts +491 -0
- package/src/browser/frontend-external-chat-session-provider.ts +277 -0
- package/src/browser/index.ts +18 -0
- package/src/common/external-chat-session-provider.ts +330 -0
- package/src/common/index.ts +17 -0
- package/src/node/ai-external-api-backend-module.ts +41 -0
- package/src/node/ai-external-api-endpoint.spec.ts +272 -0
- package/src/node/ai-external-api-endpoint.ts +195 -0
- package/src/node/external-chat-session-registry.spec.ts +413 -0
- package/src/node/external-chat-session-registry.ts +270 -0
- package/src/node/index.ts +18 -0
|
@@ -0,0 +1,271 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// *****************************************************************************
|
|
3
|
+
// Copyright (C) 2026 EclipseSource GmbH.
|
|
4
|
+
//
|
|
5
|
+
// This program and the accompanying materials are made available under the
|
|
6
|
+
// terms of the Eclipse Public License v. 2.0 which is available at
|
|
7
|
+
// http://www.eclipse.org/legal/epl-2.0.
|
|
8
|
+
//
|
|
9
|
+
// This Source Code may also be made available under the following Secondary
|
|
10
|
+
// Licenses when the conditions for such availability set forth in the Eclipse
|
|
11
|
+
// Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
12
|
+
// with the GNU Classpath Exception which is available at
|
|
13
|
+
// https://www.gnu.org/software/classpath/license.html.
|
|
14
|
+
//
|
|
15
|
+
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
16
|
+
// *****************************************************************************
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.FrontendExternalChatSessionProvider = void 0;
|
|
19
|
+
const tslib_1 = require("tslib");
|
|
20
|
+
const ai_chat_preferences_1 = require("@theia/ai-chat/lib/common/ai-chat-preferences");
|
|
21
|
+
const chat_agent_service_1 = require("@theia/ai-chat/lib/common/chat-agent-service");
|
|
22
|
+
const chat_agents_1 = require("@theia/ai-chat/lib/common/chat-agents");
|
|
23
|
+
const chat_model_1 = require("@theia/ai-chat/lib/common/chat-model");
|
|
24
|
+
const chat_service_1 = require("@theia/ai-chat/lib/common/chat-service");
|
|
25
|
+
const core_1 = require("@theia/core");
|
|
26
|
+
const logger_1 = require("@theia/core/lib/common/logger");
|
|
27
|
+
const inversify_1 = require("@theia/core/shared/inversify");
|
|
28
|
+
const browser_1 = require("@theia/workspace/lib/browser");
|
|
29
|
+
/**
|
|
30
|
+
* Answers the backend's external session queries from this frontend's {@link ChatService}.
|
|
31
|
+
*
|
|
32
|
+
* Reports sessions that are restored (live) in this frontend with their full state, and
|
|
33
|
+
* persisted sessions that have not been restored with their persisted metadata. Live sessions
|
|
34
|
+
* are attributed to the workspace this frontend has opened; persisted sessions only when
|
|
35
|
+
* sessions are persisted per workspace, as the global session store holds sessions saved
|
|
36
|
+
* from any workspace.
|
|
37
|
+
*/
|
|
38
|
+
let FrontendExternalChatSessionProvider = class FrontendExternalChatSessionProvider {
|
|
39
|
+
constructor() {
|
|
40
|
+
/** Number of trailing conversation lines included in a summary's preview. */
|
|
41
|
+
this.previewLineCount = 5;
|
|
42
|
+
/** Maximum length of a single preview line; longer lines are truncated. */
|
|
43
|
+
this.previewLineLength = 200;
|
|
44
|
+
}
|
|
45
|
+
async getSessions() {
|
|
46
|
+
const workspace = await this.getWorkspaceUri();
|
|
47
|
+
const persistedWorkspace = await this.getPersistedSessionsWorkspace(workspace);
|
|
48
|
+
const restored = this.chatService.getSessions().map(session => this.toSummary(session, workspace));
|
|
49
|
+
const restoredIds = new Set(restored.map(summary => summary.id));
|
|
50
|
+
const persisted = (await this.getPersistedMetadata())
|
|
51
|
+
.filter(metadata => !restoredIds.has(metadata.sessionId))
|
|
52
|
+
.map(metadata => this.toPersistedSummary(metadata, persistedWorkspace));
|
|
53
|
+
return [...restored, ...persisted];
|
|
54
|
+
}
|
|
55
|
+
async getSessionSummary(sessionId) {
|
|
56
|
+
const workspace = await this.getWorkspaceUri();
|
|
57
|
+
const live = this.chatService.getSession(sessionId);
|
|
58
|
+
if (live) {
|
|
59
|
+
return this.toSummary(live, workspace);
|
|
60
|
+
}
|
|
61
|
+
const metadata = (await this.getPersistedMetadata()).find(candidate => candidate.sessionId === sessionId);
|
|
62
|
+
return metadata && this.toPersistedSummary(metadata, await this.getPersistedSessionsWorkspace(workspace));
|
|
63
|
+
}
|
|
64
|
+
async getSession(sessionId) {
|
|
65
|
+
const workspace = await this.getWorkspaceUri();
|
|
66
|
+
const live = this.chatService.getSession(sessionId);
|
|
67
|
+
if (live) {
|
|
68
|
+
return this.toDetail(live, workspace);
|
|
69
|
+
}
|
|
70
|
+
const metadata = (await this.getPersistedMetadata()).find(candidate => candidate.sessionId === sessionId);
|
|
71
|
+
return metadata && this.toPersistedSummary(metadata, await this.getPersistedSessionsWorkspace(workspace));
|
|
72
|
+
}
|
|
73
|
+
async openSession(sessionId) {
|
|
74
|
+
const session = await this.chatService.getOrRestoreSession(sessionId);
|
|
75
|
+
if (!session) {
|
|
76
|
+
return false;
|
|
77
|
+
}
|
|
78
|
+
this.chatService.setActiveSession(sessionId, { focus: true });
|
|
79
|
+
return true;
|
|
80
|
+
}
|
|
81
|
+
async restoreSession(sessionId) {
|
|
82
|
+
const session = await this.chatService.getOrRestoreSession(sessionId);
|
|
83
|
+
if (!session) {
|
|
84
|
+
return undefined;
|
|
85
|
+
}
|
|
86
|
+
return this.toDetail(session, await this.getWorkspaceUri());
|
|
87
|
+
}
|
|
88
|
+
async sendPrompt(sessionId, prompt) {
|
|
89
|
+
const session = await this.chatService.getOrRestoreSession(sessionId);
|
|
90
|
+
if (!session) {
|
|
91
|
+
return undefined;
|
|
92
|
+
}
|
|
93
|
+
if (!prompt.interrupt && chat_model_1.ChatSessionStatus.isInProgress(session.model.status)) {
|
|
94
|
+
return { failure: 'busy' };
|
|
95
|
+
}
|
|
96
|
+
// an in-progress request is canceled by sendRequest itself when interrupting
|
|
97
|
+
const invocation = await this.chatService.sendRequest(sessionId, { text: prompt.text });
|
|
98
|
+
if (!invocation) {
|
|
99
|
+
return undefined;
|
|
100
|
+
}
|
|
101
|
+
try {
|
|
102
|
+
return { sent: { sessionId, requestId: (await invocation.requestCompleted).id } };
|
|
103
|
+
}
|
|
104
|
+
catch (error) {
|
|
105
|
+
if (chat_service_1.NoChatAgentError.is(error)) {
|
|
106
|
+
return { failure: 'noAgent' };
|
|
107
|
+
}
|
|
108
|
+
// unexpected failure: propagate to the backend, which logs it and falls back to another frontend
|
|
109
|
+
throw error;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
async createSession(request) {
|
|
113
|
+
let agent;
|
|
114
|
+
if (request.agentId) {
|
|
115
|
+
agent = this.agentService.getAgent(request.agentId, true);
|
|
116
|
+
if (!agent) {
|
|
117
|
+
return { failure: 'unknownAgent' };
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
const session = this.chatService.createSession(chat_agents_1.ChatAgentLocation.Panel, { focus: request.focus }, agent);
|
|
121
|
+
let requestId;
|
|
122
|
+
if (request.prompt) {
|
|
123
|
+
const invocation = await this.chatService.sendRequest(session.id, { text: request.prompt });
|
|
124
|
+
try {
|
|
125
|
+
requestId = invocation && (await invocation.requestCompleted).id;
|
|
126
|
+
}
|
|
127
|
+
catch (error) {
|
|
128
|
+
// do not keep the unusable session when its initial prompt failed
|
|
129
|
+
await this.chatService.deleteSession(session.id);
|
|
130
|
+
if (chat_service_1.NoChatAgentError.is(error)) {
|
|
131
|
+
return { failure: 'noAgent' };
|
|
132
|
+
}
|
|
133
|
+
// unexpected failure: propagate to the backend, which logs it and falls back to another frontend
|
|
134
|
+
throw error;
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
const created = this.chatService.getSession(session.id) ?? session;
|
|
138
|
+
return { created: { session: this.toSummary(created, await this.getWorkspaceUri()), requestId } };
|
|
139
|
+
}
|
|
140
|
+
async getWorkspace() {
|
|
141
|
+
return this.getWorkspaceUri();
|
|
142
|
+
}
|
|
143
|
+
async getWorkspaceUri() {
|
|
144
|
+
await this.workspaceService.ready;
|
|
145
|
+
return this.workspaceService.workspace?.resource.toString();
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Returns the workspace to attribute persisted sessions to: this frontend's workspace when
|
|
149
|
+
* sessions are persisted per workspace, and `undefined` when they are persisted globally,
|
|
150
|
+
* as the global session store holds sessions saved from any workspace.
|
|
151
|
+
*/
|
|
152
|
+
async getPersistedSessionsWorkspace(workspace) {
|
|
153
|
+
await this.preferenceService.ready;
|
|
154
|
+
const scope = this.preferenceService.get(ai_chat_preferences_1.SESSION_STORAGE_PREF, 'workspace');
|
|
155
|
+
return scope === 'workspace' ? workspace : undefined;
|
|
156
|
+
}
|
|
157
|
+
/** Returns the metadata of all persisted sessions, or an empty list if reading the persisted index fails. */
|
|
158
|
+
async getPersistedMetadata() {
|
|
159
|
+
try {
|
|
160
|
+
return Object.values(await this.chatService.getPersistedSessions());
|
|
161
|
+
}
|
|
162
|
+
catch (error) {
|
|
163
|
+
this.logger.warn('Failed to read the persisted chat sessions, reporting only restored sessions.', error);
|
|
164
|
+
return [];
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
toDetail(session, workspace) {
|
|
168
|
+
return {
|
|
169
|
+
...this.toSummary(session, workspace),
|
|
170
|
+
messages: this.toMessages(session)
|
|
171
|
+
};
|
|
172
|
+
}
|
|
173
|
+
toSummary(session, workspace) {
|
|
174
|
+
return {
|
|
175
|
+
id: session.id,
|
|
176
|
+
title: session.title,
|
|
177
|
+
status: session.model.status,
|
|
178
|
+
lastInteraction: session.lastInteraction?.getTime(),
|
|
179
|
+
workspace,
|
|
180
|
+
preview: this.toPreview(session),
|
|
181
|
+
agentId: session.pinnedAgent?.id,
|
|
182
|
+
agentName: session.pinnedAgent?.name,
|
|
183
|
+
parentSessionId: session.parentSessionId,
|
|
184
|
+
rootSessionId: session.rootSessionId,
|
|
185
|
+
restored: true
|
|
186
|
+
};
|
|
187
|
+
}
|
|
188
|
+
/** Reduces the metadata of a persisted session that is not restored to a summary. */
|
|
189
|
+
toPersistedSummary(metadata, workspace) {
|
|
190
|
+
return {
|
|
191
|
+
id: metadata.sessionId,
|
|
192
|
+
title: metadata.title || undefined,
|
|
193
|
+
status: metadata.hasError ? 'failed' : 'idle',
|
|
194
|
+
lastInteraction: metadata.saveDate,
|
|
195
|
+
workspace,
|
|
196
|
+
agentId: metadata.pinnedAgentId,
|
|
197
|
+
agentName: metadata.pinnedAgentId ? this.agentService.getAgent(metadata.pinnedAgentId, true)?.name : undefined,
|
|
198
|
+
parentSessionId: metadata.parentSessionId,
|
|
199
|
+
rootSessionId: metadata.rootSessionId,
|
|
200
|
+
restored: false
|
|
201
|
+
};
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* Reduces the session's conversation to plain-text messages, similar to the message history
|
|
205
|
+
* sent to the language model for the next request. In-progress responses are included with
|
|
206
|
+
* their content so far.
|
|
207
|
+
*/
|
|
208
|
+
toMessages(session) {
|
|
209
|
+
const messages = [];
|
|
210
|
+
for (const request of session.model.getRequests()) {
|
|
211
|
+
if (request.request.text) {
|
|
212
|
+
messages.push({ actor: 'user', text: request.request.text });
|
|
213
|
+
}
|
|
214
|
+
const response = request.response.response.asDisplayString();
|
|
215
|
+
if (response) {
|
|
216
|
+
messages.push({ actor: 'ai', text: response });
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
return messages;
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* Returns the last few non-empty lines of the conversation, or `undefined` for an empty
|
|
223
|
+
* conversation. Walks the conversation from the end so that only as many entries as the
|
|
224
|
+
* preview needs are rendered, however long the conversation is.
|
|
225
|
+
*/
|
|
226
|
+
toPreview(session) {
|
|
227
|
+
const lines = [];
|
|
228
|
+
const requests = session.model.getRequests();
|
|
229
|
+
for (let index = requests.length - 1; index >= 0 && lines.length < this.previewLineCount; index--) {
|
|
230
|
+
const request = requests[index];
|
|
231
|
+
const entries = [request.request.text, request.response.response.asDisplayString()];
|
|
232
|
+
for (let entry = entries.length - 1; entry >= 0 && lines.length < this.previewLineCount; entry--) {
|
|
233
|
+
lines.push(...this.toPreviewLines(entries[entry]).slice(-(this.previewLineCount - lines.length)).reverse());
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
return lines.length > 0 ? lines.reverse().join('\n') : undefined;
|
|
237
|
+
}
|
|
238
|
+
/** Splits an entry into its non-empty, truncated preview lines. */
|
|
239
|
+
toPreviewLines(text) {
|
|
240
|
+
return (text ?? '').split('\n')
|
|
241
|
+
.map(line => line.trim())
|
|
242
|
+
.filter(line => line.length > 0)
|
|
243
|
+
.map(line => line.length > this.previewLineLength ? `${line.substring(0, this.previewLineLength)}…` : line);
|
|
244
|
+
}
|
|
245
|
+
};
|
|
246
|
+
exports.FrontendExternalChatSessionProvider = FrontendExternalChatSessionProvider;
|
|
247
|
+
tslib_1.__decorate([
|
|
248
|
+
(0, inversify_1.inject)(logger_1.ILogger),
|
|
249
|
+
(0, inversify_1.named)('ai-external-api:FrontendExternalChatSessionProvider'),
|
|
250
|
+
tslib_1.__metadata("design:type", Object)
|
|
251
|
+
], FrontendExternalChatSessionProvider.prototype, "logger", void 0);
|
|
252
|
+
tslib_1.__decorate([
|
|
253
|
+
(0, inversify_1.inject)(chat_service_1.ChatService),
|
|
254
|
+
tslib_1.__metadata("design:type", Object)
|
|
255
|
+
], FrontendExternalChatSessionProvider.prototype, "chatService", void 0);
|
|
256
|
+
tslib_1.__decorate([
|
|
257
|
+
(0, inversify_1.inject)(chat_agent_service_1.ChatAgentService),
|
|
258
|
+
tslib_1.__metadata("design:type", Object)
|
|
259
|
+
], FrontendExternalChatSessionProvider.prototype, "agentService", void 0);
|
|
260
|
+
tslib_1.__decorate([
|
|
261
|
+
(0, inversify_1.inject)(browser_1.WorkspaceService),
|
|
262
|
+
tslib_1.__metadata("design:type", browser_1.WorkspaceService)
|
|
263
|
+
], FrontendExternalChatSessionProvider.prototype, "workspaceService", void 0);
|
|
264
|
+
tslib_1.__decorate([
|
|
265
|
+
(0, inversify_1.inject)(core_1.PreferenceService),
|
|
266
|
+
tslib_1.__metadata("design:type", Object)
|
|
267
|
+
], FrontendExternalChatSessionProvider.prototype, "preferenceService", void 0);
|
|
268
|
+
exports.FrontendExternalChatSessionProvider = FrontendExternalChatSessionProvider = tslib_1.__decorate([
|
|
269
|
+
(0, inversify_1.injectable)()
|
|
270
|
+
], FrontendExternalChatSessionProvider);
|
|
271
|
+
//# sourceMappingURL=frontend-external-chat-session-provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"frontend-external-chat-session-provider.js","sourceRoot":"","sources":["../../src/browser/frontend-external-chat-session-provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"frontend-external-chat-session-provider.spec.d.ts","sourceRoot":"","sources":["../../src/browser/frontend-external-chat-session-provider.spec.ts"],"names":[],"mappings":""}
|