@theia/ai-llamafile 1.67.0-next.13 → 1.67.0-next.56

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.
Files changed (37) hide show
  1. package/package.json +5 -5
  2. package/lib/browser/llamafile-command-contribution.d.ts +0 -21
  3. package/lib/browser/llamafile-command-contribution.d.ts.map +0 -1
  4. package/lib/browser/llamafile-command-contribution.js +0 -104
  5. package/lib/browser/llamafile-command-contribution.js.map +0 -1
  6. package/lib/browser/llamafile-frontend-application-contribution.d.ts +0 -17
  7. package/lib/browser/llamafile-frontend-application-contribution.d.ts.map +0 -1
  8. package/lib/browser/llamafile-frontend-application-contribution.js +0 -91
  9. package/lib/browser/llamafile-frontend-application-contribution.js.map +0 -1
  10. package/lib/browser/llamafile-frontend-module.d.ts +0 -4
  11. package/lib/browser/llamafile-frontend-module.d.ts.map +0 -1
  12. package/lib/browser/llamafile-frontend-module.js +0 -46
  13. package/lib/browser/llamafile-frontend-module.js.map +0 -1
  14. package/lib/common/llamafile-language-model.d.ts +0 -20
  15. package/lib/common/llamafile-language-model.d.ts.map +0 -1
  16. package/lib/common/llamafile-language-model.js +0 -130
  17. package/lib/common/llamafile-language-model.js.map +0 -1
  18. package/lib/common/llamafile-manager.d.ts +0 -20
  19. package/lib/common/llamafile-manager.d.ts.map +0 -1
  20. package/lib/common/llamafile-manager.js +0 -21
  21. package/lib/common/llamafile-manager.js.map +0 -1
  22. package/lib/common/llamafile-preferences.d.ts +0 -7
  23. package/lib/common/llamafile-preferences.d.ts.map +0 -1
  24. package/lib/common/llamafile-preferences.js +0 -61
  25. package/lib/common/llamafile-preferences.js.map +0 -1
  26. package/lib/node/llamafile-backend-module.d.ts +0 -4
  27. package/lib/node/llamafile-backend-module.d.ts.map +0 -1
  28. package/lib/node/llamafile-backend-module.js +0 -37
  29. package/lib/node/llamafile-backend-module.js.map +0 -1
  30. package/lib/node/llamafile-manager-impl.d.ts +0 -16
  31. package/lib/node/llamafile-manager-impl.d.ts.map +0 -1
  32. package/lib/node/llamafile-manager-impl.js +0 -131
  33. package/lib/node/llamafile-manager-impl.js.map +0 -1
  34. package/lib/package.spec.d.ts +0 -1
  35. package/lib/package.spec.d.ts.map +0 -1
  36. package/lib/package.spec.js +0 -26
  37. package/lib/package.spec.js.map +0 -1
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "@theia/ai-llamafile",
3
- "version": "1.67.0-next.13+c409d5d18",
3
+ "version": "1.67.0-next.56+d8f18cc386c",
4
4
  "description": "Theia - Llamafile Integration",
5
5
  "dependencies": {
6
- "@theia/ai-core": "1.67.0-next.13+c409d5d18",
7
- "@theia/core": "1.67.0-next.13+c409d5d18",
8
- "@theia/output": "1.67.0-next.13+c409d5d18",
6
+ "@theia/ai-core": "1.67.0-next.56+d8f18cc386c",
7
+ "@theia/core": "1.67.0-next.56+d8f18cc386c",
8
+ "@theia/output": "1.67.0-next.56+d8f18cc386c",
9
9
  "tslib": "^2.6.2"
10
10
  },
11
11
  "publishConfig": {
@@ -47,5 +47,5 @@
47
47
  "nyc": {
48
48
  "extends": "../../configs/nyc.json"
49
49
  },
50
- "gitHead": "c409d5d18d8c4f5a722f87b37ea9d6fd5af47ea8"
50
+ "gitHead": "d8f18cc386c45a736cd193d42eab02c8f64c6b10"
51
51
  }
@@ -1,21 +0,0 @@
1
- import { AICommandHandlerFactory } from '@theia/ai-core/lib/browser/ai-command-handler-factory';
2
- import { CommandContribution, CommandRegistry, MessageService, PreferenceService } from '@theia/core';
3
- import { QuickInputService } from '@theia/core/lib/browser';
4
- import { LlamafileManager } from '../common/llamafile-manager';
5
- export declare const StartLlamafileCommand: {
6
- id: string;
7
- label: string;
8
- };
9
- export declare const StopLlamafileCommand: {
10
- id: string;
11
- label: string;
12
- };
13
- export declare class LlamafileCommandContribution implements CommandContribution {
14
- protected readonly quickInputService: QuickInputService;
15
- protected readonly commandHandlerFactory: AICommandHandlerFactory;
16
- protected preferenceService: PreferenceService;
17
- protected messageService: MessageService;
18
- protected llamafileManager: LlamafileManager;
19
- registerCommands(commandRegistry: CommandRegistry): void;
20
- }
21
- //# sourceMappingURL=llamafile-command-contribution.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"llamafile-command-contribution.d.ts","sourceRoot":"","sources":["../../src/browser/llamafile-command-contribution.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,uBAAuB,EAAE,MAAM,uDAAuD,CAAC;AAChG,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,cAAc,EAAO,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAC3G,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAI/D,eAAO,MAAM,qBAAqB;;;CAGjC,CAAC;AACF,eAAO,MAAM,oBAAoB;;;CAGhC,CAAC;AAEF,qBACa,4BAA6B,YAAW,mBAAmB;IAGpE,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAGxD,SAAS,CAAC,QAAQ,CAAC,qBAAqB,EAAE,uBAAuB,CAAC;IAGlE,SAAS,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAG/C,SAAS,CAAC,cAAc,EAAE,cAAc,CAAC;IAGzC,SAAS,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAE7C,gBAAgB,CAAC,eAAe,EAAE,eAAe,GAAG,IAAI;CAoD3D"}
@@ -1,104 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.LlamafileCommandContribution = exports.StopLlamafileCommand = exports.StartLlamafileCommand = void 0;
4
- const tslib_1 = require("tslib");
5
- // *****************************************************************************
6
- // Copyright (C) 2024 EclipseSource GmbH.
7
- //
8
- // This program and the accompanying materials are made available under the
9
- // terms of the Eclipse Public License v. 2.0 which is available at
10
- // http://www.eclipse.org/legal/epl-2.0.
11
- //
12
- // This Source Code may also be made available under the following Secondary
13
- // Licenses when the conditions for such availability set forth in the Eclipse
14
- // Public License v. 2.0 are satisfied: GNU General Public License, version 2
15
- // with the GNU Classpath Exception which is available at
16
- // https://www.gnu.org/software/classpath/license.html.
17
- //
18
- // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
19
- // *****************************************************************************
20
- const ai_command_handler_factory_1 = require("@theia/ai-core/lib/browser/ai-command-handler-factory");
21
- const core_1 = require("@theia/core");
22
- const browser_1 = require("@theia/core/lib/browser");
23
- const inversify_1 = require("@theia/core/shared/inversify");
24
- const llamafile_manager_1 = require("../common/llamafile-manager");
25
- const llamafile_preferences_1 = require("../common/llamafile-preferences");
26
- exports.StartLlamafileCommand = {
27
- id: 'llamafile.start',
28
- label: core_1.nls.localize('theia/ai/llamaFile/start', 'Start Llamafile'),
29
- };
30
- exports.StopLlamafileCommand = {
31
- id: 'llamafile.stop',
32
- label: core_1.nls.localize('theia/ai/llamaFile/stop', 'Stop Llamafile'),
33
- };
34
- let LlamafileCommandContribution = class LlamafileCommandContribution {
35
- registerCommands(commandRegistry) {
36
- commandRegistry.registerCommand(exports.StartLlamafileCommand, this.commandHandlerFactory({
37
- execute: async () => {
38
- try {
39
- const llamaFiles = this.preferenceService.get(llamafile_preferences_1.PREFERENCE_LLAMAFILE);
40
- if (llamaFiles === undefined || llamaFiles.length === 0) {
41
- this.messageService.error(core_1.nls.localize('theia/ai/llamafile/error/noConfigured', 'No Llamafiles configured.'));
42
- return;
43
- }
44
- const options = llamaFiles.map(llamaFile => ({ label: llamaFile.name }));
45
- const result = await this.quickInputService.showQuickPick(options);
46
- if (result === undefined) {
47
- return;
48
- }
49
- this.llamafileManager.startServer(result.label);
50
- }
51
- catch (error) {
52
- console.error('Something went wrong during the llamafile start.', error);
53
- this.messageService.error(core_1.nls.localize('theia/ai/llamafile/error/startFailed', 'Something went wrong during the llamafile start: {0}.\nFor more information, see the console.', error.message));
54
- }
55
- }
56
- }));
57
- commandRegistry.registerCommand(exports.StopLlamafileCommand, this.commandHandlerFactory({
58
- execute: async () => {
59
- try {
60
- const llamaFiles = await this.llamafileManager.getStartedLlamafiles();
61
- if (llamaFiles === undefined || llamaFiles.length === 0) {
62
- this.messageService.error(core_1.nls.localize('theia/ai/llamafile/error/noRunning', 'No Llamafiles running.'));
63
- return;
64
- }
65
- const options = llamaFiles.map(llamaFile => ({ label: llamaFile }));
66
- const result = await this.quickInputService.showQuickPick(options);
67
- if (result === undefined) {
68
- return;
69
- }
70
- this.llamafileManager.stopServer(result.label);
71
- }
72
- catch (error) {
73
- console.error('Something went wrong during the llamafile stop.', error);
74
- this.messageService.error(core_1.nls.localize('theia/ai/llamafile/error/stopFailed', 'Something went wrong during the llamafile stop: {0}.\nFor more information, see the console.', error.message));
75
- }
76
- }
77
- }));
78
- }
79
- };
80
- exports.LlamafileCommandContribution = LlamafileCommandContribution;
81
- tslib_1.__decorate([
82
- (0, inversify_1.inject)(browser_1.QuickInputService),
83
- tslib_1.__metadata("design:type", Object)
84
- ], LlamafileCommandContribution.prototype, "quickInputService", void 0);
85
- tslib_1.__decorate([
86
- (0, inversify_1.inject)(ai_command_handler_factory_1.AICommandHandlerFactory),
87
- tslib_1.__metadata("design:type", Function)
88
- ], LlamafileCommandContribution.prototype, "commandHandlerFactory", void 0);
89
- tslib_1.__decorate([
90
- (0, inversify_1.inject)(core_1.PreferenceService),
91
- tslib_1.__metadata("design:type", Object)
92
- ], LlamafileCommandContribution.prototype, "preferenceService", void 0);
93
- tslib_1.__decorate([
94
- (0, inversify_1.inject)(core_1.MessageService),
95
- tslib_1.__metadata("design:type", core_1.MessageService)
96
- ], LlamafileCommandContribution.prototype, "messageService", void 0);
97
- tslib_1.__decorate([
98
- (0, inversify_1.inject)(llamafile_manager_1.LlamafileManager),
99
- tslib_1.__metadata("design:type", Object)
100
- ], LlamafileCommandContribution.prototype, "llamafileManager", void 0);
101
- exports.LlamafileCommandContribution = LlamafileCommandContribution = tslib_1.__decorate([
102
- (0, inversify_1.injectable)()
103
- ], LlamafileCommandContribution);
104
- //# sourceMappingURL=llamafile-command-contribution.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"llamafile-command-contribution.js","sourceRoot":"","sources":["../../src/browser/llamafile-command-contribution.ts"],"names":[],"mappings":"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"}
@@ -1,17 +0,0 @@
1
- import { FrontendApplicationContribution } from '@theia/core/lib/browser';
2
- import { LlamafileManager, LlamafileModelDescription } from '../common/llamafile-manager';
3
- import { PreferenceService } from '@theia/core';
4
- export declare class LlamafileFrontendApplicationContribution implements FrontendApplicationContribution {
5
- protected preferenceService: PreferenceService;
6
- protected llamafileManager: LlamafileManager;
7
- private _knownLlamaFiles;
8
- onStart(): void;
9
- protected getLLamaFileModelDescriptions(llamafiles: LlamafileEntry[]): LlamafileModelDescription[];
10
- protected handleLlamaFilePreferenceChange(newModels: LlamafileEntry[]): void;
11
- }
12
- export interface LlamafileEntry {
13
- name: string;
14
- uri: string;
15
- port: number;
16
- }
17
- //# sourceMappingURL=llamafile-frontend-application-contribution.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"llamafile-frontend-application-contribution.d.ts","sourceRoot":"","sources":["../../src/browser/llamafile-frontend-application-contribution.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,+BAA+B,EAAE,MAAM,yBAAyB,CAAC;AAE1E,OAAO,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AAE1F,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhD,qBACa,wCAAyC,YAAW,+BAA+B;IAG5F,SAAS,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAG/C,SAAS,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAE7C,OAAO,CAAC,gBAAgB,CAA0C;IAElE,OAAO,IAAI,IAAI;IAmBf,SAAS,CAAC,6BAA6B,CAAC,UAAU,EAAE,cAAc,EAAE,GAAG,yBAAyB,EAAE;IAQlG,SAAS,CAAC,+BAA+B,CAAC,SAAS,EAAE,cAAc,EAAE,GAAG,IAAI;CAe/E;AAED,MAAM,WAAW,cAAc;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;CAChB"}
@@ -1,91 +0,0 @@
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.LlamafileFrontendApplicationContribution = void 0;
19
- const tslib_1 = require("tslib");
20
- const inversify_1 = require("@theia/core/shared/inversify");
21
- const llamafile_manager_1 = require("../common/llamafile-manager");
22
- const llamafile_preferences_1 = require("../common/llamafile-preferences");
23
- const core_1 = require("@theia/core");
24
- let LlamafileFrontendApplicationContribution = class LlamafileFrontendApplicationContribution {
25
- constructor() {
26
- this._knownLlamaFiles = new Map();
27
- }
28
- onStart() {
29
- this.preferenceService.ready.then(() => {
30
- const llamafiles = this.preferenceService.get(llamafile_preferences_1.PREFERENCE_LLAMAFILE, []);
31
- const validLlamafiles = llamafiles.filter(LlamafileEntry.is);
32
- const LlamafileModelDescriptions = this.getLLamaFileModelDescriptions(validLlamafiles);
33
- this.llamafileManager.addLanguageModels(LlamafileModelDescriptions);
34
- validLlamafiles.forEach(model => this._knownLlamaFiles.set(model.name, model));
35
- this.preferenceService.onPreferenceChanged(event => {
36
- if (event.preferenceName === llamafile_preferences_1.PREFERENCE_LLAMAFILE) {
37
- const newModels = event.newValue.filter((llamafileEntry) => LlamafileEntry.is(llamafileEntry));
38
- this.handleLlamaFilePreferenceChange(newModels);
39
- }
40
- });
41
- });
42
- }
43
- getLLamaFileModelDescriptions(llamafiles) {
44
- return llamafiles.map(llamafile => ({
45
- name: llamafile.name,
46
- uri: llamafile.uri,
47
- port: llamafile.port
48
- }));
49
- }
50
- handleLlamaFilePreferenceChange(newModels) {
51
- const llamafilesToAdd = newModels.filter(llamafile => !this._knownLlamaFiles.has(llamafile.name) ||
52
- !LlamafileEntry.equals(this._knownLlamaFiles.get(llamafile.name), llamafile));
53
- const llamafileIdsToRemove = [...this._knownLlamaFiles.values()].filter(llamafile => !newModels.find(newModel => LlamafileEntry.equals(newModel, llamafile)))
54
- .map(llamafile => llamafile.name);
55
- this.llamafileManager.removeLanguageModels(llamafileIdsToRemove);
56
- llamafileIdsToRemove.forEach(id => this._knownLlamaFiles.delete(id));
57
- this.llamafileManager.addLanguageModels(this.getLLamaFileModelDescriptions(llamafilesToAdd));
58
- llamafilesToAdd.forEach(model => this._knownLlamaFiles.set(model.name, model));
59
- }
60
- };
61
- exports.LlamafileFrontendApplicationContribution = LlamafileFrontendApplicationContribution;
62
- tslib_1.__decorate([
63
- (0, inversify_1.inject)(core_1.PreferenceService),
64
- tslib_1.__metadata("design:type", Object)
65
- ], LlamafileFrontendApplicationContribution.prototype, "preferenceService", void 0);
66
- tslib_1.__decorate([
67
- (0, inversify_1.inject)(llamafile_manager_1.LlamafileManager),
68
- tslib_1.__metadata("design:type", Object)
69
- ], LlamafileFrontendApplicationContribution.prototype, "llamafileManager", void 0);
70
- exports.LlamafileFrontendApplicationContribution = LlamafileFrontendApplicationContribution = tslib_1.__decorate([
71
- (0, inversify_1.injectable)()
72
- ], LlamafileFrontendApplicationContribution);
73
- var LlamafileEntry;
74
- (function (LlamafileEntry) {
75
- function equals(a, b) {
76
- return (a.name === b.name &&
77
- a.uri === b.uri &&
78
- a.port === b.port);
79
- }
80
- LlamafileEntry.equals = equals;
81
- function is(entry) {
82
- return (typeof entry === 'object' &&
83
- // eslint-disable-next-line no-null/no-null
84
- entry !== null &&
85
- 'name' in entry && typeof entry.name === 'string' &&
86
- 'uri' in entry && typeof entry.uri === 'string' &&
87
- 'port' in entry && typeof entry.port === 'number');
88
- }
89
- LlamafileEntry.is = is;
90
- })(LlamafileEntry || (LlamafileEntry = {}));
91
- //# sourceMappingURL=llamafile-frontend-application-contribution.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"llamafile-frontend-application-contribution.js","sourceRoot":"","sources":["../../src/browser/llamafile-frontend-application-contribution.ts"],"names":[],"mappings":"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"}
@@ -1,4 +0,0 @@
1
- import { ContainerModule } from '@theia/core/shared/inversify';
2
- declare const _default: ContainerModule;
3
- export default _default;
4
- //# sourceMappingURL=llamafile-frontend-module.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"llamafile-frontend-module.d.ts","sourceRoot":"","sources":["../../src/browser/llamafile-frontend-module.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;;AAO/D,wBAoBG"}
@@ -1,46 +0,0 @@
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 core_1 = require("@theia/core");
19
- const browser_1 = require("@theia/core/lib/browser");
20
- const inversify_1 = require("@theia/core/shared/inversify");
21
- const output_channel_1 = require("@theia/output/lib/browser/output-channel");
22
- const llamafile_manager_1 = require("../common/llamafile-manager");
23
- const llamafile_command_contribution_1 = require("./llamafile-command-contribution");
24
- const llamafile_frontend_application_contribution_1 = require("./llamafile-frontend-application-contribution");
25
- const llamafile_preferences_1 = require("../common/llamafile-preferences");
26
- exports.default = new inversify_1.ContainerModule(bind => {
27
- bind(browser_1.FrontendApplicationContribution).to(llamafile_frontend_application_contribution_1.LlamafileFrontendApplicationContribution).inSingletonScope();
28
- bind(core_1.CommandContribution).to(llamafile_command_contribution_1.LlamafileCommandContribution).inSingletonScope();
29
- bind(llamafile_manager_1.LlamafileManager).toDynamicValue(ctx => {
30
- const connection = ctx.container.get(browser_1.RemoteConnectionProvider);
31
- const outputChannelManager = ctx.container.get(output_channel_1.OutputChannelManager);
32
- const client = {
33
- error: (llamafileName, message) => {
34
- const channel = outputChannelManager.getChannel(`${llamafileName}-llamafile`);
35
- channel.appendLine(message, output_channel_1.OutputChannelSeverity.Error);
36
- },
37
- log: (llamafileName, message) => {
38
- const channel = outputChannelManager.getChannel(`${llamafileName}-llamafile`);
39
- channel.appendLine(message, output_channel_1.OutputChannelSeverity.Info);
40
- }
41
- };
42
- return connection.createProxy(llamafile_manager_1.LlamafileManagerPath, client);
43
- }).inSingletonScope();
44
- (0, llamafile_preferences_1.bindAILlamafilePreferences)(bind);
45
- });
46
- //# sourceMappingURL=llamafile-frontend-module.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"llamafile-frontend-module.js","sourceRoot":"","sources":["../../src/browser/llamafile-frontend-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,sCAAkD;AAClD,qDAA+H;AAC/H,4DAA+D;AAC/D,6EAAuG;AACvG,mEAAmH;AACnH,qFAAgF;AAChF,+GAAyG;AACzG,2EAA6E;AAE7E,kBAAe,IAAI,2BAAe,CAAC,IAAI,CAAC,EAAE;IACtC,IAAI,CAAC,yCAA+B,CAAC,CAAC,EAAE,CAAC,sFAAwC,CAAC,CAAC,gBAAgB,EAAE,CAAC;IACtG,IAAI,CAAC,0BAAmB,CAAC,CAAC,EAAE,CAAC,6DAA4B,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAC9E,IAAI,CAAC,oCAAgB,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;QACxC,MAAM,UAAU,GAAG,GAAG,CAAC,SAAS,CAAC,GAAG,CAA4B,kCAAwB,CAAC,CAAC;QAC1F,MAAM,oBAAoB,GAAG,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,qCAAoB,CAAC,CAAC;QACrE,MAAM,MAAM,GAAiC;YACzC,KAAK,EAAE,CAAC,aAAa,EAAE,OAAO,EAAE,EAAE;gBAC9B,MAAM,OAAO,GAAG,oBAAoB,CAAC,UAAU,CAAC,GAAG,aAAa,YAAY,CAAC,CAAC;gBAC9E,OAAO,CAAC,UAAU,CAAC,OAAO,EAAE,sCAAqB,CAAC,KAAK,CAAC,CAAC;YAC7D,CAAC;YACD,GAAG,EAAE,CAAC,aAAa,EAAE,OAAO,EAAE,EAAE;gBAC5B,MAAM,OAAO,GAAG,oBAAoB,CAAC,UAAU,CAAC,GAAG,aAAa,YAAY,CAAC,CAAC;gBAC9E,OAAO,CAAC,UAAU,CAAC,OAAO,EAAE,sCAAqB,CAAC,IAAI,CAAC,CAAC;YAC5D,CAAC;SACJ,CAAC;QACF,OAAO,UAAU,CAAC,WAAW,CAAmB,wCAAoB,EAAE,MAAM,CAAC,CAAC;IAClF,CAAC,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAEtB,IAAA,kDAA0B,EAAC,IAAI,CAAC,CAAC;AACrC,CAAC,CAAC,CAAC"}
@@ -1,20 +0,0 @@
1
- import { LanguageModel, LanguageModelRequest, LanguageModelResponse, LanguageModelStatus } from '@theia/ai-core';
2
- import { CancellationToken } from '@theia/core';
3
- export declare class LlamafileLanguageModel implements LanguageModel {
4
- readonly name: string;
5
- status: LanguageModelStatus;
6
- readonly uri: string;
7
- readonly port: number;
8
- readonly providerId = "llamafile";
9
- readonly vendor: string;
10
- /**
11
- * @param name the unique name for this language model. It will be used to identify the model in the UI.
12
- * @param uri the URI pointing to the Llamafile model location.
13
- * @param port the port on which the Llamafile model server operates.
14
- */
15
- constructor(name: string, status: LanguageModelStatus, uri: string, port: number);
16
- get id(): string;
17
- protected getSettings(request: LanguageModelRequest): Record<string, unknown>;
18
- request(request: LanguageModelRequest, cancellationToken?: CancellationToken): Promise<LanguageModelResponse>;
19
- }
20
- //# sourceMappingURL=llamafile-language-model.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"llamafile-language-model.d.ts","sourceRoot":"","sources":["../../src/common/llamafile-language-model.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,aAAa,EAAwB,oBAAoB,EAAE,qBAAqB,EAAE,mBAAmB,EAAmC,MAAM,gBAAgB,CAAC;AACxK,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAShD,qBAAa,sBAAuB,YAAW,aAAa;aAWpC,IAAI,EAAE,MAAM;IACrB,MAAM,EAAE,mBAAmB;aAClB,GAAG,EAAE,MAAM;aACX,IAAI,EAAE,MAAM;IAZhC,QAAQ,CAAC,UAAU,eAAe;IAClC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAa;IAEpC;;;;OAIG;gBAEiB,IAAI,EAAE,MAAM,EACrB,MAAM,EAAE,mBAAmB,EAClB,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM;IAGhC,IAAI,EAAE,IAAI,MAAM,CAEf;IACD,SAAS,CAAC,WAAW,CAAC,OAAO,EAAE,oBAAoB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAUvE,OAAO,CAAC,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,qBAAqB,CAAC;CA6EtH"}
@@ -1,130 +0,0 @@
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.LlamafileLanguageModel = void 0;
19
- const ai_core_1 = require("@theia/ai-core");
20
- const createMessageContent = (message) => {
21
- if (ai_core_1.LanguageModelMessage.isTextMessage(message)) {
22
- return message.text;
23
- }
24
- return undefined;
25
- };
26
- class LlamafileLanguageModel {
27
- /**
28
- * @param name the unique name for this language model. It will be used to identify the model in the UI.
29
- * @param uri the URI pointing to the Llamafile model location.
30
- * @param port the port on which the Llamafile model server operates.
31
- */
32
- constructor(name, status, uri, port) {
33
- this.name = name;
34
- this.status = status;
35
- this.uri = uri;
36
- this.port = port;
37
- this.providerId = 'llamafile';
38
- this.vendor = 'Mozilla';
39
- }
40
- get id() {
41
- return this.name;
42
- }
43
- getSettings(request) {
44
- var _a;
45
- return {
46
- n_predict: 200,
47
- stream: true,
48
- stop: ['</s>', 'Llama:', 'User:', '<|eot_id|>'],
49
- cache_prompt: true,
50
- ...((_a = request.settings) !== null && _a !== void 0 ? _a : {})
51
- };
52
- }
53
- async request(request, cancellationToken) {
54
- const settings = this.getSettings(request);
55
- try {
56
- let prompt = request.messages.map(message => {
57
- const content = createMessageContent(message);
58
- if (content === undefined) {
59
- return undefined;
60
- }
61
- switch (message.actor) {
62
- case 'user':
63
- return `User: ${content}`;
64
- case 'ai':
65
- return `Llama: ${content}`;
66
- case 'system':
67
- return `${content.replace(/\n\n/g, '\n')}`;
68
- }
69
- }).filter(m => m !== undefined).join('\n');
70
- prompt += '\nLlama:';
71
- const response = await fetch(`http://localhost:${this.port}/completion`, {
72
- method: 'POST',
73
- headers: {
74
- 'Content-Type': 'application/json',
75
- },
76
- body: JSON.stringify({
77
- prompt: prompt,
78
- ...settings
79
- }),
80
- });
81
- if (!response.ok) {
82
- throw new Error(`HTTP error! status: ${response.status}`);
83
- }
84
- if (!response.body) {
85
- throw new Error('Response body is undefined');
86
- }
87
- const reader = response.body.getReader();
88
- const decoder = new TextDecoder();
89
- return {
90
- stream: {
91
- [Symbol.asyncIterator]() {
92
- return {
93
- async next() {
94
- if (cancellationToken === null || cancellationToken === void 0 ? void 0 : cancellationToken.isCancellationRequested) {
95
- reader.cancel();
96
- return { value: undefined, done: true };
97
- }
98
- const { value, done } = await reader.read();
99
- if (done) {
100
- return { value: undefined, done: true };
101
- }
102
- const read = decoder.decode(value, { stream: true });
103
- const chunk = read.split('\n').filter(l => l.length !== 0).reduce((acc, line) => {
104
- try {
105
- const parsed = JSON.parse(line.substring(6));
106
- acc += parsed.content;
107
- return acc;
108
- }
109
- catch (error) {
110
- console.error('Error parsing JSON:', error);
111
- return acc;
112
- }
113
- }, '');
114
- return { value: { content: chunk }, done: false };
115
- }
116
- };
117
- }
118
- }
119
- };
120
- }
121
- catch (error) {
122
- console.error('Error:', error);
123
- return {
124
- text: `Error: ${error}`
125
- };
126
- }
127
- }
128
- }
129
- exports.LlamafileLanguageModel = LlamafileLanguageModel;
130
- //# sourceMappingURL=llamafile-language-model.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"llamafile-language-model.js","sourceRoot":"","sources":["../../src/common/llamafile-language-model.ts"],"names":[],"mappings":"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"}
@@ -1,20 +0,0 @@
1
- export declare const LlamafileManager: unique symbol;
2
- export declare const LlamafileManagerPath = "/services/llamafilemanager";
3
- export interface LlamafileModelDescription {
4
- name: string;
5
- uri: string;
6
- port: number;
7
- }
8
- export interface LlamafileManager {
9
- startServer(name: string): Promise<void>;
10
- stopServer(name: string): void;
11
- getStartedLlamafiles(): Promise<string[]>;
12
- setClient(client: LlamafileServerManagerClient): void;
13
- addLanguageModels(llamaFiles: LlamafileModelDescription[]): Promise<void>;
14
- removeLanguageModels(modelIds: string[]): void;
15
- }
16
- export interface LlamafileServerManagerClient {
17
- log(llamafileName: string, message: string): void;
18
- error(llamafileName: string, message: string): void;
19
- }
20
- //# sourceMappingURL=llamafile-manager.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"llamafile-manager.d.ts","sourceRoot":"","sources":["../../src/common/llamafile-manager.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,gBAAgB,eAA6B,CAAC;AAE3D,eAAO,MAAM,oBAAoB,+BAA+B,CAAC;AAEjE,MAAM,WAAW,yBAAyB;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC7B,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,oBAAoB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC1C,SAAS,CAAC,MAAM,EAAE,4BAA4B,GAAG,IAAI,CAAC;IACtD,iBAAiB,CAAC,UAAU,EAAE,yBAAyB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1E,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;CAClD;AACD,MAAM,WAAW,4BAA4B;IACzC,GAAG,CAAC,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAClD,KAAK,CAAC,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACvD"}
@@ -1,21 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.LlamafileManagerPath = exports.LlamafileManager = void 0;
4
- // *****************************************************************************
5
- // Copyright (C) 2024 EclipseSource GmbH.
6
- //
7
- // This program and the accompanying materials are made available under the
8
- // terms of the Eclipse Public License v. 2.0 which is available at
9
- // http://www.eclipse.org/legal/epl-2.0.
10
- //
11
- // This Source Code may also be made available under the following Secondary
12
- // Licenses when the conditions for such availability set forth in the Eclipse
13
- // Public License v. 2.0 are satisfied: GNU General Public License, version 2
14
- // with the GNU Classpath Exception which is available at
15
- // https://www.gnu.org/software/classpath/license.html.
16
- //
17
- // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
18
- // *****************************************************************************
19
- exports.LlamafileManager = Symbol('LlamafileManager');
20
- exports.LlamafileManagerPath = '/services/llamafilemanager';
21
- //# sourceMappingURL=llamafile-manager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"llamafile-manager.js","sourceRoot":"","sources":["../../src/common/llamafile-manager.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;AACnE,QAAA,gBAAgB,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC;AAE9C,QAAA,oBAAoB,GAAG,4BAA4B,CAAC"}
@@ -1,7 +0,0 @@
1
- import { PreferenceSchema } from '@theia/core';
2
- import { interfaces } from '@theia/core/shared/inversify';
3
- export declare const AI_LLAMAFILE_PREFERENCES_TITLE: string;
4
- export declare const PREFERENCE_LLAMAFILE = "ai-features.llamafile.llamafiles";
5
- export declare const aiLlamafilePreferencesSchema: PreferenceSchema;
6
- export declare function bindAILlamafilePreferences(bind: interfaces.Bind): void;
7
- //# sourceMappingURL=llamafile-preferences.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"llamafile-preferences.d.ts","sourceRoot":"","sources":["../../src/common/llamafile-preferences.ts"],"names":[],"mappings":"AAgBA,OAAO,EAA+B,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAE1D,eAAO,MAAM,8BAA8B,QAAmE,CAAC;AAC/G,eAAO,MAAM,oBAAoB,qCAAqC,CAAC;AAEvE,eAAO,MAAM,4BAA4B,EAAE,gBAkC1C,CAAC;AAEF,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,GAAG,IAAI,CAEtE"}
@@ -1,61 +0,0 @@
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.bindAILlamafilePreferences = exports.aiLlamafilePreferencesSchema = exports.PREFERENCE_LLAMAFILE = exports.AI_LLAMAFILE_PREFERENCES_TITLE = void 0;
19
- const core_1 = require("@theia/core");
20
- exports.AI_LLAMAFILE_PREFERENCES_TITLE = core_1.nls.localize('theia/ai/llamaFile/prefs/title', '✨ AI LlamaFile');
21
- exports.PREFERENCE_LLAMAFILE = 'ai-features.llamafile.llamafiles';
22
- exports.aiLlamafilePreferencesSchema = {
23
- properties: {
24
- [exports.PREFERENCE_LLAMAFILE]: {
25
- title: exports.AI_LLAMAFILE_PREFERENCES_TITLE,
26
- markdownDescription: core_1.nls.localize('theia/ai/llamaFile/prefs/mdDescription', 'This setting allows you to configure and manage LlamaFile models in Theia IDE.\
27
- \n\
28
- Each entry requires a user-friendly `name`, the file `uri` pointing to your LlamaFile, and the `port` on which it will run.\
29
- \n\
30
- To start a LlamaFile, use the "Start LlamaFile" command, which enables you to select the desired model.\
31
- \n\
32
- If you edit an entry (e.g., change the port), any running instance will stop, and you will need to manually start it again.\
33
- \n\
34
- [Learn more about configuring and managing LlamaFiles in the Theia IDE documentation](https://theia-ide.org/docs/user_ai/#llamafile-models).'),
35
- type: 'array',
36
- default: [],
37
- items: {
38
- type: 'object',
39
- properties: {
40
- name: {
41
- type: 'string',
42
- description: core_1.nls.localize('theia/ai/llamaFile/prefs/name/description', 'The model name to use for this Llamafile.')
43
- },
44
- uri: {
45
- type: 'string',
46
- description: core_1.nls.localize('theia/ai/llamaFile/prefs/uri/description', 'The file uri to the Llamafile.')
47
- },
48
- port: {
49
- type: 'number',
50
- description: core_1.nls.localize('theia/ai/llamaFile/prefs/port/description', 'The port to use to start the server.')
51
- }
52
- }
53
- }
54
- }
55
- }
56
- };
57
- function bindAILlamafilePreferences(bind) {
58
- bind(core_1.PreferenceContribution).toConstantValue({ schema: exports.aiLlamafilePreferencesSchema });
59
- }
60
- exports.bindAILlamafilePreferences = bindAILlamafilePreferences;
61
- //# sourceMappingURL=llamafile-preferences.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"llamafile-preferences.js","sourceRoot":"","sources":["../../src/common/llamafile-preferences.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,sCAA4E;AAG/D,QAAA,8BAA8B,GAAG,UAAG,CAAC,QAAQ,CAAC,gCAAgC,EAAE,gBAAgB,CAAC,CAAC;AAClG,QAAA,oBAAoB,GAAG,kCAAkC,CAAC;AAE1D,QAAA,4BAA4B,GAAqB;IAC1D,UAAU,EAAE;QACR,CAAC,4BAAoB,CAAC,EAAE;YACpB,KAAK,EAAE,sCAA8B;YACrC,mBAAmB,EAAE,UAAG,CAAC,QAAQ,CAAC,wCAAwC,EAAE;;;;;;;;yJAQiE,CAAC;YAC9I,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,EAAE;YACX,KAAK,EAAE;gBACH,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACR,IAAI,EAAE;wBACF,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,UAAG,CAAC,QAAQ,CAAC,2CAA2C,EAAE,2CAA2C,CAAC;qBACtH;oBACD,GAAG,EAAE;wBACD,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,UAAG,CAAC,QAAQ,CAAC,0CAA0C,EAAE,gCAAgC,CAAC;qBAC1G;oBACD,IAAI,EAAE;wBACF,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,UAAG,CAAC,QAAQ,CAAC,2CAA2C,EAAE,sCAAsC,CAAC;qBACjH;iBACJ;aACJ;SACJ;KACJ;CACJ,CAAC;AAEF,SAAgB,0BAA0B,CAAC,IAAqB;IAC5D,IAAI,CAAC,6BAAsB,CAAC,CAAC,eAAe,CAAC,EAAE,MAAM,EAAE,oCAA4B,EAAE,CAAC,CAAC;AAC3F,CAAC;AAFD,gEAEC"}
@@ -1,4 +0,0 @@
1
- import { ContainerModule } from '@theia/core/shared/inversify';
2
- declare const _default: ContainerModule;
3
- export default _default;
4
- //# sourceMappingURL=llamafile-backend-module.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"llamafile-backend-module.d.ts","sourceRoot":"","sources":["../../src/node/llamafile-backend-module.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;;AAoB/D,wBAGG"}
@@ -1,37 +0,0 @@
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
- const inversify_1 = require("@theia/core/shared/inversify");
19
- const llamafile_manager_impl_1 = require("./llamafile-manager-impl");
20
- const llamafile_manager_1 = require("../common/llamafile-manager");
21
- const core_1 = require("@theia/core");
22
- const connection_container_module_1 = require("@theia/core/lib/node/messaging/connection-container-module");
23
- const llamafile_preferences_1 = require("../common/llamafile-preferences");
24
- // We use a connection module to handle AI services separately for each frontend.
25
- const llamafileConnectionModule = connection_container_module_1.ConnectionContainerModule.create(({ bind, bindBackendService, bindFrontendService }) => {
26
- bind(llamafile_manager_1.LlamafileManager).to(llamafile_manager_impl_1.LlamafileManagerImpl).inSingletonScope();
27
- bind(core_1.ConnectionHandler).toDynamicValue(ctx => new core_1.RpcConnectionHandler(llamafile_manager_1.LlamafileManagerPath, client => {
28
- const service = ctx.container.get(llamafile_manager_1.LlamafileManager);
29
- service.setClient(client);
30
- return service;
31
- })).inSingletonScope();
32
- });
33
- exports.default = new inversify_1.ContainerModule(bind => {
34
- (0, llamafile_preferences_1.bindAILlamafilePreferences)(bind);
35
- bind(connection_container_module_1.ConnectionContainerModule).toConstantValue(llamafileConnectionModule);
36
- });
37
- //# sourceMappingURL=llamafile-backend-module.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"llamafile-backend-module.js","sourceRoot":"","sources":["../../src/node/llamafile-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;;AAEhF,4DAA+D;AAC/D,qEAAgE;AAChE,mEAAmH;AACnH,sCAAsE;AACtE,4GAAuG;AACvG,2EAA6E;AAE7E,iFAAiF;AACjF,MAAM,yBAAyB,GAAG,uDAAyB,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,EAAE,EAAE;IACrH,IAAI,CAAC,oCAAgB,CAAC,CAAC,EAAE,CAAC,6CAAoB,CAAC,CAAC,gBAAgB,EAAE,CAAC;IACnE,IAAI,CAAC,wBAAiB,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,2BAAoB,CAClE,wCAAoB,EACpB,MAAM,CAAC,EAAE;QACL,MAAM,OAAO,GAAG,GAAG,CAAC,SAAS,CAAC,GAAG,CAAmB,oCAAgB,CAAC,CAAC;QACtE,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC1B,OAAO,OAAO,CAAC;IACnB,CAAC,CACJ,CAAC,CAAC,gBAAgB,EAAE,CAAC;AAC1B,CAAC,CAAC,CAAC;AAEH,kBAAe,IAAI,2BAAe,CAAC,IAAI,CAAC,EAAE;IACtC,IAAA,kDAA0B,EAAC,IAAI,CAAC,CAAC;IACjC,IAAI,CAAC,uDAAyB,CAAC,CAAC,eAAe,CAAC,yBAAyB,CAAC,CAAC;AAC/E,CAAC,CAAC,CAAC"}
@@ -1,16 +0,0 @@
1
- import { LanguageModelRegistry, LanguageModelStatus } from '@theia/ai-core';
2
- import { LlamafileManager, LlamafileModelDescription, LlamafileServerManagerClient } from '../common/llamafile-manager';
3
- export declare class LlamafileManagerImpl implements LlamafileManager {
4
- protected languageModelRegistry: LanguageModelRegistry;
5
- protected calculateStatus(started: boolean, message?: string): LanguageModelStatus;
6
- private processMap;
7
- private client;
8
- addLanguageModels(LlamafileModelDescriptions: LlamafileModelDescription[]): Promise<void>;
9
- removeLanguageModels(modelIds: string[]): void;
10
- getStartedLlamafiles(): Promise<string[]>;
11
- startServer(name: string): Promise<void>;
12
- stopServer(name: string): void;
13
- isStarted(name: string): boolean;
14
- setClient(client: LlamafileServerManagerClient): void;
15
- }
16
- //# sourceMappingURL=llamafile-manager-impl.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"llamafile-manager-impl.d.ts","sourceRoot":"","sources":["../../src/node/llamafile-manager-impl.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAM5E,OAAO,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,4BAA4B,EAAE,MAAM,6BAA6B,CAAC;AAExH,qBACa,oBAAqB,YAAW,gBAAgB;IAGzD,SAAS,CAAC,qBAAqB,EAAE,qBAAqB,CAAC;IAEvD,SAAS,CAAC,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,mBAAmB;IAQlF,OAAO,CAAC,UAAU,CAA0D;IAC5E,OAAO,CAAC,MAAM,CAA+B;IAEvC,iBAAiB,CAAC,0BAA0B,EAAE,yBAAyB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAwB/F,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI;IAKxC,oBAAoB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAKzC,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAyC9C,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAc9B,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIhC,SAAS,CAAC,MAAM,EAAE,4BAA4B,GAAG,IAAI;CAIxD"}
@@ -1,131 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.LlamafileManagerImpl = void 0;
4
- const tslib_1 = require("tslib");
5
- // *****************************************************************************
6
- // Copyright (C) 2024 EclipseSource GmbH.
7
- //
8
- // This program and the accompanying materials are made available under the
9
- // terms of the Eclipse Public License v. 2.0 which is available at
10
- // http://www.eclipse.org/legal/epl-2.0.
11
- //
12
- // This Source Code may also be made available under the following Secondary
13
- // Licenses when the conditions for such availability set forth in the Eclipse
14
- // Public License v. 2.0 are satisfied: GNU General Public License, version 2
15
- // with the GNU Classpath Exception which is available at
16
- // https://www.gnu.org/software/classpath/license.html.
17
- //
18
- // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
19
- // *****************************************************************************
20
- const ai_core_1 = require("@theia/ai-core");
21
- const inversify_1 = require("@theia/core/shared/inversify");
22
- const child_process_1 = require("child_process");
23
- const path_1 = require("path");
24
- const url_1 = require("url");
25
- const llamafile_language_model_1 = require("../common/llamafile-language-model");
26
- let LlamafileManagerImpl = class LlamafileManagerImpl {
27
- constructor() {
28
- this.processMap = new Map();
29
- }
30
- calculateStatus(started, message) {
31
- if (started) {
32
- return { status: 'ready' };
33
- }
34
- else {
35
- return { status: 'unavailable', message: message || 'Llamafile server is not running' };
36
- }
37
- }
38
- async addLanguageModels(LlamafileModelDescriptions) {
39
- for (const llamafile of LlamafileModelDescriptions) {
40
- const model = await this.languageModelRegistry.getLanguageModel(llamafile.name);
41
- if (model) {
42
- if (!(model instanceof llamafile_language_model_1.LlamafileLanguageModel)) {
43
- console.warn(`Llamafile: model ${model.id} is not a Llamafile model`);
44
- continue;
45
- }
46
- else {
47
- // This can happen during the initializing of more than one frontends, changes are handled in the frontend
48
- console.info(`Llamafile: skip creating or updating model ${llamafile.name} because it already exists.`);
49
- }
50
- }
51
- else {
52
- this.languageModelRegistry.addLanguageModels([
53
- new llamafile_language_model_1.LlamafileLanguageModel(llamafile.name, this.calculateStatus(false), llamafile.uri, llamafile.port)
54
- ]);
55
- }
56
- }
57
- }
58
- removeLanguageModels(modelIds) {
59
- modelIds.filter(modelId => this.isStarted(modelId)).forEach(modelId => this.stopServer(modelId));
60
- this.languageModelRegistry.removeLanguageModels(modelIds);
61
- }
62
- async getStartedLlamafiles() {
63
- const models = await this.languageModelRegistry.getLanguageModels();
64
- return models.filter(model => model instanceof llamafile_language_model_1.LlamafileLanguageModel && this.isStarted(model.name)).map(model => model.id);
65
- }
66
- async startServer(name) {
67
- if (!this.processMap.has(name)) {
68
- const models = await this.languageModelRegistry.getLanguageModels();
69
- const llm = models.find(model => model.id === name && model instanceof llamafile_language_model_1.LlamafileLanguageModel);
70
- if (llm === undefined) {
71
- return Promise.reject(`Llamafile ${name} not found`);
72
- }
73
- const filePath = (0, url_1.fileURLToPath)(llm.uri);
74
- // Extract the directory and file name
75
- const dir = (0, path_1.dirname)(filePath);
76
- const fileName = (0, path_1.basename)(filePath);
77
- const currentProcess = (0, child_process_1.spawn)(`./${fileName}`, ['--port', '' + llm.port, '--server', '--nobrowser'], { cwd: dir });
78
- this.processMap.set(name, currentProcess);
79
- // Set status to 'ready' when server is started
80
- llm.status = this.calculateStatus(true);
81
- currentProcess.stdout.on('data', (data) => {
82
- const output = data.toString();
83
- this.client.log(name, output);
84
- });
85
- currentProcess.stderr.on('data', (data) => {
86
- const output = data.toString();
87
- this.client.error(name, output);
88
- });
89
- currentProcess.on('close', code => {
90
- this.client.log(name, `LlamaFile process for file ${name} exited with code ${code}`);
91
- this.processMap.delete(name);
92
- // Set status to 'unavailable' when server stops
93
- llm.status = this.calculateStatus(false);
94
- });
95
- currentProcess.on('error', error => {
96
- this.client.error(name, `Error starting LlamaFile process for file ${name}: ${error.message}`);
97
- this.processMap.delete(name);
98
- // Set status to 'unavailable' on error
99
- llm.status = this.calculateStatus(false, error.message);
100
- });
101
- }
102
- }
103
- stopServer(name) {
104
- if (this.processMap.has(name)) {
105
- const currentProcess = this.processMap.get(name);
106
- currentProcess.kill();
107
- this.processMap.delete(name);
108
- // Set status to 'unavailable' when server is stopped
109
- this.languageModelRegistry.getLanguageModel(name).then(model => {
110
- if (model && model instanceof llamafile_language_model_1.LlamafileLanguageModel) {
111
- model.status = { status: 'unavailable' };
112
- }
113
- });
114
- }
115
- }
116
- isStarted(name) {
117
- return this.processMap.has(name);
118
- }
119
- setClient(client) {
120
- this.client = client;
121
- }
122
- };
123
- exports.LlamafileManagerImpl = LlamafileManagerImpl;
124
- tslib_1.__decorate([
125
- (0, inversify_1.inject)(ai_core_1.LanguageModelRegistry),
126
- tslib_1.__metadata("design:type", Object)
127
- ], LlamafileManagerImpl.prototype, "languageModelRegistry", void 0);
128
- exports.LlamafileManagerImpl = LlamafileManagerImpl = tslib_1.__decorate([
129
- (0, inversify_1.injectable)()
130
- ], LlamafileManagerImpl);
131
- //# sourceMappingURL=llamafile-manager-impl.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"llamafile-manager-impl.js","sourceRoot":"","sources":["../../src/node/llamafile-manager-impl.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- //# sourceMappingURL=package.spec.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"package.spec.d.ts","sourceRoot":"","sources":["../src/package.spec.ts"],"names":[],"mappings":""}
@@ -1,26 +0,0 @@
1
- // *****************************************************************************
2
- // Copyright (C) 2024 TypeFox GmbH and others.
3
- //
4
- // This program and the accompanying materials are made available under the
5
- // terms of the Eclipse Public License v. 2.0 which is available at
6
- // http://www.eclipse.org/legal/epl-2.0.
7
- //
8
- // This Source Code may also be made available under the following Secondary
9
- // Licenses when the conditions for such availability set forth in the Eclipse
10
- // Public License v. 2.0 are satisfied: GNU General Public License, version 2
11
- // with the GNU Classpath Exception which is available at
12
- // https://www.gnu.org/software/classpath/license.html.
13
- //
14
- // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
15
- // *****************************************************************************
16
- /* note: this bogus test file is required so that
17
- we are able to run mocha unit tests on this
18
- package, without having any actual unit tests in it.
19
- This way a coverage report will be generated,
20
- showing 0% coverage, instead of no report.
21
- This file can be removed once we have real unit
22
- tests in place. */
23
- describe('ai-llamafile package', () => {
24
- it('support code coverage statistics', () => true);
25
- });
26
- //# sourceMappingURL=package.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"package.spec.js","sourceRoot":"","sources":["../src/package.spec.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,8CAA8C;AAC9C,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;;;;;;qBAMqB;AAErB,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IAClC,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;AACvD,CAAC,CAAC,CAAC"}