@mindstudio-ai/local-model-tunnel 0.1.3 → 0.1.5
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 +95 -19
- package/dist/api.d.ts +37 -3
- package/dist/api.d.ts.map +1 -1
- package/dist/api.js +61 -32
- package/dist/api.js.map +1 -1
- package/dist/cli.js +333 -126
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +4 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +30 -33
- package/dist/config.js.map +1 -1
- package/dist/helpers.d.ts +4 -0
- package/dist/helpers.d.ts.map +1 -0
- package/dist/helpers.js +33 -0
- package/dist/helpers.js.map +1 -0
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -30
- package/dist/index.js.map +1 -1
- package/dist/providers/index.d.ts +27 -1
- package/dist/providers/index.d.ts.map +1 -1
- package/dist/providers/index.js +71 -36
- package/dist/providers/index.js.map +1 -1
- package/dist/providers/lmstudio.d.ts +3 -2
- package/dist/providers/lmstudio.d.ts.map +1 -1
- package/dist/providers/lmstudio.js +5 -7
- package/dist/providers/lmstudio.js.map +1 -1
- package/dist/providers/ollama.d.ts +3 -2
- package/dist/providers/ollama.d.ts.map +1 -1
- package/dist/providers/ollama.js +6 -8
- package/dist/providers/ollama.js.map +1 -1
- package/dist/providers/stable-diffusion.d.ts +41 -0
- package/dist/providers/stable-diffusion.d.ts.map +1 -0
- package/dist/providers/stable-diffusion.js +283 -0
- package/dist/providers/stable-diffusion.js.map +1 -0
- package/dist/providers/types.d.ts +110 -2
- package/dist/providers/types.d.ts.map +1 -1
- package/dist/providers/types.js +12 -2
- package/dist/providers/types.js.map +1 -1
- package/dist/quickstart/QuickstartScreen.d.ts +2 -0
- package/dist/quickstart/QuickstartScreen.d.ts.map +1 -0
- package/dist/quickstart/QuickstartScreen.js +416 -0
- package/dist/quickstart/QuickstartScreen.js.map +1 -0
- package/dist/quickstart/detect.d.ts +21 -0
- package/dist/quickstart/detect.d.ts.map +1 -0
- package/dist/quickstart/detect.js +181 -0
- package/dist/quickstart/detect.js.map +1 -0
- package/dist/quickstart/index.d.ts +4 -0
- package/dist/quickstart/index.d.ts.map +1 -0
- package/dist/quickstart/index.js +10 -0
- package/dist/quickstart/index.js.map +1 -0
- package/dist/quickstart/installers.d.ts +42 -0
- package/dist/quickstart/installers.d.ts.map +1 -0
- package/dist/quickstart/installers.js +436 -0
- package/dist/quickstart/installers.js.map +1 -0
- package/dist/runner.d.ts +3 -0
- package/dist/runner.d.ts.map +1 -1
- package/dist/runner.js +139 -61
- package/dist/runner.js.map +1 -1
- package/dist/tui/App.d.ts +7 -0
- package/dist/tui/App.d.ts.map +1 -0
- package/dist/tui/App.js +53 -0
- package/dist/tui/App.js.map +1 -0
- package/dist/tui/TunnelRunner.d.ts +18 -0
- package/dist/tui/TunnelRunner.d.ts.map +1 -0
- package/dist/tui/TunnelRunner.js +187 -0
- package/dist/tui/TunnelRunner.js.map +1 -0
- package/dist/tui/components/Header.d.ts +9 -0
- package/dist/tui/components/Header.d.ts.map +1 -0
- package/dist/tui/components/Header.js +21 -0
- package/dist/tui/components/Header.js.map +1 -0
- package/dist/tui/components/ModelsPanel.d.ts +7 -0
- package/dist/tui/components/ModelsPanel.d.ts.map +1 -0
- package/dist/tui/components/ModelsPanel.js +28 -0
- package/dist/tui/components/ModelsPanel.js.map +1 -0
- package/dist/tui/components/ProvidersPanel.d.ts +7 -0
- package/dist/tui/components/ProvidersPanel.d.ts.map +1 -0
- package/dist/tui/components/ProvidersPanel.js +6 -0
- package/dist/tui/components/ProvidersPanel.js.map +1 -0
- package/dist/tui/components/RequestLog.d.ts +8 -0
- package/dist/tui/components/RequestLog.d.ts.map +1 -0
- package/dist/tui/components/RequestLog.js +60 -0
- package/dist/tui/components/RequestLog.js.map +1 -0
- package/dist/tui/components/StatusBar.d.ts +10 -0
- package/dist/tui/components/StatusBar.d.ts.map +1 -0
- package/dist/tui/components/StatusBar.js +7 -0
- package/dist/tui/components/StatusBar.js.map +1 -0
- package/dist/tui/components/index.d.ts +6 -0
- package/dist/tui/components/index.d.ts.map +1 -0
- package/dist/tui/components/index.js +6 -0
- package/dist/tui/components/index.js.map +1 -0
- package/dist/tui/events.d.ts +34 -0
- package/dist/tui/events.d.ts.map +1 -0
- package/dist/tui/events.js +26 -0
- package/dist/tui/events.js.map +1 -0
- package/dist/tui/hooks/index.d.ts +5 -0
- package/dist/tui/hooks/index.d.ts.map +1 -0
- package/dist/tui/hooks/index.js +5 -0
- package/dist/tui/hooks/index.js.map +1 -0
- package/dist/tui/hooks/useConnection.d.ts +10 -0
- package/dist/tui/hooks/useConnection.d.ts.map +1 -0
- package/dist/tui/hooks/useConnection.js +42 -0
- package/dist/tui/hooks/useConnection.js.map +1 -0
- package/dist/tui/hooks/useModels.d.ts +9 -0
- package/dist/tui/hooks/useModels.d.ts.map +1 -0
- package/dist/tui/hooks/useModels.js +28 -0
- package/dist/tui/hooks/useModels.js.map +1 -0
- package/dist/tui/hooks/useProviders.d.ts +9 -0
- package/dist/tui/hooks/useProviders.d.ts.map +1 -0
- package/dist/tui/hooks/useProviders.js +30 -0
- package/dist/tui/hooks/useProviders.js.map +1 -0
- package/dist/tui/hooks/useRequests.d.ts +9 -0
- package/dist/tui/hooks/useRequests.d.ts.map +1 -0
- package/dist/tui/hooks/useRequests.js +60 -0
- package/dist/tui/hooks/useRequests.js.map +1 -0
- package/dist/tui/index.d.ts +2 -0
- package/dist/tui/index.d.ts.map +1 -0
- package/dist/tui/index.js +19 -0
- package/dist/tui/index.js.map +1 -0
- package/dist/tui/screens/ConfigScreen.d.ts +2 -0
- package/dist/tui/screens/ConfigScreen.d.ts.map +1 -0
- package/dist/tui/screens/ConfigScreen.js +18 -0
- package/dist/tui/screens/ConfigScreen.js.map +1 -0
- package/dist/tui/screens/HomeScreen.d.ts +2 -0
- package/dist/tui/screens/HomeScreen.d.ts.map +1 -0
- package/dist/tui/screens/HomeScreen.js +156 -0
- package/dist/tui/screens/HomeScreen.js.map +1 -0
- package/dist/tui/screens/ModelsScreen.d.ts +2 -0
- package/dist/tui/screens/ModelsScreen.d.ts.map +1 -0
- package/dist/tui/screens/ModelsScreen.js +59 -0
- package/dist/tui/screens/ModelsScreen.js.map +1 -0
- package/dist/tui/screens/StatusScreen.d.ts +2 -0
- package/dist/tui/screens/StatusScreen.d.ts.map +1 -0
- package/dist/tui/screens/StatusScreen.js +53 -0
- package/dist/tui/screens/StatusScreen.js.map +1 -0
- package/dist/tui/screens/index.d.ts +9 -0
- package/dist/tui/screens/index.d.ts.map +1 -0
- package/dist/tui/screens/index.js +31 -0
- package/dist/tui/screens/index.js.map +1 -0
- package/dist/tui/types.d.ts +30 -0
- package/dist/tui/types.d.ts.map +1 -0
- package/dist/tui/types.js +2 -0
- package/dist/tui/types.js.map +1 -0
- package/package.json +8 -2
package/README.md
CHANGED
|
@@ -2,19 +2,19 @@
|
|
|
2
2
|
|
|
3
3
|
Run local models with MindStudio.
|
|
4
4
|
|
|
5
|
-
Providers supported:
|
|
5
|
+
Providers supported so far:
|
|
6
6
|
|
|
7
|
-
-
|
|
8
|
-
- [LM Studio](https://lmstudio.ai/)
|
|
7
|
+
- **Text Generation**
|
|
9
8
|
|
|
10
|
-
|
|
9
|
+
- [Ollama](https://ollama.ai)
|
|
10
|
+
- [LM Studio](https://lmstudio.ai/)
|
|
11
|
+
|
|
12
|
+
- **Image Generation**
|
|
13
|
+
- [Stable Diffusion](https://github.com/lllyasviel/stable-diffusion-webui-forge)
|
|
11
14
|
|
|
12
15
|
## Prerequisites
|
|
13
16
|
|
|
14
17
|
- Node.js 18+
|
|
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 local server running
|
|
18
18
|
|
|
19
19
|
## Installation
|
|
20
20
|
|
|
@@ -25,35 +25,111 @@ npm install -g @mindstudio-ai/local-model-tunnel
|
|
|
25
25
|
## Quick Start
|
|
26
26
|
|
|
27
27
|
```bash
|
|
28
|
+
# Launch the interactive menu
|
|
29
|
+
mindstudio-local
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
This opens an interactive home screen where you can:
|
|
33
|
+
|
|
34
|
+
- **Setup** - Install and configure local AI providers (Ollama, LM Studio, Stable Diffusion)
|
|
35
|
+
- **Authenticate** - Log in to MindStudio
|
|
36
|
+
- **Register Models** - Register your local models with MindStudio
|
|
37
|
+
- **Start Tunnel** - Launch the local model tunnel
|
|
38
|
+
- **View Models** - See available local models
|
|
39
|
+
- **Configuration** - View current settings
|
|
40
|
+
|
|
41
|
+
### Manual Commands
|
|
42
|
+
|
|
43
|
+
If you prefer command-line usage:
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
# Run the setup wizard
|
|
47
|
+
mindstudio-local setup
|
|
48
|
+
|
|
28
49
|
# Authenticate with MindStudio
|
|
29
50
|
mindstudio-local auth
|
|
30
51
|
|
|
31
|
-
# Register your local models
|
|
52
|
+
# Register your local models
|
|
32
53
|
mindstudio-local register
|
|
33
54
|
|
|
34
55
|
# Start the tunnel
|
|
35
56
|
mindstudio-local start
|
|
36
57
|
```
|
|
37
58
|
|
|
59
|
+
## Setup Wizard
|
|
60
|
+
|
|
61
|
+
The setup wizard (`mindstudio-local setup`) helps you install and configure providers:
|
|
62
|
+
|
|
63
|
+
**Ollama:**
|
|
64
|
+
|
|
65
|
+
- Auto-install Ollama (Linux/macOS)
|
|
66
|
+
- Start/stop Ollama server
|
|
67
|
+
- Download models from [ollama.com/library](https://ollama.com/library)
|
|
68
|
+
|
|
69
|
+
**LM Studio:**
|
|
70
|
+
|
|
71
|
+
- Opens download page in browser
|
|
72
|
+
- Guides you through enabling the local server
|
|
73
|
+
|
|
74
|
+
**Stable Diffusion Forge:**
|
|
75
|
+
|
|
76
|
+
- Clones the repository to your chosen location
|
|
77
|
+
- Provides setup instructions
|
|
78
|
+
- Tip: Download models from [civitai.com](https://civitai.com) (filter by "SDXL 1.0")
|
|
79
|
+
|
|
80
|
+
## Provider Setup (Manual)
|
|
81
|
+
|
|
82
|
+
### Ollama
|
|
83
|
+
|
|
84
|
+
1. Download [Ollama](https://ollama.com/download)
|
|
85
|
+
2. Pull a model: `ollama pull llama3.2` (see [all models](https://ollama.com/library))
|
|
86
|
+
3. Start the server: `ollama serve`
|
|
87
|
+
|
|
88
|
+
### LM Studio
|
|
89
|
+
|
|
90
|
+
1. Download [LM Studio](https://lmstudio.ai/download)
|
|
91
|
+
2. Download a model through the app
|
|
92
|
+
3. Enable the [Local Server](https://lmstudio.ai/docs/developer/core/server#running-the-server)
|
|
93
|
+
|
|
94
|
+
### Stable Diffusion (Forge)
|
|
95
|
+
|
|
96
|
+
**First-time setup:**
|
|
97
|
+
|
|
98
|
+
```bash
|
|
99
|
+
git clone https://github.com/lllyasviel/stable-diffusion-webui-forge.git
|
|
100
|
+
cd stable-diffusion-webui-forge
|
|
101
|
+
./webui.sh --api
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
**Subsequent runs:**
|
|
105
|
+
|
|
106
|
+
```bash
|
|
107
|
+
cd stable-diffusion-webui-forge
|
|
108
|
+
./webui.sh --api
|
|
109
|
+
```
|
|
110
|
+
|
|
38
111
|
## Commands
|
|
39
112
|
|
|
40
|
-
| Command
|
|
41
|
-
|
|
|
42
|
-
|
|
|
43
|
-
| `
|
|
44
|
-
| `
|
|
45
|
-
| `
|
|
46
|
-
| `
|
|
47
|
-
| `
|
|
48
|
-
| `
|
|
49
|
-
| `
|
|
113
|
+
| Command | Description |
|
|
114
|
+
| ------------ | ----------------------------------------- |
|
|
115
|
+
| _(none)_ | Open interactive home screen |
|
|
116
|
+
| `setup` | Interactive setup wizard for providers |
|
|
117
|
+
| `auth` | Authenticate with MindStudio via browser |
|
|
118
|
+
| `register` | Register all local models with MindStudio |
|
|
119
|
+
| `start` | Start the local model tunnel |
|
|
120
|
+
| `models` | List available local models |
|
|
121
|
+
| `status` | Check connection status |
|
|
122
|
+
| `config` | Show current configuration |
|
|
123
|
+
| `set-config` | Set configuration |
|
|
124
|
+
| `logout` | Remove stored credentials |
|
|
50
125
|
|
|
51
126
|
## Configuration Options
|
|
52
127
|
|
|
53
128
|
```bash
|
|
54
129
|
# Use custom provider URLs
|
|
55
130
|
mindstudio-local set-config --ollama-url http://localhost:11434
|
|
56
|
-
mindstudio-local set-config --lmstudio-url http://localhost:1234
|
|
131
|
+
mindstudio-local set-config --lmstudio-url http://localhost:1234/v1
|
|
132
|
+
mindstudio-local set-config --sd-url http://127.0.0.1:7860
|
|
57
133
|
```
|
|
58
134
|
|
|
59
135
|
## How It Works
|
package/dist/api.d.ts
CHANGED
|
@@ -16,16 +16,50 @@ export interface LocalModelRequest {
|
|
|
16
16
|
createdAt: number;
|
|
17
17
|
}
|
|
18
18
|
export declare function pollForRequest(models: string[]): Promise<LocalModelRequest | null>;
|
|
19
|
+
/**
|
|
20
|
+
* Progress update for text generation (streaming content)
|
|
21
|
+
*/
|
|
19
22
|
export declare function submitProgress(requestId: string, content: string): Promise<void>;
|
|
20
|
-
|
|
23
|
+
/**
|
|
24
|
+
* Progress update for image/video generation (step-based)
|
|
25
|
+
*/
|
|
26
|
+
export declare function submitGenerationProgress(requestId: string, step: number, totalSteps: number, preview?: string): Promise<void>;
|
|
27
|
+
/**
|
|
28
|
+
* Result for text/chat completions
|
|
29
|
+
*/
|
|
30
|
+
export interface TextResult {
|
|
21
31
|
content?: string;
|
|
22
32
|
usage?: {
|
|
23
33
|
promptTokens: number;
|
|
24
34
|
completionTokens: number;
|
|
25
35
|
};
|
|
26
|
-
}
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Result for image generation
|
|
39
|
+
*/
|
|
40
|
+
export interface ImageResult {
|
|
41
|
+
/** Base64-encoded image data */
|
|
42
|
+
imageBase64: string;
|
|
43
|
+
/** MIME type (e.g., "image/png") */
|
|
44
|
+
mimeType: string;
|
|
45
|
+
/** Seed used for generation */
|
|
46
|
+
seed?: number;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Combined result type
|
|
50
|
+
*/
|
|
51
|
+
export type RequestResult = TextResult | ImageResult;
|
|
52
|
+
export declare function submitResult(requestId: string, success: boolean, result?: RequestResult, error?: string): Promise<void>;
|
|
27
53
|
export declare function verifyApiKey(): Promise<boolean>;
|
|
28
|
-
export
|
|
54
|
+
export type ModelTypeMindStudio = "llm_chat" | "image_generation" | "video_generation";
|
|
55
|
+
export interface RegisterModelOptions {
|
|
56
|
+
modelName: string;
|
|
57
|
+
provider: string;
|
|
58
|
+
modelType?: ModelTypeMindStudio;
|
|
59
|
+
/** Parameter schemas for configurable options */
|
|
60
|
+
parameters?: unknown[];
|
|
61
|
+
}
|
|
62
|
+
export declare function registerLocalModel(modelNameOrOptions: string | RegisterModelOptions, provider?: string, modelType?: ModelTypeMindStudio): Promise<void>;
|
|
29
63
|
export declare function getRegisteredModels(): Promise<string[]>;
|
|
30
64
|
export declare function requestDeviceAuth(): Promise<{
|
|
31
65
|
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,
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
|
package/dist/api.js
CHANGED
|
@@ -1,17 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.pollForRequest = pollForRequest;
|
|
4
|
-
exports.submitProgress = submitProgress;
|
|
5
|
-
exports.submitResult = submitResult;
|
|
6
|
-
exports.verifyApiKey = verifyApiKey;
|
|
7
|
-
exports.registerLocalModel = registerLocalModel;
|
|
8
|
-
exports.getRegisteredModels = getRegisteredModels;
|
|
9
|
-
exports.requestDeviceAuth = requestDeviceAuth;
|
|
10
|
-
exports.pollDeviceAuth = pollDeviceAuth;
|
|
11
|
-
exports.disconnectHeartbeat = disconnectHeartbeat;
|
|
12
|
-
const config_js_1 = require("./config.js");
|
|
1
|
+
import { getApiKey, getApiBaseUrl } from "./config.js";
|
|
13
2
|
function getHeaders() {
|
|
14
|
-
const apiKey =
|
|
3
|
+
const apiKey = getApiKey();
|
|
15
4
|
if (!apiKey) {
|
|
16
5
|
throw new Error("Not authenticated. Run: mindstudio-local auth");
|
|
17
6
|
}
|
|
@@ -20,8 +9,8 @@ function getHeaders() {
|
|
|
20
9
|
"Content-Type": "application/json",
|
|
21
10
|
};
|
|
22
11
|
}
|
|
23
|
-
async function pollForRequest(models) {
|
|
24
|
-
const baseUrl =
|
|
12
|
+
export async function pollForRequest(models) {
|
|
13
|
+
const baseUrl = getApiBaseUrl();
|
|
25
14
|
const modelsParam = models.join(",");
|
|
26
15
|
const response = await fetch(`${baseUrl}/v1/local-models/poll?models=${encodeURIComponent(modelsParam)}`, {
|
|
27
16
|
method: "GET",
|
|
@@ -37,8 +26,11 @@ async function pollForRequest(models) {
|
|
|
37
26
|
const data = (await response.json());
|
|
38
27
|
return data.request;
|
|
39
28
|
}
|
|
40
|
-
|
|
41
|
-
|
|
29
|
+
/**
|
|
30
|
+
* Progress update for text generation (streaming content)
|
|
31
|
+
*/
|
|
32
|
+
export async function submitProgress(requestId, content) {
|
|
33
|
+
const baseUrl = getApiBaseUrl();
|
|
42
34
|
const response = await fetch(`${baseUrl}/v1/local-models/requests/${requestId}/progress`, {
|
|
43
35
|
method: "POST",
|
|
44
36
|
headers: getHeaders(),
|
|
@@ -48,8 +40,27 @@ async function submitProgress(requestId, content) {
|
|
|
48
40
|
console.warn(`Progress update failed: ${response.status}`);
|
|
49
41
|
}
|
|
50
42
|
}
|
|
51
|
-
|
|
52
|
-
|
|
43
|
+
/**
|
|
44
|
+
* Progress update for image/video generation (step-based)
|
|
45
|
+
*/
|
|
46
|
+
export async function submitGenerationProgress(requestId, step, totalSteps, preview) {
|
|
47
|
+
const baseUrl = getApiBaseUrl();
|
|
48
|
+
const response = await fetch(`${baseUrl}/v1/local-models/requests/${requestId}/progress`, {
|
|
49
|
+
method: "POST",
|
|
50
|
+
headers: getHeaders(),
|
|
51
|
+
body: JSON.stringify({
|
|
52
|
+
type: "generation",
|
|
53
|
+
step,
|
|
54
|
+
totalSteps,
|
|
55
|
+
preview,
|
|
56
|
+
}),
|
|
57
|
+
});
|
|
58
|
+
if (!response.ok) {
|
|
59
|
+
console.warn(`Generation progress update failed: ${response.status}`);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
export async function submitResult(requestId, success, result, error) {
|
|
63
|
+
const baseUrl = getApiBaseUrl();
|
|
53
64
|
const response = await fetch(`${baseUrl}/v1/local-models/requests/${requestId}/result`, {
|
|
54
65
|
method: "POST",
|
|
55
66
|
headers: getHeaders(),
|
|
@@ -60,8 +71,8 @@ async function submitResult(requestId, success, result, error) {
|
|
|
60
71
|
throw new Error(`Result submission failed: ${response.status} ${errorText}`);
|
|
61
72
|
}
|
|
62
73
|
}
|
|
63
|
-
async function verifyApiKey() {
|
|
64
|
-
const baseUrl =
|
|
74
|
+
export async function verifyApiKey() {
|
|
75
|
+
const baseUrl = getApiBaseUrl();
|
|
65
76
|
try {
|
|
66
77
|
const response = await fetch(`${baseUrl}/v1/local-models/verify-api-key`, {
|
|
67
78
|
method: "GET",
|
|
@@ -73,20 +84,38 @@ async function verifyApiKey() {
|
|
|
73
84
|
return false;
|
|
74
85
|
}
|
|
75
86
|
}
|
|
76
|
-
async function registerLocalModel(
|
|
77
|
-
const baseUrl =
|
|
87
|
+
export async function registerLocalModel(modelNameOrOptions, provider = "ollama", modelType = "llm_chat") {
|
|
88
|
+
const baseUrl = getApiBaseUrl();
|
|
89
|
+
let payload;
|
|
90
|
+
if (typeof modelNameOrOptions === "string") {
|
|
91
|
+
// Legacy signature
|
|
92
|
+
payload = {
|
|
93
|
+
modelName: modelNameOrOptions,
|
|
94
|
+
provider,
|
|
95
|
+
modelType,
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
else {
|
|
99
|
+
// New options object signature
|
|
100
|
+
payload = {
|
|
101
|
+
modelName: modelNameOrOptions.modelName,
|
|
102
|
+
provider: modelNameOrOptions.provider,
|
|
103
|
+
modelType: modelNameOrOptions.modelType || "llm_chat",
|
|
104
|
+
parameters: modelNameOrOptions.parameters,
|
|
105
|
+
};
|
|
106
|
+
}
|
|
78
107
|
const response = await fetch(`${baseUrl}/v1/local-models/models/create`, {
|
|
79
108
|
method: "POST",
|
|
80
109
|
headers: getHeaders(),
|
|
81
|
-
body: JSON.stringify(
|
|
110
|
+
body: JSON.stringify(payload),
|
|
82
111
|
});
|
|
83
112
|
if (!response.ok) {
|
|
84
113
|
const errorText = await response.text();
|
|
85
114
|
throw new Error(`Register failed: ${response.status} ${errorText}`);
|
|
86
115
|
}
|
|
87
116
|
}
|
|
88
|
-
async function getRegisteredModels() {
|
|
89
|
-
const baseUrl =
|
|
117
|
+
export async function getRegisteredModels() {
|
|
118
|
+
const baseUrl = getApiBaseUrl();
|
|
90
119
|
const response = await fetch(`${baseUrl}/v1/local-models/models`, {
|
|
91
120
|
method: "GET",
|
|
92
121
|
headers: getHeaders(),
|
|
@@ -98,8 +127,8 @@ async function getRegisteredModels() {
|
|
|
98
127
|
const data = (await response.json());
|
|
99
128
|
return data.models;
|
|
100
129
|
}
|
|
101
|
-
async function requestDeviceAuth() {
|
|
102
|
-
const baseUrl =
|
|
130
|
+
export async function requestDeviceAuth() {
|
|
131
|
+
const baseUrl = getApiBaseUrl();
|
|
103
132
|
const response = await fetch(`${baseUrl}/developer/v2/request-auth-url`, {
|
|
104
133
|
method: "GET",
|
|
105
134
|
headers: { "Content-Type": "application/json" },
|
|
@@ -111,8 +140,8 @@ async function requestDeviceAuth() {
|
|
|
111
140
|
const data = (await response.json());
|
|
112
141
|
return data;
|
|
113
142
|
}
|
|
114
|
-
async function pollDeviceAuth(token) {
|
|
115
|
-
const baseUrl =
|
|
143
|
+
export async function pollDeviceAuth(token) {
|
|
144
|
+
const baseUrl = getApiBaseUrl();
|
|
116
145
|
const response = await fetch(`${baseUrl}/developer/v2/poll-auth-url`, {
|
|
117
146
|
method: "POST",
|
|
118
147
|
headers: { "Content-Type": "application/json" },
|
|
@@ -125,8 +154,8 @@ async function pollDeviceAuth(token) {
|
|
|
125
154
|
const data = (await response.json());
|
|
126
155
|
return data;
|
|
127
156
|
}
|
|
128
|
-
async function disconnectHeartbeat() {
|
|
129
|
-
const baseUrl =
|
|
157
|
+
export async function disconnectHeartbeat() {
|
|
158
|
+
const baseUrl = getApiBaseUrl();
|
|
130
159
|
const response = await fetch(`${baseUrl}/v1/local-models/disconnect`, {
|
|
131
160
|
method: "POST",
|
|
132
161
|
headers: getHeaders(),
|
package/dist/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
|