@theia/ai-llamafile 1.75.0-next.8 → 1.75.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/common/llamafile-preferences.d.ts.map +1 -1
- package/lib/common/llamafile-preferences.js +2 -0
- package/lib/common/llamafile-preferences.js.map +1 -1
- package/lib/node/llamafile-manager-impl.d.ts +2 -0
- package/lib/node/llamafile-manager-impl.d.ts.map +1 -1
- package/lib/node/llamafile-manager-impl.js +8 -2
- package/lib/node/llamafile-manager-impl.js.map +1 -1
- package/package.json +6 -6
- package/src/common/llamafile-preferences.ts +2 -0
- package/src/node/llamafile-manager-impl.ts +7 -3
|
@@ -1 +1 @@
|
|
|
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;
|
|
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;AAE5E,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAE1D,eAAO,MAAM,8BAA8B,QAAiE,CAAC;AAC7G,eAAO,MAAM,oBAAoB,qCAAqC,CAAC;AAEvE,eAAO,MAAM,4BAA4B,EAAE,gBAoC1C,CAAC;AAEF,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,GAAG,IAAI,CAEtE"}
|
|
@@ -18,12 +18,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
18
18
|
exports.aiLlamafilePreferencesSchema = exports.PREFERENCE_LLAMAFILE = exports.AI_LLAMAFILE_PREFERENCES_TITLE = void 0;
|
|
19
19
|
exports.bindAILlamafilePreferences = bindAILlamafilePreferences;
|
|
20
20
|
const core_1 = require("@theia/core");
|
|
21
|
+
const ai_core_preferences_1 = require("@theia/ai-core/lib/common/ai-core-preferences");
|
|
21
22
|
exports.AI_LLAMAFILE_PREFERENCES_TITLE = core_1.nls.localize('theia/ai/llamaFile/prefs/title', 'AI LlamaFile');
|
|
22
23
|
exports.PREFERENCE_LLAMAFILE = 'ai-features.llamafile.llamafiles';
|
|
23
24
|
exports.aiLlamafilePreferencesSchema = {
|
|
24
25
|
properties: {
|
|
25
26
|
[exports.PREFERENCE_LLAMAFILE]: {
|
|
26
27
|
title: exports.AI_LLAMAFILE_PREFERENCES_TITLE,
|
|
28
|
+
typeDetails: { [ai_core_preferences_1.MODEL_PROVIDER_TYPE_DETAIL]: { label: 'Llamafile' } },
|
|
27
29
|
markdownDescription: core_1.nls.localize('theia/ai/llamaFile/prefs/mdDescription', 'This setting allows you to configure and manage LlamaFile models in Theia IDE.\
|
|
28
30
|
\n\
|
|
29
31
|
Each entry requires a user-friendly `name`, the file `uri` pointing to your LlamaFile, and the `port` on which it will run.\
|
|
@@ -1 +1 @@
|
|
|
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;;;
|
|
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;;;AA+ChF,gEAEC;AA/CD,sCAA4E;AAC5E,uFAAoH;AAGvG,QAAA,8BAA8B,GAAG,UAAG,CAAC,QAAQ,CAAC,gCAAgC,EAAE,cAAc,CAAC,CAAC;AAChG,QAAA,oBAAoB,GAAG,kCAAkC,CAAC;AAE1D,QAAA,4BAA4B,GAAqB;IAC1D,UAAU,EAAE;QACR,CAAC,4BAAoB,CAAC,EAAE;YACpB,KAAK,EAAE,sCAA8B;YACrC,WAAW,EAAE,EAAE,CAAC,gDAA0B,CAAC,EAAE,EAAE,KAAK,EAAE,WAAW,EAAoC,EAAE;YACvG,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;YACD,IAAI,EAAE,CAAC,cAAc,CAAC;SACzB;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"}
|
|
@@ -2,8 +2,10 @@ import { LanguageModelRegistry, LanguageModelStatus } from '@theia/ai-core';
|
|
|
2
2
|
import { ChildProcessWithoutNullStreams } from 'child_process';
|
|
3
3
|
import { LlamafileLanguageModel } from '../common/llamafile-language-model';
|
|
4
4
|
import { LlamafileManager, LlamafileModelDescription, LlamafileServerManagerClient } from '../common/llamafile-manager';
|
|
5
|
+
import { ILogger } from '@theia/core';
|
|
5
6
|
export declare class LlamafileManagerImpl implements LlamafileManager {
|
|
6
7
|
protected languageModelRegistry: LanguageModelRegistry;
|
|
8
|
+
protected readonly logger: ILogger;
|
|
7
9
|
private processMap;
|
|
8
10
|
private client;
|
|
9
11
|
addLanguageModels(LlamafileModelDescriptions: LlamafileModelDescription[]): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
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;AAE5E,OAAO,EAAE,8BAA8B,EAAS,MAAM,eAAe,CAAC;AAGtE,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,4BAA4B,EAAE,MAAM,6BAA6B,CAAC;
|
|
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;AAE5E,OAAO,EAAE,8BAA8B,EAAS,MAAM,eAAe,CAAC;AAGtE,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,4BAA4B,EAAE,MAAM,6BAA6B,CAAC;AACxH,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEtC,qBACa,oBAAqB,YAAW,gBAAgB;IAGzD,SAAS,CAAC,qBAAqB,EAAE,qBAAqB,CAAC;IAGvD,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAEnC,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;cAgB9B,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,GAAG,SAAS,CAAC;IAK5F,SAAS,CAAC,qBAAqB,CAAC,GAAG,EAAE,sBAAsB,GAAG,8BAA8B;IAO5F,SAAS,CAAC,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,8BAA8B,GAAG,IAAI;cAwBnF,yBAAyB,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOhH,SAAS,CAAC,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,mBAAmB;IAQlF,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAU9B,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIhC,SAAS,CAAC,MAAM,EAAE,4BAA4B,GAAG,IAAI;CAIxD"}
|
|
@@ -23,6 +23,7 @@ const child_process_1 = require("child_process");
|
|
|
23
23
|
const path_1 = require("path");
|
|
24
24
|
const url_1 = require("url");
|
|
25
25
|
const llamafile_language_model_1 = require("../common/llamafile-language-model");
|
|
26
|
+
const core_1 = require("@theia/core");
|
|
26
27
|
let LlamafileManagerImpl = class LlamafileManagerImpl {
|
|
27
28
|
constructor() {
|
|
28
29
|
this.processMap = new Map();
|
|
@@ -32,12 +33,12 @@ let LlamafileManagerImpl = class LlamafileManagerImpl {
|
|
|
32
33
|
const model = await this.languageModelRegistry.getLanguageModel(llamafile.name);
|
|
33
34
|
if (model) {
|
|
34
35
|
if (!(model instanceof llamafile_language_model_1.LlamafileLanguageModel)) {
|
|
35
|
-
|
|
36
|
+
this.logger.warn(`Llamafile: model ${model.id} is not a Llamafile model`);
|
|
36
37
|
continue;
|
|
37
38
|
}
|
|
38
39
|
else {
|
|
39
40
|
// This can happen during the initializing of more than one frontends, changes are handled in the frontend
|
|
40
|
-
|
|
41
|
+
this.logger.info(`Llamafile: skip creating or updating model ${llamafile.name} because it already exists.`);
|
|
41
42
|
}
|
|
42
43
|
}
|
|
43
44
|
else {
|
|
@@ -133,6 +134,11 @@ tslib_1.__decorate([
|
|
|
133
134
|
(0, inversify_1.inject)(ai_core_1.LanguageModelRegistry),
|
|
134
135
|
tslib_1.__metadata("design:type", Object)
|
|
135
136
|
], LlamafileManagerImpl.prototype, "languageModelRegistry", void 0);
|
|
137
|
+
tslib_1.__decorate([
|
|
138
|
+
(0, inversify_1.inject)(core_1.ILogger),
|
|
139
|
+
(0, inversify_1.named)('ai-llamafile:LlamafileManagerImpl'),
|
|
140
|
+
tslib_1.__metadata("design:type", Object)
|
|
141
|
+
], LlamafileManagerImpl.prototype, "logger", void 0);
|
|
136
142
|
exports.LlamafileManagerImpl = LlamafileManagerImpl = tslib_1.__decorate([
|
|
137
143
|
(0, inversify_1.injectable)()
|
|
138
144
|
], LlamafileManagerImpl);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"llamafile-manager-impl.js","sourceRoot":"","sources":["../../src/node/llamafile-manager-impl.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,4CAA4E;AAC5E,
|
|
1
|
+
{"version":3,"file":"llamafile-manager-impl.js","sourceRoot":"","sources":["../../src/node/llamafile-manager-impl.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@theia/ai-llamafile",
|
|
3
|
-
"version": "1.75.0
|
|
3
|
+
"version": "1.75.0",
|
|
4
4
|
"description": "Theia - Llamafile Integration",
|
|
5
5
|
"dependencies": {
|
|
6
|
-
"@theia/ai-core": "1.75.0
|
|
7
|
-
"@theia/core": "1.75.0
|
|
8
|
-
"@theia/output": "1.75.0
|
|
6
|
+
"@theia/ai-core": "1.75.0",
|
|
7
|
+
"@theia/core": "1.75.0",
|
|
8
|
+
"@theia/output": "1.75.0",
|
|
9
9
|
"tslib": "^2.8.1"
|
|
10
10
|
},
|
|
11
11
|
"publishConfig": {
|
|
@@ -42,10 +42,10 @@
|
|
|
42
42
|
"watch": "theiaext watch"
|
|
43
43
|
},
|
|
44
44
|
"devDependencies": {
|
|
45
|
-
"@theia/ext-scripts": "1.
|
|
45
|
+
"@theia/ext-scripts": "1.75.0"
|
|
46
46
|
},
|
|
47
47
|
"nyc": {
|
|
48
48
|
"extends": "../../configs/nyc.json"
|
|
49
49
|
},
|
|
50
|
-
"gitHead": "
|
|
50
|
+
"gitHead": "6d8e911f05f0fd9a13d76797e79b21ee3f038bc2"
|
|
51
51
|
}
|
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
// *****************************************************************************
|
|
16
16
|
|
|
17
17
|
import { nls, PreferenceContribution, PreferenceSchema } from '@theia/core';
|
|
18
|
+
import { MODEL_PROVIDER_TYPE_DETAIL, ModelProviderTypeDetail } from '@theia/ai-core/lib/common/ai-core-preferences';
|
|
18
19
|
import { interfaces } from '@theia/core/shared/inversify';
|
|
19
20
|
|
|
20
21
|
export const AI_LLAMAFILE_PREFERENCES_TITLE = nls.localize('theia/ai/llamaFile/prefs/title', 'AI LlamaFile');
|
|
@@ -24,6 +25,7 @@ export const aiLlamafilePreferencesSchema: PreferenceSchema = {
|
|
|
24
25
|
properties: {
|
|
25
26
|
[PREFERENCE_LLAMAFILE]: {
|
|
26
27
|
title: AI_LLAMAFILE_PREFERENCES_TITLE,
|
|
28
|
+
typeDetails: { [MODEL_PROVIDER_TYPE_DETAIL]: { label: 'Llamafile' } satisfies ModelProviderTypeDetail },
|
|
27
29
|
markdownDescription: nls.localize('theia/ai/llamaFile/prefs/mdDescription', 'This setting allows you to configure and manage LlamaFile models in Theia IDE.\
|
|
28
30
|
\n\
|
|
29
31
|
Each entry requires a user-friendly `name`, the file `uri` pointing to your LlamaFile, and the `port` on which it will run.\
|
|
@@ -14,12 +14,13 @@
|
|
|
14
14
|
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
15
15
|
// *****************************************************************************
|
|
16
16
|
import { LanguageModelRegistry, LanguageModelStatus } from '@theia/ai-core';
|
|
17
|
-
import { inject, injectable } from '@theia/core/shared/inversify';
|
|
17
|
+
import { inject, injectable, named } from '@theia/core/shared/inversify';
|
|
18
18
|
import { ChildProcessWithoutNullStreams, spawn } from 'child_process';
|
|
19
19
|
import { basename, dirname } from 'path';
|
|
20
20
|
import { fileURLToPath } from 'url';
|
|
21
21
|
import { LlamafileLanguageModel } from '../common/llamafile-language-model';
|
|
22
22
|
import { LlamafileManager, LlamafileModelDescription, LlamafileServerManagerClient } from '../common/llamafile-manager';
|
|
23
|
+
import { ILogger } from '@theia/core';
|
|
23
24
|
|
|
24
25
|
@injectable()
|
|
25
26
|
export class LlamafileManagerImpl implements LlamafileManager {
|
|
@@ -27,6 +28,9 @@ export class LlamafileManagerImpl implements LlamafileManager {
|
|
|
27
28
|
@inject(LanguageModelRegistry)
|
|
28
29
|
protected languageModelRegistry: LanguageModelRegistry;
|
|
29
30
|
|
|
31
|
+
@inject(ILogger) @named('ai-llamafile:LlamafileManagerImpl')
|
|
32
|
+
protected readonly logger: ILogger;
|
|
33
|
+
|
|
30
34
|
private processMap: Map<string, ChildProcessWithoutNullStreams> = new Map();
|
|
31
35
|
private client: LlamafileServerManagerClient;
|
|
32
36
|
|
|
@@ -35,11 +39,11 @@ export class LlamafileManagerImpl implements LlamafileManager {
|
|
|
35
39
|
const model = await this.languageModelRegistry.getLanguageModel(llamafile.name);
|
|
36
40
|
if (model) {
|
|
37
41
|
if (!(model instanceof LlamafileLanguageModel)) {
|
|
38
|
-
|
|
42
|
+
this.logger.warn(`Llamafile: model ${model.id} is not a Llamafile model`);
|
|
39
43
|
continue;
|
|
40
44
|
} else {
|
|
41
45
|
// This can happen during the initializing of more than one frontends, changes are handled in the frontend
|
|
42
|
-
|
|
46
|
+
this.logger.info(`Llamafile: skip creating or updating model ${llamafile.name} because it already exists.`);
|
|
43
47
|
}
|
|
44
48
|
} else {
|
|
45
49
|
this.languageModelRegistry.addLanguageModels([
|