@tryhamster/gerbil 1.0.0 → 1.0.1

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 (62) hide show
  1. package/README.md +85 -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-BT9fCydo.d.mts → gerbil-BetB5xb0.d.mts} +3 -3
  20. package/dist/{gerbil-BT9fCydo.d.mts.map → gerbil-BetB5xb0.d.mts.map} +1 -1
  21. package/dist/gerbil-CTZUa8EZ.mjs +4 -0
  22. package/dist/{gerbil-BHrJJIa4.mjs → gerbil-DNniplr4.mjs} +2 -2
  23. package/dist/{gerbil-BHrJJIa4.mjs.map → gerbil-DNniplr4.mjs.map} +1 -1
  24. package/dist/gpu/hooks.d.mts +122 -2
  25. package/dist/gpu/hooks.d.mts.map +1 -1
  26. package/dist/gpu/hooks.mjs +187 -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-DFuglcEx.mjs} +178 -3
  31. package/dist/gpu-DFuglcEx.mjs.map +1 -0
  32. package/dist/{index-jEAL2s-A.d.mts → index-DukkJRMj.d.mts} +104 -12
  33. package/dist/{index-jEAL2s-A.d.mts.map → index-DukkJRMj.d.mts.map} +1 -1
  34. package/dist/index.d.mts +3 -3
  35. package/dist/index.mjs +4 -4
  36. package/dist/integrations/ai-sdk.d.mts +1 -1
  37. package/dist/integrations/ai-sdk.mjs +1 -1
  38. package/dist/integrations/langchain.d.mts +1 -1
  39. package/dist/integrations/langchain.mjs +1 -1
  40. package/dist/integrations/llamaindex.d.mts +1 -1
  41. package/dist/integrations/llamaindex.mjs +1 -1
  42. package/dist/integrations/mcp.d.mts +3 -3
  43. package/dist/integrations/mcp.mjs +4 -4
  44. package/dist/{mcp-1DaMsaBc.mjs → mcp-D2vvH1Xc.mjs} +3 -3
  45. package/dist/{mcp-1DaMsaBc.mjs.map → mcp-D2vvH1Xc.mjs.map} +1 -1
  46. package/dist/moonshine-stt-17dpP1kr.mjs +4 -0
  47. package/dist/{moonshine-stt-v_P_Ci_m.mjs → moonshine-stt-4ojLtMq7.mjs} +30 -4
  48. package/dist/{moonshine-stt-v_P_Ci_m.mjs.map → moonshine-stt-4ojLtMq7.mjs.map} +1 -1
  49. package/dist/{one-liner-DnQn7HJK.mjs → one-liner-JhdIPxzF.mjs} +2 -2
  50. package/dist/{one-liner-DnQn7HJK.mjs.map → one-liner-JhdIPxzF.mjs.map} +1 -1
  51. package/dist/{repl-jV5gcJFA.mjs → repl-BDRkwPGX.mjs} +3 -3
  52. package/dist/skills/index.d.mts +3 -3
  53. package/dist/skills/index.mjs +3 -3
  54. package/dist/{skills-DX8D59UH.mjs → skills-CU694Dc8.mjs} +2 -2
  55. package/dist/{skills-DX8D59UH.mjs.map → skills-CU694Dc8.mjs.map} +1 -1
  56. package/dist/{types-D6FiR_oh.d.mts → types-LlyYILII.d.mts} +7 -3
  57. package/dist/types-LlyYILII.d.mts.map +1 -0
  58. package/package.json +1 -1
  59. package/dist/gerbil-DomNfIr1.mjs +0 -4
  60. package/dist/gpu-33qCAtHW.mjs.map +0 -1
  61. package/dist/moonshine-stt-BLyVoRpB.mjs +0 -4
  62. package/dist/types-D6FiR_oh.d.mts.map +0 -1
@@ -1,7 +1,92 @@
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";
2
3
 
3
- //#region src/browser/use-engine.d.ts
4
+ //#region src/browser/use-agent.d.ts
4
5
 
6
+ interface UseAgentOptions {
7
+ /** Model repo id to run the agent with. */
8
+ model: string;
9
+ /** Tools the agent may call. */
10
+ tools: AgentTool[];
11
+ /** Max generate → tool → result rounds before giving up (default 5). */
12
+ maxSteps?: number;
13
+ /** Load the model on mount (default false — loads on first run). */
14
+ autoLoad?: boolean;
15
+ }
16
+ interface UseAgentReturn {
17
+ /** Run the agent on a prompt; resolves to the final answer text. */
18
+ run: (prompt: string) => Promise<string>;
19
+ /** The step trace of the most recent run (tool calls, results, final answer). */
20
+ steps: AgentStep[];
21
+ /** Final answer text of the most recent run. */
22
+ answer: string;
23
+ /** True while the agent loop is running. */
24
+ isRunning: boolean;
25
+ /** True once the model is loaded. */
26
+ isReady: boolean;
27
+ /** Load the model explicitly. */
28
+ load: () => Promise<void>;
29
+ /** Clear the steps + answer. */
30
+ reset: () => void;
31
+ /** Load/run error, if any. */
32
+ error: string | null;
33
+ }
34
+ declare function useAgent(options: UseAgentOptions): UseAgentReturn;
35
+ //#endregion
36
+ //#region src/browser/use-autocomplete.d.ts
37
+ /**
38
+ * React hook for debounced inline autocomplete (ghost text).
39
+ *
40
+ * Owns the debounce, in-flight, and stale-response guards so a component only has
41
+ * to render the suggestion and handle accept/dismiss. Built on `useEngine`, so it
42
+ * shares the same reference-counted engine as other hooks.
43
+ *
44
+ * @example
45
+ * ```tsx
46
+ * import { useAutocomplete } from "@tryhamster/gerbil/gpu/hooks";
47
+ *
48
+ * const { suggestion, onInput, accept, dismiss } = useAutocomplete({
49
+ * model: "mlx-community/Qwen3.5-0.8B-4bit",
50
+ * });
51
+ * // <input onChange={(e) => onInput(e.target.value)} />
52
+ * // render `suggestion` as ghost text; Tab → accept(), Esc → dismiss()
53
+ * ```
54
+ */
55
+ interface UseAutocompleteOptions {
56
+ /** Model repo id to autocomplete with. */
57
+ model: string;
58
+ /** Debounce before fetching, in ms (default 550). */
59
+ debounceMs?: number;
60
+ /** Minimum trimmed input length before fetching (default 8). */
61
+ minChars?: number;
62
+ /** Max continuation tokens (default 16). */
63
+ maxTokens?: number;
64
+ /** Sampling temperature (default 0.3). */
65
+ temperature?: number;
66
+ /** Load the model on mount (default false — loads on first request). */
67
+ autoLoad?: boolean;
68
+ }
69
+ interface UseAutocompleteReturn {
70
+ /** Current ghost suggestion (continuation only), or "". */
71
+ suggestion: string;
72
+ /** True while a suggestion is being fetched. */
73
+ isFetching: boolean;
74
+ /** True once the model is loaded. */
75
+ isReady: boolean;
76
+ /** Load the model explicitly. */
77
+ load: () => Promise<void>;
78
+ /** Feed the latest input; schedules a debounced fetch and clears any stale suggestion. */
79
+ onInput: (text: string) => void;
80
+ /** Accept the current suggestion: returns it and clears state. */
81
+ accept: () => string;
82
+ /** Dismiss the current suggestion. */
83
+ dismiss: () => void;
84
+ /** Load/generation error, if any. */
85
+ error: string | null;
86
+ }
87
+ declare function useAutocomplete(options: UseAutocompleteOptions): UseAutocompleteReturn;
88
+ //#endregion
89
+ //#region src/browser/use-engine.d.ts
5
90
  /**
6
91
  * React hook for native WebGPU inference in the browser.
7
92
  *
@@ -36,6 +121,8 @@ import { c as MemorySearchResult, d as RecallOptions, f as RecallResult, m as Se
36
121
  * }
37
122
  * ```
38
123
  */
124
+ type AgentTool$1 = AgentTool;
125
+ type AgentStep$1 = AgentStep;
39
126
  /** A single conversation turn (matches the engine's chat message shape). */
40
127
  interface ChatMessage {
41
128
  role: "system" | "user" | "assistant";
@@ -101,6 +188,35 @@ interface GenerateObjectOptions extends CompleteOptions {
101
188
  interface UseEngineReturn {
102
189
  /** Generate a completion for a prompt. Returns the full text. */
103
190
  complete: (prompt: string | ChatMessage[], options?: CompleteOptions) => Promise<string>;
191
+ /** Inline autocomplete: continue `prefix` with a brief single-line completion. */
192
+ autocomplete: (prefix: string, opts?: {
193
+ maxTokens?: number;
194
+ temperature?: number;
195
+ stop?: string[];
196
+ singleLine?: boolean;
197
+ }) => Promise<string>;
198
+ /** Rewrite `text` in a target tone (or with free-form instructions). */
199
+ rewrite: (text: string, opts?: {
200
+ tone?: string;
201
+ instructions?: string;
202
+ maxTokens?: number;
203
+ temperature?: number;
204
+ }) => Promise<string>;
205
+ /** Agentic tool-calling loop: generate → run tools → repeat until an answer. */
206
+ generateWithTools: (prompt: string | ChatMessage[], opts: {
207
+ tools: AgentTool$1[];
208
+ maxSteps?: number;
209
+ onStep?: (step: AgentStep$1) => void;
210
+ maxTokens?: number;
211
+ sampling?: {
212
+ temperature?: number;
213
+ topK?: number;
214
+ topP?: number;
215
+ };
216
+ }) => Promise<{
217
+ text: string;
218
+ steps: AgentStep$1[];
219
+ }>;
104
220
  /**
105
221
  * Describe an image (image-in → text-out). Requires `enableVision: true`.
106
222
  * `image` may be a data/http(s) URL or pre-decoded RGB pixels.
@@ -382,6 +498,8 @@ interface UseSTTOptions {
382
498
  autoLoad?: boolean;
383
499
  onReady?: () => void;
384
500
  onError?: (error: Error) => void;
501
+ /** Called when a finalized utterance contains no speech (silence/noise). */
502
+ onNoSpeech?: () => void;
385
503
  }
386
504
  interface UseSTTReturn {
387
505
  load: () => Promise<void>;
@@ -398,6 +516,8 @@ interface UseSTTReturn {
398
516
  isTranscribing: boolean;
399
517
  transcript: string;
400
518
  audioSeconds: number | null;
519
+ /** True when the last finalized utterance contained no speech. */
520
+ noSpeech: boolean;
401
521
  error: string | null;
402
522
  }
403
523
  declare function useSTT(options?: UseSTTOptions): UseSTTReturn;
@@ -516,5 +636,5 @@ interface UseVoiceChatReturn {
516
636
  }
517
637
  declare function useVoiceChat(options?: UseVoiceChatOptions): UseVoiceChatReturn;
518
638
  //#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 };
639
+ export { type AgentStep, type AgentTool, type ChatMessage, type ChatStatus, type CompleteOptions, type DescribeImageOptions, type EngineErrorKind, type GenerateObjectOptions, 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
640
  //# 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-agent.ts","../../src/browser/use-autocomplete.ts","../../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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"}
@@ -261,10 +261,11 @@ function useEngine(options = {}) {
261
261
  sampling: { temperature: opts.temperature ?? .7 },
262
262
  systemPrompt: opts.system,
263
263
  stopSequences: opts.stopSequences,
264
- onToken: (token) => {
264
+ onToken: (token, meta) => {
265
265
  if (stoppedRef.current) return;
266
266
  fullText += token;
267
267
  setCompletion(fullText);
268
+ if (meta) setTps(meta.tps);
268
269
  }
269
270
  });
270
271
  setTps(result.tokensPerSecond);
@@ -276,6 +277,21 @@ function useEngine(options = {}) {
276
277
  return fullText;
277
278
  }
278
279
  }, [fail]);
280
+ const autocomplete = useCallback(async (prefix, opts) => {
281
+ const engine = engineRef.current;
282
+ if (!engine) throw new Error("Engine not loaded. Call load() first.");
283
+ return engine.autocomplete(prefix, opts);
284
+ }, []);
285
+ const rewrite = useCallback(async (text, opts) => {
286
+ const engine = engineRef.current;
287
+ if (!engine) throw new Error("Engine not loaded. Call load() first.");
288
+ return engine.rewrite(text, opts);
289
+ }, []);
290
+ const generateWithTools = useCallback((prompt, opts) => {
291
+ const engine = engineRef.current;
292
+ if (!engine) throw new Error("Engine not loaded. Call load() first.");
293
+ return engine.generateWithTools(prompt, opts);
294
+ }, []);
279
295
  const generateObject = useCallback(async (prompt, opts = {}) => {
280
296
  const engine = engineRef.current;
281
297
  if (!engine) throw new Error("Engine not loaded. Call load() first.");
@@ -322,10 +338,11 @@ function useEngine(options = {}) {
322
338
  sampling: { temperature: opts.temperature ?? .7 },
323
339
  systemPrompt: opts.system,
324
340
  stopSequences: opts.stopSequences,
325
- onToken: (token) => {
341
+ onToken: (token, meta) => {
326
342
  if (stoppedRef.current) return;
327
343
  fullText += token;
328
344
  setCompletion(fullText);
345
+ if (meta) setTps(meta.tps);
329
346
  }
330
347
  });
331
348
  setTps(result.tokensPerSecond);
@@ -377,6 +394,9 @@ function useEngine(options = {}) {
377
394
  }, [modelKey]);
378
395
  return {
379
396
  complete,
397
+ autocomplete,
398
+ rewrite,
399
+ generateWithTools,
380
400
  generateObject,
381
401
  describeImage,
382
402
  embed,
@@ -396,6 +416,161 @@ function useEngine(options = {}) {
396
416
  };
397
417
  }
398
418
 
419
+ //#endregion
420
+ //#region src/browser/use-agent.ts
421
+ /**
422
+ * React hook for agentic tool-calling in the browser.
423
+ *
424
+ * Owns the agent loop state (running flag, step trace, final answer) on top of
425
+ * `useEngine().generateWithTools`. You supply the model + tools; the hook runs the
426
+ * generate → call-tool → feed-result loop and exposes the steps for trace UIs.
427
+ *
428
+ * @example
429
+ * ```tsx
430
+ * import { useAgent } from "@tryhamster/gerbil/gpu/hooks";
431
+ *
432
+ * const { run, steps, answer, isRunning } = useAgent({
433
+ * model: "mlx-community/Qwen3.5-0.8B-4bit",
434
+ * tools: [weatherTool],
435
+ * });
436
+ * await run("What's the weather in Paris?");
437
+ * ```
438
+ */
439
+ function useAgent(options) {
440
+ const { model, tools, maxSteps = 5, autoLoad = false } = options;
441
+ const engine = useEngine({
442
+ model,
443
+ autoLoad
444
+ });
445
+ const [steps, setSteps] = useState([]);
446
+ const [answer, setAnswer] = useState("");
447
+ const [isRunning, setIsRunning] = useState(false);
448
+ const toolsRef = useRef(tools);
449
+ toolsRef.current = tools;
450
+ const run = useCallback(async (prompt) => {
451
+ setIsRunning(true);
452
+ setSteps([]);
453
+ setAnswer("");
454
+ try {
455
+ if (!engine.isReady) await engine.load();
456
+ const { text } = await engine.generateWithTools(prompt, {
457
+ tools: toolsRef.current,
458
+ maxSteps,
459
+ onStep: (step) => setSteps((prev) => [...prev, step])
460
+ });
461
+ setAnswer(text);
462
+ return text;
463
+ } finally {
464
+ setIsRunning(false);
465
+ }
466
+ }, [engine, maxSteps]);
467
+ const reset = useCallback(() => {
468
+ setSteps([]);
469
+ setAnswer("");
470
+ }, []);
471
+ return {
472
+ run,
473
+ steps,
474
+ answer,
475
+ isRunning,
476
+ isReady: engine.isReady,
477
+ load: engine.load,
478
+ reset,
479
+ error: engine.error
480
+ };
481
+ }
482
+
483
+ //#endregion
484
+ //#region src/browser/use-autocomplete.ts
485
+ /**
486
+ * React hook for debounced inline autocomplete (ghost text).
487
+ *
488
+ * Owns the debounce, in-flight, and stale-response guards so a component only has
489
+ * to render the suggestion and handle accept/dismiss. Built on `useEngine`, so it
490
+ * shares the same reference-counted engine as other hooks.
491
+ *
492
+ * @example
493
+ * ```tsx
494
+ * import { useAutocomplete } from "@tryhamster/gerbil/gpu/hooks";
495
+ *
496
+ * const { suggestion, onInput, accept, dismiss } = useAutocomplete({
497
+ * model: "mlx-community/Qwen3.5-0.8B-4bit",
498
+ * });
499
+ * // <input onChange={(e) => onInput(e.target.value)} />
500
+ * // render `suggestion` as ghost text; Tab → accept(), Esc → dismiss()
501
+ * ```
502
+ */
503
+ function useAutocomplete(options) {
504
+ const { model, debounceMs = 550, minChars = 8, maxTokens = 16, temperature = .3, autoLoad = false } = options;
505
+ const engine = useEngine({
506
+ model,
507
+ autoLoad
508
+ });
509
+ const [suggestion, setSuggestion] = useState("");
510
+ const [isFetching, setIsFetching] = useState(false);
511
+ const debounceRef = useRef(null);
512
+ const inFlightRef = useRef(false);
513
+ const requestedForRef = useRef("");
514
+ const request = useCallback(async (text) => {
515
+ if (inFlightRef.current) return;
516
+ if (text.trim().length < minChars) return;
517
+ inFlightRef.current = true;
518
+ requestedForRef.current = text;
519
+ setIsFetching(true);
520
+ try {
521
+ if (!engine.isReady) await engine.load();
522
+ if (engine.error) return;
523
+ const out = await engine.autocomplete(text, {
524
+ maxTokens,
525
+ temperature
526
+ });
527
+ if (requestedForRef.current !== text) return;
528
+ if (out) setSuggestion(out);
529
+ } finally {
530
+ inFlightRef.current = false;
531
+ setIsFetching(false);
532
+ }
533
+ }, [
534
+ engine,
535
+ minChars,
536
+ maxTokens,
537
+ temperature
538
+ ]);
539
+ const onInput = useCallback((text) => {
540
+ setSuggestion("");
541
+ if (debounceRef.current) clearTimeout(debounceRef.current);
542
+ if (text.trim().length < minChars) return;
543
+ debounceRef.current = setTimeout(() => void request(text), debounceMs);
544
+ }, [
545
+ request,
546
+ minChars,
547
+ debounceMs
548
+ ]);
549
+ const accept = useCallback(() => {
550
+ const s = suggestion;
551
+ setSuggestion("");
552
+ requestedForRef.current = "";
553
+ return s;
554
+ }, [suggestion]);
555
+ const dismiss = useCallback(() => {
556
+ setSuggestion("");
557
+ requestedForRef.current = "";
558
+ }, []);
559
+ useEffect(() => () => {
560
+ if (debounceRef.current) clearTimeout(debounceRef.current);
561
+ }, []);
562
+ return {
563
+ suggestion,
564
+ isFetching,
565
+ isReady: engine.isReady,
566
+ load: engine.load,
567
+ onInput,
568
+ accept,
569
+ dismiss,
570
+ error: engine.error
571
+ };
572
+ }
573
+
399
574
  //#endregion
400
575
  //#region src/browser/use-memory.ts
401
576
  /**
@@ -726,7 +901,7 @@ function toMono16k(channels, inputRate) {
726
901
  return out;
727
902
  }
728
903
  function useSTT(options = {}) {
729
- const { repo = DEFAULT_MODELS.stt, autoLoad = false, onReady, onError } = options;
904
+ const { repo = DEFAULT_MODELS.stt, autoLoad = false, onReady, onError, onNoSpeech } = options;
730
905
  const sttRef = useRef(null);
731
906
  const loadingRef = useRef(false);
732
907
  const mediaStreamRef = useRef(null);
@@ -742,6 +917,7 @@ function useSTT(options = {}) {
742
917
  const [isTranscribing, setIsTranscribing] = useState(false);
743
918
  const [transcript, setTranscript] = useState("");
744
919
  const [audioSeconds, setAudioSeconds] = useState(null);
920
+ const [noSpeech, setNoSpeech] = useState(false);
745
921
  const [error, setError] = useState(null);
746
922
  const load = useCallback(async () => {
747
923
  if (sttRef.current || loadingRef.current) return;
@@ -800,6 +976,7 @@ function useSTT(options = {}) {
800
976
  if (!sttRef.current) return;
801
977
  setTranscript("");
802
978
  setAudioSeconds(null);
979
+ setNoSpeech(false);
803
980
  setError(null);
804
981
  chunksRef.current = [];
805
982
  let stream;
@@ -859,8 +1036,10 @@ function useSTT(options = {}) {
859
1036
  setError(null);
860
1037
  try {
861
1038
  const result = await sttRef.current.transcribe(pcm);
862
- setTranscript(result.text);
863
1039
  setAudioSeconds(result.audioSeconds);
1040
+ setNoSpeech(result.noSpeech);
1041
+ setTranscript(result.text);
1042
+ if (result.noSpeech) onNoSpeech?.();
864
1043
  } catch (e) {
865
1044
  const err = e instanceof Error ? e : new Error(String(e));
866
1045
  setError(err.message);
@@ -871,7 +1050,8 @@ function useSTT(options = {}) {
871
1050
  }, [
872
1051
  isRecording,
873
1052
  teardownCapture,
874
- onError
1053
+ onError,
1054
+ onNoSpeech
875
1055
  ]);
876
1056
  const dispose = useCallback(() => {
877
1057
  teardownCapture();
@@ -904,6 +1084,7 @@ function useSTT(options = {}) {
904
1084
  isTranscribing,
905
1085
  transcript,
906
1086
  audioSeconds,
1087
+ noSpeech,
907
1088
  error
908
1089
  };
909
1090
  }
@@ -1184,5 +1365,5 @@ function useVoiceChat(options = {}) {
1184
1365
  }
1185
1366
 
1186
1367
  //#endregion
1187
- export { KANI_VOICES, useChat, useCompletion, useEmbedding, useEngine, useMemory, useObject, useSTT, useTTS, useText, useVision, useVoiceChat };
1368
+ export { KANI_VOICES, useAgent, useAutocomplete, useChat, useCompletion, useEmbedding, useEngine, useMemory, useObject, useSTT, useTTS, useText, useVision, useVoiceChat };
1188
1369
  //# sourceMappingURL=hooks.mjs.map