@theia/ai-core 1.60.2 → 1.61.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/lib/browser/ai-core-frontend-module.d.ts.map +1 -1
- package/lib/browser/ai-core-frontend-module.js +16 -0
- package/lib/browser/ai-core-frontend-module.js.map +1 -1
- package/lib/browser/ai-variable-uri-label-provider.d.ts +17 -0
- package/lib/browser/ai-variable-uri-label-provider.d.ts.map +1 -0
- package/lib/browser/ai-variable-uri-label-provider.js +85 -0
- package/lib/browser/ai-variable-uri-label-provider.js.map +1 -0
- package/lib/browser/file-variable-contribution.d.ts +9 -3
- package/lib/browser/file-variable-contribution.d.ts.map +1 -1
- package/lib/browser/file-variable-contribution.js +26 -8
- package/lib/browser/file-variable-contribution.js.map +1 -1
- package/lib/browser/frontend-prompt-customization-service.d.ts +22 -1
- package/lib/browser/frontend-prompt-customization-service.d.ts.map +1 -1
- package/lib/browser/frontend-prompt-customization-service.js +63 -25
- package/lib/browser/frontend-prompt-customization-service.js.map +1 -1
- package/lib/browser/frontend-variable-service.d.ts +28 -4
- package/lib/browser/frontend-variable-service.d.ts.map +1 -1
- package/lib/browser/frontend-variable-service.js +84 -1
- package/lib/browser/frontend-variable-service.js.map +1 -1
- package/lib/browser/prompttemplate-contribution.d.ts +0 -3
- package/lib/browser/prompttemplate-contribution.d.ts.map +1 -1
- package/lib/browser/prompttemplate-contribution.js +5 -24
- package/lib/browser/prompttemplate-contribution.js.map +1 -1
- package/lib/browser/token-usage-frontend-service-impl.d.ts +25 -0
- package/lib/browser/token-usage-frontend-service-impl.d.ts.map +1 -0
- package/lib/browser/token-usage-frontend-service-impl.js +120 -0
- package/lib/browser/token-usage-frontend-service-impl.js.map +1 -0
- package/lib/browser/token-usage-frontend-service.d.ts +29 -0
- package/lib/browser/token-usage-frontend-service.d.ts.map +1 -0
- package/lib/browser/token-usage-frontend-service.js +23 -0
- package/lib/browser/token-usage-frontend-service.js.map +1 -0
- package/lib/common/ai-variable-resource.d.ts +18 -0
- package/lib/common/ai-variable-resource.d.ts.map +1 -0
- package/lib/common/ai-variable-resource.js +103 -0
- package/lib/common/ai-variable-resource.js.map +1 -0
- package/lib/common/configurable-in-memory-resources.d.ts +45 -0
- package/lib/common/configurable-in-memory-resources.d.ts.map +1 -0
- package/lib/common/configurable-in-memory-resources.js +147 -0
- package/lib/common/configurable-in-memory-resources.js.map +1 -0
- package/lib/common/index.d.ts +3 -0
- package/lib/common/index.d.ts.map +1 -1
- package/lib/common/index.js +3 -0
- package/lib/common/index.js.map +1 -1
- package/lib/common/language-model.d.ts +7 -2
- package/lib/common/language-model.d.ts.map +1 -1
- package/lib/common/language-model.js +5 -1
- package/lib/common/language-model.js.map +1 -1
- package/lib/common/prompt-service.d.ts +16 -4
- package/lib/common/prompt-service.d.ts.map +1 -1
- package/lib/common/prompt-service.js +1 -1
- package/lib/common/prompt-service.js.map +1 -1
- package/lib/common/prompt-variable-contribution.d.ts +2 -1
- package/lib/common/prompt-variable-contribution.d.ts.map +1 -1
- package/lib/common/prompt-variable-contribution.js +10 -1
- package/lib/common/prompt-variable-contribution.js.map +1 -1
- package/lib/common/protocol.d.ts +14 -0
- package/lib/common/protocol.d.ts.map +1 -1
- package/lib/common/protocol.js +3 -1
- package/lib/common/protocol.js.map +1 -1
- package/lib/common/token-usage-service.d.ts +35 -0
- package/lib/common/token-usage-service.d.ts.map +1 -0
- package/lib/common/token-usage-service.js +20 -0
- package/lib/common/token-usage-service.js.map +1 -0
- package/lib/common/variable-service.d.ts +17 -2
- package/lib/common/variable-service.d.ts.map +1 -1
- package/lib/common/variable-service.js +43 -32
- package/lib/common/variable-service.js.map +1 -1
- package/lib/node/ai-core-backend-module.d.ts.map +1 -1
- package/lib/node/ai-core-backend-module.js +9 -0
- package/lib/node/ai-core-backend-module.js.map +1 -1
- package/lib/node/language-model-frontend-delegate.d.ts +2 -2
- package/lib/node/language-model-frontend-delegate.d.ts.map +1 -1
- package/lib/node/language-model-frontend-delegate.js.map +1 -1
- package/lib/node/token-usage-service-impl.d.ts +23 -0
- package/lib/node/token-usage-service-impl.d.ts.map +1 -0
- package/lib/node/token-usage-service-impl.js +65 -0
- package/lib/node/token-usage-service-impl.js.map +1 -0
- package/package.json +11 -10
- package/src/browser/ai-core-frontend-module.ts +26 -5
- package/src/browser/ai-variable-uri-label-provider.ts +66 -0
- package/src/browser/file-variable-contribution.ts +34 -14
- package/src/browser/frontend-prompt-customization-service.ts +72 -25
- package/src/browser/frontend-variable-service.ts +115 -5
- package/src/browser/prompttemplate-contribution.ts +5 -26
- package/src/browser/token-usage-frontend-service-impl.ts +117 -0
- package/src/browser/token-usage-frontend-service.ts +47 -0
- package/src/common/ai-variable-resource.ts +86 -0
- package/src/common/configurable-in-memory-resources.ts +156 -0
- package/src/common/index.ts +3 -0
- package/src/common/language-model.ts +10 -2
- package/src/common/prompt-service.ts +14 -4
- package/src/common/prompt-variable-contribution.ts +10 -2
- package/src/common/protocol.ts +18 -0
- package/src/common/token-usage-service.ts +56 -0
- package/src/common/variable-service.ts +58 -44
- package/src/node/ai-core-backend-module.ts +21 -1
- package/src/node/language-model-frontend-delegate.ts +2 -2
- package/src/node/token-usage-service-impl.ts +65 -0
|
@@ -15,12 +15,34 @@
|
|
|
15
15
|
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
16
16
|
// *****************************************************************************
|
|
17
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
-
exports.DefaultFrontendVariableService = exports.FrontendVariableService = void 0;
|
|
18
|
+
exports.DefaultFrontendVariableService = exports.FrontendVariableService = exports.AIVariableCompletionContext = void 0;
|
|
19
19
|
const tslib_1 = require("tslib");
|
|
20
20
|
const core_1 = require("@theia/core");
|
|
21
|
+
const browser_1 = require("@theia/core/lib/browser");
|
|
21
22
|
const inversify_1 = require("@theia/core/shared/inversify");
|
|
22
23
|
const common_1 = require("../common");
|
|
24
|
+
const monaco = require("@theia/monaco-editor-core");
|
|
23
25
|
;
|
|
26
|
+
var AIVariableCompletionContext;
|
|
27
|
+
(function (AIVariableCompletionContext) {
|
|
28
|
+
function get(variableName, model, position, matchString) {
|
|
29
|
+
const lineContent = model.getLineContent(position.lineNumber);
|
|
30
|
+
const indexOfVariableTrigger = lineContent.lastIndexOf(matchString !== null && matchString !== void 0 ? matchString : common_1.PromptText.VARIABLE_CHAR, position.column - 1);
|
|
31
|
+
// check if there is a variable trigger and no space typed between the variable trigger and the cursor
|
|
32
|
+
if (indexOfVariableTrigger === -1 || lineContent.substring(indexOfVariableTrigger).includes(' ')) {
|
|
33
|
+
return undefined;
|
|
34
|
+
}
|
|
35
|
+
// determine whether we are providing completions before or after the variable argument separator
|
|
36
|
+
const indexOfVariableArgSeparator = lineContent.lastIndexOf(common_1.PromptText.VARIABLE_SEPARATOR_CHAR, position.column - 1);
|
|
37
|
+
const triggerCharIndex = Math.max(indexOfVariableTrigger, indexOfVariableArgSeparator);
|
|
38
|
+
const userInput = lineContent.substring(triggerCharIndex + 1, position.column - 1);
|
|
39
|
+
const range = new monaco.Range(position.lineNumber, triggerCharIndex + 2, position.lineNumber, position.column);
|
|
40
|
+
const matchVariableChar = lineContent[triggerCharIndex] === (matchString ? matchString : common_1.PromptText.VARIABLE_CHAR);
|
|
41
|
+
const prefix = matchVariableChar ? variableName + common_1.PromptText.VARIABLE_SEPARATOR_CHAR : '';
|
|
42
|
+
return { range, userInput, prefix };
|
|
43
|
+
}
|
|
44
|
+
AIVariableCompletionContext.get = get;
|
|
45
|
+
})(AIVariableCompletionContext || (exports.AIVariableCompletionContext = AIVariableCompletionContext = {}));
|
|
24
46
|
exports.FrontendVariableService = Symbol('FrontendVariableService');
|
|
25
47
|
let DefaultFrontendVariableService = class DefaultFrontendVariableService extends common_1.DefaultAIVariableService {
|
|
26
48
|
constructor() {
|
|
@@ -51,8 +73,69 @@ let DefaultFrontendVariableService = class DefaultFrontendVariableService extend
|
|
|
51
73
|
}
|
|
52
74
|
return { variables, text };
|
|
53
75
|
}
|
|
76
|
+
registerOpener(variable, opener) {
|
|
77
|
+
var _a;
|
|
78
|
+
const key = this.getKey(variable.name);
|
|
79
|
+
if (!this.variables.get(key)) {
|
|
80
|
+
this.variables.set(key, variable);
|
|
81
|
+
this.onDidChangeVariablesEmitter.fire();
|
|
82
|
+
}
|
|
83
|
+
const openers = (_a = this.openers.get(key)) !== null && _a !== void 0 ? _a : [];
|
|
84
|
+
openers.push(opener);
|
|
85
|
+
this.openers.set(key, openers);
|
|
86
|
+
return core_1.Disposable.create(() => this.unregisterOpener(variable, opener));
|
|
87
|
+
}
|
|
88
|
+
unregisterOpener(variable, opener) {
|
|
89
|
+
const key = this.getKey(variable.name);
|
|
90
|
+
const registeredOpeners = this.openers.get(key);
|
|
91
|
+
registeredOpeners === null || registeredOpeners === void 0 ? void 0 : registeredOpeners.splice(registeredOpeners.indexOf(opener), 1);
|
|
92
|
+
}
|
|
93
|
+
async getOpener(name, arg, context = {}) {
|
|
94
|
+
var _a;
|
|
95
|
+
const variable = this.getVariable(name);
|
|
96
|
+
return variable && core_1.Prioritizeable.prioritizeAll((_a = this.openers.get(this.getKey(name))) !== null && _a !== void 0 ? _a : [], opener => (async () => opener.canOpen({ variable, arg }, context))().catch(() => 0))
|
|
97
|
+
.then(prioritized => { var _a; return (_a = prioritized.at(0)) === null || _a === void 0 ? void 0 : _a.value; });
|
|
98
|
+
}
|
|
99
|
+
async open(request, context) {
|
|
100
|
+
const { variableName, arg } = this.parseRequest(request);
|
|
101
|
+
const variable = this.getVariable(variableName);
|
|
102
|
+
if (!variable) {
|
|
103
|
+
this.messageService.warn('No variable found for open request.');
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
const opener = await this.getOpener(variableName, arg, context);
|
|
107
|
+
try {
|
|
108
|
+
return opener ? opener.open({ variable, arg }, context !== null && context !== void 0 ? context : {}) : this.openReadonly({ variable, arg }, context);
|
|
109
|
+
}
|
|
110
|
+
catch (err) {
|
|
111
|
+
console.error('Unable to open variable:', err);
|
|
112
|
+
this.messageService.error('Unable to display variable value.');
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
async openReadonly(request, context = {}) {
|
|
116
|
+
const resolved = await this.resolveVariable(request, context);
|
|
117
|
+
if (resolved === undefined) {
|
|
118
|
+
this.messageService.warn('Unable to resolve variable.');
|
|
119
|
+
return;
|
|
120
|
+
}
|
|
121
|
+
const resource = this.aiResourceResolver.getOrCreate(request, context, resolved.value);
|
|
122
|
+
await (0, browser_1.open)(this.openerService, resource.uri);
|
|
123
|
+
resource.dispose();
|
|
124
|
+
}
|
|
54
125
|
};
|
|
55
126
|
exports.DefaultFrontendVariableService = DefaultFrontendVariableService;
|
|
127
|
+
tslib_1.__decorate([
|
|
128
|
+
(0, inversify_1.inject)(core_1.MessageService),
|
|
129
|
+
tslib_1.__metadata("design:type", core_1.MessageService)
|
|
130
|
+
], DefaultFrontendVariableService.prototype, "messageService", void 0);
|
|
131
|
+
tslib_1.__decorate([
|
|
132
|
+
(0, inversify_1.inject)(common_1.AIVariableResourceResolver),
|
|
133
|
+
tslib_1.__metadata("design:type", common_1.AIVariableResourceResolver)
|
|
134
|
+
], DefaultFrontendVariableService.prototype, "aiResourceResolver", void 0);
|
|
135
|
+
tslib_1.__decorate([
|
|
136
|
+
(0, inversify_1.inject)(browser_1.OpenerService),
|
|
137
|
+
tslib_1.__metadata("design:type", Object)
|
|
138
|
+
], DefaultFrontendVariableService.prototype, "openerService", void 0);
|
|
56
139
|
exports.DefaultFrontendVariableService = DefaultFrontendVariableService = tslib_1.__decorate([
|
|
57
140
|
(0, inversify_1.injectable)()
|
|
58
141
|
], DefaultFrontendVariableService);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frontend-variable-service.js","sourceRoot":"","sources":["../../src/browser/frontend-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;;;;AAEhF,
|
|
1
|
+
{"version":3,"file":"frontend-variable-service.js","sourceRoot":"","sources":["../../src/browser/frontend-variable-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,10 +9,8 @@ import { ProviderResult } from '@theia/monaco-editor-core/esm/vs/editor/common/l
|
|
|
9
9
|
import { AIVariableService } from '../common/variable-service';
|
|
10
10
|
export declare const PROMPT_TEMPLATE_EXTENSION = ".prompttemplate";
|
|
11
11
|
export declare const DISCARD_PROMPT_TEMPLATE_CUSTOMIZATIONS: Command;
|
|
12
|
-
export declare const SHOW_ALL_PROMPTS_COMMAND: Command;
|
|
13
12
|
export declare class PromptTemplateContribution implements LanguageGrammarDefinitionContribution, CommandContribution, TabBarToolbarContribution {
|
|
14
13
|
private readonly promptService;
|
|
15
|
-
private readonly messageService;
|
|
16
14
|
protected readonly customizationService: PromptCustomizationService;
|
|
17
15
|
protected readonly toolInvocationRegistry: ToolInvocationRegistry;
|
|
18
16
|
protected readonly variableService: AIVariableService;
|
|
@@ -27,7 +25,6 @@ export declare class PromptTemplateContribution implements LanguageGrammarDefini
|
|
|
27
25
|
protected isPromptTemplateWidget(widget: Widget): boolean;
|
|
28
26
|
protected canDiscard(widget: EditorWidget): boolean;
|
|
29
27
|
protected discard(widget: EditorWidget): Promise<void>;
|
|
30
|
-
private showAllPrompts;
|
|
31
28
|
registerToolbarItems(registry: TabBarToolbarRegistry): void;
|
|
32
29
|
}
|
|
33
30
|
//# sourceMappingURL=prompttemplate-contribution.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompttemplate-contribution.d.ts","sourceRoot":"","sources":["../../src/browser/prompttemplate-contribution.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAgD,qCAAqC,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAC3J,OAAO,KAAK,MAAM,MAAM,2BAA2B,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,mBAAmB,EAAE,eAAe,
|
|
1
|
+
{"version":3,"file":"prompttemplate-contribution.d.ts","sourceRoot":"","sources":["../../src/browser/prompttemplate-contribution.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAgD,qCAAqC,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAC3J,OAAO,KAAK,MAAM,MAAM,2BAA2B,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAO,MAAM,aAAa,CAAC;AACjF,OAAO,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,MAAM,+CAA+C,CAAC;AAEjH,OAAO,EAAW,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAoB,MAAM,2BAA2B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAA6B,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAC1G,OAAO,EAAE,cAAc,EAAE,MAAM,0DAA0D,CAAC;AAC1F,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAK/D,eAAO,MAAM,yBAAyB,oBAAoB,CAAC;AAE3D,eAAO,MAAM,sCAAsC,EAAE,OAKc,CAAC;AAEpE,qBACa,0BAA2B,YAAW,qCAAqC,EAAE,mBAAmB,EAAE,yBAAyB;IAGpI,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAG9C,SAAS,CAAC,QAAQ,CAAC,oBAAoB,EAAE,0BAA0B,CAAC;IAGpE,SAAS,CAAC,QAAQ,CAAC,sBAAsB,EAAE,sBAAsB,CAAC;IAGlE,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,iBAAiB,CAAC;IAEtD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC,qBAAqB,CAoBjD;IAEN,wBAAwB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,IAAI;IA6C1D,0BAA0B,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,GAAG,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC;IAavI,0BAA0B,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,GAAG,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC;IAajI,iCAAiC,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC;IA2C7I,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,iBAAiB,EAAE,MAAM,GAAG,MAAM,CAAC,KAAK,GAAG,SAAS;IAwBnI,OAAO,CAAC,cAAc;IAwBtB,gBAAgB,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI;IAQjD,SAAS,CAAC,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAOzD,SAAS,CAAC,UAAU,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO;cAWnC,OAAO,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAkC5D,oBAAoB,CAAC,QAAQ,EAAE,qBAAqB,GAAG,IAAI;CAO9D"}
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
16
16
|
// *****************************************************************************
|
|
17
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
-
exports.PromptTemplateContribution = exports.
|
|
18
|
+
exports.PromptTemplateContribution = exports.DISCARD_PROMPT_TEMPLATE_CUSTOMIZATIONS = exports.PROMPT_TEMPLATE_EXTENSION = void 0;
|
|
19
19
|
const tslib_1 = require("tslib");
|
|
20
20
|
const inversify_1 = require("@theia/core/shared/inversify");
|
|
21
21
|
const monaco = require("@theia/monaco-editor-core");
|
|
@@ -29,16 +29,10 @@ const PROMPT_TEMPLATE_TEXTMATE_SCOPE = 'source.prompttemplate';
|
|
|
29
29
|
exports.PROMPT_TEMPLATE_EXTENSION = '.prompttemplate';
|
|
30
30
|
exports.DISCARD_PROMPT_TEMPLATE_CUSTOMIZATIONS = core_1.Command.toLocalizedCommand({
|
|
31
31
|
id: 'theia-ai-prompt-template:discard',
|
|
32
|
+
label: 'Discard AI Prompt Template',
|
|
32
33
|
iconClass: (0, browser_1.codicon)('discard'),
|
|
33
|
-
category: '
|
|
34
|
-
}, '', 'theia/ai/core/prompts/category');
|
|
35
|
-
// TODO this command is mainly for testing purposes
|
|
36
|
-
exports.SHOW_ALL_PROMPTS_COMMAND = core_1.Command.toLocalizedCommand({
|
|
37
|
-
id: 'theia-ai-prompt-template:show-prompts-command',
|
|
38
|
-
label: 'Show all prompts',
|
|
39
|
-
iconClass: (0, browser_1.codicon)('beaker'),
|
|
40
|
-
category: 'Theia AI Prompt Templates',
|
|
41
|
-
}, 'theia/ai/core/showAllPrompts/label', 'theia/ai/core/prompts/category');
|
|
34
|
+
category: 'AI Prompt Templates'
|
|
35
|
+
}, 'theia/ai/core/discard/label', 'theia/ai/core/prompts/category');
|
|
42
36
|
let PromptTemplateContribution = class PromptTemplateContribution {
|
|
43
37
|
constructor() {
|
|
44
38
|
this.config = {
|
|
@@ -66,7 +60,7 @@ let PromptTemplateContribution = class PromptTemplateContribution {
|
|
|
66
60
|
monaco.languages.register({
|
|
67
61
|
id: PROMPT_TEMPLATE_LANGUAGE_ID,
|
|
68
62
|
'aliases': [
|
|
69
|
-
'
|
|
63
|
+
'AI Prompt Template'
|
|
70
64
|
],
|
|
71
65
|
'extensions': [
|
|
72
66
|
exports.PROMPT_TEMPLATE_EXTENSION,
|
|
@@ -175,9 +169,6 @@ let PromptTemplateContribution = class PromptTemplateContribution {
|
|
|
175
169
|
isEnabled: (widget) => this.canDiscard(widget),
|
|
176
170
|
execute: (widget) => this.discard(widget)
|
|
177
171
|
});
|
|
178
|
-
commands.registerCommand(exports.SHOW_ALL_PROMPTS_COMMAND, {
|
|
179
|
-
execute: () => this.showAllPrompts()
|
|
180
|
-
});
|
|
181
172
|
}
|
|
182
173
|
isPromptTemplateWidget(widget) {
|
|
183
174
|
if (widget instanceof browser_2.EditorWidget) {
|
|
@@ -225,12 +216,6 @@ let PromptTemplateContribution = class PromptTemplateContribution {
|
|
|
225
216
|
replaceOperations: [replaceOperation]
|
|
226
217
|
});
|
|
227
218
|
}
|
|
228
|
-
showAllPrompts() {
|
|
229
|
-
const allPrompts = this.promptService.getAllPrompts();
|
|
230
|
-
Object.keys(allPrompts).forEach(id => {
|
|
231
|
-
this.messageService.info(`Prompt Template ID: ${id}\n${allPrompts[id].template}`, 'Got it');
|
|
232
|
-
});
|
|
233
|
-
}
|
|
234
219
|
registerToolbarItems(registry) {
|
|
235
220
|
registry.registerItem({
|
|
236
221
|
id: exports.DISCARD_PROMPT_TEMPLATE_CUSTOMIZATIONS.id,
|
|
@@ -244,10 +229,6 @@ tslib_1.__decorate([
|
|
|
244
229
|
(0, inversify_1.inject)(common_1.PromptService),
|
|
245
230
|
tslib_1.__metadata("design:type", Object)
|
|
246
231
|
], PromptTemplateContribution.prototype, "promptService", void 0);
|
|
247
|
-
tslib_1.__decorate([
|
|
248
|
-
(0, inversify_1.inject)(core_1.MessageService),
|
|
249
|
-
tslib_1.__metadata("design:type", core_1.MessageService)
|
|
250
|
-
], PromptTemplateContribution.prototype, "messageService", void 0);
|
|
251
232
|
tslib_1.__decorate([
|
|
252
233
|
(0, inversify_1.inject)(common_1.PromptCustomizationService),
|
|
253
234
|
tslib_1.__metadata("design:type", Object)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompttemplate-contribution.js","sourceRoot":"","sources":["../../src/browser/prompttemplate-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;;;;AAEhF,4DAAkE;AAElE,oDAAoD;AACpD,
|
|
1
|
+
{"version":3,"file":"prompttemplate-contribution.js","sourceRoot":"","sources":["../../src/browser/prompttemplate-contribution.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { ModelTokenUsageData, TokenUsageFrontendService } from './token-usage-frontend-service';
|
|
2
|
+
import { TokenUsage, TokenUsageService } from '../common/token-usage-service';
|
|
3
|
+
import { TokenUsageServiceClient } from '../common/protocol';
|
|
4
|
+
export declare class TokenUsageServiceClientImpl implements TokenUsageServiceClient {
|
|
5
|
+
private readonly _onTokenUsageUpdated;
|
|
6
|
+
readonly onTokenUsageUpdated: import("@theia/core").Event<TokenUsage>;
|
|
7
|
+
notifyTokenUsage(usage: TokenUsage): void;
|
|
8
|
+
}
|
|
9
|
+
export declare class TokenUsageFrontendServiceImpl implements TokenUsageFrontendService {
|
|
10
|
+
protected readonly tokenUsageServiceClient: TokenUsageServiceClient;
|
|
11
|
+
protected readonly tokenUsageService: TokenUsageService;
|
|
12
|
+
private readonly _onTokenUsageUpdated;
|
|
13
|
+
readonly onTokenUsageUpdated: import("@theia/core").Event<ModelTokenUsageData[]>;
|
|
14
|
+
private cachedUsageData;
|
|
15
|
+
protected init(): void;
|
|
16
|
+
/**
|
|
17
|
+
* Gets the current token usage data for all models
|
|
18
|
+
*/
|
|
19
|
+
getTokenUsageData(): Promise<ModelTokenUsageData[]>;
|
|
20
|
+
/**
|
|
21
|
+
* Aggregates token usages by model
|
|
22
|
+
*/
|
|
23
|
+
private aggregateTokenUsages;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=token-usage-frontend-service-impl.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token-usage-frontend-service-impl.d.ts","sourceRoot":"","sources":["../../src/browser/token-usage-frontend-service-impl.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAChG,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAC9E,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAE7D,qBACa,2BAA4B,YAAW,uBAAuB;IACvE,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAA6B;IAClE,QAAQ,CAAC,mBAAmB,0CAAmC;IAE/D,gBAAgB,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;CAI5C;AAED,qBACa,6BAA8B,YAAW,yBAAyB;IAG3E,SAAS,CAAC,QAAQ,CAAC,uBAAuB,EAAE,uBAAuB,CAAC;IAGpE,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAExD,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAwC;IAC7E,QAAQ,CAAC,mBAAmB,qDAAmC;IAE/D,OAAO,CAAC,eAAe,CAA6B;IAGpD,SAAS,CAAC,IAAI,IAAI,IAAI;IAQtB;;OAEG;IACG,iBAAiB,IAAI,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAWzD;;OAEG;IACH,OAAO,CAAC,oBAAoB;CA2C/B"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// *****************************************************************************
|
|
3
|
+
// Copyright (C) 2025 EclipseSource GmbH.
|
|
4
|
+
//
|
|
5
|
+
// This program and the accompanying materials are made available under the
|
|
6
|
+
// terms of the Eclipse Public License v. 2.0 which is available at
|
|
7
|
+
// http://www.eclipse.org/legal/epl-2.0.
|
|
8
|
+
//
|
|
9
|
+
// This Source Code may also be made available under the following Secondary
|
|
10
|
+
// Licenses when the conditions for such availability set forth in the Eclipse
|
|
11
|
+
// Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
12
|
+
// with the GNU Classpath Exception which is available at
|
|
13
|
+
// https://www.gnu.org/software/classpath/license.html.
|
|
14
|
+
//
|
|
15
|
+
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
16
|
+
// *****************************************************************************
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.TokenUsageFrontendServiceImpl = exports.TokenUsageServiceClientImpl = 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 token_usage_service_1 = require("../common/token-usage-service");
|
|
23
|
+
const protocol_1 = require("../common/protocol");
|
|
24
|
+
let TokenUsageServiceClientImpl = class TokenUsageServiceClientImpl {
|
|
25
|
+
constructor() {
|
|
26
|
+
this._onTokenUsageUpdated = new core_1.Emitter();
|
|
27
|
+
this.onTokenUsageUpdated = this._onTokenUsageUpdated.event;
|
|
28
|
+
}
|
|
29
|
+
notifyTokenUsage(usage) {
|
|
30
|
+
this._onTokenUsageUpdated.fire(usage);
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
exports.TokenUsageServiceClientImpl = TokenUsageServiceClientImpl;
|
|
34
|
+
exports.TokenUsageServiceClientImpl = TokenUsageServiceClientImpl = tslib_1.__decorate([
|
|
35
|
+
(0, inversify_1.injectable)()
|
|
36
|
+
], TokenUsageServiceClientImpl);
|
|
37
|
+
let TokenUsageFrontendServiceImpl = class TokenUsageFrontendServiceImpl {
|
|
38
|
+
constructor() {
|
|
39
|
+
this._onTokenUsageUpdated = new core_1.Emitter();
|
|
40
|
+
this.onTokenUsageUpdated = this._onTokenUsageUpdated.event;
|
|
41
|
+
this.cachedUsageData = [];
|
|
42
|
+
}
|
|
43
|
+
init() {
|
|
44
|
+
this.tokenUsageServiceClient.onTokenUsageUpdated(() => {
|
|
45
|
+
this.getTokenUsageData().then(data => {
|
|
46
|
+
this._onTokenUsageUpdated.fire(data);
|
|
47
|
+
});
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Gets the current token usage data for all models
|
|
52
|
+
*/
|
|
53
|
+
async getTokenUsageData() {
|
|
54
|
+
try {
|
|
55
|
+
const usages = await this.tokenUsageService.getTokenUsages();
|
|
56
|
+
this.cachedUsageData = this.aggregateTokenUsages(usages);
|
|
57
|
+
return this.cachedUsageData;
|
|
58
|
+
}
|
|
59
|
+
catch (error) {
|
|
60
|
+
console.error('Failed to get token usage data:', error);
|
|
61
|
+
return [];
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Aggregates token usages by model
|
|
66
|
+
*/
|
|
67
|
+
aggregateTokenUsages(usages) {
|
|
68
|
+
// Group by model
|
|
69
|
+
const modelMap = new Map();
|
|
70
|
+
// Process each usage record
|
|
71
|
+
for (const usage of usages) {
|
|
72
|
+
const existing = modelMap.get(usage.model);
|
|
73
|
+
if (existing) {
|
|
74
|
+
existing.inputTokens += usage.inputTokens;
|
|
75
|
+
existing.outputTokens += usage.outputTokens;
|
|
76
|
+
// Update last used if this usage is more recent
|
|
77
|
+
if (!existing.lastUsed || (usage.timestamp && usage.timestamp > existing.lastUsed)) {
|
|
78
|
+
existing.lastUsed = usage.timestamp;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
modelMap.set(usage.model, {
|
|
83
|
+
inputTokens: usage.inputTokens,
|
|
84
|
+
outputTokens: usage.outputTokens,
|
|
85
|
+
lastUsed: usage.timestamp
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
// Convert map to array of model usage data
|
|
90
|
+
const result = [];
|
|
91
|
+
for (const [modelId, data] of modelMap.entries()) {
|
|
92
|
+
result.push({
|
|
93
|
+
modelId,
|
|
94
|
+
inputTokens: data.inputTokens,
|
|
95
|
+
outputTokens: data.outputTokens,
|
|
96
|
+
lastUsed: data.lastUsed
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
return result;
|
|
100
|
+
}
|
|
101
|
+
};
|
|
102
|
+
exports.TokenUsageFrontendServiceImpl = TokenUsageFrontendServiceImpl;
|
|
103
|
+
tslib_1.__decorate([
|
|
104
|
+
(0, inversify_1.inject)(protocol_1.TokenUsageServiceClient),
|
|
105
|
+
tslib_1.__metadata("design:type", Object)
|
|
106
|
+
], TokenUsageFrontendServiceImpl.prototype, "tokenUsageServiceClient", void 0);
|
|
107
|
+
tslib_1.__decorate([
|
|
108
|
+
(0, inversify_1.inject)(token_usage_service_1.TokenUsageService),
|
|
109
|
+
tslib_1.__metadata("design:type", Object)
|
|
110
|
+
], TokenUsageFrontendServiceImpl.prototype, "tokenUsageService", void 0);
|
|
111
|
+
tslib_1.__decorate([
|
|
112
|
+
(0, inversify_1.postConstruct)(),
|
|
113
|
+
tslib_1.__metadata("design:type", Function),
|
|
114
|
+
tslib_1.__metadata("design:paramtypes", []),
|
|
115
|
+
tslib_1.__metadata("design:returntype", void 0)
|
|
116
|
+
], TokenUsageFrontendServiceImpl.prototype, "init", null);
|
|
117
|
+
exports.TokenUsageFrontendServiceImpl = TokenUsageFrontendServiceImpl = tslib_1.__decorate([
|
|
118
|
+
(0, inversify_1.injectable)()
|
|
119
|
+
], TokenUsageFrontendServiceImpl);
|
|
120
|
+
//# sourceMappingURL=token-usage-frontend-service-impl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token-usage-frontend-service-impl.js","sourceRoot":"","sources":["../../src/browser/token-usage-frontend-service-impl.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { Event } from '@theia/core';
|
|
2
|
+
/**
|
|
3
|
+
* Data structure for token usage data specific to a model.
|
|
4
|
+
*/
|
|
5
|
+
export interface ModelTokenUsageData {
|
|
6
|
+
/** The model identifier */
|
|
7
|
+
modelId: string;
|
|
8
|
+
/** Number of input tokens used */
|
|
9
|
+
inputTokens: number;
|
|
10
|
+
/** Number of output tokens used */
|
|
11
|
+
outputTokens: number;
|
|
12
|
+
/** Date when the model was last used */
|
|
13
|
+
lastUsed?: Date;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Service for managing token usage data on the frontend.
|
|
17
|
+
*/
|
|
18
|
+
export declare const TokenUsageFrontendService: unique symbol;
|
|
19
|
+
export interface TokenUsageFrontendService {
|
|
20
|
+
/**
|
|
21
|
+
* Event emitted when token usage data is updated
|
|
22
|
+
*/
|
|
23
|
+
readonly onTokenUsageUpdated: Event<ModelTokenUsageData[]>;
|
|
24
|
+
/**
|
|
25
|
+
* Gets the current token usage data for all models
|
|
26
|
+
*/
|
|
27
|
+
getTokenUsageData(): Promise<ModelTokenUsageData[]>;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=token-usage-frontend-service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token-usage-frontend-service.d.ts","sourceRoot":"","sources":["../../src/browser/token-usage-frontend-service.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAChC,2BAA2B;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,kCAAkC;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,mCAAmC;IACnC,YAAY,EAAE,MAAM,CAAC;IACrB,wCAAwC;IACxC,QAAQ,CAAC,EAAE,IAAI,CAAC;CACnB;AAED;;GAEG;AACH,eAAO,MAAM,yBAAyB,eAAsC,CAAC;AAC7E,MAAM,WAAW,yBAAyB;IACtC;;OAEG;IACH,QAAQ,CAAC,mBAAmB,EAAE,KAAK,CAAC,mBAAmB,EAAE,CAAC,CAAC;IAE3D;;OAEG;IACH,iBAAiB,IAAI,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAAC;CACvD"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// *****************************************************************************
|
|
3
|
+
// Copyright (C) 2025 EclipseSource GmbH.
|
|
4
|
+
//
|
|
5
|
+
// This program and the accompanying materials are made available under the
|
|
6
|
+
// terms of the Eclipse Public License v. 2.0 which is available at
|
|
7
|
+
// http://www.eclipse.org/legal/epl-2.0.
|
|
8
|
+
//
|
|
9
|
+
// This Source Code may also be made available under the following Secondary
|
|
10
|
+
// Licenses when the conditions for such availability set forth in the Eclipse
|
|
11
|
+
// Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
12
|
+
// with the GNU Classpath Exception which is available at
|
|
13
|
+
// https://www.gnu.org/software/classpath/license.html.
|
|
14
|
+
//
|
|
15
|
+
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
16
|
+
// *****************************************************************************
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.TokenUsageFrontendService = void 0;
|
|
19
|
+
/**
|
|
20
|
+
* Service for managing token usage data on the frontend.
|
|
21
|
+
*/
|
|
22
|
+
exports.TokenUsageFrontendService = Symbol('TokenUsageFrontendService');
|
|
23
|
+
//# sourceMappingURL=token-usage-frontend-service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token-usage-frontend-service.js","sourceRoot":"","sources":["../../src/browser/token-usage-frontend-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;;;AAkBhF;;GAEG;AACU,QAAA,yBAAyB,GAAG,MAAM,CAAC,2BAA2B,CAAC,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Resource, URI } from '@theia/core';
|
|
2
|
+
import { AIVariableContext, AIVariableResolutionRequest } from './variable-service';
|
|
3
|
+
import { ConfigurableInMemoryResources, ConfigurableMutableReferenceResource } from './configurable-in-memory-resources';
|
|
4
|
+
export declare const AI_VARIABLE_RESOURCE_SCHEME = "ai-variable";
|
|
5
|
+
export declare const NO_CONTEXT_AUTHORITY = "context-free";
|
|
6
|
+
export declare class AIVariableResourceResolver {
|
|
7
|
+
protected readonly inMemoryResources: ConfigurableInMemoryResources;
|
|
8
|
+
protected init(): void;
|
|
9
|
+
protected readonly cache: Map<string, [Resource, AIVariableContext]>;
|
|
10
|
+
getOrCreate(request: AIVariableResolutionRequest, context: AIVariableContext, value: string): ConfigurableMutableReferenceResource;
|
|
11
|
+
protected toUri(request: AIVariableResolutionRequest, context: AIVariableContext): URI;
|
|
12
|
+
protected toAuthority(context: AIVariableContext): string;
|
|
13
|
+
fromUri(uri: URI): {
|
|
14
|
+
variableName: string;
|
|
15
|
+
arg: string | undefined;
|
|
16
|
+
} | undefined;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=ai-variable-resource.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ai-variable-resource.d.ts","sourceRoot":"","sources":["../../src/common/ai-variable-resource.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAgB,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AAEpF,OAAO,EAAE,6BAA6B,EAAE,oCAAoC,EAAE,MAAM,oCAAoC,CAAC;AAEzH,eAAO,MAAM,2BAA2B,gBAAgB,CAAC;AACzD,eAAO,MAAM,oBAAoB,iBAAiB,CAAC;AAEnD,qBACa,0BAA0B;IACI,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,6BAA6B,CAAC;IAG3G,SAAS,CAAC,IAAI,IAAI,IAAI;IAItB,SAAS,CAAC,QAAQ,CAAC,KAAK,6CAAoD;IAE5E,WAAW,CAAC,OAAO,EAAE,2BAA2B,EAAE,OAAO,EAAE,iBAAiB,EAAE,KAAK,EAAE,MAAM,GAAG,oCAAoC;IAalI,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,2BAA2B,EAAE,OAAO,EAAE,iBAAiB,GAAG,GAAG;IAUtF,SAAS,CAAC,WAAW,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM;IAezD,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,GAAG,SAAS;CAUnF"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// *****************************************************************************
|
|
3
|
+
// Copyright (C) 2025 EclipseSource GmbH and others.
|
|
4
|
+
//
|
|
5
|
+
// This program and the accompanying materials are made available under the
|
|
6
|
+
// terms of the Eclipse Public License v. 2.0 which is available at
|
|
7
|
+
// http://www.eclipse.org/legal/epl-2.0.
|
|
8
|
+
//
|
|
9
|
+
// This Source Code may also be made available under the following Secondary
|
|
10
|
+
// Licenses when the conditions for such availability set forth in the Eclipse
|
|
11
|
+
// Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
12
|
+
// with the GNU Classpath Exception which is available at
|
|
13
|
+
// https://www.gnu.org/software/classpath/license.html.
|
|
14
|
+
//
|
|
15
|
+
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
16
|
+
// *****************************************************************************
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.AIVariableResourceResolver = exports.NO_CONTEXT_AUTHORITY = exports.AI_VARIABLE_RESOURCE_SCHEME = void 0;
|
|
19
|
+
const tslib_1 = require("tslib");
|
|
20
|
+
const deepEqual = require("fast-deep-equal");
|
|
21
|
+
const inversify_1 = require("@theia/core/shared/inversify");
|
|
22
|
+
const core_1 = require("@theia/core");
|
|
23
|
+
const stableJsonStringify = require("fast-json-stable-stringify");
|
|
24
|
+
const configurable_in_memory_resources_1 = require("./configurable-in-memory-resources");
|
|
25
|
+
exports.AI_VARIABLE_RESOURCE_SCHEME = 'ai-variable';
|
|
26
|
+
exports.NO_CONTEXT_AUTHORITY = 'context-free';
|
|
27
|
+
let AIVariableResourceResolver = class AIVariableResourceResolver {
|
|
28
|
+
constructor() {
|
|
29
|
+
this.cache = new Map();
|
|
30
|
+
}
|
|
31
|
+
init() {
|
|
32
|
+
this.inMemoryResources.onWillDispose(resource => this.cache.delete(resource.uri.toString()));
|
|
33
|
+
}
|
|
34
|
+
getOrCreate(request, context, value) {
|
|
35
|
+
const uri = this.toUri(request, context);
|
|
36
|
+
try {
|
|
37
|
+
const existing = this.inMemoryResources.resolve(uri);
|
|
38
|
+
existing.update({ contents: value });
|
|
39
|
+
return existing;
|
|
40
|
+
}
|
|
41
|
+
catch { /* No-op */ }
|
|
42
|
+
const fresh = this.inMemoryResources.add(uri, { contents: value, readOnly: true, initiallyDirty: false });
|
|
43
|
+
const key = uri.toString();
|
|
44
|
+
this.cache.set(key, [fresh, context]);
|
|
45
|
+
return fresh;
|
|
46
|
+
}
|
|
47
|
+
toUri(request, context) {
|
|
48
|
+
return core_1.URI.fromComponents({
|
|
49
|
+
scheme: exports.AI_VARIABLE_RESOURCE_SCHEME,
|
|
50
|
+
query: stableJsonStringify({ arg: request.arg, name: request.variable.name }),
|
|
51
|
+
path: '/',
|
|
52
|
+
authority: this.toAuthority(context),
|
|
53
|
+
fragment: ''
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
toAuthority(context) {
|
|
57
|
+
try {
|
|
58
|
+
if (deepEqual(context, {})) {
|
|
59
|
+
return exports.NO_CONTEXT_AUTHORITY;
|
|
60
|
+
}
|
|
61
|
+
for (const [resource, cachedContext] of this.cache.values()) {
|
|
62
|
+
if (deepEqual(context, cachedContext)) {
|
|
63
|
+
return resource.uri.authority;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
catch (err) {
|
|
68
|
+
// Mostly that deep equal could overflow the stack, but it should run into === or inequality before that.
|
|
69
|
+
console.warn('Problem evaluating context in AIVariableResourceResolver', err);
|
|
70
|
+
}
|
|
71
|
+
return (0, core_1.generateUuid)();
|
|
72
|
+
}
|
|
73
|
+
fromUri(uri) {
|
|
74
|
+
if (uri.scheme !== exports.AI_VARIABLE_RESOURCE_SCHEME) {
|
|
75
|
+
return undefined;
|
|
76
|
+
}
|
|
77
|
+
try {
|
|
78
|
+
const { name: variableName, arg } = JSON.parse(uri.query);
|
|
79
|
+
return variableName ? {
|
|
80
|
+
variableName,
|
|
81
|
+
arg,
|
|
82
|
+
} : undefined;
|
|
83
|
+
}
|
|
84
|
+
catch {
|
|
85
|
+
return undefined;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
};
|
|
89
|
+
exports.AIVariableResourceResolver = AIVariableResourceResolver;
|
|
90
|
+
tslib_1.__decorate([
|
|
91
|
+
(0, inversify_1.inject)(configurable_in_memory_resources_1.ConfigurableInMemoryResources),
|
|
92
|
+
tslib_1.__metadata("design:type", configurable_in_memory_resources_1.ConfigurableInMemoryResources)
|
|
93
|
+
], AIVariableResourceResolver.prototype, "inMemoryResources", void 0);
|
|
94
|
+
tslib_1.__decorate([
|
|
95
|
+
(0, inversify_1.postConstruct)(),
|
|
96
|
+
tslib_1.__metadata("design:type", Function),
|
|
97
|
+
tslib_1.__metadata("design:paramtypes", []),
|
|
98
|
+
tslib_1.__metadata("design:returntype", void 0)
|
|
99
|
+
], AIVariableResourceResolver.prototype, "init", null);
|
|
100
|
+
exports.AIVariableResourceResolver = AIVariableResourceResolver = tslib_1.__decorate([
|
|
101
|
+
(0, inversify_1.injectable)()
|
|
102
|
+
], AIVariableResourceResolver);
|
|
103
|
+
//# sourceMappingURL=ai-variable-resource.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ai-variable-resource.js","sourceRoot":"","sources":["../../src/common/ai-variable-resource.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,oDAAoD;AACpD,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;;AAEhF,6CAA6C;AAC7C,4DAAiF;AACjF,sCAA0D;AAE1D,kEAAmE;AACnE,yFAAyH;AAE5G,QAAA,2BAA2B,GAAG,aAAa,CAAC;AAC5C,QAAA,oBAAoB,GAAG,cAAc,CAAC;AAG5C,IAAM,0BAA0B,GAAhC,MAAM,0BAA0B;IAAhC;QAQgB,UAAK,GAAG,IAAI,GAAG,EAAyC,CAAC;IAkDhF,CAAC;IAtDa,IAAI;QACV,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IACjG,CAAC;IAID,WAAW,CAAC,OAAoC,EAAE,OAA0B,EAAE,KAAa;QACvF,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACzC,IAAI,CAAC;YACD,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACrD,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;YACrC,OAAO,QAAQ,CAAC;QACpB,CAAC;QAAC,MAAM,CAAC,CAAC,WAAW,CAAC,CAAC;QACvB,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,CAAC;QAC1G,MAAM,GAAG,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;QAC3B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;QACtC,OAAO,KAAK,CAAC;IACjB,CAAC;IAES,KAAK,CAAC,OAAoC,EAAE,OAA0B;QAC5E,OAAO,UAAG,CAAC,cAAc,CAAC;YACtB,MAAM,EAAE,mCAA2B;YACnC,KAAK,EAAE,mBAAmB,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YAC7E,IAAI,EAAE,GAAG;YACT,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;YACpC,QAAQ,EAAE,EAAE;SACf,CAAC,CAAC;IACP,CAAC;IAES,WAAW,CAAC,OAA0B;QAC5C,IAAI,CAAC;YACD,IAAI,SAAS,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC;gBAAC,OAAO,4BAAoB,CAAC;YAAC,CAAC;YAC5D,KAAK,MAAM,CAAC,QAAQ,EAAE,aAAa,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;gBAC1D,IAAI,SAAS,CAAC,OAAO,EAAE,aAAa,CAAC,EAAE,CAAC;oBACpC,OAAO,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC;gBAClC,CAAC;YACL,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,yGAAyG;YACzG,OAAO,CAAC,IAAI,CAAC,0DAA0D,EAAE,GAAG,CAAC,CAAC;QAClF,CAAC;QACD,OAAO,IAAA,mBAAY,GAAE,CAAC;IAC1B,CAAC;IAED,OAAO,CAAC,GAAQ;QACZ,IAAI,GAAG,CAAC,MAAM,KAAK,mCAA2B,EAAE,CAAC;YAAC,OAAO,SAAS,CAAC;QAAC,CAAC;QACrE,IAAI,CAAC;YACD,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAC1D,OAAO,YAAY,CAAC,CAAC,CAAC;gBAClB,YAAY;gBACZ,GAAG;aACN,CAAC,CAAC,CAAC,SAAS,CAAC;QAClB,CAAC;QAAC,MAAM,CAAC;YAAC,OAAO,SAAS,CAAC;QAAC,CAAC;IACjC,CAAC;CACJ,CAAA;AA1DY,gEAA0B;AACuB;IAAzD,IAAA,kBAAM,EAAC,gEAA6B,CAAC;sCAAuC,gEAA6B;qEAAC;AAGjG;IADT,IAAA,yBAAa,GAAE;;;;sDAGf;qCANQ,0BAA0B;IADtC,IAAA,sBAAU,GAAE;GACA,0BAA0B,CA0DtC"}
|