@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
@@ -1,262 +0,0 @@
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 { t as BUILTIN_MODELS } from "../models-De2-_GmQ.mjs";
3
-
4
- //#region src/browser/index.d.ts
5
-
6
- type WorkerProgress = {
7
- status: "loading" | "downloading" | "ready" | "error";
8
- message?: string;
9
- file?: string;
10
- progress?: number;
11
- /** Number of files being downloaded (0 = loading from cache) */
12
- downloadCount?: number;
13
- /** Total files to process */
14
- totalFiles?: number;
15
- error?: string;
16
- };
17
- type WorkerToken = {
18
- status: "token";
19
- text: string;
20
- state: "thinking" | "answering";
21
- numTokens: number;
22
- tps: number;
23
- };
24
- type WorkerComplete = {
25
- status: "complete";
26
- text: string;
27
- numTokens: number;
28
- totalTime: number;
29
- tps: number;
30
- };
31
- type GerbilWorkerOptions = {
32
- /** Model ID to load (default: "qwen3-0.6b") */
33
- modelId?: string;
34
- /** Called during model loading with progress updates */
35
- onProgress?: (progress: WorkerProgress) => void;
36
- /** Called for each token during streaming generation */
37
- onToken?: (token: WorkerToken) => void;
38
- /** Called when generation is complete */
39
- onComplete?: (result: WorkerComplete) => void;
40
- /** Called on errors */
41
- onError?: (error: string) => void;
42
- /** Worker script URL (auto-detected if not provided) */
43
- workerUrl?: string;
44
- };
45
- type GenerateStreamOptions = {
46
- /** Maximum tokens to generate */
47
- maxTokens?: number;
48
- /** Temperature for sampling (0 = deterministic) */
49
- temperature?: number;
50
- /** Top-p nucleus sampling */
51
- topP?: number;
52
- /** Top-k sampling */
53
- topK?: number;
54
- /** Enable thinking mode (Qwen3) */
55
- thinking?: boolean;
56
- /** System prompt */
57
- system?: string;
58
- };
59
- type GerbilWorker = {
60
- /** Generate text with streaming */
61
- generate: (prompt: string, options?: GenerateStreamOptions) => Promise<string>;
62
- /** Interrupt current generation */
63
- interrupt: () => void;
64
- /** Reset conversation cache */
65
- reset: () => void;
66
- /** Terminate the worker */
67
- terminate: () => void;
68
- /** Check if model is loaded */
69
- isReady: () => boolean;
70
- };
71
- /**
72
- * Create a Gerbil worker for streaming WebGPU inference
73
- *
74
- * Uses a Web Worker to keep the UI responsive during model loading
75
- * and text generation, with real-time token streaming.
76
- */
77
- declare function createGerbilWorker(options?: GerbilWorkerOptions): Promise<GerbilWorker>;
78
- /** Message in a chat conversation */
79
- type Message = {
80
- id: string;
81
- role: "user" | "assistant";
82
- content: string;
83
- thinking?: string;
84
- };
85
- /** Loading progress state */
86
- type LoadingProgress = {
87
- status: "loading" | "downloading" | "ready" | "error";
88
- message?: string;
89
- file?: string;
90
- progress?: number;
91
- /** Number of files being downloaded (0 = loading from cache) */
92
- downloadCount?: number;
93
- /** Total files to process */
94
- totalFiles?: number;
95
- };
96
- /** Options for useChat hook */
97
- type UseChatOptions = {
98
- /** Model ID (default: "qwen3-0.6b") */
99
- model?: string;
100
- /** System prompt */
101
- system?: string;
102
- /** Enable thinking mode (Qwen3) */
103
- thinking?: boolean;
104
- /** Max tokens per response */
105
- maxTokens?: number;
106
- /** Temperature (0-2) */
107
- temperature?: number;
108
- /** Initial messages */
109
- initialMessages?: Message[];
110
- /** Auto-load model on mount (default: false - loads on first generate or load()) */
111
- autoLoad?: boolean;
112
- /** Called when model is ready */
113
- onReady?: () => void;
114
- /** Called on error */
115
- onError?: (error: string) => void;
116
- };
117
- /** Return type for useChat hook */
118
- type UseChatReturn = {
119
- /** Chat messages */
120
- messages: Message[];
121
- /** Current input value */
122
- input: string;
123
- /** Set input value */
124
- setInput: (value: string) => void;
125
- /** Submit current input */
126
- handleSubmit: (e?: {
127
- preventDefault?: () => void;
128
- }) => void;
129
- /** Whether model is loading */
130
- isLoading: boolean;
131
- /** Loading progress */
132
- loadingProgress: LoadingProgress | null;
133
- /** Whether generating a response */
134
- isGenerating: boolean;
135
- /** Current thinking content (streaming) */
136
- thinking: string;
137
- /** Stop generation */
138
- stop: () => void;
139
- /** Clear all messages */
140
- clear: () => void;
141
- /** Current tokens per second */
142
- tps: number;
143
- /** Whether model is ready */
144
- isReady: boolean;
145
- /** Error message if any */
146
- error: string | null;
147
- /** Load the model (only needed if lazy: true) */
148
- load: () => void;
149
- };
150
- /**
151
- * React hook for chat with local LLM
152
- *
153
- * @example
154
- * ```tsx
155
- * import { useChat } from "@tryhamster/gerbil/browser";
156
- *
157
- * function Chat() {
158
- * const { messages, input, setInput, handleSubmit, isLoading, isGenerating } = useChat();
159
- *
160
- * if (isLoading) return <div>Loading model...</div>;
161
- *
162
- * return (
163
- * <div>
164
- * {messages.map(m => (
165
- * <div key={m.id}>{m.role}: {m.content}</div>
166
- * ))}
167
- * <form onSubmit={handleSubmit}>
168
- * <input value={input} onChange={e => setInput(e.target.value)} />
169
- * <button disabled={isGenerating}>Send</button>
170
- * </form>
171
- * </div>
172
- * );
173
- * }
174
- * ```
175
- */
176
- declare function useChat(options?: UseChatOptions): UseChatReturn;
177
- /** Options for useCompletion hook */
178
- type UseCompletionOptions = {
179
- /** Model ID (default: "qwen3-0.6b") */
180
- model?: string;
181
- /** System prompt */
182
- system?: string;
183
- /** Enable thinking mode (Qwen3) */
184
- thinking?: boolean;
185
- /** Max tokens */
186
- maxTokens?: number;
187
- /** Temperature (0-2) */
188
- temperature?: number;
189
- /** Auto-load model on mount (default: false - loads on first complete() or load()) */
190
- autoLoad?: boolean;
191
- /** Called when model is ready */
192
- onReady?: () => void;
193
- /** Called on error */
194
- onError?: (error: string) => void;
195
- };
196
- /** Return type for useCompletion hook */
197
- type UseCompletionReturn = {
198
- /** Generated completion */
199
- completion: string;
200
- /** Thinking content (if enabled) */
201
- thinking: string;
202
- /** Generate completion */
203
- complete: (prompt: string) => Promise<string>;
204
- /** Whether model is loading */
205
- isLoading: boolean;
206
- /** Loading progress */
207
- loadingProgress: LoadingProgress | null;
208
- /** Whether generating */
209
- isGenerating: boolean;
210
- /** Stop generation */
211
- stop: () => void;
212
- /** Current tokens per second */
213
- tps: number;
214
- /** Whether model is ready */
215
- isReady: boolean;
216
- /** Error message if any */
217
- error: string | null;
218
- /** Load the model (only needed if lazy: true) */
219
- load: () => void;
220
- };
221
- /**
222
- * React hook for text completion with local LLM
223
- *
224
- * @example
225
- * ```tsx
226
- * import { useCompletion } from "@tryhamster/gerbil/browser";
227
- *
228
- * function App() {
229
- * const { complete, completion, isLoading, isGenerating } = useCompletion();
230
- *
231
- * if (isLoading) return <div>Loading...</div>;
232
- *
233
- * return (
234
- * <div>
235
- * <button onClick={() => complete("Write a haiku")}>Generate</button>
236
- * <p>{completion}</p>
237
- * </div>
238
- * );
239
- * }
240
- * ```
241
- */
242
- declare function useCompletion(options?: UseCompletionOptions): UseCompletionReturn;
243
- /**
244
- * Check if WebGPU is supported
245
- */
246
- declare function isWebGPUSupported(): boolean;
247
- /**
248
- * Get WebGPU adapter info
249
- */
250
- declare function getWebGPUInfo(): Promise<{
251
- supported: boolean;
252
- adapter?: string;
253
- device?: string;
254
- } | null>;
255
- declare const _default: {
256
- isWebGPUSupported: typeof isWebGPUSupported;
257
- getWebGPUInfo: typeof getWebGPUInfo;
258
- createGerbilWorker: typeof createGerbilWorker;
259
- };
260
- //#endregion
261
- export { BUILTIN_MODELS, CacheConfig, EmbedOptions, EmbedResult, FallbackConfig, GenerateOptions, GenerateResult, GenerateStreamOptions, GerbilConfig, GerbilModelSettings, GerbilProviderSettings, GerbilWorker, GerbilWorkerOptions, JsonOptions, LoadOptions, LoadingProgress, Message, ModelConfig, ModelSource, ModelStats, ProgressInfo, SessionStats, SystemInfo, UseChatOptions, UseChatReturn, UseCompletionOptions, UseCompletionReturn, WorkerComplete, WorkerProgress, WorkerToken, createGerbilWorker, _default as default, getWebGPUInfo, isWebGPUSupported, useChat, useCompletion };
262
- //# sourceMappingURL=index.d.mts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.mts","names":[],"sources":["../../src/browser/index.ts"],"sourcesContent":[],"mappings":";;;;;KA6DY,cAAA;;;;;;;;;;;KAYA,WAAA;;;;;;;KAQA,cAAA;;;;;;;KAQA,mBAAA;;;;0BAIc;;oBAEN;;wBAEI;;;;;;KAOZ,qBAAA;;;;;;;;;;;;;;KAeA,YAAA;;uCAE2B,0BAA0B;;;;;;;;;;;;;;;;iBAqB3C,kBAAA,WAA4B,sBAA2B,QAAQ;;KAwTzE,OAAA;;;;;;;KAQA,eAAA;;;;;;;;;;;KAYA,cAAA;;;;;;;;;;;;oBAYQ;;;;;;;;;KAUR,aAAA;;YAEA;;;;;;;;;;;;mBAUO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA6CH,OAAA,WAAiB,iBAAsB;;KAmQ3C,oBAAA;;;;;;;;;;;;;;;;;;;KAoBA,mBAAA;;;;;;gCAMoB;;;;mBAIb;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAoCH,aAAA,WAAuB,uBAA4B;;;;iBAqMnD,iBAAA,CAAA;;;;iBAUM,aAAA,CAAA,GAAiB;;;;;cAwBtC"}