@theia/ai-chat 1.58.3 → 1.59.0-next.72
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/ai-chat-frontend-module.d.ts.map +1 -1
- package/lib/browser/ai-chat-frontend-module.js +16 -13
- package/lib/browser/ai-chat-frontend-module.js.map +1 -1
- package/lib/browser/ai-chat-preferences.d.ts +1 -0
- package/lib/browser/ai-chat-preferences.d.ts.map +1 -1
- package/lib/browser/ai-chat-preferences.js +12 -3
- package/lib/browser/ai-chat-preferences.js.map +1 -1
- package/lib/browser/change-set-file-element.d.ts +31 -6
- package/lib/browser/change-set-file-element.d.ts.map +1 -1
- package/lib/browser/change-set-file-element.js +108 -15
- package/lib/browser/change-set-file-element.js.map +1 -1
- package/lib/browser/change-set-file-resource.d.ts +40 -8
- package/lib/browser/change-set-file-resource.d.ts.map +1 -1
- package/lib/browser/change-set-file-resource.js +123 -37
- package/lib/browser/change-set-file-resource.js.map +1 -1
- package/lib/browser/change-set-file-service.d.ts +9 -3
- package/lib/browser/change-set-file-service.d.ts.map +1 -1
- package/lib/browser/change-set-file-service.js +35 -13
- package/lib/browser/change-set-file-service.js.map +1 -1
- package/lib/browser/change-set-variable.d.ts +11 -0
- package/lib/browser/change-set-variable.d.ts.map +1 -0
- package/lib/browser/change-set-variable.js +56 -0
- package/lib/browser/change-set-variable.js.map +1 -0
- package/lib/browser/context-file-variable-label-provider.d.ts +14 -0
- package/lib/browser/context-file-variable-label-provider.d.ts.map +1 -0
- package/lib/browser/context-file-variable-label-provider.js +63 -0
- package/lib/browser/context-file-variable-label-provider.js.map +1 -0
- package/lib/browser/context-variable-label-provider.d.ts +9 -0
- package/lib/browser/context-variable-label-provider.d.ts.map +1 -0
- package/lib/browser/context-variable-label-provider.js +55 -0
- package/lib/browser/context-variable-label-provider.js.map +1 -0
- package/lib/browser/file-chat-variable-contribution.d.ts +18 -0
- package/lib/browser/file-chat-variable-contribution.d.ts.map +1 -0
- package/lib/browser/file-chat-variable-contribution.js +135 -0
- package/lib/browser/file-chat-variable-contribution.js.map +1 -0
- package/lib/browser/frontend-chat-service.d.ts +10 -3
- package/lib/browser/frontend-chat-service.d.ts.map +1 -1
- package/lib/browser/frontend-chat-service.js +39 -19
- package/lib/browser/frontend-chat-service.js.map +1 -1
- package/lib/common/chat-agents.d.ts +54 -24
- package/lib/common/chat-agents.d.ts.map +1 -1
- package/lib/common/chat-agents.js +58 -20
- package/lib/common/chat-agents.js.map +1 -1
- package/lib/common/chat-history-entry.js +1 -1
- package/lib/common/chat-history-entry.js.map +1 -1
- package/lib/common/chat-model.d.ts +84 -36
- package/lib/common/chat-model.d.ts.map +1 -1
- package/lib/common/chat-model.js +142 -51
- package/lib/common/chat-model.js.map +1 -1
- package/lib/common/chat-service.d.ts +27 -10
- package/lib/common/chat-service.d.ts.map +1 -1
- package/lib/common/chat-service.js +80 -20
- package/lib/common/chat-service.js.map +1 -1
- package/lib/common/chat-string-utils.d.ts +3 -0
- package/lib/common/chat-string-utils.d.ts.map +1 -0
- package/lib/common/chat-string-utils.js +27 -0
- package/lib/common/chat-string-utils.js.map +1 -0
- package/lib/common/chat-tool-request-service.d.ts +5 -5
- package/lib/common/chat-tool-request-service.d.ts.map +1 -1
- package/lib/common/chat-tool-request-service.js.map +1 -1
- package/lib/common/context-details-variable.d.ts +9 -0
- package/lib/common/context-details-variable.d.ts.map +1 -0
- package/lib/common/context-details-variable.js +57 -0
- package/lib/common/context-details-variable.js.map +1 -0
- package/lib/common/context-summary-variable.d.ts +9 -0
- package/lib/common/context-summary-variable.d.ts.map +1 -0
- package/lib/common/context-summary-variable.js +57 -0
- package/lib/common/context-summary-variable.js.map +1 -0
- package/lib/common/context-variables.d.ts +4 -0
- package/lib/common/context-variables.d.ts.map +1 -0
- package/lib/common/context-variables.js +22 -0
- package/lib/common/context-variables.js.map +1 -0
- package/lib/common/custom-chat-agent.d.ts +6 -10
- package/lib/common/custom-chat-agent.d.ts.map +1 -1
- package/lib/common/custom-chat-agent.js +8 -11
- package/lib/common/custom-chat-agent.js.map +1 -1
- package/lib/common/index.d.ts +1 -3
- package/lib/common/index.d.ts.map +1 -1
- package/lib/common/index.js +1 -3
- package/lib/common/index.js.map +1 -1
- package/lib/common/parse-contents.d.ts +2 -2
- package/lib/common/parse-contents.d.ts.map +1 -1
- package/lib/common/parse-contents.js.map +1 -1
- package/lib/common/parse-contents.spec.d.ts.map +1 -1
- package/lib/common/parse-contents.spec.js.map +1 -1
- package/lib/common/response-content-matcher.d.ts +3 -3
- package/lib/common/response-content-matcher.d.ts.map +1 -1
- package/lib/common/response-content-matcher.js.map +1 -1
- package/package.json +12 -10
- package/src/browser/ai-chat-frontend-module.ts +20 -18
- package/src/browser/ai-chat-preferences.ts +13 -2
- package/src/browser/change-set-file-element.ts +109 -20
- package/src/browser/change-set-file-resource.ts +125 -39
- package/src/browser/change-set-file-service.ts +38 -16
- package/src/browser/change-set-variable.ts +54 -0
- package/src/browser/context-file-variable-label-provider.ts +62 -0
- package/src/browser/context-variable-label-provider.ts +56 -0
- package/src/browser/file-chat-variable-contribution.ts +143 -0
- package/src/browser/frontend-chat-service.ts +40 -26
- package/src/common/chat-agents.ts +87 -30
- package/src/common/chat-history-entry.ts +1 -1
- package/src/common/chat-model.ts +204 -70
- package/src/common/chat-service.ts +92 -24
- package/src/common/chat-string-utils.ts +23 -0
- package/src/common/chat-tool-request-service.ts +5 -5
- package/src/common/context-details-variable.ts +53 -0
- package/src/common/context-summary-variable.ts +53 -0
- package/src/common/context-variables.ts +19 -0
- package/src/common/custom-chat-agent.ts +9 -20
- package/src/common/index.ts +1 -3
- package/src/common/parse-contents.spec.ts +2 -2
- package/src/common/parse-contents.ts +2 -2
- package/src/common/response-content-matcher.ts +3 -3
- package/lib/common/command-chat-agents.d.ts +0 -33
- package/lib/common/command-chat-agents.d.ts.map +0 -1
- package/lib/common/command-chat-agents.js +0 -329
- package/lib/common/command-chat-agents.js.map +0 -1
- package/lib/common/orchestrator-chat-agent.d.ts +0 -22
- package/lib/common/orchestrator-chat-agent.d.ts.map +0 -1
- package/lib/common/orchestrator-chat-agent.js +0 -167
- package/lib/common/orchestrator-chat-agent.js.map +0 -1
- package/lib/common/universal-chat-agent.d.ts +0 -16
- package/lib/common/universal-chat-agent.d.ts.map +0 -1
- package/lib/common/universal-chat-agent.js +0 -109
- package/lib/common/universal-chat-agent.js.map +0 -1
- package/src/common/command-chat-agents.ts +0 -354
- package/src/common/orchestrator-chat-agent.ts +0 -179
- package/src/common/universal-chat-agent.ts +0 -117
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// *****************************************************************************
|
|
3
|
+
// Copyright (C) 2025 EclipseSource GmbH.
|
|
4
|
+
//
|
|
5
|
+
// This program and the accompanying materials are made available under the
|
|
6
|
+
// terms of the Eclipse Public License v. 2.0 which is available at
|
|
7
|
+
// http://www.eclipse.org/legal/epl-2.0.
|
|
8
|
+
//
|
|
9
|
+
// This Source Code may also be made available under the following Secondary
|
|
10
|
+
// Licenses when the conditions for such availability set forth in the Eclipse
|
|
11
|
+
// Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
12
|
+
// with the GNU Classpath Exception which is available at
|
|
13
|
+
// https://www.gnu.org/software/classpath/license.html.
|
|
14
|
+
//
|
|
15
|
+
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
16
|
+
// *****************************************************************************
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.FileChatVariableContribution = void 0;
|
|
19
|
+
const tslib_1 = require("tslib");
|
|
20
|
+
const ai_core_1 = require("@theia/ai-core");
|
|
21
|
+
const file_variable_contribution_1 = require("@theia/ai-core/lib/browser/file-variable-contribution");
|
|
22
|
+
const core_1 = require("@theia/core");
|
|
23
|
+
const inversify_1 = require("@theia/core/shared/inversify");
|
|
24
|
+
const monaco = require("@theia/monaco-editor-core");
|
|
25
|
+
const quick_file_select_service_1 = require("@theia/file-search/lib/browser/quick-file-select-service");
|
|
26
|
+
const browser_1 = require("@theia/workspace/lib/browser");
|
|
27
|
+
const file_service_1 = require("@theia/filesystem/lib/browser/file-service");
|
|
28
|
+
let FileChatVariableContribution = class FileChatVariableContribution {
|
|
29
|
+
registerVariables(service) {
|
|
30
|
+
service.registerArgumentPicker(file_variable_contribution_1.FILE_VARIABLE, this.triggerArgumentPicker.bind(this));
|
|
31
|
+
service.registerArgumentCompletionProvider(file_variable_contribution_1.FILE_VARIABLE, this.provideArgumentCompletionItems.bind(this));
|
|
32
|
+
service.registerDropHandler(this.handleDrop.bind(this));
|
|
33
|
+
}
|
|
34
|
+
async triggerArgumentPicker() {
|
|
35
|
+
const quickPick = this.quickInputService.createQuickPick();
|
|
36
|
+
quickPick.items = await this.quickFileSelectService.getPicks();
|
|
37
|
+
const updateItems = async (value) => {
|
|
38
|
+
quickPick.items = await this.quickFileSelectService.getPicks(value, core_1.CancellationToken.None);
|
|
39
|
+
};
|
|
40
|
+
const onChangeListener = quickPick.onDidChangeValue(updateItems);
|
|
41
|
+
quickPick.show();
|
|
42
|
+
return new Promise(resolve => {
|
|
43
|
+
quickPick.onDispose(onChangeListener.dispose);
|
|
44
|
+
quickPick.onDidAccept(async () => {
|
|
45
|
+
const selectedItem = quickPick.selectedItems[0];
|
|
46
|
+
if (selectedItem && quick_file_select_service_1.FileQuickPickItem.is(selectedItem)) {
|
|
47
|
+
quickPick.dispose();
|
|
48
|
+
resolve(await this.wsService.getWorkspaceRelativePath(selectedItem.uri));
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
async provideArgumentCompletionItems(model, position) {
|
|
54
|
+
const lineContent = model.getLineContent(position.lineNumber);
|
|
55
|
+
const indexOfVariableTrigger = lineContent.lastIndexOf(ai_core_1.PromptText.VARIABLE_CHAR, position.column - 1);
|
|
56
|
+
// check if there is a variable trigger and no space typed between the variable trigger and the cursor
|
|
57
|
+
if (indexOfVariableTrigger === -1 || lineContent.substring(indexOfVariableTrigger).includes(' ')) {
|
|
58
|
+
return undefined;
|
|
59
|
+
}
|
|
60
|
+
// determine whether we are providing completions before or after the variable argument separator
|
|
61
|
+
const indexOfVariableArgSeparator = lineContent.lastIndexOf(ai_core_1.PromptText.VARIABLE_SEPARATOR_CHAR, position.column - 1);
|
|
62
|
+
const triggerCharIndex = Math.max(indexOfVariableTrigger, indexOfVariableArgSeparator);
|
|
63
|
+
const typedWord = lineContent.substring(triggerCharIndex + 1, position.column - 1);
|
|
64
|
+
const range = new monaco.Range(position.lineNumber, triggerCharIndex + 2, position.lineNumber, position.column);
|
|
65
|
+
const picks = await this.quickFileSelectService.getPicks(typedWord, core_1.CancellationToken.None);
|
|
66
|
+
const prefix = lineContent[triggerCharIndex] === ai_core_1.PromptText.VARIABLE_CHAR ? file_variable_contribution_1.FILE_VARIABLE.name + ai_core_1.PromptText.VARIABLE_SEPARATOR_CHAR : '';
|
|
67
|
+
return Promise.all(picks
|
|
68
|
+
.filter(quick_file_select_service_1.FileQuickPickItem.is)
|
|
69
|
+
// only show files with highlights, if the user started typing to filter down the results
|
|
70
|
+
.filter(p => { var _a; return !typedWord || ((_a = p.highlights) === null || _a === void 0 ? void 0 : _a.label); })
|
|
71
|
+
.map(async (pick, index) => ({
|
|
72
|
+
label: pick.label,
|
|
73
|
+
kind: monaco.languages.CompletionItemKind.File,
|
|
74
|
+
range,
|
|
75
|
+
insertText: `${prefix}${await this.wsService.getWorkspaceRelativePath(pick.uri)}`,
|
|
76
|
+
detail: await this.wsService.getWorkspaceRelativePath(pick.uri.parent),
|
|
77
|
+
// don't let monaco filter the items, as we only return picks that are filtered
|
|
78
|
+
filterText: typedWord,
|
|
79
|
+
// keep the order of the items, but move them to the end of the list
|
|
80
|
+
sortText: `ZZ${index.toString().padStart(4, '0')}_${pick.label}`,
|
|
81
|
+
})));
|
|
82
|
+
}
|
|
83
|
+
async handleDrop(event, _) {
|
|
84
|
+
var _a;
|
|
85
|
+
const data = (_a = event.dataTransfer) === null || _a === void 0 ? void 0 : _a.getData('selected-tree-nodes');
|
|
86
|
+
if (!data) {
|
|
87
|
+
return undefined;
|
|
88
|
+
}
|
|
89
|
+
try {
|
|
90
|
+
const nodes = JSON.parse(data);
|
|
91
|
+
const variables = [];
|
|
92
|
+
const texts = [];
|
|
93
|
+
for (const node of nodes) {
|
|
94
|
+
const [, filePath] = node.split(':');
|
|
95
|
+
if (!filePath) {
|
|
96
|
+
continue;
|
|
97
|
+
}
|
|
98
|
+
const uri = core_1.URI.fromFilePath(filePath);
|
|
99
|
+
if (await this.fileService.exists(uri)) {
|
|
100
|
+
const wsRelativePath = await this.wsService.getWorkspaceRelativePath(uri);
|
|
101
|
+
variables.push({
|
|
102
|
+
variable: file_variable_contribution_1.FILE_VARIABLE,
|
|
103
|
+
arg: wsRelativePath
|
|
104
|
+
});
|
|
105
|
+
texts.push(`${ai_core_1.PromptText.VARIABLE_CHAR}${file_variable_contribution_1.FILE_VARIABLE.name}${ai_core_1.PromptText.VARIABLE_SEPARATOR_CHAR}${wsRelativePath}`);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
return { variables, text: texts.length ? texts.join(' ') : undefined };
|
|
109
|
+
}
|
|
110
|
+
catch {
|
|
111
|
+
return undefined;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
};
|
|
115
|
+
exports.FileChatVariableContribution = FileChatVariableContribution;
|
|
116
|
+
tslib_1.__decorate([
|
|
117
|
+
(0, inversify_1.inject)(file_service_1.FileService),
|
|
118
|
+
tslib_1.__metadata("design:type", file_service_1.FileService)
|
|
119
|
+
], FileChatVariableContribution.prototype, "fileService", void 0);
|
|
120
|
+
tslib_1.__decorate([
|
|
121
|
+
(0, inversify_1.inject)(browser_1.WorkspaceService),
|
|
122
|
+
tslib_1.__metadata("design:type", browser_1.WorkspaceService)
|
|
123
|
+
], FileChatVariableContribution.prototype, "wsService", void 0);
|
|
124
|
+
tslib_1.__decorate([
|
|
125
|
+
(0, inversify_1.inject)(core_1.QuickInputService),
|
|
126
|
+
tslib_1.__metadata("design:type", Object)
|
|
127
|
+
], FileChatVariableContribution.prototype, "quickInputService", void 0);
|
|
128
|
+
tslib_1.__decorate([
|
|
129
|
+
(0, inversify_1.inject)(quick_file_select_service_1.QuickFileSelectService),
|
|
130
|
+
tslib_1.__metadata("design:type", quick_file_select_service_1.QuickFileSelectService)
|
|
131
|
+
], FileChatVariableContribution.prototype, "quickFileSelectService", void 0);
|
|
132
|
+
exports.FileChatVariableContribution = FileChatVariableContribution = tslib_1.__decorate([
|
|
133
|
+
(0, inversify_1.injectable)()
|
|
134
|
+
], FileChatVariableContribution);
|
|
135
|
+
//# sourceMappingURL=file-chat-variable-contribution.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-chat-variable-contribution.js","sourceRoot":"","sources":["../../src/browser/file-chat-variable-contribution.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,15 @@
|
|
|
1
|
-
import { ChatAgent, ChatServiceImpl, ParsedChatRequest } from '../common';
|
|
1
|
+
import { ChatAgent, ChatAgentLocation, ChatServiceImpl, ChatSession, ParsedChatRequest, SessionOptions } from '../common';
|
|
2
2
|
import { PreferenceService } from '@theia/core/lib/browser';
|
|
3
|
+
import { ChangeSetFileService } from './change-set-file-service';
|
|
4
|
+
/**
|
|
5
|
+
* Customizes the ChatServiceImpl to consider preference based default chat agent
|
|
6
|
+
*/
|
|
3
7
|
export declare class FrontendChatServiceImpl extends ChatServiceImpl {
|
|
4
|
-
protected preferenceService: PreferenceService;
|
|
5
|
-
protected
|
|
8
|
+
protected readonly preferenceService: PreferenceService;
|
|
9
|
+
protected readonly changeSetFileService: ChangeSetFileService;
|
|
10
|
+
protected getAgent(parsedRequest: ParsedChatRequest, session: ChatSession): ChatAgent | undefined;
|
|
11
|
+
protected initialAgentSelection(parsedRequest: ParsedChatRequest): ChatAgent | undefined;
|
|
6
12
|
protected getConfiguredDefaultChatAgent(): ChatAgent | undefined;
|
|
13
|
+
createSession(location?: ChatAgentLocation, options?: SessionOptions): ChatSession;
|
|
7
14
|
}
|
|
8
15
|
//# sourceMappingURL=frontend-chat-service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frontend-chat-service.d.ts","sourceRoot":"","sources":["../../src/browser/frontend-chat-service.ts"],"names":[],"mappings":"AAiBA,OAAO,
|
|
1
|
+
{"version":3,"file":"frontend-chat-service.d.ts","sourceRoot":"","sources":["../../src/browser/frontend-chat-service.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAa,SAAS,EAAE,iBAAiB,EAAE,eAAe,EAAE,WAAW,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACrI,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE;;GAEG;AACH,qBACa,uBAAwB,SAAQ,eAAe;IAGxD,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAGxD,SAAS,CAAC,QAAQ,CAAC,oBAAoB,EAAE,oBAAoB,CAAC;cAE3C,QAAQ,CAAC,aAAa,EAAE,iBAAiB,EAAE,OAAO,EAAE,WAAW,GAAG,SAAS,GAAG,SAAS;cAavF,qBAAqB,CAAC,aAAa,EAAE,iBAAiB,GAAG,SAAS,GAAG,SAAS;IAWjG,SAAS,CAAC,6BAA6B,IAAI,SAAS,GAAG,SAAS;IASvD,aAAa,CAAC,QAAQ,CAAC,EAAE,iBAAiB,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,WAAW;CAY9F"}
|
|
@@ -21,31 +21,34 @@ const inversify_1 = require("@theia/core/shared/inversify");
|
|
|
21
21
|
const common_1 = require("../common");
|
|
22
22
|
const browser_1 = require("@theia/core/lib/browser");
|
|
23
23
|
const ai_chat_preferences_1 = require("./ai-chat-preferences");
|
|
24
|
+
const change_set_file_service_1 = require("./change-set-file-service");
|
|
25
|
+
/**
|
|
26
|
+
* Customizes the ChatServiceImpl to consider preference based default chat agent
|
|
27
|
+
*/
|
|
24
28
|
let FrontendChatServiceImpl = class FrontendChatServiceImpl extends common_1.ChatServiceImpl {
|
|
25
|
-
getAgent(parsedRequest) {
|
|
29
|
+
getAgent(parsedRequest, session) {
|
|
26
30
|
var _a;
|
|
27
|
-
|
|
28
|
-
if (
|
|
29
|
-
return
|
|
31
|
+
let agent = this.initialAgentSelection(parsedRequest);
|
|
32
|
+
if (!this.preferenceService.get(ai_chat_preferences_1.PIN_CHAT_AGENT_PREF)) {
|
|
33
|
+
return agent;
|
|
30
34
|
}
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
return configuredDefaultChatAgent;
|
|
35
|
+
if (!session.pinnedAgent && agent && agent.id !== ((_a = this.defaultChatAgentId) === null || _a === void 0 ? void 0 : _a.id)) {
|
|
36
|
+
session.pinnedAgent = agent;
|
|
34
37
|
}
|
|
35
|
-
if (this.
|
|
36
|
-
|
|
37
|
-
// the default agent could be disabled
|
|
38
|
-
if (defaultAgent) {
|
|
39
|
-
return defaultAgent;
|
|
40
|
-
}
|
|
38
|
+
else if (session.pinnedAgent && this.getMentionedAgent(parsedRequest) === undefined) {
|
|
39
|
+
agent = session.pinnedAgent;
|
|
41
40
|
}
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
41
|
+
return agent;
|
|
42
|
+
}
|
|
43
|
+
initialAgentSelection(parsedRequest) {
|
|
44
|
+
const agentPart = this.getMentionedAgent(parsedRequest);
|
|
45
|
+
if (!agentPart) {
|
|
46
|
+
const configuredDefaultChatAgent = this.getConfiguredDefaultChatAgent();
|
|
47
|
+
if (configuredDefaultChatAgent) {
|
|
48
|
+
return configuredDefaultChatAgent;
|
|
49
|
+
}
|
|
46
50
|
}
|
|
47
|
-
|
|
48
|
-
return (_a = this.chatAgentService.getAgents()[0]) !== null && _a !== void 0 ? _a : undefined;
|
|
51
|
+
return super.initialAgentSelection(parsedRequest);
|
|
49
52
|
}
|
|
50
53
|
getConfiguredDefaultChatAgent() {
|
|
51
54
|
const configuredDefaultChatAgentId = this.preferenceService.get(ai_chat_preferences_1.DEFAULT_CHAT_AGENT_PREF, undefined);
|
|
@@ -55,12 +58,29 @@ let FrontendChatServiceImpl = class FrontendChatServiceImpl extends common_1.Cha
|
|
|
55
58
|
}
|
|
56
59
|
return configuredDefaultChatAgent;
|
|
57
60
|
}
|
|
61
|
+
createSession(location, options) {
|
|
62
|
+
const session = super.createSession(location, options);
|
|
63
|
+
session.model.onDidChange(event => {
|
|
64
|
+
const changeSet = event.changeSet;
|
|
65
|
+
if (event.kind === 'removeChangeSet') {
|
|
66
|
+
this.changeSetFileService.closeDiffsForSession(session.id);
|
|
67
|
+
}
|
|
68
|
+
else if (changeSet) {
|
|
69
|
+
this.changeSetFileService.closeDiffsForSession(session.id, changeSet.getElements().map(({ uri }) => uri));
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
return session;
|
|
73
|
+
}
|
|
58
74
|
};
|
|
59
75
|
exports.FrontendChatServiceImpl = FrontendChatServiceImpl;
|
|
60
76
|
tslib_1.__decorate([
|
|
61
77
|
(0, inversify_1.inject)(browser_1.PreferenceService),
|
|
62
78
|
tslib_1.__metadata("design:type", Object)
|
|
63
79
|
], FrontendChatServiceImpl.prototype, "preferenceService", void 0);
|
|
80
|
+
tslib_1.__decorate([
|
|
81
|
+
(0, inversify_1.inject)(change_set_file_service_1.ChangeSetFileService),
|
|
82
|
+
tslib_1.__metadata("design:type", change_set_file_service_1.ChangeSetFileService)
|
|
83
|
+
], FrontendChatServiceImpl.prototype, "changeSetFileService", void 0);
|
|
64
84
|
exports.FrontendChatServiceImpl = FrontendChatServiceImpl = tslib_1.__decorate([
|
|
65
85
|
(0, inversify_1.injectable)()
|
|
66
86
|
], FrontendChatServiceImpl);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frontend-chat-service.js","sourceRoot":"","sources":["../../src/browser/frontend-chat-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;;;;AAEhF,4DAAkE;AAClE,
|
|
1
|
+
{"version":3,"file":"frontend-chat-service.js","sourceRoot":"","sources":["../../src/browser/frontend-chat-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { CommunicationRecordingService, LanguageModel, LanguageModelRequirement, LanguageModelResponse, LanguageModelStreamResponse, PromptService, ResolvedPromptTemplate, ToolRequest } from '@theia/ai-core';
|
|
1
|
+
import { AgentSpecificVariables, AIVariableContext, CommunicationRecordingService, LanguageModel, LanguageModelRequirement, LanguageModelResponse, LanguageModelStreamResponse, PromptService, PromptTemplate, ResolvedPromptTemplate, ToolCall, ToolRequest } from '@theia/ai-core';
|
|
2
2
|
import { Agent, LanguageModelRegistry, LanguageModelStreamResponsePart, MessageActor } from '@theia/ai-core/lib/common';
|
|
3
3
|
import { CancellationToken, ContributionProvider, ILogger } from '@theia/core';
|
|
4
4
|
import { ChatAgentService } from './chat-agent-service';
|
|
5
|
-
import { ChatModel,
|
|
5
|
+
import { ChatModel, MutableChatRequestModel, ChatResponseContent, ChatRequestModel } from './chat-model';
|
|
6
6
|
import { DefaultResponseContentFactory, ResponseContentMatcher, ResponseContentMatcherProvider } from './response-content-matcher';
|
|
7
7
|
import { ChatToolRequestService } from './chat-tool-request-service';
|
|
8
8
|
/**
|
|
@@ -27,6 +27,13 @@ export interface SystemMessageDescription {
|
|
|
27
27
|
export declare namespace SystemMessageDescription {
|
|
28
28
|
function fromResolvedPromptTemplate(resolvedPrompt: ResolvedPromptTemplate): SystemMessageDescription;
|
|
29
29
|
}
|
|
30
|
+
export interface ChatSessionContext extends AIVariableContext {
|
|
31
|
+
request?: ChatRequestModel;
|
|
32
|
+
model: ChatModel;
|
|
33
|
+
}
|
|
34
|
+
export declare namespace ChatSessionContext {
|
|
35
|
+
function is(candidate: unknown): candidate is ChatSessionContext;
|
|
36
|
+
}
|
|
30
37
|
/**
|
|
31
38
|
* The location from where an chat agent may be invoked.
|
|
32
39
|
* Based on the location, a different context may be available.
|
|
@@ -48,35 +55,41 @@ export declare const ChatAgent: unique symbol;
|
|
|
48
55
|
export interface ChatAgent extends Agent {
|
|
49
56
|
locations: ChatAgentLocation[];
|
|
50
57
|
iconClass?: string;
|
|
51
|
-
invoke(request:
|
|
58
|
+
invoke(request: MutableChatRequestModel, chatAgentService?: ChatAgentService): Promise<void>;
|
|
52
59
|
}
|
|
53
|
-
export declare abstract class AbstractChatAgent {
|
|
54
|
-
id: string;
|
|
55
|
-
languageModelRequirements: LanguageModelRequirement[];
|
|
56
|
-
protected defaultLanguageModelPurpose: string;
|
|
57
|
-
iconClass: string;
|
|
58
|
-
locations: ChatAgentLocation[];
|
|
59
|
-
tags: string[];
|
|
60
|
-
defaultLogging: boolean;
|
|
60
|
+
export declare abstract class AbstractChatAgent implements ChatAgent {
|
|
61
61
|
protected languageModelRegistry: LanguageModelRegistry;
|
|
62
62
|
protected logger: ILogger;
|
|
63
63
|
protected recordingService: CommunicationRecordingService;
|
|
64
64
|
protected chatToolRequestService: ChatToolRequestService;
|
|
65
65
|
protected promptService: PromptService;
|
|
66
66
|
protected contentMatcherProviders: ContributionProvider<ResponseContentMatcherProvider>;
|
|
67
|
+
protected defaultContentFactory: DefaultResponseContentFactory;
|
|
68
|
+
readonly abstract id: string;
|
|
69
|
+
readonly abstract name: string;
|
|
70
|
+
readonly abstract languageModelRequirements: LanguageModelRequirement[];
|
|
71
|
+
iconClass: string;
|
|
72
|
+
locations: ChatAgentLocation[];
|
|
73
|
+
tags: string[];
|
|
74
|
+
description: string;
|
|
75
|
+
variables: string[];
|
|
76
|
+
promptTemplates: PromptTemplate[];
|
|
77
|
+
agentSpecificVariables: AgentSpecificVariables[];
|
|
78
|
+
functions: string[];
|
|
79
|
+
protected readonly abstract defaultLanguageModelPurpose: string;
|
|
80
|
+
protected defaultLogging: boolean;
|
|
81
|
+
protected systemPromptId: string | undefined;
|
|
67
82
|
protected additionalToolRequests: ToolRequest[];
|
|
68
83
|
protected contentMatchers: ResponseContentMatcher[];
|
|
69
|
-
protected defaultContentFactory: DefaultResponseContentFactory;
|
|
70
|
-
constructor(id: string, languageModelRequirements: LanguageModelRequirement[], defaultLanguageModelPurpose: string, iconClass?: string, locations?: ChatAgentLocation[], tags?: string[], defaultLogging?: boolean);
|
|
71
84
|
init(): void;
|
|
72
85
|
protected initializeContentMatchers(): void;
|
|
73
|
-
invoke(request:
|
|
74
|
-
protected parseContents(text: string, request:
|
|
75
|
-
protected handleError(request:
|
|
86
|
+
invoke(request: MutableChatRequestModel): Promise<void>;
|
|
87
|
+
protected parseContents(text: string, request: MutableChatRequestModel): ChatResponseContent[];
|
|
88
|
+
protected handleError(request: MutableChatRequestModel, error: Error): void;
|
|
76
89
|
protected getLanguageModelSelector(languageModelPurpose: string): LanguageModelRequirement;
|
|
77
90
|
protected getLanguageModel(languageModelPurpose: string): Promise<LanguageModel>;
|
|
78
91
|
protected selectLanguageModel(selector: LanguageModelRequirement): Promise<LanguageModel>;
|
|
79
|
-
protected
|
|
92
|
+
protected getSystemMessageDescription(context: AIVariableContext): Promise<SystemMessageDescription | undefined>;
|
|
80
93
|
protected getMessages(model: ChatModel, includeResponseInProgress?: boolean): Promise<ChatMessage[]>;
|
|
81
94
|
protected callLlm(languageModel: LanguageModel, messages: ChatMessage[], tools: ToolRequest[] | undefined, token: CancellationToken): Promise<LanguageModelResponse>;
|
|
82
95
|
/**
|
|
@@ -91,17 +104,34 @@ export declare abstract class AbstractChatAgent {
|
|
|
91
104
|
* The default implementation sets the state of the response to `complete`.
|
|
92
105
|
* Subclasses may override this method to perform additional actions or keep the response open for processing further requests.
|
|
93
106
|
*/
|
|
94
|
-
protected onResponseComplete(request:
|
|
95
|
-
protected abstract addContentsToResponse(languageModelResponse: LanguageModelResponse, request:
|
|
107
|
+
protected onResponseComplete(request: MutableChatRequestModel): Promise<void>;
|
|
108
|
+
protected abstract addContentsToResponse(languageModelResponse: LanguageModelResponse, request: MutableChatRequestModel): Promise<void>;
|
|
96
109
|
}
|
|
97
110
|
export declare abstract class AbstractTextToModelParsingChatAgent<T> extends AbstractChatAgent {
|
|
98
|
-
protected addContentsToResponse(languageModelResponse: LanguageModelResponse, request:
|
|
111
|
+
protected addContentsToResponse(languageModelResponse: LanguageModelResponse, request: MutableChatRequestModel): Promise<void>;
|
|
99
112
|
protected abstract parseTextResponse(text: string): Promise<T>;
|
|
100
|
-
protected abstract createResponseContent(parsedModel: T, request:
|
|
113
|
+
protected abstract createResponseContent(parsedModel: T, request: MutableChatRequestModel): ChatResponseContent;
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Factory for creating ToolCallChatResponseContent instances.
|
|
117
|
+
*/
|
|
118
|
+
export declare class ToolCallChatResponseContentFactory {
|
|
119
|
+
create(toolCall: ToolCall): ChatResponseContent;
|
|
101
120
|
}
|
|
102
121
|
export declare abstract class AbstractStreamParsingChatAgent extends AbstractChatAgent {
|
|
103
|
-
protected
|
|
104
|
-
protected
|
|
105
|
-
protected
|
|
122
|
+
protected toolCallResponseContentFactory: ToolCallChatResponseContentFactory;
|
|
123
|
+
protected addContentsToResponse(languageModelResponse: LanguageModelResponse, request: MutableChatRequestModel): Promise<void>;
|
|
124
|
+
protected addStreamResponse(languageModelResponse: LanguageModelStreamResponse, request: MutableChatRequestModel): Promise<void>;
|
|
125
|
+
protected parse(token: LanguageModelStreamResponsePart, request: MutableChatRequestModel): ChatResponseContent | ChatResponseContent[];
|
|
126
|
+
/**
|
|
127
|
+
* Creates a ToolCallChatResponseContent instance from the provided tool call data.
|
|
128
|
+
*
|
|
129
|
+
* This method is called when parsing stream response tokens that contain tool call data.
|
|
130
|
+
* Subclasses can override this method to customize the creation of tool call response contents.
|
|
131
|
+
*
|
|
132
|
+
* @param toolCall The ToolCall.
|
|
133
|
+
* @returns A ChatResponseContent representing the tool call.
|
|
134
|
+
*/
|
|
135
|
+
protected createToolCallResponseContent(toolCall: ToolCall): ChatResponseContent;
|
|
106
136
|
}
|
|
107
137
|
//# sourceMappingURL=chat-agents.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat-agents.d.ts","sourceRoot":"","sources":["../../src/common/chat-agents.ts"],"names":[],"mappings":"AAqBA,OAAO,EACH,6BAA6B,EAE7B,aAAa,EACb,wBAAwB,EACxB,qBAAqB,EACrB,2BAA2B,EAC3B,aAAa,EACb,sBAAsB,EACtB,WAAW,EACd,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACH,KAAK,EAGL,qBAAqB,EACrB,+BAA+B,EAC/B,YAAY,EACf,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,OAAO,EAAW,MAAM,aAAa,CAAC;AAExF,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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"}
|
|
@@ -20,7 +20,7 @@
|
|
|
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.AbstractStreamParsingChatAgent = exports.AbstractTextToModelParsingChatAgent = exports.AbstractChatAgent = exports.ChatAgent = exports.ChatAgentLocation = exports.SystemMessageDescription = void 0;
|
|
23
|
+
exports.AbstractStreamParsingChatAgent = exports.ToolCallChatResponseContentFactory = exports.AbstractTextToModelParsingChatAgent = exports.AbstractChatAgent = exports.ChatAgent = exports.ChatAgentLocation = exports.ChatSessionContext = exports.SystemMessageDescription = void 0;
|
|
24
24
|
const tslib_1 = require("tslib");
|
|
25
25
|
const ai_core_1 = require("@theia/ai-core");
|
|
26
26
|
const common_1 = require("@theia/ai-core/lib/common");
|
|
@@ -41,6 +41,13 @@ var SystemMessageDescription;
|
|
|
41
41
|
}
|
|
42
42
|
SystemMessageDescription.fromResolvedPromptTemplate = fromResolvedPromptTemplate;
|
|
43
43
|
})(SystemMessageDescription || (exports.SystemMessageDescription = SystemMessageDescription = {}));
|
|
44
|
+
var ChatSessionContext;
|
|
45
|
+
(function (ChatSessionContext) {
|
|
46
|
+
function is(candidate) {
|
|
47
|
+
return typeof candidate === 'object' && !!candidate && 'model' in candidate;
|
|
48
|
+
}
|
|
49
|
+
ChatSessionContext.is = is;
|
|
50
|
+
})(ChatSessionContext || (exports.ChatSessionContext = ChatSessionContext = {}));
|
|
44
51
|
/**
|
|
45
52
|
* The location from where an chat agent may be invoked.
|
|
46
53
|
* Based on the location, a different context may be available.
|
|
@@ -67,14 +74,17 @@ var ChatAgentLocation;
|
|
|
67
74
|
})(ChatAgentLocation || (exports.ChatAgentLocation = ChatAgentLocation = {}));
|
|
68
75
|
exports.ChatAgent = Symbol('ChatAgent');
|
|
69
76
|
let AbstractChatAgent = class AbstractChatAgent {
|
|
70
|
-
constructor(
|
|
71
|
-
this.
|
|
72
|
-
this.
|
|
73
|
-
this.
|
|
74
|
-
this.
|
|
75
|
-
this.
|
|
76
|
-
this.
|
|
77
|
-
this.
|
|
77
|
+
constructor() {
|
|
78
|
+
this.iconClass = 'codicon codicon-copilot';
|
|
79
|
+
this.locations = ChatAgentLocation.ALL;
|
|
80
|
+
this.tags = ['Chat'];
|
|
81
|
+
this.description = '';
|
|
82
|
+
this.variables = [];
|
|
83
|
+
this.promptTemplates = [];
|
|
84
|
+
this.agentSpecificVariables = [];
|
|
85
|
+
this.functions = [];
|
|
86
|
+
this.defaultLogging = true;
|
|
87
|
+
this.systemPromptId = undefined;
|
|
78
88
|
this.additionalToolRequests = [];
|
|
79
89
|
this.contentMatchers = [];
|
|
80
90
|
}
|
|
@@ -92,7 +102,7 @@ let AbstractChatAgent = class AbstractChatAgent {
|
|
|
92
102
|
if (!languageModel) {
|
|
93
103
|
throw new Error('Couldn\'t find a matching language model. Please check your setup!');
|
|
94
104
|
}
|
|
95
|
-
const systemMessageDescription = await this.getSystemMessageDescription();
|
|
105
|
+
const systemMessageDescription = await this.getSystemMessageDescription({ model: request.session, request });
|
|
96
106
|
const messages = await this.getMessages(request.session);
|
|
97
107
|
if (this.defaultLogging) {
|
|
98
108
|
this.recordingService.recordRequest(chat_history_entry_1.ChatHistoryEntry.fromRequest(this.id, request, {
|
|
@@ -148,6 +158,13 @@ let AbstractChatAgent = class AbstractChatAgent {
|
|
|
148
158
|
}
|
|
149
159
|
return languageModel;
|
|
150
160
|
}
|
|
161
|
+
async getSystemMessageDescription(context) {
|
|
162
|
+
if (this.systemPromptId === undefined) {
|
|
163
|
+
return undefined;
|
|
164
|
+
}
|
|
165
|
+
const resolvedPrompt = await this.promptService.getPrompt(this.systemPromptId, undefined, context);
|
|
166
|
+
return resolvedPrompt ? SystemMessageDescription.fromResolvedPromptTemplate(resolvedPrompt) : undefined;
|
|
167
|
+
}
|
|
151
168
|
async getMessages(model, includeResponseInProgress = false) {
|
|
152
169
|
const requestMessages = model.getRequests().flatMap(request => {
|
|
153
170
|
const messages = [];
|
|
@@ -230,15 +247,7 @@ tslib_1.__decorate([
|
|
|
230
247
|
tslib_1.__metadata("design:returntype", void 0)
|
|
231
248
|
], AbstractChatAgent.prototype, "init", null);
|
|
232
249
|
exports.AbstractChatAgent = AbstractChatAgent = tslib_1.__decorate([
|
|
233
|
-
(0, inversify_1.injectable)()
|
|
234
|
-
tslib_1.__param(0, (0, inversify_1.unmanaged)()),
|
|
235
|
-
tslib_1.__param(1, (0, inversify_1.unmanaged)()),
|
|
236
|
-
tslib_1.__param(2, (0, inversify_1.unmanaged)()),
|
|
237
|
-
tslib_1.__param(3, (0, inversify_1.unmanaged)()),
|
|
238
|
-
tslib_1.__param(4, (0, inversify_1.unmanaged)()),
|
|
239
|
-
tslib_1.__param(5, (0, inversify_1.unmanaged)()),
|
|
240
|
-
tslib_1.__param(6, (0, inversify_1.unmanaged)()),
|
|
241
|
-
tslib_1.__metadata("design:paramtypes", [String, Array, String, String, Array, Array, Boolean])
|
|
250
|
+
(0, inversify_1.injectable)()
|
|
242
251
|
], AbstractChatAgent);
|
|
243
252
|
let AbstractTextToModelParsingChatAgent = class AbstractTextToModelParsingChatAgent extends AbstractChatAgent {
|
|
244
253
|
async addContentsToResponse(languageModelResponse, request) {
|
|
@@ -252,6 +261,19 @@ exports.AbstractTextToModelParsingChatAgent = AbstractTextToModelParsingChatAgen
|
|
|
252
261
|
exports.AbstractTextToModelParsingChatAgent = AbstractTextToModelParsingChatAgent = tslib_1.__decorate([
|
|
253
262
|
(0, inversify_1.injectable)()
|
|
254
263
|
], AbstractTextToModelParsingChatAgent);
|
|
264
|
+
/**
|
|
265
|
+
* Factory for creating ToolCallChatResponseContent instances.
|
|
266
|
+
*/
|
|
267
|
+
let ToolCallChatResponseContentFactory = class ToolCallChatResponseContentFactory {
|
|
268
|
+
create(toolCall) {
|
|
269
|
+
var _a, _b;
|
|
270
|
+
return new chat_model_1.ToolCallChatResponseContentImpl(toolCall.id, (_a = toolCall.function) === null || _a === void 0 ? void 0 : _a.name, (_b = toolCall.function) === null || _b === void 0 ? void 0 : _b.arguments, toolCall.finished, toolCall.result);
|
|
271
|
+
}
|
|
272
|
+
};
|
|
273
|
+
exports.ToolCallChatResponseContentFactory = ToolCallChatResponseContentFactory;
|
|
274
|
+
exports.ToolCallChatResponseContentFactory = ToolCallChatResponseContentFactory = tslib_1.__decorate([
|
|
275
|
+
(0, inversify_1.injectable)()
|
|
276
|
+
], ToolCallChatResponseContentFactory);
|
|
255
277
|
let AbstractStreamParsingChatAgent = class AbstractStreamParsingChatAgent extends AbstractChatAgent {
|
|
256
278
|
async addContentsToResponse(languageModelResponse, request) {
|
|
257
279
|
if ((0, common_1.isLanguageModelTextResponse)(languageModelResponse)) {
|
|
@@ -301,13 +323,29 @@ let AbstractStreamParsingChatAgent = class AbstractStreamParsingChatAgent extend
|
|
|
301
323
|
}
|
|
302
324
|
const toolCalls = token.tool_calls;
|
|
303
325
|
if (toolCalls !== undefined) {
|
|
304
|
-
const toolCallContents = toolCalls.map(toolCall =>
|
|
326
|
+
const toolCallContents = toolCalls.map(toolCall => this.createToolCallResponseContent(toolCall));
|
|
305
327
|
return toolCallContents;
|
|
306
328
|
}
|
|
307
329
|
return this.defaultContentFactory.create('', request);
|
|
308
330
|
}
|
|
331
|
+
/**
|
|
332
|
+
* Creates a ToolCallChatResponseContent instance from the provided tool call data.
|
|
333
|
+
*
|
|
334
|
+
* This method is called when parsing stream response tokens that contain tool call data.
|
|
335
|
+
* Subclasses can override this method to customize the creation of tool call response contents.
|
|
336
|
+
*
|
|
337
|
+
* @param toolCall The ToolCall.
|
|
338
|
+
* @returns A ChatResponseContent representing the tool call.
|
|
339
|
+
*/
|
|
340
|
+
createToolCallResponseContent(toolCall) {
|
|
341
|
+
return this.toolCallResponseContentFactory.create(toolCall);
|
|
342
|
+
}
|
|
309
343
|
};
|
|
310
344
|
exports.AbstractStreamParsingChatAgent = AbstractStreamParsingChatAgent;
|
|
345
|
+
tslib_1.__decorate([
|
|
346
|
+
(0, inversify_1.inject)(ToolCallChatResponseContentFactory),
|
|
347
|
+
tslib_1.__metadata("design:type", ToolCallChatResponseContentFactory)
|
|
348
|
+
], AbstractStreamParsingChatAgent.prototype, "toolCallResponseContentFactory", void 0);
|
|
311
349
|
exports.AbstractStreamParsingChatAgent = AbstractStreamParsingChatAgent = tslib_1.__decorate([
|
|
312
350
|
(0, inversify_1.injectable)()
|
|
313
351
|
], AbstractStreamParsingChatAgent);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat-agents.js","sourceRoot":"","sources":["../../src/common/chat-agents.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,
|
|
1
|
+
{"version":3,"file":"chat-agents.js","sourceRoot":"","sources":["../../src/common/chat-agents.ts"],"names":[],"mappings":"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"}
|