@theia/ai-core 1.46.0-next.241
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 +31 -0
- package/data/prompttemplate.tmLanguage.json +107 -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 +28 -0
- package/lib/browser/ai-configuration/agent-configuration-widget.d.ts.map +1 -0
- package/lib/browser/ai-configuration/agent-configuration-widget.js +242 -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 +13 -0
- package/lib/browser/ai-configuration/template-settings-renderer.d.ts.map +1 -0
- package/lib/browser/ai-configuration/template-settings-renderer.js +71 -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 +10 -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 +29 -0
- package/lib/browser/ai-core-preferences.d.ts.map +1 -0
- package/lib/browser/ai-core-preferences.js +98 -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 +33 -0
- package/lib/browser/frontend-prompt-customization-service.d.ts.map +1 -0
- package/lib/browser/frontend-prompt-customization-service.js +237 -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 +29 -0
- package/lib/browser/prompttemplate-contribution.d.ts.map +1 -0
- package/lib/browser/prompttemplate-contribution.js +208 -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 +66 -0
- package/lib/common/agent-service.d.ts.map +1 -0
- package/lib/common/agent-service.js +92 -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 +29 -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 +16 -0
- package/lib/common/language-model-util.d.ts.map +1 -0
- package/lib/common/language-model-util.js +92 -0
- package/lib/common/language-model-util.js.map +1 -0
- package/lib/common/language-model.d.ts +144 -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 +8 -0
- package/lib/common/prompt-service-util.d.ts.map +1 -0
- package/lib/common/prompt-service-util.js +34 -0
- package/lib/common/prompt-service-util.js.map +1 -0
- package/lib/common/prompt-service.d.ts +161 -0
- package/lib/common/prompt-service.d.ts.map +1 -0
- package/lib/common/prompt-service.js +204 -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 +254 -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 +23 -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 +61 -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 +324 -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 +128 -0
- package/src/browser/ai-configuration/variable-configuration-widget.tsx +110 -0
- package/src/browser/ai-core-frontend-application-contribution.ts +39 -0
- package/src/browser/ai-core-frontend-module.ts +161 -0
- package/src/browser/ai-core-preferences.ts +115 -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 +243 -0
- package/src/browser/frontend-variable-service.ts +26 -0
- package/src/browser/index.ts +26 -0
- package/src/browser/prompttemplate-contribution.ts +252 -0
- package/src/browser/style/index.css +127 -0
- package/src/browser/theia-variable-contribution.ts +58 -0
- package/src/common/agent-service.ts +137 -0
- package/src/common/agent.ts +70 -0
- package/src/common/agents-variable-contribution.ts +64 -0
- package/src/common/communication-recording-service.ts +53 -0
- package/src/common/index.ts +30 -0
- package/src/common/language-model-delegate.ts +45 -0
- package/src/common/language-model-util.ts +84 -0
- package/src/common/language-model.spec.ts +86 -0
- package/src/common/language-model.ts +242 -0
- package/src/common/prompt-service-util.ts +31 -0
- package/src/common/prompt-service.spec.ts +301 -0
- package/src/common/prompt-service.ts +334 -0
- package/src/common/protocol.ts +23 -0
- package/src/common/settings-service.ts +38 -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,72 @@
|
|
|
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.ToolInvocationRegistryImpl = exports.ToolProvider = exports.ToolInvocationRegistry = void 0;
|
|
19
|
+
const tslib_1 = require("tslib");
|
|
20
|
+
const inversify_1 = require("@theia/core/shared/inversify");
|
|
21
|
+
const core_1 = require("@theia/core");
|
|
22
|
+
exports.ToolInvocationRegistry = Symbol('ToolInvocationRegistry');
|
|
23
|
+
exports.ToolProvider = Symbol('ToolProvider');
|
|
24
|
+
let ToolInvocationRegistryImpl = class ToolInvocationRegistryImpl {
|
|
25
|
+
constructor() {
|
|
26
|
+
this.tools = new Map();
|
|
27
|
+
}
|
|
28
|
+
init() {
|
|
29
|
+
this.providers.getContributions().forEach(provider => {
|
|
30
|
+
this.registerTool(provider.getTool());
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
registerTool(tool) {
|
|
34
|
+
if (this.tools.has(tool.id)) {
|
|
35
|
+
console.warn(`Function with id ${tool.id} is already registered.`);
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
this.tools.set(tool.id, tool);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
getFunction(toolId) {
|
|
42
|
+
return this.tools.get(toolId);
|
|
43
|
+
}
|
|
44
|
+
getFunctions(...toolIds) {
|
|
45
|
+
const tools = toolIds.map(toolId => {
|
|
46
|
+
const tool = this.tools.get(toolId);
|
|
47
|
+
if (tool) {
|
|
48
|
+
return tool;
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
throw new Error(`Function with id ${toolId} does not exist.`);
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
return tools;
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
exports.ToolInvocationRegistryImpl = ToolInvocationRegistryImpl;
|
|
58
|
+
tslib_1.__decorate([
|
|
59
|
+
(0, inversify_1.inject)(core_1.ContributionProvider),
|
|
60
|
+
(0, inversify_1.named)(exports.ToolProvider),
|
|
61
|
+
tslib_1.__metadata("design:type", Object)
|
|
62
|
+
], ToolInvocationRegistryImpl.prototype, "providers", void 0);
|
|
63
|
+
tslib_1.__decorate([
|
|
64
|
+
(0, inversify_1.postConstruct)(),
|
|
65
|
+
tslib_1.__metadata("design:type", Function),
|
|
66
|
+
tslib_1.__metadata("design:paramtypes", []),
|
|
67
|
+
tslib_1.__metadata("design:returntype", void 0)
|
|
68
|
+
], ToolInvocationRegistryImpl.prototype, "init", null);
|
|
69
|
+
exports.ToolInvocationRegistryImpl = ToolInvocationRegistryImpl = tslib_1.__decorate([
|
|
70
|
+
(0, inversify_1.injectable)()
|
|
71
|
+
], ToolInvocationRegistryImpl);
|
|
72
|
+
//# sourceMappingURL=tool-invocation-registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-invocation-registry.js","sourceRoot":"","sources":["../../src/common/tool-invocation-registry.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,4DAAwF;AAExF,sCAAmD;AAEtC,QAAA,sBAAsB,GAAG,MAAM,CAAC,wBAAwB,CAAC,CAAC;AAa1D,QAAA,YAAY,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;AAM5C,IAAM,0BAA0B,GAAhC,MAAM,0BAA0B;IAAhC;QAEK,UAAK,GAA6B,IAAI,GAAG,EAAuB,CAAC;IAoC7E,CAAC;IA7BG,IAAI;QACA,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;YACjD,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;IACP,CAAC;IAED,YAAY,CAAC,IAAiB;QAC1B,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;YAC1B,OAAO,CAAC,IAAI,CAAC,oBAAoB,IAAI,CAAC,EAAE,yBAAyB,CAAC,CAAC;QACvE,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAClC,CAAC;IACL,CAAC;IAED,WAAW,CAAC,MAAc;QACtB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAClC,CAAC;IAED,YAAY,CAAC,GAAG,OAAiB;QAC7B,MAAM,KAAK,GAAkB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;YAC9C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACpC,IAAI,IAAI,EAAE,CAAC;gBACP,OAAO,IAAI,CAAC;YAChB,CAAC;iBAAM,CAAC;gBACJ,MAAM,IAAI,KAAK,CAAC,oBAAoB,MAAM,kBAAkB,CAAC,CAAC;YAClE,CAAC;QACL,CAAC,CAAC,CAAC;QACH,OAAO,KAAK,CAAC;IACjB,CAAC;CACJ,CAAA;AAtCY,gEAA0B;AAM3B;IAFP,IAAA,kBAAM,EAAC,2BAAoB,CAAC;IAC5B,IAAA,iBAAK,EAAC,oBAAY,CAAC;;6DACkC;AAGtD;IADC,IAAA,yBAAa,GAAE;;;;sDAKf;qCAbQ,0BAA0B;IADtC,IAAA,sBAAU,GAAE;GACA,0BAA0B,CAsCtC"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { ContributionProvider, Disposable, Emitter, ILogger, MaybePromise, Event } from '@theia/core';
|
|
2
|
+
export interface AIVariable {
|
|
3
|
+
/** provider id */
|
|
4
|
+
id: string;
|
|
5
|
+
/** variable name */
|
|
6
|
+
name: string;
|
|
7
|
+
/** variable description */
|
|
8
|
+
description: string;
|
|
9
|
+
args?: AIVariableDescription[];
|
|
10
|
+
}
|
|
11
|
+
export interface AIVariableDescription {
|
|
12
|
+
name: string;
|
|
13
|
+
description: string;
|
|
14
|
+
}
|
|
15
|
+
export interface ResolvedAIVariable {
|
|
16
|
+
variable: AIVariable;
|
|
17
|
+
value: string;
|
|
18
|
+
}
|
|
19
|
+
export interface AIVariableResolutionRequest {
|
|
20
|
+
variable: AIVariable;
|
|
21
|
+
arg?: string;
|
|
22
|
+
}
|
|
23
|
+
export interface AIVariableContext {
|
|
24
|
+
}
|
|
25
|
+
export type AIVariableArg = string | {
|
|
26
|
+
variable: string;
|
|
27
|
+
arg?: string;
|
|
28
|
+
} | AIVariableResolutionRequest;
|
|
29
|
+
export interface AIVariableResolver {
|
|
30
|
+
canResolve(request: AIVariableResolutionRequest, context: AIVariableContext): MaybePromise<number>;
|
|
31
|
+
resolve(request: AIVariableResolutionRequest, context: AIVariableContext): Promise<ResolvedAIVariable | undefined>;
|
|
32
|
+
}
|
|
33
|
+
export declare const AIVariableService: unique symbol;
|
|
34
|
+
export interface AIVariableService {
|
|
35
|
+
hasVariable(name: string): boolean;
|
|
36
|
+
getVariable(name: string): Readonly<AIVariable> | undefined;
|
|
37
|
+
getVariables(): Readonly<AIVariable>[];
|
|
38
|
+
unregisterVariable(name: string): void;
|
|
39
|
+
readonly onDidChangeVariables: Event<void>;
|
|
40
|
+
registerResolver(variable: AIVariable, resolver: AIVariableResolver): Disposable;
|
|
41
|
+
unregisterResolver(variable: AIVariable, resolver: AIVariableResolver): void;
|
|
42
|
+
getResolver(name: string, arg: string | undefined, context: AIVariableContext): Promise<AIVariableResolver | undefined>;
|
|
43
|
+
resolveVariable(variable: AIVariableArg, context: AIVariableContext): Promise<ResolvedAIVariable | undefined>;
|
|
44
|
+
}
|
|
45
|
+
export declare const AIVariableContribution: unique symbol;
|
|
46
|
+
export interface AIVariableContribution {
|
|
47
|
+
registerVariables(service: AIVariableService): void;
|
|
48
|
+
}
|
|
49
|
+
export declare class DefaultAIVariableService implements AIVariableService {
|
|
50
|
+
protected readonly contributionProvider: ContributionProvider<AIVariableContribution>;
|
|
51
|
+
protected variables: Map<string, AIVariable>;
|
|
52
|
+
protected resolvers: Map<string, AIVariableResolver[]>;
|
|
53
|
+
protected readonly onDidChangeVariablesEmitter: Emitter<void>;
|
|
54
|
+
readonly onDidChangeVariables: Event<void>;
|
|
55
|
+
protected logger: ILogger;
|
|
56
|
+
constructor(contributionProvider: ContributionProvider<AIVariableContribution>);
|
|
57
|
+
protected initContributions(): void;
|
|
58
|
+
protected getKey(name: string): string;
|
|
59
|
+
getResolver(name: string, arg: string | undefined, context: AIVariableContext): Promise<AIVariableResolver | undefined>;
|
|
60
|
+
protected getResolvers(name: string): AIVariableResolver[];
|
|
61
|
+
protected prioritize(name: string, arg: string | undefined, context: AIVariableContext): Promise<AIVariableResolver[]>;
|
|
62
|
+
hasVariable(name: string): boolean;
|
|
63
|
+
getVariable(name: string): Readonly<AIVariable> | undefined;
|
|
64
|
+
getVariables(): Readonly<AIVariable>[];
|
|
65
|
+
registerResolver(variable: AIVariable, resolver: AIVariableResolver): Disposable;
|
|
66
|
+
unregisterResolver(variable: AIVariable, resolver: AIVariableResolver): void;
|
|
67
|
+
unregisterVariable(name: string): void;
|
|
68
|
+
resolveVariable(request: AIVariableArg, context: AIVariableContext): Promise<ResolvedAIVariable | undefined>;
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=variable-service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"variable-service.d.ts","sourceRoot":"","sources":["../../src/common/variable-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,122 @@
|
|
|
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
|
+
/*---------------------------------------------------------------------------------------------
|
|
18
|
+
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
19
|
+
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
20
|
+
*--------------------------------------------------------------------------------------------*/
|
|
21
|
+
// Partially copied from https://github.com/microsoft/vscode/blob/a2cab7255c0df424027be05d58e1b7b941f4ea60/src/vs/workbench/contrib/chat/common/chatVariables.ts
|
|
22
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
23
|
+
exports.DefaultAIVariableService = exports.AIVariableContribution = exports.AIVariableService = void 0;
|
|
24
|
+
const tslib_1 = require("tslib");
|
|
25
|
+
const core_1 = require("@theia/core");
|
|
26
|
+
const inversify_1 = require("@theia/core/shared/inversify");
|
|
27
|
+
exports.AIVariableService = Symbol('AIVariableService');
|
|
28
|
+
exports.AIVariableContribution = Symbol('AIVariableContribution');
|
|
29
|
+
let DefaultAIVariableService = class DefaultAIVariableService {
|
|
30
|
+
constructor(contributionProvider) {
|
|
31
|
+
this.contributionProvider = contributionProvider;
|
|
32
|
+
this.variables = new Map();
|
|
33
|
+
this.resolvers = new Map();
|
|
34
|
+
this.onDidChangeVariablesEmitter = new core_1.Emitter();
|
|
35
|
+
this.onDidChangeVariables = this.onDidChangeVariablesEmitter.event;
|
|
36
|
+
}
|
|
37
|
+
initContributions() {
|
|
38
|
+
this.contributionProvider.getContributions().forEach(contribution => contribution.registerVariables(this));
|
|
39
|
+
}
|
|
40
|
+
getKey(name) {
|
|
41
|
+
return `${name.toLowerCase()}`;
|
|
42
|
+
}
|
|
43
|
+
async getResolver(name, arg, context) {
|
|
44
|
+
const resolvers = await this.prioritize(name, arg, context);
|
|
45
|
+
return resolvers[0];
|
|
46
|
+
}
|
|
47
|
+
getResolvers(name) {
|
|
48
|
+
var _a;
|
|
49
|
+
return (_a = this.resolvers.get(this.getKey(name))) !== null && _a !== void 0 ? _a : [];
|
|
50
|
+
}
|
|
51
|
+
async prioritize(name, arg, context) {
|
|
52
|
+
const variable = this.getVariable(name);
|
|
53
|
+
if (!variable) {
|
|
54
|
+
return [];
|
|
55
|
+
}
|
|
56
|
+
const prioritized = await core_1.Prioritizeable.prioritizeAll(this.getResolvers(name), async (resolver) => {
|
|
57
|
+
try {
|
|
58
|
+
return await resolver.canResolve({ variable, arg }, context);
|
|
59
|
+
}
|
|
60
|
+
catch {
|
|
61
|
+
return 0;
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
return prioritized.map(p => p.value);
|
|
65
|
+
}
|
|
66
|
+
hasVariable(name) {
|
|
67
|
+
return !!this.getVariable(name);
|
|
68
|
+
}
|
|
69
|
+
getVariable(name) {
|
|
70
|
+
return this.variables.get(this.getKey(name));
|
|
71
|
+
}
|
|
72
|
+
getVariables() {
|
|
73
|
+
return [...this.variables.values()];
|
|
74
|
+
}
|
|
75
|
+
registerResolver(variable, resolver) {
|
|
76
|
+
var _a;
|
|
77
|
+
const key = this.getKey(variable.name);
|
|
78
|
+
if (!this.variables.get(key)) {
|
|
79
|
+
this.variables.set(key, variable);
|
|
80
|
+
this.onDidChangeVariablesEmitter.fire();
|
|
81
|
+
}
|
|
82
|
+
const resolvers = (_a = this.resolvers.get(key)) !== null && _a !== void 0 ? _a : [];
|
|
83
|
+
resolvers.push(resolver);
|
|
84
|
+
this.resolvers.set(key, resolvers);
|
|
85
|
+
return core_1.Disposable.create(() => this.unregisterResolver(variable, resolver));
|
|
86
|
+
}
|
|
87
|
+
unregisterResolver(variable, resolver) {
|
|
88
|
+
const key = this.getKey(variable.name);
|
|
89
|
+
const registeredResolvers = this.resolvers.get(key);
|
|
90
|
+
registeredResolvers === null || registeredResolvers === void 0 ? void 0 : registeredResolvers.splice(registeredResolvers.indexOf(resolver), 1);
|
|
91
|
+
if ((registeredResolvers === null || registeredResolvers === void 0 ? void 0 : registeredResolvers.length) === 0) {
|
|
92
|
+
this.unregisterVariable(variable.name);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
unregisterVariable(name) {
|
|
96
|
+
this.variables.delete(this.getKey(name));
|
|
97
|
+
this.resolvers.delete(this.getKey(name));
|
|
98
|
+
this.onDidChangeVariablesEmitter.fire();
|
|
99
|
+
}
|
|
100
|
+
async resolveVariable(request, context) {
|
|
101
|
+
const variableName = typeof request === 'string' ? request : typeof request.variable === 'string' ? request.variable : request.variable.name;
|
|
102
|
+
const variable = this.getVariable(variableName);
|
|
103
|
+
if (!variable) {
|
|
104
|
+
return undefined;
|
|
105
|
+
}
|
|
106
|
+
const arg = typeof request === 'string' ? undefined : request.arg;
|
|
107
|
+
const resolver = await this.getResolver(variableName, arg, context);
|
|
108
|
+
return resolver === null || resolver === void 0 ? void 0 : resolver.resolve({ variable, arg }, context);
|
|
109
|
+
}
|
|
110
|
+
};
|
|
111
|
+
exports.DefaultAIVariableService = DefaultAIVariableService;
|
|
112
|
+
tslib_1.__decorate([
|
|
113
|
+
(0, inversify_1.inject)(core_1.ILogger),
|
|
114
|
+
tslib_1.__metadata("design:type", Object)
|
|
115
|
+
], DefaultAIVariableService.prototype, "logger", void 0);
|
|
116
|
+
exports.DefaultAIVariableService = DefaultAIVariableService = tslib_1.__decorate([
|
|
117
|
+
(0, inversify_1.injectable)(),
|
|
118
|
+
tslib_1.__param(0, (0, inversify_1.inject)(core_1.ContributionProvider)),
|
|
119
|
+
tslib_1.__param(0, (0, inversify_1.named)(exports.AIVariableContribution)),
|
|
120
|
+
tslib_1.__metadata("design:paramtypes", [Object])
|
|
121
|
+
], DefaultAIVariableService);
|
|
122
|
+
//# sourceMappingURL=variable-service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"variable-service.js","sourceRoot":"","sources":["../../src/common/variable-service.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;AAChF;;;gGAGgG;AAChG,gKAAgK;;;;AAEhK,sCAAsH;AACtH,4DAAyE;AAqC5D,QAAA,iBAAiB,GAAG,MAAM,CAAC,mBAAmB,CAAC,CAAC;AAehD,QAAA,sBAAsB,GAAG,MAAM,CAAC,wBAAwB,CAAC,CAAC;AAMhE,IAAM,wBAAwB,GAA9B,MAAM,wBAAwB;IASjC,YAEI,oBAAqF;QAAlE,yBAAoB,GAApB,oBAAoB,CAA8C;QAV/E,cAAS,GAAG,IAAI,GAAG,EAAsB,CAAC;QAC1C,cAAS,GAAG,IAAI,GAAG,EAAgC,CAAC;QAE3C,gCAA2B,GAAG,IAAI,cAAO,EAAQ,CAAC;QAC5D,yBAAoB,GAAgB,IAAI,CAAC,2BAA2B,CAAC,KAAK,CAAC;IAQpF,CAAC;IAES,iBAAiB;QACvB,IAAI,CAAC,oBAAoB,CAAC,gBAAgB,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,YAAY,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;IAC/G,CAAC;IAES,MAAM,CAAC,IAAY;QACzB,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,IAAY,EAAE,GAAuB,EAAE,OAA0B;QAC/E,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;QAC5D,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC;IACxB,CAAC;IAES,YAAY,CAAC,IAAY;;QAC/B,OAAO,MAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,mCAAI,EAAE,CAAC;IACvD,CAAC;IAES,KAAK,CAAC,UAAU,CAAC,IAAY,EAAE,GAAuB,EAAE,OAA0B;QACxF,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACZ,OAAO,EAAE,CAAC;QACd,CAAC;QACD,MAAM,WAAW,GAAG,MAAM,qBAAc,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,KAAK,EAAC,QAAQ,EAAC,EAAE;YAC7F,IAAI,CAAC;gBACD,OAAO,MAAM,QAAQ,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC;YACjE,CAAC;YAAC,MAAM,CAAC;gBACL,OAAO,CAAC,CAAC;YACb,CAAC;QACL,CAAC,CAAC,CAAC;QACH,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACzC,CAAC;IAED,WAAW,CAAC,IAAY;QACpB,OAAO,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAED,WAAW,CAAC,IAAY;QACpB,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IACjD,CAAC;IAED,YAAY;QACR,OAAO,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;IACxC,CAAC;IAED,gBAAgB,CAAC,QAAoB,EAAE,QAA4B;;QAC/D,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAC3B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;YAClC,IAAI,CAAC,2BAA2B,CAAC,IAAI,EAAE,CAAC;QAC5C,CAAC;QACD,MAAM,SAAS,GAAG,MAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,mCAAI,EAAE,CAAC;QAChD,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACzB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QACnC,OAAO,iBAAU,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;IAChF,CAAC;IAED,kBAAkB,CAAC,QAAoB,EAAE,QAA4B;QACjE,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACvC,MAAM,mBAAmB,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACpD,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,CAAE,MAAM,CAAC,mBAAmB,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;QACtE,IAAI,CAAA,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,CAAE,MAAM,MAAK,CAAC,EAAE,CAAC;YACpC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC3C,CAAC;IACL,CAAC;IAED,kBAAkB,CAAC,IAAY;QAC3B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC,2BAA2B,CAAC,IAAI,EAAE,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,OAAsB,EAAE,OAA0B;QACpE,MAAM,YAAY,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;QAC7I,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QAChD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACZ,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,MAAM,GAAG,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC;QAClE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;QACpE,OAAO,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,OAAO,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC;IACzD,CAAC;CACJ,CAAA;AAhGY,4DAAwB;AAON;IAA1B,IAAA,kBAAM,EAAC,cAAO,CAAC;;wDAA2B;mCAPlC,wBAAwB;IADpC,IAAA,sBAAU,GAAE;IAWJ,mBAAA,IAAA,kBAAM,EAAC,2BAAoB,CAAC,CAAA;IAAE,mBAAA,IAAA,iBAAK,EAAC,8BAAsB,CAAC,CAAA;;GAVvD,wBAAwB,CAgGpC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ai-core-backend-module.d.ts","sourceRoot":"","sources":["../../src/node/ai-core-backend-module.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;;AAwB/D,wBA2CG"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
// *****************************************************************************
|
|
4
|
+
// Copyright (C) 2024 EclipseSource GmbH.
|
|
5
|
+
//
|
|
6
|
+
// This program and the accompanying materials are made available under the
|
|
7
|
+
// terms of the Eclipse Public License v. 2.0 which is available at
|
|
8
|
+
// http://www.eclipse.org/legal/epl-2.0.
|
|
9
|
+
//
|
|
10
|
+
// This Source Code may also be made available under the following Secondary
|
|
11
|
+
// Licenses when the conditions for such availability set forth in the Eclipse
|
|
12
|
+
// Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
13
|
+
// with the GNU Classpath Exception which is available at
|
|
14
|
+
// https://www.gnu.org/software/classpath/license.html.
|
|
15
|
+
//
|
|
16
|
+
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
17
|
+
// *****************************************************************************
|
|
18
|
+
const inversify_1 = require("@theia/core/shared/inversify");
|
|
19
|
+
const language_model_frontend_delegate_1 = require("./language-model-frontend-delegate");
|
|
20
|
+
const core_1 = require("@theia/core");
|
|
21
|
+
const common_1 = require("../common");
|
|
22
|
+
const backend_language_model_registry_1 = require("./backend-language-model-registry");
|
|
23
|
+
exports.default = new inversify_1.ContainerModule(bind => {
|
|
24
|
+
(0, core_1.bindContributionProvider)(bind, common_1.LanguageModelProvider);
|
|
25
|
+
bind(backend_language_model_registry_1.BackendLanguageModelRegistry).toSelf().inSingletonScope();
|
|
26
|
+
bind(common_1.LanguageModelRegistry).toService(backend_language_model_registry_1.BackendLanguageModelRegistry);
|
|
27
|
+
bind(common_1.LanguageModelRegistryFrontendDelegate).to(language_model_frontend_delegate_1.LanguageModelRegistryFrontendDelegateImpl).inSingletonScope();
|
|
28
|
+
bind(core_1.ConnectionHandler)
|
|
29
|
+
.toDynamicValue(ctx => new core_1.RpcConnectionHandler(common_1.languageModelRegistryDelegatePath, client => {
|
|
30
|
+
const registryDelegate = ctx.container.get(common_1.LanguageModelRegistryFrontendDelegate);
|
|
31
|
+
registryDelegate.setClient(client);
|
|
32
|
+
return registryDelegate;
|
|
33
|
+
}))
|
|
34
|
+
.inSingletonScope();
|
|
35
|
+
bind(language_model_frontend_delegate_1.LanguageModelFrontendDelegateImpl).toSelf().inSingletonScope();
|
|
36
|
+
bind(common_1.LanguageModelFrontendDelegate).toService(language_model_frontend_delegate_1.LanguageModelFrontendDelegateImpl);
|
|
37
|
+
bind(core_1.ConnectionHandler)
|
|
38
|
+
.toDynamicValue(({ container }) => new core_1.RpcConnectionHandler(common_1.languageModelDelegatePath, client => {
|
|
39
|
+
const service = container.get(language_model_frontend_delegate_1.LanguageModelFrontendDelegateImpl);
|
|
40
|
+
service.setClient(client);
|
|
41
|
+
return service;
|
|
42
|
+
}))
|
|
43
|
+
.inSingletonScope();
|
|
44
|
+
bind(common_1.PromptServiceImpl).toSelf().inSingletonScope();
|
|
45
|
+
bind(common_1.PromptService).toService(common_1.PromptServiceImpl);
|
|
46
|
+
});
|
|
47
|
+
//# sourceMappingURL=ai-core-backend-module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ai-core-backend-module.js","sourceRoot":"","sources":["../../src/node/ai-core-backend-module.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,4DAA+D;AAC/D,yFAG4C;AAC5C,sCAIqB;AACrB,sCAWmB;AACnB,uFAAiF;AAEjF,kBAAe,IAAI,2BAAe,CAAC,IAAI,CAAC,EAAE;IACtC,IAAA,+BAAwB,EAAC,IAAI,EAAE,8BAAqB,CAAC,CAAC;IACtD,IAAI,CAAC,8DAA4B,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC/D,IAAI,CAAC,8BAAqB,CAAC,CAAC,SAAS,CAAC,8DAA4B,CAAC,CAAC;IAEpE,IAAI,CAAC,8CAAqC,CAAC,CAAC,EAAE,CAAC,4EAAyC,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAC7G,IAAI,CAAC,wBAAiB,CAAC;SAClB,cAAc,CACX,GAAG,CAAC,EAAE,CACF,IAAI,2BAAoB,CACpB,0CAAiC,EACjC,MAAM,CAAC,EAAE;QACL,MAAM,gBAAgB,GAAG,GAAG,CAAC,SAAS,CAAC,GAAG,CACtC,8CAAqC,CACxC,CAAC;QACF,gBAAgB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACnC,OAAO,gBAAgB,CAAC;IAC5B,CAAC,CACJ,CACR;SACA,gBAAgB,EAAE,CAAC;IAExB,IAAI,CAAC,oEAAiC,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IACpE,IAAI,CAAC,sCAA6B,CAAC,CAAC,SAAS,CAAC,oEAAiC,CAAC,CAAC;IACjF,IAAI,CAAC,wBAAiB,CAAC;SAClB,cAAc,CACX,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CACd,IAAI,2BAAoB,CACpB,kCAAyB,EACzB,MAAM,CAAC,EAAE;QACL,MAAM,OAAO,GACT,SAAS,CAAC,GAAG,CACT,oEAAiC,CACpC,CAAC;QACN,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC1B,OAAO,OAAO,CAAC;IACnB,CAAC,CACJ,CACR;SACA,gBAAgB,EAAE,CAAC;IAExB,IAAI,CAAC,0BAAiB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IACpD,IAAI,CAAC,sBAAa,CAAC,CAAC,SAAS,CAAC,0BAAiB,CAAC,CAAC;AACrD,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { DefaultLanguageModelRegistryImpl, LanguageModel, LanguageModelMetaData, LanguageModelRegistryClient } from '../common';
|
|
2
|
+
/**
|
|
3
|
+
* Notifies a client whenever a model is added or removed
|
|
4
|
+
*/
|
|
5
|
+
export declare class BackendLanguageModelRegistry extends DefaultLanguageModelRegistryImpl {
|
|
6
|
+
private client;
|
|
7
|
+
setClient(client: LanguageModelRegistryClient): void;
|
|
8
|
+
addLanguageModels(models: LanguageModel[]): void;
|
|
9
|
+
removeLanguageModels(ids: string[]): void;
|
|
10
|
+
mapToMetaData(model: LanguageModel): LanguageModelMetaData;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=backend-language-model-registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"backend-language-model-registry.d.ts","sourceRoot":"","sources":["../../src/node/backend-language-model-registry.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,gCAAgC,EAAE,aAAa,EAAE,qBAAqB,EAAE,2BAA2B,EAAE,MAAM,WAAW,CAAC;AAEhI;;GAEG;AACH,qBACa,4BAA6B,SAAQ,gCAAgC;IAE9E,OAAO,CAAC,MAAM,CAA0C;IAExD,SAAS,CAAC,MAAM,EAAE,2BAA2B,GAAG,IAAI;IAI3C,iBAAiB,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,IAAI;IAShD,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI;IAOlD,aAAa,CAAC,KAAK,EAAE,aAAa,GAAG,qBAAqB;CAW7D"}
|
|
@@ -0,0 +1,61 @@
|
|
|
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.BackendLanguageModelRegistry = void 0;
|
|
19
|
+
const tslib_1 = require("tslib");
|
|
20
|
+
const inversify_1 = require("@theia/core/shared/inversify");
|
|
21
|
+
const common_1 = require("../common");
|
|
22
|
+
/**
|
|
23
|
+
* Notifies a client whenever a model is added or removed
|
|
24
|
+
*/
|
|
25
|
+
let BackendLanguageModelRegistry = class BackendLanguageModelRegistry extends common_1.DefaultLanguageModelRegistryImpl {
|
|
26
|
+
setClient(client) {
|
|
27
|
+
this.client = client;
|
|
28
|
+
}
|
|
29
|
+
addLanguageModels(models) {
|
|
30
|
+
var _a;
|
|
31
|
+
const modelsLength = this.languageModels.length;
|
|
32
|
+
super.addLanguageModels(models);
|
|
33
|
+
// only notify for models which were really added
|
|
34
|
+
for (let i = modelsLength; i < this.languageModels.length; i++) {
|
|
35
|
+
(_a = this.client) === null || _a === void 0 ? void 0 : _a.languageModelAdded(this.mapToMetaData(this.languageModels[i]));
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
removeLanguageModels(ids) {
|
|
39
|
+
var _a;
|
|
40
|
+
super.removeLanguageModels(ids);
|
|
41
|
+
for (const id of ids) {
|
|
42
|
+
(_a = this.client) === null || _a === void 0 ? void 0 : _a.languageModelRemoved(id);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
mapToMetaData(model) {
|
|
46
|
+
return {
|
|
47
|
+
id: model.id,
|
|
48
|
+
name: model.name,
|
|
49
|
+
vendor: model.vendor,
|
|
50
|
+
version: model.version,
|
|
51
|
+
family: model.family,
|
|
52
|
+
maxInputTokens: model.maxInputTokens,
|
|
53
|
+
maxOutputTokens: model.maxOutputTokens,
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
exports.BackendLanguageModelRegistry = BackendLanguageModelRegistry;
|
|
58
|
+
exports.BackendLanguageModelRegistry = BackendLanguageModelRegistry = tslib_1.__decorate([
|
|
59
|
+
(0, inversify_1.injectable)()
|
|
60
|
+
], BackendLanguageModelRegistry);
|
|
61
|
+
//# sourceMappingURL=backend-language-model-registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"backend-language-model-registry.js","sourceRoot":"","sources":["../../src/node/backend-language-model-registry.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,4DAA0D;AAC1D,sCAAgI;AAEhI;;GAEG;AAEI,IAAM,4BAA4B,GAAlC,MAAM,4BAA6B,SAAQ,yCAAgC;IAI9E,SAAS,CAAC,MAAmC;QACzC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;IAEQ,iBAAiB,CAAC,MAAuB;;QAC9C,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;QAChD,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAChC,iDAAiD;QACjD,KAAK,IAAI,CAAC,GAAG,YAAY,EAAE,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC7D,MAAA,IAAI,CAAC,MAAM,0CAAE,kBAAkB,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAChF,CAAC;IACL,CAAC;IAEQ,oBAAoB,CAAC,GAAa;;QACvC,KAAK,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC;QAChC,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;YACnB,MAAA,IAAI,CAAC,MAAM,0CAAE,oBAAoB,CAAC,EAAE,CAAC,CAAC;QAC1C,CAAC;IACL,CAAC;IAED,aAAa,CAAC,KAAoB;QAC9B,OAAO;YACH,EAAE,EAAE,KAAK,CAAC,EAAE;YACZ,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,cAAc,EAAE,KAAK,CAAC,cAAc;YACpC,eAAe,EAAE,KAAK,CAAC,eAAe;SACzC,CAAC;IACN,CAAC;CACJ,CAAA;AAnCY,oEAA4B;uCAA5B,4BAA4B;IADxC,IAAA,sBAAU,GAAE;GACA,4BAA4B,CAmCxC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { CancellationToken } from '@theia/core';
|
|
2
|
+
import { LanguageModelMetaData, LanguageModelRequest, LanguageModelStreamResponsePart, LanguageModelDelegateClient, LanguageModelFrontendDelegate, LanguageModelRegistryFrontendDelegate, LanguageModelResponseDelegate, LanguageModelRegistryClient } from '../common';
|
|
3
|
+
export declare class LanguageModelRegistryFrontendDelegateImpl implements LanguageModelRegistryFrontendDelegate {
|
|
4
|
+
private registry;
|
|
5
|
+
setClient(client: LanguageModelRegistryClient): void;
|
|
6
|
+
getLanguageModelDescriptions(): Promise<LanguageModelMetaData[]>;
|
|
7
|
+
}
|
|
8
|
+
export declare class LanguageModelFrontendDelegateImpl implements LanguageModelFrontendDelegate {
|
|
9
|
+
private registry;
|
|
10
|
+
private logger;
|
|
11
|
+
private frontendDelegateClient;
|
|
12
|
+
private requestCancellationTokenMap;
|
|
13
|
+
setClient(client: LanguageModelDelegateClient): void;
|
|
14
|
+
cancel(requestId: string): void;
|
|
15
|
+
request(modelId: string, request: LanguageModelRequest, requestId: string, cancellationToken?: CancellationToken): Promise<LanguageModelResponseDelegate>;
|
|
16
|
+
protected sendTokens(id: string, stream: AsyncIterable<LanguageModelStreamResponsePart>): void;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=language-model-frontend-delegate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"language-model-frontend-delegate.d.ts","sourceRoot":"","sources":["../../src/node/language-model-frontend-delegate.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,iBAAiB,EAAkD,MAAM,aAAa,CAAC;AAChG,OAAO,EACH,qBAAqB,EAErB,oBAAoB,EAGpB,+BAA+B,EAC/B,2BAA2B,EAC3B,6BAA6B,EAC7B,qCAAqC,EACrC,6BAA6B,EAC7B,2BAA2B,EAE9B,MAAM,WAAW,CAAC;AAGnB,qBACa,yCAA0C,YAAW,qCAAqC;IAGnG,OAAO,CAAC,QAAQ,CAA+B;IAE/C,SAAS,CAAC,MAAM,EAAE,2BAA2B,GAAG,IAAI;IAI9C,4BAA4B,IAAI,OAAO,CAAC,qBAAqB,EAAE,CAAC;CAGzE;AAED,qBACa,iCAAkC,YAAW,6BAA6B;IAGnF,OAAO,CAAC,QAAQ,CAAwB;IAGxC,OAAO,CAAC,MAAM,CAAU;IAExB,OAAO,CAAC,sBAAsB,CAA8B;IAC5D,OAAO,CAAC,2BAA2B,CAAmD;IAEtF,SAAS,CAAC,MAAM,EAAE,2BAA2B,GAAG,IAAI;IAIpD,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAIzB,OAAO,CACT,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,oBAAoB,EAC7B,SAAS,EAAE,MAAM,EACjB,iBAAiB,CAAC,EAAE,iBAAiB,GACtC,OAAO,CAAC,6BAA6B,CAAC;IAiCzC,SAAS,CAAC,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,+BAA+B,CAAC,GAAG,IAAI;CAQjG"}
|
|
@@ -0,0 +1,100 @@
|
|
|
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.LanguageModelFrontendDelegateImpl = exports.LanguageModelRegistryFrontendDelegateImpl = void 0;
|
|
19
|
+
const tslib_1 = require("tslib");
|
|
20
|
+
const inversify_1 = require("@theia/core/shared/inversify");
|
|
21
|
+
const core_1 = require("@theia/core");
|
|
22
|
+
const common_1 = require("../common");
|
|
23
|
+
const backend_language_model_registry_1 = require("./backend-language-model-registry");
|
|
24
|
+
let LanguageModelRegistryFrontendDelegateImpl = class LanguageModelRegistryFrontendDelegateImpl {
|
|
25
|
+
setClient(client) {
|
|
26
|
+
this.registry.setClient(client);
|
|
27
|
+
}
|
|
28
|
+
async getLanguageModelDescriptions() {
|
|
29
|
+
return (await this.registry.getLanguageModels()).map(model => this.registry.mapToMetaData(model));
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
exports.LanguageModelRegistryFrontendDelegateImpl = LanguageModelRegistryFrontendDelegateImpl;
|
|
33
|
+
tslib_1.__decorate([
|
|
34
|
+
(0, inversify_1.inject)(common_1.LanguageModelRegistry),
|
|
35
|
+
tslib_1.__metadata("design:type", backend_language_model_registry_1.BackendLanguageModelRegistry)
|
|
36
|
+
], LanguageModelRegistryFrontendDelegateImpl.prototype, "registry", void 0);
|
|
37
|
+
exports.LanguageModelRegistryFrontendDelegateImpl = LanguageModelRegistryFrontendDelegateImpl = tslib_1.__decorate([
|
|
38
|
+
(0, inversify_1.injectable)()
|
|
39
|
+
], LanguageModelRegistryFrontendDelegateImpl);
|
|
40
|
+
let LanguageModelFrontendDelegateImpl = class LanguageModelFrontendDelegateImpl {
|
|
41
|
+
constructor() {
|
|
42
|
+
this.requestCancellationTokenMap = new Map();
|
|
43
|
+
}
|
|
44
|
+
setClient(client) {
|
|
45
|
+
this.frontendDelegateClient = client;
|
|
46
|
+
}
|
|
47
|
+
cancel(requestId) {
|
|
48
|
+
var _a;
|
|
49
|
+
(_a = this.requestCancellationTokenMap.get(requestId)) === null || _a === void 0 ? void 0 : _a.cancel();
|
|
50
|
+
}
|
|
51
|
+
async request(modelId, request, requestId, cancellationToken) {
|
|
52
|
+
var _a;
|
|
53
|
+
const model = await this.registry.getLanguageModel(modelId);
|
|
54
|
+
if (!model) {
|
|
55
|
+
throw new Error(`Request was sent to non-existent language model ${modelId}`);
|
|
56
|
+
}
|
|
57
|
+
(_a = request.tools) === null || _a === void 0 ? void 0 : _a.forEach(tool => {
|
|
58
|
+
tool.handler = async (args_string) => this.frontendDelegateClient.toolCall(requestId, tool.id, args_string);
|
|
59
|
+
});
|
|
60
|
+
if (cancellationToken) {
|
|
61
|
+
const tokenSource = new core_1.CancellationTokenSource();
|
|
62
|
+
cancellationToken = tokenSource.token;
|
|
63
|
+
this.requestCancellationTokenMap.set(requestId, tokenSource);
|
|
64
|
+
}
|
|
65
|
+
const response = await model.request(request, cancellationToken);
|
|
66
|
+
if ((0, common_1.isLanguageModelTextResponse)(response) || (0, common_1.isLanguageModelParsedResponse)(response)) {
|
|
67
|
+
return response;
|
|
68
|
+
}
|
|
69
|
+
if ((0, common_1.isLanguageModelStreamResponse)(response)) {
|
|
70
|
+
const delegate = {
|
|
71
|
+
streamId: (0, core_1.generateUuid)(),
|
|
72
|
+
};
|
|
73
|
+
this.sendTokens(delegate.streamId, response.stream);
|
|
74
|
+
return delegate;
|
|
75
|
+
}
|
|
76
|
+
this.logger.error(`Received unexpected response from language model ${modelId}. Trying to continue without touching the response.`, response);
|
|
77
|
+
return response;
|
|
78
|
+
}
|
|
79
|
+
sendTokens(id, stream) {
|
|
80
|
+
(async () => {
|
|
81
|
+
for await (const token of stream) {
|
|
82
|
+
this.frontendDelegateClient.send(id, token);
|
|
83
|
+
}
|
|
84
|
+
this.frontendDelegateClient.send(id, undefined);
|
|
85
|
+
})();
|
|
86
|
+
}
|
|
87
|
+
};
|
|
88
|
+
exports.LanguageModelFrontendDelegateImpl = LanguageModelFrontendDelegateImpl;
|
|
89
|
+
tslib_1.__decorate([
|
|
90
|
+
(0, inversify_1.inject)(common_1.LanguageModelRegistry),
|
|
91
|
+
tslib_1.__metadata("design:type", Object)
|
|
92
|
+
], LanguageModelFrontendDelegateImpl.prototype, "registry", void 0);
|
|
93
|
+
tslib_1.__decorate([
|
|
94
|
+
(0, inversify_1.inject)(core_1.ILogger),
|
|
95
|
+
tslib_1.__metadata("design:type", Object)
|
|
96
|
+
], LanguageModelFrontendDelegateImpl.prototype, "logger", void 0);
|
|
97
|
+
exports.LanguageModelFrontendDelegateImpl = LanguageModelFrontendDelegateImpl = tslib_1.__decorate([
|
|
98
|
+
(0, inversify_1.injectable)()
|
|
99
|
+
], LanguageModelFrontendDelegateImpl);
|
|
100
|
+
//# sourceMappingURL=language-model-frontend-delegate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"language-model-frontend-delegate.js","sourceRoot":"","sources":["../../src/node/language-model-frontend-delegate.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@theia/ai-core",
|
|
3
|
+
"version": "1.46.0-next.241+4295c1a8c",
|
|
4
|
+
"description": "Theia - AI Core",
|
|
5
|
+
"dependencies": {
|
|
6
|
+
"@theia/core": "1.46.0-next.241+4295c1a8c",
|
|
7
|
+
"@theia/editor": "1.46.0-next.241+4295c1a8c",
|
|
8
|
+
"@theia/filesystem": "1.46.0-next.241+4295c1a8c",
|
|
9
|
+
"@theia/monaco": "1.46.0-next.241+4295c1a8c",
|
|
10
|
+
"@theia/monaco-editor-core": "1.83.101",
|
|
11
|
+
"@theia/output": "1.46.0-next.241+4295c1a8c",
|
|
12
|
+
"@theia/variable-resolver": "1.46.0-next.241+4295c1a8c",
|
|
13
|
+
"@theia/workspace": "1.46.0-next.241+4295c1a8c",
|
|
14
|
+
"@types/js-yaml": "^4.0.9",
|
|
15
|
+
"js-yaml": "^4.1.0",
|
|
16
|
+
"minimatch": "^5.1.0",
|
|
17
|
+
"tslib": "^2.6.2"
|
|
18
|
+
},
|
|
19
|
+
"main": "lib/common",
|
|
20
|
+
"publishConfig": {
|
|
21
|
+
"access": "public"
|
|
22
|
+
},
|
|
23
|
+
"theiaExtensions": [
|
|
24
|
+
{
|
|
25
|
+
"frontend": "lib/browser/ai-core-frontend-module",
|
|
26
|
+
"backend": "lib/node/ai-core-backend-module"
|
|
27
|
+
}
|
|
28
|
+
],
|
|
29
|
+
"keywords": [
|
|
30
|
+
"theia-extension"
|
|
31
|
+
],
|
|
32
|
+
"license": "EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0",
|
|
33
|
+
"repository": {
|
|
34
|
+
"type": "git",
|
|
35
|
+
"url": "https://github.com/eclipse-theia/theia.git"
|
|
36
|
+
},
|
|
37
|
+
"bugs": {
|
|
38
|
+
"url": "https://github.com/eclipse-theia/theia/issues"
|
|
39
|
+
},
|
|
40
|
+
"homepage": "https://github.com/eclipse-theia/theia",
|
|
41
|
+
"files": [
|
|
42
|
+
"data",
|
|
43
|
+
"lib",
|
|
44
|
+
"src"
|
|
45
|
+
],
|
|
46
|
+
"scripts": {
|
|
47
|
+
"build": "theiaext build",
|
|
48
|
+
"clean": "theiaext clean",
|
|
49
|
+
"compile": "theiaext compile",
|
|
50
|
+
"lint": "theiaext lint",
|
|
51
|
+
"test": "theiaext test",
|
|
52
|
+
"watch": "theiaext watch"
|
|
53
|
+
},
|
|
54
|
+
"devDependencies": {
|
|
55
|
+
"@theia/ext-scripts": "1.56.0"
|
|
56
|
+
},
|
|
57
|
+
"nyc": {
|
|
58
|
+
"extends": "../../configs/nyc.json"
|
|
59
|
+
},
|
|
60
|
+
"gitHead": "4295c1a8c8b5d23471f274265c798bac9e6baecc"
|
|
61
|
+
}
|