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

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 (94) hide show
  1. package/README.md +79 -14
  2. package/dist/auto-update-DsWBBnEk.mjs +3 -0
  3. package/dist/browser/index.d.mts +401 -5
  4. package/dist/browser/index.d.mts.map +1 -1
  5. package/dist/browser/index.mjs +1772 -146
  6. package/dist/browser/index.mjs.map +1 -1
  7. package/dist/{chrome-backend-CtwPENIW.mjs → chrome-backend-JEPeM2YE.mjs} +1 -1
  8. package/dist/{chrome-backend-C5Un08O4.mjs → chrome-backend-Y9F7W5VQ.mjs} +514 -73
  9. package/dist/chrome-backend-Y9F7W5VQ.mjs.map +1 -0
  10. package/dist/cli.mjs +3359 -646
  11. package/dist/cli.mjs.map +1 -1
  12. package/dist/frameworks/express.d.mts +1 -1
  13. package/dist/frameworks/express.mjs +3 -3
  14. package/dist/frameworks/fastify.d.mts +1 -1
  15. package/dist/frameworks/fastify.mjs +3 -3
  16. package/dist/frameworks/hono.d.mts +1 -1
  17. package/dist/frameworks/hono.mjs +3 -3
  18. package/dist/frameworks/next.d.mts +2 -2
  19. package/dist/frameworks/next.mjs +3 -3
  20. package/dist/frameworks/react.d.mts +1 -1
  21. package/dist/frameworks/trpc.d.mts +1 -1
  22. package/dist/frameworks/trpc.mjs +3 -3
  23. package/dist/gerbil-DeQlX_Mt.mjs +5 -0
  24. package/dist/gerbil-POAz8peb.d.mts +431 -0
  25. package/dist/gerbil-POAz8peb.d.mts.map +1 -0
  26. package/dist/gerbil-yoSpRHgv.mjs +1463 -0
  27. package/dist/gerbil-yoSpRHgv.mjs.map +1 -0
  28. package/dist/index.d.mts +395 -9
  29. package/dist/index.d.mts.map +1 -1
  30. package/dist/index.mjs +8 -6
  31. package/dist/index.mjs.map +1 -1
  32. package/dist/integrations/ai-sdk.d.mts +122 -4
  33. package/dist/integrations/ai-sdk.d.mts.map +1 -1
  34. package/dist/integrations/ai-sdk.mjs +239 -11
  35. package/dist/integrations/ai-sdk.mjs.map +1 -1
  36. package/dist/integrations/langchain.d.mts +132 -2
  37. package/dist/integrations/langchain.d.mts.map +1 -1
  38. package/dist/integrations/langchain.mjs +176 -8
  39. package/dist/integrations/langchain.mjs.map +1 -1
  40. package/dist/integrations/llamaindex.d.mts +1 -1
  41. package/dist/integrations/llamaindex.mjs +3 -3
  42. package/dist/integrations/mcp-client.mjs +4 -4
  43. package/dist/integrations/mcp-client.mjs.map +1 -1
  44. package/dist/integrations/mcp.d.mts +2 -2
  45. package/dist/integrations/mcp.d.mts.map +1 -1
  46. package/dist/integrations/mcp.mjs +6 -6
  47. package/dist/{mcp-R8kRLIKb.mjs → mcp-Bitg4sjX.mjs} +10 -37
  48. package/dist/mcp-Bitg4sjX.mjs.map +1 -0
  49. package/dist/microphone-D-6y9aiE.mjs +3 -0
  50. package/dist/{models-DKULvhOr.mjs → models-BAtL8qsA.mjs} +42 -7
  51. package/dist/models-BAtL8qsA.mjs.map +1 -0
  52. package/dist/{models-De2-_GmQ.d.mts → models-CE0fBq0U.d.mts} +2 -2
  53. package/dist/models-CE0fBq0U.d.mts.map +1 -0
  54. package/dist/{one-liner-BUQR0nqq.mjs → one-liner-B1rmFto6.mjs} +2 -2
  55. package/dist/{one-liner-BUQR0nqq.mjs.map → one-liner-B1rmFto6.mjs.map} +1 -1
  56. package/dist/repl-D20JO260.mjs +10 -0
  57. package/dist/skills/index.d.mts +303 -12
  58. package/dist/skills/index.d.mts.map +1 -1
  59. package/dist/skills/index.mjs +6 -6
  60. package/dist/skills-5DxAV-rn.mjs +1435 -0
  61. package/dist/skills-5DxAV-rn.mjs.map +1 -0
  62. package/dist/stt-Bv_dum-R.mjs +433 -0
  63. package/dist/stt-Bv_dum-R.mjs.map +1 -0
  64. package/dist/stt-KzSoNvwI.mjs +3 -0
  65. package/dist/{tools-BsiEE6f2.mjs → tools-IYPrqoek.mjs} +6 -7
  66. package/dist/{tools-BsiEE6f2.mjs.map → tools-IYPrqoek.mjs.map} +1 -1
  67. package/dist/tts-5yWeP_I0.mjs +3 -0
  68. package/dist/tts-DG6denWG.mjs +729 -0
  69. package/dist/tts-DG6denWG.mjs.map +1 -0
  70. package/dist/types-s6Py2_DL.d.mts +353 -0
  71. package/dist/types-s6Py2_DL.d.mts.map +1 -0
  72. package/dist/{utils-7vXqtq2Q.mjs → utils-CkB4Roi6.mjs} +1 -1
  73. package/dist/{utils-7vXqtq2Q.mjs.map → utils-CkB4Roi6.mjs.map} +1 -1
  74. package/docs/ai-sdk.md +137 -21
  75. package/docs/browser.md +241 -2
  76. package/docs/memory.md +72 -0
  77. package/docs/stt.md +494 -0
  78. package/docs/tts.md +569 -0
  79. package/docs/vision.md +396 -0
  80. package/package.json +17 -18
  81. package/dist/auto-update-BbNHbSU1.mjs +0 -3
  82. package/dist/chrome-backend-C5Un08O4.mjs.map +0 -1
  83. package/dist/gerbil-BfnsFWRE.mjs +0 -644
  84. package/dist/gerbil-BfnsFWRE.mjs.map +0 -1
  85. package/dist/gerbil-BjW-z7Fq.mjs +0 -5
  86. package/dist/gerbil-DZ1k3ChC.d.mts +0 -138
  87. package/dist/gerbil-DZ1k3ChC.d.mts.map +0 -1
  88. package/dist/mcp-R8kRLIKb.mjs.map +0 -1
  89. package/dist/models-DKULvhOr.mjs.map +0 -1
  90. package/dist/models-De2-_GmQ.d.mts.map +0 -1
  91. package/dist/skills-D3CEpgDc.mjs +0 -630
  92. package/dist/skills-D3CEpgDc.mjs.map +0 -1
  93. package/dist/types-BS1N92Jt.d.mts +0 -183
  94. package/dist/types-BS1N92Jt.d.mts.map +0 -1
package/dist/index.d.mts CHANGED
@@ -1,25 +1,109 @@
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-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/chrome-backend.d.ts
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 sizes for cached models that don't have them */
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
@@ -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/one-liner.ts","../src/core/stt.ts","../src/core/tts.ts","../src/index.ts"],"sourcesContent":[],"mappings":";;;;;;KAmBK,UAAA,GA4Ee;EA0BO,IAAA,EAAA,MAAA;EAmEb,MAAA,EAAA,MAAA;EAAU,IAAA,EAAA,MAAA;EA6BR,OAAA,EAAA,MAAA;AAUhB,CAAA;AAQA;;;;;;;;ACo8BgD,cDpmCnC,aAAA,CComCmC;EAmBtB,QAAA,KAAA;EAgBgB,QAAA,OAAA;EAAuB,QAAA,UAAA;EAsD5C,QAAA,IAAA;EASJ,QAAA,MAAA;EA+DoB;;;;;EAsLD,WAAA,CAAA,OAAA,CAAA,EAAA,MAAA,EAAA,UAAA,CAAA,EAAA,MAAA;EAuFW;;;EAsGV,GAAA,CAAA,GAAA,EAAA,MAAA,CAAA,EDpmDjB,cComDiB,GAAA,IAAA;EAAO;;;2BD1kDjB;EE/DjB;AAAqC;AA2B/C;EAEW,GAAA,CAAA,GAAA,EAAA,MAAA,CAAA,EAAA,OAAA;EACA;;;EASY,MAAA,CAAA,GAAM,EAAA,MAAA,CAAA,EAAA,OAAA;EAElB;;;EACM,KAAA,CAAA,CAAA,EAAA,IAAA;EASK;;;EAGX,KAAA,CAAA,CAAA,EAAA,MAAA;EAAR;;AASH;EAEW,QAAA,CAAA,CAAA,EFiEG,UEjEH;EACA;;;EASW,UAAA,CAAA,CAAA,EAAU,MAAA;;;;;AAYhC;iBFwEgB,cAAA,CAAA,GAAkB;;;AG/KlC;AA6FgB,iBH4FA,oBAAA,CG5FwC,OAAY,CAAZ,EAAY,MAAA,EAAA,UAAA,CAAA,EAAA,MAAA,CAAA,EH4FS,aG5FT;AA4DpE;AAyBA;;AAiCkB,iBHlBF,gBAAA,CAAA,CGkBE,EAAA,IAAA;;;;;;;;AHtP+B;AAoEjD,KCpDK,gBAAA,GDoDqB;EAoBN,OAAA,EAAA,MAAA;EA0BO,YAAA,EAAA,MAAA;EAmEb,QAAA,EAAA,MAAA;EAAU,SAAA,CAAA,EAAA,MAAA;EA6BR,aAAA,CAAA,EAAA,MAAc;AAU9B,CAAA;AAQA;iBC3MgB,qBAAA,CAAA,GAAyB;AAoLzC;AAgEY,iBAhEU,uBAAA,CAAA,CAgEU,EAhEiB,OAgEjB,CAAA,IAAA,CAAA;AAepB,KAfA,oBAAA,GAee;EAged;EAqBkB,UAAA,CAAA,EAAA,MAAA;EAAoC;EAAR,OAAA,CAAA,EAAA,MAAA;EAyWoB;EAmBrD,aAAA,CAAA,EAAA,MAAA;EA2BsB;EAmBtB,QAAA,CAAA,EAAA,OAAA;EAgBgB;EAAuB,UAAA,CAAA,EAAA,CAAA,IAAA,EAAA;IAsD5C,MAAA,EAAA,MAAA;IASJ,QAAA,CAAA,EAAA,MAAA;IA+DoB,IAAA,CAAA,EAAA,MAAA;EAuID,CAAA,EAAA,GAAA,IAAA;EAqBhC;EADiC,OAAA,CAAA,EAAA,CAAA,KAAA,EAAA;IA4BjC,IAAA,EAAA,MAAA;IADgC,KAAA,EAAA,MAAA;IAuFW,SAAA,EAAA,MAAA;IAsCG,GAAA,EAAA,MAAA;EAkBhB,CAAA,EAAA,GAAA,IAAA;CA8CG;AAAO,KAh6ChC,iBAAA,GAg6CgC;;;;ECzoDlC,IAAA,CAAA,EAAA,MAAA;EAaK,QAAA,CAAM,EAAA,OAAA;EAcC,MAAA,CAAA,EAAA,MAAQ;EAEnB;EACA,MAAA,CAAA,EAAA,MAAA,EAAA;EAAR,OAAA,CAAA,EAAA,CAAA,KAAA,EAAA;IAAO,IAAA,EAAA,MAAA;IASa,KAAM,EAAA,MAAA;IAElB,SAAA,EAAA,MAAA;IACe,GAAA,EAAA,MAAA;EAAvB,CAAA,EAAA,GAAA,IAAA;CAAc;AASK,cDspBT,gBAAA,CCtpBa;EAEH,QAAA,OAAA;EAAZ,QAAA,IAAA;EACA,QAAA,GAAA;EAAR,QAAA,MAAA;EAAO,QAAA,UAAA;EASY,QAAK,WAAA;EAEhB,iBAAA,OAAA;EACA,QAAA,OAAA;EAAR,iBAAA,aAAA;EAAO,iBAAA,eAAA;EASY,QAAA,cAAU;EAErB,QAAA,WAAA,CAAA;EACA;;;EASW,OAAA,MAAO,CAAA,OAAW,CAAX,EDuoBE,oBCvoBS,CAAA,EDuoBmB,OCvoBnB,CDuoB2B,gBCvoB3B,CAAA;;;;ECvG3B,eAAA,iBAAgB;EA6Fb;AA4DhB;AAyBA;EA0BoB,QAAA,CAAA,CAAA,EAAA,OAAA;EAOF;;;;EAkGP,QAAA,kBAAA;EAAe;;;;EA8Gb,QAAA,kBAAA;EACR;;;;;AC7ZL;AAsRA;EA0BgB,QAAA,MAAA;EAOA;AAgChB;;EAiC4C,QAAA,aAAA;EAqEb;;;EA0BF,QAAA,cAAA;EAOmB;;;EAqCiB,OAAA,CAAA,CAAA,EAAA,OAAA;EAAR;;;EAkDzB,SAAA,CAAA,CAAA,EAAA;IAA3B,GAAA,EAAA,MAAA,GAAA,IAAA;IAiGa,IAAA,EAAA,MAAA;IAkBC,OAAA,EAAA,MAAA;IAAO,SAAA,EHwaqD,IGxarD,GAAA,IAAA;;;;AClmB1B;;oBJ6hC0B;;;;;;;;;+CA2BsB;;;;oBAmBtB;;;;;;;;qCAgBgB,oBAAuB;;;;eAsD5C;;;;WASJ;;;;;;;;;;;;;;;;iCA+DoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8BAuID;;;;+BAoBC,QACjC;;;;;;;;;;;;;;8BA0BgC,QAChC;;;;;;;;;;;;;yCAsF2C;;;;4CAsCG;;;;4BAkBhB;;;;;;;+BA8CG;;;;ADx9CrC,UEjLU,aAAA,SAAsB,eFiLA,CAAA;;;;;AC3MhC;AAoLA;AAgEA;AAeA;AAgeA;;;iBC5rBe,MAAA,CDitB4C,MAAA,EAAA,MAAA,EAAA,OAAA,CAAA,ECjtBZ,aDitBY,CAAA,ECjtBS,ODitBT,CAAA,MAAA,CAAA;;;;AA0ajC,iBC7mCJ,QAAA,CD6mCI,MAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EC3mCf,aD2mCe,CAAA,EC1mCvB,OD0mCuB,CC1mCf,cD0mCe,CAAA;;;;AA+ET,iBChrCM,MAAA,CDgrCN,MAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EC9qCN,aD8qCM,CAAA,EC7qCd,cD6qCc,CAAA,MAAA,EC7qCS,cD6qCT,EAAA,OAAA,CAAA;;;;AA0NoB,iBC93Cf,ID83Ce,CAAA,CAAA,CAAA,CAAA,MAAA,EAAA,MAAA,EAAA,OAAA,EC53C1B,WD43C0B,CC53Cd,CD43Cc,CAAA,GAAA;EA4BjC,KAAA,CAAA,EAAA,MAAA;CADgC,CAAA,ECt5CjC,ODs5CiC,CCt5CzB,CDs5CyB,CAAA;;;;AA6LC,iBC1kDf,KAAA,CD0kDe,IAAA,EAAA,MAAA,EAAA,QAAA,ECxkD1B,YDwkD0B,GAAA;EAAO,KAAA,CAAA,EAAA,MAAA;ICvkDzC,QAAQ;;;AAnGwC;AA8CpC,iBA8DO,UAAA,CA9DyB,KAAA,EAAqB,MAAA,EAAO,EAAA,OAgBhE,CAhBgE,EAgEhE,YAhEgE,GAAA;EAcrD,KAAA,CAAA,EAAA,MAAQ;CAEnB,CAAA,EAiDR,OAjDQ,CAiDA,WAjDA,EAAA,CAAA;;;;AAUY,iBAgDD,OAAA,CAAA,CAhDO,EAgDI,OAhDJ,CAAA,IAAA,CAAA;;;;;;;ADmjCH,cE1mCb,cF0mCa,EE1mCG,cF0mCH,EAAA;;;;;AAoHL,iBEjoCL,SAAA,CFioCK,MAAA,EEjoCa,UFioCb,CAAA,EAAA;EASJ,KAAA,EE1oCuC,YF0oCvC;EA+DoB,UAAA,EAAA,MAAA;CAuID;;;;AA+CA,iBEn0CpB,aAAA,CFm0CoB,KAAA,EEn0CC,YFm0CD,EAAA,QAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,CAAA,EEn0CkD,YFm0ClD;;;;AA6LC,cEv+CxB,UAAA,CFu+CwB;EAAO,QAAA,WAAA;;;;ECzoDlC,QAAA,WAAc;EAaT,WAAM,CAAA,OAA0B,CAA1B,EAA0B,MAAA;EAczB;;;EAGnB,QAAA,CAAA,CAAA,EAAA,OAAA;EAAO;AASV;;EAG0B,cAAA,CAAA,CAAA,ECkJN,cDlJM;EAAvB;;AASH;EAEuB,YAAA,CAAA,CAAA,EC8IL,cD9IK;EAAZ;;;EACD,aAAA,CAAA,CAAA,EAAA,QAAA,GAAA,KAAA;EASY;;;EAGnB,OAAA,UAAA,CAAA,CAAA,EC+IoB,cD/IpB,EAAA;EAAO;AASV;;EAGW,IAAA,CAAA,OAAA,CAAA,EC0IW,cD1IX,CAAA,EC0IiC,OD1IjC,CAAA,IAAA,CAAA;EAAR,QAAA,KAAA;EAAO;AASV;;;;ACvGA;AA6FA;EA4DgB,UAAA,CAAA,KAAa,EA4JlB,YA5J0B,GA4JX,UA5J4D,EAAA,OAAY,CAAZ,EA6JzE,iBA7JqF,CAAA,EA8J7F,OA9J6F,CA8JrF,gBA9JqF,CAAA;EAyBrF;;;;;;;;;;;;;;;;;AC3Kb;AAsRA;AA0BA;AAOA;AAgCA;;;;;;EAgI6B,sBAAA,CAAA,OAAA,CAAA,ED3DhB,6BC2DgB,CAAA,ED1DxB,6BC0DwB;EAOmB;;;EAqCiB,OAAA,CAAA,CAAA,EAAA,IAAA;;;;;;;;;;;AH6tBhD,cGhuCJ,aHguCI,EGhuCW,SHguCX,EAAA;AAqPmB,cG/rCvB,UH+rCuB,EG/rCX,MH+rCW,CAAA,MAAA,EG/rCI,cH+rCJ,CAAA;;;;AA6LC,iBGl2CrB,iBAAA,CHk2CqB,OAAA,EAAA,MAAA,CAAA,EGl2Ce,cHk2Cf,GAAA,IAAA;;;;iBG31CrB,aAAA,CAAA,GAAiB;AF/UkB;AAiCJ;AA2B/C;;;;AAGU,cEgTG,SAAA,CFhTH;EASa,QAAA,cAAM;EAElB,QAAA,WAAA;EACe,QAAA,WAAA;EAAvB,QAAA,SAAA;EAAc,QAAA,WAAA;EASK,WAAI,CAAA,OAAA,CAAA,EAAA,MAAA;EAEH;;;;;AAUvB;;;;;AAYA;;EAGW,IAAA,CAAA,OAAA,CAAA,EEiSW,cFjSX,CAAA,EEiSiC,OFjSjC,CAAA,IAAA,CAAA;EAAR,QAAA,KAAA;EAAO;AASV;;yBE6V+B,iBAAiB;;ADpchD;AA6FA;AA4DA;AAyBA;;;;;EAsD4C,UAAA,CAAA,CAAA,EC+O5B,SD/O4B,EAAA;EA6EjC;;;EAEE,QAAA,CAAA,OAAA,EAAA,MAAA,CAAA,ECuKgB,SDvKhB,GAAA,IAAA;EAAR;;;EA6G6B,iBAAA,CAAA,MAAA,EAAA,MAAA,GAAA,QAAA,CAAA,ECiEc,SDjEd,EAAA;;;;EC7ZrB,mBAqOZ,CAAA,QAAA,EArO2B,MAAA,CAAA,EAqea,SAreJ,EAAA;EAsRxB;AA0Bb;AAOA;AAgCA;;;;;;;;;;;;;;;;;EAiVmB,KAAA,CAAA,IAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EArKkB,YAqKlB,CAAA,EArKsC,OAqKtC,CArK8C,WAqK9C,CAAA;EAAO;;;;AClmB1B;;;;;;;;;sCD8ea,eACR,eAAe,YAAY;;;;;;;;;;;;;;;;kBAiGd;;;;;;;;aAkBC;;;;AFpoBG,cGkCT,OAAA,GHlCiB,OAAA"}
package/dist/index.mjs CHANGED
@@ -1,13 +1,15 @@
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 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
@@ -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"}