@theia/ai-core 1.54.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +30 -0
- package/data/prompttemplate.tmLanguage.json +52 -0
- package/lib/browser/ai-activation-service.d.ts +17 -0
- package/lib/browser/ai-activation-service.d.ts.map +1 -0
- package/lib/browser/ai-activation-service.js +63 -0
- package/lib/browser/ai-activation-service.js.map +1 -0
- package/lib/browser/ai-command-handler-factory.d.ts +4 -0
- package/lib/browser/ai-command-handler-factory.d.ts.map +1 -0
- package/lib/browser/ai-command-handler-factory.js +20 -0
- package/lib/browser/ai-command-handler-factory.js.map +1 -0
- package/lib/browser/ai-configuration/agent-configuration-widget.d.ts +27 -0
- package/lib/browser/ai-configuration/agent-configuration-widget.d.ts.map +1 -0
- package/lib/browser/ai-configuration/agent-configuration-widget.js +231 -0
- package/lib/browser/ai-configuration/agent-configuration-widget.js.map +1 -0
- package/lib/browser/ai-configuration/ai-configuration-service.d.ts +13 -0
- package/lib/browser/ai-configuration/ai-configuration-service.d.ts.map +1 -0
- package/lib/browser/ai-configuration/ai-configuration-service.js +44 -0
- package/lib/browser/ai-configuration/ai-configuration-service.js.map +1 -0
- package/lib/browser/ai-configuration/ai-configuration-view-contribution.d.ts +12 -0
- package/lib/browser/ai-configuration/ai-configuration-view-contribution.d.ts.map +1 -0
- package/lib/browser/ai-configuration/ai-configuration-view-contribution.js +41 -0
- package/lib/browser/ai-configuration/ai-configuration-view-contribution.js.map +1 -0
- package/lib/browser/ai-configuration/ai-configuration-widget.d.ts +20 -0
- package/lib/browser/ai-configuration/ai-configuration-widget.d.ts.map +1 -0
- package/lib/browser/ai-configuration/ai-configuration-widget.js +88 -0
- package/lib/browser/ai-configuration/ai-configuration-widget.js.map +1 -0
- package/lib/browser/ai-configuration/language-model-renderer.d.ts +13 -0
- package/lib/browser/ai-configuration/language-model-renderer.d.ts.map +1 -0
- package/lib/browser/ai-configuration/language-model-renderer.js +104 -0
- package/lib/browser/ai-configuration/language-model-renderer.js.map +1 -0
- package/lib/browser/ai-configuration/template-settings-renderer.d.ts +11 -0
- package/lib/browser/ai-configuration/template-settings-renderer.d.ts.map +1 -0
- package/lib/browser/ai-configuration/template-settings-renderer.js +33 -0
- package/lib/browser/ai-configuration/template-settings-renderer.js.map +1 -0
- package/lib/browser/ai-configuration/variable-configuration-widget.d.ts +20 -0
- package/lib/browser/ai-configuration/variable-configuration-widget.d.ts.map +1 -0
- package/lib/browser/ai-configuration/variable-configuration-widget.js +99 -0
- package/lib/browser/ai-configuration/variable-configuration-widget.js.map +1 -0
- package/lib/browser/ai-core-frontend-application-contribution.d.ts +8 -0
- package/lib/browser/ai-core-frontend-application-contribution.d.ts.map +1 -0
- package/lib/browser/ai-core-frontend-application-contribution.js +46 -0
- package/lib/browser/ai-core-frontend-application-contribution.js.map +1 -0
- package/lib/browser/ai-core-frontend-module.d.ts +4 -0
- package/lib/browser/ai-core-frontend-module.d.ts.map +1 -0
- package/lib/browser/ai-core-frontend-module.js +122 -0
- package/lib/browser/ai-core-frontend-module.js.map +1 -0
- package/lib/browser/ai-core-preferences.d.ts +14 -0
- package/lib/browser/ai-core-preferences.d.ts.map +1 -0
- package/lib/browser/ai-core-preferences.js +69 -0
- package/lib/browser/ai-core-preferences.js.map +1 -0
- package/lib/browser/ai-settings-service.d.ts +14 -0
- package/lib/browser/ai-settings-service.d.ts.map +1 -0
- package/lib/browser/ai-settings-service.js +56 -0
- package/lib/browser/ai-settings-service.js.map +1 -0
- package/lib/browser/ai-view-contribution.d.ts +14 -0
- package/lib/browser/ai-view-contribution.d.ts.map +1 -0
- package/lib/browser/ai-view-contribution.js +71 -0
- package/lib/browser/ai-view-contribution.js.map +1 -0
- package/lib/browser/frontend-language-model-registry.d.ts +39 -0
- package/lib/browser/frontend-language-model-registry.d.ts.map +1 -0
- package/lib/browser/frontend-language-model-registry.js +321 -0
- package/lib/browser/frontend-language-model-registry.js.map +1 -0
- package/lib/browser/frontend-prompt-customization-service.d.ts +31 -0
- package/lib/browser/frontend-prompt-customization-service.d.ts.map +1 -0
- package/lib/browser/frontend-prompt-customization-service.js +194 -0
- package/lib/browser/frontend-prompt-customization-service.js.map +1 -0
- package/lib/browser/frontend-variable-service.d.ts +6 -0
- package/lib/browser/frontend-variable-service.d.ts.map +1 -0
- package/lib/browser/frontend-variable-service.js +31 -0
- package/lib/browser/frontend-variable-service.js.map +1 -0
- package/lib/browser/index.d.ts +11 -0
- package/lib/browser/index.d.ts.map +1 -0
- package/lib/browser/index.js +29 -0
- package/lib/browser/index.js.map +1 -0
- package/lib/browser/prompttemplate-contribution.d.ts +28 -0
- package/lib/browser/prompttemplate-contribution.d.ts.map +1 -0
- package/lib/browser/prompttemplate-contribution.js +207 -0
- package/lib/browser/prompttemplate-contribution.js.map +1 -0
- package/lib/browser/theia-variable-contribution.d.ts +13 -0
- package/lib/browser/theia-variable-contribution.d.ts.map +1 -0
- package/lib/browser/theia-variable-contribution.js +64 -0
- package/lib/browser/theia-variable-contribution.js.map +1 -0
- package/lib/common/agent-service.d.ts +48 -0
- package/lib/common/agent-service.d.ts.map +1 -0
- package/lib/common/agent-service.js +88 -0
- package/lib/common/agent-service.js.map +1 -0
- package/lib/common/agent.d.ts +45 -0
- package/lib/common/agent.d.ts.map +1 -0
- package/lib/common/agent.js +20 -0
- package/lib/common/agent.js.map +1 -0
- package/lib/common/agents-variable-contribution.d.ts +19 -0
- package/lib/common/agents-variable-contribution.d.ts.map +1 -0
- package/lib/common/agents-variable-contribution.js +56 -0
- package/lib/common/agents-variable-contribution.js.map +1 -0
- package/lib/common/communication-recording-service.d.ts +23 -0
- package/lib/common/communication-recording-service.d.ts.map +1 -0
- package/lib/common/communication-recording-service.js +20 -0
- package/lib/common/communication-recording-service.js.map +1 -0
- package/lib/common/index.d.ts +16 -0
- package/lib/common/index.d.ts.map +1 -0
- package/lib/common/index.js +34 -0
- package/lib/common/index.js.map +1 -0
- package/lib/common/language-model-delegate.d.ts +24 -0
- package/lib/common/language-model-delegate.d.ts.map +1 -0
- package/lib/common/language-model-delegate.js +26 -0
- package/lib/common/language-model-delegate.js.map +1 -0
- package/lib/common/language-model-util.d.ts +5 -0
- package/lib/common/language-model-util.d.ts.map +1 -0
- package/lib/common/language-model-util.js +75 -0
- package/lib/common/language-model-util.js.map +1 -0
- package/lib/common/language-model.d.ts +137 -0
- package/lib/common/language-model.d.ts.map +1 -0
- package/lib/common/language-model.js +142 -0
- package/lib/common/language-model.js.map +1 -0
- package/lib/common/language-model.spec.d.ts +2 -0
- package/lib/common/language-model.spec.d.ts.map +1 -0
- package/lib/common/language-model.spec.js +62 -0
- package/lib/common/language-model.spec.js.map +1 -0
- package/lib/common/prompt-service-util.d.ts +5 -0
- package/lib/common/prompt-service-util.d.ts.map +1 -0
- package/lib/common/prompt-service-util.js +23 -0
- package/lib/common/prompt-service-util.js.map +1 -0
- package/lib/common/prompt-service.d.ts +101 -0
- package/lib/common/prompt-service.d.ts.map +1 -0
- package/lib/common/prompt-service.js +139 -0
- package/lib/common/prompt-service.js.map +1 -0
- package/lib/common/prompt-service.spec.d.ts +2 -0
- package/lib/common/prompt-service.spec.d.ts.map +1 -0
- package/lib/common/prompt-service.spec.js +86 -0
- package/lib/common/prompt-service.spec.js.map +1 -0
- package/lib/common/protocol.d.ts +7 -0
- package/lib/common/protocol.d.ts.map +1 -0
- package/lib/common/protocol.js +20 -0
- package/lib/common/protocol.js.map +1 -0
- package/lib/common/settings-service.d.ts +18 -0
- package/lib/common/settings-service.d.ts.map +1 -0
- package/lib/common/settings-service.js +5 -0
- package/lib/common/settings-service.js.map +1 -0
- package/lib/common/today-variable-contribution.d.ts +17 -0
- package/lib/common/today-variable-contribution.d.ts.map +1 -0
- package/lib/common/today-variable-contribution.js +48 -0
- package/lib/common/today-variable-contribution.js.map +1 -0
- package/lib/common/tomorrow-variable-contribution.d.ts +17 -0
- package/lib/common/tomorrow-variable-contribution.d.ts.map +1 -0
- package/lib/common/tomorrow-variable-contribution.js +48 -0
- package/lib/common/tomorrow-variable-contribution.js.map +1 -0
- package/lib/common/tool-invocation-registry.d.ts +23 -0
- package/lib/common/tool-invocation-registry.d.ts.map +1 -0
- package/lib/common/tool-invocation-registry.js +72 -0
- package/lib/common/tool-invocation-registry.js.map +1 -0
- package/lib/common/variable-service.d.ts +70 -0
- package/lib/common/variable-service.d.ts.map +1 -0
- package/lib/common/variable-service.js +122 -0
- package/lib/common/variable-service.js.map +1 -0
- package/lib/node/ai-core-backend-module.d.ts +4 -0
- package/lib/node/ai-core-backend-module.d.ts.map +1 -0
- package/lib/node/ai-core-backend-module.js +47 -0
- package/lib/node/ai-core-backend-module.js.map +1 -0
- package/lib/node/backend-language-model-registry.d.ts +12 -0
- package/lib/node/backend-language-model-registry.d.ts.map +1 -0
- package/lib/node/backend-language-model-registry.js +61 -0
- package/lib/node/backend-language-model-registry.js.map +1 -0
- package/lib/node/language-model-frontend-delegate.d.ts +18 -0
- package/lib/node/language-model-frontend-delegate.d.ts.map +1 -0
- package/lib/node/language-model-frontend-delegate.js +100 -0
- package/lib/node/language-model-frontend-delegate.js.map +1 -0
- package/package.json +59 -0
- package/src/browser/ai-activation-service.ts +56 -0
- package/src/browser/ai-command-handler-factory.ts +20 -0
- package/src/browser/ai-configuration/agent-configuration-widget.tsx +299 -0
- package/src/browser/ai-configuration/ai-configuration-service.ts +43 -0
- package/src/browser/ai-configuration/ai-configuration-view-contribution.ts +54 -0
- package/src/browser/ai-configuration/ai-configuration-widget.tsx +80 -0
- package/src/browser/ai-configuration/language-model-renderer.tsx +113 -0
- package/src/browser/ai-configuration/template-settings-renderer.tsx +39 -0
- package/src/browser/ai-configuration/variable-configuration-widget.tsx +110 -0
- package/src/browser/ai-core-frontend-application-contribution.ts +40 -0
- package/src/browser/ai-core-frontend-module.ts +161 -0
- package/src/browser/ai-core-preferences.ts +76 -0
- package/src/browser/ai-settings-service.ts +50 -0
- package/src/browser/ai-view-contribution.ts +77 -0
- package/src/browser/frontend-language-model-registry.ts +405 -0
- package/src/browser/frontend-prompt-customization-service.ts +197 -0
- package/src/browser/frontend-variable-service.ts +26 -0
- package/src/browser/index.ts +26 -0
- package/src/browser/prompttemplate-contribution.ts +250 -0
- package/src/browser/style/index.css +90 -0
- package/src/browser/theia-variable-contribution.ts +58 -0
- package/src/common/agent-service.ts +108 -0
- package/src/common/agent.ts +70 -0
- package/src/common/agents-variable-contribution.ts +64 -0
- package/src/common/communication-recording-service.ts +44 -0
- package/src/common/index.ts +30 -0
- package/src/common/language-model-delegate.ts +45 -0
- package/src/common/language-model-util.ts +67 -0
- package/src/common/language-model.spec.ts +86 -0
- package/src/common/language-model.ts +237 -0
- package/src/common/prompt-service-util.ts +21 -0
- package/src/common/prompt-service.spec.ts +98 -0
- package/src/common/prompt-service.ts +213 -0
- package/src/common/protocol.ts +23 -0
- package/src/common/settings-service.ts +33 -0
- package/src/common/today-variable-contribution.ts +67 -0
- package/src/common/tomorrow-variable-contribution.ts +66 -0
- package/src/common/tool-invocation-registry.ts +79 -0
- package/src/common/variable-service.ts +177 -0
- package/src/node/ai-core-backend-module.ts +83 -0
- package/src/node/backend-language-model-registry.ts +59 -0
- package/src/node/language-model-frontend-delegate.ts +116 -0
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AgentsVariableContribution = exports.AGENTS_VARIABLE = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
// *****************************************************************************
|
|
6
|
+
// Copyright (C) 2024 EclipseSource GmbH.
|
|
7
|
+
//
|
|
8
|
+
// This program and the accompanying materials are made available under the
|
|
9
|
+
// terms of the Eclipse Public License v. 2.0 which is available at
|
|
10
|
+
// http://www.eclipse.org/legal/epl-2.0.
|
|
11
|
+
//
|
|
12
|
+
// This Source Code may also be made available under the following Secondary
|
|
13
|
+
// Licenses when the conditions for such availability set forth in the Eclipse
|
|
14
|
+
// Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
15
|
+
// with the GNU Classpath Exception which is available at
|
|
16
|
+
// https://www.gnu.org/software/classpath/license.html.
|
|
17
|
+
//
|
|
18
|
+
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
19
|
+
// *****************************************************************************
|
|
20
|
+
const inversify_1 = require("@theia/core/shared/inversify");
|
|
21
|
+
const agent_service_1 = require("./agent-service");
|
|
22
|
+
exports.AGENTS_VARIABLE = {
|
|
23
|
+
id: 'agents',
|
|
24
|
+
name: 'agents',
|
|
25
|
+
description: 'Returns the list of agents available in the system'
|
|
26
|
+
};
|
|
27
|
+
let AgentsVariableContribution = class AgentsVariableContribution {
|
|
28
|
+
registerVariables(service) {
|
|
29
|
+
service.registerResolver(exports.AGENTS_VARIABLE, this);
|
|
30
|
+
}
|
|
31
|
+
canResolve(request, _context) {
|
|
32
|
+
if (request.variable.name === exports.AGENTS_VARIABLE.name) {
|
|
33
|
+
return 1;
|
|
34
|
+
}
|
|
35
|
+
return -1;
|
|
36
|
+
}
|
|
37
|
+
async resolve(request, context) {
|
|
38
|
+
if (request.variable.name === exports.AGENTS_VARIABLE.name) {
|
|
39
|
+
const agents = this.agentService.getAgents().map(agent => ({
|
|
40
|
+
id: agent.id,
|
|
41
|
+
name: agent.name,
|
|
42
|
+
description: agent.description
|
|
43
|
+
}));
|
|
44
|
+
return { variable: exports.AGENTS_VARIABLE, agents, value: JSON.stringify(agents) };
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
exports.AgentsVariableContribution = AgentsVariableContribution;
|
|
49
|
+
tslib_1.__decorate([
|
|
50
|
+
(0, inversify_1.inject)(agent_service_1.AgentService),
|
|
51
|
+
tslib_1.__metadata("design:type", Object)
|
|
52
|
+
], AgentsVariableContribution.prototype, "agentService", void 0);
|
|
53
|
+
exports.AgentsVariableContribution = AgentsVariableContribution = tslib_1.__decorate([
|
|
54
|
+
(0, inversify_1.injectable)()
|
|
55
|
+
], AgentsVariableContribution);
|
|
56
|
+
//# sourceMappingURL=agents-variable-contribution.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agents-variable-contribution.js","sourceRoot":"","sources":["../../src/common/agents-variable-contribution.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,4DAAkE;AAGlE,mDAA+C;AAElC,QAAA,eAAe,GAAe;IACvC,EAAE,EAAE,QAAQ;IACZ,IAAI,EAAE,QAAQ;IACd,WAAW,EAAE,oDAAoD;CACpE,CAAC;AAaK,IAAM,0BAA0B,GAAhC,MAAM,0BAA0B;IAKnC,iBAAiB,CAAC,OAA0B;QACxC,OAAO,CAAC,gBAAgB,CAAC,uBAAe,EAAE,IAAI,CAAC,CAAC;IACpD,CAAC;IAED,UAAU,CAAC,OAAoC,EAAE,QAA2B;QACxE,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,uBAAe,CAAC,IAAI,EAAE,CAAC;YACjD,OAAO,CAAC,CAAC;QACb,CAAC;QACD,OAAO,CAAC,CAAC,CAAC;IACd,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,OAAoC,EAAE,OAA0B;QAC1E,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,uBAAe,CAAC,IAAI,EAAE,CAAC;YACjD,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBACvD,EAAE,EAAE,KAAK,CAAC,EAAE;gBACZ,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,WAAW,EAAE,KAAK,CAAC,WAAW;aACjC,CAAC,CAAC,CAAC;YACJ,OAAO,EAAE,QAAQ,EAAE,uBAAe,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;QAChF,CAAC;IACL,CAAC;CACJ,CAAA;AA1BY,gEAA0B;AAGhB;IADlB,IAAA,kBAAM,EAAC,4BAAY,CAAC;;gEACyB;qCAHrC,0BAA0B;IADtC,IAAA,sBAAU,GAAE;GACA,0BAA0B,CA0BtC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { Event } from '@theia/core';
|
|
2
|
+
export type CommunicationHistory = CommunicationHistoryEntry[];
|
|
3
|
+
export interface CommunicationHistoryEntry {
|
|
4
|
+
agentId: string;
|
|
5
|
+
sessionId: string;
|
|
6
|
+
timestamp: number;
|
|
7
|
+
requestId: string;
|
|
8
|
+
request?: string;
|
|
9
|
+
response?: string;
|
|
10
|
+
responseTime?: number;
|
|
11
|
+
messages?: unknown[];
|
|
12
|
+
}
|
|
13
|
+
export type CommunicationRequestEntry = Omit<CommunicationHistoryEntry, 'response' | 'responseTime'>;
|
|
14
|
+
export type CommunicationResponseEntry = Omit<CommunicationHistoryEntry, 'request'>;
|
|
15
|
+
export declare const CommunicationRecordingService: unique symbol;
|
|
16
|
+
export interface CommunicationRecordingService {
|
|
17
|
+
recordRequest(requestEntry: CommunicationRequestEntry): void;
|
|
18
|
+
readonly onDidRecordRequest: Event<CommunicationRequestEntry>;
|
|
19
|
+
recordResponse(responseEntry: CommunicationResponseEntry): void;
|
|
20
|
+
readonly onDidRecordResponse: Event<CommunicationResponseEntry>;
|
|
21
|
+
getHistory(agentId: string): CommunicationHistory;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=communication-recording-service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"communication-recording-service.d.ts","sourceRoot":"","sources":["../../src/common/communication-recording-service.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC,MAAM,MAAM,oBAAoB,GAAG,yBAAyB,EAAE,CAAC;AAE/D,MAAM,WAAW,yBAAyB;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;CACxB;AAED,MAAM,MAAM,yBAAyB,GAAG,IAAI,CAAC,yBAAyB,EAAE,UAAU,GAAG,cAAc,CAAC,CAAC;AACrG,MAAM,MAAM,0BAA0B,GAAG,IAAI,CAAC,yBAAyB,EAAE,SAAS,CAAC,CAAC;AAEpF,eAAO,MAAM,6BAA6B,eAA0C,CAAC;AACrF,MAAM,WAAW,6BAA6B;IAC1C,aAAa,CAAC,YAAY,EAAE,yBAAyB,GAAG,IAAI,CAAC;IAC7D,QAAQ,CAAC,kBAAkB,EAAE,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAE9D,cAAc,CAAC,aAAa,EAAE,0BAA0B,GAAG,IAAI,CAAC;IAChE,QAAQ,CAAC,mBAAmB,EAAE,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAEhE,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,oBAAoB,CAAC;CACrD"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// *****************************************************************************
|
|
3
|
+
// Copyright (C) 2024 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.CommunicationRecordingService = void 0;
|
|
19
|
+
exports.CommunicationRecordingService = Symbol('CommunicationRecordingService');
|
|
20
|
+
//# sourceMappingURL=communication-recording-service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"communication-recording-service.js","sourceRoot":"","sources":["../../src/common/communication-recording-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;;;AAoBnE,QAAA,6BAA6B,GAAG,MAAM,CAAC,+BAA+B,CAAC,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export * from './agent-service';
|
|
2
|
+
export * from './agent';
|
|
3
|
+
export * from './agents-variable-contribution';
|
|
4
|
+
export * from './communication-recording-service';
|
|
5
|
+
export * from './tool-invocation-registry';
|
|
6
|
+
export * from './language-model-delegate';
|
|
7
|
+
export * from './language-model-util';
|
|
8
|
+
export * from './language-model';
|
|
9
|
+
export * from './prompt-service';
|
|
10
|
+
export * from './prompt-service-util';
|
|
11
|
+
export * from './protocol';
|
|
12
|
+
export * from './today-variable-contribution';
|
|
13
|
+
export * from './tomorrow-variable-contribution';
|
|
14
|
+
export * from './variable-service';
|
|
15
|
+
export * from './settings-service';
|
|
16
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":"AAeA,cAAc,iBAAiB,CAAC;AAChC,cAAc,SAAS,CAAC;AACxB,cAAc,gCAAgC,CAAC;AAC/C,cAAc,mCAAmC,CAAC;AAClD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,YAAY,CAAC;AAC3B,cAAc,+BAA+B,CAAC;AAC9C,cAAc,kCAAkC,CAAC;AACjD,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
// *****************************************************************************
|
|
5
|
+
// Copyright (C) 2024 EclipseSource GmbH.
|
|
6
|
+
//
|
|
7
|
+
// This program and the accompanying materials are made available under the
|
|
8
|
+
// terms of the Eclipse Public License v. 2.0 which is available at
|
|
9
|
+
// http://www.eclipse.org/legal/epl-2.0.
|
|
10
|
+
//
|
|
11
|
+
// This Source Code may also be made available under the following Secondary
|
|
12
|
+
// Licenses when the conditions for such availability set forth in the Eclipse
|
|
13
|
+
// Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
14
|
+
// with the GNU Classpath Exception which is available at
|
|
15
|
+
// https://www.gnu.org/software/classpath/license.html.
|
|
16
|
+
//
|
|
17
|
+
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
18
|
+
// *****************************************************************************
|
|
19
|
+
tslib_1.__exportStar(require("./agent-service"), exports);
|
|
20
|
+
tslib_1.__exportStar(require("./agent"), exports);
|
|
21
|
+
tslib_1.__exportStar(require("./agents-variable-contribution"), exports);
|
|
22
|
+
tslib_1.__exportStar(require("./communication-recording-service"), exports);
|
|
23
|
+
tslib_1.__exportStar(require("./tool-invocation-registry"), exports);
|
|
24
|
+
tslib_1.__exportStar(require("./language-model-delegate"), exports);
|
|
25
|
+
tslib_1.__exportStar(require("./language-model-util"), exports);
|
|
26
|
+
tslib_1.__exportStar(require("./language-model"), exports);
|
|
27
|
+
tslib_1.__exportStar(require("./prompt-service"), exports);
|
|
28
|
+
tslib_1.__exportStar(require("./prompt-service-util"), exports);
|
|
29
|
+
tslib_1.__exportStar(require("./protocol"), exports);
|
|
30
|
+
tslib_1.__exportStar(require("./today-variable-contribution"), exports);
|
|
31
|
+
tslib_1.__exportStar(require("./tomorrow-variable-contribution"), exports);
|
|
32
|
+
tslib_1.__exportStar(require("./variable-service"), exports);
|
|
33
|
+
tslib_1.__exportStar(require("./settings-service"), exports);
|
|
34
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/common/index.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,0DAAgC;AAChC,kDAAwB;AACxB,yEAA+C;AAC/C,4EAAkD;AAClD,qEAA2C;AAC3C,oEAA0C;AAC1C,gEAAsC;AACtC,2DAAiC;AACjC,2DAAiC;AACjC,gEAAsC;AACtC,qDAA2B;AAC3B,wEAA8C;AAC9C,2EAAiD;AACjD,6DAAmC;AACnC,6DAAmC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { CancellationToken } from '@theia/core';
|
|
2
|
+
import { LanguageModelMetaData, LanguageModelParsedResponse, LanguageModelRequest, LanguageModelStreamResponsePart, LanguageModelTextResponse } from './language-model';
|
|
3
|
+
export declare const LanguageModelDelegateClient: unique symbol;
|
|
4
|
+
export interface LanguageModelDelegateClient {
|
|
5
|
+
toolCall(requestId: string, toolId: string, args_string: string): Promise<unknown>;
|
|
6
|
+
send(id: string, token: LanguageModelStreamResponsePart | undefined): void;
|
|
7
|
+
}
|
|
8
|
+
export declare const LanguageModelRegistryFrontendDelegate: unique symbol;
|
|
9
|
+
export interface LanguageModelRegistryFrontendDelegate {
|
|
10
|
+
getLanguageModelDescriptions(): Promise<LanguageModelMetaData[]>;
|
|
11
|
+
}
|
|
12
|
+
export interface LanguageModelStreamResponseDelegate {
|
|
13
|
+
streamId: string;
|
|
14
|
+
}
|
|
15
|
+
export declare const isLanguageModelStreamResponseDelegate: (obj: unknown) => obj is LanguageModelStreamResponseDelegate;
|
|
16
|
+
export type LanguageModelResponseDelegate = LanguageModelTextResponse | LanguageModelParsedResponse | LanguageModelStreamResponseDelegate;
|
|
17
|
+
export declare const LanguageModelFrontendDelegate: unique symbol;
|
|
18
|
+
export interface LanguageModelFrontendDelegate {
|
|
19
|
+
cancel(requestId: string): void;
|
|
20
|
+
request(modelId: string, request: LanguageModelRequest, requestId: string, cancellationToken?: CancellationToken): Promise<LanguageModelResponseDelegate>;
|
|
21
|
+
}
|
|
22
|
+
export declare const languageModelRegistryDelegatePath = "/services/languageModelRegistryDelegatePath";
|
|
23
|
+
export declare const languageModelDelegatePath = "/services/languageModelDelegatePath";
|
|
24
|
+
//# sourceMappingURL=language-model-delegate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"language-model-delegate.d.ts","sourceRoot":"","sources":["../../src/common/language-model-delegate.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,2BAA2B,EAAE,oBAAoB,EAAE,+BAA+B,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAExK,eAAO,MAAM,2BAA2B,eAAwC,CAAC;AACjF,MAAM,WAAW,2BAA2B;IACxC,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACnF,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,+BAA+B,GAAG,SAAS,GAAG,IAAI,CAAC;CAC9E;AACD,eAAO,MAAM,qCAAqC,eAAkD,CAAC;AACrG,MAAM,WAAW,qCAAqC;IAClD,4BAA4B,IAAI,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAAC;CACpE;AAED,MAAM,WAAW,mCAAmC;IAChD,QAAQ,EAAE,MAAM,CAAC;CACpB;AACD,eAAO,MAAM,qCAAqC,QAAS,OAAO,+CACwD,CAAC;AAE3H,MAAM,MAAM,6BAA6B,GAAG,yBAAyB,GAAG,2BAA2B,GAAG,mCAAmC,CAAC;AAE1I,eAAO,MAAM,6BAA6B,eAA0C,CAAC;AACrF,MAAM,WAAW,6BAA6B;IAC1C,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,oBAAoB,EAAE,SAAS,EAAE,MAAM,EAAE,iBAAiB,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,6BAA6B,CAAC,CAAC;CAC7J;AAED,eAAO,MAAM,iCAAiC,gDAAgD,CAAC;AAC/F,eAAO,MAAM,yBAAyB,wCAAwC,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// *****************************************************************************
|
|
3
|
+
// Copyright (C) 2024 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.languageModelDelegatePath = exports.languageModelRegistryDelegatePath = exports.LanguageModelFrontendDelegate = exports.isLanguageModelStreamResponseDelegate = exports.LanguageModelRegistryFrontendDelegate = exports.LanguageModelDelegateClient = void 0;
|
|
19
|
+
exports.LanguageModelDelegateClient = Symbol('LanguageModelDelegateClient');
|
|
20
|
+
exports.LanguageModelRegistryFrontendDelegate = Symbol('LanguageModelRegistryFrontendDelegate');
|
|
21
|
+
const isLanguageModelStreamResponseDelegate = (obj) => !!(obj && typeof obj === 'object' && 'streamId' in obj && typeof obj.streamId === 'string');
|
|
22
|
+
exports.isLanguageModelStreamResponseDelegate = isLanguageModelStreamResponseDelegate;
|
|
23
|
+
exports.LanguageModelFrontendDelegate = Symbol('LanguageModelFrontendDelegate');
|
|
24
|
+
exports.languageModelRegistryDelegatePath = '/services/languageModelRegistryDelegatePath';
|
|
25
|
+
exports.languageModelDelegatePath = '/services/languageModelDelegatePath';
|
|
26
|
+
//# sourceMappingURL=language-model-delegate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"language-model-delegate.js","sourceRoot":"","sources":["../../src/common/language-model-delegate.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;;;AAKnE,QAAA,2BAA2B,GAAG,MAAM,CAAC,6BAA6B,CAAC,CAAC;AAKpE,QAAA,qCAAqC,GAAG,MAAM,CAAC,uCAAuC,CAAC,CAAC;AAQ9F,MAAM,qCAAqC,GAAG,CAAC,GAAY,EAA8C,EAAE,CAC9G,CAAC,CAAC,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,UAAU,IAAI,GAAG,IAAI,OAAQ,GAA6B,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC;AAD9G,QAAA,qCAAqC,yCACyE;AAI9G,QAAA,6BAA6B,GAAG,MAAM,CAAC,+BAA+B,CAAC,CAAC;AAMxE,QAAA,iCAAiC,GAAG,6CAA6C,CAAC;AAClF,QAAA,yBAAyB,GAAG,qCAAqC,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { LanguageModelResponse, ToolRequest } from './language-model';
|
|
2
|
+
export declare const getTextOfResponse: (response: LanguageModelResponse) => Promise<string>;
|
|
3
|
+
export declare const getJsonOfResponse: (response: LanguageModelResponse) => Promise<unknown>;
|
|
4
|
+
export declare const toolRequestToPromptText: (toolRequest: ToolRequest) => string;
|
|
5
|
+
//# sourceMappingURL=language-model-util.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"language-model-util.d.ts","sourceRoot":"","sources":["../../src/common/language-model-util.ts"],"names":[],"mappings":"AAgBA,OAAO,EAA8D,qBAAqB,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAElI,eAAO,MAAM,iBAAiB,aAAoB,qBAAqB,KAAG,QAAQ,MAAM,CAWvF,CAAC;AAEF,eAAO,MAAM,iBAAiB,aAAoB,qBAAqB,KAAG,QAAQ,OAAO,CAiBxF,CAAC;AACF,eAAO,MAAM,uBAAuB,gBAAiB,WAAW,KAAG,MAiBlE,CAAC"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// *****************************************************************************
|
|
3
|
+
// Copyright (C) 2024 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.toolRequestToPromptText = exports.getJsonOfResponse = exports.getTextOfResponse = void 0;
|
|
19
|
+
const language_model_1 = require("./language-model");
|
|
20
|
+
const getTextOfResponse = async (response) => {
|
|
21
|
+
var _a;
|
|
22
|
+
if ((0, language_model_1.isLanguageModelTextResponse)(response)) {
|
|
23
|
+
return response.text;
|
|
24
|
+
}
|
|
25
|
+
else if ((0, language_model_1.isLanguageModelStreamResponse)(response)) {
|
|
26
|
+
let result = '';
|
|
27
|
+
for await (const chunk of response.stream) {
|
|
28
|
+
result += (_a = chunk.content) !== null && _a !== void 0 ? _a : '';
|
|
29
|
+
}
|
|
30
|
+
return result;
|
|
31
|
+
}
|
|
32
|
+
throw new Error(`Invalid response type ${response}`);
|
|
33
|
+
};
|
|
34
|
+
exports.getTextOfResponse = getTextOfResponse;
|
|
35
|
+
const getJsonOfResponse = async (response) => {
|
|
36
|
+
const text = await (0, exports.getTextOfResponse)(response);
|
|
37
|
+
if (text.startsWith('```json')) {
|
|
38
|
+
const regex = /```json\s*([\s\S]*?)\s*```/g;
|
|
39
|
+
let match;
|
|
40
|
+
// eslint-disable-next-line no-null/no-null
|
|
41
|
+
while ((match = regex.exec(text)) !== null) {
|
|
42
|
+
try {
|
|
43
|
+
return JSON.parse(match[1]);
|
|
44
|
+
}
|
|
45
|
+
catch (error) {
|
|
46
|
+
console.error('Failed to parse JSON:', error);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
else if (text.startsWith('{') || text.startsWith('[')) {
|
|
51
|
+
return JSON.parse(text);
|
|
52
|
+
}
|
|
53
|
+
throw new Error('Invalid response format');
|
|
54
|
+
};
|
|
55
|
+
exports.getJsonOfResponse = getJsonOfResponse;
|
|
56
|
+
const toolRequestToPromptText = (toolRequest) => {
|
|
57
|
+
const parameters = toolRequest.parameters;
|
|
58
|
+
let paramsText = '';
|
|
59
|
+
// parameters are supposed to be as a JSON schema. Thus, derive the parameters from its properties definition
|
|
60
|
+
if (parameters) {
|
|
61
|
+
const properties = parameters.properties;
|
|
62
|
+
paramsText = Object.keys(properties)
|
|
63
|
+
.map(key => {
|
|
64
|
+
const param = properties[key];
|
|
65
|
+
return `${key}: ${param.type}`;
|
|
66
|
+
})
|
|
67
|
+
.join(', ');
|
|
68
|
+
}
|
|
69
|
+
const descriptionText = toolRequest.description
|
|
70
|
+
? `: ${toolRequest.description}`
|
|
71
|
+
: '';
|
|
72
|
+
return `You can call function: ${toolRequest.id}(${paramsText})${descriptionText}`;
|
|
73
|
+
};
|
|
74
|
+
exports.toolRequestToPromptText = toolRequestToPromptText;
|
|
75
|
+
//# sourceMappingURL=language-model-util.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"language-model-util.js","sourceRoot":"","sources":["../../src/common/language-model-util.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
import { ContributionProvider, ILogger, Event, Emitter, CancellationToken } from '@theia/core';
|
|
2
|
+
export type MessageActor = 'user' | 'ai' | 'system';
|
|
3
|
+
export interface LanguageModelRequestMessage {
|
|
4
|
+
actor: MessageActor;
|
|
5
|
+
type: 'text';
|
|
6
|
+
query: string;
|
|
7
|
+
}
|
|
8
|
+
export declare const isLanguageModelRequestMessage: (obj: unknown) => obj is LanguageModelRequestMessage;
|
|
9
|
+
export interface ToolRequest {
|
|
10
|
+
id: string;
|
|
11
|
+
name: string;
|
|
12
|
+
parameters?: {
|
|
13
|
+
type?: 'object';
|
|
14
|
+
properties: Record<string, {
|
|
15
|
+
type: string;
|
|
16
|
+
[key: string]: unknown;
|
|
17
|
+
}>;
|
|
18
|
+
};
|
|
19
|
+
description?: string;
|
|
20
|
+
handler: (arg_string: string) => Promise<unknown>;
|
|
21
|
+
}
|
|
22
|
+
export interface LanguageModelRequest {
|
|
23
|
+
messages: LanguageModelRequestMessage[];
|
|
24
|
+
tools?: ToolRequest[];
|
|
25
|
+
response_format?: {
|
|
26
|
+
type: 'text';
|
|
27
|
+
} | {
|
|
28
|
+
type: 'json_object';
|
|
29
|
+
} | ResponseFormatJsonSchema;
|
|
30
|
+
settings?: {
|
|
31
|
+
[key: string]: unknown;
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
export interface ResponseFormatJsonSchema {
|
|
35
|
+
type: 'json_schema';
|
|
36
|
+
json_schema: {
|
|
37
|
+
name: string;
|
|
38
|
+
description?: string;
|
|
39
|
+
schema?: Record<string, unknown>;
|
|
40
|
+
strict?: boolean | null;
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
export interface LanguageModelTextResponse {
|
|
44
|
+
text: string;
|
|
45
|
+
}
|
|
46
|
+
export declare const isLanguageModelTextResponse: (obj: unknown) => obj is LanguageModelTextResponse;
|
|
47
|
+
export interface LanguageModelStreamResponsePart {
|
|
48
|
+
content?: string | null;
|
|
49
|
+
tool_calls?: ToolCall[];
|
|
50
|
+
}
|
|
51
|
+
export interface ToolCall {
|
|
52
|
+
id?: string;
|
|
53
|
+
function?: {
|
|
54
|
+
arguments?: string;
|
|
55
|
+
name?: string;
|
|
56
|
+
};
|
|
57
|
+
finished?: boolean;
|
|
58
|
+
result?: string;
|
|
59
|
+
}
|
|
60
|
+
export interface LanguageModelStreamResponse {
|
|
61
|
+
stream: AsyncIterable<LanguageModelStreamResponsePart>;
|
|
62
|
+
}
|
|
63
|
+
export declare const isLanguageModelStreamResponse: (obj: unknown) => obj is LanguageModelStreamResponse;
|
|
64
|
+
export interface LanguageModelParsedResponse {
|
|
65
|
+
parsed: unknown;
|
|
66
|
+
content: string;
|
|
67
|
+
}
|
|
68
|
+
export declare const isLanguageModelParsedResponse: (obj: unknown) => obj is LanguageModelParsedResponse;
|
|
69
|
+
export type LanguageModelResponse = LanguageModelTextResponse | LanguageModelStreamResponse | LanguageModelParsedResponse;
|
|
70
|
+
export declare const LanguageModelProvider: unique symbol;
|
|
71
|
+
export type LanguageModelProvider = () => Promise<LanguageModel[]>;
|
|
72
|
+
export interface LanguageModelMetaData {
|
|
73
|
+
readonly id: string;
|
|
74
|
+
readonly name?: string;
|
|
75
|
+
readonly vendor?: string;
|
|
76
|
+
readonly version?: string;
|
|
77
|
+
readonly family?: string;
|
|
78
|
+
readonly maxInputTokens?: number;
|
|
79
|
+
readonly maxOutputTokens?: number;
|
|
80
|
+
}
|
|
81
|
+
export declare namespace LanguageModelMetaData {
|
|
82
|
+
function is(arg: unknown): arg is LanguageModelMetaData;
|
|
83
|
+
}
|
|
84
|
+
export interface LanguageModel extends LanguageModelMetaData {
|
|
85
|
+
request(request: LanguageModelRequest, cancellationToken?: CancellationToken): Promise<LanguageModelResponse>;
|
|
86
|
+
}
|
|
87
|
+
export declare namespace LanguageModel {
|
|
88
|
+
function is(arg: unknown): arg is LanguageModel;
|
|
89
|
+
}
|
|
90
|
+
interface VsCodeLanguageModelSelector {
|
|
91
|
+
readonly identifier?: string;
|
|
92
|
+
readonly name?: string;
|
|
93
|
+
readonly vendor?: string;
|
|
94
|
+
readonly version?: string;
|
|
95
|
+
readonly family?: string;
|
|
96
|
+
readonly tokens?: number;
|
|
97
|
+
}
|
|
98
|
+
export interface LanguageModelSelector extends VsCodeLanguageModelSelector {
|
|
99
|
+
readonly agent: string;
|
|
100
|
+
readonly purpose: string;
|
|
101
|
+
}
|
|
102
|
+
export type LanguageModelRequirement = Omit<LanguageModelSelector, 'agent'>;
|
|
103
|
+
export declare const LanguageModelRegistry: unique symbol;
|
|
104
|
+
export interface LanguageModelRegistry {
|
|
105
|
+
onChange: Event<{
|
|
106
|
+
models: LanguageModel[];
|
|
107
|
+
}>;
|
|
108
|
+
addLanguageModels(models: LanguageModel[]): void;
|
|
109
|
+
getLanguageModels(): Promise<LanguageModel[]>;
|
|
110
|
+
getLanguageModel(id: string): Promise<LanguageModel | undefined>;
|
|
111
|
+
removeLanguageModels(id: string[]): void;
|
|
112
|
+
selectLanguageModel(request: LanguageModelSelector): Promise<LanguageModel | undefined>;
|
|
113
|
+
selectLanguageModels(request: LanguageModelSelector): Promise<LanguageModel[]>;
|
|
114
|
+
}
|
|
115
|
+
export declare class DefaultLanguageModelRegistryImpl implements LanguageModelRegistry {
|
|
116
|
+
protected logger: ILogger;
|
|
117
|
+
protected readonly languageModelContributions: ContributionProvider<LanguageModelProvider>;
|
|
118
|
+
protected languageModels: LanguageModel[];
|
|
119
|
+
protected markInitialized: () => void;
|
|
120
|
+
protected initialized: Promise<void>;
|
|
121
|
+
protected changeEmitter: Emitter<{
|
|
122
|
+
models: LanguageModel[];
|
|
123
|
+
}>;
|
|
124
|
+
onChange: Event<{
|
|
125
|
+
models: LanguageModel[];
|
|
126
|
+
}>;
|
|
127
|
+
protected init(): void;
|
|
128
|
+
addLanguageModels(models: LanguageModel[]): void;
|
|
129
|
+
getLanguageModels(): Promise<LanguageModel[]>;
|
|
130
|
+
getLanguageModel(id: string): Promise<LanguageModel | undefined>;
|
|
131
|
+
removeLanguageModels(ids: string[]): void;
|
|
132
|
+
selectLanguageModels(request: LanguageModelSelector): Promise<LanguageModel[]>;
|
|
133
|
+
selectLanguageModel(request: LanguageModelSelector): Promise<LanguageModel | undefined>;
|
|
134
|
+
}
|
|
135
|
+
export declare function isModelMatching(request: LanguageModelSelector, model: LanguageModel): boolean;
|
|
136
|
+
export {};
|
|
137
|
+
//# sourceMappingURL=language-model.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"language-model.d.ts","sourceRoot":"","sources":["../../src/common/language-model.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// *****************************************************************************
|
|
3
|
+
// Copyright (C) 2024 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.isModelMatching = exports.DefaultLanguageModelRegistryImpl = exports.LanguageModelRegistry = exports.LanguageModel = exports.LanguageModelMetaData = exports.LanguageModelProvider = exports.isLanguageModelParsedResponse = exports.isLanguageModelStreamResponse = exports.isLanguageModelTextResponse = exports.isLanguageModelRequestMessage = void 0;
|
|
19
|
+
const tslib_1 = require("tslib");
|
|
20
|
+
const core_1 = require("@theia/core");
|
|
21
|
+
const inversify_1 = require("@theia/core/shared/inversify");
|
|
22
|
+
const isLanguageModelRequestMessage = (obj) => !!(obj && typeof obj === 'object' &&
|
|
23
|
+
'type' in obj &&
|
|
24
|
+
typeof obj.type === 'string' &&
|
|
25
|
+
obj.type === 'text' &&
|
|
26
|
+
'query' in obj &&
|
|
27
|
+
typeof obj.query === 'string');
|
|
28
|
+
exports.isLanguageModelRequestMessage = isLanguageModelRequestMessage;
|
|
29
|
+
const isLanguageModelTextResponse = (obj) => !!(obj && typeof obj === 'object' && 'text' in obj && typeof obj.text === 'string');
|
|
30
|
+
exports.isLanguageModelTextResponse = isLanguageModelTextResponse;
|
|
31
|
+
const isLanguageModelStreamResponse = (obj) => !!(obj && typeof obj === 'object' && 'stream' in obj);
|
|
32
|
+
exports.isLanguageModelStreamResponse = isLanguageModelStreamResponse;
|
|
33
|
+
const isLanguageModelParsedResponse = (obj) => !!(obj && typeof obj === 'object' && 'parsed' in obj && 'content' in obj);
|
|
34
|
+
exports.isLanguageModelParsedResponse = isLanguageModelParsedResponse;
|
|
35
|
+
///////////////////////////////////////////
|
|
36
|
+
// Language Model Provider
|
|
37
|
+
///////////////////////////////////////////
|
|
38
|
+
exports.LanguageModelProvider = Symbol('LanguageModelProvider');
|
|
39
|
+
var LanguageModelMetaData;
|
|
40
|
+
(function (LanguageModelMetaData) {
|
|
41
|
+
function is(arg) {
|
|
42
|
+
return (0, core_1.isObject)(arg) && 'id' in arg;
|
|
43
|
+
}
|
|
44
|
+
LanguageModelMetaData.is = is;
|
|
45
|
+
})(LanguageModelMetaData || (exports.LanguageModelMetaData = LanguageModelMetaData = {}));
|
|
46
|
+
var LanguageModel;
|
|
47
|
+
(function (LanguageModel) {
|
|
48
|
+
function is(arg) {
|
|
49
|
+
return (0, core_1.isObject)(arg) && 'id' in arg && (0, core_1.isFunction)(arg.request);
|
|
50
|
+
}
|
|
51
|
+
LanguageModel.is = is;
|
|
52
|
+
})(LanguageModel || (exports.LanguageModel = LanguageModel = {}));
|
|
53
|
+
exports.LanguageModelRegistry = Symbol('LanguageModelRegistry');
|
|
54
|
+
let DefaultLanguageModelRegistryImpl = class DefaultLanguageModelRegistryImpl {
|
|
55
|
+
constructor() {
|
|
56
|
+
this.languageModels = [];
|
|
57
|
+
this.initialized = new Promise(resolve => { this.markInitialized = resolve; });
|
|
58
|
+
this.changeEmitter = new core_1.Emitter();
|
|
59
|
+
this.onChange = this.changeEmitter.event;
|
|
60
|
+
}
|
|
61
|
+
init() {
|
|
62
|
+
const contributions = this.languageModelContributions.getContributions();
|
|
63
|
+
const promises = contributions.map(provider => provider());
|
|
64
|
+
Promise.allSettled(promises).then(results => {
|
|
65
|
+
for (const result of results) {
|
|
66
|
+
if (result.status === 'fulfilled') {
|
|
67
|
+
this.languageModels.push(...result.value);
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
this.logger.error('Failed to add some language models:', result.reason);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
this.markInitialized();
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
addLanguageModels(models) {
|
|
77
|
+
models.forEach(model => {
|
|
78
|
+
if (this.languageModels.find(lm => lm.id === model.id)) {
|
|
79
|
+
console.warn(`Tried to add already existing language model with id ${model.id}. The new model will be ignored.`);
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
this.languageModels.push(model);
|
|
83
|
+
this.changeEmitter.fire({ models: this.languageModels });
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
async getLanguageModels() {
|
|
87
|
+
await this.initialized;
|
|
88
|
+
return this.languageModels;
|
|
89
|
+
}
|
|
90
|
+
async getLanguageModel(id) {
|
|
91
|
+
await this.initialized;
|
|
92
|
+
return this.languageModels.find(model => model.id === id);
|
|
93
|
+
}
|
|
94
|
+
removeLanguageModels(ids) {
|
|
95
|
+
ids.forEach(id => {
|
|
96
|
+
const index = this.languageModels.findIndex(model => model.id === id);
|
|
97
|
+
if (index !== -1) {
|
|
98
|
+
this.languageModels.splice(index, 1);
|
|
99
|
+
this.changeEmitter.fire({ models: this.languageModels });
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
console.warn(`Language model with id ${id} was requested to be removed, however it does not exist`);
|
|
103
|
+
}
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
async selectLanguageModels(request) {
|
|
107
|
+
await this.initialized;
|
|
108
|
+
// TODO check for actor and purpose against settings
|
|
109
|
+
return this.languageModels.filter(model => isModelMatching(request, model));
|
|
110
|
+
}
|
|
111
|
+
async selectLanguageModel(request) {
|
|
112
|
+
return (await this.selectLanguageModels(request))[0];
|
|
113
|
+
}
|
|
114
|
+
};
|
|
115
|
+
exports.DefaultLanguageModelRegistryImpl = DefaultLanguageModelRegistryImpl;
|
|
116
|
+
tslib_1.__decorate([
|
|
117
|
+
(0, inversify_1.inject)(core_1.ILogger),
|
|
118
|
+
tslib_1.__metadata("design:type", Object)
|
|
119
|
+
], DefaultLanguageModelRegistryImpl.prototype, "logger", void 0);
|
|
120
|
+
tslib_1.__decorate([
|
|
121
|
+
(0, inversify_1.inject)(core_1.ContributionProvider),
|
|
122
|
+
(0, inversify_1.named)(exports.LanguageModelProvider),
|
|
123
|
+
tslib_1.__metadata("design:type", Object)
|
|
124
|
+
], DefaultLanguageModelRegistryImpl.prototype, "languageModelContributions", void 0);
|
|
125
|
+
tslib_1.__decorate([
|
|
126
|
+
(0, inversify_1.postConstruct)(),
|
|
127
|
+
tslib_1.__metadata("design:type", Function),
|
|
128
|
+
tslib_1.__metadata("design:paramtypes", []),
|
|
129
|
+
tslib_1.__metadata("design:returntype", void 0)
|
|
130
|
+
], DefaultLanguageModelRegistryImpl.prototype, "init", null);
|
|
131
|
+
exports.DefaultLanguageModelRegistryImpl = DefaultLanguageModelRegistryImpl = tslib_1.__decorate([
|
|
132
|
+
(0, inversify_1.injectable)()
|
|
133
|
+
], DefaultLanguageModelRegistryImpl);
|
|
134
|
+
function isModelMatching(request, model) {
|
|
135
|
+
return (!request.identifier || model.id === request.identifier) &&
|
|
136
|
+
(!request.name || model.name === request.name) &&
|
|
137
|
+
(!request.vendor || model.vendor === request.vendor) &&
|
|
138
|
+
(!request.version || model.version === request.version) &&
|
|
139
|
+
(!request.family || model.family === request.family);
|
|
140
|
+
}
|
|
141
|
+
exports.isModelMatching = isModelMatching;
|
|
142
|
+
//# sourceMappingURL=language-model.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"language-model.js","sourceRoot":"","sources":["../../src/common/language-model.ts"],"names":[],"mappings":"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"}
|