@mindstudio-ai/local-model-tunnel 0.1.0 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +12 -5
- package/dist/api.d.ts +1 -1
- package/dist/api.d.ts.map +1 -1
- package/dist/api.js +2 -2
- package/dist/api.js.map +1 -1
- package/dist/cli.js +67 -34
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +2 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +10 -0
- package/dist/config.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +13 -4
- package/dist/index.js.map +1 -1
- package/dist/providers/index.d.ts +28 -0
- package/dist/providers/index.d.ts.map +1 -0
- package/dist/providers/index.js +75 -0
- package/dist/providers/index.js.map +1 -0
- package/dist/providers/lmstudio.d.ts +10 -0
- package/dist/providers/lmstudio.d.ts.map +1 -0
- package/dist/providers/lmstudio.js +108 -0
- package/dist/providers/lmstudio.js.map +1 -0
- package/dist/providers/ollama.d.ts +10 -0
- package/dist/providers/ollama.d.ts.map +1 -0
- package/dist/providers/ollama.js +61 -0
- package/dist/providers/ollama.js.map +1 -0
- package/dist/providers/types.d.ts +37 -0
- package/dist/providers/types.d.ts.map +1 -0
- package/dist/providers/types.js +3 -0
- package/dist/providers/types.js.map +1 -0
- package/dist/runner.d.ts +3 -0
- package/dist/runner.d.ts.map +1 -1
- package/dist/runner.js +54 -26
- package/dist/runner.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -2,17 +2,24 @@
|
|
|
2
2
|
|
|
3
3
|
Run local models with MindStudio.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
Providers supported:
|
|
6
|
+
|
|
7
|
+
- [Ollama](https://ollama.ai)
|
|
8
|
+
- [LM Studio](https://lmstudio.ai/)
|
|
9
|
+
|
|
10
|
+
With more coming soon...
|
|
6
11
|
|
|
7
12
|
## Prerequisites
|
|
8
13
|
|
|
9
14
|
- Node.js 18+
|
|
10
|
-
-
|
|
15
|
+
- At least one of these:
|
|
16
|
+
- [Ollama](https://ollama.ai) installed and running with `ollama serve`
|
|
17
|
+
- [LM Studio](https://lmstudio.ai/) installed and running
|
|
11
18
|
|
|
12
19
|
## Installation
|
|
13
20
|
|
|
14
21
|
```bash
|
|
15
|
-
npm install -g @mindstudio/local-model-tunnel
|
|
22
|
+
npm install -g @mindstudio-ai/local-model-tunnel
|
|
16
23
|
```
|
|
17
24
|
|
|
18
25
|
## Quick Start
|
|
@@ -50,9 +57,9 @@ mindstudio-local start --ollama-url http://localhost:11434
|
|
|
50
57
|
## How It Works
|
|
51
58
|
|
|
52
59
|
1. Authenticates with your MindStudio account
|
|
53
|
-
2. Discovers local
|
|
60
|
+
2. Discovers your local models
|
|
54
61
|
3. Polls MindStudio for inference requests
|
|
55
|
-
4. Routes requests to local
|
|
62
|
+
4. Routes requests to local server and streams responses back
|
|
56
63
|
|
|
57
64
|
## License
|
|
58
65
|
|
package/dist/api.d.ts
CHANGED
|
@@ -25,7 +25,7 @@ export declare function submitResult(requestId: string, success: boolean, result
|
|
|
25
25
|
};
|
|
26
26
|
}, error?: string): Promise<void>;
|
|
27
27
|
export declare function verifyApiKey(): Promise<boolean>;
|
|
28
|
-
export declare function registerLocalModel(modelName: string): Promise<void>;
|
|
28
|
+
export declare function registerLocalModel(modelName: string, provider?: string): Promise<void>;
|
|
29
29
|
export declare function getRegisteredModels(): Promise<string[]>;
|
|
30
30
|
export declare function requestDeviceAuth(): Promise<{
|
|
31
31
|
url: string;
|
package/dist/api.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,UAAU,GAAG,kBAAkB,GAAG,kBAAkB,CAAC;IAClE,OAAO,EAAE;QACP,QAAQ,CAAC,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QACpD,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAClC,CAAC;IACF,SAAS,EAAE,MAAM,CAAC;CACnB;AAcD,wBAAsB,cAAc,CAClC,MAAM,EAAE,MAAM,EAAE,GACf,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAsBnC;AAED,wBAAsB,cAAc,CAClC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC,CAef;AAED,wBAAsB,YAAY,CAChC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,OAAO,EAChB,MAAM,CAAC,EAAE;IACP,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,gBAAgB,EAAE,MAAM,CAAA;KAAE,CAAC;CAC5D,EACD,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CAkBf;AAED,wBAAsB,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC,CAarD;AAED,wBAAsB,kBAAkB,
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,UAAU,GAAG,kBAAkB,GAAG,kBAAkB,CAAC;IAClE,OAAO,EAAE;QACP,QAAQ,CAAC,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QACpD,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAClC,CAAC;IACF,SAAS,EAAE,MAAM,CAAC;CACnB;AAcD,wBAAsB,cAAc,CAClC,MAAM,EAAE,MAAM,EAAE,GACf,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAsBnC;AAED,wBAAsB,cAAc,CAClC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC,CAef;AAED,wBAAsB,YAAY,CAChC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,OAAO,EAChB,MAAM,CAAC,EAAE;IACP,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,gBAAgB,EAAE,MAAM,CAAA;KAAE,CAAC;CAC5D,EACD,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CAkBf;AAED,wBAAsB,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC,CAarD;AAED,wBAAsB,kBAAkB,CACtC,SAAS,EAAE,MAAM,EACjB,QAAQ,GAAE,MAAiB,GAC1B,OAAO,CAAC,IAAI,CAAC,CAaf;AAED,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAiB7D;AAED,wBAAsB,iBAAiB,IAAI,OAAO,CAAC;IACjD,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACf,CAAC,CAmBD;AAED,wBAAsB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;IAC3D,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,SAAS,CAAC;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC,CAoBD;AAED,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,CAYzD"}
|
package/dist/api.js
CHANGED
|
@@ -73,12 +73,12 @@ async function verifyApiKey() {
|
|
|
73
73
|
return false;
|
|
74
74
|
}
|
|
75
75
|
}
|
|
76
|
-
async function registerLocalModel(modelName) {
|
|
76
|
+
async function registerLocalModel(modelName, provider = "ollama") {
|
|
77
77
|
const baseUrl = (0, config_js_1.getApiBaseUrl)();
|
|
78
78
|
const response = await fetch(`${baseUrl}/v1/local-models/models/create`, {
|
|
79
79
|
method: "POST",
|
|
80
80
|
headers: getHeaders(),
|
|
81
|
-
body: JSON.stringify({ modelName, provider
|
|
81
|
+
body: JSON.stringify({ modelName, provider }),
|
|
82
82
|
});
|
|
83
83
|
if (!response.ok) {
|
|
84
84
|
const errorText = await response.text();
|
package/dist/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":";;AA6BA,wCAwBC;AAED,wCAkBC;AAED,oCA0BC;AAED,oCAaC;AAED,
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.js
CHANGED
|
@@ -9,7 +9,7 @@ const commander_1 = require("commander");
|
|
|
9
9
|
const chalk_1 = __importDefault(require("chalk"));
|
|
10
10
|
const ora_1 = __importDefault(require("ora"));
|
|
11
11
|
const config_js_1 = require("./config.js");
|
|
12
|
-
const
|
|
12
|
+
const index_js_1 = require("./providers/index.js");
|
|
13
13
|
const api_js_1 = require("./api.js");
|
|
14
14
|
const runner_js_1 = require("./runner.js");
|
|
15
15
|
const program = new commander_1.Command();
|
|
@@ -41,7 +41,8 @@ function envBadge() {
|
|
|
41
41
|
const displayModels = (models) => {
|
|
42
42
|
console.log(chalk_1.default.blue("\nAvailable Models\n"));
|
|
43
43
|
models.forEach((m) => {
|
|
44
|
-
|
|
44
|
+
const providerTag = chalk_1.default.blue(`[${m.provider}]`);
|
|
45
|
+
console.log(` ${chalk_1.default.green("*")} ${m.name} ${providerTag}`);
|
|
45
46
|
});
|
|
46
47
|
console.log("");
|
|
47
48
|
};
|
|
@@ -109,34 +110,57 @@ program
|
|
|
109
110
|
console.log(chalk_1.default.green("✓ MindStudio: Connected"));
|
|
110
111
|
}
|
|
111
112
|
else {
|
|
112
|
-
console.log(chalk_1.default.red("MindStudio: Invalid API key"));
|
|
113
|
+
console.log(chalk_1.default.red("✗ MindStudio: Invalid API key"));
|
|
113
114
|
}
|
|
114
115
|
}
|
|
115
116
|
else {
|
|
116
|
-
console.log(chalk_1.default.yellow("MindStudio: Not authenticated"));
|
|
117
|
+
console.log(chalk_1.default.yellow("○ MindStudio: Not authenticated"));
|
|
117
118
|
}
|
|
118
|
-
// Check
|
|
119
|
-
const
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
119
|
+
// Check all providers
|
|
120
|
+
const providerStatuses = await (0, index_js_1.getProviderStatuses)();
|
|
121
|
+
for (const { provider, running } of providerStatuses) {
|
|
122
|
+
if (running) {
|
|
123
|
+
console.log(chalk_1.default.green(`✓ ${provider.displayName}: Running`));
|
|
124
|
+
}
|
|
125
|
+
else {
|
|
126
|
+
console.log(chalk_1.default.gray(`○ ${provider.displayName}: Not running`));
|
|
127
|
+
}
|
|
125
128
|
}
|
|
126
|
-
|
|
127
|
-
|
|
129
|
+
// Show models if any provider is running
|
|
130
|
+
const models = await (0, index_js_1.discoverAllModels)();
|
|
131
|
+
if (models.length > 0) {
|
|
132
|
+
displayModels(models);
|
|
128
133
|
}
|
|
129
134
|
console.log("");
|
|
130
135
|
});
|
|
136
|
+
program
|
|
137
|
+
.command("set-config")
|
|
138
|
+
.description("Set configuration")
|
|
139
|
+
.option("--ollama-url <url>", "Override Ollama base URL")
|
|
140
|
+
.option("--lmstudio-url <url>", "Override LM Studio base URL")
|
|
141
|
+
.action(async (options) => {
|
|
142
|
+
if (options.ollamaUrl) {
|
|
143
|
+
(0, config_js_1.setOllamaBaseUrl)(options.ollamaUrl);
|
|
144
|
+
console.log(chalk_1.default.green(`Ollama base URL set to ${options.ollamaUrl}`));
|
|
145
|
+
}
|
|
146
|
+
if (options.lmstudioUrl) {
|
|
147
|
+
(0, config_js_1.setLMStudioBaseUrl)(options.lmstudioUrl);
|
|
148
|
+
console.log(chalk_1.default.green(`LM Studio base URL set to ${options.lmstudioUrl}`));
|
|
149
|
+
}
|
|
150
|
+
});
|
|
131
151
|
// Start command
|
|
132
152
|
program
|
|
133
153
|
.command("start")
|
|
134
154
|
.description("Start the local model tunnel")
|
|
135
155
|
.option("--ollama-url <url>", "Override Ollama base URL")
|
|
156
|
+
.option("--lmstudio-url <url>", "Override LM Studio base URL")
|
|
136
157
|
.action(async (options) => {
|
|
137
158
|
if (options.ollamaUrl) {
|
|
138
159
|
(0, config_js_1.setOllamaBaseUrl)(options.ollamaUrl);
|
|
139
160
|
}
|
|
161
|
+
if (options.lmstudioUrl) {
|
|
162
|
+
(0, config_js_1.setLMStudioBaseUrl)(options.lmstudioUrl);
|
|
163
|
+
}
|
|
140
164
|
const info = (0, config_js_1.getEnvironmentInfo)();
|
|
141
165
|
console.log(chalk_1.default.white(`Environment: ${info.current} (${info.apiBaseUrl})`));
|
|
142
166
|
const apiKey = (0, config_js_1.getApiKey)();
|
|
@@ -152,11 +176,13 @@ program
|
|
|
152
176
|
process.exit(1);
|
|
153
177
|
}
|
|
154
178
|
spinner.succeed(`Connected to MindStudio ${envBadge()}`);
|
|
155
|
-
// Check
|
|
156
|
-
const
|
|
157
|
-
if (!
|
|
158
|
-
console.log(chalk_1.default.red("\
|
|
159
|
-
console.log(chalk_1.default.white("Start
|
|
179
|
+
// Check if any provider is running
|
|
180
|
+
const anyProviderRunning = await (0, index_js_1.isAnyProviderRunning)();
|
|
181
|
+
if (!anyProviderRunning) {
|
|
182
|
+
console.log(chalk_1.default.red("\nNo local model provider is running."));
|
|
183
|
+
console.log(chalk_1.default.white("Start one of the following:"));
|
|
184
|
+
console.log(chalk_1.default.white(" Ollama: ollama serve"));
|
|
185
|
+
console.log(chalk_1.default.white(" LM Studio: Start the local server\n"));
|
|
160
186
|
process.exit(1);
|
|
161
187
|
}
|
|
162
188
|
// Start the runner
|
|
@@ -168,16 +194,18 @@ program
|
|
|
168
194
|
.command("models")
|
|
169
195
|
.description("List available local models")
|
|
170
196
|
.action(async () => {
|
|
171
|
-
const
|
|
172
|
-
if (!
|
|
173
|
-
console.log(chalk_1.default.red("\
|
|
174
|
-
console.log(chalk_1.default.white(" Start
|
|
197
|
+
const anyProviderRunning = await (0, index_js_1.isAnyProviderRunning)();
|
|
198
|
+
if (!anyProviderRunning) {
|
|
199
|
+
console.log(chalk_1.default.red("\nNo local model provider is running."));
|
|
200
|
+
console.log(chalk_1.default.white(" Start Ollama: ollama serve"));
|
|
201
|
+
console.log(chalk_1.default.white(" Start LM Studio: Enable local server\n"));
|
|
175
202
|
process.exit(1);
|
|
176
203
|
}
|
|
177
|
-
const models = await (0,
|
|
204
|
+
const models = await (0, index_js_1.discoverAllModels)();
|
|
178
205
|
if (models.length === 0) {
|
|
179
206
|
console.log(chalk_1.default.yellow("\nNo models found."));
|
|
180
|
-
console.log(chalk_1.default.white("
|
|
207
|
+
console.log(chalk_1.default.white(" Ollama: ollama pull llama3.2"));
|
|
208
|
+
console.log(chalk_1.default.white(" LM Studio: Load a model in the app\n"));
|
|
181
209
|
return;
|
|
182
210
|
}
|
|
183
211
|
displayModels(models);
|
|
@@ -193,6 +221,8 @@ program
|
|
|
193
221
|
console.log(` Config file: ${chalk_1.default.white((0, config_js_1.getConfigPath)())}`);
|
|
194
222
|
console.log(` Environment: ${chalk_1.default.cyan(info.current)}`);
|
|
195
223
|
console.log(` API URL: ${chalk_1.default.white(info.apiBaseUrl)}`);
|
|
224
|
+
console.log(` Ollama Base URL: ${chalk_1.default.white((0, config_js_1.getOllamaBaseUrl)())}`);
|
|
225
|
+
console.log(` LM Studio Base URL: ${chalk_1.default.white((0, config_js_1.getLMStudioBaseUrl)())}`);
|
|
196
226
|
console.log(` API key: ${info.hasApiKey ? chalk_1.default.green("Set") : chalk_1.default.yellow("Not set")}`);
|
|
197
227
|
console.log("");
|
|
198
228
|
});
|
|
@@ -230,20 +260,22 @@ program
|
|
|
230
260
|
console.log(chalk_1.default.red("\nNot authenticated. Run 'mindstudio-local auth' first.\n"));
|
|
231
261
|
process.exit(1);
|
|
232
262
|
}
|
|
233
|
-
// Check if
|
|
234
|
-
const
|
|
235
|
-
if (!
|
|
236
|
-
console.log(chalk_1.default.red("\
|
|
237
|
-
console.log(chalk_1.default.white(" Start
|
|
263
|
+
// Check if any provider is running
|
|
264
|
+
const anyProviderRunning = await (0, index_js_1.isAnyProviderRunning)();
|
|
265
|
+
if (!anyProviderRunning) {
|
|
266
|
+
console.log(chalk_1.default.red("\nNo local model provider is running."));
|
|
267
|
+
console.log(chalk_1.default.white(" Start Ollama: ollama serve"));
|
|
268
|
+
console.log(chalk_1.default.white(" Start LM Studio: Enable local server\n"));
|
|
238
269
|
process.exit(1);
|
|
239
270
|
}
|
|
240
|
-
// Get all local models
|
|
271
|
+
// Get all local models from all providers
|
|
241
272
|
const spinner = (0, ora_1.default)("Loading local models...").start();
|
|
242
|
-
const localModels = await (0,
|
|
273
|
+
const localModels = await (0, index_js_1.discoverAllModels)();
|
|
243
274
|
spinner.succeed();
|
|
244
275
|
if (localModels.length === 0) {
|
|
245
276
|
spinner.fail(chalk_1.default.yellow("No local models found."));
|
|
246
|
-
console.log(chalk_1.default.white("
|
|
277
|
+
console.log(chalk_1.default.white(" Ollama: ollama pull llama3.2"));
|
|
278
|
+
console.log(chalk_1.default.white(" LM Studio: Load a model in the app\n"));
|
|
247
279
|
process.exit(1);
|
|
248
280
|
}
|
|
249
281
|
const registeredModels = await (0, api_js_1.getRegisteredModels)();
|
|
@@ -257,8 +289,9 @@ program
|
|
|
257
289
|
try {
|
|
258
290
|
console.log("\n");
|
|
259
291
|
for (const model of unregisteredModels) {
|
|
260
|
-
await (0, api_js_1.registerLocalModel)(model.name);
|
|
261
|
-
|
|
292
|
+
await (0, api_js_1.registerLocalModel)(model.name, model.provider);
|
|
293
|
+
const providerTag = chalk_1.default.blue(`[${model.provider}]`);
|
|
294
|
+
console.log(chalk_1.default.green(`✓ ${model.name} ${providerTag}\n`));
|
|
262
295
|
}
|
|
263
296
|
registerSpinner.succeed(chalk_1.default.green("All local models registered successfully.\n"));
|
|
264
297
|
console.log(chalk_1.default.white("Manage models at: https://app.mindstudio.ai/services/self-hosted-models\n"));
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/config.d.ts
CHANGED
|
@@ -8,6 +8,8 @@ export declare function getApiBaseUrl(): string;
|
|
|
8
8
|
export declare function setApiBaseUrl(url: string): void;
|
|
9
9
|
export declare function getOllamaBaseUrl(): string;
|
|
10
10
|
export declare function setOllamaBaseUrl(url: string): void;
|
|
11
|
+
export declare function getLMStudioBaseUrl(): string;
|
|
12
|
+
export declare function setLMStudioBaseUrl(url: string): void;
|
|
11
13
|
export declare function getConfigPath(): string;
|
|
12
14
|
export declare function getEnvironmentInfo(): {
|
|
13
15
|
current: Environment;
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,OAAO,CAAC;AAmC3C,wBAAgB,cAAc,IAAI,WAAW,CAE5C;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI,CAErD;AAcD,wBAAgB,SAAS,IAAI,MAAM,GAAG,SAAS,CAE9C;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAE3C;AAED,wBAAgB,WAAW,IAAI,IAAI,CAGlC;AAGD,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAE/C;AAGD,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAElD;AAGD,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAEpD;AAED,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAGD,wBAAgB,kBAAkB,IAAI;IACpC,OAAO,EAAE,WAAW,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;CACpB,CAQA"}
|
package/dist/config.js
CHANGED
|
@@ -12,6 +12,8 @@ exports.getApiBaseUrl = getApiBaseUrl;
|
|
|
12
12
|
exports.setApiBaseUrl = setApiBaseUrl;
|
|
13
13
|
exports.getOllamaBaseUrl = getOllamaBaseUrl;
|
|
14
14
|
exports.setOllamaBaseUrl = setOllamaBaseUrl;
|
|
15
|
+
exports.getLMStudioBaseUrl = getLMStudioBaseUrl;
|
|
16
|
+
exports.setLMStudioBaseUrl = setLMStudioBaseUrl;
|
|
15
17
|
exports.getConfigPath = getConfigPath;
|
|
16
18
|
exports.getEnvironmentInfo = getEnvironmentInfo;
|
|
17
19
|
const conf_1 = __importDefault(require("conf"));
|
|
@@ -20,6 +22,7 @@ const config = new conf_1.default({
|
|
|
20
22
|
defaults: {
|
|
21
23
|
environment: "prod",
|
|
22
24
|
ollamaBaseUrl: "http://localhost:11434",
|
|
25
|
+
lmstudioBaseUrl: "http://localhost:1234/v1",
|
|
23
26
|
environments: {
|
|
24
27
|
prod: {
|
|
25
28
|
apiBaseUrl: "https://api.mindstudio.ai",
|
|
@@ -71,6 +74,13 @@ function getOllamaBaseUrl() {
|
|
|
71
74
|
function setOllamaBaseUrl(url) {
|
|
72
75
|
config.set("ollamaBaseUrl", url);
|
|
73
76
|
}
|
|
77
|
+
// LM Studio (shared across environments)
|
|
78
|
+
function getLMStudioBaseUrl() {
|
|
79
|
+
return config.get("lmstudioBaseUrl");
|
|
80
|
+
}
|
|
81
|
+
function setLMStudioBaseUrl(url) {
|
|
82
|
+
config.set("lmstudioBaseUrl", url);
|
|
83
|
+
}
|
|
74
84
|
function getConfigPath() {
|
|
75
85
|
return config.path;
|
|
76
86
|
}
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;;;AAqCA,wCAEC;AAED,wCAEC;AAcD,8BAEC;AAED,8BAEC;AAED,kCAGC;AAGD,sCAEC;AAED,sCAEC;AAGD,4CAEC;AAED,4CAEC;AAGD,gDAEC;AAED,gDAEC;AAED,sCAEC;AAGD,gDAYC;AAlHD,gDAAwB;AAmBxB,MAAM,MAAM,GAAG,IAAI,cAAI,CAAe;IACpC,WAAW,EAAE,kBAAkB;IAC/B,QAAQ,EAAE;QACR,WAAW,EAAE,MAAM;QACnB,aAAa,EAAE,wBAAwB;QACvC,eAAe,EAAE,0BAA0B;QAC3C,YAAY,EAAE;YACZ,IAAI,EAAE;gBACJ,UAAU,EAAE,2BAA2B;aACxC;YACD,KAAK,EAAE;gBACL,UAAU,EAAE,uBAAuB;aACpC;SACF;KACF;CACF,CAAC,CAAC;AAEH,yBAAyB;AACzB,SAAgB,cAAc;IAC5B,OAAO,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;AACnC,CAAC;AAED,SAAgB,cAAc,CAAC,GAAgB;IAC7C,MAAM,CAAC,GAAG,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;AACjC,CAAC;AAED,qCAAqC;AACrC,SAAS,YAAY;IACnB,MAAM,GAAG,GAAG,cAAc,EAAE,CAAC;IAC7B,OAAO,MAAM,CAAC,GAAG,CAAC,gBAAgB,GAAG,EAAE,CAAsB,CAAC;AAChE,CAAC;AAED,SAAS,YAAY,CAAC,GAA4B,EAAE,KAAa;IAC/D,MAAM,GAAG,GAAG,cAAc,EAAE,CAAC;IAC7B,MAAM,CAAC,GAAG,CAAC,gBAAgB,GAAG,IAAI,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;AAClD,CAAC;AAED,4BAA4B;AAC5B,SAAgB,SAAS;IACvB,OAAO,YAAY,EAAE,CAAC,MAAM,CAAC;AAC/B,CAAC;AAED,SAAgB,SAAS,CAAC,GAAW;IACnC,YAAY,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;AAC9B,CAAC;AAED,SAAgB,WAAW;IACzB,MAAM,GAAG,GAAG,cAAc,EAAE,CAAC;IAC7B,MAAM,CAAC,MAAM,CAAC,gBAAgB,GAAG,SAA+B,CAAC,CAAC;AACpE,CAAC;AAED,iCAAiC;AACjC,SAAgB,aAAa;IAC3B,OAAO,YAAY,EAAE,CAAC,UAAU,CAAC;AACnC,CAAC;AAED,SAAgB,aAAa,CAAC,GAAW;IACvC,YAAY,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;AAClC,CAAC;AAED,sCAAsC;AACtC,SAAgB,gBAAgB;IAC9B,OAAO,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;AACrC,CAAC;AAED,SAAgB,gBAAgB,CAAC,GAAW;IAC1C,MAAM,CAAC,GAAG,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;AACnC,CAAC;AAED,yCAAyC;AACzC,SAAgB,kBAAkB;IAChC,OAAO,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;AACvC,CAAC;AAED,SAAgB,kBAAkB,CAAC,GAAW;IAC5C,MAAM,CAAC,GAAG,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC;AACrC,CAAC;AAED,SAAgB,aAAa;IAC3B,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC;AAED,uCAAuC;AACvC,SAAgB,kBAAkB;IAKhC,MAAM,GAAG,GAAG,cAAc,EAAE,CAAC;IAC7B,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;IACjC,OAAO;QACL,OAAO,EAAE,GAAG;QACZ,UAAU,EAAE,SAAS,CAAC,UAAU;QAChC,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,MAAM;KAC9B,CAAC;AACJ,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { LocalModelRunner } from "./runner.js";
|
|
2
|
-
export {
|
|
3
|
-
export { getApiKey, setApiKey, clearApiKey, getApiBaseUrl, setApiBaseUrl, getEnvironment, setEnvironment, type Environment, } from "./config.js";
|
|
2
|
+
export { discoverAllModels, discoverRunningProviders, getProvider, getProviderStatuses, isAnyProviderRunning, OllamaProvider, LMStudioProvider, type Provider, type LocalModel, type ProviderType, type ChatMessage, type ChatOptions, type ChatResponse, } from "./providers/index.js";
|
|
3
|
+
export { getApiKey, setApiKey, clearApiKey, getApiBaseUrl, setApiBaseUrl, getOllamaBaseUrl, setOllamaBaseUrl, getLMStudioBaseUrl, setLMStudioBaseUrl, getEnvironment, setEnvironment, type Environment, } from "./config.js";
|
|
4
4
|
export { verifyApiKey, pollForRequest, submitProgress, submitResult, } from "./api.js";
|
|
5
5
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACxB,WAAW,EACX,mBAAmB,EACnB,oBAAoB,EACpB,cAAc,EACd,gBAAgB,EAChB,KAAK,QAAQ,EACb,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,YAAY,GAClB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,SAAS,EACT,SAAS,EACT,WAAW,EACX,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,EACd,cAAc,EACd,KAAK,WAAW,GACjB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,YAAY,EACZ,cAAc,EACd,cAAc,EACd,YAAY,GACb,MAAM,UAAU,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,18 +1,27 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.submitResult = exports.submitProgress = exports.pollForRequest = exports.verifyApiKey = exports.setEnvironment = exports.getEnvironment = exports.setApiBaseUrl = exports.getApiBaseUrl = exports.clearApiKey = exports.setApiKey = exports.getApiKey = exports.
|
|
3
|
+
exports.submitResult = exports.submitProgress = exports.pollForRequest = exports.verifyApiKey = exports.setEnvironment = exports.getEnvironment = exports.setLMStudioBaseUrl = exports.getLMStudioBaseUrl = exports.setOllamaBaseUrl = exports.getOllamaBaseUrl = exports.setApiBaseUrl = exports.getApiBaseUrl = exports.clearApiKey = exports.setApiKey = exports.getApiKey = exports.LMStudioProvider = exports.OllamaProvider = exports.isAnyProviderRunning = exports.getProviderStatuses = exports.getProvider = exports.discoverRunningProviders = exports.discoverAllModels = exports.LocalModelRunner = void 0;
|
|
4
4
|
// Main exports for programmatic use
|
|
5
5
|
var runner_js_1 = require("./runner.js");
|
|
6
6
|
Object.defineProperty(exports, "LocalModelRunner", { enumerable: true, get: function () { return runner_js_1.LocalModelRunner; } });
|
|
7
|
-
var
|
|
8
|
-
Object.defineProperty(exports, "
|
|
9
|
-
Object.defineProperty(exports, "
|
|
7
|
+
var index_js_1 = require("./providers/index.js");
|
|
8
|
+
Object.defineProperty(exports, "discoverAllModels", { enumerable: true, get: function () { return index_js_1.discoverAllModels; } });
|
|
9
|
+
Object.defineProperty(exports, "discoverRunningProviders", { enumerable: true, get: function () { return index_js_1.discoverRunningProviders; } });
|
|
10
|
+
Object.defineProperty(exports, "getProvider", { enumerable: true, get: function () { return index_js_1.getProvider; } });
|
|
11
|
+
Object.defineProperty(exports, "getProviderStatuses", { enumerable: true, get: function () { return index_js_1.getProviderStatuses; } });
|
|
12
|
+
Object.defineProperty(exports, "isAnyProviderRunning", { enumerable: true, get: function () { return index_js_1.isAnyProviderRunning; } });
|
|
13
|
+
Object.defineProperty(exports, "OllamaProvider", { enumerable: true, get: function () { return index_js_1.OllamaProvider; } });
|
|
14
|
+
Object.defineProperty(exports, "LMStudioProvider", { enumerable: true, get: function () { return index_js_1.LMStudioProvider; } });
|
|
10
15
|
var config_js_1 = require("./config.js");
|
|
11
16
|
Object.defineProperty(exports, "getApiKey", { enumerable: true, get: function () { return config_js_1.getApiKey; } });
|
|
12
17
|
Object.defineProperty(exports, "setApiKey", { enumerable: true, get: function () { return config_js_1.setApiKey; } });
|
|
13
18
|
Object.defineProperty(exports, "clearApiKey", { enumerable: true, get: function () { return config_js_1.clearApiKey; } });
|
|
14
19
|
Object.defineProperty(exports, "getApiBaseUrl", { enumerable: true, get: function () { return config_js_1.getApiBaseUrl; } });
|
|
15
20
|
Object.defineProperty(exports, "setApiBaseUrl", { enumerable: true, get: function () { return config_js_1.setApiBaseUrl; } });
|
|
21
|
+
Object.defineProperty(exports, "getOllamaBaseUrl", { enumerable: true, get: function () { return config_js_1.getOllamaBaseUrl; } });
|
|
22
|
+
Object.defineProperty(exports, "setOllamaBaseUrl", { enumerable: true, get: function () { return config_js_1.setOllamaBaseUrl; } });
|
|
23
|
+
Object.defineProperty(exports, "getLMStudioBaseUrl", { enumerable: true, get: function () { return config_js_1.getLMStudioBaseUrl; } });
|
|
24
|
+
Object.defineProperty(exports, "setLMStudioBaseUrl", { enumerable: true, get: function () { return config_js_1.setLMStudioBaseUrl; } });
|
|
16
25
|
Object.defineProperty(exports, "getEnvironment", { enumerable: true, get: function () { return config_js_1.getEnvironment; } });
|
|
17
26
|
Object.defineProperty(exports, "setEnvironment", { enumerable: true, get: function () { return config_js_1.setEnvironment; } });
|
|
18
27
|
var api_js_1 = require("./api.js");
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,oCAAoC;AACpC,yCAA+C;AAAtC,6GAAA,gBAAgB,OAAA;AACzB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,oCAAoC;AACpC,yCAA+C;AAAtC,6GAAA,gBAAgB,OAAA;AACzB,iDAc8B;AAb5B,6GAAA,iBAAiB,OAAA;AACjB,oHAAA,wBAAwB,OAAA;AACxB,uGAAA,WAAW,OAAA;AACX,+GAAA,mBAAmB,OAAA;AACnB,gHAAA,oBAAoB,OAAA;AACpB,0GAAA,cAAc,OAAA;AACd,4GAAA,gBAAgB,OAAA;AAQlB,yCAaqB;AAZnB,sGAAA,SAAS,OAAA;AACT,sGAAA,SAAS,OAAA;AACT,wGAAA,WAAW,OAAA;AACX,0GAAA,aAAa,OAAA;AACb,0GAAA,aAAa,OAAA;AACb,6GAAA,gBAAgB,OAAA;AAChB,6GAAA,gBAAgB,OAAA;AAChB,+GAAA,kBAAkB,OAAA;AAClB,+GAAA,kBAAkB,OAAA;AAClB,2GAAA,cAAc,OAAA;AACd,2GAAA,cAAc,OAAA;AAGhB,mCAKkB;AAJhB,sGAAA,YAAY,OAAA;AACZ,wGAAA,cAAc,OAAA;AACd,wGAAA,cAAc,OAAA;AACd,sGAAA,YAAY,OAAA"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { Provider, LocalModel, ProviderType } from "./types.js";
|
|
2
|
+
export * from "./types.js";
|
|
3
|
+
export { OllamaProvider } from "./ollama.js";
|
|
4
|
+
export { LMStudioProvider } from "./lmstudio.js";
|
|
5
|
+
/**
|
|
6
|
+
* Get a provider instance by name
|
|
7
|
+
*/
|
|
8
|
+
export declare function getProvider(name: ProviderType): Provider | undefined;
|
|
9
|
+
/**
|
|
10
|
+
* Discover which providers are currently running
|
|
11
|
+
*/
|
|
12
|
+
export declare function discoverRunningProviders(): Promise<Provider[]>;
|
|
13
|
+
/**
|
|
14
|
+
* Discover all models from all running providers
|
|
15
|
+
*/
|
|
16
|
+
export declare function discoverAllModels(): Promise<LocalModel[]>;
|
|
17
|
+
/**
|
|
18
|
+
* Check if any provider is running
|
|
19
|
+
*/
|
|
20
|
+
export declare function isAnyProviderRunning(): Promise<boolean>;
|
|
21
|
+
/**
|
|
22
|
+
* Get provider status for all providers
|
|
23
|
+
*/
|
|
24
|
+
export declare function getProviderStatuses(): Promise<Array<{
|
|
25
|
+
provider: Provider;
|
|
26
|
+
running: boolean;
|
|
27
|
+
}>>;
|
|
28
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAErE,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAQjD;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,YAAY,GAAG,QAAQ,GAAG,SAAS,CAEpE;AAED;;GAEG;AACH,wBAAsB,wBAAwB,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,CASpE;AAED;;GAEG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC,CAQ/D;AAED;;GAEG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,OAAO,CAAC,CAG7D;AAED;;GAEG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAClD,KAAK,CAAC;IAAE,QAAQ,EAAE,QAAQ,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CAChD,CAOA"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.LMStudioProvider = exports.OllamaProvider = void 0;
|
|
18
|
+
exports.getProvider = getProvider;
|
|
19
|
+
exports.discoverRunningProviders = discoverRunningProviders;
|
|
20
|
+
exports.discoverAllModels = discoverAllModels;
|
|
21
|
+
exports.isAnyProviderRunning = isAnyProviderRunning;
|
|
22
|
+
exports.getProviderStatuses = getProviderStatuses;
|
|
23
|
+
const ollama_js_1 = require("./ollama.js");
|
|
24
|
+
const lmstudio_js_1 = require("./lmstudio.js");
|
|
25
|
+
__exportStar(require("./types.js"), exports);
|
|
26
|
+
var ollama_js_2 = require("./ollama.js");
|
|
27
|
+
Object.defineProperty(exports, "OllamaProvider", { enumerable: true, get: function () { return ollama_js_2.OllamaProvider; } });
|
|
28
|
+
var lmstudio_js_2 = require("./lmstudio.js");
|
|
29
|
+
Object.defineProperty(exports, "LMStudioProvider", { enumerable: true, get: function () { return lmstudio_js_2.LMStudioProvider; } });
|
|
30
|
+
// Registry of all available providers
|
|
31
|
+
const allProviders = [
|
|
32
|
+
new ollama_js_1.OllamaProvider(),
|
|
33
|
+
new lmstudio_js_1.LMStudioProvider(),
|
|
34
|
+
];
|
|
35
|
+
/**
|
|
36
|
+
* Get a provider instance by name
|
|
37
|
+
*/
|
|
38
|
+
function getProvider(name) {
|
|
39
|
+
return allProviders.find((p) => p.name === name);
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Discover which providers are currently running
|
|
43
|
+
*/
|
|
44
|
+
async function discoverRunningProviders() {
|
|
45
|
+
const results = await Promise.all(allProviders.map(async (provider) => ({
|
|
46
|
+
provider,
|
|
47
|
+
running: await provider.isRunning(),
|
|
48
|
+
})));
|
|
49
|
+
return results.filter((r) => r.running).map((r) => r.provider);
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Discover all models from all running providers
|
|
53
|
+
*/
|
|
54
|
+
async function discoverAllModels() {
|
|
55
|
+
const runningProviders = await discoverRunningProviders();
|
|
56
|
+
const modelArrays = await Promise.all(runningProviders.map((p) => p.discoverModels()));
|
|
57
|
+
return modelArrays.flat();
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Check if any provider is running
|
|
61
|
+
*/
|
|
62
|
+
async function isAnyProviderRunning() {
|
|
63
|
+
const results = await Promise.all(allProviders.map((p) => p.isRunning()));
|
|
64
|
+
return results.some((r) => r);
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Get provider status for all providers
|
|
68
|
+
*/
|
|
69
|
+
async function getProviderStatuses() {
|
|
70
|
+
return Promise.all(allProviders.map(async (provider) => ({
|
|
71
|
+
provider,
|
|
72
|
+
running: await provider.isRunning(),
|
|
73
|
+
})));
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAiBA,kCAEC;AAKD,4DASC;AAKD,8CAQC;AAKD,oDAGC;AAKD,kDASC;AApED,2CAA6C;AAC7C,+CAAiD;AAGjD,6CAA2B;AAC3B,yCAA6C;AAApC,2GAAA,cAAc,OAAA;AACvB,6CAAiD;AAAxC,+GAAA,gBAAgB,OAAA;AAEzB,sCAAsC;AACtC,MAAM,YAAY,GAAe;IAC/B,IAAI,0BAAc,EAAE;IACpB,IAAI,8BAAgB,EAAE;CACvB,CAAC;AAEF;;GAEG;AACH,SAAgB,WAAW,CAAC,IAAkB;IAC5C,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AACnD,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,wBAAwB;IAC5C,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAC/B,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;QACpC,QAAQ;QACR,OAAO,EAAE,MAAM,QAAQ,CAAC,SAAS,EAAE;KACpC,CAAC,CAAC,CACJ,CAAC;IAEF,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;AACjE,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,iBAAiB;IACrC,MAAM,gBAAgB,GAAG,MAAM,wBAAwB,EAAE,CAAC;IAE1D,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,GAAG,CACnC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC,CAChD,CAAC;IAEF,OAAO,WAAW,CAAC,IAAI,EAAE,CAAC;AAC5B,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,oBAAoB;IACxC,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;IAC1E,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;AAChC,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,mBAAmB;IAGvC,OAAO,OAAO,CAAC,GAAG,CAChB,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;QACpC,QAAQ;QACR,OAAO,EAAE,MAAM,QAAQ,CAAC,SAAS,EAAE;KACpC,CAAC,CAAC,CACJ,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { Provider, LocalModel, ChatMessage, ChatOptions, ChatResponse } from "./types.js";
|
|
2
|
+
export declare class LMStudioProvider implements Provider {
|
|
3
|
+
readonly name: "lmstudio";
|
|
4
|
+
readonly displayName = "LM Studio";
|
|
5
|
+
private getBaseUrl;
|
|
6
|
+
isRunning(): Promise<boolean>;
|
|
7
|
+
discoverModels(): Promise<LocalModel[]>;
|
|
8
|
+
chat(model: string, messages: ChatMessage[], options?: ChatOptions): AsyncGenerator<ChatResponse>;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=lmstudio.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lmstudio.d.ts","sourceRoot":"","sources":["../../src/providers/lmstudio.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,QAAQ,EACR,UAAU,EACV,WAAW,EACX,WAAW,EACX,YAAY,EACb,MAAM,YAAY,CAAC;AAYpB,qBAAa,gBAAiB,YAAW,QAAQ;IAC/C,QAAQ,CAAC,IAAI,EAAG,UAAU,CAAU;IACpC,QAAQ,CAAC,WAAW,eAAe;IAEnC,OAAO,CAAC,UAAU;IAIZ,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;IAY7B,cAAc,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;IAmBtC,IAAI,CACT,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,WAAW,EAAE,EACvB,OAAO,CAAC,EAAE,WAAW,GACpB,cAAc,CAAC,YAAY,CAAC;CAoFhC"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.LMStudioProvider = void 0;
|
|
4
|
+
const config_js_1 = require("../config.js");
|
|
5
|
+
class LMStudioProvider {
|
|
6
|
+
name = "lmstudio";
|
|
7
|
+
displayName = "LM Studio";
|
|
8
|
+
getBaseUrl() {
|
|
9
|
+
return (0, config_js_1.getLMStudioBaseUrl)();
|
|
10
|
+
}
|
|
11
|
+
async isRunning() {
|
|
12
|
+
try {
|
|
13
|
+
const response = await fetch(`${this.getBaseUrl()}/models`, {
|
|
14
|
+
method: "GET",
|
|
15
|
+
signal: AbortSignal.timeout(3000),
|
|
16
|
+
});
|
|
17
|
+
return response.ok;
|
|
18
|
+
}
|
|
19
|
+
catch {
|
|
20
|
+
return false;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
async discoverModels() {
|
|
24
|
+
try {
|
|
25
|
+
const response = await fetch(`${this.getBaseUrl()}/models`);
|
|
26
|
+
if (!response.ok) {
|
|
27
|
+
return [];
|
|
28
|
+
}
|
|
29
|
+
const data = (await response.json());
|
|
30
|
+
return data.data.map((m) => ({
|
|
31
|
+
name: m.id,
|
|
32
|
+
provider: this.name,
|
|
33
|
+
}));
|
|
34
|
+
}
|
|
35
|
+
catch {
|
|
36
|
+
return [];
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
async *chat(model, messages, options) {
|
|
40
|
+
const response = await fetch(`${this.getBaseUrl()}/chat/completions`, {
|
|
41
|
+
method: "POST",
|
|
42
|
+
headers: {
|
|
43
|
+
"Content-Type": "application/json",
|
|
44
|
+
},
|
|
45
|
+
body: JSON.stringify({
|
|
46
|
+
model,
|
|
47
|
+
messages: messages.map((m) => ({
|
|
48
|
+
role: m.role,
|
|
49
|
+
content: m.content,
|
|
50
|
+
})),
|
|
51
|
+
stream: true,
|
|
52
|
+
temperature: options?.temperature,
|
|
53
|
+
max_tokens: options?.maxTokens,
|
|
54
|
+
}),
|
|
55
|
+
});
|
|
56
|
+
if (!response.ok) {
|
|
57
|
+
const error = await response.text();
|
|
58
|
+
throw new Error(`LM Studio request failed: ${response.status} ${error}`);
|
|
59
|
+
}
|
|
60
|
+
if (!response.body) {
|
|
61
|
+
throw new Error("No response body from LM Studio");
|
|
62
|
+
}
|
|
63
|
+
const reader = response.body.getReader();
|
|
64
|
+
const decoder = new TextDecoder();
|
|
65
|
+
let buffer = "";
|
|
66
|
+
try {
|
|
67
|
+
while (true) {
|
|
68
|
+
const { done, value } = await reader.read();
|
|
69
|
+
if (done) {
|
|
70
|
+
yield { content: "", done: true };
|
|
71
|
+
break;
|
|
72
|
+
}
|
|
73
|
+
buffer += decoder.decode(value, { stream: true });
|
|
74
|
+
// Process SSE lines
|
|
75
|
+
const lines = buffer.split("\n");
|
|
76
|
+
buffer = lines.pop() || "";
|
|
77
|
+
for (const line of lines) {
|
|
78
|
+
const trimmed = line.trim();
|
|
79
|
+
if (!trimmed || !trimmed.startsWith("data: ")) {
|
|
80
|
+
continue;
|
|
81
|
+
}
|
|
82
|
+
const data = trimmed.slice(6); // Remove "data: " prefix
|
|
83
|
+
if (data === "[DONE]") {
|
|
84
|
+
yield { content: "", done: true };
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
try {
|
|
88
|
+
const parsed = JSON.parse(data);
|
|
89
|
+
const choice = parsed.choices[0];
|
|
90
|
+
const content = choice?.delta?.content || "";
|
|
91
|
+
const isDone = choice?.finish_reason !== null;
|
|
92
|
+
if (content) {
|
|
93
|
+
yield { content, done: isDone };
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
catch {
|
|
97
|
+
// Skip malformed JSON chunks
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
finally {
|
|
103
|
+
reader.releaseLock();
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
exports.LMStudioProvider = LMStudioProvider;
|
|
108
|
+
//# sourceMappingURL=lmstudio.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lmstudio.js","sourceRoot":"","sources":["../../src/providers/lmstudio.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { Provider, LocalModel, ChatMessage, ChatOptions, ChatResponse } from "./types.js";
|
|
2
|
+
export declare class OllamaProvider implements Provider {
|
|
3
|
+
readonly name: "ollama";
|
|
4
|
+
readonly displayName = "Ollama";
|
|
5
|
+
private createClient;
|
|
6
|
+
isRunning(): Promise<boolean>;
|
|
7
|
+
discoverModels(): Promise<LocalModel[]>;
|
|
8
|
+
chat(model: string, messages: ChatMessage[], options?: ChatOptions): AsyncGenerator<ChatResponse>;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=ollama.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ollama.d.ts","sourceRoot":"","sources":["../../src/providers/ollama.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,QAAQ,EACR,UAAU,EACV,WAAW,EACX,WAAW,EACX,YAAY,EACb,MAAM,YAAY,CAAC;AAEpB,qBAAa,cAAe,YAAW,QAAQ;IAC7C,QAAQ,CAAC,IAAI,EAAG,QAAQ,CAAU;IAClC,QAAQ,CAAC,WAAW,YAAY;IAEhC,OAAO,CAAC,YAAY;IAId,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;IAU7B,cAAc,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;IAiBtC,IAAI,CACT,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,WAAW,EAAE,EACvB,OAAO,CAAC,EAAE,WAAW,GACpB,cAAc,CAAC,YAAY,CAAC;CAuBhC"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.OllamaProvider = void 0;
|
|
4
|
+
const ollama_1 = require("ollama");
|
|
5
|
+
const config_js_1 = require("../config.js");
|
|
6
|
+
class OllamaProvider {
|
|
7
|
+
name = "ollama";
|
|
8
|
+
displayName = "Ollama";
|
|
9
|
+
createClient() {
|
|
10
|
+
return new ollama_1.Ollama({ host: (0, config_js_1.getOllamaBaseUrl)() });
|
|
11
|
+
}
|
|
12
|
+
async isRunning() {
|
|
13
|
+
try {
|
|
14
|
+
const client = this.createClient();
|
|
15
|
+
await client.list();
|
|
16
|
+
return true;
|
|
17
|
+
}
|
|
18
|
+
catch {
|
|
19
|
+
return false;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
async discoverModels() {
|
|
23
|
+
try {
|
|
24
|
+
const client = this.createClient();
|
|
25
|
+
const response = await client.list();
|
|
26
|
+
return response.models.map((m) => ({
|
|
27
|
+
name: m.name,
|
|
28
|
+
provider: this.name,
|
|
29
|
+
size: m.size,
|
|
30
|
+
parameterSize: m.details?.parameter_size,
|
|
31
|
+
quantization: m.details?.quantization_level,
|
|
32
|
+
}));
|
|
33
|
+
}
|
|
34
|
+
catch {
|
|
35
|
+
return [];
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
async *chat(model, messages, options) {
|
|
39
|
+
const client = this.createClient();
|
|
40
|
+
const stream = await client.chat({
|
|
41
|
+
model,
|
|
42
|
+
messages: messages.map((m) => ({
|
|
43
|
+
role: m.role,
|
|
44
|
+
content: m.content,
|
|
45
|
+
})),
|
|
46
|
+
stream: true,
|
|
47
|
+
options: {
|
|
48
|
+
temperature: options?.temperature,
|
|
49
|
+
num_predict: options?.maxTokens,
|
|
50
|
+
},
|
|
51
|
+
});
|
|
52
|
+
for await (const chunk of stream) {
|
|
53
|
+
yield {
|
|
54
|
+
content: chunk.message.content,
|
|
55
|
+
done: chunk.done,
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
exports.OllamaProvider = OllamaProvider;
|
|
61
|
+
//# sourceMappingURL=ollama.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ollama.js","sourceRoot":"","sources":["../../src/providers/ollama.ts"],"names":[],"mappings":";;;AAAA,mCAAgC;AAChC,4CAAgD;AAShD,MAAa,cAAc;IAChB,IAAI,GAAG,QAAiB,CAAC;IACzB,WAAW,GAAG,QAAQ,CAAC;IAExB,YAAY;QAClB,OAAO,IAAI,eAAM,CAAC,EAAE,IAAI,EAAE,IAAA,4BAAgB,GAAE,EAAE,CAAC,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,SAAS;QACb,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;YACnC,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;YACpB,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,KAAK,CAAC,cAAc;QAClB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;YACnC,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;YAErC,OAAO,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACjC,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,QAAQ,EAAE,IAAI,CAAC,IAAI;gBACnB,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,aAAa,EAAE,CAAC,CAAC,OAAO,EAAE,cAAc;gBACxC,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE,kBAAkB;aAC5C,CAAC,CAAC,CAAC;QACN,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,CAAC,IAAI,CACT,KAAa,EACb,QAAuB,EACvB,OAAqB;QAErB,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QAEnC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;YAC/B,KAAK;YACL,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC7B,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,OAAO,EAAE,CAAC,CAAC,OAAO;aACnB,CAAC,CAAC;YACH,MAAM,EAAE,IAAI;YACZ,OAAO,EAAE;gBACP,WAAW,EAAE,OAAO,EAAE,WAAW;gBACjC,WAAW,EAAE,OAAO,EAAE,SAAS;aAChC;SACF,CAAC,CAAC;QAEH,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YACjC,MAAM;gBACJ,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO;gBAC9B,IAAI,EAAE,KAAK,CAAC,IAAI;aACjB,CAAC;QACJ,CAAC;IACH,CAAC;CACF;AA9DD,wCA8DC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
export type ProviderType = "ollama" | "lmstudio";
|
|
2
|
+
export interface LocalModel {
|
|
3
|
+
name: string;
|
|
4
|
+
provider: ProviderType;
|
|
5
|
+
size?: number;
|
|
6
|
+
parameterSize?: string;
|
|
7
|
+
quantization?: string;
|
|
8
|
+
}
|
|
9
|
+
export interface ChatMessage {
|
|
10
|
+
role: "user" | "assistant" | "system";
|
|
11
|
+
content: string;
|
|
12
|
+
}
|
|
13
|
+
export interface ChatOptions {
|
|
14
|
+
temperature?: number;
|
|
15
|
+
maxTokens?: number;
|
|
16
|
+
}
|
|
17
|
+
export interface ChatResponse {
|
|
18
|
+
content: string;
|
|
19
|
+
done: boolean;
|
|
20
|
+
}
|
|
21
|
+
export interface Provider {
|
|
22
|
+
readonly name: ProviderType;
|
|
23
|
+
readonly displayName: string;
|
|
24
|
+
/**
|
|
25
|
+
* Check if the provider's backend is running and accessible
|
|
26
|
+
*/
|
|
27
|
+
isRunning(): Promise<boolean>;
|
|
28
|
+
/**
|
|
29
|
+
* Discover all available models from this provider
|
|
30
|
+
*/
|
|
31
|
+
discoverModels(): Promise<LocalModel[]>;
|
|
32
|
+
/**
|
|
33
|
+
* Stream a chat completion
|
|
34
|
+
*/
|
|
35
|
+
chat(model: string, messages: ChatMessage[], options?: ChatOptions): AsyncGenerator<ChatResponse>;
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/providers/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,UAAU,CAAC;AAEjD,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,YAAY,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,QAAQ,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAE7B;;OAEG;IACH,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAE9B;;OAEG;IACH,cAAc,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IAExC;;OAEG;IACH,IAAI,CACF,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,WAAW,EAAE,EACvB,OAAO,CAAC,EAAE,WAAW,GACpB,cAAc,CAAC,YAAY,CAAC,CAAC;CACjC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/providers/types.ts"],"names":[],"mappings":""}
|
package/dist/runner.d.ts
CHANGED
|
@@ -2,9 +2,12 @@ export declare class LocalModelRunner {
|
|
|
2
2
|
private isRunning;
|
|
3
3
|
private spinner;
|
|
4
4
|
private activeRequests;
|
|
5
|
+
private modelProviderMap;
|
|
5
6
|
start(): Promise<void>;
|
|
6
7
|
private poll;
|
|
8
|
+
private buildModelProviderMap;
|
|
7
9
|
private processRequest;
|
|
10
|
+
private restoreSpinner;
|
|
8
11
|
private updateSpinner;
|
|
9
12
|
private stop;
|
|
10
13
|
private sleep;
|
package/dist/runner.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"AAgBA,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,OAAO,CAAoB;IACnC,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,gBAAgB,CAAoC;IAEtD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YAmEd,IAAI;IAiBlB,OAAO,CAAC,qBAAqB;YAUf,cAAc;IAgG5B,OAAO,CAAC,cAAc;IAUtB,OAAO,CAAC,aAAa;YAUP,IAAI;IAQlB,OAAO,CAAC,KAAK;CAGd"}
|
package/dist/runner.js
CHANGED
|
@@ -6,27 +6,36 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.LocalModelRunner = void 0;
|
|
7
7
|
const chalk_1 = __importDefault(require("chalk"));
|
|
8
8
|
const ora_1 = __importDefault(require("ora"));
|
|
9
|
-
const
|
|
9
|
+
const index_js_1 = require("./providers/index.js");
|
|
10
10
|
const api_js_1 = require("./api.js");
|
|
11
11
|
class LocalModelRunner {
|
|
12
12
|
isRunning = false;
|
|
13
13
|
spinner = null;
|
|
14
14
|
activeRequests = 0;
|
|
15
|
+
modelProviderMap = new Map();
|
|
15
16
|
async start() {
|
|
16
17
|
console.clear();
|
|
17
18
|
console.log(chalk_1.default.blue("\nMindStudio Local Model Tunnel\n"));
|
|
18
|
-
// Discover available models
|
|
19
|
-
const models = await (0,
|
|
19
|
+
// Discover available models from all providers
|
|
20
|
+
const models = await (0, index_js_1.discoverAllModels)();
|
|
20
21
|
if (models.length === 0) {
|
|
21
|
-
console.log(chalk_1.default.yellow("No
|
|
22
|
-
console.log(chalk_1.default.white(" Make sure Ollama is running
|
|
23
|
-
console.log(chalk_1.default.white("
|
|
22
|
+
console.log(chalk_1.default.yellow("No local models found."));
|
|
23
|
+
console.log(chalk_1.default.white(" Make sure Ollama or LM Studio is running."));
|
|
24
|
+
console.log(chalk_1.default.white(" Ollama: ollama serve"));
|
|
25
|
+
console.log(chalk_1.default.white(" LM Studio: Start the local server\n"));
|
|
24
26
|
return;
|
|
25
27
|
}
|
|
28
|
+
// Build model -> provider mapping
|
|
29
|
+
this.buildModelProviderMap(models);
|
|
26
30
|
console.log(chalk_1.default.green("✓ Found models:"));
|
|
27
31
|
models.forEach((m) => {
|
|
28
|
-
const size = m.parameterSize
|
|
29
|
-
|
|
32
|
+
const size = m.parameterSize
|
|
33
|
+
? m.parameterSize
|
|
34
|
+
: m.size
|
|
35
|
+
? `${Math.round(m.size / 1e9)}GB`
|
|
36
|
+
: "";
|
|
37
|
+
const sizeStr = size ? ` (${size})` : "";
|
|
38
|
+
console.log(chalk_1.default.white(` • ${m.name}${sizeStr} `) + chalk_1.default.blue(`[${m.provider}]`));
|
|
30
39
|
});
|
|
31
40
|
console.log("");
|
|
32
41
|
const modelNames = models.map((m) => m.name);
|
|
@@ -71,32 +80,45 @@ class LocalModelRunner {
|
|
|
71
80
|
this.updateSpinner();
|
|
72
81
|
});
|
|
73
82
|
}
|
|
83
|
+
buildModelProviderMap(models) {
|
|
84
|
+
this.modelProviderMap.clear();
|
|
85
|
+
for (const model of models) {
|
|
86
|
+
const provider = (0, index_js_1.getProvider)(model.provider);
|
|
87
|
+
if (provider) {
|
|
88
|
+
this.modelProviderMap.set(model.name, provider);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
74
92
|
async processRequest(request) {
|
|
75
93
|
const startTime = Date.now();
|
|
76
94
|
this.spinner?.stop();
|
|
77
95
|
console.log(chalk_1.default.cyan(`\n⚡ Processing: ${request.modelId}`));
|
|
96
|
+
// Find the provider for this model
|
|
97
|
+
const provider = this.modelProviderMap.get(request.modelId);
|
|
98
|
+
if (!provider) {
|
|
99
|
+
const message = `Model ${request.modelId} not found. Is it registered on your local server?`;
|
|
100
|
+
console.log(chalk_1.default.red(`\nFailed: ${message}\n`));
|
|
101
|
+
await (0, api_js_1.submitResult)(request.id, false, undefined, message);
|
|
102
|
+
this.restoreSpinner();
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
console.log(chalk_1.default.gray(` Using provider: ${provider.displayName}`));
|
|
78
106
|
try {
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
})),
|
|
89
|
-
stream: true,
|
|
90
|
-
options: {
|
|
91
|
-
temperature: request.payload.temperature,
|
|
92
|
-
num_predict: request.payload.maxTokens,
|
|
93
|
-
},
|
|
107
|
+
// Build messages for the provider
|
|
108
|
+
const messages = (request.payload.messages || []).map((m) => ({
|
|
109
|
+
role: m.role,
|
|
110
|
+
content: m.content,
|
|
111
|
+
}));
|
|
112
|
+
// Stream the response using the provider
|
|
113
|
+
const stream = provider.chat(request.modelId, messages, {
|
|
114
|
+
temperature: request.payload.temperature,
|
|
115
|
+
maxTokens: request.payload.maxTokens,
|
|
94
116
|
});
|
|
95
117
|
let fullContent = "";
|
|
96
118
|
let lastProgressUpdate = 0;
|
|
97
119
|
const progressInterval = 100; // Update progress every 100ms max
|
|
98
120
|
for await (const chunk of stream) {
|
|
99
|
-
fullContent += chunk.
|
|
121
|
+
fullContent += chunk.content;
|
|
100
122
|
// Throttle progress updates
|
|
101
123
|
const now = Date.now();
|
|
102
124
|
if (now - lastProgressUpdate > progressInterval) {
|
|
@@ -104,7 +126,9 @@ class LocalModelRunner {
|
|
|
104
126
|
lastProgressUpdate = now;
|
|
105
127
|
}
|
|
106
128
|
// Show streaming indicator
|
|
107
|
-
|
|
129
|
+
if (chunk.content) {
|
|
130
|
+
process.stdout.write(chalk_1.default.white("."));
|
|
131
|
+
}
|
|
108
132
|
}
|
|
109
133
|
// Submit final progress
|
|
110
134
|
await (0, api_js_1.submitProgress)(request.id, fullContent);
|
|
@@ -112,7 +136,7 @@ class LocalModelRunner {
|
|
|
112
136
|
await (0, api_js_1.submitResult)(request.id, true, {
|
|
113
137
|
content: fullContent,
|
|
114
138
|
usage: {
|
|
115
|
-
promptTokens: 0,
|
|
139
|
+
promptTokens: 0,
|
|
116
140
|
completionTokens: 0,
|
|
117
141
|
},
|
|
118
142
|
});
|
|
@@ -124,6 +148,7 @@ class LocalModelRunner {
|
|
|
124
148
|
const message = `Model ${request.modelId} not found. Is it registered on your local server?`;
|
|
125
149
|
console.log(chalk_1.default.red(`\nFailed: ${message}\n`));
|
|
126
150
|
await (0, api_js_1.submitResult)(request.id, false, undefined, message);
|
|
151
|
+
this.restoreSpinner();
|
|
127
152
|
return;
|
|
128
153
|
}
|
|
129
154
|
let message = error instanceof Error ? error.message : "Unknown error";
|
|
@@ -135,6 +160,9 @@ class LocalModelRunner {
|
|
|
135
160
|
console.log(chalk_1.default.red(`\n✗ Failed: ${message}\n`));
|
|
136
161
|
await (0, api_js_1.submitResult)(request.id, false, undefined, message);
|
|
137
162
|
}
|
|
163
|
+
this.restoreSpinner();
|
|
164
|
+
}
|
|
165
|
+
restoreSpinner() {
|
|
138
166
|
if (this.isRunning) {
|
|
139
167
|
this.spinner = (0, ora_1.default)({
|
|
140
168
|
text: "Waiting for requests...",
|
package/dist/runner.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,8CAA+B;AAC/B,
|
|
1
|
+
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}
|