@timmeck/brain-core 2.36.12 → 2.36.15
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/command-center.html +955 -0
- package/dist/cross-brain/__tests__/borg-sync-engine.test.d.ts +1 -0
- package/dist/cross-brain/__tests__/borg-sync-engine.test.js +240 -0
- package/dist/cross-brain/__tests__/borg-sync-engine.test.js.map +1 -0
- package/dist/cross-brain/borg-sync-engine.d.ts +62 -0
- package/dist/cross-brain/borg-sync-engine.js +215 -0
- package/dist/cross-brain/borg-sync-engine.js.map +1 -0
- package/dist/cross-brain/borg-types.d.ts +37 -0
- package/dist/cross-brain/borg-types.js +9 -0
- package/dist/cross-brain/borg-types.js.map +1 -0
- package/dist/dashboard/__tests__/command-center-server.test.d.ts +1 -0
- package/dist/dashboard/__tests__/command-center-server.test.js +298 -0
- package/dist/dashboard/__tests__/command-center-server.test.js.map +1 -0
- package/dist/dashboard/command-center-server.d.ts +38 -0
- package/dist/dashboard/command-center-server.js +289 -0
- package/dist/dashboard/command-center-server.js.map +1 -0
- package/dist/embeddings/engine.js +2 -1
- package/dist/embeddings/engine.js.map +1 -1
- package/dist/index.d.ts +20 -1
- package/dist/index.js +15 -0
- package/dist/index.js.map +1 -1
- package/dist/llm/__tests__/anthropic-provider.test.d.ts +1 -0
- package/dist/llm/__tests__/anthropic-provider.test.js +121 -0
- package/dist/llm/__tests__/anthropic-provider.test.js.map +1 -0
- package/dist/llm/__tests__/llm-service.test.js +181 -40
- package/dist/llm/__tests__/llm-service.test.js.map +1 -1
- package/dist/llm/__tests__/ollama-embedding.test.d.ts +1 -0
- package/dist/llm/__tests__/ollama-embedding.test.js +128 -0
- package/dist/llm/__tests__/ollama-embedding.test.js.map +1 -0
- package/dist/llm/__tests__/ollama-provider.test.d.ts +1 -0
- package/dist/llm/__tests__/ollama-provider.test.js +213 -0
- package/dist/llm/__tests__/ollama-provider.test.js.map +1 -0
- package/dist/llm/__tests__/provider.test.d.ts +1 -0
- package/dist/llm/__tests__/provider.test.js +126 -0
- package/dist/llm/__tests__/provider.test.js.map +1 -0
- package/dist/llm/anthropic-provider.d.ts +41 -0
- package/dist/llm/anthropic-provider.js +86 -0
- package/dist/llm/anthropic-provider.js.map +1 -0
- package/dist/llm/index.d.ts +9 -1
- package/dist/llm/index.js +4 -0
- package/dist/llm/index.js.map +1 -1
- package/dist/llm/llm-service.d.ts +55 -7
- package/dist/llm/llm-service.js +184 -82
- package/dist/llm/llm-service.js.map +1 -1
- package/dist/llm/ollama-embedding.d.ts +46 -0
- package/dist/llm/ollama-embedding.js +93 -0
- package/dist/llm/ollama-embedding.js.map +1 -0
- package/dist/llm/ollama-provider.d.ts +80 -0
- package/dist/llm/ollama-provider.js +178 -0
- package/dist/llm/ollama-provider.js.map +1 -0
- package/dist/llm/provider.d.ts +120 -0
- package/dist/llm/provider.js +104 -0
- package/dist/llm/provider.js.map +1 -0
- package/dist/missions/mission-engine.d.ts +4 -0
- package/dist/missions/mission-engine.js +30 -8
- package/dist/missions/mission-engine.js.map +1 -1
- package/dist/notifications/__tests__/notification-service.test.d.ts +1 -0
- package/dist/notifications/__tests__/notification-service.test.js +176 -0
- package/dist/notifications/__tests__/notification-service.test.js.map +1 -0
- package/dist/notifications/discord-provider.d.ts +30 -0
- package/dist/notifications/discord-provider.js +89 -0
- package/dist/notifications/discord-provider.js.map +1 -0
- package/dist/notifications/email-provider.d.ts +41 -0
- package/dist/notifications/email-provider.js +101 -0
- package/dist/notifications/email-provider.js.map +1 -0
- package/dist/notifications/index.d.ts +8 -0
- package/dist/notifications/index.js +5 -0
- package/dist/notifications/index.js.map +1 -0
- package/dist/notifications/notification-provider.d.ts +75 -0
- package/dist/notifications/notification-provider.js +47 -0
- package/dist/notifications/notification-provider.js.map +1 -0
- package/dist/notifications/notification-service.d.ts +85 -0
- package/dist/notifications/notification-service.js +184 -0
- package/dist/notifications/notification-service.js.map +1 -0
- package/dist/notifications/telegram-provider.d.ts +30 -0
- package/dist/notifications/telegram-provider.js +78 -0
- package/dist/notifications/telegram-provider.js.map +1 -0
- package/dist/plugin/__tests__/plugin-registry.test.d.ts +1 -0
- package/dist/plugin/__tests__/plugin-registry.test.js +166 -0
- package/dist/plugin/__tests__/plugin-registry.test.js.map +1 -0
- package/dist/plugin/plugin-registry.d.ts +38 -0
- package/dist/plugin/plugin-registry.js +185 -0
- package/dist/plugin/plugin-registry.js.map +1 -0
- package/dist/plugin/types.d.ts +59 -0
- package/dist/plugin/types.js +2 -0
- package/dist/plugin/types.js.map +1 -0
- package/dist/research/adapters/__tests__/web-adapters.test.d.ts +1 -0
- package/dist/research/adapters/__tests__/web-adapters.test.js +106 -0
- package/dist/research/adapters/__tests__/web-adapters.test.js.map +1 -0
- package/dist/research/adapters/firecrawl-adapter.d.ts +57 -0
- package/dist/research/adapters/firecrawl-adapter.js +137 -0
- package/dist/research/adapters/firecrawl-adapter.js.map +1 -0
- package/dist/research/adapters/index.d.ts +3 -0
- package/dist/research/adapters/index.js +2 -0
- package/dist/research/adapters/index.js.map +1 -1
- package/dist/research/adapters/playwright-adapter.d.ts +54 -0
- package/dist/research/adapters/playwright-adapter.js +130 -0
- package/dist/research/adapters/playwright-adapter.js.map +1 -0
- package/dist/research/research-orchestrator.d.ts +3 -0
- package/dist/research/research-orchestrator.js +19 -1
- package/dist/research/research-orchestrator.js.map +1 -1
- package/dist/techradar/__tests__/techradar-engine.test.d.ts +1 -0
- package/dist/techradar/__tests__/techradar-engine.test.js +246 -0
- package/dist/techradar/__tests__/techradar-engine.test.js.map +1 -0
- package/dist/techradar/daily-digest.d.ts +18 -0
- package/dist/techradar/daily-digest.js +100 -0
- package/dist/techradar/daily-digest.js.map +1 -0
- package/dist/techradar/index.d.ts +5 -0
- package/dist/techradar/index.js +5 -0
- package/dist/techradar/index.js.map +1 -0
- package/dist/techradar/relevance-scorer.d.ts +29 -0
- package/dist/techradar/relevance-scorer.js +139 -0
- package/dist/techradar/relevance-scorer.js.map +1 -0
- package/dist/techradar/repo-watcher.d.ts +24 -0
- package/dist/techradar/repo-watcher.js +87 -0
- package/dist/techradar/repo-watcher.js.map +1 -0
- package/dist/techradar/techradar-engine.d.ts +69 -0
- package/dist/techradar/techradar-engine.js +382 -0
- package/dist/techradar/techradar-engine.js.map +1 -0
- package/dist/techradar/types.d.ts +87 -0
- package/dist/techradar/types.js +5 -0
- package/dist/techradar/types.js.map +1 -0
- package/dist/watchdog/__tests__/watchdog-service.test.d.ts +1 -0
- package/dist/watchdog/__tests__/watchdog-service.test.js +113 -0
- package/dist/watchdog/__tests__/watchdog-service.test.js.map +1 -0
- package/dist/watchdog/watchdog-service.d.ts +60 -0
- package/dist/watchdog/watchdog-service.js +275 -0
- package/dist/watchdog/watchdog-service.js.map +1 -0
- package/dist/watchdog/windows-service.d.ts +39 -0
- package/dist/watchdog/windows-service.js +179 -0
- package/dist/watchdog/windows-service.js.map +1 -0
- package/package.json +20 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"llm-service.js","sourceRoot":"","sources":["../../src/llm/llm-service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"llm-service.js","sourceRoot":"","sources":["../../src/llm/llm-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ollama Embedding Provider — GPU-beschleunigte Embeddings
|
|
3
|
+
*
|
|
4
|
+
* ═══════════════════════════════════════════════════════════════
|
|
5
|
+
* EINRICHTEN (optional)
|
|
6
|
+
* ═══════════════════════════════════════════════════════════════
|
|
7
|
+
*
|
|
8
|
+
* 1. Ollama muss laufen (siehe ollama-provider.ts)
|
|
9
|
+
* 2. Embedding-Modell laden:
|
|
10
|
+
* ollama pull qwen3-embedding:8b # Bestes multilingual (#1 MTEB)
|
|
11
|
+
* ODER
|
|
12
|
+
* ollama pull mxbai-embed-large # Schnellere Alternative (335M)
|
|
13
|
+
* 3. Optional in .env:
|
|
14
|
+
* OLLAMA_EMBED_MODEL=qwen3-embedding:8b
|
|
15
|
+
*
|
|
16
|
+
* Ohne Ollama: Brain nutzt automatisch HuggingFace all-MiniLM-L6-v2 (CPU).
|
|
17
|
+
* ═══════════════════════════════════════════════════════════════
|
|
18
|
+
*/
|
|
19
|
+
export interface OllamaEmbeddingConfig {
|
|
20
|
+
/** Ollama server URL. Default: http://localhost:11434 */
|
|
21
|
+
host?: string;
|
|
22
|
+
/** Embedding model. Default: qwen3-embedding:8b */
|
|
23
|
+
model?: string;
|
|
24
|
+
/** Connection timeout in ms. Default: 5000 */
|
|
25
|
+
timeoutMs?: number;
|
|
26
|
+
}
|
|
27
|
+
export declare class OllamaEmbeddingProvider {
|
|
28
|
+
private readonly host;
|
|
29
|
+
private readonly model;
|
|
30
|
+
private readonly timeoutMs;
|
|
31
|
+
private readonly log;
|
|
32
|
+
private available;
|
|
33
|
+
constructor(config?: OllamaEmbeddingConfig);
|
|
34
|
+
/** Check if Ollama embedding is available. */
|
|
35
|
+
isAvailable(): Promise<boolean>;
|
|
36
|
+
/** Reset availability cache (force re-check on next call). */
|
|
37
|
+
resetAvailability(): void;
|
|
38
|
+
/** Generate embedding for a single text. Returns Float32Array for compatibility with BaseEmbeddingEngine. */
|
|
39
|
+
embed(text: string): Promise<Float32Array>;
|
|
40
|
+
/** Generate embeddings for a batch of texts. */
|
|
41
|
+
embedBatch(texts: string[]): Promise<(Float32Array | null)[]>;
|
|
42
|
+
/** Get the configured model name. */
|
|
43
|
+
getModel(): string;
|
|
44
|
+
/** Get the configured host. */
|
|
45
|
+
getHost(): string;
|
|
46
|
+
}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ollama Embedding Provider — GPU-beschleunigte Embeddings
|
|
3
|
+
*
|
|
4
|
+
* ═══════════════════════════════════════════════════════════════
|
|
5
|
+
* EINRICHTEN (optional)
|
|
6
|
+
* ═══════════════════════════════════════════════════════════════
|
|
7
|
+
*
|
|
8
|
+
* 1. Ollama muss laufen (siehe ollama-provider.ts)
|
|
9
|
+
* 2. Embedding-Modell laden:
|
|
10
|
+
* ollama pull qwen3-embedding:8b # Bestes multilingual (#1 MTEB)
|
|
11
|
+
* ODER
|
|
12
|
+
* ollama pull mxbai-embed-large # Schnellere Alternative (335M)
|
|
13
|
+
* 3. Optional in .env:
|
|
14
|
+
* OLLAMA_EMBED_MODEL=qwen3-embedding:8b
|
|
15
|
+
*
|
|
16
|
+
* Ohne Ollama: Brain nutzt automatisch HuggingFace all-MiniLM-L6-v2 (CPU).
|
|
17
|
+
* ═══════════════════════════════════════════════════════════════
|
|
18
|
+
*/
|
|
19
|
+
import { getLogger } from '../utils/logger.js';
|
|
20
|
+
export class OllamaEmbeddingProvider {
|
|
21
|
+
host;
|
|
22
|
+
model;
|
|
23
|
+
timeoutMs;
|
|
24
|
+
log = getLogger();
|
|
25
|
+
available = null;
|
|
26
|
+
constructor(config = {}) {
|
|
27
|
+
this.host = (config.host ?? process.env.OLLAMA_HOST ?? 'http://localhost:11434').replace(/\/$/, '');
|
|
28
|
+
this.model = config.model ?? process.env.OLLAMA_EMBED_MODEL ?? 'qwen3-embedding:8b';
|
|
29
|
+
this.timeoutMs = config.timeoutMs ?? 5000;
|
|
30
|
+
}
|
|
31
|
+
/** Check if Ollama embedding is available. */
|
|
32
|
+
async isAvailable() {
|
|
33
|
+
if (this.available !== null)
|
|
34
|
+
return this.available;
|
|
35
|
+
try {
|
|
36
|
+
const controller = new AbortController();
|
|
37
|
+
const timeout = setTimeout(() => controller.abort(), this.timeoutMs);
|
|
38
|
+
const response = await fetch(`${this.host}/api/tags`, { signal: controller.signal });
|
|
39
|
+
clearTimeout(timeout);
|
|
40
|
+
this.available = response.ok;
|
|
41
|
+
return this.available;
|
|
42
|
+
}
|
|
43
|
+
catch {
|
|
44
|
+
this.available = false;
|
|
45
|
+
return false;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
/** Reset availability cache (force re-check on next call). */
|
|
49
|
+
resetAvailability() {
|
|
50
|
+
this.available = null;
|
|
51
|
+
}
|
|
52
|
+
/** Generate embedding for a single text. Returns Float32Array for compatibility with BaseEmbeddingEngine. */
|
|
53
|
+
async embed(text) {
|
|
54
|
+
const response = await fetch(`${this.host}/api/embed`, {
|
|
55
|
+
method: 'POST',
|
|
56
|
+
headers: { 'Content-Type': 'application/json' },
|
|
57
|
+
body: JSON.stringify({
|
|
58
|
+
model: this.model,
|
|
59
|
+
input: text,
|
|
60
|
+
}),
|
|
61
|
+
});
|
|
62
|
+
if (!response.ok) {
|
|
63
|
+
const errText = await response.text();
|
|
64
|
+
throw new Error(`Ollama embed error (${response.status}): ${errText.substring(0, 200)}`);
|
|
65
|
+
}
|
|
66
|
+
const data = await response.json();
|
|
67
|
+
const vector = data.embeddings?.[0] ?? [];
|
|
68
|
+
return new Float32Array(vector);
|
|
69
|
+
}
|
|
70
|
+
/** Generate embeddings for a batch of texts. */
|
|
71
|
+
async embedBatch(texts) {
|
|
72
|
+
const results = [];
|
|
73
|
+
for (const text of texts) {
|
|
74
|
+
try {
|
|
75
|
+
results.push(await this.embed(text));
|
|
76
|
+
}
|
|
77
|
+
catch (err) {
|
|
78
|
+
this.log.warn(`Ollama batch embed error: ${err.message}`);
|
|
79
|
+
results.push(null);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
return results;
|
|
83
|
+
}
|
|
84
|
+
/** Get the configured model name. */
|
|
85
|
+
getModel() {
|
|
86
|
+
return this.model;
|
|
87
|
+
}
|
|
88
|
+
/** Get the configured host. */
|
|
89
|
+
getHost() {
|
|
90
|
+
return this.host;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
//# sourceMappingURL=ollama-embedding.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ollama-embedding.js","sourceRoot":"","sources":["../../src/llm/ollama-embedding.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ollama Provider — Lokale KI (GPU-beschleunigt)
|
|
3
|
+
*
|
|
4
|
+
* ═══════════════════════════════════════════════════════════════
|
|
5
|
+
* EINRICHTEN (optional)
|
|
6
|
+
* ═══════════════════════════════════════════════════════════════
|
|
7
|
+
*
|
|
8
|
+
* 1. Ollama installieren: https://ollama.com → Download
|
|
9
|
+
* 2. Modelle laden:
|
|
10
|
+
* ollama pull qwen3:14b # Chat (16 GB VRAM, 62 tok/s)
|
|
11
|
+
* ollama pull qwen3-embedding:8b # Embeddings (#1 MTEB Multilingual)
|
|
12
|
+
* 3. Optional in .env:
|
|
13
|
+
* OLLAMA_HOST=http://localhost:11434 # Default
|
|
14
|
+
* OLLAMA_MODEL=qwen3:14b # Default
|
|
15
|
+
* OLLAMA_EMBED_MODEL=qwen3-embedding:8b
|
|
16
|
+
*
|
|
17
|
+
* Alternativ-Modelle:
|
|
18
|
+
* - deepseek-r1:8b → Reasoning-Spezialist (~6 GB)
|
|
19
|
+
* - mxbai-embed-large → Schnelle Embedding-Alternative (335M)
|
|
20
|
+
* - llama3.3:latest → Meta's bestes Open-Source Modell
|
|
21
|
+
*
|
|
22
|
+
* Brain erkennt Ollama automatisch. Kein Ollama? Kein Problem.
|
|
23
|
+
* → Anthropic wird als Fallback genutzt.
|
|
24
|
+
* ═══════════════════════════════════════════════════════════════
|
|
25
|
+
*/
|
|
26
|
+
import type { LLMProvider, LLMMessage, LLMCallOptions, LLMProviderResponse } from './provider.js';
|
|
27
|
+
export interface OllamaProviderConfig {
|
|
28
|
+
/** Ollama server URL. Default: http://localhost:11434 */
|
|
29
|
+
host?: string;
|
|
30
|
+
/** Chat model. Default: qwen3:14b */
|
|
31
|
+
model?: string;
|
|
32
|
+
/** Embedding model. Default: qwen3-embedding:8b */
|
|
33
|
+
embedModel?: string;
|
|
34
|
+
/** Connection timeout in ms. Default: 5000 */
|
|
35
|
+
timeoutMs?: number;
|
|
36
|
+
}
|
|
37
|
+
export declare class OllamaProvider implements LLMProvider {
|
|
38
|
+
readonly name = "ollama";
|
|
39
|
+
readonly costTier: "free";
|
|
40
|
+
readonly capabilities: {
|
|
41
|
+
chat: boolean;
|
|
42
|
+
generate: boolean;
|
|
43
|
+
embed: boolean;
|
|
44
|
+
reasoning: boolean;
|
|
45
|
+
};
|
|
46
|
+
private readonly host;
|
|
47
|
+
private readonly model;
|
|
48
|
+
private readonly embedModel;
|
|
49
|
+
private readonly timeoutMs;
|
|
50
|
+
private readonly log;
|
|
51
|
+
/** Cached availability check (refresh every 30s) */
|
|
52
|
+
private availableCache;
|
|
53
|
+
constructor(config?: OllamaProviderConfig);
|
|
54
|
+
isAvailable(): Promise<boolean>;
|
|
55
|
+
chat(messages: LLMMessage[], options?: LLMCallOptions): Promise<LLMProviderResponse>;
|
|
56
|
+
generate(prompt: string, options?: LLMCallOptions): Promise<string>;
|
|
57
|
+
embed(text: string): Promise<number[]>;
|
|
58
|
+
/** Get Ollama server info: running models, version */
|
|
59
|
+
getStatus(): Promise<OllamaStatus>;
|
|
60
|
+
}
|
|
61
|
+
export interface OllamaStatus {
|
|
62
|
+
available: boolean;
|
|
63
|
+
host: string;
|
|
64
|
+
chatModel: string;
|
|
65
|
+
embedModel: string;
|
|
66
|
+
installedModels: OllamaModelInfo[];
|
|
67
|
+
runningModels: OllamaRunningModel[];
|
|
68
|
+
}
|
|
69
|
+
export interface OllamaModelInfo {
|
|
70
|
+
name: string;
|
|
71
|
+
size: number;
|
|
72
|
+
digest: string;
|
|
73
|
+
modified_at: string;
|
|
74
|
+
}
|
|
75
|
+
export interface OllamaRunningModel {
|
|
76
|
+
name: string;
|
|
77
|
+
size: number;
|
|
78
|
+
size_vram: number;
|
|
79
|
+
expires_at: string;
|
|
80
|
+
}
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ollama Provider — Lokale KI (GPU-beschleunigt)
|
|
3
|
+
*
|
|
4
|
+
* ═══════════════════════════════════════════════════════════════
|
|
5
|
+
* EINRICHTEN (optional)
|
|
6
|
+
* ═══════════════════════════════════════════════════════════════
|
|
7
|
+
*
|
|
8
|
+
* 1. Ollama installieren: https://ollama.com → Download
|
|
9
|
+
* 2. Modelle laden:
|
|
10
|
+
* ollama pull qwen3:14b # Chat (16 GB VRAM, 62 tok/s)
|
|
11
|
+
* ollama pull qwen3-embedding:8b # Embeddings (#1 MTEB Multilingual)
|
|
12
|
+
* 3. Optional in .env:
|
|
13
|
+
* OLLAMA_HOST=http://localhost:11434 # Default
|
|
14
|
+
* OLLAMA_MODEL=qwen3:14b # Default
|
|
15
|
+
* OLLAMA_EMBED_MODEL=qwen3-embedding:8b
|
|
16
|
+
*
|
|
17
|
+
* Alternativ-Modelle:
|
|
18
|
+
* - deepseek-r1:8b → Reasoning-Spezialist (~6 GB)
|
|
19
|
+
* - mxbai-embed-large → Schnelle Embedding-Alternative (335M)
|
|
20
|
+
* - llama3.3:latest → Meta's bestes Open-Source Modell
|
|
21
|
+
*
|
|
22
|
+
* Brain erkennt Ollama automatisch. Kein Ollama? Kein Problem.
|
|
23
|
+
* → Anthropic wird als Fallback genutzt.
|
|
24
|
+
* ═══════════════════════════════════════════════════════════════
|
|
25
|
+
*/
|
|
26
|
+
import { getLogger } from '../utils/logger.js';
|
|
27
|
+
export class OllamaProvider {
|
|
28
|
+
name = 'ollama';
|
|
29
|
+
costTier = 'free';
|
|
30
|
+
capabilities = {
|
|
31
|
+
chat: true,
|
|
32
|
+
generate: true,
|
|
33
|
+
embed: true,
|
|
34
|
+
reasoning: false,
|
|
35
|
+
};
|
|
36
|
+
host;
|
|
37
|
+
model;
|
|
38
|
+
embedModel;
|
|
39
|
+
timeoutMs;
|
|
40
|
+
log = getLogger();
|
|
41
|
+
/** Cached availability check (refresh every 30s) */
|
|
42
|
+
availableCache = null;
|
|
43
|
+
constructor(config = {}) {
|
|
44
|
+
this.host = (config.host ?? process.env.OLLAMA_HOST ?? 'http://localhost:11434').replace(/\/$/, '');
|
|
45
|
+
this.model = config.model ?? process.env.OLLAMA_MODEL ?? 'qwen3:14b';
|
|
46
|
+
this.embedModel = config.embedModel ?? process.env.OLLAMA_EMBED_MODEL ?? 'qwen3-embedding:8b';
|
|
47
|
+
this.timeoutMs = config.timeoutMs ?? 5000;
|
|
48
|
+
}
|
|
49
|
+
async isAvailable() {
|
|
50
|
+
// Use cached result if fresh
|
|
51
|
+
if (this.availableCache && Date.now() < this.availableCache.expiresAt) {
|
|
52
|
+
return this.availableCache.value;
|
|
53
|
+
}
|
|
54
|
+
try {
|
|
55
|
+
const controller = new AbortController();
|
|
56
|
+
const timeout = setTimeout(() => controller.abort(), this.timeoutMs);
|
|
57
|
+
const response = await fetch(`${this.host}/api/tags`, {
|
|
58
|
+
signal: controller.signal,
|
|
59
|
+
});
|
|
60
|
+
clearTimeout(timeout);
|
|
61
|
+
const available = response.ok;
|
|
62
|
+
this.availableCache = { value: available, expiresAt: Date.now() + 30_000 };
|
|
63
|
+
return available;
|
|
64
|
+
}
|
|
65
|
+
catch {
|
|
66
|
+
this.availableCache = { value: false, expiresAt: Date.now() + 30_000 };
|
|
67
|
+
return false;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
async chat(messages, options) {
|
|
71
|
+
const start = Date.now();
|
|
72
|
+
// Convert system messages to Ollama format
|
|
73
|
+
const ollamaMessages = messages.map(m => ({
|
|
74
|
+
role: m.role,
|
|
75
|
+
content: m.content,
|
|
76
|
+
}));
|
|
77
|
+
const response = await fetch(`${this.host}/api/chat`, {
|
|
78
|
+
method: 'POST',
|
|
79
|
+
headers: { 'Content-Type': 'application/json' },
|
|
80
|
+
body: JSON.stringify({
|
|
81
|
+
model: this.model,
|
|
82
|
+
messages: ollamaMessages,
|
|
83
|
+
stream: false,
|
|
84
|
+
options: {
|
|
85
|
+
...(options?.temperature !== undefined ? { temperature: options.temperature } : {}),
|
|
86
|
+
...(options?.maxTokens !== undefined ? { num_predict: options.maxTokens } : {}),
|
|
87
|
+
},
|
|
88
|
+
}),
|
|
89
|
+
});
|
|
90
|
+
if (!response.ok) {
|
|
91
|
+
const errText = await response.text();
|
|
92
|
+
throw new Error(`Ollama chat error (${response.status}): ${errText.substring(0, 200)}`);
|
|
93
|
+
}
|
|
94
|
+
const data = await response.json();
|
|
95
|
+
const durationMs = Date.now() - start;
|
|
96
|
+
const text = data.message?.content ?? '';
|
|
97
|
+
// Strip thinking tags if present (Qwen3 sometimes wraps reasoning in <think>...</think>)
|
|
98
|
+
const cleanText = text.replace(/<think>[\s\S]*?<\/think>\s*/g, '').trim();
|
|
99
|
+
return {
|
|
100
|
+
text: cleanText,
|
|
101
|
+
inputTokens: data.prompt_eval_count ?? 0,
|
|
102
|
+
outputTokens: data.eval_count ?? 0,
|
|
103
|
+
model: this.model,
|
|
104
|
+
durationMs,
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
async generate(prompt, options) {
|
|
108
|
+
const start = Date.now();
|
|
109
|
+
const response = await fetch(`${this.host}/api/generate`, {
|
|
110
|
+
method: 'POST',
|
|
111
|
+
headers: { 'Content-Type': 'application/json' },
|
|
112
|
+
body: JSON.stringify({
|
|
113
|
+
model: this.model,
|
|
114
|
+
prompt,
|
|
115
|
+
stream: false,
|
|
116
|
+
options: {
|
|
117
|
+
...(options?.temperature !== undefined ? { temperature: options.temperature } : {}),
|
|
118
|
+
...(options?.maxTokens !== undefined ? { num_predict: options.maxTokens } : {}),
|
|
119
|
+
},
|
|
120
|
+
}),
|
|
121
|
+
});
|
|
122
|
+
if (!response.ok) {
|
|
123
|
+
const errText = await response.text();
|
|
124
|
+
throw new Error(`Ollama generate error (${response.status}): ${errText.substring(0, 200)}`);
|
|
125
|
+
}
|
|
126
|
+
const data = await response.json();
|
|
127
|
+
const text = data.response ?? '';
|
|
128
|
+
// Strip thinking tags
|
|
129
|
+
return text.replace(/<think>[\s\S]*?<\/think>\s*/g, '').trim();
|
|
130
|
+
}
|
|
131
|
+
async embed(text) {
|
|
132
|
+
const response = await fetch(`${this.host}/api/embed`, {
|
|
133
|
+
method: 'POST',
|
|
134
|
+
headers: { 'Content-Type': 'application/json' },
|
|
135
|
+
body: JSON.stringify({
|
|
136
|
+
model: this.embedModel,
|
|
137
|
+
input: text,
|
|
138
|
+
}),
|
|
139
|
+
});
|
|
140
|
+
if (!response.ok) {
|
|
141
|
+
const errText = await response.text();
|
|
142
|
+
throw new Error(`Ollama embed error (${response.status}): ${errText.substring(0, 200)}`);
|
|
143
|
+
}
|
|
144
|
+
const data = await response.json();
|
|
145
|
+
return data.embeddings?.[0] ?? [];
|
|
146
|
+
}
|
|
147
|
+
// ── Status Methods (for MCP tools / CLI) ────────────────
|
|
148
|
+
/** Get Ollama server info: running models, version */
|
|
149
|
+
async getStatus() {
|
|
150
|
+
try {
|
|
151
|
+
const [tagsRes, psRes] = await Promise.all([
|
|
152
|
+
fetch(`${this.host}/api/tags`),
|
|
153
|
+
fetch(`${this.host}/api/ps`),
|
|
154
|
+
]);
|
|
155
|
+
const tags = tagsRes.ok ? await tagsRes.json() : { models: [] };
|
|
156
|
+
const ps = psRes.ok ? await psRes.json() : { models: [] };
|
|
157
|
+
return {
|
|
158
|
+
available: true,
|
|
159
|
+
host: this.host,
|
|
160
|
+
chatModel: this.model,
|
|
161
|
+
embedModel: this.embedModel,
|
|
162
|
+
installedModels: tags.models ?? [],
|
|
163
|
+
runningModels: ps.models ?? [],
|
|
164
|
+
};
|
|
165
|
+
}
|
|
166
|
+
catch {
|
|
167
|
+
return {
|
|
168
|
+
available: false,
|
|
169
|
+
host: this.host,
|
|
170
|
+
chatModel: this.model,
|
|
171
|
+
embedModel: this.embedModel,
|
|
172
|
+
installedModels: [],
|
|
173
|
+
runningModels: [],
|
|
174
|
+
};
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
//# sourceMappingURL=ollama-provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ollama-provider.js","sourceRoot":"","sources":["../../src/llm/ollama-provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAc/C,MAAM,OAAO,cAAc;IAChB,IAAI,GAAG,QAAQ,CAAC;IAChB,QAAQ,GAAG,MAAe,CAAC;IAC3B,YAAY,GAAG;QACtB,IAAI,EAAE,IAAI;QACV,QAAQ,EAAE,IAAI;QACd,KAAK,EAAE,IAAI;QACX,SAAS,EAAE,KAAK;KACjB,CAAC;IAEe,IAAI,CAAS;IACb,KAAK,CAAS;IACd,UAAU,CAAS;IACnB,SAAS,CAAS;IAClB,GAAG,GAAG,SAAS,EAAE,CAAC;IAEnC,oDAAoD;IAC5C,cAAc,GAAiD,IAAI,CAAC;IAE5E,YAAY,SAA+B,EAAE;QAC3C,IAAI,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,wBAAwB,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACpG,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,WAAW,CAAC;QACrE,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,oBAAoB,CAAC;QAC9F,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,IAAI,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,WAAW;QACf,6BAA6B;QAC7B,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,CAAC;YACtE,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;QACnC,CAAC;QAED,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;YACzC,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;YAErE,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,WAAW,EAAE;gBACpD,MAAM,EAAE,UAAU,CAAC,MAAM;aAC1B,CAAC,CAAC;YACH,YAAY,CAAC,OAAO,CAAC,CAAC;YAEtB,MAAM,SAAS,GAAG,QAAQ,CAAC,EAAE,CAAC;YAC9B,IAAI,CAAC,cAAc,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC;YAC3E,OAAO,SAAS,CAAC;QACnB,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,CAAC,cAAc,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC;YACvE,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,QAAsB,EAAE,OAAwB;QACzD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEzB,2CAA2C;QAC3C,MAAM,cAAc,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACxC,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,OAAO,EAAE,CAAC,CAAC,OAAO;SACnB,CAAC,CAAC,CAAC;QAEJ,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,WAAW,EAAE;YACpD,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,QAAQ,EAAE,cAAc;gBACxB,MAAM,EAAE,KAAK;gBACb,OAAO,EAAE;oBACP,GAAG,CAAC,OAAO,EAAE,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACnF,GAAG,CAAC,OAAO,EAAE,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAChF;aACF,CAAC;SACH,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACtC,MAAM,IAAI,KAAK,CAAC,sBAAsB,QAAQ,CAAC,MAAM,MAAM,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;QAC1F,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAI/B,CAAC;QAEF,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;QACtC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO,IAAI,EAAE,CAAC;QAEzC,yFAAyF;QACzF,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,8BAA8B,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAE1E,OAAO;YACL,IAAI,EAAE,SAAS;YACf,WAAW,EAAE,IAAI,CAAC,iBAAiB,IAAI,CAAC;YACxC,YAAY,EAAE,IAAI,CAAC,UAAU,IAAI,CAAC;YAClC,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,UAAU;SACX,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,MAAc,EAAE,OAAwB;QACrD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEzB,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,eAAe,EAAE;YACxD,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,MAAM;gBACN,MAAM,EAAE,KAAK;gBACb,OAAO,EAAE;oBACP,GAAG,CAAC,OAAO,EAAE,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACnF,GAAG,CAAC,OAAO,EAAE,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAChF;aACF,CAAC;SACH,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACtC,MAAM,IAAI,KAAK,CAAC,0BAA0B,QAAQ,CAAC,MAAM,MAAM,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;QAC9F,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAA2B,CAAC;QAC5D,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC;QAEjC,sBAAsB;QACtB,OAAO,IAAI,CAAC,OAAO,CAAC,8BAA8B,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACjE,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,IAAY;QACtB,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,YAAY,EAAE;YACrD,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,KAAK,EAAE,IAAI,CAAC,UAAU;gBACtB,KAAK,EAAE,IAAI;aACZ,CAAC;SACH,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACtC,MAAM,IAAI,KAAK,CAAC,uBAAuB,QAAQ,CAAC,MAAM,MAAM,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;QAC3F,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAiC,CAAC;QAClE,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACpC,CAAC;IAED,2DAA2D;IAE3D,sDAAsD;IACtD,KAAK,CAAC,SAAS;QACb,IAAI,CAAC;YACH,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBACzC,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,WAAW,CAAC;gBAC9B,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,SAAS,CAAC;aAC7B,CAAC,CAAC;YAEH,MAAM,IAAI,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,OAAO,CAAC,IAAI,EAAoC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;YAClG,MAAM,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,EAAuC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;YAE/F,OAAO;gBACL,SAAS,EAAE,IAAI;gBACf,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,SAAS,EAAE,IAAI,CAAC,KAAK;gBACrB,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,eAAe,EAAE,IAAI,CAAC,MAAM,IAAI,EAAE;gBAClC,aAAa,EAAE,EAAE,CAAC,MAAM,IAAI,EAAE;aAC/B,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,OAAO;gBACL,SAAS,EAAE,KAAK;gBAChB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,SAAS,EAAE,IAAI,CAAC,KAAK;gBACrB,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,eAAe,EAAE,EAAE;gBACnB,aAAa,EAAE,EAAE;aAClB,CAAC;QACJ,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LLM Provider Interface — Multi-Provider Architecture
|
|
3
|
+
*
|
|
4
|
+
* Das Brain Ecosystem unterstützt mehrere LLM Provider gleichzeitig.
|
|
5
|
+
* Der TaskRouter entscheidet automatisch, welcher Provider für welche Aufgabe genutzt wird.
|
|
6
|
+
*
|
|
7
|
+
* ═══════════════════════════════════════════════════════════════
|
|
8
|
+
* OPTIONALE PROVIDER EINRICHTEN
|
|
9
|
+
* ═══════════════════════════════════════════════════════════════
|
|
10
|
+
*
|
|
11
|
+
* 1. Ollama (Lokale KI, kostenlos, GPU-beschleunigt)
|
|
12
|
+
* ─────────────────────────────────────────────────
|
|
13
|
+
* Installieren: https://ollama.com → Download → installieren
|
|
14
|
+
* Modelle laden: ollama pull qwen3:14b
|
|
15
|
+
* ollama pull qwen3-embedding:8b
|
|
16
|
+
* Konfigurieren: brain config set llm.preferLocal true
|
|
17
|
+
* brain config set llm.ollamaModel qwen3:14b
|
|
18
|
+
* Oder in .env: OLLAMA_HOST=http://localhost:11434
|
|
19
|
+
* OLLAMA_MODEL=qwen3:14b
|
|
20
|
+
* → Brain erkennt Ollama automatisch beim Start.
|
|
21
|
+
* Einfache Tasks (classify, summarize) laufen lokal.
|
|
22
|
+
* Komplexe Tasks (debate, hypothesis) gehen weiter an Claude.
|
|
23
|
+
*
|
|
24
|
+
* 2. Anthropic / Claude (Cloud, Standard)
|
|
25
|
+
* ─────────────────────────────────────
|
|
26
|
+
* In .env: ANTHROPIC_API_KEY=sk-ant-...
|
|
27
|
+
* → Wird automatisch als Provider registriert.
|
|
28
|
+
*
|
|
29
|
+
* 3. Eigenen Provider bauen
|
|
30
|
+
* ─────────────────────────────────────
|
|
31
|
+
* Implementiere das LLMProvider Interface (siehe unten).
|
|
32
|
+
* Registriere mit: llmService.registerProvider(new MyProvider())
|
|
33
|
+
*
|
|
34
|
+
* ═══════════════════════════════════════════════════════════════
|
|
35
|
+
*/
|
|
36
|
+
import type { PromptTemplate } from './llm-service.js';
|
|
37
|
+
export interface LLMMessage {
|
|
38
|
+
role: 'user' | 'assistant' | 'system';
|
|
39
|
+
content: string;
|
|
40
|
+
}
|
|
41
|
+
export interface LLMCallOptions {
|
|
42
|
+
maxTokens?: number;
|
|
43
|
+
temperature?: number;
|
|
44
|
+
/** Override auto-routing and force a specific provider */
|
|
45
|
+
provider?: string;
|
|
46
|
+
}
|
|
47
|
+
export interface LLMProviderResponse {
|
|
48
|
+
text: string;
|
|
49
|
+
inputTokens: number;
|
|
50
|
+
outputTokens: number;
|
|
51
|
+
model: string;
|
|
52
|
+
durationMs: number;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Implement this interface to add a new LLM provider.
|
|
56
|
+
*
|
|
57
|
+
* Example:
|
|
58
|
+
* ```typescript
|
|
59
|
+
* class MyProvider implements LLMProvider {
|
|
60
|
+
* readonly name = 'my-provider';
|
|
61
|
+
* readonly costTier = 'cheap';
|
|
62
|
+
* readonly capabilities = { chat: true, generate: true, embed: false, reasoning: false };
|
|
63
|
+
*
|
|
64
|
+
* async isAvailable() { return true; }
|
|
65
|
+
* async chat(messages, options) { ... }
|
|
66
|
+
* async generate(prompt, options) { ... }
|
|
67
|
+
* }
|
|
68
|
+
*
|
|
69
|
+
* llmService.registerProvider(new MyProvider());
|
|
70
|
+
* ```
|
|
71
|
+
*/
|
|
72
|
+
export interface LLMProvider {
|
|
73
|
+
/** Unique provider name (e.g. 'ollama', 'anthropic') */
|
|
74
|
+
readonly name: string;
|
|
75
|
+
/** Cost classification for routing decisions */
|
|
76
|
+
readonly costTier: 'free' | 'cheap' | 'expensive';
|
|
77
|
+
/** What this provider can do */
|
|
78
|
+
readonly capabilities: {
|
|
79
|
+
chat: boolean;
|
|
80
|
+
generate: boolean;
|
|
81
|
+
embed: boolean;
|
|
82
|
+
reasoning: boolean;
|
|
83
|
+
};
|
|
84
|
+
/** Check if the provider is reachable and ready. */
|
|
85
|
+
isAvailable(): Promise<boolean>;
|
|
86
|
+
/** Chat completion with message history. */
|
|
87
|
+
chat(messages: LLMMessage[], options?: LLMCallOptions): Promise<LLMProviderResponse>;
|
|
88
|
+
/** Simple text generation from a prompt. */
|
|
89
|
+
generate(prompt: string, options?: LLMCallOptions): Promise<string>;
|
|
90
|
+
/** Generate embedding vector for text. Returns empty array if not supported. */
|
|
91
|
+
embed(text: string): Promise<number[]>;
|
|
92
|
+
/** Optional: graceful shutdown */
|
|
93
|
+
shutdown?(): Promise<void>;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Routes prompt templates to the best available provider.
|
|
97
|
+
*
|
|
98
|
+
* Routing Strategie:
|
|
99
|
+
* - Einfache Tasks → lokaler Provider (kostenlos, schnell)
|
|
100
|
+
* - Komplexe Tasks → Cloud Provider (höchste Qualität)
|
|
101
|
+
* - Fallback: wenn bevorzugter Provider down → nächster in der Kette
|
|
102
|
+
*/
|
|
103
|
+
export type RoutingTier = 'local' | 'cloud' | 'any';
|
|
104
|
+
export declare class TaskRouter {
|
|
105
|
+
private preferLocal;
|
|
106
|
+
constructor(preferLocal?: boolean);
|
|
107
|
+
setPreferLocal(prefer: boolean): void;
|
|
108
|
+
/**
|
|
109
|
+
* Select the best provider for a template.
|
|
110
|
+
* Returns providers in priority order (first = best choice).
|
|
111
|
+
*/
|
|
112
|
+
route(template: PromptTemplate, providers: LLMProvider[]): LLMProvider[];
|
|
113
|
+
/** Get the routing tier for a template */
|
|
114
|
+
getTier(template: PromptTemplate): RoutingTier;
|
|
115
|
+
/** Get all routing rules (for MCP tool / debugging) */
|
|
116
|
+
getRoutingTable(): Array<{
|
|
117
|
+
template: PromptTemplate;
|
|
118
|
+
tier: RoutingTier;
|
|
119
|
+
}>;
|
|
120
|
+
}
|