@tryhamster/gerbil 1.0.0 → 1.0.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.
- package/README.md +99 -34
- package/dist/browser/index.d.ts +12 -2
- package/dist/browser/index.d.ts.map +1 -1
- package/dist/browser/index.js +12 -5
- package/dist/browser/index.js.map +1 -1
- package/dist/cli.mjs +7 -7
- package/dist/cli.mjs.map +1 -1
- package/dist/frameworks/express.d.mts +1 -1
- package/dist/frameworks/express.mjs +1 -1
- package/dist/frameworks/fastify.d.mts +1 -1
- package/dist/frameworks/fastify.mjs +1 -1
- package/dist/frameworks/hono.d.mts +1 -1
- package/dist/frameworks/hono.mjs +1 -1
- package/dist/frameworks/next.d.mts +3 -3
- package/dist/frameworks/next.mjs +1 -1
- package/dist/frameworks/react.d.mts +1 -1
- package/dist/frameworks/trpc.d.mts +1 -1
- package/dist/frameworks/trpc.mjs +1 -1
- package/dist/gerbil-B-jMOrnE.mjs +4 -0
- package/dist/{gerbil-BT9fCydo.d.mts → gerbil-BetB5xb0.d.mts} +3 -3
- package/dist/{gerbil-BT9fCydo.d.mts.map → gerbil-BetB5xb0.d.mts.map} +1 -1
- package/dist/{gerbil-BHrJJIa4.mjs → gerbil-CV4VpF4_.mjs} +2 -2
- package/dist/{gerbil-BHrJJIa4.mjs.map → gerbil-CV4VpF4_.mjs.map} +1 -1
- package/dist/gpu/hooks.d.mts +166 -1
- package/dist/gpu/hooks.d.mts.map +1 -1
- package/dist/gpu/hooks.mjs +214 -6
- package/dist/gpu/hooks.mjs.map +1 -1
- package/dist/gpu/index.d.mts +2 -2
- package/dist/gpu/index.mjs +2 -2
- package/dist/{gpu-33qCAtHW.mjs → gpu-836grvrv.mjs} +178 -3
- package/dist/gpu-836grvrv.mjs.map +1 -0
- package/dist/index-Dgmb2kE3.d.mts.map +1 -1
- package/dist/{index-jEAL2s-A.d.mts → index-DukkJRMj.d.mts} +104 -12
- package/dist/index-DukkJRMj.d.mts.map +1 -0
- package/dist/index.d.mts +3 -3
- package/dist/index.mjs +4 -4
- package/dist/integrations/ai-sdk.d.mts +1 -1
- package/dist/integrations/ai-sdk.mjs +1 -1
- package/dist/integrations/langchain.d.mts +1 -1
- package/dist/integrations/langchain.mjs +1 -1
- package/dist/integrations/llamaindex.d.mts +1 -1
- package/dist/integrations/llamaindex.mjs +1 -1
- package/dist/integrations/mcp.d.mts +3 -3
- package/dist/integrations/mcp.mjs +4 -4
- package/dist/{mcp-1DaMsaBc.mjs → mcp-BVHI5vzD.mjs} +3 -3
- package/dist/{mcp-1DaMsaBc.mjs.map → mcp-BVHI5vzD.mjs.map} +1 -1
- package/dist/{moonshine-stt-v_P_Ci_m.mjs → moonshine-stt-BzQRl-BO.mjs} +51 -19
- package/dist/{moonshine-stt-v_P_Ci_m.mjs.map → moonshine-stt-BzQRl-BO.mjs.map} +1 -1
- package/dist/moonshine-stt-CIolM_SX.mjs +4 -0
- package/dist/{one-liner-DnQn7HJK.mjs → one-liner-Cn7IEg1G.mjs} +2 -2
- package/dist/{one-liner-DnQn7HJK.mjs.map → one-liner-Cn7IEg1G.mjs.map} +1 -1
- package/dist/{repl-jV5gcJFA.mjs → repl-CKAf2M7H.mjs} +3 -3
- package/dist/skills/index.d.mts +5 -5
- package/dist/skills/index.mjs +3 -3
- package/dist/{skills-DX8D59UH.mjs → skills-uuU5GONV.mjs} +2 -2
- package/dist/{skills-DX8D59UH.mjs.map → skills-uuU5GONV.mjs.map} +1 -1
- package/dist/{types-D6FiR_oh.d.mts → types-LlyYILII.d.mts} +7 -3
- package/dist/types-LlyYILII.d.mts.map +1 -0
- package/package.json +1 -1
- package/dist/gerbil-DomNfIr1.mjs +0 -4
- package/dist/gpu-33qCAtHW.mjs.map +0 -1
- package/dist/index-jEAL2s-A.d.mts.map +0 -1
- package/dist/moonshine-stt-BLyVoRpB.mjs +0 -4
- package/dist/types-D6FiR_oh.d.mts.map +0 -1
package/dist/gpu/hooks.d.mts
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
|
+
import { n as AgentTool, t as AgentStep } from "../index-DukkJRMj.mjs";
|
|
1
2
|
import { c as MemorySearchResult, d as RecallOptions, f as RecallResult, m as SearchOptions, s as MemoryRecord, t as AddOptions } from "../types-DQBe2lFo.mjs";
|
|
3
|
+
import { ReactNode } from "react";
|
|
4
|
+
import * as react_jsx_runtime0 from "react/jsx-runtime";
|
|
2
5
|
|
|
3
6
|
//#region src/browser/use-engine.d.ts
|
|
4
7
|
|
|
@@ -36,6 +39,8 @@ import { c as MemorySearchResult, d as RecallOptions, f as RecallResult, m as Se
|
|
|
36
39
|
* }
|
|
37
40
|
* ```
|
|
38
41
|
*/
|
|
42
|
+
type AgentTool$1 = AgentTool;
|
|
43
|
+
type AgentStep$1 = AgentStep;
|
|
39
44
|
/** A single conversation turn (matches the engine's chat message shape). */
|
|
40
45
|
interface ChatMessage {
|
|
41
46
|
role: "system" | "user" | "assistant";
|
|
@@ -101,6 +106,35 @@ interface GenerateObjectOptions extends CompleteOptions {
|
|
|
101
106
|
interface UseEngineReturn {
|
|
102
107
|
/** Generate a completion for a prompt. Returns the full text. */
|
|
103
108
|
complete: (prompt: string | ChatMessage[], options?: CompleteOptions) => Promise<string>;
|
|
109
|
+
/** Inline autocomplete: continue `prefix` with a brief single-line completion. */
|
|
110
|
+
autocomplete: (prefix: string, opts?: {
|
|
111
|
+
maxTokens?: number;
|
|
112
|
+
temperature?: number;
|
|
113
|
+
stop?: string[];
|
|
114
|
+
singleLine?: boolean;
|
|
115
|
+
}) => Promise<string>;
|
|
116
|
+
/** Rewrite `text` in a target tone (or with free-form instructions). */
|
|
117
|
+
rewrite: (text: string, opts?: {
|
|
118
|
+
tone?: string;
|
|
119
|
+
instructions?: string;
|
|
120
|
+
maxTokens?: number;
|
|
121
|
+
temperature?: number;
|
|
122
|
+
}) => Promise<string>;
|
|
123
|
+
/** Agentic tool-calling loop: generate → run tools → repeat until an answer. */
|
|
124
|
+
generateWithTools: (prompt: string | ChatMessage[], opts: {
|
|
125
|
+
tools: AgentTool$1[];
|
|
126
|
+
maxSteps?: number;
|
|
127
|
+
onStep?: (step: AgentStep$1) => void;
|
|
128
|
+
maxTokens?: number;
|
|
129
|
+
sampling?: {
|
|
130
|
+
temperature?: number;
|
|
131
|
+
topK?: number;
|
|
132
|
+
topP?: number;
|
|
133
|
+
};
|
|
134
|
+
}) => Promise<{
|
|
135
|
+
text: string;
|
|
136
|
+
steps: AgentStep$1[];
|
|
137
|
+
}>;
|
|
104
138
|
/**
|
|
105
139
|
* Describe an image (image-in → text-out). Requires `enableVision: true`.
|
|
106
140
|
* `image` may be a data/http(s) URL or pre-decoded RGB pixels.
|
|
@@ -154,6 +188,133 @@ interface UseEngineReturn {
|
|
|
154
188
|
}
|
|
155
189
|
declare function useEngine(options?: UseEngineOptions): UseEngineReturn;
|
|
156
190
|
//#endregion
|
|
191
|
+
//#region src/browser/gerbil-gate.d.ts
|
|
192
|
+
/** Load state passed to the gate's `fallback` / `errorFallback` render functions. */
|
|
193
|
+
interface GerbilGateState {
|
|
194
|
+
isLoading: boolean;
|
|
195
|
+
/** 0–100 download progress, or `null` if not yet known. */
|
|
196
|
+
progress: number | null;
|
|
197
|
+
/** Human-readable status (e.g. "Downloading model…"), or `null`. */
|
|
198
|
+
status: string | null;
|
|
199
|
+
/** Error message if the engine failed to load, or `null`. */
|
|
200
|
+
error: string | null;
|
|
201
|
+
/** Coarse error kind for UI branching (e.g. "no-webgpu"), or `null`. */
|
|
202
|
+
errorKind: EngineErrorKind | null;
|
|
203
|
+
}
|
|
204
|
+
type GateSlot = ReactNode | ((state: GerbilGateState) => ReactNode);
|
|
205
|
+
interface GerbilGateProps {
|
|
206
|
+
/** HuggingFace repo id to preload (defaults to the built-in text model). */
|
|
207
|
+
model?: string;
|
|
208
|
+
/** Rendered once the engine is ready. */
|
|
209
|
+
children: ReactNode;
|
|
210
|
+
/** Splash / loading UI shown until ready. A node, or a render fn given load state. */
|
|
211
|
+
fallback?: GateSlot;
|
|
212
|
+
/** Rendered if the engine fails to load. Falls back to `fallback` when omitted. */
|
|
213
|
+
errorFallback?: GateSlot;
|
|
214
|
+
/** Load as an embedding model (`embed()` / `similarity()`). */
|
|
215
|
+
embedding?: boolean;
|
|
216
|
+
/** Build the vision encoder so `describeImage()` works (vision checkpoints only). */
|
|
217
|
+
enableVision?: boolean;
|
|
218
|
+
/** Weight dtype (default "auto": int4 on mobile, native on desktop). */
|
|
219
|
+
dtype?: "auto" | "f32" | "q4";
|
|
220
|
+
/** Max sequence length (default: auto). */
|
|
221
|
+
maxSeqLen?: number;
|
|
222
|
+
}
|
|
223
|
+
declare function GerbilGate({
|
|
224
|
+
model,
|
|
225
|
+
children,
|
|
226
|
+
fallback,
|
|
227
|
+
errorFallback,
|
|
228
|
+
embedding,
|
|
229
|
+
enableVision,
|
|
230
|
+
dtype,
|
|
231
|
+
maxSeqLen
|
|
232
|
+
}: GerbilGateProps): react_jsx_runtime0.JSX.Element;
|
|
233
|
+
//#endregion
|
|
234
|
+
//#region src/browser/use-agent.d.ts
|
|
235
|
+
interface UseAgentOptions {
|
|
236
|
+
/** Model repo id to run the agent with. */
|
|
237
|
+
model: string;
|
|
238
|
+
/** Tools the agent may call. */
|
|
239
|
+
tools: AgentTool[];
|
|
240
|
+
/** Max generate → tool → result rounds before giving up (default 5). */
|
|
241
|
+
maxSteps?: number;
|
|
242
|
+
/** Load the model on mount (default false — loads on first run). */
|
|
243
|
+
autoLoad?: boolean;
|
|
244
|
+
}
|
|
245
|
+
interface UseAgentReturn {
|
|
246
|
+
/** Run the agent on a prompt; resolves to the final answer text. */
|
|
247
|
+
run: (prompt: string) => Promise<string>;
|
|
248
|
+
/** The step trace of the most recent run (tool calls, results, final answer). */
|
|
249
|
+
steps: AgentStep[];
|
|
250
|
+
/** Final answer text of the most recent run. */
|
|
251
|
+
answer: string;
|
|
252
|
+
/** True while the agent loop is running. */
|
|
253
|
+
isRunning: boolean;
|
|
254
|
+
/** True once the model is loaded. */
|
|
255
|
+
isReady: boolean;
|
|
256
|
+
/** Load the model explicitly. */
|
|
257
|
+
load: () => Promise<void>;
|
|
258
|
+
/** Clear the steps + answer. */
|
|
259
|
+
reset: () => void;
|
|
260
|
+
/** Load/run error, if any. */
|
|
261
|
+
error: string | null;
|
|
262
|
+
}
|
|
263
|
+
declare function useAgent(options: UseAgentOptions): UseAgentReturn;
|
|
264
|
+
//#endregion
|
|
265
|
+
//#region src/browser/use-autocomplete.d.ts
|
|
266
|
+
/**
|
|
267
|
+
* React hook for debounced inline autocomplete (ghost text).
|
|
268
|
+
*
|
|
269
|
+
* Owns the debounce, in-flight, and stale-response guards so a component only has
|
|
270
|
+
* to render the suggestion and handle accept/dismiss. Built on `useEngine`, so it
|
|
271
|
+
* shares the same reference-counted engine as other hooks.
|
|
272
|
+
*
|
|
273
|
+
* @example
|
|
274
|
+
* ```tsx
|
|
275
|
+
* import { useAutocomplete } from "@tryhamster/gerbil/gpu/hooks";
|
|
276
|
+
*
|
|
277
|
+
* const { suggestion, onInput, accept, dismiss } = useAutocomplete({
|
|
278
|
+
* model: "mlx-community/Qwen3.5-0.8B-4bit",
|
|
279
|
+
* });
|
|
280
|
+
* // <input onChange={(e) => onInput(e.target.value)} />
|
|
281
|
+
* // render `suggestion` as ghost text; Tab → accept(), Esc → dismiss()
|
|
282
|
+
* ```
|
|
283
|
+
*/
|
|
284
|
+
interface UseAutocompleteOptions {
|
|
285
|
+
/** Model repo id to autocomplete with. */
|
|
286
|
+
model: string;
|
|
287
|
+
/** Debounce before fetching, in ms (default 550). */
|
|
288
|
+
debounceMs?: number;
|
|
289
|
+
/** Minimum trimmed input length before fetching (default 8). */
|
|
290
|
+
minChars?: number;
|
|
291
|
+
/** Max continuation tokens (default 16). */
|
|
292
|
+
maxTokens?: number;
|
|
293
|
+
/** Sampling temperature (default 0.3). */
|
|
294
|
+
temperature?: number;
|
|
295
|
+
/** Load the model on mount (default false — loads on first request). */
|
|
296
|
+
autoLoad?: boolean;
|
|
297
|
+
}
|
|
298
|
+
interface UseAutocompleteReturn {
|
|
299
|
+
/** Current ghost suggestion (continuation only), or "". */
|
|
300
|
+
suggestion: string;
|
|
301
|
+
/** True while a suggestion is being fetched. */
|
|
302
|
+
isFetching: boolean;
|
|
303
|
+
/** True once the model is loaded. */
|
|
304
|
+
isReady: boolean;
|
|
305
|
+
/** Load the model explicitly. */
|
|
306
|
+
load: () => Promise<void>;
|
|
307
|
+
/** Feed the latest input; schedules a debounced fetch and clears any stale suggestion. */
|
|
308
|
+
onInput: (text: string) => void;
|
|
309
|
+
/** Accept the current suggestion: returns it and clears state. */
|
|
310
|
+
accept: () => string;
|
|
311
|
+
/** Dismiss the current suggestion. */
|
|
312
|
+
dismiss: () => void;
|
|
313
|
+
/** Load/generation error, if any. */
|
|
314
|
+
error: string | null;
|
|
315
|
+
}
|
|
316
|
+
declare function useAutocomplete(options: UseAutocompleteOptions): UseAutocompleteReturn;
|
|
317
|
+
//#endregion
|
|
157
318
|
//#region src/browser/use-memory.d.ts
|
|
158
319
|
interface UseMemoryOptions {
|
|
159
320
|
/** Embedding model repo (default: the built-in EmbeddingGemma). */
|
|
@@ -382,6 +543,8 @@ interface UseSTTOptions {
|
|
|
382
543
|
autoLoad?: boolean;
|
|
383
544
|
onReady?: () => void;
|
|
384
545
|
onError?: (error: Error) => void;
|
|
546
|
+
/** Called when a finalized utterance contains no speech (silence/noise). */
|
|
547
|
+
onNoSpeech?: () => void;
|
|
385
548
|
}
|
|
386
549
|
interface UseSTTReturn {
|
|
387
550
|
load: () => Promise<void>;
|
|
@@ -398,6 +561,8 @@ interface UseSTTReturn {
|
|
|
398
561
|
isTranscribing: boolean;
|
|
399
562
|
transcript: string;
|
|
400
563
|
audioSeconds: number | null;
|
|
564
|
+
/** True when the last finalized utterance contained no speech. */
|
|
565
|
+
noSpeech: boolean;
|
|
401
566
|
error: string | null;
|
|
402
567
|
}
|
|
403
568
|
declare function useSTT(options?: UseSTTOptions): UseSTTReturn;
|
|
@@ -516,5 +681,5 @@ interface UseVoiceChatReturn {
|
|
|
516
681
|
}
|
|
517
682
|
declare function useVoiceChat(options?: UseVoiceChatOptions): UseVoiceChatReturn;
|
|
518
683
|
//#endregion
|
|
519
|
-
export { type ChatMessage, type ChatStatus, type CompleteOptions, type DescribeImageOptions, type EngineErrorKind, type GenerateObjectOptions, KANI_VOICES, type KaniVoice, type ModalityOptions, type ObjectValidator, type SpeakOptions, type UseChatOptions, type UseChatReturn, type UseCompletionReturn, type UseEmbeddingReturn, type UseEngineOptions, type UseEngineReturn, type UseMemoryOptions, type UseMemoryReturn, type UseObjectReturn, type UseSTTOptions, type UseSTTReturn, type UseTTSOptions, type UseTTSReturn, type UseTextReturn, type UseVisionReturn, type UseVoiceChatOptions, type UseVoiceChatReturn, useChat, useCompletion, useEmbedding, useEngine, useMemory, useObject, useSTT, useTTS, useText, useVision, useVoiceChat };
|
|
684
|
+
export { type AgentStep, type AgentTool, type ChatMessage, type ChatStatus, type CompleteOptions, type DescribeImageOptions, type EngineErrorKind, type GenerateObjectOptions, GerbilGate, type GerbilGateProps, type GerbilGateState, KANI_VOICES, type KaniVoice, type ModalityOptions, type ObjectValidator, type SpeakOptions, type UseAgentOptions, type UseAgentReturn, type UseAutocompleteOptions, type UseAutocompleteReturn, type UseChatOptions, type UseChatReturn, type UseCompletionReturn, type UseEmbeddingReturn, type UseEngineOptions, type UseEngineReturn, type UseMemoryOptions, type UseMemoryReturn, type UseObjectReturn, type UseSTTOptions, type UseSTTReturn, type UseTTSOptions, type UseTTSReturn, type UseTextReturn, type UseVisionReturn, type UseVoiceChatOptions, type UseVoiceChatReturn, useAgent, useAutocomplete, useChat, useCompletion, useEmbedding, useEngine, useMemory, useObject, useSTT, useTTS, useText, useVision, useVoiceChat };
|
|
520
685
|
//# sourceMappingURL=hooks.d.mts.map
|
package/dist/gpu/hooks.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.d.mts","names":[],"sources":["../../src/browser/use-engine.ts","../../src/browser/use-memory.ts","../../src/browser/use-modalities.ts","../../src/browser/use-stt.ts","../../src/browser/use-tts.ts","../../src/browser/use-voice-chat.ts"],"sourcesContent":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"hooks.d.mts","names":[],"sources":["../../src/browser/use-engine.ts","../../src/browser/gerbil-gate.tsx","../../src/browser/use-agent.ts","../../src/browser/use-autocomplete.ts","../../src/browser/use-memory.ts","../../src/browser/use-modalities.ts","../../src/browser/use-stt.ts","../../src/browser/use-tts.ts","../../src/browser/use-voice-chat.ts"],"sourcesContent":[],"mappings":"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"}
|
package/dist/gpu/hooks.mjs
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { n as resolveDefaultRepo, t as DEFAULT_MODELS } from "../defaults-9komdrbY.mjs";
|
|
2
2
|
import { useCallback, useEffect, useRef, useState } from "react";
|
|
3
|
+
import { Fragment, jsx } from "react/jsx-runtime";
|
|
3
4
|
|
|
4
5
|
//#region src/browser/use-engine.ts
|
|
5
6
|
/**
|
|
@@ -261,10 +262,11 @@ function useEngine(options = {}) {
|
|
|
261
262
|
sampling: { temperature: opts.temperature ?? .7 },
|
|
262
263
|
systemPrompt: opts.system,
|
|
263
264
|
stopSequences: opts.stopSequences,
|
|
264
|
-
onToken: (token) => {
|
|
265
|
+
onToken: (token, meta) => {
|
|
265
266
|
if (stoppedRef.current) return;
|
|
266
267
|
fullText += token;
|
|
267
268
|
setCompletion(fullText);
|
|
269
|
+
if (meta) setTps(meta.tps);
|
|
268
270
|
}
|
|
269
271
|
});
|
|
270
272
|
setTps(result.tokensPerSecond);
|
|
@@ -276,6 +278,21 @@ function useEngine(options = {}) {
|
|
|
276
278
|
return fullText;
|
|
277
279
|
}
|
|
278
280
|
}, [fail]);
|
|
281
|
+
const autocomplete = useCallback(async (prefix, opts) => {
|
|
282
|
+
const engine = engineRef.current;
|
|
283
|
+
if (!engine) throw new Error("Engine not loaded. Call load() first.");
|
|
284
|
+
return engine.autocomplete(prefix, opts);
|
|
285
|
+
}, []);
|
|
286
|
+
const rewrite = useCallback(async (text, opts) => {
|
|
287
|
+
const engine = engineRef.current;
|
|
288
|
+
if (!engine) throw new Error("Engine not loaded. Call load() first.");
|
|
289
|
+
return engine.rewrite(text, opts);
|
|
290
|
+
}, []);
|
|
291
|
+
const generateWithTools = useCallback((prompt, opts) => {
|
|
292
|
+
const engine = engineRef.current;
|
|
293
|
+
if (!engine) throw new Error("Engine not loaded. Call load() first.");
|
|
294
|
+
return engine.generateWithTools(prompt, opts);
|
|
295
|
+
}, []);
|
|
279
296
|
const generateObject = useCallback(async (prompt, opts = {}) => {
|
|
280
297
|
const engine = engineRef.current;
|
|
281
298
|
if (!engine) throw new Error("Engine not loaded. Call load() first.");
|
|
@@ -322,10 +339,11 @@ function useEngine(options = {}) {
|
|
|
322
339
|
sampling: { temperature: opts.temperature ?? .7 },
|
|
323
340
|
systemPrompt: opts.system,
|
|
324
341
|
stopSequences: opts.stopSequences,
|
|
325
|
-
onToken: (token) => {
|
|
342
|
+
onToken: (token, meta) => {
|
|
326
343
|
if (stoppedRef.current) return;
|
|
327
344
|
fullText += token;
|
|
328
345
|
setCompletion(fullText);
|
|
346
|
+
if (meta) setTps(meta.tps);
|
|
329
347
|
}
|
|
330
348
|
});
|
|
331
349
|
setTps(result.tokensPerSecond);
|
|
@@ -377,6 +395,9 @@ function useEngine(options = {}) {
|
|
|
377
395
|
}, [modelKey]);
|
|
378
396
|
return {
|
|
379
397
|
complete,
|
|
398
|
+
autocomplete,
|
|
399
|
+
rewrite,
|
|
400
|
+
generateWithTools,
|
|
380
401
|
generateObject,
|
|
381
402
|
describeImage,
|
|
382
403
|
embed,
|
|
@@ -396,6 +417,187 @@ function useEngine(options = {}) {
|
|
|
396
417
|
};
|
|
397
418
|
}
|
|
398
419
|
|
|
420
|
+
//#endregion
|
|
421
|
+
//#region src/browser/gerbil-gate.tsx
|
|
422
|
+
function renderSlot(slot, state) {
|
|
423
|
+
return typeof slot === "function" ? slot(state) : slot;
|
|
424
|
+
}
|
|
425
|
+
function GerbilGate({ model, children, fallback = null, errorFallback, embedding, enableVision, dtype, maxSeqLen }) {
|
|
426
|
+
const engine = useEngine({
|
|
427
|
+
model,
|
|
428
|
+
embedding,
|
|
429
|
+
enableVision,
|
|
430
|
+
dtype,
|
|
431
|
+
maxSeqLen,
|
|
432
|
+
autoLoad: true
|
|
433
|
+
});
|
|
434
|
+
const state = {
|
|
435
|
+
isLoading: engine.isLoading,
|
|
436
|
+
progress: engine.loadingProgress?.progress ?? null,
|
|
437
|
+
status: engine.loadingProgress?.status ?? null,
|
|
438
|
+
error: engine.error,
|
|
439
|
+
errorKind: engine.errorKind
|
|
440
|
+
};
|
|
441
|
+
if (engine.error) return /* @__PURE__ */ jsx(Fragment, { children: renderSlot(errorFallback ?? fallback, state) });
|
|
442
|
+
if (!engine.isReady) return /* @__PURE__ */ jsx(Fragment, { children: renderSlot(fallback, state) });
|
|
443
|
+
return /* @__PURE__ */ jsx(Fragment, { children });
|
|
444
|
+
}
|
|
445
|
+
|
|
446
|
+
//#endregion
|
|
447
|
+
//#region src/browser/use-agent.ts
|
|
448
|
+
/**
|
|
449
|
+
* React hook for agentic tool-calling in the browser.
|
|
450
|
+
*
|
|
451
|
+
* Owns the agent loop state (running flag, step trace, final answer) on top of
|
|
452
|
+
* `useEngine().generateWithTools`. You supply the model + tools; the hook runs the
|
|
453
|
+
* generate → call-tool → feed-result loop and exposes the steps for trace UIs.
|
|
454
|
+
*
|
|
455
|
+
* @example
|
|
456
|
+
* ```tsx
|
|
457
|
+
* import { useAgent } from "@tryhamster/gerbil/gpu/hooks";
|
|
458
|
+
*
|
|
459
|
+
* const { run, steps, answer, isRunning } = useAgent({
|
|
460
|
+
* model: "mlx-community/Qwen3.5-0.8B-4bit",
|
|
461
|
+
* tools: [weatherTool],
|
|
462
|
+
* });
|
|
463
|
+
* await run("What's the weather in Paris?");
|
|
464
|
+
* ```
|
|
465
|
+
*/
|
|
466
|
+
function useAgent(options) {
|
|
467
|
+
const { model, tools, maxSteps = 5, autoLoad = false } = options;
|
|
468
|
+
const engine = useEngine({
|
|
469
|
+
model,
|
|
470
|
+
autoLoad
|
|
471
|
+
});
|
|
472
|
+
const [steps, setSteps] = useState([]);
|
|
473
|
+
const [answer, setAnswer] = useState("");
|
|
474
|
+
const [isRunning, setIsRunning] = useState(false);
|
|
475
|
+
const toolsRef = useRef(tools);
|
|
476
|
+
toolsRef.current = tools;
|
|
477
|
+
const run = useCallback(async (prompt) => {
|
|
478
|
+
setIsRunning(true);
|
|
479
|
+
setSteps([]);
|
|
480
|
+
setAnswer("");
|
|
481
|
+
try {
|
|
482
|
+
if (!engine.isReady) await engine.load();
|
|
483
|
+
const { text } = await engine.generateWithTools(prompt, {
|
|
484
|
+
tools: toolsRef.current,
|
|
485
|
+
maxSteps,
|
|
486
|
+
onStep: (step) => setSteps((prev) => [...prev, step])
|
|
487
|
+
});
|
|
488
|
+
setAnswer(text);
|
|
489
|
+
return text;
|
|
490
|
+
} finally {
|
|
491
|
+
setIsRunning(false);
|
|
492
|
+
}
|
|
493
|
+
}, [engine, maxSteps]);
|
|
494
|
+
const reset = useCallback(() => {
|
|
495
|
+
setSteps([]);
|
|
496
|
+
setAnswer("");
|
|
497
|
+
}, []);
|
|
498
|
+
return {
|
|
499
|
+
run,
|
|
500
|
+
steps,
|
|
501
|
+
answer,
|
|
502
|
+
isRunning,
|
|
503
|
+
isReady: engine.isReady,
|
|
504
|
+
load: engine.load,
|
|
505
|
+
reset,
|
|
506
|
+
error: engine.error
|
|
507
|
+
};
|
|
508
|
+
}
|
|
509
|
+
|
|
510
|
+
//#endregion
|
|
511
|
+
//#region src/browser/use-autocomplete.ts
|
|
512
|
+
/**
|
|
513
|
+
* React hook for debounced inline autocomplete (ghost text).
|
|
514
|
+
*
|
|
515
|
+
* Owns the debounce, in-flight, and stale-response guards so a component only has
|
|
516
|
+
* to render the suggestion and handle accept/dismiss. Built on `useEngine`, so it
|
|
517
|
+
* shares the same reference-counted engine as other hooks.
|
|
518
|
+
*
|
|
519
|
+
* @example
|
|
520
|
+
* ```tsx
|
|
521
|
+
* import { useAutocomplete } from "@tryhamster/gerbil/gpu/hooks";
|
|
522
|
+
*
|
|
523
|
+
* const { suggestion, onInput, accept, dismiss } = useAutocomplete({
|
|
524
|
+
* model: "mlx-community/Qwen3.5-0.8B-4bit",
|
|
525
|
+
* });
|
|
526
|
+
* // <input onChange={(e) => onInput(e.target.value)} />
|
|
527
|
+
* // render `suggestion` as ghost text; Tab → accept(), Esc → dismiss()
|
|
528
|
+
* ```
|
|
529
|
+
*/
|
|
530
|
+
function useAutocomplete(options) {
|
|
531
|
+
const { model, debounceMs = 550, minChars = 8, maxTokens = 16, temperature = .3, autoLoad = false } = options;
|
|
532
|
+
const engine = useEngine({
|
|
533
|
+
model,
|
|
534
|
+
autoLoad
|
|
535
|
+
});
|
|
536
|
+
const [suggestion, setSuggestion] = useState("");
|
|
537
|
+
const [isFetching, setIsFetching] = useState(false);
|
|
538
|
+
const debounceRef = useRef(null);
|
|
539
|
+
const inFlightRef = useRef(false);
|
|
540
|
+
const requestedForRef = useRef("");
|
|
541
|
+
const request = useCallback(async (text) => {
|
|
542
|
+
if (inFlightRef.current) return;
|
|
543
|
+
if (text.trim().length < minChars) return;
|
|
544
|
+
inFlightRef.current = true;
|
|
545
|
+
requestedForRef.current = text;
|
|
546
|
+
setIsFetching(true);
|
|
547
|
+
try {
|
|
548
|
+
if (!engine.isReady) await engine.load();
|
|
549
|
+
if (engine.error) return;
|
|
550
|
+
const out = await engine.autocomplete(text, {
|
|
551
|
+
maxTokens,
|
|
552
|
+
temperature
|
|
553
|
+
});
|
|
554
|
+
if (requestedForRef.current !== text) return;
|
|
555
|
+
if (out) setSuggestion(out);
|
|
556
|
+
} finally {
|
|
557
|
+
inFlightRef.current = false;
|
|
558
|
+
setIsFetching(false);
|
|
559
|
+
}
|
|
560
|
+
}, [
|
|
561
|
+
engine,
|
|
562
|
+
minChars,
|
|
563
|
+
maxTokens,
|
|
564
|
+
temperature
|
|
565
|
+
]);
|
|
566
|
+
const onInput = useCallback((text) => {
|
|
567
|
+
setSuggestion("");
|
|
568
|
+
if (debounceRef.current) clearTimeout(debounceRef.current);
|
|
569
|
+
if (text.trim().length < minChars) return;
|
|
570
|
+
debounceRef.current = setTimeout(() => void request(text), debounceMs);
|
|
571
|
+
}, [
|
|
572
|
+
request,
|
|
573
|
+
minChars,
|
|
574
|
+
debounceMs
|
|
575
|
+
]);
|
|
576
|
+
const accept = useCallback(() => {
|
|
577
|
+
const s = suggestion;
|
|
578
|
+
setSuggestion("");
|
|
579
|
+
requestedForRef.current = "";
|
|
580
|
+
return s;
|
|
581
|
+
}, [suggestion]);
|
|
582
|
+
const dismiss = useCallback(() => {
|
|
583
|
+
setSuggestion("");
|
|
584
|
+
requestedForRef.current = "";
|
|
585
|
+
}, []);
|
|
586
|
+
useEffect(() => () => {
|
|
587
|
+
if (debounceRef.current) clearTimeout(debounceRef.current);
|
|
588
|
+
}, []);
|
|
589
|
+
return {
|
|
590
|
+
suggestion,
|
|
591
|
+
isFetching,
|
|
592
|
+
isReady: engine.isReady,
|
|
593
|
+
load: engine.load,
|
|
594
|
+
onInput,
|
|
595
|
+
accept,
|
|
596
|
+
dismiss,
|
|
597
|
+
error: engine.error
|
|
598
|
+
};
|
|
599
|
+
}
|
|
600
|
+
|
|
399
601
|
//#endregion
|
|
400
602
|
//#region src/browser/use-memory.ts
|
|
401
603
|
/**
|
|
@@ -726,7 +928,7 @@ function toMono16k(channels, inputRate) {
|
|
|
726
928
|
return out;
|
|
727
929
|
}
|
|
728
930
|
function useSTT(options = {}) {
|
|
729
|
-
const { repo = DEFAULT_MODELS.stt, autoLoad = false, onReady, onError } = options;
|
|
931
|
+
const { repo = DEFAULT_MODELS.stt, autoLoad = false, onReady, onError, onNoSpeech } = options;
|
|
730
932
|
const sttRef = useRef(null);
|
|
731
933
|
const loadingRef = useRef(false);
|
|
732
934
|
const mediaStreamRef = useRef(null);
|
|
@@ -742,6 +944,7 @@ function useSTT(options = {}) {
|
|
|
742
944
|
const [isTranscribing, setIsTranscribing] = useState(false);
|
|
743
945
|
const [transcript, setTranscript] = useState("");
|
|
744
946
|
const [audioSeconds, setAudioSeconds] = useState(null);
|
|
947
|
+
const [noSpeech, setNoSpeech] = useState(false);
|
|
745
948
|
const [error, setError] = useState(null);
|
|
746
949
|
const load = useCallback(async () => {
|
|
747
950
|
if (sttRef.current || loadingRef.current) return;
|
|
@@ -800,6 +1003,7 @@ function useSTT(options = {}) {
|
|
|
800
1003
|
if (!sttRef.current) return;
|
|
801
1004
|
setTranscript("");
|
|
802
1005
|
setAudioSeconds(null);
|
|
1006
|
+
setNoSpeech(false);
|
|
803
1007
|
setError(null);
|
|
804
1008
|
chunksRef.current = [];
|
|
805
1009
|
let stream;
|
|
@@ -859,8 +1063,10 @@ function useSTT(options = {}) {
|
|
|
859
1063
|
setError(null);
|
|
860
1064
|
try {
|
|
861
1065
|
const result = await sttRef.current.transcribe(pcm);
|
|
862
|
-
setTranscript(result.text);
|
|
863
1066
|
setAudioSeconds(result.audioSeconds);
|
|
1067
|
+
setNoSpeech(result.noSpeech);
|
|
1068
|
+
setTranscript(result.text);
|
|
1069
|
+
if (result.noSpeech) onNoSpeech?.();
|
|
864
1070
|
} catch (e) {
|
|
865
1071
|
const err = e instanceof Error ? e : new Error(String(e));
|
|
866
1072
|
setError(err.message);
|
|
@@ -871,7 +1077,8 @@ function useSTT(options = {}) {
|
|
|
871
1077
|
}, [
|
|
872
1078
|
isRecording,
|
|
873
1079
|
teardownCapture,
|
|
874
|
-
onError
|
|
1080
|
+
onError,
|
|
1081
|
+
onNoSpeech
|
|
875
1082
|
]);
|
|
876
1083
|
const dispose = useCallback(() => {
|
|
877
1084
|
teardownCapture();
|
|
@@ -904,6 +1111,7 @@ function useSTT(options = {}) {
|
|
|
904
1111
|
isTranscribing,
|
|
905
1112
|
transcript,
|
|
906
1113
|
audioSeconds,
|
|
1114
|
+
noSpeech,
|
|
907
1115
|
error
|
|
908
1116
|
};
|
|
909
1117
|
}
|
|
@@ -1184,5 +1392,5 @@ function useVoiceChat(options = {}) {
|
|
|
1184
1392
|
}
|
|
1185
1393
|
|
|
1186
1394
|
//#endregion
|
|
1187
|
-
export { KANI_VOICES, useChat, useCompletion, useEmbedding, useEngine, useMemory, useObject, useSTT, useTTS, useText, useVision, useVoiceChat };
|
|
1395
|
+
export { GerbilGate, KANI_VOICES, useAgent, useAutocomplete, useChat, useCompletion, useEmbedding, useEngine, useMemory, useObject, useSTT, useTTS, useText, useVision, useVoiceChat };
|
|
1188
1396
|
//# sourceMappingURL=hooks.mjs.map
|