@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.
Files changed (64) hide show
  1. package/README.md +99 -34
  2. package/dist/browser/index.d.ts +12 -2
  3. package/dist/browser/index.d.ts.map +1 -1
  4. package/dist/browser/index.js +12 -5
  5. package/dist/browser/index.js.map +1 -1
  6. package/dist/cli.mjs +7 -7
  7. package/dist/cli.mjs.map +1 -1
  8. package/dist/frameworks/express.d.mts +1 -1
  9. package/dist/frameworks/express.mjs +1 -1
  10. package/dist/frameworks/fastify.d.mts +1 -1
  11. package/dist/frameworks/fastify.mjs +1 -1
  12. package/dist/frameworks/hono.d.mts +1 -1
  13. package/dist/frameworks/hono.mjs +1 -1
  14. package/dist/frameworks/next.d.mts +3 -3
  15. package/dist/frameworks/next.mjs +1 -1
  16. package/dist/frameworks/react.d.mts +1 -1
  17. package/dist/frameworks/trpc.d.mts +1 -1
  18. package/dist/frameworks/trpc.mjs +1 -1
  19. package/dist/gerbil-B-jMOrnE.mjs +4 -0
  20. package/dist/{gerbil-BT9fCydo.d.mts → gerbil-BetB5xb0.d.mts} +3 -3
  21. package/dist/{gerbil-BT9fCydo.d.mts.map → gerbil-BetB5xb0.d.mts.map} +1 -1
  22. package/dist/{gerbil-BHrJJIa4.mjs → gerbil-CV4VpF4_.mjs} +2 -2
  23. package/dist/{gerbil-BHrJJIa4.mjs.map → gerbil-CV4VpF4_.mjs.map} +1 -1
  24. package/dist/gpu/hooks.d.mts +166 -1
  25. package/dist/gpu/hooks.d.mts.map +1 -1
  26. package/dist/gpu/hooks.mjs +214 -6
  27. package/dist/gpu/hooks.mjs.map +1 -1
  28. package/dist/gpu/index.d.mts +2 -2
  29. package/dist/gpu/index.mjs +2 -2
  30. package/dist/{gpu-33qCAtHW.mjs → gpu-836grvrv.mjs} +178 -3
  31. package/dist/gpu-836grvrv.mjs.map +1 -0
  32. package/dist/index-Dgmb2kE3.d.mts.map +1 -1
  33. package/dist/{index-jEAL2s-A.d.mts → index-DukkJRMj.d.mts} +104 -12
  34. package/dist/index-DukkJRMj.d.mts.map +1 -0
  35. package/dist/index.d.mts +3 -3
  36. package/dist/index.mjs +4 -4
  37. package/dist/integrations/ai-sdk.d.mts +1 -1
  38. package/dist/integrations/ai-sdk.mjs +1 -1
  39. package/dist/integrations/langchain.d.mts +1 -1
  40. package/dist/integrations/langchain.mjs +1 -1
  41. package/dist/integrations/llamaindex.d.mts +1 -1
  42. package/dist/integrations/llamaindex.mjs +1 -1
  43. package/dist/integrations/mcp.d.mts +3 -3
  44. package/dist/integrations/mcp.mjs +4 -4
  45. package/dist/{mcp-1DaMsaBc.mjs → mcp-BVHI5vzD.mjs} +3 -3
  46. package/dist/{mcp-1DaMsaBc.mjs.map → mcp-BVHI5vzD.mjs.map} +1 -1
  47. package/dist/{moonshine-stt-v_P_Ci_m.mjs → moonshine-stt-BzQRl-BO.mjs} +51 -19
  48. package/dist/{moonshine-stt-v_P_Ci_m.mjs.map → moonshine-stt-BzQRl-BO.mjs.map} +1 -1
  49. package/dist/moonshine-stt-CIolM_SX.mjs +4 -0
  50. package/dist/{one-liner-DnQn7HJK.mjs → one-liner-Cn7IEg1G.mjs} +2 -2
  51. package/dist/{one-liner-DnQn7HJK.mjs.map → one-liner-Cn7IEg1G.mjs.map} +1 -1
  52. package/dist/{repl-jV5gcJFA.mjs → repl-CKAf2M7H.mjs} +3 -3
  53. package/dist/skills/index.d.mts +5 -5
  54. package/dist/skills/index.mjs +3 -3
  55. package/dist/{skills-DX8D59UH.mjs → skills-uuU5GONV.mjs} +2 -2
  56. package/dist/{skills-DX8D59UH.mjs.map → skills-uuU5GONV.mjs.map} +1 -1
  57. package/dist/{types-D6FiR_oh.d.mts → types-LlyYILII.d.mts} +7 -3
  58. package/dist/types-LlyYILII.d.mts.map +1 -0
  59. package/package.json +1 -1
  60. package/dist/gerbil-DomNfIr1.mjs +0 -4
  61. package/dist/gpu-33qCAtHW.mjs.map +0 -1
  62. package/dist/index-jEAL2s-A.d.mts.map +0 -1
  63. package/dist/moonshine-stt-BLyVoRpB.mjs +0 -4
  64. package/dist/types-D6FiR_oh.d.mts.map +0 -1
@@ -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
@@ -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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"}
@@ -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