@tryhamster/gerbil 1.0.0-rc.0 → 1.0.0-rc.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 +79 -14
- package/dist/auto-update-DsWBBnEk.mjs +3 -0
- package/dist/browser/index.d.mts +401 -5
- package/dist/browser/index.d.mts.map +1 -1
- package/dist/browser/index.mjs +1772 -146
- package/dist/browser/index.mjs.map +1 -1
- package/dist/{chrome-backend-CtwPENIW.mjs → chrome-backend-JEPeM2YE.mjs} +1 -1
- package/dist/{chrome-backend-C5Un08O4.mjs → chrome-backend-Y9F7W5VQ.mjs} +514 -73
- package/dist/chrome-backend-Y9F7W5VQ.mjs.map +1 -0
- package/dist/cli.mjs +3359 -646
- package/dist/cli.mjs.map +1 -1
- package/dist/frameworks/express.d.mts +1 -1
- package/dist/frameworks/express.mjs +3 -3
- package/dist/frameworks/fastify.d.mts +1 -1
- package/dist/frameworks/fastify.mjs +3 -3
- package/dist/frameworks/hono.d.mts +1 -1
- package/dist/frameworks/hono.mjs +3 -3
- package/dist/frameworks/next.d.mts +2 -2
- package/dist/frameworks/next.mjs +3 -3
- package/dist/frameworks/react.d.mts +1 -1
- package/dist/frameworks/trpc.d.mts +1 -1
- package/dist/frameworks/trpc.mjs +3 -3
- package/dist/gerbil-DeQlX_Mt.mjs +5 -0
- package/dist/gerbil-POAz8peb.d.mts +431 -0
- package/dist/gerbil-POAz8peb.d.mts.map +1 -0
- package/dist/gerbil-yoSpRHgv.mjs +1463 -0
- package/dist/gerbil-yoSpRHgv.mjs.map +1 -0
- package/dist/index.d.mts +395 -9
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +8 -6
- package/dist/index.mjs.map +1 -1
- package/dist/integrations/ai-sdk.d.mts +122 -4
- package/dist/integrations/ai-sdk.d.mts.map +1 -1
- package/dist/integrations/ai-sdk.mjs +239 -11
- package/dist/integrations/ai-sdk.mjs.map +1 -1
- package/dist/integrations/langchain.d.mts +132 -2
- package/dist/integrations/langchain.d.mts.map +1 -1
- package/dist/integrations/langchain.mjs +176 -8
- package/dist/integrations/langchain.mjs.map +1 -1
- package/dist/integrations/llamaindex.d.mts +1 -1
- package/dist/integrations/llamaindex.mjs +3 -3
- package/dist/integrations/mcp-client.mjs +4 -4
- package/dist/integrations/mcp-client.mjs.map +1 -1
- package/dist/integrations/mcp.d.mts +2 -2
- package/dist/integrations/mcp.d.mts.map +1 -1
- package/dist/integrations/mcp.mjs +6 -6
- package/dist/{mcp-R8kRLIKb.mjs → mcp-Bitg4sjX.mjs} +10 -37
- package/dist/mcp-Bitg4sjX.mjs.map +1 -0
- package/dist/microphone-D-6y9aiE.mjs +3 -0
- package/dist/{models-DKULvhOr.mjs → models-BAtL8qsA.mjs} +42 -7
- package/dist/models-BAtL8qsA.mjs.map +1 -0
- package/dist/{models-De2-_GmQ.d.mts → models-CE0fBq0U.d.mts} +2 -2
- package/dist/models-CE0fBq0U.d.mts.map +1 -0
- package/dist/{one-liner-BUQR0nqq.mjs → one-liner-B1rmFto6.mjs} +2 -2
- package/dist/{one-liner-BUQR0nqq.mjs.map → one-liner-B1rmFto6.mjs.map} +1 -1
- package/dist/repl-D20JO260.mjs +10 -0
- package/dist/skills/index.d.mts +303 -12
- package/dist/skills/index.d.mts.map +1 -1
- package/dist/skills/index.mjs +6 -6
- package/dist/skills-5DxAV-rn.mjs +1435 -0
- package/dist/skills-5DxAV-rn.mjs.map +1 -0
- package/dist/stt-Bv_dum-R.mjs +433 -0
- package/dist/stt-Bv_dum-R.mjs.map +1 -0
- package/dist/stt-KzSoNvwI.mjs +3 -0
- package/dist/{tools-BsiEE6f2.mjs → tools-IYPrqoek.mjs} +6 -7
- package/dist/{tools-BsiEE6f2.mjs.map → tools-IYPrqoek.mjs.map} +1 -1
- package/dist/tts-5yWeP_I0.mjs +3 -0
- package/dist/tts-DG6denWG.mjs +729 -0
- package/dist/tts-DG6denWG.mjs.map +1 -0
- package/dist/types-s6Py2_DL.d.mts +353 -0
- package/dist/types-s6Py2_DL.d.mts.map +1 -0
- package/dist/{utils-7vXqtq2Q.mjs → utils-CkB4Roi6.mjs} +1 -1
- package/dist/{utils-7vXqtq2Q.mjs.map → utils-CkB4Roi6.mjs.map} +1 -1
- package/docs/ai-sdk.md +137 -21
- package/docs/browser.md +241 -2
- package/docs/memory.md +72 -0
- package/docs/stt.md +494 -0
- package/docs/tts.md +569 -0
- package/docs/vision.md +396 -0
- package/package.json +17 -18
- package/dist/auto-update-BbNHbSU1.mjs +0 -3
- package/dist/chrome-backend-C5Un08O4.mjs.map +0 -1
- package/dist/gerbil-BfnsFWRE.mjs +0 -644
- package/dist/gerbil-BfnsFWRE.mjs.map +0 -1
- package/dist/gerbil-BjW-z7Fq.mjs +0 -5
- package/dist/gerbil-DZ1k3ChC.d.mts +0 -138
- package/dist/gerbil-DZ1k3ChC.d.mts.map +0 -1
- package/dist/mcp-R8kRLIKb.mjs.map +0 -1
- package/dist/models-DKULvhOr.mjs.map +0 -1
- package/dist/models-De2-_GmQ.d.mts.map +0 -1
- package/dist/skills-D3CEpgDc.mjs +0 -630
- package/dist/skills-D3CEpgDc.mjs.map +0 -1
- package/dist/types-BS1N92Jt.d.mts +0 -183
- package/dist/types-BS1N92Jt.d.mts.map +0 -1
package/dist/index.d.mts
CHANGED
|
@@ -1,25 +1,109 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { n as listBuiltinModels, r as resolveModel, t as BUILTIN_MODELS } from "./models-
|
|
3
|
-
import { t as Gerbil } from "./gerbil-
|
|
4
|
-
import { Server } from "http";
|
|
1
|
+
import { A as TranscribeSegment, C as SpeakResult, D as TTSModelConfig, E as SystemInfo, O as TranscribeOptions, S as SpeakOptions, T as StreamingTranscriptionSession, _ as ModelSource, a as FallbackConfig, b as STTModelConfig, c as GerbilConfig, d as ImageInput, f as JsonOptions, g as ModelConfig, h as LoadTTSOptions, i as EmbedResult, j as VoiceInfo, k as TranscribeResult, l as GerbilModelSettings, m as LoadSTTOptions, n as CacheConfig, o as GenerateOptions, p as LoadOptions, r as EmbedOptions, s as GenerateResult, t as AudioChunk, u as GerbilProviderSettings, v as ModelStats, w as StreamingTranscriptionOptions, x as SessionStats, y as ProgressInfo } from "./types-s6Py2_DL.mjs";
|
|
2
|
+
import { n as listBuiltinModels, r as resolveModel, t as BUILTIN_MODELS } from "./models-CE0fBq0U.mjs";
|
|
3
|
+
import { t as Gerbil } from "./gerbil-POAz8peb.mjs";
|
|
5
4
|
|
|
6
|
-
//#region src/core/
|
|
5
|
+
//#region src/core/cache.d.ts
|
|
6
|
+
|
|
7
|
+
type CacheStats = {
|
|
8
|
+
hits: number;
|
|
9
|
+
misses: number;
|
|
10
|
+
size: number;
|
|
11
|
+
maxSize: number;
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Generate a deterministic cache key from prompt and options.
|
|
15
|
+
* Key includes all parameters that affect the output.
|
|
16
|
+
*/
|
|
7
17
|
|
|
18
|
+
/**
|
|
19
|
+
* LRU cache with TTL expiration for inference responses.
|
|
20
|
+
*/
|
|
21
|
+
declare class ResponseCache {
|
|
22
|
+
private cache;
|
|
23
|
+
private maxSize;
|
|
24
|
+
private defaultTtl;
|
|
25
|
+
private hits;
|
|
26
|
+
private misses;
|
|
27
|
+
/**
|
|
28
|
+
* Create a new response cache.
|
|
29
|
+
* @param maxSize Maximum number of entries (default: 100)
|
|
30
|
+
* @param defaultTtl Default TTL in ms (default: 5 minutes)
|
|
31
|
+
*/
|
|
32
|
+
constructor(maxSize?: number, defaultTtl?: number);
|
|
33
|
+
/**
|
|
34
|
+
* Get a cached response if it exists and hasn't expired.
|
|
35
|
+
*/
|
|
36
|
+
get(key: string): GenerateResult | null;
|
|
37
|
+
/**
|
|
38
|
+
* Store a response in the cache.
|
|
39
|
+
*/
|
|
40
|
+
set(key: string, result: GenerateResult, ttl?: number): void;
|
|
41
|
+
/**
|
|
42
|
+
* Check if a key exists and is not expired.
|
|
43
|
+
*/
|
|
44
|
+
has(key: string): boolean;
|
|
45
|
+
/**
|
|
46
|
+
* Remove a specific key from the cache.
|
|
47
|
+
*/
|
|
48
|
+
delete(key: string): boolean;
|
|
49
|
+
/**
|
|
50
|
+
* Clear all entries from the cache.
|
|
51
|
+
*/
|
|
52
|
+
clear(): void;
|
|
53
|
+
/**
|
|
54
|
+
* Remove all expired entries.
|
|
55
|
+
*/
|
|
56
|
+
prune(): number;
|
|
57
|
+
/**
|
|
58
|
+
* Get cache statistics.
|
|
59
|
+
*/
|
|
60
|
+
getStats(): CacheStats;
|
|
61
|
+
/**
|
|
62
|
+
* Get hit rate as a percentage.
|
|
63
|
+
*/
|
|
64
|
+
getHitRate(): number;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Get the global response cache instance.
|
|
68
|
+
* Creates one if it doesn't exist.
|
|
69
|
+
*/
|
|
70
|
+
declare function getGlobalCache(): ResponseCache;
|
|
71
|
+
/**
|
|
72
|
+
* Configure the global cache with custom settings.
|
|
73
|
+
*/
|
|
74
|
+
declare function configureGlobalCache(maxSize?: number, defaultTtl?: number): ResponseCache;
|
|
75
|
+
/**
|
|
76
|
+
* Clear and reset the global cache.
|
|
77
|
+
*/
|
|
78
|
+
declare function clearGlobalCache(): void;
|
|
79
|
+
//#endregion
|
|
80
|
+
//#region src/core/chrome-backend.d.ts
|
|
81
|
+
/**
|
|
82
|
+
* Chrome DevTools Protocol Backend for WebGPU Inference
|
|
83
|
+
*
|
|
84
|
+
* Uses headless Chrome as a WebGPU accelerator for Node.js environments.
|
|
85
|
+
* Provides the same performance as browser inference (~100+ tok/s with q4f16).
|
|
86
|
+
*/
|
|
8
87
|
type CachedModelEntry = {
|
|
9
88
|
modelId: string;
|
|
10
89
|
downloadedAt: string;
|
|
11
90
|
lastUsed: string;
|
|
12
91
|
sizeBytes?: number;
|
|
92
|
+
contextLength?: number;
|
|
13
93
|
};
|
|
14
94
|
/** Get list of models cached in Chrome's IndexedDB */
|
|
15
95
|
declare function getChromeCachedModels(): CachedModelEntry[];
|
|
16
|
-
/** Refresh
|
|
96
|
+
/** Refresh metadata (size, context length) for cached models that need it */
|
|
17
97
|
declare function refreshCachedModelSizes(): Promise<void>;
|
|
18
98
|
type ChromeBackendOptions = {
|
|
19
99
|
/** Custom Chrome executable path */
|
|
20
100
|
chromePath?: string;
|
|
21
101
|
/** Model ID to load */
|
|
22
102
|
modelId?: string;
|
|
103
|
+
/** Model context length (for KV cache management) */
|
|
104
|
+
contextLength?: number;
|
|
105
|
+
/** Whether this is a vision model (auto-detected if not specified) */
|
|
106
|
+
isVision?: boolean;
|
|
23
107
|
/** Progress callback */
|
|
24
108
|
onProgress?: (info: {
|
|
25
109
|
status: string;
|
|
@@ -41,6 +125,8 @@ type GenerateOptions$1 = {
|
|
|
41
125
|
topK?: number;
|
|
42
126
|
thinking?: boolean;
|
|
43
127
|
system?: string;
|
|
128
|
+
/** Images for vision models (URLs or data URIs) */
|
|
129
|
+
images?: string[];
|
|
44
130
|
onToken?: (token: {
|
|
45
131
|
text: string;
|
|
46
132
|
state: string;
|
|
@@ -52,18 +138,32 @@ declare class ChromeGPUBackend {
|
|
|
52
138
|
private browser;
|
|
53
139
|
private page;
|
|
54
140
|
private cdp;
|
|
141
|
+
private server;
|
|
55
142
|
private serverPort;
|
|
56
143
|
private userDataDir;
|
|
57
144
|
private readonly modelId;
|
|
58
145
|
private isReady;
|
|
146
|
+
private readonly isVisionModel;
|
|
59
147
|
private readonly messageHandlers;
|
|
60
148
|
private pendingRejects;
|
|
61
|
-
server: Server | null;
|
|
62
149
|
private constructor();
|
|
63
150
|
/**
|
|
64
151
|
* Create and initialize a Chrome GPU backend
|
|
65
152
|
*/
|
|
66
153
|
static create(options?: ChromeBackendOptions): Promise<ChromeGPUBackend>;
|
|
154
|
+
/**
|
|
155
|
+
* Detect if a model is a vision model based on its ID
|
|
156
|
+
*/
|
|
157
|
+
private static detectVisionModel;
|
|
158
|
+
/**
|
|
159
|
+
* Check if this backend is for a vision model
|
|
160
|
+
*/
|
|
161
|
+
isVision(): boolean;
|
|
162
|
+
/**
|
|
163
|
+
* Clean up orphan Gerbil pages from previous sessions
|
|
164
|
+
* These are pages that were left behind when process exited without proper cleanup
|
|
165
|
+
*/
|
|
166
|
+
private cleanupOrphanPages;
|
|
67
167
|
/**
|
|
68
168
|
* Get existing browser or launch a new one (singleton pattern)
|
|
69
169
|
* Multiple Gerbil instances share the same browser process
|
|
@@ -139,13 +239,15 @@ declare class ChromeGPUBackend {
|
|
|
139
239
|
/**
|
|
140
240
|
* Start or reuse the global HTTP server
|
|
141
241
|
* Uses singleton pattern to prevent killing our own server
|
|
242
|
+
* Updates HTML content for new model loads
|
|
142
243
|
*/
|
|
143
244
|
private startServer;
|
|
144
245
|
/**
|
|
145
246
|
* Dispose of the backend and clean up
|
|
146
247
|
* Note: We keep the shared browser running for other backends
|
|
248
|
+
* @param disconnect If true, also disconnect from shared browser (for clean script exit)
|
|
147
249
|
*/
|
|
148
|
-
dispose(): Promise<void>;
|
|
250
|
+
dispose(disconnect?: boolean): Promise<void>;
|
|
149
251
|
/**
|
|
150
252
|
* Reject all pending waits (called on browser disconnect or dispose)
|
|
151
253
|
*/
|
|
@@ -165,6 +267,63 @@ declare class ChromeGPUBackend {
|
|
|
165
267
|
activePagesCount: number;
|
|
166
268
|
maxPages: number;
|
|
167
269
|
};
|
|
270
|
+
/**
|
|
271
|
+
* Get global browser status (even if no active backends)
|
|
272
|
+
*/
|
|
273
|
+
static getGlobalBrowserStatus(): {
|
|
274
|
+
running: boolean;
|
|
275
|
+
pid: number | null;
|
|
276
|
+
port: number;
|
|
277
|
+
activePagesCount: number;
|
|
278
|
+
maxPages: number;
|
|
279
|
+
wsEndpoint: string | null;
|
|
280
|
+
};
|
|
281
|
+
/**
|
|
282
|
+
* Get total page count from Chrome (all processes)
|
|
283
|
+
*/
|
|
284
|
+
static getTotalPageCount(): Promise<number>;
|
|
285
|
+
/**
|
|
286
|
+
* Get all active backends with their memory usage (this process only)
|
|
287
|
+
*/
|
|
288
|
+
static getAllBackendsInfo(): Promise<Array<{
|
|
289
|
+
modelId: string;
|
|
290
|
+
isVision: boolean;
|
|
291
|
+
isReady: boolean;
|
|
292
|
+
memory: {
|
|
293
|
+
usedGB: number;
|
|
294
|
+
totalGB: number;
|
|
295
|
+
usedPercent: number;
|
|
296
|
+
} | null;
|
|
297
|
+
}>>;
|
|
298
|
+
/**
|
|
299
|
+
* Get ALL pages in Chrome browser (cross-process visibility)
|
|
300
|
+
* This shows pages from ALL Gerbil processes sharing the browser
|
|
301
|
+
*/
|
|
302
|
+
static getAllChromePages(): Promise<Array<{
|
|
303
|
+
url: string;
|
|
304
|
+
title: string;
|
|
305
|
+
isOurs: boolean;
|
|
306
|
+
modelId: string | null;
|
|
307
|
+
memory: {
|
|
308
|
+
usedGB: number;
|
|
309
|
+
totalGB: number;
|
|
310
|
+
} | null;
|
|
311
|
+
}>>;
|
|
312
|
+
/**
|
|
313
|
+
* Kill a Chrome page by index (works cross-process)
|
|
314
|
+
*/
|
|
315
|
+
static killPageByIndex(index: number): Promise<boolean>;
|
|
316
|
+
/**
|
|
317
|
+
* Kill a specific backend by index (this process only)
|
|
318
|
+
*/
|
|
319
|
+
static killBackendByIndex(index: number): Promise<boolean>;
|
|
320
|
+
/**
|
|
321
|
+
* Force kill all backends (for zombie cleanup)
|
|
322
|
+
*/
|
|
323
|
+
static killAllBackends(): Promise<{
|
|
324
|
+
pagesKilled: number;
|
|
325
|
+
browserKilled: boolean;
|
|
326
|
+
}>;
|
|
168
327
|
/**
|
|
169
328
|
* Gracefully close the shared browser (call on process exit)
|
|
170
329
|
*/
|
|
@@ -216,8 +375,235 @@ declare function embedBatch(texts: string[], options?: EmbedOptions & {
|
|
|
216
375
|
*/
|
|
217
376
|
declare function dispose(): Promise<void>;
|
|
218
377
|
//#endregion
|
|
378
|
+
//#region src/core/stt.d.ts
|
|
379
|
+
/**
|
|
380
|
+
* Available Whisper models
|
|
381
|
+
* Ordered by size (smallest first)
|
|
382
|
+
*/
|
|
383
|
+
declare const WHISPER_MODELS: STTModelConfig[];
|
|
384
|
+
/**
|
|
385
|
+
* Decode WAV file to Float32Array
|
|
386
|
+
* Handles stereo to mono conversion
|
|
387
|
+
*/
|
|
388
|
+
declare function decodeWav(buffer: Uint8Array): {
|
|
389
|
+
audio: Float32Array;
|
|
390
|
+
sampleRate: number;
|
|
391
|
+
};
|
|
392
|
+
/**
|
|
393
|
+
* Resample audio to target sample rate using linear interpolation
|
|
394
|
+
*/
|
|
395
|
+
declare function resampleAudio(audio: Float32Array, fromRate: number, toRate: number): Float32Array;
|
|
396
|
+
/**
|
|
397
|
+
* Speech-to-Text using Whisper ONNX models
|
|
398
|
+
*/
|
|
399
|
+
declare class WhisperSTT {
|
|
400
|
+
private modelConfig;
|
|
401
|
+
private pipeline;
|
|
402
|
+
private loadPromise;
|
|
403
|
+
private _isLoaded;
|
|
404
|
+
private _deviceMode;
|
|
405
|
+
constructor(modelId?: string);
|
|
406
|
+
/**
|
|
407
|
+
* Check if model is loaded
|
|
408
|
+
*/
|
|
409
|
+
isLoaded(): boolean;
|
|
410
|
+
/**
|
|
411
|
+
* Get model configuration
|
|
412
|
+
*/
|
|
413
|
+
getModelConfig(): STTModelConfig;
|
|
414
|
+
/**
|
|
415
|
+
* Get model info (alias for getModelConfig)
|
|
416
|
+
*/
|
|
417
|
+
getModelInfo(): STTModelConfig;
|
|
418
|
+
/**
|
|
419
|
+
* Get current device mode
|
|
420
|
+
*/
|
|
421
|
+
getDeviceMode(): "webgpu" | "cpu";
|
|
422
|
+
/**
|
|
423
|
+
* List available models
|
|
424
|
+
*/
|
|
425
|
+
static listModels(): STTModelConfig[];
|
|
426
|
+
/**
|
|
427
|
+
* Load the STT model
|
|
428
|
+
*/
|
|
429
|
+
load(options?: LoadSTTOptions): Promise<void>;
|
|
430
|
+
private _load;
|
|
431
|
+
/**
|
|
432
|
+
* Transcribe audio to text
|
|
433
|
+
*
|
|
434
|
+
* @param audio - Audio data as Float32Array (mono, 16kHz preferred) or Uint8Array (WAV file)
|
|
435
|
+
* @param options - Transcription options
|
|
436
|
+
* @returns Transcription result with text and optional timestamps
|
|
437
|
+
*/
|
|
438
|
+
transcribe(audio: Float32Array | Uint8Array, options?: TranscribeOptions): Promise<TranscribeResult>;
|
|
439
|
+
/**
|
|
440
|
+
* Create a streaming transcription session
|
|
441
|
+
*
|
|
442
|
+
* Transcribes audio in real-time by processing chunks at regular intervals.
|
|
443
|
+
* Perfect for live captioning, call transcription, or real-time subtitles.
|
|
444
|
+
*
|
|
445
|
+
* @param options - Streaming options
|
|
446
|
+
* @returns Streaming session controller
|
|
447
|
+
*
|
|
448
|
+
* @example
|
|
449
|
+
* ```ts
|
|
450
|
+
* const session = stt.createStreamingSession({
|
|
451
|
+
* chunkDuration: 3000, // Transcribe every 3 seconds
|
|
452
|
+
* onChunk: (text, idx) => console.log(`Chunk ${idx}: ${text}`),
|
|
453
|
+
* onTranscript: (fullText) => console.log("Full:", fullText),
|
|
454
|
+
* });
|
|
455
|
+
*
|
|
456
|
+
* // Feed audio data as it comes in (Float32Array at 16kHz)
|
|
457
|
+
* session.feedAudio(audioChunk);
|
|
458
|
+
*
|
|
459
|
+
* // Or manually trigger transcription
|
|
460
|
+
* await session.flush();
|
|
461
|
+
*
|
|
462
|
+
* // Stop and get final transcript
|
|
463
|
+
* const finalText = await session.stop();
|
|
464
|
+
* ```
|
|
465
|
+
*/
|
|
466
|
+
createStreamingSession(options?: StreamingTranscriptionOptions): StreamingTranscriptionSession;
|
|
467
|
+
/**
|
|
468
|
+
* Dispose of resources
|
|
469
|
+
*/
|
|
470
|
+
dispose(): void;
|
|
471
|
+
}
|
|
472
|
+
//#endregion
|
|
473
|
+
//#region src/core/tts.d.ts
|
|
474
|
+
/**
|
|
475
|
+
* Kokoro voice definitions
|
|
476
|
+
* Voice IDs follow pattern: {language}{gender}_{name}
|
|
477
|
+
* - a = American English
|
|
478
|
+
* - b = British English
|
|
479
|
+
* - f = female, m = male
|
|
480
|
+
*/
|
|
481
|
+
declare const KOKORO_VOICES: VoiceInfo[];
|
|
482
|
+
declare const TTS_MODELS: Record<string, TTSModelConfig>;
|
|
483
|
+
/**
|
|
484
|
+
* Get TTS model config by ID
|
|
485
|
+
*/
|
|
486
|
+
declare function getTTSModelConfig(modelId: string): TTSModelConfig | null;
|
|
487
|
+
/**
|
|
488
|
+
* List all available TTS models
|
|
489
|
+
*/
|
|
490
|
+
declare function listTTSModels(): TTSModelConfig[];
|
|
491
|
+
/**
|
|
492
|
+
* Kokoro TTS - Local text-to-speech with voice selection
|
|
493
|
+
*
|
|
494
|
+
* Uses kokoro-js (official Kokoro library by xenova) for high-quality speech synthesis.
|
|
495
|
+
* Includes proper G2P (grapheme-to-phoneme) conversion for accurate pronunciation.
|
|
496
|
+
*/
|
|
497
|
+
declare class KokoroTTS {
|
|
498
|
+
private kokoroInstance;
|
|
499
|
+
private modelConfig;
|
|
500
|
+
private loadPromise;
|
|
501
|
+
private _isLoaded;
|
|
502
|
+
private _deviceMode;
|
|
503
|
+
constructor(modelId?: string);
|
|
504
|
+
/**
|
|
505
|
+
* Load the TTS model
|
|
506
|
+
*
|
|
507
|
+
* @example
|
|
508
|
+
* ```ts
|
|
509
|
+
* const tts = new KokoroTTS();
|
|
510
|
+
* await tts.load({
|
|
511
|
+
* onProgress: (p) => console.log(p.status, p.progress),
|
|
512
|
+
* device: "webgpu",
|
|
513
|
+
* });
|
|
514
|
+
* ```
|
|
515
|
+
*/
|
|
516
|
+
load(options?: LoadTTSOptions): Promise<void>;
|
|
517
|
+
private _load;
|
|
518
|
+
/**
|
|
519
|
+
* Ensure model is loaded (lazy loading)
|
|
520
|
+
*/
|
|
521
|
+
ensureLoaded(options?: LoadTTSOptions): Promise<void>;
|
|
522
|
+
/**
|
|
523
|
+
* Get list of available voices
|
|
524
|
+
*
|
|
525
|
+
* @example
|
|
526
|
+
* ```ts
|
|
527
|
+
* const voices = tts.listVoices();
|
|
528
|
+
* // [{ id: "af_heart", name: "Heart", gender: "female", ... }, ...]
|
|
529
|
+
* ```
|
|
530
|
+
*/
|
|
531
|
+
listVoices(): VoiceInfo[];
|
|
532
|
+
/**
|
|
533
|
+
* Get a specific voice by ID
|
|
534
|
+
*/
|
|
535
|
+
getVoice(voiceId: string): VoiceInfo | null;
|
|
536
|
+
/**
|
|
537
|
+
* Get voices by gender
|
|
538
|
+
*/
|
|
539
|
+
getVoicesByGender(gender: "male" | "female"): VoiceInfo[];
|
|
540
|
+
/**
|
|
541
|
+
* Get voices by language
|
|
542
|
+
*/
|
|
543
|
+
getVoicesByLanguage(language: string): VoiceInfo[];
|
|
544
|
+
/**
|
|
545
|
+
* Generate speech from text
|
|
546
|
+
*
|
|
547
|
+
* @example
|
|
548
|
+
* ```ts
|
|
549
|
+
* const result = await tts.speak("Hello world", {
|
|
550
|
+
* voice: "af_heart",
|
|
551
|
+
* speed: 1.0,
|
|
552
|
+
* });
|
|
553
|
+
*
|
|
554
|
+
* // Play in browser
|
|
555
|
+
* const audioContext = new AudioContext();
|
|
556
|
+
* const buffer = audioContext.createBuffer(1, result.audio.length, result.sampleRate);
|
|
557
|
+
* buffer.copyToChannel(result.audio, 0);
|
|
558
|
+
* const source = audioContext.createBufferSource();
|
|
559
|
+
* source.buffer = buffer;
|
|
560
|
+
* source.connect(audioContext.destination);
|
|
561
|
+
* source.start();
|
|
562
|
+
* ```
|
|
563
|
+
*/
|
|
564
|
+
speak(text: string, options?: SpeakOptions): Promise<SpeakResult>;
|
|
565
|
+
/**
|
|
566
|
+
* Stream speech generation (yields audio chunks as they're generated)
|
|
567
|
+
*
|
|
568
|
+
* @example
|
|
569
|
+
* ```ts
|
|
570
|
+
* for await (const chunk of tts.speakStream("Long text...")) {
|
|
571
|
+
* // chunk.samples = Float32Array
|
|
572
|
+
* // chunk.sampleRate = 24000
|
|
573
|
+
* // chunk.isFinal = boolean
|
|
574
|
+
* playChunk(chunk);
|
|
575
|
+
* }
|
|
576
|
+
* ```
|
|
577
|
+
*/
|
|
578
|
+
speakStream(text: string, options?: SpeakOptions): AsyncGenerator<AudioChunk, SpeakResult, unknown>;
|
|
579
|
+
/**
|
|
580
|
+
* Split text into sentences for streaming
|
|
581
|
+
*/
|
|
582
|
+
private splitIntoSentences;
|
|
583
|
+
/**
|
|
584
|
+
* Check if model is loaded
|
|
585
|
+
*/
|
|
586
|
+
isLoaded(): boolean;
|
|
587
|
+
/**
|
|
588
|
+
* Get current device mode
|
|
589
|
+
*/
|
|
590
|
+
getDeviceMode(): "webgpu" | "cpu";
|
|
591
|
+
/**
|
|
592
|
+
* Get model configuration
|
|
593
|
+
*/
|
|
594
|
+
getModelInfo(): TTSModelConfig;
|
|
595
|
+
/**
|
|
596
|
+
* Get sample rate
|
|
597
|
+
*/
|
|
598
|
+
getSampleRate(): number;
|
|
599
|
+
/**
|
|
600
|
+
* Dispose of resources
|
|
601
|
+
*/
|
|
602
|
+
dispose(): Promise<void>;
|
|
603
|
+
}
|
|
604
|
+
//#endregion
|
|
219
605
|
//#region src/index.d.ts
|
|
220
606
|
declare const VERSION = "0.1.0";
|
|
221
607
|
//#endregion
|
|
222
|
-
export { BUILTIN_MODELS, type CacheConfig, ChromeGPUBackend, type EmbedOptions, type EmbedResult, type FallbackConfig, type GenerateOptions, type GenerateResult, Gerbil, type GerbilConfig, type GerbilModelSettings, type GerbilProviderSettings, type JsonOptions, type LoadOptions, type ModelConfig, type ModelSource, type ModelStats, type ProgressInfo, type SessionStats, type SystemInfo, VERSION, gerbil as default, dispose, embed, embedBatch, generate, getChromeCachedModels, json, listBuiltinModels, refreshCachedModelSizes, resolveModel, stream };
|
|
608
|
+
export { type AudioChunk, BUILTIN_MODELS, type CacheConfig, ChromeGPUBackend, type EmbedOptions, type EmbedResult, type FallbackConfig, type GenerateOptions, type GenerateResult, Gerbil, type GerbilConfig, type GerbilModelSettings, type GerbilProviderSettings, type ImageInput, type JsonOptions, KOKORO_VOICES, KokoroTTS, type LoadOptions, type LoadSTTOptions, type LoadTTSOptions, type ModelConfig, type ModelSource, type ModelStats, type ProgressInfo, ResponseCache, type STTModelConfig, type SessionStats, type SpeakOptions, type SpeakResult, type StreamingTranscriptionOptions, type StreamingTranscriptionSession, type SystemInfo, type TTSModelConfig, TTS_MODELS, type TranscribeOptions, type TranscribeResult, type TranscribeSegment, VERSION, type VoiceInfo, WHISPER_MODELS, WhisperSTT, clearGlobalCache, configureGlobalCache, decodeWav, gerbil as default, dispose, embed, embedBatch, generate, getChromeCachedModels, getGlobalCache, getTTSModelConfig, json, listBuiltinModels, listTTSModels, refreshCachedModelSizes, resampleAudio, resolveModel, stream };
|
|
223
609
|
//# sourceMappingURL=index.d.mts.map
|
package/dist/index.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/core/chrome-backend.ts","../src/core/one-liner.ts","../src/index.ts"],"sourcesContent":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/core/cache.ts","../src/core/chrome-backend.ts","../src/core/one-liner.ts","../src/core/stt.ts","../src/core/tts.ts","../src/index.ts"],"sourcesContent":[],"mappings":"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"}
|
package/dist/index.mjs
CHANGED
|
@@ -1,13 +1,15 @@
|
|
|
1
|
-
import { n as
|
|
2
|
-
import {
|
|
3
|
-
import "./
|
|
4
|
-
import
|
|
5
|
-
import { c as stream, i as generate, n as embed, o as json, r as embedBatch, s as one_liner_default, t as dispose } from "./one-liner-
|
|
1
|
+
import { a as getGlobalCache, i as configureGlobalCache, n as ResponseCache, r as clearGlobalCache, t as Gerbil } from "./gerbil-yoSpRHgv.mjs";
|
|
2
|
+
import { n as getChromeCachedModels, r as refreshCachedModelSizes, t as ChromeGPUBackend } from "./chrome-backend-Y9F7W5VQ.mjs";
|
|
3
|
+
import { a as listBuiltinModels, o as resolveModel, t as BUILTIN_MODELS } from "./models-BAtL8qsA.mjs";
|
|
4
|
+
import "./utils-CkB4Roi6.mjs";
|
|
5
|
+
import { c as stream, i as generate, n as embed, o as json, r as embedBatch, s as one_liner_default, t as dispose } from "./one-liner-B1rmFto6.mjs";
|
|
6
|
+
import { i as resampleAudio, n as WhisperSTT, r as decodeWav, t as WHISPER_MODELS } from "./stt-Bv_dum-R.mjs";
|
|
7
|
+
import { a as TTS_MODELS, c as listTTSModels, n as KokoroTTS, s as getTTSModelConfig, t as KOKORO_VOICES } from "./tts-DG6denWG.mjs";
|
|
6
8
|
|
|
7
9
|
//#region src/index.ts
|
|
8
10
|
var src_default = one_liner_default;
|
|
9
11
|
const VERSION = "0.1.0";
|
|
10
12
|
|
|
11
13
|
//#endregion
|
|
12
|
-
export { BUILTIN_MODELS, ChromeGPUBackend, Gerbil, VERSION, src_default as default, dispose, embed, embedBatch, generate, getChromeCachedModels, json, listBuiltinModels, refreshCachedModelSizes, resolveModel, stream };
|
|
14
|
+
export { BUILTIN_MODELS, ChromeGPUBackend, Gerbil, KOKORO_VOICES, KokoroTTS, ResponseCache, TTS_MODELS, VERSION, WHISPER_MODELS, WhisperSTT, clearGlobalCache, configureGlobalCache, decodeWav, src_default as default, dispose, embed, embedBatch, generate, getChromeCachedModels, getGlobalCache, getTTSModelConfig, json, listBuiltinModels, listTTSModels, refreshCachedModelSizes, resampleAudio, resolveModel, stream };
|
|
13
15
|
//# sourceMappingURL=index.mjs.map
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","names":["gerbil"],"sources":["../src/index.ts"],"sourcesContent":["/**\n * Gerbil - Local LLM inference for Node.js\n *\n * @example Standalone\n * ```ts\n * import { Gerbil } from \"gerbil\";\n *\n * const g = new Gerbil();\n * await g.loadModel(\"qwen3-0.6b\");\n *\n * const result = await g.generate(\"Write a haiku\");\n * console.log(result.text);\n * ```\n *\n * @example One-liner\n * ```ts\n * import gerbil from \"gerbil\";\n *\n * const text = await gerbil(\"Write a haiku\");\n * ```\n *\n * @example AI SDK\n * ```ts\n * import { generateText } from \"ai\";\n * import { gerbil } from \"gerbil/ai\";\n *\n * const { text } = await generateText({\n * model: gerbil(\"qwen3-0.6b\"),\n * prompt: \"Write a haiku\",\n * });\n * ```\n *\n * @example Skills\n * ```ts\n * import { commit, summarize, explain, defineSkill } from \"gerbil/skills\";\n *\n * const msg = await commit({ type: \"conventional\" });\n * const summary = await summarize({ content: document });\n * ```\n */\n\nexport {\n ChromeGPUBackend,\n getChromeCachedModels,\n refreshCachedModelSizes,\n} from \"./core/chrome-backend.js\";\n// Core\nexport { Gerbil } from \"./core/gerbil.js\";\nexport { BUILTIN_MODELS, listBuiltinModels, resolveModel } from \"./core/models.js\";\n
|
|
1
|
+
{"version":3,"file":"index.mjs","names":["gerbil"],"sources":["../src/index.ts"],"sourcesContent":["/**\n * Gerbil - Local LLM inference for Node.js\n *\n * @example Standalone\n * ```ts\n * import { Gerbil } from \"gerbil\";\n *\n * const g = new Gerbil();\n * await g.loadModel(\"qwen3-0.6b\");\n *\n * const result = await g.generate(\"Write a haiku\");\n * console.log(result.text);\n * ```\n *\n * @example One-liner\n * ```ts\n * import gerbil from \"gerbil\";\n *\n * const text = await gerbil(\"Write a haiku\");\n * ```\n *\n * @example AI SDK\n * ```ts\n * import { generateText } from \"ai\";\n * import { gerbil } from \"gerbil/ai\";\n *\n * const { text } = await generateText({\n * model: gerbil(\"qwen3-0.6b\"),\n * prompt: \"Write a haiku\",\n * });\n * ```\n *\n * @example Skills\n * ```ts\n * import { commit, summarize, explain, defineSkill } from \"gerbil/skills\";\n *\n * const msg = await commit({ type: \"conventional\" });\n * const summary = await summarize({ content: document });\n * ```\n */\n\nexport {\n clearGlobalCache,\n configureGlobalCache,\n getGlobalCache,\n ResponseCache,\n} from \"./core/cache.js\";\nexport {\n ChromeGPUBackend,\n getChromeCachedModels,\n refreshCachedModelSizes,\n} from \"./core/chrome-backend.js\";\n// Core\nexport { Gerbil } from \"./core/gerbil.js\";\nexport { BUILTIN_MODELS, listBuiltinModels, resolveModel } from \"./core/models.js\";\n// One-liner API\nexport { dispose, embed, embedBatch, generate, json, stream } from \"./core/one-liner.js\";\n// STT (Speech-to-Text)\nexport { decodeWav, resampleAudio, WHISPER_MODELS, WhisperSTT } from \"./core/stt.js\";\n// TTS (Text-to-Speech)\nexport {\n getTTSModelConfig,\n KOKORO_VOICES,\n KokoroTTS,\n listTTSModels,\n TTS_MODELS,\n} from \"./core/tts.js\";\n\nimport gerbil from \"./core/one-liner.js\";\nexport default gerbil;\n\n// Types\nexport type {\n // TTS types\n AudioChunk,\n CacheConfig,\n EmbedOptions,\n EmbedResult,\n FallbackConfig,\n // Generation types\n GenerateOptions,\n GenerateResult,\n // Config types\n GerbilConfig,\n // Provider types\n GerbilModelSettings,\n GerbilProviderSettings,\n // Vision types\n ImageInput,\n JsonOptions,\n // Load types\n LoadOptions,\n LoadSTTOptions,\n LoadTTSOptions,\n // Model types\n ModelConfig,\n ModelSource,\n ModelStats,\n ProgressInfo,\n // Stats types\n SessionStats,\n SpeakOptions,\n SpeakResult,\n // STT types\n STTModelConfig,\n StreamingTranscriptionOptions,\n StreamingTranscriptionSession,\n SystemInfo,\n TranscribeOptions,\n TranscribeResult,\n TranscribeSegment,\n TTSModelConfig,\n VoiceInfo,\n} from \"./core/types.js\";\n\n// Note: Task/Skill types are now in \"gerbil/skills\"\n// import { CommitInput, SummarizeInput, ... } from \"gerbil/skills\";\n\n// Version\nexport const VERSION = \"0.1.0\";\n"],"mappings":";;;;;;;;;AAqEA,kBAAeA;AAkDf,MAAa,UAAU"}
|