@garrix82/reactgenie-lib 1.3.0

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 (85) hide show
  1. package/.env.example +22 -0
  2. package/.github/workflows/publish.yml +20 -0
  3. package/LICENSE.txt +201 -0
  4. package/README.md +621 -0
  5. package/babel.config.js +29 -0
  6. package/dist/adapters/__tests__/expo-router-adapter.test.d.ts +1 -0
  7. package/dist/adapters/expo-router-adapter.d.ts +16 -0
  8. package/dist/adapters/expo-router-adapter.js +521 -0
  9. package/dist/adapters/navigation-adapter.d.ts +20 -0
  10. package/dist/adapters/navigation-adapter.js +137 -0
  11. package/dist/audio-visualizer.d.ts +14 -0
  12. package/dist/audio-visualizer.js +123 -0
  13. package/dist/current-selection.d.ts +27 -0
  14. package/dist/current-selection.js +94 -0
  15. package/dist/errors.d.ts +19 -0
  16. package/dist/errors.js +37 -0
  17. package/dist/genie/DateTime.d.ts +66 -0
  18. package/dist/genie/DateTime.js +399 -0
  19. package/dist/genie/TimeDelta.d.ts +35 -0
  20. package/dist/genie/TimeDelta.js +169 -0
  21. package/dist/genie-view-wrapper.d.ts +1 -0
  22. package/dist/genie-view-wrapper.js +377 -0
  23. package/dist/hooks/__tests__/useSpeechRecognition.test.d.ts +1 -0
  24. package/dist/hooks/useSpeechRecognition.d.ts +28 -0
  25. package/dist/hooks/useSpeechRecognition.js +118 -0
  26. package/dist/index.d.ts +30 -0
  27. package/dist/index.js +469 -0
  28. package/dist/logger.d.ts +23 -0
  29. package/dist/logger.js +597 -0
  30. package/dist/logger.remote.test.d.ts +0 -0
  31. package/dist/modality-provider-v2.d.ts +28 -0
  32. package/dist/modality-provider-v2.js +1321 -0
  33. package/dist/modality-provider.d.ts +22 -0
  34. package/dist/modality-provider.js +373 -0
  35. package/dist/native-visibility.d.ts +28 -0
  36. package/dist/native-visibility.js +50 -0
  37. package/dist/platform/VoiceRecognitionBar.d.ts +17 -0
  38. package/dist/platform/VoiceRecognitionBar.js +332 -0
  39. package/dist/platform/components.d.ts +32 -0
  40. package/dist/platform/components.js +351 -0
  41. package/dist/platform/events.d.ts +31 -0
  42. package/dist/platform/events.js +274 -0
  43. package/dist/platform/index.d.ts +3 -0
  44. package/dist/platform/index.js +39 -0
  45. package/dist/platform/types.d.ts +79 -0
  46. package/dist/platform/types.js +97 -0
  47. package/dist/react-decorators.d.ts +87 -0
  48. package/dist/react-decorators.js +368 -0
  49. package/dist/shared-store.d.ts +74 -0
  50. package/dist/shared-store.js +589 -0
  51. package/dist/speech-recognition/__tests__/speech-recognition-groq-transport.test.d.ts +1 -0
  52. package/dist/speech-recognition/__tests__/speech-recognition-native.test.d.ts +1 -0
  53. package/dist/speech-recognition/__tests__/speech-recognition-openai-native.test.d.ts +1 -0
  54. package/dist/speech-recognition/__tests__/speech-recognition-openai.test.d.ts +1 -0
  55. package/dist/speech-recognition/__tests__/speech-recognition-unified-import.test.d.ts +0 -0
  56. package/dist/speech-recognition/__tests__/speech-recognition-unified.test.d.ts +1 -0
  57. package/dist/speech-recognition/speech-recognition-groq.d.ts +21 -0
  58. package/dist/speech-recognition/speech-recognition-groq.js +409 -0
  59. package/dist/speech-recognition/speech-recognition-mlx.d.ts +15 -0
  60. package/dist/speech-recognition/speech-recognition-mlx.js +393 -0
  61. package/dist/speech-recognition/speech-recognition-native.d.ts +24 -0
  62. package/dist/speech-recognition/speech-recognition-native.js +632 -0
  63. package/dist/speech-recognition/speech-recognition-openai-native.d.ts +40 -0
  64. package/dist/speech-recognition/speech-recognition-openai-native.js +653 -0
  65. package/dist/speech-recognition/speech-recognition-openai.d.ts +39 -0
  66. package/dist/speech-recognition/speech-recognition-openai.js +718 -0
  67. package/dist/speech-recognition/speech-recognition-unified.d.ts +93 -0
  68. package/dist/speech-recognition/speech-recognition-unified.js +589 -0
  69. package/dist/speech-recognition/utils/groq-transcription.d.ts +41 -0
  70. package/dist/speech-recognition/utils/groq-transcription.js +382 -0
  71. package/dist/speech-recognition.d.ts +7 -0
  72. package/dist/speech-recognition.js +61 -0
  73. package/dist/voice-pipeline-telemetry.d.ts +26 -0
  74. package/dist/voice-pipeline-telemetry.js +15 -0
  75. package/garrix82-reactgenie-lib-1.3.0.tgz +0 -0
  76. package/metro/index.js +3 -0
  77. package/metro/with-genie-registry.js +47 -0
  78. package/package.json +111 -0
  79. package/scripts/dry-run.js +23 -0
  80. package/scripts/generate-genie-registry.js +278 -0
  81. package/scripts/log-file-test.js +51 -0
  82. package/scripts/parse.js +26 -0
  83. package/scripts/prompt.js +19 -0
  84. package/scripts/set-script.js +200 -0
  85. package/tsconfig.json +36 -0
@@ -0,0 +1,28 @@
1
+ export declare enum SpeechState {
2
+ Idle = "idle",
3
+ Listening = "listening",
4
+ Processing = "processing"
5
+ }
6
+ export interface SpeechRecognitionState {
7
+ state: SpeechState;
8
+ isListening: boolean;
9
+ isProcessing: boolean;
10
+ transcript: string;
11
+ interimTranscript: string;
12
+ audioLevel: number;
13
+ waveformPreview: number[];
14
+ }
15
+ export interface SpeechRecognitionControls {
16
+ startListening: () => void;
17
+ stopListening: () => void;
18
+ toggleListening: () => void;
19
+ clearTranscript: () => void;
20
+ setInterimTranscript: (text: string) => void;
21
+ setTranscript: (text: string) => void;
22
+ setAudioLevel: (level: number) => void;
23
+ setWaveformPreview: (waveform: number[]) => void;
24
+ setProcessing: (processing: boolean) => void;
25
+ }
26
+ export interface UseSpeechRecognitionReturn extends SpeechRecognitionState, SpeechRecognitionControls {
27
+ }
28
+ export declare function useSpeechRecognition(): UseSpeechRecognitionReturn;
@@ -0,0 +1,118 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.SpeechState = void 0;
7
+ exports.useSpeechRecognition = useSpeechRecognition;
8
+ var _react = require("react");
9
+ /**
10
+ * useSpeechRecognition Hook
11
+ *
12
+ * Core hook for speech recognition state management.
13
+ * Provides unified API for both ReactGenie default UI and custom implementations.
14
+ *
15
+ * Usage:
16
+ * ```tsx
17
+ * const {
18
+ * isListening,
19
+ * isProcessing,
20
+ * transcript,
21
+ * interimTranscript,
22
+ * audioLevel,
23
+ * startListening,
24
+ * stopListening,
25
+ * toggleListening
26
+ * } = useSpeechRecognition();
27
+ * ```
28
+ */
29
+ let SpeechState = exports.SpeechState = /*#__PURE__*/function (SpeechState) {
30
+ SpeechState["Idle"] = "idle";
31
+ SpeechState["Listening"] = "listening";
32
+ SpeechState["Processing"] = "processing";
33
+ return SpeechState;
34
+ }({});
35
+ /**
36
+ * Hook for managing speech recognition state
37
+ * Decouples UI from speech logic, allowing custom UI implementations
38
+ */
39
+ function useSpeechRecognition() {
40
+ const [state, setState] = (0, _react.useState)(SpeechState.Idle);
41
+ const [transcript, setTranscriptState] = (0, _react.useState)('');
42
+ const [interimTranscript, setInterimTranscriptState] = (0, _react.useState)('');
43
+ const [audioLevel, setAudioLevelState] = (0, _react.useState)(0);
44
+ const [waveformPreview, setWaveformPreviewState] = (0, _react.useState)([]);
45
+ const isListening = state === SpeechState.Listening;
46
+ const isProcessing = state === SpeechState.Processing;
47
+ const startListening = (0, _react.useCallback)(() => {
48
+ setState(SpeechState.Listening);
49
+ setTranscriptState('');
50
+ setInterimTranscriptState('');
51
+ setWaveformPreviewState([]);
52
+ }, []);
53
+ const stopListening = (0, _react.useCallback)(() => {
54
+ setState(SpeechState.Idle);
55
+ setInterimTranscriptState('');
56
+ setWaveformPreviewState([]);
57
+ }, []);
58
+ const toggleListening = (0, _react.useCallback)(() => {
59
+ if (isListening || isProcessing) {
60
+ stopListening();
61
+ } else {
62
+ startListening();
63
+ }
64
+ }, [isListening, isProcessing, startListening, stopListening]);
65
+ const clearTranscript = (0, _react.useCallback)(() => {
66
+ setTranscriptState('');
67
+ setInterimTranscriptState('');
68
+ setWaveformPreviewState([]);
69
+ }, []);
70
+ const setInterimTranscript = (0, _react.useCallback)(text => {
71
+ setInterimTranscriptState(text);
72
+ }, []);
73
+ const setTranscript = (0, _react.useCallback)(text => {
74
+ setTranscriptState(text);
75
+ }, []);
76
+ const setAudioLevel = (0, _react.useCallback)(level => {
77
+ setAudioLevelState(level);
78
+ }, []);
79
+ const setWaveformPreview = (0, _react.useCallback)(waveform => {
80
+ const next = Array.isArray(waveform) ? waveform : [];
81
+ setWaveformPreviewState(previous => {
82
+ if (previous === next) return previous;
83
+ if (previous.length === next.length) {
84
+ const isEqual = previous.every((value, index) => value === next[index]);
85
+ if (isEqual) return previous;
86
+ }
87
+ return next;
88
+ });
89
+ }, []);
90
+ const setProcessing = (0, _react.useCallback)(processing => {
91
+ if (processing) {
92
+ setState(SpeechState.Processing);
93
+ setInterimTranscriptState('');
94
+ setWaveformPreviewState([]);
95
+ return;
96
+ }
97
+ setState(SpeechState.Idle);
98
+ }, []);
99
+ return {
100
+ state,
101
+ isListening,
102
+ isProcessing,
103
+ transcript,
104
+ interimTranscript,
105
+ audioLevel,
106
+ waveformPreview,
107
+ startListening,
108
+ stopListening,
109
+ toggleListening,
110
+ clearTranscript,
111
+ setInterimTranscript,
112
+ setTranscript,
113
+ setAudioLevel,
114
+ setWaveformPreview,
115
+ setProcessing
116
+ };
117
+ }
118
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJyZXF1aXJlIiwiU3BlZWNoU3RhdGUiLCJleHBvcnRzIiwidXNlU3BlZWNoUmVjb2duaXRpb24iLCJzdGF0ZSIsInNldFN0YXRlIiwidXNlU3RhdGUiLCJJZGxlIiwidHJhbnNjcmlwdCIsInNldFRyYW5zY3JpcHRTdGF0ZSIsImludGVyaW1UcmFuc2NyaXB0Iiwic2V0SW50ZXJpbVRyYW5zY3JpcHRTdGF0ZSIsImF1ZGlvTGV2ZWwiLCJzZXRBdWRpb0xldmVsU3RhdGUiLCJ3YXZlZm9ybVByZXZpZXciLCJzZXRXYXZlZm9ybVByZXZpZXdTdGF0ZSIsImlzTGlzdGVuaW5nIiwiTGlzdGVuaW5nIiwiaXNQcm9jZXNzaW5nIiwiUHJvY2Vzc2luZyIsInN0YXJ0TGlzdGVuaW5nIiwidXNlQ2FsbGJhY2siLCJzdG9wTGlzdGVuaW5nIiwidG9nZ2xlTGlzdGVuaW5nIiwiY2xlYXJUcmFuc2NyaXB0Iiwic2V0SW50ZXJpbVRyYW5zY3JpcHQiLCJ0ZXh0Iiwic2V0VHJhbnNjcmlwdCIsInNldEF1ZGlvTGV2ZWwiLCJsZXZlbCIsInNldFdhdmVmb3JtUHJldmlldyIsIndhdmVmb3JtIiwibmV4dCIsIkFycmF5IiwiaXNBcnJheSIsInByZXZpb3VzIiwibGVuZ3RoIiwiaXNFcXVhbCIsImV2ZXJ5IiwidmFsdWUiLCJpbmRleCIsInNldFByb2Nlc3NpbmciLCJwcm9jZXNzaW5nIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hvb2tzL3VzZVNwZWVjaFJlY29nbml0aW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogdXNlU3BlZWNoUmVjb2duaXRpb24gSG9va1xuICogXG4gKiBDb3JlIGhvb2sgZm9yIHNwZWVjaCByZWNvZ25pdGlvbiBzdGF0ZSBtYW5hZ2VtZW50LlxuICogUHJvdmlkZXMgdW5pZmllZCBBUEkgZm9yIGJvdGggUmVhY3RHZW5pZSBkZWZhdWx0IFVJIGFuZCBjdXN0b20gaW1wbGVtZW50YXRpb25zLlxuICogXG4gKiBVc2FnZTpcbiAqIGBgYHRzeFxuICogY29uc3Qge1xuICogICBpc0xpc3RlbmluZyxcbiAqICAgaXNQcm9jZXNzaW5nLFxuICogICB0cmFuc2NyaXB0LFxuICogICBpbnRlcmltVHJhbnNjcmlwdCxcbiAqICAgYXVkaW9MZXZlbCxcbiAqICAgc3RhcnRMaXN0ZW5pbmcsXG4gKiAgIHN0b3BMaXN0ZW5pbmcsXG4gKiAgIHRvZ2dsZUxpc3RlbmluZ1xuICogfSA9IHVzZVNwZWVjaFJlY29nbml0aW9uKCk7XG4gKiBgYGBcbiAqL1xuXG5pbXBvcnQgeyB1c2VTdGF0ZSwgdXNlQ2FsbGJhY2sgfSBmcm9tICdyZWFjdCc7XG5cbmV4cG9ydCBlbnVtIFNwZWVjaFN0YXRlIHtcbiAgSWRsZSA9ICdpZGxlJyxcbiAgTGlzdGVuaW5nID0gJ2xpc3RlbmluZycsXG4gIFByb2Nlc3NpbmcgPSAncHJvY2Vzc2luZycsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3BlZWNoUmVjb2duaXRpb25TdGF0ZSB7XG4gIC8qKiBDdXJyZW50IHNwZWVjaCByZWNvZ25pdGlvbiBzdGF0ZSAqL1xuICBzdGF0ZTogU3BlZWNoU3RhdGU7XG4gIC8qKiBJcyBtaWNyb3Bob25lIGFjdGl2ZWx5IGxpc3RlbmluZyAqL1xuICBpc0xpc3RlbmluZzogYm9vbGVhbjtcbiAgLyoqIElzIHByb2Nlc3NpbmcgdHJhbnNjcmlwdCAoc2VuZGluZyB0byBMTE0pICovXG4gIGlzUHJvY2Vzc2luZzogYm9vbGVhbjtcbiAgLyoqIEZpbmFsIHRyYW5zY3JpcHQgcmVzdWx0ICovXG4gIHRyYW5zY3JpcHQ6IHN0cmluZztcbiAgLyoqIEludGVyaW0gdHJhbnNjcmlwdCAod2hpbGUgc3BlYWtpbmcpICovXG4gIGludGVyaW1UcmFuc2NyaXB0OiBzdHJpbmc7XG4gIC8qKiBBdWRpbyBsZXZlbCBmb3IgdmlzdWFsaXphdGlvbiAoMC0xKSAqL1xuICBhdWRpb0xldmVsOiBudW1iZXI7XG4gIC8qKiBOb3JtYWxpemVkIHdhdmVmb3JtIGJhcnMgZm9yIG1pYy1idXR0b24gdmlzdWFsaXphdGlvbiAqL1xuICB3YXZlZm9ybVByZXZpZXc6IG51bWJlcltdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNwZWVjaFJlY29nbml0aW9uQ29udHJvbHMge1xuICAvKiogU3RhcnQgbGlzdGVuaW5nICovXG4gIHN0YXJ0TGlzdGVuaW5nOiAoKSA9PiB2b2lkO1xuICAvKiogU3RvcCBsaXN0ZW5pbmcgKi9cbiAgc3RvcExpc3RlbmluZzogKCkgPT4gdm9pZDtcbiAgLyoqIFRvZ2dsZSBsaXN0ZW5pbmcgc3RhdGUgKi9cbiAgdG9nZ2xlTGlzdGVuaW5nOiAoKSA9PiB2b2lkO1xuICAvKiogQ2xlYXIgdHJhbnNjcmlwdCAqL1xuICBjbGVhclRyYW5zY3JpcHQ6ICgpID0+IHZvaWQ7XG4gIC8qKiBTZXQgaW50ZXJpbSB0cmFuc2NyaXB0IChpbnRlcm5hbCkgKi9cbiAgc2V0SW50ZXJpbVRyYW5zY3JpcHQ6ICh0ZXh0OiBzdHJpbmcpID0+IHZvaWQ7XG4gIC8qKiBTZXQgZmluYWwgdHJhbnNjcmlwdCAoaW50ZXJuYWwpICovXG4gIHNldFRyYW5zY3JpcHQ6ICh0ZXh0OiBzdHJpbmcpID0+IHZvaWQ7XG4gIC8qKiBTZXQgYXVkaW8gbGV2ZWwgKGludGVybmFsKSAqL1xuICBzZXRBdWRpb0xldmVsOiAobGV2ZWw6IG51bWJlcikgPT4gdm9pZDtcbiAgLyoqIFNldCB3YXZlZm9ybSBwcmV2aWV3IGJhcnMgKGludGVybmFsKSAqL1xuICBzZXRXYXZlZm9ybVByZXZpZXc6ICh3YXZlZm9ybTogbnVtYmVyW10pID0+IHZvaWQ7XG4gIC8qKiBTZXQgcHJvY2Vzc2luZyBzdGF0ZSAoaW50ZXJuYWwpICovXG4gIHNldFByb2Nlc3Npbmc6IChwcm9jZXNzaW5nOiBib29sZWFuKSA9PiB2b2lkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVzZVNwZWVjaFJlY29nbml0aW9uUmV0dXJuIGV4dGVuZHMgU3BlZWNoUmVjb2duaXRpb25TdGF0ZSwgU3BlZWNoUmVjb2duaXRpb25Db250cm9scyB7fVxuXG4vKipcbiAqIEhvb2sgZm9yIG1hbmFnaW5nIHNwZWVjaCByZWNvZ25pdGlvbiBzdGF0ZVxuICogRGVjb3VwbGVzIFVJIGZyb20gc3BlZWNoIGxvZ2ljLCBhbGxvd2luZyBjdXN0b20gVUkgaW1wbGVtZW50YXRpb25zXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VTcGVlY2hSZWNvZ25pdGlvbigpOiBVc2VTcGVlY2hSZWNvZ25pdGlvblJldHVybiB7XG4gIGNvbnN0IFtzdGF0ZSwgc2V0U3RhdGVdID0gdXNlU3RhdGU8U3BlZWNoU3RhdGU+KFNwZWVjaFN0YXRlLklkbGUpO1xuICBjb25zdCBbdHJhbnNjcmlwdCwgc2V0VHJhbnNjcmlwdFN0YXRlXSA9IHVzZVN0YXRlPHN0cmluZz4oJycpO1xuICBjb25zdCBbaW50ZXJpbVRyYW5zY3JpcHQsIHNldEludGVyaW1UcmFuc2NyaXB0U3RhdGVdID0gdXNlU3RhdGU8c3RyaW5nPignJyk7XG4gIGNvbnN0IFthdWRpb0xldmVsLCBzZXRBdWRpb0xldmVsU3RhdGVdID0gdXNlU3RhdGU8bnVtYmVyPigwKTtcbiAgY29uc3QgW3dhdmVmb3JtUHJldmlldywgc2V0V2F2ZWZvcm1QcmV2aWV3U3RhdGVdID0gdXNlU3RhdGU8bnVtYmVyW10+KFtdKTtcbiAgXG4gIGNvbnN0IGlzTGlzdGVuaW5nID0gc3RhdGUgPT09IFNwZWVjaFN0YXRlLkxpc3RlbmluZztcbiAgY29uc3QgaXNQcm9jZXNzaW5nID0gc3RhdGUgPT09IFNwZWVjaFN0YXRlLlByb2Nlc3Npbmc7XG5cbiAgY29uc3Qgc3RhcnRMaXN0ZW5pbmcgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgc2V0U3RhdGUoU3BlZWNoU3RhdGUuTGlzdGVuaW5nKTtcbiAgICBzZXRUcmFuc2NyaXB0U3RhdGUoJycpO1xuICAgIHNldEludGVyaW1UcmFuc2NyaXB0U3RhdGUoJycpO1xuICAgIHNldFdhdmVmb3JtUHJldmlld1N0YXRlKFtdKTtcbiAgfSwgW10pO1xuXG4gIGNvbnN0IHN0b3BMaXN0ZW5pbmcgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgc2V0U3RhdGUoU3BlZWNoU3RhdGUuSWRsZSk7XG4gICAgc2V0SW50ZXJpbVRyYW5zY3JpcHRTdGF0ZSgnJyk7XG4gICAgc2V0V2F2ZWZvcm1QcmV2aWV3U3RhdGUoW10pO1xuICB9LCBbXSk7XG5cbiAgY29uc3QgdG9nZ2xlTGlzdGVuaW5nID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGlmIChpc0xpc3RlbmluZyB8fCBpc1Byb2Nlc3NpbmcpIHtcbiAgICAgIHN0b3BMaXN0ZW5pbmcoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc3RhcnRMaXN0ZW5pbmcoKTtcbiAgICB9XG4gIH0sIFtpc0xpc3RlbmluZywgaXNQcm9jZXNzaW5nLCBzdGFydExpc3RlbmluZywgc3RvcExpc3RlbmluZ10pO1xuXG4gIGNvbnN0IGNsZWFyVHJhbnNjcmlwdCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBzZXRUcmFuc2NyaXB0U3RhdGUoJycpO1xuICAgIHNldEludGVyaW1UcmFuc2NyaXB0U3RhdGUoJycpO1xuICAgIHNldFdhdmVmb3JtUHJldmlld1N0YXRlKFtdKTtcbiAgfSwgW10pO1xuXG4gIGNvbnN0IHNldEludGVyaW1UcmFuc2NyaXB0ID0gdXNlQ2FsbGJhY2soKHRleHQ6IHN0cmluZykgPT4ge1xuICAgIHNldEludGVyaW1UcmFuc2NyaXB0U3RhdGUodGV4dCk7XG4gIH0sIFtdKTtcblxuICBjb25zdCBzZXRUcmFuc2NyaXB0ID0gdXNlQ2FsbGJhY2soKHRleHQ6IHN0cmluZykgPT4ge1xuICAgIHNldFRyYW5zY3JpcHRTdGF0ZSh0ZXh0KTtcbiAgfSwgW10pO1xuXG4gIGNvbnN0IHNldEF1ZGlvTGV2ZWwgPSB1c2VDYWxsYmFjaygobGV2ZWw6IG51bWJlcikgPT4ge1xuICAgIHNldEF1ZGlvTGV2ZWxTdGF0ZShsZXZlbCk7XG4gIH0sIFtdKTtcblxuICBjb25zdCBzZXRXYXZlZm9ybVByZXZpZXcgPSB1c2VDYWxsYmFjaygod2F2ZWZvcm06IG51bWJlcltdKSA9PiB7XG4gICAgY29uc3QgbmV4dCA9IEFycmF5LmlzQXJyYXkod2F2ZWZvcm0pID8gd2F2ZWZvcm0gOiBbXTtcbiAgICBzZXRXYXZlZm9ybVByZXZpZXdTdGF0ZSgocHJldmlvdXMpID0+IHtcbiAgICAgIGlmIChwcmV2aW91cyA9PT0gbmV4dCkgcmV0dXJuIHByZXZpb3VzO1xuICAgICAgaWYgKHByZXZpb3VzLmxlbmd0aCA9PT0gbmV4dC5sZW5ndGgpIHtcbiAgICAgICAgY29uc3QgaXNFcXVhbCA9IHByZXZpb3VzLmV2ZXJ5KCh2YWx1ZSwgaW5kZXgpID0+IHZhbHVlID09PSBuZXh0W2luZGV4XSk7XG4gICAgICAgIGlmIChpc0VxdWFsKSByZXR1cm4gcHJldmlvdXM7XG4gICAgICB9XG4gICAgICByZXR1cm4gbmV4dDtcbiAgICB9KTtcbiAgfSwgW10pO1xuXG4gIGNvbnN0IHNldFByb2Nlc3NpbmcgPSB1c2VDYWxsYmFjaygocHJvY2Vzc2luZzogYm9vbGVhbikgPT4ge1xuICAgIGlmIChwcm9jZXNzaW5nKSB7XG4gICAgICBzZXRTdGF0ZShTcGVlY2hTdGF0ZS5Qcm9jZXNzaW5nKTtcbiAgICAgIHNldEludGVyaW1UcmFuc2NyaXB0U3RhdGUoJycpO1xuICAgICAgc2V0V2F2ZWZvcm1QcmV2aWV3U3RhdGUoW10pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBzZXRTdGF0ZShTcGVlY2hTdGF0ZS5JZGxlKTtcbiAgfSwgW10pO1xuXG4gIHJldHVybiB7XG4gICAgc3RhdGUsXG4gICAgaXNMaXN0ZW5pbmcsXG4gICAgaXNQcm9jZXNzaW5nLFxuICAgIHRyYW5zY3JpcHQsXG4gICAgaW50ZXJpbVRyYW5zY3JpcHQsXG4gICAgYXVkaW9MZXZlbCxcbiAgICB3YXZlZm9ybVByZXZpZXcsXG4gICAgc3RhcnRMaXN0ZW5pbmcsXG4gICAgc3RvcExpc3RlbmluZyxcbiAgICB0b2dnbGVMaXN0ZW5pbmcsXG4gICAgY2xlYXJUcmFuc2NyaXB0LFxuICAgIHNldEludGVyaW1UcmFuc2NyaXB0LFxuICAgIHNldFRyYW5zY3JpcHQsXG4gICAgc2V0QXVkaW9MZXZlbCxcbiAgICBzZXRXYXZlZm9ybVByZXZpZXcsXG4gICAgc2V0UHJvY2Vzc2luZyxcbiAgfTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQXFCQSxJQUFBQSxNQUFBLEdBQUFDLE9BQUE7QUFyQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQW5CQSxJQXVCWUMsV0FBVyxHQUFBQyxPQUFBLENBQUFELFdBQUEsMEJBQVhBLFdBQVc7RUFBWEEsV0FBVztFQUFYQSxXQUFXO0VBQVhBLFdBQVc7RUFBQSxPQUFYQSxXQUFXO0FBQUE7QUE4Q3ZCO0FBQ0E7QUFDQTtBQUNBO0FBQ08sU0FBU0Usb0JBQW9CQSxDQUFBLEVBQStCO0VBQ2pFLE1BQU0sQ0FBQ0MsS0FBSyxFQUFFQyxRQUFRLENBQUMsR0FBRyxJQUFBQyxlQUFRLEVBQWNMLFdBQVcsQ0FBQ00sSUFBSSxDQUFDO0VBQ2pFLE1BQU0sQ0FBQ0MsVUFBVSxFQUFFQyxrQkFBa0IsQ0FBQyxHQUFHLElBQUFILGVBQVEsRUFBUyxFQUFFLENBQUM7RUFDN0QsTUFBTSxDQUFDSSxpQkFBaUIsRUFBRUMseUJBQXlCLENBQUMsR0FBRyxJQUFBTCxlQUFRLEVBQVMsRUFBRSxDQUFDO0VBQzNFLE1BQU0sQ0FBQ00sVUFBVSxFQUFFQyxrQkFBa0IsQ0FBQyxHQUFHLElBQUFQLGVBQVEsRUFBUyxDQUFDLENBQUM7RUFDNUQsTUFBTSxDQUFDUSxlQUFlLEVBQUVDLHVCQUF1QixDQUFDLEdBQUcsSUFBQVQsZUFBUSxFQUFXLEVBQUUsQ0FBQztFQUV6RSxNQUFNVSxXQUFXLEdBQUdaLEtBQUssS0FBS0gsV0FBVyxDQUFDZ0IsU0FBUztFQUNuRCxNQUFNQyxZQUFZLEdBQUdkLEtBQUssS0FBS0gsV0FBVyxDQUFDa0IsVUFBVTtFQUVyRCxNQUFNQyxjQUFjLEdBQUcsSUFBQUMsa0JBQVcsRUFB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
@@ -0,0 +1,30 @@
1
+ export { ModalityProvider, GenieInterpreter } from "./modality-provider-v2";
2
+ export { useGenieCodeSelector, useGenieSelector, resetGenieNavigation } from "./shared-store";
3
+ export type { ReactGenieState, NavigatorState, QueryIntent, QueryIntentOperation, ResultWindowEntry, } from "./shared-store";
4
+ export { useSpeechRecognition, SpeechState } from "./hooks/useSpeechRecognition";
5
+ export type { SpeechRecognitionState, SpeechRecognitionControls, UseSpeechRecognitionReturn } from "./hooks/useSpeechRecognition";
6
+ export { VoiceRecognitionBar } from "./platform/VoiceRecognitionBar";
7
+ export type { VoiceRecognitionBarProps } from "./platform/VoiceRecognitionBar";
8
+ export { AllGenieObjects, GenieClass, GenieClassInterface, GenieFunction, GenieProperty, GenieKey, initReactGenie, int, float, DataClass, HelperClass, ClassDescriptor, FieldDescriptor, FuncDescriptor, ParamDescriptor, } from "./react-decorators";
9
+ export { genieDispatch, sharedStore, sharedState } from "@garrix82/reactgenie-dsl";
10
+ export { useExpoRouterAdapter, withExpoRouterAdapter, useRegisterGenieRoute, registerGenieRoute, isExpoRouterAvailable, getRegisteredRoutes, getRouteMap, type RouteRegistrationInfo, } from "./adapters/expo-router-adapter";
11
+ export { SpeechRecognizer } from "./speech-recognition";
12
+ export { GroqSpeechRecognizer, isGroqSpeechAvailable, getGroqSpeechCapabilities } from "./speech-recognition/speech-recognition-groq";
13
+ export { OpenAISpeechRecognizer, isOpenAISpeechAvailable, getOpenAISpeechCapabilities, } from "./speech-recognition/speech-recognition-openai";
14
+ export { streamGroqTranscription, mergeTranscriptParts } from "./speech-recognition/utils/groq-transcription";
15
+ export { MLXSpeechRecognizer, type LocalWhisperMode } from "./speech-recognition/speech-recognition-mlx";
16
+ export { UnifiedSpeechRecognizer, getSpeechRecognitionConfig, selectSpeechRecognitionMethod, getSpeechRecognitionStatus, type GroqConfigProps, type LocalModelConfigProps, type OpenAIConfigProps, type SpeechRecognitionConfig, type UnifiedSpeechRecognizerProps, } from "./speech-recognition/speech-recognition-unified";
17
+ export type { NativeSpeechRecognizerProps } from "./speech-recognition/speech-recognition-native";
18
+ export type { OpenAINativeSpeechRecognizerProps } from "./speech-recognition/speech-recognition-openai-native";
19
+ export * from "./platform";
20
+ export { AudioVisualizer, AudioLevelIndicator } from "./audio-visualizer";
21
+ export { default as ReactFromModule } from "react";
22
+ export { default as ReactReduxFromModule } from "react-redux";
23
+ export { DateTime } from "./genie/DateTime";
24
+ export { TimeDelta } from "./genie/TimeDelta";
25
+ export { configureLogger, setLogLevel, logger, setLoggerTelemetryBridge } from "./logger";
26
+ export type { LoggerRuntimeConfig, LogLevel, LoggerTelemetryBridge } from "./logger";
27
+ export { setVoicePipelineTelemetryBridge, getVoicePipelineTelemetryBridge, } from "./voice-pipeline-telemetry";
28
+ export { GenieUserFacingError, isGenieUserFacingError } from "./errors";
29
+ export type { GenieUserFacingErrorParams, GenieUserFacingErrorType } from "./errors";
30
+ export type { VoicePipelineContext, VoicePipelineHandle, VoicePipelineOutcome, VoicePipelineStage, VoicePipelineStageHandle, VoicePipelineStageStatus, VoicePipelineTelemetryBridge, } from "./voice-pipeline-telemetry";
package/dist/index.js ADDED
@@ -0,0 +1,469 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var _exportNames = {
7
+ ModalityProvider: true,
8
+ GenieInterpreter: true,
9
+ useGenieCodeSelector: true,
10
+ useGenieSelector: true,
11
+ resetGenieNavigation: true,
12
+ useSpeechRecognition: true,
13
+ SpeechState: true,
14
+ VoiceRecognitionBar: true,
15
+ AllGenieObjects: true,
16
+ GenieClass: true,
17
+ GenieClassInterface: true,
18
+ GenieFunction: true,
19
+ GenieProperty: true,
20
+ GenieKey: true,
21
+ initReactGenie: true,
22
+ int: true,
23
+ float: true,
24
+ DataClass: true,
25
+ HelperClass: true,
26
+ ClassDescriptor: true,
27
+ FieldDescriptor: true,
28
+ FuncDescriptor: true,
29
+ ParamDescriptor: true,
30
+ genieDispatch: true,
31
+ sharedStore: true,
32
+ sharedState: true,
33
+ useExpoRouterAdapter: true,
34
+ withExpoRouterAdapter: true,
35
+ useRegisterGenieRoute: true,
36
+ registerGenieRoute: true,
37
+ isExpoRouterAvailable: true,
38
+ getRegisteredRoutes: true,
39
+ getRouteMap: true,
40
+ SpeechRecognizer: true,
41
+ GroqSpeechRecognizer: true,
42
+ isGroqSpeechAvailable: true,
43
+ getGroqSpeechCapabilities: true,
44
+ OpenAISpeechRecognizer: true,
45
+ isOpenAISpeechAvailable: true,
46
+ getOpenAISpeechCapabilities: true,
47
+ streamGroqTranscription: true,
48
+ mergeTranscriptParts: true,
49
+ MLXSpeechRecognizer: true,
50
+ UnifiedSpeechRecognizer: true,
51
+ getSpeechRecognitionConfig: true,
52
+ selectSpeechRecognitionMethod: true,
53
+ getSpeechRecognitionStatus: true,
54
+ AudioVisualizer: true,
55
+ AudioLevelIndicator: true,
56
+ ReactFromModule: true,
57
+ ReactReduxFromModule: true,
58
+ DateTime: true,
59
+ TimeDelta: true,
60
+ configureLogger: true,
61
+ setLogLevel: true,
62
+ logger: true,
63
+ setLoggerTelemetryBridge: true,
64
+ setVoicePipelineTelemetryBridge: true,
65
+ getVoicePipelineTelemetryBridge: true,
66
+ GenieUserFacingError: true,
67
+ isGenieUserFacingError: true
68
+ };
69
+ Object.defineProperty(exports, "AllGenieObjects", {
70
+ enumerable: true,
71
+ get: function () {
72
+ return _reactDecorators.AllGenieObjects;
73
+ }
74
+ });
75
+ Object.defineProperty(exports, "AudioLevelIndicator", {
76
+ enumerable: true,
77
+ get: function () {
78
+ return _audioVisualizer.AudioLevelIndicator;
79
+ }
80
+ });
81
+ Object.defineProperty(exports, "AudioVisualizer", {
82
+ enumerable: true,
83
+ get: function () {
84
+ return _audioVisualizer.AudioVisualizer;
85
+ }
86
+ });
87
+ Object.defineProperty(exports, "ClassDescriptor", {
88
+ enumerable: true,
89
+ get: function () {
90
+ return _reactDecorators.ClassDescriptor;
91
+ }
92
+ });
93
+ Object.defineProperty(exports, "DataClass", {
94
+ enumerable: true,
95
+ get: function () {
96
+ return _reactDecorators.DataClass;
97
+ }
98
+ });
99
+ Object.defineProperty(exports, "DateTime", {
100
+ enumerable: true,
101
+ get: function () {
102
+ return _DateTime.DateTime;
103
+ }
104
+ });
105
+ Object.defineProperty(exports, "FieldDescriptor", {
106
+ enumerable: true,
107
+ get: function () {
108
+ return _reactDecorators.FieldDescriptor;
109
+ }
110
+ });
111
+ Object.defineProperty(exports, "FuncDescriptor", {
112
+ enumerable: true,
113
+ get: function () {
114
+ return _reactDecorators.FuncDescriptor;
115
+ }
116
+ });
117
+ Object.defineProperty(exports, "GenieClass", {
118
+ enumerable: true,
119
+ get: function () {
120
+ return _reactDecorators.GenieClass;
121
+ }
122
+ });
123
+ Object.defineProperty(exports, "GenieClassInterface", {
124
+ enumerable: true,
125
+ get: function () {
126
+ return _reactDecorators.GenieClassInterface;
127
+ }
128
+ });
129
+ Object.defineProperty(exports, "GenieFunction", {
130
+ enumerable: true,
131
+ get: function () {
132
+ return _reactDecorators.GenieFunction;
133
+ }
134
+ });
135
+ Object.defineProperty(exports, "GenieInterpreter", {
136
+ enumerable: true,
137
+ get: function () {
138
+ return _modalityProviderV.GenieInterpreter;
139
+ }
140
+ });
141
+ Object.defineProperty(exports, "GenieKey", {
142
+ enumerable: true,
143
+ get: function () {
144
+ return _reactDecorators.GenieKey;
145
+ }
146
+ });
147
+ Object.defineProperty(exports, "GenieProperty", {
148
+ enumerable: true,
149
+ get: function () {
150
+ return _reactDecorators.GenieProperty;
151
+ }
152
+ });
153
+ Object.defineProperty(exports, "GenieUserFacingError", {
154
+ enumerable: true,
155
+ get: function () {
156
+ return _errors.GenieUserFacingError;
157
+ }
158
+ });
159
+ Object.defineProperty(exports, "GroqSpeechRecognizer", {
160
+ enumerable: true,
161
+ get: function () {
162
+ return _speechRecognitionGroq.GroqSpeechRecognizer;
163
+ }
164
+ });
165
+ Object.defineProperty(exports, "HelperClass", {
166
+ enumerable: true,
167
+ get: function () {
168
+ return _reactDecorators.HelperClass;
169
+ }
170
+ });
171
+ Object.defineProperty(exports, "MLXSpeechRecognizer", {
172
+ enumerable: true,
173
+ get: function () {
174
+ return _speechRecognitionMlx.MLXSpeechRecognizer;
175
+ }
176
+ });
177
+ Object.defineProperty(exports, "ModalityProvider", {
178
+ enumerable: true,
179
+ get: function () {
180
+ return _modalityProviderV.ModalityProvider;
181
+ }
182
+ });
183
+ Object.defineProperty(exports, "OpenAISpeechRecognizer", {
184
+ enumerable: true,
185
+ get: function () {
186
+ return _speechRecognitionOpenai.OpenAISpeechRecognizer;
187
+ }
188
+ });
189
+ Object.defineProperty(exports, "ParamDescriptor", {
190
+ enumerable: true,
191
+ get: function () {
192
+ return _reactDecorators.ParamDescriptor;
193
+ }
194
+ });
195
+ Object.defineProperty(exports, "ReactFromModule", {
196
+ enumerable: true,
197
+ get: function () {
198
+ return _react.default;
199
+ }
200
+ });
201
+ Object.defineProperty(exports, "ReactReduxFromModule", {
202
+ enumerable: true,
203
+ get: function () {
204
+ return _reactRedux.default;
205
+ }
206
+ });
207
+ Object.defineProperty(exports, "SpeechRecognizer", {
208
+ enumerable: true,
209
+ get: function () {
210
+ return _speechRecognition.SpeechRecognizer;
211
+ }
212
+ });
213
+ Object.defineProperty(exports, "SpeechState", {
214
+ enumerable: true,
215
+ get: function () {
216
+ return _useSpeechRecognition.SpeechState;
217
+ }
218
+ });
219
+ Object.defineProperty(exports, "TimeDelta", {
220
+ enumerable: true,
221
+ get: function () {
222
+ return _TimeDelta.TimeDelta;
223
+ }
224
+ });
225
+ Object.defineProperty(exports, "UnifiedSpeechRecognizer", {
226
+ enumerable: true,
227
+ get: function () {
228
+ return _speechRecognitionUnified.UnifiedSpeechRecognizer;
229
+ }
230
+ });
231
+ Object.defineProperty(exports, "VoiceRecognitionBar", {
232
+ enumerable: true,
233
+ get: function () {
234
+ return _VoiceRecognitionBar.VoiceRecognitionBar;
235
+ }
236
+ });
237
+ Object.defineProperty(exports, "configureLogger", {
238
+ enumerable: true,
239
+ get: function () {
240
+ return _logger.configureLogger;
241
+ }
242
+ });
243
+ Object.defineProperty(exports, "float", {
244
+ enumerable: true,
245
+ get: function () {
246
+ return _reactDecorators.float;
247
+ }
248
+ });
249
+ Object.defineProperty(exports, "genieDispatch", {
250
+ enumerable: true,
251
+ get: function () {
252
+ return _reactgenieDsl.genieDispatch;
253
+ }
254
+ });
255
+ Object.defineProperty(exports, "getGroqSpeechCapabilities", {
256
+ enumerable: true,
257
+ get: function () {
258
+ return _speechRecognitionGroq.getGroqSpeechCapabilities;
259
+ }
260
+ });
261
+ Object.defineProperty(exports, "getOpenAISpeechCapabilities", {
262
+ enumerable: true,
263
+ get: function () {
264
+ return _speechRecognitionOpenai.getOpenAISpeechCapabilities;
265
+ }
266
+ });
267
+ Object.defineProperty(exports, "getRegisteredRoutes", {
268
+ enumerable: true,
269
+ get: function () {
270
+ return _expoRouterAdapter.getRegisteredRoutes;
271
+ }
272
+ });
273
+ Object.defineProperty(exports, "getRouteMap", {
274
+ enumerable: true,
275
+ get: function () {
276
+ return _expoRouterAdapter.getRouteMap;
277
+ }
278
+ });
279
+ Object.defineProperty(exports, "getSpeechRecognitionConfig", {
280
+ enumerable: true,
281
+ get: function () {
282
+ return _speechRecognitionUnified.getSpeechRecognitionConfig;
283
+ }
284
+ });
285
+ Object.defineProperty(exports, "getSpeechRecognitionStatus", {
286
+ enumerable: true,
287
+ get: function () {
288
+ return _speechRecognitionUnified.getSpeechRecognitionStatus;
289
+ }
290
+ });
291
+ Object.defineProperty(exports, "getVoicePipelineTelemetryBridge", {
292
+ enumerable: true,
293
+ get: function () {
294
+ return _voicePipelineTelemetry.getVoicePipelineTelemetryBridge;
295
+ }
296
+ });
297
+ Object.defineProperty(exports, "initReactGenie", {
298
+ enumerable: true,
299
+ get: function () {
300
+ return _reactDecorators.initReactGenie;
301
+ }
302
+ });
303
+ Object.defineProperty(exports, "int", {
304
+ enumerable: true,
305
+ get: function () {
306
+ return _reactDecorators.int;
307
+ }
308
+ });
309
+ Object.defineProperty(exports, "isExpoRouterAvailable", {
310
+ enumerable: true,
311
+ get: function () {
312
+ return _expoRouterAdapter.isExpoRouterAvailable;
313
+ }
314
+ });
315
+ Object.defineProperty(exports, "isGenieUserFacingError", {
316
+ enumerable: true,
317
+ get: function () {
318
+ return _errors.isGenieUserFacingError;
319
+ }
320
+ });
321
+ Object.defineProperty(exports, "isGroqSpeechAvailable", {
322
+ enumerable: true,
323
+ get: function () {
324
+ return _speechRecognitionGroq.isGroqSpeechAvailable;
325
+ }
326
+ });
327
+ Object.defineProperty(exports, "isOpenAISpeechAvailable", {
328
+ enumerable: true,
329
+ get: function () {
330
+ return _speechRecognitionOpenai.isOpenAISpeechAvailable;
331
+ }
332
+ });
333
+ Object.defineProperty(exports, "logger", {
334
+ enumerable: true,
335
+ get: function () {
336
+ return _logger.logger;
337
+ }
338
+ });
339
+ Object.defineProperty(exports, "mergeTranscriptParts", {
340
+ enumerable: true,
341
+ get: function () {
342
+ return _groqTranscription.mergeTranscriptParts;
343
+ }
344
+ });
345
+ Object.defineProperty(exports, "registerGenieRoute", {
346
+ enumerable: true,
347
+ get: function () {
348
+ return _expoRouterAdapter.registerGenieRoute;
349
+ }
350
+ });
351
+ Object.defineProperty(exports, "resetGenieNavigation", {
352
+ enumerable: true,
353
+ get: function () {
354
+ return _sharedStore.resetGenieNavigation;
355
+ }
356
+ });
357
+ Object.defineProperty(exports, "selectSpeechRecognitionMethod", {
358
+ enumerable: true,
359
+ get: function () {
360
+ return _speechRecognitionUnified.selectSpeechRecognitionMethod;
361
+ }
362
+ });
363
+ Object.defineProperty(exports, "setLogLevel", {
364
+ enumerable: true,
365
+ get: function () {
366
+ return _logger.setLogLevel;
367
+ }
368
+ });
369
+ Object.defineProperty(exports, "setLoggerTelemetryBridge", {
370
+ enumerable: true,
371
+ get: function () {
372
+ return _logger.setLoggerTelemetryBridge;
373
+ }
374
+ });
375
+ Object.defineProperty(exports, "setVoicePipelineTelemetryBridge", {
376
+ enumerable: true,
377
+ get: function () {
378
+ return _voicePipelineTelemetry.setVoicePipelineTelemetryBridge;
379
+ }
380
+ });
381
+ Object.defineProperty(exports, "sharedState", {
382
+ enumerable: true,
383
+ get: function () {
384
+ return _reactgenieDsl.sharedState;
385
+ }
386
+ });
387
+ Object.defineProperty(exports, "sharedStore", {
388
+ enumerable: true,
389
+ get: function () {
390
+ return _reactgenieDsl.sharedStore;
391
+ }
392
+ });
393
+ Object.defineProperty(exports, "streamGroqTranscription", {
394
+ enumerable: true,
395
+ get: function () {
396
+ return _groqTranscription.streamGroqTranscription;
397
+ }
398
+ });
399
+ Object.defineProperty(exports, "useExpoRouterAdapter", {
400
+ enumerable: true,
401
+ get: function () {
402
+ return _expoRouterAdapter.useExpoRouterAdapter;
403
+ }
404
+ });
405
+ Object.defineProperty(exports, "useGenieCodeSelector", {
406
+ enumerable: true,
407
+ get: function () {
408
+ return _sharedStore.useGenieCodeSelector;
409
+ }
410
+ });
411
+ Object.defineProperty(exports, "useGenieSelector", {
412
+ enumerable: true,
413
+ get: function () {
414
+ return _sharedStore.useGenieSelector;
415
+ }
416
+ });
417
+ Object.defineProperty(exports, "useRegisterGenieRoute", {
418
+ enumerable: true,
419
+ get: function () {
420
+ return _expoRouterAdapter.useRegisterGenieRoute;
421
+ }
422
+ });
423
+ Object.defineProperty(exports, "useSpeechRecognition", {
424
+ enumerable: true,
425
+ get: function () {
426
+ return _useSpeechRecognition.useSpeechRecognition;
427
+ }
428
+ });
429
+ Object.defineProperty(exports, "withExpoRouterAdapter", {
430
+ enumerable: true,
431
+ get: function () {
432
+ return _expoRouterAdapter.withExpoRouterAdapter;
433
+ }
434
+ });
435
+ var _modalityProviderV = require("./modality-provider-v2");
436
+ var _sharedStore = require("./shared-store");
437
+ var _useSpeechRecognition = require("./hooks/useSpeechRecognition");
438
+ var _VoiceRecognitionBar = require("./platform/VoiceRecognitionBar");
439
+ var _reactDecorators = require("./react-decorators");
440
+ var _reactgenieDsl = require("@garrix82/reactgenie-dsl");
441
+ var _expoRouterAdapter = require("./adapters/expo-router-adapter");
442
+ var _speechRecognition = require("./speech-recognition");
443
+ var _speechRecognitionGroq = require("./speech-recognition/speech-recognition-groq");
444
+ var _speechRecognitionOpenai = require("./speech-recognition/speech-recognition-openai");
445
+ var _groqTranscription = require("./speech-recognition/utils/groq-transcription");
446
+ var _speechRecognitionMlx = require("./speech-recognition/speech-recognition-mlx");
447
+ var _speechRecognitionUnified = require("./speech-recognition/speech-recognition-unified");
448
+ var _platform = require("./platform");
449
+ Object.keys(_platform).forEach(function (key) {
450
+ if (key === "default" || key === "__esModule") return;
451
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
452
+ if (key in exports && exports[key] === _platform[key]) return;
453
+ Object.defineProperty(exports, key, {
454
+ enumerable: true,
455
+ get: function () {
456
+ return _platform[key];
457
+ }
458
+ });
459
+ });
460
+ var _audioVisualizer = require("./audio-visualizer");
461
+ var _react = _interopRequireDefault(require("react"));
462
+ var _reactRedux = _interopRequireDefault(require("react-redux"));
463
+ var _DateTime = require("./genie/DateTime");
464
+ var _TimeDelta = require("./genie/TimeDelta");
465
+ var _logger = require("./logger");
466
+ var _voicePipelineTelemetry = require("./voice-pipeline-telemetry");
467
+ var _errors = require("./errors");
468
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
469
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbW9kYWxpdHlQcm92aWRlclYiLCJyZXF1aXJlIiwiX3NoYXJlZFN0b3JlIiwiX3VzZVNwZWVjaFJlY29nbml0aW9uIiwiX1ZvaWNlUmVjb2duaXRpb25CYXIiLCJfcmVhY3REZWNvcmF0b3JzIiwiX3JlYWN0Z2VuaWVEc2wiLCJfZXhwb1JvdXRlckFkYXB0ZXIiLCJfc3BlZWNoUmVjb2duaXRpb24iLCJfc3BlZWNoUmVjb2duaXRpb25Hcm9xIiwiX3NwZWVjaFJlY29nbml0aW9uT3BlbmFpIiwiX2dyb3FUcmFuc2NyaXB0aW9uIiwiX3NwZWVjaFJlY29nbml0aW9uTWx4IiwiX3NwZWVjaFJlY29nbml0aW9uVW5pZmllZCIsIl9wbGF0Zm9ybSIsIk9iamVjdCIsImtleXMiLCJmb3JFYWNoIiwia2V5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiX2V4cG9ydE5hbWVzIiwiZXhwb3J0cyIsImRlZmluZVByb3BlcnR5IiwiZW51bWVyYWJsZSIsImdldCIsIl9hdWRpb1Zpc3VhbGl6ZXIiLCJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX3JlYWN0UmVkdXgiLCJfRGF0ZVRpbWUiLCJfVGltZURlbHRhIiwiX2xvZ2dlciIsIl92b2ljZVBpcGVsaW5lVGVsZW1ldHJ5IiwiX2Vycm9ycyIsImUiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCJdLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBleHBvcnQgeyBNb2RhbGl0eVByb3ZpZGVyLCBHZW5pZUludGVycHJldGVyIH0gZnJvbSBcIi4vbW9kYWxpdHktcHJvdmlkZXJcIjsgLy8gb2xkIG1vZGFsaXR5IHByb3ZpZGVyXG5leHBvcnQgeyBNb2RhbGl0eVByb3ZpZGVyLCBHZW5pZUludGVycHJldGVyIH0gZnJvbSBcIi4vbW9kYWxpdHktcHJvdmlkZXItdjJcIjsgLy8gdXBkYXRlZCBtb2RhbGl0eSBwcm92aWRlclxuZXhwb3J0IHsgdXNlR2VuaWVDb2RlU2VsZWN0b3IsIHVzZUdlbmllU2VsZWN0b3IsIHJlc2V0R2VuaWVOYXZpZ2F0aW9uIH0gZnJvbSBcIi4vc2hhcmVkLXN0b3JlXCI7XG5leHBvcnQgdHlwZSB7XG4gIFJlYWN0R2VuaWVTdGF0ZSxcbiAgTmF2aWdhdG9yU3RhdGUsXG4gIFF1ZXJ5SW50ZW50LFxuICBRdWVyeUludGVudE9wZXJhdGlvbixcbiAgUmVzdWx0V2luZG93RW50cnksXG59IGZyb20gXCIuL3NoYXJlZC1zdG9yZVwiO1xuXG4vLyBTcGVlY2ggUmVjb2duaXRpb24gSG9vayAmIENvbXBvbmVudHNcbmV4cG9ydCB7IHVzZVNwZWVjaFJlY29nbml0aW9uLCBTcGVlY2hTdGF0ZSB9IGZyb20gXCIuL2hvb2tzL3VzZVNwZWVjaFJlY29nbml0aW9uXCI7XG5leHBvcnQgdHlwZSB7IFxuICBTcGVlY2hSZWNvZ25pdGlvblN0YXRlLCBcbiAgU3BlZWNoUmVjb2duaXRpb25Db250cm9scywgXG4gIFVzZVNwZWVjaFJlY29nbml0aW9uUmV0dXJuIFxufSBmcm9tIFwiLi9ob29rcy91c2VTcGVlY2hSZWNvZ25pdGlvblwiO1xuZXhwb3J0IHsgVm9pY2VSZWNvZ25pdGlvbkJhciB9IGZyb20gXCIuL3BsYXRmb3JtL1ZvaWNlUmVjb2duaXRpb25CYXJcIjtcbmV4cG9ydCB0eXBlIHsgVm9pY2VSZWNvZ25pdGlvbkJhclByb3BzIH0gZnJvbSBcIi4vcGxhdGZvcm0vVm9pY2VSZWNvZ25pdGlvbkJhclwiO1xuXG5leHBvcnQge1xuICBBbGxHZW5pZU9iamVjdHMsXG4gIEdlbmllQ2xhc3MsXG4gIEdlbmllQ2xhc3NJbnRlcmZhY2UsXG4gIEdlbmllRnVuY3Rpb24sXG4gIEdlbmllUHJvcGVydHksXG4gIEdlbmllS2V5LFxuICBpbml0UmVhY3RHZW5pZSxcbiAgaW50LFxuICBmbG9hdCxcbiAgRGF0YUNsYXNzLFxuICBIZWxwZXJDbGFzcyxcbiAgQ2xhc3NEZXNjcmlwdG9yLFxuICBGaWVsZERlc2NyaXB0b3IsXG4gIEZ1bmNEZXNjcmlwdG9yLFxuICBQYXJhbURlc2NyaXB0b3IsXG59IGZyb20gXCIuL3JlYWN0LWRlY29yYXRvcnNcIjtcbmV4cG9ydCB7IGdlbmllRGlzcGF0Y2gsIHNoYXJlZFN0b3JlLCBzaGFyZWRTdGF0ZSB9IGZyb20gXCJAZ2Fycml4ODIvcmVhY3RnZW5pZS1kc2xcIjtcblxuLy8gRXhwbyBSb3V0ZXIgQWRhcHRlciAoYXV0b21hdGljIG5hdmlnYXRpb24gY29tcGF0aWJpbGl0eSlcbmV4cG9ydCB7XG4gIHVzZUV4cG9Sb3V0ZXJBZGFwdGVyLFxuICB3aXRoRXhwb1JvdXRlckFkYXB0ZXIsXG4gIHVzZVJlZ2lzdGVyR2VuaWVSb3V0ZSxcbiAgcmVnaXN0ZXJHZW5pZVJvdXRlLFxuICBpc0V4cG9Sb3V0ZXJBdmFpbGFibGUsXG4gIGdldFJlZ2lzdGVyZWRSb3V0ZXMsXG4gIGdldFJvdXRlTWFwLFxuICB0eXBlIFJvdXRlUmVnaXN0cmF0aW9uSW5mbyxcbn0gZnJvbSBcIi4vYWRhcHRlcnMvZXhwby1yb3V0ZXItYWRhcHRlclwiO1xuXG4vLyBOYXZpZ2F0aW9uIEFkYXB0ZXIgZm9yIGV4cG8tcm91dGVyIGNvbXBhdGliaWxpdHlcbi8vIGV4cG9ydCB7XG4vLyAgIHVzZU5hdmlnYXRpb25BZGFwdGVyLFxuLy8gICB3aXRoTmF2aWdhdGlvbkFkYXB0ZXIsXG4vLyAgIHVzZVJvdXRlUGFyYW1zLFxuLy8gICBjcmVhdGVTY3JlZW5XcmFwcGVyLFxuLy8gICBpc0V4cG9Sb3V0ZXIsXG4vLyAgIHR5cGUgTmF2aWdhdGlvbixcbi8vICAgdHlwZSBOYXZpZ2F0aW9uQWRhcHRlcixcbi8vIH0gZnJvbSBcIi4vbmF2aWdhdGlvbi1hZGFwdGVyXCI7XG5cbi8vIFNwZWVjaCBSZWNvZ25pdGlvblxuZXhwb3J0IHsgU3BlZWNoUmVjb2duaXplciB9IGZyb20gXCIuL3NwZWVjaC1yZWNvZ25pdGlvblwiOyAvLyBXZWIgU3BlZWNoIEFQSVxuZXhwb3J0IHsgR3JvcVNwZWVjaFJlY29nbml6ZXIsIGlzR3JvcVNwZWVjaEF2YWlsYWJsZSwgZ2V0R3JvcVNwZWVjaENhcGFiaWxpdGllcyB9IGZyb20gXCIuL3NwZWVjaC1yZWNvZ25pdGlvbi9zcGVlY2gtcmVjb2duaXRpb24tZ3JvcVwiOyAvLyBHcm9xIFdoaXNwZXIgKFdlYilcbmV4cG9ydCB7XG4gIE9wZW5BSVNwZWVjaFJlY29nbml6ZXIsXG4gIGlzT3BlbkFJU3BlZWNoQXZhaWxhYmxlLFxuICBnZXRPcGVuQUlTcGVlY2hDYXBhYmlsaXRpZXMsXG59IGZyb20gXCIuL3NwZWVjaC1yZWNvZ25pdGlvbi9zcGVlY2gtcmVjb2duaXRpb24tb3BlbmFpXCI7XG5leHBvcnQgeyBzdHJlYW1Hcm9xVHJhbnNjcmlwdGlvbiwgbWVyZ2VUcmFuc2NyaXB0UGFydHMgfSBmcm9tIFwiLi9zcGVlY2gtcmVjb2duaXRpb24vdXRpbHMvZ3JvcS10cmFuc2NyaXB0aW9uXCI7XG5leHBvcnQgeyBNTFhTcGVlY2hSZWNvZ25pemVyLCB0eXBlIExvY2FsV2hpc3Blck1vZGUgfSBmcm9tIFwiLi9zcGVlY2gtcmVjb2duaXRpb24vc3BlZWNoLXJlY29nbml0aW9uLW1seFwiOyAvLyBMb2NhbCBNTFggV2hpc3BlciBzZXJ2ZXJcbmV4cG9ydCB7IFxuICBVbmlmaWVkU3BlZWNoUmVjb2duaXplcixcbiAgZ2V0U3BlZWNoUmVjb2duaXRpb25Db25maWcsXG4gIHNlbGVjdFNwZWVjaFJlY29nbml0aW9uTWV0aG9kLFxuICBnZXRTcGVlY2hSZWNvZ25pdGlvblN0YXR1cyxcbiAgdHlwZSBHcm9xQ29uZmlnUHJvcHMsXG4gIHR5cGUgTG9jYWxNb2RlbENvbmZpZ1Byb3BzLFxuICB0eXBlIE9wZW5BSUNvbmZpZ1Byb3BzLFxuICB0eXBlIFNwZWVjaFJlY29nbml0aW9uQ29uZmlnLFxuICB0eXBlIFVuaWZpZWRTcGVlY2hSZWNvZ25pemVyUHJvcHMsXG59IGZyb20gXCIuL3NwZWVjaC1yZWNvZ25pdGlvbi9zcGVlY2gtcmVjb2duaXRpb24tdW5pZmllZFwiOyAvLyBVbmlmaWVkIHdpdGggYXV0by1zZWxlY3Rpb25cblxuLy8gTmF0aXZlIFNwZWVjaCBSZWNvZ25pdGlvbiAoT3B0aW9uYWw6IHJlcXVpcmVzIGV4cG8tYXVkaW8gKyBleHBvLWZpbGUtc3lzdGVtKVxuLy8gRXhwb3J0IHR5cGUtb25seSB0byBhdm9pZCBpbXBvcnQgZXJyb3JzIHdoZW4gbmF0aXZlIGRlcGVuZGVuY2llcyBhcmUgbWlzc2luZ1xuZXhwb3J0IHR5cGUgeyBOYXRpdmVTcGVlY2hSZWNvZ25pemVyUHJvcHMgfSBmcm9tIFwiLi9zcGVlY2gtcmVjb2duaXRpb24vc3BlZWNoLXJlY29nbml0aW9uLW5hdGl2ZVwiO1xuZXhwb3J0IHR5cGUgeyBPcGVuQUlOYXRpdmVTcGVlY2hSZWNvZ25pemVyUHJvcHMgfSBmcm9tIFwiLi9zcGVlY2gtcmVjb2duaXRpb24vc3BlZWNoLXJlY29nbml0aW9uLW9wZW5haS1uYXRpdmVcIjtcblxuLy8gUGxhdGZvcm0gYWJzdHJhY3Rpb25cbmV4cG9ydCAqIGZyb20gXCIuL3BsYXRmb3JtXCI7XG5cbi8vIEF1ZGlvIHZpc3VhbGl6YXRpb25cbmV4cG9ydCB7IEF1ZGlvVmlzdWFsaXplciwgQXVkaW9MZXZlbEluZGljYXRvciB9IGZyb20gXCIuL2F1ZGlvLXZpc3VhbGl6ZXJcIjtcblxuZXhwb3J0IHsgZGVmYXVsdCBhcyBSZWFjdEZyb21Nb2R1bGUgfSBmcm9tIFwicmVhY3RcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUmVhY3RSZWR1eEZyb21Nb2R1bGUgfSBmcm9tIFwicmVhY3QtcmVkdXhcIjtcbmV4cG9ydCB7IERhdGVUaW1lIH0gZnJvbSBcIi4vZ2VuaWUvRGF0ZVRpbWVcIjtcbmV4cG9ydCB7IFRpbWVEZWx0YSB9IGZyb20gXCIuL2dlbmllL1RpbWVEZWx0YVwiO1xuZXhwb3J0IHsgY29uZmlndXJlTG9nZ2VyLCBzZXRMb2dMZXZlbCwgbG9nZ2VyLCBzZXRMb2dnZXJUZWxlbWV0cnlCcmlkZ2UgfSBmcm9tIFwiLi9sb2dnZXJcIjtcbmV4cG9ydCB0eXBlIHsgTG9nZ2VyUnVudGltZUNvbmZpZywgTG9nTGV2ZWwsIExvZ2dlclRlbGVtZXRyeUJyaWRnZSB9IGZyb20gXCIuL2xvZ2dlclwiO1xuZXhwb3J0IHtcbiAgc2V0Vm9pY2VQaXBlbGluZVRlbGVtZXRyeUJyaWRnZSxcbiAgZ2V0Vm9pY2VQaXBlbGluZVRlbGVtZXRyeUJyaWRnZSxcbn0gZnJvbSBcIi4vdm9pY2UtcGlwZWxpbmUtdGVsZW1ldHJ5XCI7XG5leHBvcnQgeyBHZW5pZVVzZXJGYWNpbmdFcnJvciwgaXNHZW5pZVVzZXJGYWNpbmdFcnJvciB9IGZyb20gXCIuL2Vycm9yc1wiO1xuZXhwb3J0IHR5cGUgeyBHZW5pZVVzZXJGYWNpbmdFcnJvclBhcmFtcywgR2VuaWVVc2VyRmFjaW5nRXJyb3JUeXBlIH0gZnJvbSBcIi4vZXJyb3JzXCI7XG5leHBvcnQgdHlwZSB7XG4gIFZvaWNlUGlwZWxpbmVDb250ZXh0LFxuICBWb2ljZVBpcGVsaW5lSGFuZGxlLFxuICBWb2ljZVBpcGVsaW5lT3V0Y29tZSxcbiAgVm9pY2VQaXBlbGluZVN0YWdlLFxuICBWb2ljZVBpcGVsaW5lU3RhZ2VIYW5kbGUsXG4gIFZvaWNlUGlwZWxpbmVTdGFnZVN0YXR1cyxcbiAgVm9pY2VQaXBlbGluZVRlbGVtZXRyeUJyaWRnZSxcbn0gZnJvbSBcIi4vdm9pY2UtcGlwZWxpbmUtdGVsZW1ldHJ5XCI7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsSUFBQUEsa0JBQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLFlBQUEsR0FBQUQsT0FBQTtBQVVBLElBQUFFLHFCQUFBLEdBQUFGLE9BQUE7QUFNQSxJQUFBRyxvQkFBQSxHQUFBSCxPQUFBO0FBR0EsSUFBQUksZ0JBQUEsR0FBQUosT0FBQTtBQWlCQSxJQUFBSyxjQUFBLEdBQUFMLE9BQUE7QUFHQSxJQUFBTSxrQkFBQSxHQUFBTixPQUFBO0FBdUJBLElBQUFPLGtCQUFBLEdBQUFQLE9BQUE7QUFDQSxJQUFBUSxzQkFBQSxHQUFBUixPQUFBO0FBQ0EsSUFBQVMsd0JBQUEsR0FBQVQsT0FBQTtBQUtBLElBQUFVLGtCQUFBLEdBQUFWLE9BQUE7QUFDQSxJQUFBVyxxQkFBQSxHQUFBWCxPQUFBO0FBQ0EsSUFBQVkseUJBQUEsR0FBQVosT0FBQTtBQWtCQSxJQUFBYSxTQUFBLEdBQUFiLE9BQUE7QUFBQWMsTUFBQSxDQUFBQyxJQUFBLENBQUFGLFNBQUEsRUFBQUcsT0FBQSxXQUFBQyxHQUFBO0VBQUEsSUFBQUEsR0FBQSxrQkFBQUEsR0FBQTtFQUFBLElBQUFILE1BQUEsQ0FBQUksU0FBQSxDQUFBQyxjQUFBLENBQUFDLElBQUEsQ0FBQUMsWUFBQSxFQUFBSixHQUFBO0VBQUEsSUFBQUEsR0FBQSxJQUFBSyxPQUFBLElBQUFBLE9BQUEsQ0FBQUwsR0FBQSxNQUFBSixTQUFBLENBQUFJLEdBQUE7RUFBQUgsTUFBQSxDQUFBUyxjQUFBLENBQUFELE9BQUEsRUFBQUwsR0FBQTtJQUFBTyxVQUFBO0lBQUFDLEdBQUEsV0FBQUEsQ0FBQTtNQUFBLE9BQUFaLFNBQUEsQ0FBQUksR0FBQTtJQUFBO0VBQUE7QUFBQTtBQUdBLElBQUFTLGdCQUFBLEdBQUExQixPQUFBO0FBRUEsSUFBQTJCLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQTVCLE9BQUE7QUFDQSxJQUFBNkIsV0FBQSxHQUFBRCxzQkFBQSxDQUFBNUIsT0FBQTtBQUNBLElBQUE4QixTQUFBLEdBQUE5QixPQUFBO0FBQ0EsSUFBQStCLFVBQUEsR0FBQS9CLE9BQUE7QUFDQSxJQUFBZ0MsT0FBQSxHQUFBaEMsT0FBQTtBQUVBLElBQUFpQyx1QkFBQSxHQUFBakMsT0FBQTtBQUlBLElBQUFrQyxPQUFBLEdBQUFsQyxPQUFBO0FBQXdFLFNBQUE0Qix1QkFBQU8sQ0FBQSxXQUFBQSxDQUFBLElBQUFBLENBQUEsQ0FBQUMsVUFBQSxHQUFBRCxDQUFBLEtBQUFFLE9BQUEsRUFBQUYsQ0FBQSIsImlnbm9yZUxpc3QiOltdfQ==