@tryhamster/gerbil 1.0.0-rc.0 → 1.0.0-rc.10

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.
Files changed (114) hide show
  1. package/README.md +79 -14
  2. package/dist/auto-update-S9s5-g0C.mjs +3 -0
  3. package/dist/browser/index.d.ts +1009 -0
  4. package/dist/browser/index.d.ts.map +1 -0
  5. package/dist/browser/index.js +2492 -0
  6. package/dist/browser/index.js.map +1 -0
  7. package/dist/{chrome-backend-C5Un08O4.mjs → chrome-backend-CORwaIyC.mjs} +514 -73
  8. package/dist/chrome-backend-CORwaIyC.mjs.map +1 -0
  9. package/dist/{chrome-backend-CtwPENIW.mjs → chrome-backend-DIKYoWj-.mjs} +1 -1
  10. package/dist/cli.mjs +3359 -647
  11. package/dist/cli.mjs.map +1 -1
  12. package/dist/frameworks/express.d.mts +1 -1
  13. package/dist/frameworks/express.mjs +3 -4
  14. package/dist/frameworks/express.mjs.map +1 -1
  15. package/dist/frameworks/fastify.d.mts +1 -1
  16. package/dist/frameworks/fastify.mjs +2 -3
  17. package/dist/frameworks/fastify.mjs.map +1 -1
  18. package/dist/frameworks/hono.d.mts +1 -1
  19. package/dist/frameworks/hono.mjs +2 -3
  20. package/dist/frameworks/hono.mjs.map +1 -1
  21. package/dist/frameworks/next.d.mts +2 -2
  22. package/dist/frameworks/next.mjs +2 -3
  23. package/dist/frameworks/next.mjs.map +1 -1
  24. package/dist/frameworks/react.d.mts +1 -1
  25. package/dist/frameworks/trpc.d.mts +1 -1
  26. package/dist/frameworks/trpc.mjs +2 -3
  27. package/dist/frameworks/trpc.mjs.map +1 -1
  28. package/dist/gerbil-DJGqq7BX.mjs +4 -0
  29. package/dist/gerbil-DoDGHe6Z.mjs +1631 -0
  30. package/dist/gerbil-DoDGHe6Z.mjs.map +1 -0
  31. package/dist/gerbil-qOTe1nl2.d.mts +431 -0
  32. package/dist/gerbil-qOTe1nl2.d.mts.map +1 -0
  33. package/dist/index.d.mts +411 -9
  34. package/dist/index.d.mts.map +1 -1
  35. package/dist/index.mjs +7 -6
  36. package/dist/index.mjs.map +1 -1
  37. package/dist/integrations/ai-sdk.d.mts +122 -4
  38. package/dist/integrations/ai-sdk.d.mts.map +1 -1
  39. package/dist/integrations/ai-sdk.mjs +238 -11
  40. package/dist/integrations/ai-sdk.mjs.map +1 -1
  41. package/dist/integrations/langchain.d.mts +132 -2
  42. package/dist/integrations/langchain.d.mts.map +1 -1
  43. package/dist/integrations/langchain.mjs +175 -8
  44. package/dist/integrations/langchain.mjs.map +1 -1
  45. package/dist/integrations/llamaindex.d.mts +1 -1
  46. package/dist/integrations/llamaindex.mjs +2 -3
  47. package/dist/integrations/llamaindex.mjs.map +1 -1
  48. package/dist/integrations/mcp-client.mjs +4 -4
  49. package/dist/integrations/mcp-client.mjs.map +1 -1
  50. package/dist/integrations/mcp.d.mts +2 -2
  51. package/dist/integrations/mcp.d.mts.map +1 -1
  52. package/dist/integrations/mcp.mjs +5 -6
  53. package/dist/kokoro-BNTb6egA.mjs +20210 -0
  54. package/dist/kokoro-BNTb6egA.mjs.map +1 -0
  55. package/dist/kokoro-CMOGDSgT.js +20212 -0
  56. package/dist/kokoro-CMOGDSgT.js.map +1 -0
  57. package/dist/{mcp-R8kRLIKb.mjs → mcp-kzDDWIoS.mjs} +10 -37
  58. package/dist/mcp-kzDDWIoS.mjs.map +1 -0
  59. package/dist/microphone-DaMZFRuR.mjs +3 -0
  60. package/dist/{one-liner-BUQR0nqq.mjs → one-liner-DxnNs_JK.mjs} +2 -2
  61. package/dist/{one-liner-BUQR0nqq.mjs.map → one-liner-DxnNs_JK.mjs.map} +1 -1
  62. package/dist/repl-DGUw4fCc.mjs +9 -0
  63. package/dist/skills/index.d.mts +305 -14
  64. package/dist/skills/index.d.mts.map +1 -1
  65. package/dist/skills/index.mjs +5 -6
  66. package/dist/skills-DulrOPeP.mjs +1435 -0
  67. package/dist/skills-DulrOPeP.mjs.map +1 -0
  68. package/dist/stt-1WIefHwc.mjs +3 -0
  69. package/dist/stt-CG_7KB_0.mjs +434 -0
  70. package/dist/stt-CG_7KB_0.mjs.map +1 -0
  71. package/dist/stt-Dne6SENv.js +434 -0
  72. package/dist/stt-Dne6SENv.js.map +1 -0
  73. package/dist/{tools-BsiEE6f2.mjs → tools-Bi1P7Xoy.mjs} +6 -7
  74. package/dist/{tools-BsiEE6f2.mjs.map → tools-Bi1P7Xoy.mjs.map} +1 -1
  75. package/dist/transformers.web-DiD1gTwk.js +44695 -0
  76. package/dist/transformers.web-DiD1gTwk.js.map +1 -0
  77. package/dist/transformers.web-u34VxRFM.js +3 -0
  78. package/dist/tts-B1pZMlDv.mjs +3 -0
  79. package/dist/tts-C2FzKuSx.js +725 -0
  80. package/dist/tts-C2FzKuSx.js.map +1 -0
  81. package/dist/tts-CyHhcLtN.mjs +731 -0
  82. package/dist/tts-CyHhcLtN.mjs.map +1 -0
  83. package/dist/types-CiTc7ez3.d.mts +353 -0
  84. package/dist/types-CiTc7ez3.d.mts.map +1 -0
  85. package/dist/{utils-7vXqtq2Q.mjs → utils-CZBZ8dgR.mjs} +1 -1
  86. package/dist/{utils-7vXqtq2Q.mjs.map → utils-CZBZ8dgR.mjs.map} +1 -1
  87. package/docs/ai-sdk.md +137 -21
  88. package/docs/browser.md +241 -2
  89. package/docs/memory.md +72 -0
  90. package/docs/stt.md +494 -0
  91. package/docs/tts.md +569 -0
  92. package/docs/vision.md +396 -0
  93. package/package.json +21 -22
  94. package/dist/auto-update-BbNHbSU1.mjs +0 -3
  95. package/dist/browser/index.d.mts +0 -262
  96. package/dist/browser/index.d.mts.map +0 -1
  97. package/dist/browser/index.mjs +0 -755
  98. package/dist/browser/index.mjs.map +0 -1
  99. package/dist/chrome-backend-C5Un08O4.mjs.map +0 -1
  100. package/dist/gerbil-BfnsFWRE.mjs +0 -644
  101. package/dist/gerbil-BfnsFWRE.mjs.map +0 -1
  102. package/dist/gerbil-BjW-z7Fq.mjs +0 -5
  103. package/dist/gerbil-DZ1k3ChC.d.mts +0 -138
  104. package/dist/gerbil-DZ1k3ChC.d.mts.map +0 -1
  105. package/dist/mcp-R8kRLIKb.mjs.map +0 -1
  106. package/dist/models-DKULvhOr.mjs +0 -136
  107. package/dist/models-DKULvhOr.mjs.map +0 -1
  108. package/dist/models-De2-_GmQ.d.mts +0 -22
  109. package/dist/models-De2-_GmQ.d.mts.map +0 -1
  110. package/dist/skills-D3CEpgDc.mjs +0 -630
  111. package/dist/skills-D3CEpgDc.mjs.map +0 -1
  112. package/dist/types-BS1N92Jt.d.mts +0 -183
  113. package/dist/types-BS1N92Jt.d.mts.map +0 -1
  114. /package/dist/{chunk-Ct1HF2bE.mjs → chunk-CkXuGtQK.mjs} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gerbil-qOTe1nl2.d.mts","names":[],"sources":["../src/core/gerbil.ts"],"sourcesContent":[],"mappings":";;;;AAqOsB,cAlBT,MAAA,CAkBS;EAiBC,QAAA,SAAA;EAIa,QAAA,SAAA;EA0Be,QAAA,KAAA;EAAmB,QAAA,QAAA;EA8SpD,QAAA,YAAA;EA+CH,QAAA,WAAA;EAYY,iBAAA,MAAA;EAUD,QAAA,KAAA;EAWJ,QAAA,SAAA;EAW0B,QAAA,aAAA;EAyBN,QAAA,WAAA;EAA+B,QAAA,SAAA;EAAR,QAAA,WAAA;EAsNpD,QAAA,aAAA;EACe,WAAA,CAAA,MAAA,CAAA,EAxqBN,YAwqBM;EAAvB,OAAA,UAAA,CAAA,CAAA,EAvpBkB,WAupBlB,EAAA;EA0SgD,OAAA,QAAA,CAAA,OAAA,EAAA,MAAA,CAAA,EA77BjB,WA67BiB,GAAA,SAAA;EAAZ;;;;;;;;;;;;;;;;;;EAgN5B,SAAA,CAAA,OAAA,CAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAnnCsC,WAmnCtC,CAAA,EAnnCyD,OAmnCzD,CAAA,IAAA,CAAA;EACO;;;;EAyChB,QAAA,eAAA;EADqB;;;EAiDkC,QAAA,CAAA,CAAA,EAAA,OAAA;EAAiB;;;EA+B/D,cAAA,CAAA,CAAA,EAAA,OAAA;EACA;;;EAkCA,YAAA,CAAA,CAAA,EAj+BK,WAi+BL,GAAA,IAAA;EAAR;;;EAyDQ,aAAA,CAAA,CAAA,EAAA,QAAA,GAAA,KAAA,GAAA,MAAA;EAAR;;;EAiIsB,QAAA,CAAA,CAAA,EAAA,MAAA;EAkBb;;;EA6CmC,qBAAA,CAAA,CAAA,EAAA;IAkBD,IAAA,EAAA,MAAA;IAAR,MAAA,EAAA,MAAA;IAuBM,IAAA,EAAA,MAAA;IAgBJ,OAAA,EAAA,MAAA;EAAO,CAAA;;;;;;;;;;;;eApuClC;;;;;;qBAYY;;;;;;;oBAUD;;;;;;;;;gBAWJ;;;;;;+CAW0B;;;;;;;;;;;;;;;qCAyBN,kBAAuB,QAAQ;;;;;;;mCAsN5D,kBACR,uBAAuB;;;;;;;;;;;;;mCA0Sa,YAAY,KAAK,QAAQ;;;;gCAqC7B,eAAoB,QAAQ;;;;wCAyBpB,eAAoB,QAAQ;;;;cAe3D;;;;aAOD;;;;;;;;;;;;;;;;;;;;;;oBA4DY;;MAA2C;;;;4BA4BlC,iBAAiB;;;;;;;;;;;;gCAiBd,eAAoB,QAAQ;;;;;;;;;;;;;sCAmBpD,eACR,eAAe,YAAY;;;;gBAQhB;;;;;;;;;;;;;;;;mBAgCS,QACrB;;;;;;;;;;;;;;;;;;;;sCA8BuC,iBAAsB;;;;8CAkBN,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;oBA8BjE,eAAe,sBACb,oBACR,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;yCAiCA,gCACR,QAAQ;;;;mBAQY,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAiD5B,QAAQ;;;;2BAmCoB;;;;;iCAiBI;;;;;;qBA6EV;;;;;+BAUU;;;;;;;;cAQvB;;;;;;;;;;;;;;;0BA2BkB;;;;;;;;2CAkBiB;;;;;kCAkBT,QAAQ;;;;;;;;;;;;;;wCAuBF;;;;oCAgBJ"}
package/dist/index.d.mts CHANGED
@@ -1,25 +1,108 @@
1
- import { _ as SystemInfo, a as GenerateOptions, c as GerbilModelSettings, d as LoadOptions, f as ModelConfig, g as SessionStats, h as ProgressInfo, i as FallbackConfig, l as GerbilProviderSettings, m as ModelStats, n as EmbedOptions, o as GenerateResult, p as ModelSource, r as EmbedResult, s as GerbilConfig, t as CacheConfig, u as JsonOptions } from "./types-BS1N92Jt.mjs";
2
- import { n as listBuiltinModels, r as resolveModel, t as BUILTIN_MODELS } from "./models-De2-_GmQ.mjs";
3
- import { t as Gerbil } from "./gerbil-DZ1k3ChC.mjs";
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-CiTc7ez3.mjs";
2
+ import { t as Gerbil } from "./gerbil-qOTe1nl2.mjs";
5
3
 
6
- //#region src/core/chrome-backend.d.ts
4
+ //#region src/core/cache.d.ts
5
+
6
+ type CacheStats = {
7
+ hits: number;
8
+ misses: number;
9
+ size: number;
10
+ maxSize: number;
11
+ };
12
+ /**
13
+ * Generate a deterministic cache key from prompt and options.
14
+ * Key includes all parameters that affect the output.
15
+ */
7
16
 
17
+ /**
18
+ * LRU cache with TTL expiration for inference responses.
19
+ */
20
+ declare class ResponseCache {
21
+ private cache;
22
+ private maxSize;
23
+ private defaultTtl;
24
+ private hits;
25
+ private misses;
26
+ /**
27
+ * Create a new response cache.
28
+ * @param maxSize Maximum number of entries (default: 100)
29
+ * @param defaultTtl Default TTL in ms (default: 5 minutes)
30
+ */
31
+ constructor(maxSize?: number, defaultTtl?: number);
32
+ /**
33
+ * Get a cached response if it exists and hasn't expired.
34
+ */
35
+ get(key: string): GenerateResult | null;
36
+ /**
37
+ * Store a response in the cache.
38
+ */
39
+ set(key: string, result: GenerateResult, ttl?: number): void;
40
+ /**
41
+ * Check if a key exists and is not expired.
42
+ */
43
+ has(key: string): boolean;
44
+ /**
45
+ * Remove a specific key from the cache.
46
+ */
47
+ delete(key: string): boolean;
48
+ /**
49
+ * Clear all entries from the cache.
50
+ */
51
+ clear(): void;
52
+ /**
53
+ * Remove all expired entries.
54
+ */
55
+ prune(): number;
56
+ /**
57
+ * Get cache statistics.
58
+ */
59
+ getStats(): CacheStats;
60
+ /**
61
+ * Get hit rate as a percentage.
62
+ */
63
+ getHitRate(): number;
64
+ }
65
+ /**
66
+ * Get the global response cache instance.
67
+ * Creates one if it doesn't exist.
68
+ */
69
+ declare function getGlobalCache(): ResponseCache;
70
+ /**
71
+ * Configure the global cache with custom settings.
72
+ */
73
+ declare function configureGlobalCache(maxSize?: number, defaultTtl?: number): ResponseCache;
74
+ /**
75
+ * Clear and reset the global cache.
76
+ */
77
+ declare function clearGlobalCache(): void;
78
+ //#endregion
79
+ //#region src/core/chrome-backend.d.ts
80
+ /**
81
+ * Chrome DevTools Protocol Backend for WebGPU Inference
82
+ *
83
+ * Uses headless Chrome as a WebGPU accelerator for Node.js environments.
84
+ * Provides the same performance as browser inference (~100+ tok/s with q4f16).
85
+ */
8
86
  type CachedModelEntry = {
9
87
  modelId: string;
10
88
  downloadedAt: string;
11
89
  lastUsed: string;
12
90
  sizeBytes?: number;
91
+ contextLength?: number;
13
92
  };
14
93
  /** Get list of models cached in Chrome's IndexedDB */
15
94
  declare function getChromeCachedModels(): CachedModelEntry[];
16
- /** Refresh sizes for cached models that don't have them */
95
+ /** Refresh metadata (size, context length) for cached models that need it */
17
96
  declare function refreshCachedModelSizes(): Promise<void>;
18
97
  type ChromeBackendOptions = {
19
98
  /** Custom Chrome executable path */
20
99
  chromePath?: string;
21
100
  /** Model ID to load */
22
101
  modelId?: string;
102
+ /** Model context length (for KV cache management) */
103
+ contextLength?: number;
104
+ /** Whether this is a vision model (auto-detected if not specified) */
105
+ isVision?: boolean;
23
106
  /** Progress callback */
24
107
  onProgress?: (info: {
25
108
  status: string;
@@ -41,6 +124,8 @@ type GenerateOptions$1 = {
41
124
  topK?: number;
42
125
  thinking?: boolean;
43
126
  system?: string;
127
+ /** Images for vision models (URLs or data URIs) */
128
+ images?: string[];
44
129
  onToken?: (token: {
45
130
  text: string;
46
131
  state: string;
@@ -52,18 +137,32 @@ declare class ChromeGPUBackend {
52
137
  private browser;
53
138
  private page;
54
139
  private cdp;
140
+ private server;
55
141
  private serverPort;
56
142
  private userDataDir;
57
143
  private readonly modelId;
58
144
  private isReady;
145
+ private readonly isVisionModel;
59
146
  private readonly messageHandlers;
60
147
  private pendingRejects;
61
- server: Server | null;
62
148
  private constructor();
63
149
  /**
64
150
  * Create and initialize a Chrome GPU backend
65
151
  */
66
152
  static create(options?: ChromeBackendOptions): Promise<ChromeGPUBackend>;
153
+ /**
154
+ * Detect if a model is a vision model based on its ID
155
+ */
156
+ private static detectVisionModel;
157
+ /**
158
+ * Check if this backend is for a vision model
159
+ */
160
+ isVision(): boolean;
161
+ /**
162
+ * Clean up orphan Gerbil pages from previous sessions
163
+ * These are pages that were left behind when process exited without proper cleanup
164
+ */
165
+ private cleanupOrphanPages;
67
166
  /**
68
167
  * Get existing browser or launch a new one (singleton pattern)
69
168
  * Multiple Gerbil instances share the same browser process
@@ -139,13 +238,15 @@ declare class ChromeGPUBackend {
139
238
  /**
140
239
  * Start or reuse the global HTTP server
141
240
  * Uses singleton pattern to prevent killing our own server
241
+ * Updates HTML content for new model loads
142
242
  */
143
243
  private startServer;
144
244
  /**
145
245
  * Dispose of the backend and clean up
146
246
  * Note: We keep the shared browser running for other backends
247
+ * @param disconnect If true, also disconnect from shared browser (for clean script exit)
147
248
  */
148
- dispose(): Promise<void>;
249
+ dispose(disconnect?: boolean): Promise<void>;
149
250
  /**
150
251
  * Reject all pending waits (called on browser disconnect or dispose)
151
252
  */
@@ -165,12 +266,86 @@ declare class ChromeGPUBackend {
165
266
  activePagesCount: number;
166
267
  maxPages: number;
167
268
  };
269
+ /**
270
+ * Get global browser status (even if no active backends)
271
+ */
272
+ static getGlobalBrowserStatus(): {
273
+ running: boolean;
274
+ pid: number | null;
275
+ port: number;
276
+ activePagesCount: number;
277
+ maxPages: number;
278
+ wsEndpoint: string | null;
279
+ };
280
+ /**
281
+ * Get total page count from Chrome (all processes)
282
+ */
283
+ static getTotalPageCount(): Promise<number>;
284
+ /**
285
+ * Get all active backends with their memory usage (this process only)
286
+ */
287
+ static getAllBackendsInfo(): Promise<Array<{
288
+ modelId: string;
289
+ isVision: boolean;
290
+ isReady: boolean;
291
+ memory: {
292
+ usedGB: number;
293
+ totalGB: number;
294
+ usedPercent: number;
295
+ } | null;
296
+ }>>;
297
+ /**
298
+ * Get ALL pages in Chrome browser (cross-process visibility)
299
+ * This shows pages from ALL Gerbil processes sharing the browser
300
+ */
301
+ static getAllChromePages(): Promise<Array<{
302
+ url: string;
303
+ title: string;
304
+ isOurs: boolean;
305
+ modelId: string | null;
306
+ memory: {
307
+ usedGB: number;
308
+ totalGB: number;
309
+ } | null;
310
+ }>>;
311
+ /**
312
+ * Kill a Chrome page by index (works cross-process)
313
+ */
314
+ static killPageByIndex(index: number): Promise<boolean>;
315
+ /**
316
+ * Kill a specific backend by index (this process only)
317
+ */
318
+ static killBackendByIndex(index: number): Promise<boolean>;
319
+ /**
320
+ * Force kill all backends (for zombie cleanup)
321
+ */
322
+ static killAllBackends(): Promise<{
323
+ pagesKilled: number;
324
+ browserKilled: boolean;
325
+ }>;
168
326
  /**
169
327
  * Gracefully close the shared browser (call on process exit)
170
328
  */
171
329
  static closeSharedBrowser(): Promise<void>;
172
330
  }
173
331
  //#endregion
332
+ //#region src/core/models.d.ts
333
+ declare const BUILTIN_MODELS: Record<string, ModelConfig>;
334
+ /**
335
+ * Parse model identifier and resolve to source
336
+ *
337
+ * Supported formats:
338
+ * - "qwen3-0.6b" (built-in)
339
+ * - "hf:org/model" (HuggingFace shorthand)
340
+ * - "https://huggingface.co/org/model" (full URL)
341
+ * - "file:./path/to/model" (local path)
342
+ */
343
+ declare function resolveModel(modelId: string): ModelSource;
344
+ /**
345
+ * List all built-in models
346
+ */
347
+ declare function listBuiltinModels(): ModelConfig[];
348
+ //#endregion
174
349
  //#region src/core/one-liner.d.ts
175
350
  interface GerbilOptions extends GenerateOptions {
176
351
  model?: string;
@@ -216,8 +391,235 @@ declare function embedBatch(texts: string[], options?: EmbedOptions & {
216
391
  */
217
392
  declare function dispose(): Promise<void>;
218
393
  //#endregion
394
+ //#region src/core/stt.d.ts
395
+ /**
396
+ * Available Whisper models
397
+ * Ordered by size (smallest first)
398
+ */
399
+ declare const WHISPER_MODELS: STTModelConfig[];
400
+ /**
401
+ * Decode WAV file to Float32Array
402
+ * Handles stereo to mono conversion
403
+ */
404
+ declare function decodeWav(buffer: Uint8Array): {
405
+ audio: Float32Array;
406
+ sampleRate: number;
407
+ };
408
+ /**
409
+ * Resample audio to target sample rate using linear interpolation
410
+ */
411
+ declare function resampleAudio(audio: Float32Array, fromRate: number, toRate: number): Float32Array;
412
+ /**
413
+ * Speech-to-Text using Whisper ONNX models
414
+ */
415
+ declare class WhisperSTT {
416
+ private modelConfig;
417
+ private pipeline;
418
+ private loadPromise;
419
+ private _isLoaded;
420
+ private _deviceMode;
421
+ constructor(modelId?: string);
422
+ /**
423
+ * Check if model is loaded
424
+ */
425
+ isLoaded(): boolean;
426
+ /**
427
+ * Get model configuration
428
+ */
429
+ getModelConfig(): STTModelConfig;
430
+ /**
431
+ * Get model info (alias for getModelConfig)
432
+ */
433
+ getModelInfo(): STTModelConfig;
434
+ /**
435
+ * Get current device mode
436
+ */
437
+ getDeviceMode(): "webgpu" | "cpu";
438
+ /**
439
+ * List available models
440
+ */
441
+ static listModels(): STTModelConfig[];
442
+ /**
443
+ * Load the STT model
444
+ */
445
+ load(options?: LoadSTTOptions): Promise<void>;
446
+ private _load;
447
+ /**
448
+ * Transcribe audio to text
449
+ *
450
+ * @param audio - Audio data as Float32Array (mono, 16kHz preferred) or Uint8Array (WAV file)
451
+ * @param options - Transcription options
452
+ * @returns Transcription result with text and optional timestamps
453
+ */
454
+ transcribe(audio: Float32Array | Uint8Array, options?: TranscribeOptions): Promise<TranscribeResult>;
455
+ /**
456
+ * Create a streaming transcription session
457
+ *
458
+ * Transcribes audio in real-time by processing chunks at regular intervals.
459
+ * Perfect for live captioning, call transcription, or real-time subtitles.
460
+ *
461
+ * @param options - Streaming options
462
+ * @returns Streaming session controller
463
+ *
464
+ * @example
465
+ * ```ts
466
+ * const session = stt.createStreamingSession({
467
+ * chunkDuration: 3000, // Transcribe every 3 seconds
468
+ * onChunk: (text, idx) => console.log(`Chunk ${idx}: ${text}`),
469
+ * onTranscript: (fullText) => console.log("Full:", fullText),
470
+ * });
471
+ *
472
+ * // Feed audio data as it comes in (Float32Array at 16kHz)
473
+ * session.feedAudio(audioChunk);
474
+ *
475
+ * // Or manually trigger transcription
476
+ * await session.flush();
477
+ *
478
+ * // Stop and get final transcript
479
+ * const finalText = await session.stop();
480
+ * ```
481
+ */
482
+ createStreamingSession(options?: StreamingTranscriptionOptions): StreamingTranscriptionSession;
483
+ /**
484
+ * Dispose of resources
485
+ */
486
+ dispose(): void;
487
+ }
488
+ //#endregion
489
+ //#region src/core/tts.d.ts
490
+ /**
491
+ * Kokoro voice definitions
492
+ * Voice IDs follow pattern: {language}{gender}_{name}
493
+ * - a = American English
494
+ * - b = British English
495
+ * - f = female, m = male
496
+ */
497
+ declare const KOKORO_VOICES: VoiceInfo[];
498
+ declare const TTS_MODELS: Record<string, TTSModelConfig>;
499
+ /**
500
+ * Get TTS model config by ID
501
+ */
502
+ declare function getTTSModelConfig(modelId: string): TTSModelConfig | null;
503
+ /**
504
+ * List all available TTS models
505
+ */
506
+ declare function listTTSModels(): TTSModelConfig[];
507
+ /**
508
+ * Kokoro TTS - Local text-to-speech with voice selection
509
+ *
510
+ * Uses kokoro-js (official Kokoro library by xenova) for high-quality speech synthesis.
511
+ * Includes proper G2P (grapheme-to-phoneme) conversion for accurate pronunciation.
512
+ */
513
+ declare class KokoroTTS {
514
+ private kokoroInstance;
515
+ private modelConfig;
516
+ private loadPromise;
517
+ private _isLoaded;
518
+ private _deviceMode;
519
+ constructor(modelId?: string);
520
+ /**
521
+ * Load the TTS model
522
+ *
523
+ * @example
524
+ * ```ts
525
+ * const tts = new KokoroTTS();
526
+ * await tts.load({
527
+ * onProgress: (p) => console.log(p.status, p.progress),
528
+ * device: "webgpu",
529
+ * });
530
+ * ```
531
+ */
532
+ load(options?: LoadTTSOptions): Promise<void>;
533
+ private _load;
534
+ /**
535
+ * Ensure model is loaded (lazy loading)
536
+ */
537
+ ensureLoaded(options?: LoadTTSOptions): Promise<void>;
538
+ /**
539
+ * Get list of available voices
540
+ *
541
+ * @example
542
+ * ```ts
543
+ * const voices = tts.listVoices();
544
+ * // [{ id: "af_heart", name: "Heart", gender: "female", ... }, ...]
545
+ * ```
546
+ */
547
+ listVoices(): VoiceInfo[];
548
+ /**
549
+ * Get a specific voice by ID
550
+ */
551
+ getVoice(voiceId: string): VoiceInfo | null;
552
+ /**
553
+ * Get voices by gender
554
+ */
555
+ getVoicesByGender(gender: "male" | "female"): VoiceInfo[];
556
+ /**
557
+ * Get voices by language
558
+ */
559
+ getVoicesByLanguage(language: string): VoiceInfo[];
560
+ /**
561
+ * Generate speech from text
562
+ *
563
+ * @example
564
+ * ```ts
565
+ * const result = await tts.speak("Hello world", {
566
+ * voice: "af_heart",
567
+ * speed: 1.0,
568
+ * });
569
+ *
570
+ * // Play in browser
571
+ * const audioContext = new AudioContext();
572
+ * const buffer = audioContext.createBuffer(1, result.audio.length, result.sampleRate);
573
+ * buffer.copyToChannel(result.audio, 0);
574
+ * const source = audioContext.createBufferSource();
575
+ * source.buffer = buffer;
576
+ * source.connect(audioContext.destination);
577
+ * source.start();
578
+ * ```
579
+ */
580
+ speak(text: string, options?: SpeakOptions): Promise<SpeakResult>;
581
+ /**
582
+ * Stream speech generation (yields audio chunks as they're generated)
583
+ *
584
+ * @example
585
+ * ```ts
586
+ * for await (const chunk of tts.speakStream("Long text...")) {
587
+ * // chunk.samples = Float32Array
588
+ * // chunk.sampleRate = 24000
589
+ * // chunk.isFinal = boolean
590
+ * playChunk(chunk);
591
+ * }
592
+ * ```
593
+ */
594
+ speakStream(text: string, options?: SpeakOptions): AsyncGenerator<AudioChunk, SpeakResult, unknown>;
595
+ /**
596
+ * Split text into sentences for streaming
597
+ */
598
+ private splitIntoSentences;
599
+ /**
600
+ * Check if model is loaded
601
+ */
602
+ isLoaded(): boolean;
603
+ /**
604
+ * Get current device mode
605
+ */
606
+ getDeviceMode(): "webgpu" | "cpu";
607
+ /**
608
+ * Get model configuration
609
+ */
610
+ getModelInfo(): TTSModelConfig;
611
+ /**
612
+ * Get sample rate
613
+ */
614
+ getSampleRate(): number;
615
+ /**
616
+ * Dispose of resources
617
+ */
618
+ dispose(): Promise<void>;
619
+ }
620
+ //#endregion
219
621
  //#region src/index.d.ts
220
622
  declare const VERSION = "0.1.0";
221
623
  //#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 };
624
+ 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
625
  //# sourceMappingURL=index.d.mts.map
@@ -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":"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"}
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../src/core/cache.ts","../src/core/chrome-backend.ts","../src/core/models.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,14 @@
1
- import { n as getChromeCachedModels, r as refreshCachedModelSizes, t as ChromeGPUBackend } from "./chrome-backend-C5Un08O4.mjs";
2
- import { a as resolveModel, i as listBuiltinModels, t as BUILTIN_MODELS } from "./models-DKULvhOr.mjs";
3
- import "./utils-7vXqtq2Q.mjs";
4
- import { t as Gerbil } from "./gerbil-BfnsFWRE.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-BUQR0nqq.mjs";
1
+ import { a as ResponseCache, c as getGlobalCache, i as resolveModel, n as BUILTIN_MODELS, o as clearGlobalCache, r as listBuiltinModels, s as configureGlobalCache, t as Gerbil } from "./gerbil-DoDGHe6Z.mjs";
2
+ import { n as getChromeCachedModels, r as refreshCachedModelSizes, t as ChromeGPUBackend } from "./chrome-backend-CORwaIyC.mjs";
3
+ import "./utils-CZBZ8dgR.mjs";
4
+ 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-DxnNs_JK.mjs";
5
+ import { i as resampleAudio, n as WhisperSTT, r as decodeWav, t as WHISPER_MODELS } from "./stt-CG_7KB_0.mjs";
6
+ import { a as TTS_MODELS, c as listTTSModels, n as KokoroTTS, s as getTTSModelConfig, t as KOKORO_VOICES } from "./tts-CyHhcLtN.mjs";
6
7
 
7
8
  //#region src/index.ts
8
9
  var src_default = one_liner_default;
9
10
  const VERSION = "0.1.0";
10
11
 
11
12
  //#endregion
12
- export { BUILTIN_MODELS, ChromeGPUBackend, Gerbil, VERSION, src_default as default, dispose, embed, embedBatch, generate, getChromeCachedModels, json, listBuiltinModels, refreshCachedModelSizes, resolveModel, stream };
13
+ 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
14
  //# sourceMappingURL=index.mjs.map
@@ -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\n// One-liner API\nexport { dispose, embed, embedBatch, generate, json, stream } from \"./core/one-liner.js\";\n\nimport gerbil from \"./core/one-liner.js\";\nexport default gerbil;\n\n// Types\nexport type {\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 JsonOptions,\n // Load types\n LoadOptions,\n // Model types\n ModelConfig,\n ModelSource,\n ModelStats,\n ProgressInfo,\n // Stats types\n SessionStats,\n SystemInfo,\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":";;;;;;;AAsDA,kBAAeA;AAiCf,MAAa,UAAU"}
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"}